From f5ecfc9ab4085d5bf4b20ccc8ddabf1756ead75f Mon Sep 17 00:00:00 2001 From: pattern-x Date: Mon, 18 Sep 2023 01:15:14 +0000 Subject: [PATCH] Merge pull request #115 from pattern-x/feature/dat.gui MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add dat.gui, and enable to update dxf elevation for bim_2_overlay_wit… --- asset-manifest.json | 166 +- demo/libs/gemini-viewer.esm.min.js | 2 +- .../dxf-layout-bar/DxfLayoutBar.d.ts | 52 +- .../components/dxf-layout-bar/index.d.ts | 2 +- .../pop-panel/AxisSectionPopPanel.d.ts | 36 +- .../pop-panel/PickSectionPopPanel.d.ts | 36 +- .../types/components/pop-panel/PopPanel.d.ts | 28 +- .../types/components/pop-panel/index.d.ts | 6 +- .../components/progress-bar/ProgressBar.d.ts | 68 +- .../types/components/progress-bar/index.d.ts | 2 +- .../settings/ProjectSettingsDef.d.ts | 88 +- .../libs/types/components/settings/index.d.ts | 2 +- .../types/components/tool-tip/Tooltip.d.ts | 40 +- .../libs/types/components/tool-tip/index.d.ts | 2 +- demo/libs/types/core/Configs.d.ts | 734 +++--- demo/libs/types/core/Constants.d.ts | 328 +-- .../types/core/TextTexture/TextTexture.d.ts | 84 +- demo/libs/types/core/Units.d.ts | 32 +- demo/libs/types/core/VersionManager.d.ts | 6 +- .../core/camera-controls/CameraControls.d.ts | 1546 ++++++------ .../core/camera-controls/EventDispatcher.d.ts | 82 +- .../types/core/camera-controls/constants.d.ts | 4 +- .../types/core/camera-controls/index.d.ts | 4 +- .../types/core/camera-controls/types.d.ts | 224 +- .../utils/extractClientCoordFromEvent.d.ts | 6 +- .../camera-controls/utils/math-utils.d.ts | 22 +- .../notSupportedInOrthographicCamera.d.ts | 4 +- demo/libs/types/core/canvas/CanvasRender.d.ts | 103 +- demo/libs/types/core/canvas/Constants.d.ts | 56 +- demo/libs/types/core/canvas/Drawable.d.ts | 174 +- demo/libs/types/core/canvas/DrawableList.d.ts | 54 +- demo/libs/types/core/canvas/index.d.ts | 8 +- .../core/compare/BaseDxfCompareHelper.d.ts | 208 +- .../types/core/compare/CompareDrawable.d.ts | 34 +- .../types/core/compare/DxfCompareHelper.d.ts | 138 +- .../core/compare/DxfCompareMarkupManager.d.ts | 22 +- demo/libs/types/core/compare/index.d.ts | 8 +- .../types/core/controls/CameraControlsEx.d.ts | 68 +- demo/libs/types/core/controls/VRControls.d.ts | 262 +- demo/libs/types/core/controls/index.d.ts | 4 +- .../core/dxf-parser/AutoCadColorIndex.d.ts | 16 +- .../types/core/dxf-parser/DxfBaseReader.d.ts | 24 +- .../core/dxf-parser/DxfBinaryReader.d.ts | 28 +- .../libs/types/core/dxf-parser/DxfParser.d.ts | 654 ++--- .../types/core/dxf-parser/DxfTextReader.d.ts | 62 +- .../types/core/dxf-parser/ParseHelpers.d.ts | 72 +- .../core/dxf-parser/entities/3dface.d.ts | 22 +- .../types/core/dxf-parser/entities/arc.d.ts | 32 +- .../core/dxf-parser/entities/attdef.d.ts | 62 +- .../core/dxf-parser/entities/attrib.d.ts | 62 +- .../core/dxf-parser/entities/circle.d.ts | 26 +- .../core/dxf-parser/entities/dimension.d.ts | 44 +- .../core/dxf-parser/entities/ellipse.d.ts | 30 +- .../core/dxf-parser/entities/geomtry.d.ts | 80 +- .../types/core/dxf-parser/entities/hatch.d.ts | 216 +- .../types/core/dxf-parser/entities/image.d.ts | 74 +- .../core/dxf-parser/entities/insert.d.ts | 40 +- .../core/dxf-parser/entities/leader.d.ts | 46 +- .../types/core/dxf-parser/entities/line.d.ts | 20 +- .../core/dxf-parser/entities/lwpolyline.d.ts | 42 +- .../core/dxf-parser/entities/mleader.d.ts | 202 +- .../types/core/dxf-parser/entities/mtext.d.ts | 36 +- .../core/dxf-parser/entities/ole2frame.d.ts | 40 +- .../types/core/dxf-parser/entities/point.d.ts | 22 +- .../core/dxf-parser/entities/polyline.d.ts | 40 +- .../types/core/dxf-parser/entities/ray.d.ts | 20 +- .../core/dxf-parser/entities/region.d.ts | 20 +- .../core/dxf-parser/entities/seqend.d.ts | 16 +- .../types/core/dxf-parser/entities/solid.d.ts | 20 +- .../core/dxf-parser/entities/spline.d.ts | 46 +- .../types/core/dxf-parser/entities/text.d.ts | 36 +- .../core/dxf-parser/entities/vertex.d.ts | 40 +- .../core/dxf-parser/entities/viewport.d.ts | 92 +- .../types/core/dxf-parser/entities/xline.d.ts | 20 +- demo/libs/types/core/dxf-parser/index.d.ts | 52 +- .../types/core/dxf-parser/objects/common.d.ts | 30 +- .../core/dxf-parser/objects/dictionary.d.ts | 38 +- .../core/dxf-parser/objects/imagedef.d.ts | 48 +- .../types/core/dxf-parser/objects/layout.d.ts | 58 +- .../dxf-parser/objects/sortentstable.d.ts | 24 +- .../dxf-parser/objects/spatialfilter.d.ts | 44 +- .../core/dxf-parser/objects/xrecord.d.ts | 22 +- demo/libs/types/core/dxf/DxfCompare.d.ts | 302 +-- demo/libs/types/core/dxf/DxfConstants.d.ts | 30 +- demo/libs/types/core/dxf/DxfLoader.d.ts | 1018 ++++---- demo/libs/types/core/dxf/DxfObject.d.ts | 64 +- demo/libs/types/core/dxf/DxfUtils.d.ts | 158 +- .../types/core/dxf/HatchPatternShaders.d.ts | 24 +- .../types/core/dxf/LinePatternShaders.d.ts | 24 +- demo/libs/types/core/dxf/bspline.d.ts | 16 +- demo/libs/types/core/dxf/dxfom-mtext.d.ts | 92 +- demo/libs/types/core/dxf/dxfom-text.d.ts | 32 +- demo/libs/types/core/dxf/index.d.ts | 20 +- demo/libs/types/core/dxf/round10.d.ts | 4 +- demo/libs/types/core/font/BaseFont.d.ts | 80 +- demo/libs/types/core/font/FontManager.d.ts | 108 +- demo/libs/types/core/font/MeshFont.d.ts | 28 +- demo/libs/types/core/font/ShxFont.d.ts | 98 +- demo/libs/types/core/font/index.d.ts | 2 +- .../core/font/shx/ExtraLettersTemplate.d.ts | 2 +- .../types/core/font/shx/Shx.constants.d.ts | 22 +- demo/libs/types/core/font/shx/ShxParser.d.ts | 36 +- demo/libs/types/core/font/shx/TextShape.d.ts | 48 +- demo/libs/types/core/font/shx/gbk/index.d.ts | 8 +- demo/libs/types/core/font/shx/index.d.ts | 2 +- .../core/font/shx/util/BitConverter.d.ts | 36 +- .../libs/types/core/geometry-offset/Edge.d.ts | 54 +- .../types/core/geometry-offset/Offset.d.ts | 92 +- .../types/core/geometry-offset/index.d.ts | 2 +- .../libs/types/core/helpers/BinaryReader.d.ts | 48 +- .../types/core/helpers/BoxSelectHelper.d.ts | 88 +- .../types/core/helpers/ControlsHelper.d.ts | 64 +- .../types/core/helpers/InstantiateHelper.d.ts | 52 +- .../types/core/helpers/LoadingHelper.d.ts | 94 +- .../types/core/helpers/MeshBvhHelper.d.ts | 30 +- .../helpers/MobileTouchHelperDrawable.d.ts | 52 +- demo/libs/types/core/helpers/OSnapHelper.d.ts | 316 +-- .../core/helpers/ObjectPixelSizeHelper.d.ts | 26 +- .../types/core/helpers/PickMarkupHelper.d.ts | 58 +- demo/libs/types/core/helpers/RafHelper.d.ts | 36 +- .../types/core/helpers/ZoomToRectHelper.d.ts | 34 +- demo/libs/types/core/helpers/index.d.ts | 24 +- demo/libs/types/core/index.d.ts | 44 +- .../types/core/indexeddb/AnnotationTable.d.ts | 28 +- demo/libs/types/core/indexeddb/BaseTable.d.ts | 72 +- .../types/core/indexeddb/DxfDataTable.d.ts | 44 +- .../types/core/indexeddb/FontDataTable.d.ts | 64 +- .../core/indexeddb/IndexedDbManager.d.ts | 58 +- .../types/core/indexeddb/ViewpointTable.d.ts | 28 +- demo/libs/types/core/indexeddb/index.d.ts | 12 +- demo/libs/types/core/input/InputManager.d.ts | 304 +-- demo/libs/types/core/input/index.d.ts | 2 +- demo/libs/types/core/markup/ArrowMarkup.d.ts | 28 +- demo/libs/types/core/markup/BaseMarkup.d.ts | 56 +- demo/libs/types/core/markup/CircleMarkup.d.ts | 24 +- .../types/core/markup/CloudLineMarkup.d.ts | 20 +- .../types/core/markup/CloudRectMarkup.d.ts | 22 +- .../core/markup/CloudRectWithTextMarkup.d.ts | 86 +- demo/libs/types/core/markup/Constants.d.ts | 34 +- demo/libs/types/core/markup/DotMarkup.d.ts | 18 +- .../libs/types/core/markup/EllipseMarkup.d.ts | 24 +- .../types/core/markup/LeaderLineMarkup.d.ts | 50 +- .../libs/types/core/markup/MarkupManager.d.ts | 182 +- .../types/core/markup/PolylineMarkup.d.ts | 22 +- demo/libs/types/core/markup/RectMarkup.d.ts | 20 +- demo/libs/types/core/markup/TextMarkup.d.ts | 80 +- demo/libs/types/core/markup/XMarkup.d.ts | 20 +- demo/libs/types/core/markup/index.d.ts | 26 +- .../materials/GeminiStandardMaterial.d.ts | 32 +- demo/libs/types/core/materials/index.d.ts | 2 +- demo/libs/types/core/patches/Constants.d.ts | 8 +- demo/libs/types/core/patches/Line.d.ts | 4 +- demo/libs/types/core/patches/Mesh.d.ts | 4 +- demo/libs/types/core/patches/Points.d.ts | 4 +- demo/libs/types/core/patches/index.d.ts | 10 +- .../core/patches/shaders/ShaderChunk.d.ts | 4 +- .../shaderChunk/outine_bc_vertex.glsl.d.ts | 4 +- .../shaderChunk/outline_bc_fragment.glsl.d.ts | 4 +- .../outline_bc_pars_fragment.glsl.d.ts | 4 +- .../outline_bc_pars_vertex.glsl.d.ts | 4 +- .../shaderLib/gemini_standard.glsl.d.ts | 4 +- demo/libs/types/core/shp-js/BitView.d.ts | 24 +- demo/libs/types/core/shp-js/SHPLoader.d.ts | 24 +- demo/libs/types/core/shp-js/Shp.d.ts | 20 +- demo/libs/types/core/shp-js/ShpThree.d.ts | 46 +- demo/libs/types/core/shp-js/index.d.ts | 8 +- .../core/undo-redo/AddMarkupCommand.d.ts | 20 +- .../core/undo-redo/AddMeasurementCommand.d.ts | 18 +- demo/libs/types/core/undo-redo/Command.d.ts | 12 +- .../core/undo-redo/RemoveMarkupCommand.d.ts | 20 +- .../undo-redo/RemoveMeasurementCommand.d.ts | 18 +- .../types/core/undo-redo/UndoRedoManager.d.ts | 42 +- .../core/undo-redo/UpdateMarkupCommand.d.ts | 22 +- demo/libs/types/core/undo-redo/index.d.ts | 14 +- .../types/core/utils/CSS2DObjectUtils.d.ts | 28 +- .../types/core/utils/CancelablePromise.d.ts | 14 +- demo/libs/types/core/utils/ColorUtils.d.ts | 42 +- demo/libs/types/core/utils/CommonUtils.d.ts | 250 +- .../core/utils/CoordinateConversionUtils.d.ts | 28 - .../types/core/utils/CoordinateUtils.d.ts | 81 + .../core/utils/DecimalPrecisionUtils.d.ts | 8 +- demo/libs/types/core/utils/DeviceUtils.d.ts | 30 +- demo/libs/types/core/utils/EdgeUtils.d.ts | 28 +- demo/libs/types/core/utils/Event.d.ts | 66 +- demo/libs/types/core/utils/ExportUtils.d.ts | 116 +- demo/libs/types/core/utils/FpsUtils.d.ts | 26 +- demo/libs/types/core/utils/GeometryUtils.d.ts | 156 +- demo/libs/types/core/utils/Locale.d.ts | 380 +-- demo/libs/types/core/utils/LogUtils.d.ts | 14 +- demo/libs/types/core/utils/MaterialUtils.d.ts | 78 +- demo/libs/types/core/utils/MathUtils.d.ts | 118 +- demo/libs/types/core/utils/MergeUtils.d.ts | 238 +- demo/libs/types/core/utils/ObjectUtils.d.ts | 414 ++-- demo/libs/types/core/utils/PolygonUtils.d.ts | 16 +- .../libs/types/core/utils/SVGObjectUtils.d.ts | 32 +- demo/libs/types/core/utils/SceneUtils.d.ts | 52 +- demo/libs/types/core/utils/SectionUtils.d.ts | 22 +- demo/libs/types/core/utils/SimplifyUtils.d.ts | 30 +- demo/libs/types/core/utils/TextureUtils.d.ts | 32 +- .../types/core/utils/UnitConversionUtils.d.ts | 62 +- demo/libs/types/core/utils/Viewer3DUtils.d.ts | 52 +- demo/libs/types/core/utils/index.d.ts | 52 +- demo/libs/types/core/viewers/BaseViewer.d.ts | 520 ++-- demo/libs/types/core/viewers/BimViewer.d.ts | 1019 ++++---- demo/libs/types/core/viewers/DxfViewer.d.ts | 2186 ++++++++--------- demo/libs/types/core/viewers/Plugin.d.ts | 59 +- .../core/viewers/SimplifiedBimViewer.d.ts | 284 +-- demo/libs/types/core/viewers/VRViewer.d.ts | 458 ++-- demo/libs/types/core/viewers/ViewerEvent.d.ts | 174 +- demo/libs/types/core/viewers/index.d.ts | 14 +- demo/libs/types/core/vr/BaseVRMesh.d.ts | 74 +- demo/libs/types/core/vr/VRCube.d.ts | 24 +- demo/libs/types/core/vr/VRCube24Faces.d.ts | 88 +- demo/libs/types/core/vr/VRSphere.d.ts | 18 +- demo/libs/types/core/vr/index.d.ts | 8 +- demo/libs/types/core/webcam/WebCam.d.ts | 56 +- demo/libs/types/core/webcam/index.d.ts | 2 +- .../core/workers/CreateMeshBvh.worker.d.ts | 2 +- .../core/workers/GenerateMeshBvhWorker.d.ts | 34 +- demo/libs/types/core/workers/index.d.ts | 2 +- demo/libs/types/export.doc.d.ts | 18 +- demo/libs/types/fetch-polyfill.d.ts | 4 +- demo/libs/types/index.d.ts | 16 +- .../plugins/axis-gizmo/AxisGizmoPlugin.d.ts | 97 +- .../plugins/axis-gizmo/CoordinateAxes.d.ts | 24 +- demo/libs/types/plugins/axis-gizmo/index.d.ts | 2 +- .../plugins/bottom-bar/BottomBarPlugin.d.ts | 88 +- demo/libs/types/plugins/bottom-bar/index.d.ts | 2 +- .../types/plugins/context-menu/Constants.d.ts | 74 +- .../context-menu/ContextMenu.config.d.ts | 4 +- .../context-menu/ContextMenuPlugin.d.ts | 54 +- .../types/plugins/context-menu/index.d.ts | 6 +- .../plugins/dat-gui/BimViewerDatGui.d.ts | 143 +- demo/libs/types/plugins/dat-gui/index.d.ts | 2 +- .../types/plugins/explode/ExplodePlugin.d.ts | 93 +- .../types/plugins/explode/ObjectExploder.d.ts | 96 +- demo/libs/types/plugins/explode/index.d.ts | 2 +- .../ground-grass/GroundGrassPlugin.d.ts | 91 +- .../types/plugins/ground-grass/index.d.ts | 2 +- .../plugins/ground-grid/GroundGridPlugin.d.ts | 91 +- .../libs/types/plugins/ground-grid/index.d.ts | 2 +- .../ground-shaow/GroundShadowPlugin.d.ts | 89 +- .../types/plugins/ground-shaow/index.d.ts | 2 +- .../plugins/hotpoint/HotpointPlugin.d.ts | 186 +- demo/libs/types/plugins/hotpoint/index.d.ts | 2 +- demo/libs/types/plugins/index.d.ts | 42 +- .../layer-manager/LayerManagerPlugin.d.ts | 117 +- .../types/plugins/layer-manager/index.d.ts | 2 +- .../local-model-uploader/IUploader.d.ts | 20 +- .../LocalDxfUploader.d.ts | 46 +- .../LocalImageUploader.d.ts | 22 +- .../LocalModelUploader.d.ts | 50 +- .../plugins/local-model-uploader/index.d.ts | 6 +- .../plugins/measure/AngleMeasureDrawable.d.ts | 24 +- .../plugins/measure/AngleMeasurement.d.ts | 32 +- .../plugins/measure/AreaMeasureDrawable.d.ts | 28 +- .../plugins/measure/AreaMeasurement.d.ts | 62 +- .../plugins/measure/BaseMeasureDrawable.d.ts | 60 +- .../plugins/measure/BaseMeasurement.d.ts | 252 +- .../measure/CoordinateMeasureDrawable.d.ts | 20 +- .../measure/CoordinateMeasurement.d.ts | 30 +- .../measure/DistanceMeasureDrawable.d.ts | 30 +- .../plugins/measure/DistanceMeasurement.d.ts | 56 +- .../plugins/measure/MeasurementPlugin.d.ts | 262 +- demo/libs/types/plugins/measure/index.d.ts | 6 +- demo/libs/types/plugins/nav-cube/NavCube.d.ts | 24 +- .../types/plugins/nav-cube/NavCubePlugin.d.ts | 71 +- demo/libs/types/plugins/nav-cube/index.d.ts | 2 +- .../plugins/overview-map/ImageDrawable.d.ts | 81 +- .../plugins/overview-map/LineDrawable.d.ts | 39 +- .../overview-map/OverviewMapDrawable.d.ts | 47 +- .../overview-map/OverviewMapPlugin.d.ts | 312 +-- .../plugins/overview-map/TextDrawable.d.ts | 99 +- .../types/plugins/overview-map/index.d.ts | 10 +- demo/libs/types/plugins/pdf/PdfLoader.d.ts | 472 ++-- .../types/plugins/pdf/PdfLoaderPlugin.d.ts | 45 +- demo/libs/types/plugins/pdf/index.d.ts | 4 +- .../plugins/screenshot/ScreenshotPlugin.d.ts | 154 +- demo/libs/types/plugins/screenshot/index.d.ts | 2 +- .../plugins/sections/AxisPlaneSection.d.ts | 78 +- .../plugins/sections/BaseBoxSection.d.ts | 200 +- .../plugins/sections/BasePlaneSection.d.ts | 364 +-- .../types/plugins/sections/BaseSection.d.ts | 119 +- .../plugins/sections/GlobalPlaneSection.d.ts | 48 +- .../plugins/sections/ObjectsBoxSection.d.ts | 54 +- .../plugins/sections/ObjectsPlaneSection.d.ts | 42 +- .../plugins/sections/PickPlaneSection.d.ts | 72 +- .../plugins/sections/Section.constants.d.ts | 26 +- .../types/plugins/sections/SectionGizmo.d.ts | 44 +- ...ectionPlane.d.ts => SectionPlaneMesh.d.ts} | 39 +- .../types/plugins/sections/SectionPlugin.d.ts | 103 +- .../plugins/sections/ViewportSection.d.ts | 110 +- demo/libs/types/plugins/sections/index.d.ts | 10 +- .../plugins/skybox/GradientColorSkybox.d.ts | 18 +- .../types/plugins/skybox/SkyboxPlugin.d.ts | 99 +- demo/libs/types/plugins/skybox/index.d.ts | 2 +- .../libs/types/plugins/stats/StatsPlugin.d.ts | 40 +- demo/libs/types/plugins/stats/index.d.ts | 2 +- .../toolbars/BimViewerToolbarPlugin.d.ts | 48 +- .../toolbars/DxfViewerToolbarPlugin.d.ts | 59 +- .../types/plugins/toolbars/MarkupToolbar.d.ts | 36 +- .../plugins/toolbars/Toolbar.config.d.ts | 18 +- .../plugins/toolbars/Toolbar.constants.d.ts | 192 +- demo/libs/types/plugins/toolbars/Toolbar.d.ts | 204 +- demo/libs/types/plugins/toolbars/index.d.ts | 12 +- .../types/plugins/view-cube/ViewCube.d.ts | 136 +- .../plugins/view-cube/ViewCubePlugin.d.ts | 110 +- demo/libs/types/plugins/view-cube/index.d.ts | 2 +- demo/libs/types/version.d.ts | 4 +- index.html | 2 +- static/css/main.352fe986.css.map | 1 - .../{main.352fe986.css => main.f052ad65.css} | 6 +- static/css/main.f052ad65.css.map | 1 + static/js/main.abd1e4ad.js | 2 - static/js/main.abd1e4ad.js.map | 1 - static/js/main.f2f06aa8.js | 2 + static/js/main.f2f06aa8.js.map | 1 + 317 files changed, 12971 insertions(+), 12973 deletions(-) delete mode 100644 demo/libs/types/core/utils/CoordinateConversionUtils.d.ts create mode 100644 demo/libs/types/core/utils/CoordinateUtils.d.ts rename demo/libs/types/plugins/sections/{SectionPlane.d.ts => SectionPlaneMesh.d.ts} (88%) delete mode 100644 static/css/main.352fe986.css.map rename static/css/{main.352fe986.css => main.f052ad65.css} (99%) create mode 100644 static/css/main.f052ad65.css.map delete mode 100644 static/js/main.abd1e4ad.js delete mode 100644 static/js/main.abd1e4ad.js.map create mode 100644 static/js/main.f2f06aa8.js create mode 100644 static/js/main.f2f06aa8.js.map diff --git a/asset-manifest.json b/asset-manifest.json index 11ddf26..6071833 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,7 +1,7 @@ { "files": { - "main.css": "./static/css/main.352fe986.css", - "main.js": "./static/js/main.abd1e4ad.js", + "main.css": "./static/css/main.f052ad65.css", + "main.js": "./static/js/main.f2f06aa8.js", "static/js/787.cf5efa72.chunk.js": "./static/js/787.cf5efa72.chunk.js", "demo/libs/gemini-viewer.esm.min.js": "./demo/libs/gemini-viewer.esm.min.js", "static/media/dwg_background.png": "./static/media/dwg_background.f630e7cda68e19172eec.png", @@ -15,248 +15,248 @@ "demo/libs/types/core/dxf-parser/DxfParser.d.ts": "./demo/libs/types/core/dxf-parser/DxfParser.d.ts", "demo/libs/types/core/viewers/VRViewer.d.ts": "./demo/libs/types/core/viewers/VRViewer.d.ts", "demo/libs/types/core/viewers/BaseViewer.d.ts": "./demo/libs/types/core/viewers/BaseViewer.d.ts", - "demo/libs/types/plugins/sections/BasePlaneSection.d.ts": "./demo/libs/types/plugins/sections/BasePlaneSection.d.ts", "demo/libs/types/core/patches/shaders/shaderLib/gemini_standard.glsl.d.ts": "./demo/libs/types/core/patches/shaders/shaderLib/gemini_standard.glsl.d.ts", + "demo/libs/types/plugins/sections/BasePlaneSection.d.ts": "./demo/libs/types/plugins/sections/BasePlaneSection.d.ts", "demo/libs/types/core/helpers/OSnapHelper.d.ts": "./demo/libs/types/core/helpers/OSnapHelper.d.ts", "demo/libs/types/plugins/overview-map/OverviewMapPlugin.d.ts": "./demo/libs/types/plugins/overview-map/OverviewMapPlugin.d.ts", "demo/libs/types/core/utils/Locale.d.ts": "./demo/libs/types/core/utils/Locale.d.ts", - "demo/libs/types/plugins/sections/BaseBoxSection.d.ts": "./demo/libs/types/plugins/sections/BaseBoxSection.d.ts", "demo/libs/types/core/dxf/DxfCompare.d.ts": "./demo/libs/types/core/dxf/DxfCompare.d.ts", "demo/libs/types/core/viewers/SimplifiedBimViewer.d.ts": "./demo/libs/types/core/viewers/SimplifiedBimViewer.d.ts", - "demo/libs/types/core/utils/CommonUtils.d.ts": "./demo/libs/types/core/utils/CommonUtils.d.ts", "demo/libs/types/core/utils/MergeUtils.d.ts": "./demo/libs/types/core/utils/MergeUtils.d.ts", + "demo/libs/types/core/utils/CommonUtils.d.ts": "./demo/libs/types/core/utils/CommonUtils.d.ts", "demo/libs/types/plugins/measure/BaseMeasurement.d.ts": "./demo/libs/types/plugins/measure/BaseMeasurement.d.ts", "demo/libs/types/plugins/measure/MeasurementPlugin.d.ts": "./demo/libs/types/plugins/measure/MeasurementPlugin.d.ts", - "demo/libs/types/core/Constants.d.ts": "./demo/libs/types/core/Constants.d.ts", "demo/libs/types/core/controls/VRControls.d.ts": "./demo/libs/types/core/controls/VRControls.d.ts", + "demo/libs/types/core/Constants.d.ts": "./demo/libs/types/core/Constants.d.ts", "demo/libs/types/core/input/InputManager.d.ts": "./demo/libs/types/core/input/InputManager.d.ts", "demo/libs/types/core/compare/BaseDxfCompareHelper.d.ts": "./demo/libs/types/core/compare/BaseDxfCompareHelper.d.ts", "demo/libs/types/core/utils/GeometryUtils.d.ts": "./demo/libs/types/core/utils/GeometryUtils.d.ts", + "demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts": "./demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts", "demo/libs/types/plugins/toolbars/Toolbar.d.ts": "./demo/libs/types/plugins/toolbars/Toolbar.d.ts", "demo/libs/types/core/camera-controls/types.d.ts": "./demo/libs/types/core/camera-controls/types.d.ts", "demo/libs/types/plugins/hotpoint/HotpointPlugin.d.ts": "./demo/libs/types/plugins/hotpoint/HotpointPlugin.d.ts", "demo/libs/types/core/markup/MarkupManager.d.ts": "./demo/libs/types/core/markup/MarkupManager.d.ts", "demo/libs/types/core/dxf-parser/entities/mleader.d.ts": "./demo/libs/types/core/dxf-parser/entities/mleader.d.ts", "demo/libs/types/core/dxf/DxfUtils.d.ts": "./demo/libs/types/core/dxf/DxfUtils.d.ts", + "demo/libs/types/core/utils/CoordinateUtils.d.ts": "./demo/libs/types/core/utils/CoordinateUtils.d.ts", "demo/libs/types/core/compare/DxfCompareHelper.d.ts": "./demo/libs/types/core/compare/DxfCompareHelper.d.ts", "demo/libs/types/plugins/toolbars/Toolbar.constants.d.ts": "./demo/libs/types/plugins/toolbars/Toolbar.constants.d.ts", "demo/libs/types/core/dxf-parser/entities/hatch.d.ts": "./demo/libs/types/core/dxf-parser/entities/hatch.d.ts", "demo/libs/types/core/canvas/Drawable.d.ts": "./demo/libs/types/core/canvas/Drawable.d.ts", "demo/libs/types/core/font/FontManager.d.ts": "./demo/libs/types/core/font/FontManager.d.ts", - "demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts": "./demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts", "demo/libs/types/core/helpers/LoadingHelper.d.ts": "./demo/libs/types/core/helpers/LoadingHelper.d.ts", - "demo/libs/types/plugins/sections/BaseSection.d.ts": "./demo/libs/types/plugins/sections/BaseSection.d.ts", "demo/libs/types/core/utils/MathUtils.d.ts": "./demo/libs/types/core/utils/MathUtils.d.ts", + "demo/libs/types/plugins/sections/BaseSection.d.ts": "./demo/libs/types/plugins/sections/BaseSection.d.ts", "demo/libs/types/plugins/view-cube/ViewCube.d.ts": "./demo/libs/types/plugins/view-cube/ViewCube.d.ts", + "demo/libs/types/core/utils/ExportUtils.d.ts": "./demo/libs/types/core/utils/ExportUtils.d.ts", "demo/libs/types/core/viewers/ViewerEvent.d.ts": "./demo/libs/types/core/viewers/ViewerEvent.d.ts", "demo/libs/types/plugins/dat-gui/BimViewerDatGui.d.ts": "./demo/libs/types/plugins/dat-gui/BimViewerDatGui.d.ts", - "demo/libs/types/core/utils/ExportUtils.d.ts": "./demo/libs/types/core/utils/ExportUtils.d.ts", "demo/libs/types/plugins/layer-manager/LayerManagerPlugin.d.ts": "./demo/libs/types/plugins/layer-manager/LayerManagerPlugin.d.ts", "demo/libs/types/core/canvas/CanvasRender.d.ts": "./demo/libs/types/core/canvas/CanvasRender.d.ts", "demo/libs/types/plugins/skybox/SkyboxPlugin.d.ts": "./demo/libs/types/plugins/skybox/SkyboxPlugin.d.ts", "demo/libs/types/plugins/sections/SectionPlugin.d.ts": "./demo/libs/types/plugins/sections/SectionPlugin.d.ts", "demo/libs/types/core/markup/CloudRectWithTextMarkup.d.ts": "./demo/libs/types/core/markup/CloudRectWithTextMarkup.d.ts", - "demo/libs/types/core/font/ShxFont.d.ts": "./demo/libs/types/core/font/ShxFont.d.ts", "demo/libs/types/core/dxf-parser/index.d.ts": "./demo/libs/types/core/dxf-parser/index.d.ts", + "demo/libs/types/core/font/ShxFont.d.ts": "./demo/libs/types/core/font/ShxFont.d.ts", "demo/libs/types/core/webcam/WebCam.d.ts": "./demo/libs/types/core/webcam/WebCam.d.ts", - "demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts": "./demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts", - "demo/libs/types/core/utils/CoordinateConversionUtils.d.ts": "./demo/libs/types/core/utils/CoordinateConversionUtils.d.ts", - "demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts": "./demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts", - "demo/libs/types/core/helpers/BoxSelectHelper.d.ts": "./demo/libs/types/core/helpers/BoxSelectHelper.d.ts", "demo/libs/types/plugins/sections/PickPlaneSection.d.ts": "./demo/libs/types/plugins/sections/PickPlaneSection.d.ts", - "demo/libs/types/core/markup/TextMarkup.d.ts": "./demo/libs/types/core/markup/TextMarkup.d.ts", + "demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts": "./demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts", + "demo/libs/types/core/helpers/BoxSelectHelper.d.ts": "./demo/libs/types/core/helpers/BoxSelectHelper.d.ts", + "demo/libs/types/plugins/sections/AxisPlaneSection.d.ts": "./demo/libs/types/plugins/sections/AxisPlaneSection.d.ts", "demo/libs/types/core/dxf-parser/ParseHelpers.d.ts": "./demo/libs/types/core/dxf-parser/ParseHelpers.d.ts", - "demo/libs/types/plugins/sections/ViewportSection.d.ts": "./demo/libs/types/plugins/sections/ViewportSection.d.ts", + "demo/libs/types/core/markup/TextMarkup.d.ts": "./demo/libs/types/core/markup/TextMarkup.d.ts", "demo/libs/types/plugins/measure/BaseMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/BaseMeasureDrawable.d.ts", + "demo/libs/types/plugins/sections/ViewportSection.d.ts": "./demo/libs/types/plugins/sections/ViewportSection.d.ts", + "demo/libs/types/plugins/explode/ExplodePlugin.d.ts": "./demo/libs/types/plugins/explode/ExplodePlugin.d.ts", + "demo/libs/types/plugins/overview-map/TextDrawable.d.ts": "./demo/libs/types/plugins/overview-map/TextDrawable.d.ts", "demo/libs/types/plugins/bottom-bar/BottomBarPlugin.d.ts": "./demo/libs/types/plugins/bottom-bar/BottomBarPlugin.d.ts", "demo/libs/types/core/utils/MaterialUtils.d.ts": "./demo/libs/types/core/utils/MaterialUtils.d.ts", - "demo/libs/types/plugins/overview-map/TextDrawable.d.ts": "./demo/libs/types/plugins/overview-map/TextDrawable.d.ts", "demo/libs/types/core/vr/BaseVRMesh.d.ts": "./demo/libs/types/core/vr/BaseVRMesh.d.ts", - "demo/libs/types/plugins/explode/ExplodePlugin.d.ts": "./demo/libs/types/plugins/explode/ExplodePlugin.d.ts", + "demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts": "./demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts", + "demo/libs/types/export.doc.d.ts": "./demo/libs/types/export.doc.d.ts", + "demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts": "./demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts", "demo/libs/types/core/dxf-parser/entities/viewport.d.ts": "./demo/libs/types/core/dxf-parser/entities/viewport.d.ts", "demo/libs/types/plugins/explode/ObjectExploder.d.ts": "./demo/libs/types/plugins/explode/ObjectExploder.d.ts", "demo/libs/types/core/TextTexture/TextTexture.d.ts": "./demo/libs/types/core/TextTexture/TextTexture.d.ts", "demo/libs/types/core/dxf-parser/entities/geomtry.d.ts": "./demo/libs/types/core/dxf-parser/entities/geomtry.d.ts", - "demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts": "./demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts", - "demo/libs/types/core/geometry-offset/Offset.d.ts": "./demo/libs/types/core/geometry-offset/Offset.d.ts", - "demo/libs/types/export.doc.d.ts": "./demo/libs/types/export.doc.d.ts", - "demo/libs/types/plugins/sections/AxisPlaneSection.d.ts": "./demo/libs/types/plugins/sections/AxisPlaneSection.d.ts", - "demo/libs/types/core/vr/VRCube24Faces.d.ts": "./demo/libs/types/core/vr/VRCube24Faces.d.ts", "demo/libs/types/plugins/sections/SectionGizmo.d.ts": "./demo/libs/types/plugins/sections/SectionGizmo.d.ts", - "demo/libs/types/plugins/overview-map/ImageDrawable.d.ts": "./demo/libs/types/plugins/overview-map/ImageDrawable.d.ts", + "demo/libs/types/core/geometry-offset/Offset.d.ts": "./demo/libs/types/core/geometry-offset/Offset.d.ts", + "demo/libs/types/core/vr/VRCube24Faces.d.ts": "./demo/libs/types/core/vr/VRCube24Faces.d.ts", "demo/libs/types/plugins/sections/ObjectsBoxSection.d.ts": "./demo/libs/types/plugins/sections/ObjectsBoxSection.d.ts", "demo/libs/types/plugins/nav-cube/NavCubePlugin.d.ts": "./demo/libs/types/plugins/nav-cube/NavCubePlugin.d.ts", + "demo/libs/types/plugins/overview-map/ImageDrawable.d.ts": "./demo/libs/types/plugins/overview-map/ImageDrawable.d.ts", "demo/libs/types/plugins/ground-grass/GroundGrassPlugin.d.ts": "./demo/libs/types/plugins/ground-grass/GroundGrassPlugin.d.ts", - "demo/libs/types/core/font/BaseFont.d.ts": "./demo/libs/types/core/font/BaseFont.d.ts", "demo/libs/types/plugins/ground-grid/GroundGridPlugin.d.ts": "./demo/libs/types/plugins/ground-grid/GroundGridPlugin.d.ts", + "demo/libs/types/core/font/BaseFont.d.ts": "./demo/libs/types/core/font/BaseFont.d.ts", "demo/libs/types/core/helpers/ControlsHelper.d.ts": "./demo/libs/types/core/helpers/ControlsHelper.d.ts", "demo/libs/types/core/camera-controls/EventDispatcher.d.ts": "./demo/libs/types/core/camera-controls/EventDispatcher.d.ts", "demo/libs/types/plugins/measure/AreaMeasurement.d.ts": "./demo/libs/types/plugins/measure/AreaMeasurement.d.ts", "demo/libs/types/core/font/shx/util/BitConverter.d.ts": "./demo/libs/types/core/font/shx/util/BitConverter.d.ts", "demo/libs/types/core/markup/BaseMarkup.d.ts": "./demo/libs/types/core/markup/BaseMarkup.d.ts", + "demo/libs/types/plugins/sections/BaseBoxSection.d.ts": "./demo/libs/types/plugins/sections/BaseBoxSection.d.ts", + "demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts": "./demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts", "demo/libs/types/core/indexeddb/BaseTable.d.ts": "./demo/libs/types/core/indexeddb/BaseTable.d.ts", - "demo/libs/types/core/dxf/dxfom-mtext.d.ts": "./demo/libs/types/core/dxf/dxfom-mtext.d.ts", "demo/libs/types/core/controls/CameraControlsEx.d.ts": "./demo/libs/types/core/controls/CameraControlsEx.d.ts", "demo/libs/types/core/utils/SceneUtils.d.ts": "./demo/libs/types/core/utils/SceneUtils.d.ts", - "demo/libs/types/core/dxf/DxfObject.d.ts": "./demo/libs/types/core/dxf/DxfObject.d.ts", + "demo/libs/types/core/dxf/dxfom-mtext.d.ts": "./demo/libs/types/core/dxf/dxfom-mtext.d.ts", "demo/libs/types/plugins/measure/DistanceMeasurement.d.ts": "./demo/libs/types/plugins/measure/DistanceMeasurement.d.ts", + "demo/libs/types/core/dxf/DxfObject.d.ts": "./demo/libs/types/core/dxf/DxfObject.d.ts", "demo/libs/types/core/dxf-parser/DxfTextReader.d.ts": "./demo/libs/types/core/dxf-parser/DxfTextReader.d.ts", "demo/libs/types/core/canvas/DrawableList.d.ts": "./demo/libs/types/core/canvas/DrawableList.d.ts", "demo/libs/types/core/dxf-parser/entities/image.d.ts": "./demo/libs/types/core/dxf-parser/entities/image.d.ts", "demo/libs/types/plugins/local-model-uploader/LocalModelUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/LocalModelUploader.d.ts", - "demo/libs/types/components/progress-bar/ProgressBar.d.ts": "./demo/libs/types/components/progress-bar/ProgressBar.d.ts", "demo/libs/types/core/markup/LeaderLineMarkup.d.ts": "./demo/libs/types/core/markup/LeaderLineMarkup.d.ts", + "demo/libs/types/components/progress-bar/ProgressBar.d.ts": "./demo/libs/types/components/progress-bar/ProgressBar.d.ts", "demo/libs/types/core/helpers/MobileTouchHelperDrawable.d.ts": "./demo/libs/types/core/helpers/MobileTouchHelperDrawable.d.ts", - "demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts": "./demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts", - "demo/libs/types/core/utils/Event.d.ts": "./demo/libs/types/core/utils/Event.d.ts", "demo/libs/types/core/camera-controls/utils/math-utils.d.ts": "./demo/libs/types/core/camera-controls/utils/math-utils.d.ts", - "demo/libs/types/components/settings/ProjectSettingsDef.d.ts": "./demo/libs/types/components/settings/ProjectSettingsDef.d.ts", + "demo/libs/types/core/utils/Event.d.ts": "./demo/libs/types/core/utils/Event.d.ts", "demo/libs/types/core/helpers/PickMarkupHelper.d.ts": "./demo/libs/types/core/helpers/PickMarkupHelper.d.ts", + "demo/libs/types/core/dxf-parser/objects/common.d.ts": "./demo/libs/types/core/dxf-parser/objects/common.d.ts", + "demo/libs/types/components/settings/ProjectSettingsDef.d.ts": "./demo/libs/types/components/settings/ProjectSettingsDef.d.ts", "demo/libs/types/core/dxf-parser/entities/attdef.d.ts": "./demo/libs/types/core/dxf-parser/entities/attdef.d.ts", "demo/libs/types/core/dxf-parser/entities/attrib.d.ts": "./demo/libs/types/core/dxf-parser/entities/attrib.d.ts", - "demo/libs/types/core/dxf-parser/objects/common.d.ts": "./demo/libs/types/core/dxf-parser/objects/common.d.ts", "demo/libs/types/core/indexeddb/FontDataTable.d.ts": "./demo/libs/types/core/indexeddb/FontDataTable.d.ts", - "demo/libs/types/core/viewers/Plugin.d.ts": "./demo/libs/types/core/viewers/Plugin.d.ts", - "demo/libs/types/plugins/context-menu/Constants.d.ts": "./demo/libs/types/plugins/context-menu/Constants.d.ts", + "demo/libs/types/plugins/sections/SectionPlaneMesh.d.ts": "./demo/libs/types/plugins/sections/SectionPlaneMesh.d.ts", "demo/libs/types/core/shp-js/ShpThree.d.ts": "./demo/libs/types/core/shp-js/ShpThree.d.ts", + "demo/libs/types/plugins/context-menu/Constants.d.ts": "./demo/libs/types/plugins/context-menu/Constants.d.ts", "demo/libs/types/core/utils/index.d.ts": "./demo/libs/types/core/utils/index.d.ts", - "demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts": "./demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts", + "demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts": "./demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts", "demo/libs/types/core/dxf-parser/objects/spatialfilter.d.ts": "./demo/libs/types/core/dxf-parser/objects/spatialfilter.d.ts", - "demo/libs/types/plugins/sections/SectionPlane.d.ts": "./demo/libs/types/plugins/sections/SectionPlane.d.ts", + "demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts": "./demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts", + "demo/libs/types/core/viewers/Plugin.d.ts": "./demo/libs/types/core/viewers/Plugin.d.ts", "demo/libs/types/core/dxf-parser/objects/layout.d.ts": "./demo/libs/types/core/dxf-parser/objects/layout.d.ts", "demo/libs/types/plugins/measure/AngleMeasurement.d.ts": "./demo/libs/types/plugins/measure/AngleMeasurement.d.ts", - "demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts": "./demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts", - "demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts": "./demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts", "demo/libs/types/plugins/measure/CoordinateMeasurement.d.ts": "./demo/libs/types/plugins/measure/CoordinateMeasurement.d.ts", + "demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts": "./demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts", "demo/libs/types/core/canvas/Constants.d.ts": "./demo/libs/types/core/canvas/Constants.d.ts", - "demo/libs/types/core/utils/Viewer3DUtils.d.ts": "./demo/libs/types/core/utils/Viewer3DUtils.d.ts", "demo/libs/types/core/font/shx/TextShape.d.ts": "./demo/libs/types/core/font/shx/TextShape.d.ts", - "demo/libs/types/core/indexeddb/IndexedDbManager.d.ts": "./demo/libs/types/core/indexeddb/IndexedDbManager.d.ts", + "demo/libs/types/core/utils/Viewer3DUtils.d.ts": "./demo/libs/types/core/utils/Viewer3DUtils.d.ts", "demo/libs/types/plugins/overview-map/OverviewMapDrawable.d.ts": "./demo/libs/types/plugins/overview-map/OverviewMapDrawable.d.ts", - "demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts": "./demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts", + "demo/libs/types/core/indexeddb/IndexedDbManager.d.ts": "./demo/libs/types/core/indexeddb/IndexedDbManager.d.ts", "demo/libs/types/core/dxf-parser/entities/polyline.d.ts": "./demo/libs/types/core/dxf-parser/entities/polyline.d.ts", - "demo/libs/types/core/helpers/InstantiateHelper.d.ts": "./demo/libs/types/core/helpers/InstantiateHelper.d.ts", + "demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts": "./demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts", "demo/libs/types/core/dxf-parser/objects/imagedef.d.ts": "./demo/libs/types/core/dxf-parser/objects/imagedef.d.ts", "demo/libs/types/core/dxf-parser/entities/spline.d.ts": "./demo/libs/types/core/dxf-parser/entities/spline.d.ts", + "demo/libs/types/core/helpers/InstantiateHelper.d.ts": "./demo/libs/types/core/helpers/InstantiateHelper.d.ts", + "demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts": "./demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts", "demo/libs/types/plugins/sections/ObjectsPlaneSection.d.ts": "./demo/libs/types/plugins/sections/ObjectsPlaneSection.d.ts", "demo/libs/types/core/dxf-parser/entities/dimension.d.ts": "./demo/libs/types/core/dxf-parser/entities/dimension.d.ts", - "demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts": "./demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts", + "demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts", + "demo/libs/types/core/helpers/ZoomToRectHelper.d.ts": "./demo/libs/types/core/helpers/ZoomToRectHelper.d.ts", + "demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts", "demo/libs/types/core/dxf-parser/entities/lwpolyline.d.ts": "./demo/libs/types/core/dxf-parser/entities/lwpolyline.d.ts", "demo/libs/types/core/dxf-parser/entities/leader.d.ts": "./demo/libs/types/core/dxf-parser/entities/leader.d.ts", - "demo/libs/types/core/helpers/ZoomToRectHelper.d.ts": "./demo/libs/types/core/helpers/ZoomToRectHelper.d.ts", - "demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts", - "demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts", - "demo/libs/types/core/helpers/BinaryReader.d.ts": "./demo/libs/types/core/helpers/BinaryReader.d.ts", - "demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts": "./demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts", - "demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts", - "demo/libs/types/plugins/overview-map/LineDrawable.d.ts": "./demo/libs/types/plugins/overview-map/LineDrawable.d.ts", - "demo/libs/types/core/utils/ColorUtils.d.ts": "./demo/libs/types/core/utils/ColorUtils.d.ts", - "demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts", "demo/libs/types/plugins/pdf/PdfLoaderPlugin.d.ts": "./demo/libs/types/plugins/pdf/PdfLoaderPlugin.d.ts", + "demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts": "./demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts", + "demo/libs/types/core/helpers/BinaryReader.d.ts": "./demo/libs/types/core/helpers/BinaryReader.d.ts", + "demo/libs/types/plugins/overview-map/LineDrawable.d.ts": "./demo/libs/types/plugins/overview-map/LineDrawable.d.ts", + "demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts", + "index.html": "./index.html", + "demo/libs/types/core/utils/ColorUtils.d.ts": "./demo/libs/types/core/utils/ColorUtils.d.ts", "demo/libs/types/core/dxf-parser/entities/vertex.d.ts": "./demo/libs/types/core/dxf-parser/entities/vertex.d.ts", "demo/libs/types/core/font/shx/ShxParser.d.ts": "./demo/libs/types/core/font/shx/ShxParser.d.ts", + "demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts", "demo/libs/types/core/dxf/dxfom-text.d.ts": "./demo/libs/types/core/dxf/dxfom-text.d.ts", - "demo/libs/types/core/geometry-offset/Edge.d.ts": "./demo/libs/types/core/geometry-offset/Edge.d.ts", - "index.html": "./index.html", "demo/libs/types/core/utils/EdgeUtils.d.ts": "./demo/libs/types/core/utils/EdgeUtils.d.ts", + "demo/libs/types/core/geometry-offset/Edge.d.ts": "./demo/libs/types/core/geometry-offset/Edge.d.ts", "demo/libs/types/plugins/index.d.ts": "./demo/libs/types/plugins/index.d.ts", + "demo/libs/types/core/utils/SectionUtils.d.ts": "./demo/libs/types/core/utils/SectionUtils.d.ts", "demo/libs/types/plugins/stats/StatsPlugin.d.ts": "./demo/libs/types/plugins/stats/StatsPlugin.d.ts", - "demo/libs/types/core/indexeddb/DxfDataTable.d.ts": "./demo/libs/types/core/indexeddb/DxfDataTable.d.ts", "demo/libs/types/core/dxf-parser/entities/insert.d.ts": "./demo/libs/types/core/dxf-parser/entities/insert.d.ts", "demo/libs/types/core/dxf-parser/entities/ole2frame.d.ts": "./demo/libs/types/core/dxf-parser/entities/ole2frame.d.ts", - "demo/libs/types/core/utils/SectionUtils.d.ts": "./demo/libs/types/core/utils/SectionUtils.d.ts", + "demo/libs/types/core/indexeddb/DxfDataTable.d.ts": "./demo/libs/types/core/indexeddb/DxfDataTable.d.ts", "demo/libs/types/components/tool-tip/Tooltip.d.ts": "./demo/libs/types/components/tool-tip/Tooltip.d.ts", "demo/libs/types/core/dxf-parser/objects/dictionary.d.ts": "./demo/libs/types/core/dxf-parser/objects/dictionary.d.ts", "demo/libs/types/core/index.d.ts": "./demo/libs/types/core/index.d.ts", - "demo/libs/types/core/utils/UnitConversionUtils.d.ts": "./demo/libs/types/core/utils/UnitConversionUtils.d.ts", "demo/libs/types/core/helpers/RafHelper.d.ts": "./demo/libs/types/core/helpers/RafHelper.d.ts", "demo/libs/types/core/font/MeshFont.d.ts": "./demo/libs/types/core/font/MeshFont.d.ts", - "demo/libs/types/core/compare/CompareDrawable.d.ts": "./demo/libs/types/core/compare/CompareDrawable.d.ts", "demo/libs/types/core/utils/CSS2DObjectUtils.d.ts": "./demo/libs/types/core/utils/CSS2DObjectUtils.d.ts", + "demo/libs/types/core/compare/CompareDrawable.d.ts": "./demo/libs/types/core/compare/CompareDrawable.d.ts", + "demo/libs/types/core/utils/UnitConversionUtils.d.ts": "./demo/libs/types/core/utils/UnitConversionUtils.d.ts", "demo/libs/types/core/dxf-parser/entities/mtext.d.ts": "./demo/libs/types/core/dxf-parser/entities/mtext.d.ts", - "demo/libs/types/core/undo-redo/UndoRedoManager.d.ts": "./demo/libs/types/core/undo-redo/UndoRedoManager.d.ts", "demo/libs/types/core/markup/ArrowMarkup.d.ts": "./demo/libs/types/core/markup/ArrowMarkup.d.ts", - "demo/libs/types/core/utils/TextureUtils.d.ts": "./demo/libs/types/core/utils/TextureUtils.d.ts", "demo/libs/types/core/helpers/MeshBvhHelper.d.ts": "./demo/libs/types/core/helpers/MeshBvhHelper.d.ts", + "demo/libs/types/core/utils/TextureUtils.d.ts": "./demo/libs/types/core/utils/TextureUtils.d.ts", + "demo/libs/types/core/undo-redo/UndoRedoManager.d.ts": "./demo/libs/types/core/undo-redo/UndoRedoManager.d.ts", "demo/libs/types/core/materials/GeminiStandardMaterial.d.ts": "./demo/libs/types/core/materials/GeminiStandardMaterial.d.ts", "demo/libs/types/plugins/toolbars/MarkupToolbar.d.ts": "./demo/libs/types/plugins/toolbars/MarkupToolbar.d.ts", "demo/libs/types/core/dxf-parser/entities/text.d.ts": "./demo/libs/types/core/dxf-parser/entities/text.d.ts", "demo/libs/types/core/dxf-parser/entities/arc.d.ts": "./demo/libs/types/core/dxf-parser/entities/arc.d.ts", + "demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts": "./demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts", "demo/libs/types/core/workers/GenerateMeshBvhWorker.d.ts": "./demo/libs/types/core/workers/GenerateMeshBvhWorker.d.ts", "demo/libs/types/plugins/axis-gizmo/CoordinateAxes.d.ts": "./demo/libs/types/plugins/axis-gizmo/CoordinateAxes.d.ts", - "demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts": "./demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts", "demo/libs/types/core/utils/SVGObjectUtils.d.ts": "./demo/libs/types/core/utils/SVGObjectUtils.d.ts", "demo/libs/types/core/dxf-parser/entities/ellipse.d.ts": "./demo/libs/types/core/dxf-parser/entities/ellipse.d.ts", "demo/libs/types/core/markup/Constants.d.ts": "./demo/libs/types/core/markup/Constants.d.ts", "demo/libs/types/core/markup/CircleMarkup.d.ts": "./demo/libs/types/core/markup/CircleMarkup.d.ts", "demo/libs/types/core/utils/DeviceUtils.d.ts": "./demo/libs/types/core/utils/DeviceUtils.d.ts", "demo/libs/types/plugins/measure/CoordinateMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/CoordinateMeasureDrawable.d.ts", - "demo/libs/types/core/markup/CloudLineMarkup.d.ts": "./demo/libs/types/core/markup/CloudLineMarkup.d.ts", "demo/libs/types/plugins/skybox/GradientColorSkybox.d.ts": "./demo/libs/types/plugins/skybox/GradientColorSkybox.d.ts", + "demo/libs/types/core/markup/CloudLineMarkup.d.ts": "./demo/libs/types/core/markup/CloudLineMarkup.d.ts", "demo/libs/types/core/markup/EllipseMarkup.d.ts": "./demo/libs/types/core/markup/EllipseMarkup.d.ts", "demo/libs/types/core/dxf-parser/objects/sortentstable.d.ts": "./demo/libs/types/core/dxf-parser/objects/sortentstable.d.ts", - "demo/libs/types/core/Units.d.ts": "./demo/libs/types/core/Units.d.ts", "demo/libs/types/core/markup/PolylineMarkup.d.ts": "./demo/libs/types/core/markup/PolylineMarkup.d.ts", + "demo/libs/types/core/Units.d.ts": "./demo/libs/types/core/Units.d.ts", "demo/libs/types/core/vr/VRCube.d.ts": "./demo/libs/types/core/vr/VRCube.d.ts", - "demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts": "./demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts", "demo/libs/types/core/markup/CloudRectMarkup.d.ts": "./demo/libs/types/core/markup/CloudRectMarkup.d.ts", + "demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts": "./demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts", "demo/libs/types/core/dxf-parser/objects/xrecord.d.ts": "./demo/libs/types/core/dxf-parser/objects/xrecord.d.ts", - "demo/libs/types/core/utils/SimplifyUtils.d.ts": "./demo/libs/types/core/utils/SimplifyUtils.d.ts", "demo/libs/types/core/dxf-parser/entities/circle.d.ts": "./demo/libs/types/core/dxf-parser/entities/circle.d.ts", "demo/libs/types/core/dxf/LinePatternShaders.d.ts": "./demo/libs/types/core/dxf/LinePatternShaders.d.ts", + "demo/libs/types/core/utils/SimplifyUtils.d.ts": "./demo/libs/types/core/utils/SimplifyUtils.d.ts", "demo/libs/types/core/compare/DxfCompareMarkupManager.d.ts": "./demo/libs/types/core/compare/DxfCompareMarkupManager.d.ts", - "demo/libs/types/core/helpers/index.d.ts": "./demo/libs/types/core/helpers/index.d.ts", "demo/libs/types/core/markup/RectMarkup.d.ts": "./demo/libs/types/core/markup/RectMarkup.d.ts", + "demo/libs/types/core/helpers/index.d.ts": "./demo/libs/types/core/helpers/index.d.ts", "demo/libs/types/core/markup/XMarkup.d.ts": "./demo/libs/types/core/markup/XMarkup.d.ts", "demo/libs/types/core/markup/index.d.ts": "./demo/libs/types/core/markup/index.d.ts", "demo/libs/types/core/indexeddb/AnnotationTable.d.ts": "./demo/libs/types/core/indexeddb/AnnotationTable.d.ts", + "demo/libs/types/core/dxf-parser/entities/3dface.d.ts": "./demo/libs/types/core/dxf-parser/entities/3dface.d.ts", "demo/libs/types/components/pop-panel/PopPanel.d.ts": "./demo/libs/types/components/pop-panel/PopPanel.d.ts", "demo/libs/types/core/indexeddb/ViewpointTable.d.ts": "./demo/libs/types/core/indexeddb/ViewpointTable.d.ts", - "demo/libs/types/core/dxf-parser/entities/3dface.d.ts": "./demo/libs/types/core/dxf-parser/entities/3dface.d.ts", "demo/libs/types/core/dxf-parser/DxfBinaryReader.d.ts": "./demo/libs/types/core/dxf-parser/DxfBinaryReader.d.ts", "demo/libs/types/core/dxf/HatchPatternShaders.d.ts": "./demo/libs/types/core/dxf/HatchPatternShaders.d.ts", "demo/libs/types/core/undo-redo/UpdateMarkupCommand.d.ts": "./demo/libs/types/core/undo-redo/UpdateMarkupCommand.d.ts", "demo/libs/types/core/dxf-parser/AutoCadColorIndex.d.ts": "./demo/libs/types/core/dxf-parser/AutoCadColorIndex.d.ts", - "demo/libs/types/plugins/sections/Section.constants.d.ts": "./demo/libs/types/plugins/sections/Section.constants.d.ts", - "demo/libs/types/core/dxf-parser/entities/point.d.ts": "./demo/libs/types/core/dxf-parser/entities/point.d.ts", "demo/libs/types/core/patches/shaders/shaderChunk/outine_bc_vertex.glsl.d.ts": "./demo/libs/types/core/patches/shaders/shaderChunk/outine_bc_vertex.glsl.d.ts", + "demo/libs/types/core/dxf-parser/entities/point.d.ts": "./demo/libs/types/core/dxf-parser/entities/point.d.ts", + "demo/libs/types/plugins/sections/Section.constants.d.ts": "./demo/libs/types/plugins/sections/Section.constants.d.ts", "demo/libs/types/core/dxf-parser/entities/region.d.ts": "./demo/libs/types/core/dxf-parser/entities/region.d.ts", "demo/libs/types/core/dxf-parser/entities/solid.d.ts": "./demo/libs/types/core/dxf-parser/entities/solid.d.ts", "demo/libs/types/core/dxf-parser/entities/xline.d.ts": "./demo/libs/types/core/dxf-parser/entities/xline.d.ts", - "demo/libs/types/core/shp-js/SHPLoader.d.ts": "./demo/libs/types/core/shp-js/SHPLoader.d.ts", "demo/libs/types/core/dxf-parser/entities/line.d.ts": "./demo/libs/types/core/dxf-parser/entities/line.d.ts", - "demo/libs/types/plugins/nav-cube/NavCube.d.ts": "./demo/libs/types/plugins/nav-cube/NavCube.d.ts", + "demo/libs/types/core/shp-js/SHPLoader.d.ts": "./demo/libs/types/core/shp-js/SHPLoader.d.ts", "demo/libs/types/core/dxf/bspline.d.ts": "./demo/libs/types/core/dxf/bspline.d.ts", - "demo/libs/types/core/dxf-parser/entities/ray.d.ts": "./demo/libs/types/core/dxf-parser/entities/ray.d.ts", + "demo/libs/types/plugins/nav-cube/NavCube.d.ts": "./demo/libs/types/plugins/nav-cube/NavCube.d.ts", "demo/libs/types/core/markup/DotMarkup.d.ts": "./demo/libs/types/core/markup/DotMarkup.d.ts", + "demo/libs/types/core/dxf-parser/entities/ray.d.ts": "./demo/libs/types/core/dxf-parser/entities/ray.d.ts", "demo/libs/types/core/undo-redo/RemoveMarkupCommand.d.ts": "./demo/libs/types/core/undo-redo/RemoveMarkupCommand.d.ts", "demo/libs/types/core/undo-redo/AddMarkupCommand.d.ts": "./demo/libs/types/core/undo-redo/AddMarkupCommand.d.ts", "demo/libs/types/core/dxf/DxfConstants.d.ts": "./demo/libs/types/core/dxf/DxfConstants.d.ts", "demo/libs/types/core/dxf/index.d.ts": "./demo/libs/types/core/dxf/index.d.ts", "demo/libs/types/core/undo-redo/RemoveMeasurementCommand.d.ts": "./demo/libs/types/core/undo-redo/RemoveMeasurementCommand.d.ts", - "demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts", "demo/libs/types/core/undo-redo/AddMeasurementCommand.d.ts": "./demo/libs/types/core/undo-redo/AddMeasurementCommand.d.ts", + "demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts", "demo/libs/types/core/vr/VRSphere.d.ts": "./demo/libs/types/core/vr/VRSphere.d.ts", "demo/libs/types/core/dxf-parser/DxfBaseReader.d.ts": "./demo/libs/types/core/dxf-parser/DxfBaseReader.d.ts", "demo/libs/types/core/shp-js/BitView.d.ts": "./demo/libs/types/core/shp-js/BitView.d.ts", "demo/libs/types/core/dxf-parser/entities/seqend.d.ts": "./demo/libs/types/core/dxf-parser/entities/seqend.d.ts", "demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_fragment.glsl.d.ts": "./demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_fragment.glsl.d.ts", - "demo/libs/types/core/undo-redo/index.d.ts": "./demo/libs/types/core/undo-redo/index.d.ts", "demo/libs/types/core/font/shx/gbk/index.d.ts": "./demo/libs/types/core/font/shx/gbk/index.d.ts", + "demo/libs/types/core/undo-redo/index.d.ts": "./demo/libs/types/core/undo-redo/index.d.ts", "demo/libs/types/plugins/local-model-uploader/IUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/IUploader.d.ts", "demo/libs/types/core/utils/PolygonUtils.d.ts": "./demo/libs/types/core/utils/PolygonUtils.d.ts", "demo/libs/types/index.d.ts": "./demo/libs/types/index.d.ts", "demo/libs/types/plugins/toolbars/Toolbar.config.d.ts": "./demo/libs/types/plugins/toolbars/Toolbar.config.d.ts", "demo/libs/types/core/utils/LogUtils.d.ts": "./demo/libs/types/core/utils/LogUtils.d.ts", + "demo/libs/types/plugins/toolbars/index.d.ts": "./demo/libs/types/plugins/toolbars/index.d.ts", "demo/libs/types/core/utils/FpsUtils.d.ts": "./demo/libs/types/core/utils/FpsUtils.d.ts", "demo/libs/types/core/shp-js/Shp.d.ts": "./demo/libs/types/core/shp-js/Shp.d.ts", - "demo/libs/types/core/font/shx/Shx.constants.d.ts": "./demo/libs/types/core/font/shx/Shx.constants.d.ts", - "demo/libs/types/plugins/toolbars/index.d.ts": "./demo/libs/types/plugins/toolbars/index.d.ts", "demo/libs/types/core/viewers/index.d.ts": "./demo/libs/types/core/viewers/index.d.ts", + "demo/libs/types/core/font/shx/Shx.constants.d.ts": "./demo/libs/types/core/font/shx/Shx.constants.d.ts", "demo/libs/types/core/camera-controls/utils/notSupportedInOrthographicCamera.d.ts": "./demo/libs/types/core/camera-controls/utils/notSupportedInOrthographicCamera.d.ts", "demo/libs/types/core/indexeddb/index.d.ts": "./demo/libs/types/core/indexeddb/index.d.ts", - "demo/libs/types/core/utils/CancelablePromise.d.ts": "./demo/libs/types/core/utils/CancelablePromise.d.ts", "demo/libs/types/core/camera-controls/utils/extractClientCoordFromEvent.d.ts": "./demo/libs/types/core/camera-controls/utils/extractClientCoordFromEvent.d.ts", + "demo/libs/types/core/utils/CancelablePromise.d.ts": "./demo/libs/types/core/utils/CancelablePromise.d.ts", "demo/libs/types/core/VersionManager.d.ts": "./demo/libs/types/core/VersionManager.d.ts", "demo/libs/types/plugins/overview-map/index.d.ts": "./demo/libs/types/plugins/overview-map/index.d.ts", "demo/libs/types/plugins/sections/index.d.ts": "./demo/libs/types/plugins/sections/index.d.ts", @@ -270,15 +270,15 @@ "demo/libs/types/plugins/local-model-uploader/index.d.ts": "./demo/libs/types/plugins/local-model-uploader/index.d.ts", "demo/libs/types/plugins/measure/index.d.ts": "./demo/libs/types/plugins/measure/index.d.ts", "demo/libs/types/core/shp-js/index.d.ts": "./demo/libs/types/core/shp-js/index.d.ts", - "demo/libs/types/components/pop-panel/index.d.ts": "./demo/libs/types/components/pop-panel/index.d.ts", "demo/libs/types/plugins/context-menu/ContextMenu.config.d.ts": "./demo/libs/types/plugins/context-menu/ContextMenu.config.d.ts", + "demo/libs/types/components/pop-panel/index.d.ts": "./demo/libs/types/components/pop-panel/index.d.ts", "demo/libs/types/plugins/context-menu/index.d.ts": "./demo/libs/types/plugins/context-menu/index.d.ts", "demo/libs/types/core/dxf/round10.d.ts": "./demo/libs/types/core/dxf/round10.d.ts", "demo/libs/types/core/camera-controls/index.d.ts": "./demo/libs/types/core/camera-controls/index.d.ts", "demo/libs/types/core/patches/Constants.d.ts": "./demo/libs/types/core/patches/Constants.d.ts", "demo/libs/types/core/font/shx/ExtraLettersTemplate.d.ts": "./demo/libs/types/core/font/shx/ExtraLettersTemplate.d.ts", - "demo/libs/types/core/camera-controls/constants.d.ts": "./demo/libs/types/core/camera-controls/constants.d.ts", "demo/libs/types/core/input/index.d.ts": "./demo/libs/types/core/input/index.d.ts", + "demo/libs/types/core/camera-controls/constants.d.ts": "./demo/libs/types/core/camera-controls/constants.d.ts", "demo/libs/types/core/controls/index.d.ts": "./demo/libs/types/core/controls/index.d.ts", "demo/libs/types/plugins/pdf/index.d.ts": "./demo/libs/types/plugins/pdf/index.d.ts", "demo/libs/types/core/patches/shaders/ShaderChunk.d.ts": "./demo/libs/types/core/patches/shaders/ShaderChunk.d.ts", @@ -312,12 +312,12 @@ "demo/libs/types/core/geometry-offset/index.d.ts": "./demo/libs/types/core/geometry-offset/index.d.ts", "demo/libs/types/core/webcam/index.d.ts": "./demo/libs/types/core/webcam/index.d.ts", "demo/libs/types/core/workers/CreateMeshBvh.worker.d.ts": "./demo/libs/types/core/workers/CreateMeshBvh.worker.d.ts", - "main.352fe986.css.map": "./static/css/main.352fe986.css.map", - "main.abd1e4ad.js.map": "./static/js/main.abd1e4ad.js.map", + "main.f052ad65.css.map": "./static/css/main.f052ad65.css.map", + "main.f2f06aa8.js.map": "./static/js/main.f2f06aa8.js.map", "787.cf5efa72.chunk.js.map": "./static/js/787.cf5efa72.chunk.js.map" }, "entrypoints": [ - "static/css/main.352fe986.css", - "static/js/main.abd1e4ad.js" + "static/css/main.f052ad65.css", + "static/js/main.f2f06aa8.js" ] } \ No newline at end of file diff --git a/demo/libs/gemini-viewer.esm.min.js b/demo/libs/gemini-viewer.esm.min.js index f48e85d..1c35c88 100644 --- a/demo/libs/gemini-viewer.esm.min.js +++ b/demo/libs/gemini-viewer.esm.min.js @@ -1 +1 @@ -var ySe=Object.create,m1=Object.defineProperty,xSe=Object.defineProperties,bSe=Object.getOwnPropertyDescriptor,ESe=Object.getOwnPropertyDescriptors,_Se=Object.getOwnPropertyNames,aG=Object.getOwnPropertySymbols,oG=Object.getPrototypeOf,lG=Object.prototype.hasOwnProperty,TSe=Object.prototype.propertyIsEnumerable,wSe=Reflect.get,Oo=Math.pow,a3=(e,t,n)=>t in e?m1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Tr=(e,t)=>{for(var n in t||(t={}))lG.call(t,n)&&a3(e,n,t[n]);if(aG)for(var n of aG(t))TSe.call(t,n)&&a3(e,n,t[n]);return e},Ri=(e,t)=>xSe(e,ESe(t)),o3=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,t)=>("undefined"!=typeof require?require:e)[t]}):e)((function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')})),SSe=(e,t)=>()=>(e&&(t=e(e=0)),t),J=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),FT=(e,t)=>{for(var n in t)m1(e,n,{get:t[n],enumerable:!0})},cG=(e,t,n,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of _Se(t))!lG.call(e,r)&&r!==n&&m1(e,r,{get:()=>t[r],enumerable:!(i=bSe(t,r))||i.enumerable});return e},ji=(e,t,n)=>(n=null!=e?ySe(oG(e)):{},cG(!t&&e&&e.__esModule?n:m1(n,"default",{value:e,enumerable:!0}),e)),MSe=e=>cG(m1({},"__esModule",{value:!0}),e),Xi=(e,t,n)=>(a3(e,"symbol"!=typeof t?t+"":t,n),n),l3=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},ce=(e,t,n)=>(l3(e,t,"read from private field"),n?n.call(e):t.get(e)),Je=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},St=(e,t,n,i)=>(l3(e,t,"write to private field"),i?i.call(e,n):t.set(e,n),n),NT=(e,t,n,i)=>({set _(i){St(e,t,i,n)},get _(){return ce(e,t,i)}}),dt=(e,t,n)=>(l3(e,t,"access private method"),n),uG=(e,t,n)=>wSe(oG(e),n,t),ft=(e,t,n)=>new Promise(((i,r)=>{var a=e=>{try{o(n.next(e))}catch(e){r(e)}},s=e=>{try{o(n.throw(e))}catch(e){r(e)}},o=e=>e.done?i(e.value):Promise.resolve(e.value).then(a,s);o((n=n.apply(e,t)).next())})),fG={};function BT(e){return(BT="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ASe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function hG(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};ASe(this,r),this._locale=function(e){for(var t=dG(e),n=0;nDSe});var PSe,dG,ISe,LSe,pG=SSe((()=>{PSe=function(e){return e.split("-").every((function(e){return/[a-z0-9]+/i.test(e)}))},dG=function(e){if(!e)return[];Array.isArray(e)||(e=[e]);for(var t={},n=0;n{"use strict";function n(e,t){for(var n=0;n="0"&&r<="9"&&++n}return nthis._maxSD?e.toPrecision(this._maxSD):t}return this._minFD>0?e.toFixed(this._minFD):0===this._maxFD?e.toFixed(0):String(e)}}]),e}();t.exports=i})),SG=J(((e,t)=>{"use strict";var n=(pG(),MSe(fG)),i=vG();function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=r(n),s=r(i);function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var h,c,u,d,p,f,m,g,v={exports:{}};h=v,u=function(e,t){return t?"other":1==e?"one":"other"},d=function(e,t){return t?"other":0==e||1==e?"one":"other"},p=function(e,t){return t?"other":e>=0&&e<=1?"one":"other"},f=function(e,t){var n=!String(e).split(".")[1];return t?"other":1==e&&n?"one":"other"},g=function(e,t){return t?"other":1==e?"one":2==e?"two":"other"},c={_in:m=function(e,t){return"other"},af:u,ak:d,am:p,an:u,ar:function(e,t){var n=String(e).split("."),i=Number(n[0])==e&&n[0].slice(-2);return t?"other":0==e?"zero":1==e?"one":2==e?"two":i>=3&&i<=10?"few":i>=11&&i<=99?"many":"other"},ars:function(e,t){var n=String(e).split("."),i=Number(n[0])==e&&n[0].slice(-2);return t?"other":0==e?"zero":1==e?"one":2==e?"two":i>=3&&i<=10?"few":i>=11&&i<=99?"many":"other"},as:function(e,t){return t?1==e||5==e||7==e||8==e||9==e||10==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},asa:u,ast:f,az:function(e,t){var n=String(e).split(".")[0],i=n.slice(-1),r=n.slice(-2),a=n.slice(-3);return t?1==i||2==i||5==i||7==i||8==i||20==r||50==r||70==r||80==r?"one":3==i||4==i||100==a||200==a||300==a||400==a||500==a||600==a||700==a||800==a||900==a?"few":0==n||6==i||40==r||60==r||90==r?"many":"other":1==e?"one":"other"},be:function(e,t){var n=String(e).split("."),i=Number(n[0])==e,r=i&&n[0].slice(-1),a=i&&n[0].slice(-2);return t?2!=r&&3!=r||12==a||13==a?"other":"few":1==r&&11!=a?"one":r>=2&&r<=4&&(a<12||a>14)?"few":i&&0==r||r>=5&&r<=9||a>=11&&a<=14?"many":"other"},bem:u,bez:u,bg:u,bho:d,bm:m,bn:function(e,t){return t?1==e||5==e||7==e||8==e||9==e||10==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},bo:m,br:function(e,t){var n=String(e).split("."),i=Number(n[0])==e,r=i&&n[0].slice(-1),a=i&&n[0].slice(-2),s=i&&n[0].slice(-6);return t?"other":1==r&&11!=a&&71!=a&&91!=a?"one":2==r&&12!=a&&72!=a&&92!=a?"two":(3==r||4==r||9==r)&&(a<10||a>19)&&(a<70||a>79)&&(a<90||a>99)?"few":0!=e&&i&&0==s?"many":"other"},brx:u,bs:function(e,t){var n=String(e).split("."),i=n[0],r=n[1]||"",a=!n[1],s=i.slice(-1),o=i.slice(-2),l=r.slice(-1),h=r.slice(-2);return t?"other":a&&1==s&&11!=o||1==l&&11!=h?"one":a&&s>=2&&s<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},ca:function(e,t){var n=!String(e).split(".")[1];return t?1==e||3==e?"one":2==e?"two":4==e?"few":"other":1==e&&n?"one":"other"},ce:u,ceb:function(e,t){var n=String(e).split("."),i=n[0],r=n[1]||"",a=!n[1],s=i.slice(-1),o=r.slice(-1);return t?"other":a&&(1==i||2==i||3==i)||a&&4!=s&&6!=s&&9!=s||!a&&4!=o&&6!=o&&9!=o?"one":"other"},cgg:u,chr:u,ckb:u,cs:function(e,t){var n=String(e).split("."),i=n[0],r=!n[1];return t?"other":1==e&&r?"one":i>=2&&i<=4&&r?"few":r?"other":"many"},cy:function(e,t){return t?0==e||7==e||8==e||9==e?"zero":1==e?"one":2==e?"two":3==e||4==e?"few":5==e||6==e?"many":"other":0==e?"zero":1==e?"one":2==e?"two":3==e?"few":6==e?"many":"other"},da:function(e,t){var n=String(e).split("."),i=n[0],r=Number(n[0])==e;return t||1!=e&&(r||0!=i&&1!=i)?"other":"one"},de:f,doi:p,dsb:function(e,t){var n=String(e).split("."),i=n[0],r=n[1]||"",a=!n[1],s=i.slice(-2),o=r.slice(-2);return t?"other":a&&1==s||1==o?"one":a&&2==s||2==o?"two":a&&(3==s||4==s)||3==o||4==o?"few":"other"},dv:u,dz:m,ee:u,el:u,en:function(e,t){var n=String(e).split("."),i=!n[1],r=Number(n[0])==e,a=r&&n[0].slice(-1),s=r&&n[0].slice(-2);return t?1==a&&11!=s?"one":2==a&&12!=s?"two":3==a&&13!=s?"few":"other":1==e&&i?"one":"other"},eo:u,es:u,et:f,eu:u,fa:p,ff:function(e,t){return t?"other":e>=0&&e<2?"one":"other"},fi:f,fil:function(e,t){var n=String(e).split("."),i=n[0],r=n[1]||"",a=!n[1],s=i.slice(-1),o=r.slice(-1);return t?1==e?"one":"other":a&&(1==i||2==i||3==i)||a&&4!=s&&6!=s&&9!=s||!a&&4!=o&&6!=o&&9!=o?"one":"other"},fo:u,fr:function(e,t){var n=String(e).split("."),i=n[0],r=!n[1],a=i.slice(-6);return t?1==e?"one":"other":e>=0&&e<2?"one":0!=i&&0==a&&r?"many":"other"},fur:u,fy:f,ga:function(e,t){var n=String(e).split("."),i=Number(n[0])==e;return t?1==e?"one":"other":1==e?"one":2==e?"two":i&&e>=3&&e<=6?"few":i&&e>=7&&e<=10?"many":"other"},gd:function(e,t){var n=String(e).split("."),i=Number(n[0])==e;return t?1==e||11==e?"one":2==e||12==e?"two":3==e||13==e?"few":"other":1==e||11==e?"one":2==e||12==e?"two":i&&e>=3&&e<=10||i&&e>=13&&e<=19?"few":"other"},gl:f,gsw:u,gu:function(e,t){return t?1==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},guw:d,gv:function(e,t){var n=String(e).split("."),i=n[0],r=!n[1],a=i.slice(-1),s=i.slice(-2);return t?"other":r&&1==a?"one":r&&2==a?"two":!r||0!=s&&20!=s&&40!=s&&60!=s&&80!=s?r?"other":"many":"few"},ha:u,haw:u,he:function(e,t){var n=String(e).split("."),i=n[0],r=!n[1],a=Number(n[0])==e,s=a&&n[0].slice(-1);return t?"other":1==e&&r?"one":2==i&&r?"two":r&&(e<0||e>10)&&a&&0==s?"many":"other"},hi:function(e,t){return t?1==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},hr:function(e,t){var n=String(e).split("."),i=n[0],r=n[1]||"",a=!n[1],s=i.slice(-1),o=i.slice(-2),l=r.slice(-1),h=r.slice(-2);return t?"other":a&&1==s&&11!=o||1==l&&11!=h?"one":a&&s>=2&&s<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},hsb:function(e,t){var n=String(e).split("."),i=n[0],r=n[1]||"",a=!n[1],s=i.slice(-2),o=r.slice(-2);return t?"other":a&&1==s||1==o?"one":a&&2==s||2==o?"two":a&&(3==s||4==s)||3==o||4==o?"few":"other"},hu:function(e,t){return t?1==e||5==e?"one":"other":1==e?"one":"other"},hy:function(e,t){return t?1==e?"one":"other":e>=0&&e<2?"one":"other"},ia:f,id:m,ig:m,ii:m,io:f,is:function(e,t){var n=String(e).split("."),i=n[0],r=Number(n[0])==e,a=i.slice(-1),s=i.slice(-2);return t?"other":r&&1==a&&11!=s||!r?"one":"other"},it:function(e,t){var n=!String(e).split(".")[1];return t?11==e||8==e||80==e||800==e?"many":"other":1==e&&n?"one":"other"},iu:g,iw:function(e,t){var n=String(e).split("."),i=n[0],r=!n[1],a=Number(n[0])==e,s=a&&n[0].slice(-1);return t?"other":1==e&&r?"one":2==i&&r?"two":r&&(e<0||e>10)&&a&&0==s?"many":"other"},ja:m,jbo:m,jgo:u,ji:f,jmc:u,jv:m,jw:m,ka:function(e,t){var n=String(e).split(".")[0],i=n.slice(-2);return t?1==n?"one":0==n||i>=2&&i<=20||40==i||60==i||80==i?"many":"other":1==e?"one":"other"},kab:function(e,t){return t?"other":e>=0&&e<2?"one":"other"},kaj:u,kcg:u,kde:m,kea:m,kk:function(e,t){var n=String(e).split("."),i=Number(n[0])==e,r=i&&n[0].slice(-1);return t?6==r||9==r||i&&0==r&&0!=e?"many":"other":1==e?"one":"other"},kkj:u,kl:u,km:m,kn:p,ko:m,ks:u,ksb:u,ksh:function(e,t){return t?"other":0==e?"zero":1==e?"one":"other"},ku:u,kw:function(e,t){var n=String(e).split("."),i=Number(n[0])==e,r=i&&n[0].slice(-2),a=i&&n[0].slice(-3),s=i&&n[0].slice(-5),o=i&&n[0].slice(-6);return t?i&&e>=1&&e<=4||r>=1&&r<=4||r>=21&&r<=24||r>=41&&r<=44||r>=61&&r<=64||r>=81&&r<=84?"one":5==e||5==r?"many":"other":0==e?"zero":1==e?"one":2==r||22==r||42==r||62==r||82==r||i&&0==a&&(s>=1e3&&s<=2e4||4e4==s||6e4==s||8e4==s)||0!=e&&1e5==o?"two":3==r||23==r||43==r||63==r||83==r?"few":1==e||1!=r&&21!=r&&41!=r&&61!=r&&81!=r?"other":"many"},ky:u,lag:function(e,t){var n=String(e).split(".")[0];return t?"other":0==e?"zero":0!=n&&1!=n||0==e?"other":"one"},lb:u,lg:u,lij:function(e,t){var n=String(e).split("."),i=!n[1],r=Number(n[0])==e;return t?11==e||8==e||r&&e>=80&&e<=89||r&&e>=800&&e<=899?"many":"other":1==e&&i?"one":"other"},lkt:m,ln:d,lo:function(e,t){return t&&1==e?"one":"other"},lt:function(e,t){var n=String(e).split("."),i=n[1]||"",r=Number(n[0])==e,a=r&&n[0].slice(-1),s=r&&n[0].slice(-2);return t?"other":1==a&&(s<11||s>19)?"one":a>=2&&a<=9&&(s<11||s>19)?"few":0!=i?"many":"other"},lv:function(e,t){var n=String(e).split("."),i=n[1]||"",r=i.length,a=Number(n[0])==e,s=a&&n[0].slice(-1),o=a&&n[0].slice(-2),l=i.slice(-2),h=i.slice(-1);return t?"other":a&&0==s||o>=11&&o<=19||2==r&&l>=11&&l<=19?"zero":1==s&&11!=o||2==r&&1==h&&11!=l||2!=r&&1==h?"one":"other"},mas:u,mg:d,mgo:u,mk:function(e,t){var n=String(e).split("."),i=n[0],r=n[1]||"",a=!n[1],s=i.slice(-1),o=i.slice(-2),l=r.slice(-1),h=r.slice(-2);return t?1==s&&11!=o?"one":2==s&&12!=o?"two":7!=s&&8!=s||17==o||18==o?"other":"many":a&&1==s&&11!=o||1==l&&11!=h?"one":"other"},ml:u,mn:u,mo:function(e,t){var n=String(e).split("."),i=!n[1],r=Number(n[0])==e&&n[0].slice(-2);return t?1==e?"one":"other":1==e&&i?"one":!i||0==e||r>=2&&r<=19?"few":"other"},mr:function(e,t){return t?1==e?"one":2==e||3==e?"two":4==e?"few":"other":1==e?"one":"other"},ms:function(e,t){return t&&1==e?"one":"other"},mt:function(e,t){var n=String(e).split("."),i=Number(n[0])==e&&n[0].slice(-2);return t?"other":1==e?"one":0==e||i>=2&&i<=10?"few":i>=11&&i<=19?"many":"other"},my:m,nah:u,naq:g,nb:u,nd:u,ne:function(e,t){var n=String(e).split("."),i=Number(n[0])==e;return t?i&&e>=1&&e<=4?"one":"other":1==e?"one":"other"},nl:f,nn:u,nnh:u,no:u,nqo:m,nr:u,nso:d,ny:u,nyn:u,om:u,or:function(e,t){var n=String(e).split("."),i=Number(n[0])==e;return t?1==e||5==e||i&&e>=7&&e<=9?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":1==e?"one":"other"},os:u,osa:m,pa:d,pap:u,pcm:p,pl:function(e,t){var n=String(e).split("."),i=n[0],r=!n[1],a=i.slice(-1),s=i.slice(-2);return t?"other":1==e&&r?"one":r&&a>=2&&a<=4&&(s<12||s>14)?"few":r&&1!=i&&(0==a||1==a)||r&&a>=5&&a<=9||r&&s>=12&&s<=14?"many":"other"},prg:function(e,t){var n=String(e).split("."),i=n[1]||"",r=i.length,a=Number(n[0])==e,s=a&&n[0].slice(-1),o=a&&n[0].slice(-2),l=i.slice(-2),h=i.slice(-1);return t?"other":a&&0==s||o>=11&&o<=19||2==r&&l>=11&&l<=19?"zero":1==s&&11!=o||2==r&&1==h&&11!=l||2!=r&&1==h?"one":"other"},ps:u,pt:function(e,t){var n=String(e).split(".")[0];return t?"other":0==n||1==n?"one":"other"},pt_PT:f,rm:u,ro:function(e,t){var n=String(e).split("."),i=!n[1],r=Number(n[0])==e&&n[0].slice(-2);return t?1==e?"one":"other":1==e&&i?"one":!i||0==e||r>=2&&r<=19?"few":"other"},rof:u,root:m,ru:function(e,t){var n=String(e).split("."),i=n[0],r=!n[1],a=i.slice(-1),s=i.slice(-2);return t?"other":r&&1==a&&11!=s?"one":r&&a>=2&&a<=4&&(s<12||s>14)?"few":r&&0==a||r&&a>=5&&a<=9||r&&s>=11&&s<=14?"many":"other"},rwk:u,sah:m,saq:u,sat:g,sc:function(e,t){var n=!String(e).split(".")[1];return t?11==e||8==e||80==e||800==e?"many":"other":1==e&&n?"one":"other"},scn:function(e,t){var n=!String(e).split(".")[1];return t?11==e||8==e||80==e||800==e?"many":"other":1==e&&n?"one":"other"},sd:u,sdh:u,se:g,seh:u,ses:m,sg:m,sh:function(e,t){var n=String(e).split("."),i=n[0],r=n[1]||"",a=!n[1],s=i.slice(-1),o=i.slice(-2),l=r.slice(-1),h=r.slice(-2);return t?"other":a&&1==s&&11!=o||1==l&&11!=h?"one":a&&s>=2&&s<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},shi:function(e,t){var n=String(e).split("."),i=Number(n[0])==e;return t?"other":e>=0&&e<=1?"one":i&&e>=2&&e<=10?"few":"other"},si:function(e,t){var n=String(e).split("."),i=n[0],r=n[1]||"";return t?"other":0==e||1==e||0==i&&1==r?"one":"other"},sk:function(e,t){var n=String(e).split("."),i=n[0],r=!n[1];return t?"other":1==e&&r?"one":i>=2&&i<=4&&r?"few":r?"other":"many"},sl:function(e,t){var n=String(e).split("."),i=n[0],r=!n[1],a=i.slice(-2);return t?"other":r&&1==a?"one":r&&2==a?"two":r&&(3==a||4==a)||!r?"few":"other"},sma:g,smi:g,smj:g,smn:g,sms:g,sn:u,so:u,sq:function(e,t){var n=String(e).split("."),i=Number(n[0])==e,r=i&&n[0].slice(-1),a=i&&n[0].slice(-2);return t?1==e?"one":4==r&&14!=a?"many":"other":1==e?"one":"other"},sr:function(e,t){var n=String(e).split("."),i=n[0],r=n[1]||"",a=!n[1],s=i.slice(-1),o=i.slice(-2),l=r.slice(-1),h=r.slice(-2);return t?"other":a&&1==s&&11!=o||1==l&&11!=h?"one":a&&s>=2&&s<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},ss:u,ssy:u,st:u,su:m,sv:function(e,t){var n=String(e).split("."),i=!n[1],r=Number(n[0])==e,a=r&&n[0].slice(-1),s=r&&n[0].slice(-2);return t?1!=a&&2!=a||11==s||12==s?"other":"one":1==e&&i?"one":"other"},sw:f,syr:u,ta:u,te:u,teo:u,th:m,ti:d,tig:u,tk:function(e,t){var n=String(e).split("."),i=Number(n[0])==e&&n[0].slice(-1);return t?6==i||9==i||10==e?"few":"other":1==e?"one":"other"},tl:function(e,t){var n=String(e).split("."),i=n[0],r=n[1]||"",a=!n[1],s=i.slice(-1),o=r.slice(-1);return t?1==e?"one":"other":a&&(1==i||2==i||3==i)||a&&4!=s&&6!=s&&9!=s||!a&&4!=o&&6!=o&&9!=o?"one":"other"},tn:u,to:m,tr:u,ts:u,tzm:function(e,t){var n=String(e).split("."),i=Number(n[0])==e;return t?"other":0==e||1==e||i&&e>=11&&e<=99?"one":"other"},ug:u,uk:function(e,t){var n=String(e).split("."),i=n[0],r=!n[1],a=Number(n[0])==e,s=a&&n[0].slice(-1),o=a&&n[0].slice(-2),l=i.slice(-1),h=i.slice(-2);return t?3==s&&13!=o?"few":"other":r&&1==l&&11!=h?"one":r&&l>=2&&l<=4&&(h<12||h>14)?"few":r&&0==l||r&&l>=5&&l<=9||r&&h>=11&&h<=14?"many":"other"},ur:f,uz:u,ve:u,vi:function(e,t){return t&&1==e?"one":"other"},vo:u,vun:u,wa:d,wae:u,wo:m,xh:u,xog:u,yi:f,yo:m,yue:m,zh:m,zu:p},Object.defineProperty(c,"__esModule",{value:!0}),h.exports=c;var y=l(v.exports),x=Object.freeze(Object.assign(Object.create(null),v.exports,{default:y})),b={exports:{}};!function(e,t){var n,i="zero",r="one",a="two",s="few",o="many",l="other",h={cardinal:[r,l],ordinal:[l]},c={cardinal:[l],ordinal:[l]},u={cardinal:[r,s,o,l],ordinal:[l]},d={cardinal:[r,l],ordinal:[r,l]},p={cardinal:[r,a,l],ordinal:[l]};n={_in:c,af:h,ak:h,am:h,an:h,ar:{cardinal:[i,r,a,s,o,l],ordinal:[l]},ars:{cardinal:[i,r,a,s,o,l],ordinal:[l]},as:{cardinal:[r,l],ordinal:[r,a,s,o,l]},asa:h,ast:h,az:{cardinal:[r,l],ordinal:[r,s,o,l]},be:{cardinal:[r,s,o,l],ordinal:[s,l]},bem:h,bez:h,bg:h,bho:h,bm:c,bn:{cardinal:[r,l],ordinal:[r,a,s,o,l]},bo:c,br:{cardinal:[r,a,s,o,l],ordinal:[l]},brx:h,bs:{cardinal:[r,s,l],ordinal:[l]},ca:{cardinal:[r,l],ordinal:[r,a,s,l]},ce:h,ceb:h,cgg:h,chr:h,ckb:h,cs:u,cy:{cardinal:[i,r,a,s,o,l],ordinal:[i,r,a,s,o,l]},da:h,de:h,doi:h,dsb:{cardinal:[r,a,s,l],ordinal:[l]},dv:h,dz:c,ee:h,el:h,en:{cardinal:[r,l],ordinal:[r,a,s,l]},eo:h,es:h,et:h,eu:h,fa:h,ff:h,fi:h,fil:d,fo:h,fr:{cardinal:[r,o,l],ordinal:[r,l]},fur:h,fy:h,ga:{cardinal:[r,a,s,o,l],ordinal:[r,l]},gd:{cardinal:[r,a,s,l],ordinal:[r,a,s,l]},gl:h,gsw:h,gu:{cardinal:[r,l],ordinal:[r,a,s,o,l]},guw:h,gv:{cardinal:[r,a,s,o,l],ordinal:[l]},ha:h,haw:h,he:{cardinal:[r,a,o,l],ordinal:[l]},hi:{cardinal:[r,l],ordinal:[r,a,s,o,l]},hr:{cardinal:[r,s,l],ordinal:[l]},hsb:{cardinal:[r,a,s,l],ordinal:[l]},hu:d,hy:d,ia:h,id:c,ig:c,ii:c,io:h,is:h,it:{cardinal:[r,l],ordinal:[o,l]},iu:p,iw:{cardinal:[r,a,o,l],ordinal:[l]},ja:c,jbo:c,jgo:h,ji:h,jmc:h,jv:c,jw:c,ka:{cardinal:[r,l],ordinal:[r,o,l]},kab:h,kaj:h,kcg:h,kde:c,kea:c,kk:{cardinal:[r,l],ordinal:[o,l]},kkj:h,kl:h,km:c,kn:h,ko:c,ks:h,ksb:h,ksh:{cardinal:[i,r,l],ordinal:[l]},ku:h,kw:{cardinal:[i,r,a,s,o,l],ordinal:[r,o,l]},ky:h,lag:{cardinal:[i,r,l],ordinal:[l]},lb:h,lg:h,lij:{cardinal:[r,l],ordinal:[o,l]},lkt:c,ln:h,lo:{cardinal:[l],ordinal:[r,l]},lt:u,lv:{cardinal:[i,r,l],ordinal:[l]},mas:h,mg:h,mgo:h,mk:{cardinal:[r,l],ordinal:[r,a,o,l]},ml:h,mn:h,mo:{cardinal:[r,s,l],ordinal:[r,l]},mr:{cardinal:[r,l],ordinal:[r,a,s,l]},ms:{cardinal:[l],ordinal:[r,l]},mt:u,my:c,nah:h,naq:p,nb:h,nd:h,ne:d,nl:h,nn:h,nnh:h,no:h,nqo:c,nr:h,nso:h,ny:h,nyn:h,om:h,or:{cardinal:[r,l],ordinal:[r,a,s,o,l]},os:h,osa:c,pa:h,pap:h,pcm:h,pl:u,prg:{cardinal:[i,r,l],ordinal:[l]},ps:h,pt:h,pt_PT:h,rm:h,ro:{cardinal:[r,s,l],ordinal:[r,l]},rof:h,root:c,ru:u,rwk:h,sah:c,saq:h,sat:p,sc:{cardinal:[r,l],ordinal:[o,l]},scn:{cardinal:[r,l],ordinal:[o,l]},sd:h,sdh:h,se:p,seh:h,ses:c,sg:c,sh:{cardinal:[r,s,l],ordinal:[l]},shi:{cardinal:[r,s,l],ordinal:[l]},si:h,sk:u,sl:{cardinal:[r,a,s,l],ordinal:[l]},sma:p,smi:p,smj:p,smn:p,sms:p,sn:h,so:h,sq:{cardinal:[r,l],ordinal:[r,o,l]},sr:{cardinal:[r,s,l],ordinal:[l]},ss:h,ssy:h,st:h,su:c,sv:d,sw:h,syr:h,ta:h,te:h,teo:h,th:c,ti:h,tig:h,tk:{cardinal:[r,l],ordinal:[s,l]},tl:d,tn:h,to:c,tr:h,ts:h,tzm:h,ug:h,uk:{cardinal:[r,s,o,l],ordinal:[s,l]},ur:h,uz:h,ve:h,vi:{cardinal:[l],ordinal:[r,l]},vo:h,vun:h,wa:h,wae:h,wo:c,xh:h,xog:h,yi:h,yo:c,yue:c,zh:c,zu:h},Object.defineProperty(n,"__esModule",{value:!0}),e.exports=n}(b);var _=l(b.exports),w=Object.freeze(Object.assign(Object.create(null),b.exports,{default:_})),S=y||x,M=_||w,T="object"===("undefined"==typeof Intl?"undefined":o(Intl))&&Intl.NumberFormat||s.default,E=function(e){return"in"===e?"_in":"pt-PT"===e?"pt_PT":e},A=a.default(T,(function(e){return S[E(e)]}),(function(e,t){return M[E(e)][t?"ordinal":"cardinal"]}));t.exports=A})),AG=J((e=>{"use strict";var t,n,i=(t=SG())&&"object"==typeof t&&"default"in t?t:{default:t};"undefined"==typeof Intl?("undefined"!=typeof global?global.Intl={PluralRules:i.default}:"undefined"!=typeof window?window.Intl={PluralRules:i.default}:e.Intl={PluralRules:i.default},i.default.polyfill=!0):Intl.PluralRules?(n=["en","es","ru","zh"],Intl.PluralRules.supportedLocalesOf(n).length{var n=function(e){return e&&e.Math==Math&&e};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof global&&global)||function(){return this}()||e||Function("return this")()})),Yt=J(((e,t)=>{t.exports=function(e){try{return!!e()}catch(e){return!0}}})),Kn=J(((e,t)=>{var n=Yt();t.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))})),Mg=J(((e,t)=>{var n=Yt();t.exports=!n((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))})),wr=J(((e,t)=>{var n=Mg(),i=Function.prototype.call;t.exports=n?i.bind(i):function(){return i.apply(i,arguments)}})),g1=J((e=>{"use strict";var t={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,i=n&&!t.call({1:2},1);e.f=i?function(e){var t=n(this,e);return!!t&&t.enumerable}:t})),ko=J(((e,t)=>{t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}})),en=J(((e,t)=>{var n=Mg(),i=Function.prototype,r=i.call,a=n&&i.bind.bind(r,r);t.exports=n?a:function(e){return function(){return r.apply(e,arguments)}}})),ha=J(((e,t)=>{var n=en(),i=n({}.toString),r=n("".slice);t.exports=function(e){return r(i(e),8,-1)}})),bp=J(((e,t)=>{var n=en(),i=Yt(),r=ha(),a=Object,s=n("".split);t.exports=i((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"==r(e)?s(e,""):a(e)}:a})),La=J(((e,t)=>{t.exports=function(e){return null==e}})),_s=J(((e,t)=>{var n=La(),i=TypeError;t.exports=function(e){if(n(e))throw i("Can't call method on "+e);return e}})),Ls=J(((e,t)=>{var n=bp(),i=_s();t.exports=function(e){return n(i(e))}})),m3=J(((e,t)=>{var n="object"==typeof document&&document.all,i=void 0===n&&void 0!==n;t.exports={all:n,IS_HTMLDDA:i}})),Fr=J(((e,t)=>{var n=m3(),i=n.all;t.exports=n.IS_HTMLDDA?function(e){return"function"==typeof e||e===i}:function(e){return"function"==typeof e}})),Nr=J(((e,t)=>{var n=Fr(),i=m3(),r=i.all;t.exports=i.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:n(e)||e===r}:function(e){return"object"==typeof e?null!==e:n(e)}})),ki=J(((e,t)=>{var n=Mn(),i=Fr();t.exports=function(e,t){return arguments.length<2?function(e){return i(e)?e:void 0}(n[e]):n[e]&&n[e][t]}})),Fo=J(((e,t)=>{var n=en();t.exports=n({}.isPrototypeOf)})),iu=J(((e,t)=>{t.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""})),su=J(((e,t)=>{var n,i,r=Mn(),a=iu(),s=r.process,o=r.Deno,l=s&&s.versions||o&&o.version,h=l&&l.v8;h&&(i=(n=h.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!i&&a&&(!(n=a.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=a.match(/Chrome\/(\d+)/))&&(i=+n[1]),t.exports=i})),Ep=J(((e,t)=>{var n=su(),i=Yt(),r=Mn().String;t.exports=!!Object.getOwnPropertySymbols&&!i((function(){var e=Symbol();return!r(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&n&&n<41}))})),y3=J(((e,t)=>{var n=Ep();t.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator})),Od=J(((e,t)=>{var n=ki(),i=Fr(),r=Fo(),a=y3(),s=Object;t.exports=a?function(e){return"symbol"==typeof e}:function(e){var t=n("Symbol");return i(t)&&r(t.prototype,s(e))}})),kd=J(((e,t)=>{var n=String;t.exports=function(e){try{return n(e)}catch(e){return"Object"}}})),ss=J(((e,t)=>{var n=Fr(),i=kd(),r=TypeError;t.exports=function(e){if(n(e))return e;throw r(i(e)+" is not a function")}})),au=J(((e,t)=>{var n=ss(),i=La();t.exports=function(e,t){var r=e[t];return i(r)?void 0:n(r)}})),_3=J(((e,t)=>{var n=wr(),i=Fr(),r=Nr(),a=TypeError;t.exports=function(e,t){var s,o;if("string"===t&&i(s=e.toString)&&!r(o=n(s,e))||i(s=e.valueOf)&&!r(o=n(s,e))||"string"!==t&&i(s=e.toString)&&!r(o=n(s,e)))return o;throw a("Can't convert object to primitive value")}})),as=J(((e,t)=>{t.exports=!1})),GT=J(((e,t)=>{var n=Mn(),i=Object.defineProperty;t.exports=function(e,t){try{i(n,e,{value:t,configurable:!0,writable:!0})}catch(i){n[e]=t}return t}})),qT=J(((e,t)=>{var n=Mn(),i=GT(),r="__core-js_shared__",a=n[r]||i(r,{});t.exports=a})),_p=J(((e,t)=>{var n=as(),i=qT();(t.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.30.2",mode:n?"pure":"global",copyright:"\xa9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"})})),ci=J(((e,t)=>{var n=_s(),i=Object;t.exports=function(e){return i(n(e))}})),$r=J(((e,t)=>{var n=en(),i=ci(),r=n({}.hasOwnProperty);t.exports=Object.hasOwn||function(e,t){return r(i(e),t)}})),Tp=J(((e,t)=>{var n=en(),i=0,r=Math.random(),a=n(1..toString);t.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++i+r,36)}})),Br=J(((e,t)=>{var n=Mn(),i=_p(),r=$r(),a=Tp(),s=Ep(),o=y3(),l=n.Symbol,h=i("wks"),c=o?l.for||l:l&&l.withoutSetter||a;t.exports=function(e){return r(h,e)||(h[e]=s&&r(l,e)?l[e]:c("Symbol."+e)),h[e]}})),v1=J(((e,t)=>{var n=wr(),i=Nr(),r=Od(),a=au(),s=_3(),o=Br(),l=TypeError,h=o("toPrimitive");t.exports=function(e,t){if(!i(e)||r(e))return e;var o,c=a(e,h);if(c){if(void 0===t&&(t="default"),o=n(c,e,t),!i(o)||r(o))return o;throw l("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}})),vh=J(((e,t)=>{var n=v1(),i=Od();t.exports=function(e){var t=n(e,"string");return i(t)?t:t+""}})),y1=J(((e,t)=>{var n=Mn(),i=Nr(),r=n.document,a=i(r)&&i(r.createElement);t.exports=function(e){return a?r.createElement(e):{}}})),S3=J(((e,t)=>{var n=Kn(),i=Yt(),r=y1();t.exports=!n&&!i((function(){return 7!=Object.defineProperty(r("div"),"a",{get:function(){return 7}}).a}))})),Qs=J((e=>{var t=Kn(),n=wr(),i=g1(),r=ko(),a=Ls(),s=vh(),o=$r(),l=S3(),h=Object.getOwnPropertyDescriptor;e.f=t?h:function(e,t){if(e=a(e),t=s(t),l)try{return h(e,t)}catch(e){}if(o(e,t))return r(!n(i.f,e,t),e[t])}})),M3=J(((e,t)=>{var n=Kn(),i=Yt();t.exports=n&&i((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))})),br=J(((e,t)=>{var n=Nr(),i=String,r=TypeError;t.exports=function(e){if(n(e))return e;throw r(i(e)+" is not an object")}})),Gi=J((e=>{var t=Kn(),n=S3(),i=M3(),r=br(),a=vh(),s=TypeError,o=Object.defineProperty,l=Object.getOwnPropertyDescriptor,h="enumerable",c="configurable",u="writable";e.f=t?i?function(e,t,n){if(r(e),t=a(t),r(n),"function"==typeof e&&"prototype"===t&&"value"in n&&u in n&&!n[u]){var i=l(e,t);i&&i[u]&&(e[t]=n.value,n={configurable:c in n?n[c]:i[c],enumerable:h in n?n[h]:i[h],writable:!1})}return o(e,t,n)}:o:function(e,t,i){if(r(e),t=a(t),r(i),n)try{return o(e,t,i)}catch(e){}if("get"in i||"set"in i)throw s("Accessors not supported");return"value"in i&&(e[t]=i.value),e}})),da=J(((e,t)=>{var n=Kn(),i=Gi(),r=ko();t.exports=n?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}})),wp=J(((e,t)=>{var n=Kn(),i=$r(),r=Function.prototype,a=n&&Object.getOwnPropertyDescriptor,s=i(r,"name"),o=s&&"something"===function(){}.name,l=s&&(!n||n&&a(r,"name").configurable);t.exports={EXISTS:s,PROPER:o,CONFIGURABLE:l}})),jT=J(((e,t)=>{var n=en(),i=Fr(),r=qT(),a=n(Function.toString);i(r.inspectSource)||(r.inspectSource=function(e){return a(e)}),t.exports=r.inspectSource})),O3=J(((e,t)=>{var n=Mn(),i=Fr(),r=n.WeakMap;t.exports=i(r)&&/native code/.test(String(r))})),x1=J(((e,t)=>{var n=_p(),i=Tp(),r=n("keys");t.exports=function(e){return r[e]||(r[e]=i(e))}})),Ag=J(((e,t)=>{t.exports={}})),Ts=J(((e,t)=>{var n,i,r,a,s,o=O3(),l=Mn(),h=Nr(),c=da(),u=$r(),d=qT(),p=x1(),f=Ag(),m="Object already initialized",g=l.TypeError,v=l.WeakMap;o||d.state?((a=d.state||(d.state=new v)).get=a.get,a.has=a.has,a.set=a.set,n=function(e,t){if(a.has(e))throw g(m);return t.facade=e,a.set(e,t),t},i=function(e){return a.get(e)||{}},r=function(e){return a.has(e)}):(f[s=p("state")]=!0,n=function(e,t){if(u(e,s))throw g(m);return t.facade=e,c(e,s,t),t},i=function(e){return u(e,s)?e[s]:{}},r=function(e){return u(e,s)}),t.exports={set:n,get:i,has:r,enforce:function(e){return r(e)?i(e):n(e,{})},getterFor:function(e){return function(t){var n;if(!h(t)||(n=i(t)).type!==e)throw g("Incompatible receiver, "+e+" required");return n}}}})),KT=J(((e,t)=>{var n=en(),i=Yt(),r=Fr(),a=$r(),s=Kn(),o=wp().CONFIGURABLE,l=jT(),h=Ts(),c=h.enforce,u=h.get,d=String,p=Object.defineProperty,f=n("".slice),m=n("".replace),g=n([].join),v=s&&!i((function(){return 8!==p((function(){}),"length",{value:8}).length})),y=String(String).split("String"),x=t.exports=function(e,t,n){"Symbol("===f(d(t),0,7)&&(t="["+m(d(t),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!a(e,"name")||o&&e.name!==t)&&(s?p(e,"name",{value:t,configurable:!0}):e.name=t),v&&n&&a(n,"arity")&&e.length!==n.arity&&p(e,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?s&&p(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var i=c(e);return a(i,"source")||(i.source=g(y,"string"==typeof t?t:"")),e};Function.prototype.toString=x((function(){return r(this)&&u(this).source||l(this)}),"toString")})),Yi=J(((e,t)=>{var n=Fr(),i=Gi(),r=KT(),a=GT();t.exports=function(e,t,s,o){o||(o={});var l=o.enumerable,h=void 0!==o.name?o.name:t;if(n(s)&&r(s,h,o),o.global)l?e[t]=s:a(t,s);else{try{o.unsafe?e[t]&&(l=!0):delete e[t]}catch(e){}l?e[t]=s:i.f(e,t,{value:s,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return e}})),H3=J(((e,t)=>{var n=Math.ceil,i=Math.floor;t.exports=Math.trunc||function(e){var t=+e;return(t>0?i:n)(t)}})),os=J(((e,t)=>{var n=H3();t.exports=function(e){var t=+e;return t!=t||0===t?0:n(t)}})),lc=J(((e,t)=>{var n=os(),i=Math.max,r=Math.min;t.exports=function(e,t){var a=n(e);return a<0?i(a+t,0):r(a,t)}})),to=J(((e,t)=>{var n=os(),i=Math.min;t.exports=function(e){return e>0?i(n(e),9007199254740991):0}})),fi=J(((e,t)=>{var n=to();t.exports=function(e){return n(e.length)}})),Cg=J(((e,t)=>{var n=Ls(),i=lc(),r=fi(),a=function(e){return function(t,a,s){var o,l=n(t),h=r(l),c=i(s,h);if(e&&a!=a){for(;h>c;)if((o=l[c++])!=o)return!0}else for(;h>c;c++)if((e||c in l)&&l[c]===a)return e||c||0;return!e&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}})),z3=J(((e,t)=>{var n=en(),i=$r(),r=Ls(),a=Cg().indexOf,s=Ag(),o=n([].push);t.exports=function(e,t){var n,l=r(e),h=0,c=[];for(n in l)!i(s,n)&&i(l,n)&&o(c,n);for(;t.length>h;)i(l,n=t[h++])&&(~a(c,n)||o(c,n));return c}})),JT=J(((e,t)=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]})),yh=J((e=>{var t=z3(),n=JT().concat("length","prototype");e.f=Object.getOwnPropertyNames||function(e){return t(e,n)}})),E1=J((e=>{e.f=Object.getOwnPropertySymbols})),QT=J(((e,t)=>{var n=ki(),i=en(),r=yh(),a=E1(),s=br(),o=i([].concat);t.exports=n("Reflect","ownKeys")||function(e){var t=r.f(s(e)),n=a.f;return n?o(t,n(e)):t}})),_1=J(((e,t)=>{var n=$r(),i=QT(),r=Qs(),a=Gi();t.exports=function(e,t,s){for(var o=i(t),l=a.f,h=r.f,c=0;c{var n=Yt(),i=Fr(),r=/#|\.prototype\./,a=function(e,t){var r=o[s(e)];return r==h||r!=l&&(i(t)?n(t):!!t)},s=a.normalize=function(e){return String(e).replace(r,".").toLowerCase()},o=a.data={},l=a.NATIVE="N",h=a.POLYFILL="P";t.exports=a})),tt=J(((e,t)=>{var n=Mn(),i=Qs().f,r=da(),a=Yi(),s=GT(),o=_1(),l=Pg();t.exports=function(e,t){var h,c,u,d,p,f=e.target,m=e.global,g=e.stat;if(h=m?n:g?n[f]||s(f,{}):(n[f]||{}).prototype)for(c in t){if(d=t[c],u=e.dontCallGetSet?(p=i(h,c))&&p.value:h[c],!l(m?c:f+(g?".":"#")+c,e.forced)&&void 0!==u){if(typeof d==typeof u)continue;o(d,u)}(e.sham||u&&u.sham)&&r(d,"sham",!0),a(h,c,d,e)}}})),ew=J(((e,t)=>{var n={};n[Br()("toStringTag")]="z",t.exports="[object z]"===String(n)})),cc=J(((e,t)=>{var n=ew(),i=Fr(),r=ha(),a=Br()("toStringTag"),s=Object,o="Arguments"==r(function(){return arguments}());t.exports=n?r:function(e){var t,n,l;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=s(e),a))?n:o?r(t):"Object"==(l=r(t))&&i(t.callee)?"Arguments":l}})),Mr=J(((e,t)=>{var n=cc(),i=String;t.exports=function(e){if("Symbol"===n(e))throw TypeError("Cannot convert a Symbol value to a string");return i(e)}})),Ig=J(((e,t)=>{var n=z3(),i=JT();t.exports=Object.keys||function(e){return n(e,i)}})),nw=J((e=>{var t=Kn(),n=M3(),i=Gi(),r=br(),a=Ls(),s=Ig();e.f=t&&!n?Object.defineProperties:function(e,t){r(e);for(var n,o=a(t),l=s(t),h=l.length,c=0;h>c;)i.f(e,n=l[c++],o[n]);return e}})),q3=J(((e,t)=>{var n=ki();t.exports=n("document","documentElement")})),no=J(((e,t)=>{var n,i=br(),r=nw(),a=JT(),s=Ag(),o=q3(),l=y1(),h=x1(),c="prototype",u="script",d=h("IE_PROTO"),p=function(){},f=function(e){return"<"+u+">"+e+""},m=function(e){e.write(f("")),e.close();var t=e.parentWindow.Object;return e=null,t},g=function(){try{n=new ActiveXObject("htmlfile")}catch(e){}g="undefined"!=typeof document?document.domain&&n?m(n):function(){var e,t=l("iframe"),n="java"+u+":";return t.style.display="none",o.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(f("document.F=Object")),e.close(),e.F}():m(n);for(var e=a.length;e--;)delete g[c][a[e]];return g()};s[d]=!0,t.exports=Object.create||function(e,t){var n;return null!==e?(p[c]=i(e),n=new p,p[c]=null,n[d]=e):n=g(),void 0===t?n:r.f(n,t)}})),ou=J(((e,t)=>{"use strict";var n=vh(),i=Gi(),r=ko();t.exports=function(e,t,a){var s=n(t);s in e?i.f(e,s,r(0,a)):e[s]=a}})),Lg=J(((e,t)=>{var n=lc(),i=fi(),r=ou(),a=Array,s=Math.max;t.exports=function(e,t,o){for(var l=i(e),h=n(t,l),c=n(void 0===o?l:o,l),u=a(s(c-h,0)),d=0;h{var n=ha(),i=Ls(),r=yh().f,a=Lg(),s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(e){return s&&"Window"==n(e)?function(e){try{return r(e)}catch(e){return a(s)}}(e):r(i(e))}})),Hs=J(((e,t)=>{var n=KT(),i=Gi();t.exports=function(e,t,r){return r.get&&n(r.get,t,{getter:!0}),r.set&&n(r.set,t,{setter:!0}),i.f(e,t,r)}})),Y3=J((e=>{var t=Br();e.f=t})),aw=J(((e,t)=>{var n=Mn();t.exports=n})),Da=J(((e,t)=>{var n=aw(),i=$r(),r=Y3(),a=Gi().f;t.exports=function(e){var t=n.Symbol||(n.Symbol={});i(t,e)||a(t,e,{value:r.f(e)})}})),$3=J(((e,t)=>{var n=wr(),i=ki(),r=Br(),a=Yi();t.exports=function(){var e=i("Symbol"),t=e&&e.prototype,s=t&&t.valueOf,o=r("toPrimitive");t&&!t[o]&&a(t,o,(function(e){return n(s,this)}),{arity:1})}})),ro=J(((e,t)=>{var n=Gi().f,i=$r(),r=Br()("toStringTag");t.exports=function(e,t,a){e&&!a&&(e=e.prototype),e&&!i(e,r)&&n(e,r,{configurable:!0,value:t})}})),xh=J(((e,t)=>{var n=ha(),i=en();t.exports=function(e){if("Function"===n(e))return i(e)}})),fl=J(((e,t)=>{var n=xh(),i=ss(),r=Mg(),a=n(n.bind);t.exports=function(e,t){return i(e),void 0===t?e:r?a(e,t):function(){return e.apply(t,arguments)}}})),bh=J(((e,t)=>{var n=ha();t.exports=Array.isArray||function(e){return"Array"==n(e)}})),Mp=J(((e,t)=>{var n=en(),i=Yt(),r=Fr(),a=cc(),s=ki(),o=jT(),l=function(){},h=[],c=s("Reflect","construct"),u=/^\s*(?:class|function)\b/,d=n(u.exec),p=!u.exec(l),f=function(e){if(!r(e))return!1;try{return c(l,h,e),!0}catch(e){return!1}},m=function(e){if(!r(e))return!1;switch(a(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!d(u,o(e))}catch(e){return!0}};m.sham=!0,t.exports=!c||i((function(){var e;return f(f.call)||!f(Object)||!f((function(){e=!0}))||e}))?m:f})),l9=J(((e,t)=>{var n=bh(),i=Mp(),r=Nr(),a=Br()("species"),s=Array;t.exports=function(e){var t;return n(e)&&(t=e.constructor,(i(t)&&(t===s||n(t.prototype))||r(t)&&null===(t=t[a]))&&(t=void 0)),void 0===t?s:t}})),Dg=J(((e,t)=>{var n=l9();t.exports=function(e,t){return new(n(e))(0===t?0:t)}})),Vs=J(((e,t)=>{var n=fl(),i=en(),r=bp(),a=ci(),s=fi(),o=Dg(),l=i([].push),h=function(e){var t=1==e,i=2==e,h=3==e,c=4==e,u=6==e,d=7==e,p=5==e||u;return function(f,m,g,v){for(var y,x,b=a(f),_=r(b),w=n(m,g),S=s(_),M=0,T=v||o,E=t?T(f,S):i||d?T(f,0):void 0;S>M;M++)if((p||M in _)&&(x=w(y=_[M],M,b),e))if(t)E[M]=x;else if(x)switch(e){case 3:return!0;case 5:return y;case 6:return M;case 2:l(E,y)}else switch(e){case 4:return!1;case 7:l(E,y)}return u?-1:h||c?c:E}};t.exports={forEach:h(0),map:h(1),filter:h(2),some:h(3),every:h(4),find:h(5),findIndex:h(6),filterReject:h(7)}})),R9=J((()=>{"use strict";var e=tt(),t=Mn(),n=wr(),i=en(),r=as(),a=Kn(),s=Ep(),o=Yt(),l=$r(),h=Fo(),c=br(),u=Ls(),d=vh(),p=Mr(),f=ko(),m=no(),g=Ig(),v=yh(),y=sw(),x=E1(),b=Qs(),_=Gi(),w=nw(),S=g1(),M=Yi(),T=Hs(),E=_p(),A=x1(),C=Ag(),P=Tp(),R=Br(),O=Y3(),L=Da(),I=$3(),D=ro(),k=Ts(),N=Vs().forEach,F=A("hidden"),U="Symbol",B="prototype",z=k.set,H=k.getterFor(U),V=Object[B],j=t.Symbol,G=j&&j[B],W=t.TypeError,X=t.QObject,Y=b.f,q=_.f,J=y.f,Z=S.f,K=i([].push),$=E("symbols"),Q=E("op-symbols"),ee=E("wks"),te=!X||!X[B]||!X[B].findChild,ne=a&&o((function(){return 7!=m(q({},"a",{get:function(){return q(this,"a",{value:7}).a}})).a}))?function(e,t,n){var i=Y(V,t);i&&delete V[t],q(e,t,n),i&&e!==V&&q(V,t,i)}:q,ie=function(e,t){var n=$[e]=m(G);return z(n,{type:U,tag:e,description:t}),a||(n.description=t),n},re=function(e,t,n){e===V&&re(Q,t,n),c(e);var i=d(t);return c(n),l($,i)?(n.enumerable?(l(e,F)&&e[F][i]&&(e[F][i]=!1),n=m(n,{enumerable:f(0,!1)})):(l(e,F)||q(e,F,f(1,{})),e[F][i]=!0),ne(e,i,n)):q(e,i,n)},ae=function(e,t){c(e);var i=u(t),r=g(i).concat(he(i));return N(r,(function(t){(!a||n(se,i,t))&&re(e,t,i[t])})),e},se=function(e){var t=d(e),i=n(Z,this,t);return!(this===V&&l($,t)&&!l(Q,t))&&(!(i||!l(this,t)||!l($,t)||l(this,F)&&this[F][t])||i)},oe=function(e,t){var n=u(e),i=d(t);if(n!==V||!l($,i)||l(Q,i)){var r=Y(n,i);return r&&l($,i)&&!(l(n,F)&&n[F][i])&&(r.enumerable=!0),r}},le=function(e){var t=J(u(e)),n=[];return N(t,(function(e){!l($,e)&&!l(C,e)&&K(n,e)})),n},he=function(e){var t=e===V,n=J(t?Q:u(e)),i=[];return N(n,(function(e){l($,e)&&(!t||l(V,e))&&K(i,$[e])})),i};s||(M(G=(j=function(){if(h(G,this))throw W("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?p(arguments[0]):void 0,t=P(e),i=function(e){this===V&&n(i,Q,e),l(this,F)&&l(this[F],t)&&(this[F][t]=!1),ne(this,t,f(1,e))};return a&&te&&ne(V,t,{configurable:!0,set:i}),ie(t,e)})[B],"toString",(function(){return H(this).tag})),M(j,"withoutSetter",(function(e){return ie(P(e),e)})),S.f=se,_.f=re,w.f=ae,b.f=oe,v.f=y.f=le,x.f=he,O.f=function(e){return ie(R(e),e)},a&&(T(G,"description",{configurable:!0,get:function(){return H(this).description}}),r||M(V,"propertyIsEnumerable",se,{unsafe:!0}))),e({global:!0,constructor:!0,wrap:!0,forced:!s,sham:!s},{Symbol:j}),N(g(ee),(function(e){L(e)})),e({target:U,stat:!0,forced:!s},{useSetter:function(){te=!0},useSimple:function(){te=!1}}),e({target:"Object",stat:!0,forced:!s,sham:!a},{create:function(e,t){return void 0===t?m(e):ae(m(e),t)},defineProperty:re,defineProperties:ae,getOwnPropertyDescriptor:oe}),e({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:le}),I(),D(j,U),C[F]=!0})),uL=J(((e,t)=>{var n=Ep();t.exports=n&&!!Symbol.for&&!!Symbol.keyFor})),P9=J((()=>{var e=tt(),t=ki(),n=$r(),i=Mr(),r=_p(),a=uL(),s=r("string-to-symbol-registry"),o=r("symbol-to-string-registry");e({target:"Symbol",stat:!0,forced:!a},{for:function(e){var r=i(e);if(n(s,r))return s[r];var a=t("Symbol")(r);return s[r]=a,o[a]=r,a}})})),L9=J((()=>{var e=tt(),t=$r(),n=Od(),i=kd(),r=_p(),a=uL(),s=r("symbol-to-string-registry");e({target:"Symbol",stat:!0,forced:!a},{keyFor:function(e){if(!n(e))throw TypeError(i(e)+" is not a symbol");if(t(s,e))return s[e]}})})),No=J(((e,t)=>{var n=Mg(),i=Function.prototype,r=i.apply,a=i.call;t.exports="object"==typeof Reflect&&Reflect.apply||(n?a.bind(r):function(){return a.apply(r,arguments)})})),Nd=J(((e,t)=>{var n=en();t.exports=n([].slice)})),z9=J(((e,t)=>{var n=en(),i=bh(),r=Fr(),a=ha(),s=Mr(),o=n([].push);t.exports=function(e){if(r(e))return e;if(i(e)){for(var t=e.length,n=[],l=0;l{var e=tt(),t=ki(),n=No(),i=wr(),r=en(),a=Yt(),s=Fr(),o=Od(),l=Nd(),h=z9(),c=Ep(),u=String,d=t("JSON","stringify"),p=r(/./.exec),f=r("".charAt),m=r("".charCodeAt),g=r("".replace),v=r(1..toString),y=/[\uD800-\uDFFF]/g,x=/^[\uD800-\uDBFF]$/,b=/^[\uDC00-\uDFFF]$/,_=!c||a((function(){var e=t("Symbol")();return"[null]"!=d([e])||"{}"!=d({a:e})||"{}"!=d(Object(e))})),w=a((function(){return'"\\udf06\\ud834"'!==d("\udf06\ud834")||'"\\udead"'!==d("\udead")})),S=function(e,t){var r=l(arguments),a=h(t);if(s(a)||void 0!==e&&!o(e))return r[1]=function(e,t){if(s(a)&&(t=i(a,this,u(e),t)),!o(t))return t},n(d,null,r)},M=function(e,t,n){var i=f(n,t-1),r=f(n,t+1);return p(x,e)&&!p(b,r)||p(b,e)&&!p(x,i)?"\\u"+v(m(e,0),16):e};d&&e({target:"JSON",stat:!0,arity:3,forced:_||w},{stringify:function(e,t,i){var r=l(arguments),a=n(_?S:d,null,r);return w&&"string"==typeof a?g(a,y,M):a}})})),tW=J((()=>{var e=tt(),t=Ep(),n=Yt(),i=E1(),r=ci();e({target:"Object",stat:!0,forced:!t||n((function(){i.f(1)}))},{getOwnPropertySymbols:function(e){var t=i.f;return t?t(r(e)):[]}})})),nW=J((()=>{R9(),P9(),L9(),dL(),tW()})),cW=J((()=>{"use strict";var e,t,n,i,r,a,s,o,l=tt(),h=Kn(),c=Mn(),u=en(),d=$r(),p=Fr(),f=Fo(),m=Mr(),g=Hs(),v=_1(),y=c.Symbol,x=y&&y.prototype;h&&p(y)&&(!("description"in x)||void 0!==y().description)&&(e={},v(t=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:m(arguments[0]),n=f(x,this)?new y(t):void 0===t?y():y(t);return""===t&&(e[n]=!0),n},y),t.prototype=x,x.constructor=t,n="Symbol(test)"==String(y("test")),i=u(x.valueOf),r=u(x.toString),a=/^Symbol\((.*)\)[^)]+$/,s=u("".replace),o=u("".slice),g(x,"description",{configurable:!0,get:function(){var t=i(this);if(d(e,t))return"";var l=r(t),h=n?o(l,7,-1):s(l,a,"$1");return""===h?void 0:h}}),l({global:!0,constructor:!0,forced:!0},{Symbol:t}))})),uW=J((()=>{Da()("asyncIterator")})),hW=J((()=>{Da()("hasInstance")})),dW=J((()=>{Da()("isConcatSpreadable")})),fW=J((()=>{Da()("iterator")})),pW=J((()=>{Da()("match")})),mW=J((()=>{Da()("matchAll")})),gW=J((()=>{Da()("replace")})),vW=J((()=>{Da()("search")})),yW=J((()=>{Da()("species")})),xW=J((()=>{Da()("split")})),bW=J((()=>{var e=Da(),t=$3();e("toPrimitive"),t()})),EW=J((()=>{var e=ki(),t=Da(),n=ro();t("toStringTag"),n(e("Symbol"),"Symbol")})),_W=J((()=>{Da()("unscopables")})),wW=J(((e,t)=>{var n=en(),i=ss();t.exports=function(e,t,r){try{return n(i(Object.getOwnPropertyDescriptor(e,t)[r]))}catch(e){}}})),pL=J(((e,t)=>{var n=Fr(),i=String,r=TypeError;t.exports=function(e){if("object"==typeof e||n(e))return e;throw r("Can't set "+i(e)+" as a prototype")}})),uc=J(((e,t)=>{var n=wW(),i=br(),r=pL();t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,a={};try{(e=n(Object.prototype,"__proto__","set"))(a,[]),t=a instanceof Array}catch(e){}return function(n,a){return i(n),r(a),t?e(n,a):n.__proto__=a,n}}():void 0)})),mL=J(((e,t)=>{var n=Gi().f;t.exports=function(e,t,i){i in e||n(e,i,{configurable:!0,get:function(){return t[i]},set:function(e){t[i]=e}})}})),Pp=J(((e,t)=>{var n=Fr(),i=Nr(),r=uc();t.exports=function(e,t,a){var s,o;return r&&n(s=t.constructor)&&s!==a&&i(o=s.prototype)&&o!==a.prototype&&r(e,o),e}})),Fg=J(((e,t)=>{var n=Mr();t.exports=function(e,t){return void 0===e?arguments.length<2?"":t:n(e)}})),gL=J(((e,t)=>{var n=Nr(),i=da();t.exports=function(e,t){n(t)&&"cause"in t&&i(e,"cause",t.cause)}})),pw=J(((e,t)=>{var n=en(),i=Error,r=n("".replace),a=String(i("zxcasd").stack),s=/\n\s*at [^:]*:[^\n]*/,o=s.test(a);t.exports=function(e,t){if(o&&"string"==typeof e&&!i.prepareStackTrace)for(;t--;)e=r(e,s,"");return e}})),vL=J(((e,t)=>{var n=Yt(),i=ko();t.exports=!n((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",i(1,7)),7!==e.stack)}))})),yL=J(((e,t)=>{var n=da(),i=pw(),r=vL(),a=Error.captureStackTrace;t.exports=function(e,t,s,o){r&&(a?a(e,t):n(e,"stack",i(s,o)))}})),xL=J(((e,t)=>{"use strict";var n=ki(),i=$r(),r=da(),a=Fo(),s=uc(),o=_1(),l=mL(),h=Pp(),c=Fg(),u=gL(),d=yL(),p=Kn(),f=as();t.exports=function(e,t,m,g){var v="stackTraceLimit",y=g?2:1,x=e.split("."),b=x[x.length-1],_=n.apply(null,x);if(_){var w=_.prototype;if(!f&&i(w,"cause")&&delete w.cause,!m)return _;var S=n("Error"),M=t((function(e,t){var n=c(g?t:e,void 0),i=g?new _(e):new _;return void 0!==n&&r(i,"message",n),d(i,M,i.stack,2),this&&a(w,this)&&h(i,this,M),arguments.length>y&&u(i,arguments[y]),i}));if(M.prototype=w,"Error"!==b?s?s(M,S):o(M,S,{name:!0}):p&&v in _&&(l(M,_,v),l(M,_,"prepareStackTrace")),o(M,_),!f)try{w.name!==b&&r(w,"name",b),w.constructor=M}catch(e){}return M}}})),YW=J((()=>{var e=tt(),t=Mn(),n=No(),i=xL(),r="WebAssembly",a=t[r],s=7!==Error("e",{cause:7}).cause,o=function(t,n){var r={};r[t]=i(t,n,s),e({global:!0,constructor:!0,arity:1,forced:s},r)},l=function(t,n){if(a&&a[t]){var o={};o[t]=i(r+"."+t,n,s),e({target:r,stat:!0,constructor:!0,arity:1,forced:s},o)}};o("Error",(function(e){return function(t){return n(e,this,arguments)}})),o("EvalError",(function(e){return function(t){return n(e,this,arguments)}})),o("RangeError",(function(e){return function(t){return n(e,this,arguments)}})),o("ReferenceError",(function(e){return function(t){return n(e,this,arguments)}})),o("SyntaxError",(function(e){return function(t){return n(e,this,arguments)}})),o("TypeError",(function(e){return function(t){return n(e,this,arguments)}})),o("URIError",(function(e){return function(t){return n(e,this,arguments)}})),l("CompileError",(function(e){return function(t){return n(e,this,arguments)}})),l("LinkError",(function(e){return function(t){return n(e,this,arguments)}})),l("RuntimeError",(function(e){return function(t){return n(e,this,arguments)}}))})),_L=J(((e,t)=>{"use strict";var n=Kn(),i=Yt(),r=br(),a=no(),s=Fg(),o=Error.prototype.toString,l=i((function(){if(n){var e=a(Object.defineProperty({},"name",{get:function(){return this===e}}));if("true"!==o.call(e))return!0}return"2: 1"!==o.call({message:1,name:2})||"Error"!==o.call({})}));t.exports=l?function(){var e=r(this),t=s(e.name,"Error"),n=s(e.message);return t?n?t+": "+n:t:n}:o})),QW=J((()=>{var e=Yi(),t=_L(),n=Error.prototype;n.toString!==t&&e(n,"toString",t)})),vw=J(((e,t)=>{var n=Yt();t.exports=!n((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))})),Bo=J(((e,t)=>{var n=$r(),i=Fr(),r=ci(),a=x1(),s=vw(),o=a("IE_PROTO"),l=Object,h=l.prototype;t.exports=s?l.getPrototypeOf:function(e){var t=r(e);if(n(t,o))return t[o];var a=t.constructor;return i(a)&&t instanceof a?a.prototype:t instanceof l?h:null}})),Ng=J(((e,t)=>{t.exports={}})),yw=J(((e,t)=>{var n=Br(),i=Ng(),r=n("iterator"),a=Array.prototype;t.exports=function(e){return void 0!==e&&(i.Array===e||a[r]===e)}})),Bg=J(((e,t)=>{var n=cc(),i=au(),r=La(),a=Ng(),s=Br()("iterator");t.exports=function(e){if(!r(e))return i(e,s)||i(e,"@@iterator")||a[n(e)]}})),I1=J(((e,t)=>{var n=wr(),i=ss(),r=br(),a=kd(),s=Bg(),o=TypeError;t.exports=function(e,t){var l=arguments.length<2?s(e):t;if(i(l))return r(n(l,e));throw o(a(e)+" is not iterable")}})),wL=J(((e,t)=>{var n=wr(),i=br(),r=au();t.exports=function(e,t,a){var s,o;i(e);try{if(!(s=r(e,"return"))){if("throw"===t)throw a;return a}s=n(s,e)}catch(e){o=!0,s=e}if("throw"===t)throw a;if(o)throw s;return i(s),a}})),hc=J(((e,t)=>{var n=fl(),i=wr(),r=br(),a=kd(),s=yw(),o=fi(),l=Fo(),h=I1(),c=Bg(),u=wL(),d=TypeError,p=function(e,t){this.stopped=e,this.result=t},f=p.prototype;t.exports=function(e,t,m){var g,v,y,x,b,_,w,S=m&&m.that,M=!(!m||!m.AS_ENTRIES),T=!(!m||!m.IS_RECORD),E=!(!m||!m.IS_ITERATOR),A=!(!m||!m.INTERRUPTED),C=n(t,S),P=function(e){return g&&u(g,"normal",e),new p(!0,e)},R=function(e){return M?(r(e),A?C(e[0],e[1],P):C(e[0],e[1])):A?C(e,P):C(e)};if(T)g=e.iterator;else if(E)g=e;else{if(!(v=c(e)))throw d(a(e)+" is not iterable");if(s(v)){for(y=0,x=o(e);x>y;y++)if((b=R(e[y]))&&l(f,b))return b;return new p(!1)}g=h(e,v)}for(_=T?e.next:g.next;!(w=i(_,g)).done;){try{b=R(w.value)}catch(e){u(g,"throw",e)}if("object"==typeof b&&b&&l(f,b))return b}return new p(!1)}})),mj=J((()=>{"use strict";var e=tt(),t=Fo(),n=Bo(),i=uc(),r=_1(),a=no(),s=da(),o=ko(),l=gL(),h=yL(),c=hc(),u=Fg(),d=Br()("toStringTag"),p=Error,f=[].push,m=function(e,r){var o,v=t(g,this);i?o=i(p(),v?n(this):g):(o=v?this:a(g),s(o,d,"Error")),void 0!==r&&s(o,"message",u(r)),h(o,m,o.stack,1),arguments.length>2&&l(o,arguments[2]);var y=[];return c(e,f,{that:y}),s(o,"errors",y),o};i?i(m,p):r(m,p,{name:!0});var g=m.prototype=a(p.prototype,{constructor:o(1,m),message:o(1,""),name:o(1,"AggregateError")});e({global:!0,constructor:!0,arity:2},{AggregateError:m})})),gj=J((()=>{mj()})),bj=J((()=>{var e=tt(),t=ki(),n=No(),i=Yt(),r=xL(),a="AggregateError",s=t(a),o=!i((function(){return 1!==s([1]).errors[0]}))&&i((function(){return 7!==s([1],a,{cause:7}).cause}));e({global:!0,constructor:!0,arity:2,forced:o},{AggregateError:r(a,(function(e){return function(t,i){return n(e,this,arguments)}}),o,!0)})})),Oa=J(((e,t)=>{var n=Br(),i=no(),r=Gi().f,a=n("unscopables"),s=Array.prototype;null==s[a]&&r(s,a,{configurable:!0,value:i(null)}),t.exports=function(e){s[a][e]=!0}})),_j=J((()=>{"use strict";var e=tt(),t=ci(),n=fi(),i=os(),r=Oa();e({target:"Array",proto:!0},{at:function(e){var r=t(this),a=n(r),s=i(e),o=s>=0?s:a+s;return o<0||o>=a?void 0:r[o]}}),r("at")})),Lp=J(((e,t)=>{var n=TypeError;t.exports=function(e){if(e>9007199254740991)throw n("Maximum allowed index exceeded");return e}})),Hg=J(((e,t)=>{var n=Yt(),i=Br(),r=su(),a=i("species");t.exports=function(e){return r>=51||!n((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}})),Aj=J((()=>{"use strict";var e=tt(),t=Yt(),n=bh(),i=Nr(),r=ci(),a=fi(),s=Lp(),o=ou(),l=Dg(),h=Hg(),c=Br(),u=su(),d=c("isConcatSpreadable"),p=u>=51||!t((function(){var e=[];return e[d]=!1,e.concat()[0]!==e})),f=function(e){if(!i(e))return!1;var t=e[d];return void 0!==t?!!t:n(e)};e({target:"Array",proto:!0,arity:1,forced:!p||!h("concat")},{concat:function(e){var t,n,i,h,c,u=r(this),d=l(u,0),p=0;for(t=-1,i=arguments.length;t{"use strict";var n=kd(),i=TypeError;t.exports=function(e,t){if(!delete e[t])throw i("Cannot delete property "+n(t)+" of "+n(e))}})),LL=J(((e,t)=>{"use strict";var n=ci(),i=lc(),r=fi(),a=L1(),s=Math.min;t.exports=[].copyWithin||function(e,t){var o=n(this),l=r(o),h=i(e,l),c=i(t,l),u=arguments.length>2?arguments[2]:void 0,d=s((void 0===u?l:i(u,l))-c,l-h),p=1;for(c0;)c in o?o[h]=o[c]:a(o,h),h+=p,c+=p;return o}})),Lj=J((()=>{var e=tt(),t=LL(),n=Oa();e({target:"Array",proto:!0},{copyWithin:t}),n("copyWithin")})),cu=J(((e,t)=>{"use strict";var n=Yt();t.exports=function(e,t){var i=[][e];return!!i&&n((function(){i.call(null,t||function(){return 1},1)}))}})),Oj=J((()=>{"use strict";var e=tt(),t=Vs().every;e({target:"Array",proto:!0,forced:!cu()("every")},{every:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),_w=J(((e,t)=>{"use strict";var n=ci(),i=lc(),r=fi();t.exports=function(e){for(var t=n(this),a=r(t),s=arguments.length,o=i(s>1?arguments[1]:void 0,a),l=s>2?arguments[2]:void 0,h=void 0===l?a:i(l,a);h>o;)t[o++]=e;return t}})),Nj=J((()=>{var e=tt(),t=_w(),n=Oa();e({target:"Array",proto:!0},{fill:t}),n("fill")})),Bj=J((()=>{"use strict";var e=tt(),t=Vs().filter;e({target:"Array",proto:!0,forced:!Hg()("filter")},{filter:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),Hj=J((()=>{"use strict";var e=tt(),t=Vs().find,n=Oa(),i="find",r=!0;i in[]&&Array(1)[i]((function(){r=!1})),e({target:"Array",proto:!0,forced:r},{find:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n(i)})),zj=J((()=>{"use strict";var e=tt(),t=Vs().findIndex,n=Oa(),i="findIndex",r=!0;i in[]&&Array(1)[i]((function(){r=!1})),e({target:"Array",proto:!0,forced:r},{findIndex:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n(i)})),D1=J(((e,t)=>{var n=fl(),i=bp(),r=ci(),a=fi(),s=function(e){var t=1==e;return function(s,o,l){for(var h,c=r(s),u=i(c),d=n(o,l),p=a(u);p-- >0;)if(d(h=u[p],p,c))switch(e){case 0:return h;case 1:return p}return t?-1:void 0}};t.exports={findLast:s(0),findLastIndex:s(1)}})),Wj=J((()=>{"use strict";var e=tt(),t=D1().findLast,n=Oa();e({target:"Array",proto:!0},{findLast:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n("findLast")})),jj=J((()=>{"use strict";var e=tt(),t=D1().findLastIndex,n=Oa();e({target:"Array",proto:!0},{findLastIndex:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n("findLastIndex")})),kL=J(((e,t)=>{"use strict";var n=bh(),i=fi(),r=Lp(),a=fl(),s=function(e,t,o,l,h,c,u,d){for(var p,f,m=h,g=0,v=!!u&&a(u,d);g0&&n(p)?(f=i(p),m=s(e,t,p,f,m,c-1)-1):(r(m+1),e[m]=p),m++),g++;return m};t.exports=s})),$j=J((()=>{"use strict";var e=tt(),t=kL(),n=ci(),i=fi(),r=os(),a=Dg();e({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,s=n(this),o=i(s),l=a(s,0);return l.length=t(l,s,s,o,0,void 0===e?1:r(e)),l}})})),Zj=J((()=>{"use strict";var e=tt(),t=kL(),n=ss(),i=ci(),r=fi(),a=Dg();e({target:"Array",proto:!0},{flatMap:function(e){var s,o=i(this),l=r(o);return n(e),(s=a(o,0)).length=t(s,o,o,l,0,1,e,arguments.length>1?arguments[1]:void 0),s}})})),FL=J(((e,t)=>{"use strict";var n=Vs().forEach,i=cu()("forEach");t.exports=i?[].forEach:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}})),Qj=J((()=>{"use strict";var e=tt(),t=FL();e({target:"Array",proto:!0,forced:[].forEach!=t},{forEach:t})})),tX=J(((e,t)=>{var n=br(),i=wL();t.exports=function(e,t,r,a){try{return a?t(n(r)[0],r[1]):t(r)}catch(t){i(e,"throw",t)}}})),NL=J(((e,t)=>{"use strict";var n=fl(),i=wr(),r=ci(),a=tX(),s=yw(),o=Mp(),l=fi(),h=ou(),c=I1(),u=Bg(),d=Array;t.exports=function(e){var t=r(e),p=o(this),f=arguments.length,m=f>1?arguments[1]:void 0,g=void 0!==m;g&&(m=n(m,f>2?arguments[2]:void 0));var v,y,x,b,_,w,S=u(t),M=0;if(!S||this===d&&s(S))for(v=l(t),y=p?new this(v):d(v);v>M;M++)w=g?m(t[M],M):t[M],h(y,M,w);else for(_=(b=c(t,S)).next,y=p?new this:[];!(x=i(_,b)).done;M++)w=g?a(b,m,[x.value,M],!0):x.value,h(y,M,w);return y.length=M,y}})),O1=J(((e,t)=>{var n,i,r=Br()("iterator"),a=!1;try{n=0,(i={next:function(){return{done:!!n++}},return:function(){a=!0}})[r]=function(){return this},Array.from(i,(function(){throw 2}))}catch(e){}t.exports=function(e,t){if(!t&&!a)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(e){}return n}})),cX=J((()=>{var e=tt(),t=NL();e({target:"Array",stat:!0,forced:!O1()((function(e){Array.from(e)}))},{from:t})})),uX=J((()=>{"use strict";var e=tt(),t=Cg().includes,n=Yt(),i=Oa();e({target:"Array",proto:!0,forced:n((function(){return!Array(1).includes()}))},{includes:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),i("includes")})),dX=J((()=>{"use strict";var e=tt(),t=xh(),n=Cg().indexOf,i=cu(),r=t([].indexOf),a=!!r&&1/r([1],1,-0)<0;e({target:"Array",proto:!0,forced:a||!i("indexOf")},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return a?r(this,e,t)||0:n(this,e,t)}})})),fX=J((()=>{tt()({target:"Array",stat:!0},{isArray:bh()})})),GL=J(((e,t)=>{"use strict";var n,i,r,a=Yt(),s=Fr(),o=Nr(),l=no(),h=Bo(),c=Yi(),u=Br(),d=as(),p=u("iterator"),f=!1;[].keys&&("next"in(r=[].keys())?(i=h(h(r)))!==Object.prototype&&(n=i):f=!0),!o(n)||a((function(){var e={};return n[p].call(e)!==e}))?n={}:d&&(n=l(n)),s(n[p])||c(n,p,(function(){return this})),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:f}})),Tw=J(((e,t)=>{"use strict";var n=GL().IteratorPrototype,i=no(),r=ko(),a=ro(),s=Ng(),o=function(){return this};t.exports=function(e,t,l,h){var c=t+" Iterator";return e.prototype=i(n,{next:r(+!h,l)}),a(e,c,!1,!0),s[c]=o,e}})),Mw=J(((e,t)=>{"use strict";var n=tt(),i=wr(),r=as(),a=wp(),s=Fr(),o=Tw(),l=Bo(),h=uc(),c=ro(),u=da(),d=Yi(),p=Br(),f=Ng(),m=GL(),g=a.PROPER,v=a.CONFIGURABLE,y=m.IteratorPrototype,x=m.BUGGY_SAFARI_ITERATORS,b=p("iterator"),_="keys",w="values",S="entries",M=function(){return this};t.exports=function(e,t,a,p,m,T,E){o(a,t,p);var A,C,P,R=function(e){if(e===m&&k)return k;if(!x&&e in I)return I[e];switch(e){case _:case w:case S:return function(){return new a(this,e)}}return function(){return new a(this)}},O=t+" Iterator",L=!1,I=e.prototype,D=I[b]||I["@@iterator"]||m&&I[m],k=!x&&D||R(m),N="Array"==t&&I.entries||D;if(N&&(A=l(N.call(new e)))!==Object.prototype&&A.next&&(!r&&l(A)!==y&&(h?h(A,y):s(A[b])||d(A,b,M)),c(A,O,!0,!0),r&&(f[O]=M)),g&&m==w&&D&&D.name!==w&&(!r&&v?u(I,"name",w):(L=!0,k=function(){return i(D,this)})),m)if(C={values:R(w),keys:T?k:R(_),entries:R(S)},E)for(P in C)(x||L||!(P in I))&&d(I,P,C[P]);else n({target:t,proto:!0,forced:x||L},C);return(!r||E)&&I[b]!==k&&d(I,b,k,{name:m}),f[t]=k,C}})),N1=J(((e,t)=>{t.exports=function(e,t){return{value:e,done:t}}})),B1=J(((e,t)=>{"use strict";var n=Ls(),i=Oa(),r=Ng(),a=Ts(),s=Gi().f,o=Mw(),l=N1(),h=as(),c=Kn(),u="Array Iterator",d=a.set,p=a.getterFor(u);t.exports=o(Array,"Array",(function(e,t){d(this,{type:u,target:n(e),index:0,kind:t})}),(function(){var e=p(this),t=e.target,n=e.kind,i=e.index++;return!t||i>=t.length?(e.target=void 0,l(void 0,!0)):l("keys"==n?i:"values"==n?t[i]:[i,t[i]],!1)}),"values");var f=r.Arguments=r.Array;if(i("keys"),i("values"),i("entries"),!h&&c&&"values"!==f.name)try{s(f,"name",{value:"values"})}catch(e){}})),OX=J((()=>{"use strict";var e=tt(),t=en(),n=bp(),i=Ls(),r=cu(),a=t([].join);e({target:"Array",proto:!0,forced:n!=Object||!r("join",",")},{join:function(e){return a(i(this),void 0===e?",":e)}})})),XL=J(((e,t)=>{"use strict";var n=No(),i=Ls(),r=os(),a=fi(),s=cu(),o=Math.min,l=[].lastIndexOf,h=!!l&&1/[1].lastIndexOf(1,-0)<0,c=s("lastIndexOf"),u=h||!c;t.exports=u?function(e){if(h)return n(l,this,arguments)||0;var t=i(this),s=a(t),c=s-1;for(arguments.length>1&&(c=o(c,r(arguments[1]))),c<0&&(c=s+c);c>=0;c--)if(c in t&&t[c]===e)return c||0;return-1}:l})),BX=J((()=>{var e=tt(),t=XL();e({target:"Array",proto:!0,forced:t!==[].lastIndexOf},{lastIndexOf:t})})),UX=J((()=>{"use strict";var e=tt(),t=Vs().map;e({target:"Array",proto:!0,forced:!Hg()("map")},{map:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),VX=J((()=>{"use strict";var e=tt(),t=Yt(),n=Mp(),i=ou(),r=Array;e({target:"Array",stat:!0,forced:t((function(){function e(){}return!(r.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,a=new(n(this)?this:r)(t);t>e;)i(a,e,arguments[e++]);return a.length=t,a}})})),Aw=J(((e,t)=>{"use strict";var n=Kn(),i=bh(),r=TypeError,a=Object.getOwnPropertyDescriptor,s=n&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();t.exports=s?function(e,t){if(i(e)&&!a(e,"length").writable)throw r("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}})),GX=J((()=>{"use strict";var e=tt(),t=ci(),n=fi(),i=Aw(),r=Lp();e({target:"Array",proto:!0,arity:1,forced:Yt()((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}()},{push:function(e){var a=t(this),s=n(a),o=arguments.length;r(s+o);for(var l=0;l{var n=ss(),i=ci(),r=bp(),a=fi(),s=TypeError,o=function(e){return function(t,o,l,h){n(o);var c=i(t),u=r(c),d=a(c),p=e?d-1:0,f=e?-1:1;if(l<2)for(;;){if(p in u){h=u[p],p+=f;break}if(p+=f,e?p<0:d<=p)throw s("Reduce of empty array with no initial value")}for(;e?p>=0:d>p;p+=f)p in u&&(h=o(h,u[p],p,c));return h}};t.exports={left:o(!1),right:o(!0)}})),uu=J(((e,t)=>{var n=ha();t.exports="undefined"!=typeof process&&"process"==n(process)})),YX=J((()=>{"use strict";var e=tt(),t=U1().left,n=cu(),i=su();e({target:"Array",proto:!0,forced:!uu()&&i>79&&i<83||!n("reduce")},{reduce:function(e){var n=arguments.length;return t(this,e,n,n>1?arguments[1]:void 0)}})})),ZX=J((()=>{"use strict";var e=tt(),t=U1().right,n=cu(),i=su();e({target:"Array",proto:!0,forced:!uu()&&i>79&&i<83||!n("reduceRight")},{reduceRight:function(e){return t(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})})),JX=J((()=>{"use strict";var e=tt(),t=en(),n=bh(),i=t([].reverse),r=[1,2];e({target:"Array",proto:!0,forced:String(r)===String(r.reverse())},{reverse:function(){return n(this)&&(this.length=this.length),i(this)}})})),tY=J((()=>{"use strict";var e=tt(),t=bh(),n=Mp(),i=Nr(),r=lc(),a=fi(),s=Ls(),o=ou(),l=Br(),h=Hg(),c=Nd(),u=h("slice"),d=l("species"),p=Array,f=Math.max;e({target:"Array",proto:!0,forced:!u},{slice:function(e,l){var h,u,m,g=s(this),v=a(g),y=r(e,v),x=r(void 0===l?v:l,v);if(t(g)&&(h=g.constructor,(n(h)&&(h===p||t(h.prototype))||i(h)&&null===(h=h[d]))&&(h=void 0),h===p||void 0===h))return c(g,y,x);for(u=new(void 0===h?p:h)(f(x-y,0)),m=0;y{"use strict";var e=tt(),t=Vs().some;e({target:"Array",proto:!0,forced:!cu()("some")},{some:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),Cw=J(((e,t)=>{var n=Lg(),i=Math.floor,r=function(e,t){var o=e.length,l=i(o/2);return o<8?a(e,t):s(e,r(n(e,0,l),t),r(n(e,l),t),t)},a=function(e,t){for(var n,i,r=e.length,a=1;a0;)e[i]=e[--i];i!==a++&&(e[i]=n)}return e},s=function(e,t,n,i){for(var r=t.length,a=n.length,s=0,o=0;s{var n=iu().match(/firefox\/(\d+)/i);t.exports=!!n&&+n[1]})),KL=J(((e,t)=>{var n=iu();t.exports=/MSIE|Trident/.test(n)})),Pw=J(((e,t)=>{var n=iu().match(/AppleWebKit\/(\d+)\./);t.exports=!!n&&+n[1]})),yY=J((()=>{"use strict";var e=tt(),t=en(),n=ss(),i=ci(),r=fi(),a=L1(),s=Mr(),o=Yt(),l=Cw(),h=cu(),c=ZL(),u=KL(),d=su(),p=Pw(),f=[],m=t(f.sort),g=t(f.push),v=o((function(){f.sort(void 0)})),y=o((function(){f.sort(null)})),x=h("sort"),b=!o((function(){if(d)return d<70;if(!(c&&c>3)){if(u)return!0;if(p)return p<603;var e,t,n,i,r="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(i=0;i<47;i++)f.push({k:t+i,v:n})}for(f.sort((function(e,t){return t.v-e.v})),i=0;is(n)?1:-1}}(e)),o=r(c),h=0;h{"use strict";var n=ki(),i=Hs(),r=Br(),a=Kn(),s=r("species");t.exports=function(e){var t=n(e);a&&t&&!t[s]&&i(t,s,{configurable:!0,get:function(){return this}})}})),EY=J((()=>{Dp()("Array")})),_Y=J((()=>{"use strict";var e=tt(),t=ci(),n=lc(),i=os(),r=fi(),a=Aw(),s=Lp(),o=Dg(),l=ou(),h=L1(),c=Hg()("splice"),u=Math.max,d=Math.min;e({target:"Array",proto:!0,forced:!c},{splice:function(e,c){var p,f,m,g,v,y,x=t(this),b=r(x),_=n(e,b),w=arguments.length;for(0===w?p=f=0:1===w?(p=0,f=b-_):(p=w-2,f=d(u(i(c),0),b-_)),s(b+p-f),m=o(x,f),g=0;gb-f+p;g--)h(x,g-1)}else if(p>f)for(g=b-f;g>_;g--)y=g+p-1,(v=g+f-1)in x?x[y]=x[v]:h(x,y);for(g=0;g{var n=fi();t.exports=function(e,t){for(var i=n(e),r=new t(i),a=0;a{"use strict";var e=tt(),t=eD(),n=Ls(),i=Oa(),r=Array;e({target:"Array",proto:!0},{toReversed:function(){return t(n(this),r)}}),i("toReversed")})),Iw=J(((e,t)=>{var n=fi();t.exports=function(e,t){for(var i=0,r=n(t),a=new e(r);r>i;)a[i]=t[i++];return a}})),RY=J(((e,t)=>{var n=Mn();t.exports=function(e){return n[e].prototype}})),AY=J((()=>{"use strict";var e=tt(),t=en(),n=ss(),i=Ls(),r=Iw(),a=RY(),s=Oa(),o=Array,l=t(a("Array").sort);e({target:"Array",proto:!0},{toSorted:function(e){void 0!==e&&n(e);var t=i(this),a=r(o,t);return l(a,e)}}),s("toSorted")})),CY=J((()=>{"use strict";var e=tt(),t=Oa(),n=Lp(),i=fi(),r=lc(),a=Ls(),s=os(),o=Array,l=Math.max,h=Math.min;e({target:"Array",proto:!0},{toSpliced:function(e,t){var c,u,d,p,f=a(this),m=i(f),g=r(e,m),v=arguments.length,y=0;for(0===v?c=u=0:1===v?(c=0,u=m-g):(c=v-2,u=h(l(s(t),0),m-g)),d=n(m+c-u),p=o(d);y{Oa()("flat")})),IY=J((()=>{Oa()("flatMap")})),LY=J((()=>{"use strict";var e=tt(),t=ci(),n=fi(),i=Aw(),r=L1(),a=Lp();e({target:"Array",proto:!0,arity:1,forced:1!==[].unshift(0)||!function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(e){return e instanceof TypeError}}()},{unshift:function(e){var s=t(this),o=n(s),l=arguments.length;if(l){a(o+l);for(var h=o;h--;){var c=h+l;h in s?s[c]=s[h]:r(s,c)}for(var u=0;u{var n=fi(),i=os(),r=RangeError;t.exports=function(e,t,a,s){var o=n(e),l=i(a),h=l<0?o+l:l;if(h>=o||h<0)throw r("Incorrect index");for(var c=new t(o),u=0;u{"use strict";var e=tt(),t=tD(),n=Ls(),i=Array;e({target:"Array",proto:!0},{with:function(e,r){return t(n(this),i,e,r)}})})),Lw=J(((e,t)=>{t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView})),Vg=J(((e,t)=>{var n=Yi();t.exports=function(e,t,i){for(var r in t)n(e,r,t[r],i);return e}})),dc=J(((e,t)=>{var n=Fo(),i=TypeError;t.exports=function(e,t){if(n(t,e))return e;throw i("Incorrect invocation")}})),nD=J(((e,t)=>{var n=os(),i=to(),r=RangeError;t.exports=function(e){if(void 0===e)return 0;var t=n(e),a=i(t);if(t!==a)throw r("Wrong length or index");return a}})),HY=J(((e,t)=>{var n=Array,i=Math.abs,r=Math.pow,a=Math.floor,s=Math.log,o=Math.LN2;t.exports={pack:function(e,t,l){var h,c,u,d=n(l),p=8*l-t-1,f=(1<>1,g=23===t?r(2,-24)-r(2,-77):0,v=e<0||0===e&&1/e<0?1:0,y=0;for((e=i(e))!=e||e===1/0?(c=e!=e?1:0,h=f):(h=a(s(e)/o),e*(u=r(2,-h))<1&&(h--,u*=2),(e+=h+m>=1?g/u:g*r(2,1-m))*u>=2&&(h++,u/=2),h+m>=f?(c=0,h=f):h+m>=1?(c=(e*u-1)*r(2,t),h+=m):(c=e*r(2,m-1)*r(2,t),h=0));t>=8;)d[y++]=255&c,c/=256,t-=8;for(h=h<0;)d[y++]=255&h,h/=256,p-=8;return d[--y]|=128*v,d},unpack:function(e,t){var n,i=e.length,a=8*i-t-1,s=(1<>1,l=a-7,h=i-1,c=e[h--],u=127&c;for(c>>=7;l>0;)u=256*u+e[h--],l-=8;for(n=u&(1<<-l)-1,u>>=-l,l+=t;l>0;)n=256*n+e[h--],l-=8;if(0===u)u=1-o;else{if(u===s)return n?NaN:c?-1/0:1/0;n+=r(2,t),u-=o}return(c?-1:1)*n*r(2,u-t)}}})),z1=J(((e,t)=>{"use strict";var n,i,r,a,s,o,l=Mn(),h=en(),c=Kn(),u=Lw(),d=wp(),p=da(),f=Hs(),m=Vg(),g=Yt(),v=dc(),y=os(),x=to(),b=nD(),_=HY(),w=Bo(),S=uc(),M=yh().f,T=_w(),E=Lg(),A=ro(),C=Ts(),P=d.PROPER,R=d.CONFIGURABLE,O="ArrayBuffer",L="DataView",I="prototype",D="Wrong index",k=C.getterFor(O),N=C.getterFor(L),F=C.set,U=l[O],B=U,z=B&&B[I],H=l[L],V=H&&H[I],j=Object.prototype,G=l.Array,W=l.RangeError,X=h(T),Y=h([].reverse),q=_.pack,J=_.unpack,Z=function(e){return[255&e]},K=function(e){return[255&e,e>>8&255]},$=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},Q=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},ee=function(e){return q(e,23,4)},te=function(e){return q(e,52,8)},ne=function(e,t,n){f(e[I],t,{configurable:!0,get:function(){return n(this)[t]}})},ie=function(e,t,n,i){var r=b(n),a=N(e);if(r+t>a.byteLength)throw W(D);var s=a.bytes,o=r+a.byteOffset,l=E(s,o,o+t);return i?l:Y(l)},re=function(e,t,n,i,r,a){var s=b(n),o=N(e);if(s+t>o.byteLength)throw W(D);for(var l=o.bytes,h=s+o.byteOffset,c=i(+r),u=0;ur;)(a=i[r++])in B||p(B,a,U[a]);z.constructor=B}S&&w(V)!==j&&S(V,j),s=new H(new B(2)),o=h(V.setInt8),s.setInt8(0,2147483648),s.setInt8(1,2147483649),(s.getInt8(0)||!s.getInt8(1))&&m(V,{setInt8:function(e,t){o(this,e,t<<24>>24)},setUint8:function(e,t){o(this,e,t<<24>>24)}},{unsafe:!0})}else z=(B=function(e){v(this,z);var t=b(e);F(this,{type:O,bytes:X(G(t),0),byteLength:t}),c||(this.byteLength=t,this.detached=!1)})[I],V=(H=function(e,t,n){v(this,V),v(e,z);var i=k(e),r=i.byteLength,a=y(t);if(a<0||a>r)throw W("Wrong offset");if(a+(n=void 0===n?r-a:x(n))>r)throw W("Wrong length");F(this,{type:L,buffer:e,byteLength:n,byteOffset:a,bytes:i.bytes}),c||(this.buffer=e,this.byteLength=n,this.byteOffset=a)})[I],c&&(ne(B,"byteLength",k),ne(H,"buffer",N),ne(H,"byteLength",N),ne(H,"byteOffset",N)),m(V,{getInt8:function(e){return ie(this,1,e)[0]<<24>>24},getUint8:function(e){return ie(this,1,e)[0]},getInt16:function(e){var t=ie(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=ie(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return Q(ie(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return Q(ie(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return J(ie(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return J(ie(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){re(this,1,e,Z,t)},setUint8:function(e,t){re(this,1,e,Z,t)},setInt16:function(e,t){re(this,2,e,K,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){re(this,2,e,K,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){re(this,4,e,$,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){re(this,4,e,$,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){re(this,4,e,ee,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){re(this,8,e,te,t,arguments.length>2?arguments[2]:void 0)}});A(B,O),A(H,L),t.exports={ArrayBuffer:B,DataView:H}})),a$=J((()=>{"use strict";var e=tt(),t=Mn(),n=z1(),i=Dp(),r="ArrayBuffer",a=n[r];e({global:!0,constructor:!0,forced:t[r]!==a},{ArrayBuffer:a}),i(r)})),Pr=J(((e,t)=>{"use strict";var n,i,r,a=Lw(),s=Kn(),o=Mn(),l=Fr(),h=Nr(),c=$r(),u=cc(),d=kd(),p=da(),f=Yi(),m=Hs(),g=Fo(),v=Bo(),y=uc(),x=Br(),b=Tp(),_=Ts(),w=_.enforce,S=_.get,M=o.Int8Array,T=M&&M.prototype,E=o.Uint8ClampedArray,A=E&&E.prototype,C=M&&v(M),P=T&&v(T),R=Object.prototype,O=o.TypeError,L=x("toStringTag"),I=b("TYPED_ARRAY_TAG"),D="TypedArrayConstructor",k=a&&!!y&&"Opera"!==u(o.opera),N=!1,F={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},U={BigInt64Array:8,BigUint64Array:8},B=function(e){var t=v(e);if(h(t)){var n=S(t);return n&&c(n,D)?n[D]:B(t)}},z=function(e){if(!h(e))return!1;var t=u(e);return c(F,t)||c(U,t)};for(n in F)(r=(i=o[n])&&i.prototype)?w(r)[D]=i:k=!1;for(n in U)(r=(i=o[n])&&i.prototype)&&(w(r)[D]=i);if((!k||!l(C)||C===Function.prototype)&&(C=function(){throw O("Incorrect invocation")},k))for(n in F)o[n]&&y(o[n],C);if((!k||!P||P===R)&&(P=C.prototype,k))for(n in F)o[n]&&y(o[n].prototype,P);if(k&&v(A)!==P&&y(A,P),s&&!c(P,L))for(n in N=!0,m(P,L,{configurable:!0,get:function(){return h(this)?this[I]:void 0}}),F)o[n]&&p(o[n],I,n);t.exports={NATIVE_ARRAY_BUFFER_VIEWS:k,TYPED_ARRAY_TAG:N&&I,aTypedArray:function(e){if(z(e))return e;throw O("Target is not a typed array")},aTypedArrayConstructor:function(e){if(l(e)&&(!y||g(C,e)))return e;throw O(d(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n,i){if(s){if(n)for(var r in F){var a=o[r];if(a&&c(a.prototype,e))try{delete a.prototype[e]}catch(n){try{a.prototype[e]=t}catch(e){}}}(!P[e]||n)&&f(P,e,n?t:k&&T[e]||t,i)}},exportTypedArrayStaticMethod:function(e,t,n){var i,r;if(s){if(y){if(n)for(i in F)if((r=o[i])&&c(r,e))try{delete r[e]}catch(e){}if(C[e]&&!n)return;try{return f(C,e,n?t:k&&C[e]||t)}catch(e){}}for(i in F)(r=o[i])&&(!r[e]||n)&&f(r,e,t)}},getTypedArrayConstructor:B,isView:function(e){if(!h(e))return!1;var t=u(e);return"DataView"===t||c(F,t)||c(U,t)},isTypedArray:z,TypedArray:C,TypedArrayPrototype:P}})),y$=J((()=>{var e=tt(),t=Pr();e({target:"ArrayBuffer",stat:!0,forced:!t.NATIVE_ARRAY_BUFFER_VIEWS},{isView:t.isView})})),qw=J(((e,t)=>{var n=Mp(),i=kd(),r=TypeError;t.exports=function(e){if(n(e))return e;throw r(i(e)+" is not a constructor")}})),kp=J(((e,t)=>{var n=br(),i=qw(),r=La(),a=Br()("species");t.exports=function(e,t){var s,o=n(e).constructor;return void 0===o||r(s=n(o)[a])?t:i(s)}})),R$=J((()=>{"use strict";var e=tt(),t=xh(),n=Yt(),i=z1(),r=br(),a=lc(),s=to(),o=kp(),l=i.ArrayBuffer,h=i.DataView,c=h.prototype,u=t(l.prototype.slice),d=t(c.getUint8),p=t(c.setUint8);e({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:n((function(){return!new l(2).slice(1,void 0).byteLength}))},{slice:function(e,t){if(u&&void 0===t)return u(r(this),e);for(var n=r(this).byteLength,i=a(e,n),c=a(void 0===t?n:t,n),f=new(o(this,l))(s(c-i)),m=new h(this),g=new h(f),v=0;i{var e=tt(),t=z1();e({global:!0,constructor:!0,forced:!Lw()},{DataView:t.DataView})})),C$=J((()=>{A$()})),P$=J((()=>{"use strict";var e=tt(),t=en(),n=Yt()((function(){return 120!==new Date(16e11).getYear()})),i=t(Date.prototype.getFullYear);e({target:"Date",proto:!0,forced:n},{getYear:function(){return i(this)-1900}})})),L$=J((()=>{var e=tt(),t=en(),n=Date,i=t(n.prototype.getTime);e({target:"Date",stat:!0},{now:function(){return i(new n)}})})),k$=J((()=>{"use strict";var e=tt(),t=en(),n=os(),i=Date.prototype,r=t(i.getTime),a=t(i.setFullYear);e({target:"Date",proto:!0},{setYear:function(e){r(this);var t=n(e);return a(this,0<=t&&t<=99?t+1900:t)}})})),F$=J((()=>{tt()({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})})),G1=J(((e,t)=>{"use strict";var n=os(),i=Mr(),r=_s(),a=RangeError;t.exports=function(e){var t=i(r(this)),s="",o=n(e);if(o<0||o==1/0)throw a("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(t+=t))1&o&&(s+=t);return s}})),Ww=J(((e,t)=>{var n=en(),i=to(),r=Mr(),a=G1(),s=_s(),o=n(a),l=n("".slice),h=Math.ceil,c=function(e){return function(t,n,a){var c,u,d=r(s(t)),p=i(n),f=d.length,m=void 0===a?" ":r(a);return p<=f||""==m?d:((u=o(m,h((c=p-f)/m.length))).length>c&&(u=l(u,0,c)),e?d+u:u+d)}};t.exports={start:c(!1),end:c(!0)}})),q$=J(((e,t)=>{"use strict";var n=en(),i=Yt(),r=Ww().start,a=RangeError,s=isFinite,o=Math.abs,l=Date.prototype,h=l.toISOString,c=n(l.getTime),u=n(l.getUTCDate),d=n(l.getUTCFullYear),p=n(l.getUTCHours),f=n(l.getUTCMilliseconds),m=n(l.getUTCMinutes),g=n(l.getUTCMonth),v=n(l.getUTCSeconds);t.exports=i((function(){return"0385-07-25T07:06:39.999Z"!=h.call(new Date(-50000000000001))}))||!i((function(){h.call(new Date(NaN))}))?function(){if(!s(c(this)))throw a("Invalid time value");var e=this,t=d(e),n=f(e),i=t<0?"-":t>9999?"+":"";return i+r(o(t),i?6:4,0)+"-"+r(g(e)+1,2,0)+"-"+r(u(e),2,0)+"T"+r(p(e),2,0)+":"+r(m(e),2,0)+":"+r(v(e),2,0)+"."+r(n,3,0)+"Z"}:h})),j$=J((()=>{var e=tt(),t=q$();e({target:"Date",proto:!0,forced:Date.prototype.toISOString!==t},{toISOString:t})})),X$=J((()=>{"use strict";var e=tt(),t=Yt(),n=ci(),i=v1();e({target:"Date",proto:!0,arity:1,forced:t((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=n(this),r=i(t,"number");return"number"!=typeof r||isFinite(r)?t.toISOString():null}})})),$$=J(((e,t)=>{"use strict";var n=br(),i=_3(),r=TypeError;t.exports=function(e){if(n(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw r("Incorrect hint");return i(this,e)}})),J$=J((()=>{var e=$r(),t=Yi(),n=$$(),i=Br()("toPrimitive"),r=Date.prototype;e(r,i)||t(r,i,n)})),nZ=J((()=>{var e=en(),t=Yi(),n=Date.prototype,i="Invalid Date",r="toString",a=e(n[r]),s=e(n.getTime);String(new Date(NaN))!=i&&t(n,r,(function(){var e=s(this);return e==e?a(this):i}))})),iZ=J((()=>{"use strict";var e=tt(),t=en(),n=Mr(),i=t("".charAt),r=t("".charCodeAt),a=t(/./.exec),s=t(1..toString),o=t("".toUpperCase),l=/[\w*+\-./@]/,h=function(e,t){for(var n=s(e,16);n.length{"use strict";var n=en(),i=ss(),r=Nr(),a=$r(),s=Nd(),o=Mg(),l=Function,h=n([].concat),c=n([].join),u={};t.exports=o?l.bind:function(e){var t=i(this),n=t.prototype,o=s(arguments,1),d=function(){var n=h(o,s(arguments));return this instanceof d?function(e,t,n){if(!a(u,t)){for(var i=[],r=0;r{var e=tt(),t=SD();e({target:"Function",proto:!0,forced:Function.bind!==t},{bind:t})})),fZ=J((()=>{"use strict";var e=Fr(),t=Nr(),n=Gi(),i=Bo(),r=Br(),a=KT(),s=r("hasInstance"),o=Function.prototype;s in o||n.f(o,s,{value:a((function(n){if(!e(this)||!t(n))return!1;var r=this.prototype;if(!t(r))return n instanceof this;for(;n=i(n);)if(r===n)return!0;return!1}),s)})})),vZ=J((()=>{var e=Kn(),t=wp().EXISTS,n=en(),i=Hs(),r=Function.prototype,a=n(r.toString),s=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,o=n(s.exec);e&&!t&&i(r,"name",{configurable:!0,get:function(){try{return o(s,a(this))[1]}catch(e){return""}}})})),yZ=J((()=>{var e=tt(),t=Mn();e({global:!0,forced:t.globalThis!==t},{globalThis:t})})),xZ=J((()=>{var e=Mn();ro()(e.JSON,"JSON",!0)})),jw=J(((e,t)=>{var n=Yt();t.exports=n((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}))})),Yw=J(((e,t)=>{var n=Yt(),i=Nr(),r=ha(),a=jw(),s=Object.isExtensible,o=n((function(){s(1)}));t.exports=o||a?function(e){return!(!i(e)||a&&"ArrayBuffer"==r(e))&&(!s||s(e))}:s})),Np=J(((e,t)=>{var n=Yt();t.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))})),Wd=J(((e,t)=>{var n=tt(),i=en(),r=Ag(),a=Nr(),s=$r(),o=Gi().f,l=yh(),h=sw(),c=Yw(),u=Tp(),d=Np(),p=!1,f=u("meta"),m=0,g=function(e){o(e,f,{value:{objectID:"O"+m++,weakData:{}}})},v=t.exports={enable:function(){v.enable=function(){},p=!0;var e=l.f,t=i([].splice),r={};r[f]=1,e(r).length&&(l.f=function(n){for(var i=e(n),r=0,a=i.length;r{"use strict";var n=tt(),i=Mn(),r=en(),a=Pg(),s=Yi(),o=Wd(),l=hc(),h=dc(),c=Fr(),u=La(),d=Nr(),p=Yt(),f=O1(),m=ro(),g=Pp();t.exports=function(e,t,v){var y=-1!==e.indexOf("Map"),x=-1!==e.indexOf("Weak"),b=y?"set":"add",_=i[e],w=_&&_.prototype,S=_,M={},T=function(e){var t=r(w[e]);s(w,e,"add"==e?function(e){return t(this,0===e?0:e),this}:"delete"==e?function(e){return!(x&&!d(e))&&t(this,0===e?0:e)}:"get"==e?function(e){return x&&!d(e)?void 0:t(this,0===e?0:e)}:"has"==e?function(e){return!(x&&!d(e))&&t(this,0===e?0:e)}:function(e,n){return t(this,0===e?0:e,n),this})};if(a(e,!c(_)||!(x||w.forEach&&!p((function(){(new _).entries().next()})))))S=v.getConstructor(t,e,y,b),o.enable();else if(a(e,!0)){var E=new S,A=E[b](x?{}:-0,1)!=E,C=p((function(){E.has(1)})),P=f((function(e){new _(e)})),R=!x&&p((function(){for(var e=new _,t=5;t--;)e[b](t,t);return!e.has(-0)}));P||((S=t((function(e,t){h(e,w);var n=g(new _,e,S);return u(t)||l(t,n[b],{that:n,AS_ENTRIES:y}),n}))).prototype=w,w.constructor=S),(C||R)&&(T("delete"),T("has"),y&&T("get")),(R||A)&&T(b),x&&w.clear&&delete w.clear}return M[e]=S,n({global:!0,constructor:!0,forced:S!=_},M),m(S,e),x||v.setStrong(S,e,y),S}})),OD=J(((e,t)=>{"use strict";var n=no(),i=Hs(),r=Vg(),a=fl(),s=dc(),o=La(),l=hc(),h=Mw(),c=N1(),u=Dp(),d=Kn(),p=Wd().fastKey,f=Ts(),m=f.set,g=f.getterFor;t.exports={getConstructor:function(e,t,h,c){var u=e((function(e,i){s(e,f),m(e,{type:t,index:n(null),first:void 0,last:void 0,size:0}),d||(e.size=0),o(i)||l(i,e[c],{that:e,AS_ENTRIES:h})})),f=u.prototype,v=g(t),y=function(e,t,n){var i,r,a=v(e),s=x(e,t);return s?s.value=n:(a.last=s={index:r=p(t,!0),key:t,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),d?a.size++:e.size++,"F"!==r&&(a.index[r]=s)),e},x=function(e,t){var n,i=v(e),r=p(t);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==t)return n};return r(f,{clear:function(){for(var e=v(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,d?e.size=0:this.size=0},delete:function(e){var t=this,n=v(t),i=x(t,e);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),d?n.size--:t.size--}return!!i},forEach:function(e){for(var t,n=v(this),i=a(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:n.first;)for(i(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!x(this,e)}}),r(f,h?{get:function(e){var t=x(this,e);return t&&t.value},set:function(e,t){return y(this,0===e?0:e,t)}}:{add:function(e){return y(this,e=0===e?0:e,e)}}),d&&i(f,"size",{configurable:!0,get:function(){return v(this).size}}),u},setStrong:function(e,t,n){var i=t+" Iterator",r=g(t),a=g(i);h(e,t,(function(e,t){m(this,{type:i,target:e,state:r(e),kind:t,last:void 0})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?c("keys"==t?n.key:"values"==t?n.value:[n.key,n.value],!1):(e.target=void 0,c(void 0,!0))}),n?"entries":"values",!n,!0),u(t)}}})),OZ=J((()=>{"use strict";W1()("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),OD())})),kZ=J((()=>{OZ()})),kD=J(((e,t)=>{var n=Math.log;t.exports=Math.log1p||function(e){var t=+e;return t>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}})),BZ=J((()=>{var e=tt(),t=kD(),n=Math.acosh,i=Math.log,r=Math.sqrt,a=Math.LN2;e({target:"Math",stat:!0,forced:!n||710!=Math.floor(n(Number.MAX_VALUE))||n(1/0)!=1/0},{acosh:function(e){var n=+e;return n<1?NaN:n>94906265.62425156?i(n)+a:t(n-1+r(n-1)*r(n+1))}})})),VZ=J((()=>{var e=tt(),t=Math.asinh,n=Math.log,i=Math.sqrt;e({target:"Math",stat:!0,forced:!(t&&1/t(0)>0)},{asinh:function e(t){var r=+t;return isFinite(r)&&0!=r?r<0?-e(-r):n(r+i(r*r+1)):r}})})),GZ=J((()=>{var e=tt(),t=Math.atanh,n=Math.log;e({target:"Math",stat:!0,forced:!(t&&1/t(-0)<0)},{atanh:function(e){var t=+e;return 0==t?t:n((1+t)/(1-t))/2}})})),Zw=J(((e,t)=>{t.exports=Math.sign||function(e){var t=+e;return 0==t||t!=t?t:t<0?-1:1}})),WZ=J((()=>{var e=tt(),t=Zw(),n=Math.abs,i=Math.pow;e({target:"Math",stat:!0},{cbrt:function(e){var r=+e;return t(r)*i(n(r),1/3)}})})),jZ=J((()=>{var e=tt(),t=Math.floor,n=Math.log,i=Math.LOG2E;e({target:"Math",stat:!0},{clz32:function(e){var r=e>>>0;return r?31-t(n(r+.5)*i):32}})})),Y1=J(((e,t)=>{var n=Math.expm1,i=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(e){var t=+e;return 0==t?t:t>-1e-6&&t<1e-6?t+t*t/2:i(t)-1}:n})),$Z=J((()=>{var e=tt(),t=Y1(),n=Math.cosh,i=Math.abs,r=Math.E;e({target:"Math",stat:!0,forced:!n||n(710)===1/0},{cosh:function(e){var n=t(i(e)-1)+1;return(n+1/(n*r*r))*(r/2)}})})),KZ=J((()=>{var e=tt(),t=Y1();e({target:"Math",stat:!0,forced:t!=Math.expm1},{expm1:t})})),QZ=J(((e,t)=>{var n=Zw(),i=Math.abs,r=Math.pow,a=r(2,-52),s=r(2,-23),o=r(2,127)*(2-s),l=r(2,-126);t.exports=Math.fround||function(e){var t,r,h=+e,c=i(h),u=n(h);return co||r!=r?u*(1/0):u*r}})),eK=J((()=>{tt()({target:"Math",stat:!0},{fround:QZ()})})),nK=J((()=>{var e=tt(),t=Math.hypot,n=Math.abs,i=Math.sqrt;e({target:"Math",stat:!0,arity:2,forced:!!t&&t(1/0,NaN)!==1/0},{hypot:function(e,t){for(var r,a,s=0,o=0,l=arguments.length,h=0;o0?(a=r/h)*a:r;return h===1/0?1/0:h*i(s)}})})),iK=J((()=>{var e=tt(),t=Yt(),n=Math.imul;e({target:"Math",stat:!0,forced:t((function(){return-5!=n(4294967295,5)||2!=n.length}))},{imul:function(e,t){var n=65535,i=+e,r=+t,a=n&i,s=n&r;return 0|a*s+((n&i>>>16)*s+a*(n&r>>>16)<<16>>>0)}})})),HD=J(((e,t)=>{var n=Math.log,i=Math.LOG10E;t.exports=Math.log10||function(e){return n(e)*i}})),aK=J((()=>{tt()({target:"Math",stat:!0},{log10:HD()})})),oK=J((()=>{tt()({target:"Math",stat:!0},{log1p:kD()})})),lK=J((()=>{var e=tt(),t=Math.log,n=Math.LN2;e({target:"Math",stat:!0},{log2:function(e){return t(e)/n}})})),cK=J((()=>{tt()({target:"Math",stat:!0},{sign:Zw()})})),dK=J((()=>{var e=tt(),t=Yt(),n=Y1(),i=Math.abs,r=Math.exp,a=Math.E;e({target:"Math",stat:!0,forced:t((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){var t=+e;return i(t)<1?(n(t)-n(-t))/2:(r(t-1)-r(-t-1))*(a/2)}})})),mK=J((()=>{var e=tt(),t=Y1(),n=Math.exp;e({target:"Math",stat:!0},{tanh:function(e){var i=+e,r=t(i),a=t(-i);return r==1/0?1:a==1/0?-1:(r-a)/(n(i)+n(-i))}})})),gK=J((()=>{ro()(Math,"Math",!0)})),vK=J((()=>{tt()({target:"Math",stat:!0},{trunc:H3()})})),$1=J(((e,t)=>{var n=en();t.exports=n(1..valueOf)})),Z1=J(((e,t)=>{t.exports="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"})),Bp=J(((e,t)=>{var n=en(),i=_s(),r=Mr(),a=Z1(),s=n("".replace),o=RegExp("^["+a+"]+"),l=RegExp("(^|[^"+a+"])["+a+"]+$"),h=function(e){return function(t){var n=r(i(t));return 1&e&&(n=s(n,o,"")),2&e&&(n=s(n,l,"$1")),n}};t.exports={start:h(1),end:h(2),trim:h(3)}})),AK=J((()=>{"use strict";var e=tt(),t=as(),n=Kn(),i=Mn(),r=aw(),a=en(),s=Pg(),o=$r(),l=Pp(),h=Fo(),c=Od(),u=v1(),d=Yt(),p=yh().f,f=Qs().f,m=Gi().f,g=$1(),v=Bp().trim,y="Number",x=i[y],b=r[y],_=x.prototype,w=i.TypeError,S=a("".slice),M=a("".charCodeAt),T=s(y,!x(" 0o1")||!x("0b1")||x("+0x1")),E=function(e){var t,n=arguments.length<1?0:x(function(e){var t=u(e,"number");return"bigint"==typeof t?t:function(e){var t,n,i,r,a,s,o,l,h=u(e,"number");if(c(h))throw w("Cannot convert a Symbol value to a number");if("string"==typeof h&&h.length>2)if(h=v(h),43===(t=M(h,0))||45===t){if(88===(n=M(h,2))||120===n)return NaN}else if(48===t){switch(M(h,1)){case 66:case 98:i=2,r=49;break;case 79:case 111:i=8,r=55;break;default:return+h}for(s=(a=S(h,2)).length,o=0;or)return NaN;return parseInt(a,i)}return+h}(t)}(e));return h(_,t=this)&&d((function(){g(t)}))?l(Object(n),this,E):n};E.prototype=_,T&&!t&&(_.constructor=E),e({global:!0,constructor:!0,wrap:!0,forced:T},{Number:E});var A=function(e,t){for(var i,r=n?p(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),a=0;r.length>a;a++)o(t,i=r[a])&&!o(e,i)&&m(e,i,f(t,i))};t&&b&&A(r[y],b),(T||t)&&A(r[y],x)})),CK=J((()=>{tt()({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})})),IK=J(((e,t)=>{var n=Mn().isFinite;t.exports=Number.isFinite||function(e){return"number"==typeof e&&n(e)}})),LK=J((()=>{tt()({target:"Number",stat:!0},{isFinite:IK()})})),tS=J(((e,t)=>{var n=Nr(),i=Math.floor;t.exports=Number.isInteger||function(e){return!n(e)&&isFinite(e)&&i(e)===e}})),OK=J((()=>{tt()({target:"Number",stat:!0},{isInteger:tS()})})),kK=J((()=>{tt()({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})})),FK=J((()=>{var e=tt(),t=tS(),n=Math.abs;e({target:"Number",stat:!0},{isSafeInteger:function(e){return t(e)&&n(e)<=9007199254740991}})})),NK=J((()=>{tt()({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})})),BK=J((()=>{tt()({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})})),XD=J(((e,t)=>{var n=Mn(),i=Yt(),r=en(),a=Mr(),s=Bp().trim,o=Z1(),l=r("".charAt),h=n.parseFloat,c=n.Symbol,u=c&&c.iterator,d=1/h(o+"-0")!=-1/0||u&&!i((function(){h(Object(u))}));t.exports=d?function(e){var t=s(a(e)),n=h(t);return 0===n&&"-"==l(t,0)?-0:n}:h})),qK=J((()=>{var e=tt(),t=XD();e({target:"Number",stat:!0,forced:Number.parseFloat!=t},{parseFloat:t})})),YD=J(((e,t)=>{var n=Mn(),i=Yt(),r=en(),a=Mr(),s=Bp().trim,o=Z1(),l=n.parseInt,h=n.Symbol,c=h&&h.iterator,u=/^[+-]?0x/i,d=r(u.exec),p=8!==l(o+"08")||22!==l(o+"0x16")||c&&!i((function(){l(Object(c))}));t.exports=p?function(e,t){var n=s(a(e));return l(n,t>>>0||(d(u,n)?16:10))}:l})),JK=J((()=>{var e=tt(),t=YD();e({target:"Number",stat:!0,forced:Number.parseInt!=t},{parseInt:t})})),rJ=J((()=>{"use strict";var e=tt(),t=en(),n=os(),i=$1(),r=G1(),a=HD(),s=Yt(),o=RangeError,l=String,h=isFinite,c=Math.abs,u=Math.floor,d=Math.pow,p=Math.round,f=t(1..toExponential),m=t(r),g=t("".slice),v="-6.9000e-11"===f(-69e-12,4)&&"1.25e+0"===f(1.255,2)&&"1.235e+4"===f(12345,3)&&"3e+1"===f(25,0);e({target:"Number",proto:!0,forced:!v||!(s((function(){f(1,1/0)}))&&s((function(){f(1,-1/0)})))||!!s((function(){f(1/0,1/0),f(NaN,1/0)}))},{toExponential:function(e){var t=i(this);if(void 0===e)return f(t);var r=n(e);if(!h(t))return String(t);if(r<0||r>20)throw o("Incorrect fraction digits");if(v)return f(t,r);var s="",y="",x=0,b="",_="";if(t<0&&(s="-",t=-t),0===t)x=0,y=m("0",r+1);else{var w=a(t);x=u(w);var S=0,M=d(10,x-r);2*t>=(2*(S=p(t/M))+1)*M&&(S+=1),S>=d(10,r+1)&&(S/=10,x+=1),y=l(S)}return 0!==r&&(y=g(y,0,1)+"."+g(y,1)),0===x?(b="+",_="0"):(b=x>0?"+":"-",_=l(c(x))),s+(y+"e")+b+_}})})),cJ=J((()=>{"use strict";var e=tt(),t=en(),n=os(),i=$1(),r=G1(),a=Yt(),s=RangeError,o=String,l=Math.floor,h=t(r),c=t("".slice),u=t(1..toFixed),d=function(e,t,n){return 0===t?n:t%2==1?d(e,t-1,n*e):d(e*e,t/2,n)},p=function(e,t,n){for(var i=-1,r=n;++i<6;)r+=t*e[i],e[i]=r%1e7,r=l(r/1e7)},f=function(e,t){for(var n=6,i=0;--n>=0;)i+=e[n],e[n]=l(i/t),i=i%t*1e7},m=function(e){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==e[t]){var i=o(e[t]);n=""===n?i:n+h("0",7-i.length)+i}return n};e({target:"Number",proto:!0,forced:a((function(){return"0.000"!==u(8e-5,3)||"1"!==u(.9,0)||"1.25"!==u(1.255,2)||"1000000000000000128"!==u(0xde0b6b3a7640080,0)}))||!a((function(){u({})}))},{toFixed:function(e){var t,r,a,l,u=i(this),g=n(e),v=[0,0,0,0,0,0],y="",x="0";if(g<0||g>20)throw s("Incorrect fraction digits");if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return o(u);if(u<0&&(y="-",u=-u),u>1e-21)if(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(u*d(2,69,1))-69,r=t<0?u*d(2,-t,1):u/d(2,t,1),r*=4503599627370496,(t=52-t)>0){for(p(v,0,r),a=g;a>=7;)p(v,1e7,0),a-=7;for(p(v,d(10,a,1),0),a=t-1;a>=23;)f(v,1<<23),a-=23;f(v,1<0?y+((l=x.length)<=g?"0."+h("0",g-l)+x:c(x,0,l-g)+"."+c(x,l-g)):y+x}})})),dJ=J((()=>{"use strict";var e=tt(),t=en(),n=Yt(),i=$1(),r=t(1..toPrecision);e({target:"Number",proto:!0,forced:n((function(){return"1"!==r(1,void 0)}))||!n((function(){r({})}))},{toPrecision:function(e){return void 0===e?r(i(this)):r(i(this),e)}})})),tO=J(((e,t)=>{"use strict";var n=Kn(),i=en(),r=wr(),a=Yt(),s=Ig(),o=E1(),l=g1(),h=ci(),c=bp(),u=Object.assign,d=Object.defineProperty,p=i([].concat);t.exports=!u||a((function(){if(n&&1!==u({b:1},u(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},i=Symbol(),r="abcdefghijklmnopqrst";return e[i]=7,r.split("").forEach((function(e){t[e]=e})),7!=u({},e)[i]||s(u({},t)).join("")!=r}))?function(e,t){for(var i=h(e),a=arguments.length,u=1,d=o.f,f=l.f;a>u;)for(var m,g=c(arguments[u++]),v=d?p(s(g),d(g)):s(g),y=v.length,x=0;y>x;)m=v[x++],(!n||r(f,g,m))&&(i[m]=g[m]);return i}:u})),vJ=J((()=>{var e=tt(),t=tO();e({target:"Object",stat:!0,arity:2,forced:Object.assign!==t},{assign:t})})),yJ=J((()=>{tt()({target:"Object",stat:!0,sham:!Kn()},{create:no()})})),ex=J(((e,t)=>{"use strict";var n=as(),i=Mn(),r=Yt(),a=Pw();t.exports=n||!r((function(){if(!(a&&a<535)){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete i[e]}}))})),EJ=J((()=>{"use strict";var e=tt(),t=Kn(),n=ex(),i=ss(),r=ci(),a=Gi();t&&e({target:"Object",proto:!0,forced:n},{__defineGetter__:function(e,t){a.f(r(this),e,{get:i(t),enumerable:!0,configurable:!0})}})})),TJ=J((()=>{var e=tt(),t=Kn(),n=nw().f;e({target:"Object",stat:!0,forced:Object.defineProperties!==n,sham:!t},{defineProperties:n})})),SJ=J((()=>{var e=tt(),t=Kn(),n=Gi().f;e({target:"Object",stat:!0,forced:Object.defineProperty!==n,sham:!t},{defineProperty:n})})),MJ=J((()=>{"use strict";var e=tt(),t=Kn(),n=ex(),i=ss(),r=ci(),a=Gi();t&&e({target:"Object",proto:!0,forced:n},{__defineSetter__:function(e,t){a.f(r(this),e,{set:i(t),enumerable:!0,configurable:!0})}})})),nO=J(((e,t)=>{var n=Kn(),i=en(),r=Ig(),a=Ls(),s=i(g1().f),o=i([].push),l=function(e){return function(t){for(var i,l=a(t),h=r(l),c=h.length,u=0,d=[];c>u;)i=h[u++],(!n||s(l,i))&&o(d,e?[i,l[i]]:l[i]);return d}};t.exports={entries:l(!0),values:l(!1)}})),PJ=J((()=>{var e=tt(),t=nO().entries;e({target:"Object",stat:!0},{entries:function(e){return t(e)}})})),IJ=J((()=>{var e=tt(),t=Np(),n=Yt(),i=Nr(),r=Wd().onFreeze,a=Object.freeze;e({target:"Object",stat:!0,forced:n((function(){a(1)})),sham:!t},{freeze:function(e){return a&&i(e)?a(r(e)):e}})})),LJ=J((()=>{var e=tt(),t=hc(),n=ou();e({target:"Object",stat:!0},{fromEntries:function(e){var i={};return t(e,(function(e,t){n(i,e,t)}),{AS_ENTRIES:!0}),i}})})),kJ=J((()=>{var e=tt(),t=Yt(),n=Ls(),i=Qs().f,r=Kn();e({target:"Object",stat:!0,forced:!r||t((function(){i(1)})),sham:!r},{getOwnPropertyDescriptor:function(e,t){return i(n(e),t)}})})),FJ=J((()=>{var e=tt(),t=Kn(),n=QT(),i=Ls(),r=Qs(),a=ou();e({target:"Object",stat:!0,sham:!t},{getOwnPropertyDescriptors:function(e){for(var t,s,o=i(e),l=r.f,h=n(o),c={},u=0;h.length>u;)void 0!==(s=l(o,t=h[u++]))&&a(c,t,s);return c}})})),NJ=J((()=>{var e=tt(),t=Yt(),n=sw().f;e({target:"Object",stat:!0,forced:t((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:n})})),UJ=J((()=>{var e=tt(),t=Yt(),n=ci(),i=Bo(),r=vw();e({target:"Object",stat:!0,forced:t((function(){i(1)})),sham:!r},{getPrototypeOf:function(e){return i(n(e))}})})),HJ=J((()=>{tt()({target:"Object",stat:!0},{hasOwn:$r()})})),iO=J(((e,t)=>{t.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}})),zJ=J((()=>{tt()({target:"Object",stat:!0},{is:iO()})})),qJ=J((()=>{var e=tt(),t=Yw();e({target:"Object",stat:!0,forced:Object.isExtensible!==t},{isExtensible:t})})),jJ=J((()=>{var e=tt(),t=Yt(),n=Nr(),i=ha(),r=jw(),a=Object.isFrozen;e({target:"Object",stat:!0,forced:r||t((function(){a(1)}))},{isFrozen:function(e){return!(n(e)&&(!r||"ArrayBuffer"!=i(e)))||!!a&&a(e)}})})),YJ=J((()=>{var e=tt(),t=Yt(),n=Nr(),i=ha(),r=jw(),a=Object.isSealed;e({target:"Object",stat:!0,forced:r||t((function(){a(1)}))},{isSealed:function(e){return!(n(e)&&(!r||"ArrayBuffer"!=i(e)))||!!a&&a(e)}})})),ZJ=J((()=>{var e=tt(),t=ci(),n=Ig();e({target:"Object",stat:!0,forced:Yt()((function(){n(1)}))},{keys:function(e){return n(t(e))}})})),KJ=J((()=>{"use strict";var e=tt(),t=Kn(),n=ex(),i=ci(),r=vh(),a=Bo(),s=Qs().f;t&&e({target:"Object",proto:!0,forced:n},{__lookupGetter__:function(e){var t,n=i(this),o=r(e);do{if(t=s(n,o))return t.get}while(n=a(n))}})})),JJ=J((()=>{"use strict";var e=tt(),t=Kn(),n=ex(),i=ci(),r=vh(),a=Bo(),s=Qs().f;t&&e({target:"Object",proto:!0,forced:n},{__lookupSetter__:function(e){var t,n=i(this),o=r(e);do{if(t=s(n,o))return t.set}while(n=a(n))}})})),QJ=J((()=>{var e=tt(),t=Nr(),n=Wd().onFreeze,i=Np(),r=Yt(),a=Object.preventExtensions;e({target:"Object",stat:!0,forced:r((function(){a(1)})),sham:!i},{preventExtensions:function(e){return a&&t(e)?a(n(e)):e}})})),sQ=J((()=>{"use strict";var e=Kn(),t=Hs(),n=Nr(),i=ci(),r=_s(),a=Object.getPrototypeOf,s=Object.setPrototypeOf,o=Object.prototype,l="__proto__";if(e&&a&&s&&!(l in o))try{t(o,l,{configurable:!0,get:function(){return a(i(this))},set:function(e){var t=r(this);!n(e)&&null!==e||!n(t)||s(t,e)}})}catch(e){}})),aQ=J((()=>{var e=tt(),t=Nr(),n=Wd().onFreeze,i=Np(),r=Yt(),a=Object.seal;e({target:"Object",stat:!0,forced:r((function(){a(1)})),sham:!i},{seal:function(e){return a&&t(e)?a(n(e)):e}})})),oQ=J((()=>{tt()({target:"Object",stat:!0},{setPrototypeOf:uc()})})),cQ=J(((e,t)=>{"use strict";var n=ew(),i=cc();t.exports=n?{}.toString:function(){return"[object "+i(this)+"]"}})),uQ=J((()=>{var e=ew(),t=Yi(),n=cQ();e||t(Object.prototype,"toString",n,{unsafe:!0})})),hQ=J((()=>{var e=tt(),t=nO().values;e({target:"Object",stat:!0},{values:function(e){return t(e)}})})),fQ=J((()=>{var e=tt(),t=XD();e({global:!0,forced:parseFloat!=t},{parseFloat:t})})),mQ=J((()=>{var e=tt(),t=YD();e({global:!0,forced:parseInt!=t},{parseInt:t})})),pu=J(((e,t)=>{var n=TypeError;t.exports=function(e,t){if(e{var n=iu();t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(n)})),rx=J(((e,t)=>{var n,i,r,a,s=Mn(),o=No(),l=fl(),h=Fr(),c=$r(),u=Yt(),d=q3(),p=Nd(),f=y1(),m=pu(),g=cO(),v=uu(),y=s.setImmediate,x=s.clearImmediate,b=s.process,_=s.Dispatch,w=s.Function,S=s.MessageChannel,M=s.String,T=0,E={},A="onreadystatechange";u((function(){n=s.location}));var C=function(e){if(c(E,e)){var t=E[e];delete E[e],t()}},P=function(e){return function(){C(e)}},R=function(e){C(e.data)},O=function(e){s.postMessage(M(e),n.protocol+"//"+n.host)};(!y||!x)&&(y=function(e){m(arguments.length,1);var t=h(e)?e:w(e),n=p(arguments,1);return E[++T]=function(){o(t,void 0,n)},i(T),T},x=function(e){delete E[e]},v?i=function(e){b.nextTick(P(e))}:_&&_.now?i=function(e){_.now(P(e))}:S&&!g?(a=(r=new S).port2,r.port1.onmessage=R,i=l(a.postMessage,a)):s.addEventListener&&h(s.postMessage)&&!s.importScripts&&n&&"file:"!==n.protocol&&!u(O)?(i=O,s.addEventListener("message",R,!1)):i=A in f("script")?function(e){d.appendChild(f("script"))[A]=function(){d.removeChild(this),C(e)}}:function(e){setTimeout(P(e),0)}),t.exports={set:y,clear:x}})),yO=J(((e,t)=>{var n=function(){this.head=null,this.tail=null};n.prototype={add:function(e){var t={item:e,next:null},n=this.tail;n?n.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return null===(this.head=e.next)&&(this.tail=null),e.item}},t.exports=n})),PQ=J(((e,t)=>{var n=iu();t.exports=/ipad|iphone|ipod/i.test(n)&&"undefined"!=typeof Pebble})),LQ=J(((e,t)=>{var n=iu();t.exports=/web0s(?!.*chrome)/i.test(n)})),wO=J(((e,t)=>{var n,i,r,a,s,o,l,h=Mn(),c=fl(),u=Qs().f,d=rx().set,p=yO(),f=cO(),m=PQ(),g=LQ(),v=uu(),y=h.MutationObserver||h.WebKitMutationObserver,x=h.document,b=h.process,_=h.Promise,w=u(h,"queueMicrotask"),S=w&&w.value;S||(o=new p,l=function(){var e,t;for(v&&(e=b.domain)&&e.exit();t=o.get();)try{t()}catch(e){throw o.head&&n(),e}e&&e.enter()},f||v||g||!y||!x?!m&&_&&_.resolve?((a=_.resolve(void 0)).constructor=_,s=c(a.then,a),n=function(){s(l)}):v?n=function(){b.nextTick(l)}:(d=c(d,h),n=function(){d(l)}):(i=!0,r=x.createTextNode(""),new y(l).observe(r,{characterData:!0}),n=function(){r.data=i=!i}),S=function(e){o.head||n(),o.add(e)}),t.exports=S})),VQ=J(((e,t)=>{t.exports=function(e,t){try{1==arguments.length?console.error(e):console.error(e,t)}catch(e){}}})),Jg=J(((e,t)=>{t.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}})),Vp=J(((e,t)=>{var n=Mn();t.exports=n.Promise})),aS=J(((e,t)=>{t.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version})),SO=J(((e,t)=>{var n=aS(),i=uu();t.exports=!n&&!i&&"object"==typeof window&&"object"==typeof document})),Qg=J(((e,t)=>{var n=Mn(),i=Vp(),r=Fr(),a=Pg(),s=jT(),o=Br(),l=SO(),h=aS(),c=as(),u=su(),d=i&&i.prototype,p=o("species"),f=!1,m=r(n.PromiseRejectionEvent),g=a("Promise",(function(){var e=s(i),t=e!==String(i);if(!t&&66===u||c&&(!d.catch||!d.finally))return!0;if(!u||u<51||!/native code/.test(e)){var n=new i((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};if((n.constructor={})[p]=r,!(f=n.then((function(){}))instanceof r))return!0}return!t&&(l||h)&&!m}));t.exports={CONSTRUCTOR:g,REJECTION_EVENT:m,SUBCLASSING:f}})),jd=J(((e,t)=>{"use strict";var n=ss(),i=TypeError,r=function(e){var t,r;this.promise=new e((function(e,n){if(void 0!==t||void 0!==r)throw i("Bad Promise constructor");t=e,r=n})),this.resolve=n(t),this.reject=n(r)};t.exports.f=function(e){return new r(e)}})),mee=J((()=>{"use strict";var e,t,n,i=tt(),r=as(),a=uu(),s=Mn(),o=wr(),l=Yi(),h=uc(),c=ro(),u=Dp(),d=ss(),p=Fr(),f=Nr(),m=dc(),g=kp(),v=rx().set,y=wO(),x=VQ(),b=Jg(),_=yO(),w=Ts(),S=Vp(),M=Qg(),T=jd(),E="Promise",A=M.CONSTRUCTOR,C=M.REJECTION_EVENT,P=M.SUBCLASSING,R=w.getterFor(E),O=w.set,L=S&&S.prototype,I=S,D=L,k=s.TypeError,N=s.document,F=s.process,U=T.f,B=U,z=!!(N&&N.createEvent&&s.dispatchEvent),H="unhandledrejection",V=function(e){var t;return!(!f(e)||!p(t=e.then))&&t},j=function(e,t){var n,i,r,a=t.value,s=1==t.state,l=s?e.ok:e.fail,h=e.resolve,c=e.reject,u=e.domain;try{l?(s||(2===t.rejection&&q(t),t.rejection=1),!0===l?n=a:(u&&u.enter(),n=l(a),u&&(u.exit(),r=!0)),n===e.promise?c(k("Promise-chain cycle")):(i=V(n))?o(i,n,h,c):h(n)):c(a)}catch(e){u&&!r&&u.exit(),c(e)}},G=function(e,t){e.notified||(e.notified=!0,y((function(){for(var n,i=e.reactions;n=i.get();)j(n,e);e.notified=!1,t&&!e.rejection&&X(e)})))},W=function(e,t,n){var i,r;z?((i=N.createEvent("Event")).promise=t,i.reason=n,i.initEvent(e,!1,!0),s.dispatchEvent(i)):i={promise:t,reason:n},!C&&(r=s["on"+e])?r(i):e===H&&x("Unhandled promise rejection",n)},X=function(e){o(v,s,(function(){var t,n=e.facade,i=e.value;if(Y(e)&&(t=b((function(){a?F.emit("unhandledRejection",i,n):W(H,n,i)})),e.rejection=a||Y(e)?2:1,t.error))throw t.value}))},Y=function(e){return 1!==e.rejection&&!e.parent},q=function(e){o(v,s,(function(){var t=e.facade;a?F.emit("rejectionHandled",t):W("rejectionhandled",t,e.value)}))},J=function(e,t,n){return function(i){e(t,i,n)}},Z=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,G(e,!0))},K=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw k("Promise can't be resolved itself");var i=V(t);i?y((function(){var n={done:!1};try{o(i,t,J(K,n,e),J(Z,n,e))}catch(t){Z(n,t,e)}})):(e.value=t,e.state=1,G(e,!1))}catch(t){Z({done:!1},t,e)}}};if(A&&(D=(I=function(t){m(this,D),d(t),o(e,this);var n=R(this);try{t(J(K,n),J(Z,n))}catch(e){Z(n,e)}}).prototype,(e=function(e){O(this,{type:E,done:!1,notified:!1,parent:!1,reactions:new _,rejection:!1,state:0,value:void 0})}).prototype=l(D,"then",(function(e,t){var n=R(this),i=U(g(this,I));return n.parent=!0,i.ok=!p(e)||e,i.fail=p(t)&&t,i.domain=a?F.domain:void 0,0==n.state?n.reactions.add(i):y((function(){j(i,n)})),i.promise})),t=function(){var t=new e,n=R(t);this.promise=t,this.resolve=J(K,n),this.reject=J(Z,n)},T.f=U=function(e){return e===I||void 0===e?new t(e):B(e)},!r&&p(S)&&L!==Object.prototype)){n=L.then,P||l(L,"then",(function(e,t){var i=this;return new I((function(e,t){o(n,i,e,t)})).then(e,t)}),{unsafe:!0});try{delete L.constructor}catch(e){}h&&h(L,D)}i({global:!0,constructor:!0,wrap:!0,forced:A},{Promise:I}),c(I,E,!1,!0),u(E)})),ox=J(((e,t)=>{var n=Vp(),i=O1(),r=Qg().CONSTRUCTOR;t.exports=r||!i((function(e){n.all(e).then(void 0,(function(){}))}))})),vee=J((()=>{"use strict";var e=tt(),t=wr(),n=ss(),i=jd(),r=Jg(),a=hc();e({target:"Promise",stat:!0,forced:ox()},{all:function(e){var s=this,o=i.f(s),l=o.resolve,h=o.reject,c=r((function(){var i=n(s.resolve),r=[],o=0,c=1;a(e,(function(e){var n=o++,a=!1;c++,t(i,s,e).then((function(e){a||(a=!0,r[n]=e,--c||l(r))}),h)})),--c||l(r)}));return c.error&&h(c.value),o.promise}})})),xee=J((()=>{"use strict";var e,t=tt(),n=as(),i=Qg().CONSTRUCTOR,r=Vp(),a=ki(),s=Fr(),o=Yi(),l=r&&r.prototype;t({target:"Promise",proto:!0,forced:i,real:!0},{catch:function(e){return this.then(void 0,e)}}),!n&&s(r)&&(e=a("Promise").prototype.catch,l.catch!==e&&o(l,"catch",e,{unsafe:!0}))})),bee=J((()=>{"use strict";var e=tt(),t=wr(),n=ss(),i=jd(),r=Jg(),a=hc();e({target:"Promise",stat:!0,forced:ox()},{race:function(e){var s=this,o=i.f(s),l=o.reject,h=r((function(){var i=n(s.resolve);a(e,(function(e){t(i,s,e).then(o.resolve,l)}))}));return h.error&&l(h.value),o.promise}})})),Eee=J((()=>{"use strict";var e=tt(),t=wr(),n=jd();e({target:"Promise",stat:!0,forced:Qg().CONSTRUCTOR},{reject:function(e){var i=n.f(this);return t(i.reject,void 0,e),i.promise}})})),BO=J(((e,t)=>{var n=br(),i=Nr(),r=jd();t.exports=function(e,t){if(n(e),i(t)&&t.constructor===e)return t;var a=r.f(e);return(0,a.resolve)(t),a.promise}})),See=J((()=>{"use strict";var e=tt(),t=ki(),n=as(),i=Vp(),r=Qg().CONSTRUCTOR,a=BO(),s=t("Promise"),o=n&&!r;e({target:"Promise",stat:!0,forced:n||r},{resolve:function(e){return a(o&&this===s?i:this,e)}})})),Mee=J((()=>{mee(),vee(),xee(),bee(),Eee(),See()})),Ree=J((()=>{"use strict";var e=tt(),t=wr(),n=ss(),i=jd(),r=Jg(),a=hc();e({target:"Promise",stat:!0,forced:ox()},{allSettled:function(e){var s=this,o=i.f(s),l=o.resolve,h=o.reject,c=r((function(){var i=n(s.resolve),r=[],o=0,h=1;a(e,(function(e){var n=o++,a=!1;h++,t(i,s,e).then((function(e){a||(a=!0,r[n]={status:"fulfilled",value:e},--h||l(r))}),(function(e){a||(a=!0,r[n]={status:"rejected",reason:e},--h||l(r))}))})),--h||l(r)}));return c.error&&h(c.value),o.promise}})})),Cee=J((()=>{"use strict";var e=tt(),t=wr(),n=ss(),i=ki(),r=jd(),a=Jg(),s=hc(),o=ox(),l="No one promise resolved";e({target:"Promise",stat:!0,forced:o},{any:function(e){var o=this,h=i("AggregateError"),c=r.f(o),u=c.resolve,d=c.reject,p=a((function(){var i=n(o.resolve),r=[],a=0,c=1,p=!1;s(e,(function(e){var n=a++,s=!1;c++,t(i,o,e).then((function(e){s||p||(p=!0,u(e))}),(function(e){s||p||(s=!0,r[n]=e,--c||d(new h(r,l)))}))})),--c||d(new h(r,l))}));return p.error&&d(p.value),c.promise}})})),Dee=J((()=>{"use strict";var e,t=tt(),n=as(),i=Vp(),r=Yt(),a=ki(),s=Fr(),o=kp(),l=BO(),h=Yi(),c=i&&i.prototype;t({target:"Promise",proto:!0,real:!0,forced:!!i&&r((function(){c.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=o(this,a("Promise")),n=s(e);return this.then(n?function(n){return l(t,e()).then((function(){return n}))}:e,n?function(n){return l(t,e()).then((function(){throw n}))}:e)}}),!n&&s(i)&&(e=a("Promise").prototype.finally,c.finally!==e&&h(c,"finally",e,{unsafe:!0}))})),Oee=J((()=>{var e=tt(),t=No(),n=ss(),i=br();e({target:"Reflect",stat:!0,forced:!Yt()((function(){Reflect.apply((function(){}))}))},{apply:function(e,r,a){return t(n(e),r,i(a))}})})),Vee=J((()=>{var e=tt(),t=ki(),n=No(),i=SD(),r=qw(),a=br(),s=Nr(),o=no(),l=Yt(),h=t("Reflect","construct"),c=Object.prototype,u=[].push,d=l((function(){function e(){}return!(h((function(){}),[],e)instanceof e)})),p=!l((function(){h((function(){}))})),f=d||p;e({target:"Reflect",stat:!0,forced:f,sham:f},{construct:function(e,t){r(e),a(t);var l=arguments.length<3?e:r(arguments[2]);if(p&&!d)return h(e,t,l);if(e==l){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var f=[null];return n(u,f,t),new(n(i,e,f))}var m=l.prototype,g=o(s(m)?m:c),v=n(e,g,t);return s(v)?v:g}})})),qee=J((()=>{var e=tt(),t=Kn(),n=br(),i=vh(),r=Gi();e({target:"Reflect",stat:!0,forced:Yt()((function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})})),sham:!t},{defineProperty:function(e,t,a){n(e);var s=i(t);n(a);try{return r.f(e,s,a),!0}catch(e){return!1}}})})),Wee=J((()=>{var e=tt(),t=br(),n=Qs().f;e({target:"Reflect",stat:!0},{deleteProperty:function(e,i){var r=n(t(e),i);return!(r&&!r.configurable)&&delete e[i]}})})),GO=J(((e,t)=>{var n=$r();t.exports=function(e){return void 0!==e&&(n(e,"value")||n(e,"writable"))}})),$ee=J((()=>{var e=tt(),t=wr(),n=Nr(),i=br(),r=GO(),a=Qs(),s=Bo();e({target:"Reflect",stat:!0},{get:function e(o,l){var h,c,u=arguments.length<3?o:arguments[2];return i(o)===u?o[l]:(h=a.f(o,l))?r(h)?h.value:void 0===h.get?void 0:t(h.get,u):n(c=s(o))?e(c,l,u):void 0}})})),Zee=J((()=>{var e=tt(),t=Kn(),n=br(),i=Qs();e({target:"Reflect",stat:!0,sham:!t},{getOwnPropertyDescriptor:function(e,t){return i.f(n(e),t)}})})),Kee=J((()=>{var e=tt(),t=br(),n=Bo();e({target:"Reflect",stat:!0,sham:!vw()},{getPrototypeOf:function(e){return n(t(e))}})})),Jee=J((()=>{tt()({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})})),Qee=J((()=>{var e=tt(),t=br(),n=Yw();e({target:"Reflect",stat:!0},{isExtensible:function(e){return t(e),n(e)}})})),ete=J((()=>{tt()({target:"Reflect",stat:!0},{ownKeys:QT()})})),tte=J((()=>{var e=tt(),t=ki(),n=br();e({target:"Reflect",stat:!0,sham:!Np()},{preventExtensions:function(e){n(e);try{var i=t("Object","preventExtensions");return i&&i(e),!0}catch(e){return!1}}})})),ate=J((()=>{var e=tt(),t=wr(),n=br(),i=Nr(),r=GO(),a=Yt(),s=Gi(),o=Qs(),l=Bo(),h=ko();e({target:"Reflect",stat:!0,forced:a((function(){var e=function(){},t=s.f(new e,"a",{configurable:!0});return!1!==Reflect.set(e.prototype,"a",1,t)}))},{set:function e(a,c,u){var d,p,f,m=arguments.length<4?a:arguments[3],g=o.f(n(a),c);if(!g){if(i(p=l(a)))return e(p,c,u,m);g=h(0)}if(r(g)){if(!1===g.writable||!i(m))return!1;if(d=o.f(m,c)){if(d.get||d.set||!1===d.writable)return!1;d.value=u,s.f(m,c,d)}else s.f(m,c,h(0,u))}else{if(void 0===(f=g.set))return!1;t(f,m,u)}return!0}})})),lte=J((()=>{var e=tt(),t=br(),n=pL(),i=uc();i&&e({target:"Reflect",stat:!0},{setPrototypeOf:function(e,r){t(e),n(r);try{return i(e,r),!0}catch(e){return!1}}})})),cte=J((()=>{var e=tt(),t=Mn(),n=ro();e({global:!0},{Reflect:{}}),n(t.Reflect,"Reflect",!0)})),i0=J(((e,t)=>{var n=Nr(),i=ha(),r=Br()("match");t.exports=function(e){var t;return n(e)&&(void 0!==(t=e[r])?!!t:"RegExp"==i(e))}})),pS=J(((e,t)=>{"use strict";var n=br();t.exports=function(){var e=n(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t}})),s0=J(((e,t)=>{var n=wr(),i=$r(),r=Fo(),a=pS(),s=RegExp.prototype;t.exports=function(e){var t=e.flags;return void 0!==t||"flags"in s||i(e,"flags")||!r(s,e)?t:n(a,e)}})),lx=J(((e,t)=>{var n=Yt(),i=Mn().RegExp,r=n((function(){var e=i("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),a=r||n((function(){return!i("a","y").sticky})),s=r||n((function(){var e=i("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));t.exports={BROKEN_CARET:s,MISSED_STICKY:a,UNSUPPORTED_Y:r}})),mS=J(((e,t)=>{var n=Yt(),i=Mn().RegExp;t.exports=n((function(){var e=i(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)}))})),YO=J(((e,t)=>{var n=Yt(),i=Mn().RegExp;t.exports=n((function(){var e=i("(?b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$c")}))})),Ste=J((()=>{var e,t,n,i=Kn(),r=Mn(),a=en(),s=Pg(),o=Pp(),l=da(),h=yh().f,c=Fo(),u=i0(),d=Mr(),p=s0(),f=lx(),m=mL(),g=Yi(),v=Yt(),y=$r(),x=Ts().enforce,b=Dp(),_=Br(),w=mS(),S=YO(),M=_("match"),T=r.RegExp,E=T.prototype,A=r.SyntaxError,C=a(E.exec),P=a("".charAt),R=a("".replace),O=a("".indexOf),L=a("".slice),I=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,D=/a/g,k=/a/g,N=new T(D)!==D,F=f.MISSED_STICKY,U=f.UNSUPPORTED_Y;if(s("RegExp",i&&(!N||F||w||S||v((function(){return k[M]=!1,T(D)!=D||T(k)==k||"/a/i"!=T(D,"i")}))))){for(e=function(t,n){var i,r,a,s,h,f,m=c(E,this),g=u(t),v=void 0===n,b=[],_=t;if(!m&&g&&v&&t.constructor===e)return t;if((g||c(E,t))&&(t=t.source,v&&(n=p(_))),t=void 0===t?"":d(t),n=void 0===n?"":d(n),_=t,w&&"dotAll"in D&&(r=!!n&&O(n,"s")>-1)&&(n=R(n,/s/g,"")),i=n,F&&"sticky"in D&&(a=!!n&&O(n,"y")>-1)&&U&&(n=R(n,/y/g,"")),S&&(s=function(e){for(var t,n=e.length,i=0,r="",a=[],s={},o=!1,l=!1,h=0,c="";i<=n;i++){if("\\"===(t=P(e,i)))t+=P(e,++i);else if("]"===t)o=!1;else if(!o)switch(!0){case"["===t:o=!0;break;case"("===t:C(I,L(e,i+1))&&(i+=2,l=!0),r+=t,h++;continue;case">"===t&&l:if(""===c||y(s,c))throw new A("Invalid capture group name");s[c]=!0,a[a.length]=[c,h],l=!1,c="";continue}l?c+=t:r+=t}return[r,a]}(t),t=s[0],b=s[1]),h=o(T(t,n),m?this:E,e),(r||a||b.length)&&(f=x(h),r&&(f.dotAll=!0,f.raw=e(function(e){for(var t,n=e.length,i=0,r="",a=!1;i<=n;i++)"\\"!==(t=P(e,i))?a||"."!==t?("["===t?a=!0:"]"===t&&(a=!1),r+=t):r+="[\\s\\S]":r+=t+P(e,++i);return r}(t),i)),a&&(f.sticky=!0),b.length&&(f.groups=b)),t!==_)try{l(h,"source",""===_?"(?:)":_)}catch(e){}return h},t=h(T),n=0;t.length>n;)m(e,T,t[n++]);E.constructor=e,e.prototype=E,g(r,"RegExp",e,{constructor:!0})}b("RegExp")})),Rte=J((()=>{var e=Kn(),t=mS(),n=ha(),i=Hs(),r=Ts().get,a=RegExp.prototype,s=TypeError;e&&t&&i(a,"dotAll",{configurable:!0,get:function(){if(this!==a){if("RegExp"===n(this))return!!r(this).dotAll;throw s("Incompatible receiver, RegExp required")}}})})),ux=J(((e,t)=>{"use strict";var n,i,r=wr(),a=en(),s=Mr(),o=pS(),l=lx(),h=_p(),c=no(),u=Ts().get,d=mS(),p=YO(),f=h("native-string-replace",String.prototype.replace),m=RegExp.prototype.exec,g=m,v=a("".charAt),y=a("".indexOf),x=a("".replace),b=a("".slice),_=(i=/b*/g,r(m,n=/a/,"a"),r(m,i,"a"),0!==n.lastIndex||0!==i.lastIndex),w=l.BROKEN_CARET,S=void 0!==/()??/.exec("")[1];(_||S||w||d||p)&&(g=function(e){var t,n,i,a,l,h,d,p=this,M=u(p),T=s(e),E=M.raw;if(E)return E.lastIndex=p.lastIndex,t=r(g,E,T),p.lastIndex=E.lastIndex,t;var A=M.groups,C=w&&p.sticky,P=r(o,p),R=p.source,O=0,L=T;if(C&&(P=x(P,"y",""),-1===y(P,"g")&&(P+="g"),L=b(T,p.lastIndex),p.lastIndex>0&&(!p.multiline||p.multiline&&"\n"!==v(T,p.lastIndex-1))&&(R="(?: "+R+")",L=" "+L,O++),n=new RegExp("^(?:"+R+")",P)),S&&(n=new RegExp("^"+R+"$(?!\\s)",P)),_&&(i=p.lastIndex),a=r(m,C?n:p,L),C?a?(a.input=b(a.input,O),a[0]=b(a[0],O),a.index=p.lastIndex,p.lastIndex+=a[0].length):p.lastIndex=0:_&&a&&(p.lastIndex=p.global?a.index+a[0].length:i),S&&a&&a.length>1&&r(f,a[0],n,(function(){for(l=1;l{"use strict";var e=tt(),t=ux();e({target:"RegExp",proto:!0,forced:/./.exec!==t},{exec:t})})),Dte=J((()=>{var e=Mn(),t=Kn(),n=Hs(),i=pS(),r=Yt(),a=e.RegExp,s=a.prototype;t&&r((function(){var e=!0;try{a(".","d")}catch(t){e=!1}var t={},n="",i=e?"dgimsy":"gimsy",r=function(e,i){Object.defineProperty(t,e,{get:function(){return n+=i,!0}})},o={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var l in e&&(o.hasIndices="d"),o)r(l,o[l]);return Object.getOwnPropertyDescriptor(s,"flags").get.call(t)!==i||n!==i}))&&n(s,"flags",{configurable:!0,get:i})})),kte=J((()=>{var e=Kn(),t=lx().MISSED_STICKY,n=ha(),i=Hs(),r=Ts().get,a=RegExp.prototype,s=TypeError;e&&t&&i(a,"sticky",{configurable:!0,get:function(){if(this!==a){if("RegExp"===n(this))return!!r(this).sticky;throw s("Incompatible receiver, RegExp required")}}})})),Bte=J((()=>{"use strict";xS();var e,t,n=tt(),i=wr(),r=Fr(),a=br(),s=Mr(),o=(e=!1,(t=/[ac]/).exec=function(){return e=!0,/./.exec.apply(this,arguments)},!0===t.test("abc")&&e),l=/./.test;n({target:"RegExp",proto:!0,forced:!o},{test:function(e){var t=a(this),n=s(e),o=t.exec;if(!r(o))return i(l,t,n);var h=i(o,t,n);return null!==h&&(a(h),!0)}})})),Vte=J((()=>{"use strict";var e=wp().PROPER,t=Yi(),n=br(),i=Mr(),r=Yt(),a=s0(),s="toString",o=RegExp.prototype[s],l=r((function(){return"/a/b"!=o.call({source:"a",flags:"b"})})),h=e&&o.name!=s;(l||h)&&t(RegExp.prototype,s,(function(){var e=n(this);return"/"+i(e.source)+"/"+i(a(e))}),{unsafe:!0})})),zte=J((()=>{"use strict";W1()("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),OD())})),Gte=J((()=>{zte()})),qte=J((()=>{"use strict";var e=tt(),t=en(),n=_s(),i=os(),r=Mr(),a=Yt(),s=t("".charAt);e({target:"String",proto:!0,forced:a((function(){return"\ud842"!=="\ud842\udfb7".at(-2)}))},{at:function(e){var t=r(n(this)),a=t.length,o=i(e),l=o>=0?o:a+o;return l<0||l>=a?void 0:s(t,l)}})})),hx=J(((e,t)=>{var n=en(),i=os(),r=Mr(),a=_s(),s=n("".charAt),o=n("".charCodeAt),l=n("".slice),h=function(e){return function(t,n){var h,c,u=r(a(t)),d=i(n),p=u.length;return d<0||d>=p?e?"":void 0:(h=o(u,d))<55296||h>56319||d+1===p||(c=o(u,d+1))<56320||c>57343?e?s(u,d):h:e?l(u,d,d+2):c-56320+(h-55296<<10)+65536}};t.exports={codeAt:h(!1),charAt:h(!0)}})),Yte=J((()=>{"use strict";var e=tt(),t=hx().codeAt;e({target:"String",proto:!0},{codePointAt:function(e){return t(this,e)}})})),bS=J(((e,t)=>{var n=i0(),i=TypeError;t.exports=function(e){if(n(e))throw i("The method doesn't accept regular expressions");return e}})),ES=J(((e,t)=>{var n=Br()("match");t.exports=function(e){var t=/./;try{"/./"[e](t)}catch(i){try{return t[n]=!1,"/./"[e](t)}catch(e){}}return!1}})),tne=J((()=>{"use strict";var e,t=tt(),n=xh(),i=Qs().f,r=to(),a=Mr(),s=bS(),o=_s(),l=ES(),h=as(),c=n("".endsWith),u=n("".slice),d=Math.min,p=l("endsWith");t({target:"String",proto:!0,forced:!(!h&&!p&&(e=i(String.prototype,"endsWith"),e&&!e.writable))&&!p},{endsWith:function(e){var t=a(o(this));s(e);var n=arguments.length>1?arguments[1]:void 0,i=t.length,l=void 0===n?i:d(r(n),i),h=a(e);return c?c(t,h,l):u(t,l-h.length,l)===h}})})),ine=J((()=>{var e=tt(),t=en(),n=lc(),i=RangeError,r=String.fromCharCode,a=String.fromCodePoint,s=t([].join);e({target:"String",stat:!0,arity:1,forced:!!a&&1!=a.length},{fromCodePoint:function(e){for(var t,a=[],o=arguments.length,l=0;o>l;){if(t=+arguments[l++],n(t,1114111)!==t)throw i(t+" is not a valid code point");a[l]=t<65536?r(t):r(55296+((t-=65536)>>10),t%1024+56320)}return s(a,"")}})})),ane=J((()=>{"use strict";var e=tt(),t=en(),n=bS(),i=_s(),r=Mr(),a=ES(),s=t("".indexOf);e({target:"String",proto:!0,forced:!a("includes")},{includes:function(e){return!!~s(r(i(this)),r(n(e)),arguments.length>1?arguments[1]:void 0)}})})),sk=J((()=>{"use strict";var e=hx().charAt,t=Mr(),n=Ts(),i=Mw(),r=N1(),a="String Iterator",s=n.set,o=n.getterFor(a);i(String,"String",(function(e){s(this,{type:a,string:t(e),index:0})}),(function(){var t,n=o(this),i=n.string,a=n.index;return a>=i.length?r(void 0,!0):(t=e(i,a),n.index+=t.length,r(t,!1))}))})),dx=J(((e,t)=>{"use strict";xS();var n=xh(),i=Yi(),r=ux(),a=Yt(),s=Br(),o=da(),l=s("species"),h=RegExp.prototype;t.exports=function(e,t,c,u){var d=s(e),p=!a((function(){var t={};return t[d]=function(){return 7},7!=""[e](t)})),f=p&&!a((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[l]=function(){return n},n.flags="",n[d]=/./[d]),n.exec=function(){return t=!0,null},n[d](""),!t}));if(!p||!f||c){var m=n(/./[d]),g=t(d,""[e],(function(e,t,i,a,s){var o=n(e),l=t.exec;return l===r||l===h.exec?p&&!s?{done:!0,value:m(t,i,a)}:{done:!0,value:o(i,t,a)}:{done:!1}}));i(String.prototype,e,g[0]),i(h,d,g[1])}u&&o(h[d],"sham",!0)}})),fx=J(((e,t)=>{"use strict";var n=hx().charAt;t.exports=function(e,t,i){return t+(i?n(e,t).length:1)}})),l0=J(((e,t)=>{var n=wr(),i=br(),r=Fr(),a=ha(),s=ux(),o=TypeError;t.exports=function(e,t){var l=e.exec;if(r(l)){var h=n(l,e,t);return null!==h&&i(h),h}if("RegExp"===a(e))return n(s,e,t);throw o("RegExp#exec called on incompatible receiver")}})),xne=J((()=>{"use strict";var e=wr(),t=dx(),n=br(),i=La(),r=to(),a=Mr(),s=_s(),o=au(),l=fx(),h=l0();t("match",(function(t,c,u){return[function(n){var r=s(this),l=i(n)?void 0:o(n,t);return l?e(l,n,r):new RegExp(n)[t](a(r))},function(e){var t=n(this),i=a(e),s=u(c,t,i);if(s.done)return s.value;if(!t.global)return h(t,i);var o=t.unicode;t.lastIndex=0;for(var d,p=[],f=0;null!==(d=h(t,i));){var m=a(d[0]);p[f]=m,""===m&&(t.lastIndex=l(i,r(t.lastIndex),o)),f++}return 0===f?null:p}]}))})),Cne=J((()=>{"use strict";var e=tt(),t=wr(),n=xh(),i=Tw(),r=N1(),a=_s(),s=to(),o=Mr(),l=br(),h=La(),c=ha(),u=i0(),d=s0(),p=au(),f=Yi(),m=Yt(),g=Br(),v=kp(),y=fx(),x=l0(),b=Ts(),_=as(),w=g("matchAll"),S="RegExp String",M=S+" Iterator",T=b.set,E=b.getterFor(M),A=RegExp.prototype,C=TypeError,P=n("".indexOf),R=n("".matchAll),O=!!R&&!m((function(){R("a",/./)})),L=i((function(e,t,n,i){T(this,{type:M,regexp:e,string:t,global:n,unicode:i,done:!1})}),S,(function(){var e=E(this);if(e.done)return r(void 0,!0);var t=e.regexp,n=e.string,i=x(t,n);return null===i?(e.done=!0,r(void 0,!0)):e.global?(""===o(i[0])&&(t.lastIndex=y(n,s(t.lastIndex),e.unicode)),r(i,!1)):(e.done=!0,r(i,!1))})),I=function(e){var t,n,i,r=l(this),a=o(e),h=v(r,RegExp),c=o(d(r));return t=new h(h===RegExp?r.source:r,c),n=!!~P(c,"g"),i=!!~P(c,"u"),t.lastIndex=s(r.lastIndex),new L(t,a,n,i)};e({target:"String",proto:!0,forced:O},{matchAll:function(e){var n,i,r,s,l=a(this);if(h(e)){if(O)return R(l,e)}else{if(u(e)&&(n=o(a(d(e))),!~P(n,"g")))throw C("`.matchAll` does not allow non-global regexes");if(O)return R(l,e);if(void 0===(r=p(e,w))&&_&&"RegExp"==c(e)&&(r=I),r)return t(r,e,l)}return i=o(l),s=new RegExp(e,"g"),_?t(I,s,i):s[w](i)}}),_||w in A||f(A,w,I)})),dk=J(((e,t)=>{var n=iu();t.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(n)})),Ine=J((()=>{"use strict";var e=tt(),t=Ww().end;e({target:"String",proto:!0,forced:dk()},{padEnd:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),Lne=J((()=>{"use strict";var e=tt(),t=Ww().start;e({target:"String",proto:!0,forced:dk()},{padStart:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),Fne=J((()=>{var e=tt(),t=en(),n=Ls(),i=ci(),r=Mr(),a=fi(),s=t([].push),o=t([].join);e({target:"String",stat:!0},{raw:function(e){var t=n(i(e).raw),l=a(t);if(!l)return"";for(var h=arguments.length,c=[],u=0;;){if(s(c,r(t[u++])),u===l)return o(c,"");u{tt()({target:"String",proto:!0},{repeat:G1()})})),gk=J(((e,t)=>{var n=en(),i=ci(),r=Math.floor,a=n("".charAt),s=n("".replace),o=n("".slice),l=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,h=/\$([$&'`]|\d{1,2})/g;t.exports=function(e,t,n,c,u,d){var p=n+e.length,f=c.length,m=h;return void 0!==u&&(u=i(u),m=l),s(d,m,(function(i,s){var l;switch(a(s,0)){case"$":return"$";case"&":return e;case"`":return o(t,0,n);case"'":return o(t,p);case"<":l=u[o(s,1,-1)];break;default:var h=+s;if(0===h)return i;if(h>f){var d=r(h/10);return 0===d?i:d<=f?void 0===c[d-1]?a(s,1):c[d-1]+a(s,1):i}l=c[h-1]}return void 0===l?"":l}))}})),Gne=J((()=>{"use strict";var e=No(),t=wr(),n=en(),i=dx(),r=Yt(),a=br(),s=Fr(),o=La(),l=os(),h=to(),c=Mr(),u=_s(),d=fx(),p=au(),f=gk(),m=l0(),g=Br()("replace"),v=Math.max,y=Math.min,x=n([].concat),b=n([].push),_=n("".indexOf),w=n("".slice),S=function(e){return void 0===e?e:String(e)},M="$0"==="a".replace(/./,"$0"),T=!!/./[g]&&""===/./[g]("a","$0");i("replace",(function(n,i,r){var M=T?"$":"$0";return[function(e,n){var r=u(this),a=o(e)?void 0:p(e,g);return a?t(a,e,r,n):t(i,c(r),e,n)},function(t,n){var o=a(this),u=c(t);if("string"==typeof n&&-1===_(n,M)&&-1===_(n,"$<")){var p=r(i,o,u,n);if(p.done)return p.value}var g=s(n);g||(n=c(n));var T=o.global;if(T){var E=o.unicode;o.lastIndex=0}for(var A=[];;){var C=m(o,u);if(null===C||(b(A,C),!T))break;""===c(C[0])&&(o.lastIndex=d(u,h(o.lastIndex),E))}for(var P="",R=0,O=0;O=R&&(P+=w(u,R,I)+U,R=I+L.length)}return P+w(u,R)}]}),!!r((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")}))||!M||T)})),Yne=J((()=>{"use strict";var e=tt(),t=wr(),n=en(),i=_s(),r=Fr(),a=La(),s=i0(),o=Mr(),l=au(),h=s0(),c=gk(),u=Br(),d=as(),p=u("replace"),f=TypeError,m=n("".indexOf),g=n("".replace),v=n("".slice),y=Math.max,x=function(e,t,n){return n>e.length?-1:""===t?n:m(e,t,n)};e({target:"String",proto:!0},{replaceAll:function(e,n){var u,b,_,w,S,M,T,E,A,C=i(this),P=0,R=0,O="";if(!a(e)){if((u=s(e))&&(b=o(i(h(e))),!~m(b,"g")))throw f("`.replaceAll` does not allow non-global regexes");if(_=l(e,p))return t(_,e,C,n);if(d&&u)return g(o(C),e,n)}for(w=o(C),S=o(e),(M=r(n))||(n=o(n)),T=S.length,E=y(1,T),P=x(w,S,0);-1!==P;)A=M?o(n(S,P,w)):c(S,w,P,[],void 0,n),O+=v(w,R,P)+A,R=P+T,P=x(w,S,P+E);return R{"use strict";var e=wr(),t=dx(),n=br(),i=La(),r=_s(),a=iO(),s=Mr(),o=au(),l=l0();t("search",(function(t,h,c){return[function(n){var a=r(this),l=i(n)?void 0:o(n,t);return l?e(l,n,a):new RegExp(n)[t](s(a))},function(e){var t=n(this),i=s(e),r=c(h,t,i);if(r.done)return r.value;var o=t.lastIndex;a(o,0)||(t.lastIndex=0);var u=l(t,i);return a(t.lastIndex,o)||(t.lastIndex=o),null===u?-1:u.index}]}))})),rre=J((()=>{"use strict";var e=No(),t=wr(),n=en(),i=dx(),r=br(),a=La(),s=i0(),o=_s(),l=kp(),h=fx(),c=to(),u=Mr(),d=au(),p=Lg(),f=l0(),m=ux(),g=lx(),v=Yt(),y=g.UNSUPPORTED_Y,x=4294967295,b=Math.min,_=[].push,w=n(/./.exec),S=n(_),M=n("".slice);i("split",(function(n,i,g){var v;return v="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(n,r){var a=u(o(this)),l=void 0===r?x:r>>>0;if(0===l)return[];if(void 0===n)return[a];if(!s(n))return t(i,a,n,l);for(var h,c,d,f=[],g=(n.ignoreCase?"i":"")+(n.multiline?"m":"")+(n.unicode?"u":"")+(n.sticky?"y":""),v=0,y=new RegExp(n.source,g+"g");(h=t(m,y,a))&&!((c=y.lastIndex)>v&&(S(f,M(a,v,h.index)),h.length>1&&h.index=l));)y.lastIndex===h.index&&y.lastIndex++;return v===a.length?(d||!w(y,""))&&S(f,""):S(f,M(a,v)),f.length>l?p(f,0,l):f}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:t(i,this,e,n)}:i,[function(e,i){var r=o(this),s=a(e)?void 0:d(e,n);return s?t(s,e,r,i):t(v,u(r),e,i)},function(e,t){var n=r(this),a=u(e),s=g(v,n,a,t,v!==i);if(s.done)return s.value;var o=l(n,RegExp),d=n.unicode,p=(n.ignoreCase?"i":"")+(n.multiline?"m":"")+(n.unicode?"u":"")+(y?"g":"y"),m=new o(y?"^(?:"+n.source+")":n,p),_=void 0===t?x:t>>>0;if(0===_)return[];if(0===a.length)return null===f(m,a)?[a]:[];for(var w=0,T=0,E=[];T{"use strict";var e,t=tt(),n=xh(),i=Qs().f,r=to(),a=Mr(),s=bS(),o=_s(),l=ES(),h=as(),c=n("".startsWith),u=n("".slice),d=Math.min,p=l("startsWith");t({target:"String",proto:!0,forced:!(!h&&!p&&(e=i(String.prototype,"startsWith"),e&&!e.writable))&&!p},{startsWith:function(e){var t=a(o(this));s(e);var n=r(d(arguments.length>1?arguments[1]:void 0,t.length)),i=a(e);return c?c(t,i,n):u(t,n,n+i.length)===i}})})),ure=J((()=>{"use strict";var e=tt(),t=en(),n=_s(),i=os(),r=Mr(),a=t("".slice),s=Math.max,o=Math.min;e({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(e,t){var l,h,c=r(n(this)),u=c.length,d=i(e);return d===1/0&&(d=0),d<0&&(d=s(u+d,0)),(l=void 0===t?u:i(t))<=0||l===1/0||d>=(h=o(d+l,u))?"":a(c,d,h)}})})),MS=J(((e,t)=>{var n=wp().PROPER,i=Yt(),r=Z1();t.exports=function(e){return i((function(){return!!r[e]()||"\u200b\x85\u180e"!=="\u200b\x85\u180e"[e]()||n&&r[e].name!==e}))}})),pre=J((()=>{"use strict";var e=tt(),t=Bp().trim;e({target:"String",proto:!0,forced:MS()("trim")},{trim:function(){return t(this)}})})),_k=J(((e,t)=>{"use strict";var n=Bp().end,i=MS();t.exports=i("trimEnd")?function(){return n(this)}:"".trimEnd})),vre=J((()=>{var e=tt(),t=_k();e({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==t},{trimRight:t})})),xre=J((()=>{vre();var e=tt(),t=_k();e({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==t},{trimEnd:t})})),Tk=J(((e,t)=>{"use strict";var n=Bp().start,i=MS();t.exports=i("trimStart")?function(){return n(this)}:"".trimStart})),_re=J((()=>{var e=tt(),t=Tk();e({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==t},{trimLeft:t})})),wre=J((()=>{_re();var e=tt(),t=Tk();e({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==t},{trimStart:t})})),ao=J(((e,t)=>{var n=en(),i=_s(),r=Mr(),a=/"/g,s=n("".replace);t.exports=function(e,t,n,o){var l=r(i(e)),h="<"+t;return""!==n&&(h+=" "+n+'="'+s(r(o),a,""")+'"'),h+">"+l+""}})),oo=J(((e,t)=>{var n=Yt();t.exports=function(e){return n((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}})),Are=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("anchor")},{anchor:function(e){return t(this,"a","name",e)}})})),Cre=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("big")},{big:function(){return t(this,"big","","")}})})),Pre=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("blink")},{blink:function(){return t(this,"blink","","")}})})),Ire=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("bold")},{bold:function(){return t(this,"b","","")}})})),Lre=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("fixed")},{fixed:function(){return t(this,"tt","","")}})})),Dre=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("fontcolor")},{fontcolor:function(e){return t(this,"font","color",e)}})})),Ore=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("fontsize")},{fontsize:function(e){return t(this,"font","size",e)}})})),kre=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("italics")},{italics:function(){return t(this,"i","","")}})})),Fre=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("link")},{link:function(e){return t(this,"a","href",e)}})})),Nre=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("small")},{small:function(){return t(this,"small","","")}})})),Bre=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("strike")},{strike:function(){return t(this,"strike","","")}})})),Ure=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("sub")},{sub:function(){return t(this,"sub","","")}})})),Hre=J((()=>{"use strict";var e=tt(),t=ao();e({target:"String",proto:!0,forced:oo()("sup")},{sup:function(){return t(this,"sup","","")}})})),RS=J(((e,t)=>{var n=Mn(),i=Yt(),r=O1(),a=Pr().NATIVE_ARRAY_BUFFER_VIEWS,s=n.ArrayBuffer,o=n.Int8Array;t.exports=!a||!i((function(){o(1)}))||!i((function(){new o(-1)}))||!r((function(e){new o,new o(null),new o(1.5),new o(e)}),!0)||i((function(){return 1!==new o(new s(2),1,void 0).length}))})),qre=J(((e,t)=>{var n=os(),i=RangeError;t.exports=function(e){var t=n(e);if(t<0)throw i("The argument can't be less than 0");return t}})),Sk=J(((e,t)=>{var n=qre(),i=RangeError;t.exports=function(e,t){var r=n(e);if(r%t)throw i("Wrong offset");return r}})),Mk=J(((e,t)=>{var n=cc();t.exports=function(e){var t=n(e);return"BigInt64Array"==t||"BigUint64Array"==t}})),AS=J(((e,t)=>{var n=v1(),i=TypeError;t.exports=function(e){var t=n(e,"number");if("number"==typeof t)throw i("Can't convert number to bigint");return BigInt(t)}})),Rk=J(((e,t)=>{var n=fl(),i=wr(),r=qw(),a=ci(),s=fi(),o=I1(),l=Bg(),h=yw(),c=Mk(),u=Pr().aTypedArrayConstructor,d=AS();t.exports=function(e){var t,p,f,m,g,v,y,x,b=r(this),_=a(e),w=arguments.length,S=w>1?arguments[1]:void 0,M=void 0!==S,T=l(_);if(T&&!h(T))for(x=(y=o(_,T)).next,_=[];!(v=i(x,y)).done;)_.push(v.value);for(M&&w>2&&(S=n(S,arguments[2])),p=s(_),f=new(u(b))(p),m=c(f),t=0;p>t;t++)g=M?S(_[t],t):_[t],f[t]=m?d(g):+g;return f}})),mu=J(((e,t)=>{"use strict";var n=tt(),i=Mn(),r=wr(),a=Kn(),s=RS(),o=Pr(),l=z1(),h=dc(),c=ko(),u=da(),d=tS(),p=to(),f=nD(),m=Sk(),g=vh(),v=$r(),y=cc(),x=Nr(),b=Od(),_=no(),w=Fo(),S=uc(),M=yh().f,T=Rk(),E=Vs().forEach,A=Dp(),C=Hs(),P=Gi(),R=Qs(),O=Ts(),L=Pp(),I=O.get,D=O.set,k=O.enforce,N=P.f,F=R.f,U=Math.round,B=i.RangeError,z=l.ArrayBuffer,H=z.prototype,V=l.DataView,j=o.NATIVE_ARRAY_BUFFER_VIEWS,G=o.TYPED_ARRAY_TAG,W=o.TypedArray,X=o.TypedArrayPrototype,Y=o.aTypedArrayConstructor,q=o.isTypedArray,J="BYTES_PER_ELEMENT",Z="Wrong length",K=function(e,t){Y(e);for(var n=0,i=t.length,r=new e(i);i>n;)r[n]=t[n++];return r},$=function(e,t){C(e,t,{configurable:!0,get:function(){return I(this)[t]}})},Q=function(e){var t;return w(H,e)||"ArrayBuffer"==(t=y(e))||"SharedArrayBuffer"==t},ee=function(e,t){return q(e)&&!b(t)&&t in e&&d(+t)&&t>=0},te=function(e,t){return t=g(t),ee(e,t)?c(2,e[t]):F(e,t)},ne=function(e,t,n){return t=g(t),!(ee(e,t)&&x(n)&&v(n,"value"))||v(n,"get")||v(n,"set")||n.configurable||v(n,"writable")&&!n.writable||v(n,"enumerable")&&!n.enumerable?N(e,t,n):(e[t]=n.value,e)};a?(j||(R.f=te,P.f=ne,$(X,"buffer"),$(X,"byteOffset"),$(X,"byteLength"),$(X,"length")),n({target:"Object",stat:!0,forced:!j},{getOwnPropertyDescriptor:te,defineProperty:ne}),t.exports=function(e,t,a){var o=e.match(/\d+/)[0]/8,l=e+(a?"Clamped":"")+"Array",c="get"+e,d="set"+e,g=i[l],v=g,y=v&&v.prototype,b={},w=function(e,t){N(e,t,{get:function(){return function(e,t){var n=I(e);return n.view[c](t*o+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,n){var i=I(e);a&&(n=(n=U(n))<0?0:n>255?255:255&n),i.view[d](t*o+i.byteOffset,n,!0)}(this,t,e)},enumerable:!0})};j?s&&(v=t((function(e,t,n,i){return h(e,y),L(x(t)?Q(t)?void 0!==i?new g(t,m(n,o),i):void 0!==n?new g(t,m(n,o)):new g(t):q(t)?K(v,t):r(T,v,t):new g(f(t)),e,v)})),S&&S(v,W),E(M(g),(function(e){e in v||u(v,e,g[e])})),v.prototype=y):(v=t((function(e,t,n,i){h(e,y);var a,s,l,c=0,u=0;if(x(t)){if(!Q(t))return q(t)?K(v,t):r(T,v,t);a=t,u=m(n,o);var d=t.byteLength;if(void 0===i){if(d%o||(s=d-u)<0)throw B(Z)}else if((s=p(i)*o)+u>d)throw B(Z);l=s/o}else l=f(t),a=new z(s=l*o);for(D(e,{buffer:a,byteOffset:u,byteLength:s,length:l,view:new V(a)});c{mu()("Float32",(function(e){return function(t,n,i){return e(this,t,n,i)}}))})),mie=J((()=>{mu()("Float64",(function(e){return function(t,n,i){return e(this,t,n,i)}}))})),gie=J((()=>{mu()("Int8",(function(e){return function(t,n,i){return e(this,t,n,i)}}))})),vie=J((()=>{mu()("Int16",(function(e){return function(t,n,i){return e(this,t,n,i)}}))})),yie=J((()=>{mu()("Int32",(function(e){return function(t,n,i){return e(this,t,n,i)}}))})),xie=J((()=>{mu()("Uint8",(function(e){return function(t,n,i){return e(this,t,n,i)}}))})),bie=J((()=>{mu()("Uint8",(function(e){return function(t,n,i){return e(this,t,n,i)}}),!0)})),Eie=J((()=>{mu()("Uint16",(function(e){return function(t,n,i){return e(this,t,n,i)}}))})),_ie=J((()=>{mu()("Uint32",(function(e){return function(t,n,i){return e(this,t,n,i)}}))})),wie=J((()=>{"use strict";var e=Pr(),t=fi(),n=os(),i=e.aTypedArray;(0,e.exportTypedArrayMethod)("at",(function(e){var r=i(this),a=t(r),s=n(e),o=s>=0?s:a+s;return o<0||o>=a?void 0:r[o]}))})),Mie=J((()=>{"use strict";var e=en(),t=Pr(),n=e(LL()),i=t.aTypedArray;(0,t.exportTypedArrayMethod)("copyWithin",(function(e,t){return n(i(this),e,t,arguments.length>2?arguments[2]:void 0)}))})),Aie=J((()=>{"use strict";var e=Pr(),t=Vs().every,n=e.aTypedArray;(0,e.exportTypedArrayMethod)("every",(function(e){return t(n(this),e,arguments.length>1?arguments[1]:void 0)}))})),Pie=J((()=>{"use strict";var e=Pr(),t=_w(),n=AS(),i=cc(),r=wr(),a=en(),s=Yt(),o=e.aTypedArray,l=e.exportTypedArrayMethod,h=a("".slice);l("fill",(function(e){var a=arguments.length;o(this);var s="Big"===h(i(this),0,3)?n(e):+e;return r(t,this,s,a>1?arguments[1]:void 0,a>2?arguments[2]:void 0)}),s((function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e})))})),bx=J(((e,t)=>{var n=Pr(),i=kp(),r=n.aTypedArrayConstructor,a=n.getTypedArrayConstructor;t.exports=function(e){return r(i(e,a(e)))}})),Oie=J(((e,t)=>{var n=Iw(),i=bx();t.exports=function(e,t){return n(i(e),t)}})),Fie=J((()=>{"use strict";var e=Pr(),t=Vs().filter,n=Oie(),i=e.aTypedArray;(0,e.exportTypedArrayMethod)("filter",(function(e){var r=t(i(this),e,arguments.length>1?arguments[1]:void 0);return n(this,r)}))})),Bie=J((()=>{"use strict";var e=Pr(),t=Vs().find,n=e.aTypedArray;(0,e.exportTypedArrayMethod)("find",(function(e){return t(n(this),e,arguments.length>1?arguments[1]:void 0)}))})),Hie=J((()=>{"use strict";var e=Pr(),t=Vs().findIndex,n=e.aTypedArray;(0,e.exportTypedArrayMethod)("findIndex",(function(e){return t(n(this),e,arguments.length>1?arguments[1]:void 0)}))})),zie=J((()=>{"use strict";var e=Pr(),t=D1().findLast,n=e.aTypedArray;(0,e.exportTypedArrayMethod)("findLast",(function(e){return t(n(this),e,arguments.length>1?arguments[1]:void 0)}))})),qie=J((()=>{"use strict";var e=Pr(),t=D1().findLastIndex,n=e.aTypedArray;(0,e.exportTypedArrayMethod)("findLastIndex",(function(e){return t(n(this),e,arguments.length>1?arguments[1]:void 0)}))})),jie=J((()=>{"use strict";var e=Pr(),t=Vs().forEach,n=e.aTypedArray;(0,e.exportTypedArrayMethod)("forEach",(function(e){t(n(this),e,arguments.length>1?arguments[1]:void 0)}))})),Xie=J((()=>{"use strict";var e=RS();(0,Pr().exportTypedArrayStaticMethod)("from",Rk(),e)})),$ie=J((()=>{"use strict";var e=Pr(),t=Cg().includes,n=e.aTypedArray;(0,e.exportTypedArrayMethod)("includes",(function(e){return t(n(this),e,arguments.length>1?arguments[1]:void 0)}))})),Kie=J((()=>{"use strict";var e=Pr(),t=Cg().indexOf,n=e.aTypedArray;(0,e.exportTypedArrayMethod)("indexOf",(function(e){return t(n(this),e,arguments.length>1?arguments[1]:void 0)}))})),nse=J((()=>{"use strict";var e=Mn(),t=Yt(),n=en(),i=Pr(),r=B1(),a=Br()("iterator"),s=e.Uint8Array,o=n(r.values),l=n(r.keys),h=n(r.entries),c=i.aTypedArray,u=i.exportTypedArrayMethod,d=s&&s.prototype,p=!t((function(){d[a].call([1])})),f=!!d&&d.values&&d[a]===d.values&&"values"===d.values.name,m=function(){return o(c(this))};u("entries",(function(){return h(c(this))}),p),u("keys",(function(){return l(c(this))}),p),u("values",m,p||!f,{name:"values"}),u(a,m,p||!f,{name:"values"})})),ise=J((()=>{"use strict";var e=Pr(),t=en(),n=e.aTypedArray,i=e.exportTypedArrayMethod,r=t([].join);i("join",(function(e){return r(n(this),e)}))})),ase=J((()=>{"use strict";var e=Pr(),t=No(),n=XL(),i=e.aTypedArray;(0,e.exportTypedArrayMethod)("lastIndexOf",(function(e){var r=arguments.length;return t(n,i(this),r>1?[e,arguments[1]]:[e])}))})),lse=J((()=>{"use strict";var e=Pr(),t=Vs().map,n=bx(),i=e.aTypedArray;(0,e.exportTypedArrayMethod)("map",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(n(e))(t)}))}))})),use=J((()=>{"use strict";var e=Pr(),t=RS(),n=e.aTypedArrayConstructor;(0,e.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,i=new(n(this))(t);t>e;)i[e]=arguments[e++];return i}),t)})),dse=J((()=>{"use strict";var e=Pr(),t=U1().left,n=e.aTypedArray;(0,e.exportTypedArrayMethod)("reduce",(function(e){var i=arguments.length;return t(n(this),e,i,i>1?arguments[1]:void 0)}))})),pse=J((()=>{"use strict";var e=Pr(),t=U1().right,n=e.aTypedArray;(0,e.exportTypedArrayMethod)("reduceRight",(function(e){var i=arguments.length;return t(n(this),e,i,i>1?arguments[1]:void 0)}))})),gse=J((()=>{"use strict";var e=Pr(),t=e.aTypedArray,n=e.exportTypedArrayMethod,i=Math.floor;n("reverse",(function(){for(var e,n=this,r=t(n).length,a=i(r/2),s=0;s{"use strict";var e=Mn(),t=wr(),n=Pr(),i=fi(),r=Sk(),a=ci(),s=Yt(),o=e.RangeError,l=e.Int8Array,h=l&&l.prototype,c=h&&h.set,u=n.aTypedArray,d=n.exportTypedArrayMethod,p=!s((function(){var e=new Uint8ClampedArray(2);return t(c,e,{length:1,0:3},1),3!==e[1]})),f=p&&n.NATIVE_ARRAY_BUFFER_VIEWS&&s((function(){var e=new l(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));d("set",(function(e){u(this);var n=r(arguments.length>1?arguments[1]:void 0,1),s=a(e);if(p)return t(c,this,s,n);var l=this.length,h=i(s),d=0;if(h+n>l)throw o("Wrong length");for(;d{"use strict";var e=Pr(),t=bx(),n=Yt(),i=Nd(),r=e.aTypedArray;(0,e.exportTypedArrayMethod)("slice",(function(e,n){for(var a=i(r(this),e,n),s=t(this),o=0,l=a.length,h=new s(l);l>o;)h[o]=a[o++];return h}),n((function(){new Int8Array(1).slice()})))})),Mse=J((()=>{"use strict";var e=Pr(),t=Vs().some,n=e.aTypedArray;(0,e.exportTypedArrayMethod)("some",(function(e){return t(n(this),e,arguments.length>1?arguments[1]:void 0)}))})),Lse=J((()=>{"use strict";var e=Mn(),t=xh(),n=Yt(),i=ss(),r=Cw(),a=Pr(),s=ZL(),o=KL(),l=su(),h=Pw(),c=a.aTypedArray,u=a.exportTypedArrayMethod,d=e.Uint16Array,p=d&&t(d.prototype.sort),f=!(!p||n((function(){p(new d(2),null)}))&&n((function(){p(new d(2),{})}))),m=!!p&&!n((function(){if(l)return l<74;if(s)return s<67;if(o)return!0;if(h)return h<602;var e,t,n=new d(516),i=Array(516);for(e=0;e<516;e++)t=e%4,n[e]=515-e,i[e]=e-2*t+3;for(p(n,(function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(n[e]!==i[e])return!0}));u("sort",(function(e){return void 0!==e&&i(e),m?p(this,e):r(c(this),(t=e,function(e,n){return void 0!==t?+t(e,n)||0:n!=n?-1:e!=e?1:0===e&&0===n?1/e>0&&1/n<0?1:-1:e>n}));var t}),!m||f)})),kse=J((()=>{"use strict";var e=Pr(),t=to(),n=lc(),i=bx(),r=e.aTypedArray;(0,e.exportTypedArrayMethod)("subarray",(function(e,a){var s=r(this),o=s.length,l=n(e,o);return new(i(s))(s.buffer,s.byteOffset+l*s.BYTES_PER_ELEMENT,t((void 0===a?o:n(a,o))-l))}))})),Hse=J((()=>{"use strict";var e=Mn(),t=No(),n=Pr(),i=Yt(),r=Nd(),a=e.Int8Array,s=n.aTypedArray,o=n.exportTypedArrayMethod,l=[].toLocaleString,h=!!a&&i((function(){l.call(new a(1))}));o("toLocaleString",(function(){return t(l,h?r(s(this)):s(this),r(arguments))}),i((function(){return[1,2].toLocaleString()!=new a([1,2]).toLocaleString()}))||!i((function(){a.prototype.toLocaleString.call([1,2])})))})),Vse=J((()=>{"use strict";var e=eD(),t=Pr(),n=t.aTypedArray,i=t.exportTypedArrayMethod,r=t.getTypedArrayConstructor;i("toReversed",(function(){return e(n(this),r(this))}))})),zse=J((()=>{"use strict";var e=Pr(),t=en(),n=ss(),i=Iw(),r=e.aTypedArray,a=e.getTypedArrayConstructor,s=e.exportTypedArrayMethod,o=t(e.TypedArrayPrototype.sort);s("toSorted",(function(e){void 0!==e&&n(e);var t=r(this),s=i(a(t),t);return o(s,e)}))})),qse=J((()=>{"use strict";var e=Pr().exportTypedArrayMethod,t=Yt(),n=Mn(),i=en(),r=n.Uint8Array,a=r&&r.prototype||{},s=[].toString,o=i([].join);t((function(){s.call({})}))&&(s=function(){return o(this)});var l=a.toString!=s;e("toString",s,l)})),Wse=J((()=>{"use strict";var e=tD(),t=Pr(),n=Mk(),i=os(),r=AS(),a=t.aTypedArray,s=t.getTypedArrayConstructor;(0,t.exportTypedArrayMethod)("with",(function(t,o){var l=a(this),h=i(t),c=n(l)?r(o):+o;return e(l,s(l),h,c)}),!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(e){return 8===e}}())})),Zse=J((()=>{"use strict";var e=tt(),t=en(),n=Mr(),i=String.fromCharCode,r=t("".charAt),a=t(/./.exec),s=t("".slice),o=/^[\da-f]{2}$/i,l=/^[\da-f]{4}$/i;e({global:!0},{unescape:function(e){for(var t,h,c=n(e),u="",d=c.length,p=0;p{"use strict";var n=en(),i=Vg(),r=Wd().getWeakData,a=dc(),s=br(),o=La(),l=Nr(),h=hc(),c=Vs(),u=$r(),d=Ts(),p=d.set,f=d.getterFor,m=c.find,g=c.findIndex,v=n([].splice),y=0,x=function(e){return e.frozen||(e.frozen=new b)},b=function(){this.entries=[]},_=function(e,t){return m(e.entries,(function(e){return e[0]===t}))};b.prototype={get:function(e){var t=_(this,e);if(t)return t[1]},has:function(e){return!!_(this,e)},set:function(e,t){var n=_(this,e);n?n[1]=t:this.entries.push([e,t])},delete:function(e){var t=g(this.entries,(function(t){return t[0]===e}));return~t&&v(this.entries,t,1),!!~t}},t.exports={getConstructor:function(e,t,n,c){var d=e((function(e,i){a(e,m),p(e,{type:t,id:y++,frozen:void 0}),o(i)||h(i,e[c],{that:e,AS_ENTRIES:n})})),m=d.prototype,g=f(t),v=function(e,t,n){var i=g(e),a=r(s(t),!0);return!0===a?x(i).set(t,n):a[i.id]=n,e};return i(m,{delete:function(e){var t=g(this);if(!l(e))return!1;var n=r(e);return!0===n?x(t).delete(e):n&&u(n,t.id)&&delete n[t.id]},has:function(e){var t=g(this);if(!l(e))return!1;var n=r(e);return!0===n?x(t).has(e):n&&u(n,t.id)}}),i(m,n?{get:function(e){var t=g(this);if(l(e)){var n=r(e);return!0===n?x(t).get(e):n?n[t.id]:void 0}},set:function(e,t){return v(this,e,t)}}:{add:function(e){return v(this,e,!0)}}),d}}})),dae=J((()=>{"use strict";var e,t,n,i,r=Np(),a=Mn(),s=en(),o=Vg(),l=Wd(),h=W1(),c=Zk(),u=Nr(),d=Ts().enforce,p=Yt(),f=O3(),m=Object,g=Array.isArray,v=m.isExtensible,y=m.isFrozen,x=m.isSealed,b=m.freeze,_=m.seal,w={},S={},M=!a.ActiveXObject&&"ActiveXObject"in a,T=function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},E=h("WeakMap",T,c),A=E.prototype,C=s(A.set);f&&(M?(e=c.getConstructor(T,"WeakMap",!0),l.enable(),t=s(A.delete),n=s(A.has),i=s(A.get),o(A,{delete:function(n){if(u(n)&&!v(n)){var i=d(this);return i.frozen||(i.frozen=new e),t(this,n)||i.frozen.delete(n)}return t(this,n)},has:function(t){if(u(t)&&!v(t)){var i=d(this);return i.frozen||(i.frozen=new e),n(this,t)||i.frozen.has(t)}return n(this,t)},get:function(t){if(u(t)&&!v(t)){var r=d(this);return r.frozen||(r.frozen=new e),n(this,t)?i(this,t):r.frozen.get(t)}return i(this,t)},set:function(t,i){if(u(t)&&!v(t)){var r=d(this);r.frozen||(r.frozen=new e),n(this,t)?C(this,t,i):r.frozen.set(t,i)}else C(this,t,i);return this}})):r&&p((function(){var e=b([]);return C(new E,e,1),!y(e)}))&&o(A,{set:function(e,t){var n;return g(e)&&(y(e)?n=w:x(e)&&(n=S)),C(this,e,t),n==w&&b(e),n==S&&_(e),this}}))})),fae=J((()=>{dae()})),pae=J((()=>{"use strict";W1()("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),Zk())})),mae=J((()=>{pae()})),Qk=J(((e,t)=>{var n,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r={};for(n=0;n<66;n++)r[i.charAt(n)]=n;t.exports={itoc:i,ctoi:r}})),wae=J((()=>{var e=tt(),t=Mn(),n=ki(),i=en(),r=wr(),a=Yt(),s=Mr(),o=$r(),l=pu(),h=Qk().ctoi,c=/[^\d+/a-z]/i,u=/[\t\n\f\r ]+/g,d=/[=]{1,2}$/,p=n("atob"),f=String.fromCharCode,m=i("".charAt),g=i("".replace),v=i(c.exec),y=a((function(){return""!==p(" ")})),x=!a((function(){p("a")})),b=!y&&!x&&!a((function(){p()})),_=!y&&!x&&1!==p.length;e({global:!0,bind:!0,enumerable:!0,forced:y||x||b||_},{atob:function(e){if(l(arguments.length,1),b||_)return r(p,t,e);var i,a,y=g(s(e),u,""),x="",w=0,S=0;if(y.length%4==0&&(y=g(y,d,"")),y.length%4==1||v(c,y))throw new(n("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;i=m(y,w++);)o(h,i)&&(a=S%4?64*a+h[i]:h[i],S++%4&&(x+=f(255&a>>(-2*S&6))));return x}})})),Dae=J((()=>{var e=tt(),t=Mn(),n=ki(),i=en(),r=wr(),a=Yt(),s=Mr(),o=pu(),l=Qk().itoc,h=n("btoa"),c=i("".charAt),u=i("".charCodeAt),d=!!h&&!a((function(){h()})),p=!!h&&a((function(){return"bnVsbA=="!==h(null)})),f=!!h&&1!==h.length;e({global:!0,bind:!0,enumerable:!0,forced:d||p||f},{btoa:function(e){if(o(arguments.length,1),d||p||f)return r(h,t,s(e));for(var i,a,m=s(e),g="",v=0,y=l;c(m,v)||(y="=",v%1);){if((a=u(m,v+=3/4))>255)throw new(n("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");g+=c(y,63&(i=i<<8|a)>>8-v%1*8)}return g}})})),sF=J(((e,t)=>{t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}})),oF=J(((e,t)=>{var n=y1()("span").classList,i=n&&n.constructor&&n.constructor.prototype;t.exports=i===Object.prototype?void 0:i})),Hae=J((()=>{var e,t=Mn(),n=sF(),i=oF(),r=FL(),a=da(),s=function(e){if(e&&e.forEach!==r)try{a(e,"forEach",r)}catch(t){e.forEach=r}};for(e in n)n[e]&&s(t[e]&&t[e].prototype);s(i)})),jae=J((()=>{var e,t=Mn(),n=sF(),i=oF(),r=B1(),a=da(),s=Br(),o=s("iterator"),l=s("toStringTag"),h=r.values,c=function(e,t){if(e){if(e[o]!==h)try{a(e,o,h)}catch(t){e[o]=h}if(e[l]||a(e,l,t),n[t])for(var i in r)if(e[i]!==r[i])try{a(e,i,r[i])}catch(t){e[i]=r[i]}}};for(e in n)c(t[e]&&t[e].prototype,e);c(i,"DOMTokenList")})),Yae=J(((e,t)=>{var n=uu();t.exports=function(e){try{if(n)return Function('return require("'+e+'")')()}catch(e){}}})),dF=J(((e,t)=>{t.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}})),aoe=J((()=>{"use strict";var e=tt(),t=Yae(),n=ki(),i=Yt(),r=no(),a=ko(),s=Gi().f,o=Yi(),l=Hs(),h=$r(),c=dc(),u=br(),d=_L(),p=Fg(),f=dF(),m=pw(),g=Ts(),v=Kn(),y=as(),x="DOMException",b="DATA_CLONE_ERR",_=n("Error"),w=n(x)||function(){try{(new(n("MessageChannel")||t("worker_threads").MessageChannel)).port1.postMessage(new WeakMap)}catch(e){if(e.name==b&&25==e.code)return e.constructor}}(),S=w&&w.prototype,M=_.prototype,T=g.set,E=g.getterFor(x),A="stack"in _(x),C=function(e){return h(f,e)&&f[e].m?f[e].c:0},P=function(){c(this,R);var e=arguments.length,t=p(e<1?void 0:arguments[0]),n=p(e<2?void 0:arguments[1],"Error"),i=C(n);if(T(this,{type:x,name:n,message:t,code:i}),v||(this.name=n,this.message=t,this.code=i),A){var r=_(t);r.name=x,s(this,"stack",a(1,m(r.stack,1)))}},R=P.prototype=r(M),O=function(e){return{enumerable:!0,configurable:!0,get:e}},L=function(e){return O((function(){return E(this)[e]}))};v&&(l(R,"code",L("code")),l(R,"message",L("message")),l(R,"name",L("name"))),s(R,"constructor",a(1,P));var I=i((function(){return!(new w instanceof _)})),D=I||i((function(){return M.toString!==d||"2: 1"!==String(new w(1,2))})),k=I||i((function(){return 25!==new w(1,"DataCloneError").code})),N=I||25!==w[b]||25!==S[b],F=y?D||k||N:I;e({global:!0,constructor:!0,forced:F},{DOMException:F?P:w});var U,B,z,H,V=n(x),j=V.prototype;for(H in D&&(y||w===V)&&o(j,"toString",d),k&&v&&w===V&&l(j,"code",O((function(){return C(u(this).name)}))),f)h(f,H)&&(B=(U=f[H]).s,z=a(6,U.c),h(V,B)||s(V,B,z),h(j,B)||s(j,B,z))})),foe=J((()=>{"use strict";var e=tt(),t=Mn(),n=ki(),i=ko(),r=Gi().f,a=$r(),s=dc(),o=Pp(),l=Fg(),h=dF(),c=pw(),u=Kn(),d=as(),p="DOMException",f=n("Error"),m=n(p),g=function(){s(this,v);var e=arguments.length,t=l(e<1?void 0:arguments[0]),n=l(e<2?void 0:arguments[1],"Error"),a=new m(t,n),h=f(t);return h.name=p,r(a,"stack",i(1,c(h.stack,1))),o(a,this,g),a},v=g.prototype=m.prototype,y="stack"in f(p),x="stack"in new m(1,2),b=m&&u&&Object.getOwnPropertyDescriptor(t,p),_=!(!b||b.writable&&b.configurable),w=y&&!_&&!x;e({global:!0,constructor:!0,forced:d||w},{DOMException:w?g:m});var S,M,T,E=n(p),A=E.prototype;if(A.constructor!==E)for(T in d||r(A,"constructor",i(1,E)),h)a(h,T)&&(a(E,M=(S=h[T]).s)||r(E,M,i(6,S.c)))})),moe=J((()=>{var e=ki(),t="DOMException";ro()(e(t),t)})),voe=J((()=>{var e=tt(),t=Mn(),n=rx().clear;e({global:!0,bind:!0,enumerable:!0,forced:t.clearImmediate!==n},{clearImmediate:n})})),xoe=J(((e,t)=>{t.exports="function"==typeof Bun&&Bun&&"string"==typeof Bun.version})),eM=J(((e,t)=>{"use strict";var n,i=Mn(),r=No(),a=Fr(),s=xoe(),o=iu(),l=Nd(),h=pu(),c=i.Function,u=/MSIE .\./.test(o)||s&&((n=i.Bun.version.split(".")).length<3||0==n[0]&&(n[1]<3||3==n[1]&&0==n[2]));t.exports=function(e,t){var n=t?2:1;return u?function(i,s){var o=h(arguments.length,1)>n,u=a(i)?i:c(i),d=o?l(arguments,n):[],p=o?function(){r(u,this,d)}:u;return t?e(p,s):e(p)}:e}})),Soe=J((()=>{var e=tt(),t=Mn(),n=rx().set,i=eM(),r=t.setImmediate?i(n,!1):n;e({global:!0,bind:!0,enumerable:!0,forced:t.setImmediate!==r},{setImmediate:r})})),Moe=J((()=>{voe(),Soe()})),Roe=J((()=>{var e=tt(),t=Mn(),n=wO(),i=ss(),r=pu(),a=uu(),s=t.process;e({global:!0,enumerable:!0,dontCallGetSet:!0},{queueMicrotask:function(e){r(arguments.length,1),i(e);var t=a&&s.domain;n(t?t.bind(e):e)}})})),Coe=J((()=>{"use strict";var e,t=tt(),n=Mn(),i=Hs(),r=Kn(),a=TypeError,s=Object.defineProperty,o=n.self!==n;try{r?(e=Object.getOwnPropertyDescriptor(n,"self"),(o||!e||!e.get||!e.enumerable)&&i(n,"self",{get:function(){return n},set:function(e){if(this!==n)throw a("Illegal invocation");s(n,"self",{value:e,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})):t({global:!0,simple:!0,forced:o},{self:n})}catch(e){}})),Ioe=J(((e,t)=>{var n=en(),i=Map.prototype;t.exports={Map:Map,set:n(i.set),get:n(i.get),has:n(i.has),remove:n(i.delete),proto:i}})),Doe=J(((e,t)=>{var n=en(),i=Set.prototype;t.exports={Set:Set,add:n(i.add),has:n(i.has),remove:n(i.delete),proto:i}})),Foe=J(((e,t)=>{var n=Mn(),i=Yt(),r=su(),a=SO(),s=aS(),o=uu(),l=n.structuredClone;t.exports=!!l&&!i((function(){if(s&&r>92||o&&r>94||a&&r>97)return!1;var e=new ArrayBuffer(8),t=l(e,{transfer:[e]});return 0!=e.byteLength||8!=t.byteLength}))})),Woe=J((()=>{var e,t=as(),n=tt(),i=Mn(),r=ki(),a=en(),s=Yt(),o=Tp(),l=Fr(),h=Mp(),c=La(),u=Nr(),d=Od(),p=hc(),f=br(),m=cc(),g=$r(),v=ou(),y=da(),x=fi(),b=pu(),_=s0(),w=Ioe(),S=Doe(),M=vL(),T=Foe(),E=i.Object,A=i.Array,C=i.Date,P=i.Error,R=i.EvalError,O=i.RangeError,L=i.ReferenceError,I=i.SyntaxError,D=i.TypeError,k=i.URIError,N=i.PerformanceMark,F=i.WebAssembly,U=F&&F.CompileError||P,B=F&&F.LinkError||P,z=F&&F.RuntimeError||P,H=r("DOMException"),V=w.Map,j=w.has,G=w.get,W=w.set,X=S.Set,Y=S.add,q=r("Object","keys"),J=a([].push),Z=a((!0).valueOf),K=a(1..valueOf),$=a("".valueOf),Q=a(C.prototype.getTime),ee=o("structuredClone"),te="DataCloneError",ne="Transferring",ie=function(e){return!s((function(){var t=new i.Set([7]),n=e(t),r=e(E(7));return n==t||!n.has(7)||"object"!=typeof r||7!=r}))&&e},re=function(e,t){return!s((function(){var n=new t,i=e({a:n,b:n});return!(i&&i.a===i.b&&i.a instanceof t&&i.a.stack===n.stack)}))},ae=i.structuredClone,se=t||!re(ae,P)||!re(ae,H)||(e=ae,!!s((function(){var t=e(new i.AggregateError([1],ee,{cause:3}));return"AggregateError"!=t.name||1!=t.errors[0]||t.message!=ee||3!=t.cause}))),oe=!ae&&ie((function(e){return new N(ee,{detail:e}).detail})),le=ie(ae)||oe,he=function(e){throw new H("Uncloneable type: "+e,te)},ce=function(e,t){throw new H((t||"Cloning")+" of "+e+" cannot be properly polyfilled in this engine",te)},ue=function(e,t){return le||ce(t),le(e)},de=function(e,t){if(d(e)&&he("Symbol"),!u(e))return e;if(t){if(j(t,e))return G(t,e)}else t=new V;var n,a,s,o,h,c,p,f,b,w,S,T=m(e),N=!1;switch(T){case"Array":s=A(x(e)),N=!0;break;case"Object":s={},N=!0;break;case"Map":s=new V,N=!0;break;case"Set":s=new X,N=!0;break;case"RegExp":s=new RegExp(e.source,_(e));break;case"Error":switch(a=e.name){case"AggregateError":s=r("AggregateError")([]);break;case"EvalError":s=R();break;case"RangeError":s=O();break;case"ReferenceError":s=L();break;case"SyntaxError":s=I();break;case"TypeError":s=D();break;case"URIError":s=k();break;case"CompileError":s=U();break;case"LinkError":s=B();break;case"RuntimeError":s=z();break;default:s=P()}N=!0;break;case"DOMException":s=new H(e.message,e.name),N=!0;break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":n=i[T],u(n)||ce(T),s=new n(de(e.buffer,t),e.byteOffset,"DataView"===T?e.byteLength:e.length);break;case"DOMQuad":try{s=new DOMQuad(de(e.p1,t),de(e.p2,t),de(e.p3,t),de(e.p4,t))}catch(t){s=ue(e,T)}break;case"File":if(le)try{s=le(e),m(s)!==T&&(s=void 0)}catch(e){}if(!s)try{s=new File([e],e.name,e)}catch(e){}s||ce(T);break;case"FileList":if(o=function(){var e;try{e=new i.DataTransfer}catch(t){try{e=new i.ClipboardEvent("").clipboardData}catch(e){}}return e&&e.items&&e.files?e:null}(),o){for(h=0,c=x(e);h1&&!c(arguments[1])?f(arguments[1]):void 0,r=n?n.transfer:void 0;return void 0!==r&&function(e,t){if(!u(e))throw D("Transfer option cannot be converted to a sequence");var n=[];p(e,(function(e){J(n,f(e))}));var r,a,s,o,c,d,g=0,v=x(n);if(T)for(o=ae(n,{transfer:n});g{var e=tt(),t=Mn(),n=eM()(t.setInterval,!0);e({global:!0,bind:!0,forced:t.setInterval!==n},{setInterval:n})})),Koe=J((()=>{var e=tt(),t=Mn(),n=eM()(t.setTimeout,!0);e({global:!0,bind:!0,forced:t.setTimeout!==n},{setTimeout:n})})),Joe=J((()=>{Yoe(),Koe()})),cM=J(((e,t)=>{var n=Yt(),i=Br(),r=Kn(),a=as(),s=i("iterator");t.exports=!n((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n="";return e.pathname="c%20d",t.forEach((function(e,i){t.delete("b"),n+=i+e})),a&&!e.toJSON||!t.size&&(a||!r)||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[s]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://\u0442\u0435\u0441\u0442").host||"#%D0%B1"!==new URL("http://a#\u0431").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host}))})),cle=J(((e,t)=>{var n=en(),i=2147483647,r=/[^\0-\u007E]/,a=/[.\u3002\uFF0E\uFF61]/g,s="Overflow: input needs wider integers to process",o=RangeError,l=n(a.exec),h=Math.floor,c=String.fromCharCode,u=n("".charCodeAt),d=n([].join),p=n([].push),f=n("".replace),m=n("".split),g=n("".toLowerCase),v=function(e){return e+22+75*(e<26)},y=function(e,t,n){var i=0;for(e=n?h(e/700):e>>1,e+=h(e/t);e>455;)e=h(e/35),i+=36;return h(i+36*e/(e+38))},x=function(e){var t=[];e=function(e){for(var t=[],n=0,i=e.length;n=55296&&r<=56319&&n=l&&rh((i-f)/_))throw o(s);for(f+=(b-l)*_,l=b,n=0;ni)throw o(s);if(r==l){for(var w=f,S=36;;){var M=S<=m?1:S>=m+26?26:S-m;if(w{"use strict";B1();var n=tt(),i=Mn(),r=wr(),a=en(),s=Kn(),o=cM(),l=Yi(),h=Hs(),c=Vg(),u=ro(),d=Tw(),p=Ts(),f=dc(),m=Fr(),g=$r(),v=fl(),y=cc(),x=br(),b=Nr(),_=Mr(),w=no(),S=ko(),M=I1(),T=Bg(),E=pu(),A=Br(),C=Cw(),P=A("iterator"),R="URLSearchParams",O=R+"Iterator",L=p.set,I=p.getterFor(R),D=p.getterFor(O),k=Object.getOwnPropertyDescriptor,N=function(e){if(!s)return i[e];var t=k(i,e);return t&&t.value},F=N("fetch"),U=N("Request"),B=N("Headers"),z=U&&U.prototype,H=B&&B.prototype,V=i.RegExp,j=i.TypeError,G=i.decodeURIComponent,W=i.encodeURIComponent,X=a("".charAt),Y=a([].join),q=a([].push),J=a("".replace),Z=a([].shift),K=a([].splice),$=a("".split),Q=a("".slice),ee=/\+/g,te=Array(4),ne=function(e){return te[e-1]||(te[e-1]=V("((?:%[\\da-f]{2}){"+e+"})","gi"))},ie=function(e){try{return G(e)}catch(t){return e}},re=function(e){var t=J(e,ee," "),n=4;try{return G(t)}catch(e){for(;n;)t=J(t,ne(n--),ie);return t}},ae=/[!'()~]|%20/g,se={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},oe=function(e){return se[e]},le=function(e){return J(W(e),ae,oe)},he=d((function(e,t){L(this,{type:O,iterator:M(I(e).entries),kind:t})}),"Iterator",(function(){var e=D(this),t=e.kind,n=e.iterator.next(),i=n.value;return n.done||(n.value="keys"===t?i.key:"values"===t?i.value:[i.key,i.value]),n}),!0),ce=function(e){this.entries=[],this.url=null,void 0!==e&&(b(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===X(e,0)?Q(e,1):e:_(e)))};ce.prototype={type:R,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,n,i,a,s,o,l,h=T(e);if(h)for(n=(t=M(e,h)).next;!(i=r(n,t)).done;){if(s=(a=M(x(i.value))).next,(o=r(s,a)).done||(l=r(s,a)).done||!r(s,a).done)throw j("Expected sequence with length 2");q(this.entries,{key:_(o.value),value:_(l.value)})}else for(var c in e)g(e,c)&&q(this.entries,{key:c,value:_(e[c])})},parseQuery:function(e){if(e)for(var t,n,i=$(e,"&"),r=0;r0?arguments[0]:void 0));s||(this.length=e.entries.length)},ge=me.prototype;c(ge,{append:function(e,t){E(arguments.length,2);var n=I(this);q(n.entries,{key:_(e),value:_(t)}),s||this.length++,n.updateURL()},delete:function(e){E(arguments.length,1);for(var t=I(this),n=t.entries,i=_(e),r=0;rt.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,n=I(this).entries,i=v(e,arguments.length>1?arguments[1]:void 0),r=0;r1?pe(arguments[1]):{})}}),m(U)&&(fe=function(e){return f(this,z),new U(e,arguments.length>1?pe(arguments[1]):{})},z.constructor=fe,fe.prototype=z,n({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:fe}))),t.exports={URLSearchParams:me,getState:I}})),Xle=J((()=>{"use strict";sk();var e,t=tt(),n=Kn(),i=cM(),r=Mn(),a=fl(),s=en(),o=Yi(),l=Hs(),h=dc(),c=$r(),u=tO(),d=NL(),p=Lg(),f=hx().codeAt,m=cle(),g=Mr(),v=ro(),y=pu(),x=tN(),b=Ts(),_=b.set,w=b.getterFor("URL"),S=x.URLSearchParams,M=x.getState,T=r.URL,E=r.TypeError,A=r.parseInt,C=Math.floor,P=Math.pow,R=s("".charAt),O=s(/./.exec),L=s([].join),I=s(1..toString),D=s([].pop),k=s([].push),N=s("".replace),F=s([].shift),U=s("".split),B=s("".slice),z=s("".toLowerCase),H=s([].unshift),V="Invalid scheme",j="Invalid host",G="Invalid port",W=/[a-z]/i,X=/[\d+-.a-z]/i,Y=/\d/,q=/^0x/i,J=/^[0-7]+$/,Z=/^\d+$/,K=/^[\da-f]+$/i,$=/[\0\t\n\r #%/:<>?@[\\\]^|]/,Q=/[\0\t\n\r #/:<>?@[\\\]^|]/,ee=/^[\u0000-\u0020]+/,te=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,ne=/[\t\n\r]/g,ie=function(e){var t,n,i,r;if("number"==typeof e){for(t=[],n=0;n<4;n++)H(t,e%256),e=C(e/256);return L(t,".")}if("object"==typeof e){for(t="",i=function(e){for(var t=null,n=1,i=null,r=0,a=0;a<8;a++)0!==e[a]?(r>n&&(t=i,n=r),i=null,r=0):(null===i&&(i=a),++r);return r>n&&(t=i,n=r),t}(e),n=0;n<8;n++)r&&0===e[n]||(r&&(r=!1),i===n?(t+=n?":":"::",r=!0):(t+=I(e[n],16),n<7&&(t+=":")));return"["+t+"]"}return e},re={},ae=u({},re,{" ":1,'"':1,"<":1,">":1,"`":1}),se=u({},ae,{"#":1,"?":1,"{":1,"}":1}),oe=u({},se,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),le=function(e,t){var n=f(e,0);return n>32&&n<127&&!c(t,e)?e:encodeURIComponent(e)},he={ftp:21,file:null,http:80,https:443,ws:80,wss:443},ce=function(e,t){var n;return 2==e.length&&O(W,R(e,0))&&(":"==(n=R(e,1))||!t&&"|"==n)},ue=function(e){var t;return e.length>1&&ce(B(e,0,2))&&(2==e.length||"/"===(t=R(e,2))||"\\"===t||"?"===t||"#"===t)},de=function(e){return"."===e||"%2e"===z(e)},pe=function(e){return".."===(e=z(e))||"%2e."===e||".%2e"===e||"%2e%2e"===e},fe={},me={},ge={},ve={},ye={},xe={},be={},_e={},we={},Se={},Me={},Te={},Ee={},Ae={},Ce={},Pe={},Re={},Oe={},Le={},Ie={},De={},ke=function(e,t,n){var i,r,a,s=g(e);if(t){if(r=this.parse(s))throw E(r);this.searchParams=null}else{if(void 0!==n&&(i=new ke(n,!0)),r=this.parse(s,null,i))throw E(r);(a=M(new S)).bindURL(this),this.searchParams=a}};ke.prototype={type:"URL",parse:function(t,n,i){var r,a,s,o,l=this,h=n||fe,u=0,f="",m=!1,v=!1,y=!1;for(t=g(t),n||(l.scheme="",l.username="",l.password="",l.host=null,l.port=null,l.path=[],l.query=null,l.fragment=null,l.cannotBeABaseURL=!1,t=N(t,ee,""),t=N(t,te,"$1")),t=N(t,ne,""),r=d(t);u<=r.length;){switch(a=r[u],h){case fe:if(!a||!O(W,a)){if(n)return V;h=ge;continue}f+=z(a),h=me;break;case me:if(a&&(O(X,a)||"+"==a||"-"==a||"."==a))f+=z(a);else{if(":"!=a){if(n)return V;f="",h=ge,u=0;continue}if(n&&(l.isSpecial()!=c(he,f)||"file"==f&&(l.includesCredentials()||null!==l.port)||"file"==l.scheme&&!l.host))return;if(l.scheme=f,n)return void(l.isSpecial()&&he[l.scheme]==l.port&&(l.port=null));f="","file"==l.scheme?h=Ae:l.isSpecial()&&i&&i.scheme==l.scheme?h=ve:l.isSpecial()?h=_e:"/"==r[u+1]?(h=ye,u++):(l.cannotBeABaseURL=!0,k(l.path,""),h=Le)}break;case ge:if(!i||i.cannotBeABaseURL&&"#"!=a)return V;if(i.cannotBeABaseURL&&"#"==a){l.scheme=i.scheme,l.path=p(i.path),l.query=i.query,l.fragment="",l.cannotBeABaseURL=!0,h=De;break}h="file"==i.scheme?Ae:xe;continue;case ve:if("/"!=a||"/"!=r[u+1]){h=xe;continue}h=we,u++;break;case ye:if("/"==a){h=Se;break}h=Oe;continue;case xe:if(l.scheme=i.scheme,a==e)l.username=i.username,l.password=i.password,l.host=i.host,l.port=i.port,l.path=p(i.path),l.query=i.query;else if("/"==a||"\\"==a&&l.isSpecial())h=be;else if("?"==a)l.username=i.username,l.password=i.password,l.host=i.host,l.port=i.port,l.path=p(i.path),l.query="",h=Ie;else{if("#"!=a){l.username=i.username,l.password=i.password,l.host=i.host,l.port=i.port,l.path=p(i.path),l.path.length--,h=Oe;continue}l.username=i.username,l.password=i.password,l.host=i.host,l.port=i.port,l.path=p(i.path),l.query=i.query,l.fragment="",h=De}break;case be:if(!l.isSpecial()||"/"!=a&&"\\"!=a){if("/"!=a){l.username=i.username,l.password=i.password,l.host=i.host,l.port=i.port,h=Oe;continue}h=Se}else h=we;break;case _e:if(h=we,"/"!=a||"/"!=R(f,u+1))continue;u++;break;case we:if("/"!=a&&"\\"!=a){h=Se;continue}break;case Se:if("@"==a){m&&(f="%40"+f),m=!0,s=d(f);for(var x=0;x65535)return G;l.port=l.isSpecial()&&w===he[l.scheme]?null:w,f=""}if(n)return;h=Re;continue}return G}f+=a;break;case Ae:if(l.scheme="file","/"==a||"\\"==a)h=Ce;else{if(!i||"file"!=i.scheme){h=Oe;continue}if(a==e)l.host=i.host,l.path=p(i.path),l.query=i.query;else if("?"==a)l.host=i.host,l.path=p(i.path),l.query="",h=Ie;else{if("#"!=a){ue(L(p(r,u),""))||(l.host=i.host,l.path=p(i.path),l.shortenPath()),h=Oe;continue}l.host=i.host,l.path=p(i.path),l.query=i.query,l.fragment="",h=De}}break;case Ce:if("/"==a||"\\"==a){h=Pe;break}i&&"file"==i.scheme&&!ue(L(p(r,u),""))&&(ce(i.path[0],!0)?k(l.path,i.path[0]):l.host=i.host),h=Oe;continue;case Pe:if(a==e||"/"==a||"\\"==a||"?"==a||"#"==a){if(!n&&ce(f))h=Oe;else if(""==f){if(l.host="",n)return;h=Re}else{if(o=l.parseHost(f))return o;if("localhost"==l.host&&(l.host=""),n)return;f="",h=Re}continue}f+=a;break;case Re:if(l.isSpecial()){if(h=Oe,"/"!=a&&"\\"!=a)continue}else if(n||"?"!=a)if(n||"#"!=a){if(a!=e&&(h=Oe,"/"!=a))continue}else l.fragment="",h=De;else l.query="",h=Ie;break;case Oe:if(a==e||"/"==a||"\\"==a&&l.isSpecial()||!n&&("?"==a||"#"==a)){if(pe(f)?(l.shortenPath(),"/"!=a&&!("\\"==a&&l.isSpecial())&&k(l.path,"")):de(f)?"/"!=a&&!("\\"==a&&l.isSpecial())&&k(l.path,""):("file"==l.scheme&&!l.path.length&&ce(f)&&(l.host&&(l.host=""),f=R(f,0)+":"),k(l.path,f)),f="","file"==l.scheme&&(a==e||"?"==a||"#"==a))for(;l.path.length>1&&""===l.path[0];)F(l.path);"?"==a?(l.query="",h=Ie):"#"==a&&(l.fragment="",h=De)}else f+=le(a,se);break;case Le:"?"==a?(l.query="",h=Ie):"#"==a?(l.fragment="",h=De):a!=e&&(l.path[0]+=le(a,re));break;case Ie:n||"#"!=a?a!=e&&("'"==a&&l.isSpecial()?l.query+="%27":l.query+="#"==a?"%23":le(a,re)):(l.fragment="",h=De);break;case De:a!=e&&(l.fragment+=le(a,ae))}u++}},parseHost:function(e){var t,n,i;if("["==R(e,0)){if("]"!=R(e,e.length-1)||(t=function(e){var t,n,i,r,a,s,o,l=[0,0,0,0,0,0,0,0],h=0,c=null,u=0,d=function(){return R(e,u)};if(":"==d()){if(":"!=R(e,1))return;u+=2,c=++h}for(;d();){if(8==h)return;if(":"!=d()){for(t=n=0;n<4&&O(K,d());)t=16*t+A(d(),16),u++,n++;if("."==d()){if(0==n||(u-=n,h>6))return;for(i=0;d();){if(r=null,i>0){if(!("."==d()&&i<4))return;u++}if(!O(Y,d()))return;for(;O(Y,d());){if(a=A(d(),10),null===r)r=a;else{if(0==r)return;r=10*r+a}if(r>255)return;u++}l[h]=256*l[h]+r,(2==++i||4==i)&&h++}if(4!=i)return;break}if(":"==d()){if(u++,!d())return}else if(d())return;l[h++]=t}else{if(null!==c)return;u++,c=++h}}if(null!==c)for(s=h-c,h=7;0!=h&&s>0;)o=l[h],l[h--]=l[c+s-1],l[c+--s]=o;else if(8!=h)return;return l}(B(e,1,-1)),!t))return j;this.host=t}else if(this.isSpecial()){if(e=m(e),O($,e)||(t=function(e){var t,n,i,r,a,s,o,l=U(e,".");if(l.length&&""==l[l.length-1]&&l.length--,(t=l.length)>4)return e;for(n=[],i=0;i1&&"0"==R(r,0)&&(a=O(q,r)?16:8,r=B(r,8==a?1:2)),""===r)s=0;else{if(!O(10==a?Z:8==a?J:K,r))return e;s=A(r,a)}k(n,s)}for(i=0;i=P(256,5-t))return null}else if(s>255)return null;for(o=D(n),i=0;i1?arguments[1]:void 0,r=_(t,new ke(e,!1,i));n||(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},Be=Ue.prototype,ze=function(e,t){return{get:function(){return w(this)[e]()},set:t&&function(e){return w(this)[t](e)},configurable:!0,enumerable:!0}};n&&(l(Be,"href",ze("serialize","setHref")),l(Be,"origin",ze("getOrigin")),l(Be,"protocol",ze("getProtocol","setProtocol")),l(Be,"username",ze("getUsername","setUsername")),l(Be,"password",ze("getPassword","setPassword")),l(Be,"host",ze("getHost","setHost")),l(Be,"hostname",ze("getHostname","setHostname")),l(Be,"port",ze("getPort","setPort")),l(Be,"pathname",ze("getPathname","setPathname")),l(Be,"search",ze("getSearch","setSearch")),l(Be,"searchParams",ze("getSearchParams")),l(Be,"hash",ze("getHash","setHash"))),o(Be,"toJSON",(function(){return w(this).serialize()}),{enumerable:!0}),o(Be,"toString",(function(){return w(this).serialize()}),{enumerable:!0}),T&&(Ne=T.createObjectURL,Fe=T.revokeObjectURL,Ne&&o(Ue,"createObjectURL",a(Ne,T)),Fe&&o(Ue,"revokeObjectURL",a(Fe,T))),v(Ue,"URL"),t({global:!0,constructor:!0,forced:!i,sham:!n},{URL:Ue})})),Yle=J((()=>{Xle()})),Kle=J((()=>{var e=tt(),t=ki(),n=Yt(),i=pu(),r=Mr(),a=cM(),s=t("URL");e({target:"URL",stat:!0,forced:!(a&&n((function(){s.canParse()})))},{canParse:function(e){var t=i(arguments.length,1),n=r(e),a=t<2||void 0===arguments[1]?void 0:r(arguments[1]);try{return!!new s(n,a)}catch(e){return!1}}})})),Jle=J((()=>{"use strict";var e=tt(),t=wr();e({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return t(URL.prototype.toString,this)}})})),Qle=J((()=>{tN()})),ece=J((()=>{"use strict";var e=Kn(),t=en(),n=Hs(),i=URLSearchParams.prototype,r=t(i.forEach);e&&!("size"in i)&&n(i,"size",{get:function(){var e=0;return r(this,(function(){e++})),e},configurable:!0,enumerable:!0})})),nce=J(((e,t)=>{nW(),cW(),uW(),hW(),dW(),fW(),pW(),mW(),gW(),vW(),yW(),xW(),bW(),EW(),_W(),YW(),QW(),gj(),bj(),_j(),Aj(),Lj(),Oj(),Nj(),Bj(),Hj(),zj(),Wj(),jj(),$j(),Zj(),Qj(),cX(),uX(),dX(),fX(),B1(),OX(),BX(),UX(),VX(),GX(),YX(),ZX(),JX(),tY(),nY(),yY(),EY(),_Y(),wY(),AY(),CY(),PY(),IY(),LY(),OY(),a$(),y$(),R$(),C$(),P$(),L$(),k$(),F$(),j$(),X$(),J$(),nZ(),iZ(),uZ(),fZ(),vZ(),yZ(),dL(),xZ(),kZ(),BZ(),VZ(),GZ(),WZ(),jZ(),$Z(),KZ(),eK(),nK(),iK(),aK(),oK(),lK(),cK(),dK(),mK(),gK(),vK(),AK(),CK(),LK(),OK(),kK(),FK(),NK(),BK(),qK(),JK(),rJ(),cJ(),dJ(),vJ(),yJ(),EJ(),TJ(),SJ(),MJ(),PJ(),IJ(),LJ(),kJ(),FJ(),NJ(),UJ(),HJ(),zJ(),qJ(),jJ(),YJ(),ZJ(),KJ(),JJ(),QJ(),sQ(),aQ(),oQ(),uQ(),hQ(),fQ(),mQ(),Mee(),Ree(),Cee(),Dee(),Oee(),Vee(),qee(),Wee(),$ee(),Zee(),Kee(),Jee(),Qee(),ete(),tte(),ate(),lte(),cte(),Ste(),Rte(),xS(),Dte(),kte(),Bte(),Vte(),Gte(),qte(),Yte(),tne(),ine(),ane(),sk(),xne(),Cne(),Ine(),Lne(),Fne(),Nne(),Gne(),Yne(),Kne(),rre(),lre(),ure(),pre(),xre(),wre(),Are(),Cre(),Pre(),Ire(),Lre(),Dre(),Ore(),kre(),Fre(),Nre(),Bre(),Ure(),Hre(),pie(),mie(),gie(),vie(),yie(),xie(),bie(),Eie(),_ie(),wie(),Mie(),Aie(),Pie(),Fie(),Bie(),Hie(),zie(),qie(),jie(),Xie(),$ie(),Kie(),nse(),ise(),ase(),lse(),use(),dse(),pse(),gse(),_se(),wse(),Mse(),Lse(),kse(),Hse(),Vse(),zse(),qse(),Wse(),Zse(),fae(),mae(),wae(),Dae(),Hae(),jae(),aoe(),foe(),moe(),Moe(),Roe(),Coe(),Woe(),Joe(),Yle(),Kle(),Jle(),Qle(),ece(),t.exports=aw()})),rce=J(((e,t)=>{var n=function(e){"use strict";var t,n=Object.prototype,i=n.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",o=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function h(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{h({},"")}catch(e){h=function(e,t,n){return e[t]=n}}function c(e,t,n,i){var a=t&&t.prototype instanceof v?t:v,s=Object.create(a.prototype),o=new R(i||[]);return r(s,"_invoke",{value:E(e,n,o)}),s}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var d="suspendedStart",p="suspendedYield",f="executing",m="completed",g={};function v(){}function y(){}function x(){}var b={};h(b,s,(function(){return this}));var _=Object.getPrototypeOf,w=_&&_(_(O([])));w&&w!==n&&i.call(w,s)&&(b=w);var S=x.prototype=v.prototype=Object.create(b);function M(e){["next","throw","return"].forEach((function(t){h(e,t,(function(e){return this._invoke(t,e)}))}))}function T(e,t){function n(r,a,s,o){var l=u(e[r],e,a);if("throw"!==l.type){var h=l.arg,c=h.value;return c&&"object"==typeof c&&i.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,s,o)}),(function(e){n("throw",e,s,o)})):t.resolve(c).then((function(e){h.value=e,s(h)}),(function(e){return n("throw",e,s,o)}))}o(l.arg)}var a;r(this,"_invoke",{value:function(e,i){function r(){return new t((function(t,r){n(e,i,t,r)}))}return a=a?a.then(r,r):r()}})}function E(e,t,n){var i=d;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===m){if("throw"===r)throw a;return L()}for(n.method=r,n.arg=a;;){var s=n.delegate;if(s){var o=A(s,n);if(o){if(o===g)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===d)throw i=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var l=u(e,t,n);if("normal"===l.type){if(i=n.done?m:p,l.arg===g)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(i=m,n.method="throw",n.arg=l.arg)}}}function A(e,n){var i=n.method,r=e.iterator[i];if(r===t)return n.delegate=null,"throw"===i&&e.iterator.return&&(n.method="return",n.arg=t,A(e,n),"throw"===n.method)||"return"!==i&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+i+"' method")),g;var a=u(r,e.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,g;var s=a.arg;return s?s.done?(n[e.resultName]=s.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,g):s:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function P(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function R(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function O(e){if(e){var n=e[s];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function n(){for(;++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var l=i.call(s,"catchLoc"),h=i.call(s,"finallyLoc");if(l&&h){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),P(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var i=n.completion;if("throw"===i.type){var r=i.arg;P(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,i){return this.delegate={iterator:O(e),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=t),g}},e}("object"==typeof t?t.exports:{});try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}})),mde=J(((e,t)=>{!function(e,n){"use strict";"function"==typeof define&&define.amd?define(n):"object"==typeof t&&t.exports?t.exports=n():e.log=n()}(e,(function(){"use strict";var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"];function r(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function a(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function s(t,n){for(var r=0;r=0&&n<=o.levels.SILENT))throw"log.setLevel() called with invalid level: "+n;if(a=n,!1!==r&&function(e){var n=(i[e]||"silent").toUpperCase();if(typeof window!==t&&h){try{return void(window.localStorage[h]=n)}catch(e){}try{window.document.cookie=encodeURIComponent(h)+"="+n+";"}catch(e){}}}(n),s.call(o,n,e),typeof console===t&&n{"use strict";t.exports=function(e,t,i){var r=e*t,a=n*e,s=a-(a-e),o=e-s,l=n*t,h=l-(l-t),c=t-h,u=o*c-(r-s*h-o*h-s*c);return i?(i[0]=u,i[1]=r,i):[u,r]};var n=+(Math.pow(2,27)+1)})),e5=J(((e,t)=>{"use strict";t.exports=function(e,t){var n=0|e.length,i=0|t.length;if(1===n&&1===i)return function(e,t){var n=e+t,i=n-e,r=e-(n-i)+(t-i);return r?[r,n]:[n]}(e[0],t[0]);var r,a,s=new Array(n+i),o=0,l=0,h=0,c=Math.abs,u=e[l],d=c(u),p=t[h],f=c(p);d=i?(r=u,(l+=1){"use strict";t.exports=function(e,t,n){var i=e+t,r=i-e,a=t-r,s=e-(i-r);return n?(n[0]=s+a,n[1]=i,n):[s+a,i]}})),n5=J(((e,t)=>{"use strict";var n=UA(),i=sfe();t.exports=function(e,t){var r=e.length;if(1===r){var a=n(e[0],t);return a[0]?a:[a[1]]}var s=new Array(2*r),o=[.1,.1],l=[.1,.1],h=0;n(e[0],t,o),o[0]&&(s[h++]=o[0]);for(var c=1;c{"use strict";t.exports=function(e){for(var t=e.length,n=e[e.length-1],i=t,r=t-2;r>=0;--r){var a=n;(l=(o=e[r])-((n=a+o)-a))&&(e[--i]=n,n=l)}var s=0;for(r=i;r{"use strict";t.exports=function(e,t){var n=0|e.length,i=0|t.length;if(1===n&&1===i)return function(e,t){var n=e+t,i=n-e,r=e-(n-i)+(t-i);return r?[r,n]:[n]}(e[0],-t[0]);var r,a,s=new Array(n+i),o=0,l=0,h=0,c=Math.abs,u=e[l],d=c(u),p=-t[h],f=c(p);d=i?(r=u,(l+=1){"use strict";var n=UA(),i=e5(),r=n5(),a=ufe();function s(e,t,n,i){return function(n,r,a){var s=e(e(t(r[1],a[0]),t(-a[1],r[0])),e(t(n[1],r[0]),t(-r[1],n[0]))),o=e(t(n[1],a[0]),t(-a[1],n[0])),l=i(s,o);return l[l.length-1]}}function o(e,t,n,i){return function(r,a,s,o){var l=e(e(n(e(t(s[1],o[0]),t(-o[1],s[0])),a[2]),e(n(e(t(a[1],o[0]),t(-o[1],a[0])),-s[2]),n(e(t(a[1],s[0]),t(-s[1],a[0])),o[2]))),e(n(e(t(a[1],o[0]),t(-o[1],a[0])),r[2]),e(n(e(t(r[1],o[0]),t(-o[1],r[0])),-a[2]),n(e(t(r[1],a[0]),t(-a[1],r[0])),o[2])))),h=e(e(n(e(t(s[1],o[0]),t(-o[1],s[0])),r[2]),e(n(e(t(r[1],o[0]),t(-o[1],r[0])),-s[2]),n(e(t(r[1],s[0]),t(-s[1],r[0])),o[2]))),e(n(e(t(a[1],s[0]),t(-s[1],a[0])),r[2]),e(n(e(t(r[1],s[0]),t(-s[1],r[0])),-a[2]),n(e(t(r[1],a[0]),t(-a[1],r[0])),s[2])))),c=i(l,h);return c[c.length-1]}}function l(e,t,n,i){return function(r,a,s,o,l){var h=e(e(e(n(e(n(e(t(o[1],l[0]),t(-l[1],o[0])),s[2]),e(n(e(t(s[1],l[0]),t(-l[1],s[0])),-o[2]),n(e(t(s[1],o[0]),t(-o[1],s[0])),l[2]))),a[3]),e(n(e(n(e(t(o[1],l[0]),t(-l[1],o[0])),a[2]),e(n(e(t(a[1],l[0]),t(-l[1],a[0])),-o[2]),n(e(t(a[1],o[0]),t(-o[1],a[0])),l[2]))),-s[3]),n(e(n(e(t(s[1],l[0]),t(-l[1],s[0])),a[2]),e(n(e(t(a[1],l[0]),t(-l[1],a[0])),-s[2]),n(e(t(a[1],s[0]),t(-s[1],a[0])),l[2]))),o[3]))),e(n(e(n(e(t(s[1],o[0]),t(-o[1],s[0])),a[2]),e(n(e(t(a[1],o[0]),t(-o[1],a[0])),-s[2]),n(e(t(a[1],s[0]),t(-s[1],a[0])),o[2]))),-l[3]),e(n(e(n(e(t(o[1],l[0]),t(-l[1],o[0])),a[2]),e(n(e(t(a[1],l[0]),t(-l[1],a[0])),-o[2]),n(e(t(a[1],o[0]),t(-o[1],a[0])),l[2]))),r[3]),n(e(n(e(t(o[1],l[0]),t(-l[1],o[0])),r[2]),e(n(e(t(r[1],l[0]),t(-l[1],r[0])),-o[2]),n(e(t(r[1],o[0]),t(-o[1],r[0])),l[2]))),-a[3])))),e(e(n(e(n(e(t(a[1],l[0]),t(-l[1],a[0])),r[2]),e(n(e(t(r[1],l[0]),t(-l[1],r[0])),-a[2]),n(e(t(r[1],a[0]),t(-a[1],r[0])),l[2]))),o[3]),e(n(e(n(e(t(a[1],o[0]),t(-o[1],a[0])),r[2]),e(n(e(t(r[1],o[0]),t(-o[1],r[0])),-a[2]),n(e(t(r[1],a[0]),t(-a[1],r[0])),o[2]))),-l[3]),n(e(n(e(t(s[1],o[0]),t(-o[1],s[0])),a[2]),e(n(e(t(a[1],o[0]),t(-o[1],a[0])),-s[2]),n(e(t(a[1],s[0]),t(-s[1],a[0])),o[2]))),r[3]))),e(n(e(n(e(t(s[1],o[0]),t(-o[1],s[0])),r[2]),e(n(e(t(r[1],o[0]),t(-o[1],r[0])),-s[2]),n(e(t(r[1],s[0]),t(-s[1],r[0])),o[2]))),-a[3]),e(n(e(n(e(t(a[1],o[0]),t(-o[1],a[0])),r[2]),e(n(e(t(r[1],o[0]),t(-o[1],r[0])),-a[2]),n(e(t(r[1],a[0]),t(-a[1],r[0])),o[2]))),s[3]),n(e(n(e(t(a[1],s[0]),t(-s[1],a[0])),r[2]),e(n(e(t(r[1],s[0]),t(-s[1],r[0])),-a[2]),n(e(t(r[1],a[0]),t(-a[1],r[0])),s[2]))),-o[3]))))),c=e(e(e(n(e(n(e(t(o[1],l[0]),t(-l[1],o[0])),s[2]),e(n(e(t(s[1],l[0]),t(-l[1],s[0])),-o[2]),n(e(t(s[1],o[0]),t(-o[1],s[0])),l[2]))),r[3]),n(e(n(e(t(o[1],l[0]),t(-l[1],o[0])),r[2]),e(n(e(t(r[1],l[0]),t(-l[1],r[0])),-o[2]),n(e(t(r[1],o[0]),t(-o[1],r[0])),l[2]))),-s[3])),e(n(e(n(e(t(s[1],l[0]),t(-l[1],s[0])),r[2]),e(n(e(t(r[1],l[0]),t(-l[1],r[0])),-s[2]),n(e(t(r[1],s[0]),t(-s[1],r[0])),l[2]))),o[3]),n(e(n(e(t(s[1],o[0]),t(-o[1],s[0])),r[2]),e(n(e(t(r[1],o[0]),t(-o[1],r[0])),-s[2]),n(e(t(r[1],s[0]),t(-s[1],r[0])),o[2]))),-l[3]))),e(e(n(e(n(e(t(s[1],l[0]),t(-l[1],s[0])),a[2]),e(n(e(t(a[1],l[0]),t(-l[1],a[0])),-s[2]),n(e(t(a[1],s[0]),t(-s[1],a[0])),l[2]))),r[3]),n(e(n(e(t(s[1],l[0]),t(-l[1],s[0])),r[2]),e(n(e(t(r[1],l[0]),t(-l[1],r[0])),-s[2]),n(e(t(r[1],s[0]),t(-s[1],r[0])),l[2]))),-a[3])),e(n(e(n(e(t(a[1],l[0]),t(-l[1],a[0])),r[2]),e(n(e(t(r[1],l[0]),t(-l[1],r[0])),-a[2]),n(e(t(r[1],a[0]),t(-a[1],r[0])),l[2]))),s[3]),n(e(n(e(t(a[1],s[0]),t(-s[1],a[0])),r[2]),e(n(e(t(r[1],s[0]),t(-s[1],r[0])),-a[2]),n(e(t(r[1],a[0]),t(-a[1],r[0])),s[2]))),-l[3])))),u=i(h,c);return u[u.length-1]}}function h(e){return(3===e?s:4===e?o:l)(i,n,r,a)}var c=h(3),u=h(4),d=[function(){return 0},function(){return 0},function(e,t){return t[0]-e[0]},function(e,t,n){var i,r=(e[1]-n[1])*(t[0]-n[0]),a=(e[0]-n[0])*(t[1]-n[1]),s=r-a;if(r>0){if(a<=0)return s;i=r+a}else{if(!(r<0))return s;if(a>=0)return s;i=-(r+a)}var o=33306690738754716e-32*i;return s>=o||s<=-o?s:c(e,t,n)},function(e,t,n,i){var r=e[0]-i[0],a=t[0]-i[0],s=n[0]-i[0],o=e[1]-i[1],l=t[1]-i[1],h=n[1]-i[1],c=e[2]-i[2],d=t[2]-i[2],p=n[2]-i[2],f=a*h,m=s*l,g=s*o,v=r*h,y=r*l,x=a*o,b=c*(f-m)+d*(g-v)+p*(y-x),_=7771561172376103e-31*((Math.abs(f)+Math.abs(m))*Math.abs(c)+(Math.abs(g)+Math.abs(v))*Math.abs(d)+(Math.abs(y)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:u(e,t,n,i)}];function p(e){var t=d[e.length];return t||(t=d[e.length]=h(e.length)),t.apply(void 0,e)}function f(e,t,n,i,r,a,s){return function(t,n,o,l,h){switch(arguments.length){case 0:case 1:return 0;case 2:return i(t,n);case 3:return r(t,n,o);case 4:return a(t,n,o,l);case 5:return s(t,n,o,l,h)}for(var c=new Array(arguments.length),u=0;u{"use strict";t.exports=function(e,t,i,r){var a=n(e,i,r),s=n(t,i,r);if(a>0&&s>0||a<0&&s<0)return!1;var o=n(i,e,t),l=n(r,e,t);return!(o>0&&l>0||o<0&&l<0)&&(0!==a||0!==s||0!==o||0!==l||function(e,t,n,i){for(var r=0;r<2;++r){var a=e[r],s=t[r],o=Math.min(a,s),l=Math.max(a,s),h=n[r],c=i[r],u=Math.min(h,c);if(Math.max(h,c){"use strict";t.exports=function(e,t,o,l){if(!s(e,t,o,l))return[[0],[0],[0]];var h=i([o[1]],[-l[1]]),c=i([-o[0]],[l[0]]),u=i(i(r(c,e[1]),r(c,-t[1])),i(r(h,e[0]),r(h,-t[0]))),d=i(n(-e[0],t[1]),n(e[1],t[0])),p=i(n(-o[0],l[1]),n(o[1],l[0])),f=i(i(r(p,e[0]),r(p,-t[0])),i(r(d,-o[0]),r(d,l[0]))),m=i(i(r(p,e[1]),r(p,-t[1])),i(r(d,-o[1]),r(d,l[1])));return[a(f),a(m),a(u)]};var n=UA(),i=e5(),r=n5(),a=lfe(),s=pfe()})),yfe=J(((e,t)=>{t.exports=function(e){var t=0,n=e.length;switch(n){case 1:t=e[0];break;case 2:t=e[0]+e[1];break;case 3:t=e[0]+e[1]+e[2];break;case 4:t=e[0]+e[1]+e[2]+e[3];break;default:for(var i=0;i{var n=gfe(),i=yfe();function r(e,t){return e[0]===t[0]&&e[1]===t[1]}t.exports=function(e,t){for(var c={},u=e.length,d=[],p=0;p{function n(e){if(e)return function(e){for(var t in n.prototype)e[t]=n.prototype[t];return e}(e)}t.exports=n,n.prototype.on=n.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},n.prototype.once=function(e,t){var n=this;function i(){n.off(e,i),t.apply(this,arguments)}return this._callbacks=this._callbacks||{},i.fn=t,this.on(e,i),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[e];if(!n)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var i,r=0;r{var n=Jfe();function i(){n.call(this)}i.prototype=new n,t.exports=i,i.Stream=i,i.prototype.pipe=function(e,t){var n=this;function i(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function r(){n.readable&&n.resume&&n.resume()}n.on("data",i),e.on("drain",r),!e._isStdio&&(!t||!1!==t.end)&&(n.on("end",s),n.on("close",o));var a=!1;function s(){a||(a=!0,e.end())}function o(){a||(a=!0,"function"==typeof e.destroy&&e.destroy())}function l(e){if(h(),!this.hasListeners("error"))throw e}function h(){n.off("data",i),e.off("drain",r),n.off("end",s),n.off("close",o),n.off("error",l),e.off("error",l),n.off("end",h),n.off("close",h),e.off("end",h),e.off("close",h)}return n.on("error",l),e.on("error",l),n.on("end",h),n.on("close",h),e.on("end",h),e.on("close",h),e.emit("pipe",n),e}})),npe=J(((e,t)=>{var n,i;n=e,i=function(){"use strict";var e=Math.imul,t=Math.clz32;function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){for(var n,i=0;ie.length)&&(t=e.length);for(var n=0,i=Array(t);no.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");return n}!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&a(e,t)}(o,e);var l=c(o);return function(e,t,n){t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1})}(o,[{key:"toDebugString",value:function(){var e,t=["BigInt["],n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=d(e))){n&&(e=n);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){o=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(o)throw a}}}}(this);try{for(n.s();!(e=n.n()).done;){var i=e.value;t.push((i&&(i>>>0).toString(16))+", ")}}catch(e){n.e(e)}finally{n.f()}return t.push("]"),t.join("")}},{key:"toString",value:function(){var e=0e||36this.length&&(n=this.length);for(var i=32767&e,r=e>>>15,a=0,s=t,l=0;l>>15,d=o.__imul(c,i),p=o.__imul(c,r),f=o.__imul(u,i),m=s+d+a;a=m>>>30,m&=1073741823,a+=(m+=((32767&p)<<15)+((32767&f)<<15))>>>30,s=o.__imul(u,r)+(p>>>15)+(f>>>15),this.__setDigit(l,1073741823&m)}if(0!==a||0!==s)throw new Error("implementation bug")}},{key:"__inplaceAdd",value:function(e,t,n){for(var i,r=0,a=0;a>>15,this.__setHalfDigit(t+a,32767&i);return r}},{key:"__inplaceSub",value:function(e,t,n){var i=0;if(1&t){t>>=1;for(var r=this.__digit(t),a=32767&r,s=0;s>>1;s++){var o=e.__digit(s),l=(r>>>15)-(32767&o)-i;i=1&l>>>15,this.__setDigit(t+s,(32767&l)<<15|32767&a),i=1&(a=(32767&(r=this.__digit(t+s+1)))-(o>>>15)-i)>>>15}var h=e.__digit(s),c=(r>>>15)-(32767&h)-i;if(i=1&c>>>15,this.__setDigit(t+s,(32767&c)<<15|32767&a),t+s+1>=this.length)throw new RangeError("out of bounds");!(1&n)&&(i=1&(a=(32767&(r=this.__digit(t+s+1)))-(h>>>15)-i)>>>15,this.__setDigit(t+e.length,1073709056&r|32767&a))}else{t>>=1;for(var u=0;u>>15)-(p>>>15)-(i=1&f>>>15);i=1&m>>>15,this.__setDigit(t+u,(32767&m)<<15|32767&f)}var g=this.__digit(t+u),v=e.__digit(u),y=(32767&g)-(32767&v)-i;i=1&y>>>15;var x=0;!(1&n)&&(i=1&(x=(g>>>15)-(v>>>15)-i)>>>15),this.__setDigit(t+u,(32767&x)<<15|32767&y)}return i}},{key:"__inplaceRightShift",value:function(e){if(0!==e){for(var t,n=this.__digit(0)>>>e,i=this.length-1,r=0;r>>e;this.__setDigit(i,n)}}},{key:"__digit",value:function(e){return this[e]}},{key:"__unsignedDigit",value:function(e){return this[e]>>>0}},{key:"__setDigit",value:function(e,t){this[e]=0|t}},{key:"__setDigitGrow",value:function(e,t){this[e]=0|t}},{key:"__halfDigitLength",value:function(){var e=this.length;return 32767>=this.__unsignedDigit(e-1)?2*e-1:2*e}},{key:"__halfDigit",value:function(e){return 32767&this[e>>>1]>>>15*(1&e)}},{key:"__setHalfDigit",value:function(e,t){var n=e>>>1,i=this.__digit(n),r=1&e?32767&i|t<<15:1073709056&i|32767&t;this.__setDigit(n,r)}}],[{key:"BigInt",value:function(e){var t=Number.isFinite;if("number"==typeof e){if(0===e)return o.__zero();if(o.__isOneDigitInt(e))return 0>e?o.__oneDigit(-e,!0):o.__oneDigit(e,!1);if(!t(e)||s(e)!==e)throw new RangeError("The number "+e+" cannot be converted to BigInt because it is not an integer");return o.__fromDouble(e)}if("string"==typeof e){var i=o.__fromString(e);if(null===i)throw new SyntaxError("Cannot convert "+e+" to a BigInt");return i}if("boolean"==typeof e)return!0===e?o.__oneDigit(1,!1):o.__zero();if("object"===n(e)){if(e.constructor===o)return e;var r=o.__toPrimitive(e);return o.BigInt(r)}throw new TypeError("Cannot convert "+e+" to a BigInt")}},{key:"toNumber",value:function(e){var t=e.length;if(0===t)return 0;if(1===t){var n=e.__unsignedDigit(0);return e.sign?-n:n}var i=e.__digit(t-1),r=o.__clz30(i),a=30*t-r;if(1024>>=12;var d=c-12,p=12<=c?0:l<<20+c,f=20+c;for(0>>30-d,p=l<>>30-f,f-=30;var m=o.__decideRounding(e,f,h,l);if((1===m||0===m&&1==(1&p))&&0==(p=p+1>>>0)&&++u>>>20!=0&&(u=0,1023<++s))return e.sign?-1/0:1/0;var g=e.sign?-2147483648:0;return s=s+1023<<20,o.__kBitConversionInts[1]=g|s|u,o.__kBitConversionInts[0]=p,o.__kBitConversionDouble[0]}},{key:"unaryMinus",value:function(e){if(0===e.length)return e;var t=e.__copy();return t.sign=!e.sign,t}},{key:"bitwiseNot",value:function(e){return e.sign?o.__absoluteSubOne(e).__trim():o.__absoluteAddOne(e,!0)}},{key:"exponentiate",value:function(e,t){if(t.sign)throw new RangeError("Exponent must be positive");if(0===t.length)return o.__oneDigit(1,!1);if(0===e.length)return e;if(1===e.length&&1===e.__digit(0))return!e.sign||1&t.__digit(0)?e:o.unaryMinus(e);if(1=o.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===e.length&&2===e.__digit(0)){var i=1+(0|n/30),r=new o(i,e.sign&&0!=(1&n));r.__initializeDigits();var a=1<>=1;0!==n;n>>=1)l=o.multiply(l,l),1&n&&(s=null===s?l:o.multiply(s,l));return s}},{key:"multiply",value:function(e,t){if(0===e.length)return e;if(0===t.length)return t;var n=e.length+t.length;30<=e.__clzmsd()+t.__clzmsd()&&n--;var i=new o(n,e.sign!==t.sign);i.__initializeDigits();for(var r=0;ro.__absoluteCompare(e,t))return o.__zero();var n,i=e.sign!==t.sign,r=t.__unsignedDigit(0);if(1===t.length&&32767>=r){if(1===r)return i===e.sign?e:o.unaryMinus(e);n=o.__absoluteDivSmall(e,r,null)}else n=o.__absoluteDivLarge(e,t,!0,!1);return n.sign=i,n.__trim()}},{key:"remainder",value:function(e,t){if(0===t.length)throw new RangeError("Division by zero");if(0>o.__absoluteCompare(e,t))return e;var n=t.__unsignedDigit(0);if(1===t.length&&32767>=n){if(1===n)return o.__zero();var i=o.__absoluteModSmall(e,n);return 0===i?o.__zero():o.__oneDigit(i,e.sign)}var r=o.__absoluteDivLarge(e,t,!1,!0);return r.sign=e.sign,r.__trim()}},{key:"add",value:function(e,t){var n=e.sign;return n===t.sign?o.__absoluteAdd(e,t,n):0<=o.__absoluteCompare(e,t)?o.__absoluteSub(e,t,n):o.__absoluteSub(t,e,!n)}},{key:"subtract",value:function(e,t){var n=e.sign;return n===t.sign?0<=o.__absoluteCompare(e,t)?o.__absoluteSub(e,t,n):o.__absoluteSub(t,e,!n):o.__absoluteAdd(e,t,n)}},{key:"leftShift",value:function(e,t){return 0===t.length||0===e.length?e:t.sign?o.__rightShiftByAbsolute(e,t):o.__leftShiftByAbsolute(e,t)}},{key:"signedRightShift",value:function(e,t){return 0===t.length||0===e.length?e:t.sign?o.__leftShiftByAbsolute(e,t):o.__rightShiftByAbsolute(e,t)}},{key:"unsignedRightShift",value:function(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}},{key:"lessThan",value:function(e,t){return 0>o.__compareToBigInt(e,t)}},{key:"lessThanOrEqual",value:function(e,t){return 0>=o.__compareToBigInt(e,t)}},{key:"greaterThan",value:function(e,t){return 0(e=s(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return o.__zero();if(e>=o.__kMaxLengthBits)return t;var n=0|(e+29)/30;if(t.length(e=s(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return o.__zero();if(t.sign){if(e>o.__kMaxLengthBits)throw new RangeError("BigInt too big");return o.__truncateAndSubFromPowerOfTwo(e,t,!1)}if(e>=o.__kMaxLengthBits)return t;var n=0|(e+29)/30;if(t.length>>i))return t}return o.__truncateToNBits(e,t)}},{key:"ADD",value:function(e,t){if(e=o.__toPrimitive(e),t=o.__toPrimitive(t),"string"==typeof e)return"string"!=typeof t&&(t=t.toString()),e+t;if("string"==typeof t)return e.toString()+t;if(e=o.__toNumeric(e),t=o.__toNumeric(t),o.__isBigInt(e)&&o.__isBigInt(t))return o.add(e,t);if("number"==typeof e&&"number"==typeof t)return e+t;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}},{key:"LT",value:function(e,t){return o.__compare(e,t,0)}},{key:"LE",value:function(e,t){return o.__compare(e,t,1)}},{key:"GT",value:function(e,t){return o.__compare(e,t,2)}},{key:"GE",value:function(e,t){return o.__compare(e,t,3)}},{key:"EQ",value:function(e,t){for(;;){if(o.__isBigInt(e))return o.__isBigInt(t)?o.equal(e,t):o.EQ(t,e);if("number"==typeof e){if(o.__isBigInt(t))return o.__equalToNumber(t,e);if("object"!==n(t))return e==t;t=o.__toPrimitive(t)}else if("string"==typeof e){if(o.__isBigInt(t))return null!==(e=o.__fromString(e))&&o.equal(e,t);if("object"!==n(t))return e==t;t=o.__toPrimitive(t)}else if("boolean"==typeof e){if(o.__isBigInt(t))return o.__equalToNumber(t,+e);if("object"!==n(t))return e==t;t=o.__toPrimitive(t)}else if("symbol"===n(e)){if(o.__isBigInt(t))return!1;if("object"!==n(t))return e==t;t=o.__toPrimitive(t)}else{if("object"!==n(e))return e==t;if("object"===n(t)&&t.constructor!==o)return e==t;e=o.__toPrimitive(e)}}}},{key:"NE",value:function(e,t){return!o.EQ(e,t)}},{key:"DataViewGetBigInt64",value:function(e,t){var n=2>>30),h.__setDigit(2,s>>>28),h.__trim()}},{key:"DataViewSetBigInt64",value:function(e,t,n){var i=3>>2,2t)r=-t-1;else{if(0===n)return-1;n--,i=e.__digit(n),r=29}var a=1<>>20)-1023,i=1+(0|n/30),r=new o(i,0>e),a=1048575&o.__kBitConversionInts[1]|1048576,s=o.__kBitConversionInts[0],l=n%30,h=0;if(l<20){var c=20-l;h=c+32,t=a>>>c,a=a<<32-c|s>>>c,s<<=32-c}else if(20===l)h=32,t=a,a=s,s=0;else{var u=l-20;h=32-u,t=a<>>32-u,a=s<>>2,a=a<<30|s>>>2,s<<=30):t=0,r.__setDigit(d,t);return r.__trim()}},{key:"__isWhitespace",value:function(e){return 13>=e&&9<=e||(159>=e?32==e:131071>=e?160==e||5760==e:196607>=e?10>=(e&=131071)||40==e||41==e||47==e||95==e||4096==e:65279==e)}},{key:"__fromString",value:function(e){var t=11073741824/l)return null;var c=new o(0|(29+(l*s+h>>>o.__kBitsPerCharTableShift))/30,!1),u=10>t?t:10,d=10>>0>>0>>o.__kBitsPerCharTableShift)/30;c.__inplaceMultiplyAdd(v,g,x)}while(!p)}else{l>>=o.__kBitsPerCharTableShift;var b=[],_=[],w=!1;do{for(var S,M=0,T=0;;){if(S=void 0,a-48>>>0>>0>>l-(a-=30))}if(0!==r){if(i>=e.length)throw new Error("implementation bug");e.__setDigit(i++,r)}for(;i>>1)+(85&i))>>>2)+(51&i))>>>4)+(15&i),a=t-1,s=e.__digit(n-1),l=0|(30*n-o.__clz30(s)+r-1)/r;if(e.sign&&l++,268435456>>g,d=30-g;d>=r;)h[c--]=o.__kConversionChars[u&a],u>>>=r,d-=r}var v=(u|s<>>r-d;0!==u;)h[c--]=o.__kConversionChars[u&a],u>>>=r;if(e.sign&&(h[c--]="-"),-1!==c)throw new Error("implementation bug");return h.join("")}},{key:"__toStringGeneric",value:function(e,t,n){var i=e.length;if(0===i)return"";if(1===i){var r=e.__unsignedDigit(0).toString(t);return!1===n&&e.sign&&(r="-"+r),r}var a,s,l=30*i-o.__clz30(e.__digit(i-1)),h=o.__kMaxBitsPerChar[t]-1,c=l*o.__kBitsPerCharTableMultiplier,u=1+(c=0|(c+=h-1)/h)>>1,d=o.exponentiate(o.__oneDigit(t,!1),o.__oneDigit(u,!1)),p=d.__unsignedDigit(0);if(1===d.length&&32767>=p){(a=new o(e.length,!1)).__initializeDigits();for(var f,m=0,g=2*e.length-1;0<=g;g--)f=m<<15|e.__halfDigit(g),a.__setHalfDigit(g,0|f/p),m=0|f%p;s=m.toString(t)}else{var v=o.__absoluteDivLarge(e,d,!0,!0);a=v.quotient;var y=v.remainder.__trim();s=o.__toStringGeneric(y,t,!0)}a.__trim();for(var x=o.__toStringGeneric(a,t,!0);s.lengthi?o.__absoluteLess(n):0}},{key:"__compareToNumber",value:function(e,n){if(o.__isOneDigitInt(n)){var i=e.sign,r=0>n;if(i!==r)return o.__unequalSign(i);if(0===e.length){if(r)throw new Error("implementation bug");return 0===n?0:-1}if(1a?o.__absoluteGreater(i):st)return o.__unequalSign(n);if(0===t)throw new Error("implementation bug: should be handled elsewhere");if(0===e.length)return-1;o.__kBitConversionDouble[0]=t;var i=2047&o.__kBitConversionInts[1]>>>20;if(2047==i)throw new Error("implementation bug: handled elsewhere");var r=i-1023;if(0>r)return o.__absoluteGreater(n);var a=e.length,s=e.__digit(a-1),l=o.__clz30(s),h=30*a-l,c=r+1;if(hc)return o.__absoluteGreater(n);var u=1048576|1048575&o.__kBitConversionInts[1],d=o.__kBitConversionInts[0],p=29-l;if(p!==(0|(h-1)%30))throw new Error("implementation bug");var f,m=0;if(p<20){var g=20-p;m=g+32,f=u>>>g,u=u<<32-g|d>>>g,d<<=32-g}else if(20===p)m=32,f=u,u=d,d=0;else{var v=p-20;m=32-v,f=u<>>32-v,u=d<>>=0)>(f>>>=0))return o.__absoluteGreater(n);if(s>>2,u=u<<30|d>>>2,d<<=30):f=0;var x=e.__unsignedDigit(y);if(x>f)return o.__absoluteGreater(n);if(xn&&e.__unsignedDigit(0)===t(n):0===o.__compareToDouble(e,n)}},{key:"__comparisonResultToBool",value:function(e,t){return 0===t?0>e:1===t?0>=e:2===t?0t;case 3:return e>=t}if(o.__isBigInt(e)&&"string"==typeof t)return null!==(t=o.__fromString(t))&&o.__comparisonResultToBool(o.__compareToBigInt(e,t),n);if("string"==typeof e&&o.__isBigInt(t))return null!==(e=o.__fromString(e))&&o.__comparisonResultToBool(o.__compareToBigInt(e,t),n);if(e=o.__toNumeric(e),t=o.__toNumeric(t),o.__isBigInt(e)){if(o.__isBigInt(t))return o.__comparisonResultToBool(o.__compareToBigInt(e,t),n);if("number"!=typeof t)throw new Error("implementation bug");return o.__comparisonResultToBool(o.__compareToNumber(e,t),n)}if("number"!=typeof e)throw new Error("implementation bug");if(o.__isBigInt(t))return o.__comparisonResultToBool(o.__compareToNumber(t,e),2^n);if("number"!=typeof t)throw new Error("implementation bug");return 0===n?et:3===n?e>=t:void 0}},{key:"__absoluteAdd",value:function(e,t,n){if(e.length>>30,a.__setDigit(l,1073741823&r);for(;l>>30,a.__setDigit(l,1073741823&h)}return l>>30,r.__setDigit(s,1073741823&i);for(;s>>30,r.__setDigit(s,1073741823&l)}return r.__trim()}},{key:"__absoluteAddOne",value:function(e,t){var n=2>>30,n.__setDigit(s,1073741823&r);return 0!==a&&n.__setDigitGrow(i,1),n}},{key:"__absoluteSubOne",value:function(e,t){for(var n,i=e.length,r=new o(t=t||i,!1),a=1,s=0;s>>30,r.__setDigit(s,1073741823&n);if(0!==a)throw new Error("implementation bug");for(var l=i;li?0:e.__unsignedDigit(i)>t.__unsignedDigit(i)?1:-1}},{key:"__multiplyAccumulate",value:function(e,t,n,i){if(0!==t){for(var r=32767&t,a=t>>>15,s=0,l=0,h=0;h>>15,f=o.__imul(d,r),m=o.__imul(d,a),g=o.__imul(p,r);s=(c+=l+f+s)>>>30,c&=1073741823,s+=(c+=((32767&m)<<15)+((32767&g)<<15))>>>30,l=o.__imul(p,a)+(m>>>15)+(g>>>15),n.__setDigit(i,1073741823&c)}for(;0!==s||0!==l;i++){var v=n.__digit(i);v+=s+l,l=0,s=v>>>30,n.__setDigit(i,1073741823&v)}}}},{key:"__internalMultiplyAdd",value:function(e,t,n,i,r){for(var a=n,s=0,l=0;l>>15,t),d=c+((32767&u)<<15)+s+a;a=d>>>30,s=u>>>15,r.__setDigit(l,1073741823&d)}if(r.length>i)for(r.__setDigit(i++,a+s);i>>0,s=0|a/t,l=0|(a=((i=0|a%t)<<15|e.__halfDigit(r-1))>>>0)/t;i=0|a%t,n.__setDigit(r>>>1,s<<15|l)}return n}},{key:"__absoluteModSmall",value:function(e,t){for(var n=0,i=2*e.length-1;0<=i;i--)n=0|((n<<15|e.__halfDigit(i))>>>0)%t;return n}},{key:"__absoluteDivLarge",value:function(e,t,n,i){var r=t.__halfDigitLength(),a=t.length,s=e.__halfDigitLength()-r,l=null;n&&(l=new o(s+2>>>1,!1)).__initializeDigits();var h=new o(r+2>>>1,!1);h.__initializeDigits();var c=o.__clz15(t.__halfDigit(r-1));0>>0;m=0|v/d;for(var y=0|v%d,x=t.__halfDigit(r-2),b=u.__halfDigit(f+r-2);o.__imul(m,x)>>>0>(y<<16|b)>>>0&&(m--,!(32767<(y+=d))););}o.__internalMultiplyAdd(t,m,0,a,h);var _=u.__inplaceSub(h,f,r+1);0!==_&&(_=u.__inplaceAdd(t,f,r),u.__setHalfDigit(f+r,32767&u.__halfDigit(f+r)+_),m--),n&&(1&f?p=m<<15:l.__setDigit(f>>>1,p|m))}if(i)return u.__inplaceRightShift(c),n?{quotient:l,remainder:u}:u;if(n)return l;throw new Error("unreachable")}},{key:"__clz15",value:function(e){return o.__clz30(e)-15}},{key:"__specialLeftShift",value:function(e,t,n){var i=e.length,r=new o(i+n,!1);if(0===t){for(var a=0;a>>30-t;return 0n)throw new RangeError("BigInt too big");var i=0|n/30,r=n%30,a=e.length,s=0!==r&&e.__digit(a-1)>>>30-r!=0,l=a+i+(s?1:0),h=new o(l,e.sign);if(0===r){for(var c=0;c>>30-r;if(s)h.__setDigit(a+i,u);else if(0!==u)throw new Error("implementation bug")}return h.__trim()}},{key:"__rightShiftByAbsolute",value:function(e,t){var n=e.length,i=e.sign,r=o.__toShiftAmount(t);if(0>r)return o.__rightShiftByMaximum(i);var a=0|r/30,s=r%30,l=n-a;if(0>=l)return o.__rightShiftByMaximum(i);var h=!1;if(i)if(e.__digit(a)&(1<>>s,m=n-a-1,g=0;g>>s;u.__setDigit(m,f)}return h&&(u=o.__absoluteAddOne(u,!0,u)),u.__trim()}},{key:"__rightShiftByMaximum",value:function(e){return e?o.__oneDigit(1,!0):o.__zero()}},{key:"__toShiftAmount",value:function(e){if(1o.__kMaxLengthBits?-1:t}},{key:"__toPrimitive",value:function(e){var t=1>>l}return i.__setDigit(r,s),i.__trim()}},{key:"__truncateAndSubFromPowerOfTwo",value:function(e,t,n){for(var i,r=Math.min,a=0|(e+29)/30,s=new o(a,n),l=0,h=a-1,c=0,u=r(h,t.length);l>>30,s.__setDigit(l,1073741823&i);for(;l>>m)-c,d&=g-1}return s.__setDigit(h,d),s.__trim()}},{key:"__digitPow",value:function(e,t){for(var n=1;0>>=1,e*=e;return n}},{key:"__isOneDigitInt",value:function(e){return(1073741823&e)===e}}]),o}(l(Array));return f.__kMaxLength=33554432,f.__kMaxLengthBits=f.__kMaxLength<<5,f.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],f.__kBitsPerCharTableShift=5,f.__kBitsPerCharTableMultiplier=1<>>0)/t)},f.__imul=e||function(e,t){return 0|e*t},f},"object"==typeof e&&void 0!==t?t.exports=i():"function"==typeof define&&define.amd?define(i):(n=n||self).JSBI=i()})),Fl=J(((e,t)=>{(function(){var n,i="Expected a function",r="__lodash_hash_undefined__",a="__lodash_placeholder__",s=32,o=128,l=1/0,h=9007199254740991,c=NaN,u=4294967295,d=[["ary",o],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",s],["partialRight",64],["rearg",256]],p="[object Arguments]",f="[object Array]",m="[object Boolean]",g="[object Date]",v="[object Error]",y="[object Function]",x="[object GeneratorFunction]",b="[object Map]",_="[object Number]",w="[object Object]",S="[object Promise]",M="[object RegExp]",T="[object Set]",E="[object String]",A="[object Symbol]",C="[object WeakMap]",P="[object ArrayBuffer]",R="[object DataView]",O="[object Float32Array]",L="[object Float64Array]",I="[object Int8Array]",D="[object Int16Array]",k="[object Int32Array]",N="[object Uint8Array]",F="[object Uint8ClampedArray]",U="[object Uint16Array]",B="[object Uint32Array]",z=/\b__p \+= '';/g,H=/\b(__p \+=) '' \+/g,V=/(__e\(.*?\)|\b__t\)) \+\n'';/g,j=/&(?:amp|lt|gt|quot|#39);/g,G=/[&<>"']/g,W=RegExp(j.source),X=RegExp(G.source),Y=/<%-([\s\S]+?)%>/g,q=/<%([\s\S]+?)%>/g,J=/<%=([\s\S]+?)%>/g,Z=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,K=/^\w*$/,$=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Q=/[\\^$.*+?()[\]{}|]/g,ee=RegExp(Q.source),te=/^\s+/,ne=/\s/,ie=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,re=/\{\n\/\* \[wrapped with (.+)\] \*/,ae=/,? & /,se=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,oe=/[()=,{}\[\]\/\s]/,le=/\\(\\)?/g,he=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ce=/\w*$/,ue=/^[-+]0x[0-9a-f]+$/i,de=/^0b[01]+$/i,pe=/^\[object .+?Constructor\]$/,fe=/^0o[0-7]+$/i,me=/^(?:0|[1-9]\d*)$/,ge=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ve=/($^)/,ye=/['\n\r\u2028\u2029\\]/g,xe="\\ud800-\\udfff",be="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",_e="\\u2700-\\u27bf",we="a-z\\xdf-\\xf6\\xf8-\\xff",Se="A-Z\\xc0-\\xd6\\xd8-\\xde",Me="\\ufe0e\\ufe0f",Te="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ee="["+xe+"]",Ae="["+Te+"]",Ce="["+be+"]",Pe="\\d+",Re="["+_e+"]",Oe="["+we+"]",Le="[^"+xe+Te+Pe+_e+we+Se+"]",Ie="\\ud83c[\\udffb-\\udfff]",De="[^"+xe+"]",ke="(?:\\ud83c[\\udde6-\\uddff]){2}",Ne="[\\ud800-\\udbff][\\udc00-\\udfff]",Fe="["+Se+"]",Ue="\\u200d",Be="(?:"+Oe+"|"+Le+")",ze="(?:"+Fe+"|"+Le+")",He="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Ve="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",je="(?:"+Ce+"|"+Ie+")?",Ge="["+Me+"]?",We=Ge+je+"(?:"+Ue+"(?:"+[De,ke,Ne].join("|")+")"+Ge+je+")*",Xe="(?:"+[Re,ke,Ne].join("|")+")"+We,Ye="(?:"+[De+Ce+"?",Ce,ke,Ne,Ee].join("|")+")",qe=RegExp("['\u2019]","g"),Je=RegExp(Ce,"g"),Ze=RegExp(Ie+"(?="+Ie+")|"+Ye+We,"g"),Ke=RegExp([Fe+"?"+Oe+"+"+He+"(?="+[Ae,Fe,"$"].join("|")+")",ze+"+"+Ve+"(?="+[Ae,Fe+Be,"$"].join("|")+")",Fe+"?"+Be+"+"+He,Fe+"+"+Ve,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Pe,Xe].join("|"),"g"),$e=RegExp("["+Ue+xe+be+Me+"]"),Qe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,et=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],tt=-1,nt={};nt[O]=nt[L]=nt[I]=nt[D]=nt[k]=nt[N]=nt[F]=nt[U]=nt[B]=!0,nt[p]=nt[f]=nt[P]=nt[m]=nt[R]=nt[g]=nt[v]=nt[y]=nt[b]=nt[_]=nt[w]=nt[M]=nt[T]=nt[E]=nt[C]=!1;var it={};it[p]=it[f]=it[P]=it[R]=it[m]=it[g]=it[O]=it[L]=it[I]=it[D]=it[k]=it[b]=it[_]=it[w]=it[M]=it[T]=it[E]=it[A]=it[N]=it[F]=it[U]=it[B]=!0,it[v]=it[y]=it[C]=!1;var rt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},at=parseFloat,st=parseInt,ot="object"==typeof global&&global&&global.Object===Object&&global,lt="object"==typeof self&&self&&self.Object===Object&&self,ht=ot||lt||Function("return this")(),ct="object"==typeof e&&e&&!e.nodeType&&e,ut=ct&&"object"==typeof t&&t&&!t.nodeType&&t,dt=ut&&ut.exports===ct,pt=dt&&ot.process,ft=function(){try{return ut&&ut.require&&ut.require("util").types||pt&&pt.binding&&pt.binding("util")}catch(e){}}(),mt=ft&&ft.isArrayBuffer,gt=ft&&ft.isDate,vt=ft&&ft.isMap,yt=ft&&ft.isRegExp,xt=ft&&ft.isSet,bt=ft&&ft.isTypedArray;function _t(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function wt(e,t,n,i){for(var r=-1,a=null==e?0:e.length;++r-1}function Ct(e,t,n){for(var i=-1,r=null==e?0:e.length;++i-1;);return n}function Kt(e,t){for(var n=e.length;n--&&Ft(t,e[n],0)>-1;);return n}var $t=Vt({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),Qt=Vt({"&":"&","<":"<",">":">",'"':""","'":"'"});function en(e){return"\\"+rt[e]}function tn(e){return $e.test(e)}function nn(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function rn(e,t){return function(n){return e(t(n))}}function an(e,t){for(var n=-1,i=e.length,r=0,s=[];++n",""":'"',"'":"'"}),un=function e(t){var ne,xe=(t=null==t?ht:un.defaults(ht.Object(),t,un.pick(ht,et))).Array,be=t.Date,_e=t.Error,we=t.Function,Se=t.Math,Me=t.Object,Te=t.RegExp,Ee=t.String,Ae=t.TypeError,Ce=xe.prototype,Pe=we.prototype,Re=Me.prototype,Oe=t["__core-js_shared__"],Le=Pe.toString,Ie=Re.hasOwnProperty,De=0,ke=(ne=/[^.]+$/.exec(Oe&&Oe.keys&&Oe.keys.IE_PROTO||""))?"Symbol(src)_1."+ne:"",Ne=Re.toString,Fe=Le.call(Me),Ue=ht._,Be=Te("^"+Le.call(Ie).replace(Q,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ze=dt?t.Buffer:n,He=t.Symbol,Ve=t.Uint8Array,je=ze?ze.allocUnsafe:n,Ge=rn(Me.getPrototypeOf,Me),We=Me.create,Xe=Re.propertyIsEnumerable,Ye=Ce.splice,Ze=He?He.isConcatSpreadable:n,$e=He?He.iterator:n,rt=He?He.toStringTag:n,ot=function(){try{var e=oa(Me,"defineProperty");return e({},"",{}),e}catch(e){}}(),lt=t.clearTimeout!==ht.clearTimeout&&t.clearTimeout,ct=be&&be.now!==ht.Date.now&&be.now,ut=t.setTimeout!==ht.setTimeout&&t.setTimeout,pt=Se.ceil,ft=Se.floor,Dt=Me.getOwnPropertySymbols,Vt=ze?ze.isBuffer:n,dn=t.isFinite,pn=Ce.join,fn=rn(Me.keys,Me),mn=Se.max,gn=Se.min,vn=be.now,yn=t.parseInt,xn=Se.random,bn=Ce.reverse,_n=oa(t,"DataView"),wn=oa(t,"Map"),Sn=oa(t,"Promise"),Mn=oa(t,"Set"),Tn=oa(t,"WeakMap"),En=oa(Me,"create"),An=Tn&&new Tn,Cn={},Pn=Ia(_n),Rn=Ia(wn),On=Ia(Sn),Ln=Ia(Mn),In=Ia(Tn),Dn=He?He.prototype:n,kn=Dn?Dn.valueOf:n,Nn=Dn?Dn.toString:n;function Fn(e){if(Zs(e)&&!Bs(e)&&!(e instanceof Hn)){if(e instanceof zn)return e;if(Ie.call(e,"__wrapped__"))return Da(e)}return new zn(e)}var Un=function(){function e(){}return function(t){if(!Js(t))return{};if(We)return We(t);e.prototype=t;var i=new e;return e.prototype=n,i}}();function Bn(){}function zn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=n}function Hn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=u,this.__views__=[]}function Vn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function ai(e,t,i,r,a,s){var o,l=1&t,h=2&t,c=4&t;if(i&&(o=a?i(e,r,a,s):i(e)),o!==n)return o;if(!Js(e))return e;var u=Bs(e);if(u){if(o=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Ie.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!l)return Tr(e,o)}else{var d=ca(e),f=d==y||d==x;if(js(e))return xr(e,l);if(d==w||d==p||f&&!a){if(o=h||f?{}:da(e),!l)return h?function(e,t){return Er(e,ha(e),t)}(e,function(e,t){return e&&Er(t,Co(t),e)}(o,e)):function(e,t){return Er(e,la(e),t)}(e,ti(o,e))}else{if(!it[d])return a?e:{};o=function(e,t,n){var i=e.constructor;switch(t){case P:return br(e);case m:case g:return new i(+e);case R:return function(e,t){var n=t?br(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case O:case L:case I:case D:case k:case N:case F:case U:case B:return _r(e,n);case b:return new i;case _:case E:return new i(e);case M:return function(e){var t=new e.constructor(e.source,ce.exec(e));return t.lastIndex=e.lastIndex,t}(e);case T:return new i;case A:return function(e){return kn?Me(kn.call(e)):{}}(e)}}(e,d,l)}}s||(s=new Xn);var v=s.get(e);if(v)return v;s.set(e,o),to(e)?e.forEach((function(n){o.add(ai(n,t,i,n,e,s))})):Ks(e)&&e.forEach((function(n,r){o.set(r,ai(n,t,i,r,e,s))}));var S=u?n:(c?h?ea:Qr:h?Co:Ao)(e);return St(S||e,(function(n,r){S&&(n=e[r=n]),$n(o,r,ai(n,t,i,r,e,s))})),o}function si(e,t,i){var r=i.length;if(null==e)return!r;for(e=Me(e);r--;){var a=i[r],s=t[a],o=e[a];if(o===n&&!(a in e)||!s(o))return!1}return!0}function oi(e,t,r){if("function"!=typeof e)throw new Ae(i);return Ea((function(){e.apply(n,r)}),t)}function li(e,t,n,i){var r=-1,a=At,s=!0,o=e.length,l=[],h=t.length;if(!o)return l;n&&(t=Pt(t,Yt(n))),i?(a=Ct,s=!1):t.length>=200&&(a=Jt,s=!1,t=new Wn(t));e:for(;++r-1},jn.prototype.set=function(e,t){var n=this.__data__,i=Qn(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this},Gn.prototype.clear=function(){this.size=0,this.__data__={hash:new Vn,map:new(wn||jn),string:new Vn}},Gn.prototype.delete=function(e){var t=aa(this,e).delete(e);return this.size-=t?1:0,t},Gn.prototype.get=function(e){return aa(this,e).get(e)},Gn.prototype.has=function(e){return aa(this,e).has(e)},Gn.prototype.set=function(e,t){var n=aa(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},Wn.prototype.add=Wn.prototype.push=function(e){return this.__data__.set(e,r),this},Wn.prototype.has=function(e){return this.__data__.has(e)},Xn.prototype.clear=function(){this.__data__=new jn,this.size=0},Xn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Xn.prototype.get=function(e){return this.__data__.get(e)},Xn.prototype.has=function(e){return this.__data__.has(e)},Xn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof jn){var i=n.__data__;if(!wn||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new Gn(i)}return n.set(e,t),this.size=n.size,this};var hi=Pr(vi),ci=Pr(yi,!0);function ui(e,t){var n=!0;return hi(e,(function(e,i,r){return n=!!t(e,i,r)})),n}function di(e,t,i){for(var r=-1,a=e.length;++r0&&n(o)?t>1?fi(o,t-1,n,i,r):Rt(r,o):i||(r[r.length]=o)}return r}var mi=Rr(),gi=Rr(!0);function vi(e,t){return e&&mi(e,t,Ao)}function yi(e,t){return e&&gi(e,t,Ao)}function xi(e,t){return Et(t,(function(t){return Xs(e[t])}))}function bi(e,t){for(var i=0,r=(t=mr(t,e)).length;null!=e&&it}function Mi(e,t){return null!=e&&Ie.call(e,t)}function Ti(e,t){return null!=e&&t in Me(e)}function Ei(e,t,i){for(var r=i?Ct:At,a=e[0].length,s=e.length,o=s,l=xe(s),h=1/0,c=[];o--;){var u=e[o];o&&t&&(u=Pt(u,Yt(t))),h=gn(u.length,h),l[o]=!i&&(t||a>=120&&u.length>=120)?new Wn(o&&u):n}u=e[0];var d=-1,p=l[0];e:for(;++d=o?l:l*("desc"==n[i]?-1:1)}return e.index-t.index}(e,t,n)}))}function Hi(e,t,n){for(var i=-1,r=t.length,a={};++i-1;)o!==e&&Ye.call(o,l,1),Ye.call(e,l,1);return e}function ji(e,t){for(var n=e?t.length:0,i=n-1;n--;){var r=t[n];if(n==i||r!==a){var a=r;fa(r)?Ye.call(e,r,1):or(e,r)}}return e}function Gi(e,t){return e+ft(xn()*(t-e+1))}function Wi(e,t){var n="";if(!e||t<1||t>h)return n;do{t%2&&(n+=e),(t=ft(t/2))&&(e+=e)}while(t);return n}function Xi(e,t){return Aa(wa(e,t,Qo),e+"")}function Yi(e){return qn(No(e))}function qi(e,t){var n=No(e);return Ra(n,ri(t,0,n.length))}function Ji(e,t,i,r){if(!Js(e))return e;for(var a=-1,s=(t=mr(t,e)).length,o=s-1,l=e;null!=l&&++ar?0:r+t),(n=n>r?r:n)<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var a=xe(r);++i>>1,s=e[a];null!==s&&!io(s)&&(n?s<=t:s=200){var h=t?null:Wr(e);if(h)return sn(h);s=!1,r=Jt,l=new Wn}else l=t?[]:o;e:for(;++i=r?e:Qi(e,t,i)}var yr=lt||function(e){return ht.clearTimeout(e)};function xr(e,t){if(t)return e.slice();var n=e.length,i=je?je(n):new e.constructor(n);return e.copy(i),i}function br(e){var t=new e.constructor(e.byteLength);return new Ve(t).set(new Ve(e)),t}function _r(e,t){var n=t?br(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function wr(e,t){if(e!==t){var i=e!==n,r=null===e,a=e==e,s=io(e),o=t!==n,l=null===t,h=t==t,c=io(t);if(!l&&!c&&!s&&e>t||s&&o&&h&&!l&&!c||r&&o&&h||!i&&h||!a)return 1;if(!r&&!s&&!c&&e1?i[a-1]:n,o=a>2?i[2]:n;for(s=e.length>3&&"function"==typeof s?(a--,s):n,o&&ma(i[0],i[1],o)&&(s=a<3?n:s,a=1),t=Me(t);++r-1?a[s?t[o]:o]:n}}function kr(e){return $r((function(t){var r=t.length,a=r,s=zn.prototype.thru;for(e&&t.reverse();a--;){var o=t[a];if("function"!=typeof o)throw new Ae(i);if(s&&!l&&"wrapper"==na(o))var l=new zn([],!0)}for(a=l?a:r;++a1&&x.reverse(),d&&cl))return!1;var c=s.get(e),u=s.get(t);if(c&&u)return c==t&&u==e;var d=-1,p=!0,f=2&i?new Wn:n;for(s.set(e,t),s.set(t,e);++d-1&&e%1==0&&e1?"& ":"")+t[i],t=t.join(n>2?", ":" "),e.replace(ie,"{\n/* [wrapped with "+t+"] */\n")}(i,function(e,t){return St(d,(function(n){var i="_."+n[0];t&n[1]&&!At(e,i)&&e.push(i)})),e.sort()}(function(e){var t=e.match(re);return t?t[1].split(ae):[]}(i),n)))}function Pa(e){var t=0,i=0;return function(){var r=vn(),a=16-(r-i);if(i=r,a>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(n,arguments)}}function Ra(e,t){var i=-1,r=e.length,a=r-1;for(t=t===n?r:t;++i1?e[t-1]:n;return i="function"==typeof i?(e.pop(),i):n,es(e,i)}));function os(e){var t=Fn(e);return t.__chain__=!0,t}function ls(e,t){return t(e)}var hs=$r((function(e){var t=e.length,i=t?e[0]:0,r=this.__wrapped__,a=function(t){return ii(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Hn&&fa(i)?((r=r.slice(i,+i+(t?1:0))).__actions__.push({func:ls,args:[a],thisArg:n}),new zn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(n),e}))):this.thru(a)})),cs=Ar((function(e,t,n){Ie.call(e,n)?++e[n]:ni(e,n,1)})),us=Dr(Ua),ds=Dr(Ba);function ps(e,t){return(Bs(e)?St:hi)(e,ra(t,3))}function fs(e,t){return(Bs(e)?Mt:ci)(e,ra(t,3))}var ms=Ar((function(e,t,n){Ie.call(e,n)?e[n].push(t):ni(e,n,[t])})),gs=Xi((function(e,t,n){var i=-1,r="function"==typeof t,a=Hs(e)?xe(e.length):[];return hi(e,(function(e){a[++i]=r?_t(t,e,n):Ai(e,t,n)})),a})),vs=Ar((function(e,t,n){ni(e,n,t)}));function ys(e,t){return(Bs(e)?Pt:ki)(e,ra(t,3))}var xs=Ar((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]})),bs=Xi((function(e,t){if(null==e)return[];var n=t.length;return n>1&&ma(e,t[0],t[1])?t=[]:n>2&&ma(t[0],t[1],t[2])&&(t=[t[0]]),zi(e,fi(t,1),[])})),_s=ct||function(){return ht.Date.now()};function ws(e,t,i){return t=i?n:t,t=e&&null==t?e.length:t,Yr(e,o,n,n,n,n,t)}function Ss(e,t){var r;if("function"!=typeof t)throw new Ae(i);return e=ho(e),function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=n),r}}var Ms=Xi((function(e,t,n){var i=1;if(n.length){var r=an(n,ia(Ms));i|=s}return Yr(e,i,t,n,r)})),Ts=Xi((function(e,t,n){var i=3;if(n.length){var r=an(n,ia(Ts));i|=s}return Yr(t,i,e,n,r)}));function Es(e,t,r){var a,s,o,l,h,c,u=0,d=!1,p=!1,f=!0;if("function"!=typeof e)throw new Ae(i);function m(t){var i=a,r=s;return a=s=n,u=t,l=e.apply(r,i)}function g(e){var i=e-c;return c===n||i>=t||i<0||p&&e-u>=o}function v(){var e=_s();if(g(e))return y(e);h=Ea(v,function(e){var n=t-(e-c);return p?gn(n,o-(e-u)):n}(e))}function y(e){return h=n,f&&a?m(e):(a=s=n,l)}function x(){var e=_s(),i=g(e);if(a=arguments,s=this,c=e,i){if(h===n)return function(e){return u=e,h=Ea(v,t),d?m(e):l}(c);if(p)return yr(h),h=Ea(v,t),m(c)}return h===n&&(h=Ea(v,t)),l}return t=uo(t)||0,Js(r)&&(d=!!r.leading,o=(p="maxWait"in r)?mn(uo(r.maxWait)||0,t):o,f="trailing"in r?!!r.trailing:f),x.cancel=function(){h!==n&&yr(h),u=0,a=c=s=h=n},x.flush=function(){return h===n?l:y(_s())},x}var As=Xi((function(e,t){return oi(e,1,t)})),Cs=Xi((function(e,t,n){return oi(e,uo(t)||0,n)}));function Ps(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Ae(i);var n=function(){var i=arguments,r=t?t.apply(this,i):i[0],a=n.cache;if(a.has(r))return a.get(r);var s=e.apply(this,i);return n.cache=a.set(r,s)||a,s};return n.cache=new(Ps.Cache||Gn),n}function Rs(e){if("function"!=typeof e)throw new Ae(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Ps.Cache=Gn;var Os=gr((function(e,t){var n=(t=1==t.length&&Bs(t[0])?Pt(t[0],Yt(ra())):Pt(fi(t,1),Yt(ra()))).length;return Xi((function(i){for(var r=-1,a=gn(i.length,n);++r=t})),Us=Ci(function(){return arguments}())?Ci:function(e){return Zs(e)&&Ie.call(e,"callee")&&!Xe.call(e,"callee")},Bs=xe.isArray,zs=mt?Yt(mt):function(e){return Zs(e)&&wi(e)==P};function Hs(e){return null!=e&&qs(e.length)&&!Xs(e)}function Vs(e){return Zs(e)&&Hs(e)}var js=Vt||dl,Gs=gt?Yt(gt):function(e){return Zs(e)&&wi(e)==g};function Ws(e){if(!Zs(e))return!1;var t=wi(e);return t==v||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Qs(e)}function Xs(e){if(!Js(e))return!1;var t=wi(e);return t==y||t==x||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Ys(e){return"number"==typeof e&&e==ho(e)}function qs(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=h}function Js(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Zs(e){return null!=e&&"object"==typeof e}var Ks=vt?Yt(vt):function(e){return Zs(e)&&ca(e)==b};function $s(e){return"number"==typeof e||Zs(e)&&wi(e)==_}function Qs(e){if(!Zs(e)||wi(e)!=w)return!1;var t=Ge(e);if(null===t)return!0;var n=Ie.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Le.call(n)==Fe}var eo=yt?Yt(yt):function(e){return Zs(e)&&wi(e)==M},to=xt?Yt(xt):function(e){return Zs(e)&&ca(e)==T};function no(e){return"string"==typeof e||!Bs(e)&&Zs(e)&&wi(e)==E}function io(e){return"symbol"==typeof e||Zs(e)&&wi(e)==A}var ro=bt?Yt(bt):function(e){return Zs(e)&&qs(e.length)&&!!nt[wi(e)]},ao=Vr(Di),so=Vr((function(e,t){return e<=t}));function oo(e){if(!e)return[];if(Hs(e))return no(e)?ln(e):Tr(e);if($e&&e[$e])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[$e]());var t=ca(e);return(t==b?nn:t==T?sn:No)(e)}function lo(e){return e?(e=uo(e))===l||e===-l?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function ho(e){var t=lo(e),n=t%1;return t==t?n?t-n:t:0}function co(e){return e?ri(ho(e),0,u):0}function uo(e){if("number"==typeof e)return e;if(io(e))return c;if(Js(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Js(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Xt(e);var n=de.test(e);return n||fe.test(e)?st(e.slice(2),n?2:8):ue.test(e)?c:+e}function po(e){return Er(e,Co(e))}function fo(e){return null==e?"":ar(e)}var mo=Cr((function(e,t){if(xa(t)||Hs(t))Er(t,Ao(t),e);else for(var n in t)Ie.call(t,n)&&$n(e,n,t[n])})),go=Cr((function(e,t){Er(t,Co(t),e)})),vo=Cr((function(e,t,n,i){Er(t,Co(t),e,i)})),yo=Cr((function(e,t,n,i){Er(t,Ao(t),e,i)})),xo=$r(ii),bo=Xi((function(e,t){e=Me(e);var i=-1,r=t.length,a=r>2?t[2]:n;for(a&&ma(t[0],t[1],a)&&(r=1);++i1),t})),Er(e,ea(e),n),i&&(n=ai(n,7,Zr));for(var r=t.length;r--;)or(n,t[r]);return n})),Lo=$r((function(e,t){return null==e?{}:function(e,t){return Hi(e,t,(function(t,n){return So(e,n)}))}(e,t)}));function Io(e,t){if(null==e)return{};var n=Pt(ea(e),(function(e){return[e]}));return t=ra(t),Hi(e,n,(function(e,n){return t(e,n[0])}))}var Do=Xr(Ao),ko=Xr(Co);function No(e){return null==e?[]:qt(e,Ao(e))}var Fo=Lr((function(e,t,n){return t=t.toLowerCase(),e+(n?Uo(t):t)}));function Uo(e){return Xo(fo(e).toLowerCase())}function Bo(e){return(e=fo(e))&&e.replace(ge,$t).replace(Je,"")}var zo=Lr((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Ho=Lr((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Vo=Or("toLowerCase"),jo=Lr((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()})),Go=Lr((function(e,t,n){return e+(n?" ":"")+Xo(t)})),Wo=Lr((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Xo=Or("toUpperCase");function Yo(e,t,i){return e=fo(e),(t=i?n:t)===n?function(e){return Qe.test(e)}(e)?function(e){return e.match(Ke)||[]}(e):function(e){return e.match(se)||[]}(e):e.match(t)||[]}var qo=Xi((function(e,t){try{return _t(e,n,t)}catch(e){return Ws(e)?e:new _e(e)}})),Jo=$r((function(e,t){return St(t,(function(t){t=La(t),ni(e,t,Ms(e[t],e))})),e}));function Zo(e){return function(){return e}}var Ko=kr(),$o=kr(!0);function Qo(e){return e}function el(e){return Li("function"==typeof e?e:ai(e,1))}var tl=Xi((function(e,t){return function(n){return Ai(n,e,t)}})),nl=Xi((function(e,t){return function(n){return Ai(e,n,t)}}));function il(e,t,n){var i=Ao(t),r=xi(t,i);null==n&&(!Js(t)||!r.length&&i.length)&&(n=t,t=e,e=this,r=xi(t,Ao(t)));var a=!(Js(n)&&"chain"in n&&!n.chain),s=Xs(e);return St(r,(function(n){var i=t[n];e[n]=i,s&&(e.prototype[n]=function(){var t=this.__chain__;if(a||t){var n=e(this.__wrapped__);return(n.__actions__=Tr(this.__actions__)).push({func:i,args:arguments,thisArg:e}),n.__chain__=t,n}return i.apply(e,Rt([this.value()],arguments))})})),e}function rl(){}var al=Br(Pt),sl=Br(Tt),ol=Br(It);function ll(e){return ga(e)?Ht(La(e)):function(e){return function(t){return bi(t,e)}}(e)}var hl=Hr(),cl=Hr(!0);function ul(){return[]}function dl(){return!1}var pl=Ur((function(e,t){return e+t}),0),fl=Gr("ceil"),ml=Ur((function(e,t){return e/t}),1),gl=Gr("floor"),vl=Ur((function(e,t){return e*t}),1),yl=Gr("round"),xl=Ur((function(e,t){return e-t}),0);return Fn.after=function(e,t){if("function"!=typeof t)throw new Ae(i);return e=ho(e),function(){if(--e<1)return t.apply(this,arguments)}},Fn.ary=ws,Fn.assign=mo,Fn.assignIn=go,Fn.assignInWith=vo,Fn.assignWith=yo,Fn.at=xo,Fn.before=Ss,Fn.bind=Ms,Fn.bindAll=Jo,Fn.bindKey=Ts,Fn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Bs(e)?e:[e]},Fn.chain=os,Fn.chunk=function(e,t,i){t=(i?ma(e,t,i):t===n)?1:mn(ho(t),0);var r=null==e?0:e.length;if(!r||t<1)return[];for(var a=0,s=0,o=xe(pt(r/t));aa?0:a+i),(r=r===n||r>a?a:ho(r))<0&&(r+=a),r=i>r?0:co(r);i>>0)?(e=fo(e))&&("string"==typeof t||null!=t&&!eo(t))&&!(t=ar(t))&&tn(e)?vr(ln(e),0,i):e.split(t,i):[]},Fn.spread=function(e,t){if("function"!=typeof e)throw new Ae(i);return t=null==t?0:mn(ho(t),0),Xi((function(n){var i=n[t],r=vr(n,0,t);return i&&Rt(r,i),_t(e,this,r)}))},Fn.tail=function(e){var t=null==e?0:e.length;return t?Qi(e,1,t):[]},Fn.take=function(e,t,i){return e&&e.length?Qi(e,0,(t=i||t===n?1:ho(t))<0?0:t):[]},Fn.takeRight=function(e,t,i){var r=null==e?0:e.length;return r?Qi(e,(t=r-(t=i||t===n?1:ho(t)))<0?0:t,r):[]},Fn.takeRightWhile=function(e,t){return e&&e.length?hr(e,ra(t,3),!1,!0):[]},Fn.takeWhile=function(e,t){return e&&e.length?hr(e,ra(t,3)):[]},Fn.tap=function(e,t){return t(e),e},Fn.throttle=function(e,t,n){var r=!0,a=!0;if("function"!=typeof e)throw new Ae(i);return Js(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),Es(e,t,{leading:r,maxWait:t,trailing:a})},Fn.thru=ls,Fn.toArray=oo,Fn.toPairs=Do,Fn.toPairsIn=ko,Fn.toPath=function(e){return Bs(e)?Pt(e,La):io(e)?[e]:Tr(Oa(fo(e)))},Fn.toPlainObject=po,Fn.transform=function(e,t,n){var i=Bs(e),r=i||js(e)||ro(e);if(t=ra(t,4),null==n){var a=e&&e.constructor;n=r?i?new a:[]:Js(e)&&Xs(a)?Un(Ge(e)):{}}return(r?St:vi)(e,(function(e,i,r){return t(n,e,i,r)})),n},Fn.unary=function(e){return ws(e,1)},Fn.union=Za,Fn.unionBy=Ka,Fn.unionWith=$a,Fn.uniq=function(e){return e&&e.length?sr(e):[]},Fn.uniqBy=function(e,t){return e&&e.length?sr(e,ra(t,2)):[]},Fn.uniqWith=function(e,t){return t="function"==typeof t?t:n,e&&e.length?sr(e,n,t):[]},Fn.unset=function(e,t){return null==e||or(e,t)},Fn.unzip=Qa,Fn.unzipWith=es,Fn.update=function(e,t,n){return null==e?e:lr(e,t,fr(n))},Fn.updateWith=function(e,t,i,r){return r="function"==typeof r?r:n,null==e?e:lr(e,t,fr(i),r)},Fn.values=No,Fn.valuesIn=function(e){return null==e?[]:qt(e,Co(e))},Fn.without=ts,Fn.words=Yo,Fn.wrap=function(e,t){return Ls(fr(t),e)},Fn.xor=ns,Fn.xorBy=is,Fn.xorWith=rs,Fn.zip=as,Fn.zipObject=function(e,t){return dr(e||[],t||[],$n)},Fn.zipObjectDeep=function(e,t){return dr(e||[],t||[],Ji)},Fn.zipWith=ss,Fn.entries=Do,Fn.entriesIn=ko,Fn.extend=go,Fn.extendWith=vo,il(Fn,Fn),Fn.add=pl,Fn.attempt=qo,Fn.camelCase=Fo,Fn.capitalize=Uo,Fn.ceil=fl,Fn.clamp=function(e,t,i){return i===n&&(i=t,t=n),i!==n&&(i=(i=uo(i))==i?i:0),t!==n&&(t=(t=uo(t))==t?t:0),ri(uo(e),t,i)},Fn.clone=function(e){return ai(e,4)},Fn.cloneDeep=function(e){return ai(e,5)},Fn.cloneDeepWith=function(e,t){return ai(e,5,t="function"==typeof t?t:n)},Fn.cloneWith=function(e,t){return ai(e,4,t="function"==typeof t?t:n)},Fn.conformsTo=function(e,t){return null==t||si(e,t,Ao(t))},Fn.deburr=Bo,Fn.defaultTo=function(e,t){return null==e||e!=e?t:e},Fn.divide=ml,Fn.endsWith=function(e,t,i){e=fo(e),t=ar(t);var r=e.length,a=i=i===n?r:ri(ho(i),0,r);return(i-=t.length)>=0&&e.slice(i,a)==t},Fn.eq=ks,Fn.escape=function(e){return(e=fo(e))&&X.test(e)?e.replace(G,Qt):e},Fn.escapeRegExp=function(e){return(e=fo(e))&&ee.test(e)?e.replace(Q,"\\$&"):e},Fn.every=function(e,t,i){var r=Bs(e)?Tt:ui;return i&&ma(e,t,i)&&(t=n),r(e,ra(t,3))},Fn.find=us,Fn.findIndex=Ua,Fn.findKey=function(e,t){return kt(e,ra(t,3),vi)},Fn.findLast=ds,Fn.findLastIndex=Ba,Fn.findLastKey=function(e,t){return kt(e,ra(t,3),yi)},Fn.floor=gl,Fn.forEach=ps,Fn.forEachRight=fs,Fn.forIn=function(e,t){return null==e?e:mi(e,ra(t,3),Co)},Fn.forInRight=function(e,t){return null==e?e:gi(e,ra(t,3),Co)},Fn.forOwn=function(e,t){return e&&vi(e,ra(t,3))},Fn.forOwnRight=function(e,t){return e&&yi(e,ra(t,3))},Fn.get=wo,Fn.gt=Ns,Fn.gte=Fs,Fn.has=function(e,t){return null!=e&&ua(e,t,Mi)},Fn.hasIn=So,Fn.head=Ha,Fn.identity=Qo,Fn.includes=function(e,t,n,i){e=Hs(e)?e:No(e),n=n&&!i?ho(n):0;var r=e.length;return n<0&&(n=mn(r+n,0)),no(e)?n<=r&&e.indexOf(t,n)>-1:!!r&&Ft(e,t,n)>-1},Fn.indexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:ho(n);return r<0&&(r=mn(i+r,0)),Ft(e,t,r)},Fn.inRange=function(e,t,i){return t=lo(t),i===n?(i=t,t=0):i=lo(i),function(e,t,n){return e>=gn(t,n)&&e=-h&&e<=h},Fn.isSet=to,Fn.isString=no,Fn.isSymbol=io,Fn.isTypedArray=ro,Fn.isUndefined=function(e){return e===n},Fn.isWeakMap=function(e){return Zs(e)&&ca(e)==C},Fn.isWeakSet=function(e){return Zs(e)&&"[object WeakSet]"==wi(e)},Fn.join=function(e,t){return null==e?"":pn.call(e,t)},Fn.kebabCase=zo,Fn.last=Wa,Fn.lastIndexOf=function(e,t,i){var r=null==e?0:e.length;if(!r)return-1;var a=r;return i!==n&&(a=(a=ho(i))<0?mn(r+a,0):gn(a,r-1)),t==t?function(e,t,n){for(var i=n+1;i--;)if(e[i]===t)return i;return i}(e,t,a):Nt(e,Bt,a,!0)},Fn.lowerCase=Ho,Fn.lowerFirst=Vo,Fn.lt=ao,Fn.lte=so,Fn.max=function(e){return e&&e.length?di(e,Qo,Si):n},Fn.maxBy=function(e,t){return e&&e.length?di(e,ra(t,2),Si):n},Fn.mean=function(e){return zt(e,Qo)},Fn.meanBy=function(e,t){return zt(e,ra(t,2))},Fn.min=function(e){return e&&e.length?di(e,Qo,Di):n},Fn.minBy=function(e,t){return e&&e.length?di(e,ra(t,2),Di):n},Fn.stubArray=ul,Fn.stubFalse=dl,Fn.stubObject=function(){return{}},Fn.stubString=function(){return""},Fn.stubTrue=function(){return!0},Fn.multiply=vl,Fn.nth=function(e,t){return e&&e.length?Bi(e,ho(t)):n},Fn.noConflict=function(){return ht._===this&&(ht._=Ue),this},Fn.noop=rl,Fn.now=_s,Fn.pad=function(e,t,n){e=fo(e);var i=(t=ho(t))?on(e):0;if(!t||i>=t)return e;var r=(t-i)/2;return zr(ft(r),n)+e+zr(pt(r),n)},Fn.padEnd=function(e,t,n){e=fo(e);var i=(t=ho(t))?on(e):0;return t&&it){var r=e;e=t,t=r}if(i||e%1||t%1){var a=xn();return gn(e+a*(t-e+at("1e-"+((a+"").length-1))),t)}return Gi(e,t)},Fn.reduce=function(e,t,n){var i=Bs(e)?Ot:jt,r=arguments.length<3;return i(e,ra(t,4),n,r,hi)},Fn.reduceRight=function(e,t,n){var i=Bs(e)?Lt:jt,r=arguments.length<3;return i(e,ra(t,4),n,r,ci)},Fn.repeat=function(e,t,i){return t=(i?ma(e,t,i):t===n)?1:ho(t),Wi(fo(e),t)},Fn.replace=function(){var e=arguments,t=fo(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Fn.result=function(e,t,i){var r=-1,a=(t=mr(t,e)).length;for(a||(a=1,e=n);++rh)return[];var n=u,i=gn(e,u);t=ra(t),e-=u;for(var r=Wt(i,t);++n=s)return e;var l=i-on(r);if(l<1)return r;var h=o?vr(o,0,l).join(""):e.slice(0,l);if(a===n)return h+r;if(o&&(l+=h.length-l),eo(a)){if(e.slice(l).search(a)){var c,u=h;for(a.global||(a=Te(a.source,fo(ce.exec(a))+"g")),a.lastIndex=0;c=a.exec(u);)var d=c.index;h=h.slice(0,d===n?l:d)}}else if(e.indexOf(ar(a),l)!=l){var p=h.lastIndexOf(a);p>-1&&(h=h.slice(0,p))}return h+r},Fn.unescape=function(e){return(e=fo(e))&&W.test(e)?e.replace(j,cn):e},Fn.uniqueId=function(e){var t=++De;return fo(e)+t},Fn.upperCase=Wo,Fn.upperFirst=Xo,Fn.each=ps,Fn.eachRight=fs,Fn.first=Ha,il(Fn,function(){var e={};return vi(Fn,(function(t,n){Ie.call(Fn.prototype,n)||(e[n]=t)})),e}(),{chain:!1}),Fn.VERSION="4.17.21",St(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Fn[e].placeholder=Fn})),St(["drop","take"],(function(e,t){Hn.prototype[e]=function(i){i=i===n?1:mn(ho(i),0);var r=this.__filtered__&&!t?new Hn(this):this.clone();return r.__filtered__?r.__takeCount__=gn(i,r.__takeCount__):r.__views__.push({size:gn(i,u),type:e+(r.__dir__<0?"Right":"")}),r},Hn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),St(["filter","map","takeWhile"],(function(e,t){var n=t+1,i=1==n||3==n;Hn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:ra(e,3),type:n}),t.__filtered__=t.__filtered__||i,t}})),St(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Hn.prototype[e]=function(){return this[n](1).value()[0]}})),St(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Hn.prototype[e]=function(){return this.__filtered__?new Hn(this):this[n](1)}})),Hn.prototype.compact=function(){return this.filter(Qo)},Hn.prototype.find=function(e){return this.filter(e).head()},Hn.prototype.findLast=function(e){return this.reverse().find(e)},Hn.prototype.invokeMap=Xi((function(e,t){return"function"==typeof e?new Hn(this):this.map((function(n){return Ai(n,e,t)}))})),Hn.prototype.reject=function(e){return this.filter(Rs(ra(e)))},Hn.prototype.slice=function(e,t){e=ho(e);var i=this;return i.__filtered__&&(e>0||t<0)?new Hn(i):(e<0?i=i.takeRight(-e):e&&(i=i.drop(e)),t!==n&&(i=(t=ho(t))<0?i.dropRight(-t):i.take(t-e)),i)},Hn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Hn.prototype.toArray=function(){return this.take(u)},vi(Hn.prototype,(function(e,t){var i=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),a=Fn[r?"take"+("last"==t?"Right":""):t],s=r||/^find/.test(t);a&&(Fn.prototype[t]=function(){var t=this.__wrapped__,o=r?[1]:arguments,l=t instanceof Hn,h=o[0],c=l||Bs(t),u=function(e){var t=a.apply(Fn,Rt([e],o));return r&&d?t[0]:t};c&&i&&"function"==typeof h&&1!=h.length&&(l=c=!1);var d=this.__chain__,p=!!this.__actions__.length,f=s&&!d,m=l&&!p;if(!s&&c){t=m?t:new Hn(this);var g=e.apply(t,o);return g.__actions__.push({func:ls,args:[u],thisArg:n}),new zn(g,d)}return f&&m?e.apply(this,o):(g=this.thru(u),f?r?g.value()[0]:g.value():g)})})),St(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Ce[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);Fn.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var r=this.value();return t.apply(Bs(r)?r:[],e)}return this[n]((function(n){return t.apply(Bs(n)?n:[],e)}))}})),vi(Hn.prototype,(function(e,t){var n=Fn[t];if(n){var i=n.name+"";Ie.call(Cn,i)||(Cn[i]=[]),Cn[i].push({name:t,func:n})}})),Cn[Nr(n,2).name]=[{name:"wrapper",func:n}],Hn.prototype.clone=function(){var e=new Hn(this.__wrapped__);return e.__actions__=Tr(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Tr(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Tr(this.__views__),e},Hn.prototype.reverse=function(){if(this.__filtered__){var e=new Hn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Hn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Bs(e),i=t<0,r=n?e.length:0,a=function(e,t,n){for(var i=-1,r=n.length;++i=this.__values__.length;return{done:e,value:e?n:this.__values__[this.__index__++]}},Fn.prototype.plant=function(e){for(var t,i=this;i instanceof Bn;){var r=Da(i);r.__index__=0,r.__values__=n,t?a.__wrapped__=r:t=r;var a=r;i=i.__wrapped__}return a.__wrapped__=e,t},Fn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Hn){var t=e;return this.__actions__.length&&(t=new Hn(this)),(t=t.reverse()).__actions__.push({func:ls,args:[Ja],thisArg:n}),new zn(t,this.__chain__)}return this.thru(Ja)},Fn.prototype.toJSON=Fn.prototype.valueOf=Fn.prototype.value=function(){return cr(this.__wrapped__,this.__actions__)},Fn.prototype.first=Fn.prototype.head,$e&&(Fn.prototype[$e]=function(){return this}),Fn}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(ht._=un,define((function(){return un}))):ut?((ut.exports=un)._=un,ct._=un):ht._=un}).call(e)})),upe=J(((e,t)=>{var n,i;n=e,i=function(){"use strict";function e(e,i,r,a,s){!function e(n,i,r,a,s){for(;a>r;){if(a-r>600){var o=a-r+1,l=i-r+1,h=Math.log(o),c=.5*Math.exp(2*h/3),u=.5*Math.sqrt(h*c*(o-c)/o)*(l-o/2<0?-1:1);e(n,i,Math.max(r,Math.floor(i-l*c/o+u)),Math.min(a,Math.floor(i+(o-l)*c/o+u)),s)}var d=n[i],p=r,f=a;for(t(n,r,i),s(n[a],d)>0&&t(n,r,a);p0;)f--}0===s(n[r],d)?t(n,r,f):t(n,++f,a),f<=i&&(r=f+1),i<=f&&(a=f-1)}}(e,i,r||0,a||e.length-1,s||n)}function t(e,t,n){var i=e[t];e[t]=e[n],e[n]=i}function n(e,t){return et?1:0}var i=function(e){void 0===e&&(e=9),this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function r(e,t,n){if(!n)return t.indexOf(e);for(var i=0;i=e.minX&&t.maxY>=e.minY}function f(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function m(t,n,i,r,a){for(var s=[n,i];s.length;)if(!((i=s.pop())-(n=s.pop())<=r)){var o=n+Math.ceil((i-n)/r/2)*r;e(t,o,n,i,a),s.push(n,o,o,i)}}return i.prototype.all=function(){return this._all(this.data,[])},i.prototype.search=function(e){var t=this.data,n=[];if(!p(e,t))return n;for(var i=this.toBBox,r=[];t;){for(var a=0;a=0&&r[t].children.length>this._maxEntries;)this._split(r,t),t--;this._adjustParentBBoxes(i,r,t)},i.prototype._split=function(e,t){var n=e[t],i=n.children.length,r=this._minEntries;this._chooseSplitAxis(n,r,i);var s=this._chooseSplitIndex(n,r,i),o=f(n.children.splice(s,n.children.length-s));o.height=n.height,o.leaf=n.leaf,a(n,this.toBBox),a(o,this.toBBox),t?e[t-1].children.push(o):this._splitRoot(n,o)},i.prototype._splitRoot=function(e,t){this.data=f([e,t]),this.data.height=e.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},i.prototype._chooseSplitIndex=function(e,t,n){for(var i,r,a,o,l,h,u,d=1/0,p=1/0,f=t;f<=n-t;f++){var m=s(e,0,f,this.toBBox),g=s(e,f,n,this.toBBox),v=(r=m,a=g,o=Math.max(r.minX,a.minX),l=Math.max(r.minY,a.minY),h=Math.min(r.maxX,a.maxX),u=Math.min(r.maxY,a.maxY),Math.max(0,h-o)*Math.max(0,u-l)),y=c(m)+c(g);v=t;p--){var f=e.children[p];o(l,e.leaf?r(f):f),h+=u(l)}return h},i.prototype._adjustParentBBoxes=function(e,t,n){for(var i=n;i>=0;i--)o(t[i],e)},i.prototype._condense=function(e){for(var t=e.length-1,n=void 0;t>=0;t--)0===e[t].children.length?t>0?(n=e[t-1].children).splice(n.indexOf(e[t]),1):this.clear():a(e[t],this.toBBox)},i},"object"==typeof e&&void 0!==t?t.exports=i():"function"==typeof define&&define.amd?define(i):(n=n||self).RBush=i()})),hpe=J(((e,t)=>{var n,i;n=e,i=function(){"use strict";var e=function(e,n){if(void 0===e&&(e=[]),void 0===n&&(n=t),this.data=e,this.length=this.data.length,this.compare=n,this.length>0)for(var i=(this.length>>1)-1;i>=0;i--)this._down(i)};function t(e,t){return et?1:0}return e.prototype.push=function(e){this.data.push(e),this.length++,this._up(this.length-1)},e.prototype.pop=function(){if(0!==this.length){var e=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),e}},e.prototype.peek=function(){return this.data[0]},e.prototype._up=function(e){for(var t=this.data,n=this.compare,i=t[e];e>0;){var r=e-1>>1,a=t[r];if(n(i,a)>=0)break;t[e]=a,e=r}t[e]=i},e.prototype._down=function(e){for(var t=this.data,n=this.compare,i=this.length>>1,r=t[e];e=0)break;t[e]=s,e=a}t[e]=r},e},"object"==typeof e&&void 0!==t?t.exports=i():"function"==typeof define&&define.amd?define(i):(n=n||self).TinyQueue=i()})),fpe=J(((e,t)=>{t.exports=function(e,t,n,i){var r=e[0],a=e[1],s=!1;void 0===n&&(n=0),void 0===i&&(i=t.length);for(var o=(i-n)/2,l=0,h=o-1;la!=p>a&&r<(d-c)*(a-u)/(p-u)+c&&(s=!s)}return s}})),mpe=J(((e,t)=>{t.exports=function(e,t,n,i){var r=e[0],a=e[1],s=!1;void 0===n&&(n=0),void 0===i&&(i=t.length);for(var o=i-n,l=0,h=o-1;la!=p>a&&r<(d-c)*(a-u)/(p-u)+c&&(s=!s)}return s}})),ype=J(((e,t)=>{var n=fpe(),i=mpe();t.exports=function(e,t,r,a){return t.length>0&&Array.isArray(t[0])?i(e,t,r,a):n(e,t,r,a)},t.exports.nested=i,t.exports.flat=n})),bpe=J(((e,t)=>{var n,i;n=e,i=function(e){"use strict";function t(e,t,n,i,r){let a,s,o,l,h=t[0],c=i[0],u=0,d=0;c>h==c>-h?(a=h,h=t[++u]):(a=c,c=i[++d]);let p=0;if(uh==c>-h?(o=a-((s=h+a)-h),h=t[++u]):(o=a-((s=c+a)-c),c=i[++d]),a=s,0!==o&&(r[p++]=o);uh==c>-h?(o=a-((s=a+h)-(l=s-a))+(h-l),h=t[++u]):(o=a-((s=a+c)-(l=s-a))+(c-l),c=i[++d]),a=s,0!==o&&(r[p++]=o);for(;u0!=p>0)return f;let m=Math.abs(d+p);return Math.abs(f)>=33306690738754716e-32*m?f:-function(e,n,l,h,c,u,d){let p,f,m,g,v,y,x,b,_,w,S,M,T,E,A,C,P,R,O=e-c,L=l-c,I=n-u,D=h-u;v=(A=(b=O-(x=(y=134217729*O)-(y-O)))*(w=D-(_=(y=134217729*D)-(y-D)))-((E=O*D)-x*_-b*_-x*w))-(S=A-(P=(b=I-(x=(y=134217729*I)-(y-I)))*(w=L-(_=(y=134217729*L)-(y-L)))-((C=I*L)-x*_-b*_-x*w))),i[0]=A-(S+v)+(v-P),v=(T=E-((M=E+S)-(v=M-E))+(S-v))-(S=T-C),i[1]=T-(S+v)+(v-C),v=(R=M+S)-M,i[2]=M-(R-v)+(S-v),i[3]=R;let k=function(e,t){let n=t[0];for(let i=1;i<4;i++)n+=t[i];return n}(0,i),N=22204460492503146e-32*d;if(k>=N||-k>=N||(p=e-(O+(v=e-O))+(v-c),m=l-(L+(v=l-L))+(v-c),f=n-(I+(v=n-I))+(v-u),g=h-(D+(v=h-D))+(v-u),0===p&&0===f&&0===m&&0===g)||(N=11093356479670487e-47*d+33306690738754706e-32*Math.abs(k),(k+=O*g+D*p-(I*m+L*f))>=N||-k>=N))return k;v=(A=(b=p-(x=(y=134217729*p)-(y-p)))*(w=D-(_=(y=134217729*D)-(y-D)))-((E=p*D)-x*_-b*_-x*w))-(S=A-(P=(b=f-(x=(y=134217729*f)-(y-f)))*(w=L-(_=(y=134217729*L)-(y-L)))-((C=f*L)-x*_-b*_-x*w))),o[0]=A-(S+v)+(v-P),v=(T=E-((M=E+S)-(v=M-E))+(S-v))-(S=T-C),o[1]=T-(S+v)+(v-C),v=(R=M+S)-M,o[2]=M-(R-v)+(S-v),o[3]=R;let F=t(4,i,4,o,r);v=(A=(b=O-(x=(y=134217729*O)-(y-O)))*(w=g-(_=(y=134217729*g)-(y-g)))-((E=O*g)-x*_-b*_-x*w))-(S=A-(P=(b=I-(x=(y=134217729*I)-(y-I)))*(w=m-(_=(y=134217729*m)-(y-m)))-((C=I*m)-x*_-b*_-x*w))),o[0]=A-(S+v)+(v-P),v=(T=E-((M=E+S)-(v=M-E))+(S-v))-(S=T-C),o[1]=T-(S+v)+(v-C),v=(R=M+S)-M,o[2]=M-(R-v)+(S-v),o[3]=R;let U=t(F,r,4,o,a);v=(A=(b=p-(x=(y=134217729*p)-(y-p)))*(w=g-(_=(y=134217729*g)-(y-g)))-((E=p*g)-x*_-b*_-x*w))-(S=A-(P=(b=f-(x=(y=134217729*f)-(y-f)))*(w=m-(_=(y=134217729*m)-(y-m)))-((C=f*m)-x*_-b*_-x*w))),o[0]=A-(S+v)+(v-P),v=(T=E-((M=E+S)-(v=M-E))+(S-v))-(S=T-C),o[1]=T-(S+v)+(v-C),v=(R=M+S)-M,o[2]=M-(R-v)+(S-v),o[3]=R;let B=t(U,a,4,o,s);return s[B-1]}(e,n,l,h,c,u,m)},e.orient2dfast=function(e,t,n,i,r,a){return(t-a)*(n-r)-(e-r)*(i-a)},Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof e&&void 0!==t?i(e):"function"==typeof define&&define.amd?define(["exports"],i):i((n=n||self).predicates={})})),Mpe=J(((e,t)=>{"use strict";var n=upe(),i=hpe(),r=ype(),a=bpe().orient2d;function s(e,t,i){t=Math.max(0,void 0===t?2:t),i=i||0;var a=function(e){for(var t=e[0],n=e[0],i=e[0],a=e[0],s=0;si[0]&&(i=o),o[1]a[1]&&(a=o)}var l=[t,n,i,a],h=l.slice();for(s=0;s=2&&d(t[t.length-2],t[t.length-1],e[n])<=0;)t.pop();t.push(e[n])}for(var i=[],r=e.length-1;r>=0;r--){for(;i.length>=2&&d(i[i.length-2],i[i.length-1],e[r])<=0;)i.pop();i.push(e[r])}return i.pop(),t.pop(),t.concat(i)}(h)}(e),s=new n(16);s.toBBox=function(e){return{minX:e[0],minY:e[1],maxX:e[0],maxY:e[1]}},s.compareMinX=function(e,t){return e[0]-t[0]},s.compareMinY=function(e,t){return e[1]-t[1]},s.load(e);for(var l,h=[],c=0;cs||c.push({node:f,dist:m})}for(;c.length&&!c.peek().node.children;){var g=c.pop(),y=g.node,x=v(y,t,n),b=v(y,r,a);if(g.dist=t.minX&&e[0]<=t.maxX&&e[1]>=t.minY&&e[1]<=t.maxY}function u(e,t,n){for(var i=Math.min(e[0],t[0]),r=Math.min(e[1],t[1]),a=Math.max(e[0],t[0]),s=Math.max(e[1],t[1]),o=n.search({minX:i,minY:r,maxX:a,maxY:s}),l=0;l0!=d(e,t,i)>0&&d(n,i,e)>0!=d(n,i,t)>0}function f(e){var t=e.p,n=e.next.p;return e.minX=Math.min(t[0],n[0]),e.minY=Math.min(t[1],n[1]),e.maxX=Math.max(t[0],n[0]),e.maxY=Math.max(t[1],n[1]),e}function m(e,t){var n={p:e,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return t?(n.next=t.next,n.prev=t,t.next.prev=n,t.next=n):(n.prev=n,n.next=n),n}function g(e,t){var n=e[0]-t[0],i=e[1]-t[1];return n*n+i*i}function v(e,t,n){var i=t[0],r=t[1],a=n[0]-i,s=n[1]-r;if(0!==a||0!==s){var o=((e[0]-i)*a+(e[1]-r)*s)/(a*a+s*s);o>1?(i=n[0],r=n[1]):o>0&&(i+=a*o,r+=s*o)}return(a=e[0]-i)*a+(s=e[1]-r)*s}function y(e,t,n,i,r,a,s,o){var l,h,c,u,d=n-e,p=i-t,f=s-r,m=o-a,g=e-r,v=t-a,y=d*d+p*p,x=d*f+p*m,b=f*f+m*m,_=d*g+p*v,w=f*g+m*v,S=y*b-x*x,M=S,T=S;0===S?(h=0,M=1,u=w,T=b):(u=y*w-x*_,(h=x*w-b*_)<0?(h=0,u=w,T=b):h>M&&(h=M,u=w+x,T=b)),u<0?(u=0,-_<0?h=0:-_>y?h=M:(h=-_,M=y)):u>T&&(u=T,-_+x<0?h=0:-_+x>y?h=M:(h=-_+x,M=y));var E=(1-(c=0===u?0:u/T))*r+c*s-((1-(l=0===h?0:h/M))*e+l*n),A=(1-c)*a+c*o-((1-l)*t+l*i);return E*E+A*A}function x(e,t){return e[0]===t[0]?e[1]-t[1]:e[0]-t[0]}i.default&&(i=i.default),t.exports=s,t.exports.default=s})),Xpe=J(((e,t)=>{t.exports=function(){var e,t=0,n=!1;function i(t,n){return e.list.push({type:t,data:n?JSON.parse(JSON.stringify(n)):void 0}),e}return e={list:[],segmentId:function(){return t++},checkIntersection:function(e,t){return i("check",{seg1:e,seg2:t})},segmentChop:function(e,t){return i("div_seg",{seg:e,pt:t}),i("chop",{seg:e,pt:t})},statusRemove:function(e){return i("pop_seg",{seg:e})},segmentUpdate:function(e){return i("seg_update",{seg:e})},segmentNew:function(e,t){return i("new_seg",{seg:e,primary:t})},segmentRemove:function(e){return i("rem_seg",{seg:e})},tempStatus:function(e,t,n){return i("temp_status",{seg:e,above:t,below:n})},rewind:function(e){return i("rewind",{seg:e})},status:function(e,t,n){return i("status",{seg:e,above:t,below:n})},vert:function(t){return t===n?e:(n=t,i("vert",{x:t}))},log:function(e){return"string"!=typeof e&&(e=JSON.stringify(e,!1," ")),i("log",{txt:e})},reset:function(){return i("reset")},selected:function(e){return i("selected",{segs:e})},chainStart:function(e){return i("chain_start",{seg:e})},chainRemoveHead:function(e,t){return i("chain_rem_head",{index:e,pt:t})},chainRemoveTail:function(e,t){return i("chain_rem_tail",{index:e,pt:t})},chainNew:function(e,t){return i("chain_new",{pt1:e,pt2:t})},chainMatch:function(e){return i("chain_match",{index:e})},chainClose:function(e){return i("chain_close",{index:e})},chainAddHead:function(e,t){return i("chain_add_head",{index:e,pt:t})},chainAddTail:function(e,t){return i("chain_add_tail",{index:e,pt:t})},chainConnect:function(e,t){return i("chain_con",{index1:e,index2:t})},chainReverse:function(e){return i("chain_rev",{index:e})},chainJoin:function(e,t){return i("chain_join",{index1:e,index2:t})},done:function(){return i("done")}}}})),$pe=J(((e,t)=>{t.exports=function(e){"number"!=typeof e&&(e=1e-10);var t={epsilon:function(t){return"number"==typeof t&&(e=t),e},pointAboveOrOnLine:function(t,n,i){var r=n[0],a=n[1],s=i[0],o=i[1],l=t[0];return(s-r)*(t[1]-a)-(o-a)*(l-r)>=-e},pointBetween:function(t,n,i){var r=t[1]-n[1],a=i[0]-n[0],s=t[0]-n[0],o=i[1]-n[1],l=s*a+r*o;return!(l-e)},pointsSameX:function(t,n){return Math.abs(t[0]-n[0])e!=s-r>e&&(a-h)*(r-c)/(s-c)+h-i>e&&(o=!o),a=h,s=c}return o}};return t}})),Kpe=J(((e,t)=>{t.exports={create:function(){var e={root:{root:!0,next:null},exists:function(t){return!(null===t||t===e.root)},isEmpty:function(){return null===e.root.next},getHead:function(){return e.root.next},insertBefore:function(t,n){for(var i=e.root,r=e.root.next;null!==r;){if(n(r))return t.prev=r.prev,t.next=r,r.prev.next=t,void(r.prev=t);i=r,r=r.next}i.next=t,t.prev=i,t.next=null},findTransition:function(t){for(var n=e.root,i=e.root.next;null!==i&&!t(i);)n=i,i=i.next;return{before:n===e.root?null:n,after:i,insert:function(e){return e.prev=n,e.next=i,n.next=e,null!==i&&(i.prev=e),e}}}};return e},node:function(e){return e.prev=null,e.next=null,e.remove=function(){e.prev.next=e.next,e.next&&(e.next.prev=e.prev),e.prev=null,e.next=null},e}}})),Qpe=J(((e,t)=>{var n=Kpe();t.exports=function(e,t,i){function r(e,t){return{id:i?i.segmentId():-1,start:e,end:t,myFill:{above:null,below:null},otherFill:null}}function a(e,t,n){return{id:i?i.segmentId():-1,start:e,end:t,myFill:{above:n.myFill.above,below:n.myFill.below},otherFill:null}}var s=n.create();function o(e,n){s.insertBefore(e,(function(i){var r=function(e,n,i,r,a,s){var o=t.pointsCompare(n,a);return 0!==o?o:t.pointsSame(i,s)?0:e!==r?e?1:-1:t.pointAboveOrOnLine(i,r?a:s,r?s:a)?1:-1}(e.isStart,e.pt,n,i.isStart,i.pt,i.other.pt);return r<0}))}function l(e,t){var i=function(e,t){var i=n.node({isStart:!0,pt:e.start,seg:e,primary:t,other:null,status:null});return o(i,e.end),i}(e,t);return function(e,t,i){var r=n.node({isStart:!1,pt:t.end,seg:t,primary:i,other:e,status:null});e.other=r,o(r,e.pt)}(i,e,t),i}function h(e,t){var n=a(t,e.seg.end,e.seg);return function(e,t){i&&i.segmentChop(e.seg,t),e.other.remove(),e.seg.end=t,e.other.pt=t,o(e.other,e.pt)}(e,t),l(n,e.primary)}function c(r,a){var o=n.create();function l(e){return o.findTransition((function(n){var i=function(e,n){var i=e.seg.start,r=e.seg.end,a=n.seg.start,s=n.seg.end;return t.pointsCollinear(i,a,s)?t.pointsCollinear(r,a,s)||t.pointAboveOrOnLine(r,a,s)?1:-1:t.pointAboveOrOnLine(i,a,s)?1:-1}(e,n.ev);return i>0}))}function c(e,n){var r=e.seg,a=n.seg,s=r.start,o=r.end,l=a.start,c=a.end;i&&i.checkIntersection(r,a);var u=t.linesIntersect(s,o,l,c);if(!1===u){if(!t.pointsCollinear(s,o,l)||t.pointsSame(s,c)||t.pointsSame(o,l))return!1;var d=t.pointsSame(s,l),p=t.pointsSame(o,c);if(d&&p)return n;var f=!d&&t.pointBetween(s,l,c),m=!p&&t.pointBetween(o,l,c);if(d)return m?h(n,o):h(e,c),n;f&&(p||(m?h(n,o):h(e,c)),h(n,s))}else 0===u.alongA&&(-1===u.alongB?h(e,l):0===u.alongB?h(e,u.pt):1===u.alongB&&h(e,c)),0===u.alongB&&(-1===u.alongA?h(n,s):0===u.alongA?h(n,u.pt):1===u.alongA&&h(n,o));return!1}for(var u=[];!s.isEmpty();){var d=s.getHead();if(i&&i.vert(d.pt[0]),d.isStart){let t=function(){if(f){var e=c(d,f);if(e)return e}return!!m&&c(d,m)};i&&i.segmentNew(d.seg,d.primary);var p=l(d),f=p.before?p.before.ev:null,m=p.after?p.after.ev:null;i&&i.tempStatus(d.seg,!!f&&f.seg,!!m&&m.seg);var g,v=t();if(v)e?(g=null===d.seg.myFill.below||d.seg.myFill.above!==d.seg.myFill.below)&&(v.seg.myFill.above=!v.seg.myFill.above):v.seg.otherFill=d.seg.myFill,i&&i.segmentUpdate(v.seg),d.other.remove(),d.remove();if(s.getHead()!==d){i&&i.rewind(d.seg);continue}if(e)g=null===d.seg.myFill.below||d.seg.myFill.above!==d.seg.myFill.below,d.seg.myFill.below=m?m.seg.myFill.above:r,d.seg.myFill.above=g?!d.seg.myFill.below:d.seg.myFill.below;else if(null===d.seg.otherFill){var y;y=m?d.primary===m.primary?m.seg.otherFill.above:m.seg.myFill.above:d.primary?a:r,d.seg.otherFill={above:y,below:y}}i&&i.status(d.seg,!!f&&f.seg,!!m&&m.seg),d.other.status=p.insert(n.node({ev:d}))}else{var x=d.status;if(null===x)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(o.exists(x.prev)&&o.exists(x.next)&&c(x.prev.ev,x.next.ev),i&&i.statusRemove(x.ev.seg),x.remove(),!d.primary){var b=d.seg.myFill;d.seg.myFill=d.seg.otherFill,d.seg.otherFill=b}u.push(d.seg)}s.getHead().remove()}return i&&i.done(),u}return e?{addRegion:function(e){for(var n,i=e[e.length-1],a=0;a{t.exports=function(e,t,n){var i=[],r=[];return e.forEach((function(e){var a=e.start,s=e.end;if(t.pointsSame(a,s))console.warn("PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large");else{n&&n.chainStart(e);for(var o={index:0,matches_head:!1,matches_pt1:!1},l={index:0,matches_head:!1,matches_pt1:!1},h=o,c=0;c{function n(e,t,n){var i=[];return e.forEach((function(e){var r=(e.myFill.above?8:0)+(e.myFill.below?4:0)+(e.otherFill&&e.otherFill.above?2:0)+(e.otherFill&&e.otherFill.below?1:0);0!==t[r]&&i.push({id:n?n.segmentId():-1,start:e.start,end:e.end,myFill:{above:1===t[r],below:2===t[r]},otherFill:null})})),n&&n.selected(i),i}var i={union:function(e,t){return n(e,[0,2,1,0,2,2,0,0,1,0,1,0,0,0,0,0],t)},intersect:function(e,t){return n(e,[0,0,0,0,0,2,0,2,0,0,1,1,0,2,1,0],t)},difference:function(e,t){return n(e,[0,0,0,0,2,0,2,0,1,1,0,0,0,1,2,0],t)},differenceRev:function(e,t){return n(e,[0,2,1,0,0,0,1,1,0,2,0,2,0,0,0,0],t)},xor:function(e,t){return n(e,[0,2,1,0,2,0,0,1,1,0,0,2,0,1,2,0],t)}};t.exports=i})),sme=J(((e,t)=>{var n={toPolygon:function(e,t){function n(t){if(t.length<=0)return e.segments({inverted:!1,regions:[]});function n(t){var n=t.slice(0,t.length-1);return e.segments({inverted:!1,regions:[n]})}for(var i=n(t[0]),r=1;r{var n,i=Xpe(),r=$pe(),a=Qpe(),s=tme(),o=rme(),l=sme(),h=!1,c=r();function u(e,t,i){var r=n.segments(e),a=n.segments(t),s=i(n.combine(r,a));return n.polygon(s)}n={buildLog:function(e){return!0===e?h=i():!1===e&&(h=!1),!1!==h&&h.list},epsilon:function(e){return c.epsilon(e)},segments:function(e){var t=a(!0,c,h);return e.regions.forEach(t.addRegion),{segments:t.calculate(e.inverted),inverted:e.inverted}},combine:function(e,t){return{combined:a(!1,c,h).calculate(e.segments,e.inverted,t.segments,t.inverted),inverted1:e.inverted,inverted2:t.inverted}},selectUnion:function(e){return{segments:o.union(e.combined,h),inverted:e.inverted1||e.inverted2}},selectIntersect:function(e){return{segments:o.intersect(e.combined,h),inverted:e.inverted1&&e.inverted2}},selectDifference:function(e){return{segments:o.difference(e.combined,h),inverted:e.inverted1&&!e.inverted2}},selectDifferenceRev:function(e){return{segments:o.differenceRev(e.combined,h),inverted:!e.inverted1&&e.inverted2}},selectXor:function(e){return{segments:o.xor(e.combined,h),inverted:e.inverted1!==e.inverted2}},polygon:function(e){return{regions:s(e.segments,c,h),inverted:e.inverted}},polygonFromGeoJSON:function(e){return l.toPolygon(n,e)},polygonToGeoJSON:function(e){return l.fromPolygon(n,c,e)},union:function(e,t){return u(e,t,n.selectUnion)},intersect:function(e,t){return u(e,t,n.selectIntersect)},difference:function(e,t){return u(e,t,n.selectDifference)},differenceRev:function(e,t){return u(e,t,n.selectDifferenceRev)},xor:function(e,t){return u(e,t,n.selectXor)}},"object"==typeof window&&(window.PolyBool=n),t.exports=n})),AC=J((()=>{})),fve=J(((e,t)=>{var n,i;n=e,i=function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var n=0;nt?1:e0))break;if(null===t.right)break;if(n(e,t.right.key)>0&&(l=t.right,t.right=l.left,l.left=t,null===(t=l).right))break;a.right=t,a=t,t=t.right}}return a.right=t.left,s.left=t.right,t.left=r.right,t.right=r.left,t}function s(e,t,n,r){var s=new i(e,t);if(null===n)return s.left=s.right=null,s;var o=r(e,(n=a(e,n,r)).key);return o<0?(s.left=n.left,s.right=n,n.left=null):o>=0&&(s.right=n.right,s.left=n,n.right=null),s}function o(e,t,n){var i=null,r=null;if(t){var s=n((t=a(e,t,n)).key,e);0===s?(i=t.left,r=t.right):s<0?(r=t.right,t.right=null,i=t):(i=t.left,t.left=null,r=t)}return{left:i,right:r}}function l(e,t,n,i,r){if(e){i(t+(n?"\u2514\u2500\u2500 ":"\u251c\u2500\u2500 ")+r(e)+"\n");var a=t+(n?" ":"\u2502 ");e.left&&l(e.left,a,!1,i,r),e.right&&l(e.right,a,!0,i,r)}}var h=function(){function e(e){void 0===e&&(e=r),this._root=null,this._size=0,this._comparator=e}return e.prototype.insert=function(e,t){return this._size++,this._root=s(e,t,this._root,this._comparator)},e.prototype.add=function(e,t){var n=new i(e,t);null===this._root&&(n.left=n.right=null,this._size++,this._root=n);var r=this._comparator,s=a(e,this._root,r),o=r(e,s.key);return 0===o?this._root=s:(o<0?(n.left=s.left,n.right=s,s.left=null):o>0&&(n.right=s.right,n.left=s,s.right=null),this._size++,this._root=n),this._root},e.prototype.remove=function(e){this._root=this._remove(e,this._root,this._comparator)},e.prototype._remove=function(e,t,n){var i;return null===t?null:0===n(e,(t=a(e,t,n)).key)?(null===t.left?i=t.right:(i=a(e,t.left,n)).right=t.right,this._size--,i):t},e.prototype.pop=function(){var e=this._root;if(e){for(;e.left;)e=e.left;return this._root=a(e.key,this._root,this._comparator),this._root=this._remove(e.key,this._root,this._comparator),{key:e.key,data:e.data}}return null},e.prototype.findStatic=function(e){for(var t=this._root,n=this._comparator;t;){var i=n(e,t.key);if(0===i)return t;t=i<0?t.left:t.right}return null},e.prototype.find=function(e){return this._root&&(this._root=a(e,this._root,this._comparator),0!==this._comparator(e,this._root.key))?null:this._root},e.prototype.contains=function(e){for(var t=this._root,n=this._comparator;t;){var i=n(e,t.key);if(0===i)return!0;t=i<0?t.left:t.right}return!1},e.prototype.forEach=function(e,t){for(var n=this._root,i=[],r=!1;!r;)null!==n?(i.push(n),n=n.left):0!==i.length?(n=i.pop(),e.call(t,n),n=n.right):r=!0;return this},e.prototype.range=function(e,t,n,i){for(var r=[],a=this._comparator,s=this._root;0!==r.length||s;)if(s)r.push(s),s=s.left;else{if(a((s=r.pop()).key,t)>0)break;if(a(s.key,e)>=0&&n.call(i,s))return this;s=s.right}return this},e.prototype.keys=function(){var e=[];return this.forEach((function(t){var n=t.key;return e.push(n)})),e},e.prototype.values=function(){var e=[];return this.forEach((function(t){var n=t.data;return e.push(n)})),e},e.prototype.min=function(){return this._root?this.minNode(this._root).key:null},e.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},e.prototype.minNode=function(e){if(void 0===e&&(e=this._root),e)for(;e.left;)e=e.left;return e},e.prototype.maxNode=function(e){if(void 0===e&&(e=this._root),e)for(;e.right;)e=e.right;return e},e.prototype.at=function(e){for(var t=this._root,n=!1,i=0,r=[];!n;)if(t)r.push(t),t=t.left;else if(r.length>0){if(t=r.pop(),i===e)return t;i++,t=t.right}else n=!0;return null},e.prototype.next=function(e){var t=this._root,n=null;if(e.right){for(n=e.right;n.left;)n=n.left;return n}for(var i=this._comparator;t;){var r=i(e.key,t.key);if(0===r)break;r<0?(n=t,t=t.left):t=t.right}return n},e.prototype.prev=function(e){var t=this._root,n=null;if(null!==e.left){for(n=e.left;n.right;)n=n.right;return n}for(var i=this._comparator;t;){var r=i(e.key,t.key);if(0===r)break;r<0?t=t.left:(n=t,t=t.right)}return n},e.prototype.clear=function(){return this._root=null,this._size=0,this},e.prototype.toList=function(){return function(e){for(var t=e,n=[],r=!1,a=new i(null,null),s=a;!r;)t?(n.push(t),t=t.left):n.length>0?t=(t=s=s.next=n.pop()).right:r=!0;return s.next=null,a.next}(this._root)},e.prototype.load=function(e,t,n){void 0===t&&(t=[]),void 0===n&&(n=!1);var r=e.length,a=this._comparator;if(n&&d(e,t,0,r-1,a),null===this._root)this._root=c(e,t,0,r),this._size=r;else{var s=function(e,t,n){for(var r=new i(null,null),a=r,s=e,o=t;null!==s&&null!==o;)n(s.key,o.key)<0?(a.next=s,s=s.next):(a.next=o,o=o.next),a=a.next;return null!==s?a.next=s:null!==o&&(a.next=o),r.next}(this.toList(),function(e,t){for(var n=new i(null,null),r=n,a=0;a0){var s=n+Math.floor(a/2),o=e[s],l=t[s],h=new i(o,l);return h.left=c(e,t,n,s),h.right=c(e,t,s+1,r),h}return null}function u(e,t,n){var i=n-t;if(i>0){var r=t+Math.floor(i/2),a=u(e,t,r),s=e.head;return s.left=a,e.head=e.head.next,s.right=u(e,r+1,n),s}return null}function d(e,t,n,i,r){if(!(n>=i)){for(var a=e[n+i>>1],s=n-1,o=i+1;;){do{s++}while(r(e[s],a)<0);do{o--}while(r(e[o],a)>0);if(s>=o)break;var l=e[s];e[s]=e[o],e[o]=l,l=t[s],t[s]=t[o],t[o]=l}d(e,t,n,o,r),d(e,t,o+1,i,r)}}var p=function(e,t){return e.ll.x<=t.x&&t.x<=e.ur.x&&e.ll.y<=t.y&&t.y<=e.ur.y},f=function(e,t){if(t.ur.xt.x?1:e.yt.y?1:0}}]),n(t,[{key:"link",value:function(e){if(e.point===this.point)throw new Error("Tried to link already linked events");for(var t=e.point.events,n=0,i=t.length;n=0&&l>=0?sh?-1:0:a<0&&l<0?sh?1:0:la?1:0}}}]),t}(),R=0,O=function(){function t(n,i,r,a){e(this,t),this.id=++R,this.leftSE=n,n.segment=this,n.otherSE=i,this.rightSE=i,i.segment=this,i.otherSE=n,this.rings=r,this.windings=a}return n(t,null,[{key:"compare",value:function(e,t){var n=e.leftSE.point.x,i=t.leftSE.point.x,r=e.rightSE.point.x,a=t.rightSE.point.x;if(as&&o>l)return-1;var c=e.comparePoint(t.leftSE.point);if(c<0)return 1;if(c>0)return-1;var u=t.comparePoint(e.rightSE.point);return 0!==u?u:-1}if(n>i){if(so&&s>h)return 1;var d=t.comparePoint(e.leftSE.point);if(0!==d)return d;var p=e.comparePoint(t.rightSE.point);return p<0?1:p>0?-1:1}if(so)return 1;if(ra){var m=e.comparePoint(t.rightSE.point);if(m<0)return 1;if(m>0)return-1}if(r!==a){var g=l-s,v=r-n,y=h-o,x=a-i;if(g>v&&yx)return-1}return r>a?1:rh?1:e.idt.id?1:0}}]),n(t,[{key:"replaceRightSE",value:function(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var e=this.leftSE.point.y,t=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:et?e:t}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(e){return e.x===this.leftSE.point.x&&e.y===this.leftSE.point.y||e.x===this.rightSE.point.x&&e.y===this.rightSE.point.y}},{key:"comparePoint",value:function(e){if(this.isAnEndpoint(e))return 0;var t=this.leftSE.point,n=this.rightSE.point,i=this.vector();if(t.x===n.x)return e.x===t.x?0:e.x0&&o.swapEvents(),P.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),i&&(r.checkForConsuming(),a.checkForConsuming()),n}},{key:"swapEvents",value:function(){var e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var t=0,n=this.windings.length;t0){var a=n;n=i,i=a}if(n.prev===i){var s=n;n=i,i=s}for(var o=0,l=i.rings.length;o0))throw new Error("Tried to create degenerate segment at [".concat(e.x,", ").concat(e.y,"]"));r=n,a=e,s=-1}return new t(new P(r,!0),new P(a,!1),[i],[s])}}]),t}(),L=function(){function t(n,i,r){if(e(this,t),!Array.isArray(n)||0===n.length)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=i,this.isExterior=r,this.segments=[],"number"!=typeof n[0][0]||"number"!=typeof n[0][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var a=b.round(n[0][0],n[0][1]);this.bbox={ll:{x:a.x,y:a.y},ur:{x:a.x,y:a.y}};for(var s=a,o=1,l=n.length;othis.bbox.ur.x&&(this.bbox.ur.x=h.x),h.y>this.bbox.ur.y&&(this.bbox.ur.y=h.y),s=h)}(a.x!==s.x||a.y!==s.y)&&this.segments.push(O.fromRing(s,a,this))}return n(t,[{key:"getSweepEvents",value:function(){for(var e=[],t=0,n=this.segments.length;tthis.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.interiorRings.push(s)}this.multiPoly=i}return n(t,[{key:"getSweepEvents",value:function(){for(var e=this.exteriorRing.getSweepEvents(),t=0,n=this.interiorRings.length;tthis.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.polys.push(s)}this.isSubject=i}return n(t,[{key:"getSweepEvents",value:function(){for(var e=[],t=0,n=this.polys.length;t0&&(e=i)}for(var r=e.segment.prevInResult(),a=r?r.prevInResult():null;;){if(!r)return null;if(!a)return r.ringOut;if(a.ringOut!==r.ringOut)return a.ringOut.enclosingRing()!==r.ringOut?r.ringOut:r.ringOut.enclosingRing();r=a.prevInResult(),a=r?r.prevInResult():null}}}]),t}(),N=function(){function t(n){e(this,t),this.exteriorRing=n,n.poly=this,this.interiorRings=[]}return n(t,[{key:"addInterior",value:function(e){this.interiorRings.push(e),e.poly=this}},{key:"getGeom",value:function(){var e=[this.exteriorRing.getGeom()];if(null===e[0])return null;for(var t=0,n=this.interiorRings.length;t1&&void 0!==arguments[1]?arguments[1]:O.compare;e(this,t),this.queue=n,this.tree=new h(i),this.segments=[]}return n(t,[{key:"process",value:function(e){var t=e.segment,n=[];if(e.consumedBy)return e.isLeft?this.queue.remove(e.otherSE):this.tree.remove(t),n;var i=e.isLeft?this.tree.insert(t):this.tree.find(t);if(!i)throw new Error("Unable to find segment #".concat(t.id," ")+"[".concat(t.leftSE.point.x,", ").concat(t.leftSE.point.y,"] -> ")+"[".concat(t.rightSE.point.x,", ").concat(t.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var r=i,a=i,s=void 0,o=void 0;void 0===s;)null===(r=this.tree.prev(r))?s=null:void 0===r.key.consumedBy&&(s=r.key);for(;void 0===o;)null===(a=this.tree.next(a))?o=null:void 0===a.key.consumedBy&&(o=a.key);if(e.isLeft){var l=null;if(s){var h=s.getIntersection(t);if(null!==h&&(t.isAnEndpoint(h)||(l=h),!s.isAnEndpoint(h)))for(var c=this._splitSafely(s,h),u=0,d=c.length;u0?(this.tree.remove(t),n.push(e)):(this.segments.push(t),t.prev=s)}else{if(s&&o){var w=s.getIntersection(o);if(null!==w){if(!s.isAnEndpoint(w))for(var S=this._splitSafely(s,w),M=0,T=S.length;MB)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var w=new U(m),S=m.size,M=m.pop();M;){var T=M.key;if(m.size===S){var E=T.segment;throw new Error("Unable to pop() ".concat(T.isLeft?"left":"right"," SweepEvent ")+"[".concat(T.point.x,", ").concat(T.point.y,"] from segment #").concat(E.id," ")+"[".concat(E.leftSE.point.x,", ").concat(E.leftSE.point.y,"] -> ")+"[".concat(E.rightSE.point.x,", ").concat(E.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(m.size>B)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(w.segments.length>z)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var A=w.process(T),C=0,R=A.length;C1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i{!function(){"use strict";var e,n={version:"6.4.2.2",use_lines:!0,use_xyz:!1},i=!1;if(void 0!==t&&t.exports?(t.exports=n,i=!0):("function"==typeof define&&define.amd&&define(n),"undefined"!=typeof document?window.ClipperLib=n:self.ClipperLib=n),i){var r="chrome";e="Netscape"}else r=navigator.userAgent.toString().toLowerCase(),e=navigator.appName;var a,s={};function o(e,t,i){n.biginteger_used=1,null!=e&&("number"==typeof e&&void 0===t?this.fromInt(e):"number"==typeof e?this.fromNumber(e,t,i):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function l(){return new o(null,void 0,void 0)}-1!=r.indexOf("chrome")&&-1==r.indexOf("chromium")?s.chrome=1:s.chrome=0,-1!=r.indexOf("chromium")?s.chromium=1:s.chromium=0,-1!=r.indexOf("safari")&&-1==r.indexOf("chrome")&&-1==r.indexOf("chromium")?s.safari=1:s.safari=0,-1!=r.indexOf("firefox")?s.firefox=1:s.firefox=0,-1!=r.indexOf("firefox/17")?s.firefox17=1:s.firefox17=0,-1!=r.indexOf("firefox/15")?s.firefox15=1:s.firefox15=0,-1!=r.indexOf("firefox/3")?s.firefox3=1:s.firefox3=0,-1!=r.indexOf("opera")?s.opera=1:s.opera=0,-1!=r.indexOf("msie 10")?s.msie10=1:s.msie10=0,-1!=r.indexOf("msie 9")?s.msie9=1:s.msie9=0,-1!=r.indexOf("msie 8")?s.msie8=1:s.msie8=0,-1!=r.indexOf("msie 7")?s.msie7=1:s.msie7=0,-1!=r.indexOf("msie ")?s.msie=1:s.msie=0,n.biginteger_used=null,"Microsoft Internet Explorer"==e?(o.prototype.am=function(e,t,n,i,r,a){for(var s=32767&t,o=t>>15;--a>=0;){var l=32767&this[e],h=this[e++]>>15,c=o*l+h*s;r=((l=s*l+((32767&c)<<15)+n[i]+(1073741823&r))>>>30)+(c>>>15)+o*h+(r>>>30),n[i++]=1073741823&l}return r},a=30):"Netscape"!=e?(o.prototype.am=function(e,t,n,i,r,a){for(;--a>=0;){var s=t*this[e++]+n[i]+r;r=Math.floor(s/67108864),n[i++]=67108863&s}return r},a=26):(o.prototype.am=function(e,t,n,i,r,a){for(var s=16383&t,o=t>>14;--a>=0;){var l=16383&this[e],h=this[e++]>>14,c=o*l+h*s;r=((l=s*l+((16383&c)<<14)+n[i]+r)>>28)+(c>>14)+o*h,n[i++]=268435455&l}return r},a=28),o.prototype.DB=a,o.prototype.DM=(1<>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function g(e){this.m=e}function v(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,t+=16),255&e||(e>>=8,t+=8),15&e||(e>>=4,t+=4),3&e||(e>>=2,t+=2),1&e||++t,t}function S(e){for(var t=0;0!=e;)e&=e-1,++t;return t}function M(){}function T(e){return e}function E(e){this.r2=l(),this.q3=l(),o.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}g.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},g.prototype.revert=function(e){return e},g.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},g.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n),this.reduce(n)},g.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},v.prototype.convert=function(e){var t=l();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(o.ZERO)>0&&this.m.subTo(t,t),t},v.prototype.revert=function(e){var t=l();return e.copyTo(t),this.reduce(t),t},v.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t>15)*this.mpl&this.um)<<15)&e.DM;for(e[n=t+this.m.t]+=this.m.am(0,i,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},v.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n),this.reduce(n)},v.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},o.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},o.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0},o.prototype.fromString=function(e,t){var n;if(16==t)n=4;else if(8==t)n=3;else if(256==t)n=8;else if(2==t)n=1;else if(32==t)n=5;else{if(4!=t)return void this.fromRadix(e,t);n=2}this.t=0,this.s=0;for(var i=e.length,r=!1,a=0;--i>=0;){var s=8==n?255&e[i]:p(e,i);s<0?"-"==e.charAt(i)&&(r=!0):(r=!1,0==a?this[this.t++]=s:a+n>this.DB?(this[this.t-1]|=(s&(1<>this.DB-a):this[this.t-1]|=s<=this.DB&&(a-=this.DB))}8==n&&128&e[0]&&(this.s=-1,a>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==e;)--this.t},o.prototype.dlShiftTo=function(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s},o.prototype.drShiftTo=function(e,t){for(var n=e;n=0;--n)t[n+s+1]=this[n]>>r|o,o=(this[n]&a)<=0;--n)t[n]=0;t[s]=o,t.t=this.t+s+1,t.s=this.s,t.clamp()},o.prototype.rShiftTo=function(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)t.t=0;else{var i=e%this.DB,r=this.DB-i,a=(1<>i;for(var s=n+1;s>i;i>0&&(t[this.t-n-1]|=(this.s&a)<>=this.DB;if(e.t>=this.DB;i+=this.s}else{for(i+=this.s;n>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[n++]=this.DV+i:i>0&&(t[n++]=i),t.t=n,t.clamp()},o.prototype.multiplyTo=function(e,t){var n=this.abs(),i=e.abs(),r=n.t;for(t.t=r+i.t;--r>=0;)t[r]=0;for(r=0;r=0;)e[n]=0;for(n=0;n=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()},o.prototype.divRemTo=function(e,t,n){var i=e.abs();if(!(i.t<=0)){var r=this.abs();if(r.t0?(i.lShiftTo(c,a),r.lShiftTo(c,n)):(i.copyTo(a),r.copyTo(n));var u=a.t,d=a[u-1];if(0!=d){var p=d*(1<1?a[u-2]>>this.F2:0),f=this.FV/p,g=(1<=0&&(n[n.t++]=1,n.subTo(b,n)),o.ONE.dlShiftTo(u,b),b.subTo(a,a);a.t=0;){var _=n[--y]==d?this.DM:Math.floor(n[y]*f+(n[y-1]+v)*g);if((n[y]+=a.am(0,_,n,x,0,u))<_)for(a.dlShiftTo(x,b),n.subTo(b,n);n[y]<--_;)n.subTo(b,n)}null!=t&&(n.drShiftTo(u,t),s!=h&&o.ZERO.subTo(t,t)),n.t=u,n.clamp(),c>0&&n.rShiftTo(c,n),s<0&&o.ZERO.subTo(n,n)}}},o.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(!(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},o.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},o.prototype.exp=function(e,t){if(e>4294967295||e<1)return o.ONE;var n=l(),i=l(),r=t.convert(this),a=m(e)-1;for(r.copyTo(n);--a>=0;)if(t.sqrTo(n,i),(e&1<0)t.mulTo(i,r,n);else{var s=n;n=i,i=s}return t.revert(n)},o.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var n,i=(1<0)for(o>o)>0&&(r=!0,a=d(n));s>=0;)o>(o+=this.DB-t)):(n=this[s]>>(o-=t)&i,o<=0&&(o+=this.DB,--s)),n>0&&(r=!0),r&&(a+=d(n));return r?a:"0"},o.prototype.negate=function(){var e=l();return o.ZERO.subTo(this,e),e},o.prototype.abs=function(){return this.s<0?this.negate():this},o.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(0!=(t=n-e.t))return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0},o.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+m(this[this.t-1]^this.s&this.DM)},o.prototype.mod=function(e){var t=l();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(o.ZERO)>0&&e.subTo(t,t),t},o.prototype.modPowInt=function(e,t){var n;return n=e<256||t.isEven()?new g(t):new v(t),this.exp(e,n)},o.ZERO=f(0),o.ONE=f(1),M.prototype.convert=T,M.prototype.revert=T,M.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n)},M.prototype.sqrTo=function(e,t){e.squareTo(t)},E.prototype.convert=function(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=l();return e.copyTo(t),this.reduce(t),t},E.prototype.revert=function(e){return e},E.prototype.reduce=function(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)},E.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n),this.reduce(n)},E.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)};var A=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],C=(1<<26)/A[A.length-1];o.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},o.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),n=Math.pow(e,t),i=f(n),r=l(),a=l(),s="";for(this.divRemTo(i,r,a);r.signum()>0;)s=(n+a.intValue()).toString(e).substr(1)+s,r.divRemTo(i,r,a);return a.intValue().toString(e)+s},o.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var n=this.chunkSize(t),i=Math.pow(t,n),r=!1,a=0,s=0,l=0;l=n&&(this.dMultiply(i),this.dAddOffset(s,0),a=0,s=0))}a>0&&(this.dMultiply(Math.pow(t,a)),this.dAddOffset(s,0)),r&&o.ZERO.subTo(this,this)},o.prototype.fromNumber=function(e,t,n){if("number"==typeof t)if(e<2)this.fromInt(1);else for(this.fromNumber(e,n),this.testBit(e-1)||this.bitwiseTo(o.ONE.shiftLeft(e-1),x,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(o.ONE.shiftLeft(e-1),this);else{var i=new Array,r=7&e;i.length=1+(e>>3),t.nextBytes(i),r>0?i[0]&=(1<>=this.DB;if(e.t>=this.DB;i+=this.s}else{for(i+=this.s;n>=this.DB;i+=e.s}t.s=i<0?-1:0,i>0?t[n++]=i:i<-1&&(t[n++]=this.DV+i),t.t=n,t.clamp()},o.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},o.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}},o.prototype.multiplyLowerTo=function(e,t,n){var i,r=Math.min(this.t+e.t,t);for(n.s=0,n.t=r;r>0;)n[--r]=0;for(i=n.t-this.t;r=0;)n[i]=0;for(i=Math.max(t-this.t,0);i0)if(0==t)n=this[0]%e;else for(var i=this.t-1;i>=0;--i)n=(t*n+this[i])%e;return n},o.prototype.millerRabin=function(e){var t=this.subtract(o.ONE),n=t.getLowestSetBit();if(n<=0)return!1;var i=t.shiftRight(n);(e=e+1>>1)>A.length&&(e=A.length);for(var r=l(),a=0;a>24},o.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},o.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},o.prototype.toByteArray=function(){var e=this.t,t=new Array;t[0]=this.s;var n,i=this.DB-e*this.DB%8,r=0;if(e-- >0)for(i>i)!=(this.s&this.DM)>>i&&(t[r++]=n|this.s<=0;)i<8?(n=(this[e]&(1<>(i+=this.DB-8)):(n=this[e]>>(i-=8)&255,i<=0&&(i+=this.DB,--e)),128&n&&(n|=-256),0==r&&(128&this.s)!=(128&n)&&++r,(r>0||n!=this.s)&&(t[r++]=n);return t},o.prototype.equals=function(e){return 0==this.compareTo(e)},o.prototype.min=function(e){return this.compareTo(e)<0?this:e},o.prototype.max=function(e){return this.compareTo(e)>0?this:e},o.prototype.and=function(e){var t=l();return this.bitwiseTo(e,y,t),t},o.prototype.or=function(e){var t=l();return this.bitwiseTo(e,x,t),t},o.prototype.xor=function(e){var t=l();return this.bitwiseTo(e,b,t),t},o.prototype.andNot=function(e){var t=l();return this.bitwiseTo(e,_,t),t},o.prototype.not=function(){for(var e=l(),t=0;t=this.t?0!=this.s:0!=(this[t]&1<1){var u=l();for(i.sqrTo(s[1],u);o<=c;)s[o]=l(),i.mulTo(u,s[o-2],s[o]),o+=2}var d,p,y=e.t-1,x=!0,b=l();for(r=m(e[y])-1;y>=0;){for(r>=h?d=e[y]>>r-h&c:(d=(e[y]&(1<0&&(d|=e[y-1]>>this.DB+r-h)),o=n;!(1&d);)d>>=1,--o;if((r-=o)<0&&(r+=this.DB,--y),x)s[d].copyTo(a),x=!1;else{for(;o>1;)i.sqrTo(a,b),i.sqrTo(b,a),o-=2;o>0?i.sqrTo(a,b):(p=a,a=b,b=p),i.mulTo(b,s[d],a)}for(;y>=0&&!(e[y]&1<=0?(n.subTo(i,n),t&&r.subTo(s,r),a.subTo(l,a)):(i.subTo(n,i),t&&s.subTo(r,s),l.subTo(a,l))}return 0!=i.compareTo(o.ONE)?o.ZERO:l.compareTo(e)>=0?l.subtract(e):l.signum()<0?(l.addTo(e,l),l.signum()<0?l.add(e):l):l},o.prototype.pow=function(e){return this.exp(e,new M)},o.prototype.gcd=function(e){var t=this.s<0?this.negate():this.clone(),n=e.s<0?e.negate():e.clone();if(t.compareTo(n)<0){var i=t;t=n,n=i}var r=t.getLowestSetBit(),a=n.getLowestSetBit();if(a<0)return t;for(r0&&(t.rShiftTo(a,t),n.rShiftTo(a,n));t.signum()>0;)(r=t.getLowestSetBit())>0&&t.rShiftTo(r,t),(r=n.getLowestSetBit())>0&&n.rShiftTo(r,n),t.compareTo(n)>=0?(t.subTo(n,t),t.rShiftTo(1,t)):(n.subTo(t,n),n.rShiftTo(1,n));return a>0&&n.lShiftTo(a,n),n},o.prototype.isProbablePrime=function(e){var t,n=this.abs();if(1==n.t&&n[0]<=A[A.length-1]){for(t=0;t0},P.op_LessThan=function(e,t){return e.compareTo(t)<0},P.op_Addition=function(e,t){return new P(e,void 0,void 0).add(new P(t,void 0,void 0))},P.op_Subtraction=function(e,t){return new P(e,void 0,void 0).subtract(new P(t,void 0,void 0))},P.Int128Mul=function(e,t){return new P(e,void 0,void 0).multiply(new P(t,void 0,void 0))},P.op_Division=function(e,t){return e.divide(t)},P.prototype.ToDouble=function(){return parseFloat(this.toString())};var R=function(e,t){var n;if(void 0===Object.getOwnPropertyNames){for(n in t.prototype)(void 0===e.prototype[n]||e.prototype[n]===Object.prototype[n])&&(e.prototype[n]=t.prototype[n]);for(n in t)void 0===e[n]&&(e[n]=t[n]);e.$baseCtor=t}else{for(var i=Object.getOwnPropertyNames(t.prototype),r=0;r0?this.m_Childs[0]:this.GetNextSiblingUp()},n.PolyNode.prototype.GetNextSiblingUp=function(){return null===this.m_Parent?null:this.m_Index===this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+1]},n.PolyNode.prototype.Childs=function(){return this.m_Childs},n.PolyNode.prototype.Parent=function(){return this.m_Parent},n.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()},n.PolyTree=function(){this.m_AllPolys=[],n.PolyNode.call(this)},n.PolyTree.prototype.Clear=function(){for(var e=0,t=this.m_AllPolys.length;e0?this.m_Childs[0]:null},n.PolyTree.prototype.Total=function(){var e=this.m_AllPolys.length;return e>0&&this.m_Childs[0]!==this.m_AllPolys[0]&&e--,e},R(n.PolyTree,n.PolyNode),n.Math_Abs_Int64=n.Math_Abs_Int32=n.Math_Abs_Double=function(e){return Math.abs(e)},n.Math_Max_Int32_Int32=function(e,t){return Math.max(e,t)},s.msie||s.opera||s.safari?n.Cast_Int32=function(e){return 0|e}:n.Cast_Int32=function(e){return~~e},void 0===Number.toInteger&&(Number.toInteger=null),s.chrome?n.Cast_Int64=function(e){return e<-2147483648||e>2147483647?e<0?Math.ceil(e):Math.floor(e):~~e}:s.firefox&&"function"==typeof Number.toInteger?n.Cast_Int64=function(e){return Number.toInteger(e)}:s.msie7||s.msie8?n.Cast_Int64=function(e){return parseInt(e,10)}:s.msie?n.Cast_Int64=function(e){return e<-2147483648||e>2147483647?e<0?Math.ceil(e):Math.floor(e):0|e}:n.Cast_Int64=function(e){return e<0?Math.ceil(e):Math.floor(e)},n.Clear=function(e){e.length=0},n.PI=3.141592653589793,n.PI2=6.283185307179586,n.IntPoint=function(){var e=arguments,t=e.length;if(this.X=0,this.Y=0,n.use_xyz)if(this.Z=0,3===t)this.X=e[0],this.Y=e[1],this.Z=e[2];else if(2===t)this.X=e[0],this.Y=e[1],this.Z=0;else if(1===t)if(e[0]instanceof n.DoublePoint){var i=e[0];this.X=n.Clipper.Round(i.X),this.Y=n.Clipper.Round(i.Y),this.Z=0}else void 0===(r=e[0]).Z&&(r.Z=0),this.X=r.X,this.Y=r.Y,this.Z=r.Z;else this.X=0,this.Y=0,this.Z=0;else if(2===t)this.X=e[0],this.Y=e[1];else if(1===t)if(e[0]instanceof n.DoublePoint)i=e[0],this.X=n.Clipper.Round(i.X),this.Y=n.Clipper.Round(i.Y);else{var r=e[0];this.X=r.X,this.Y=r.Y}else this.X=0,this.Y=0},n.IntPoint.op_Equality=function(e,t){return e.X===t.X&&e.Y===t.Y},n.IntPoint.op_Inequality=function(e,t){return e.X!==t.X||e.Y!==t.Y},n.IntPoint0=function(){this.X=0,this.Y=0,n.use_xyz&&(this.Z=0)},n.IntPoint0.prototype=n.IntPoint.prototype,n.IntPoint1=function(e){this.X=e.X,this.Y=e.Y,n.use_xyz&&(void 0===e.Z?this.Z=0:this.Z=e.Z)},n.IntPoint1.prototype=n.IntPoint.prototype,n.IntPoint1dp=function(e){this.X=n.Clipper.Round(e.X),this.Y=n.Clipper.Round(e.Y),n.use_xyz&&(this.Z=0)},n.IntPoint1dp.prototype=n.IntPoint.prototype,n.IntPoint2=function(e,t,i){this.X=e,this.Y=t,n.use_xyz&&(this.Z=void 0===i?0:i)},n.IntPoint2.prototype=n.IntPoint.prototype,n.IntRect=function(){var e=arguments,t=e.length;if(4===t)this.left=e[0],this.top=e[1],this.right=e[2],this.bottom=e[3];else if(1===t){var n=e[0];this.left=n.left,this.top=n.top,this.right=n.right,this.bottom=n.bottom}else this.left=0,this.top=0,this.right=0,this.bottom=0},n.IntRect0=function(){this.left=0,this.top=0,this.right=0,this.bottom=0},n.IntRect0.prototype=n.IntRect.prototype,n.IntRect1=function(e){this.left=e.left,this.top=e.top,this.right=e.right,this.bottom=e.bottom},n.IntRect1.prototype=n.IntRect.prototype,n.IntRect4=function(e,t,n,i){this.left=e,this.top=t,this.right=n,this.bottom=i},n.IntRect4.prototype=n.IntRect.prototype,n.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3},n.PolyType={ptSubject:0,ptClip:1},n.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3},n.JoinType={jtSquare:0,jtRound:1,jtMiter:2},n.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4},n.EdgeSide={esLeft:0,esRight:1},n.Direction={dRightToLeft:0,dLeftToRight:1},n.TEdge=function(){this.Bot=new n.IntPoint0,this.Curr=new n.IntPoint0,this.Top=new n.IntPoint0,this.Delta=new n.IntPoint0,this.Dx=0,this.PolyTyp=n.PolyType.ptSubject,this.Side=n.EdgeSide.esLeft,this.WindDelta=0,this.WindCnt=0,this.WindCnt2=0,this.OutIdx=0,this.Next=null,this.Prev=null,this.NextInLML=null,this.NextInAEL=null,this.PrevInAEL=null,this.NextInSEL=null,this.PrevInSEL=null},n.IntersectNode=function(){this.Edge1=null,this.Edge2=null,this.Pt=new n.IntPoint0},n.MyIntersectNodeSort=function(){},n.MyIntersectNodeSort.Compare=function(e,t){var n=t.Pt.Y-e.Pt.Y;return n>0?1:n<0?-1:0},n.LocalMinima=function(){this.Y=0,this.LeftBound=null,this.RightBound=null,this.Next=null},n.Scanbeam=function(){this.Y=0,this.Next=null},n.Maxima=function(){this.X=0,this.Next=null,this.Prev=null},n.OutRec=function(){this.Idx=0,this.IsHole=!1,this.IsOpen=!1,this.FirstLeft=null,this.Pts=null,this.BottomPt=null,this.PolyNode=null},n.OutPt=function(){this.Idx=0,this.Pt=new n.IntPoint0,this.Next=null,this.Prev=null},n.Join=function(){this.OutPt1=null,this.OutPt2=null,this.OffPt=new n.IntPoint0},n.ClipperBase=function(){this.m_MinimaList=null,this.m_CurrentLM=null,this.m_edges=new Array,this.m_UseFullRange=!1,this.m_HasOpenPaths=!1,this.PreserveCollinear=!1,this.m_Scanbeam=null,this.m_PolyOuts=null,this.m_ActiveEdges=null},n.ClipperBase.horizontal=-9007199254740992,n.ClipperBase.Skip=-2,n.ClipperBase.Unassigned=-1,n.ClipperBase.tolerance=1e-20,n.ClipperBase.loRange=47453132,n.ClipperBase.hiRange=0xfffffffffffff,n.ClipperBase.near_zero=function(e){return e>-n.ClipperBase.tolerance&&et.X==e.Xt.Y==e.Yt.X==e.Xt.Y==e.Yn.ClipperBase.hiRange||e.Y>n.ClipperBase.hiRange||-e.X>n.ClipperBase.hiRange||-e.Y>n.ClipperBase.hiRange)&&n.Error("Coordinate outside allowed range in RangeTest()."):(e.X>n.ClipperBase.loRange||e.Y>n.ClipperBase.loRange||-e.X>n.ClipperBase.loRange||-e.Y>n.ClipperBase.loRange)&&(t.Value=!0,this.RangeTest(e,t))},n.ClipperBase.prototype.InitEdge=function(e,t,i,r){e.Next=t,e.Prev=i,e.Curr.X=r.X,e.Curr.Y=r.Y,n.use_xyz&&(e.Curr.Z=r.Z),e.OutIdx=-1},n.ClipperBase.prototype.InitEdge2=function(e,t){e.Curr.Y>=e.Next.Curr.Y?(e.Bot.X=e.Curr.X,e.Bot.Y=e.Curr.Y,n.use_xyz&&(e.Bot.Z=e.Curr.Z),e.Top.X=e.Next.Curr.X,e.Top.Y=e.Next.Curr.Y,n.use_xyz&&(e.Top.Z=e.Next.Curr.Z)):(e.Top.X=e.Curr.X,e.Top.Y=e.Curr.Y,n.use_xyz&&(e.Top.Z=e.Curr.Z),e.Bot.X=e.Next.Curr.X,e.Bot.Y=e.Next.Curr.Y,n.use_xyz&&(e.Bot.Z=e.Next.Curr.Z)),this.SetDx(e),e.PolyTyp=t},n.ClipperBase.prototype.FindNextLocMin=function(e){for(var t;;){for(;n.IntPoint.op_Inequality(e.Bot,e.Prev.Bot)||n.IntPoint.op_Equality(e.Curr,e.Top);)e=e.Next;if(e.Dx!==n.ClipperBase.horizontal&&e.Prev.Dx!==n.ClipperBase.horizontal)break;for(;e.Prev.Dx===n.ClipperBase.horizontal;)e=e.Prev;for(t=e;e.Dx===n.ClipperBase.horizontal;)e=e.Next;if(e.Top.Y!==e.Prev.Bot.Y){t.Prev.Bot.Xa.Next.Top.X&&(a=r.Prev)}for(;e!==a;)e.NextInLML=e.Next,e.Dx===n.ClipperBase.horizontal&&e!==i&&e.Bot.X!==e.Prev.Top.X&&this.ReverseHorizontal(e),e=e.Next;e.Dx===n.ClipperBase.horizontal&&e!==i&&e.Bot.X!==e.Prev.Top.X&&this.ReverseHorizontal(e),a=a.Next}else{for(;a.Top.Y===a.Prev.Bot.Y&&a.Prev.OutIdx!==n.ClipperBase.Skip;)a=a.Prev;if(a.Dx===n.ClipperBase.horizontal&&a.Prev.OutIdx!==n.ClipperBase.Skip){for(r=a;r.Next.Dx===n.ClipperBase.horizontal;)r=r.Next;(r.Next.Top.X===a.Prev.Top.X||r.Next.Top.X>a.Prev.Top.X)&&(a=r.Next)}for(;e!==a;)e.NextInLML=e.Prev,e.Dx===n.ClipperBase.horizontal&&e!==i&&e.Bot.X!==e.Next.Top.X&&this.ReverseHorizontal(e),e=e.Prev;e.Dx===n.ClipperBase.horizontal&&e!==i&&e.Bot.X!==e.Next.Top.X&&this.ReverseHorizontal(e),a=a.Prev}return a},n.ClipperBase.prototype.AddPath=function(e,t,i){n.use_lines?!i&&t===n.PolyType.ptClip&&n.Error("AddPath: Open paths must be subject."):i||n.Error("AddPath: Open paths have been disabled.");var r=e.length-1;if(i)for(;r>0&&n.IntPoint.op_Equality(e[r],e[0]);)--r;for(;r>0&&n.IntPoint.op_Equality(e[r],e[r-1]);)--r;if(i&&r<2||!i&&r<1)return!1;for(var a=new Array,s=0;s<=r;s++)a.push(new n.TEdge);var o=!0;a[1].Curr.X=e[1].X,a[1].Curr.Y=e[1].Y,n.use_xyz&&(a[1].Curr.Z=e[1].Z);var l={Value:this.m_UseFullRange};for(this.RangeTest(e[0],l),this.m_UseFullRange=l.Value,l.Value=this.m_UseFullRange,this.RangeTest(e[r],l),this.m_UseFullRange=l.Value,this.InitEdge(a[0],a[1],a[r],e[0]),this.InitEdge(a[r],a[0],a[r-1],e[r]),s=r-1;s>=1;--s)l.Value=this.m_UseFullRange,this.RangeTest(e[s],l),this.m_UseFullRange=l.Value,this.InitEdge(a[s],a[s+1],a[s-1],e[s]);for(var h=a[0],c=h,u=h;;)if(c.Curr!==c.Next.Curr||!i&&c.Next===h){if(c.Prev===c.Next)break;if(!i||!n.ClipperBase.SlopesEqual4(c.Prev.Curr,c.Curr,c.Next.Curr,this.m_UseFullRange)||this.PreserveCollinear&&this.Pt2IsBetweenPt1AndPt3(c.Prev.Curr,c.Curr,c.Next.Curr)){if((c=c.Next)===u||!i&&c.Next===h)break}else c===h&&(h=c.Next),u=c=(c=this.RemoveEdge(c)).Prev}else{if(c===c.Next)break;c===h&&(h=c.Next),u=c=this.RemoveEdge(c)}if(!i&&c===c.Next||i&&c.Prev===c.Next)return!1;i||(this.m_HasOpenPaths=!0,h.Prev.OutIdx=n.ClipperBase.Skip),c=h;do{this.InitEdge2(c,t),c=c.Next,o&&c.Curr.Y!==h.Curr.Y&&(o=!1)}while(c!==h);if(o){if(i)return!1;for(c.Prev.OutIdx=n.ClipperBase.Skip,(f=new n.LocalMinima).Next=null,f.Y=c.Bot.Y,f.LeftBound=null,f.RightBound=c,f.RightBound.Side=n.EdgeSide.esRight,f.RightBound.WindDelta=0;c.Bot.X!==c.Prev.Top.X&&this.ReverseHorizontal(c),c.Next.OutIdx!==n.ClipperBase.Skip;)c.NextInLML=c.Next,c=c.Next;return this.InsertLocalMinima(f),this.m_edges.push(a),!0}this.m_edges.push(a);var d,p=null;for(n.IntPoint.op_Equality(c.Prev.Bot,c.Prev.Top)&&(c=c.Next);(c=this.FindNextLocMin(c))!==p;){var f;null===p&&(p=c),(f=new n.LocalMinima).Next=null,f.Y=c.Bot.Y,c.Dxe.X==t.Xe.Y==t.Y=this.m_MinimaList.Y)e.Next=this.m_MinimaList,this.m_MinimaList=e;else{for(var t=this.m_MinimaList;null!==t.Next&&e.Ythis.m_Scanbeam.Y){var t=new n.Scanbeam;t.Y=e,t.Next=this.m_Scanbeam,this.m_Scanbeam=t}else{for(var i=this.m_Scanbeam;null!==i.Next&&e<=i.Next.Y;)i=i.Next;if(e===i.Y)return;var r=new n.Scanbeam;r.Y=e,r.Next=i.Next,i.Next=r}},n.ClipperBase.prototype.PopScanbeam=function(e){return null===this.m_Scanbeam?(e.v=0,!1):(e.v=this.m_Scanbeam.Y,this.m_Scanbeam=this.m_Scanbeam.Next,!0)},n.ClipperBase.prototype.LocalMinimaPending=function(){return null!==this.m_CurrentLM},n.ClipperBase.prototype.CreateOutRec=function(){var e=new n.OutRec;return e.Idx=n.ClipperBase.Unassigned,e.IsHole=!1,e.IsOpen=!1,e.FirstLeft=null,e.Pts=null,e.BottomPt=null,e.PolyNode=null,this.m_PolyOuts.push(e),e.Idx=this.m_PolyOuts.length-1,e},n.ClipperBase.prototype.DisposeOutRec=function(e){var t=this.m_PolyOuts[e];t.Pts=null,t=null,this.m_PolyOuts[e]=null},n.ClipperBase.prototype.UpdateEdgeIntoAEL=function(e){null===e.NextInLML&&n.Error("UpdateEdgeIntoAEL: invalid call");var t=e.PrevInAEL,i=e.NextInAEL;return e.NextInLML.OutIdx=e.OutIdx,null!==t?t.NextInAEL=e.NextInLML:this.m_ActiveEdges=e.NextInLML,null!==i&&(i.PrevInAEL=e.NextInLML),e.NextInLML.Side=e.Side,e.NextInLML.WindDelta=e.WindDelta,e.NextInLML.WindCnt=e.WindCnt,e.NextInLML.WindCnt2=e.WindCnt2,(e=e.NextInLML).Curr.X=e.Bot.X,e.Curr.Y=e.Bot.Y,e.PrevInAEL=t,e.NextInAEL=i,n.ClipperBase.IsHorizontal(e)||this.InsertScanbeam(e.Top.Y),e},n.ClipperBase.prototype.SwapPositionsInAEL=function(e,t){if(e.NextInAEL!==e.PrevInAEL&&t.NextInAEL!==t.PrevInAEL){if(e.NextInAEL===t){var n=t.NextInAEL;null!==n&&(n.PrevInAEL=e);var i=e.PrevInAEL;null!==i&&(i.NextInAEL=t),t.PrevInAEL=i,t.NextInAEL=e,e.PrevInAEL=t,e.NextInAEL=n}else if(t.NextInAEL===e){var r=e.NextInAEL;null!==r&&(r.PrevInAEL=t);var a=t.PrevInAEL;null!==a&&(a.NextInAEL=e),e.PrevInAEL=a,e.NextInAEL=t,t.PrevInAEL=e,t.NextInAEL=r}else{var s=e.NextInAEL,o=e.PrevInAEL;e.NextInAEL=t.NextInAEL,null!==e.NextInAEL&&(e.NextInAEL.PrevInAEL=e),e.PrevInAEL=t.PrevInAEL,null!==e.PrevInAEL&&(e.PrevInAEL.NextInAEL=e),t.NextInAEL=s,null!==t.NextInAEL&&(t.NextInAEL.PrevInAEL=t),t.PrevInAEL=o,null!==t.PrevInAEL&&(t.PrevInAEL.NextInAEL=t)}null===e.PrevInAEL?this.m_ActiveEdges=e:null===t.PrevInAEL&&(this.m_ActiveEdges=t)}},n.ClipperBase.prototype.DeleteFromAEL=function(e){var t=e.PrevInAEL,n=e.NextInAEL;null===t&&null===n&&e!==this.m_ActiveEdges||(null!==t?t.NextInAEL=n:this.m_ActiveEdges=n,null!==n&&(n.PrevInAEL=t),e.NextInAEL=null,e.PrevInAEL=null)},n.Clipper=function(e){void 0===e&&(e=0),this.m_PolyOuts=null,this.m_ClipType=n.ClipType.ctIntersection,this.m_Scanbeam=null,this.m_Maxima=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=null,this.m_IntersectNodeComparer=null,this.m_ExecuteLocked=!1,this.m_ClipFillType=n.PolyFillType.pftEvenOdd,this.m_SubjFillType=n.PolyFillType.pftEvenOdd,this.m_Joins=null,this.m_GhostJoins=null,this.m_UsingPolyTree=!1,this.ReverseSolution=!1,this.StrictlySimple=!1,n.ClipperBase.call(this),this.m_Scanbeam=null,this.m_Maxima=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=new Array,this.m_IntersectNodeComparer=n.MyIntersectNodeSort.Compare,this.m_ExecuteLocked=!1,this.m_UsingPolyTree=!1,this.m_PolyOuts=new Array,this.m_Joins=new Array,this.m_GhostJoins=new Array,this.ReverseSolution=0!=(1&e),this.StrictlySimple=0!=(2&e),this.PreserveCollinear=0!=(4&e),n.use_xyz&&(this.ZFillFunction=null)},n.Clipper.ioReverseSolution=1,n.Clipper.ioStrictlySimple=2,n.Clipper.ioPreserveCollinear=4,n.Clipper.prototype.Clear=function(){0!==this.m_edges.length&&(this.DisposeAllPolyPts(),n.ClipperBase.prototype.Clear.call(this))},n.Clipper.prototype.InsertMaxima=function(e){var t=new n.Maxima;if(t.X=e,null===this.m_Maxima)this.m_Maxima=t,this.m_Maxima.Next=null,this.m_Maxima.Prev=null;else if(e=i.Next.X;)i=i.Next;if(e===i.X)return;t.Next=i.Next,t.Prev=i,null!==i.Next&&(i.Next.Prev=t),i.Next=t}},n.Clipper.prototype.Execute=function(){var e=arguments,t=e.length,i=e[1]instanceof n.PolyTree;if(4===t&&!i){var r=e[0],a=e[1],s=e[2],o=e[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&n.Error("Error: PolyTree struct is needed for open path clipping."),this.m_ExecuteLocked=!0,n.Clear(a),this.m_SubjFillType=s,this.m_ClipFillType=o,this.m_ClipType=r,this.m_UsingPolyTree=!1;try{(h=this.ExecuteInternal())&&this.BuildResult(a)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return h}if(4===t&&i){r=e[0];var l=e[1];if(s=e[2],o=e[3],this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0,this.m_SubjFillType=s,this.m_ClipFillType=o,this.m_ClipType=r,this.m_UsingPolyTree=!0;try{var h;(h=this.ExecuteInternal())&&this.BuildResult2(l)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return h}return 2!==t||i?2===t&&i?(r=e[0],l=e[1],this.Execute(r,l,n.PolyFillType.pftEvenOdd,n.PolyFillType.pftEvenOdd)):void 0:(r=e[0],a=e[1],this.Execute(r,a,n.PolyFillType.pftEvenOdd,n.PolyFillType.pftEvenOdd))},n.Clipper.prototype.FixHoleLinkage=function(e){if(null!==e.FirstLeft&&(e.IsHole===e.FirstLeft.IsHole||null===e.FirstLeft.Pts)){for(var t=e.FirstLeft;null!==t&&(t.IsHole===e.IsHole||null===t.Pts);)t=t.FirstLeft;e.FirstLeft=t}},n.Clipper.prototype.ExecuteInternal=function(){try{this.Reset(),this.m_SortedEdges=null,this.m_Maxima=null;var e,t,n,i={},r={};if(!this.PopScanbeam(i))return!1;for(this.InsertLocalMinimaIntoAEL(i.v);this.PopScanbeam(r)||this.LocalMinimaPending();){if(this.ProcessHorizontals(),this.m_GhostJoins.length=0,!this.ProcessIntersections(r.v))return!1;this.ProcessEdgesAtTopOfScanbeam(r.v),i.v=r.v,this.InsertLocalMinimaIntoAEL(i.v)}for(t=0,n=this.m_PolyOuts.length;t0&&this.ReversePolyPtLinks(e.Pts);for(this.JoinCommonEdges(),t=0,n=this.m_PolyOuts.length;t0&&0!==i.WindDelta)for(var s=0,o=this.m_GhostJoins.length;s=0&&null!==t.PrevInAEL&&t.PrevInAEL.Curr.X===t.Bot.X&&t.PrevInAEL.OutIdx>=0&&n.ClipperBase.SlopesEqual5(t.PrevInAEL.Curr,t.PrevInAEL.Top,t.Curr,t.Top,this.m_UseFullRange)&&0!==t.WindDelta&&0!==t.PrevInAEL.WindDelta){var h=this.AddOutPt(t.PrevInAEL,t.Bot);this.AddJoin(a,h,t.Top)}if(t.NextInAEL!==i){i.OutIdx>=0&&i.PrevInAEL.OutIdx>=0&&n.ClipperBase.SlopesEqual5(i.PrevInAEL.Curr,i.PrevInAEL.Top,i.Curr,i.Top,this.m_UseFullRange)&&0!==i.WindDelta&&0!==i.PrevInAEL.WindDelta&&(h=this.AddOutPt(i.PrevInAEL,i.Bot),this.AddJoin(a,h,i.Top));var c=t.NextInAEL;if(null!==c)for(;c!==i;)this.IntersectEdges(i,c,t.Curr),c=c.NextInAEL}}}},n.Clipper.prototype.InsertEdgeIntoAEL=function(e,t){if(null===this.m_ActiveEdges)e.PrevInAEL=null,e.NextInAEL=null,this.m_ActiveEdges=e;else if(null===t&&this.E2InsertsBeforeE1(this.m_ActiveEdges,e))e.PrevInAEL=null,e.NextInAEL=this.m_ActiveEdges,this.m_ActiveEdges.PrevInAEL=e,this.m_ActiveEdges=e;else{for(null===t&&(t=this.m_ActiveEdges);null!==t.NextInAEL&&!this.E2InsertsBeforeE1(t.NextInAEL,e);)t=t.NextInAEL;e.NextInAEL=t.NextInAEL,null!==t.NextInAEL&&(t.NextInAEL.PrevInAEL=e),e.PrevInAEL=t,t.NextInAEL=e}},n.Clipper.prototype.E2InsertsBeforeE1=function(e,t){return t.Curr.X===e.Curr.X?t.Top.Y>e.Top.Y?t.Top.Xn.Clipper.TopX(t,e.Top.Y):t.Curr.X0;default:return e.WindCnt2<0}case n.ClipType.ctUnion:switch(i){case n.PolyFillType.pftEvenOdd:case n.PolyFillType.pftNonZero:return 0===e.WindCnt2;case n.PolyFillType.pftPositive:return e.WindCnt2<=0;default:return e.WindCnt2>=0}case n.ClipType.ctDifference:if(e.PolyTyp===n.PolyType.ptSubject)switch(i){case n.PolyFillType.pftEvenOdd:case n.PolyFillType.pftNonZero:return 0===e.WindCnt2;case n.PolyFillType.pftPositive:return e.WindCnt2<=0;default:return e.WindCnt2>=0}else switch(i){case n.PolyFillType.pftEvenOdd:case n.PolyFillType.pftNonZero:return 0!==e.WindCnt2;case n.PolyFillType.pftPositive:return e.WindCnt2>0;default:return e.WindCnt2<0}case n.ClipType.ctXor:if(0!==e.WindDelta)return!0;switch(i){case n.PolyFillType.pftEvenOdd:case n.PolyFillType.pftNonZero:return 0===e.WindCnt2;case n.PolyFillType.pftPositive:return e.WindCnt2<=0;default:return e.WindCnt2>=0}}return!0},n.Clipper.prototype.SetWindingCount=function(e){for(var t=e.PrevInAEL;null!==t&&(t.PolyTyp!==e.PolyTyp||0===t.WindDelta);)t=t.PrevInAEL;if(null===t){var i=e.PolyTyp===n.PolyType.ptSubject?this.m_SubjFillType:this.m_ClipFillType;0===e.WindDelta?e.WindCnt=i===n.PolyFillType.pftNegative?-1:1:e.WindCnt=e.WindDelta,e.WindCnt2=0,t=this.m_ActiveEdges}else if(0===e.WindDelta&&this.m_ClipType!==n.ClipType.ctUnion)e.WindCnt=1,e.WindCnt2=t.WindCnt2,t=t.NextInAEL;else if(this.IsEvenOddFillType(e)){if(0===e.WindDelta){for(var r=!0,a=t.PrevInAEL;null!==a;)a.PolyTyp===t.PolyTyp&&0!==a.WindDelta&&(r=!r),a=a.PrevInAEL;e.WindCnt=r?0:1}else e.WindCnt=e.WindDelta;e.WindCnt2=t.WindCnt2,t=t.NextInAEL}else t.WindCnt*t.WindDelta<0?Math.abs(t.WindCnt)>1?t.WindDelta*e.WindDelta<0?e.WindCnt=t.WindCnt:e.WindCnt=t.WindCnt+e.WindDelta:e.WindCnt=0===e.WindDelta?1:e.WindDelta:0===e.WindDelta?e.WindCnt=t.WindCnt<0?t.WindCnt-1:t.WindCnt+1:t.WindDelta*e.WindDelta<0?e.WindCnt=t.WindCnt:e.WindCnt=t.WindCnt+e.WindDelta,e.WindCnt2=t.WindCnt2,t=t.NextInAEL;if(this.IsEvenOddAltFillType(e))for(;t!==e;)0!==t.WindDelta&&(e.WindCnt2=0===e.WindCnt2?1:0),t=t.NextInAEL;else for(;t!==e;)e.WindCnt2+=t.WindDelta,t=t.NextInAEL},n.Clipper.prototype.AddEdgeToSEL=function(e){null===this.m_SortedEdges?(this.m_SortedEdges=e,e.PrevInSEL=null,e.NextInSEL=null):(e.NextInSEL=this.m_SortedEdges,e.PrevInSEL=null,this.m_SortedEdges.PrevInSEL=e,this.m_SortedEdges=e)},n.Clipper.prototype.PopEdgeFromSEL=function(e){if(e.v=this.m_SortedEdges,null===e.v)return!1;var t=e.v;return this.m_SortedEdges=e.v.NextInSEL,null!==this.m_SortedEdges&&(this.m_SortedEdges.PrevInSEL=null),t.NextInSEL=null,t.PrevInSEL=null,!0},n.Clipper.prototype.CopyAELToSEL=function(){var e=this.m_ActiveEdges;for(this.m_SortedEdges=e;null!==e;)e.PrevInSEL=e.PrevInAEL,e.NextInSEL=e.NextInAEL,e=e.NextInAEL},n.Clipper.prototype.SwapPositionsInSEL=function(e,t){if(!(null===e.NextInSEL&&null===e.PrevInSEL||null===t.NextInSEL&&null===t.PrevInSEL)){if(e.NextInSEL===t)null!==(n=t.NextInSEL)&&(n.PrevInSEL=e),null!==(i=e.PrevInSEL)&&(i.NextInSEL=t),t.PrevInSEL=i,t.NextInSEL=e,e.PrevInSEL=t,e.NextInSEL=n;else if(t.NextInSEL===e)null!==(n=e.NextInSEL)&&(n.PrevInSEL=t),null!==(i=t.PrevInSEL)&&(i.NextInSEL=e),e.PrevInSEL=i,e.NextInSEL=t,t.PrevInSEL=e,t.NextInSEL=n;else{var n=e.NextInSEL,i=e.PrevInSEL;e.NextInSEL=t.NextInSEL,null!==e.NextInSEL&&(e.NextInSEL.PrevInSEL=e),e.PrevInSEL=t.PrevInSEL,null!==e.PrevInSEL&&(e.PrevInSEL.NextInSEL=e),t.NextInSEL=n,null!==t.NextInSEL&&(t.NextInSEL.PrevInSEL=t),t.PrevInSEL=i,null!==t.PrevInSEL&&(t.PrevInSEL.NextInSEL=t)}null===e.PrevInSEL?this.m_SortedEdges=e:null===t.PrevInSEL&&(this.m_SortedEdges=t)}},n.Clipper.prototype.AddLocalMaxPoly=function(e,t,n){this.AddOutPt(e,n),0===t.WindDelta&&this.AddOutPt(t,n),e.OutIdx===t.OutIdx?(e.OutIdx=-1,t.OutIdx=-1):e.OutIdxt.Dx?(r=this.AddOutPt(e,i),t.OutIdx=e.OutIdx,e.Side=n.EdgeSide.esLeft,t.Side=n.EdgeSide.esRight,s=(a=e).PrevInAEL===t?t.PrevInAEL:a.PrevInAEL):(r=this.AddOutPt(t,i),e.OutIdx=t.OutIdx,e.Side=n.EdgeSide.esRight,t.Side=n.EdgeSide.esLeft,s=(a=t).PrevInAEL===e?e.PrevInAEL:a.PrevInAEL),null!==s&&s.OutIdx>=0&&s.Top.Yt&&(r=e,e=t,t=r),n>i&&(r=n,n=i,i=r),e=0&&0!==n.WindDelta&&(null===i?i=n:i.OutIdx===n.OutIdx&&(i=null)),n=n.PrevInAEL;null===i?(t.FirstLeft=null,t.IsHole=!1):(t.FirstLeft=this.m_PolyOuts[i.OutIdx],t.IsHole=!t.FirstLeft.IsHole)},n.Clipper.prototype.GetDx=function(e,t){return e.Y===t.Y?n.ClipperBase.horizontal:(t.X-e.X)/(t.Y-e.Y)},n.Clipper.prototype.FirstIsBottomPt=function(e,t){for(var i=e.Prev;n.IntPoint.op_Equality(i.Pt,e.Pt)&&i!==e;)i=i.Prev;var r=Math.abs(this.GetDx(e.Pt,i.Pt));for(i=e.Next;n.IntPoint.op_Equality(i.Pt,e.Pt)&&i!==e;)i=i.Next;var a=Math.abs(this.GetDx(e.Pt,i.Pt));for(i=t.Prev;n.IntPoint.op_Equality(i.Pt,t.Pt)&&i!==t;)i=i.Prev;var s=Math.abs(this.GetDx(t.Pt,i.Pt));for(i=t.Next;n.IntPoint.op_Equality(i.Pt,t.Pt)&&i!==t;)i=i.Next;var o=Math.abs(this.GetDx(t.Pt,i.Pt));return Math.max(r,a)===Math.max(s,o)&&Math.min(r,a)===Math.min(s,o)?this.Area(e)>0:r>=s&&r>=o||a>=s&&a>=o},n.Clipper.prototype.GetBottomPt=function(e){for(var t=null,i=e.Next;i!==e;)i.Pt.Y>e.Pt.Y?(e=i,t=null):i.Pt.Y===e.Pt.Y&&i.Pt.X<=e.Pt.X&&(i.Pt.Xi.Pt.Y?e:n.Pt.Yi.Pt.X||n.Next===n?t:i.Next===i||this.FirstIsBottomPt(n,i)?e:t},n.Clipper.prototype.OutRec1RightOfOutRec2=function(e,t){do{if((e=e.FirstLeft)===t)return!0}while(null!==e);return!1},n.Clipper.prototype.GetOutRec=function(e){for(var t=this.m_PolyOuts[e];t!==this.m_PolyOuts[t.Idx];)t=this.m_PolyOuts[t.Idx];return t},n.Clipper.prototype.AppendPolygon=function(e,t){var i,r=this.m_PolyOuts[e.OutIdx],a=this.m_PolyOuts[t.OutIdx];i=this.OutRec1RightOfOutRec2(r,a)?a:this.OutRec1RightOfOutRec2(a,r)?r:this.GetLowermostRec(r,a);var s=r.Pts,o=s.Prev,l=a.Pts,h=l.Prev;e.Side===n.EdgeSide.esLeft?t.Side===n.EdgeSide.esLeft?(this.ReversePolyPtLinks(l),l.Next=s,s.Prev=l,o.Next=h,h.Prev=o,r.Pts=h):(h.Next=s,s.Prev=h,l.Prev=o,o.Next=l,r.Pts=l):t.Side===n.EdgeSide.esRight?(this.ReversePolyPtLinks(l),o.Next=h,h.Prev=o,l.Next=s,s.Prev=l):(o.Next=l,l.Prev=o,s.Prev=h,h.Next=s),r.BottomPt=null,i===a&&(a.FirstLeft!==r&&(r.FirstLeft=a.FirstLeft),r.IsHole=a.IsHole),a.Pts=null,a.BottomPt=null,a.FirstLeft=r;var c=e.OutIdx,u=t.OutIdx;e.OutIdx=-1,t.OutIdx=-1;for(var d=this.m_ActiveEdges;null!==d;){if(d.OutIdx===u){d.OutIdx=c,d.Side=e.Side;break}d=d.NextInAEL}a.Idx=r.Idx},n.Clipper.prototype.ReversePolyPtLinks=function(e){if(null!==e){var t,n;t=e;do{n=t.Next,t.Next=t.Prev,t.Prev=n,t=n}while(t!==e)}},n.Clipper.SwapSides=function(e,t){var n=e.Side;e.Side=t.Side,t.Side=n},n.Clipper.SwapPolyIndexes=function(e,t){var n=e.OutIdx;e.OutIdx=t.OutIdx,t.OutIdx=n},n.Clipper.prototype.IntersectEdges=function(e,t,i){var r=e.OutIdx>=0,a=t.OutIdx>=0;if(n.use_xyz&&this.SetZ(i,e,t),!n.use_lines||0!==e.WindDelta&&0!==t.WindDelta){if(e.PolyTyp===t.PolyTyp)if(this.IsEvenOddFillType(e)){var s=e.WindCnt;e.WindCnt=t.WindCnt,t.WindCnt=s}else e.WindCnt+t.WindDelta===0?e.WindCnt=-e.WindCnt:e.WindCnt+=t.WindDelta,t.WindCnt-e.WindDelta==0?t.WindCnt=-t.WindCnt:t.WindCnt-=e.WindDelta;else this.IsEvenOddFillType(t)?e.WindCnt2=0===e.WindCnt2?1:0:e.WindCnt2+=t.WindDelta,this.IsEvenOddFillType(e)?t.WindCnt2=0===t.WindCnt2?1:0:t.WindCnt2-=e.WindDelta;var o,l,h,c,u,d;switch(e.PolyTyp===n.PolyType.ptSubject?(o=this.m_SubjFillType,h=this.m_ClipFillType):(o=this.m_ClipFillType,h=this.m_SubjFillType),t.PolyTyp===n.PolyType.ptSubject?(l=this.m_SubjFillType,c=this.m_ClipFillType):(l=this.m_ClipFillType,c=this.m_SubjFillType),o){case n.PolyFillType.pftPositive:u=e.WindCnt;break;case n.PolyFillType.pftNegative:u=-e.WindCnt;break;default:u=Math.abs(e.WindCnt)}switch(l){case n.PolyFillType.pftPositive:d=t.WindCnt;break;case n.PolyFillType.pftNegative:d=-t.WindCnt;break;default:d=Math.abs(t.WindCnt)}if(r&&a)0!==u&&1!==u||0!==d&&1!==d||e.PolyTyp!==t.PolyTyp&&this.m_ClipType!==n.ClipType.ctXor?this.AddLocalMaxPoly(e,t,i):(this.AddOutPt(e,i),this.AddOutPt(t,i),n.Clipper.SwapSides(e,t),n.Clipper.SwapPolyIndexes(e,t));else if(r)(0===d||1===d)&&(this.AddOutPt(e,i),n.Clipper.SwapSides(e,t),n.Clipper.SwapPolyIndexes(e,t));else if(a)(0===u||1===u)&&(this.AddOutPt(t,i),n.Clipper.SwapSides(e,t),n.Clipper.SwapPolyIndexes(e,t));else if(!(0!==u&&1!==u||0!==d&&1!==d)){var p,f;switch(h){case n.PolyFillType.pftPositive:p=e.WindCnt2;break;case n.PolyFillType.pftNegative:p=-e.WindCnt2;break;default:p=Math.abs(e.WindCnt2)}switch(c){case n.PolyFillType.pftPositive:f=t.WindCnt2;break;case n.PolyFillType.pftNegative:f=-t.WindCnt2;break;default:f=Math.abs(t.WindCnt2)}if(e.PolyTyp!==t.PolyTyp)this.AddLocalMinPoly(e,t,i);else if(1===u&&1===d)switch(this.m_ClipType){case n.ClipType.ctIntersection:p>0&&f>0&&this.AddLocalMinPoly(e,t,i);break;case n.ClipType.ctUnion:p<=0&&f<=0&&this.AddLocalMinPoly(e,t,i);break;case n.ClipType.ctDifference:(e.PolyTyp===n.PolyType.ptClip&&p>0&&f>0||e.PolyTyp===n.PolyType.ptSubject&&p<=0&&f<=0)&&this.AddLocalMinPoly(e,t,i);break;case n.ClipType.ctXor:this.AddLocalMinPoly(e,t,i)}else n.Clipper.SwapSides(e,t)}}else{if(0===e.WindDelta&&0===t.WindDelta)return;e.PolyTyp===t.PolyTyp&&e.WindDelta!==t.WindDelta&&this.m_ClipType===n.ClipType.ctUnion?0===e.WindDelta?a&&(this.AddOutPt(e,i),r&&(e.OutIdx=-1)):r&&(this.AddOutPt(t,i),a&&(t.OutIdx=-1)):e.PolyTyp!==t.PolyTyp&&(0!==e.WindDelta||1!==Math.abs(t.WindCnt)||this.m_ClipType===n.ClipType.ctUnion&&0!==t.WindCnt2?0===t.WindDelta&&1===Math.abs(e.WindCnt)&&(this.m_ClipType!==n.ClipType.ctUnion||0===e.WindCnt2)&&(this.AddOutPt(t,i),a&&(t.OutIdx=-1)):(this.AddOutPt(e,i),r&&(e.OutIdx=-1)))}},n.Clipper.prototype.DeleteFromSEL=function(e){var t=e.PrevInSEL,n=e.NextInSEL;null===t&&null===n&&e!==this.m_SortedEdges||(null!==t?t.NextInSEL=n:this.m_SortedEdges=n,null!==n&&(n.PrevInSEL=t),e.NextInSEL=null,e.PrevInSEL=null)},n.Clipper.prototype.ProcessHorizontals=function(){for(var e={};this.PopEdgeFromSEL(e);)this.ProcessHorizontal(e.v)},n.Clipper.prototype.GetHorzDirection=function(e,t){e.Bot.X=o.Top.X&&(h=null)}else{for(;null!==h.Next&&h.Next.X=0&&!s&&this.AddOutPt(e,new n.IntPoint2(h.X,e.Bot.Y)),h=h.Next;else for(;null!==h&&h.X>d.Curr.X;)e.OutIdx>=0&&!s&&this.AddOutPt(e,new n.IntPoint2(h.X,e.Bot.Y)),h=h.Prev;if(i===n.Direction.dLeftToRight&&d.Curr.X>a||i===n.Direction.dRightToLeft&&d.Curr.X=0&&!s){n.use_xyz&&(i===n.Direction.dLeftToRight?this.SetZ(d.Curr,e,d):this.SetZ(d.Curr,d,e)),c=this.AddOutPt(e,d.Curr);for(var p=this.m_SortedEdges;null!==p;){if(p.OutIdx>=0&&this.HorzSegmentsOverlap(e.Bot.X,e.Top.X,p.Bot.X,p.Top.X)){var f=this.GetLastOutPt(p);this.AddJoin(f,c,p.Top)}p=p.NextInSEL}this.AddGhostJoin(c,e.Bot)}if(d===l&&u)return e.OutIdx>=0&&this.AddLocalMaxPoly(e,l,e.Top),this.DeleteFromAEL(e),void this.DeleteFromAEL(l);if(i===n.Direction.dLeftToRight){var m=new n.IntPoint2(d.Curr.X,e.Curr.Y);this.IntersectEdges(e,d,m)}else m=new n.IntPoint2(d.Curr.X,e.Curr.Y),this.IntersectEdges(d,e,m);var g=this.GetNextInAEL(d,i);this.SwapPositionsInAEL(e,d),d=g}if(null===e.NextInLML||!n.ClipperBase.IsHorizontal(e.NextInLML))break;(e=this.UpdateEdgeIntoAEL(e)).OutIdx>=0&&this.AddOutPt(e,e.Bot),t={Dir:i,Left:r,Right:a},this.GetHorzDirection(e,t),i=t.Dir,r=t.Left,a=t.Right}if(e.OutIdx>=0&&null===c){for(c=this.GetLastOutPt(e),p=this.m_SortedEdges;null!==p;)p.OutIdx>=0&&this.HorzSegmentsOverlap(e.Bot.X,e.Top.X,p.Bot.X,p.Top.X)&&(f=this.GetLastOutPt(p),this.AddJoin(f,c,p.Top)),p=p.NextInSEL;this.AddGhostJoin(c,e.Top)}if(null!==e.NextInLML)if(e.OutIdx>=0){if(c=this.AddOutPt(e,e.Top),0===(e=this.UpdateEdgeIntoAEL(e)).WindDelta)return;var v=e.PrevInAEL;g=e.NextInAEL,null!==v&&v.Curr.X===e.Bot.X&&v.Curr.Y===e.Bot.Y&&0===v.WindDelta&&v.OutIdx>=0&&v.Curr.Y>v.Top.Y&&n.ClipperBase.SlopesEqual3(e,v,this.m_UseFullRange)?(f=this.AddOutPt(v,e.Bot),this.AddJoin(c,f,e.Top)):null!==g&&g.Curr.X===e.Bot.X&&g.Curr.Y===e.Bot.Y&&0!==g.WindDelta&&g.OutIdx>=0&&g.Curr.Y>g.Top.Y&&n.ClipperBase.SlopesEqual3(e,g,this.m_UseFullRange)&&(f=this.AddOutPt(g,e.Bot),this.AddJoin(c,f,e.Top))}else e=this.UpdateEdgeIntoAEL(e);else e.OutIdx>=0&&this.AddOutPt(e,e.Top),this.DeleteFromAEL(e)},n.Clipper.prototype.GetNextInAEL=function(e,t){return t===n.Direction.dLeftToRight?e.NextInAEL:e.PrevInAEL},n.Clipper.prototype.IsMinima=function(e){return null!==e&&e.Prev.NextInLML!==e&&e.Next.NextInLML!==e},n.Clipper.prototype.IsMaxima=function(e,t){return null!==e&&e.Top.Y===t&&null===e.NextInLML},n.Clipper.prototype.IsIntermediate=function(e,t){return e.Top.Y===t&&null!==e.NextInLML},n.Clipper.prototype.GetMaximaPair=function(e){return n.IntPoint.op_Equality(e.Next.Top,e.Top)&&null===e.Next.NextInLML?e.Next:n.IntPoint.op_Equality(e.Prev.Top,e.Top)&&null===e.Prev.NextInLML?e.Prev:null},n.Clipper.prototype.GetMaximaPairEx=function(e){var t=this.GetMaximaPair(e);return null===t||t.OutIdx===n.ClipperBase.Skip||t.NextInAEL===t.PrevInAEL&&!n.ClipperBase.IsHorizontal(t)?null:t},n.Clipper.prototype.ProcessIntersections=function(e){if(null===this.m_ActiveEdges)return!0;try{if(this.BuildIntersectList(e),0===this.m_IntersectList.length)return!0;if(1!==this.m_IntersectList.length&&!this.FixupIntersectionOrder())return!1;this.ProcessIntersectList()}catch(e){this.m_SortedEdges=null,this.m_IntersectList.length=0,n.Error("ProcessIntersections error")}return this.m_SortedEdges=null,!0},n.Clipper.prototype.BuildIntersectList=function(e){if(null!==this.m_ActiveEdges){var t=this.m_ActiveEdges;for(this.m_SortedEdges=t;null!==t;)t.PrevInSEL=t.PrevInAEL,t.NextInSEL=t.NextInAEL,t.Curr.X=n.Clipper.TopX(t,e),t=t.NextInAEL;for(var i=!0;i&&null!==this.m_SortedEdges;){for(i=!1,t=this.m_SortedEdges;null!==t.NextInSEL;){var r=t.NextInSEL,a=new n.IntPoint0;if(t.Curr.X>r.Curr.X){this.IntersectPoint(t,r,a),a.Y2147483647?Math.floor(e):0|e}:n.Clipper.Round=function(e){return e<0?Math.ceil(e-.5):Math.floor(e+.5)},n.Clipper.TopX=function(e,t){return t===e.Top.Y?e.Top.X:e.Bot.X+n.Clipper.Round(e.Dx*(t-e.Bot.Y))},n.Clipper.prototype.IntersectPoint=function(e,t,i){var r,a;if(i.X=0,i.Y=0,e.Dx===t.Dx)return i.Y=e.Curr.Y,void(i.X=n.Clipper.TopX(e,i.Y));if(0===e.Delta.X)i.X=e.Bot.X,n.ClipperBase.IsHorizontal(t)?i.Y=t.Bot.Y:(a=t.Bot.Y-t.Bot.X/t.Dx,i.Y=n.Clipper.Round(i.X/t.Dx+a));else if(0===t.Delta.X)i.X=t.Bot.X,n.ClipperBase.IsHorizontal(e)?i.Y=e.Bot.Y:(r=e.Bot.Y-e.Bot.X/e.Dx,i.Y=n.Clipper.Round(i.X/e.Dx+r));else{r=e.Bot.X-e.Bot.Y*e.Dx;var s=((a=t.Bot.X-t.Bot.Y*t.Dx)-r)/(e.Dx-t.Dx);i.Y=n.Clipper.Round(s),Math.abs(e.Dx)t.Top.Y)return i.Y=e.Top.Y,i.X=n.Clipper.TopX(t,e.Top.Y),i.Xe.Curr.Y&&(i.Y=e.Curr.Y,Math.abs(e.Dx)>Math.abs(t.Dx)?i.X=n.Clipper.TopX(t,i.Y):i.X=n.Clipper.TopX(e,i.Y))},n.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=function(e){for(var t=this.m_ActiveEdges;null!==t;){var i=this.IsMaxima(t,e);if(i){var r=this.GetMaximaPairEx(t);i=null===r||!n.ClipperBase.IsHorizontal(r)}if(i){this.StrictlySimple&&this.InsertMaxima(t.Top.X);var a=t.PrevInAEL;this.DoMaxima(t),t=null===a?this.m_ActiveEdges:a.NextInAEL}else{if(this.IsIntermediate(t,e)&&n.ClipperBase.IsHorizontal(t.NextInLML)?((t=this.UpdateEdgeIntoAEL(t)).OutIdx>=0&&this.AddOutPt(t,t.Bot),this.AddEdgeToSEL(t)):(t.Curr.X=n.Clipper.TopX(t,e),t.Curr.Y=e),n.use_xyz&&(t.Top.Y===e?t.Curr.Z=t.Top.Z:t.Bot.Y===e?t.Curr.Z=t.Bot.Z:t.Curr.Z=0),this.StrictlySimple&&(a=t.PrevInAEL,t.OutIdx>=0&&0!==t.WindDelta&&null!==a&&a.OutIdx>=0&&a.Curr.X===t.Curr.X&&0!==a.WindDelta)){var s=new n.IntPoint1(t.Curr);n.use_xyz&&this.SetZ(s,a,t);var o=this.AddOutPt(a,s),l=this.AddOutPt(t,s);this.AddJoin(o,l,s)}t=t.NextInAEL}}for(this.ProcessHorizontals(),this.m_Maxima=null,t=this.m_ActiveEdges;null!==t;){if(this.IsIntermediate(t,e)){o=null,t.OutIdx>=0&&(o=this.AddOutPt(t,t.Top)),a=(t=this.UpdateEdgeIntoAEL(t)).PrevInAEL;var h=t.NextInAEL;null!==a&&a.Curr.X===t.Bot.X&&a.Curr.Y===t.Bot.Y&&null!==o&&a.OutIdx>=0&&a.Curr.Y===a.Top.Y&&n.ClipperBase.SlopesEqual5(t.Curr,t.Top,a.Curr,a.Top,this.m_UseFullRange)&&0!==t.WindDelta&&0!==a.WindDelta?(l=this.AddOutPt(ePrev2,t.Bot),this.AddJoin(o,l,t.Top)):null!==h&&h.Curr.X===t.Bot.X&&h.Curr.Y===t.Bot.Y&&null!==o&&h.OutIdx>=0&&h.Curr.Y===h.Top.Y&&n.ClipperBase.SlopesEqual5(t.Curr,t.Top,h.Curr,h.Top,this.m_UseFullRange)&&0!==t.WindDelta&&0!==h.WindDelta&&(l=this.AddOutPt(h,t.Bot),this.AddJoin(o,l,t.Top))}t=t.NextInAEL}},n.Clipper.prototype.DoMaxima=function(e){var t=this.GetMaximaPairEx(e);if(null===t)return e.OutIdx>=0&&this.AddOutPt(e,e.Top),void this.DeleteFromAEL(e);for(var i=e.NextInAEL;null!==i&&i!==t;)this.IntersectEdges(e,i,e.Top),this.SwapPositionsInAEL(e,i),i=e.NextInAEL;-1===e.OutIdx&&-1===t.OutIdx?(this.DeleteFromAEL(e),this.DeleteFromAEL(t)):e.OutIdx>=0&&t.OutIdx>=0?(e.OutIdx>=0&&this.AddLocalMaxPoly(e,t,e.Top),this.DeleteFromAEL(e),this.DeleteFromAEL(t)):n.use_lines&&0===e.WindDelta?(e.OutIdx>=0&&(this.AddOutPt(e,e.Top),e.OutIdx=n.ClipperBase.Unassigned),this.DeleteFromAEL(e),t.OutIdx>=0&&(this.AddOutPt(t,e.Top),t.OutIdx=n.ClipperBase.Unassigned),this.DeleteFromAEL(t)):n.Error("DoMaxima error")},n.Clipper.ReversePaths=function(e){for(var t=0,n=e.length;t=0},n.Clipper.prototype.PointCount=function(e){if(null===e)return 0;var t=0,n=e;do{t++,n=n.Next}while(n!==e);return t},n.Clipper.prototype.BuildResult=function(e){n.Clear(e);for(var t=0,i=this.m_PolyOuts.length;tt.Pt.X?n.Direction.dRightToLeft:n.Direction.dLeftToRight,l=i.Pt.X>r.Pt.X?n.Direction.dRightToLeft:n.Direction.dLeftToRight;if(o===l)return!1;if(o===n.Direction.dLeftToRight){for(;e.Next.Pt.X<=a.X&&e.Next.Pt.X>=e.Pt.X&&e.Next.Pt.Y===a.Y;)e=e.Next;s&&e.Pt.X!==a.X&&(e=e.Next),t=this.DupOutPt(e,!s),n.IntPoint.op_Inequality(t.Pt,a)&&((e=t).Pt.X=a.X,e.Pt.Y=a.Y,n.use_xyz&&(e.Pt.Z=a.Z),t=this.DupOutPt(e,!s))}else{for(;e.Next.Pt.X>=a.X&&e.Next.Pt.X<=e.Pt.X&&e.Next.Pt.Y===a.Y;)e=e.Next;!s&&e.Pt.X!==a.X&&(e=e.Next),t=this.DupOutPt(e,s),n.IntPoint.op_Inequality(t.Pt,a)&&((e=t).Pt.X=a.X,e.Pt.Y=a.Y,n.use_xyz&&(e.Pt.Z=a.Z),t=this.DupOutPt(e,s))}if(l===n.Direction.dLeftToRight){for(;i.Next.Pt.X<=a.X&&i.Next.Pt.X>=i.Pt.X&&i.Next.Pt.Y===a.Y;)i=i.Next;s&&i.Pt.X!==a.X&&(i=i.Next),r=this.DupOutPt(i,!s),n.IntPoint.op_Inequality(r.Pt,a)&&((i=r).Pt.X=a.X,i.Pt.Y=a.Y,n.use_xyz&&(i.Pt.Z=a.Z),r=this.DupOutPt(i,!s))}else{for(;i.Next.Pt.X>=a.X&&i.Next.Pt.X<=i.Pt.X&&i.Next.Pt.Y===a.Y;)i=i.Next;!s&&i.Pt.X!==a.X&&(i=i.Next),r=this.DupOutPt(i,s),n.IntPoint.op_Inequality(r.Pt,a)&&((i=r).Pt.X=a.X,i.Pt.Y=a.Y,n.use_xyz&&(i.Pt.Z=a.Z),r=this.DupOutPt(i,s))}return o===n.Direction.dLeftToRight===s?(e.Prev=i,i.Next=e,t.Next=r,r.Prev=t):(e.Next=i,i.Prev=e,t.Prev=r,r.Next=t),!0},n.Clipper.prototype.JoinPoints=function(e,t,i){var r=e.OutPt1,a=new n.OutPt,s=e.OutPt2,o=new n.OutPt,l=e.OutPt1.Pt.Y===e.OffPt.Y;if(l&&n.IntPoint.op_Equality(e.OffPt,e.OutPt1.Pt)&&n.IntPoint.op_Equality(e.OffPt,e.OutPt2.Pt)){if(t!==i)return!1;for(a=e.OutPt1.Next;a!==r&&n.IntPoint.op_Equality(a.Pt,e.OffPt);)a=a.Next;var h=a.Pt.Y>e.OffPt.Y;for(o=e.OutPt2.Next;o!==s&&n.IntPoint.op_Equality(o.Pt,e.OffPt);)o=o.Next;return h!==o.Pt.Y>e.OffPt.Y&&(h?(a=this.DupOutPt(r,!1),o=this.DupOutPt(s,!0),r.Prev=s,s.Next=r,a.Next=o,o.Prev=a,e.OutPt1=r,e.OutPt2=a,!0):(a=this.DupOutPt(r,!0),o=this.DupOutPt(s,!1),r.Next=s,s.Prev=r,a.Prev=o,o.Next=a,e.OutPt1=r,e.OutPt2=a,!0))}if(l){for(a=r;r.Prev.Pt.Y===r.Pt.Y&&r.Prev!==a&&r.Prev!==s;)r=r.Prev;for(;a.Next.Pt.Y===a.Pt.Y&&a.Next!==r&&a.Next!==s;)a=a.Next;if(a.Next===r||a.Next===s)return!1;for(o=s;s.Prev.Pt.Y===s.Pt.Y&&s.Prev!==o&&s.Prev!==a;)s=s.Prev;for(;o.Next.Pt.Y===o.Pt.Y&&o.Next!==s&&o.Next!==r;)o=o.Next;if(o.Next===s||o.Next===r)return!1;var c={Left:null,Right:null};if(!this.GetOverlap(r.Pt.X,a.Pt.X,s.Pt.X,o.Pt.X,c))return!1;var u,d=c.Left,p=c.Right,f=new n.IntPoint0;return r.Pt.X>=d&&r.Pt.X<=p?(f.X=r.Pt.X,f.Y=r.Pt.Y,n.use_xyz&&(f.Z=r.Pt.Z),u=r.Pt.X>a.Pt.X):s.Pt.X>=d&&s.Pt.X<=p?(f.X=s.Pt.X,f.Y=s.Pt.Y,n.use_xyz&&(f.Z=s.Pt.Z),u=s.Pt.X>o.Pt.X):a.Pt.X>=d&&a.Pt.X<=p?(f.X=a.Pt.X,f.Y=a.Pt.Y,n.use_xyz&&(f.Z=a.Pt.Z),u=a.Pt.X>r.Pt.X):(f.X=o.Pt.X,f.Y=o.Pt.Y,n.use_xyz&&(f.Z=o.Pt.Z),u=o.Pt.X>s.Pt.X),e.OutPt1=r,e.OutPt2=s,this.JoinHorz(r,a,s,o,f,u)}for(a=r.Next;n.IntPoint.op_Equality(a.Pt,r.Pt)&&a!==r;)a=a.Next;var m=a.Pt.Y>r.Pt.Y||!n.ClipperBase.SlopesEqual4(r.Pt,a.Pt,e.OffPt,this.m_UseFullRange);if(m){for(a=r.Prev;n.IntPoint.op_Equality(a.Pt,r.Pt)&&a!==r;)a=a.Prev;if(a.Pt.Y>r.Pt.Y||!n.ClipperBase.SlopesEqual4(r.Pt,a.Pt,e.OffPt,this.m_UseFullRange))return!1}for(o=s.Next;n.IntPoint.op_Equality(o.Pt,s.Pt)&&o!==s;)o=o.Next;var g=o.Pt.Y>s.Pt.Y||!n.ClipperBase.SlopesEqual4(s.Pt,o.Pt,e.OffPt,this.m_UseFullRange);if(g){for(o=s.Prev;n.IntPoint.op_Equality(o.Pt,s.Pt)&&o!==s;)o=o.Prev;if(o.Pt.Y>s.Pt.Y||!n.ClipperBase.SlopesEqual4(s.Pt,o.Pt,e.OffPt,this.m_UseFullRange))return!1}return a!==r&&o!==s&&a!==o&&(t!==i||m!==g)&&(m?(a=this.DupOutPt(r,!1),o=this.DupOutPt(s,!0),r.Prev=s,s.Next=r,a.Next=o,o.Prev=a,e.OutPt1=r,e.OutPt2=a,!0):(a=this.DupOutPt(r,!0),o=this.DupOutPt(s,!1),r.Next=s,s.Prev=r,a.Prev=o,o.Next=a,e.OutPt1=r,e.OutPt2=a,!0))},n.Clipper.GetBounds=function(e){for(var t=0,i=e.length;tr.right&&(r.right=e[t][a].X),e[t][a].Yr.bottom&&(r.bottom=e[t][a].Y);return r},n.Clipper.prototype.GetBounds2=function(e){var t=e,i=new n.IntRect;for(i.left=e.Pt.X,i.right=e.Pt.X,i.top=e.Pt.Y,i.bottom=e.Pt.Y,e=e.Next;e!==t;)e.Pt.Xi.right&&(i.right=e.Pt.X),e.Pt.Yi.bottom&&(i.bottom=e.Pt.Y),e=e.Next;return i},n.Clipper.PointInPolygon=function(e,t){var n=0,i=t.length;if(i<3)return 0;for(var r=t[0],a=1;a<=i;++a){var s=a===i?t[0]:t[a];if(s.Y===e.Y&&(s.X===e.X||r.Y===e.Y&&s.X>e.X==r.X=e.X)if(s.X>e.X)n=1-n;else{if(0===(o=(r.X-e.X)*(s.Y-e.Y)-(s.X-e.X)*(r.Y-e.Y)))return-1;o>0==s.Y>r.Y&&(n=1-n)}else if(s.X>e.X){var o;if(0===(o=(r.X-e.X)*(s.Y-e.Y)-(s.X-e.X)*(r.Y-e.Y)))return-1;o>0==s.Y>r.Y&&(n=1-n)}r=s}return n},n.Clipper.prototype.PointInPolygon=function(e,t){var n=0,i=t,r=e.X,a=e.Y,s=t.Pt.X,o=t.Pt.Y;do{var l=(t=t.Next).Pt.X,h=t.Pt.Y;if(h===a&&(l===r||o===a&&l>r==s=r)if(l>r)n=1-n;else{if(0===(c=(s-r)*(h-a)-(l-r)*(o-a)))return-1;c>0==h>o&&(n=1-n)}else if(l>r){var c;if(0===(c=(s-r)*(h-a)-(l-r)*(o-a)))return-1;c>0==h>o&&(n=1-n)}s=l,o=h}while(i!==t);return n},n.Clipper.prototype.Poly2ContainsPoly1=function(e,t){var n=e;do{var i=this.PointInPolygon(n.Pt,t);if(i>=0)return i>0;n=n.Next}while(n!==e);return!0},n.Clipper.prototype.FixupFirstLefts1=function(e,t){for(var i,r,a=0,s=this.m_PolyOuts.length;a0&&this.ReversePolyPtLinks(a.Pts)):this.Poly2ContainsPoly1(r.Pts,a.Pts)?(a.IsHole=r.IsHole,r.IsHole=!a.IsHole,a.FirstLeft=r.FirstLeft,r.FirstLeft=a,this.m_UsingPolyTree&&this.FixupFirstLefts2(r,a),(r.IsHole^this.ReverseSolution)==this.Area$1(r)>0&&this.ReversePolyPtLinks(r.Pts)):(a.IsHole=r.IsHole,a.FirstLeft=r.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(r,a))):(a.Pts=null,a.BottomPt=null,a.Idx=r.Idx,r.IsHole=n.IsHole,n===a&&(r.FirstLeft=a.FirstLeft),a.FirstLeft=r,this.m_UsingPolyTree&&this.FixupFirstLefts3(a,r))))}},n.Clipper.prototype.UpdateOutPtIdxs=function(e){var t=e.Pts;do{t.Idx=e.Idx,t=t.Prev}while(t!==e.Pts)},n.Clipper.prototype.DoSimplePolygons=function(){for(var e=0;eMath.abs(e.Y-t.Y)?e.X>t.X==e.Xe.X==t.Xt.Y==e.Ye.Y==t.Y0&&r&&i.push(e.m_polygon);for(var a=0,s=e.Childs(),o=s.length,l=s[a];a0&&n.IntPoint.op_Equality(e[0],e[r]);)r--;a.m_polygon.push(e[0]);for(var s=0,o=0,l=1;l<=r;l++)n.IntPoint.op_Inequality(a.m_polygon[s],e[l])&&(s++,a.m_polygon.push(e[l]),(e[l].Y>a.m_polygon[o].Y||e[l].Y===a.m_polygon[o].Y&&e[l].Xh.Y||a.m_polygon[o].Y===h.Y&&a.m_polygon[o].X=0&&!n.Clipper.Orientation(this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon))for(var e=0;e2?this.m_miterLim=2/(this.MiterLimit*this.MiterLimit):this.m_miterLim=.5,i=this.ArcTolerance<=0?n.ClipperOffset.def_arc_tolerance:this.ArcTolerance>Math.abs(e)*n.ClipperOffset.def_arc_tolerance?Math.abs(e)*n.ClipperOffset.def_arc_tolerance:this.ArcTolerance;var r=3.14159265358979/Math.acos(1-i/Math.abs(e));for(this.m_sin=Math.sin(n.ClipperOffset.two_pi/r),this.m_cos=Math.cos(n.ClipperOffset.two_pi/r),this.m_StepsPerRad=r/n.ClipperOffset.two_pi,e<0&&(this.m_sin=-this.m_sin),t=0;t0;h--)this.m_normals[h]=new n.DoublePoint2(-this.m_normals[h-1].X,-this.m_normals[h-1].Y);for(this.m_normals[0]=new n.DoublePoint2(-d.X,-d.Y),u=0,h=s-1;h>=0;h--)u=this.OffsetPoint(h,u,a.m_jointype);this.m_destPolys.push(this.m_destPoly)}else{for(u=0,h=1;h0;h--)this.m_normals[h]=new n.DoublePoint2(-this.m_normals[h-1].X,-this.m_normals[h-1].Y);for(this.m_normals[0]=new n.DoublePoint2(-this.m_normals[1].X,-this.m_normals[1].Y),h=(u=s-1)-1;h>0;--h)u=this.OffsetPoint(h,u,a.m_jointype);a.m_endtype===n.EndType.etOpenButt?(p=new n.IntPoint2(n.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*e),n.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*e)),this.m_destPoly.push(p),p=new n.IntPoint2(n.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*e),n.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*e)),this.m_destPoly.push(p)):(u=1,this.m_sinA=0,a.m_endtype===n.EndType.etOpenSquare?this.DoSquare(0,1):this.DoRound(0,1)),this.m_destPolys.push(this.m_destPoly)}}}}},n.ClipperOffset.prototype.Execute=function(){var e=arguments;if(e[0]instanceof n.PolyTree){var t=e[1];if((l=e[0]).Clear(),this.FixOrientations(),this.DoOffset(t),(s=new n.Clipper(0)).AddPaths(this.m_destPolys,n.PolyType.ptSubject,!0),t>0)s.Execute(n.ClipType.ctUnion,l,n.PolyFillType.pftPositive,n.PolyFillType.pftPositive);else{var i=n.Clipper.GetBounds(this.m_destPolys);if((o=new n.Path).push(new n.IntPoint2(i.left-10,i.bottom+10)),o.push(new n.IntPoint2(i.right+10,i.bottom+10)),o.push(new n.IntPoint2(i.right+10,i.top-10)),o.push(new n.IntPoint2(i.left-10,i.top-10)),s.AddPath(o,n.PolyType.ptSubject,!0),s.ReverseSolution=!0,s.Execute(n.ClipType.ctUnion,l,n.PolyFillType.pftNegative,n.PolyFillType.pftNegative),1===l.ChildCount()&&l.Childs()[0].ChildCount()>0){var r=l.Childs()[0];l.Childs()[0]=r.Childs()[0],l.Childs()[0].m_Parent=l;for(var a=1;a0)s.Execute(n.ClipType.ctUnion,l,n.PolyFillType.pftPositive,n.PolyFillType.pftPositive);else i=n.Clipper.GetBounds(this.m_destPolys),(o=new n.Path).push(new n.IntPoint2(i.left-10,i.bottom+10)),o.push(new n.IntPoint2(i.right+10,i.bottom+10)),o.push(new n.IntPoint2(i.right+10,i.top-10)),o.push(new n.IntPoint2(i.left-10,i.top-10)),s.AddPath(o,n.PolyType.ptSubject,!0),s.ReverseSolution=!0,s.Execute(n.ClipType.ctUnion,l,n.PolyFillType.pftNegative,n.PolyFillType.pftNegative),l.length>0&&l.splice(0,1)}},n.ClipperOffset.prototype.OffsetPoint=function(e,t,i){if(this.m_sinA=this.m_normals[t].X*this.m_normals[e].Y-this.m_normals[e].X*this.m_normals[t].Y,Math.abs(this.m_sinA*this.m_delta)<1){if(this.m_normals[t].X*this.m_normals[e].X+this.m_normals[e].Y*this.m_normals[t].Y>0)return this.m_destPoly.push(new n.IntPoint2(n.ClipperOffset.Round(this.m_srcPoly[e].X+this.m_normals[t].X*this.m_delta),n.ClipperOffset.Round(this.m_srcPoly[e].Y+this.m_normals[t].Y*this.m_delta))),t}else this.m_sinA>1?this.m_sinA=1:this.m_sinA<-1&&(this.m_sinA=-1);if(this.m_sinA*this.m_delta<0)this.m_destPoly.push(new n.IntPoint2(n.ClipperOffset.Round(this.m_srcPoly[e].X+this.m_normals[t].X*this.m_delta),n.ClipperOffset.Round(this.m_srcPoly[e].Y+this.m_normals[t].Y*this.m_delta))),this.m_destPoly.push(new n.IntPoint1(this.m_srcPoly[e])),this.m_destPoly.push(new n.IntPoint2(n.ClipperOffset.Round(this.m_srcPoly[e].X+this.m_normals[e].X*this.m_delta),n.ClipperOffset.Round(this.m_srcPoly[e].Y+this.m_normals[e].Y*this.m_delta)));else switch(i){case n.JoinType.jtMiter:var r=this.m_normals[e].X*this.m_normals[t].X+this.m_normals[e].Y*this.m_normals[t].Y+1;r>=this.m_miterLim?this.DoMiter(e,t,r):this.DoSquare(e,t);break;case n.JoinType.jtSquare:this.DoSquare(e,t);break;case n.JoinType.jtRound:this.DoRound(e,t)}return e},n.ClipperOffset.prototype.DoSquare=function(e,t){var i=Math.tan(Math.atan2(this.m_sinA,this.m_normals[t].X*this.m_normals[e].X+this.m_normals[t].Y*this.m_normals[e].Y)/4);this.m_destPoly.push(new n.IntPoint2(n.ClipperOffset.Round(this.m_srcPoly[e].X+this.m_delta*(this.m_normals[t].X-this.m_normals[t].Y*i)),n.ClipperOffset.Round(this.m_srcPoly[e].Y+this.m_delta*(this.m_normals[t].Y+this.m_normals[t].X*i)))),this.m_destPoly.push(new n.IntPoint2(n.ClipperOffset.Round(this.m_srcPoly[e].X+this.m_delta*(this.m_normals[e].X+this.m_normals[e].Y*i)),n.ClipperOffset.Round(this.m_srcPoly[e].Y+this.m_delta*(this.m_normals[e].Y-this.m_normals[e].X*i))))},n.ClipperOffset.prototype.DoMiter=function(e,t,i){var r=this.m_delta/i;this.m_destPoly.push(new n.IntPoint2(n.ClipperOffset.Round(this.m_srcPoly[e].X+(this.m_normals[t].X+this.m_normals[e].X)*r),n.ClipperOffset.Round(this.m_srcPoly[e].Y+(this.m_normals[t].Y+this.m_normals[e].Y)*r)))},n.ClipperOffset.prototype.DoRound=function(e,t){for(var i,r=Math.atan2(this.m_sinA,this.m_normals[t].X*this.m_normals[e].X+this.m_normals[t].Y*this.m_normals[e].Y),a=Math.max(n.Cast_Int32(n.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(r))),1),s=this.m_normals[t].X,o=this.m_normals[t].Y,l=0;l1?(y=u.X,x=u.Y):v>0&&(y+=m*v,x+=g*v)),(m=d.X-y)*m+(g=d.Y-x)*g<=_&&(p[a+1]=1,a++);for(l.push({X:s[0].X,Y:s[0].Y}),a=1;a2&&w.push(l)}return i||(w=w[0]),void 0===w&&(w=[]),w},n.JS.PerimeterOfPath=function(e,t,n){if(void 0===e)return 0;var i,r,a=Math.sqrt,s=0,o=0,l=0,h=0,c=0,u=e.length;if(u<2)return 0;for(t&&(e[u]=e[0],u++);--u;)o=(i=e[u]).X,l=i.Y,s+=a((o-(h=(r=e[u-1]).X))*(o-h)+(l-(c=r.Y))*(l-c));return t&&e.pop(),s/n},n.JS.PerimeterOfPaths=function(e,t,i){i||(i=1);for(var r=0,a=0;a{})),Uye=J((()=>{})),Hye=J((()=>{})),Vye=J((()=>{})),zye=J((()=>{})),v1e=J(((exports,module)=>{var t,e;t=globalThis,e=()=>(()=>{"use strict";var __webpack_modules__=[,(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.VerbosityLevel=t.Util=t.UnknownErrorException=t.UnexpectedResponseException=t.TextRenderingMode=t.RenderingIntentFlag=t.PromiseCapability=t.PermissionFlag=t.PasswordResponses=t.PasswordException=t.PageActionEventType=t.OPS=t.MissingPDFException=t.MAX_IMAGE_SIZE_TO_CACHE=t.LINE_FACTOR=t.LINE_DESCENT_FACTOR=t.InvalidPDFException=t.ImageKind=t.IDENTITY_MATRIX=t.FormatError=t.FeatureTest=t.FONT_IDENTITY_MATRIX=t.DocumentActionEventType=t.CMapCompressionType=t.BaseException=t.BASELINE_FACTOR=t.AnnotationType=t.AnnotationReplyType=t.AnnotationMode=t.AnnotationFlag=t.AnnotationFieldFlag=t.AnnotationEditorType=t.AnnotationEditorPrefix=t.AnnotationEditorParamsType=t.AnnotationBorderStyleType=t.AnnotationActionEventType=t.AbortException=void 0,t.assert=function(e,t){e||s(t)},t.bytesToString=function(e){("object"!=typeof e||void 0===(null==e?void 0:e.length))&&s("Invalid argument for bytesToString");let t=e.length,n=8192;if(t=2&&(e=`http://${e}`)}if(n.tryConvertEncoding)try{e=d(e)}catch(e){}}let i=t?new URL(e,t):new URL(e);if(function(e){switch(null==e?void 0:e.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(i))return i}catch(e){}return null},t.getModificationDate=function(e=new Date){return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),e.getUTCDate().toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")},t.getVerbosityLevel=function(){return r},t.info=function(e){r>=i.INFOS&&console.log(`Info: ${e}`)},t.isArrayBuffer=function(e){return"object"==typeof e&&void 0!==(null==e?void 0:e.byteLength)},t.isArrayEqual=function(e,t){if(e.length!==t.length)return!1;for(let n=0,i=e.length;nt?t.normalize("NFKC"):f.get(n)))},t.objectFromMap=function(e){let t=Object.create(null);for(let[n,i]of e)t[n]=i;return t},t.objectSize=function(e){return Object.keys(e).length},t.setVerbosityLevel=function(e){Number.isInteger(e)&&(r=e)},t.shadow=o,t.string32=function(e){return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e)},t.stringToBytes=h,t.stringToPDFString=function(e){if(e[0]>="\xef"){let t;if("\xfe"===e[0]&&"\xff"===e[1]?t="utf-16be":"\xff"===e[0]&&"\xfe"===e[1]?t="utf-16le":"\xef"===e[0]&&"\xbb"===e[1]&&"\xbf"===e[2]&&(t="utf-8"),t)try{let n=new TextDecoder(t,{fatal:!0}),i=h(e);return n.decode(i)}catch(e){a(`stringToPDFString: "${e}".`)}}let t=[];for(let n=0,i=e.length;n=i.WARNINGS&&console.log(`Warning: ${e}`)}function s(e){throw new Error(e)}function o(e,t,n,i=!1){return Object.defineProperty(e,t,{value:n,enumerable:!i,configurable:!0,writable:!1}),n}let l=function(){function e(t,n){this.constructor===e&&s("Cannot initialize BaseException."),this.message=t,this.name=n}return e.prototype=new Error,e.constructor=e,e}();function h(e){"string"!=typeof e&&s("Invalid argument for stringToBytes");let t=e.length,n=new Uint8Array(t);for(let i=0;ie.toString(16).padStart(2,"0")));t.Util=class{static makeHexColor(e,t,n){return`#${c[e]}${c[t]}${c[n]}`}static scaleMinMax(e,t){let n;e[0]?(e[0]<0&&(n=t[0],t[0]=t[1],t[1]=n),t[0]*=e[0],t[1]*=e[0],e[3]<0&&(n=t[2],t[2]=t[3],t[3]=n),t[2]*=e[3],t[3]*=e[3]):(n=t[0],t[0]=t[2],t[2]=n,n=t[1],t[1]=t[3],t[3]=n,e[1]<0&&(n=t[2],t[2]=t[3],t[3]=n),t[2]*=e[1],t[3]*=e[1],e[2]<0&&(n=t[0],t[0]=t[1],t[1]=n),t[0]*=e[2],t[1]*=e[2]),t[0]+=e[4],t[1]+=e[4],t[2]+=e[5],t[3]+=e[5]}static transform(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}static applyTransform(e,t){return[e[0]*t[0]+e[1]*t[2]+t[4],e[0]*t[1]+e[1]*t[3]+t[5]]}static applyInverseTransform(e,t){let n=t[0]*t[3]-t[1]*t[2];return[(e[0]*t[3]-e[1]*t[2]+t[2]*t[5]-t[4]*t[3])/n,(-e[0]*t[1]+e[1]*t[0]+t[4]*t[1]-t[5]*t[0])/n]}static getAxialAlignedBoundingBox(e,t){let n=this.applyTransform(e,t),i=this.applyTransform(e.slice(2,4),t),r=this.applyTransform([e[0],e[3]],t),a=this.applyTransform([e[2],e[1]],t);return[Math.min(n[0],i[0],r[0],a[0]),Math.min(n[1],i[1],r[1],a[1]),Math.max(n[0],i[0],r[0],a[0]),Math.max(n[1],i[1],r[1],a[1])]}static inverseTransform(e){let t=e[0]*e[3]-e[1]*e[2];return[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[4]*e[3])/t,(e[4]*e[1]-e[5]*e[0])/t]}static singularValueDecompose2dScale(e){let t=[e[0],e[2],e[1],e[3]],n=e[0]*t[0]+e[1]*t[2],i=e[0]*t[1]+e[1]*t[3],r=e[2]*t[0]+e[3]*t[2],a=e[2]*t[1]+e[3]*t[3],s=(n+a)/2,o=Math.sqrt(Oo(n+a,2)-4*(n*a-r*i))/2,l=s+o||1,h=s-o||1;return[Math.sqrt(l),Math.sqrt(h)]}static normalizeRect(e){let t=e.slice(0);return e[0]>e[2]&&(t[0]=e[2],t[2]=e[0]),e[1]>e[3]&&(t[1]=e[3],t[3]=e[1]),t}static intersect(e,t){let n=Math.max(Math.min(e[0],e[2]),Math.min(t[0],t[2])),i=Math.min(Math.max(e[0],e[2]),Math.max(t[0],t[2]));if(n>i)return null;let r=Math.max(Math.min(e[1],e[3]),Math.min(t[1],t[3])),a=Math.min(Math.max(e[1],e[3]),Math.max(t[1],t[3]));return r>a?null:[n,r,i,a]}static bezierBoundingBox(e,t,n,i,r,a,s,o){let l,h,c,u,d,p,f,m,g=[],v=[[],[]];for(let _=0;_<2;++_)if(0===_?(h=6*e-12*n+6*r,l=-3*e+9*n-9*r+3*s,c=3*n-3*e):(h=6*t-12*i+6*a,l=-3*t+9*i-9*a+3*o,c=3*i-3*t),Math.abs(l)<1e-12){if(Math.abs(h)<1e-12)continue;u=-c/h,0{this.resolve=t=>{St(this,n,!0),e(t)},this.reject=e=>{St(this,n,!0),t(e)}}))}get settled(){return ce(this,n)}};let p=null,f=null},(__unused_webpack_module,exports,__w_pdfjs_require__)=>{var i,e,n,r,$y,a,H2,l,c,u,h,d,f,p,g,_V,v,E,TV,_,R;Object.defineProperty(exports,"__esModule",{value:!0}),exports.build=exports.RenderTask=exports.PDFWorkerUtil=exports.PDFWorker=exports.PDFPageProxy=exports.PDFDocumentProxy=exports.PDFDocumentLoadingTask=exports.PDFDataRangeTransport=exports.LoopbackPort=exports.DefaultStandardFontDataFactory=exports.DefaultFilterFactory=exports.DefaultCanvasFactory=exports.DefaultCMapReaderFactory=void 0,exports.getDocument=getDocument,exports.version=void 0;var _util=__w_pdfjs_require__(1),_annotation_storage=__w_pdfjs_require__(3),_display_utils=__w_pdfjs_require__(6),_font_loader=__w_pdfjs_require__(9),_canvas=__w_pdfjs_require__(11),_worker_options=__w_pdfjs_require__(14),_is_node=__w_pdfjs_require__(10),_message_handler=__w_pdfjs_require__(15),_metadata=__w_pdfjs_require__(16),_optional_content_config=__w_pdfjs_require__(17),_transport_stream=__w_pdfjs_require__(18),_xfa_text=__w_pdfjs_require__(19);let DEFAULT_RANGE_CHUNK_SIZE=65536,RENDERING_CANCELLED_TIMEOUT=100,DELAYED_CLEANUP_TIMEOUT=5e3,DefaultCanvasFactory=_is_node.isNodeJS?__w_pdfjs_require__(20).NodeCanvasFactory:_display_utils.DOMCanvasFactory;exports.DefaultCanvasFactory=DefaultCanvasFactory;let DefaultCMapReaderFactory=_is_node.isNodeJS?__w_pdfjs_require__(20).NodeCMapReaderFactory:_display_utils.DOMCMapReaderFactory;exports.DefaultCMapReaderFactory=DefaultCMapReaderFactory;let DefaultFilterFactory=_is_node.isNodeJS?__w_pdfjs_require__(20).NodeFilterFactory:_display_utils.DOMFilterFactory;exports.DefaultFilterFactory=DefaultFilterFactory;let DefaultStandardFontDataFactory=_is_node.isNodeJS?__w_pdfjs_require__(20).NodeStandardFontDataFactory:_display_utils.DOMStandardFontDataFactory,createPDFNetworkStream;if(exports.DefaultStandardFontDataFactory=DefaultStandardFontDataFactory,_is_node.isNodeJS){let{PDFNodeStream:e}=__w_pdfjs_require__(21);createPDFNetworkStream=t=>new e(t)}else{let{PDFNetworkStream:e}=__w_pdfjs_require__(24),{PDFFetchStream:t}=__w_pdfjs_require__(25);createPDFNetworkStream=n=>(0,_display_utils.isValidFetchUrl)(n.url)?new t(n):new e(n)}function getDocument(e){var t,n;if("string"==typeof e||e instanceof URL?e={url:e}:(0,_util.isArrayBuffer)(e)&&(e={data:e}),"object"!=typeof e)throw new Error("Invalid parameter in getDocument, need parameter object.");if(!e.url&&!e.data&&!e.range)throw new Error("Invalid parameter object: need either .data, .range or .url");let i=new PDFDocumentLoadingTask,{docId:r}=i,a=e.url?getUrlProp(e.url):null,s=e.data?getDataProp(e.data):null,o=e.httpHeaders||null,l=!0===e.withCredentials,h=null!=(t=e.password)?t:null,c=e.range instanceof PDFDataRangeTransport?e.range:null,u=Number.isInteger(e.rangeChunkSize)&&e.rangeChunkSize>0?e.rangeChunkSize:DEFAULT_RANGE_CHUNK_SIZE,d=e.worker instanceof PDFWorker?e.worker:null,p=e.verbosity,f="string"!=typeof e.docBaseUrl||(0,_display_utils.isDataScheme)(e.docBaseUrl)?null:e.docBaseUrl,m="string"==typeof e.cMapUrl?e.cMapUrl:null,g=!1!==e.cMapPacked,v=e.CMapReaderFactory||DefaultCMapReaderFactory,y="string"==typeof e.standardFontDataUrl?e.standardFontDataUrl:null,x=e.StandardFontDataFactory||DefaultStandardFontDataFactory,b=!0!==e.stopAtErrors,_=Number.isInteger(e.maxImageSize)&&e.maxImageSize>-1?e.maxImageSize:-1,w=!1!==e.isEvalSupported,S="boolean"==typeof e.isOffscreenCanvasSupported?e.isOffscreenCanvasSupported:!_is_node.isNodeJS,M=Number.isInteger(e.canvasMaxAreaInBytes)?e.canvasMaxAreaInBytes:-1,T="boolean"==typeof e.disableFontFace?e.disableFontFace:_is_node.isNodeJS,E=!0===e.fontExtraProperties,A=!0===e.enableXfa,C=e.ownerDocument||globalThis.document,P=!0===e.disableRange,R=!0===e.disableStream,O=!0===e.disableAutoFetch,L=!0===e.pdfBug,I=c?c.length:null!=(n=e.length)?n:NaN,D="boolean"==typeof e.useSystemFonts?e.useSystemFonts:!_is_node.isNodeJS&&!T,k="boolean"==typeof e.useWorkerFetch?e.useWorkerFetch:v===_display_utils.DOMCMapReaderFactory&&x===_display_utils.DOMStandardFontDataFactory&&(0,_display_utils.isValidFetchUrl)(m,document.baseURI)&&(0,_display_utils.isValidFetchUrl)(y,document.baseURI),N=e.canvasFactory||new DefaultCanvasFactory({ownerDocument:C}),F=e.filterFactory||new DefaultFilterFactory({docId:r,ownerDocument:C});(0,_util.setVerbosityLevel)(p);let U={canvasFactory:N,filterFactory:F};if(k||(U.cMapReaderFactory=new v({baseUrl:m,isCompressed:g}),U.standardFontDataFactory=new x({baseUrl:y})),!d){let e={verbosity:p,port:_worker_options.GlobalWorkerOptions.workerPort};d=e.port?PDFWorker.fromPort(e):new PDFWorker(e),i._worker=d}let B={docId:r,apiVersion:"3.8.162",data:s,password:h,disableAutoFetch:O,rangeChunkSize:u,length:I,docBaseUrl:f,enableXfa:A,evaluatorOptions:{maxImageSize:_,disableFontFace:T,ignoreErrors:b,isEvalSupported:w,isOffscreenCanvasSupported:S,canvasMaxAreaInBytes:M,fontExtraProperties:E,useSystemFonts:D,cMapUrl:k?m:null,standardFontDataUrl:k?y:null}},z={ignoreErrors:b,isEvalSupported:w,disableFontFace:T,fontExtraProperties:E,enableXfa:A,ownerDocument:C,disableAutoFetch:O,pdfBug:L,styleElement:null};return d.promise.then((function(){if(i.destroyed)throw new Error("Loading aborted");let e=_fetchDocument(d,B),t=new Promise((function(e){let t;c?t=new _transport_stream.PDFDataTransportStream({length:I,initialData:c.initialData,progressiveDone:c.progressiveDone,contentDispositionFilename:c.contentDispositionFilename,disableRange:P,disableStream:R},c):s||(t=createPDFNetworkStream({url:a,length:I,httpHeaders:o,withCredentials:l,rangeChunkSize:u,disableRange:P,disableStream:R})),e(t)}));return Promise.all([e,t]).then((function([e,t]){if(i.destroyed)throw new Error("Loading aborted");let n=new _message_handler.MessageHandler(r,e,d.port),a=new WorkerTransport(n,i,t,z,U);i._transport=a,n.send("Ready",null)}))})).catch(i._capability.reject),i}function _fetchDocument(e,t){return ft(this,null,(function*(){if(e.destroyed)throw new Error("Worker was destroyed");let n=yield e.messageHandler.sendWithPromise("GetDocRequest",t,t.data?[t.data.buffer]:null);if(e.destroyed)throw new Error("Worker was destroyed");return n}))}function getUrlProp(e){if(e instanceof URL)return e.href;try{return new URL(e,window.location).href}catch(t){if(_is_node.isNodeJS&&"string"==typeof e)return e}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}function getDataProp(e){if(_is_node.isNodeJS&&"undefined"!=typeof Buffer&&e instanceof Buffer)throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");if(e instanceof Uint8Array&&e.byteLength===e.buffer.byteLength)return e;if("string"==typeof e)return(0,_util.stringToBytes)(e);if("object"==typeof e&&!isNaN(null==e?void 0:e.length)||(0,_util.isArrayBuffer)(e))return new Uint8Array(e);throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.")}let t=class{constructor(){this._capability=new _util.PromiseCapability,this._transport=null,this._worker=null,this.docId="d"+NT(t,i)._++,this.destroyed=!1,this.onPassword=null,this.onProgress=null}get promise(){return this._capability.promise}destroy(){return ft(this,null,(function*(){var e;this.destroyed=!0,yield null==(e=this._transport)?void 0:e.destroy(),this._transport=null,this._worker&&(this._worker.destroy(),this._worker=null)}))}},PDFDocumentLoadingTask=t;i=new WeakMap,Je(PDFDocumentLoadingTask,i,0),exports.PDFDocumentLoadingTask=PDFDocumentLoadingTask;class PDFDataRangeTransport{constructor(e,t,n=!1,i=null){this.length=e,this.initialData=t,this.progressiveDone=n,this.contentDispositionFilename=i,this._rangeListeners=[],this._progressListeners=[],this._progressiveReadListeners=[],this._progressiveDoneListeners=[],this._readyCapability=new _util.PromiseCapability}addRangeListener(e){this._rangeListeners.push(e)}addProgressListener(e){this._progressListeners.push(e)}addProgressiveReadListener(e){this._progressiveReadListeners.push(e)}addProgressiveDoneListener(e){this._progressiveDoneListeners.push(e)}onDataRange(e,t){for(let n of this._rangeListeners)n(e,t)}onDataProgress(e,t){this._readyCapability.promise.then((()=>{for(let n of this._progressListeners)n(e,t)}))}onDataProgressiveRead(e){this._readyCapability.promise.then((()=>{for(let t of this._progressiveReadListeners)t(e)}))}onDataProgressiveDone(){this._readyCapability.promise.then((()=>{for(let e of this._progressiveDoneListeners)e()}))}transportReady(){this._readyCapability.resolve()}requestDataRange(e,t){(0,_util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}}exports.PDFDataRangeTransport=PDFDataRangeTransport;class PDFDocumentProxy{constructor(e,t){this._pdfInfo=e,this._transport=t}get annotationStorage(){return this._transport.annotationStorage}get filterFactory(){return this._transport.filterFactory}get numPages(){return this._pdfInfo.numPages}get fingerprints(){return this._pdfInfo.fingerprints}get isPureXfa(){return(0,_util.shadow)(this,"isPureXfa",!!this._transport._htmlForXfa)}get allXfaHtml(){return this._transport._htmlForXfa}getPage(e){return this._transport.getPage(e)}getPageIndex(e){return this._transport.getPageIndex(e)}getDestinations(){return this._transport.getDestinations()}getDestination(e){return this._transport.getDestination(e)}getPageLabels(){return this._transport.getPageLabels()}getPageLayout(){return this._transport.getPageLayout()}getPageMode(){return this._transport.getPageMode()}getViewerPreferences(){return this._transport.getViewerPreferences()}getOpenAction(){return this._transport.getOpenAction()}getAttachments(){return this._transport.getAttachments()}getJavaScript(){return this._transport.getJavaScript()}getJSActions(){return this._transport.getDocJSActions()}getOutline(){return this._transport.getOutline()}getOptionalContentConfig(){return this._transport.getOptionalContentConfig()}getPermissions(){return this._transport.getPermissions()}getMetadata(){return this._transport.getMetadata()}getMarkInfo(){return this._transport.getMarkInfo()}getData(){return this._transport.getData()}saveDocument(){return this._transport.saveDocument()}getDownloadInfo(){return this._transport.downloadInfoCapability.promise}cleanup(e=!1){return this._transport.startCleanup(e||this.isPureXfa)}destroy(){return this.loadingTask.destroy()}get loadingParams(){return this._transport.loadingParams}get loadingTask(){return this._transport.loadingTask}getFieldObjects(){return this._transport.getFieldObjects()}hasJSActions(){return this._transport.hasJSActions()}getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}exports.PDFDocumentProxy=PDFDocumentProxy;class PDFPageProxy{constructor(t,i,s,o=!1){Je(this,r),Je(this,a),Je(this,e,null),Je(this,n,!1),this._pageIndex=t,this._pageInfo=i,this._transport=s,this._stats=o?new _display_utils.StatTimer:null,this._pdfBug=o,this.commonObjs=s.commonObjs,this.objs=new PDFObjects,this._maybeCleanupAfterRender=!1,this._intentStates=new Map,this.destroyed=!1}get pageNumber(){return this._pageIndex+1}get rotate(){return this._pageInfo.rotate}get ref(){return this._pageInfo.ref}get userUnit(){return this._pageInfo.userUnit}get view(){return this._pageInfo.view}getViewport({scale:e,rotation:t=this.rotate,offsetX:n=0,offsetY:i=0,dontFlip:r=!1}={}){return new _display_utils.PageViewport({viewBox:this.view,scale:e,rotation:t,offsetX:n,offsetY:i,dontFlip:r})}getAnnotations({intent:e="display"}={}){let t=this._transport.getRenderingIntent(e);return this._transport.getAnnotations(this._pageIndex,t.renderingIntent)}getJSActions(){return this._transport.getPageJSActions(this._pageIndex)}get filterFactory(){return this._transport.filterFactory}get isPureXfa(){return(0,_util.shadow)(this,"isPureXfa",!!this._transport._htmlForXfa)}getXfa(){return ft(this,null,(function*(){var e;return(null==(e=this._transport._htmlForXfa)?void 0:e.children[this._pageIndex])||null}))}render({canvasContext:e,viewport:t,intent:i="display",annotationMode:s=_util.AnnotationMode.ENABLE,transform:o=null,background:l=null,optionalContentConfigPromise:h=null,annotationCanvasMap:c=null,pageColors:u=null,printAnnotationStorage:d=null}){var p,f;null==(p=this._stats)||p.time("Overall");let m=this._transport.getRenderingIntent(i,s,d);St(this,n,!1),dt(this,a,H2).call(this),h||(h=this._transport.getOptionalContentConfig());let g=this._intentStates.get(m.cacheKey);g||(g=Object.create(null),this._intentStates.set(m.cacheKey,g)),g.streamReaderCancelTimeout&&(clearTimeout(g.streamReaderCancelTimeout),g.streamReaderCancelTimeout=null);let v=!!(m.renderingIntent&_util.RenderingIntentFlag.PRINT);g.displayReadyCapability||(g.displayReadyCapability=new _util.PromiseCapability,g.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},null==(f=this._stats)||f.time("Page Request"),this._pumpOperatorList(m));let y=e=>{var t,i;g.renderTasks.delete(x),(this._maybeCleanupAfterRender||v)&&St(this,n,!0),dt(this,r,$y).call(this,!v),e?(x.capability.reject(e),this._abortOperatorList({intentState:g,reason:e instanceof Error?e:new Error(e)})):x.capability.resolve(),null==(t=this._stats)||t.timeEnd("Rendering"),null==(i=this._stats)||i.timeEnd("Overall")},x=new InternalRenderTask({callback:y,params:{canvasContext:e,viewport:t,transform:o,background:l},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:c,operatorList:g.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!v,pdfBug:this._pdfBug,pageColors:u});(g.renderTasks||(g.renderTasks=new Set)).add(x);let b=x.task;return Promise.all([g.displayReadyCapability.promise,h]).then((([e,t])=>{var n;this.destroyed?y():(null==(n=this._stats)||n.time("Rendering"),x.initializeGraphics({transparency:e,optionalContentConfig:t}),x.operatorListChanged())})).catch(y),b}getOperatorList({intent:e="display",annotationMode:t=_util.AnnotationMode.ENABLE,printAnnotationStorage:n=null}={}){var i;let r,a=this._transport.getRenderingIntent(e,t,n,!0),s=this._intentStates.get(a.cacheKey);return s||(s=Object.create(null),this._intentStates.set(a.cacheKey,s)),s.opListReadCapability||(r=Object.create(null),r.operatorListChanged=function(){s.operatorList.lastChunk&&(s.opListReadCapability.resolve(s.operatorList),s.renderTasks.delete(r))},s.opListReadCapability=new _util.PromiseCapability,(s.renderTasks||(s.renderTasks=new Set)).add(r),s.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},null==(i=this._stats)||i.time("Page Request"),this._pumpOperatorList(a)),s.opListReadCapability.promise}streamTextContent({includeMarkedContent:e=!1,disableNormalization:t=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,includeMarkedContent:!0===e,disableNormalization:!0===t},{highWaterMark:100,size:e=>e.items.length})}getTextContent(e={}){if(this._transport._htmlForXfa)return this.getXfa().then((e=>_xfa_text.XfaText.textContent(e)));let t=this.streamTextContent(e);return new Promise((function(e,n){let i=t.getReader(),r={items:[],styles:Object.create(null)};!function t(){i.read().then((function({value:n,done:i}){i?e(r):(Object.assign(r.styles,n.styles),r.items.push(...n.items),t())}),n)}()}))}getStructTree(){return this._transport.getStructTree(this._pageIndex)}_destroy(){this.destroyed=!0;let e=[];for(let t of this._intentStates.values())if(this._abortOperatorList({intentState:t,reason:new Error("Page was destroyed."),force:!0}),!t.opListReadCapability)for(let n of t.renderTasks)e.push(n.completed),n.cancel();return this.objs.clear(),St(this,n,!1),dt(this,a,H2).call(this),Promise.all(e)}cleanup(e=!1){St(this,n,!0);let t=dt(this,r,$y).call(this,!1);return e&&t&&this._stats&&(this._stats=new _display_utils.StatTimer),t}_startRenderPage(e,t){var n,i;let r=this._intentStates.get(t);r&&(null==(n=this._stats)||n.timeEnd("Page Request"),null==(i=r.displayReadyCapability)||i.resolve(e))}_renderPageChunk(e,t){for(let n=0,i=e.length;n{s.read().then((({value:e,done:t})=>{t?o.streamReader=null:this._transport.destroyed||(this._renderPageChunk(e,o),l())}),(e=>{if(o.streamReader=null,!this._transport.destroyed){if(o.operatorList){o.operatorList.lastChunk=!0;for(let e of o.renderTasks)e.operatorListChanged();dt(this,r,$y).call(this,!0)}if(o.displayReadyCapability)o.displayReadyCapability.reject(e);else{if(!o.opListReadCapability)throw e;o.opListReadCapability.reject(e)}}}))};l()}_abortOperatorList({intentState:e,reason:t,force:n=!1}){if(e.streamReader){if(e.streamReaderCancelTimeout&&(clearTimeout(e.streamReaderCancelTimeout),e.streamReaderCancelTimeout=null),!n){if(e.renderTasks.size>0)return;if(t instanceof _display_utils.RenderingCancelledException){let n=RENDERING_CANCELLED_TIMEOUT;return t.extraDelay>0&&t.extraDelay<1e3&&(n+=t.extraDelay),void(e.streamReaderCancelTimeout=setTimeout((()=>{e.streamReaderCancelTimeout=null,this._abortOperatorList({intentState:e,reason:t,force:!0})}),n))}}if(e.streamReader.cancel(new _util.AbortException(t.message)).catch((()=>{})),e.streamReader=null,!this._transport.destroyed){for(let[t,n]of this._intentStates)if(n===e){this._intentStates.delete(t);break}this.cleanup()}}}get stats(){return this._stats}}e=new WeakMap,n=new WeakMap,r=new WeakSet,$y=function(t=!1){if(dt(this,a,H2).call(this),!ce(this,n)||this.destroyed)return!1;if(t)return St(this,e,setTimeout((()=>{St(this,e,null),dt(this,r,$y).call(this,!1)}),DELAYED_CLEANUP_TIMEOUT)),!1;for(let{renderTasks:e,operatorList:n}of this._intentStates.values())if(e.size>0||!n.lastChunk)return!1;return this._intentStates.clear(),this.objs.clear(),St(this,n,!1),!0},a=new WeakSet,H2=function(){ce(this,e)&&(clearTimeout(ce(this,e)),St(this,e,null))},exports.PDFPageProxy=PDFPageProxy;class LoopbackPort{constructor(){Je(this,l,new Set),Je(this,c,Promise.resolve())}postMessage(e,t){let n={data:structuredClone(e,t?{transfer:t}:null)};ce(this,c).then((()=>{for(let e of ce(this,l))e.call(this,n)}))}addEventListener(e,t){ce(this,l).add(t)}removeEventListener(e,t){ce(this,l).delete(t)}terminate(){ce(this,l).clear()}}l=new WeakMap,c=new WeakMap,exports.LoopbackPort=LoopbackPort;let PDFWorkerUtil={isWorkerDisabled:!1,fallbackWorkerSrc:null,fakeWorkerId:0};if(exports.PDFWorkerUtil=PDFWorkerUtil,_is_node.isNodeJS&&"function"==typeof o3)PDFWorkerUtil.isWorkerDisabled=!0,PDFWorkerUtil.fallbackWorkerSrc="./pdf.worker.js";else if("object"==typeof document){let e=null==(u=null==document?void 0:document.currentScript)?void 0:u.src;e&&(PDFWorkerUtil.fallbackWorkerSrc=e.replace(/(\.(?:min\.)?js)(\?.*)?$/i,".worker$1$2"))}PDFWorkerUtil.isSameOrigin=function(e,t){let n;try{if(n=new URL(e),!n.origin||"null"===n.origin)return!1}catch(e){return!1}let i=new URL(t,n);return n.origin===i.origin},PDFWorkerUtil.createCDNWrapper=function(e){let t=`importScripts("${e}");`;return URL.createObjectURL(new Blob([t]))};let _PDFWorker=class{constructor({name:e=null,port:t=null,verbosity:n=(0,_util.getVerbosityLevel)()}={}){if(t&&ce(_PDFWorker,h).has(t))throw new Error("Cannot use more than one PDFWorker per port.");if(this.name=e,this.destroyed=!1,this.verbosity=n,this._readyCapability=new _util.PromiseCapability,this._port=null,this._webWorker=null,this._messageHandler=null,t)return ce(_PDFWorker,h).set(t,this),void this._initializeFromPort(t);this._initialize()}get promise(){return this._readyCapability.promise}get port(){return this._port}get messageHandler(){return this._messageHandler}_initializeFromPort(e){this._port=e,this._messageHandler=new _message_handler.MessageHandler("main","worker",e),this._messageHandler.on("ready",(function(){})),this._readyCapability.resolve(),this._messageHandler.send("configure",{verbosity:this.verbosity})}_initialize(){if(!PDFWorkerUtil.isWorkerDisabled&&!_PDFWorker._mainThreadWorkerMessageHandler){let{workerSrc:t}=_PDFWorker;try{PDFWorkerUtil.isSameOrigin(window.location.href,t)||(t=PDFWorkerUtil.createCDNWrapper(new URL(t,window.location).href));let e=new Worker(t),n=new _message_handler.MessageHandler("main","worker",e),i=()=>{e.removeEventListener("error",r),n.destroy(),e.terminate(),this.destroyed?this._readyCapability.reject(new Error("Worker was destroyed")):this._setupFakeWorker()},r=()=>{this._webWorker||i()};e.addEventListener("error",r),n.on("test",(t=>{e.removeEventListener("error",r),this.destroyed?i():t?(this._messageHandler=n,this._port=e,this._webWorker=e,this._readyCapability.resolve(),n.send("configure",{verbosity:this.verbosity})):(this._setupFakeWorker(),n.destroy(),e.terminate())})),n.on("ready",(t=>{if(e.removeEventListener("error",r),this.destroyed)i();else try{a()}catch(t){this._setupFakeWorker()}}));let a=()=>{let e=new Uint8Array;n.send("test",e,[e.buffer])};return void a()}catch(e){(0,_util.info)("The worker has been disabled.")}}this._setupFakeWorker()}_setupFakeWorker(){PDFWorkerUtil.isWorkerDisabled||((0,_util.warn)("Setting up fake worker."),PDFWorkerUtil.isWorkerDisabled=!0),_PDFWorker._setupFakeWorkerGlobal.then((e=>{if(this.destroyed)return void this._readyCapability.reject(new Error("Worker was destroyed"));let t=new LoopbackPort;this._port=t;let n="fake"+PDFWorkerUtil.fakeWorkerId++,i=new _message_handler.MessageHandler(n+"_worker",n,t);e.setup(i,t);let r=new _message_handler.MessageHandler(n,n+"_worker",t);this._messageHandler=r,this._readyCapability.resolve(),r.send("configure",{verbosity:this.verbosity})})).catch((e=>{this._readyCapability.reject(new Error(`Setting up fake worker failed: "${e.message}".`))}))}destroy(){this.destroyed=!0,this._webWorker&&(this._webWorker.terminate(),this._webWorker=null),ce(_PDFWorker,h).delete(this._port),this._port=null,this._messageHandler&&(this._messageHandler.destroy(),this._messageHandler=null)}static fromPort(e){if(null==e||!e.port)throw new Error("PDFWorker.fromPort - invalid method signature.");return ce(this,h).has(e.port)?ce(this,h).get(e.port):new _PDFWorker(e)}static get workerSrc(){if(_worker_options.GlobalWorkerOptions.workerSrc)return _worker_options.GlobalWorkerOptions.workerSrc;if(null!==PDFWorkerUtil.fallbackWorkerSrc)return _is_node.isNodeJS||(0,_display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.'),PDFWorkerUtil.fallbackWorkerSrc;throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get _mainThreadWorkerMessageHandler(){var e;try{return(null==(e=globalThis.pdfjsWorker)?void 0:e.WorkerMessageHandler)||null}catch(e){return null}}static get _setupFakeWorkerGlobal(){let loader=()=>ft(this,null,(function*(){let mainWorkerMessageHandler=this._mainThreadWorkerMessageHandler;if(mainWorkerMessageHandler)return mainWorkerMessageHandler;if(_is_node.isNodeJS&&"function"==typeof o3){let worker=eval("require")(this.workerSrc);return worker.WorkerMessageHandler}return yield(0,_display_utils.loadScript)(this.workerSrc),window.pdfjsWorker.WorkerMessageHandler}));return(0,_util.shadow)(this,"_setupFakeWorkerGlobal",loader())}},PDFWorker=_PDFWorker;h=new WeakMap,Je(PDFWorker,h,new WeakMap),exports.PDFWorker=PDFWorker;class WorkerTransport{constructor(e,t,n,i,r){Je(this,g),Je(this,d,new Map),Je(this,f,new Map),Je(this,p,new Map),this.messageHandler=e,this.loadingTask=t,this.commonObjs=new PDFObjects,this.fontLoader=new _font_loader.FontLoader({ownerDocument:i.ownerDocument,styleElement:i.styleElement}),this._params=i,this.canvasFactory=r.canvasFactory,this.filterFactory=r.filterFactory,this.cMapReaderFactory=r.cMapReaderFactory,this.standardFontDataFactory=r.standardFontDataFactory,this.destroyed=!1,this.destroyCapability=null,this._passwordCapability=null,this._networkStream=n,this._fullReader=null,this._lastProgress=null,this.downloadInfoCapability=new _util.PromiseCapability,this.setupMessageHandler()}get annotationStorage(){return(0,_util.shadow)(this,"annotationStorage",new _annotation_storage.AnnotationStorage)}getRenderingIntent(e,t=_util.AnnotationMode.ENABLE,n=null,i=!1){let r=_util.RenderingIntentFlag.DISPLAY,a=_annotation_storage.SerializableEmpty;switch(e){case"any":r=_util.RenderingIntentFlag.ANY;break;case"display":break;case"print":r=_util.RenderingIntentFlag.PRINT;break;default:(0,_util.warn)(`getRenderingIntent - invalid intent: ${e}`)}switch(t){case _util.AnnotationMode.DISABLE:r+=_util.RenderingIntentFlag.ANNOTATIONS_DISABLE;break;case _util.AnnotationMode.ENABLE:break;case _util.AnnotationMode.ENABLE_FORMS:r+=_util.RenderingIntentFlag.ANNOTATIONS_FORMS;break;case _util.AnnotationMode.ENABLE_STORAGE:r+=_util.RenderingIntentFlag.ANNOTATIONS_STORAGE,a=(r&_util.RenderingIntentFlag.PRINT&&n instanceof _annotation_storage.PrintAnnotationStorage?n:this.annotationStorage).serializable;break;default:(0,_util.warn)(`getRenderingIntent - invalid annotationMode: ${t}`)}return i&&(r+=_util.RenderingIntentFlag.OPLIST),{renderingIntent:r,cacheKey:`${r}_${a.hash}`,annotationStorageSerializable:a}}destroy(){if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=new _util.PromiseCapability,this._passwordCapability&&this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback"));let e=[];for(let n of ce(this,f).values())e.push(n._destroy());ce(this,f).clear(),ce(this,p).clear(),this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();let t=this.messageHandler.sendWithPromise("Terminate",null);return e.push(t),Promise.all(e).then((()=>{this.commonObjs.clear(),this.fontLoader.clear(),ce(this,d).clear(),this.filterFactory.destroy(),this._networkStream&&this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated.")),this.messageHandler&&(this.messageHandler.destroy(),this.messageHandler=null),this.destroyCapability.resolve()}),this.destroyCapability.reject),this.destroyCapability.promise}setupMessageHandler(){let{messageHandler:e,loadingTask:t}=this;e.on("GetReader",((e,t)=>{(0,_util.assert)(this._networkStream,"GetReader - no `IPDFStream` instance available."),this._fullReader=this._networkStream.getFullReader(),this._fullReader.onProgress=e=>{this._lastProgress={loaded:e.loaded,total:e.total}},t.onPull=()=>{this._fullReader.read().then((function({value:e,done:n}){n?t.close():((0,_util.assert)(e instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer."),t.enqueue(new Uint8Array(e),1,[e]))})).catch((e=>{t.error(e)}))},t.onCancel=e=>{this._fullReader.cancel(e),t.ready.catch((e=>{if(!this.destroyed)throw e}))}})),e.on("ReaderHeadersReady",(e=>{let n=new _util.PromiseCapability,i=this._fullReader;return i.headersReady.then((()=>{var e;(!i.isStreamingSupported||!i.isRangeSupported)&&(this._lastProgress&&(null==(e=t.onProgress)||e.call(t,this._lastProgress)),i.onProgress=e=>{var n;null==(n=t.onProgress)||n.call(t,{loaded:e.loaded,total:e.total})}),n.resolve({isStreamingSupported:i.isStreamingSupported,isRangeSupported:i.isRangeSupported,contentLength:i.contentLength})}),n.reject),n.promise})),e.on("GetRangeReader",((e,t)=>{(0,_util.assert)(this._networkStream,"GetRangeReader - no `IPDFStream` instance available.");let n=this._networkStream.getRangeReader(e.begin,e.end);n?(t.onPull=()=>{n.read().then((function({value:e,done:n}){n?t.close():((0,_util.assert)(e instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer."),t.enqueue(new Uint8Array(e),1,[e]))})).catch((e=>{t.error(e)}))},t.onCancel=e=>{n.cancel(e),t.ready.catch((e=>{if(!this.destroyed)throw e}))}):t.close()})),e.on("GetDoc",(({pdfInfo:e})=>{this._numPages=e.numPages,this._htmlForXfa=e.htmlForXfa,delete e.htmlForXfa,t._capability.resolve(new PDFDocumentProxy(e,this))})),e.on("DocException",(function(e){let n;switch(e.name){case"PasswordException":n=new _util.PasswordException(e.message,e.code);break;case"InvalidPDFException":n=new _util.InvalidPDFException(e.message);break;case"MissingPDFException":n=new _util.MissingPDFException(e.message);break;case"UnexpectedResponseException":n=new _util.UnexpectedResponseException(e.message,e.status);break;case"UnknownErrorException":n=new _util.UnknownErrorException(e.message,e.details);break;default:(0,_util.unreachable)("DocException - expected a valid Error.")}t._capability.reject(n)})),e.on("PasswordRequest",(e=>{if(this._passwordCapability=new _util.PromiseCapability,t.onPassword){let n=e=>{e instanceof Error?this._passwordCapability.reject(e):this._passwordCapability.resolve({password:e})};try{t.onPassword(n,e.code)}catch(e){this._passwordCapability.reject(e)}}else this._passwordCapability.reject(new _util.PasswordException(e.message,e.code));return this._passwordCapability.promise})),e.on("DataLoaded",(e=>{var n;null==(n=t.onProgress)||n.call(t,{loaded:e.length,total:e.length}),this.downloadInfoCapability.resolve(e)})),e.on("StartRenderPage",(e=>{this.destroyed||ce(this,f).get(e.pageIndex)._startRenderPage(e.transparency,e.cacheKey)})),e.on("commonobj",(([t,n,i])=>{var r;if(!this.destroyed&&!this.commonObjs.has(t))switch(n){case"Font":let a=this._params;if("error"in i){let e=i.error;(0,_util.warn)(`Error during font loading: ${e}`),this.commonObjs.resolve(t,e);break}let s=a.pdfBug&&null!=(r=globalThis.FontInspector)&&r.enabled?(e,t)=>globalThis.FontInspector.fontAdded(e,t):null,o=new _font_loader.FontFaceObject(i,{isEvalSupported:a.isEvalSupported,disableFontFace:a.disableFontFace,ignoreErrors:a.ignoreErrors,inspectFont:s});this.fontLoader.bind(o).catch((n=>e.sendWithPromise("FontFallback",{id:t}))).finally((()=>{!a.fontExtraProperties&&o.data&&(o.data=null),this.commonObjs.resolve(t,o)}));break;case"FontPath":case"Image":case"Pattern":this.commonObjs.resolve(t,i);break;default:throw new Error(`Got unknown common object type ${n}`)}})),e.on("obj",(([e,t,n,i])=>{var r;if(this.destroyed)return;let a=ce(this,f).get(t);if(!a.objs.has(e))switch(n){case"Image":if(a.objs.resolve(e,i),i){let e;if(i.bitmap){let{width:t,height:n}=i;e=t*n*4}else e=(null==(r=i.data)?void 0:r.length)||0;e>_util.MAX_IMAGE_SIZE_TO_CACHE&&(a._maybeCleanupAfterRender=!0)}break;case"Pattern":a.objs.resolve(e,i);break;default:throw new Error(`Got unknown object type ${n}`)}})),e.on("DocProgress",(e=>{var n;this.destroyed||null==(n=t.onProgress)||n.call(t,{loaded:e.loaded,total:e.total})})),e.on("FetchBuiltInCMap",(e=>this.destroyed?Promise.reject(new Error("Worker was destroyed.")):this.cMapReaderFactory?this.cMapReaderFactory.fetch(e):Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.")))),e.on("FetchStandardFontData",(e=>this.destroyed?Promise.reject(new Error("Worker was destroyed.")):this.standardFontDataFactory?this.standardFontDataFactory.fetch(e):Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter."))))}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(){var e,t;this.annotationStorage.size<=0&&(0,_util.warn)("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");let{map:n,transfers:i}=this.annotationStorage.serializable;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:n,filename:null!=(t=null==(e=this._fullReader)?void 0:e.filename)?t:null},i).finally((()=>{this.annotationStorage.resetModified()}))}getPage(e){if(!Number.isInteger(e)||e<=0||e>this._numPages)return Promise.reject(new Error("Invalid page request."));let t=e-1,n=ce(this,p).get(t);if(n)return n;let i=this.messageHandler.sendWithPromise("GetPage",{pageIndex:t}).then((e=>{if(this.destroyed)throw new Error("Transport destroyed");let n=new PDFPageProxy(t,e,this,this._params.pdfBug);return ce(this,f).set(t,n),n}));return ce(this,p).set(t,i),i}getPageIndex(e){return"object"!=typeof e||null===e||!Number.isInteger(e.num)||e.num<0||!Number.isInteger(e.gen)||e.gen<0?Promise.reject(new Error("Invalid pageIndex request.")):this.messageHandler.sendWithPromise("GetPageIndex",{num:e.num,gen:e.gen})}getAnnotations(e,t){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:e,intent:t})}getFieldObjects(){return dt(this,g,_V).call(this,"GetFieldObjects")}hasJSActions(){return dt(this,g,_V).call(this,"HasJSActions")}getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}getDestination(e){return"string"!=typeof e?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:e})}getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}getJavaScript(){return this.messageHandler.sendWithPromise("GetJavaScript",null)}getDocJSActions(){return this.messageHandler.sendWithPromise("GetDocJSActions",null)}getPageJSActions(e){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:e})}getStructTree(e){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:e})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(){return this.messageHandler.sendWithPromise("GetOptionalContentConfig",null).then((e=>new _optional_content_config.OptionalContentConfig(e)))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){let e="GetMetadata",t=ce(this,d).get(e);if(t)return t;let n=this.messageHandler.sendWithPromise(e,null).then((e=>{var t,n,i,r;return{info:e[0],metadata:e[1]?new _metadata.Metadata(e[1]):null,contentDispositionFilename:null!=(n=null==(t=this._fullReader)?void 0:t.filename)?n:null,contentLength:null!=(r=null==(i=this._fullReader)?void 0:i.contentLength)?r:null}}));return ce(this,d).set(e,n),n}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}startCleanup(e=!1){return ft(this,null,(function*(){if(!this.destroyed){yield this.messageHandler.sendWithPromise("Cleanup",null);for(let e of ce(this,f).values())if(!e.cleanup())throw new Error(`startCleanup: Page ${e.pageNumber} is currently rendering.`);this.commonObjs.clear(),e||this.fontLoader.clear(),ce(this,d).clear(),this.filterFactory.destroy(!0)}}))}get loadingParams(){let{disableAutoFetch:e,enableXfa:t}=this._params;return(0,_util.shadow)(this,"loadingParams",{disableAutoFetch:e,enableXfa:t})}}d=new WeakMap,f=new WeakMap,p=new WeakMap,g=new WeakSet,_V=function(e,t=null){let n=ce(this,d).get(e);if(n)return n;let i=this.messageHandler.sendWithPromise(e,t);return ce(this,d).set(e,i),i};class PDFObjects{constructor(){Je(this,E),Je(this,v,Object.create(null))}get(e,t=null){if(t){let n=dt(this,E,TV).call(this,e);return n.capability.promise.then((()=>t(n.data))),null}let n=ce(this,v)[e];if(null==n||!n.capability.settled)throw new Error(`Requesting object that isn't resolved yet ${e}.`);return n.data}has(e){let t=ce(this,v)[e];return(null==t?void 0:t.capability.settled)||!1}resolve(e,t=null){let n=dt(this,E,TV).call(this,e);n.data=t,n.capability.resolve()}clear(){var e;for(let t in ce(this,v)){let{data:n}=ce(this,v)[t];null==(e=null==n?void 0:n.bitmap)||e.close()}St(this,v,Object.create(null))}}v=new WeakMap,E=new WeakSet,TV=function(e){return ce(this,v)[e]||(ce(this,v)[e]={capability:new _util.PromiseCapability,data:null})};class RenderTask{constructor(e){Je(this,_,null),St(this,_,e),this.onContinue=null}get promise(){return ce(this,_).capability.promise}cancel(e=0){ce(this,_).cancel(null,e)}get separateAnnots(){let{separateAnnots:e}=ce(this,_).operatorList;if(!e)return!1;let{annotationCanvasMap:t}=ce(this,_);return e.form||e.canvas&&(null==t?void 0:t.size)>0}}_=new WeakMap,exports.RenderTask=RenderTask;let M=class{constructor({callback:e,params:t,objs:n,commonObjs:i,annotationCanvasMap:r,operatorList:a,pageIndex:s,canvasFactory:o,filterFactory:l,useRequestAnimationFrame:h=!1,pdfBug:c=!1,pageColors:u=null}){this.callback=e,this.params=t,this.objs=n,this.commonObjs=i,this.annotationCanvasMap=r,this.operatorListIdx=null,this.operatorList=a,this._pageIndex=s,this.canvasFactory=o,this.filterFactory=l,this._pdfBug=c,this.pageColors=u,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this._useRequestAnimationFrame=!0===h&&"undefined"!=typeof window,this.cancelled=!1,this.capability=new _util.PromiseCapability,this.task=new RenderTask(this),this._cancelBound=this.cancel.bind(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this),this._canvas=t.canvasContext.canvas}get completed(){return this.capability.promise.catch((function(){}))}initializeGraphics({transparency:e=!1,optionalContentConfig:t}){var n,i;if(this.cancelled)return;if(this._canvas){if(ce(M,R).has(this._canvas))throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");ce(M,R).add(this._canvas)}this._pdfBug&&null!=(n=globalThis.StepperManager)&&n.enabled&&(this.stepper=globalThis.StepperManager.create(this._pageIndex),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());let{canvasContext:r,viewport:a,transform:s,background:o}=this.params;this.gfx=new _canvas.CanvasGraphics(r,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:t},this.annotationCanvasMap,this.pageColors),this.gfx.beginDrawing({transform:s,viewport:a,transparency:e,background:o}),this.operatorListIdx=0,this.graphicsReady=!0,null==(i=this.graphicsReadyCallback)||i.call(this)}cancel(e=null,t=0){var n;this.running=!1,this.cancelled=!0,null==(n=this.gfx)||n.endDrawing(),this._canvas&&ce(M,R).delete(this._canvas),this.callback(e||new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex+1}`,t))}operatorListChanged(){var e;this.graphicsReady?(null==(e=this.stepper)||e.updateOperatorList(this.operatorList),!this.running&&this._continue()):this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound)}_continue(){this.running=!0,!this.cancelled&&(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}_scheduleNext(){this._useRequestAnimationFrame?window.requestAnimationFrame((()=>{this._nextBound().catch(this._cancelBound)})):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}_next(){return ft(this,null,(function*(){this.cancelled||(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(this.pageColors),this._canvas&&ce(M,R).delete(this._canvas),this.callback())))}))}},InternalRenderTask=M;R=new WeakMap,Je(InternalRenderTask,R,new WeakSet);let version="3.8.162";exports.version=version;let build="2c74323e3";exports.build=build},(e,t,n)=>{var i,r,a,s,o;Object.defineProperty(t,"__esModule",{value:!0}),t.SerializableEmpty=t.PrintAnnotationStorage=t.AnnotationStorage=void 0;var l=n(1),h=n(4),c=n(8);let u=Object.freeze({map:null,hash:"",transfers:void 0});t.SerializableEmpty=u;class d{constructor(){Je(this,a),Je(this,i,!1),Je(this,r,new Map),this.onSetModified=null,this.onResetModified=null,this.onAnnotationEditor=null}getValue(e,t){let n=ce(this,r).get(e);return void 0===n?t:Object.assign(t,n)}getRawValue(e){return ce(this,r).get(e)}remove(e){if(ce(this,r).delete(e),0===ce(this,r).size&&this.resetModified(),"function"==typeof this.onAnnotationEditor){for(let e of ce(this,r).values())if(e instanceof h.AnnotationEditor)return;this.onAnnotationEditor(null)}}setValue(e,t){let n=ce(this,r).get(e),i=!1;if(void 0!==n)for(let[r,a]of Object.entries(t))n[r]!==a&&(i=!0,n[r]=a);else i=!0,ce(this,r).set(e,t);i&&dt(this,a,s).call(this),t instanceof h.AnnotationEditor&&"function"==typeof this.onAnnotationEditor&&this.onAnnotationEditor(t.constructor._type)}has(e){return ce(this,r).has(e)}getAll(){return ce(this,r).size>0?(0,l.objectFromMap)(ce(this,r)):null}setAll(e){for(let[t,n]of Object.entries(e))this.setValue(t,n)}get size(){return ce(this,r).size}resetModified(){ce(this,i)&&(St(this,i,!1),"function"==typeof this.onResetModified&&this.onResetModified())}get print(){return new p(this)}get serializable(){if(0===ce(this,r).size)return u;let e=new Map,t=new c.MurmurHash3_64,n=[];for(let[i,a]of ce(this,r)){let r=a instanceof h.AnnotationEditor?a.serialize():a;r&&(e.set(i,r),t.update(`${i}:${JSON.stringify(r)}`),r.bitmap&&n.push(r.bitmap))}return e.size>0?{map:e,hash:t.hexdigest(),transfers:n}:u}}i=new WeakMap,r=new WeakMap,a=new WeakSet,s=function(){ce(this,i)||(St(this,i,!0),"function"==typeof this.onSetModified&&this.onSetModified())},t.AnnotationStorage=d;class p extends d{constructor(e){super(),Je(this,o,void 0);let{map:t,hash:n,transfers:i}=e.serializable,r=structuredClone(t,i?{transfer:i}:null);St(this,o,{map:r,hash:n,transfers:i})}get print(){(0,l.unreachable)("Should not call PrintAnnotationStorage.print")}get serializable(){return ce(this,o)}}o=new WeakMap,t.PrintAnnotationStorage=p},(e,t,n)=>{var i,r,a,s,o,l;Object.defineProperty(t,"__esModule",{value:!0}),t.AnnotationEditor=void 0;var h=n(5),c=n(1);let u=class{constructor(e){Je(this,i,this.focusin.bind(this)),Je(this,r,this.focusout.bind(this)),Je(this,a,!1),Je(this,s,!1),Je(this,o,!1),Xi(this,"_uiManager",null),Je(this,l,u._zIndex++),this.constructor===u&&(0,c.unreachable)("Cannot initialize AnnotationEditor."),this.parent=e.parent,this.id=e.id,this.width=this.height=null,this.pageIndex=e.parent.pageIndex,this.name=e.name,this.div=null,this._uiManager=e.uiManager,this.annotationElementId=null;let{rotation:t,rawDims:{pageWidth:n,pageHeight:h,pageX:d,pageY:p}}=this.parent.viewport;this.rotation=t,this.pageRotation=(360+t-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[n,h],this.pageTranslation=[d,p];let[f,m]=this.parentDimensions;this.x=e.x/f,this.y=e.y/m,this.isAttachedToDOM=!1,this.deleted=!1}static get _defaultLineColor(){return(0,c.shadow)(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}static deleteAnnotationElement(e){let t=new p({id:e.parent.getNextId(),parent:e.parent,uiManager:e._uiManager});t.annotationElementId=e.annotationElementId,t.deleted=!0,t._uiManager.addToAnnotationStorage(t)}addCommands(e){this._uiManager.addCommands(e)}get currentLayer(){return this._uiManager.currentLayer}setInBackground(){this.div.style.zIndex=0}setInForeground(){this.div.style.zIndex=ce(this,l)}setParent(e){null!==e&&(this.pageIndex=e.pageIndex,this.pageDimensions=e.pageDimensions),this.parent=e}focusin(e){ce(this,a)?St(this,a,!1):this.parent.setSelected(this)}focusout(e){var t;if(!this.isAttachedToDOM)return;let n=e.relatedTarget;null!=n&&n.closest(`#${this.id}`)||(e.preventDefault(),null!=(t=this.parent)&&t.isMultipleSelection||this.commitOrRemove())}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}dragstart(e){let t=this.parent.div.getBoundingClientRect();this.startX=e.clientX-t.x,this.startY=e.clientY-t.y,e.dataTransfer.setData("text/plain",this.id),e.dataTransfer.effectAllowed="move"}setAt(e,t,n,i){let[r,a]=this.parentDimensions;[n,i]=this.screenToPageTranslation(n,i),this.x=(e+n)/r,this.y=(t+i)/a,this.div.style.left=100*this.x+"%",this.div.style.top=100*this.y+"%"}translate(e,t){let[n,i]=this.parentDimensions;[e,t]=this.screenToPageTranslation(e,t),this.x+=e/n,this.y+=t/i,this.div.style.left=100*this.x+"%",this.div.style.top=100*this.y+"%"}screenToPageTranslation(e,t){switch(this.parentRotation){case 90:return[t,-e];case 180:return[-e,-t];case 270:return[-t,e];default:return[e,t]}}get parentScale(){return this._uiManager.viewParameters.realScale}get parentRotation(){return(this._uiManager.viewParameters.rotation+this.pageRotation)%360}get parentDimensions(){let{realScale:e}=this._uiManager.viewParameters,[t,n]=this.pageDimensions;return[t*e,n*e]}setDims(e,t){let[n,i]=this.parentDimensions;this.div.style.width=100*e/n+"%",this.div.style.height=100*t/i+"%"}fixDims(){let{style:e}=this.div,{height:t,width:n}=e,i=n.endsWith("%"),r=t.endsWith("%");if(i&&r)return;let[a,s]=this.parentDimensions;i||(e.width=100*parseFloat(n)/a+"%"),r||(e.height=100*parseFloat(t)/s+"%")}getInitialTranslation(){return[0,0]}render(){this.div=document.createElement("div"),this.div.setAttribute("data-editor-rotation",(360-this.rotation)%360),this.div.className=this.name,this.div.setAttribute("id",this.id),this.div.setAttribute("tabIndex",0),this.setInForeground(),this.div.addEventListener("focusin",ce(this,i)),this.div.addEventListener("focusout",ce(this,r));let[e,t]=this.getInitialTranslation();return this.translate(e,t),(0,h.bindEvents)(this,this.div,["dragstart","pointerdown"]),this.div}pointerdown(e){let{isMac:t}=c.FeatureTest.platform;0!==e.button||e.ctrlKey&&t?e.preventDefault():(e.ctrlKey&&!t||e.shiftKey||e.metaKey&&t?this.parent.toggleSelected(this):this.parent.setSelected(this),St(this,a,!0))}getRect(e,t){let n=this.parentScale,[i,r]=this.pageDimensions,[a,s]=this.pageTranslation,o=e/n,l=t/n,h=this.x*i,c=this.y*r,u=this.width*i,d=this.height*r;switch(this.rotation){case 0:return[h+o+a,r-c-l-d+s,h+o+u+a,r-c-l+s];case 90:return[h+l+a,r-c+o+s,h+l+d+a,r-c+o+u+s];case 180:return[h-o-u+a,r-c+l+s,h-o+a,r-c+l+d+s];case 270:return[h-l-d+a,r-c-o-u+s,h-l+a,r-c-o+s];default:throw new Error("Invalid rotation")}}getRectInCurrentCoords(e,t){let[n,i,r,a]=e,s=r-n,o=a-i;switch(this.rotation){case 0:return[n,t-a,s,o];case 90:return[n,t-i,o,s];case 180:return[r,t-i,s,o];case 270:return[r,t-a,o,s];default:throw new Error("Invalid rotation")}}onceAdded(){}isEmpty(){return!1}enableEditMode(){St(this,o,!0)}disableEditMode(){St(this,o,!1)}isInEditMode(){return ce(this,o)}shouldGetKeyboardEvents(){return!1}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}rebuild(){var e,t;null==(e=this.div)||e.addEventListener("focusin",ce(this,i)),null==(t=this.div)||t.addEventListener("focusout",ce(this,r))}serialize(e=!1){(0,c.unreachable)("An editor must be serializable")}static deserialize(e,t,n){let i=new this.prototype.constructor({parent:t,id:t.getNextId(),uiManager:n});i.rotation=e.rotation;let[r,a]=i.pageDimensions,[s,o,l,h]=i.getRectInCurrentCoords(e.rect,a);return i.x=s/r,i.y=o/a,i.width=l/r,i.height=h/a,i}remove(){this.div.removeEventListener("focusin",ce(this,i)),this.div.removeEventListener("focusout",ce(this,r)),this.isEmpty()||this.commit(),this.parent.remove(this)}select(){var e;null==(e=this.div)||e.classList.add("selectedEditor")}unselect(){var e;null==(e=this.div)||e.classList.remove("selectedEditor")}updateParams(e,t){}disableEditing(){}enableEditing(){}get propertiesToUpdate(){return{}}get contentDiv(){return this.div}get isEditing(){return ce(this,s)}set isEditing(e){St(this,s,e),e?(this.parent.setSelected(this),this.parent.setActiveEditor(this)):this.parent.setActiveEditor(null)}},d=u;i=new WeakMap,r=new WeakMap,a=new WeakMap,s=new WeakMap,o=new WeakMap,l=new WeakMap,Xi(d,"_colorManager",new h.ColorManager),Xi(d,"_zIndex",1),t.AnnotationEditor=d;class p extends d{constructor(e){super(e),this.annotationElementId=e.annotationElementId,this.deleted=!0}serialize(){return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex}}}},(e,t,n)=>{var i,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b,_,w,S,M,T,E,A,C,P,R,O,L,I,D,k,N,F,U,B,z,H,V,j,G,W,X,Y,q,J,Z,K,$,Q,ee,te;Object.defineProperty(t,"__esModule",{value:!0}),t.KeyboardManager=t.CommandManager=t.ColorManager=t.AnnotationEditorUIManager=void 0,t.bindEvents=function(e,t,n){for(let i of n)t.addEventListener(i,e[i].bind(e))},t.opacityToHex=function(e){return Math.round(Math.min(255,Math.max(1,255*e))).toString(16).padStart(2,"0")};var ne=n(1),ie=n(6);class re{constructor(){Je(this,i,0)}getId(){return`${ne.AnnotationEditorPrefix}${NT(this,i)._++}`}}i=new WeakMap;class ae{constructor(e=128){Je(this,r,[]),Je(this,a,!1),Je(this,s,void 0),Je(this,o,-1),St(this,s,e)}add({cmd:e,undo:t,mustExec:n,type:i=NaN,overwriteIfSameType:l=!1,keepUndo:h=!1}){if(n&&e(),ce(this,a))return;let c={cmd:e,undo:t,type:i};if(-1===ce(this,o))return ce(this,r).length>0&&(ce(this,r).length=0),St(this,o,0),void ce(this,r).push(c);if(l&&ce(this,r)[ce(this,o)].type===i)return h&&(c.undo=ce(this,r)[ce(this,o)].undo),void(ce(this,r)[ce(this,o)]=c);let u=ce(this,o)+1;u===ce(this,s)?ce(this,r).splice(0,1):(St(this,o,u),ue===t[n])))return oe._colorsMapping.get(n);return t}getHexCode(e){let t=this._colors.get(e);return t?ne.Util.makeHexColor(...t):e}},le=oe;Xi(le,"_colorsMapping",new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]])),t.ColorManager=le;let he=class{constructor(e,t,n){Je(this,D),Je(this,N),Je(this,U),Je(this,z),Je(this,V),Je(this,G),Je(this,X),Je(this,q),Je(this,Z),Je(this,$),Je(this,ee),Je(this,c,null),Je(this,u,new Map),Je(this,d,new Map),Je(this,p,null),Je(this,f,new ae),Je(this,m,0),Je(this,g,new Set),Je(this,v,null),Je(this,y,new Set),Je(this,x,null),Je(this,b,new re),Je(this,_,!1),Je(this,w,ne.AnnotationEditorType.NONE),Je(this,S,new Set),Je(this,M,this.copy.bind(this)),Je(this,T,this.cut.bind(this)),Je(this,E,this.paste.bind(this)),Je(this,A,this.keydown.bind(this)),Je(this,C,this.onEditingAction.bind(this)),Je(this,P,this.onPageChanging.bind(this)),Je(this,R,this.onScaleChanging.bind(this)),Je(this,O,this.onRotationChanging.bind(this)),Je(this,L,{isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1}),Je(this,I,null),St(this,I,e),St(this,x,t),ce(this,x)._on("editingaction",ce(this,C)),ce(this,x)._on("pagechanging",ce(this,P)),ce(this,x)._on("scalechanging",ce(this,R)),ce(this,x)._on("rotationchanging",ce(this,O)),St(this,p,n),this.viewParameters={realScale:ie.PixelsPerInch.PDF_TO_CSS_UNITS,rotation:0}}static get _keyboardManager(){return(0,ne.shadow)(this,"_keyboardManager",new se([[["ctrl+a","mac+meta+a"],he.prototype.selectAll],[["ctrl+z","mac+meta+z"],he.prototype.undo],[["ctrl+y","ctrl+shift+Z","mac+meta+shift+Z"],he.prototype.redo],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete"],he.prototype.delete],[["Escape","mac+Escape"],he.prototype.unselectAll]]))}destroy(){dt(this,N,F).call(this),ce(this,x)._off("editingaction",ce(this,C)),ce(this,x)._off("pagechanging",ce(this,P)),ce(this,x)._off("scalechanging",ce(this,R)),ce(this,x)._off("rotationchanging",ce(this,O));for(let e of ce(this,d).values())e.destroy();ce(this,d).clear(),ce(this,u).clear(),ce(this,y).clear(),St(this,c,null),ce(this,S).clear(),ce(this,f).destroy()}onPageChanging({pageNumber:e}){St(this,m,e-1)}focusMainContainer(){ce(this,I).focus()}addShouldRescale(e){ce(this,y).add(e)}removeShouldRescale(e){ce(this,y).delete(e)}onScaleChanging({scale:e}){this.commitOrRemove(),this.viewParameters.realScale=e*ie.PixelsPerInch.PDF_TO_CSS_UNITS;for(let t of ce(this,y))t.onScaleChanging()}onRotationChanging({pagesRotation:e}){this.commitOrRemove(),this.viewParameters.rotation=e}addToAnnotationStorage(e){!e.isEmpty()&&ce(this,p)&&!ce(this,p).has(e.id)&&ce(this,p).setValue(e.id,e)}copy(e){if(e.preventDefault(),ce(this,c)&&ce(this,c).commitOrRemove(),!this.hasSelection)return;let t=[];for(let n of ce(this,S)){let e=n.serialize(!0);e&&t.push(e)}0!==t.length&&e.clipboardData.setData("application/pdfjs",JSON.stringify(t))}cut(e){this.copy(e),this.delete()}paste(e){e.preventDefault();let t=e.clipboardData.getData("application/pdfjs");if(!t)return;try{t=JSON.parse(t)}catch(e){return void(0,ne.warn)(`paste: "${e.message}".`)}if(!Array.isArray(t))return;this.unselectAll();let n=ce(this,d).get(ce(this,m));try{let e=[];for(let a of t){let t=n.deserialize(a);if(!t)return;e.push(t)}let i=()=>{for(let t of e)dt(this,Z,K).call(this,t);dt(this,ee,te).call(this,e)},r=()=>{for(let t of e)t.remove()};this.addCommands({cmd:i,undo:r,mustExec:!0})}catch(e){(0,ne.warn)(`paste: "${e.message}".`)}}keydown(e){var t;null!=(t=this.getActive())&&t.shouldGetKeyboardEvents()||he._keyboardManager.exec(this,e)}onEditingAction(e){["undo","redo","delete","selectAll"].includes(e.name)&&this[e.name]()}setEditingState(e){e?(dt(this,D,k).call(this),dt(this,U,B).call(this),dt(this,V,j).call(this,{isEditing:ce(this,w)!==ne.AnnotationEditorType.NONE,isEmpty:dt(this,$,Q).call(this),hasSomethingToUndo:ce(this,f).hasSomethingToUndo(),hasSomethingToRedo:ce(this,f).hasSomethingToRedo(),hasSelectedEditor:!1})):(dt(this,N,F).call(this),dt(this,z,H).call(this),dt(this,V,j).call(this,{isEditing:!1}))}registerEditorTypes(e){if(!ce(this,v)){St(this,v,e);for(let e of ce(this,v))dt(this,G,W).call(this,e.defaultPropertiesToUpdate)}}getId(){return ce(this,b).getId()}get currentLayer(){return ce(this,d).get(ce(this,m))}get currentPageIndex(){return ce(this,m)}addLayer(e){ce(this,d).set(e.pageIndex,e),ce(this,_)?e.enable():e.disable()}removeLayer(e){ce(this,d).delete(e.pageIndex)}updateMode(e){if(St(this,w,e),e===ne.AnnotationEditorType.NONE)this.setEditingState(!1),dt(this,q,J).call(this);else{this.setEditingState(!0),dt(this,X,Y).call(this);for(let t of ce(this,d).values())t.updateMode(e)}}updateToolbar(e){e!==ce(this,w)&&ce(this,x).dispatch("switchannotationeditormode",{source:this,mode:e})}updateParams(e,t){if(ce(this,v)){for(let n of ce(this,S))n.updateParams(e,t);for(let n of ce(this,v))n.updateDefaultParams(e,t)}}getEditors(e){let t=[];for(let n of ce(this,u).values())n.pageIndex===e&&t.push(n);return t}getEditor(e){return ce(this,u).get(e)}addEditor(e){ce(this,u).set(e.id,e)}removeEditor(e){var t;ce(this,u).delete(e.id),this.unselect(e),(!e.annotationElementId||!ce(this,g).has(e.annotationElementId))&&(null==(t=ce(this,p))||t.remove(e.id))}addDeletedAnnotationElement(e){ce(this,g).add(e.annotationElementId),e.deleted=!0}isDeletedAnnotationElement(e){return ce(this,g).has(e)}removeDeletedAnnotationElement(e){ce(this,g).delete(e.annotationElementId),e.deleted=!1}setActiveEditor(e){ce(this,c)!==e&&(St(this,c,e),e&&dt(this,G,W).call(this,e.propertiesToUpdate))}toggleSelected(e){if(ce(this,S).has(e))return ce(this,S).delete(e),e.unselect(),void dt(this,V,j).call(this,{hasSelectedEditor:this.hasSelection});ce(this,S).add(e),e.select(),dt(this,G,W).call(this,e.propertiesToUpdate),dt(this,V,j).call(this,{hasSelectedEditor:!0})}setSelected(e){for(let t of ce(this,S))t!==e&&t.unselect();ce(this,S).clear(),ce(this,S).add(e),e.select(),dt(this,G,W).call(this,e.propertiesToUpdate),dt(this,V,j).call(this,{hasSelectedEditor:!0})}isSelected(e){return ce(this,S).has(e)}unselect(e){e.unselect(),ce(this,S).delete(e),dt(this,V,j).call(this,{hasSelectedEditor:this.hasSelection})}get hasSelection(){return 0!==ce(this,S).size}undo(){ce(this,f).undo(),dt(this,V,j).call(this,{hasSomethingToUndo:ce(this,f).hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:dt(this,$,Q).call(this)})}redo(){ce(this,f).redo(),dt(this,V,j).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:ce(this,f).hasSomethingToRedo(),isEmpty:dt(this,$,Q).call(this)})}addCommands(e){ce(this,f).add(e),dt(this,V,j).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:dt(this,$,Q).call(this)})}delete(){if(this.commitOrRemove(),!this.hasSelection)return;let e=[...ce(this,S)];this.addCommands({cmd:()=>{for(let t of e)t.remove()},undo:()=>{for(let t of e)dt(this,Z,K).call(this,t)},mustExec:!0})}commitOrRemove(){var e;null==(e=ce(this,c))||e.commitOrRemove()}selectAll(){for(let e of ce(this,S))e.commit();dt(this,ee,te).call(this,ce(this,u).values())}unselectAll(){if(ce(this,c))ce(this,c).commitOrRemove();else if(0!==ce(this,S).size){for(let e of ce(this,S))e.unselect();ce(this,S).clear(),dt(this,V,j).call(this,{hasSelectedEditor:!1})}}isActive(e){return ce(this,c)===e}getActive(){return ce(this,c)}getMode(){return ce(this,w)}},ue=he;c=new WeakMap,u=new WeakMap,d=new WeakMap,p=new WeakMap,f=new WeakMap,m=new WeakMap,g=new WeakMap,v=new WeakMap,y=new WeakMap,x=new WeakMap,b=new WeakMap,_=new WeakMap,w=new WeakMap,S=new WeakMap,M=new WeakMap,T=new WeakMap,E=new WeakMap,A=new WeakMap,C=new WeakMap,P=new WeakMap,R=new WeakMap,O=new WeakMap,L=new WeakMap,I=new WeakMap,D=new WeakSet,k=function(){ce(this,I).addEventListener("keydown",ce(this,A))},N=new WeakSet,F=function(){ce(this,I).removeEventListener("keydown",ce(this,A))},U=new WeakSet,B=function(){document.addEventListener("copy",ce(this,M)),document.addEventListener("cut",ce(this,T)),document.addEventListener("paste",ce(this,E))},z=new WeakSet,H=function(){document.removeEventListener("copy",ce(this,M)),document.removeEventListener("cut",ce(this,T)),document.removeEventListener("paste",ce(this,E))},V=new WeakSet,j=function(e){Object.entries(e).some((([e,t])=>ce(this,L)[e]!==t))&&ce(this,x).dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(ce(this,L),e)})},G=new WeakSet,W=function(e){ce(this,x).dispatch("annotationeditorparamschanged",{source:this,details:e})},X=new WeakSet,Y=function(){if(!ce(this,_)){St(this,_,!0);for(let e of ce(this,d).values())e.enable()}},q=new WeakSet,J=function(){if(this.unselectAll(),ce(this,_)){St(this,_,!1);for(let e of ce(this,d).values())e.disable()}},Z=new WeakSet,K=function(e){let t=ce(this,d).get(e.pageIndex);t?t.addOrRebuild(e):this.addEditor(e)},$=new WeakSet,Q=function(){if(0===ce(this,u).size)return!0;if(1===ce(this,u).size)for(let e of ce(this,u).values())return e.isEmpty();return!1},ee=new WeakSet,te=function(e){ce(this,S).clear();for(let t of e)t.isEmpty()||(ce(this,S).add(t),t.select());dt(this,V,j).call(this,{hasSelectedEditor:!0})},t.AnnotationEditorUIManager=ue},(e,t,n)=>{var i,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b,_,w,S,M,T,E,A;Object.defineProperty(t,"__esModule",{value:!0}),t.StatTimer=t.RenderingCancelledException=t.PixelsPerInch=t.PageViewport=t.PDFDateString=t.DOMStandardFontDataFactory=t.DOMSVGFactory=t.DOMFilterFactory=t.DOMCanvasFactory=t.DOMCMapReaderFactory=t.AnnotationPrefix=void 0,t.deprecated=function(e){console.log("Deprecated API usage: "+e)},t.getColorValues=function(e){let t=document.createElement("span");t.style.visibility="hidden",document.body.append(t);for(let n of e.keys()){t.style.color=n;let i=window.getComputedStyle(t).color;e.set(n,G(i))}t.remove()},t.getCurrentTransform=function(e){let{a:t,b:n,c:i,d:r,e:a,f:s}=e.getTransform();return[t,n,i,r,a,s]},t.getCurrentTransformInverse=function(e){let{a:t,b:n,c:i,d:r,e:a,f:s}=e.getTransform().invertSelf();return[t,n,i,r,a,s]},t.getFilenameFromUrl=function(e,t=!1){return t||([e]=e.split(/[#?]/,1)),e.substring(e.lastIndexOf("/")+1)},t.getPdfFilenameFromUrl=function(e,t="document.pdf"){if("string"!=typeof e)return t;if(V(e))return(0,P.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'),t;let n=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i,i=/^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/.exec(e),r=n.exec(i[1])||n.exec(i[2])||n.exec(i[3]);if(r&&(r=r[0],r.includes("%")))try{r=n.exec(decodeURIComponent(r))[0]}catch(e){}return r||t},t.getRGB=G,t.getXfaPageViewport=function(e,{scale:t=1,rotation:n=0}){let{width:i,height:r}=e.attributes.style,a=[0,0,parseInt(i),parseInt(r)];return new z({viewBox:a,scale:t,rotation:n})},t.isDataScheme=V,t.isPdfFile=function(e){return"string"==typeof e&&/\.pdf$/i.test(e)},t.isValidFetchUrl=j,t.loadScript=function(e,t=!1){return new Promise(((n,i)=>{let r=document.createElement("script");r.src=e,r.onload=function(e){t&&r.remove(),n(e)},r.onerror=function(){i(new Error(`Cannot load script at: ${r.src}`))},(document.head||document.documentElement).append(r)}))},t.setLayerDimensions=function(e,t,n=!1,i=!0){if(t instanceof z){let{pageWidth:i,pageHeight:r}=t.rawDims,{style:a}=e,s=`calc(var(--scale-factor) * ${i}px)`,o=`calc(var(--scale-factor) * ${r}px)`;n&&t.rotation%180!=0?(a.width=o,a.height=s):(a.width=s,a.height=o)}i&&e.setAttribute("data-main-rotation",t.rotation)};var C=n(7),P=n(1);let R="http://www.w3.org/2000/svg";t.AnnotationPrefix="pdfjs_internal_id_";let O,L=class{},I=L;Xi(I,"CSS",96),Xi(I,"PDF",72),Xi(I,"PDF_TO_CSS_UNITS",L.CSS/L.PDF),t.PixelsPerInch=I;class D extends C.BaseFilterFactory{constructor({docId:e,ownerDocument:t=globalThis.document}={}){super(),Je(this,f),Je(this,g),Je(this,y),Je(this,b),Je(this,w),Je(this,M),Je(this,E),Je(this,i,void 0),Je(this,r,void 0),Je(this,a,void 0),Je(this,s,void 0),Je(this,o,void 0),Je(this,l,void 0),Je(this,h,void 0),Je(this,c,void 0),Je(this,u,void 0),Je(this,d,void 0),Je(this,p,0),St(this,a,e),St(this,s,t)}addFilter(e){if(!e)return"none";let t,n,i,r,s=ce(this,f,m).get(e);if(s)return s;if(1===e.length){let a=e[0],s=new Array(256);for(let e=0;e<256;e++)s[e]=a[e]/255;r=t=n=i=s.join(",")}else{let[a,s,o]=e,l=new Array(256),h=new Array(256),c=new Array(256);for(let e=0;e<256;e++)l[e]=a[e]/255,h[e]=s[e]/255,c[e]=o[e]/255;t=l.join(","),n=h.join(","),i=c.join(","),r=`${t}${n}${i}`}if(s=ce(this,f,m).get(r),s)return ce(this,f,m).set(e,s),s;let o=`g_${ce(this,a)}_transfer_map_${NT(this,p)._++}`,l=`url(#${o})`;ce(this,f,m).set(e,l),ce(this,f,m).set(r,l);let h=dt(this,b,_).call(this,o);return dt(this,M,T).call(this,t,n,i,h),l}addHCMFilter(e,t){var n;let i=`${e}-${t}`;if(ce(this,l)===i)return ce(this,h);if(St(this,l,i),St(this,h,"none"),null==(n=ce(this,o))||n.remove(),!e||!t)return ce(this,h);let r=dt(this,E,A).call(this,e);e=P.Util.makeHexColor(...r);let s=dt(this,E,A).call(this,t);if(t=P.Util.makeHexColor(...s),ce(this,g,v).style.color="","#000000"===e&&"#ffffff"===t||e===t)return ce(this,h);let u=new Array(256);for(let a=0;a<=255;a++){let e=a/255;u[a]=e<=.03928?e/12.92:Oo((e+.055)/1.055,2.4)}let d=u.join(","),p=`g_${ce(this,a)}_hcm_filter`,f=St(this,c,dt(this,b,_).call(this,p));dt(this,M,T).call(this,d,d,d,f),dt(this,y,x).call(this,f);let m=(e,t)=>{let n=r[e]/255,i=s[e]/255,a=new Array(t+1);for(let r=0;r<=t;r++)a[r]=n+r/t*(i-n);return a.join(",")};return dt(this,M,T).call(this,m(0,5),m(1,5),m(2,5),f),St(this,h,`url(#${p})`),ce(this,h)}addHighlightHCMFilter(e,t,n,i){var r;let s=`${e}-${t}-${n}-${i}`;if(ce(this,u)===s)return ce(this,d);if(St(this,u,s),St(this,d,"none"),null==(r=ce(this,c))||r.remove(),!e||!t)return ce(this,d);let[o,l]=[e,t].map(dt(this,E,A).bind(this)),h=Math.round(.2126*o[0]+.7152*o[1]+.0722*o[2]),p=Math.round(.2126*l[0]+.7152*l[1]+.0722*l[2]),[f,m]=[n,i].map(dt(this,E,A).bind(this));p{let i=new Array(256),r=(p-h)/n,a=e/255,s=(t-e)/(255*n),o=0;for(let l=0;l<=n;l++){let e=Math.round(h+l*r),t=a+l*s;for(let n=o;n<=e;n++)i[n]=t;o=e+1}for(let l=o;l<256;l++)i[l]=i[o-1];return i.join(",")},S=`g_${ce(this,a)}_hcm_highlight_filter`,C=St(this,c,dt(this,b,_).call(this,S));return dt(this,y,x).call(this,C),dt(this,M,T).call(this,w(f[0],m[0],5),w(f[1],m[1],5),w(f[2],m[2],5),C),St(this,d,`url(#${S})`),ce(this,d)}destroy(e=!1){e&&(ce(this,h)||ce(this,d))||(ce(this,r)&&(ce(this,r).parentNode.parentNode.remove(),St(this,r,null)),ce(this,i)&&(ce(this,i).clear(),St(this,i,null)),St(this,p,0))}}i=new WeakMap,r=new WeakMap,a=new WeakMap,s=new WeakMap,o=new WeakMap,l=new WeakMap,h=new WeakMap,c=new WeakMap,u=new WeakMap,d=new WeakMap,p=new WeakMap,f=new WeakSet,m=function(){return ce(this,i)||St(this,i,new Map)},g=new WeakSet,v=function(){if(!ce(this,r)){let e=ce(this,s).createElement("div"),{style:t}=e;t.visibility="hidden",t.contain="strict",t.width=t.height=0,t.position="absolute",t.top=t.left=0,t.zIndex=-1;let n=ce(this,s).createElementNS(R,"svg");n.setAttribute("width",0),n.setAttribute("height",0),St(this,r,ce(this,s).createElementNS(R,"defs")),e.append(n),n.append(ce(this,r)),ce(this,s).body.append(e)}return ce(this,r)},y=new WeakSet,x=function(e){let t=ce(this,s).createElementNS(R,"feColorMatrix");t.setAttribute("type","matrix"),t.setAttribute("values","0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0"),e.append(t)},b=new WeakSet,_=function(e){let t=ce(this,s).createElementNS(R,"filter");return t.setAttribute("color-interpolation-filters","sRGB"),t.setAttribute("id",e),ce(this,g,v).append(t),t},w=new WeakSet,S=function(e,t,n){let i=ce(this,s).createElementNS(R,t);i.setAttribute("type","discrete"),i.setAttribute("tableValues",n),e.append(i)},M=new WeakSet,T=function(e,t,n,i){let r=ce(this,s).createElementNS(R,"feComponentTransfer");i.append(r),dt(this,w,S).call(this,r,"feFuncR",e),dt(this,w,S).call(this,r,"feFuncG",t),dt(this,w,S).call(this,r,"feFuncB",n)},E=new WeakSet,A=function(e){return ce(this,g,v).style.color=e,G(getComputedStyle(ce(this,g,v)).getPropertyValue("color"))},t.DOMFilterFactory=D;class k extends C.BaseCanvasFactory{constructor({ownerDocument:e=globalThis.document}={}){super(),this._document=e}_createCanvas(e,t){let n=this._document.createElement("canvas");return n.width=e,n.height=t,n}}function N(e,t=!1){return ft(this,null,(function*(){if(j(e,document.baseURI)){let n=yield fetch(e);if(!n.ok)throw new Error(n.statusText);return t?new Uint8Array(yield n.arrayBuffer()):(0,P.stringToBytes)(yield n.text())}return new Promise(((n,i)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),t&&(r.responseType="arraybuffer"),r.onreadystatechange=()=>{if(r.readyState===XMLHttpRequest.DONE){if(200===r.status||0===r.status){let e;if(t&&r.response?e=new Uint8Array(r.response):!t&&r.responseText&&(e=(0,P.stringToBytes)(r.responseText)),e)return void n(e)}i(new Error(r.statusText))}},r.send(null)}))}))}t.DOMCanvasFactory=k;class F extends C.BaseCMapReaderFactory{_fetchData(e,t){return N(e,this.isCompressed).then((e=>({cMapData:e,compressionType:t})))}}t.DOMCMapReaderFactory=F;class U extends C.BaseStandardFontDataFactory{_fetchData(e){return N(e,!0)}}t.DOMStandardFontDataFactory=U;class B extends C.BaseSVGFactory{_createSVG(e){return document.createElementNS(R,e)}}t.DOMSVGFactory=B;class z{constructor({viewBox:e,scale:t,rotation:n,offsetX:i=0,offsetY:r=0,dontFlip:a=!1}){this.viewBox=e,this.scale=t,this.rotation=n,this.offsetX=i,this.offsetY=r;let s,o,l,h,c,u,d,p,f=(e[2]+e[0])/2,m=(e[3]+e[1])/2;switch((n%=360)<0&&(n+=360),n){case 180:s=-1,o=0,l=0,h=1;break;case 90:s=0,o=1,l=1,h=0;break;case 270:s=0,o=-1,l=-1,h=0;break;case 0:s=1,o=0,l=0,h=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}a&&(l=-l,h=-h),0===s?(c=Math.abs(m-e[1])*t+i,u=Math.abs(f-e[0])*t+r,d=(e[3]-e[1])*t,p=(e[2]-e[0])*t):(c=Math.abs(f-e[0])*t+i,u=Math.abs(m-e[1])*t+r,d=(e[2]-e[0])*t,p=(e[3]-e[1])*t),this.transform=[s*t,o*t,l*t,h*t,c-s*t*f-l*t*m,u-o*t*f-h*t*m],this.width=d,this.height=p}get rawDims(){let{viewBox:e}=this;return(0,P.shadow)(this,"rawDims",{pageWidth:e[2]-e[0],pageHeight:e[3]-e[1],pageX:e[0],pageY:e[1]})}clone({scale:e=this.scale,rotation:t=this.rotation,offsetX:n=this.offsetX,offsetY:i=this.offsetY,dontFlip:r=!1}={}){return new z({viewBox:this.viewBox.slice(),scale:e,rotation:t,offsetX:n,offsetY:i,dontFlip:r})}convertToViewportPoint(e,t){return P.Util.applyTransform([e,t],this.transform)}convertToViewportRectangle(e){let t=P.Util.applyTransform([e[0],e[1]],this.transform),n=P.Util.applyTransform([e[2],e[3]],this.transform);return[t[0],t[1],n[0],n[1]]}convertToPdfPoint(e,t){return P.Util.applyInverseTransform([e,t],this.transform)}}t.PageViewport=z;class H extends P.BaseException{constructor(e,t=0){super(e,"RenderingCancelledException"),this.extraDelay=t}}function V(e){let t=e.length,n=0;for(;n>16,(65280&t)>>8,255&t]}return e.startsWith("rgb(")?e.slice(4,-1).split(",").map((e=>parseInt(e))):e.startsWith("rgba(")?e.slice(5,-1).split(",").map((e=>parseInt(e))).slice(0,3):((0,P.warn)(`Not a valid color format: "${e}"`),[0,0,0])}t.RenderingCancelledException=H,t.StatTimer=class{constructor(){Xi(this,"started",Object.create(null)),Xi(this,"times",[])}time(e){e in this.started&&(0,P.warn)(`Timer is already running for ${e}`),this.started[e]=Date.now()}timeEnd(e){e in this.started||(0,P.warn)(`Timer has not been started for ${e}`),this.times.push({name:e,start:this.started[e],end:Date.now()}),delete this.started[e]}toString(){let e=[],t=0;for(let{name:n}of this.times)t=Math.max(n.length,t);for(let{name:n,start:i,end:r}of this.times)e.push(`${n.padEnd(t)} ${r-i}ms\n`);return e.join("")}},t.PDFDateString=class{static toDateObject(e){if(!e||"string"!=typeof e)return null;O||(O=new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?"));let t=O.exec(e);if(!t)return null;let n=parseInt(t[1],10),i=parseInt(t[2],10);i=i>=1&&i<=12?i-1:0;let r=parseInt(t[3],10);r=r>=1&&r<=31?r:1;let a=parseInt(t[4],10);a=a>=0&&a<=23?a:0;let s=parseInt(t[5],10);s=s>=0&&s<=59?s:0;let o=parseInt(t[6],10);o=o>=0&&o<=59?o:0;let l=t[7]||"Z",h=parseInt(t[8],10);h=h>=0&&h<=23?h:0;let c=parseInt(t[9],10)||0;return c=c>=0&&c<=59?c:0,"-"===l?(a+=h,s+=c):"+"===l&&(a-=h,s-=c),new Date(Date.UTC(n,i,r,a,s,o))}}},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseStandardFontDataFactory=t.BaseSVGFactory=t.BaseFilterFactory=t.BaseCanvasFactory=t.BaseCMapReaderFactory=void 0;var i=n(1);class r{constructor(){this.constructor===r&&(0,i.unreachable)("Cannot initialize BaseFilterFactory.")}addFilter(e){return"none"}addHCMFilter(e,t){return"none"}addHighlightHCMFilter(e,t,n,i){return"none"}destroy(e=!1){}}t.BaseFilterFactory=r;class a{constructor(){this.constructor===a&&(0,i.unreachable)("Cannot initialize BaseCanvasFactory.")}create(e,t){if(e<=0||t<=0)throw new Error("Invalid canvas size");let n=this._createCanvas(e,t);return{canvas:n,context:n.getContext("2d")}}reset(e,t,n){if(!e.canvas)throw new Error("Canvas is not specified");if(t<=0||n<=0)throw new Error("Invalid canvas size");e.canvas.width=t,e.canvas.height=n}destroy(e){if(!e.canvas)throw new Error("Canvas is not specified");e.canvas.width=0,e.canvas.height=0,e.canvas=null,e.context=null}_createCanvas(e,t){(0,i.unreachable)("Abstract method `_createCanvas` called.")}}t.BaseCanvasFactory=a;class s{constructor({baseUrl:e=null,isCompressed:t=!0}){this.constructor===s&&(0,i.unreachable)("Cannot initialize BaseCMapReaderFactory."),this.baseUrl=e,this.isCompressed=t}fetch(e){return ft(this,arguments,(function*({name:e}){if(!this.baseUrl)throw new Error('The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.');if(!e)throw new Error("CMap name must be specified.");let t=this.baseUrl+e+(this.isCompressed?".bcmap":""),n=this.isCompressed?i.CMapCompressionType.BINARY:i.CMapCompressionType.NONE;return this._fetchData(t,n).catch((e=>{throw new Error(`Unable to load ${this.isCompressed?"binary ":""}CMap at: ${t}`)}))}))}_fetchData(e,t){(0,i.unreachable)("Abstract method `_fetchData` called.")}}t.BaseCMapReaderFactory=s;class o{constructor({baseUrl:e=null}){this.constructor===o&&(0,i.unreachable)("Cannot initialize BaseStandardFontDataFactory."),this.baseUrl=e}fetch(e){return ft(this,arguments,(function*({filename:e}){if(!this.baseUrl)throw new Error('The standard font "baseUrl" parameter must be specified, ensure that the "standardFontDataUrl" API parameter is provided.');if(!e)throw new Error("Font filename must be specified.");let t=`${this.baseUrl}${e}`;return this._fetchData(t).catch((e=>{throw new Error(`Unable to load font data at: ${t}`)}))}))}_fetchData(e){(0,i.unreachable)("Abstract method `_fetchData` called.")}}t.BaseStandardFontDataFactory=o;class l{constructor(){this.constructor===l&&(0,i.unreachable)("Cannot initialize BaseSVGFactory.")}create(e,t,n=!1){if(e<=0||t<=0)throw new Error("Invalid SVG dimensions");let i=this._createSVG("svg:svg");return i.setAttribute("version","1.1"),n||(i.setAttribute("width",`${e}px`),i.setAttribute("height",`${t}px`)),i.setAttribute("preserveAspectRatio","none"),i.setAttribute("viewBox",`0 0 ${e} ${t}`),i}createElement(e){if("string"!=typeof e)throw new Error("Invalid SVG element type");return this._createSVG(e)}_createSVG(e){(0,i.unreachable)("Abstract method `_createSVG` called.")}}t.BaseSVGFactory=l},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MurmurHash3_64=void 0;var i=n(1);let r=3285377520,a=4294901760,s=65535;t.MurmurHash3_64=class{constructor(e){this.h1=e?4294967295&e:r,this.h2=e?4294967295&e:r}update(e){let t,n;if("string"==typeof e){t=new Uint8Array(2*e.length),n=0;for(let i=0,r=e.length;i>>8,t[n++]=255&r)}}else{if(!(0,i.isArrayBuffer)(e))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");t=e.slice(),n=t.byteLength}let r=n>>2,o=n-4*r,l=new Uint32Array(t.buffer,0,r),h=0,c=0,u=this.h1,d=this.h2,p=3432918353,f=461845907,m=p&s,g=f&s;for(let i=0;i>>17,h=h*f&a|h*g&s,u^=h,u=u<<13|u>>>19,u=5*u+3864292196):(c=l[i],c=c*p&a|c*m&s,c=c<<15|c>>>17,c=c*f&a|c*g&s,d^=c,d=d<<13|d>>>19,d=5*d+3864292196);switch(h=0,o){case 3:h^=t[4*r+2]<<16;case 2:h^=t[4*r+1]<<8;case 1:h^=t[4*r],h=h*p&a|h*m&s,h=h<<15|h>>>17,h=h*f&a|h*g&s,1&r?u^=h:d^=h}this.h1=u,this.h2=d}hexdigest(){let e=this.h1,t=this.h2;return e^=t>>>1,e=3981806797*e&a|36045*e&s,t=4283543511*t&a|(2950163797*(t<<16|e>>>16)&a)>>>16,e^=t>>>1,e=444984403*e&a|60499*e&s,t=3301882366*t&a|(3120437893*(t<<16|e>>>16)&a)>>>16,e^=t>>>1,(e>>>0).toString(16).padStart(8,"0")+(t>>>0).toString(16).padStart(8,"0")}}},(e,t,n)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.FontLoader=t.FontFaceObject=void 0;var r=n(1),a=n(10);i=new WeakMap,t.FontLoader=class{constructor({ownerDocument:e=globalThis.document,styleElement:t=null}){Je(this,i,new Set),this._document=e,this.nativeFontFaces=new Set,this.styleElement=null,this.loadingRequests=[],this.loadTestFontId=0}addNativeFontFace(e){this.nativeFontFaces.add(e),this._document.fonts.add(e)}removeNativeFontFace(e){this.nativeFontFaces.delete(e),this._document.fonts.delete(e)}insertRule(e){this.styleElement||(this.styleElement=this._document.createElement("style"),this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement));let t=this.styleElement.sheet;t.insertRule(e,t.cssRules.length)}clear(){for(let e of this.nativeFontFaces)this._document.fonts.delete(e);this.nativeFontFaces.clear(),ce(this,i).clear(),this.styleElement&&(this.styleElement.remove(),this.styleElement=null)}loadSystemFont(e){return ft(this,null,(function*(){if(e&&!ce(this,i).has(e.loadedName)){if((0,r.assert)(!this.disableFontFace,"loadSystemFont shouldn't be called when `disableFontFace` is set."),this.isFontLoadingAPISupported){let{loadedName:n,src:a,style:s}=e,o=new FontFace(n,a,s);this.addNativeFontFace(o);try{yield o.load(),ce(this,i).add(n)}catch(t){(0,r.warn)(`Cannot load system font: ${e.baseFontName}, installing it could help to improve PDF rendering.`),this.removeNativeFontFace(o)}return}(0,r.unreachable)("Not implemented: loadSystemFont without the Font Loading API.")}}))}bind(e){return ft(this,null,(function*(){if(e.attached||e.missingFile&&!e.systemFontInfo)return;if(e.attached=!0,e.systemFontInfo)return void(yield this.loadSystemFont(e.systemFontInfo));if(this.isFontLoadingAPISupported){let t=e.createNativeFontFace();if(t){this.addNativeFontFace(t);try{yield t.loaded}catch(n){throw(0,r.warn)(`Failed to load font '${t.family}': '${n}'.`),e.disableFontFace=!0,n}}return}let t=e.createFontFaceRule();if(t){if(this.insertRule(t),this.isSyncFontLoadingSupported)return;yield new Promise((t=>{let n=this._queueLoadingCallback(t);this._prepareFontLoadEvent(e,n)}))}}))}get isFontLoadingAPISupported(){var e;let t=!(null==(e=this._document)||!e.fonts);return(0,r.shadow)(this,"isFontLoadingAPISupported",t)}get isSyncFontLoadingSupported(){let e=!1;return(a.isNodeJS||"undefined"!=typeof navigator&&/Mozilla\/5.0.*?rv:\d+.*? Gecko/.test(navigator.userAgent))&&(e=!0),(0,r.shadow)(this,"isSyncFontLoadingSupported",e)}_queueLoadingCallback(e){let{loadingRequests:t}=this,n={done:!1,complete:function(){for((0,r.assert)(!n.done,"completeRequest() cannot be called twice."),n.done=!0;t.length>0&&t[0].done;){let e=t.shift();setTimeout(e.callback,0)}},callback:e};return t.push(n),n}get _loadTestFont(){let e=atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");return(0,r.shadow)(this,"_loadTestFont",e)}_prepareFontLoadEvent(e,t){function n(e,t){return e.charCodeAt(t)<<24|e.charCodeAt(t+1)<<16|e.charCodeAt(t+2)<<8|255&e.charCodeAt(t+3)}function i(e,t,n,i){return e.substring(0,t)+i+e.substring(t+n)}let a,s,o=this._document.createElement("canvas");o.width=1,o.height=1;let l=o.getContext("2d"),h=0,c=`lt${Date.now()}${this.loadTestFontId++}`,u=this._loadTestFont;u=i(u,976,c.length,c);let d=1482184792,p=n(u,16);for(a=0,s=c.length-3;a30)return(0,r.warn)("Load test font never loaded."),void n();l.font="30px "+t,l.fillText(".",0,20),l.getImageData(0,0,1,1).data[3]>0?n():setTimeout(e.bind(null,t,n))}(c,(()=>{m.remove(),t.complete()}))}},t.FontFaceObject=class{constructor(e,{isEvalSupported:t=!0,disableFontFace:n=!1,ignoreErrors:i=!1,inspectFont:r=null}){this.compiledGlyphs=Object.create(null);for(let a in e)this[a]=e[a];this.isEvalSupported=!1!==t,this.disableFontFace=!0===n,this.ignoreErrors=!0===i,this._inspectFont=r}createNativeFontFace(){var e;if(!this.data||this.disableFontFace)return null;let t;if(this.cssFontInfo){let e={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(e.style=`oblique ${this.cssFontInfo.italicAngle}deg`),t=new FontFace(this.cssFontInfo.fontFamily,this.data,e)}else t=new FontFace(this.loadedName,this.data,{});return null==(e=this._inspectFont)||e.call(this,this),t}createFontFaceRule(){var e;if(!this.data||this.disableFontFace)return null;let t,n=(0,r.bytesToString)(this.data),i=`url(data:${this.mimetype};base64,${btoa(n)});`;if(this.cssFontInfo){let e=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(e+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`),t=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${e}src:${i}}`}else t=`@font-face {font-family:"${this.loadedName}";src:${i}}`;return null==(e=this._inspectFont)||e.call(this,this,i),t}getPathGenerator(e,t){if(void 0!==this.compiledGlyphs[t])return this.compiledGlyphs[t];let n;try{n=e.get(this.loadedName+"_path_"+t)}catch(e){if(!this.ignoreErrors)throw e;return(0,r.warn)(`getPathGenerator - ignoring character: "${e}".`),this.compiledGlyphs[t]=function(e,t){}}if(this.isEvalSupported&&r.FeatureTest.isEvalSupported){let e=[];for(let t of n){let n=void 0!==t.args?t.args.join(","):"";e.push("c.",t.cmd,"(",n,");\n")}return this.compiledGlyphs[t]=new Function("c","size",e.join(""))}return this.compiledGlyphs[t]=function(e,t){for(let i of n)"scale"===i.cmd&&(i.args=[t,-t]),e[i.cmd].apply(e,i.args)}}}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isNodeJS=void 0;let n=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);t.isNodeJS=n},(e,t,n)=>{var i,r,a,s;Object.defineProperty(t,"__esModule",{value:!0}),t.CanvasGraphics=void 0;var o=n(1),l=n(6),h=n(12),c=n(13),u=n(10);let d=4096,p=16;class f{constructor(e){this.canvasFactory=e,this.cache=Object.create(null)}getCanvas(e,t,n){let i;return void 0!==this.cache[e]?(i=this.cache[e],this.canvasFactory.reset(i,t,n)):(i=this.canvasFactory.create(t,n),this.cache[e]=i),i}delete(e){delete this.cache[e]}clear(){for(let e in this.cache){let t=this.cache[e];this.canvasFactory.destroy(t),delete this.cache[e]}}}function m(e,t,n,i,r,a,s,o,h,c){let[u,d,p,f,m,g]=(0,l.getCurrentTransform)(e);if(0===d&&0===p){let l=s*u+m,v=Math.round(l),y=o*f+g,x=Math.round(y),b=(s+h)*u+m,_=Math.abs(Math.round(b)-v)||1,w=(o+c)*f+g,S=Math.abs(Math.round(w)-x)||1;return e.setTransform(Math.sign(u),0,0,Math.sign(f),v,x),e.drawImage(t,n,i,r,a,0,0,_,S),e.setTransform(u,d,p,f,m,g),[_,S]}if(0===u&&0===f){let l=o*p+m,v=Math.round(l),y=s*d+g,x=Math.round(y),b=(o+c)*p+m,_=Math.abs(Math.round(b)-v)||1,w=(s+h)*d+g,S=Math.abs(Math.round(w)-x)||1;return e.setTransform(0,Math.sign(d),Math.sign(p),0,v,x),e.drawImage(t,n,i,r,a,0,0,S,_),e.setTransform(u,d,p,f,m,g),[S,_]}return e.drawImage(t,n,i,r,a,s,o,h,c),[Math.hypot(u,d)*h,Math.hypot(p,f)*c]}class g{constructor(e,t){this.alphaIsShape=!1,this.fontSize=0,this.fontSizeScale=1,this.textMatrix=o.IDENTITY_MATRIX,this.textMatrixScale=1,this.fontMatrix=o.FONT_IDENTITY_MATRIX,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRenderingMode=o.TextRenderingMode.FILL,this.textRise=0,this.fillColor="#000000",this.strokeColor="#000000",this.patternFill=!1,this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.activeSMask=null,this.transferMaps="none",this.startNewPathAndClipBox([0,0,e,t])}clone(){let e=Object.create(this);return e.clipBox=this.clipBox.slice(),e}setCurrentPoint(e,t){this.x=e,this.y=t}updatePathMinMax(e,t,n){[t,n]=o.Util.applyTransform([t,n],e),this.minX=Math.min(this.minX,t),this.minY=Math.min(this.minY,n),this.maxX=Math.max(this.maxX,t),this.maxY=Math.max(this.maxY,n)}updateRectMinMax(e,t){let n=o.Util.applyTransform(t,e),i=o.Util.applyTransform(t.slice(2),e);this.minX=Math.min(this.minX,n[0],i[0]),this.minY=Math.min(this.minY,n[1],i[1]),this.maxX=Math.max(this.maxX,n[0],i[0]),this.maxY=Math.max(this.maxY,n[1],i[1])}updateScalingPathMinMax(e,t){o.Util.scaleMinMax(e,t),this.minX=Math.min(this.minX,t[0]),this.maxX=Math.max(this.maxX,t[1]),this.minY=Math.min(this.minY,t[2]),this.maxY=Math.max(this.maxY,t[3])}updateCurvePathMinMax(e,t,n,i,r,a,s,l,h,c){let u=o.Util.bezierBoundingBox(t,n,i,r,a,s,l,h);if(c)return c[0]=Math.min(c[0],u[0],u[2]),c[1]=Math.max(c[1],u[0],u[2]),c[2]=Math.min(c[2],u[1],u[3]),void(c[3]=Math.max(c[3],u[1],u[3]));this.updateRectMinMax(e,u)}getPathBoundingBox(e=h.PathType.FILL,t=null){let n=[this.minX,this.minY,this.maxX,this.maxY];if(e===h.PathType.STROKE){t||(0,o.unreachable)("Stroke bounding box must include transform.");let e=o.Util.singularValueDecompose2dScale(t),i=e[0]*this.lineWidth/2,r=e[1]*this.lineWidth/2;n[0]-=i,n[1]-=r,n[2]+=i,n[3]+=r}return n}updateClipFromPath(){let e=o.Util.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(e||[0,0,0,0])}isEmptyClip(){return this.minX===1/0}startNewPathAndClipBox(e){this.clipBox=e,this.minX=1/0,this.minY=1/0,this.maxX=0,this.maxY=0}getClippedPathBoundingBox(e=h.PathType.FILL,t=null){return o.Util.intersect(this.clipBox,this.getPathBoundingBox(e,t))}}function v(e,t){if("undefined"!=typeof ImageData&&t instanceof ImageData)return void e.putImageData(t,0,0);let n,i,r,a,s,l=t.height,h=t.width,c=l%p,u=(l-c)/p,d=0===c?u:u+1,f=e.createImageData(h,p),m=0,g=t.data,v=f.data;if(t.kind===o.ImageKind.GRAYSCALE_1BPP){let t=g.byteLength,s=new Uint32Array(v.buffer,0,v.byteLength>>2),l=s.length,y=h+7>>3,x=4294967295,b=o.FeatureTest.isLittleEndian?4278190080:255;for(i=0;iy?h:8*e-7,a=-8&r,o=0,l=0;for(;i>=1}for(;n=u&&(a=c,s=h*a),n=0,r=s;r--;)v[n++]=g[m++],v[n++]=g[m++],v[n++]=g[m++],v[n++]=255;e.putImageData(f,0,i*p)}}}function y(e,t){if(t.bitmap)return void e.drawImage(t.bitmap,0,0);let n=t.height,i=t.width,r=n%p,a=(n-r)/p,s=0===r?a:a+1,o=e.createImageData(i,p),l=0,h=t.data,u=o.data;for(let d=0;d>8,e[a-2]=e[a-2]*r+n*s>>8,e[a-1]=e[a-1]*r+i*s>>8}}}function w(e,t,n){let i=e.length;for(let r=3;r>8]>>8:t[r]*i>>16}}function M(e,t){let n=o.Util.singularValueDecompose2dScale(e);n[0]=Math.fround(n[0]),n[1]=Math.fround(n[1]);let i=Math.fround((globalThis.devicePixelRatio||1)*l.PixelsPerInch.PDF_TO_CSS_UNITS);return void 0!==t?t:n[0]<=i||n[1]<=i}let T=["butt","round","square"],E=["miter","round","bevel"],A={},C={},P=class{constructor(e,t,n,r,s,{optionalContentConfig:o,markedContentStack:l=null},h,c){Je(this,i),Je(this,a),this.ctx=e,this.current=new g(this.ctx.canvas.width,this.ctx.canvas.height),this.stateStack=[],this.pendingClip=null,this.pendingEOFill=!1,this.res=null,this.xobjs=null,this.commonObjs=t,this.objs=n,this.canvasFactory=r,this.filterFactory=s,this.groupStack=[],this.processingType3=null,this.baseTransform=null,this.baseTransformStack=[],this.groupLevel=0,this.smaskStack=[],this.smaskCounter=0,this.tempSMask=null,this.suspendedCtx=null,this.contentVisible=!0,this.markedContentStack=l||[],this.optionalContentConfig=o,this.cachedCanvases=new f(this.canvasFactory),this.cachedPatterns=new Map,this.annotationCanvasMap=h,this.viewportScale=1,this.outputScaleX=1,this.outputScaleY=1,this.pageColors=c,this._cachedScaleForStroking=[-1,0],this._cachedGetSinglePixelWidth=null,this._cachedBitmapsMap=new Map}getObject(e,t=null){return"string"==typeof e?e.startsWith("g_")?this.commonObjs.get(e):this.objs.get(e):t}beginDrawing({transform:e,viewport:t,transparency:n=!1,background:i=null}){let r=this.ctx.canvas.width,a=this.ctx.canvas.height,s=this.ctx.fillStyle;if(this.ctx.fillStyle=i||"#ffffff",this.ctx.fillRect(0,0,r,a),this.ctx.fillStyle=s,n){let e=this.cachedCanvases.getCanvas("transparent",r,a);this.compositeCtx=this.ctx,this.transparentCanvas=e.canvas,this.ctx=e.context,this.ctx.save(),this.ctx.transform(...(0,l.getCurrentTransform)(this.compositeCtx))}this.ctx.save(),b(this.ctx),e&&(this.ctx.transform(...e),this.outputScaleX=e[0],this.outputScaleY=e[0]),this.ctx.transform(...t.transform),this.viewportScale=t.scale,this.baseTransform=(0,l.getCurrentTransform)(this.ctx)}executeOperatorList(e,t,n,i){let r=e.argsArray,a=e.fnArray,s=t||0,l=r.length;if(l===s)return s;let h,c=l-s>10&&"function"==typeof n,u=c?Date.now()+15:0,d=0,p=this.commonObjs,f=this.objs;for(;;){if(void 0!==i&&s===i.nextBreakPoint)return i.breakIt(s,n),s;if(h=a[s],h!==o.OPS.dependency)this[h].apply(this,r[s]);else for(let e of r[s]){let t=e.startsWith("g_")?p:f;if(!t.has(e))return t.get(e,n),s}if(s++,s===l)return s;if(c&&++d>10){if(Date.now()>u)return n(),s;d=0}}}endDrawing(){dt(this,i,r).call(this),this.cachedCanvases.clear(),this.cachedPatterns.clear();for(let e of this._cachedBitmapsMap.values()){for(let t of e.values())"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement&&(t.width=t.height=0);e.clear()}this._cachedBitmapsMap.clear(),dt(this,a,s).call(this)}_scaleImage(e,t){let n,i,r=e.width,a=e.height,s=Math.max(Math.hypot(t[0],t[1]),1),o=Math.max(Math.hypot(t[2],t[3]),1),l=r,h=a,c="prescale1";for(;s>2&&l>1||o>2&&h>1;){let t=l,r=h;s>2&&l>1&&(t=l>=16384?Math.floor(l/2)-1||1:Math.ceil(l/2),s/=l/t),o>2&&h>1&&(r=h>=16384?Math.floor(h/2)-1||1:Math.ceil(h)/2,o/=h/r),n=this.cachedCanvases.getCanvas(c,t,r),i=n.context,i.clearRect(0,0,t,r),i.drawImage(e,0,0,l,h,0,0,t,r),e=n.canvas,l=t,h=r,c="prescale1"===c?"prescale2":"prescale1"}return{img:e,paintWidth:l,paintHeight:h}}_createMaskCanvas(e){let t,n,i,r,a=this.ctx,{width:s,height:c}=e,u=this.current.fillColor,d=this.current.patternFill,p=(0,l.getCurrentTransform)(a);if((e.bitmap||e.data)&&e.count>1){let r=e.bitmap||e.data.buffer;n=JSON.stringify(d?p:[p.slice(0,4),u]),t=this._cachedBitmapsMap.get(r),t||(t=new Map,this._cachedBitmapsMap.set(r,t));let a=t.get(n);if(a&&!d)return{canvas:a,offsetX:Math.round(Math.min(p[0],p[2])+p[4]),offsetY:Math.round(Math.min(p[1],p[3])+p[5])};i=a}i||(r=this.cachedCanvases.getCanvas("maskCanvas",s,c),y(r.context,e));let f=o.Util.transform(p,[1/s,0,0,-1/c,0,0]);f=o.Util.transform(f,[1,0,0,1,0,-c]);let g=o.Util.applyTransform([0,0],f),v=o.Util.applyTransform([s,c],f),x=o.Util.normalizeRect([g[0],g[1],v[0],v[1]]),b=Math.round(x[2]-x[0])||1,_=Math.round(x[3]-x[1])||1,w=this.cachedCanvases.getCanvas("fillCanvas",b,_),S=w.context,T=Math.min(g[0],v[0]),E=Math.min(g[1],v[1]);S.translate(-T,-E),S.transform(...f),i||(i=this._scaleImage(r.canvas,(0,l.getCurrentTransformInverse)(S)),i=i.img,t&&d&&t.set(n,i)),S.imageSmoothingEnabled=M((0,l.getCurrentTransform)(S),e.interpolate),m(S,i,0,0,i.width,i.height,0,0,s,c),S.globalCompositeOperation="source-in";let A=o.Util.transform((0,l.getCurrentTransformInverse)(S),[1,0,0,1,-T,-E]);return S.fillStyle=d?u.getPattern(a,this,A,h.PathType.FILL):u,S.fillRect(0,0,s,c),t&&!d&&(this.cachedCanvases.delete("fillCanvas"),t.set(n,w.canvas)),{canvas:w.canvas,offsetX:Math.round(T),offsetY:Math.round(E)}}setLineWidth(e){e!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1),this.current.lineWidth=e,this.ctx.lineWidth=e}setLineCap(e){this.ctx.lineCap=T[e]}setLineJoin(e){this.ctx.lineJoin=E[e]}setMiterLimit(e){this.ctx.miterLimit=e}setDash(e,t){let n=this.ctx;void 0!==n.setLineDash&&(n.setLineDash(e),n.lineDashOffset=t)}setRenderingIntent(e){}setFlatness(e){}setGState(e){for(let[t,n]of e)switch(t){case"LW":this.setLineWidth(n);break;case"LC":this.setLineCap(n);break;case"LJ":this.setLineJoin(n);break;case"ML":this.setMiterLimit(n);break;case"D":this.setDash(n[0],n[1]);break;case"RI":this.setRenderingIntent(n);break;case"FL":this.setFlatness(n);break;case"Font":this.setFont(n[0],n[1]);break;case"CA":this.current.strokeAlpha=n;break;case"ca":this.current.fillAlpha=n,this.ctx.globalAlpha=n;break;case"BM":this.ctx.globalCompositeOperation=n;break;case"SMask":this.current.activeSMask=n?this.tempSMask:null,this.tempSMask=null,this.checkSMaskState();break;case"TR":this.ctx.filter=this.current.transferMaps=this.filterFactory.addFilter(n)}}get inSMaskMode(){return!!this.suspendedCtx}checkSMaskState(){let e=this.inSMaskMode;this.current.activeSMask&&!e?this.beginSMaskMode():!this.current.activeSMask&&e&&this.endSMaskMode()}beginSMaskMode(){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");let e=this.ctx.canvas.width,t=this.ctx.canvas.height,n="smaskGroupAt"+this.groupLevel,i=this.cachedCanvases.getCanvas(n,e,t);this.suspendedCtx=this.ctx,this.ctx=i.context;let r=this.ctx;r.setTransform(...(0,l.getCurrentTransform)(this.suspendedCtx)),x(this.suspendedCtx,r),function(e,t){if(e._removeMirroring)throw new Error("Context is already forwarding operations.");e.__originalSave=e.save,e.__originalRestore=e.restore,e.__originalRotate=e.rotate,e.__originalScale=e.scale,e.__originalTranslate=e.translate,e.__originalTransform=e.transform,e.__originalSetTransform=e.setTransform,e.__originalResetTransform=e.resetTransform,e.__originalClip=e.clip,e.__originalMoveTo=e.moveTo,e.__originalLineTo=e.lineTo,e.__originalBezierCurveTo=e.bezierCurveTo,e.__originalRect=e.rect,e.__originalClosePath=e.closePath,e.__originalBeginPath=e.beginPath,e._removeMirroring=()=>{e.save=e.__originalSave,e.restore=e.__originalRestore,e.rotate=e.__originalRotate,e.scale=e.__originalScale,e.translate=e.__originalTranslate,e.transform=e.__originalTransform,e.setTransform=e.__originalSetTransform,e.resetTransform=e.__originalResetTransform,e.clip=e.__originalClip,e.moveTo=e.__originalMoveTo,e.lineTo=e.__originalLineTo,e.bezierCurveTo=e.__originalBezierCurveTo,e.rect=e.__originalRect,e.closePath=e.__originalClosePath,e.beginPath=e.__originalBeginPath,delete e._removeMirroring},e.save=function(){t.save(),this.__originalSave()},e.restore=function(){t.restore(),this.__originalRestore()},e.translate=function(e,n){t.translate(e,n),this.__originalTranslate(e,n)},e.scale=function(e,n){t.scale(e,n),this.__originalScale(e,n)},e.transform=function(e,n,i,r,a,s){t.transform(e,n,i,r,a,s),this.__originalTransform(e,n,i,r,a,s)},e.setTransform=function(e,n,i,r,a,s){t.setTransform(e,n,i,r,a,s),this.__originalSetTransform(e,n,i,r,a,s)},e.resetTransform=function(){t.resetTransform(),this.__originalResetTransform()},e.rotate=function(e){t.rotate(e),this.__originalRotate(e)},e.clip=function(e){t.clip(e),this.__originalClip(e)},e.moveTo=function(e,n){t.moveTo(e,n),this.__originalMoveTo(e,n)},e.lineTo=function(e,n){t.lineTo(e,n),this.__originalLineTo(e,n)},e.bezierCurveTo=function(e,n,i,r,a,s){t.bezierCurveTo(e,n,i,r,a,s),this.__originalBezierCurveTo(e,n,i,r,a,s)},e.rect=function(e,n,i,r){t.rect(e,n,i,r),this.__originalRect(e,n,i,r)},e.closePath=function(){t.closePath(),this.__originalClosePath()},e.beginPath=function(){t.beginPath(),this.__originalBeginPath()}}(r,this.suspendedCtx),this.setGState([["BM","source-over"],["ca",1],["CA",1]])}endSMaskMode(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring(),x(this.ctx,this.suspendedCtx),this.ctx=this.suspendedCtx,this.suspendedCtx=null}compose(e){if(!this.current.activeSMask)return;e?(e[0]=Math.floor(e[0]),e[1]=Math.floor(e[1]),e[2]=Math.ceil(e[2]),e[3]=Math.ceil(e[3])):e=[0,0,this.ctx.canvas.width,this.ctx.canvas.height];let t=this.current.activeSMask;(function(e,t,n,i){let r=i[0],a=i[1],s=i[2]-r,o=i[3]-a;0===s||0===o||(function(e,t,n,i,r,a,s,o,l,h,c){let u,d=!!a,p=d?a[0]:0,f=d?a[1]:0,m=d?a[2]:0;u="Luminosity"===r?S:w;let g=Math.min(i,Math.ceil(1048576/n));for(let v=0;v100&&(c=100),this.current.fontSizeScale=t/c,this.ctx.font=`${h} ${l} ${c}px ${s}`}setTextRenderingMode(e){this.current.textRenderingMode=e}setTextRise(e){this.current.textRise=e}moveText(e,t){this.current.x=this.current.lineX+=e,this.current.y=this.current.lineY+=t}setLeadingMoveText(e,t){this.setLeading(-t),this.moveText(e,t)}setTextMatrix(e,t,n,i,r,a){this.current.textMatrix=[e,t,n,i,r,a],this.current.textMatrixScale=Math.hypot(e,t),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}nextLine(){this.moveText(0,this.current.leading)}paintChar(e,t,n,i){let r,a=this.ctx,s=this.current,h=s.font,c=s.textRenderingMode,u=s.fontSize/s.fontSizeScale,d=c&o.TextRenderingMode.FILL_STROKE_MASK,p=!!(c&o.TextRenderingMode.ADD_TO_PATH_FLAG),f=s.patternFill&&!h.missingFile;(h.disableFontFace||p||f)&&(r=h.getPathGenerator(this.commonObjs,e)),h.disableFontFace||f?(a.save(),a.translate(t,n),a.beginPath(),r(a,u),i&&a.setTransform(...i),(d===o.TextRenderingMode.FILL||d===o.TextRenderingMode.FILL_STROKE)&&a.fill(),(d===o.TextRenderingMode.STROKE||d===o.TextRenderingMode.FILL_STROKE)&&a.stroke(),a.restore()):((d===o.TextRenderingMode.FILL||d===o.TextRenderingMode.FILL_STROKE)&&a.fillText(e,t,n),(d===o.TextRenderingMode.STROKE||d===o.TextRenderingMode.FILL_STROKE)&&a.strokeText(e,t,n)),p&&(this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:(0,l.getCurrentTransform)(a),x:t,y:n,fontSize:u,addToPath:r})}get isFontSubpixelAAEnabled(){let{context:e}=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10);e.scale(1.5,1),e.fillText("I",0,10);let t=e.getImageData(0,0,10,10).data,n=!1;for(let i=3;i0&&t[i]<255){n=!0;break}return(0,o.shadow)(this,"isFontSubpixelAAEnabled",n)}showText(e){let t=this.current,n=t.font;if(n.isType3Font)return this.showType3Text(e);let i=t.fontSize;if(0===i)return;let r,a=this.ctx,s=t.fontSizeScale,c=t.charSpacing,u=t.wordSpacing,d=t.fontDirection,p=t.textHScale*d,f=e.length,m=n.vertical,g=m?1:-1,v=n.defaultVMetrics,y=i*t.fontMatrix[0],x=t.textRenderingMode===o.TextRenderingMode.FILL&&!n.disableFontFace&&!t.patternFill;if(a.save(),a.transform(...t.textMatrix),a.translate(t.x,t.y+t.textRise),d>0?a.scale(p,-1):a.scale(p,1),t.patternFill){a.save();let e=t.fillColor.getPattern(a,this,(0,l.getCurrentTransformInverse)(a),h.PathType.FILL);r=(0,l.getCurrentTransform)(a),a.restore(),a.fillStyle=e}let b=t.lineWidth,_=t.textMatrixScale;if(0===_||0===b){let e=t.textRenderingMode&o.TextRenderingMode.FILL_STROKE_MASK;(e===o.TextRenderingMode.STROKE||e===o.TextRenderingMode.FILL_STROKE)&&(b=this.getSinglePixelWidth())}else b/=_;if(1!==s&&(a.scale(s,s),b/=s),a.lineWidth=b,n.isInvalidPDFjsFont){let n=[],i=0;for(let t of e)n.push(t.unicode),i+=t.width;return a.fillText(n.join(""),0,0),t.x+=i*y*p,a.restore(),void this.compose()}let w,S=0;for(w=0;w0){let e=1e3*a.measureText(b).width/i*s;if(Mnew P(e,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack})};t=new h.TilingPattern(e,n,this.ctx,r,i)}else t=this._getPattern(e[1],e[2]);return t}setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments)}setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments),this.current.patternFill=!0}setStrokeRGBColor(e,t,n){let i=o.Util.makeHexColor(e,t,n);this.ctx.strokeStyle=i,this.current.strokeColor=i}setFillRGBColor(e,t,n){let i=o.Util.makeHexColor(e,t,n);this.ctx.fillStyle=i,this.current.fillColor=i,this.current.patternFill=!1}_getPattern(e,t=null){let n;return this.cachedPatterns.has(e)?n=this.cachedPatterns.get(e):(n=(0,h.getShadingPattern)(this.getObject(e)),this.cachedPatterns.set(e,n)),t&&(n.matrix=t),n}shadingFill(e){if(!this.contentVisible)return;let t=this.ctx;this.save();let n=this._getPattern(e);t.fillStyle=n.getPattern(t,this,(0,l.getCurrentTransformInverse)(t),h.PathType.SHADING);let i=(0,l.getCurrentTransformInverse)(t);if(i){let{width:e,height:n}=t.canvas,[r,a,s,l]=o.Util.getAxialAlignedBoundingBox([0,0,e,n],i);this.ctx.fillRect(r,a,s-r,l-a)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.compose(this.current.getClippedPathBoundingBox()),this.restore()}beginInlineImage(){(0,o.unreachable)("Should not call beginInlineImage")}beginImageData(){(0,o.unreachable)("Should not call beginImageData")}paintFormXObjectBegin(e,t){if(this.contentVisible&&(this.save(),this.baseTransformStack.push(this.baseTransform),Array.isArray(e)&&6===e.length&&this.transform(...e),this.baseTransform=(0,l.getCurrentTransform)(this.ctx),t)){let e=t[2]-t[0],n=t[3]-t[1];this.ctx.rect(t[0],t[1],e,n),this.current.updateRectMinMax((0,l.getCurrentTransform)(this.ctx),t),this.clip(),this.endPath()}}paintFormXObjectEnd(){this.contentVisible&&(this.restore(),this.baseTransform=this.baseTransformStack.pop())}beginGroup(e){if(!this.contentVisible)return;this.save(),this.inSMaskMode&&(this.endSMaskMode(),this.current.activeSMask=null);let t=this.ctx;e.isolated||(0,o.info)("TODO: Support non-isolated groups."),e.knockout&&(0,o.warn)("Knockout groups not supported.");let n=(0,l.getCurrentTransform)(t);if(e.matrix&&t.transform(...e.matrix),!e.bbox)throw new Error("Bounding box is required.");let i=o.Util.getAxialAlignedBoundingBox(e.bbox,(0,l.getCurrentTransform)(t)),r=[0,0,t.canvas.width,t.canvas.height];i=o.Util.intersect(i,r)||[0,0,0,0];let a=Math.floor(i[0]),s=Math.floor(i[1]),h=Math.max(Math.ceil(i[2])-a,1),c=Math.max(Math.ceil(i[3])-s,1),u=1,p=1;h>d&&(u=h/d,h=d),c>d&&(p=c/d,c=d),this.current.startNewPathAndClipBox([0,0,h,c]);let f="groupAt"+this.groupLevel;e.smask&&(f+="_smask_"+this.smaskCounter++%2);let m=this.cachedCanvases.getCanvas(f,h,c),g=m.context;g.scale(1/u,1/p),g.translate(-a,-s),g.transform(...n),e.smask?this.smaskStack.push({canvas:m.canvas,context:g,offsetX:a,offsetY:s,scaleX:u,scaleY:p,subtype:e.smask.subtype,backdrop:e.smask.backdrop,transferMap:e.smask.transferMap||null,startTransformInverse:null}):(t.setTransform(1,0,0,1,0,0),t.translate(a,s),t.scale(u,p),t.save()),x(t,g),this.ctx=g,this.setGState([["BM","source-over"],["ca",1],["CA",1]]),this.groupStack.push(t),this.groupLevel++}endGroup(e){if(!this.contentVisible)return;this.groupLevel--;let t=this.ctx,n=this.groupStack.pop();if(this.ctx=n,this.ctx.imageSmoothingEnabled=!1,e.smask)this.tempSMask=this.smaskStack.pop(),this.restore();else{this.ctx.restore();let e=(0,l.getCurrentTransform)(this.ctx);this.restore(),this.ctx.save(),this.ctx.setTransform(...e);let n=o.Util.getAxialAlignedBoundingBox([0,0,t.canvas.width,t.canvas.height],e);this.ctx.drawImage(t.canvas,0,0),this.ctx.restore(),this.compose(n)}}beginAnnotation(e,t,n,a,s){if(dt(this,i,r).call(this),b(this.ctx),this.ctx.save(),this.save(),this.baseTransform&&this.ctx.setTransform(...this.baseTransform),Array.isArray(t)&&4===t.length){let i=t[2]-t[0],r=t[3]-t[1];if(s&&this.annotationCanvasMap){(n=n.slice())[4]-=t[0],n[5]-=t[1],(t=t.slice())[0]=t[1]=0,t[2]=i,t[3]=r;let[a,s]=o.Util.singularValueDecompose2dScale((0,l.getCurrentTransform)(this.ctx)),{viewportScale:h}=this,c=Math.ceil(i*this.outputScaleX*h),u=Math.ceil(r*this.outputScaleY*h);this.annotationCanvas=this.canvasFactory.create(c,u);let{canvas:d,context:p}=this.annotationCanvas;this.annotationCanvasMap.set(e,d),this.annotationCanvas.savedCtx=this.ctx,this.ctx=p,this.ctx.save(),this.ctx.setTransform(a,0,0,-s,0,r*s),b(this.ctx)}else b(this.ctx),this.ctx.rect(t[0],t[1],i,r),this.ctx.clip(),this.endPath()}this.current=new g(this.ctx.canvas.width,this.ctx.canvas.height),this.transform(...n),this.transform(...a)}endAnnotation(){this.annotationCanvas&&(this.ctx.restore(),dt(this,a,s).call(this),this.ctx=this.annotationCanvas.savedCtx,delete this.annotationCanvas.savedCtx,delete this.annotationCanvas)}paintImageMaskXObject(e){if(!this.contentVisible)return;let t=e.count;(e=this.getObject(e.data,e)).count=t;let n=this.ctx,i=this.processingType3;if(i&&(void 0===i.compiled&&(i.compiled=function(e){let{width:t,height:n}=e;if(t>1e3||n>1e3)return null;let i,r,a,s=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),o=t+1,l=new Uint8Array(o*(n+1)),h=t+7&-8,c=new Uint8Array(h*n),u=0;for(let m of e.data){let e=128;for(;e>0;)c[u++]=m&e?0:255,e>>=1}let d=0;for(u=0,0!==c[u]&&(l[0]=1,++d),r=1;r>2)+(c[u+1]?4:0)+(c[u-h+1]?8:0),s[e]&&(l[a+r]=s[e],++d),u++;if(c[u-h]!==c[u]&&(l[a+r]=c[u]?2:4,++d),d>1e3)return null}for(u=h*(n-1),a=i*o,0!==c[u]&&(l[a]=8,++d),r=1;r1e3)return null;let p=new Int32Array([0,o,-1,0,-o,0,0,0,1]),f=new Path2D;for(i=0;d&&i<=n;i++){let e=i*o,n=e+t;for(;e>4,l[e]&=a>>2|a<<2),f.lineTo(e%o,e/o|0),l[e]||--d}while(r!==e);--i}return c=null,l=null,function(e){e.save(),e.scale(1/t,-1/n),e.translate(0,-n),e.fill(f),e.beginPath(),e.restore()}}(e)),i.compiled))return void i.compiled(n);let r=this._createMaskCanvas(e),a=r.canvas;n.save(),n.setTransform(1,0,0,1,0,0),n.drawImage(a,r.offsetX,r.offsetY),n.restore(),this.compose()}paintImageMaskXObjectRepeat(e,t,n=0,i=0,r,a){if(!this.contentVisible)return;e=this.getObject(e.data,e);let s=this.ctx;s.save();let h=(0,l.getCurrentTransform)(s);s.transform(t,n,i,r,0,0);let c=this._createMaskCanvas(e);s.setTransform(1,0,0,1,c.offsetX-h[4],c.offsetY-h[5]);for(let l=0,u=a.length;li?h/i:1,t=l>i?l/i:1}}this._cachedScaleForStroking[0]=e,this._cachedScaleForStroking[1]=t}return this._cachedScaleForStroking}rescaleAndStroke(e){let{ctx:t}=this,{lineWidth:n}=this.current,[i,r]=this.getScaleForStroking();if(t.lineWidth=n||1,1===i&&1===r)return void t.stroke();let a=t.getLineDash();if(e&&t.save(),t.scale(i,r),a.length>0){let e=Math.max(i,r);t.setLineDash(a.map((t=>t/e))),t.lineDashOffset/=e}t.stroke(),e&&t.restore()}isContentVisible(){for(let e=this.markedContentStack.length-1;e>=0;e--)if(!this.markedContentStack[e].visible)return!1;return!0}},R=P;i=new WeakSet,r=function(){for(;this.stateStack.length||this.inSMaskMode;)this.restore();this.ctx.restore(),this.transparentCanvas&&(this.ctx=this.compositeCtx,this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.drawImage(this.transparentCanvas,0,0),this.ctx.restore(),this.transparentCanvas=null)},a=new WeakSet,s=function(){if(this.pageColors){let e=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if("none"!==e){let t=this.ctx.filter;this.ctx.filter=e,this.ctx.drawImage(this.ctx.canvas,0,0),this.ctx.filter=t}}},t.CanvasGraphics=R;for(let O in o.OPS)void 0!==R.prototype[O]&&(R.prototype[o.OPS[O]]=R.prototype[O])},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TilingPattern=t.PathType=void 0,t.getShadingPattern=function(e){switch(e[0]){case"RadialAxial":return new l(e);case"Mesh":return new u(e);case"Dummy":return new d}throw new Error(`Unknown IR type: ${e[0]}`)};var i=n(1),r=n(6);let a={FILL:"Fill",STROKE:"Stroke",SHADING:"Shading"};function s(e,t){if(!t)return;let n=t[2]-t[0],i=t[3]-t[1],r=new Path2D;r.rect(t[0],t[1],n,i),e.clip(r)}t.PathType=a;class o{constructor(){this.constructor===o&&(0,i.unreachable)("Cannot initialize BaseShadingPattern.")}getPattern(){(0,i.unreachable)("Abstract method `getPattern` called.")}}class l extends o{constructor(e){super(),this._type=e[1],this._bbox=e[2],this._colorStops=e[3],this._p0=e[4],this._p1=e[5],this._r0=e[6],this._r1=e[7],this.matrix=null}_createGradient(e){let t;"axial"===this._type?t=e.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]):"radial"===this._type&&(t=e.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1));for(let n of this._colorStops)t.addColorStop(n[0],n[1]);return t}getPattern(e,t,n,o){let l;if(o===a.STROKE||o===a.FILL){let a=t.current.getClippedPathBoundingBox(o,(0,r.getCurrentTransform)(e))||[0,0,0,0],h=Math.ceil(a[2]-a[0])||1,c=Math.ceil(a[3]-a[1])||1,u=t.cachedCanvases.getCanvas("pattern",h,c,!0),d=u.context;d.clearRect(0,0,d.canvas.width,d.canvas.height),d.beginPath(),d.rect(0,0,d.canvas.width,d.canvas.height),d.translate(-a[0],-a[1]),n=i.Util.transform(n,[1,0,0,1,a[0],a[1]]),d.transform(...t.baseTransform),this.matrix&&d.transform(...this.matrix),s(d,this._bbox),d.fillStyle=this._createGradient(d),d.fill(),l=e.createPattern(u.canvas,"no-repeat");let p=new DOMMatrix(n);l.setTransform(p)}else s(e,this._bbox),l=this._createGradient(e);return l}}function h(e,t,n,i,r,a,s,o){let l,h=t.coords,c=t.colors,u=e.data,d=4*e.width;h[n+1]>h[i+1]&&(l=n,n=i,i=l,l=a,a=s,s=l),h[i+1]>h[r+1]&&(l=i,i=r,r=l,l=s,s=o,o=l),h[n+1]>h[i+1]&&(l=n,n=i,i=l,l=a,a=s,s=l);let p=(h[n]+t.offsetX)*t.scaleX,f=(h[n+1]+t.offsetY)*t.scaleY,m=(h[i]+t.offsetX)*t.scaleX,g=(h[i+1]+t.offsetY)*t.scaleY,v=(h[r]+t.offsetX)*t.scaleX,y=(h[r+1]+t.offsetY)*t.scaleY;if(f>=y)return;let x,b,_,w,S,M,T,E,A=c[a],C=c[a+1],P=c[a+2],R=c[s],O=c[s+1],L=c[s+2],I=c[o],D=c[o+1],k=c[o+2],N=Math.round(f),F=Math.round(y);for(let U=N;U<=F;U++){if(Uy?1:g===y?0:(g-U)/(g-y),x=m-(m-v)*e,b=R-(R-I)*e,_=O-(O-D)*e,w=L-(L-k)*e}let e;e=Uy?1:(f-U)/(f-y),S=p-(p-v)*e,M=A-(A-I)*e,T=C-(C-D)*e,E=P-(P-k)*e;let t=Math.round(Math.min(x,S)),n=Math.round(Math.max(x,S)),i=d*U+4*t;for(let r=t;r<=n;r++)e=(x-r)/(x-S),e<0?e=0:e>1&&(e=1),u[i++]=b-(b-M)*e|0,u[i++]=_-(_-T)*e|0,u[i++]=w-(w-E)*e|0,u[i++]=255}}function c(e,t,n){let i,r,a=t.coords,s=t.colors;switch(t.type){case"lattice":let o=t.verticesPerRow,l=Math.floor(a.length/o)-1,c=o-1;for(i=0;i=i?r=i:n=r/e,{scale:n,size:r}}clipBbox(e,t,n,i,a){let s=i-t,o=a-n;e.ctx.rect(t,n,s,o),e.current.updateRectMinMax((0,r.getCurrentTransform)(e.ctx),[t,n,i,a]),e.clip(),e.endPath()}setFillAndStrokeStyleToContext(e,t,n){let r=e.ctx,a=e.current;switch(t){case 1:let e=this.ctx;r.fillStyle=e.fillStyle,r.strokeStyle=e.strokeStyle,a.fillColor=e.fillStyle,a.strokeColor=e.strokeStyle;break;case 2:let s=i.Util.makeHexColor(n[0],n[1],n[2]);r.fillStyle=s,r.strokeStyle=s,a.fillColor=s,a.strokeColor=s;break;default:throw new i.FormatError(`Unsupported paint type: ${t}`)}}getPattern(e,t,n,r){let s=n;r!==a.SHADING&&(s=i.Util.transform(s,t.baseTransform),this.matrix&&(s=i.Util.transform(s,this.matrix)));let o=this.createPatternCanvas(t),l=new DOMMatrix(s);l=l.translate(o.offsetX,o.offsetY),l=l.scale(1/o.scaleX,1/o.scaleY);let h=e.createPattern(o.canvas,"repeat");return h.setTransform(l),h}},f=p;Xi(f,"MAX_PATTERN_SIZE",3e3),t.TilingPattern=f},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.convertBlackAndWhiteToRGBA=r,t.convertToRGBA=function(e){switch(e.kind){case i.ImageKind.GRAYSCALE_1BPP:return r(e);case i.ImageKind.RGB_24BPP:return function({src:e,srcPos:t=0,dest:n,destPos:r=0,width:a,height:s}){let o=0,l=e.length>>2,h=new Uint32Array(e.buffer,t,l);if(i.FeatureTest.isLittleEndian){for(;o>>24|t<<8|4278190080,n[r+2]=t>>>16|i<<16|4278190080,n[r+3]=i>>>8|4278190080}for(let t=4*o,i=e.length;t>>8|255,n[r+2]=t<<16|i>>>16|255,n[r+3]=i<<8|255}for(let t=4*o,i=e.length;t>3,d=7&r,p=e.length;n=new Uint32Array(n.buffer);let f=0;for(let i=0;i{Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalWorkerOptions=void 0;let n=Object.create(null);t.GlobalWorkerOptions=n,n.workerPort=null,n.workerSrc=""},(e,t,n)=>{var i,r,a,s,o,l;Object.defineProperty(t,"__esModule",{value:!0}),t.MessageHandler=void 0;var h=n(1);function c(e){switch(e instanceof Error||"object"==typeof e&&null!==e||(0,h.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),e.name){case"AbortException":return new h.AbortException(e.message);case"MissingPDFException":return new h.MissingPDFException(e.message);case"PasswordException":return new h.PasswordException(e.message,e.code);case"UnexpectedResponseException":return new h.UnexpectedResponseException(e.message,e.status);case"UnknownErrorException":return new h.UnknownErrorException(e.message,e.details);default:return new h.UnknownErrorException(e.message,e.toString())}}i=new WeakSet,r=function(e){let t=e.streamId,n=this.sourceName,i=e.sourceName,r=this.comObj,a=this,s=this.actionHandler[e.action],o={enqueue(e,a=1,s){if(this.isCancelled)return;let o=this.desiredSize;this.desiredSize-=a,o>0&&this.desiredSize<=0&&(this.sinkCapability=new h.PromiseCapability,this.ready=this.sinkCapability.promise),r.postMessage({sourceName:n,targetName:i,stream:4,streamId:t,chunk:e},s)},close(){this.isCancelled||(this.isCancelled=!0,r.postMessage({sourceName:n,targetName:i,stream:3,streamId:t}),delete a.streamSinks[t])},error(e){(0,h.assert)(e instanceof Error,"error must have a valid reason"),!this.isCancelled&&(this.isCancelled=!0,r.postMessage({sourceName:n,targetName:i,stream:5,streamId:t,reason:c(e)}))},sinkCapability:new h.PromiseCapability,onPull:null,onCancel:null,isCancelled:!1,desiredSize:e.desiredSize,ready:null};o.sinkCapability.resolve(),o.ready=o.sinkCapability.promise,this.streamSinks[t]=o,new Promise((function(t){t(s(e.data,o))})).then((function(){r.postMessage({sourceName:n,targetName:i,stream:8,streamId:t,success:!0})}),(function(e){r.postMessage({sourceName:n,targetName:i,stream:8,streamId:t,reason:c(e)})}))},a=new WeakSet,s=function(e){let t=e.streamId,n=this.sourceName,i=e.sourceName,r=this.comObj,a=this.streamControllers[t],s=this.streamSinks[t];switch(e.stream){case 8:e.success?a.startCall.resolve():a.startCall.reject(c(e.reason));break;case 7:e.success?a.pullCall.resolve():a.pullCall.reject(c(e.reason));break;case 6:if(!s){r.postMessage({sourceName:n,targetName:i,stream:7,streamId:t,success:!0});break}s.desiredSize<=0&&e.desiredSize>0&&s.sinkCapability.resolve(),s.desiredSize=e.desiredSize,new Promise((function(e){var t;e(null==(t=s.onPull)?void 0:t.call(s))})).then((function(){r.postMessage({sourceName:n,targetName:i,stream:7,streamId:t,success:!0})}),(function(e){r.postMessage({sourceName:n,targetName:i,stream:7,streamId:t,reason:c(e)})}));break;case 4:if((0,h.assert)(a,"enqueue should have stream controller"),a.isClosed)break;a.controller.enqueue(e.chunk);break;case 3:if((0,h.assert)(a,"close should have stream controller"),a.isClosed)break;a.isClosed=!0,a.controller.close(),dt(this,o,l).call(this,a,t);break;case 5:(0,h.assert)(a,"error should have stream controller"),a.controller.error(c(e.reason)),dt(this,o,l).call(this,a,t);break;case 2:e.success?a.cancelCall.resolve():a.cancelCall.reject(c(e.reason)),dt(this,o,l).call(this,a,t);break;case 1:if(!s)break;new Promise((function(t){var n;t(null==(n=s.onCancel)?void 0:n.call(s,c(e.reason)))})).then((function(){r.postMessage({sourceName:n,targetName:i,stream:2,streamId:t,success:!0})}),(function(e){r.postMessage({sourceName:n,targetName:i,stream:2,streamId:t,reason:c(e)})})),s.sinkCapability.reject(c(e.reason)),s.isCancelled=!0,delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}},o=new WeakSet,l=function(e,t){return ft(this,null,(function*(){var n,i,r;yield Promise.allSettled([null==(n=e.startCall)?void 0:n.promise,null==(i=e.pullCall)?void 0:i.promise,null==(r=e.cancelCall)?void 0:r.promise]),delete this.streamControllers[t]}))},t.MessageHandler=class{constructor(e,t,n){Je(this,i),Je(this,a),Je(this,o),this.sourceName=e,this.targetName=t,this.comObj=n,this.callbackId=1,this.streamId=1,this.streamSinks=Object.create(null),this.streamControllers=Object.create(null),this.callbackCapabilities=Object.create(null),this.actionHandler=Object.create(null),this._onComObjOnMessage=e=>{let t=e.data;if(t.targetName!==this.sourceName)return;if(t.stream)return void dt(this,a,s).call(this,t);if(t.callback){let e=t.callbackId,n=this.callbackCapabilities[e];if(!n)throw new Error(`Cannot resolve callback ${e}`);if(delete this.callbackCapabilities[e],1===t.callback)n.resolve(t.data);else{if(2!==t.callback)throw new Error("Unexpected callback case");n.reject(c(t.reason))}return}let o=this.actionHandler[t.action];if(!o)throw new Error(`Unknown action from worker: ${t.action}`);if(t.callbackId){let e=this.sourceName,i=t.sourceName;new Promise((function(e){e(o(t.data))})).then((function(r){n.postMessage({sourceName:e,targetName:i,callback:1,callbackId:t.callbackId,data:r})}),(function(r){n.postMessage({sourceName:e,targetName:i,callback:2,callbackId:t.callbackId,reason:c(r)})}))}else t.streamId?dt(this,i,r).call(this,t):o(t.data)},n.addEventListener("message",this._onComObjOnMessage)}on(e,t){let n=this.actionHandler;if(n[e])throw new Error(`There is already an actionName called "${e}"`);n[e]=t}send(e,t,n){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,data:t},n)}sendWithPromise(e,t,n){let i=this.callbackId++,r=new h.PromiseCapability;this.callbackCapabilities[i]=r;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,callbackId:i,data:t},n)}catch(e){r.reject(e)}return r.promise}sendWithStream(e,t,n,i){let r=this.streamId++,a=this.sourceName,s=this.targetName,o=this.comObj;return new ReadableStream({start:n=>{let l=new h.PromiseCapability;return this.streamControllers[r]={controller:n,startCall:l,pullCall:null,cancelCall:null,isClosed:!1},o.postMessage({sourceName:a,targetName:s,action:e,streamId:r,data:t,desiredSize:n.desiredSize},i),l.promise},pull:e=>{let t=new h.PromiseCapability;return this.streamControllers[r].pullCall=t,o.postMessage({sourceName:a,targetName:s,stream:6,streamId:r,desiredSize:e.desiredSize}),t.promise},cancel:e=>{(0,h.assert)(e instanceof Error,"cancel must have a valid reason");let t=new h.PromiseCapability;return this.streamControllers[r].cancelCall=t,this.streamControllers[r].isClosed=!0,o.postMessage({sourceName:a,targetName:s,stream:1,streamId:r,reason:c(e)}),t.promise}},n)}destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}},(e,t,n)=>{var i,r;Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=void 0;var a=n(1);i=new WeakMap,r=new WeakMap,t.Metadata=class{constructor({parsedData:e,rawData:t}){Je(this,i,void 0),Je(this,r,void 0),St(this,i,e),St(this,r,t)}getRaw(){return ce(this,r)}get(e){var t;return null!=(t=ce(this,i).get(e))?t:null}getAll(){return(0,a.objectFromMap)(ce(this,i))}has(e){return ce(this,i).has(e)}}},(e,t,n)=>{var i,r,a,s,o,l,h;Object.defineProperty(t,"__esModule",{value:!0}),t.OptionalContentConfig=void 0;var c=n(1),u=n(8);let d=Symbol("INTERNAL");class p{constructor(e,t){Je(this,i,!0),this.name=e,this.intent=t}get visible(){return ce(this,i)}_setVisible(e,t){e!==d&&(0,c.unreachable)("Internal method `_setVisible` called."),St(this,i,t)}}i=new WeakMap,r=new WeakMap,a=new WeakMap,s=new WeakMap,o=new WeakMap,l=new WeakSet,h=function(e){let t=e.length;if(t<2)return!0;let n=e[0];for(let i=1;i0?(0,c.objectFromMap)(ce(this,a)):null}getGroup(e){return ce(this,a).get(e)||null}getHash(){if(null!==ce(this,r))return ce(this,r);let e=new u.MurmurHash3_64;for(let[t,n]of ce(this,a))e.update(`${t}:${n.visible}`);return St(this,r,e.hexdigest())}}},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PDFDataTransportStream=void 0;var i=n(1),r=n(6);t.PDFDataTransportStream=class{constructor({length:e,initialData:t,progressiveDone:n=!1,contentDispositionFilename:r=null,disableRange:a=!1,disableStream:s=!1},o){if((0,i.assert)(o,'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.'),this._queuedChunks=[],this._progressiveDone=n,this._contentDispositionFilename=r,(null==t?void 0:t.length)>0){let e=t instanceof Uint8Array&&t.byteLength===t.buffer.byteLength?t.buffer:new Uint8Array(t).buffer;this._queuedChunks.push(e)}this._pdfDataRangeTransport=o,this._isStreamingSupported=!s,this._isRangeSupported=!a,this._contentLength=e,this._fullRequestReader=null,this._rangeReaders=[],this._pdfDataRangeTransport.addRangeListener(((e,t)=>{this._onReceiveData({begin:e,chunk:t})})),this._pdfDataRangeTransport.addProgressListener(((e,t)=>{this._onProgress({loaded:e,total:t})})),this._pdfDataRangeTransport.addProgressiveReadListener((e=>{this._onReceiveData({chunk:e})})),this._pdfDataRangeTransport.addProgressiveDoneListener((()=>{this._onProgressiveDone()})),this._pdfDataRangeTransport.transportReady()}_onReceiveData({begin:e,chunk:t}){let n=t instanceof Uint8Array&&t.byteLength===t.buffer.byteLength?t.buffer:new Uint8Array(t).buffer;if(void 0===e)this._fullRequestReader?this._fullRequestReader._enqueue(n):this._queuedChunks.push(n);else{let t=this._rangeReaders.some((function(t){return t._begin===e&&(t._enqueue(n),!0)}));(0,i.assert)(t,"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.")}}get _progressiveDataLength(){var e,t;return null!=(t=null==(e=this._fullRequestReader)?void 0:e._loaded)?t:0}_onProgress(e){var t,n,i,r;void 0===e.total?null==(n=null==(t=this._rangeReaders[0])?void 0:t.onProgress)||n.call(t,{loaded:e.loaded}):null==(r=null==(i=this._fullRequestReader)?void 0:i.onProgress)||r.call(i,{loaded:e.loaded,total:e.total})}_onProgressiveDone(){var e;null==(e=this._fullRequestReader)||e.progressiveDone(),this._progressiveDone=!0}_removeRangeReader(e){let t=this._rangeReaders.indexOf(e);t>=0&&this._rangeReaders.splice(t,1)}getFullReader(){(0,i.assert)(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");let e=this._queuedChunks;return this._queuedChunks=null,new a(this,e,this._progressiveDone,this._contentDispositionFilename)}getRangeReader(e,t){if(t<=this._progressiveDataLength)return null;let n=new s(this,e,t);return this._pdfDataRangeTransport.requestDataRange(e,t),this._rangeReaders.push(n),n}cancelAllRequests(e){var t;null==(t=this._fullRequestReader)||t.cancel(e);for(let n of this._rangeReaders.slice(0))n.cancel(e);this._pdfDataRangeTransport.abort()}};class a{constructor(e,t,n=!1,i=null){this._stream=e,this._done=n||!1,this._filename=(0,r.isPdfFile)(i)?i:null,this._queuedChunks=t||[],this._loaded=0;for(let r of this._queuedChunks)this._loaded+=r.byteLength;this._requests=[],this._headersReady=Promise.resolve(),e._fullRequestReader=this,this.onProgress=null}_enqueue(e){this._done||(this._requests.length>0?this._requests.shift().resolve({value:e,done:!1}):this._queuedChunks.push(e),this._loaded+=e.byteLength)}get headersReady(){return this._headersReady}get filename(){return this._filename}get isRangeSupported(){return this._stream._isRangeSupported}get isStreamingSupported(){return this._stream._isStreamingSupported}get contentLength(){return this._stream._contentLength}read(){return ft(this,null,(function*(){if(this._queuedChunks.length>0)return{value:this._queuedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};let e=new i.PromiseCapability;return this._requests.push(e),e.promise}))}cancel(e){this._done=!0;for(let t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0}progressiveDone(){this._done||(this._done=!0)}}class s{constructor(e,t,n){this._stream=e,this._begin=t,this._end=n,this._queuedChunk=null,this._requests=[],this._done=!1,this.onProgress=null}_enqueue(e){if(!this._done){if(0===this._requests.length)this._queuedChunk=e;else{this._requests.shift().resolve({value:e,done:!1});for(let e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0}this._done=!0,this._stream._removeRangeReader(this)}}get isStreamingSupported(){return!1}read(){return ft(this,null,(function*(){if(this._queuedChunk){let e=this._queuedChunk;return this._queuedChunk=null,{value:e,done:!1}}if(this._done)return{value:void 0,done:!0};let e=new i.PromiseCapability;return this._requests.push(e),e.promise}))}cancel(e){this._done=!0;for(let t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0,this._stream._removeRangeReader(this)}}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.XfaText=void 0;class n{static textContent(e){let t=[],i={items:t,styles:Object.create(null)};return function e(i){var r;if(!i)return;let a=null,s=i.name;if("#text"===s)a=i.value;else{if(!n.shouldBuildText(s))return;null!=(r=null==i?void 0:i.attributes)&&r.textContent?a=i.attributes.textContent:i.value&&(a=i.value)}if(null!==a&&t.push({str:a}),i.children)for(let t of i.children)e(t)}(e),i}static shouldBuildText(e){return!("textarea"===e||"input"===e||"option"===e||"select"===e)}}t.XfaText=n},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeStandardFontDataFactory=t.NodeFilterFactory=t.NodeCanvasFactory=t.NodeCMapReaderFactory=void 0;var i=n(7);let r=function(e){return new Promise(((t,n)=>{AC().readFile(e,((e,i)=>{!e&&i?t(new Uint8Array(i)):n(new Error(e))}))}))};class a extends i.BaseFilterFactory{}t.NodeFilterFactory=a;class s extends i.BaseCanvasFactory{_createCanvas(e,t){return Bye().createCanvas(e,t)}}t.NodeCanvasFactory=s;class o extends i.BaseCMapReaderFactory{_fetchData(e,t){return r(e).then((e=>({cMapData:e,compressionType:t})))}}t.NodeCMapReaderFactory=o;class l extends i.BaseStandardFontDataFactory{_fetchData(e){return r(e)}}t.NodeStandardFontDataFactory=l},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PDFNodeStream=void 0;var i=n(1),r=n(22);let a=AC(),s=Uye(),o=Hye(),l=Vye(),h=/^file:\/\/\/[a-zA-Z]:\//;t.PDFNodeStream=class{constructor(e){this.source=e,this.url=function(e){let t=l.parse(e);return"file:"===t.protocol||t.host?t:/^[a-z]:[/\\]/i.test(e)?l.parse(`file:///${e}`):(t.host||(t.protocol="file:"),t)}(e.url),this.isHttp="http:"===this.url.protocol||"https:"===this.url.protocol,this.isFsUrl="file:"===this.url.protocol,this.httpHeaders=this.isHttp&&e.httpHeaders||{},this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){var e,t;return null!=(t=null==(e=this._fullRequestReader)?void 0:e._loaded)?t:0}getFullReader(){return(0,i.assert)(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once."),this._fullRequestReader=this.isFsUrl?new m(this):new p(this),this._fullRequestReader}getRangeReader(e,t){if(t<=this._progressiveDataLength)return null;let n=this.isFsUrl?new g(this,e,t):new f(this,e,t);return this._rangeRequestReaders.push(n),n}cancelAllRequests(e){var t;null==(t=this._fullRequestReader)||t.cancel(e);for(let n of this._rangeRequestReaders.slice(0))n.cancel(e)}};class c{constructor(e){this._url=e.url,this._done=!1,this._storedError=null,this.onProgress=null;let t=e.source;this._contentLength=t.length,this._loaded=0,this._filename=null,this._disableRange=t.disableRange||!1,this._rangeChunkSize=t.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!t.disableStream,this._isRangeSupported=!t.disableRange,this._readableStream=null,this._readCapability=new i.PromiseCapability,this._headersCapability=new i.PromiseCapability}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}read(){return ft(this,null,(function*(){var e;if(yield this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;let t=this._readableStream.read();return null===t?(this._readCapability=new i.PromiseCapability,this.read()):(this._loaded+=t.length,null==(e=this.onProgress)||e.call(this,{loaded:this._loaded,total:this._contentLength}),{value:new Uint8Array(t).buffer,done:!1})}))}cancel(e){this._readableStream?this._readableStream.destroy(e):this._error(e)}_error(e){this._storedError=e,this._readCapability.resolve()}_setReadableStream(e){this._readableStream=e,e.on("readable",(()=>{this._readCapability.resolve()})),e.on("end",(()=>{e.destroy(),this._done=!0,this._readCapability.resolve()})),e.on("error",(e=>{this._error(e)})),!this._isStreamingSupported&&this._isRangeSupported&&this._error(new i.AbortException("streaming is disabled")),this._storedError&&this._readableStream.destroy(this._storedError)}}class u{constructor(e){this._url=e.url,this._done=!1,this._storedError=null,this.onProgress=null,this._loaded=0,this._readableStream=null,this._readCapability=new i.PromiseCapability;let t=e.source;this._isStreamingSupported=!t.disableStream}get isStreamingSupported(){return this._isStreamingSupported}read(){return ft(this,null,(function*(){var e;if(yield this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;let t=this._readableStream.read();return null===t?(this._readCapability=new i.PromiseCapability,this.read()):(this._loaded+=t.length,null==(e=this.onProgress)||e.call(this,{loaded:this._loaded}),{value:new Uint8Array(t).buffer,done:!1})}))}cancel(e){this._readableStream?this._readableStream.destroy(e):this._error(e)}_error(e){this._storedError=e,this._readCapability.resolve()}_setReadableStream(e){this._readableStream=e,e.on("readable",(()=>{this._readCapability.resolve()})),e.on("end",(()=>{e.destroy(),this._done=!0,this._readCapability.resolve()})),e.on("error",(e=>{this._error(e)})),this._storedError&&this._readableStream.destroy(this._storedError)}}function d(e,t){return{protocol:e.protocol,auth:e.auth,host:e.hostname,port:e.port,path:e.path,method:"GET",headers:t}}class p extends c{constructor(e){super(e);let t=t=>{if(404===t.statusCode){let e=new i.MissingPDFException(`Missing PDF "${this._url}".`);return this._storedError=e,void this._headersCapability.reject(e)}this._headersCapability.resolve(),this._setReadableStream(t);let n=e=>this._readableStream.headers[e.toLowerCase()],{allowRangeRequests:a,suggestedLength:s}=(0,r.validateRangeRequestCapabilities)({getResponseHeader:n,isHttp:e.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=a,this._contentLength=s||this._contentLength,this._filename=(0,r.extractFilenameFromHeader)(n)};this._request=null,"http:"===this._url.protocol?this._request=s.request(d(this._url,e.httpHeaders),t):this._request=o.request(d(this._url,e.httpHeaders),t),this._request.on("error",(e=>{this._storedError=e,this._headersCapability.reject(e)})),this._request.end()}}class f extends u{constructor(e,t,n){super(e),this._httpHeaders={};for(let i in e.httpHeaders){let t=e.httpHeaders[i];void 0!==t&&(this._httpHeaders[i]=t)}this._httpHeaders.Range=`bytes=${t}-${n-1}`;let r=e=>{if(404!==e.statusCode)this._setReadableStream(e);else{let e=new i.MissingPDFException(`Missing PDF "${this._url}".`);this._storedError=e}};this._request=null,"http:"===this._url.protocol?this._request=s.request(d(this._url,this._httpHeaders),r):this._request=o.request(d(this._url,this._httpHeaders),r),this._request.on("error",(e=>{this._storedError=e})),this._request.end()}}class m extends c{constructor(e){super(e);let t=decodeURIComponent(this._url.path);h.test(this._url.href)&&(t=t.replace(/^\//,"")),a.lstat(t,((e,n)=>{if(e)return"ENOENT"===e.code&&(e=new i.MissingPDFException(`Missing PDF "${t}".`)),this._storedError=e,void this._headersCapability.reject(e);this._contentLength=n.size,this._setReadableStream(a.createReadStream(t)),this._headersCapability.resolve()}))}}class g extends u{constructor(e,t,n){super(e);let i=decodeURIComponent(this._url.path);h.test(this._url.href)&&(i=i.replace(/^\//,"")),this._setReadableStream(a.createReadStream(i,{start:t,end:n-1}))}}},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createResponseStatusError=function(e,t){return 404===e||0===e&&t.startsWith("file:")?new i.MissingPDFException('Missing PDF "'+t+'".'):new i.UnexpectedResponseException(`Unexpected server response (${e}) while retrieving PDF "${t}".`,e)},t.extractFilenameFromHeader=function(e){let t=e("Content-Disposition");if(t){let n=(0,r.getFilenameFromContentDispositionHeader)(t);if(n.includes("%"))try{n=decodeURIComponent(n)}catch(e){}if((0,a.isPdfFile)(n))return n}return null},t.validateRangeRequestCapabilities=function({getResponseHeader:e,isHttp:t,rangeChunkSize:n,disableRange:i}){let r={allowRangeRequests:!1,suggestedLength:void 0},a=parseInt(e("Content-Length"),10);return!Number.isInteger(a)||(r.suggestedLength=a,a<=2*n)||i||!t||"bytes"!==e("Accept-Ranges")||"identity"!==(e("Content-Encoding")||"identity")||(r.allowRangeRequests=!0),r},t.validateResponseStatus=function(e){return 200===e||206===e};var i=n(1),r=n(23),a=n(6)},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getFilenameFromContentDispositionHeader=function(e){let t=!0,n=r("filename\\*","i").exec(e);if(n){n=n[1];let e=o(n);return e=unescape(e),e=l(e),e=h(e),s(e)}if(n=function(e){let t,n=[],i=r("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;null!==(t=i.exec(e));){let[,e,i,r]=t;if(e=parseInt(e,10),e in n){if(0===e)break}else n[e]=[i,r]}let a=[];for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0}),t.PDFNetworkStream=void 0;var i=n(1),r=n(22);class a{constructor(e,t={}){this.url=e,this.isHttp=/^https?:/i.test(e),this.httpHeaders=this.isHttp&&t.httpHeaders||Object.create(null),this.withCredentials=t.withCredentials||!1,this.currXhrId=0,this.pendingRequests=Object.create(null)}requestRange(e,t,n){let i={begin:e,end:t};for(let r in n)i[r]=n[r];return this.request(i)}requestFull(e){return this.request(e)}request(e){let t=new XMLHttpRequest,n=this.currXhrId++,i=this.pendingRequests[n]={xhr:t};t.open("GET",this.url),t.withCredentials=this.withCredentials;for(let r in this.httpHeaders){let e=this.httpHeaders[r];void 0!==e&&t.setRequestHeader(r,e)}return this.isHttp&&"begin"in e&&"end"in e?(t.setRequestHeader("Range",`bytes=${e.begin}-${e.end-1}`),i.expectedStatus=206):i.expectedStatus=200,t.responseType="arraybuffer",e.onError&&(t.onerror=function(n){e.onError(t.status)}),t.onreadystatechange=this.onStateChange.bind(this,n),t.onprogress=this.onProgress.bind(this,n),i.onHeadersReceived=e.onHeadersReceived,i.onDone=e.onDone,i.onError=e.onError,i.onProgress=e.onProgress,t.send(null),n}onProgress(e,t){var n;let i=this.pendingRequests[e];i&&(null==(n=i.onProgress)||n.call(i,t))}onStateChange(e,t){var n,r,a;let s=this.pendingRequests[e];if(!s)return;let o=s.xhr;if(o.readyState>=2&&s.onHeadersReceived&&(s.onHeadersReceived(),delete s.onHeadersReceived),4!==o.readyState||!(e in this.pendingRequests))return;if(delete this.pendingRequests[e],0===o.status&&this.isHttp)return void(null==(n=s.onError)||n.call(s,o.status));let l=o.status||200;if((200!==l||206!==s.expectedStatus)&&l!==s.expectedStatus)return void(null==(r=s.onError)||r.call(s,o.status));let h=function(e){let t=e.response;return"string"!=typeof t?t:(0,i.stringToBytes)(t).buffer}(o);if(206===l){let e=o.getResponseHeader("Content-Range"),t=/bytes (\d+)-(\d+)\/(\d+)/.exec(e);s.onDone({begin:parseInt(t[1],10),chunk:h})}else h?s.onDone({begin:0,chunk:h}):null==(a=s.onError)||a.call(s,o.status)}getRequestXhr(e){return this.pendingRequests[e].xhr}isPendingRequest(e){return e in this.pendingRequests}abortRequest(e){let t=this.pendingRequests[e].xhr;delete this.pendingRequests[e],t.abort()}}t.PDFNetworkStream=class{constructor(e){this._source=e,this._manager=new a(e.url,{httpHeaders:e.httpHeaders,withCredentials:e.withCredentials}),this._rangeChunkSize=e.rangeChunkSize,this._fullRequestReader=null,this._rangeRequestReaders=[]}_onRangeRequestReaderClosed(e){let t=this._rangeRequestReaders.indexOf(e);t>=0&&this._rangeRequestReaders.splice(t,1)}getFullReader(){return(0,i.assert)(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once."),this._fullRequestReader=new s(this._manager,this._source),this._fullRequestReader}getRangeReader(e,t){let n=new o(this._manager,e,t);return n.onClosed=this._onRangeRequestReaderClosed.bind(this),this._rangeRequestReaders.push(n),n}cancelAllRequests(e){var t;null==(t=this._fullRequestReader)||t.cancel(e);for(let n of this._rangeRequestReaders.slice(0))n.cancel(e)}};class s{constructor(e,t){this._manager=e;let n={onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=t.url,this._fullRequestId=e.requestFull(n),this._headersReceivedCapability=new i.PromiseCapability,this._disableRange=t.disableRange||!1,this._contentLength=t.length,this._rangeChunkSize=t.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!1,this._isRangeSupported=!1,this._cachedChunks=[],this._requests=[],this._done=!1,this._storedError=void 0,this._filename=null,this.onProgress=null}_onHeadersReceived(){let e=this._fullRequestId,t=this._manager.getRequestXhr(e),n=e=>t.getResponseHeader(e),{allowRangeRequests:i,suggestedLength:a}=(0,r.validateRangeRequestCapabilities)({getResponseHeader:n,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});i&&(this._isRangeSupported=!0),this._contentLength=a||this._contentLength,this._filename=(0,r.extractFilenameFromHeader)(n),this._isRangeSupported&&this._manager.abortRequest(e),this._headersReceivedCapability.resolve()}_onDone(e){if(e&&(this._requests.length>0?this._requests.shift().resolve({value:e.chunk,done:!1}):this._cachedChunks.push(e.chunk)),this._done=!0,!(this._cachedChunks.length>0)){for(let e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0}}_onError(e){this._storedError=(0,r.createResponseStatusError)(e,this._url),this._headersReceivedCapability.reject(this._storedError);for(let t of this._requests)t.reject(this._storedError);this._requests.length=0,this._cachedChunks.length=0}_onProgress(e){var t;null==(t=this.onProgress)||t.call(this,{loaded:e.loaded,total:e.lengthComputable?e.total:this._contentLength})}get filename(){return this._filename}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}get contentLength(){return this._contentLength}get headersReady(){return this._headersReceivedCapability.promise}read(){return ft(this,null,(function*(){if(this._storedError)throw this._storedError;if(this._cachedChunks.length>0)return{value:this._cachedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};let e=new i.PromiseCapability;return this._requests.push(e),e.promise}))}cancel(e){this._done=!0,this._headersReceivedCapability.reject(e);for(let t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId),this._fullRequestReader=null}}class o{constructor(e,t,n){this._manager=e;let i={onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=e.url,this._requestId=e.requestRange(t,n,i),this._requests=[],this._queuedChunk=null,this._done=!1,this._storedError=void 0,this.onProgress=null,this.onClosed=null}_close(){var e;null==(e=this.onClosed)||e.call(this,this)}_onDone(e){let t=e.chunk;this._requests.length>0?this._requests.shift().resolve({value:t,done:!1}):this._queuedChunk=t,this._done=!0;for(let n of this._requests)n.resolve({value:void 0,done:!0});this._requests.length=0,this._close()}_onError(e){this._storedError=(0,r.createResponseStatusError)(e,this._url);for(let t of this._requests)t.reject(this._storedError);this._requests.length=0,this._queuedChunk=null}_onProgress(e){var t;this.isStreamingSupported||null==(t=this.onProgress)||t.call(this,{loaded:e.loaded})}get isStreamingSupported(){return!1}read(){return ft(this,null,(function*(){if(this._storedError)throw this._storedError;if(null!==this._queuedChunk){let e=this._queuedChunk;return this._queuedChunk=null,{value:e,done:!1}}if(this._done)return{value:void 0,done:!0};let e=new i.PromiseCapability;return this._requests.push(e),e.promise}))}cancel(e){this._done=!0;for(let t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId),this._close()}}},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PDFFetchStream=void 0;var i=n(1),r=n(22);function a(e,t,n){return{method:"GET",headers:e,signal:n.signal,mode:"cors",credentials:t?"include":"same-origin",redirect:"follow"}}function s(e){let t=new Headers;for(let n in e){let i=e[n];void 0!==i&&t.append(n,i)}return t}function o(e){return e instanceof Uint8Array?e.buffer:e instanceof ArrayBuffer?e:((0,i.warn)(`getArrayBuffer - unexpected data format: ${e}`),new Uint8Array(e).buffer)}t.PDFFetchStream=class{constructor(e){this.source=e,this.isHttp=/^https?:/i.test(e.url),this.httpHeaders=this.isHttp&&e.httpHeaders||{},this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){var e,t;return null!=(t=null==(e=this._fullRequestReader)?void 0:e._loaded)?t:0}getFullReader(){return(0,i.assert)(!this._fullRequestReader,"PDFFetchStream.getFullReader can only be called once."),this._fullRequestReader=new l(this),this._fullRequestReader}getRangeReader(e,t){if(t<=this._progressiveDataLength)return null;let n=new h(this,e,t);return this._rangeRequestReaders.push(n),n}cancelAllRequests(e){var t;null==(t=this._fullRequestReader)||t.cancel(e);for(let n of this._rangeRequestReaders.slice(0))n.cancel(e)}};class l{constructor(e){this._stream=e,this._reader=null,this._loaded=0,this._filename=null;let t=e.source;this._withCredentials=t.withCredentials||!1,this._contentLength=t.length,this._headersCapability=new i.PromiseCapability,this._disableRange=t.disableRange||!1,this._rangeChunkSize=t.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._abortController=new AbortController,this._isStreamingSupported=!t.disableStream,this._isRangeSupported=!t.disableRange,this._headers=s(this._stream.httpHeaders);let n=t.url;fetch(n,a(this._headers,this._withCredentials,this._abortController)).then((e=>{if(!(0,r.validateResponseStatus)(e.status))throw(0,r.createResponseStatusError)(e.status,n);this._reader=e.body.getReader(),this._headersCapability.resolve();let t=t=>e.headers.get(t),{allowRangeRequests:a,suggestedLength:s}=(0,r.validateRangeRequestCapabilities)({getResponseHeader:t,isHttp:this._stream.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=a,this._contentLength=s||this._contentLength,this._filename=(0,r.extractFilenameFromHeader)(t),!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new i.AbortException("Streaming is disabled."))})).catch(this._headersCapability.reject),this.onProgress=null}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}read(){return ft(this,null,(function*(){var e;yield this._headersCapability.promise;let{value:t,done:n}=yield this._reader.read();return n?{value:t,done:n}:(this._loaded+=t.byteLength,null==(e=this.onProgress)||e.call(this,{loaded:this._loaded,total:this._contentLength}),{value:o(t),done:!1})}))}cancel(e){var t;null==(t=this._reader)||t.cancel(e),this._abortController.abort()}}class h{constructor(e,t,n){this._stream=e,this._reader=null,this._loaded=0;let o=e.source;this._withCredentials=o.withCredentials||!1,this._readCapability=new i.PromiseCapability,this._isStreamingSupported=!o.disableStream,this._abortController=new AbortController,this._headers=s(this._stream.httpHeaders),this._headers.append("Range",`bytes=${t}-${n-1}`);let l=o.url;fetch(l,a(this._headers,this._withCredentials,this._abortController)).then((e=>{if(!(0,r.validateResponseStatus)(e.status))throw(0,r.createResponseStatusError)(e.status,l);this._readCapability.resolve(),this._reader=e.body.getReader()})).catch(this._readCapability.reject),this.onProgress=null}get isStreamingSupported(){return this._isStreamingSupported}read(){return ft(this,null,(function*(){var e;yield this._readCapability.promise;let{value:t,done:n}=yield this._reader.read();return n?{value:t,done:n}:(this._loaded+=t.byteLength,null==(e=this.onProgress)||e.call(this,{loaded:this._loaded}),{value:o(t),done:!1})}))}cancel(e){var t;null==(t=this._reader)||t.cancel(e),this._abortController.abort()}}},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextLayerRenderTask=void 0,t.renderTextLayer=function(e){!e.textContentSource&&(e.textContent||e.textContentStream)&&((0,r.deprecated)("The TextLayerRender `textContent`/`textContentStream` parameters will be removed in the future, please use `textContentSource` instead."),e.textContentSource=e.textContent||e.textContentStream);let{container:t,viewport:n}=e,i=getComputedStyle(t),a=i.getPropertyValue("visibility"),s=parseFloat(i.getPropertyValue("--scale-factor"));"visible"===a&&(!s||Math.abs(s-n.scale)>1e-5)&&console.error("The `--scale-factor` CSS-variable must be set, to the same value as `viewport.scale`, either on the `container`-element itself or higher up in the DOM.");let o=new c(e);return o._render(),o},t.updateTextLayer=function({container:e,viewport:t,textDivs:n,textDivProperties:i,isOffscreenCanvasSupported:a,mustRotate:s=!0,mustRescale:l=!0}){if(s&&(0,r.setLayerDimensions)(e,{rotation:t.rotation}),l){let e=o(0,a),r={prevFontSize:null,prevFontFamily:null,div:null,scale:t.scale*(globalThis.devicePixelRatio||1),properties:null,ctx:e};for(let t of n)r.properties=i.get(t),r.div=t,h(r)}};var i=n(1),r=n(6);let a=30,s=new Map;function o(e,t){let n;if(t&&i.FeatureTest.isOffscreenCanvasSupported)n=new OffscreenCanvas(e,e).getContext("2d",{alpha:!1});else{let t=document.createElement("canvas");t.width=t.height=e,n=t.getContext("2d",{alpha:!1})}return n}function l(e,t,n){let r=document.createElement("span"),l={angle:0,canvasWidth:0,hasText:""!==t.str,hasEOL:t.hasEOL,fontSize:0};e._textDivs.push(r);let h=i.Util.transform(e._transform,t.transform),c=Math.atan2(h[1],h[0]),u=n[t.fontName];u.vertical&&(c+=Math.PI/2);let d,p,f=Math.hypot(h[2],h[3]),m=f*function(e,t){let n=s.get(e);if(n)return n;let i=o(a,t);i.font=`30px ${e}`;let r=i.measureText(""),l=r.fontBoundingBoxAscent,h=Math.abs(r.fontBoundingBoxDescent);if(l){let t=l/(l+h);return s.set(e,t),i.canvas.width=i.canvas.height=0,t}i.strokeStyle="red",i.clearRect(0,0,a,a),i.strokeText("g",0,0);let c=i.getImageData(0,0,a,a).data;h=0;for(let s=c.length-1-3;s>=0;s-=4)if(c[s]>0){h=Math.ceil(s/4/a);break}i.clearRect(0,0,a,a),i.strokeText("A",0,a),c=i.getImageData(0,0,a,a).data,l=0;for(let s=0,o=c.length;s0){l=a-Math.floor(s/4/a);break}if(i.canvas.width=i.canvas.height=0,l){let t=l/(l+h);return s.set(e,t),t}return s.set(e,.8),.8}(u.fontFamily,e._isOffscreenCanvasSupported);0===c?(d=h[4],p=h[5]-m):(d=h[4]+m*Math.sin(c),p=h[5]-m*Math.cos(c));let g="calc(var(--scale-factor)*",v=r.style;e._container===e._rootContainer?(v.left=`${(100*d/e._pageWidth).toFixed(2)}%`,v.top=`${(100*p/e._pageHeight).toFixed(2)}%`):(v.left=`${g}${d.toFixed(2)}px)`,v.top=`${g}${p.toFixed(2)}px)`),v.fontSize=`${g}${f.toFixed(2)}px)`,v.fontFamily=u.fontFamily,l.fontSize=f,r.setAttribute("role","presentation"),r.textContent=t.str,r.dir=t.dir,e._fontInspectorEnabled&&(r.dataset.fontName=t.fontName),0!==c&&(l.angle=c*(180/Math.PI));let y=!1;if(t.str.length>1)y=!0;else if(" "!==t.str&&t.transform[0]!==t.transform[3]){let e=Math.abs(t.transform[0]),n=Math.abs(t.transform[3]);e!==n&&Math.max(e,n)/Math.min(e,n)>1.5&&(y=!0)}y&&(l.canvasWidth=u.vertical?t.height:t.width),e._textDivProperties.set(r,l),e._isReadableStream&&e._layoutText(r)}function h(e){let{div:t,scale:n,properties:i,ctx:r,prevFontSize:a,prevFontFamily:s}=e,{style:o}=t,l="";if(0!==i.canvasWidth&&i.hasText){let{fontFamily:h}=o,{canvasWidth:c,fontSize:u}=i;(a!==u||s!==h)&&(r.font=`${u*n}px ${h}`,e.prevFontSize=u,e.prevFontFamily=h);let{width:d}=r.measureText(t.textContent);d>0&&(l=`scaleX(${c*n/d})`)}0!==i.angle&&(l=`rotate(${i.angle}deg) ${l}`),l.length>0&&(o.transform=l)}class c{constructor({textContentSource:e,container:t,viewport:n,textDivs:a,textDivProperties:s,textContentItemsStr:l,isOffscreenCanvasSupported:h}){var c;this._textContentSource=e,this._isReadableStream=e instanceof ReadableStream,this._container=this._rootContainer=t,this._textDivs=a||[],this._textContentItemsStr=l||[],this._isOffscreenCanvasSupported=h,this._fontInspectorEnabled=!(null==(c=globalThis.FontInspector)||!c.enabled),this._reader=null,this._textDivProperties=s||new WeakMap,this._canceled=!1,this._capability=new i.PromiseCapability,this._layoutTextParams={prevFontSize:null,prevFontFamily:null,div:null,scale:n.scale*(globalThis.devicePixelRatio||1),properties:null,ctx:o(0,h)};let{pageWidth:u,pageHeight:d,pageX:p,pageY:f}=n.rawDims;this._transform=[1,0,0,-1,-p,f+d],this._pageWidth=u,this._pageHeight=d,(0,r.setLayerDimensions)(t,n),this._capability.promise.finally((()=>{this._layoutTextParams=null})).catch((()=>{}))}get promise(){return this._capability.promise}cancel(){this._canceled=!0,this._reader&&(this._reader.cancel(new i.AbortException("TextLayer task cancelled.")).catch((()=>{})),this._reader=null),this._capability.reject(new i.AbortException("TextLayer task cancelled."))}_processItems(e,t){for(let n of e)if(void 0!==n.str)this._textContentItemsStr.push(n.str),l(this,n,t);else if("beginMarkedContentProps"===n.type||"beginMarkedContent"===n.type){let e=this._container;this._container=document.createElement("span"),this._container.classList.add("markedContent"),null!==n.id&&this._container.setAttribute("id",`${n.id}`),e.append(this._container)}else"endMarkedContent"===n.type&&(this._container=this._container.parentNode)}_layoutText(e){let t=this._layoutTextParams.properties=this._textDivProperties.get(e);if(this._layoutTextParams.div=e,h(this._layoutTextParams),t.hasText&&this._container.append(e),t.hasEOL){let e=document.createElement("br");e.setAttribute("role","presentation"),this._container.append(e)}}_render(){let e=new i.PromiseCapability,t=Object.create(null);if(this._isReadableStream){let n=()=>{this._reader.read().then((({value:i,done:r})=>{r?e.resolve():(Object.assign(t,i.styles),this._processItems(i.items,t),n())}),e.reject)};this._reader=this._textContentSource.getReader(),n()}else{if(!this._textContentSource)throw new Error('No "textContentSource" parameter specified.');{let{items:t,styles:n}=this._textContentSource;this._processItems(t,n),e.resolve()}}e.promise.then((()=>{t=null,function(e){if(e._canceled)return;let t=e._textDivs,n=e._capability;if(t.length>1e5)n.resolve();else{if(!e._isReadableStream)for(let n of t)e._layoutText(n);n.resolve()}}(this)}),this._capability.reject)}}t.TextLayerRenderTask=c},(e,t,n)=>{var i,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b;Object.defineProperty(t,"__esModule",{value:!0}),t.AnnotationEditorLayer=void 0;var _=n(1),w=n(4),S=n(5),M=n(28),T=n(33),E=n(6);let A=class{constructor(e){Je(this,p),Je(this,m),Je(this,v),Je(this,x),Je(this,i,void 0),Je(this,r,!1),Je(this,a,null),Je(this,s,this.pointerup.bind(this)),Je(this,o,this.pointerdown.bind(this)),Je(this,l,new Map),Je(this,h,!1),Je(this,c,!1),Je(this,u,!1),Je(this,d,void 0),A._initialized||(A._initialized=!0,M.FreeTextEditor.initialize(e.l10n),T.InkEditor.initialize(e.l10n)),e.uiManager.registerEditorTypes([M.FreeTextEditor,T.InkEditor]),St(this,d,e.uiManager),this.pageIndex=e.pageIndex,this.div=e.div,St(this,i,e.accessibilityManager),St(this,a,e.annotationLayer),this.viewport=e.viewport,ce(this,d).addLayer(this)}get isEmpty(){return 0===ce(this,l).size}updateToolbar(e){ce(this,d).updateToolbar(e)}updateMode(e=ce(this,d).getMode()){dt(this,x,b).call(this),e===_.AnnotationEditorType.INK?(this.addInkEditorIfNeeded(!1),this.disableClick()):this.enableClick(),ce(this,d).unselectAll(),e!==_.AnnotationEditorType.NONE&&(this.div.classList.toggle("freeTextEditing",e===_.AnnotationEditorType.FREETEXT),this.div.classList.toggle("inkEditing",e===_.AnnotationEditorType.INK),this.div.hidden=!1)}addInkEditorIfNeeded(e){if(e||ce(this,d).getMode()===_.AnnotationEditorType.INK){if(!e)for(let e of ce(this,l).values())if(e.isEmpty())return void e.setInBackground();dt(this,v,y).call(this,{offsetX:0,offsetY:0}).setInBackground()}}setEditingState(e){ce(this,d).setEditingState(e)}addCommands(e){ce(this,d).addCommands(e)}enable(){this.div.style.pointerEvents="auto";let e=new Set;for(let n of ce(this,l).values())n.enableEditing(),n.annotationElementId&&e.add(n.annotationElementId);if(!ce(this,a))return;let t=ce(this,a).getEditableAnnotations();for(let n of t){if(n.hide(),ce(this,d).isDeletedAnnotationElement(n.data.id)||e.has(n.data.id))continue;let t=this.deserialize(n);t&&(this.addOrRebuild(t),t.enableEditing())}}disable(){var e;St(this,u,!0),this.div.style.pointerEvents="none";let t=new Set;for(let n of ce(this,l).values())n.disableEditing(),n.annotationElementId&&null===n.serialize()?(null==(e=this.getEditableAnnotation(n.annotationElementId))||e.show(),n.remove()):t.add(n.annotationElementId);if(ce(this,a)){let e=ce(this,a).getEditableAnnotations();for(let n of e){let{id:e}=n.data;t.has(e)||ce(this,d).isDeletedAnnotationElement(e)||n.show()}}dt(this,x,b).call(this),this.isEmpty&&(this.div.hidden=!0),St(this,u,!1)}getEditableAnnotation(e){var t;return(null==(t=ce(this,a))?void 0:t.getEditableAnnotation(e))||null}setActiveEditor(e){ce(this,d).getActive()!==e&&ce(this,d).setActiveEditor(e)}enableClick(){this.div.addEventListener("pointerdown",ce(this,o)),this.div.addEventListener("pointerup",ce(this,s))}disableClick(){this.div.removeEventListener("pointerdown",ce(this,o)),this.div.removeEventListener("pointerup",ce(this,s))}attach(e){ce(this,l).set(e.id,e);let{annotationElementId:t}=e;t&&ce(this,d).isDeletedAnnotationElement(t)&&ce(this,d).removeDeletedAnnotationElement(e)}detach(e){var t;ce(this,l).delete(e.id),null==(t=ce(this,i))||t.removePointerInTextLayer(e.contentDiv),!ce(this,u)&&e.annotationElementId&&ce(this,d).addDeletedAnnotationElement(e)}remove(e){this.detach(e),ce(this,d).removeEditor(e),e.div.style.display="none",setTimeout((()=>{e.div.style.display="",e.div.remove(),e.isAttachedToDOM=!1,document.activeElement===document.body&&ce(this,d).focusMainContainer()}),0),ce(this,c)||this.addInkEditorIfNeeded(!1)}add(e){if(dt(this,p,f).call(this,e),ce(this,d).addEditor(e),this.attach(e),!e.isAttachedToDOM){let t=e.render();this.div.append(t),e.isAttachedToDOM=!0}this.moveEditorInDOM(e),e.onceAdded(),ce(this,d).addToAnnotationStorage(e)}moveEditorInDOM(e){var t;null==(t=ce(this,i))||t.moveElementInDOM(this.div,e.div,e.contentDiv,!0)}addOrRebuild(e){e.needsToBeRebuilt()?e.rebuild():this.add(e)}getNextId(){return ce(this,d).getId()}deserialize(e){var t;switch(null!=(t=e.annotationType)?t:e.annotationEditorType){case _.AnnotationEditorType.FREETEXT:return M.FreeTextEditor.deserialize(e,this,ce(this,d));case _.AnnotationEditorType.INK:return T.InkEditor.deserialize(e,this,ce(this,d))}return null}setSelected(e){ce(this,d).setSelected(e)}toggleSelected(e){ce(this,d).toggleSelected(e)}isSelected(e){return ce(this,d).isSelected(e)}unselect(e){ce(this,d).unselect(e)}pointerup(e){let{isMac:t}=_.FeatureTest.platform;if(!(0!==e.button||e.ctrlKey&&t)&&e.target===this.div&&ce(this,h)){if(St(this,h,!1),!ce(this,r))return void St(this,r,!0);dt(this,v,y).call(this,e)}}pointerdown(e){let{isMac:t}=_.FeatureTest.platform;if(0!==e.button||e.ctrlKey&&t||e.target!==this.div)return;St(this,h,!0);let n=ce(this,d).getActive();St(this,r,!n||n.isEmpty())}drop(e){let t=e.dataTransfer.getData("text/plain"),n=ce(this,d).getEditor(t);if(!n)return;e.preventDefault(),e.dataTransfer.dropEffect="move",dt(this,p,f).call(this,n);let i=this.div.getBoundingClientRect(),r=e.clientX-i.x,a=e.clientY-i.y;n.translate(r-n.startX,a-n.startY),this.moveEditorInDOM(n),n.div.focus()}dragover(e){e.preventDefault()}destroy(){var e,t;(null==(e=ce(this,d).getActive())?void 0:e.parent)===this&&ce(this,d).setActiveEditor(null);for(let n of ce(this,l).values())null==(t=ce(this,i))||t.removePointerInTextLayer(n.contentDiv),n.setParent(null),n.isAttachedToDOM=!1,n.div.remove();this.div=null,ce(this,l).clear(),ce(this,d).removeLayer(this)}render({viewport:e}){this.viewport=e,(0,E.setLayerDimensions)(this.div,e),(0,S.bindEvents)(this,this.div,["dragover","drop"]);for(let t of ce(this,d).getEditors(this.pageIndex))this.add(t);this.updateMode()}update({viewport:e}){ce(this,d).commitOrRemove(),this.viewport=e,(0,E.setLayerDimensions)(this.div,{rotation:e.rotation}),this.updateMode()}get pageDimensions(){let{pageWidth:e,pageHeight:t}=this.viewport.rawDims;return[e,t]}},C=A;i=new WeakMap,r=new WeakMap,a=new WeakMap,s=new WeakMap,o=new WeakMap,l=new WeakMap,h=new WeakMap,c=new WeakMap,u=new WeakMap,d=new WeakMap,p=new WeakSet,f=function(e){var t;e.parent!==this&&(e.annotationElementId&&(ce(this,d).addDeletedAnnotationElement(e.annotationElementId),w.AnnotationEditor.deleteAnnotationElement(e),e.annotationElementId=null),this.attach(e),null==(t=e.parent)||t.detach(e),e.setParent(this),e.div&&e.isAttachedToDOM&&(e.div.remove(),this.div.append(e.div)))},m=new WeakSet,g=function(e){switch(ce(this,d).getMode()){case _.AnnotationEditorType.FREETEXT:return new M.FreeTextEditor(e);case _.AnnotationEditorType.INK:return new T.InkEditor(e)}return null},v=new WeakSet,y=function(e){let t=this.getNextId(),n=dt(this,m,g).call(this,{parent:this,id:t,x:e.offsetX,y:e.offsetY,uiManager:ce(this,d)});return n&&this.add(n),n},x=new WeakSet,b=function(){St(this,c,!0);for(let e of ce(this,l).values())e.isEmpty()&&e.remove();St(this,c,!1)},Xi(C,"_initialized",!1),t.AnnotationEditorLayer=C},(e,t,n)=>{var i,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b,_,w,S,M,T;Object.defineProperty(t,"__esModule",{value:!0}),t.FreeTextEditor=void 0;var E=n(1),A=n(5),C=n(4),P=n(29);let R=class extends C.AnnotationEditor{constructor(e){super(Ri(Tr({},e),{name:"freeTextEditor"})),Je(this,d),Je(this,f),Je(this,g),Je(this,y),Je(this,b),Je(this,w),Je(this,M),Je(this,i,this.editorDivBlur.bind(this)),Je(this,r,this.editorDivFocus.bind(this)),Je(this,a,this.editorDivInput.bind(this)),Je(this,s,this.editorDivKeydown.bind(this)),Je(this,o,void 0),Je(this,l,""),Je(this,h,`${this.id}-editor`),Je(this,c,void 0),Je(this,u,null),St(this,o,e.color||R._defaultColor||C.AnnotationEditor._defaultLineColor),St(this,c,e.fontSize||R._defaultFontSize)}static get _keyboardManager(){return(0,E.shadow)(this,"_keyboardManager",new A.KeyboardManager([[["ctrl+s","mac+meta+s","ctrl+p","mac+meta+p"],R.prototype.commitOrRemove,!0],[["ctrl+Enter","mac+meta+Enter","Escape","mac+Escape"],R.prototype.commitOrRemove]]))}static initialize(e){this._l10nPromise=new Map(["free_text2_default_content","editor_free_text2_aria_label"].map((t=>[t,e.get(t)])));let t=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(t.getPropertyValue("--freetext-padding"))}static updateDefaultParams(e,t){switch(e){case E.AnnotationEditorParamsType.FREETEXT_SIZE:R._defaultFontSize=t;break;case E.AnnotationEditorParamsType.FREETEXT_COLOR:R._defaultColor=t}}updateParams(e,t){switch(e){case E.AnnotationEditorParamsType.FREETEXT_SIZE:dt(this,d,p).call(this,t);break;case E.AnnotationEditorParamsType.FREETEXT_COLOR:dt(this,f,m).call(this,t)}}static get defaultPropertiesToUpdate(){return[[E.AnnotationEditorParamsType.FREETEXT_SIZE,R._defaultFontSize],[E.AnnotationEditorParamsType.FREETEXT_COLOR,R._defaultColor||C.AnnotationEditor._defaultLineColor]]}get propertiesToUpdate(){return[[E.AnnotationEditorParamsType.FREETEXT_SIZE,ce(this,c)],[E.AnnotationEditorParamsType.FREETEXT_COLOR,ce(this,o)]]}getInitialTranslation(){let e=this.parentScale;return[-R._internalPadding*e,-(R._internalPadding+ce(this,c))*e]}rebuild(){super.rebuild(),null!==this.div&&(this.isAttachedToDOM||this.parent.add(this))}enableEditMode(){this.isInEditMode()||(this.parent.setEditingState(!1),this.parent.updateToolbar(E.AnnotationEditorType.FREETEXT),super.enableEditMode(),this.overlayDiv.classList.remove("enabled"),this.editorDiv.contentEditable=!0,this.div.draggable=!1,this.div.removeAttribute("aria-activedescendant"),this.editorDiv.addEventListener("keydown",ce(this,s)),this.editorDiv.addEventListener("focus",ce(this,r)),this.editorDiv.addEventListener("blur",ce(this,i)),this.editorDiv.addEventListener("input",ce(this,a)))}disableEditMode(){this.isInEditMode()&&(this.parent.setEditingState(!0),super.disableEditMode(),this.overlayDiv.classList.add("enabled"),this.editorDiv.contentEditable=!1,this.div.setAttribute("aria-activedescendant",ce(this,h)),this.div.draggable=!0,this.editorDiv.removeEventListener("keydown",ce(this,s)),this.editorDiv.removeEventListener("focus",ce(this,r)),this.editorDiv.removeEventListener("blur",ce(this,i)),this.editorDiv.removeEventListener("input",ce(this,a)),this.div.focus({preventScroll:!0}),this.isEditing=!1,this.parent.div.classList.add("freeTextEditing"))}focusin(e){super.focusin(e),e.target!==this.editorDiv&&this.editorDiv.focus()}onceAdded(){this.width?dt(this,M,T).call(this):(this.enableEditMode(),this.editorDiv.focus())}isEmpty(){return!this.editorDiv||""===this.editorDiv.innerText.trim()}remove(){this.isEditing=!1,this.parent.setEditingState(!0),this.parent.div.classList.add("freeTextEditing"),super.remove()}commit(){if(!this.isInEditMode())return;super.commit(),this.disableEditMode();let e=ce(this,l),t=St(this,l,dt(this,g,v).call(this).trimEnd());if(e===t)return;let n=e=>{St(this,l,e),e?(dt(this,b,_).call(this),this.rebuild(),dt(this,y,x).call(this)):this.remove()};this.addCommands({cmd:()=>{n(t)},undo:()=>{n(e)},mustExec:!1}),dt(this,y,x).call(this)}shouldGetKeyboardEvents(){return this.isInEditMode()}dblclick(e){this.enableEditMode(),this.editorDiv.focus()}keydown(e){e.target===this.div&&"Enter"===e.key&&(this.enableEditMode(),this.editorDiv.focus())}editorDivKeydown(e){R._keyboardManager.exec(this,e)}editorDivFocus(e){this.isEditing=!0}editorDivBlur(e){this.isEditing=!1}editorDivInput(e){this.parent.div.classList.toggle("freeTextEditing",this.isEmpty())}disableEditing(){this.editorDiv.setAttribute("role","comment"),this.editorDiv.removeAttribute("aria-multiline")}enableEditing(){this.editorDiv.setAttribute("role","textbox"),this.editorDiv.setAttribute("aria-multiline",!0)}render(){if(this.div)return this.div;let e,t;this.width&&(e=this.x,t=this.y),super.render(),this.editorDiv=document.createElement("div"),this.editorDiv.className="internal",this.editorDiv.setAttribute("id",ce(this,h)),this.enableEditing(),R._l10nPromise.get("editor_free_text2_aria_label").then((e=>{var t;return null==(t=this.editorDiv)?void 0:t.setAttribute("aria-label",e)})),R._l10nPromise.get("free_text2_default_content").then((e=>{var t;return null==(t=this.editorDiv)?void 0:t.setAttribute("default-content",e)})),this.editorDiv.contentEditable=!0;let{style:n}=this.editorDiv;if(n.fontSize=`calc(${ce(this,c)}px * var(--scale-factor))`,n.color=ce(this,o),this.div.append(this.editorDiv),this.overlayDiv=document.createElement("div"),this.overlayDiv.classList.add("overlay","enabled"),this.div.append(this.overlayDiv),(0,A.bindEvents)(this,this.div,["dblclick","keydown"]),this.width){let[n,i]=this.parentDimensions;if(this.annotationElementId){let[r]=this.getInitialTranslation();this.setAt(e*n,t*i,r,r)}else this.setAt(e*n,t*i,this.width*n,this.height*i);dt(this,b,_).call(this),this.div.draggable=!0,this.editorDiv.contentEditable=!1}else this.div.draggable=!1,this.editorDiv.contentEditable=!0;return this.div}get contentDiv(){return this.editorDiv}static deserialize(e,t,n){let i=null;if(e instanceof P.FreeTextAnnotationElement){let{data:{defaultAppearanceData:{fontSize:t,fontColor:n},rect:r,rotation:a,id:s},textContent:o,parent:{page:{pageNumber:l}}}=e;if(!o||0===o.length)return null;i=e={annotationType:E.AnnotationEditorType.FREETEXT,color:Array.from(n),fontSize:t,value:o.join("\n"),pageIndex:l-1,rect:r,rotation:a,id:s,deleted:!1}}let r=super.deserialize(e,t,n);return St(r,c,e.fontSize),St(r,o,E.Util.makeHexColor(...e.color)),St(r,l,e.value),r.annotationElementId=e.id||null,St(r,u,i),r}serialize(e=!1){if(this.isEmpty())return null;if(this.deleted)return{pageIndex:this.pageIndex,id:this.annotationElementId,deleted:!0};let t=R._internalPadding*this.parentScale,n=this.getRect(t,t),i=C.AnnotationEditor._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:ce(this,o)),r={annotationType:E.AnnotationEditorType.FREETEXT,color:i,fontSize:ce(this,c),value:ce(this,l),pageIndex:this.pageIndex,rect:n,rotation:this.rotation};return e?r:this.annotationElementId&&!dt(this,w,S).call(this,r)?null:(r.id=this.annotationElementId,r)}},O=R;i=new WeakMap,r=new WeakMap,a=new WeakMap,s=new WeakMap,o=new WeakMap,l=new WeakMap,h=new WeakMap,c=new WeakMap,u=new WeakMap,d=new WeakSet,p=function(e){let t=e=>{this.editorDiv.style.fontSize=`calc(${e}px * var(--scale-factor))`,this.translate(0,-(e-ce(this,c))*this.parentScale),St(this,c,e),dt(this,y,x).call(this)},n=ce(this,c);this.addCommands({cmd:()=>{t(e)},undo:()=>{t(n)},mustExec:!0,type:E.AnnotationEditorParamsType.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})},f=new WeakSet,m=function(e){let t=ce(this,o);this.addCommands({cmd:()=>{St(this,o,this.editorDiv.style.color=e)},undo:()=>{St(this,o,this.editorDiv.style.color=t)},mustExec:!0,type:E.AnnotationEditorParamsType.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})},g=new WeakSet,v=function(){let e=this.editorDiv.getElementsByTagName("div");if(0===e.length)return this.editorDiv.innerText;let t=[];for(let n of e)t.push(n.innerText.replace(/\r\n?|\n/,""));return t.join("\n")},y=new WeakSet,x=function(){let e,[t,n]=this.parentDimensions;if(this.isAttachedToDOM)e=this.div.getBoundingClientRect();else{let{currentLayer:t,div:n}=this,i=n.style.display;n.style.display="hidden",t.div.append(this.div),e=n.getBoundingClientRect(),n.remove(),n.style.display=i}this.width=e.width/t,this.height=e.height/n},b=new WeakSet,_=function(){if(this.editorDiv.replaceChildren(),ce(this,l))for(let e of ce(this,l).split("\n")){let t=document.createElement("div");t.append(e?document.createTextNode(e):document.createElement("br")),this.editorDiv.append(t)}},w=new WeakSet,S=function(e){let{value:t,fontSize:n,color:i,rect:r,pageIndex:a}=ce(this,u);return e.value!==t||e.fontSize!==n||e.rect.some(((e,t)=>Math.abs(e-r[t])>=1))||e.color.some(((e,t)=>e!==i[t]))||e.pageIndex!==a},M=new WeakSet,T=function(e=!1){if(!this.annotationElementId)return;if(dt(this,y,x).call(this),!e&&(0===this.width||0===this.height))return void setTimeout((()=>dt(this,M,T).call(this,!0)),0);let t=R._internalPadding*this.parentScale;ce(this,u).rect=this.getRect(t,t)},Xi(O,"_freeTextDefaultContent",""),Xi(O,"_l10nPromise"),Xi(O,"_internalPadding",0),Xi(O,"_defaultColor",null),Xi(O,"_defaultFontSize",10),Xi(O,"_type","freetext"),t.FreeTextEditor=O},(e,t,n)=>{var i,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b,_,w,S,M,T,E,A,C,P,R,O,L,I,D,k,N,F,U,B,z,H;Object.defineProperty(t,"__esModule",{value:!0}),t.InkAnnotationElement=t.FreeTextAnnotationElement=t.AnnotationLayer=void 0;var V=n(1),j=n(6),G=n(3),W=n(30),X=n(31);let Y=1e3,q=new WeakSet;function J(e){return{width:e[2]-e[0],height:e[3]-e[1]}}class Z{static create(e){switch(e.data.annotationType){case V.AnnotationType.LINK:return new $(e);case V.AnnotationType.TEXT:return new Q(e);case V.AnnotationType.WIDGET:switch(e.data.fieldType){case"Tx":return new te(e);case"Btn":return e.data.radioButton?new re(e):e.data.checkBox?new ie(e):new ae(e);case"Ch":return new se(e);case"Sig":return new ne(e)}return new ee(e);case V.AnnotationType.POPUP:return new oe(e);case V.AnnotationType.FREETEXT:return new he(e);case V.AnnotationType.LINE:return new ue(e);case V.AnnotationType.SQUARE:return new de(e);case V.AnnotationType.CIRCLE:return new pe(e);case V.AnnotationType.POLYLINE:return new fe(e);case V.AnnotationType.CARET:return new ge(e);case V.AnnotationType.INK:return new ve(e);case V.AnnotationType.POLYGON:return new me(e);case V.AnnotationType.HIGHLIGHT:return new ye(e);case V.AnnotationType.UNDERLINE:return new xe(e);case V.AnnotationType.SQUIGGLY:return new be(e);case V.AnnotationType.STRIKEOUT:return new _e(e);case V.AnnotationType.STAMP:return new we(e);case V.AnnotationType.FILEATTACHMENT:return new Se(e);default:return new K(e)}}}class K{constructor(e,{isRenderable:t=!1,ignoreBorder:n=!1,createQuadrilaterals:i=!1}={}){this.isRenderable=t,this.data=e.data,this.layer=e.layer,this.linkService=e.linkService,this.downloadManager=e.downloadManager,this.imageResourcesPath=e.imageResourcesPath,this.renderForms=e.renderForms,this.svgFactory=e.svgFactory,this.annotationStorage=e.annotationStorage,this.enableScripting=e.enableScripting,this.hasJSActions=e.hasJSActions,this._fieldObjects=e.fieldObjects,this.parent=e.parent,t&&(this.container=this._createContainer(n)),i&&(this.quadrilaterals=this._createQuadrilaterals(n))}_createContainer(e){let{data:t,parent:{page:n,viewport:i}}=this,r=document.createElement("section");r.setAttribute("data-annotation-id",t.id),r.style.zIndex=this.parent.zIndex++,this.data.popupRef&&r.setAttribute("aria-haspopup","dialog"),t.noRotate&&r.classList.add("norotate");let{pageWidth:a,pageHeight:s,pageX:o,pageY:l}=i.rawDims;if(!t.rect||this instanceof oe){let{rotation:e}=t;return!t.hasOwnCanvas&&0!==e&&this.setRotation(e,r),r}let{width:h,height:c}=J(t.rect),u=V.Util.normalizeRect([t.rect[0],n.view[3]-t.rect[1]+n.view[1],t.rect[2],n.view[3]-t.rect[3]+n.view[1]]);if(!e&&t.borderStyle.width>0){r.style.borderWidth=`${t.borderStyle.width}px`;let e=t.borderStyle.horizontalCornerRadius,n=t.borderStyle.verticalCornerRadius;if(e>0||n>0){let t=`calc(${e}px * var(--scale-factor)) / calc(${n}px * var(--scale-factor))`;r.style.borderRadius=t}else if(this instanceof re){let e=`calc(${h}px * var(--scale-factor)) / calc(${c}px * var(--scale-factor))`;r.style.borderRadius=e}switch(t.borderStyle.style){case V.AnnotationBorderStyleType.SOLID:r.style.borderStyle="solid";break;case V.AnnotationBorderStyleType.DASHED:r.style.borderStyle="dashed";break;case V.AnnotationBorderStyleType.BEVELED:(0,V.warn)("Unimplemented border style: beveled");break;case V.AnnotationBorderStyleType.INSET:(0,V.warn)("Unimplemented border style: inset");break;case V.AnnotationBorderStyleType.UNDERLINE:r.style.borderBottomStyle="solid"}let i=t.borderColor||null;i?r.style.borderColor=V.Util.makeHexColor(0|i[0],0|i[1],0|i[2]):r.style.borderWidth=0}r.style.left=100*(u[0]-o)/a+"%",r.style.top=100*(u[1]-l)/s+"%";let{rotation:d}=t;return t.hasOwnCanvas||0===d?(r.style.width=100*h/a+"%",r.style.height=100*c/s+"%"):this.setRotation(d,r),r}setRotation(e,t=this.container){let n,i,{pageWidth:r,pageHeight:a}=this.parent.viewport.rawDims,{width:s,height:o}=J(this.data.rect);e%180==0?(n=100*s/r,i=100*o/a):(n=100*o/r,i=100*s/a),t.style.width=`${n}%`,t.style.height=`${i}%`,t.setAttribute("data-main-rotation",(360-e)%360)}get _commonActions(){let e=(e,t,n)=>{let i=n.detail[e];n.target.style[t]=W.ColorConverters[`${i[0]}_HTML`](i.slice(1))};return(0,V.shadow)(this,"_commonActions",{display:e=>{let t=e.detail.display%2==1;this.container.style.visibility=t?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{hidden:t,print:0===e.detail.display||3===e.detail.display})},print:e=>{this.annotationStorage.setValue(this.data.id,{print:e.detail.print})},hidden:e=>{this.container.style.visibility=e.detail.hidden?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{hidden:e.detail.hidden})},focus:e=>{setTimeout((()=>e.target.focus({preventScroll:!1})),0)},userName:e=>{e.target.title=e.detail.userName},readonly:e=>{e.detail.readonly?e.target.setAttribute("readonly",""):e.target.removeAttribute("readonly")},required:e=>{this._setRequired(e.target,e.detail.required)},bgColor:t=>{e("bgColor","backgroundColor",t)},fillColor:t=>{e("fillColor","backgroundColor",t)},fgColor:t=>{e("fgColor","color",t)},textColor:t=>{e("textColor","color",t)},borderColor:t=>{e("borderColor","borderColor",t)},strokeColor:t=>{e("strokeColor","borderColor",t)},rotation:e=>{let t=e.detail.rotation;this.setRotation(t),this.annotationStorage.setValue(this.data.id,{rotation:t})}})}_dispatchEventFromSandbox(e,t){let n=this._commonActions;for(let i of Object.keys(t.detail)){let r=e[i]||n[i];null==r||r(t)}}_setDefaultPropertiesFromJS(e){if(!this.enableScripting)return;let t=this.annotationStorage.getRawValue(this.data.id);if(!t)return;let n=this._commonActions;for(let[i,r]of Object.entries(t)){let a=n[i];a&&(a({detail:{[i]:r},target:e}),delete t[i])}}_createQuadrilaterals(e=!1){if(!this.data.quadPoints)return null;let t=[],n=this.data.rect,i=null;for(let r of this.data.quadPoints)this.data.rect=[r[2].x,r[2].y,r[1].x,r[1].y],t.push(this._createContainer(e)),i||(i=this.data.rect);return this.data.rect=n,this.firstQuadRect=i,t}_createPopup(){let{container:e,data:t}=this;e.setAttribute("aria-haspopup","dialog");let n=new oe({data:{color:t.color,titleObj:t.titleObj,modificationDate:t.modificationDate,contentsObj:t.contentsObj,richText:t.richText,parentRect:this.firstQuadRect||t.rect,borderStyle:0,id:`popup_${t.id}`,rotation:t.rotation},parent:this.parent,elements:[this]});this.parent.div.append(n.render())}_renderQuadrilaterals(e){for(let t of this.quadrilaterals)t.classList.add(e);return this.quadrilaterals}render(){(0,V.unreachable)("Abstract method `AnnotationElement.render` called")}_getElementsByName(e,t=null){let n=[];if(this._fieldObjects){let i=this._fieldObjects[e];if(i)for(let{page:e,id:r,exportValues:a}of i){if(-1===e||r===t)continue;let i="string"==typeof a?a:null,s=document.querySelector(`[data-element-id="${r}"]`);!s||q.has(s)?n.push({id:r,exportValue:i,domElement:s}):(0,V.warn)(`_getElementsByName - element not allowed: ${r}`)}return n}for(let i of document.getElementsByName(e)){let{exportValue:e}=i,r=i.getAttribute("data-element-id");r!==t&&q.has(i)&&n.push({id:r,exportValue:e,domElement:i})}return n}show(){var e;this.container&&(this.container.hidden=!1),null==(e=this.popup)||e.maybeShow()}hide(){var e;this.container&&(this.container.hidden=!0),null==(e=this.popup)||e.forceHide()}getElementsToTriggerPopup(){return this.quadrilaterals||this.container}addHighlightArea(){let e=this.getElementsToTriggerPopup();if(Array.isArray(e))for(let t of e)t.classList.add("highlightArea");else e.classList.add("highlightArea")}}class $ extends K{constructor(e,t=null){super(e,{isRenderable:!0,ignoreBorder:!(null==t||!t.ignoreBorder),createQuadrilaterals:!0}),Je(this,i),Je(this,a),this.isTooltipOnly=e.data.isTooltipOnly}render(){let{data:e,linkService:t}=this,n=document.createElement("a");n.setAttribute("data-element-id",e.id);let i=!1;return e.url?(t.addLinkAttributes(n,e.url,e.newWindow),i=!0):e.action?(this._bindNamedAction(n,e.action),i=!0):e.attachment?(this._bindAttachment(n,e.attachment),i=!0):e.setOCGState?(dt(this,a,s).call(this,n,e.setOCGState),i=!0):e.dest?(this._bindLink(n,e.dest),i=!0):(e.actions&&(e.actions.Action||e.actions["Mouse Up"]||e.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions&&(this._bindJSAction(n,e),i=!0),e.resetForm?(this._bindResetFormAction(n,e.resetForm),i=!0):this.isTooltipOnly&&!i&&(this._bindLink(n,""),i=!0)),this.quadrilaterals?this._renderQuadrilaterals("linkAnnotation").map(((e,t)=>{let i=0===t?n:n.cloneNode();return e.append(i),e})):(this.container.classList.add("linkAnnotation"),i&&this.container.append(n),this.container)}_bindLink(e,t){e.href=this.linkService.getDestinationHash(t),e.onclick=()=>(t&&this.linkService.goToDestination(t),!1),(t||""===t)&&dt(this,i,r).call(this)}_bindNamedAction(e,t){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>(this.linkService.executeNamedAction(t),!1),dt(this,i,r).call(this)}_bindAttachment(e,t){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>{var e;return null==(e=this.downloadManager)||e.openOrDownloadData(this.container,t.content,t.filename),!1},dt(this,i,r).call(this)}_bindJSAction(e,t){e.href=this.linkService.getAnchorUrl("");let n=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(let i of Object.keys(t.actions)){let r=n.get(i);r&&(e[r]=()=>{var e;return null==(e=this.linkService.eventBus)||e.dispatch("dispatcheventinsandbox",{source:this,detail:{id:t.id,name:i}}),!1})}e.onclick||(e.onclick=()=>!1),dt(this,i,r).call(this)}_bindResetFormAction(e,t){let n=e.onclick;if(n||(e.href=this.linkService.getAnchorUrl("")),dt(this,i,r).call(this),!this._fieldObjects)return(0,V.warn)('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.'),void(n||(e.onclick=()=>!1));e.onclick=()=>{var e;null==n||n();let{fields:i,refs:r,include:a}=t,s=[];if(0!==i.length||0!==r.length){let e=new Set(r);for(let t of i){let n=this._fieldObjects[t]||[];for(let{id:t}of n)e.add(t)}for(let t of Object.values(this._fieldObjects))for(let n of t)e.has(n.id)===a&&s.push(n)}else for(let t of Object.values(this._fieldObjects))s.push(...t);let o=this.annotationStorage,l=[];for(let t of s){let{id:e}=t;switch(l.push(e),t.type){case"text":{let n=t.defaultValue||"";o.setValue(e,{value:n});break}case"checkbox":case"radiobutton":{let n=t.defaultValue===t.exportValues;o.setValue(e,{value:n});break}case"combobox":case"listbox":{let n=t.defaultValue||"";o.setValue(e,{value:n});break}default:continue}let n=document.querySelector(`[data-element-id="${e}"]`);n&&(q.has(n)?n.dispatchEvent(new Event("resetform")):(0,V.warn)(`_bindResetFormAction - element not allowed: ${e}`))}return this.enableScripting&&(null==(e=this.linkService.eventBus)||e.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:l,name:"ResetForm"}})),!1}}}i=new WeakSet,r=function(){this.container.setAttribute("data-internal-link","")},a=new WeakSet,s=function(e,t){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>(this.linkService.executeSetOCGState(t),!1),dt(this,i,r).call(this)};class Q extends K{constructor(e){var t,n,i;super(e,{isRenderable:!!(e.data.popupRef||null!=(t=e.data.titleObj)&&t.str||null!=(n=e.data.contentsObj)&&n.str||null!=(i=e.data.richText)&&i.str)})}render(){this.container.classList.add("textAnnotation");let e=document.createElement("img");return e.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg",e.alt="[{{type}} Annotation]",e.dataset.l10nId="text_annotation_type",e.dataset.l10nArgs=JSON.stringify({type:this.data.name}),this.data.popupRef||this._createPopup(),this.container.append(e),this.container}}class ee extends K{render(){return this.data.alternativeText&&(this.container.title=this.data.alternativeText),this.container}showElementAndHideCanvas(e){var t;this.data.hasOwnCanvas&&("CANVAS"===(null==(t=e.previousSibling)?void 0:t.nodeName)&&(e.previousSibling.hidden=!0),e.hidden=!1)}_getKeyModifier(e){let{isWin:t,isMac:n}=V.FeatureTest.platform;return t&&e.ctrlKey||n&&e.metaKey}_setEventListener(e,t,n,i){t.includes("mouse")?e.addEventListener(t,(e=>{var t;null==(t=this.linkService.eventBus)||t.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:n,value:i(e),shift:e.shiftKey,modifier:this._getKeyModifier(e)}})})):e.addEventListener(t,(e=>{var t;null==(t=this.linkService.eventBus)||t.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:n,value:i(e)}})}))}_setEventListeners(e,t,n){var i;for(let[r,a]of t)("Action"===a||null!=(i=this.data.actions)&&i[a])&&this._setEventListener(e,r,a,n)}_setBackgroundColor(e){let t=this.data.backgroundColor||null;e.style.backgroundColor=null===t?"transparent":V.Util.makeHexColor(t[0],t[1],t[2])}_setTextStyle(e){let t,{fontColor:n}=this.data.defaultAppearanceData,i=this.data.defaultAppearanceData.fontSize||9,r=e.style,a=e=>Math.round(10*e)/10;if(this.data.multiLine){let e=Math.abs(this.data.rect[3]-this.data.rect[1]-2),n=e/(Math.round(e/(V.LINE_FACTOR*i))||1);t=Math.min(i,a(n/V.LINE_FACTOR))}else{let e=Math.abs(this.data.rect[3]-this.data.rect[1]-2);t=Math.min(i,a(e/V.LINE_FACTOR))}r.fontSize=`calc(${t}px * var(--scale-factor))`,r.color=V.Util.makeHexColor(n[0],n[1],n[2]),null!==this.data.textAlignment&&(r.textAlign=["left","center","right"][this.data.textAlignment])}_setRequired(e,t){t?e.setAttribute("required",!0):e.removeAttribute("required"),e.setAttribute("aria-required",t)}}class te extends ee{constructor(e){super(e,{isRenderable:e.renderForms||!e.data.hasAppearance&&!!e.data.fieldValue})}setPropertyOnSiblings(e,t,n,i){let r=this.annotationStorage;for(let a of this._getElementsByName(e.name,e.id))a.domElement&&(a.domElement[t]=n),r.setValue(a.id,{[i]:n})}render(){var e,t;let n=this.annotationStorage,i=this.data.id;this.container.classList.add("textWidgetAnnotation");let r=null;if(this.renderForms){let a=n.getValue(i,{value:this.data.fieldValue}),s=a.value||"",o=n.getValue(i,{charLimit:this.data.maxLen}).charLimit;o&&s.length>o&&(s=s.slice(0,o));let l=a.formattedValue||(null==(e=this.data.textContent)?void 0:e.join("\n"))||null;l&&this.data.comb&&(l=l.replaceAll(/\s+/g,""));let h={userValue:s,formattedValue:l,lastCommittedValue:null,commitKey:1};this.data.multiLine?(r=document.createElement("textarea"),r.textContent=null!=l?l:s,this.data.doNotScroll&&(r.style.overflowY="hidden")):(r=document.createElement("input"),r.type="text",r.setAttribute("value",null!=l?l:s),this.data.doNotScroll&&(r.style.overflowX="hidden")),this.data.hasOwnCanvas&&(r.hidden=!0),q.add(r),r.setAttribute("data-element-id",i),r.disabled=this.data.readOnly,r.name=this.data.baseFieldName||this.data.fieldName,r.tabIndex=Y,this._setRequired(r,this.data.required),o&&(r.maxLength=o),r.addEventListener("input",(e=>{n.setValue(i,{value:e.target.value}),this.setPropertyOnSiblings(r,"value",e.target.value,"value"),h.formattedValue=null})),r.addEventListener("resetform",(e=>{var t;let n=null!=(t=this.data.defaultFieldValue)?t:"";r.value=h.userValue=n,h.formattedValue=null}));let c=e=>{let{formattedValue:t}=h;null!=t&&(e.target.value=t),e.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){r.addEventListener("focus",(e=>{let{target:t}=e;h.userValue&&(t.value=h.userValue),h.lastCommittedValue=t.value,h.commitKey=1})),r.addEventListener("updatefromsandbox",(e=>{this.showElementAndHideCanvas(e.target);let t={value(e){var t;h.userValue=null!=(t=e.detail.value)?t:"",n.setValue(i,{value:h.userValue.toString()}),e.target.value=h.userValue},formattedValue(e){let{formattedValue:t}=e.detail;h.formattedValue=t,null!=t&&e.target!==document.activeElement&&(e.target.value=t),n.setValue(i,{formattedValue:t})},selRange(e){e.target.setSelectionRange(...e.detail.selRange)},charLimit:e=>{var t;let{charLimit:r}=e.detail,{target:a}=e;if(0===r)return void a.removeAttribute("maxLength");a.setAttribute("maxLength",r);let s=h.userValue;!s||s.length<=r||(s=s.slice(0,r),a.value=h.userValue=s,n.setValue(i,{value:s}),null==(t=this.linkService.eventBus)||t.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:s,willCommit:!0,commitKey:1,selStart:a.selectionStart,selEnd:a.selectionEnd}}))}};this._dispatchEventFromSandbox(t,e)})),r.addEventListener("keydown",(e=>{var t;h.commitKey=1;let n=-1;if("Escape"===e.key?n=0:"Enter"!==e.key||this.data.multiLine?"Tab"===e.key&&(h.commitKey=3):n=2,-1===n)return;let{value:r}=e.target;h.lastCommittedValue!==r&&(h.lastCommittedValue=r,h.userValue=r,null==(t=this.linkService.eventBus)||t.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:r,willCommit:!0,commitKey:n,selStart:e.target.selectionStart,selEnd:e.target.selectionEnd}}))}));let e=c;c=null,r.addEventListener("blur",(t=>{var n;if(!t.relatedTarget)return;let{value:r}=t.target;h.userValue=r,h.lastCommittedValue!==r&&(null==(n=this.linkService.eventBus)||n.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:r,willCommit:!0,commitKey:h.commitKey,selStart:t.target.selectionStart,selEnd:t.target.selectionEnd}})),e(t)})),null!=(t=this.data.actions)&&t.Keystroke&&r.addEventListener("beforeinput",(e=>{var t;h.lastCommittedValue=null;let{data:n,target:r}=e,{value:a,selectionStart:s,selectionEnd:o}=r,l=s,c=o;switch(e.inputType){case"deleteWordBackward":{let e=a.substring(0,s).match(/\w*[^\w]*$/);e&&(l-=e[0].length);break}case"deleteWordForward":{let e=a.substring(s).match(/^[^\w]*\w*/);e&&(c+=e[0].length);break}case"deleteContentBackward":s===o&&(l-=1);break;case"deleteContentForward":s===o&&(c+=1)}e.preventDefault(),null==(t=this.linkService.eventBus)||t.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:a,change:n||"",willCommit:!1,selStart:l,selEnd:c}})})),this._setEventListeners(r,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(e=>e.target.value))}if(c&&r.addEventListener("blur",c),this.data.comb){let e=(this.data.rect[2]-this.data.rect[0])/o;r.classList.add("comb"),r.style.letterSpacing=`calc(${e}px * var(--scale-factor) - 1ch)`}}else r=document.createElement("div"),r.textContent=this.data.fieldValue,r.style.verticalAlign="middle",r.style.display="table-cell";return this._setTextStyle(r),this._setBackgroundColor(r),this._setDefaultPropertiesFromJS(r),this.container.append(r),this.container}}class ne extends ee{constructor(e){super(e,{isRenderable:!!e.data.hasOwnCanvas})}}class ie extends ee{constructor(e){super(e,{isRenderable:e.renderForms})}render(){let e=this.annotationStorage,t=this.data,n=t.id,i=e.getValue(n,{value:t.exportValue===t.fieldValue}).value;"string"==typeof i&&(i="Off"!==i,e.setValue(n,{value:i})),this.container.classList.add("buttonWidgetAnnotation","checkBox");let r=document.createElement("input");return q.add(r),r.setAttribute("data-element-id",n),r.disabled=t.readOnly,this._setRequired(r,this.data.required),r.type="checkbox",r.name=t.baseFieldName||t.fieldName,i&&r.setAttribute("checked",!0),r.setAttribute("exportValue",t.exportValue),r.tabIndex=Y,r.addEventListener("change",(i=>{let{name:r,checked:a}=i.target;for(let s of this._getElementsByName(r,n)){let n=a&&s.exportValue===t.exportValue;s.domElement&&(s.domElement.checked=n),e.setValue(s.id,{value:n})}e.setValue(n,{value:a})})),r.addEventListener("resetform",(e=>{let n=t.defaultFieldValue||"Off";e.target.checked=n===t.exportValue})),this.enableScripting&&this.hasJSActions&&(r.addEventListener("updatefromsandbox",(t=>{let i={value(t){t.target.checked="Off"!==t.detail.value,e.setValue(n,{value:t.target.checked})}};this._dispatchEventFromSandbox(i,t)})),this._setEventListeners(r,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(e=>e.target.checked))),this._setBackgroundColor(r),this._setDefaultPropertiesFromJS(r),this.container.append(r),this.container}}class re extends ee{constructor(e){super(e,{isRenderable:e.renderForms})}render(){this.container.classList.add("buttonWidgetAnnotation","radioButton");let e=this.annotationStorage,t=this.data,n=t.id,i=e.getValue(n,{value:t.fieldValue===t.buttonValue}).value;"string"==typeof i&&(i=i!==t.buttonValue,e.setValue(n,{value:i}));let r=document.createElement("input");if(q.add(r),r.setAttribute("data-element-id",n),r.disabled=t.readOnly,this._setRequired(r,this.data.required),r.type="radio",r.name=t.baseFieldName||t.fieldName,i&&r.setAttribute("checked",!0),r.tabIndex=Y,r.addEventListener("change",(t=>{let{name:i,checked:r}=t.target;for(let a of this._getElementsByName(i,n))e.setValue(a.id,{value:!1});e.setValue(n,{value:r})})),r.addEventListener("resetform",(e=>{let n=t.defaultFieldValue;e.target.checked=null!=n&&n===t.buttonValue})),this.enableScripting&&this.hasJSActions){let i=t.buttonValue;r.addEventListener("updatefromsandbox",(t=>{let r={value:t=>{let r=i===t.detail.value;for(let i of this._getElementsByName(t.target.name)){let t=r&&i.id===n;i.domElement&&(i.domElement.checked=t),e.setValue(i.id,{value:t})}}};this._dispatchEventFromSandbox(r,t)})),this._setEventListeners(r,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(e=>e.target.checked))}return this._setBackgroundColor(r),this._setDefaultPropertiesFromJS(r),this.container.append(r),this.container}}class ae extends ${constructor(e){super(e,{ignoreBorder:e.data.hasAppearance})}render(){let e=super.render();e.classList.add("buttonWidgetAnnotation","pushButton"),this.data.alternativeText&&(e.title=this.data.alternativeText);let t=e.lastChild;return this.enableScripting&&this.hasJSActions&&t&&(this._setDefaultPropertiesFromJS(t),t.addEventListener("updatefromsandbox",(e=>{this._dispatchEventFromSandbox({},e)}))),e}}class se extends ee{constructor(e){super(e,{isRenderable:e.renderForms})}render(){this.container.classList.add("choiceWidgetAnnotation");let e=this.annotationStorage,t=this.data.id,n=e.getValue(t,{value:this.data.fieldValue}),i=document.createElement("select");q.add(i),i.setAttribute("data-element-id",t),i.disabled=this.data.readOnly,this._setRequired(i,this.data.required),i.name=this.data.baseFieldName||this.data.fieldName,i.tabIndex=Y;let r=this.data.combo&&this.data.options.length>0;this.data.combo||(i.size=this.data.options.length,this.data.multiSelect&&(i.multiple=!0)),i.addEventListener("resetform",(e=>{let t=this.data.defaultFieldValue;for(let n of i.options)n.selected=n.value===t}));for(let h of this.data.options){let e=document.createElement("option");e.textContent=h.displayValue,e.value=h.exportValue,n.value.includes(h.exportValue)&&(e.setAttribute("selected",!0),r=!1),i.append(e)}let a=null;if(r){let e=document.createElement("option");e.value=" ",e.setAttribute("hidden",!0),e.setAttribute("selected",!0),i.prepend(e),a=()=>{e.remove(),i.removeEventListener("input",a),a=null},i.addEventListener("input",a)}let s=e=>{let t=e?"value":"textContent",{options:n,multiple:r}=i;return r?Array.prototype.filter.call(n,(e=>e.selected)).map((e=>e[t])):-1===n.selectedIndex?null:n[n.selectedIndex][t]},o=s(!1),l=e=>{let t=e.target.options;return Array.prototype.map.call(t,(e=>({displayValue:e.textContent,exportValue:e.value})))};return this.enableScripting&&this.hasJSActions?(i.addEventListener("updatefromsandbox",(n=>{let r={value(n){null==a||a();let r=n.detail.value,l=new Set(Array.isArray(r)?r:[r]);for(let e of i.options)e.selected=l.has(e.value);e.setValue(t,{value:s(!0)}),o=s(!1)},multipleSelection(e){i.multiple=!0},remove(n){let r=i.options,a=n.detail.remove;r[a].selected=!1,i.remove(a),r.length>0&&-1===Array.prototype.findIndex.call(r,(e=>e.selected))&&(r[0].selected=!0),e.setValue(t,{value:s(!0),items:l(n)}),o=s(!1)},clear(n){for(;0!==i.length;)i.remove(0);e.setValue(t,{value:null,items:[]}),o=s(!1)},insert(n){let{index:r,displayValue:a,exportValue:h}=n.detail.insert,c=i.children[r],u=document.createElement("option");u.textContent=a,u.value=h,c?c.before(u):i.append(u),e.setValue(t,{value:s(!0),items:l(n)}),o=s(!1)},items(n){let{items:r}=n.detail;for(;0!==i.length;)i.remove(0);for(let e of r){let{displayValue:t,exportValue:n}=e,r=document.createElement("option");r.textContent=t,r.value=n,i.append(r)}i.options.length>0&&(i.options[0].selected=!0),e.setValue(t,{value:s(!0),items:l(n)}),o=s(!1)},indices(n){let i=new Set(n.detail.indices);for(let e of n.target.options)e.selected=i.has(e.index);e.setValue(t,{value:s(!0)}),o=s(!1)},editable(e){e.target.disabled=!e.detail.editable}};this._dispatchEventFromSandbox(r,n)})),i.addEventListener("input",(n=>{var i;let r=s(!0);e.setValue(t,{value:r}),n.preventDefault(),null==(i=this.linkService.eventBus)||i.dispatch("dispatcheventinsandbox",{source:this,detail:{id:t,name:"Keystroke",value:o,changeEx:r,willCommit:!1,commitKey:1,keyDown:!1}})})),this._setEventListeners(i,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"],["input","Validate"]],(e=>e.target.value))):i.addEventListener("input",(function(n){e.setValue(t,{value:s(!0)})})),this.data.combo&&this._setTextStyle(i),this._setBackgroundColor(i),this._setDefaultPropertiesFromJS(i),this.container.append(i),this.container}}class oe extends K{constructor(e){var t,n,i;let{data:r,elements:a}=e;super(e,{isRenderable:!!(null!=(t=r.titleObj)&&t.str||null!=(n=r.contentsObj)&&n.str||null!=(i=r.richText)&&i.str)}),this.elements=a}render(){this.container.classList.add("popupAnnotation");let e=new le({container:this.container,color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate,contentsObj:this.data.contentsObj,richText:this.data.richText,rect:this.data.rect,parentRect:this.data.parentRect||null,parent:this.parent,elements:this.elements,open:this.data.open}),t=[];for(let n of this.elements)n.popup=e,t.push(n.data.id),n.addHighlightArea();return this.container.setAttribute("aria-controls",t.join(",")),this.container}}class le{constructor({container:e,color:t,elements:n,titleObj:i,modificationDate:r,contentsObj:a,richText:s,parent:P,rect:R,parentRect:O,open:L}){Je(this,S),Je(this,T),Je(this,A),Je(this,o,null),Je(this,l,dt(this,A,C).bind(this)),Je(this,h,dt(this,T,E).bind(this)),Je(this,c,dt(this,S,M).bind(this)),Je(this,u,null),Je(this,d,null),Je(this,p,null),Je(this,f,null),Je(this,m,null),Je(this,g,null),Je(this,v,!1),Je(this,y,null),Je(this,x,null),Je(this,b,null),Je(this,_,null),Je(this,w,!1),St(this,d,e),St(this,_,i),St(this,p,a),St(this,b,s),St(this,m,P),St(this,u,t),St(this,x,R),St(this,g,O),St(this,f,n);let I=j.PDFDateString.toDateObject(r);I&&St(this,o,P.l10n.get("annotation_date_string",{date:I.toLocaleDateString(),time:I.toLocaleTimeString()})),this.trigger=n.flatMap((e=>e.getElementsToTriggerPopup()));for(let o of this.trigger)o.addEventListener("click",ce(this,c)),o.addEventListener("mouseenter",ce(this,h)),o.addEventListener("mouseleave",ce(this,l));ce(this,d).hidden=!0,L&&dt(this,S,M).call(this)}render(){if(ce(this,y))return;let{page:{view:e},viewport:{rawDims:{pageWidth:t,pageHeight:n,pageX:i,pageY:r}}}=ce(this,m),a=St(this,y,document.createElement("div"));if(a.className="popup",ce(this,u)){let e=a.style.outlineColor=V.Util.makeHexColor(...ce(this,u));CSS.supports("background-color","color-mix(in srgb, red 30%, white)")?a.style.backgroundColor=`color-mix(in srgb, ${e} 30%, white)`:a.style.backgroundColor=V.Util.makeHexColor(...ce(this,u).map((e=>Math.floor(.7*(255-e)+e))))}let s=document.createElement("span");s.className="header";let l=document.createElement("h1");if(s.append(l),({dir:l.dir,str:l.textContent}=ce(this,_)),a.append(s),ce(this,o)){let e=document.createElement("span");e.classList.add("popupDate"),ce(this,o).then((t=>{e.textContent=t})),s.append(e)}let h=ce(this,p),c=ce(this,b);if(null==c||!c.str||null!=h&&h.str&&h.str!==c.str){let e=this._formatContents(h);a.append(e)}else X.XfaLayer.render({xfaHtml:c.html,intent:"richText",div:a}),a.lastChild.classList.add("richText","popupContent");let v=!!ce(this,g),w=ce(this,v?g:x);for(let o of ce(this,f))if(!w||null!==V.Util.intersect(o.data.rect,w)){w=o.data.rect,v=!0;break}let S=V.Util.normalizeRect([w[0],e[3]-w[1]+e[1],w[2],e[3]-w[3]+e[1]]),M=v?w[2]-w[0]+5:0,T=S[0]+M,E=S[1],{style:A}=ce(this,d);A.left=100*(T-i)/t+"%",A.top=100*(E-r)/n+"%",ce(this,d).append(a)}_formatContents({str:e,dir:t}){let n=document.createElement("p");n.classList.add("popupContent"),n.dir=t;let i=e.split(/(?:\r\n?|\n)/);for(let r=0,a=i.length;r0&&ce(this,F).set(n.data.id,n);let a=n.render();if(e.hidden&&(a.style.visibility="hidden"),Array.isArray(a))for(let i of a)dt(this,U,B).call(this,i,e.id);else dt(this,U,B).call(this,a,e.id)}dt(this,z,H).call(this),yield this.l10n.translate(n)}))}update({viewport:e}){let t=this.div;this.viewport=e,(0,j.setLayerDimensions)(t,{rotation:e.rotation}),dt(this,z,H).call(this),t.hidden=!1}getEditableAnnotations(){return Array.from(ce(this,F).values())}getEditableAnnotation(e){return ce(this,F).get(e)}}},(e,t)=>{function n(e){return Math.floor(255*Math.max(0,Math.min(1,e))).toString(16).padStart(2,"0")}Object.defineProperty(t,"__esModule",{value:!0}),t.ColorConverters=void 0,t.ColorConverters=class{static CMYK_G([e,t,n,i]){return["G",1-Math.min(1,.3*e+.59*n+.11*t+i)]}static G_CMYK([e]){return["CMYK",0,0,0,1-e]}static G_RGB([e]){return["RGB",e,e,e]}static G_HTML([e]){let t=n(e);return`#${t}${t}${t}`}static RGB_G([e,t,n]){return["G",.3*e+.59*t+.11*n]}static RGB_HTML([e,t,i]){return`#${n(e)}${n(t)}${n(i)}`}static T_HTML(){return"#00000000"}static CMYK_RGB([e,t,n,i]){return["RGB",1-Math.min(1,e+i),1-Math.min(1,n+i),1-Math.min(1,t+i)]}static CMYK_HTML(e){let t=this.CMYK_RGB(e).slice(1);return this.RGB_HTML(t)}static RGB_CMYK([e,t,n]){let i=1-e,r=1-t,a=1-n;return["CMYK",i,r,a,Math.min(i,r,a)]}}},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.XfaLayer=void 0;var i=n(19);t.XfaLayer=class{static setupStorage(e,t,n,i,r){let a=i.getValue(t,{value:null});switch(n.name){case"textarea":if(null!==a.value&&(e.textContent=a.value),"print"===r)break;e.addEventListener("input",(e=>{i.setValue(t,{value:e.target.value})}));break;case"input":if("radio"===n.attributes.type||"checkbox"===n.attributes.type){if(a.value===n.attributes.xfaOn?e.setAttribute("checked",!0):a.value===n.attributes.xfaOff&&e.removeAttribute("checked"),"print"===r)break;e.addEventListener("change",(e=>{i.setValue(t,{value:e.target.checked?e.target.getAttribute("xfaOn"):e.target.getAttribute("xfaOff")})}))}else{if(null!==a.value&&e.setAttribute("value",a.value),"print"===r)break;e.addEventListener("input",(e=>{i.setValue(t,{value:e.target.value})}))}break;case"select":if(null!==a.value)for(let e of n.children)e.attributes.value===a.value&&(e.attributes.selected=!0);e.addEventListener("input",(e=>{let n=e.target.options,r=-1===n.selectedIndex?"":n[n.selectedIndex].value;i.setValue(t,{value:r})}))}}static setAttributes({html:e,element:t,storage:n=null,intent:i,linkService:r}){let{attributes:a}=t,s=e instanceof HTMLAnchorElement;"radio"===a.type&&(a.name=`${a.name}-${i}`);for(let[o,l]of Object.entries(a))if(null!=l)switch(o){case"class":l.length&&e.setAttribute(o,l.join(" "));break;case"dataId":break;case"id":e.setAttribute("data-element-id",l);break;case"style":Object.assign(e.style,l);break;case"textContent":e.textContent=l;break;default:(!s||"href"!==o&&"newWindow"!==o)&&e.setAttribute(o,l)}s&&r.addLinkAttributes(e,a.href,a.newWindow),n&&a.dataId&&this.setupStorage(e,a.dataId,t,n)}static render(e){var t;let n=e.annotationStorage,r=e.linkService,a=e.xfaHtml,s=e.intent||"display",o=document.createElement(a.name);a.attributes&&this.setAttributes({html:o,element:a,intent:s,linkService:r});let l=[[a,-1,o]],h=e.div;if(h.append(o),e.viewport){let t=`matrix(${e.viewport.transform.join(",")})`;h.style.transform=t}"richText"!==s&&h.setAttribute("class","xfaLayer xfaFont");let c=[];for(;l.length>0;){let[e,a,o]=l.at(-1);if(a+1===e.children.length){l.pop();continue}let h=e.children[++l.at(-1)[1]];if(null===h)continue;let u,{name:d}=h;if("#text"!==d){if(u=null!=(t=null==h?void 0:h.attributes)&&t.xmlns?document.createElementNS(h.attributes.xmlns,d):document.createElement(d),o.append(u),h.attributes&&this.setAttributes({html:u,element:h,storage:n,intent:s,linkService:r}),h.children&&h.children.length>0)l.push([h,-1,u]);else if(h.value){let e=document.createTextNode(h.value);i.XfaText.shouldBuildText(d)&&c.push(e),u.append(e)}}else{let e=document.createTextNode(h.value);c.push(e),o.append(e)}}for(let i of h.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))i.setAttribute("readOnly",!0);return{textDivs:c}}static update(e){let t=`matrix(${e.viewport.transform.join(",")})`;e.div.style.transform=t,e.div.hidden=!1}}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NullL10n=void 0,t.getL10nFallback=i;let n={of_pages:"of {{pagesCount}}",page_of_pages:"({{pageNumber}} of {{pagesCount}})",document_properties_kb:"{{size_kb}} KB ({{size_b}} bytes)",document_properties_mb:"{{size_mb}} MB ({{size_b}} bytes)",document_properties_date_string:"{{date}}, {{time}}",document_properties_page_size_unit_inches:"in",document_properties_page_size_unit_millimeters:"mm",document_properties_page_size_orientation_portrait:"portrait",document_properties_page_size_orientation_landscape:"landscape",document_properties_page_size_name_a3:"A3",document_properties_page_size_name_a4:"A4",document_properties_page_size_name_letter:"Letter",document_properties_page_size_name_legal:"Legal",document_properties_page_size_dimension_string:"{{width}} \xd7 {{height}} {{unit}} ({{orientation}})",document_properties_page_size_dimension_name_string:"{{width}} \xd7 {{height}} {{unit}} ({{name}}, {{orientation}})",document_properties_linearized_yes:"Yes",document_properties_linearized_no:"No",additional_layers:"Additional Layers",page_landmark:"Page {{page}}",thumb_page_title:"Page {{page}}",thumb_page_canvas:"Thumbnail of Page {{page}}",find_reached_top:"Reached top of document, continued from bottom",find_reached_bottom:"Reached end of document, continued from top","find_match_count[one]":"{{current}} of {{total}} match","find_match_count[other]":"{{current}} of {{total}} matches","find_match_count_limit[one]":"More than {{limit}} match","find_match_count_limit[other]":"More than {{limit}} matches",find_not_found:"Phrase not found",page_scale_width:"Page Width",page_scale_fit:"Page Fit",page_scale_auto:"Automatic Zoom",page_scale_actual:"Actual Size",page_scale_percent:"{{scale}}%",loading_error:"An error occurred while loading the PDF.",invalid_file_error:"Invalid or corrupted PDF file.",missing_file_error:"Missing PDF file.",unexpected_response_error:"Unexpected server response.",rendering_error:"An error occurred while rendering the page.",annotation_date_string:"{{date}}, {{time}}",printing_not_supported:"Warning: Printing is not fully supported by this browser.",printing_not_ready:"Warning: The PDF is not fully loaded for printing.",web_fonts_disabled:"Web fonts are disabled: unable to use embedded PDF fonts.",free_text2_default_content:"Start typing\u2026",editor_free_text2_aria_label:"Text Editor",editor_ink2_aria_label:"Draw Editor",editor_ink_canvas_aria_label:"User-created image"};function i(e,t){switch(e){case"find_match_count":e=`find_match_count[${1===t.total?"one":"other"}]`;break;case"find_match_count_limit":e=`find_match_count_limit[${1===t.limit?"one":"other"}]`}return n[e]||""}n.print_progress_percent="{{progress}}%";let r={getLanguage(){return ft(this,null,(function*(){return"en-us"}))},getDirection(){return ft(this,null,(function*(){return"ltr"}))},get(e){return ft(this,arguments,(function*(e,t=null,n=i(e,t)){return function(e,t){return t?e.replaceAll(/\{\{\s*(\w+)\s*\}\}/g,((e,n)=>n in t?t[n]:"{{"+n+"}}")):e}(n,t)}))},translate(e){return ft(this,null,(function*(){}))}};t.NullL10n=r},(e,t,n)=>{var i,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b,_,w,S,M,T,E,A,C,P,R,O,L,I,D,k,N,F,U,B,z,H,V,j,G,W,X,Y,q,J,Z,K,$,Q,ee,te,ne,ie,re,ae,se,oe,le,he,ue,de,pe,fe,me,ge,ve,ye,xe;Object.defineProperty(t,"__esModule",{value:!0}),t.InkEditor=void 0;var be=n(1),_e=n(4),we=n(29),Se=n(5);let Me=16,Te=class extends _e.AnnotationEditor{constructor(e){super(Ri(Tr({},e),{name:"inkEditor"})),Je(this,x),Je(this,_),Je(this,S),Je(this,T),Je(this,A),Je(this,P),Je(this,O),Je(this,I),Je(this,k),Je(this,F),Je(this,B),Je(this,H),Je(this,j),Je(this,W),Je(this,Y),Je(this,J),Je(this,K),Je(this,Q),Je(this,te),Je(this,he),Je(this,de),Je(this,fe),Je(this,ge),Je(this,ye),Je(this,i,0),Je(this,r,0),Je(this,a,0),Je(this,s,this.canvasContextMenu.bind(this)),Je(this,o,this.canvasPointermove.bind(this)),Je(this,l,this.canvasPointerleave.bind(this)),Je(this,h,this.canvasPointerup.bind(this)),Je(this,c,this.canvasPointerdown.bind(this)),Je(this,u,new Path2D),Je(this,d,!1),Je(this,p,!1),Je(this,f,!1),Je(this,m,null),Je(this,g,0),Je(this,v,0),Je(this,y,null),this.color=e.color||null,this.thickness=e.thickness||null,this.opacity=e.opacity||null,this.paths=[],this.bezierPath2D=[],this.allRawPaths=[],this.currentPath=[],this.scaleFactor=1,this.translationX=this.translationY=0,this.x=0,this.y=0}static initialize(e){this._l10nPromise=new Map(["editor_ink_canvas_aria_label","editor_ink2_aria_label"].map((t=>[t,e.get(t)])))}static updateDefaultParams(e,t){switch(e){case be.AnnotationEditorParamsType.INK_THICKNESS:Te._defaultThickness=t;break;case be.AnnotationEditorParamsType.INK_COLOR:Te._defaultColor=t;break;case be.AnnotationEditorParamsType.INK_OPACITY:Te._defaultOpacity=t/100}}updateParams(e,t){switch(e){case be.AnnotationEditorParamsType.INK_THICKNESS:dt(this,x,b).call(this,t);break;case be.AnnotationEditorParamsType.INK_COLOR:dt(this,_,w).call(this,t);break;case be.AnnotationEditorParamsType.INK_OPACITY:dt(this,S,M).call(this,t)}}static get defaultPropertiesToUpdate(){return[[be.AnnotationEditorParamsType.INK_THICKNESS,Te._defaultThickness],[be.AnnotationEditorParamsType.INK_COLOR,Te._defaultColor||_e.AnnotationEditor._defaultLineColor],[be.AnnotationEditorParamsType.INK_OPACITY,Math.round(100*Te._defaultOpacity)]]}get propertiesToUpdate(){var e;return[[be.AnnotationEditorParamsType.INK_THICKNESS,this.thickness||Te._defaultThickness],[be.AnnotationEditorParamsType.INK_COLOR,this.color||Te._defaultColor||_e.AnnotationEditor._defaultLineColor],[be.AnnotationEditorParamsType.INK_OPACITY,Math.round(100*(null!=(e=this.opacity)?e:Te._defaultOpacity))]]}rebuild(){super.rebuild(),null!==this.div&&(this.canvas||(dt(this,Y,q).call(this),dt(this,J,Z).call(this)),this.isAttachedToDOM||(this.parent.add(this),dt(this,K,$).call(this)),dt(this,ge,ve).call(this))}remove(){null!==this.canvas&&(this.isEmpty()||this.commit(),this.canvas.width=this.canvas.height=0,this.canvas.remove(),this.canvas=null,ce(this,m).disconnect(),St(this,m,null),super.remove())}setParent(e){!this.parent&&e?this._uiManager.removeShouldRescale(this):this.parent&&null===e&&this._uiManager.addShouldRescale(this),super.setParent(e)}onScaleChanging(){let[e,t]=this.parentDimensions,n=this.width*e,i=this.height*t;this.setDimensions(n,i)}enableEditMode(){ce(this,d)||null===this.canvas||(super.enableEditMode(),this.div.draggable=!1,this.canvas.addEventListener("pointerdown",ce(this,c)))}disableEditMode(){!this.isInEditMode()||null===this.canvas||(super.disableEditMode(),this.div.draggable=!this.isEmpty(),this.div.classList.remove("editing"),this.canvas.removeEventListener("pointerdown",ce(this,c)))}onceAdded(){this.div.draggable=!this.isEmpty()}isEmpty(){return 0===this.paths.length||1===this.paths.length&&0===this.paths[0].length}commit(){ce(this,d)||(super.commit(),this.isEditing=!1,this.disableEditMode(),this.setInForeground(),St(this,d,!0),this.div.classList.add("disabled"),dt(this,ge,ve).call(this,!0),this.parent.addInkEditorIfNeeded(!0),this.parent.moveEditorInDOM(this),this.div.focus({preventScroll:!0}))}focusin(e){super.focusin(e),this.enableEditMode()}canvasPointerdown(e){0!==e.button||!this.isInEditMode()||ce(this,d)||(this.setInForeground(),e.preventDefault(),"mouse"!==e.type&&this.div.focus(),dt(this,P,R).call(this,e.offsetX,e.offsetY))}canvasContextMenu(e){e.preventDefault()}canvasPointermove(e){e.preventDefault(),dt(this,O,L).call(this,e.offsetX,e.offsetY)}canvasPointerup(e){e.preventDefault(),dt(this,W,X).call(this,e)}canvasPointerleave(e){dt(this,W,X).call(this,e)}render(){if(this.div)return this.div;let e,t;this.width&&(e=this.x,t=this.y),super.render(),Te._l10nPromise.get("editor_ink2_aria_label").then((e=>{var t;return null==(t=this.div)?void 0:t.setAttribute("aria-label",e)}));let[n,i,r,a]=dt(this,T,E).call(this);if(this.setAt(n,i,0,0),this.setDims(r,a),dt(this,Y,q).call(this),this.width){let[n,i]=this.parentDimensions;this.setAt(e*n,t*i,this.width*n,this.height*i),St(this,f,!0),dt(this,K,$).call(this),this.setDims(this.width*n,this.height*i),dt(this,j,G).call(this),dt(this,ye,xe).call(this),this.div.classList.add("disabled")}else this.div.classList.add("editing"),this.enableEditMode();return dt(this,J,Z).call(this),this.div}setDimensions(e,t){let n=Math.round(e),r=Math.round(t);if(ce(this,g)===n&&ce(this,v)===r)return;St(this,g,n),St(this,v,r),this.canvas.style.visibility="hidden",ce(this,i)&&Math.abs(ce(this,i)-e/t)>.01&&(t=Math.ceil(e/ce(this,i)),this.setDims(e,t));let[a,s]=this.parentDimensions;this.width=e/a,this.height=t/s,ce(this,d)&&dt(this,Q,ee).call(this,e,t),dt(this,K,$).call(this),dt(this,j,G).call(this),this.canvas.style.visibility="visible",this.fixDims()}static deserialize(e,t,n){var s,o,l;if(e instanceof we.InkAnnotationElement)return null;let h=super.deserialize(e,t,n);h.thickness=e.thickness,h.color=be.Util.makeHexColor(...e.color),h.opacity=e.opacity;let[c,u]=h.pageDimensions,p=h.width*c,f=h.height*u,m=h.parentScale,y=e.thickness/2;St(h,i,p/f),St(h,d,!0),St(h,g,Math.round(p)),St(h,v,Math.round(f));let{paths:x,rect:b,rotation:_}=e;for(let{bezier:i}of x){i=dt(s=Te,oe,le).call(s,i,b,_);let e=[];h.paths.push(e);let t=m*(i[0]-y),n=m*(i[1]-y);for(let a=2,s=i.length;a{this.thickness=e,dt(this,ge,ve).call(this)},undo:()=>{this.thickness=t,dt(this,ge,ve).call(this)},mustExec:!0,type:be.AnnotationEditorParamsType.INK_THICKNESS,overwriteIfSameType:!0,keepUndo:!0})},_=new WeakSet,w=function(e){let t=this.color;this.addCommands({cmd:()=>{this.color=e,dt(this,j,G).call(this)},undo:()=>{this.color=t,dt(this,j,G).call(this)},mustExec:!0,type:be.AnnotationEditorParamsType.INK_COLOR,overwriteIfSameType:!0,keepUndo:!0})},S=new WeakSet,M=function(e){e/=100;let t=this.opacity;this.addCommands({cmd:()=>{this.opacity=e,dt(this,j,G).call(this)},undo:()=>{this.opacity=t,dt(this,j,G).call(this)},mustExec:!0,type:be.AnnotationEditorParamsType.INK_OPACITY,overwriteIfSameType:!0,keepUndo:!0})},T=new WeakSet,E=function(){let{parentRotation:e,parentDimensions:[t,n]}=this;switch(e){case 90:return[0,n,n,t];case 180:return[t,n,t,n];case 270:return[t,0,n,t];default:return[0,0,t,n]}},A=new WeakSet,C=function(){let{ctx:e,color:t,opacity:n,thickness:i,parentScale:r,scaleFactor:a}=this;e.lineWidth=i*r/a,e.lineCap="round",e.lineJoin="round",e.miterLimit=10,e.strokeStyle=`${t}${(0,Se.opacityToHex)(n)}`},P=new WeakSet,R=function(e,t){this.canvas.addEventListener("contextmenu",ce(this,s)),this.canvas.addEventListener("pointerleave",ce(this,l)),this.canvas.addEventListener("pointermove",ce(this,o)),this.canvas.addEventListener("pointerup",ce(this,h)),this.canvas.removeEventListener("pointerdown",ce(this,c)),this.isEditing=!0,ce(this,f)||(St(this,f,!0),dt(this,K,$).call(this),this.thickness||(this.thickness=Te._defaultThickness),this.color||(this.color=Te._defaultColor||_e.AnnotationEditor._defaultLineColor),null!=this.opacity||(this.opacity=Te._defaultOpacity)),this.currentPath.push([e,t]),St(this,p,!1),dt(this,A,C).call(this),St(this,y,(()=>{dt(this,F,U).call(this),ce(this,y)&&window.requestAnimationFrame(ce(this,y))})),window.requestAnimationFrame(ce(this,y))},O=new WeakSet,L=function(e,t){let[n,i]=this.currentPath.at(-1);if(this.currentPath.length>1&&e===n&&t===i)return;let r=this.currentPath,a=ce(this,u);if(r.push([e,t]),St(this,p,!0),r.length<=2)return a.moveTo(...r[0]),void a.lineTo(e,t);3===r.length&&(St(this,u,a=new Path2D),a.moveTo(...r[0])),dt(this,B,z).call(this,a,...r.at(-3),...r.at(-2),e,t)},I=new WeakSet,D=function(){if(0===this.currentPath.length)return;let e=this.currentPath.at(-1);ce(this,u).lineTo(...e)},k=new WeakSet,N=function(e,t){let n;if(St(this,y,null),e=Math.min(Math.max(e,0),this.canvas.width),t=Math.min(Math.max(t,0),this.canvas.height),dt(this,O,L).call(this,e,t),dt(this,I,D).call(this),1!==this.currentPath.length)n=dt(this,H,V).call(this);else{let i=[e,t];n=[[i,i.slice(),i.slice(),i]]}let i=ce(this,u),r=this.currentPath;this.currentPath=[],St(this,u,new Path2D),this.addCommands({cmd:()=>{this.allRawPaths.push(r),this.paths.push(n),this.bezierPath2D.push(i),this.rebuild()},undo:()=>{this.allRawPaths.pop(),this.paths.pop(),this.bezierPath2D.pop(),0===this.paths.length?this.remove():(this.canvas||(dt(this,Y,q).call(this),dt(this,J,Z).call(this)),dt(this,ge,ve).call(this))},mustExec:!0})},F=new WeakSet,U=function(){if(!ce(this,p))return;St(this,p,!1),Math.ceil(this.thickness*this.parentScale);let e=this.currentPath.slice(-3),t=e.map((e=>e[0])),n=e.map((e=>e[1])),{ctx:i}=(Math.min(...t),Math.max(...t),Math.min(...n),Math.max(...n),this);i.save(),i.clearRect(0,0,this.canvas.width,this.canvas.height);for(let r of this.bezierPath2D)i.stroke(r);i.stroke(ce(this,u)),i.restore()},B=new WeakSet,z=function(e,t,n,i,r,a,s){let o=(t+i)/2,l=(n+r)/2,h=(i+a)/2,c=(r+s)/2;e.bezierCurveTo(o+2*(i-o)/3,l+2*(r-l)/3,h+2*(i-h)/3,c+2*(r-c)/3,h,c)},H=new WeakSet,V=function(){let e=this.currentPath;if(e.length<=2)return[[e[0],e[0],e.at(-1),e.at(-1)]];let t,n=[],[i,r]=e[0];for(t=1;t{this.canvas.removeEventListener("contextmenu",ce(this,s))}),10),dt(this,k,N).call(this,e.offsetX,e.offsetY),this.addToAnnotationStorage(),this.setInBackground()},Y=new WeakSet,q=function(){this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=0,this.canvas.className="inkEditorCanvas",Te._l10nPromise.get("editor_ink_canvas_aria_label").then((e=>{var t;return null==(t=this.canvas)?void 0:t.setAttribute("aria-label",e)})),this.div.append(this.canvas),this.ctx=this.canvas.getContext("2d")},J=new WeakSet,Z=function(){St(this,m,new ResizeObserver((e=>{let t=e[0].contentRect;t.width&&t.height&&this.setDimensions(t.width,t.height)}))),ce(this,m).observe(this.div)},K=new WeakSet,$=function(){if(!ce(this,f))return;let[e,t]=this.parentDimensions;this.canvas.width=Math.ceil(this.width*e),this.canvas.height=Math.ceil(this.height*t),dt(this,te,ne).call(this)},Q=new WeakSet,ee=function(e,t){let n=dt(this,fe,me).call(this),i=(e-n)/ce(this,a),s=(t-n)/ce(this,r);this.scaleFactor=Math.min(i,s)},te=new WeakSet,ne=function(){let e=dt(this,fe,me).call(this)/2;this.ctx.setTransform(this.scaleFactor,0,0,this.scaleFactor,this.translationX*this.scaleFactor+e,this.translationY*this.scaleFactor+e)},ie=new WeakSet,re=function(e){let t=new Path2D;for(let n=0,i=e.length;n=1?(e.minHeight="16px",e.minWidth=`${Math.round(ce(this,i)*Me)}px`):(e.minWidth="16px",e.minHeight=`${Math.round(Me/ce(this,i))}px`)},Je(Ee,ie),Je(Ee,ae),Je(Ee,oe),Xi(Ee,"_defaultColor",null),Xi(Ee,"_defaultOpacity",1),Xi(Ee,"_defaultThickness",1),Xi(Ee,"_l10nPromise"),Xi(Ee,"_type","ink"),t.InkEditor=Ee},(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SVGGraphics=void 0;var i=n(6),r=n(1),a=n(10);let s="normal",o="#000000",l=["butt","round","square"],h=["miter","round","bevel"],c=function(e,t="",n=!1){if(URL.createObjectURL&&"undefined"!=typeof Blob&&!n)return URL.createObjectURL(new Blob([e],{type:t}));let i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r=`data:${t};base64,`;for(let a=0,s=e.length;a>2]+i[(3&t)<<4|n>>4]+i[a+1>6:64]+i[a+2>1&2147483647:e>>1&2147483647;t[r]=e}function n(e,n,i,r){let a=r,s=n.length;i[a]=s>>24&255,i[a+1]=s>>16&255,i[a+2]=s>>8&255,i[a+3]=255&s,a+=4,i[a]=255&e.charCodeAt(0),i[a+1]=255&e.charCodeAt(1),i[a+2]=255&e.charCodeAt(2),i[a+3]=255&e.charCodeAt(3),a+=4,i.set(n,a),a+=n.length;let o=function(e,n,i){let r=-1;for(let a=n;a>>8^t[n]}return-1^r}(i,r+4,a);i[a]=o>>24&255,i[a+1]=o>>16&255,i[a+2]=o>>8&255,i[a+3]=255&o}function i(e){let t=e.length,n=65535,i=Math.ceil(t/n),r=new Uint8Array(2+t+5*i+4),a=0;r[a++]=120,r[a++]=156;let s=0;for(;t>n;)r[a++]=0,r[a++]=255,r[a++]=255,r[a++]=0,r[a++]=0,r.set(e.subarray(s,s+n),a),a+=n,s+=n,t-=n;r[a++]=1,r[a++]=255&t,r[a++]=t>>8&255,r[a++]=255&~t,r[a++]=(65535&~t)>>8&255,r.set(e.subarray(s),a),a+=e.length-s;let o=function(e,t,n){let i=1,r=0;for(let a=0;a>24&255,r[a++]=o>>16&255,r[a++]=o>>8&255,r[a++]=255&o,r}function s(t,s,o,l){let h,u,d,p=t.width,f=t.height,m=t.data;switch(s){case r.ImageKind.GRAYSCALE_1BPP:u=0,h=1,d=p+7>>3;break;case r.ImageKind.RGB_24BPP:u=2,h=8,d=3*p;break;case r.ImageKind.RGBA_32BPP:u=6,h=8,d=4*p;break;default:throw new Error("invalid format")}let g=new Uint8Array((1+d)*f),v=0,y=0;for(let e=0;e>24&255,p>>16&255,p>>8&255,255&p,f>>24&255,f>>16&255,f>>8&255,255&f,h,u,0,0,0]),b=function(e){if(!a.isNodeJS)return i(e);try{let t;t=parseInt(process.versions.node)>=8?e:Buffer.from(e);let n=zye().deflateSync(t,{level:9});return n instanceof Uint8Array?n:new Uint8Array(n)}catch(e){(0,r.warn)("Not compressing PNG because zlib.deflateSync is unavailable: "+e)}return i(e)}(g),_=e.length+36+x.length+b.length,w=new Uint8Array(_),S=0;return w.set(e,S),S+=e.length,n("IHDR",x,w,S),S+=12+x.length,n("IDATA",b,w,S),S+=12+b.length,n("IEND",new Uint8Array(0),w,S),c(w,"image/png",o)}return function(e,t,n){return s(e,void 0===e.kind?r.ImageKind.GRAYSCALE_1BPP:e.kind,t,n)}}();class d{constructor(){this.fontSizeScale=1,this.fontWeight=s,this.fontSize=0,this.textMatrix=r.IDENTITY_MATRIX,this.fontMatrix=r.FONT_IDENTITY_MATRIX,this.leading=0,this.textRenderingMode=r.TextRenderingMode.FILL,this.textMatrixScale=1,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRise=0,this.fillColor=o,this.strokeColor="#000000",this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.lineJoin="",this.lineCap="",this.miterLimit=0,this.dashArray=[],this.dashPhase=0,this.dependencies=[],this.activeClipUrl=null,this.clipGroup=null,this.maskId=""}clone(){return Object.create(this)}setCurrentPoint(e,t){this.x=e,this.y=t}}function p(e){if(Number.isInteger(e))return e.toString();let t=e.toFixed(10),n=t.length-1;if("0"!==t[n])return t;do{n--}while("0"===t[n]);return t.substring(0,"."===t[n]?n:n+1)}function f(e){if(0===e[4]&&0===e[5]){if(0===e[1]&&0===e[2])return 1===e[0]&&1===e[3]?"":`scale(${p(e[0])} ${p(e[3])})`;if(e[0]===e[3]&&e[1]===-e[2])return`rotate(${p(180*Math.acos(e[0])/Math.PI)})`}else if(1===e[0]&&0===e[1]&&0===e[2]&&1===e[3])return`translate(${p(e[4])} ${p(e[5])})`;return`matrix(${p(e[0])} ${p(e[1])} ${p(e[2])} ${p(e[3])} ${p(e[4])} ${p(e[5])})`}let m=0,g=0,v=0;t.SVGGraphics=class{constructor(e,t,n=!1){(0,i.deprecated)("The SVG back-end is no longer maintained and *may* be removed in the future."),this.svgFactory=new i.DOMSVGFactory,this.current=new d,this.transformMatrix=r.IDENTITY_MATRIX,this.transformStack=[],this.extraStack=[],this.commonObjs=e,this.objs=t,this.pendingClip=null,this.pendingEOFill=!1,this.embedFonts=!1,this.embeddedFonts=Object.create(null),this.cssStyle=null,this.forceDataSchema=!!n,this._operatorIdMapping=[];for(let i in r.OPS)this._operatorIdMapping[r.OPS[i]]=i}getObject(e,t=null){return"string"==typeof e?e.startsWith("g_")?this.commonObjs.get(e):this.objs.get(e):t}save(){this.transformStack.push(this.transformMatrix);let e=this.current;this.extraStack.push(e),this.current=e.clone()}restore(){this.transformMatrix=this.transformStack.pop(),this.current=this.extraStack.pop(),this.pendingClip=null,this.tgrp=null}group(e){this.save(),this.executeOpTree(e),this.restore()}loadDependencies(e){let t=e.fnArray,n=e.argsArray;for(let i=0,a=t.length;i{t.get(e,n)}));this.current.dependencies.push(n)}return Promise.all(this.current.dependencies)}transform(e,t,n,i,a,s){let o=[e,t,n,i,a,s];this.transformMatrix=r.Util.transform(this.transformMatrix,o),this.tgrp=null}getSVG(e,t){this.viewport=t;let n=this._initialize(t);return this.loadDependencies(e).then((()=>(this.transformMatrix=r.IDENTITY_MATRIX,this.executeOpTree(this.convertOpList(e)),n)))}convertOpList(e){let t=this._operatorIdMapping,n=e.argsArray,i=e.fnArray,r=[];for(let a=0,s=i.length;a0&&(this.current.lineWidth=e)}setLineCap(e){this.current.lineCap=l[e]}setLineJoin(e){this.current.lineJoin=h[e]}setMiterLimit(e){this.current.miterLimit=e}setStrokeAlpha(e){this.current.strokeAlpha=e}setStrokeRGBColor(e,t,n){this.current.strokeColor=r.Util.makeHexColor(e,t,n)}setFillAlpha(e){this.current.fillAlpha=e}setFillRGBColor(e,t,n){this.current.fillColor=r.Util.makeHexColor(e,t,n),this.current.tspan=this.svgFactory.createElement("svg:tspan"),this.current.xcoords=[],this.current.ycoords=[]}setStrokeColorN(e){this.current.strokeColor=this._makeColorN_Pattern(e)}setFillColorN(e){this.current.fillColor=this._makeColorN_Pattern(e)}shadingFill(e){let{width:t,height:n}=this.viewport,i=r.Util.inverseTransform(this.transformMatrix),[a,s,o,l]=r.Util.getAxialAlignedBoundingBox([0,0,t,n],i),h=this.svgFactory.createElement("svg:rect");h.setAttributeNS(null,"x",a),h.setAttributeNS(null,"y",s),h.setAttributeNS(null,"width",o-a),h.setAttributeNS(null,"height",l-s),h.setAttributeNS(null,"fill",this._makeShadingPattern(e)),this.current.fillAlpha<1&&h.setAttributeNS(null,"fill-opacity",this.current.fillAlpha),this._ensureTransformGroup().append(h)}_makeColorN_Pattern(e){return"TilingPattern"===e[0]?this._makeTilingPattern(e):this._makeShadingPattern(e)}_makeTilingPattern(e){let t=e[1],n=e[2],i=e[3]||r.IDENTITY_MATRIX,[a,s,o,l]=e[4],h=e[5],c=e[6],u=e[7],d="shading"+v++,[p,f,m,g]=r.Util.normalizeRect([...r.Util.applyTransform([a,s],i),...r.Util.applyTransform([o,l],i)]),[y,x]=r.Util.singularValueDecompose2dScale(i),b=h*y,_=c*x,w=this.svgFactory.createElement("svg:pattern");w.setAttributeNS(null,"id",d),w.setAttributeNS(null,"patternUnits","userSpaceOnUse"),w.setAttributeNS(null,"width",b),w.setAttributeNS(null,"height",_),w.setAttributeNS(null,"x",`${p}`),w.setAttributeNS(null,"y",`${f}`);let S=this.svg,M=this.transformMatrix,T=this.current.fillColor,E=this.current.strokeColor,A=this.svgFactory.create(m-p,g-f);if(this.svg=A,this.transformMatrix=i,2===u){let e=r.Util.makeHexColor(...t);this.current.fillColor=e,this.current.strokeColor=e}return this.executeOpTree(this.convertOpList(n)),this.svg=S,this.transformMatrix=M,this.current.fillColor=T,this.current.strokeColor=E,w.append(A.childNodes[0]),this.defs.append(w),`url(#${d})`}_makeShadingPattern(e){switch("string"==typeof e&&(e=this.objs.get(e)),e[0]){case"RadialAxial":let t,n="shading"+v++,i=e[3];switch(e[1]){case"axial":let i=e[4],r=e[5];t=this.svgFactory.createElement("svg:linearGradient"),t.setAttributeNS(null,"id",n),t.setAttributeNS(null,"gradientUnits","userSpaceOnUse"),t.setAttributeNS(null,"x1",i[0]),t.setAttributeNS(null,"y1",i[1]),t.setAttributeNS(null,"x2",r[0]),t.setAttributeNS(null,"y2",r[1]);break;case"radial":let a=e[4],s=e[5],o=e[6],l=e[7];t=this.svgFactory.createElement("svg:radialGradient"),t.setAttributeNS(null,"id",n),t.setAttributeNS(null,"gradientUnits","userSpaceOnUse"),t.setAttributeNS(null,"cx",s[0]),t.setAttributeNS(null,"cy",s[1]),t.setAttributeNS(null,"r",l),t.setAttributeNS(null,"fx",a[0]),t.setAttributeNS(null,"fy",a[1]),t.setAttributeNS(null,"fr",o);break;default:throw new Error(`Unknown RadialAxial type: ${e[1]}`)}for(let e of i){let n=this.svgFactory.createElement("svg:stop");n.setAttributeNS(null,"offset",e[0]),n.setAttributeNS(null,"stop-color",e[1]),t.append(n)}return this.defs.append(t),`url(#${n})`;case"Mesh":return(0,r.warn)("Unimplemented pattern Mesh"),null;case"Dummy":return"hotpink";default:throw new Error(`Unknown IR type: ${e[0]}`)}}setDash(e,t){this.current.dashArray=e,this.current.dashPhase=t}constructPath(e,t){let n=this.current,i=n.x,a=n.y,s=[],o=0;for(let l of e)switch(0|l){case r.OPS.rectangle:i=t[o++],a=t[o++];let e=i+t[o++],n=a+t[o++];s.push("M",p(i),p(a),"L",p(e),p(a),"L",p(e),p(n),"L",p(i),p(n),"Z");break;case r.OPS.moveTo:i=t[o++],a=t[o++],s.push("M",p(i),p(a));break;case r.OPS.lineTo:i=t[o++],a=t[o++],s.push("L",p(i),p(a));break;case r.OPS.curveTo:i=t[o+4],a=t[o+5],s.push("C",p(t[o]),p(t[o+1]),p(t[o+2]),p(t[o+3]),p(i),p(a)),o+=6;break;case r.OPS.curveTo2:s.push("C",p(i),p(a),p(t[o]),p(t[o+1]),p(t[o+2]),p(t[o+3])),i=t[o+2],a=t[o+3],o+=4;break;case r.OPS.curveTo3:i=t[o+2],a=t[o+3],s.push("C",p(t[o]),p(t[o+1]),p(i),p(a),p(i),p(a)),o+=4;break;case r.OPS.closePath:s.push("Z")}s=s.join(" "),n.path&&e.length>0&&e[0]!==r.OPS.rectangle&&e[0]!==r.OPS.moveTo?s=n.path.getAttributeNS(null,"d")+s:(n.path=this.svgFactory.createElement("svg:path"),this._ensureTransformGroup().append(n.path)),n.path.setAttributeNS(null,"d",s),n.path.setAttributeNS(null,"fill","none"),n.element=n.path,n.setCurrentPoint(i,a)}endPath(){let e=this.current;if(e.path=null,!this.pendingClip)return;if(!e.element)return void(this.pendingClip=null);let t="clippath"+m++,n=this.svgFactory.createElement("svg:clipPath");n.setAttributeNS(null,"id",t),n.setAttributeNS(null,"transform",f(this.transformMatrix));let i=e.element.cloneNode(!0);if("evenodd"===this.pendingClip?i.setAttributeNS(null,"clip-rule","evenodd"):i.setAttributeNS(null,"clip-rule","nonzero"),this.pendingClip=null,n.append(i),this.defs.append(n),e.activeClipUrl){e.clipGroup=null;for(let e of this.extraStack)e.clipGroup=null;n.setAttributeNS(null,"clip-path",e.activeClipUrl)}e.activeClipUrl=`url(#${t})`,this.tgrp=null}clip(e){this.pendingClip=e}closePath(){let e=this.current;if(e.path){let t=`${e.path.getAttributeNS(null,"d")}Z`;e.path.setAttributeNS(null,"d",t)}}setLeading(e){this.current.leading=-e}setTextRise(e){this.current.textRise=e}setTextRenderingMode(e){this.current.textRenderingMode=e}setHScale(e){this.current.textHScale=e/100}setRenderingIntent(e){}setFlatness(e){}setGState(e){for(let[t,n]of e)switch(t){case"LW":this.setLineWidth(n);break;case"LC":this.setLineCap(n);break;case"LJ":this.setLineJoin(n);break;case"ML":this.setMiterLimit(n);break;case"D":this.setDash(n[0],n[1]);break;case"RI":this.setRenderingIntent(n);break;case"FL":this.setFlatness(n);break;case"Font":this.setFont(n);break;case"CA":this.setStrokeAlpha(n);break;case"ca":this.setFillAlpha(n);break;default:(0,r.warn)(`Unimplemented graphic state operator ${t}`)}}fill(){let e=this.current;e.element&&(e.element.setAttributeNS(null,"fill",e.fillColor),e.element.setAttributeNS(null,"fill-opacity",e.fillAlpha),this.endPath())}stroke(){let e=this.current;e.element&&(this._setStrokeAttributes(e.element),e.element.setAttributeNS(null,"fill","none"),this.endPath())}_setStrokeAttributes(e,t=1){let n=this.current,i=n.dashArray;1!==t&&i.length>0&&(i=i.map((function(e){return t*e}))),e.setAttributeNS(null,"stroke",n.strokeColor),e.setAttributeNS(null,"stroke-opacity",n.strokeAlpha),e.setAttributeNS(null,"stroke-miterlimit",p(n.miterLimit)),e.setAttributeNS(null,"stroke-linecap",n.lineCap),e.setAttributeNS(null,"stroke-linejoin",n.lineJoin),e.setAttributeNS(null,"stroke-width",p(t*n.lineWidth)+"px"),e.setAttributeNS(null,"stroke-dasharray",i.map(p).join(" ")),e.setAttributeNS(null,"stroke-dashoffset",p(t*n.dashPhase)+"px")}eoFill(){var e;null==(e=this.current.element)||e.setAttributeNS(null,"fill-rule","evenodd"),this.fill()}fillStroke(){this.stroke(),this.fill()}eoFillStroke(){var e;null==(e=this.current.element)||e.setAttributeNS(null,"fill-rule","evenodd"),this.fillStroke()}closeStroke(){this.closePath(),this.stroke()}closeFillStroke(){this.closePath(),this.fillStroke()}closeEOFillStroke(){this.closePath(),this.eoFillStroke()}paintSolidColorImageMask(){let e=this.svgFactory.createElement("svg:rect");e.setAttributeNS(null,"x","0"),e.setAttributeNS(null,"y","0"),e.setAttributeNS(null,"width","1px"),e.setAttributeNS(null,"height","1px"),e.setAttributeNS(null,"fill",this.current.fillColor),this._ensureTransformGroup().append(e)}paintImageXObject(e){let t=this.getObject(e);t?this.paintInlineImageXObject(t):(0,r.warn)(`Dependent image with object ID ${e} is not ready yet`)}paintInlineImageXObject(e,t){let n=e.width,i=e.height,r=u(e,this.forceDataSchema,!!t),a=this.svgFactory.createElement("svg:rect");a.setAttributeNS(null,"x","0"),a.setAttributeNS(null,"y","0"),a.setAttributeNS(null,"width",p(n)),a.setAttributeNS(null,"height",p(i)),this.current.element=a,this.clip("nonzero");let s=this.svgFactory.createElement("svg:image");s.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r),s.setAttributeNS(null,"x","0"),s.setAttributeNS(null,"y",p(-i)),s.setAttributeNS(null,"width",p(n)+"px"),s.setAttributeNS(null,"height",p(i)+"px"),s.setAttributeNS(null,"transform",`scale(${p(1/n)} ${p(-1/i)})`),t?t.append(s):this._ensureTransformGroup().append(s)}paintImageMaskXObject(e){let t=this.getObject(e.data,e);if(t.bitmap)return void(0,r.warn)("paintImageMaskXObject: ImageBitmap support is not implemented, ensure that the `isOffscreenCanvasSupported` API parameter is disabled.");let n=this.current,i=t.width,a=t.height,s=n.fillColor;n.maskId="mask"+g++;let o=this.svgFactory.createElement("svg:mask");o.setAttributeNS(null,"id",n.maskId);let l=this.svgFactory.createElement("svg:rect");l.setAttributeNS(null,"x","0"),l.setAttributeNS(null,"y","0"),l.setAttributeNS(null,"width",p(i)),l.setAttributeNS(null,"height",p(a)),l.setAttributeNS(null,"fill",s),l.setAttributeNS(null,"mask",`url(#${n.maskId})`),this.defs.append(o),this._ensureTransformGroup().append(l),this.paintInlineImageXObject(t,o)}paintFormXObjectBegin(e,t){if(Array.isArray(e)&&6===e.length&&this.transform(e[0],e[1],e[2],e[3],e[4],e[5]),t){let e=t[2]-t[0],n=t[3]-t[1],i=this.svgFactory.createElement("svg:rect");i.setAttributeNS(null,"x",t[0]),i.setAttributeNS(null,"y",t[1]),i.setAttributeNS(null,"width",p(e)),i.setAttributeNS(null,"height",p(n)),this.current.element=i,this.clip("nonzero"),this.endPath()}}paintFormXObjectEnd(){}_initialize(e){let t=this.svgFactory.create(e.width,e.height),n=this.svgFactory.createElement("svg:defs");t.append(n),this.defs=n;let i=this.svgFactory.createElement("svg:g");return i.setAttributeNS(null,"transform",f(e.transform)),t.append(i),this.svg=i,t}_ensureClipGroup(){if(!this.current.clipGroup){let e=this.svgFactory.createElement("svg:g");e.setAttributeNS(null,"clip-path",this.current.activeClipUrl),this.svg.append(e),this.current.clipGroup=e}return this.current.clipGroup}_ensureTransformGroup(){return this.tgrp||(this.tgrp=this.svgFactory.createElement("svg:g"),this.tgrp.setAttributeNS(null,"transform",f(this.transformMatrix)),this.current.activeClipUrl?this._ensureClipGroup().append(this.tgrp):this.svg.append(this.tgrp)),this.tgrp}}}],__webpack_module_cache__={};function __w_pdfjs_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](n,n.exports,__w_pdfjs_require__),n.exports}var __webpack_exports__={};return(()=>{var e=__webpack_exports__;Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"AbortException",{enumerable:!0,get:function(){return t.AbortException}}),Object.defineProperty(e,"AnnotationEditorLayer",{enumerable:!0,get:function(){return a.AnnotationEditorLayer}}),Object.defineProperty(e,"AnnotationEditorParamsType",{enumerable:!0,get:function(){return t.AnnotationEditorParamsType}}),Object.defineProperty(e,"AnnotationEditorType",{enumerable:!0,get:function(){return t.AnnotationEditorType}}),Object.defineProperty(e,"AnnotationEditorUIManager",{enumerable:!0,get:function(){return s.AnnotationEditorUIManager}}),Object.defineProperty(e,"AnnotationLayer",{enumerable:!0,get:function(){return o.AnnotationLayer}}),Object.defineProperty(e,"AnnotationMode",{enumerable:!0,get:function(){return t.AnnotationMode}}),Object.defineProperty(e,"CMapCompressionType",{enumerable:!0,get:function(){return t.CMapCompressionType}}),Object.defineProperty(e,"FeatureTest",{enumerable:!0,get:function(){return t.FeatureTest}}),Object.defineProperty(e,"GlobalWorkerOptions",{enumerable:!0,get:function(){return l.GlobalWorkerOptions}}),Object.defineProperty(e,"ImageKind",{enumerable:!0,get:function(){return t.ImageKind}}),Object.defineProperty(e,"InvalidPDFException",{enumerable:!0,get:function(){return t.InvalidPDFException}}),Object.defineProperty(e,"MissingPDFException",{enumerable:!0,get:function(){return t.MissingPDFException}}),Object.defineProperty(e,"OPS",{enumerable:!0,get:function(){return t.OPS}}),Object.defineProperty(e,"PDFDataRangeTransport",{enumerable:!0,get:function(){return n.PDFDataRangeTransport}}),Object.defineProperty(e,"PDFDateString",{enumerable:!0,get:function(){return i.PDFDateString}}),Object.defineProperty(e,"PDFWorker",{enumerable:!0,get:function(){return n.PDFWorker}}),Object.defineProperty(e,"PasswordResponses",{enumerable:!0,get:function(){return t.PasswordResponses}}),Object.defineProperty(e,"PermissionFlag",{enumerable:!0,get:function(){return t.PermissionFlag}}),Object.defineProperty(e,"PixelsPerInch",{enumerable:!0,get:function(){return i.PixelsPerInch}}),Object.defineProperty(e,"PromiseCapability",{enumerable:!0,get:function(){return t.PromiseCapability}}),Object.defineProperty(e,"RenderingCancelledException",{enumerable:!0,get:function(){return i.RenderingCancelledException}}),e.SVGGraphics=void 0,Object.defineProperty(e,"UnexpectedResponseException",{enumerable:!0,get:function(){return t.UnexpectedResponseException}}),Object.defineProperty(e,"Util",{enumerable:!0,get:function(){return t.Util}}),Object.defineProperty(e,"VerbosityLevel",{enumerable:!0,get:function(){return t.VerbosityLevel}}),Object.defineProperty(e,"XfaLayer",{enumerable:!0,get:function(){return h.XfaLayer}}),Object.defineProperty(e,"build",{enumerable:!0,get:function(){return n.build}}),Object.defineProperty(e,"createValidAbsoluteUrl",{enumerable:!0,get:function(){return t.createValidAbsoluteUrl}}),Object.defineProperty(e,"getDocument",{enumerable:!0,get:function(){return n.getDocument}}),Object.defineProperty(e,"getFilenameFromUrl",{enumerable:!0,get:function(){return i.getFilenameFromUrl}}),Object.defineProperty(e,"getPdfFilenameFromUrl",{enumerable:!0,get:function(){return i.getPdfFilenameFromUrl}}),Object.defineProperty(e,"getXfaPageViewport",{enumerable:!0,get:function(){return i.getXfaPageViewport}}),Object.defineProperty(e,"isDataScheme",{enumerable:!0,get:function(){return i.isDataScheme}}),Object.defineProperty(e,"isPdfFile",{enumerable:!0,get:function(){return i.isPdfFile}}),Object.defineProperty(e,"loadScript",{enumerable:!0,get:function(){return i.loadScript}}),Object.defineProperty(e,"normalizeUnicode",{enumerable:!0,get:function(){return t.normalizeUnicode}}),Object.defineProperty(e,"renderTextLayer",{enumerable:!0,get:function(){return r.renderTextLayer}}),Object.defineProperty(e,"setLayerDimensions",{enumerable:!0,get:function(){return i.setLayerDimensions}}),Object.defineProperty(e,"shadow",{enumerable:!0,get:function(){return t.shadow}}),Object.defineProperty(e,"updateTextLayer",{enumerable:!0,get:function(){return r.updateTextLayer}}),Object.defineProperty(e,"version",{enumerable:!0,get:function(){return n.version}});var t=__w_pdfjs_require__(1),n=__w_pdfjs_require__(2),i=__w_pdfjs_require__(6),r=__w_pdfjs_require__(26),a=__w_pdfjs_require__(27),s=__w_pdfjs_require__(5),o=__w_pdfjs_require__(29),l=__w_pdfjs_require__(14),h=__w_pdfjs_require__(31);let c=__w_pdfjs_require__(34).SVGGraphics;e.SVGGraphics=c})(),__webpack_exports__})(),"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf",[],e):"object"==typeof exports?exports["pdfjs-dist/build/pdf"]=e():t["pdfjs-dist/build/pdf"]=t.pdfjsLib=e()}));!function(){if("undefined"!=typeof document&&!document.getElementById("1f8ddc6a348599fa26443f88f3fc0e483209f94f84f312835ae5d382490673f0")){var e=document.createElement("style");e.id="1f8ddc6a348599fa26443f88f3fc0e483209f94f84f312835ae5d382490673f0",e.textContent='@import"https://at.alicdn.com/t/c/font_2809422_kipm6ycaet.css";@import"https://at.alicdn.com/t/c/font_2802048_dc945363jlf.css";.model-layout-switch-bar{position:absolute;bottom:0;width:100%;height:24px;background:#ffffff;opacity:.7;display:flex;font-size:14px;line-height:1;overflow-x:scroll;overflow-y:hidden;z-index:1}.model-layout-switch-bar .model-layout-switch-bar-content{white-space:nowrap}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item{position:relative;display:inline-block;padding:3px 10px 0;color:#000;height:22px;cursor:pointer;transform:translate(0)}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:before{content:"";position:absolute;inset:0;z-index:-1;background:#fff;border:1px solid #000;border-top:0px}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:hover{color:#8080f0}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:nth-child(n+2){margin-left:-1px}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item.activate{color:#fff!important}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item.activate:before{background:#212830!important}.model-layout-switch-bar.hidden{display:none}.model-layout-switch-bar::-webkit-scrollbar{display:none}.pop-panel{z-index:99999999;top:calc(70% - 100px);left:calc(90% - 160px);position:absolute;background:#ffffff;color:#333;border-radius:4px;width:160px;box-shadow:0 12px 48px 16px #00000008,0 9px 28px #0000000d,0 6px 16px -8px #00000014}.pop-panel .pop-panel-header{font-size:16px;font-weight:bolder;padding:16px 24px 8px;color:#333;border-bottom:1px solid #EFEFEF;cursor:move;user-select:none}.pop-panel .pop-panel-body{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 24px}.pop-panel .pop-panel-body .pop-panel-item{display:inline-block;cursor:pointer;margin-right:16px;font-size:16px}.pop-panel .pop-panel-body .pop-panel-item .gemini-viewer-icon{font-size:24px}.pop-panel .pop-panel-body .pop-panel-item:last-child{margin-right:0}.pop-panel .pop-panel-body .pop-panel-item:hover,.pop-panel .pop-panel-body .pop-panel-item.active{color:#2c7be5}.pop-panel .pop-panel-body .pop-panel-item.disable{color:#999;cursor:not-allowed}.progress-bar{z-index:3;bottom:20%;left:25%;position:absolute;color:#ffffffa0;width:50%;user-select:none;font-size:14px}.progress-bar.hidden{display:none}.progress-bar .progress-bar-item{width:100%;text-align:center;padding:2px}.follow-tooltip{z-index:99999999;position:absolute;left:-500px;padding:6px;background:rgba(25,25,25,.3);color:#fffc;font-size:12px;border-radius:2px}.layer-manager{position:absolute;top:30px;left:20px;width:330px;height:600px;max-height:90%;border-radius:4px;box-shadow:1px 3px 10px #0006;background-color:#ffffffe6;color:#000;z-index:2;overflow:hidden;user-select:none}.layer-manager:hover{background-color:#fffffff2}.layer-manager input[type=checkbox]{width:16px;height:16px;cursor:pointer}.layer-manager input[type=color]{width:30px;height:16px;border:0;padding:0;background-color:#0000;overflow:hidden}.layer-manager ::-webkit-color-swatch{position:relative;margin-top:-5px;width:40px;height:16px}.layer-manager .header{display:flex;align-items:center;padding-left:6px;width:100%;height:40px;border-bottom:1px solid #ccc;cursor:move;font-size:16px}.layer-manager .header .close{position:absolute;right:8px;cursor:pointer;padding:10px}.layer-manager .header .close:hover{font-weight:700}.layer-manager .layer-list{width:100%;height:calc(100% - 40px);padding:0;margin:0;border-bottom:1px solid #ccc;overflow-y:scroll}.layer-manager .layer-list-item{display:flex;align-items:center;padding:6px;border-bottom:1px solid #ccc;white-space:nowrap}.layer-manager .layer-list-item:hover{background-color:#f0f8ff}.layer-manager .popup-layer-color{display:inline-block;margin-left:5px;width:20px;font-size:12px}.layer-manager .item-color{margin-left:8px;font-size:12px;border:1px solid black;width:18px;height:16px;min-width:18px}.layer-manager .item-layer-name{display:inline-block;margin-left:10px;padding:1px 0;width:280px;font-size:12px;text-overflow:ellipsis;overflow:hidden}.layer-manager .popup-freeze{margin-right:5px;color:#ccc;font-size:12px;width:50px}#axisGizmo{width:100px;height:100px;position:absolute;display:block;bottom:1px;left:10px;background:#ffffff00}.bottom-bar{position:absolute;bottom:0;right:0;display:flex;color:#666;z-index:3;overflow:hidden;user-select:none}.bottom-bar i{font-size:18px;padding:3px;align-self:center;opacity:.4;cursor:pointer;line-height:1}.bottom-bar i:hover,.bottom-bar i.active{color:#2c7be5;opacity:1}.bottom-bar .fps{width:4rem}.bottom-bar span{align-self:center;padding:4px;font-size:14px}#gemini-viewer-threejs-statistics-tooltip,#gemini-viewer-threejs-tips-tooltip,#gemini-viewer-threejs-cameraInfo-tooltip{position:absolute;right:5px;bottom:30px;background:#666666;color:#fff;padding:8px 8px 5px;font-size:.8rem;border-radius:4px;z-index:3;opacity:.9;user-select:none}#gemini-viewer-threejs-statistics-tooltip p,#gemini-viewer-threejs-tips-tooltip p,#gemini-viewer-threejs-cameraInfo-tooltip p{padding-bottom:3px;margin:3px}#gemini-viewer-threejs-statistics-tooltip p span,#gemini-viewer-threejs-tips-tooltip p span,#gemini-viewer-threejs-cameraInfo-tooltip p span{float:left;margin-right:10px}.context-menu{position:absolute;box-sizing:border-box;background-color:#fff;width:200px;padding:2px;border-radius:2px;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;cursor:pointer;z-index:2}.context-menu ul{list-style:none;padding:0}.context-menu ul:last-child li{border-bottom:0px}.context-menu li{height:2rem;padding:.5rem;box-sizing:border-box}.context-menu li:hover{background-color:#d3d3d3}.context-menu li.disabled{color:#ccc;cursor:not-allowed}.context-menu li:last-child{border-bottom:1px solid #000}#navCube{width:135px;height:135px;position:absolute;bottom:10px;right:10px;z-index:1;pointer-events:none;cursor:pointer}#navCube:hover{opacity:1}.css3d-navcube .navcube-plane{backface-visibility:hidden;z-index:1;transition:all .2s}.css3d-navcube .navcube-plane.outer{opacity:.7;background:linear-gradient(-45deg,transparent 15px,#efefef 0) bottom right,linear-gradient(-135deg,transparent 15px,#efefef 0) top right,linear-gradient(135deg,transparent 15px,#efefef 0) top left,linear-gradient(45deg,transparent 15px,#efefef 0) bottom left;background-size:70% 70%;background-repeat:no-repeat}.css3d-navcube .navcube-plane.inner{margin:2px;font-size:30px;text-align:center;line-height:100px;background:linear-gradient(-45deg,transparent 14px,#2c7be5 0) bottom right,linear-gradient(-135deg,transparent 14px,#2c7be5 0) top right,linear-gradient(135deg,transparent 14px,#2c7be5 0) top left,linear-gradient(45deg,transparent 14px,#2c7be5 0) bottom left;background-size:70% 70%;background-repeat:no-repeat}.css3d-navcube .navcube-plane:hover{opacity:1!important}.css3d-navcube .navcube-edge{opacity:0;z-index:2;transition:all .2s}.css3d-navcube .navcube-edge:hover{opacity:1!important}.css3d-navcube .navcube-corner{opacity:.7;backface-visibility:hidden;box-sizing:content-box;transform-origin:50% 33%;top:4px;z-index:3;transition:all .2s}.css3d-navcube .navcube-corner-plane{opacity:0;backface-visibility:hidden;transform-origin:bottom;top:-6.5px;z-index:3;transition:all .2s}.css3d-navcube .highlight{opacity:1}#overview-map{width:200px;height:200px;top:10px;left:10px;position:absolute;z-index:1;border:1px #50505090 solid;background-color:#80808030}.gemini-spinner{display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;width:2em;position:absolute;pointer-events:none;top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px}.gemini-spinner.hidden{display:none}.gemini-spinner span{width:.3em;height:1em;background-color:#3cefff}.gemini-spinner span:nth-of-type(1){animation:grow 1s -.45s ease-in-out infinite}.gemini-spinner span:nth-of-type(2){animation:grow 1s -.3s ease-in-out infinite}.gemini-spinner span:nth-of-type(3){animation:grow 1s -.15s ease-in-out infinite}.gemini-spinner span:nth-of-type(4){animation:grow 1s ease-in-out infinite}@keyframes grow{0%,to{transform:scaleY(1)}50%{transform:scaleY(2)}}.statsOutput{position:absolute;opacity:.6;top:1px;left:1px}.toolbar{position:absolute;display:flex;box-sizing:border-box;height:68px;left:50%;bottom:40px;padding:8px 20px;box-shadow:1px 3px 10px #0006;border-radius:4px;background:rgba(255,255,255,.8);transform:translate(-50%);align-items:center;z-index:10;user-select:none}.toolbar .toolbar-group{display:flex;padding:0 2px;box-sizing:border-box}.toolbar .toolbar-group-division{width:1px;background-color:#999c;height:60%}.toolbar .toolbar-menu{display:flex;box-sizing:border-box;flex-direction:column;word-break:break-word;width:50px;height:50px;padding:3px 1px;margin:0 2px;transition:all .3s;cursor:pointer;color:#666;border-radius:4px}.toolbar .toolbar-menu.active{color:#2c7be5}.toolbar .toolbar-menu .icon{width:24px;height:24px;margin:auto;font-size:24px;line-height:normal}.toolbar .toolbar-menu span{display:block;width:100%;margin:auto;font-size:12px;text-align:center;user-select:none}.toolbar .toolbar-menu-active{color:#2c7be5;background-color:#fffc}.toolbar .toolbar-parent-menu{position:relative}.toolbar .toolbar-parent-menu-active .toolbar-sub-menu{display:block}.toolbar .toolbar-parent-menu-active .toolbar-sub-menu-list{background:rgba(255,255,255,.8)}.toolbar .toolbar-parent-menu:after{content:"";position:absolute;box-sizing:border-box;width:0;height:0;right:2px;top:2px;border-width:4px;border-style:solid;border-top-color:#666;border-right-color:#666;border-bottom-color:transparent;border-left-color:transparent;border-radius:1px}.toolbar .toolbar-sub-menu{display:none;position:absolute;min-width:50px;bottom:100%;box-shadow:1px 3px 10px #0006}.toolbar .toolbar-sub-menu .toolbar-sub-menu-list{margin-bottom:2px;border-radius:4px}.toolbar .toolbar-sub-menu .toolbar-sub-menu-list .toolbar-menu{margin:0}@media screen and (max-width:768px){.toolbar .toolbar-menu{width:30px;height:30px;margin:0}.toolbar .toolbar-menu .icon+span{display:none}.toolbar .toolbar-parent-menu:after{top:1px;right:0}.toolbar .toolbar-sub-menu{min-width:30px}}#viewCube{width:150px;height:150px;position:absolute;bottom:10px;right:10px;z-index:1}.anchor{position:absolute;top:0;left:0;opacity:0;width:20px;height:20px;transform:translate(-50%,-50%);pointer-events:none;user-select:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAADjRJREFUeF7tXQnQttUYvq4Zxr5MqBgaihRlKakUU7SYSBQljUhaxijtso2MTCrRn8YoldKIUlIIJRplSyKyqzGyJDSDLGHmMtfvvOb19n7fe7Zn+/7nnnnn+/7/O8t9zrne+5xzn3sh1hCS9GUA20UO9xqS20eWHXQxDpr7BOZHAMyfrBEA8+dllAAJX65BFB0lwCgBxjPAHAyMW8C4BQxCghczOW4B4xYwbgHjFjDqAWYxMJ4BxjNA8fY6iAbGM8B4BhjPAGvKGUDSYwA8FcAmAJ4EYOPw8/6R4upvAH4I4Efh580AbiJ5W2T9wRRbEWcASTuFBX/a1KLfq/Iq/HsKDN8NgLiych+tNzdYAEh6JoAXAdgtLHrrkwfAkuEyAJeTvL4LBkr7HBQAJK0fFtwLH/u0WzpHsfWvMRAMCJK3xlbqutwgACDplVMLf++uJ21B//+aAsL5PecVvQaApB0BHA3AP4dIVwE4maR/9pJ6CYBwij8GwOt7OWvpTJ0O4KQ+3iJ6BwBJXnQvvq9yK4l8hTQIDIbeUG8AsALEfeyi9mpb6AUAJL0bwBtjZ3CFlDuR5LFdj6VzAEi6EMCeXU9ER/1fRHKvjvpe3W1nAJC0NoDPAnhGwxNwF4DbZz6/m/q3u183fNaZ+n3yfw9smL8bALyA5B0N9zO3+U4AIMmL/gUAazU0aKtor/CH5M9K+pD0BAC7hI9Vzk3QnQB2JmkwtEqtA0DS7gAuqTxKn7C96F8EcBXJP1Zuf3Vzkh4WdBI7ADAYat9U9iD5ySZ4X6rNVgEg6TAA76s4wKsBnBa+6X6saY0k+bHJkuFQAM+r2PHhJE+t2N6yTbUGAEkHADiz0sBu8sKTPKdSe0XNSHpNAIKfoGvQgSQ/VKOhRW20AoDwcvfNRcxE/P034Rvvxf97RPnWiki6XwCBJcKjKnS8ZRsvjI0DILzg3VI4IX5gsahf1Ud16vTYghr7DQEMpQ9XGzT9stgoACQ9BMD3Cw9LlhyvI3ljIYharS5pMwAfALBlQcc+3G5K8k8FbXR3BpDkE+1LCpj3+/o+JH2XHxxJsg7ho8FwJZf/S0n65tQINSYBJH0QwEEFXJ9F0gfHwZMkH+heWzCQM0geXFB/yaqNAEDS8QDeUsDwsSRPLKjfu6qS/NbhN49cehfJt+ZWXqpedQCEV70SY8ltSX619kD70J6kbQBcV8DLTrWNS5oAgBc/y4KHZHV+Cia7saqSlNm4tZxV1dFVJzwYc7w/c3BPJPnTzLqDqiZpQwA/yWT6kJpGJdUAEO6/Ft05+vFdSX4mc0IGWU3SCwF8OoN5Xw23qaUPqQkAf/NzbPiOJPnejIkYfBVJRwA4JWMgp5M8JKPePapUAUDBwa+x602NyWmjjYLrcpUDYS0A5Bz87Ky5C8l/tDHRs31IesTUdnUbyd93xMd9g+1CalzCKgfCYgAEp42PJE6edftbtaXeDWrZ59ryJiz6owHcZ4bnuwH8CoD3WFsqfall/r4BIPXtYF+SRc4nNQBwMYA9EgFwCsmjEuskFZe0c7A1tAuZXcpyyC5edvmy7Z4tmBojSe8BcGRiB5eQfGlinf8rXgSA8NL340Tk+knX3/5GXK0l+U3ehievLpmYOXXPBXAqSdsiVKdwi7IUSHlKtiTdqOTFsBQAhwNIPcE3ouaVZN9/q0q9+H6bb4Jsg2BrneNJOoZAVcpUFx9BMtvKqhQAKVE3PFn+9mxd25hD0tMB+PHJLuNtkF3BDyb5nZqdBaOSr4dYB7FNF4W1zQZAppXP/rXNuCS9HMDHYmercrm9SX68ZpvBvOzsxDazrYdKAJD64nc1SVvTViNJbwdwXLUG8xo6juQ78qrOryXJ1s0phqbZL4UlALClj2PwxNJuJG3gUYXCKf/zVRorb+RZJC26q5AkB8Bw5JFYupnkprGFp8tlASBD8/dbAOuRrGK6XeFZNWeuFtV5HMlfLCoU8/dgcv5LAI+MKR/KZGkGcwHg+6rvrbF0Acl9YgsvVy5c8+z1k3JdqtH1ojasDfWj1j8XFYz5uySbkr0ipmwocxTJ5HeFXAD4TvyqBOaq2blL8jaya0LfbRY9geSba3SY4UdxHslk3UcuAL4NwFavsbRODefHgifUWD5Ly1lP4GtusbIoOM/aiTWWbiS5eWzhSblkAEiy6PVeF6u3vpbkc1IZm1e+59/+Ccvnktyv0ni/AuDZkW1ZK/hYkta0RlMOAGySlKIXr6L5G8C3f3rSn1/j7SBDM2gP4yR7zBwApKp/Nybp94IiknQBgL2LGmmvctZ+PMuepI1CuNpYzpPVwjkAsJbKzpAxdBfJB8UUXK6MJLfxawDFbZXyElnf9gXrRZZdtpikvwCIDVJxDsn9U/rNAYBdtWJ17j8n6QALRSRpXwDnFTXSfuUqyiFJDnDx+Ej2ryeZ5IrGEEc/sv3VxbYA8IDICteRjD3ELNlkBRezSHarFnsbSavLi0jStQC2jWzkrwC+FVl2dTEDINdGPaafi0m+LKbggi2gSR5L2VuqftEr3aRRSZ8AUGT0sdwAmwZAsfWqpAcDaMw7tqnVB3ALyVjRvZz0y7W2jhpa0wAoFoOSbL/XiPVQ1AzlF7qbpA0+i0iSjVzeWdTIMpWbBsABJM8qYV6SM378oKSNDuuuXWptLMlexY2Fi2kaAMUeP5K2BvC1DhexpOvNSy2Lm1aAjQAoWd7Fddd4AIxbQKHDydC3gPEQuFhKLFti6IfA8RpYDoBBXwNHRVA5ABpXBNm2P4X8DhCbgLGWKjjVPCplPE2VPZpkitncXD4SVcF2VklKX5fzGGRdc2yI91qPQQ4112oQ5QqoKL4BmIfEx6AbSPqtJppyAGBPYKdxi6Faz8F+DrXnrgNPDoFuJblBDUYTn4PPJ+mX02jKAYDTnJwQ3QOwYWnM/vBNSAFeAnuNFE1+l5/HRchVkBI36U0kk0LR5QAgNbbNYSRXlU5z0xqxUv5m6tcyCXPM4ZTQ8cma1xwAOAiU/eZjkzNfSdK++sW0BhqF2vYyNiycnW7WT3W7TwZAEMc2e35Kwoo+vEYWjwFIgZpm4c5O8oeEOf4eyeR8BbkASL2WVfOi7bkUqOkYkur1nOV9lQsA5/M9KQGdZ5MsCZb8v64kbQXgcwAemtB/G0V9/96+VuAISX5GTzHwPIbkyakDzQVAqm+ADTq8P9VyDrXPnKVQn2izWgEjgnOoz1kpQTeTfQI8eVkACOeArt3DHSjRWUT6QNW2uDC3/XYPD0yOASL+C701NkCE3wRSE0E1ESLGV8yuAkVUue9Pi7DBhIgJUqAvQaIch/+iFmMG2AFzz9p5DQYVJCoAINVP0NWqOIvObvwhcIStZ5uOHeAI3zZ0KXYBnzOGnKwiyf6A0/1mHwIDAByBs2+BIq2qPrABIHjhz2wqrP0gA0UGEPQ1VKyB4Ouif+Y6ldox03kMrGRpNJ/BIEPFBgD4abi3waKDZ7HtCV6ckMLuUgCfAuCUbQZBoxSCWQ8zWHQAQU64eN8gdmg7J2BwNbO7mT8T+wK7nv3ZH5L+2RqF3IKOC5jk1RuypMc+FC05nqIzwKTVjLBxk6qXk9yttdnuYUeSHA/Qip9UygoLN9tJFQAEKZBrvbpiEkSmrmBBQslia+sJrzUBYL11btKoRq6GqQvSZvmM+D8T9vqZNCpIASeNyk0bt2ITRs6575ckkOxn2rip80DOgXB19TFx5EIZVCVP0HQv1baACgfCSRMrNoFkYcJIz0+Vg1+jAAhbgS1TrdbMpWTjxtyO2qpXwZztRJK2yK5K1SXAlCS4MCRtymV4xSSULEgQOZk7J63aK3cil6vXGACCJEjxIprH5xnOAdRVbsHSCZfkEDE26z6ooK1kb5+UvpoGwNoh0uVaKUzNlPWTs0Oh31jQRutVg3rXvoGpCSGneb0TgCOt3tHUABoFQJAC9iNMil03Z7AOhGzzr1Wpdu9NTdxS7YZXPTt0HJoQUHup5rYgeUOTY2gcAAEEuwO4pMJAbIhhIJxWO/NYKW/BmMOL7k+NZBZ7kGzcIbYVAAQQOJ9fdn67mQWyMYZBcE7pwtWoH8y4vPDJjhlL9H84yRSXsOxhtAaAAIIDbFSRze09K14dJMIVtUzOY3kLptu7hG98SoavRV1Uy66yqCP/vVUABBDkGJMuGouTUvmw6Dy/lzV1aApZPPx66XzEPtylJHVaNAb/PTv/X0zj88q0DoAAApuSebFSHB9SxugAy84AbjAU5SoIMfu96M48Xhz4eolB+IFnu5IcwCmTM122EwAEENgY48MJVjq5Y7wLwO0zH+fimfyf2103fNaZ+n3yf7Gx+nP5s/XRfiQ7iYfcGQAmsyXJOX9LFCW5E9+HemeQPLhLRjoHQJAGqV5GXc5Zrb6z073WYqCTQ+BSzAezMnsd71hzgD1s6yoAJ5P0z86pFxJgehYk2ajkmAYPiF1Nug96J5E8vSsGenMLWDQBQZ1qEBgMK4G86F783uU96J0EmJEG3g6GvC30StwPRgLMMirJzie+i9t8OjZjaVeSww9Xzm9sHcT5XTER22+vJcAcIFiBNAGCtXF9Iiu2Jgvv6B6DoEEBYGZ7sErZEsGA2KSj2b7Z33QvPMmkGL0d8XuPbgcLgDlnBYet23TqU3ursGh3WJzJx2HZenGVKwHTigDAnK3C7/GWCk8OPye/xya8dAJGJ6ryN9yf1b+nZuYuWZi26q5IAMybvJAhNfbcUCXpY1uLWNLPCID5szcCoARVfaw7SoD5qzJKgFEC9PH7Wp+nUQKMEiAlpN14Bqj/Hey2xVECjBJglABzMDAeAsdDYLeiua3exy1g3ALGLWDcAlY7dMTQGnML+A8qtnUcTFYqYAAAAABJRU5ErkJggg==) no-repeat center center;background-size:100% 100%;background-blend-mode:lighten;filter:invert(61%) sepia(87%) saturate(845%) hue-rotate(120deg) brightness(94%) contrast(101%);transition:opacity .5s ease-in-out}.anchor.active{opacity:1}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}\n',document.head.appendChild(e)}}();var RSe=fetch;window.fetch=(...e)=>Promise.resolve(RSe(...e));var kcn=ji(AG(),1),Fcn=ji(nce(),1),Ncn=ji(rce(),1),Wt={};FT(Wt,{ACESFilmicToneMapping:()=>Jue,AddEquation:()=>qo,AddOperation:()=>Yue,AdditiveAnimationBlendMode:()=>GU,AdditiveBlending:()=>_c,AlphaFormat:()=>nhe,AlwaysCompare:()=>bhe,AlwaysDepth:()=>Vue,AlwaysStencilFunc:()=>dhe,AmbientLight:()=>Pl,AmbientLightProbe:()=>dU,AnimationAction:()=>qR,AnimationClip:()=>po,AnimationLoader:()=>iU,AnimationMixer:()=>xU,AnimationObjectGroup:()=>yU,AnimationUtils:()=>Blt,ArcCurve:()=>gm,ArrayCamera:()=>_R,ArrowHelper:()=>Mc,Audio:()=>zR,AudioAnalyser:()=>gU,AudioContext:()=>Db,AudioListener:()=>pU,AudioLoader:()=>uU,AxesHelper:()=>DU,BackSide:()=>Ki,BasicDepthPacking:()=>uhe,BasicShadowMap:()=>Mnt,Bone:()=>Ml,BooleanKeyframeTrack:()=>Qh,Box2:()=>Ji,Box3:()=>Ot,Box3Helper:()=>IU,BoxGeometry:()=>va,BoxHelper:()=>PU,BufferAttribute:()=>mn,BufferGeometry:()=>Dt,BufferGeometryLoader:()=>VR,ByteType:()=>ehe,Cache:()=>Em,Camera:()=>Xh,CameraHelper:()=>Fb,CanvasTexture:()=>Eb,CapsuleGeometry:()=>uv,CatmullRomCurve3:()=>MR,CineonToneMapping:()=>Kue,CircleGeometry:()=>hv,ClampToEdgeWrapping:()=>Ai,Clock:()=>mo,Color:()=>ct,ColorKeyframeTrack:()=>Cb,ColorManagement:()=>Tl,CompressedArrayTexture:()=>JB,CompressedCubeTexture:()=>QB,CompressedTexture:()=>Mu,CompressedTextureLoader:()=>sU,ConeGeometry:()=>dv,CubeCamera:()=>bR,CubeReflectionMapping:()=>Gh,CubeRefractionMapping:()=>af,CubeTexture:()=>mm,CubeTextureLoader:()=>Pb,CubeUVReflectionMapping:()=>wv,CubicBezierCurve:()=>_b,CubicBezierCurve3:()=>RR,CubicInterpolant:()=>kR,CullFaceBack:()=>rB,CullFaceFront:()=>Iue,CullFaceFrontBack:()=>Snt,CullFaceNone:()=>Pue,Curve:()=>Va,CurvePath:()=>CR,CustomBlending:()=>Mm,CustomToneMapping:()=>Que,CylinderGeometry:()=>wc,Cylindrical:()=>wU,Data3DTexture:()=>gb,DataArrayTexture:()=>sv,DataTexture:()=>Sl,DataTextureLoader:()=>Tm,DataUtils:()=>Av,DecrementStencilOp:()=>knt,DecrementWrapStencilOp:()=>Nnt,DefaultLoadingManager:()=>go,DepthFormat:()=>sf,DepthStencilFormat:()=>Wh,DepthTexture:()=>cf,DirectionalLight:()=>js,DirectionalLightHelper:()=>kb,DiscreteInterpolant:()=>FR,DisplayP3ColorSpace:()=>jU,DodecahedronGeometry:()=>fv,DoubleSide:()=>Sr,DstAlphaFactor:()=>_v,DstColorFactor:()=>Tv,DynamicCopyUsage:()=>Jnt,DynamicDrawUsage:()=>jnt,DynamicReadUsage:()=>$nt,EdgesGeometry:()=>Cu,EllipseCurve:()=>Kh,EqualCompare:()=>mhe,EqualDepth:()=>Gue,EqualStencilFunc:()=>Vnt,EquirectangularReflectionMapping:()=>fm,EquirectangularRefractionMapping:()=>ub,Euler:()=>Xn,EventDispatcher:()=>jo,ExtrudeGeometry:()=>ta,FileLoader:()=>Kr,Float16BufferAttribute:()=>HB,Float32BufferAttribute:()=>Bt,Float64BufferAttribute:()=>VB,FloatType:()=>ga,Fog:()=>wu,FogExp2:()=>ov,FramebufferTexture:()=>KB,FrontSide:()=>pi,Frustum:()=>ya,GLBufferAttribute:()=>_U,GLSL1:()=>ert,GLSL3:()=>IB,GreaterCompare:()=>vhe,GreaterDepth:()=>Wue,GreaterEqualCompare:()=>xhe,GreaterEqualDepth:()=>que,GreaterEqualStencilFunc:()=>Wnt,GreaterStencilFunc:()=>Gnt,GridHelper:()=>Ob,Group:()=>er,HalfFloatType:()=>Rr,HemisphereLight:()=>Du,HemisphereLightHelper:()=>AU,HemisphereLightProbe:()=>hU,IcosahedronGeometry:()=>pv,ImageBitmapLoader:()=>Lb,ImageLoader:()=>_m,ImageUtils:()=>mb,IncrementStencilOp:()=>Ont,IncrementWrapStencilOp:()=>Fnt,InstancedBufferAttribute:()=>Zh,InstancedBufferGeometry:()=>HR,InstancedInterleavedBuffer:()=>EU,InstancedMesh:()=>Pi,Int16BufferAttribute:()=>BB,Int32BufferAttribute:()=>UB,Int8BufferAttribute:()=>FB,IntType:()=>NU,InterleavedBuffer:()=>$h,InterleavedBufferAttribute:()=>fo,Interpolant:()=>Jh,InterpolateDiscrete:()=>jh,InterpolateLinear:()=>Tu,InterpolateSmooth:()=>pR,InvertStencilOp:()=>Bnt,KeepStencilOp:()=>mR,KeyframeTrack:()=>Yo,LOD:()=>SR,LatheGeometry:()=>ym,Layers:()=>lf,LessCompare:()=>phe,LessDepth:()=>zue,LessEqualCompare:()=>ghe,LessEqualDepth:()=>gR,LessEqualStencilFunc:()=>znt,LessStencilFunc:()=>Hnt,Light:()=>Ws,LightProbe:()=>xv,Line:()=>hr,Line3:()=>sa,LineBasicMaterial:()=>Gn,LineCurve:()=>cv,LineCurve3:()=>AR,LineDashedMaterial:()=>Iu,LineLoop:()=>lv,LineSegments:()=>Wr,LinearEncoding:()=>WU,LinearFilter:()=>Ir,LinearInterpolant:()=>Ab,LinearMipMapLinearFilter:()=>Int,LinearMipMapNearestFilter:()=>Pnt,LinearMipmapLinearFilter:()=>Ua,LinearMipmapNearestFilter:()=>Rm,LinearSRGBColorSpace:()=>Ha,LinearToneMapping:()=>$ue,Loader:()=>Er,LoaderUtils:()=>ra,LoadingManager:()=>Lu,LoopOnce:()=>ohe,LoopPingPong:()=>che,LoopRepeat:()=>lhe,LuminanceAlphaFormat:()=>rhe,LuminanceFormat:()=>YR,MOUSE:()=>jR,Material:()=>yr,MaterialLoader:()=>bv,MathUtils:()=>An,Matrix3:()=>Ln,Matrix4:()=>et,MaxEquation:()=>oB,Mesh:()=>xt,MeshBasicMaterial:()=>on,MeshDepthMaterial:()=>Tc,MeshDistanceMaterial:()=>xb,MeshLambertMaterial:()=>Pu,MeshMatcapMaterial:()=>OR,MeshNormalMaterial:()=>df,MeshPhongMaterial:()=>na,MeshPhysicalMaterial:()=>Xo,MeshStandardMaterial:()=>hf,MeshToonMaterial:()=>DR,MinEquation:()=>aB,MirroredRepeatWrapping:()=>qh,MixOperation:()=>Xue,MultiplyBlending:()=>sB,MultiplyOperation:()=>Nb,NearestFilter:()=>Jr,NearestMipMapLinearFilter:()=>Cnt,NearestMipMapNearestFilter:()=>Ant,NearestMipmapLinearFilter:()=>zh,NearestMipmapNearestFilter:()=>of,NeverCompare:()=>fhe,NeverDepth:()=>Hue,NeverStencilFunc:()=>Unt,NoBlending:()=>Qr,NoColorSpace:()=>_u,NoToneMapping:()=>Vh,NormalAnimationBlendMode:()=>ZR,NormalBlending:()=>hm,NotEqualCompare:()=>yhe,NotEqualDepth:()=>jue,NotEqualStencilFunc:()=>qnt,NumberKeyframeTrack:()=>Cl,Object3D:()=>an,ObjectLoader:()=>cU,ObjectSpaceNormalMap:()=>hhe,OctahedronGeometry:()=>bm,OneFactor:()=>Oue,OneMinusDstAlphaFactor:()=>Nue,OneMinusDstColorFactor:()=>Bue,OneMinusSrcAlphaFactor:()=>FU,OneMinusSrcColorFactor:()=>Fue,OrthographicCamera:()=>Ur,PCFShadowMap:()=>OU,PCFSoftShadowMap:()=>Ev,PMREMGenerator:()=>Yh,Path:()=>Ru,PerspectiveCamera:()=>ur,Plane:()=>Gr,PlaneGeometry:()=>ui,PlaneHelper:()=>LU,PointLight:()=>Sc,PointLightHelper:()=>RU,Points:()=>ii,PointsMaterial:()=>xi,PolarGridHelper:()=>CU,PolyhedronGeometry:()=>Au,PositionalAudio:()=>mU,PropertyBinding:()=>Jn,PropertyMixer:()=>GR,QuadraticBezierCurve:()=>Tb,QuadraticBezierCurve3:()=>wb,Quaternion:()=>dr,QuaternionKeyframeTrack:()=>Ga,QuaternionLinearInterpolant:()=>NR,RED_GREEN_RGTC2_Format:()=>CB,RED_RGTC1_Format:()=>ahe,REVISION:()=>WR,RGBADepthPacking:()=>Rv,RGBAFormat:()=>ea,RGBAIntegerFormat:()=>zU,RGBA_ASTC_10x10_Format:()=>SB,RGBA_ASTC_10x5_Format:()=>_B,RGBA_ASTC_10x6_Format:()=>TB,RGBA_ASTC_10x8_Format:()=>wB,RGBA_ASTC_12x10_Format:()=>MB,RGBA_ASTC_12x12_Format:()=>RB,RGBA_ASTC_4x4_Format:()=>pB,RGBA_ASTC_5x4_Format:()=>mB,RGBA_ASTC_5x5_Format:()=>gB,RGBA_ASTC_6x5_Format:()=>vB,RGBA_ASTC_6x6_Format:()=>yB,RGBA_ASTC_8x5_Format:()=>xB,RGBA_ASTC_8x6_Format:()=>bB,RGBA_ASTC_8x8_Format:()=>EB,RGBA_BPTC_Format:()=>fR,RGBA_ETC2_EAC_Format:()=>fB,RGBA_PVRTC_2BPPV1_Format:()=>hB,RGBA_PVRTC_4BPPV1_Format:()=>uB,RGBA_S3TC_DXT1_Format:()=>uR,RGBA_S3TC_DXT3_Format:()=>hR,RGBA_S3TC_DXT5_Format:()=>dR,RGB_ETC1_Format:()=>she,RGB_ETC2_Format:()=>dB,RGB_PVRTC_2BPPV1_Format:()=>cB,RGB_PVRTC_4BPPV1_Format:()=>lB,RGB_S3TC_DXT1_Format:()=>cR,RGFormat:()=>ihe,RGIntegerFormat:()=>VU,RawShaderMaterial:()=>LR,Ray:()=>ho,Raycaster:()=>ia,RectAreaLight:()=>BR,RedFormat:()=>$R,RedIntegerFormat:()=>HU,ReinhardToneMapping:()=>Zue,RenderTarget:()=>xR,RepeatWrapping:()=>Ci,ReplaceStencilOp:()=>Dnt,ReverseSubtractEquation:()=>Due,RingGeometry:()=>mv,SIGNED_RED_GREEN_RGTC2_Format:()=>PB,SIGNED_RED_RGTC1_Format:()=>AB,SRGBColorSpace:()=>tn,Scene:()=>_i,ShaderChunk:()=>$n,ShaderLib:()=>xc,ShaderMaterial:()=>ln,ShadowMaterial:()=>IR,Shape:()=>Ss,ShapeGeometry:()=>Al,ShapePath:()=>Sm,ShapeUtils:()=>qs,ShortType:()=>the,Skeleton:()=>Rl,SkeletonHelper:()=>MU,SkinnedMesh:()=>Su,Source:()=>bc,Sphere:()=>vr,SphereGeometry:()=>za,Spherical:()=>ff,SphericalHarmonics3:()=>UR,SplineCurve:()=>vm,SpotLight:()=>Ou,SpotLightHelper:()=>SU,Sprite:()=>wR,SpriteMaterial:()=>bb,SrcAlphaFactor:()=>kU,SrcAlphaSaturateFactor:()=>Uue,SrcColorFactor:()=>kue,StaticCopyUsage:()=>Knt,StaticDrawUsage:()=>db,StaticReadUsage:()=>Ynt,StereoCamera:()=>fU,StreamCopyUsage:()=>Qnt,StreamDrawUsage:()=>Xnt,StreamReadUsage:()=>Znt,StringKeyframeTrack:()=>ed,SubtractEquation:()=>Lue,SubtractiveBlending:()=>iB,TOUCH:()=>wnt,TangentSpaceNormalMap:()=>mf,TetrahedronGeometry:()=>gv,Texture:()=>qr,TextureLoader:()=>Rs,TorusGeometry:()=>uf,TorusKnotGeometry:()=>vv,Triangle:()=>Zr,TriangleFanDrawMode:()=>Mv,TriangleStripDrawMode:()=>Bb,TrianglesDrawMode:()=>qU,TubeGeometry:()=>yv,TwoPassDoubleSide:()=>Rnt,UVMapping:()=>XR,Uint16BufferAttribute:()=>pm,Uint32BufferAttribute:()=>yb,Uint8BufferAttribute:()=>vb,Uint8ClampedBufferAttribute:()=>NB,Uniform:()=>wm,UniformsGroup:()=>bU,UniformsLib:()=>Jt,UniformsUtils:()=>Ti,UnsignedByteType:()=>Ec,UnsignedInt248Type:()=>bu,UnsignedIntType:()=>Hh,UnsignedShort4444Type:()=>BU,UnsignedShort5551Type:()=>UU,UnsignedShortType:()=>Sv,VSMShadowMap:()=>yu,Vector2:()=>be,Vector3:()=>O,Vector4:()=>gr,VectorKeyframeTrack:()=>qa,VideoTexture:()=>ZB,WebGL1Renderer:()=>TR,WebGL3DRenderTarget:()=>OB,WebGLArrayRenderTarget:()=>DB,WebGLCoordinateSystem:()=>xu,WebGLCubeRenderTarget:()=>ER,WebGLMultipleRenderTargets:()=>kB,WebGLRenderTarget:()=>sr,WebGLRenderer:()=>Ms,WebGLUtils:()=>Phe,WebGPUCoordinateSystem:()=>fb,WireframeGeometry:()=>PR,WrapAroundEnding:()=>hb,ZeroCurvatureEnding:()=>lm,ZeroFactor:()=>pf,ZeroSlopeEnding:()=>cm,ZeroStencilOp:()=>Lnt,_SRGBAFormat:()=>vR,sRGBEncoding:()=>Eu});var WR="155",jR={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},wnt={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Pue=0,rB=1,Iue=2,Snt=3,Mnt=0,OU=1,Ev=2,yu=3,pi=0,Ki=1,Sr=2,Rnt=2,Qr=0,hm=1,_c=2,iB=3,sB=4,Mm=5,qo=100,Lue=101,Due=102,aB=103,oB=104,pf=200,Oue=201,kue=202,Fue=203,kU=204,FU=205,_v=206,Nue=207,Tv=208,Bue=209,Uue=210,Hue=0,Vue=1,zue=2,gR=3,Gue=4,que=5,Wue=6,jue=7,Nb=0,Xue=1,Yue=2,Vh=0,$ue=1,Zue=2,Kue=3,Jue=4,Que=5,XR=300,Gh=301,af=302,fm=303,ub=304,wv=306,Ci=1e3,Ai=1001,qh=1002,Jr=1003,of=1004,Ant=1004,zh=1005,Cnt=1005,Ir=1006,Rm=1007,Pnt=1007,Ua=1008,Int=1008,Ec=1009,ehe=1010,the=1011,Sv=1012,NU=1013,Hh=1014,ga=1015,Rr=1016,BU=1017,UU=1018,bu=1020,nhe=1021,ea=1023,YR=1024,rhe=1025,sf=1026,Wh=1027,$R=1028,HU=1029,ihe=1030,VU=1031,zU=1033,cR=33776,uR=33777,hR=33778,dR=33779,lB=35840,cB=35841,uB=35842,hB=35843,she=36196,dB=37492,fB=37496,pB=37808,mB=37809,gB=37810,vB=37811,yB=37812,xB=37813,bB=37814,EB=37815,_B=37816,TB=37817,wB=37818,SB=37819,MB=37820,RB=37821,fR=36492,ahe=36283,AB=36284,CB=36285,PB=36286,ohe=2200,lhe=2201,che=2202,jh=2300,Tu=2301,pR=2302,lm=2400,cm=2401,hb=2402,ZR=2500,GU=2501,qU=0,Bb=1,Mv=2,WU=3e3,Eu=3001,uhe=3200,Rv=3201,mf=0,hhe=1,_u="",tn="srgb",Ha="srgb-linear",jU="display-p3",Lnt=0,mR=7680,Dnt=7681,Ont=7682,knt=7683,Fnt=34055,Nnt=34056,Bnt=5386,Unt=512,Hnt=513,Vnt=514,znt=515,Gnt=516,qnt=517,Wnt=518,dhe=519,fhe=512,phe=513,mhe=514,ghe=515,vhe=516,yhe=517,xhe=518,bhe=519,db=35044,jnt=35048,Xnt=35040,Ynt=35045,$nt=35049,Znt=35041,Knt=35046,Jnt=35050,Qnt=35042,ert="100",IB="300 es",vR=1035,xu=2e3,fb=2001,jo=class{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});let n=this._listeners;void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(t)&&n[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;let n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;let n=this._listeners[e];if(void 0!==n){let e=n.indexOf(t);-1!==e&&n.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;let t=this._listeners[e.type];if(void 0!==t){e.target=this;let n=t.slice(0);for(let t=0,i=n.length;t>8&255]+pa[e>>16&255]+pa[e>>24&255]+"-"+pa[255&t]+pa[t>>8&255]+"-"+pa[t>>16&15|64]+pa[t>>24&255]+"-"+pa[63&n|128]+pa[n>>8&255]+"-"+pa[n>>16&255]+pa[n>>24&255]+pa[255&i]+pa[i>>8&255]+pa[i>>16&255]+pa[i>>24&255]).toLowerCase()}function cs(e,t,n){return Math.max(t,Math.min(n,e))}function XU(e,t){return(e%t+t)%t}function trt(e,t,n,i,r){return i+(e-t)*(r-i)/(n-t)}function nrt(e,t,n){return e!==t?(n-e)/(t-e):0}function sb(e,t,n){return(1-n)*e+n*t}function rrt(e,t,n,i){return sb(e,t,1-Math.exp(-n*i))}function irt(e,t=1){return t-Math.abs(XU(e,2*t)-t)}function srt(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*(3-2*e)}function art(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*e*(e*(6*e-15)+10)}function ort(e,t){return e+Math.floor(Math.random()*(t-e+1))}function lrt(e,t){return e+Math.random()*(t-e)}function crt(e){return e*(.5-Math.random())}function urt(e){void 0!==e&&(ice=e);let t=ice+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296}function hrt(e){return e*dm}function drt(e){return e*iv}function LB(e){return 0==(e&e-1)&&0!==e}function Ehe(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function yR(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}function frt(e,t,n,i,r){let a=Math.cos,s=Math.sin,o=a(n/2),l=s(n/2),h=a((t+i)/2),c=s((t+i)/2),u=a((t-i)/2),d=s((t-i)/2),p=a((i-t)/2),f=s((i-t)/2);switch(r){case"XYX":e.set(o*c,l*u,l*d,o*h);break;case"YZY":e.set(l*d,o*c,l*u,o*h);break;case"ZXZ":e.set(l*u,l*d,o*c,o*h);break;case"XZX":e.set(o*c,l*f,l*p,o*h);break;case"YXY":e.set(l*p,o*c,l*f,o*h);break;case"ZYZ":e.set(l*f,l*p,o*c,o*h);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function uo(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return e/4294967295;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int32Array:return Math.max(e/2147483647,-1);case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("Invalid component type.")}}function mr(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return Math.round(4294967295*e);case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int32Array:return Math.round(2147483647*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw new Error("Invalid component type.")}}var An={DEG2RAD:dm,RAD2DEG:iv,generateUUID:Wo,clamp:cs,euclideanModulo:XU,mapLinear:trt,inverseLerp:nrt,lerp:sb,damp:rrt,pingpong:irt,smoothstep:srt,smootherstep:art,randInt:ort,randFloat:lrt,randFloatSpread:crt,seededRandom:urt,degToRad:hrt,radToDeg:drt,isPowerOfTwo:LB,ceilPowerOfTwo:Ehe,floorPowerOfTwo:yR,setQuaternionFromProperEuler:frt,normalize:mr,denormalize:uo},be=class{constructor(e=0,t=0){be.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,n=this.y,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6],this.y=i[1]*t+i[4]*n+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(cs(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let n=Math.cos(t),i=Math.sin(t),r=this.x-e.x,a=this.y-e.y;return this.x=r*n-a*i+e.x,this.y=r*i+a*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Ln=class{constructor(e,t,n,i,r,a,s,o,l){Ln.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==e&&this.set(e,t,n,i,r,a,s,o,l)}set(e,t,n,i,r,a,s,o,l){let h=this.elements;return h[0]=e,h[1]=i,h[2]=s,h[3]=t,h[4]=r,h[5]=o,h[6]=n,h[7]=a,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,r=this.elements,a=n[0],s=n[3],o=n[6],l=n[1],h=n[4],c=n[7],u=n[2],d=n[5],p=n[8],f=i[0],m=i[3],g=i[6],v=i[1],y=i[4],x=i[7],b=i[2],_=i[5],w=i[8];return r[0]=a*f+s*v+o*b,r[3]=a*m+s*y+o*_,r[6]=a*g+s*x+o*w,r[1]=l*f+h*v+c*b,r[4]=l*m+h*y+c*_,r[7]=l*g+h*x+c*w,r[2]=u*f+d*v+p*b,r[5]=u*m+d*y+p*_,r[8]=u*g+d*x+p*w,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],h=e[8];return t*a*h-t*s*l-n*r*h+n*s*o+i*r*l-i*a*o}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],h=e[8],c=h*a-s*l,u=s*o-h*r,d=l*r-a*o,p=t*c+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);let f=1/p;return e[0]=c*f,e[1]=(i*l-h*n)*f,e[2]=(s*n-i*a)*f,e[3]=u*f,e[4]=(h*t-i*o)*f,e[5]=(i*r-s*t)*f,e[6]=d*f,e[7]=(n*o-l*t)*f,e[8]=(a*t-n*r)*f,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,i,r,a,s){let o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*a+l*s)+a+e,-i*l,i*o,-i*(-l*a+o*s)+s+t,0,0,1),this}scale(e,t){return this.premultiply(SN.makeScale(e,t)),this}rotate(e){return this.premultiply(SN.makeRotation(-e)),this}translate(e,t){return this.premultiply(SN.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,n=e.elements;for(let i=0;i<9;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return(new this.constructor).fromArray(this.elements)}},SN=new Ln;function _he(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}var prt={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Q0(e,t){return new prt[e](t)}function pb(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}var sce={};function ab(e){e in sce||(sce[e]=!0,console.warn(e))}function nv(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function MN(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}var mrt=(new Ln).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),grt=(new Ln).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);function vrt(e){return e.convertSRGBToLinear().applyMatrix3(grt)}function yrt(e){return e.applyMatrix3(mrt).convertLinearToSRGB()}var xrt={[Ha]:e=>e,[tn]:e=>e.convertSRGBToLinear(),[jU]:vrt},brt={[Ha]:e=>e,[tn]:e=>e.convertLinearToSRGB(),[jU]:yrt},Tl={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(e){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!e},get workingColorSpace(){return Ha},set workingColorSpace(e){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(e,t,n){if(!1===this.enabled||t===n||!t||!n)return e;let i=xrt[t],r=brt[n];if(void 0===i||void 0===r)throw new Error(`Unsupported color space conversion, "${t}" to "${n}".`);return r(i(e))},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)}},I0,mb=class{static getDataURL(e){if(/^data:/i.test(e.src)||"undefined"==typeof HTMLCanvasElement)return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{void 0===I0&&(I0=pb("canvas")),I0.width=e.width,I0.height=e.height;let n=I0.getContext("2d");e instanceof ImageData?n.putImageData(e,0,0):n.drawImage(e,0,0,e.width,e.height),t=I0}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){let t=pb("canvas");t.width=e.width,t.height=e.height;let n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);let i=n.getImageData(0,0,e.width,e.height),r=i.data;for(let e=0;e0&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==XR)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case Ci:e.x=e.x-Math.floor(e.x);break;case Ai:e.x=e.x<0?0:1;break;case qh:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case Ci:e.y=e.y-Math.floor(e.y);break;case Ai:e.y=e.y<0?0:1;break;case qh:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return ab("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===tn?Eu:WU}set encoding(e){ab("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===Eu?tn:_u}};qr.DEFAULT_IMAGE=null,qr.DEFAULT_MAPPING=XR,qr.DEFAULT_ANISOTROPY=1;var gr=class{constructor(e=0,t=0,n=0,i=1){gr.prototype.isVector4=!0,this.x=e,this.y=t,this.z=n,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,r=this.w,a=e.elements;return this.x=a[0]*t+a[4]*n+a[8]*i+a[12]*r,this.y=a[1]*t+a[5]*n+a[9]*i+a[13]*r,this.z=a[2]*t+a[6]*n+a[10]*i+a[14]*r,this.w=a[3]*t+a[7]*n+a[11]*i+a[15]*r,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,i,r,a=e.elements,s=a[0],o=a[4],l=a[8],h=a[1],c=a[5],u=a[9],d=a[2],p=a[6],f=a[10];if(Math.abs(o-h)<.01&&Math.abs(l-d)<.01&&Math.abs(u-p)<.01){if(Math.abs(o+h)<.1&&Math.abs(l+d)<.1&&Math.abs(u+p)<.1&&Math.abs(s+c+f-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;let e=(s+1)/2,a=(c+1)/2,m=(f+1)/2,g=(o+h)/4,v=(l+d)/4,y=(u+p)/4;return e>a&&e>m?e<.01?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(e),i=g/n,r=v/n):a>m?a<.01?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(a),n=g/i,r=y/i):m<.01?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(m),n=v/r,i=y/r),this.set(n,i,r,t),this}let m=Math.sqrt((p-u)*(p-u)+(l-d)*(l-d)+(h-o)*(h-o));return Math.abs(m)<.001&&(m=1),this.x=(p-u)/m,this.y=(l-d)/m,this.z=(h-o)/m,this.w=Math.acos((s+c+f-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},xR=class extends jo{constructor(e=1,t=1,n={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new gr(0,0,e,t),this.scissorTest=!1,this.viewport=new gr(0,0,e,t);let i={width:e,height:t,depth:1};void 0!==n.encoding&&(ab("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),n.colorSpace=n.encoding===Eu?tn:_u),this.texture=new qr(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.internalFormat=void 0!==n.internalFormat?n.internalFormat:null,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:Ir,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null,this.samples=void 0!==n.samples?n.samples:0}setSize(e,t,n=1){(this.width!==e||this.height!==t||this.depth!==n)&&(this.width=e,this.height=t,this.depth=n,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return(new this.constructor).copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;let t=Object.assign({},e.texture.image);return this.texture.source=new bc(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,null!==e.depthTexture&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},sr=class extends xR{constructor(e=1,t=1,n={}){super(e,t,n),this.isWebGLRenderTarget=!0}},sv=class extends qr{constructor(e=null,t=1,n=1,i=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:n,depth:i},this.magFilter=Jr,this.minFilter=Jr,this.wrapR=Ai,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},DB=class extends sr{constructor(e=1,t=1,n=1){super(e,t),this.isWebGLArrayRenderTarget=!0,this.depth=n,this.texture=new sv(null,e,t,n),this.texture.isRenderTargetTexture=!0}},gb=class extends qr{constructor(e=null,t=1,n=1,i=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:n,depth:i},this.magFilter=Jr,this.minFilter=Jr,this.wrapR=Ai,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},OB=class extends sr{constructor(e=1,t=1,n=1){super(e,t),this.isWebGL3DRenderTarget=!0,this.depth=n,this.texture=new gb(null,e,t,n),this.texture.isRenderTargetTexture=!0}},kB=class extends sr{constructor(e=1,t=1,n=1,i={}){super(e,t,i),this.isWebGLMultipleRenderTargets=!0;let r=this.texture;this.texture=[];for(let a=0;a=0?1:-1,i=1-t*t;if(i>Number.EPSILON){let r=Math.sqrt(i),a=Math.atan2(r,t*n);e=Math.sin(e*a)/r,s=Math.sin(s*a)/r}let r=s*n;if(o=o*e+u*r,l=l*e+d*r,h=h*e+p*r,c=c*e+f*r,e===1-s){let e=1/Math.sqrt(o*o+l*l+h*h+c*c);o*=e,l*=e,h*=e,c*=e}}e[t]=o,e[t+1]=l,e[t+2]=h,e[t+3]=c}static multiplyQuaternionsFlat(e,t,n,i,r,a){let s=n[i],o=n[i+1],l=n[i+2],h=n[i+3],c=r[a],u=r[a+1],d=r[a+2],p=r[a+3];return e[t]=s*p+h*c+o*d-l*u,e[t+1]=o*p+h*u+l*c-s*d,e[t+2]=l*p+h*d+s*u-o*c,e[t+3]=h*p-s*c-o*u-l*d,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){let n=e._x,i=e._y,r=e._z,a=e._order,s=Math.cos,o=Math.sin,l=s(n/2),h=s(i/2),c=s(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(a){case"XYZ":this._x=u*h*c+l*d*p,this._y=l*d*c-u*h*p,this._z=l*h*p+u*d*c,this._w=l*h*c-u*d*p;break;case"YXZ":this._x=u*h*c+l*d*p,this._y=l*d*c-u*h*p,this._z=l*h*p-u*d*c,this._w=l*h*c+u*d*p;break;case"ZXY":this._x=u*h*c-l*d*p,this._y=l*d*c+u*h*p,this._z=l*h*p+u*d*c,this._w=l*h*c-u*d*p;break;case"ZYX":this._x=u*h*c-l*d*p,this._y=l*d*c+u*h*p,this._z=l*h*p-u*d*c,this._w=l*h*c+u*d*p;break;case"YZX":this._x=u*h*c+l*d*p,this._y=l*d*c+u*h*p,this._z=l*h*p-u*d*c,this._w=l*h*c-u*d*p;break;case"XZY":this._x=u*h*c-l*d*p,this._y=l*d*c-u*h*p,this._z=l*h*p+u*d*c,this._w=l*h*c+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return!1!==t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,n=t[0],i=t[4],r=t[8],a=t[1],s=t[5],o=t[9],l=t[2],h=t[6],c=t[10],u=n+s+c;if(u>0){let e=.5/Math.sqrt(u+1);this._w=.25/e,this._x=(h-o)*e,this._y=(r-l)*e,this._z=(a-i)*e}else if(n>s&&n>c){let e=2*Math.sqrt(1+n-s-c);this._w=(h-o)/e,this._x=.25*e,this._y=(i+a)/e,this._z=(r+l)/e}else if(s>c){let e=2*Math.sqrt(1+s-n-c);this._w=(r-l)/e,this._x=(i+a)/e,this._y=.25*e,this._z=(o+h)/e}else{let e=2*Math.sqrt(1+c-n-s);this._w=(a-i)/e,this._x=(r+l)/e,this._y=(o+h)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return nMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(cs(this.dot(e),-1,1)))}rotateTowards(e,t){let n=this.angleTo(e);if(0===n)return this;let i=Math.min(1,t/n);return this.slerp(e,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let n=e._x,i=e._y,r=e._z,a=e._w,s=t._x,o=t._y,l=t._z,h=t._w;return this._x=n*h+a*s+i*l-r*o,this._y=i*h+a*o+r*s-n*l,this._z=r*h+a*l+n*o-i*s,this._w=a*h-n*s-i*o-r*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);let n=this._x,i=this._y,r=this._z,a=this._w,s=a*e._w+n*e._x+i*e._y+r*e._z;if(s<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,s=-s):this.copy(e),s>=1)return this._w=a,this._x=n,this._y=i,this._z=r,this;let o=1-s*s;if(o<=Number.EPSILON){let e=1-t;return this._w=e*a+t*this._w,this._x=e*n+t*this._x,this._y=e*i+t*this._y,this._z=e*r+t*this._z,this.normalize(),this._onChangeCallback(),this}let l=Math.sqrt(o),h=Math.atan2(l,s),c=Math.sin((1-t)*h)/l,u=Math.sin(t*h)/l;return this._w=a*c+this._w*u,this._x=n*c+this._x*u,this._y=i*c+this._y*u,this._z=r*c+this._z*u,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){let e=Math.random(),t=Math.sqrt(1-e),n=Math.sqrt(e),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(t*Math.cos(i),n*Math.sin(r),n*Math.cos(r),t*Math.sin(i))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},O=class{constructor(e=0,t=0,n=0){O.prototype.isVector3=!0,this.x=e,this.y=t,this.z=n}set(e,t,n){return void 0===n&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(ace.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(ace.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6]*i,this.y=r[1]*t+r[4]*n+r[7]*i,this.z=r[2]*t+r[5]*n+r[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,r=e.elements,a=1/(r[3]*t+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*t+r[4]*n+r[8]*i+r[12])*a,this.y=(r[1]*t+r[5]*n+r[9]*i+r[13])*a,this.z=(r[2]*t+r[6]*n+r[10]*i+r[14])*a,this}applyQuaternion(e){let t=this.x,n=this.y,i=this.z,r=e.x,a=e.y,s=e.z,o=e.w,l=o*t+a*i-s*n,h=o*n+s*t-r*i,c=o*i+r*n-a*t,u=-r*t-a*n-s*i;return this.x=l*o+u*-r+h*-s-c*-a,this.y=h*o+u*-a+c*-r-l*-s,this.z=c*o+u*-s+l*-a-h*-r,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[4]*n+r[8]*i,this.y=r[1]*t+r[5]*n+r[9]*i,this.z=r[2]*t+r[6]*n+r[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let n=e.x,i=e.y,r=e.z,a=t.x,s=t.y,o=t.z;return this.x=i*o-r*s,this.y=r*a-n*o,this.z=n*s-i*a,this}projectOnVector(e){let t=e.lengthSq();if(0===t)return this.set(0,0,0);let n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return AN.copy(this).projectOnVector(e),this.sub(AN)}reflect(e){return this.sub(AN.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(cs(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){let i=Math.sin(t)*e;return this.x=i*Math.sin(n),this.y=Math.cos(t)*e,this.z=i*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=2*(Math.random()-.5),t=Math.random()*Math.PI*2,n=Math.sqrt(1-Oo(e,2));return this.x=n*Math.cos(t),this.y=n*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},AN=new O,ace=new dr,Ot=class{constructor(e=new O(1/0,1/0,1/0),t=new O(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,Dh),Dh.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Xx),_M.subVectors(this.max,Xx),D0.subVectors(e.a,Xx),O0.subVectors(e.b,Xx),k0.subVectors(e.c,Xx),Qd.subVectors(O0,D0),ef.subVectors(k0,O0),Kp.subVectors(D0,k0);let t=[0,-Qd.z,Qd.y,0,-ef.z,ef.y,0,-Kp.z,Kp.y,Qd.z,0,-Qd.x,ef.z,0,-ef.x,Kp.z,0,-Kp.x,-Qd.y,Qd.x,0,-ef.y,ef.x,0,-Kp.y,Kp.x,0];return!(!CN(t,D0,O0,k0,_M)||(t=[1,0,0,0,1,0,0,0,1],!CN(t,D0,O0,k0,_M)))&&(TM.crossVectors(Qd,ef),t=[TM.x,TM.y,TM.z],CN(t,D0,O0,k0,_M))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Dh).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=.5*this.getSize(Dh).length()),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()||(Lh[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Lh[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Lh[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Lh[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Lh[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Lh[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Lh[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Lh[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Lh)),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},Lh=[new O,new O,new O,new O,new O,new O,new O,new O],Dh=new O,L0=new Ot,D0=new O,O0=new O,k0=new O,Qd=new O,ef=new O,Kp=new O,Xx=new O,_M=new O,TM=new O,Jp=new O;function CN(e,t,n,i,r){for(let a=0,s=e.length-3;a<=s;a+=3){Jp.fromArray(e,a);let s=r.x*Math.abs(Jp.x)+r.y*Math.abs(Jp.y)+r.z*Math.abs(Jp.z),o=t.dot(Jp),l=n.dot(Jp),h=i.dot(Jp);if(Math.max(-Math.max(o,l,h),Math.min(o,l,h))>s)return!1}return!0}var Trt=new Ot,Yx=new O,PN=new O,vr=class{constructor(e=new O,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let n=this.center;void 0!==t?n.copy(t):Trt.setFromPoints(e).getCenter(n);let i=0;for(let r=0,a=e.length;rthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;Yx.subVectors(e,this.center);let t=Yx.lengthSq();if(t>this.radius*this.radius){let e=Math.sqrt(t),n=.5*(e-this.radius);this.center.addScaledVector(Yx,n/e),this.radius+=n}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(PN.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Yx.copy(e.center).add(PN)),this.expandByPoint(Yx.copy(e.center).sub(PN))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}},Oh=new O,IN=new O,wM=new O,tf=new O,LN=new O,SM=new O,DN=new O,ho=class{constructor(e=new O,t=new O(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Oh)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=Oh.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Oh.copy(this.origin).addScaledVector(this.direction,t),Oh.distanceToSquared(e))}distanceSqToSegment(e,t,n,i){IN.copy(e).add(t).multiplyScalar(.5),wM.copy(t).sub(e).normalize(),tf.copy(this.origin).sub(IN);let r,a,s,o,l=.5*e.distanceTo(t),h=-this.direction.dot(wM),c=tf.dot(this.direction),u=-tf.dot(wM),d=tf.lengthSq(),p=Math.abs(1-h*h);if(p>0)if(r=h*u-c,a=h*c-u,o=l*p,r>=0)if(a>=-o)if(a<=o){let e=1/p;r*=e,a*=e,s=r*(r+h*a+2*c)+a*(h*r+a+2*u)+d}else a=l,r=Math.max(0,-(h*a+c)),s=-r*r+a*(a+2*u)+d;else a=-l,r=Math.max(0,-(h*a+c)),s=-r*r+a*(a+2*u)+d;else a<=-o?(r=Math.max(0,-(-h*l+c)),a=r>0?-l:Math.min(Math.max(-l,-u),l),s=-r*r+a*(a+2*u)+d):a<=o?(r=0,a=Math.min(Math.max(-l,-u),l),s=a*(a+2*u)+d):(r=Math.max(0,-(h*l+c)),a=r>0?l:Math.min(Math.max(-l,-u),l),s=-r*r+a*(a+2*u)+d);else a=h>0?-l:l,r=Math.max(0,-(h*a+c)),s=-r*r+a*(a+2*u)+d;return n&&n.copy(this.origin).addScaledVector(this.direction,r),i&&i.copy(IN).addScaledVector(wM,a),s}intersectSphere(e,t){Oh.subVectors(e.center,this.origin);let n=Oh.dot(this.direction),i=Oh.dot(Oh)-n*n,r=e.radius*e.radius;if(i>r)return null;let a=Math.sqrt(r-i),s=n-a,o=n+a;return o<0?null:s<0?this.at(o,t):this.at(s,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;let n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){let n=this.distanceToPlane(e);return null===n?null:this.at(n,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return 0===t||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,i,r,a,s,o,l=1/this.direction.x,h=1/this.direction.y,c=1/this.direction.z,u=this.origin;return l>=0?(n=(e.min.x-u.x)*l,i=(e.max.x-u.x)*l):(n=(e.max.x-u.x)*l,i=(e.min.x-u.x)*l),h>=0?(r=(e.min.y-u.y)*h,a=(e.max.y-u.y)*h):(r=(e.max.y-u.y)*h,a=(e.min.y-u.y)*h),n>a||r>i||((r>n||isNaN(n))&&(n=r),(a=0?(s=(e.min.z-u.z)*c,o=(e.max.z-u.z)*c):(s=(e.max.z-u.z)*c,o=(e.min.z-u.z)*c),n>o||s>i)||((s>n||n!=n)&&(n=s),(o=0?n:i,t)}intersectsBox(e){return null!==this.intersectBox(e,Oh)}intersectTriangle(e,t,n,i,r){LN.subVectors(t,e),SM.subVectors(n,e),DN.crossVectors(LN,SM);let a,s=this.direction.dot(DN);if(s>0){if(i)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}tf.subVectors(this.origin,e);let o=a*this.direction.dot(SM.crossVectors(tf,SM));if(o<0)return null;let l=a*this.direction.dot(LN.cross(tf));if(l<0||o+l>s)return null;let h=-a*tf.dot(DN);return h<0?null:this.at(h/s,r)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}},et=class{constructor(e,t,n,i,r,a,s,o,l,h,c,u,d,p,f,m){et.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==e&&this.set(e,t,n,i,r,a,s,o,l,h,c,u,d,p,f,m)}set(e,t,n,i,r,a,s,o,l,h,c,u,d,p,f,m){let g=this.elements;return g[0]=e,g[4]=t,g[8]=n,g[12]=i,g[1]=r,g[5]=a,g[9]=s,g[13]=o,g[2]=l,g[6]=h,g[10]=c,g[14]=u,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new et).fromArray(this.elements)}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){let t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){let t=this.elements,n=e.elements,i=1/F0.setFromMatrixColumn(e,0).length(),r=1/F0.setFromMatrixColumn(e,1).length(),a=1/F0.setFromMatrixColumn(e,2).length();return t[0]=n[0]*i,t[1]=n[1]*i,t[2]=n[2]*i,t[3]=0,t[4]=n[4]*r,t[5]=n[5]*r,t[6]=n[6]*r,t[7]=0,t[8]=n[8]*a,t[9]=n[9]*a,t[10]=n[10]*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,n=e.x,i=e.y,r=e.z,a=Math.cos(n),s=Math.sin(n),o=Math.cos(i),l=Math.sin(i),h=Math.cos(r),c=Math.sin(r);if("XYZ"===e.order){let e=a*h,n=a*c,i=s*h,r=s*c;t[0]=o*h,t[4]=-o*c,t[8]=l,t[1]=n+i*l,t[5]=e-r*l,t[9]=-s*o,t[2]=r-e*l,t[6]=i+n*l,t[10]=a*o}else if("YXZ"===e.order){let e=o*h,n=o*c,i=l*h,r=l*c;t[0]=e+r*s,t[4]=i*s-n,t[8]=a*l,t[1]=a*c,t[5]=a*h,t[9]=-s,t[2]=n*s-i,t[6]=r+e*s,t[10]=a*o}else if("ZXY"===e.order){let e=o*h,n=o*c,i=l*h,r=l*c;t[0]=e-r*s,t[4]=-a*c,t[8]=i+n*s,t[1]=n+i*s,t[5]=a*h,t[9]=r-e*s,t[2]=-a*l,t[6]=s,t[10]=a*o}else if("ZYX"===e.order){let e=a*h,n=a*c,i=s*h,r=s*c;t[0]=o*h,t[4]=i*l-n,t[8]=e*l+r,t[1]=o*c,t[5]=r*l+e,t[9]=n*l-i,t[2]=-l,t[6]=s*o,t[10]=a*o}else if("YZX"===e.order){let e=a*o,n=a*l,i=s*o,r=s*l;t[0]=o*h,t[4]=r-e*c,t[8]=i*c+n,t[1]=c,t[5]=a*h,t[9]=-s*h,t[2]=-l*h,t[6]=n*c+i,t[10]=e-r*c}else if("XZY"===e.order){let e=a*o,n=a*l,i=s*o,r=s*l;t[0]=o*h,t[4]=-c,t[8]=l*h,t[1]=e*c+r,t[5]=a*h,t[9]=n*c-i,t[2]=i*c-n,t[6]=s*h,t[10]=r*c+e}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(wrt,e,Srt)}lookAt(e,t,n){let i=this.elements;return zo.subVectors(e,t),0===zo.lengthSq()&&(zo.z=1),zo.normalize(),nf.crossVectors(n,zo),0===nf.lengthSq()&&(1===Math.abs(n.z)?zo.x+=1e-4:zo.z+=1e-4,zo.normalize(),nf.crossVectors(n,zo)),nf.normalize(),MM.crossVectors(zo,nf),i[0]=nf.x,i[4]=MM.x,i[8]=zo.x,i[1]=nf.y,i[5]=MM.y,i[9]=zo.y,i[2]=nf.z,i[6]=MM.z,i[10]=zo.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,r=this.elements,a=n[0],s=n[4],o=n[8],l=n[12],h=n[1],c=n[5],u=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],v=n[3],y=n[7],x=n[11],b=n[15],_=i[0],w=i[4],S=i[8],M=i[12],T=i[1],E=i[5],A=i[9],C=i[13],P=i[2],R=i[6],O=i[10],L=i[14],I=i[3],D=i[7],k=i[11],N=i[15];return r[0]=a*_+s*T+o*P+l*I,r[4]=a*w+s*E+o*R+l*D,r[8]=a*S+s*A+o*O+l*k,r[12]=a*M+s*C+o*L+l*N,r[1]=h*_+c*T+u*P+d*I,r[5]=h*w+c*E+u*R+d*D,r[9]=h*S+c*A+u*O+d*k,r[13]=h*M+c*C+u*L+d*N,r[2]=p*_+f*T+m*P+g*I,r[6]=p*w+f*E+m*R+g*D,r[10]=p*S+f*A+m*O+g*k,r[14]=p*M+f*C+m*L+g*N,r[3]=v*_+y*T+x*P+b*I,r[7]=v*w+y*E+x*R+b*D,r[11]=v*S+y*A+x*O+b*k,r[15]=v*M+y*C+x*L+b*N,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[4],i=e[8],r=e[12],a=e[1],s=e[5],o=e[9],l=e[13],h=e[2],c=e[6],u=e[10],d=e[14];return e[3]*(+r*o*c-i*l*c-r*s*u+n*l*u+i*s*d-n*o*d)+e[7]*(+t*o*d-t*l*u+r*a*u-i*a*d+i*l*h-r*o*h)+e[11]*(+t*l*c-t*s*d-r*a*c+n*a*d+r*s*h-n*l*h)+e[15]*(-i*s*h-t*o*c+t*s*u+i*a*c-n*a*u+n*o*h)}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(e,t,n){let i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=t,i[14]=n),this}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],h=e[8],c=e[9],u=e[10],d=e[11],p=e[12],f=e[13],m=e[14],g=e[15],v=c*m*l-f*u*l+f*o*d-s*m*d-c*o*g+s*u*g,y=p*u*l-h*m*l-p*o*d+a*m*d+h*o*g-a*u*g,x=h*f*l-p*c*l+p*s*d-a*f*d-h*s*g+a*c*g,b=p*c*o-h*f*o-p*s*u+a*f*u+h*s*m-a*c*m,_=t*v+n*y+i*x+r*b;if(0===_)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let w=1/_;return e[0]=v*w,e[1]=(f*u*r-c*m*r-f*i*d+n*m*d+c*i*g-n*u*g)*w,e[2]=(s*m*r-f*o*r+f*i*l-n*m*l-s*i*g+n*o*g)*w,e[3]=(c*o*r-s*u*r-c*i*l+n*u*l+s*i*d-n*o*d)*w,e[4]=y*w,e[5]=(h*m*r-p*u*r+p*i*d-t*m*d-h*i*g+t*u*g)*w,e[6]=(p*o*r-a*m*r-p*i*l+t*m*l+a*i*g-t*o*g)*w,e[7]=(a*u*r-h*o*r+h*i*l-t*u*l-a*i*d+t*o*d)*w,e[8]=x*w,e[9]=(p*c*r-h*f*r-p*n*d+t*f*d+h*n*g-t*c*g)*w,e[10]=(a*f*r-p*s*r+p*n*l-t*f*l-a*n*g+t*s*g)*w,e[11]=(h*s*r-a*c*r-h*n*l+t*c*l+a*n*d-t*s*d)*w,e[12]=b*w,e[13]=(h*f*i-p*c*i+p*n*u-t*f*u-h*n*m+t*c*m)*w,e[14]=(p*s*i-a*f*i-p*n*o+t*f*o+a*n*m-t*s*m)*w,e[15]=(a*c*i-h*s*i+h*n*o-t*c*o-a*n*u+t*s*u)*w,this}scale(e){let t=this.elements,n=e.x,i=e.y,r=e.z;return t[0]*=n,t[4]*=i,t[8]*=r,t[1]*=n,t[5]*=i,t[9]*=r,t[2]*=n,t[6]*=i,t[10]*=r,t[3]*=n,t[7]*=i,t[11]*=r,this}getMaxScaleOnAxis(){let e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],i=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,i))}makeTranslation(e,t,n){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let n=Math.cos(t),i=Math.sin(t),r=1-n,a=e.x,s=e.y,o=e.z,l=r*a,h=r*s;return this.set(l*a+n,l*s-i*o,l*o+i*s,0,l*s+i*o,h*s+n,h*o-i*a,0,l*o-i*s,h*o+i*a,r*o*o+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,i,r,a){return this.set(1,n,r,0,e,1,a,0,t,i,1,0,0,0,0,1),this}compose(e,t,n){let i=this.elements,r=t._x,a=t._y,s=t._z,o=t._w,l=r+r,h=a+a,c=s+s,u=r*l,d=r*h,p=r*c,f=a*h,m=a*c,g=s*c,v=o*l,y=o*h,x=o*c,b=n.x,_=n.y,w=n.z;return i[0]=(1-(f+g))*b,i[1]=(d+x)*b,i[2]=(p-y)*b,i[3]=0,i[4]=(d-x)*_,i[5]=(1-(u+g))*_,i[6]=(m+v)*_,i[7]=0,i[8]=(p+y)*w,i[9]=(m-v)*w,i[10]=(1-(u+f))*w,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,t,n){let i=this.elements,r=F0.set(i[0],i[1],i[2]).length(),a=F0.set(i[4],i[5],i[6]).length(),s=F0.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),e.x=i[12],e.y=i[13],e.z=i[14],gc.copy(this);let o=1/r,l=1/a,h=1/s;return gc.elements[0]*=o,gc.elements[1]*=o,gc.elements[2]*=o,gc.elements[4]*=l,gc.elements[5]*=l,gc.elements[6]*=l,gc.elements[8]*=h,gc.elements[9]*=h,gc.elements[10]*=h,t.setFromRotationMatrix(gc),n.x=r,n.y=a,n.z=s,this}makePerspective(e,t,n,i,r,a,s=xu){let o,l,h=this.elements,c=2*r/(t-e),u=2*r/(n-i),d=(t+e)/(t-e),p=(n+i)/(n-i);if(s===xu)o=-(a+r)/(a-r),l=-2*a*r/(a-r);else{if(s!==fb)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+s);o=-a/(a-r),l=-a*r/(a-r)}return h[0]=c,h[4]=0,h[8]=d,h[12]=0,h[1]=0,h[5]=u,h[9]=p,h[13]=0,h[2]=0,h[6]=0,h[10]=o,h[14]=l,h[3]=0,h[7]=0,h[11]=-1,h[15]=0,this}makeOrthographic(e,t,n,i,r,a,s=xu){let o,l,h=this.elements,c=1/(t-e),u=1/(n-i),d=1/(a-r),p=(t+e)*c,f=(n+i)*u;if(s===xu)o=(a+r)*d,l=-2*d;else{if(s!==fb)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+s);o=r*d,l=-1*d}return h[0]=2*c,h[4]=0,h[8]=0,h[12]=-p,h[1]=0,h[5]=2*u,h[9]=0,h[13]=-f,h[2]=0,h[6]=0,h[10]=l,h[14]=-o,h[3]=0,h[7]=0,h[11]=0,h[15]=1,this}equals(e){let t=this.elements,n=e.elements;for(let i=0;i<16;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}},F0=new O,gc=new et,wrt=new O(0,0,0),Srt=new O(1,1,1),nf=new O,MM=new O,zo=new O,oce=new et,lce=new dr,Xn=class{constructor(e=0,t=0,n=0,i=Xn.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=n,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,i=this._order){return this._x=e,this._y=t,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){let i=e.elements,r=i[0],a=i[4],s=i[8],o=i[1],l=i[5],h=i[9],c=i[2],u=i[6],d=i[10];switch(t){case"XYZ":this._y=Math.asin(cs(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-h,d),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-cs(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(s,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-c,r),this._z=0);break;case"ZXY":this._x=Math.asin(cs(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-c,d),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-cs(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(cs(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-c,r)):(this._x=0,this._y=Math.atan2(s,d));break;case"XZY":this._z=Math.asin(-cs(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(s,r)):(this._x=Math.atan2(-h,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===n&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return oce.makeRotationFromQuaternion(e),this.setFromRotationMatrix(oce,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return lce.setFromEuler(this),this.setFromQuaternion(lce,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};Xn.DEFAULT_ORDER="XYZ";var lf=class{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(n=n.concat(r))}return n}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose($x,e,Rrt),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose($x,Art,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);let t=this.children;for(let n=0,i=t.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(e.geometries,this.geometry);let t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){let n=t.shapes;if(Array.isArray(n))for(let t=0,i=n.length;t0){i.children=[];for(let t=0;t0){i.animations=[];for(let t=0;t0&&(n.geometries=t),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),s.length>0&&(n.images=s),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),h.length>0&&(n.animations=h),c.length>0&&(n.nodes=c)}return n.object=i,n;function a(e){let t=[];for(let n in e){let i=e[n];delete i.metadata,t.push(i)}return t}}clone(e){return(new this.constructor).copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(e,t,n,i,r){vc.subVectors(i,t),Fh.subVectors(n,t),ON.subVectors(e,t);let a=vc.dot(vc),s=vc.dot(Fh),o=vc.dot(ON),l=Fh.dot(Fh),h=Fh.dot(ON),c=a*l-s*s;if(0===c)return r.set(-2,-1,-1);let u=1/c,d=(l*o-s*h)*u,p=(a*h-s*o)*u;return r.set(1-d-p,p,d)}static containsPoint(e,t,n,i){return this.getBarycoord(e,t,n,i,Nh),Nh.x>=0&&Nh.y>=0&&Nh.x+Nh.y<=1}static getUV(e,t,n,i,r,a,s,o){return!1===AM&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),AM=!0),this.getInterpolation(e,t,n,i,r,a,s,o)}static getInterpolation(e,t,n,i,r,a,s,o){return this.getBarycoord(e,t,n,i,Nh),o.setScalar(0),o.addScaledVector(r,Nh.x),o.addScaledVector(a,Nh.y),o.addScaledVector(s,Nh.z),o}static isFrontFacing(e,t,n,i){return vc.subVectors(n,t),Fh.subVectors(e,t),vc.cross(Fh).dot(i)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this}setFromAttributeAndIndices(e,t,n,i){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,i),this}clone(){return(new this.constructor).copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return vc.subVectors(this.c,this.b),Fh.subVectors(this.a,this.b),.5*vc.cross(Fh).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Zr.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Zr.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,n,i,r){return!1===AM&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),AM=!0),Zr.getInterpolation(e,this.a,this.b,this.c,t,n,i,r)}getInterpolation(e,t,n,i,r){return Zr.getInterpolation(e,this.a,this.b,this.c,t,n,i,r)}containsPoint(e){return Zr.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Zr.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let n,i,r=this.a,a=this.b,s=this.c;B0.subVectors(a,r),U0.subVectors(s,r),kN.subVectors(e,r);let o=B0.dot(kN),l=U0.dot(kN);if(o<=0&&l<=0)return t.copy(r);FN.subVectors(e,a);let h=B0.dot(FN),c=U0.dot(FN);if(h>=0&&c<=h)return t.copy(a);let u=o*c-h*l;if(u<=0&&o>=0&&h<=0)return n=o/(o-h),t.copy(r).addScaledVector(B0,n);NN.subVectors(e,s);let d=B0.dot(NN),p=U0.dot(NN);if(p>=0&&d<=p)return t.copy(s);let f=d*l-o*p;if(f<=0&&l>=0&&p<=0)return i=l/(l-p),t.copy(r).addScaledVector(U0,i);let m=h*p-d*c;if(m<=0&&c-h>=0&&d-p>=0)return pce.subVectors(s,a),i=(c-h)/(c-h+(d-p)),t.copy(a).addScaledVector(pce,i);let g=1/(m+f+u);return n=f*g,i=u*g,t.copy(r).addScaledVector(B0,n).addScaledVector(U0,i)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},Prt=0,yr=class extends jo{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Prt++}),this.uuid=Wo(),this.name="",this.type="Material",this.blending=hm,this.side=pi,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=kU,this.blendDst=FU,this.blendEquation=qo,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=gR,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=dhe,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=mR,this.stencilZFail=mR,this.stencilZPass=mR,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(let t in e){let n=e[t];if(void 0===n){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}let i=this[t];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[t]=n:console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`)}}toJSON(e){let t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});let n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function i(e){let t=[];for(let n in e){let i=e[n];delete i.metadata,t.push(i)}return t}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==hm&&(n.blending=this.blending),this.side!==pi&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaHash&&(n.alphaHash=this.alphaHash),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(n.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),t){let t=i(e.textures),r=i(e.images);t.length>0&&(n.textures=t),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,n=null;if(null!==t){let e=t.length;n=new Array(e);for(let i=0;i!==e;++i)n[i]=t[i].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){!0===e&&this.version++}},The={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},yc={h:0,s:0,l:0},CM={h:0,s:0,l:0};function BN(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+6*(t-e)*(2/3-n):e}var ct=class{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n)}set(e,t,n){if(void 0===t&&void 0===n){let t=e;t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t)}else this.setRGB(e,t,n);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=tn){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,Tl.toWorkingColorSpace(this,t),this}setRGB(e,t,n,i=Tl.workingColorSpace){return this.r=e,this.g=t,this.b=n,Tl.toWorkingColorSpace(this,i),this}setHSL(e,t,n,i=Tl.workingColorSpace){if(e=XU(e,1),t=cs(t,0,1),n=cs(n,0,1),0===t)this.r=this.g=this.b=n;else{let i=n<=.5?n*(1+t):n+t-n*t,r=2*n-i;this.r=BN(r,i,e+1/3),this.g=BN(r,i,e),this.b=BN(r,i,e-1/3)}return Tl.toWorkingColorSpace(this,i),this}setStyle(e,t=tn){function n(t){void 0!==t&&parseFloat(t)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(e)){let r,a=i[1],s=i[2];switch(a){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,t);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,t);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(e)){let n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,t);if(6===r)return this.setHex(parseInt(n,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=tn){let n=The[e.toLowerCase()];return void 0!==n?this.setHex(n,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=nv(e.r),this.g=nv(e.g),this.b=nv(e.b),this}copyLinearToSRGB(e){return this.r=MN(e.r),this.g=MN(e.g),this.b=MN(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=tn){return Tl.fromWorkingColorSpace(ma.copy(this),e),65536*Math.round(cs(255*ma.r,0,255))+256*Math.round(cs(255*ma.g,0,255))+Math.round(cs(255*ma.b,0,255))}getHexString(e=tn){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Tl.workingColorSpace){Tl.fromWorkingColorSpace(ma.copy(this),t);let n,i,r=ma.r,a=ma.g,s=ma.b,o=Math.max(r,a,s),l=Math.min(r,a,s),h=(l+o)/2;if(l===o)n=0,i=0;else{let e=o-l;switch(i=h<=.5?e/(o+l):e/(2-o-l),o){case r:n=(a-s)/e+(a>-e-14,i[256|l]=1024>>-e-14|32768,r[l]=-e-1,r[256|l]=-e-1):e<=15?(i[l]=e+15<<10,i[256|l]=e+15<<10|32768,r[l]=13,r[256|l]=13):e<128?(i[l]=31744,i[256|l]=64512,r[l]=24,r[256|l]=24):(i[l]=31744,i[256|l]=64512,r[l]=13,r[256|l]=13)}let a=new Uint32Array(2048),s=new Uint32Array(64),o=new Uint32Array(64);for(let l=1;l<1024;++l){let e=l<<13,t=0;for(;!(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,a[l]=e|t}for(let l=1024;l<2048;++l)a[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)s[l]=l<<23;s[31]=1199570944,s[32]=2147483648;for(let l=33;l<63;++l)s[l]=2147483648+(l-32<<23);s[63]=3347054592;for(let l=1;l<64;++l)32!==l&&(o[l]=1024);return{floatView:t,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:a,exponentTable:s,offsetTable:o}}function co(e){Math.abs(e)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=cs(e,-65504,65504),Uh.floatView[0]=e;let t=Uh.uint32View[0],n=t>>23&511;return Uh.baseTable[n]+((8388607&t)>>Uh.shiftTable[n])}function rb(e){let t=e>>10;return Uh.uint32View[0]=Uh.mantissaTable[Uh.offsetTable[t]+(1023&e)]+Uh.exponentTable[t],Uh.floatView[0]}var Av={toHalfFloat:co,fromHalfFloat:rb},ws=new O,PM=new be,mn=class{constructor(e,t,n=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=n,this.usage=db,this.updateRange={offset:0,count:-1},this.gpuType=ga,this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let i=0,r=this.itemSize;i0&&(e.userData=this.userData),void 0!==this.parameters){let t=this.parameters;for(let n in t)void 0!==t[n]&&(e[n]=t[n]);return e}e.data={attributes:{}};let t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let n=this.attributes;for(let o in n){let t=n[o];e.data.attributes[o]=t.toJSON(e.data)}let i={},r=!1;for(let o in this.morphAttributes){let t=this.morphAttributes[o],n=[];for(let i=0,r=t.length;i0&&(i[o]=n,r=!0)}r&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));let s=this.boundingSphere;return null!==s&&(e.data.boundingSphere={center:s.center.toArray(),radius:s.radius}),e}clone(){return(new this.constructor).copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let n=e.index;null!==n&&this.setIndex(n.clone(t));let i=e.attributes;for(let l in i){let e=i[l];this.setAttribute(l,e.clone(t))}let r=e.morphAttributes;for(let l in r){let e=[],n=r[l];for(let i=0,r=n.length;i0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;eOo(e.far-e.near,2)))&&(mce.copy(r).invert(),Qp.copy(e.ray).applyMatrix4(mce),(null===n.boundingBox||!1!==Qp.intersectsBox(n.boundingBox))&&this._computeIntersections(e,t,Qp)))}_computeIntersections(e,t,n){let i,r=this.geometry,a=this.material,s=r.index,o=r.attributes.position,l=r.attributes.uv,h=r.attributes.uv1,c=r.attributes.normal,u=r.groups,d=r.drawRange;if(null!==s)if(Array.isArray(a))for(let p=0,f=u.length;pn.far?null:{distance:h,point:NM.clone(),object:e}}function BM(e,t,n,i,r,a,s,o,l,h){e.getVertexPosition(o,V0),e.getVertexPosition(l,z0),e.getVertexPosition(h,G0);let c=Drt(e,t,n,i,V0,z0,G0,FM);if(c){r&&(DM.fromBufferAttribute(r,o),OM.fromBufferAttribute(r,l),kM.fromBufferAttribute(r,h),c.uv=Zr.getInterpolation(FM,V0,z0,G0,DM,OM,kM,new be)),a&&(DM.fromBufferAttribute(a,o),OM.fromBufferAttribute(a,l),kM.fromBufferAttribute(a,h),c.uv1=Zr.getInterpolation(FM,V0,z0,G0,DM,OM,kM,new be),c.uv2=c.uv1),s&&(vce.fromBufferAttribute(s,o),yce.fromBufferAttribute(s,l),xce.fromBufferAttribute(s,h),c.normal=Zr.getInterpolation(FM,V0,z0,G0,vce,yce,xce,new O),c.normal.dot(i.direction)>0&&c.normal.multiplyScalar(-1));let e={a:o,b:l,c:h,normal:new O,materialIndex:0};Zr.getNormal(V0,z0,G0,e.normal),c.face=e}return c}var va=class extends Dt{constructor(e=1,t=1,n=1,i=1,r=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:i,heightSegments:r,depthSegments:a};let s=this;i=Math.floor(i),r=Math.floor(r),a=Math.floor(a);let o=[],l=[],h=[],c=[],u=0,d=0;function p(e,t,n,i,r,a,p,f,m,g,v){let y=a/m,x=p/g,b=a/2,_=p/2,w=f/2,S=m+1,M=g+1,T=0,E=0,A=new O;for(let s=0;s0?1:-1,h.push(A.x,A.y,A.z),c.push(o/m),c.push(1-s/g),T+=1}}for(let s=0;s0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let n={};for(let i in this.extensions)!0===this.extensions[i]&&(n[i]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}},Xh=class extends an{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new et,this.projectionMatrix=new et,this.projectionMatrixInverse=new et,this.coordinateSystem=xu}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}},ur=class extends Xh{constructor(e=50,t=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=2*iv*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(.5*dm*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*iv*Math.atan(Math.tan(.5*dm*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,n,i,r,a){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(.5*dm*this.fov)/this.zoom,n=2*t,i=this.aspect*n,r=-.5*i,a=this.view;if(null!==this.view&&this.view.enabled){let e=a.fullWidth,s=a.fullHeight;r+=a.offsetX*i/e,t-=a.offsetY*n/s,i*=a.width/e,n*=a.height/s}let s=this.filmOffset;0!==s&&(r+=e*s/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,t,t-n,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}},q0=-90,W0=1,bR=class extends an{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null;let i=new ur(q0,W0,e,t);i.layers=this.layers,this.add(i);let r=new ur(q0,W0,e,t);r.layers=this.layers,this.add(r);let a=new ur(q0,W0,e,t);a.layers=this.layers,this.add(a);let s=new ur(q0,W0,e,t);s.layers=this.layers,this.add(s);let o=new ur(q0,W0,e,t);o.layers=this.layers,this.add(o);let l=new ur(q0,W0,e,t);l.layers=this.layers,this.add(l)}updateCoordinateSystem(){let e=this.coordinateSystem,t=this.children.concat(),[n,i,r,a,s,o]=t;for(let l of t)this.remove(l);if(e===xu)n.up.set(0,1,0),n.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),a.up.set(0,0,1),a.lookAt(0,-1,0),s.up.set(0,1,0),s.lookAt(0,0,1),o.up.set(0,1,0),o.lookAt(0,0,-1);else{if(e!==fb)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);n.up.set(0,-1,0),n.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),a.up.set(0,0,-1),a.lookAt(0,-1,0),s.up.set(0,-1,0),s.lookAt(0,0,1),o.up.set(0,-1,0),o.lookAt(0,0,-1)}for(let l of t)this.add(l),l.updateMatrixWorld()}update(e,t){null===this.parent&&this.updateMatrixWorld();let n=this.renderTarget;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());let[i,r,a,s,o,l]=this.children,h=e.getRenderTarget(),c=e.xr.enabled;e.xr.enabled=!1;let u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0),e.render(t,i),e.setRenderTarget(n,1),e.render(t,r),e.setRenderTarget(n,2),e.render(t,a),e.setRenderTarget(n,3),e.render(t,s),e.setRenderTarget(n,4),e.render(t,o),n.texture.generateMipmaps=u,e.setRenderTarget(n,5),e.render(t,l),e.setRenderTarget(h),e.xr.enabled=c,n.texture.needsPMREMUpdate=!0}},mm=class extends qr{constructor(e,t,n,i,r,a,s,o,l,h){super(e=void 0!==e?e:[],t=void 0!==t?t:Gh,n,i,r,a,s,o,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},ER=class extends sr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;let n={width:e,height:e,depth:1},i=[n,n,n,n,n,n];void 0!==t.encoding&&(ab("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===Eu?tn:_u),this.texture=new mm(i,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:Ir}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let n={tEquirect:{value:null}},i="\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",r="\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t",a=new va(5,5,5),s=new ln({name:"CubemapFromEquirect",uniforms:av(n),vertexShader:i,fragmentShader:r,side:Ki,blending:Qr});s.uniforms.tEquirect.value=t;let o=new xt(a,s),l=t.minFilter;return t.minFilter===Ua&&(t.minFilter=Ir),new bR(1,10,this).update(e,o),t.minFilter=l,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,n,i){let r=e.getRenderTarget();for(let a=0;a<6;a++)e.setRenderTarget(this,a),e.clear(t,n,i);e.setRenderTarget(r)}},VN=new O,Nrt=new O,Brt=new Ln,Gr=class{constructor(e=new O(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,i){return this.normal.set(e,t,n),this.constant=i,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){let i=VN.subVectors(n,t).cross(Nrt.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(i,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){let e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){let n=e.delta(VN),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;let r=-(e.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:t.copy(e.start).addScaledVector(n,r)}intersectsLine(e){let t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){let n=t||Brt.getNormalMatrix(e),i=this.coplanarPoint(VN).applyMatrix4(e),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return(new this.constructor).copy(this)}},em=new vr,UM=new O,ya=class{constructor(e=new Gr,t=new Gr,n=new Gr,i=new Gr,r=new Gr,a=new Gr){this.planes=[e,t,n,i,r,a]}set(e,t,n,i,r,a){let s=this.planes;return s[0].copy(e),s[1].copy(t),s[2].copy(n),s[3].copy(i),s[4].copy(r),s[5].copy(a),this}copy(e){let t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=xu){let n=this.planes,i=e.elements,r=i[0],a=i[1],s=i[2],o=i[3],l=i[4],h=i[5],c=i[6],u=i[7],d=i[8],p=i[9],f=i[10],m=i[11],g=i[12],v=i[13],y=i[14],x=i[15];if(n[0].setComponents(o-r,u-l,m-d,x-g).normalize(),n[1].setComponents(o+r,u+l,m+d,x+g).normalize(),n[2].setComponents(o+a,u+h,m+p,x+v).normalize(),n[3].setComponents(o-a,u-h,m-p,x-v).normalize(),n[4].setComponents(o-s,u-c,m-f,x-y).normalize(),t===xu)n[5].setComponents(o+s,u+c,m+f,x+y).normalize();else{if(t!==fb)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);n[5].setComponents(s,c,f,y).normalize()}return this}intersectsObject(e){if(void 0!==e.boundingSphere)null===e.boundingSphere&&e.computeBoundingSphere(),em.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{let t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere(),em.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(em)}intersectsSprite(e){return em.center.set(0,0,0),em.radius=.7071067811865476,em.applyMatrix4(e.matrixWorld),this.intersectsSphere(em)}intersectsSphere(e){let t=this.planes,n=e.center,i=-e.radius;for(let r=0;r<6;r++)if(t[r].distanceToPoint(n)0?e.max.x:e.min.x,UM.y=i.normal.y>0?e.max.y:e.min.y,UM.z=i.normal.z>0?e.max.z:e.min.z,i.distanceToPoint(UM)<0)return!1}return!0}containsPoint(e){let t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}};function She(){let e=null,t=!1,n=null,i=null;function r(t,a){n(t,a),i=e.requestAnimationFrame(r)}return{start:function(){!0!==t&&null!==n&&(i=e.requestAnimationFrame(r),t=!0)},stop:function(){e.cancelAnimationFrame(i),t=!1},setAnimationLoop:function(e){n=e},setContext:function(t){e=t}}}function Urt(e,t){let n=t.isWebGL2,i=new WeakMap;return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),i.get(e)},remove:function(t){t.isInterleavedBufferAttribute&&(t=t.data);let n=i.get(t);n&&(e.deleteBuffer(n.buffer),i.delete(t))},update:function(t,r){if(t.isGLBufferAttribute){let e=i.get(t);return void((!e||e.version0?n:t).get(v)),null===v?f(h,c):v&&v.isColor&&(f(v,1),g=!0),e.xr.getEnvironmentBlendMode()){case"opaque":g=!0;break;case"additive":i.buffers.color.setClear(0,0,0,1,s),g=!0;break;case"alpha-blend":i.buffers.color.setClear(0,0,0,0,s),g=!0}(e.autoClear||g)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),v&&(v.isCubeTexture||v.mapping===wv)?(void 0===l&&(l=new xt(new va(1,1,1),new ln({name:"BackgroundCubeMaterial",uniforms:av(xc.backgroundCube.uniforms),vertexShader:xc.backgroundCube.vertexShader,fragmentShader:xc.backgroundCube.fragmentShader,side:Ki,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(e,t,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(l)),l.material.uniforms.envMap.value=v,l.material.uniforms.flipEnvMap.value=v.isCubeTexture&&!1===v.isRenderTargetTexture?-1:1,l.material.uniforms.backgroundBlurriness.value=m.backgroundBlurriness,l.material.uniforms.backgroundIntensity.value=m.backgroundIntensity,l.material.toneMapped=v.colorSpace!==tn,(u!==v||d!==v.version||p!==e.toneMapping)&&(l.material.needsUpdate=!0,u=v,d=v.version,p=e.toneMapping),l.layers.enableAll(),a.unshift(l,l.geometry,l.material,0,0,null)):v&&v.isTexture&&(void 0===o&&(o=new xt(new ui(2,2),new ln({name:"BackgroundMaterial",uniforms:av(xc.background.uniforms),vertexShader:xc.background.vertexShader,fragmentShader:xc.background.fragmentShader,side:pi,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute("normal"),Object.defineProperty(o.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(o)),o.material.uniforms.t2D.value=v,o.material.uniforms.backgroundIntensity.value=m.backgroundIntensity,o.material.toneMapped=v.colorSpace!==tn,!0===v.matrixAutoUpdate&&v.updateMatrix(),o.material.uniforms.uvTransform.value.copy(v.matrix),(u!==v||d!==v.version||p!==e.toneMapping)&&(o.material.needsUpdate=!0,u=v,d=v.version,p=e.toneMapping),o.layers.enableAll(),a.unshift(o,o.geometry,o.material,0,0,null))}}}function yat(e,t,n,i){let r=e.getParameter(e.MAX_VERTEX_ATTRIBS),a=i.isWebGL2?null:t.get("OES_vertex_array_object"),s=i.isWebGL2||null!==a,o={},l=p(null),h=l,c=!1;function u(t){return i.isWebGL2?e.bindVertexArray(t):a.bindVertexArrayOES(t)}function d(t){return i.isWebGL2?e.deleteVertexArray(t):a.deleteVertexArrayOES(t)}function p(e){let t=[],n=[],i=[];for(let a=0;a=0){let t=r[l],n=a[l];if(void 0===n&&("instanceMatrix"===l&&e.instanceMatrix&&(n=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(n=e.instanceColor)),void 0===t||t.attribute!==n||n&&t.data!==n.data)return!0;s++}return h.attributesNum!==s||h.index!==i}(r,x,d,b),_&&function(e,t,n,i){let r={},a=t.attributes,s=0,o=n.getAttributes();for(let l in o)if(o[l].location>=0){let t=a[l];void 0===t&&("instanceMatrix"===l&&e.instanceMatrix&&(t=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(t=e.instanceColor));let n={};n.attribute=t,t&&t.data&&(n.data=t.data),r[l]=n,s++}h.attributes=r,h.attributesNum=s,h.index=i}(r,x,d,b)}else{let e=!0===l.wireframe;(h.geometry!==x.id||h.program!==d.id||h.wireframe!==e)&&(h.geometry=x.id,h.program=d.id,h.wireframe=e,_=!0)}null!==b&&n.update(b,e.ELEMENT_ARRAY_BUFFER),(_||c)&&(c=!1,function(r,a,s,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===t.get("ANGLE_instanced_arrays"))return;f();let l=o.attributes,h=s.getAttributes(),c=a.defaultAttributeValues;for(let t in h){let a=h[t];if(a.location>=0){let s=l[t];if(void 0===s&&("instanceMatrix"===t&&r.instanceMatrix&&(s=r.instanceMatrix),"instanceColor"===t&&r.instanceColor&&(s=r.instanceColor)),void 0!==s){let t=s.normalized,l=s.itemSize,h=n.get(s);if(void 0===h)continue;let c=h.buffer,u=h.type,d=h.bytesPerElement,p=!0===i.isWebGL2&&(u===e.INT||u===e.UNSIGNED_INT||s.gpuType===NU);if(s.isInterleavedBufferAttribute){let n=s.data,i=n.stride,h=s.offset;if(n.isInstancedInterleavedBuffer){for(let e=0;e0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let a="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===e.constructor.name,s=void 0!==n.precision?n.precision:"highp",o=r(s);o!==s&&(console.warn("THREE.WebGLRenderer:",s,"not supported, using",o,"instead."),s=o);let l=a||t.has("WEBGL_draw_buffers"),h=!0===n.logarithmicDepthBuffer,c=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),u=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=e.getParameter(e.MAX_TEXTURE_SIZE),p=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),f=e.getParameter(e.MAX_VERTEX_ATTRIBS),m=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),g=e.getParameter(e.MAX_VARYING_VECTORS),v=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),y=u>0,x=a||t.has("OES_texture_float");return{isWebGL2:a,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===t.has("EXT_texture_filter_anisotropic")){let n=t.get("EXT_texture_filter_anisotropic");i=e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:s,logarithmicDepthBuffer:h,maxTextures:c,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:f,maxVertexUniforms:m,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:x,floatVertexTextures:y&&x,maxSamples:a?e.getParameter(e.MAX_SAMPLES):0}}function Eat(e){let t=this,n=null,i=0,r=!1,a=!1,s=new Gr,o=new Ln,l={value:null,needsUpdate:!1};function h(e,n,i,r){let a=null!==e?e.length:0,h=null;if(0!==a){if(h=l.value,!0!==r||null===h){let t=i+4*a,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===h||h.length0),t.numPlanes=i,t.numIntersection=0);else{let e=a?0:i,t=4*e,r=f.clippingState||null;l.value=r,r=h(u,o,t,c);for(let i=0;i!==t;++i)r[i]=n[i];f.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=e}}}function _at(e){let t=new WeakMap;function n(e,t){return t===fm?e.mapping=Gh:t===ub&&(e.mapping=af),e}function i(e){let n=e.target;n.removeEventListener("dispose",i);let r=t.get(n);void 0!==r&&(t.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture&&!1===r.isRenderTargetTexture){let a=r.mapping;if(a===fm||a===ub){if(t.has(r))return n(t.get(r).texture,r.mapping);{let a=r.image;if(a&&a.height>0){let s=new ER(a.height/2);return s.fromEquirectangularTexture(e,r),t.set(r,s),r.addEventListener("dispose",i),n(s.texture,r.mapping)}return null}}}return r},dispose:function(){t=new WeakMap}}}var Ur=class extends Xh{constructor(e=-1,t=1,n=1,i=-1,r=.1,a=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=i,this.near=r,this.far=a,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=null===e.view?null:Object.assign({},e.view),this}setViewOffset(e,t,n,i,r,a){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2,r=n-e,a=n+e,s=i+t,o=i-t;if(null!==this.view&&this.view.enabled){let e=(this.right-this.left)/this.view.fullWidth/this.zoom,t=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=e*this.view.offsetX,a=r+e*this.view.width,s-=t*this.view.offsetY,o=s-t*this.view.height}this.projectionMatrix.makeOrthographic(r,a,s,o,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}},ev=4,bce=[.125,.215,.35,.446,.526,.582],om=20,zN=new Ur,Ece=new ct,GN=null,am=(1+Math.sqrt(5))/2,j0=1/am,_ce=[new O(1,1,1),new O(-1,1,1),new O(1,1,-1),new O(-1,1,-1),new O(0,am,j0),new O(0,am,-j0),new O(j0,0,am),new O(-j0,0,am),new O(am,j0,0),new O(-am,j0,0)],Yh=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,i=100){GN=this._renderer.getRenderTarget(),this._setSize(256);let r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(e,n,i,r),t>0&&this._blur(r,0,0,t),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=Sce(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=wce(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;e2?n:0,n,n),o.setRenderTarget(i),d&&o.render(u,r),o.render(e,r)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=h,o.autoClear=l,e.background=p}_textureToCubeUV(e,t){let n=this._renderer,i=e.mapping===Gh||e.mapping===af;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=Sce()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=wce());let r=i?this._cubemapMaterial:this._equirectMaterial,a=new xt(this._lodPlanes[0],r);r.uniforms.envMap.value=e;let s=this._cubeSize;VM(t,0,0,3*s,2*s),n.setRenderTarget(t),n.render(a,zN)}_applyPMREM(e){let t=this._renderer,n=t.autoClear;t.autoClear=!1;for(let i=1;iom&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${f} samples when the maximum is set to ${om}`);let m=[],g=0;for(let x=0;xv-ev?i-v+ev:0),4*(this._cubeSize-y),3*y,2*y),o.setRenderTarget(t),o.render(h,zN)}};function Tat(e){let t=[],n=[],i=[],r=e,a=e-ev+1+bce.length;for(let s=0;se-ev?o=bce[s-e+ev-1]:0===s&&(o=0),i.push(o);let l=1/(a-2),h=-l,c=1+l,u=[h,h,c,h,c,c,h,h,c,c,h,c],d=6,p=6,f=3,m=2,g=1,v=new Float32Array(f*p*d),y=new Float32Array(m*p*d),x=new Float32Array(g*p*d);for(let e=0;e2?0:-1,i=[t,n,0,t+2/3,n,0,t+2/3,n+1,0,t,n,0,t+2/3,n+1,0,t,n+1,0];v.set(i,f*p*e),y.set(u,m*p*e);let r=[e,e,e,e,e,e];x.set(r,g*p*e)}let b=new Dt;b.setAttribute("position",new mn(v,f)),b.setAttribute("uv",new mn(y,m)),b.setAttribute("faceIndex",new mn(x,g)),t.push(b),r>ev&&r--}return{lodPlanes:t,sizeLods:n,sigmas:i}}function Tce(e,t,n){let i=new sr(e,t,n);return i.texture.mapping=wv,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function VM(e,t,n,i,r){e.viewport.set(t,n,i,r),e.scissor.set(t,n,i,r)}function wat(e,t,n){let i=new Float32Array(om),r=new O(0,1,0);return new ln({name:"SphericalGaussianBlur",defines:{n:om,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:YU(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:Qr,depthTest:!1,depthWrite:!1})}function wce(){return new ln({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:YU(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:Qr,depthTest:!1,depthWrite:!1})}function Sce(){return new ln({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:YU(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:Qr,depthTest:!1,depthWrite:!1})}function YU(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function Sat(e){let t=new WeakMap,n=null;function i(e){let n=e.target;n.removeEventListener("dispose",i);let r=t.get(n);void 0!==r&&(t.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){let a=r.mapping,s=a===fm||a===ub,o=a===Gh||a===af;if(s||o){if(r.isRenderTargetTexture&&!0===r.needsPMREMUpdate){r.needsPMREMUpdate=!1;let i=t.get(r);return null===n&&(n=new Yh(e)),i=s?n.fromEquirectangular(r,i):n.fromCubemap(r,i),t.set(r,i),i.texture}if(t.has(r))return t.get(r).texture;{let a=r.image;if(s&&a&&a.height>0||o&&a&&function(e){let t=0;for(let n=0;n<6;n++)void 0!==e[n]&&t++;return 6===t}(a)){null===n&&(n=new Yh(e));let a=s?n.fromEquirectangular(r):n.fromCubemap(r);return t.set(r,a),r.addEventListener("dispose",i),a.texture}return null}}}return r},dispose:function(){t=new WeakMap,null!==n&&(n.dispose(),n=null)}}}function Mat(e){let t={};function n(n){if(void 0!==t[n])return t[n];let i;switch(n){case"WEBGL_depth_texture":i=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=e.getExtension(n)}return t[n]=i,i}return{has:function(e){return null!==n(e)},init:function(e){e.isWebGL2?n("EXT_color_buffer_float"):(n("WEBGL_depth_texture"),n("OES_texture_float"),n("OES_texture_half_float"),n("OES_texture_half_float_linear"),n("OES_standard_derivatives"),n("OES_element_index_uint"),n("OES_vertex_array_object"),n("ANGLE_instanced_arrays")),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float"),n("WEBGL_multisampled_render_to_texture")},get:function(e){let t=n(e);return null===t&&console.warn("THREE.WebGLRenderer: "+e+" extension not supported."),t}}}function Rat(e,t,n,i){let r={},a=new WeakMap;function s(e){let o=e.target;null!==o.index&&t.remove(o.index);for(let n in o.attributes)t.remove(o.attributes[n]);for(let n in o.morphAttributes){let e=o.morphAttributes[n];for(let n=0,i=e.length;nt.maxTextureSize&&(m=Math.ceil(f/t.maxTextureSize),f=t.maxTextureSize);let g=new Float32Array(f*m*4*r),v=new sv(g,f,m,r);v.type=ga,v.needsUpdate=!0;let y=4*p;for(let t=0;t0)return e;let r=t*n,a=Mce[r];if(void 0===a&&(a=new Float32Array(r),Mce[r]=a),0!==t){i.toArray(a,0);for(let i=1,r=0;i!==t;++i)r+=n,e[i].toArray(a,r)}return a}function Ds(e,t){if(e.length!==t.length)return!1;for(let n=0,i=e.length;n":" "} ${e}: ${n[s]}`)}return i.join("\n")}function Tot(e){switch(e){case Ha:return["Linear","( value )"];case tn:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",e),["Linear","( value )"]}}function Dce(e,t,n){let i=e.getShaderParameter(t,e.COMPILE_STATUS),r=e.getShaderInfoLog(t).trim();if(i&&""===r)return"";let a=/ERROR: 0:(\d+)/.exec(r);if(a){let i=parseInt(a[1]);return n.toUpperCase()+"\n\n"+r+"\n\n"+_ot(e.getShaderSource(t),i)}return r}function wot(e,t){let n=Tot(t);return"vec4 "+e+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function Sot(e,t){let n;switch(t){case $ue:n="Linear";break;case Zue:n="Reinhard";break;case Kue:n="OptimizedCineon";break;case Jue:n="ACESFilmic";break;case Que:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),n="Linear"}return"vec3 "+e+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function Mot(e){return[e.extensionDerivatives||e.envMapCubeUVHeight||e.bumpMap||e.normalMapTangentSpace||e.clearcoatNormalMap||e.flatShading||"physical"===e.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(e.extensionFragDepth||e.logarithmicDepthBuffer)&&e.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",e.extensionDrawBuffers&&e.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(e.extensionShaderTextureLOD||e.envMap||e.transmission)&&e.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(ib).join("\n")}function Rot(e){let t=[];for(let n in e){let i=e[n];!1!==i&&t.push("#define "+n+" "+i)}return t.join("\n")}function Aot(e,t){let n={},i=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function WB(e){return e.replace(Cot,Iot)}var Pot=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function Iot(e,t){let n=$n[t];if(void 0===n){let e=Pot.get(t);if(void 0===e)throw new Error("Can not resolve #include <"+t+">");n=$n[e],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,e)}return WB(n)}var Lot=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Fce(e){return e.replace(Lot,Dot)}function Dot(e,t,n,i){let r="";for(let a=parseInt(t);a0&&(r+="\n"),a=[m,"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,g].filter(ib).join("\n"),a.length>0&&(a+="\n")):(r=[Nce(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,g,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+c:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(ib).join("\n"),a=[m,Nce(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,g,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+u:"",n.envMap?"#define "+d:"",n.envMap?"#define "+p:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+c:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==Vh?"#define TONE_MAPPING":"",n.toneMapping!==Vh?$n.tonemapping_pars_fragment:"",n.toneMapping!==Vh?Sot("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",$n.colorspace_pars_fragment,wot("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(ib).join("\n")),l=WB(l),l=Oce(l,n),l=kce(l,n),h=WB(h),h=Oce(h,n),h=kce(h,n),l=Fce(l),h=Fce(h),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(y="#version 300 es\n",r=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+r,a=["#define varying in",n.glslVersion===IB?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===IB?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+a);let x,b,_=y+r+l,w=y+a+h,S=Lce(s,s.VERTEX_SHADER,_),M=Lce(s,s.FRAGMENT_SHADER,w);if(s.attachShader(v,S),s.attachShader(v,M),void 0!==n.index0AttributeName?s.bindAttribLocation(v,0,n.index0AttributeName):!0===n.morphTargets&&s.bindAttribLocation(v,0,"position"),s.linkProgram(v),e.debug.checkShaderErrors){let t=s.getProgramInfoLog(v).trim(),n=s.getShaderInfoLog(S).trim(),i=s.getShaderInfoLog(M).trim(),o=!0,l=!0;if(!1===s.getProgramParameter(v,s.LINK_STATUS))if(o=!1,"function"==typeof e.debug.onShaderError)e.debug.onShaderError(s,v,S,M);else{let e=Dce(s,S,"vertex"),n=Dce(s,M,"fragment");console.error("THREE.WebGLProgram: Shader Error "+s.getError()+" - VALIDATE_STATUS "+s.getProgramParameter(v,s.VALIDATE_STATUS)+"\n\nProgram Info Log: "+t+"\n"+e+"\n"+n)}else""!==t?console.warn("THREE.WebGLProgram: Program Info Log:",t):(""===n||""===i)&&(l=!1);l&&(this.diagnostics={runnable:o,programLog:t,vertexShader:{log:n,prefix:r},fragmentShader:{log:i,prefix:a}})}return s.deleteShader(S),s.deleteShader(M),this.getUniforms=function(){return void 0===x&&(x=new rv(s,v)),x},this.getAttributes=function(){return void 0===b&&(b=Aot(s,v)),b},this.destroy=function(){i.releaseStatesOfProgram(this),s.deleteProgram(v),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=Eot++,this.cacheKey=t,this.usedTimes=1,this.program=v,this.vertexShader=S,this.fragmentShader=M,this}var Hot=0,jB=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){let t=e.vertexShader,n=e.fragmentShader,i=this._getShaderStage(t),r=this._getShaderStage(n),a=this._getShaderCacheForMaterial(e);return!1===a.has(i)&&(a.add(i),i.usedTimes++),!1===a.has(r)&&(a.add(r),r.usedTimes++),this}remove(e){let t=this.materialCache.get(e);for(let n of t)n.usedTimes--,0===n.usedTimes&&this.shaderCache.delete(n.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){let t=this.materialCache,n=t.get(e);return void 0===n&&(n=new Set,t.set(e,n)),n}_getShaderStage(e){let t=this.shaderCache,n=t.get(e);return void 0===n&&(n=new XB(e),t.set(e,n)),n}},XB=class{constructor(e){this.id=Hot++,this.code=e,this.usedTimes=0}};function Vot(e,t,n,i,r,a,s){let o=new lf,l=new jB,h=[],c=r.isWebGL2,u=r.logarithmicDepthBuffer,d=r.vertexTextures,p=r.precision,f={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function m(e){return 0===e?"uv":`uv${e}`}return{getParameters:function(a,o,h,g,v){let y=g.fog,x=v.geometry,b=a.isMeshStandardMaterial?g.environment:null,_=(a.isMeshStandardMaterial?n:t).get(a.envMap||b),w=_&&_.mapping===wv?_.image.height:null,S=f[a.type];null!==a.precision&&(p=r.getMaxPrecision(a.precision),p!==a.precision&&console.warn("THREE.WebGLProgram.getParameters:",a.precision,"not supported, using",p,"instead."));let M,T,E,A,C=x.morphAttributes.position||x.morphAttributes.normal||x.morphAttributes.color,P=void 0!==C?C.length:0,R=0;if(void 0!==x.morphAttributes.position&&(R=1),void 0!==x.morphAttributes.normal&&(R=2),void 0!==x.morphAttributes.color&&(R=3),S){let e=xc[S];M=e.vertexShader,T=e.fragmentShader}else M=a.vertexShader,T=a.fragmentShader,l.update(a),E=l.getVertexShaderID(a),A=l.getFragmentShaderID(a);let O=e.getRenderTarget(),L=!0===v.isInstancedMesh,I=!!a.map,D=!!a.matcap,k=!!_,N=!!a.aoMap,F=!!a.lightMap,U=!!a.bumpMap,B=!!a.normalMap,z=!!a.displacementMap,H=!!a.emissiveMap,V=!!a.metalnessMap,j=!!a.roughnessMap,G=a.anisotropy>0,W=a.clearcoat>0,X=a.iridescence>0,Y=a.sheen>0,q=a.transmission>0,J=G&&!!a.anisotropyMap,Z=W&&!!a.clearcoatMap,K=W&&!!a.clearcoatNormalMap,$=W&&!!a.clearcoatRoughnessMap,Q=X&&!!a.iridescenceMap,ee=X&&!!a.iridescenceThicknessMap,te=Y&&!!a.sheenColorMap,ne=Y&&!!a.sheenRoughnessMap,ie=!!a.specularMap,re=!!a.specularColorMap,ae=!!a.specularIntensityMap,se=q&&!!a.transmissionMap,oe=q&&!!a.thicknessMap,le=!!a.gradientMap,he=!!a.alphaMap,ce=a.alphaTest>0,ue=!!a.alphaHash,de=!!a.extensions,pe=!!x.attributes.uv1,fe=!!x.attributes.uv2,me=!!x.attributes.uv3,ge=Vh;return a.toneMapped&&(null===O||!0===O.isXRRenderTarget)&&(ge=e.toneMapping),{isWebGL2:c,shaderID:S,shaderType:a.type,shaderName:a.name,vertexShader:M,fragmentShader:T,defines:a.defines,customVertexShaderID:E,customFragmentShaderID:A,isRawShaderMaterial:!0===a.isRawShaderMaterial,glslVersion:a.glslVersion,precision:p,instancing:L,instancingColor:L&&null!==v.instanceColor,supportsVertexTextures:d,outputColorSpace:null===O?e.outputColorSpace:!0===O.isXRRenderTarget?O.texture.colorSpace:Ha,map:I,matcap:D,envMap:k,envMapMode:k&&_.mapping,envMapCubeUVHeight:w,aoMap:N,lightMap:F,bumpMap:U,normalMap:B,displacementMap:d&&z,emissiveMap:H,normalMapObjectSpace:B&&a.normalMapType===hhe,normalMapTangentSpace:B&&a.normalMapType===mf,metalnessMap:V,roughnessMap:j,anisotropy:G,anisotropyMap:J,clearcoat:W,clearcoatMap:Z,clearcoatNormalMap:K,clearcoatRoughnessMap:$,iridescence:X,iridescenceMap:Q,iridescenceThicknessMap:ee,sheen:Y,sheenColorMap:te,sheenRoughnessMap:ne,specularMap:ie,specularColorMap:re,specularIntensityMap:ae,transmission:q,transmissionMap:se,thicknessMap:oe,gradientMap:le,opaque:!1===a.transparent&&a.blending===hm,alphaMap:he,alphaTest:ce,alphaHash:ue,combine:a.combine,mapUv:I&&m(a.map.channel),aoMapUv:N&&m(a.aoMap.channel),lightMapUv:F&&m(a.lightMap.channel),bumpMapUv:U&&m(a.bumpMap.channel),normalMapUv:B&&m(a.normalMap.channel),displacementMapUv:z&&m(a.displacementMap.channel),emissiveMapUv:H&&m(a.emissiveMap.channel),metalnessMapUv:V&&m(a.metalnessMap.channel),roughnessMapUv:j&&m(a.roughnessMap.channel),anisotropyMapUv:J&&m(a.anisotropyMap.channel),clearcoatMapUv:Z&&m(a.clearcoatMap.channel),clearcoatNormalMapUv:K&&m(a.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:$&&m(a.clearcoatRoughnessMap.channel),iridescenceMapUv:Q&&m(a.iridescenceMap.channel),iridescenceThicknessMapUv:ee&&m(a.iridescenceThicknessMap.channel),sheenColorMapUv:te&&m(a.sheenColorMap.channel),sheenRoughnessMapUv:ne&&m(a.sheenRoughnessMap.channel),specularMapUv:ie&&m(a.specularMap.channel),specularColorMapUv:re&&m(a.specularColorMap.channel),specularIntensityMapUv:ae&&m(a.specularIntensityMap.channel),transmissionMapUv:se&&m(a.transmissionMap.channel),thicknessMapUv:oe&&m(a.thicknessMap.channel),alphaMapUv:he&&m(a.alphaMap.channel),vertexTangents:!!x.attributes.tangent&&(B||G),vertexColors:a.vertexColors,vertexAlphas:!0===a.vertexColors&&!!x.attributes.color&&4===x.attributes.color.itemSize,vertexUv1s:pe,vertexUv2s:fe,vertexUv3s:me,pointsUvs:!0===v.isPoints&&!!x.attributes.uv&&(I||he),fog:!!y,useFog:!0===a.fog,fogExp2:y&&y.isFogExp2,flatShading:!0===a.flatShading,sizeAttenuation:!0===a.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===v.isSkinnedMesh,morphTargets:void 0!==x.morphAttributes.position,morphNormals:void 0!==x.morphAttributes.normal,morphColors:void 0!==x.morphAttributes.color,morphTargetsCount:P,morphTextureStride:R,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:a.dithering,shadowMapEnabled:e.shadowMap.enabled&&h.length>0,shadowMapType:e.shadowMap.type,toneMapping:ge,useLegacyLights:e._useLegacyLights,premultipliedAlpha:a.premultipliedAlpha,doubleSided:a.side===Sr,flipSided:a.side===Ki,useDepthPacking:a.depthPacking>=0,depthPacking:a.depthPacking||0,index0AttributeName:a.index0AttributeName,extensionDerivatives:de&&!0===a.extensions.derivatives,extensionFragDepth:de&&!0===a.extensions.fragDepth,extensionDrawBuffers:de&&!0===a.extensions.drawBuffers,extensionShaderTextureLOD:de&&!0===a.extensions.shaderTextureLOD,rendererExtensionFragDepth:c||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:c||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:c||i.has("EXT_shader_texture_lod"),customProgramCacheKey:a.customProgramCacheKey()}},getProgramCacheKey:function(t){let n=[];if(t.shaderID?n.push(t.shaderID):(n.push(t.customVertexShaderID),n.push(t.customFragmentShaderID)),void 0!==t.defines)for(let e in t.defines)n.push(e),n.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(function(e,t){e.push(t.precision),e.push(t.outputColorSpace),e.push(t.envMapMode),e.push(t.envMapCubeUVHeight),e.push(t.mapUv),e.push(t.alphaMapUv),e.push(t.lightMapUv),e.push(t.aoMapUv),e.push(t.bumpMapUv),e.push(t.normalMapUv),e.push(t.displacementMapUv),e.push(t.emissiveMapUv),e.push(t.metalnessMapUv),e.push(t.roughnessMapUv),e.push(t.anisotropyMapUv),e.push(t.clearcoatMapUv),e.push(t.clearcoatNormalMapUv),e.push(t.clearcoatRoughnessMapUv),e.push(t.iridescenceMapUv),e.push(t.iridescenceThicknessMapUv),e.push(t.sheenColorMapUv),e.push(t.sheenRoughnessMapUv),e.push(t.specularMapUv),e.push(t.specularColorMapUv),e.push(t.specularIntensityMapUv),e.push(t.transmissionMapUv),e.push(t.thicknessMapUv),e.push(t.combine),e.push(t.fogExp2),e.push(t.sizeAttenuation),e.push(t.morphTargetsCount),e.push(t.morphAttributeCount),e.push(t.numDirLights),e.push(t.numPointLights),e.push(t.numSpotLights),e.push(t.numSpotLightMaps),e.push(t.numHemiLights),e.push(t.numRectAreaLights),e.push(t.numDirLightShadows),e.push(t.numPointLightShadows),e.push(t.numSpotLightShadows),e.push(t.numSpotLightShadowsWithMaps),e.push(t.shadowMapType),e.push(t.toneMapping),e.push(t.numClippingPlanes),e.push(t.numClipIntersection),e.push(t.depthPacking)}(n,t),function(e,t){o.disableAll(),t.isWebGL2&&o.enable(0),t.supportsVertexTextures&&o.enable(1),t.instancing&&o.enable(2),t.instancingColor&&o.enable(3),t.matcap&&o.enable(4),t.envMap&&o.enable(5),t.normalMapObjectSpace&&o.enable(6),t.normalMapTangentSpace&&o.enable(7),t.clearcoat&&o.enable(8),t.iridescence&&o.enable(9),t.alphaTest&&o.enable(10),t.vertexColors&&o.enable(11),t.vertexAlphas&&o.enable(12),t.vertexUv1s&&o.enable(13),t.vertexUv2s&&o.enable(14),t.vertexUv3s&&o.enable(15),t.vertexTangents&&o.enable(16),t.anisotropy&&o.enable(17),e.push(o.mask),o.disableAll(),t.fog&&o.enable(0),t.useFog&&o.enable(1),t.flatShading&&o.enable(2),t.logarithmicDepthBuffer&&o.enable(3),t.skinning&&o.enable(4),t.morphTargets&&o.enable(5),t.morphNormals&&o.enable(6),t.morphColors&&o.enable(7),t.premultipliedAlpha&&o.enable(8),t.shadowMapEnabled&&o.enable(9),t.useLegacyLights&&o.enable(10),t.doubleSided&&o.enable(11),t.flipSided&&o.enable(12),t.useDepthPacking&&o.enable(13),t.dithering&&o.enable(14),t.transmission&&o.enable(15),t.sheen&&o.enable(16),t.opaque&&o.enable(17),t.pointsUvs&&o.enable(18),e.push(o.mask)}(n,t),n.push(e.outputColorSpace)),n.push(t.customProgramCacheKey),n.join()},getUniforms:function(e){let t,n=f[e.type];if(n){let e=xc[n];t=Ti.clone(e.uniforms)}else t=e.uniforms;return t},acquireProgram:function(t,n){let i;for(let e=0,r=h.length;e0?i.push(c):!0===s.transparent?r.push(c):n.push(c)},unshift:function(e,t,s,o,l,h){let c=a(e,t,s,o,l,h);s.transmission>0?i.unshift(c):!0===s.transparent?r.unshift(c):n.unshift(c)},finish:function(){for(let n=t,i=e.length;n1&&n.sort(e||Got),i.length>1&&i.sort(t||Bce),r.length>1&&r.sort(t||Bce)}}}function qot(){let e=new WeakMap;return{get:function(t,n){let i,r=e.get(t);return void 0===r?(i=new Uce,e.set(t,[i])):n>=r.length?(i=new Uce,r.push(i)):i=r[n],i},dispose:function(){e=new WeakMap}}}function Wot(){let e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let n;switch(t.type){case"DirectionalLight":n={direction:new O,color:new ct};break;case"SpotLight":n={position:new O,direction:new O,color:new ct,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new O,color:new ct,distance:0,decay:0};break;case"HemisphereLight":n={direction:new O,skyColor:new ct,groundColor:new ct};break;case"RectAreaLight":n={color:new ct,position:new O,halfWidth:new O,halfHeight:new O}}return e[t.id]=n,n}}}function jot(){let e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let n;switch(t.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new be};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new be,shadowCameraNear:1,shadowCameraFar:1e3}}return e[t.id]=n,n}}}var Xot=0;function Yot(e,t){return(t.castShadow?2:0)-(e.castShadow?2:0)+(t.map?1:0)-(e.map?1:0)}function $ot(e,t){let n=new Wot,i=jot(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let l=0;l<9;l++)r.probe.push(new O);let a=new O,s=new et,o=new et;return{setup:function(a,s){let o=0,l=0,h=0;for(let e=0;e<9;e++)r.probe[e].set(0,0,0);let c=0,u=0,d=0,p=0,f=0,m=0,g=0,v=0,y=0,x=0;a.sort(Yot);let b=!0===s?Math.PI:1;for(let e=0,t=a.length;e0&&(t.isWebGL2||!0===e.has("OES_texture_float_linear")?(r.rectAreaLTC1=Jt.LTC_FLOAT_1,r.rectAreaLTC2=Jt.LTC_FLOAT_2):!0===e.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Jt.LTC_HALF_1,r.rectAreaLTC2=Jt.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=h;let _=r.hash;(_.directionalLength!==c||_.pointLength!==u||_.spotLength!==d||_.rectAreaLength!==p||_.hemiLength!==f||_.numDirectionalShadows!==m||_.numPointShadows!==g||_.numSpotShadows!==v||_.numSpotMaps!==y)&&(r.directional.length=c,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=f,r.directionalShadow.length=m,r.directionalShadowMap.length=m,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=m,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=v+y-x,r.spotLightMap.length=y,r.numSpotLightShadowsWithMaps=x,_.directionalLength=c,_.pointLength=u,_.spotLength=d,_.rectAreaLength=p,_.hemiLength=f,_.numDirectionalShadows=m,_.numPointShadows=g,_.numSpotShadows=v,_.numSpotMaps=y,r.version=Xot++)},setupView:function(e,t){let n=0,i=0,l=0,h=0,c=0,u=t.matrixWorldInverse;for(let d=0,p=e.length;d=s.length?(a=new Hce(e,t),s.push(a)):a=s[r],a},dispose:function(){n=new WeakMap}}}var Tc=class extends yr{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=uhe,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},xb=class extends yr{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},Kot="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",Jot="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function Qot(e,t,n){let i=new ya,r=new be,a=new be,s=new gr,o=new Tc({depthPacking:Rv}),l=new xb,h={},c=n.maxTextureSize,u={[pi]:Ki,[Ki]:pi,[Sr]:Sr},d=new ln({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new be},radius:{value:4}},vertexShader:Kot,fragmentShader:Jot}),p=d.clone();p.defines.HORIZONTAL_PASS=1;let f=new Dt;f.setAttribute("position",new mn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let m=new xt(f,d),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=OU;let v=this.type;function y(n,i){let a=t.update(m);d.defines.VSM_SAMPLES!==n.blurSamples&&(d.defines.VSM_SAMPLES=n.blurSamples,p.defines.VSM_SAMPLES=n.blurSamples,d.needsUpdate=!0,p.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new sr(r.x,r.y)),d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,e.setRenderTarget(n.mapPass),e.clear(),e.renderBufferDirect(i,null,a,d,m,null),p.uniforms.shadow_pass.value=n.mapPass.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,e.setRenderTarget(n.map),e.clear(),e.renderBufferDirect(i,null,a,p,m,null)}function x(t,n,i,r){let a=null,s=!0===i.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(void 0!==s)a=s;else if(a=!0===i.isPointLight?l:o,e.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){let e=a.uuid,t=n.uuid,i=h[e];void 0===i&&(i={},h[e]=i);let r=i[t];void 0===r&&(r=a.clone(),i[t]=r),a=r}return a.visible=n.visible,a.wireframe=n.wireframe,a.side=r===yu?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:u[n.side],a.alphaMap=n.alphaMap,a.alphaTest=n.alphaTest,a.map=n.map,a.clipShadows=n.clipShadows,a.clippingPlanes=n.clippingPlanes,a.clipIntersection=n.clipIntersection,a.displacementMap=n.displacementMap,a.displacementScale=n.displacementScale,a.displacementBias=n.displacementBias,a.wireframeLinewidth=n.wireframeLinewidth,a.linewidth=n.linewidth,!0===i.isPointLight&&!0===a.isMeshDistanceMaterial&&(e.properties.get(a).light=i),a}function b(n,r,a,s,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===yu)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(a.matrixWorldInverse,n.matrixWorld);let i=t.update(n),r=n.material;if(Array.isArray(r)){let t=i.groups;for(let l=0,h=t.length;lc||r.y>c)&&(r.x>c&&(a.x=Math.floor(c/u.x),r.x=a.x*u.x,h.mapSize.x=a.x),r.y>c&&(a.y=Math.floor(c/u.y),r.y=a.y*u.y,h.mapSize.y=a.y)),null===h.map||!0===p||!0===f){let e=this.type!==yu?{minFilter:Jr,magFilter:Jr}:{};null!==h.map&&h.map.dispose(),h.map=new sr(r.x,r.y,e),h.map.texture.name=l.name+".shadowMap",h.camera.updateProjectionMatrix()}e.setRenderTarget(h.map),e.clear();let g=h.getViewportCount();for(let e=0;e=1):-1!==O.indexOf("OpenGL ES")&&(R=parseFloat(/^OpenGL ES (\d)/.exec(O)[1]),P=R>=2);let L=null,I={},D=e.getParameter(e.SCISSOR_BOX),k=e.getParameter(e.VIEWPORT),N=(new gr).fromArray(D),F=(new gr).fromArray(k);function U(t,n,r,a){let s=new Uint8Array(4),o=e.createTexture();e.bindTexture(t,o),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST);for(let l=0;li||e.height>i)&&(r=i/Math.max(e.width,e.height)),r<1||!0===t){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){let i=t?yR:Math.floor,a=i(r*e.width),s=i(r*e.height);void 0===o&&(o=y(a,s));let l=n?y(a,s):o;return l.width=a,l.height=s,l.getContext("2d").drawImage(e,0,0,a,s),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+e.width+"x"+e.height+") to ("+a+"x"+s+")."),l}return"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+e.width+"x"+e.height+")."),e}return e}function b(e){return LB(e.width)&&LB(e.height)}function _(e,t){return e.generateMipmaps&&t&&e.minFilter!==Jr&&e.minFilter!==Ir}function w(t){e.generateMipmap(t)}function S(n,i,r,a,s=!1){if(!1===l)return i;if(null!==n){if(void 0!==e[n])return e[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let o=i;return i===e.RED&&(r===e.FLOAT&&(o=e.R32F),r===e.HALF_FLOAT&&(o=e.R16F),r===e.UNSIGNED_BYTE&&(o=e.R8)),i===e.RED_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.R8UI),r===e.UNSIGNED_SHORT&&(o=e.R16UI),r===e.UNSIGNED_INT&&(o=e.R32UI),r===e.BYTE&&(o=e.R8I),r===e.SHORT&&(o=e.R16I),r===e.INT&&(o=e.R32I)),i===e.RG&&(r===e.FLOAT&&(o=e.RG32F),r===e.HALF_FLOAT&&(o=e.RG16F),r===e.UNSIGNED_BYTE&&(o=e.RG8)),i===e.RGBA&&(r===e.FLOAT&&(o=e.RGBA32F),r===e.HALF_FLOAT&&(o=e.RGBA16F),r===e.UNSIGNED_BYTE&&(o=a===tn&&!1===s?e.SRGB8_ALPHA8:e.RGBA8),r===e.UNSIGNED_SHORT_4_4_4_4&&(o=e.RGBA4),r===e.UNSIGNED_SHORT_5_5_5_1&&(o=e.RGB5_A1)),(o===e.R16F||o===e.R32F||o===e.RG16F||o===e.RG32F||o===e.RGBA16F||o===e.RGBA32F)&&t.get("EXT_color_buffer_float"),o}function M(e,t,n){return!0===_(e,n)||e.isFramebufferTexture&&e.minFilter!==Jr&&e.minFilter!==Ir?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function T(t){return t===Jr||t===of||t===zh?e.NEAREST:e.LINEAR}function E(e){let t=e.target;t.removeEventListener("dispose",E),function(e){let t=i.get(e);if(void 0===t.__webglInit)return;let n=e.source,r=g.get(n);if(r){let i=r[t.__cacheKey];i.usedTimes--,0===i.usedTimes&&C(e),0===Object.keys(r).length&&g.delete(n)}i.remove(e)}(t),t.isVideoTexture&&m.delete(t)}function A(t){let n=t.target;n.removeEventListener("dispose",A),function(t){let n=t.texture,r=i.get(t),a=i.get(n);if(void 0!==a.__webglTexture&&(e.deleteTexture(a.__webglTexture),s.memory.textures--),t.depthTexture&&t.depthTexture.dispose(),t.isWebGLCubeRenderTarget)for(let i=0;i<6;i++){if(Array.isArray(r.__webglFramebuffer[i]))for(let t=0;t0&&a.__version!==t.version){let e=t.image;if(null===e)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==e.complete)return void N(a,t,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(e.TEXTURE_2D,a.__webglTexture,e.TEXTURE0+r)}let O={[Ci]:e.REPEAT,[Ai]:e.CLAMP_TO_EDGE,[qh]:e.MIRRORED_REPEAT},L={[Jr]:e.NEAREST,[of]:e.NEAREST_MIPMAP_NEAREST,[zh]:e.NEAREST_MIPMAP_LINEAR,[Ir]:e.LINEAR,[Rm]:e.LINEAR_MIPMAP_NEAREST,[Ua]:e.LINEAR_MIPMAP_LINEAR},I={[fhe]:e.NEVER,[bhe]:e.ALWAYS,[phe]:e.LESS,[ghe]:e.LEQUAL,[mhe]:e.EQUAL,[xhe]:e.GEQUAL,[vhe]:e.GREATER,[yhe]:e.NOTEQUAL};function D(n,a,s){if(s?(e.texParameteri(n,e.TEXTURE_WRAP_S,O[a.wrapS]),e.texParameteri(n,e.TEXTURE_WRAP_T,O[a.wrapT]),(n===e.TEXTURE_3D||n===e.TEXTURE_2D_ARRAY)&&e.texParameteri(n,e.TEXTURE_WRAP_R,O[a.wrapR]),e.texParameteri(n,e.TEXTURE_MAG_FILTER,L[a.magFilter]),e.texParameteri(n,e.TEXTURE_MIN_FILTER,L[a.minFilter])):(e.texParameteri(n,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(n,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),(n===e.TEXTURE_3D||n===e.TEXTURE_2D_ARRAY)&&e.texParameteri(n,e.TEXTURE_WRAP_R,e.CLAMP_TO_EDGE),(a.wrapS!==Ai||a.wrapT!==Ai)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),e.texParameteri(n,e.TEXTURE_MAG_FILTER,T(a.magFilter)),e.texParameteri(n,e.TEXTURE_MIN_FILTER,T(a.minFilter)),a.minFilter!==Jr&&a.minFilter!==Ir&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),a.compareFunction&&(e.texParameteri(n,e.TEXTURE_COMPARE_MODE,e.COMPARE_REF_TO_TEXTURE),e.texParameteri(n,e.TEXTURE_COMPARE_FUNC,I[a.compareFunction])),!0===t.has("EXT_texture_filter_anisotropic")){let s=t.get("EXT_texture_filter_anisotropic");if(a.magFilter===Jr||a.minFilter!==zh&&a.minFilter!==Ua||a.type===ga&&!1===t.has("OES_texture_float_linear")||!1===l&&a.type===Rr&&!1===t.has("OES_texture_half_float_linear"))return;(a.anisotropy>1||i.get(a).__currentAnisotropy)&&(e.texParameterf(n,s.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(a.anisotropy,r.getMaxAnisotropy())),i.get(a).__currentAnisotropy=a.anisotropy)}}function k(t,n){let i=!1;void 0===t.__webglInit&&(t.__webglInit=!0,n.addEventListener("dispose",E));let r=n.source,a=g.get(r);void 0===a&&(a={},g.set(r,a));let o=function(e){let t=[];return t.push(e.wrapS),t.push(e.wrapT),t.push(e.wrapR||0),t.push(e.magFilter),t.push(e.minFilter),t.push(e.anisotropy),t.push(e.internalFormat),t.push(e.format),t.push(e.type),t.push(e.generateMipmaps),t.push(e.premultiplyAlpha),t.push(e.flipY),t.push(e.unpackAlignment),t.push(e.colorSpace),t.join()}(n);if(o!==t.__cacheKey){void 0===a[o]&&(a[o]={texture:e.createTexture(),usedTimes:0},s.memory.textures++,i=!0),a[o].usedTimes++;let r=a[t.__cacheKey];void 0!==r&&(a[t.__cacheKey].usedTimes--,0===r.usedTimes&&C(n)),t.__cacheKey=o,t.__webglTexture=a[o].texture}return i}function N(t,r,s){let o=e.TEXTURE_2D;(r.isDataArrayTexture||r.isCompressedArrayTexture)&&(o=e.TEXTURE_2D_ARRAY),r.isData3DTexture&&(o=e.TEXTURE_3D);let h=k(t,r),c=r.source;n.bindTexture(o,t.__webglTexture,e.TEXTURE0+s);let d=i.get(c);if(c.version!==d.__version||!0===h){n.activeTexture(e.TEXTURE0+s),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,r.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,r.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);let t=function(e){return!l&&(e.wrapS!==Ai||e.wrapT!==Ai||e.minFilter!==Jr&&e.minFilter!==Ir)}(r)&&!1===b(r.image),i=x(r.image,t,!1,u);i=V(r,i);let p=b(i)||l,f=a.convert(r.format,r.colorSpace),m=a.convert(r.type),g=S(r.internalFormat,f,m,r.colorSpace);D(o,r,p);let v,y=r.mipmaps,T=l&&!0!==r.isVideoTexture,E=void 0===d.__version||!0===h,A=M(r,i,p);if(r.isDepthTexture)g=e.DEPTH_COMPONENT,l?g=r.type===ga?e.DEPTH_COMPONENT32F:r.type===Hh?e.DEPTH_COMPONENT24:r.type===bu?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT16:r.type===ga&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===sf&&g===e.DEPTH_COMPONENT&&r.type!==Sv&&r.type!==Hh&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=Hh,m=a.convert(r.type)),r.format===Wh&&g===e.DEPTH_COMPONENT&&(g=e.DEPTH_STENCIL,r.type!==bu&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=bu,m=a.convert(r.type))),E&&(T?n.texStorage2D(e.TEXTURE_2D,1,g,i.width,i.height):n.texImage2D(e.TEXTURE_2D,0,g,i.width,i.height,0,f,m,null));else if(r.isDataTexture)if(y.length>0&&p){T&&E&&n.texStorage2D(e.TEXTURE_2D,A,g,y[0].width,y[0].height);for(let t=0,i=y.length;t>=1,r>>=1}}else if(y.length>0&&p){T&&E&&n.texStorage2D(e.TEXTURE_2D,A,g,y[0].width,y[0].height);for(let t=0,i=y.length;t>h),i=Math.max(1,r.height>>h);l===e.TEXTURE_3D||l===e.TEXTURE_2D_ARRAY?n.texImage3D(l,h,d,t,i,r.depth,0,c,u,null):n.texImage2D(l,h,d,t,i,0,c,u,null)}n.bindFramebuffer(e.FRAMEBUFFER,t),H(r)?p.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,o,l,i.get(s).__webglTexture,0,z(r)):(l===e.TEXTURE_2D||l>=e.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=e.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&e.framebufferTexture2D(e.FRAMEBUFFER,o,l,i.get(s).__webglTexture,h),n.bindFramebuffer(e.FRAMEBUFFER,null)}function U(t,n,i){if(e.bindRenderbuffer(e.RENDERBUFFER,t),n.depthBuffer&&!n.stencilBuffer){let r=e.DEPTH_COMPONENT16;if(i||H(n)){let t=n.depthTexture;t&&t.isDepthTexture&&(t.type===ga?r=e.DEPTH_COMPONENT32F:t.type===Hh&&(r=e.DEPTH_COMPONENT24));let i=z(n);H(n)?p.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,i,r,n.width,n.height):e.renderbufferStorageMultisample(e.RENDERBUFFER,i,r,n.width,n.height)}else e.renderbufferStorage(e.RENDERBUFFER,r,n.width,n.height);e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t)}else if(n.depthBuffer&&n.stencilBuffer){let r=z(n);i&&!1===H(n)?e.renderbufferStorageMultisample(e.RENDERBUFFER,r,e.DEPTH24_STENCIL8,n.width,n.height):H(n)?p.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,r,e.DEPTH24_STENCIL8,n.width,n.height):e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,n.width,n.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t)}else{let t=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let r=0;r0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function V(e,n){let i=e.colorSpace,r=e.format,a=e.type;return!0===e.isCompressedTexture||e.format===vR||i!==Ha&&i!==_u&&(i===tn?!1===l?!0===t.has("EXT_sRGB")&&r===ea?(e.format=vR,e.minFilter=Ir,e.generateMipmaps=!1):n=mb.sRGBToLinear(n):(r!==ea||a!==Ec)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",i)),n}this.allocateTextureUnit=function(){let e=P;return e>=h&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+h),P+=1,e},this.resetTextureUnits=function(){P=0},this.setTexture2D=R,this.setTexture2DArray=function(t,r){let a=i.get(t);t.version>0&&a.__version!==t.version?N(a,t,r):n.bindTexture(e.TEXTURE_2D_ARRAY,a.__webglTexture,e.TEXTURE0+r)},this.setTexture3D=function(t,r){let a=i.get(t);t.version>0&&a.__version!==t.version?N(a,t,r):n.bindTexture(e.TEXTURE_3D,a.__webglTexture,e.TEXTURE0+r)},this.setTextureCube=function(t,r){let s=i.get(t);t.version>0&&s.__version!==t.version?function(t,r,s){if(6!==r.image.length)return;let o=k(t,r),h=r.source;n.bindTexture(e.TEXTURE_CUBE_MAP,t.__webglTexture,e.TEXTURE0+s);let u=i.get(h);if(h.version!==u.__version||!0===o){n.activeTexture(e.TEXTURE0+s),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,r.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,r.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);let t=r.isCompressedTexture||r.image[0].isCompressedTexture,i=r.image[0]&&r.image[0].isDataTexture,d=[];for(let e=0;e<6;e++)d[e]=t||i?i?r.image[e].image:r.image[e]:x(r.image[e],!1,!0,c),d[e]=V(r,d[e]);let p,f=d[0],m=b(f)||l,g=a.convert(r.format,r.colorSpace),v=a.convert(r.type),y=S(r.internalFormat,g,v,r.colorSpace),T=l&&!0!==r.isVideoTexture,E=void 0===u.__version||!0===o,A=M(r,f,m);if(D(e.TEXTURE_CUBE_MAP,r,m),t){T&&E&&n.texStorage2D(e.TEXTURE_CUBE_MAP,A,y,f.width,f.height);for(let t=0;t<6;t++){p=d[t].mipmaps;for(let i=0;i0&&A++,n.texStorage2D(e.TEXTURE_CUBE_MAP,A,y,d[0].width,d[0].height));for(let t=0;t<6;t++)if(i){T?n.texSubImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,0,0,d[t].width,d[t].height,g,v,d[t].data):n.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,y,d[t].width,d[t].height,0,g,v,d[t].data);for(let i=0;i0){h.__webglFramebuffer[t]=[];for(let n=0;n0){h.__webglFramebuffer=[];for(let t=0;t0&&!1===H(t)){let i=d?o:[o];h.__webglMultisampledFramebuffer=e.createFramebuffer(),h.__webglColorRenderbuffer=[],n.bindFramebuffer(e.FRAMEBUFFER,h.__webglMultisampledFramebuffer);for(let n=0;n0)for(let i=0;i0)for(let n=0;n0&&!1===H(t)){let r=t.isWebGLMultipleRenderTargets?t.texture:[t.texture],a=t.width,s=t.height,o=e.COLOR_BUFFER_BIT,l=[],h=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,c=i.get(t),u=!0===t.isWebGLMultipleRenderTargets;if(u)for(let t=0;to+h?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&s<=o-h&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==o&&e.gripSpace&&(r=t.getPose(e.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==s&&(i=t.getPose(e.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),s.matrixWorldNeedsUpdate=!0,i.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(i.linearVelocity)):s.hasLinearVelocity=!1,i.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(i.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(nlt)))}return null!==s&&(s.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==a),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){let n=new er;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}},cf=class extends qr{constructor(e,t,n,i,r,a,s,o,l,h){if((h=void 0!==h?h:sf)!==sf&&h!==Wh)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&h===sf&&(n=Hh),void 0===n&&h===Wh&&(n=bu),super(null,i,r,a,s,o,h,n,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=void 0!==s?s:Jr,this.minFilter=void 0!==o?o:Jr,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.compareFunction=e.compareFunction,this}toJSON(e){let t=super.toJSON(e);return null!==this.compareFunction&&(t.compareFunction=this.compareFunction),t}},YB=class extends jo{constructor(e,t){super();let n=this,i=null,r=1,a=null,s="local-floor",o=1,l=null,h=null,c=null,u=null,d=null,p=null,f=t.getContextAttributes(),m=null,g=null,v=[],y=[],x=new ur;x.layers.enable(1),x.viewport=new gr;let b=new ur;b.layers.enable(2),b.viewport=new gr;let _=[x,b],w=new _R;w.layers.enable(1),w.layers.enable(2);let S=null,M=null;function T(e){let t=y.indexOf(e.inputSource);if(-1===t)return;let n=v[t];void 0!==n&&(n.update(e.inputSource,e.frame,l||a),n.dispatchEvent({type:e.type,data:e.inputSource}))}function E(){i.removeEventListener("select",T),i.removeEventListener("selectstart",T),i.removeEventListener("selectend",T),i.removeEventListener("squeeze",T),i.removeEventListener("squeezestart",T),i.removeEventListener("squeezeend",T),i.removeEventListener("end",E),i.removeEventListener("inputsourceschange",A);for(let e=0;e=0&&(y[i]=null,v[i].disconnect(n))}for(let t=0;t=y.length){y.push(n),i=e;break}if(null===y[e]){y[e]=n,i=e;break}}if(-1===i)break}let r=v[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(e){let t=v[e];return void 0===t&&(t=new ob,v[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){let t=v[e];return void 0===t&&(t=new ob,v[e]=t),t.getGripSpace()},this.getHand=function(e){let t=v[e];return void 0===t&&(t=new ob,v[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){r=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){s=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||a},this.setReferenceSpace=function(e){l=e},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return c},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=function(h){return ft(this,null,(function*(){if(i=h,null!==i){if(m=e.getRenderTarget(),i.addEventListener("select",T),i.addEventListener("selectstart",T),i.addEventListener("selectend",T),i.addEventListener("squeeze",T),i.addEventListener("squeezestart",T),i.addEventListener("squeezeend",T),i.addEventListener("end",E),i.addEventListener("inputsourceschange",A),!0!==f.xrCompatible&&(yield t.makeXRCompatible()),void 0===i.renderState.layers||!1===e.capabilities.isWebGL2){let n={antialias:void 0!==i.renderState.layers||f.antialias,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,t,n),i.updateRenderState({baseLayer:d}),g=new sr(d.framebufferWidth,d.framebufferHeight,{format:ea,type:Ec,colorSpace:e.outputColorSpace,stencilBuffer:f.stencil})}else{let n=null,a=null,s=null;f.depth&&(s=f.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,n=f.stencil?Wh:sf,a=f.stencil?bu:Hh);let o={colorFormat:t.RGBA8,depthFormat:s,scaleFactor:r};c=new XRWebGLBinding(i,t),u=c.createProjectionLayer(o),i.updateRenderState({layers:[u]}),g=new sr(u.textureWidth,u.textureHeight,{format:ea,type:Ec,depthTexture:new cf(u.textureWidth,u.textureHeight,a,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:f.stencil,colorSpace:e.outputColorSpace,samples:f.antialias?4:0}),e.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,a=yield i.requestReferenceSpace(s),I.setContext(i),I.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}}))},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode};let C=new O,P=new O;function R(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){if(null===i)return;w.near=b.near=x.near=e.near,w.far=b.far=x.far=e.far,(S!==w.near||M!==w.far)&&(i.updateRenderState({depthNear:w.near,depthFar:w.far}),S=w.near,M=w.far);let t=e.parent,n=w.cameras;R(w,t);for(let i=0;i0&&(i.alphaTest.value=r.alphaTest);let a=t.get(r).envMap;if(a&&(i.envMap.value=a,i.flipEnvMap.value=a.isCubeTexture&&!1===a.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;let t=!0===e._useLegacyLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*t,n(r.lightMap,i.lightMapTransform)}r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity,n(r.aoMap,i.aoMapTransform))}return{refreshFogUniforms:function(t,n){n.color.getRGB(t.fogColor.value,whe(e)),n.isFog?(t.fogNear.value=n.near,t.fogFar.value=n.far):n.isFogExp2&&(t.fogDensity.value=n.density)},refreshMaterialUniforms:function(e,r,a,s,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(e,r):r.isMeshToonMaterial?(i(e,r),function(e,t){t.gradientMap&&(e.gradientMap.value=t.gradientMap)}(e,r)):r.isMeshPhongMaterial?(i(e,r),function(e,t){e.specular.value.copy(t.specular),e.shininess.value=Math.max(t.shininess,1e-4)}(e,r)):r.isMeshStandardMaterial?(i(e,r),function(e,i){e.metalness.value=i.metalness,i.metalnessMap&&(e.metalnessMap.value=i.metalnessMap,n(i.metalnessMap,e.metalnessMapTransform)),e.roughness.value=i.roughness,i.roughnessMap&&(e.roughnessMap.value=i.roughnessMap,n(i.roughnessMap,e.roughnessMapTransform)),t.get(i).envMap&&(e.envMapIntensity.value=i.envMapIntensity)}(e,r),r.isMeshPhysicalMaterial&&function(e,t,i){e.ior.value=t.ior,t.sheen>0&&(e.sheenColor.value.copy(t.sheenColor).multiplyScalar(t.sheen),e.sheenRoughness.value=t.sheenRoughness,t.sheenColorMap&&(e.sheenColorMap.value=t.sheenColorMap,n(t.sheenColorMap,e.sheenColorMapTransform)),t.sheenRoughnessMap&&(e.sheenRoughnessMap.value=t.sheenRoughnessMap,n(t.sheenRoughnessMap,e.sheenRoughnessMapTransform))),t.clearcoat>0&&(e.clearcoat.value=t.clearcoat,e.clearcoatRoughness.value=t.clearcoatRoughness,t.clearcoatMap&&(e.clearcoatMap.value=t.clearcoatMap,n(t.clearcoatMap,e.clearcoatMapTransform)),t.clearcoatRoughnessMap&&(e.clearcoatRoughnessMap.value=t.clearcoatRoughnessMap,n(t.clearcoatRoughnessMap,e.clearcoatRoughnessMapTransform)),t.clearcoatNormalMap&&(e.clearcoatNormalMap.value=t.clearcoatNormalMap,n(t.clearcoatNormalMap,e.clearcoatNormalMapTransform),e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),t.side===Ki&&e.clearcoatNormalScale.value.negate())),t.iridescence>0&&(e.iridescence.value=t.iridescence,e.iridescenceIOR.value=t.iridescenceIOR,e.iridescenceThicknessMinimum.value=t.iridescenceThicknessRange[0],e.iridescenceThicknessMaximum.value=t.iridescenceThicknessRange[1],t.iridescenceMap&&(e.iridescenceMap.value=t.iridescenceMap,n(t.iridescenceMap,e.iridescenceMapTransform)),t.iridescenceThicknessMap&&(e.iridescenceThicknessMap.value=t.iridescenceThicknessMap,n(t.iridescenceThicknessMap,e.iridescenceThicknessMapTransform))),t.transmission>0&&(e.transmission.value=t.transmission,e.transmissionSamplerMap.value=i.texture,e.transmissionSamplerSize.value.set(i.width,i.height),t.transmissionMap&&(e.transmissionMap.value=t.transmissionMap,n(t.transmissionMap,e.transmissionMapTransform)),e.thickness.value=t.thickness,t.thicknessMap&&(e.thicknessMap.value=t.thicknessMap,n(t.thicknessMap,e.thicknessMapTransform)),e.attenuationDistance.value=t.attenuationDistance,e.attenuationColor.value.copy(t.attenuationColor)),t.anisotropy>0&&(e.anisotropyVector.value.set(t.anisotropy*Math.cos(t.anisotropyRotation),t.anisotropy*Math.sin(t.anisotropyRotation)),t.anisotropyMap&&(e.anisotropyMap.value=t.anisotropyMap,n(t.anisotropyMap,e.anisotropyMapTransform))),e.specularIntensity.value=t.specularIntensity,e.specularColor.value.copy(t.specularColor),t.specularColorMap&&(e.specularColorMap.value=t.specularColorMap,n(t.specularColorMap,e.specularColorMapTransform)),t.specularIntensityMap&&(e.specularIntensityMap.value=t.specularIntensityMap,n(t.specularIntensityMap,e.specularIntensityMapTransform))}(e,r,o)):r.isMeshMatcapMaterial?(i(e,r),function(e,t){t.matcap&&(e.matcap.value=t.matcap)}(e,r)):r.isMeshDepthMaterial?i(e,r):r.isMeshDistanceMaterial?(i(e,r),function(e,n){let i=t.get(n).light;e.referencePosition.value.setFromMatrixPosition(i.matrixWorld),e.nearDistance.value=i.shadow.camera.near,e.farDistance.value=i.shadow.camera.far}(e,r)):r.isMeshNormalMaterial?i(e,r):r.isLineBasicMaterial?(function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,t.map&&(e.map.value=t.map,n(t.map,e.mapTransform))}(e,r),r.isLineDashedMaterial&&function(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}(e,r)):r.isPointsMaterial?function(e,t,i,r){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.size.value=t.size*i,e.scale.value=.5*r,t.map&&(e.map.value=t.map,n(t.map,e.uvTransform)),t.alphaMap&&(e.alphaMap.value=t.alphaMap,n(t.alphaMap,e.alphaMapTransform)),t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,r,a,s):r.isSpriteMaterial?function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.rotation.value=t.rotation,t.map&&(e.map.value=t.map,n(t.map,e.mapTransform)),t.alphaMap&&(e.alphaMap.value=t.alphaMap,n(t.alphaMap,e.alphaMapTransform)),t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,r):r.isShadowMaterial?(e.color.value.copy(r.color),e.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function ilt(e,t,n,i){let r={},a={},s=[],o=n.isWebGL2?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(e,t,n){let i=e.value;if(void 0===n[t]){if("number"==typeof i)n[t]=i;else{let e=Array.isArray(i)?i:[i],r=[];for(let t=0;t0&&(i=n%16,0!==i&&16-i-a.boundary<0&&(n+=16-i,e.__offset=n)),n+=a.storage}i=n%16,i>0&&(n+=16-i),e.__size=n,e.__cache={}}(n),d=function(t){let n=function(){for(let e=0;e0),u=!!n.morphAttributes.position,d=!!n.morphAttributes.normal,p=!!n.morphAttributes.color,f=Vh;i.toneMapped&&(null===w||!0===w.isXRRenderTarget)&&(f=y.toneMapping);let g=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,v=void 0!==g?g.length:0,x=$.get(i),b=m.state.lights;if(!0===z&&(!0===H||e!==M)){let t=e===M&&i.id===S;he.setState(i,e,t)}let _=!1;i.version===x.__version?(x.needsLights&&x.lightsStateVersion!==b.state.version||x.outputColorSpace!==o||r.isInstancedMesh&&!1===x.instancing||!r.isInstancedMesh&&!0===x.instancing||r.isSkinnedMesh&&!1===x.skinning||!r.isSkinnedMesh&&!0===x.skinning||r.isInstancedMesh&&!0===x.instancingColor&&null===r.instanceColor||r.isInstancedMesh&&!1===x.instancingColor&&null!==r.instanceColor||x.envMap!==l||!0===i.fog&&x.fog!==a||void 0!==x.numClippingPlanes&&(x.numClippingPlanes!==he.numPlanes||x.numIntersection!==he.numIntersection)||x.vertexAlphas!==h||x.vertexTangents!==c||x.morphTargets!==u||x.morphNormals!==d||x.morphColors!==p||x.toneMapping!==f||!0===J.isWebGL2&&x.morphTargetsCount!==v)&&(_=!0):(_=!0,x.__version=i.version);let T=x.currentProgram;!0===_&&(T=ke(i,t,r));let E=!1,A=!1,C=!1,P=T.getUniforms(),R=x.uniforms;if(Z.useProgram(T.program)&&(E=!0,A=!0,C=!0),i.id!==S&&(S=i.id,A=!0),E||M!==e){if(P.setValue(ye,"projectionMatrix",e.projectionMatrix),J.logarithmicDepthBuffer&&P.setValue(ye,"logDepthBufFC",2/(Math.log(e.far+1)/Math.LN2)),M!==e&&(M=e,A=!0,C=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshStandardMaterial||i.envMap){let t=P.map.cameraPosition;void 0!==t&&t.setValue(ye,W.setFromMatrixPosition(e.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&P.setValue(ye,"isOrthographic",!0===e.isOrthographicCamera),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.isShadowMaterial||r.isSkinnedMesh)&&P.setValue(ye,"viewMatrix",e.matrixWorldInverse)}if(r.isSkinnedMesh){P.setOptional(ye,r,"bindMatrix"),P.setOptional(ye,r,"bindMatrixInverse");let e=r.skeleton;e&&(J.floatVertexTextures?(null===e.boneTexture&&e.computeBoneTexture(),P.setValue(ye,"boneTexture",e.boneTexture,Q),P.setValue(ye,"boneTextureSize",e.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}let O=n.morphAttributes;if((void 0!==O.position||void 0!==O.normal||void 0!==O.color&&!0===J.isWebGL2)&&de.update(r,n,T),(A||x.receiveShadow!==r.receiveShadow)&&(x.receiveShadow=r.receiveShadow,P.setValue(ye,"receiveShadow",r.receiveShadow)),i.isMeshGouraudMaterial&&null!==i.envMap&&(R.envMap.value=l,R.flipEnvMap.value=l.isCubeTexture&&!1===l.isRenderTargetTexture?-1:1),A&&(P.setValue(ye,"toneMappingExposure",y.toneMappingExposure),x.needsLights&&function(e,t){e.ambientLightColor.needsUpdate=t,e.lightProbe.needsUpdate=t,e.directionalLights.needsUpdate=t,e.directionalLightShadows.needsUpdate=t,e.pointLights.needsUpdate=t,e.pointLightShadows.needsUpdate=t,e.spotLights.needsUpdate=t,e.spotLightShadows.needsUpdate=t,e.rectAreaLights.needsUpdate=t,e.hemisphereLights.needsUpdate=t}(R,C),a&&!0===i.fog&&se.refreshFogUniforms(R,a),se.refreshMaterialUniforms(R,i,I,L,V),rv.upload(ye,x.uniformsList,R,Q)),i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(rv.upload(ye,x.uniformsList,R,Q),i.uniformsNeedUpdate=!1),i.isSpriteMaterial&&P.setValue(ye,"center",r.center),P.setValue(ye,"modelViewMatrix",r.modelViewMatrix),P.setValue(ye,"normalMatrix",r.normalMatrix),P.setValue(ye,"modelMatrix",r.matrixWorld),i.isShaderMaterial||i.isRawShaderMaterial){let e=i.uniformsGroups;for(let t=0,n=e.length;t0&&function(e,t,n,i){let r=J.isWebGL2;null===V&&(V=new sr(1,1,{generateMipmaps:!0,type:q.has("EXT_color_buffer_half_float")?Rr:Ec,minFilter:Ua,samples:r?4:0})),y.getDrawingBufferSize(G),r?V.setSize(G.x,G.y):V.setSize(yR(G.x),yR(G.y));let a=y.getRenderTarget();y.setRenderTarget(V),y.getClearColor(C),P=y.getClearAlpha(),P<1&&y.setClearColor(16777215,.5),y.clear();let s=y.toneMapping;y.toneMapping=Vh,Ie(e,n,i),Q.updateMultisampleRenderTarget(V),Q.updateRenderTargetMipmap(V);let o=!1;for(let l=0,h=t.length;l0&&Ie(r,t,n),a.length>0&&Ie(a,t,n),s.length>0&&Ie(s,t,n),Z.buffers.depth.setTest(!0),Z.buffers.depth.setMask(!0),Z.buffers.color.setMask(!0),Z.setPolygonOffset(!1)}function Ie(e,t,n){let i=!0===t.isScene?t.overrideMaterial:null;for(let r=0,a=e.length;r0?v[v.length-1]:null,g.pop(),f=g.length>0?g[g.length-1]:null},this.getActiveCubeFace=function(){return b},this.getActiveMipmapLevel=function(){return _},this.getRenderTarget=function(){return w},this.setRenderTargetTextures=function(e,t,n){$.get(e.texture).__webglTexture=t,$.get(e.depthTexture).__webglTexture=n;let i=$.get(e);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===q.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(e,t){let n=$.get(e);n.__webglFramebuffer=t,n.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,n=0){w=e,b=t,_=n;let i=!0,r=null,a=!1,s=!1;if(e){let o=$.get(e);void 0!==o.__useDefaultFramebuffer?(Z.bindFramebuffer(ye.FRAMEBUFFER,null),i=!1):void 0===o.__webglFramebuffer?Q.setupRenderTarget(e):o.__hasExternalTextures&&Q.rebindTextures(e,$.get(e.texture).__webglTexture,$.get(e.depthTexture).__webglTexture);let l=e.texture;(l.isData3DTexture||l.isDataArrayTexture||l.isCompressedArrayTexture)&&(s=!0);let h=$.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(r=Array.isArray(h[t])?h[t][n]:h[t],a=!0):r=J.isWebGL2&&e.samples>0&&!1===Q.useMultisampledRTT(e)?$.get(e).__webglMultisampledFramebuffer:Array.isArray(h)?h[n]:h,T.copy(e.viewport),E.copy(e.scissor),A=e.scissorTest}else T.copy(N).multiplyScalar(I).floor(),E.copy(F).multiplyScalar(I).floor(),A=U;if(Z.bindFramebuffer(ye.FRAMEBUFFER,r)&&J.drawBuffers&&i&&Z.drawBuffers(e,r),Z.viewport(T),Z.scissor(E),Z.setScissorTest(A),a){let i=$.get(e.texture);ye.framebufferTexture2D(ye.FRAMEBUFFER,ye.COLOR_ATTACHMENT0,ye.TEXTURE_CUBE_MAP_POSITIVE_X+t,i.__webglTexture,n)}else if(s){let i=$.get(e.texture),r=t||0;ye.framebufferTextureLayer(ye.FRAMEBUFFER,ye.COLOR_ATTACHMENT0,i.__webglTexture,n||0,r)}S=-1},this.readRenderTargetPixels=function(e,t,n,i,r,a,s){if(!e||!e.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=$.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==s&&(o=o[s]),o){Z.bindFramebuffer(ye.FRAMEBUFFER,o);try{let s=e.texture,o=s.format,l=s.type;if(o!==ea&&me.convert(o)!==ye.getParameter(ye.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");let h=l===Rr&&(q.has("EXT_color_buffer_half_float")||J.isWebGL2&&q.has("EXT_color_buffer_float"));if(!(l===Ec||me.convert(l)===ye.getParameter(ye.IMPLEMENTATION_COLOR_READ_TYPE)||l===ga&&(J.isWebGL2||q.has("OES_texture_float")||q.has("WEBGL_color_buffer_float"))||h))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-i&&n>=0&&n<=e.height-r&&ye.readPixels(t,n,i,r,me.convert(o),me.convert(l),a)}finally{let e=null!==w?$.get(w).__webglFramebuffer:null;Z.bindFramebuffer(ye.FRAMEBUFFER,e)}}},this.copyFramebufferToTexture=function(e,t,n=0){let i=Math.pow(2,-n),r=Math.floor(t.image.width*i),a=Math.floor(t.image.height*i);Q.setTexture2D(t,0),ye.copyTexSubImage2D(ye.TEXTURE_2D,n,0,0,e.x,e.y,r,a),Z.unbindTexture()},this.copyTextureToTexture=function(e,t,n,i=0){let r=t.image.width,a=t.image.height,s=me.convert(n.format),o=me.convert(n.type);Q.setTexture2D(n,0),ye.pixelStorei(ye.UNPACK_FLIP_Y_WEBGL,n.flipY),ye.pixelStorei(ye.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),ye.pixelStorei(ye.UNPACK_ALIGNMENT,n.unpackAlignment),t.isDataTexture?ye.texSubImage2D(ye.TEXTURE_2D,i,e.x,e.y,r,a,s,o,t.image.data):t.isCompressedTexture?ye.compressedTexSubImage2D(ye.TEXTURE_2D,i,e.x,e.y,t.mipmaps[0].width,t.mipmaps[0].height,s,t.mipmaps[0].data):ye.texSubImage2D(ye.TEXTURE_2D,i,e.x,e.y,s,o,t.image),0===i&&n.generateMipmaps&&ye.generateMipmap(ye.TEXTURE_2D),Z.unbindTexture()},this.copyTextureToTexture3D=function(e,t,n,i,r=0){if(y.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");let a,s=e.max.x-e.min.x+1,o=e.max.y-e.min.y+1,l=e.max.z-e.min.z+1,h=me.convert(i.format),c=me.convert(i.type);if(i.isData3DTexture)Q.setTexture3D(i,0),a=ye.TEXTURE_3D;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Q.setTexture2DArray(i,0),a=ye.TEXTURE_2D_ARRAY}ye.pixelStorei(ye.UNPACK_FLIP_Y_WEBGL,i.flipY),ye.pixelStorei(ye.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),ye.pixelStorei(ye.UNPACK_ALIGNMENT,i.unpackAlignment);let u=ye.getParameter(ye.UNPACK_ROW_LENGTH),d=ye.getParameter(ye.UNPACK_IMAGE_HEIGHT),p=ye.getParameter(ye.UNPACK_SKIP_PIXELS),f=ye.getParameter(ye.UNPACK_SKIP_ROWS),m=ye.getParameter(ye.UNPACK_SKIP_IMAGES),g=n.isCompressedTexture?n.mipmaps[0]:n.image;ye.pixelStorei(ye.UNPACK_ROW_LENGTH,g.width),ye.pixelStorei(ye.UNPACK_IMAGE_HEIGHT,g.height),ye.pixelStorei(ye.UNPACK_SKIP_PIXELS,e.min.x),ye.pixelStorei(ye.UNPACK_SKIP_ROWS,e.min.y),ye.pixelStorei(ye.UNPACK_SKIP_IMAGES,e.min.z),n.isDataTexture||n.isData3DTexture?ye.texSubImage3D(a,r,t.x,t.y,t.z,s,o,l,h,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),ye.compressedTexSubImage3D(a,r,t.x,t.y,t.z,s,o,l,h,g.data)):ye.texSubImage3D(a,r,t.x,t.y,t.z,s,o,l,h,c,g),ye.pixelStorei(ye.UNPACK_ROW_LENGTH,u),ye.pixelStorei(ye.UNPACK_IMAGE_HEIGHT,d),ye.pixelStorei(ye.UNPACK_SKIP_PIXELS,p),ye.pixelStorei(ye.UNPACK_SKIP_ROWS,f),ye.pixelStorei(ye.UNPACK_SKIP_IMAGES,m),0===r&&i.generateMipmaps&&ye.generateMipmap(a),Z.unbindTexture()},this.initTexture=function(e){e.isCubeTexture?Q.setTextureCube(e,0):e.isData3DTexture?Q.setTexture3D(e,0):e.isDataArrayTexture||e.isCompressedArrayTexture?Q.setTexture2DArray(e,0):Q.setTexture2D(e,0),Z.unbindTexture()},this.resetState=function(){b=0,_=0,w=null,Z.reset(),ge.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return xu}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(e){console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!e}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===tn?Eu:WU}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===Eu?tn:Ha}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}},TR=class extends Ms{};TR.prototype.isWebGL1Renderer=!0;var ov=class{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new ct(e),this.density=t}clone(){return new ov(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}},wu=class{constructor(e,t=1,n=1e3){this.isFog=!0,this.name="",this.color=new ct(e),this.near=t,this.far=n}clone(){return new wu(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}},_i=class extends an{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t}},$h=class{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=db,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Wo()}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,n){e*=this.stride,n*=t.stride;for(let i=0,r=this.stride;ie.far||t.push({distance:o,point:Kx.clone(),uv:Zr.getInterpolation(Kx,zM,Qx,GM,Vce,WN,zce,new be),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}};function qM(e,t,n,i,r,a){Z0.subVectors(e,n).addScalar(.5).multiply(i),void 0!==r?(Jx.x=a*Z0.x-r*Z0.y,Jx.y=r*Z0.x+a*Z0.y):Jx.copy(Z0),e.copy(t),e.x+=Jx.x,e.y+=Jx.y,e.applyMatrix4(Ihe)}var WM=new O,Gce=new O,SR=class extends an{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);let t=e.levels;for(let n=0,i=t.length;n0){let n,i;for(n=1,i=t.length;n0){WM.setFromMatrixPosition(this.matrixWorld);let n=e.ray.origin.distanceTo(WM);this.getObjectForDistance(n).raycast(e,t)}}update(e){let t=this.levels;if(t.length>1){WM.setFromMatrixPosition(e.matrixWorld),Gce.setFromMatrixPosition(this.matrixWorld);let n,i,r=WM.distanceTo(Gce)/e.zoom;for(t[0].object.visible=!0,n=1,i=t.length;n=e))break;t[n-1].object.visible=!1,t[n].object.visible=!0}for(this._currentLevel=n-1;no)continue;u.applyMatrix4(this.matrixWorld);let r=e.ray.origin.distanceTo(u);re.far||t.push({distance:r,point:c.clone().applyMatrix4(this.matrixWorld),index:m,face:null,faceIndex:null,object:this})}else for(let m=Math.max(0,a.start),g=Math.min(f.count,a.start+a.count)-1;mo)continue;u.applyMatrix4(this.matrixWorld);let n=e.ray.origin.distanceTo(u);ne.far||t.push({distance:n,point:c.clone().applyMatrix4(this.matrixWorld),index:m,face:null,faceIndex:null,object:this})}}updateMorphTargets(){let e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;e0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;er.far)return;a.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:t,face:null,object:s})}}var ZB=class extends qr{constructor(e,t,n,i,r,a,s,o,l){super(e,t,n,i,r,a,s,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==a?a:Ir,this.magFilter=void 0!==r?r:Ir,this.generateMipmaps=!1;let h=this;"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback((function t(){h.needsUpdate=!0,e.requestVideoFrameCallback(t)}))}clone(){return new this.constructor(this.image).copy(this)}update(){let e=this.image;"requestVideoFrameCallback"in e==0&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}},KB=class extends qr{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=Jr,this.minFilter=Jr,this.generateMipmaps=!1,this.needsUpdate=!0}},Mu=class extends qr{constructor(e,t,n,i,r,a,s,o,l,h,c,u){super(null,a,s,o,l,h,i,r,c,u),this.isCompressedTexture=!0,this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}},JB=class extends Mu{constructor(e,t,n,i,r,a){super(e,t,n,r,a),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=Ai}},QB=class extends Mu{constructor(e,t,n){super(void 0,e[0].width,e[0].height,t,n,Gh),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}},Eb=class extends qr{constructor(e,t,n,i,r,a,s,o,l){super(e,t,n,i,r,a,s,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}},Va=class{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){let n=this.getUtoTmapping(e);return this.getPoint(n,t)}getPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return t}getSpacedPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t}getLength(){let e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let t,n=[],i=this.getPoint(0),r=0;n.push(0);for(let a=1;a<=e;a++)t=this.getPoint(a/e),r+=t.distanceTo(i),n.push(r),i=t;return this.cacheArcLengths=n,n}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){let n,i=this.getLengths(),r=0,a=i.length;n=t||e*i[a-1];let s,o=0,l=a-1;for(;o<=l;)if(r=Math.floor(o+(l-o)/2),s=i[r]-n,s<0)o=r+1;else{if(!(s>0)){l=r;break}l=r-1}if(r=l,i[r]===n)return r/(a-1);let h=i[r];return(r+(n-h)/(i[r+1]-h))/(a-1)}getTangent(e,t){let n=e-1e-4,i=e+1e-4;n<0&&(n=0),i>1&&(i=1);let r=this.getPoint(n),a=this.getPoint(i),s=t||(r.isVector2?new be:new O);return s.copy(a).sub(r).normalize(),s}getTangentAt(e,t){let n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){let n=new O,i=[],r=[],a=[],s=new O,o=new et;for(let d=0;d<=e;d++){let t=d/e;i[d]=this.getTangentAt(t,new O)}r[0]=new O,a[0]=new O;let l=Number.MAX_VALUE,h=Math.abs(i[0].x),c=Math.abs(i[0].y),u=Math.abs(i[0].z);h<=l&&(l=h,n.set(1,0,0)),c<=l&&(l=c,n.set(0,1,0)),u<=l&&n.set(0,0,1),s.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],s),a[0].crossVectors(i[0],r[0]);for(let d=1;d<=e;d++){if(r[d]=r[d-1].clone(),a[d]=a[d-1].clone(),s.crossVectors(i[d-1],i[d]),s.length()>Number.EPSILON){s.normalize();let e=Math.acos(cs(i[d-1].dot(i[d]),-1,1));r[d].applyMatrix4(o.makeRotationAxis(s,e))}a[d].crossVectors(i[d],r[d])}if(!0===t){let t=Math.acos(cs(r[0].dot(r[e]),-1,1));t/=e,i[0].dot(s.crossVectors(r[0],r[e]))>0&&(t=-t);for(let n=1;n<=e;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],t*n)),a[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:a}}clone(){return(new this.constructor).copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},Kh=class extends Va{constructor(e=0,t=0,n=1,i=1,r=0,a=2*Math.PI,s=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=a,this.aClockwise=s,this.aRotation=o}getPoint(e,t){let n=t||new be,i=2*Math.PI,r=this.aEndAngle-this.aStartAngle,a=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/s)+1)*s:0===h&&l===s-1&&(l=s-2,h=1),this.closed||l>0?n=a[(l-1)%s]:(ZM.subVectors(a[0],a[1]).add(a[0]),n=ZM);let c=a[l%s],u=a[(l+1)%s];if(this.closed||l+2i.length-2?i.length-1:a+1],c=i[a>i.length-3?i.length-1:a+2];return n.set(sue(s,o.x,l.x,h.x,c.x),sue(s,o.y,l.y,h.y,c.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){let e=i[r]-n,a=this.curves[r],s=a.getLength(),o=0===s?0:1-e/s;return a.getPointAt(o,t)}r++}return null}getLength(){let e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let e=[],t=0;for(let n=0,i=this.curves.length;n1&&!n[n.length-1].equals(n[0])&&n.push(n[0]),n}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t0){let e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);let h=l.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){let e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}},ym=class extends Dt{constructor(e=[new be(0,-.5),new be(.5,0),new be(0,.5)],t=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:n,phiLength:i},t=Math.floor(t),i=cs(i,0,2*Math.PI);let r=[],a=[],s=[],o=[],l=[],h=1/t,c=new O,u=new be,d=new O,p=new O,f=new O,m=0,g=0;for(let v=0;v<=e.length-1;v++)switch(v){case 0:m=e[v+1].x-e[v].x,g=e[v+1].y-e[v].y,d.x=1*g,d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case e.length-1:o.push(f.x,f.y,f.z);break;default:m=e[v+1].x-e[v].x,g=e[v+1].y-e[v].y,d.x=1*g,d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let v=0;v<=t;v++){let r=n+v*h*i,d=Math.sin(r),p=Math.cos(r);for(let n=0;n<=e.length-1;n++){c.x=e[n].x*d,c.y=e[n].y,c.z=e[n].x*p,a.push(c.x,c.y,c.z),u.x=v/t,u.y=n/(e.length-1),s.push(u.x,u.y);let i=o[3*n+0]*d,r=o[3*n+1],h=o[3*n+0]*p;l.push(i,r,h)}}for(let v=0;v0&&v(!0),t>0&&v(!1)),this.setIndex(h),this.setAttribute("position",new Bt(c,3)),this.setAttribute("normal",new Bt(u,3)),this.setAttribute("uv",new Bt(d,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new wc(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},dv=class extends wc{constructor(e=1,t=1,n=32,i=1,r=!1,a=0,s=2*Math.PI){super(0,e,t,n,i,r,a,s),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:a,thetaLength:s}}static fromJSON(e){return new dv(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},Au=class extends Dt{constructor(e=[],t=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:n,detail:i};let r=[],a=[];function s(e,t,n,i){let r=i+1,a=[];for(let s=0;s<=r;s++){a[s]=[];let i=e.clone().lerp(n,s/r),o=t.clone().lerp(n,s/r),l=r-s;for(let e=0;e<=l;e++)a[s][e]=0===e&&s===r?i:i.clone().lerp(o,e/l)}for(let s=0;s.9&&s<.1&&(t<.2&&(a[e+0]+=1),n<.2&&(a[e+2]+=1),i<.2&&(a[e+4]+=1))}}()}(),this.setAttribute("position",new Bt(r,3)),this.setAttribute("normal",new Bt(r.slice(),3)),this.setAttribute("uv",new Bt(a,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new Au(e.vertices,e.indices,e.radius,e.details)}},fv=class extends Au{constructor(e=1,t=0){let n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new fv(e.radius,e.detail)}},KM=new O,JM=new O,JN=new O,QM=new Zr,Cu=class extends Dt{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){let n=Math.pow(10,4),i=Math.cos(dm*t),r=e.getIndex(),a=e.getAttribute("position"),s=r?r.count:a.count,o=[0,0,0],l=["a","b","c"],h=new Array(3),c={},u=[];for(let e=0;e80*n){i=a=e[0],r=s=e[1];for(let t=n;ta&&(a=o),l>s&&(s=l);h=Math.max(a-i,s-r),h=0!==h?32767/h:0}return Sb(d,p,n,i,r,h,0),p}};function Lhe(e,t,n,i,r){let a,s;if(r===Llt(e,t,n,i)>0)for(a=t;a=t;a-=i)s=aue(a,e[a],e[a+1],s);return s&&JR(s,s.next)&&(Rb(s),s=s.next),s}function xm(e,t){if(!e)return e;t||(t=e);let n,i=e;do{if(n=!1,i.steiner||!JR(i,i.next)&&0!==Zi(i.prev,i,i.next))i=i.next;else{if(Rb(i),i=t=i.prev,i===i.next)break;n=!0}}while(n||i!==t);return t}function Sb(e,t,n,i,r,a,s){if(!e)return;!s&&a&&Mlt(e,i,r,a);let o,l,h=e;for(;e.prev!==e.next;)if(o=e.prev,l=e.next,a?ylt(e,i,r,a):vlt(e))t.push(o.i/n|0),t.push(e.i/n|0),t.push(l.i/n|0),Rb(e),e=l.next,h=l.next;else if((e=l)===h){s?1===s?Sb(e=xlt(xm(e),t,n),t,n,i,r,a,2):2===s&&blt(e,t,n,i,r,a):Sb(xm(e),t,n,i,r,a,1);break}}function vlt(e){let t=e.prev,n=e,i=e.next;if(Zi(t,n,i)>=0)return!1;let r=t.x,a=n.x,s=i.x,o=t.y,l=n.y,h=i.y,c=ra?r>s?r:s:a>s?a:s,p=o>l?o>h?o:h:l>h?l:h,f=i.next;for(;f!==t;){if(f.x>=c&&f.x<=d&&f.y>=u&&f.y<=p&&tv(r,o,a,l,s,h,f.x,f.y)&&Zi(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function ylt(e,t,n,i){let r=e.prev,a=e,s=e.next;if(Zi(r,a,s)>=0)return!1;let o=r.x,l=a.x,h=s.x,c=r.y,u=a.y,d=s.y,p=ol?o>h?o:h:l>h?l:h,g=c>u?c>d?c:d:u>d?u:d,v=eU(p,f,t,n,i),y=eU(m,g,t,n,i),x=e.prevZ,b=e.nextZ;for(;x&&x.z>=v&&b&&b.z<=y;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&tv(o,c,l,u,h,d,x.x,x.y)&&Zi(x.prev,x,x.next)>=0||(x=x.prevZ,b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&tv(o,c,l,u,h,d,b.x,b.y)&&Zi(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;x&&x.z>=v;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&tv(o,c,l,u,h,d,x.x,x.y)&&Zi(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;b&&b.z<=y;){if(b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&tv(o,c,l,u,h,d,b.x,b.y)&&Zi(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function xlt(e,t,n){let i=e;do{let r=i.prev,a=i.next.next;!JR(r,a)&&Dhe(r,i,i.next,a)&&Mb(r,a)&&Mb(a,r)&&(t.push(r.i/n|0),t.push(i.i/n|0),t.push(a.i/n|0),Rb(i),Rb(i.next),i=e=a),i=i.next}while(i!==e);return xm(i)}function blt(e,t,n,i,r,a){let s=e;do{let e=s.next.next;for(;e!==s.prev;){if(s.i!==e.i&&Clt(s,e)){let o=Ohe(s,e);return s=xm(s,s.next),o=xm(o,o.next),Sb(s,t,n,i,r,a,0),void Sb(o,t,n,i,r,a,0)}e=e.next}s=s.next}while(s!==e)}function Elt(e,t,n,i){let r,a,s,o,l,h=[];for(r=0,a=t.length;r=i.next.y&&i.next.y!==i.y){let e=i.x+(s-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(e<=a&&e>r&&(r=e,n=i.x=i.x&&i.x>=h&&a!==i.x&&tv(sn.x||i.x===n.x&&Slt(n,i)))&&(n=i,u=o)),i=i.next}while(i!==l);return n}function Slt(e,t){return Zi(e.prev,e,t.prev)<0&&Zi(t.next,e,e.next)<0}function Mlt(e,t,n,i){let r=e;do{0===r.z&&(r.z=eU(r.x,r.y,t,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,Rlt(r)}function Rlt(e){let t,n,i,r,a,s,o,l,h=1;do{for(n=e,e=null,a=null,s=0;n;){for(s++,i=n,o=0,t=0;t0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),a?a.nextZ=r:e=r,r.prevZ=a,a=r;n=i}a.nextZ=null,h*=2}while(s>1);return e}function eU(e,t,n,i,r){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function Alt(e){let t=e,n=e;do{(t.x=(e-s)*(a-o)&&(e-s)*(i-o)>=(n-s)*(t-o)&&(n-s)*(a-o)>=(r-s)*(i-o)}function Clt(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!Plt(e,t)&&(Mb(e,t)&&Mb(t,e)&&Ilt(e,t)&&(Zi(e.prev,e,t.prev)||Zi(e,t.prev,t))||JR(e,t)&&Zi(e.prev,e,e.next)>0&&Zi(t.prev,t,t.next)>0)}function Zi(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function JR(e,t){return e.x===t.x&&e.y===t.y}function Dhe(e,t,n,i){let r=tR(Zi(e,t,n)),a=tR(Zi(e,t,i)),s=tR(Zi(n,i,e)),o=tR(Zi(n,i,t));return!!(r!==a&&s!==o||0===r&&eR(e,n,t)||0===a&&eR(e,i,t)||0===s&&eR(n,e,i)||0===o&&eR(n,t,i))}function eR(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function tR(e){return e>0?1:e<0?-1:0}function Plt(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Dhe(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function Mb(e,t){return Zi(e.prev,e,e.next)<0?Zi(e,t,e.next)>=0&&Zi(e,e.prev,t)>=0:Zi(e,t,e.prev)<0||Zi(e,e.next,t)<0}function Ilt(e,t){let n=e,i=!1,r=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&n.next.y!==n.y&&r<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==e);return i}function Ohe(e,t){let n=new tU(e.i,e.x,e.y),i=new tU(t.i,t.x,t.y),r=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=r,r.prev=n,i.next=n,n.prev=i,a.next=i,i.prev=a,i}function aue(e,t,n,i){let r=new tU(e,t,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Rb(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function tU(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Llt(e,t,n,i){let r=0;for(let a=t,s=n-i;a2&&e[t-1].equals(e[0])&&e.pop()}function lue(e,t){for(let n=0;nNumber.EPSILON){let u=Math.sqrt(c),d=Math.sqrt(l*l+h*h),p=t.x-o/u,f=t.y+s/u,m=((n.x-h/d-p)*h-(n.y+l/d-f)*l)/(s*h-o*l);i=p+s*m-e.x,r=f+o*m-e.y;let g=i*i+r*r;if(g<=2)return new be(i,r);a=Math.sqrt(g/2)}else{let e=!1;s>Number.EPSILON?l>Number.EPSILON&&(e=!0):s<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(h)&&(e=!0),e?(i=-o,r=s,a=Math.sqrt(c)):(i=s,r=o,a=Math.sqrt(c/2))}return new be(i/a,r/a)}let L=[];for(let t=0,n=E.length,i=n-1,r=t+1;t=0;t--){let e=t/y,n=m*Math.cos(e*Math.PI/2),i=g*Math.sin(e*Math.PI/2)+v;for(let t=0,r=E.length;t=0;){let i=n,r=n-1;r<0&&(r=e.length-1);for(let e=0,n=d+2*y;e0)&&d.push(t,i,s),(g!==n-1||o0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}},na=class extends yr{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new ct(16777215),this.specular=new ct(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ct(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=mf,this.normalScale=new be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Nb,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},DR=class extends yr{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new ct(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ct(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=mf,this.normalScale=new be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},df=class extends yr{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=mf,this.normalScale=new be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}},Pu=class extends yr{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new ct(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ct(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=mf,this.normalScale=new be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Nb,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},OR=class extends yr{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new ct(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=mf,this.normalScale=new be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}},Iu=class extends Gn{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}};function wl(e,t,n){return KU(e)?new e.constructor(e.subarray(t,void 0!==n?n:e.length)):e.slice(t,n)}function um(e,t,n){return!e||!n&&e.constructor===t?e:"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)}function KU(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function khe(e){let t=e.length,n=new Array(t);for(let i=0;i!==t;++i)n[i]=i;return n.sort((function(t,n){return e[t]-e[n]})),n}function nU(e,t,n){let i=e.length,r=new e.constructor(i);for(let a=0,s=0;s!==i;++a){let i=n[a]*t;for(let n=0;n!==t;++n)r[s++]=e[i+n]}return r}function JU(e,t,n,i){let r=1,a=e[0];for(;void 0!==a&&void 0===a[i];)a=e[r++];if(void 0===a)return;let s=a[i];if(void 0!==s)if(Array.isArray(s))do{s=a[i],void 0!==s&&(t.push(a.time),n.push.apply(n,s)),a=e[r++]}while(void 0!==a);else if(void 0!==s.toArray)do{s=a[i],void 0!==s&&(t.push(a.time),s.toArray(n,n.length)),a=e[r++]}while(void 0!==a);else do{s=a[i],void 0!==s&&(t.push(a.time),n.push(s)),a=e[r++]}while(void 0!==a)}function Flt(e,t,n,i,r=30){let a=e.clone();a.name=t;let s=[];for(let l=0;l=i)){o.push(e.times[a]);for(let n=0;na.tracks[l].times[0]&&(o=a.tracks[l].times[0]);for(let l=0;l=t.times[d]){let e=d*l+o,n=e+l-o;u=wl(t.values,e,n)}else{let e=t.createInterpolant(),n=o,i=l-o;e.evaluate(a),u=wl(e.resultBuffer,n,i)}"quaternion"===i&&(new dr).fromArray(u).normalize().conjugate().toArray(u);let p=r.times.length;for(let e=0;e=r)break e;{let s=t[1];e=r)break t}a=n,n=0}}for(;n>>1;et;)--a;if(++a,0!==r||a!==i){r>=a&&(a=Math.max(a,1),r=a-1);let e=this.getValueSize();this.times=wl(n,r,a),this.values=wl(this.values,r*e,a*e)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let a=null;for(let s=0;s!==r;s++){let t=n[s];if("number"==typeof t&&isNaN(t)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,s,t),e=!1;break}if(null!==a&&a>t){console.error("THREE.KeyframeTrack: Out of order keys.",this,s,t,a),e=!1;break}a=t}if(void 0!==i&&KU(i))for(let s=0,o=i.length;s!==o;++s){let t=i[s];if(isNaN(t)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,s,t),e=!1;break}}return e}optimize(){let e=wl(this.times),t=wl(this.values),n=this.getValueSize(),i=this.getInterpolation()===pR,r=e.length-1,a=1;for(let s=1;s0){e[a]=e[r];for(let e=r*n,i=a*n,s=0;s!==n;++s)t[i+s]=t[e+s];++a}return a!==e.length?(this.times=wl(e,0,a),this.values=wl(t,0,a*n)):(this.times=e,this.values=t),this}clone(){let e=wl(this.times,0),t=wl(this.values,0),n=new(0,this.constructor)(this.name,e,t);return n.createInterpolant=this.createInterpolant,n}};Yo.prototype.TimeBufferType=Float32Array,Yo.prototype.ValueBufferType=Float32Array,Yo.prototype.DefaultInterpolation=Tu;var Qh=class extends Yo{};Qh.prototype.ValueTypeName="bool",Qh.prototype.ValueBufferType=Array,Qh.prototype.DefaultInterpolation=jh,Qh.prototype.InterpolantFactoryMethodLinear=void 0,Qh.prototype.InterpolantFactoryMethodSmooth=void 0;var Cb=class extends Yo{};Cb.prototype.ValueTypeName="color";var Cl=class extends Yo{};Cl.prototype.ValueTypeName="number";var NR=class extends Jh{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){let r=this.resultBuffer,a=this.sampleValues,s=this.valueSize,o=(n-t)/(i-t),l=e*s;for(let h=l+s;l!==h;l+=4)dr.slerpFlat(r,0,a,l-s,a,l,o);return r}},Ga=class extends Yo{InterpolantFactoryMethodLinear(e){return new NR(this.times,this.values,this.getValueSize(),e)}};Ga.prototype.ValueTypeName="quaternion",Ga.prototype.DefaultInterpolation=Tu,Ga.prototype.InterpolantFactoryMethodSmooth=void 0;var ed=class extends Yo{};ed.prototype.ValueTypeName="string",ed.prototype.ValueBufferType=Array,ed.prototype.DefaultInterpolation=jh,ed.prototype.InterpolantFactoryMethodLinear=void 0,ed.prototype.InterpolantFactoryMethodSmooth=void 0;var qa=class extends Yo{};qa.prototype.ValueTypeName="vector";var po=class{constructor(e,t=-1,n,i=ZR){this.name=e,this.tracks=n,this.duration=t,this.blendMode=i,this.uuid=Wo(),this.duration<0&&this.resetDuration()}static parse(e){let t=[],n=e.tracks,i=1/(e.fps||1);for(let a=0,s=n.length;a!==s;++a)t.push(Hlt(n[a]).scale(i));let r=new this(e.name,e.duration,t,e.blendMode);return r.uuid=e.uuid,r}static toJSON(e){let t=[],n=e.tracks,i={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let r=0,a=n.length;r!==a;++r)t.push(Yo.toJSON(n[r]));return i}static CreateFromMorphTargetSequence(e,t,n,i){let r=t.length,a=[];for(let s=0;s1){let e=n[1],r=i[e];r||(i[e]=r=[]),r.push(t)}}let a=[];for(let s in i)a.push(this.CreateFromMorphTargetSequence(s,i[s],t,n));return a}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;let n=function(e,t,n,i,r){if(0!==n.length){let a=[],s=[];JU(n,a,s,i),0!==a.length&&r.push(new e(t,a,s))}},i=[],r=e.name||"default",a=e.fps||30,s=e.blendMode,o=e.length||-1,l=e.hierarchy||[];for(let h=0;h{t&&t(r),this.manager.itemEnd(e)}),0),r;if(void 0!==Bh[e])return void Bh[e].push({onLoad:t,onProgress:n,onError:i});Bh[e]=[],Bh[e].push({onLoad:t,onProgress:n,onError:i});let a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),s=this.mimeType,o=this.responseType;fetch(a).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body||void 0===t.body.getReader)return t;let n=Bh[e],i=t.body.getReader(),r=t.headers.get("Content-Length")||t.headers.get("X-File-Size"),a=r?parseInt(r):0,s=0!==a,o=0,l=new ReadableStream({start(e){!function t(){i.read().then((({done:i,value:r})=>{if(i)e.close();else{o+=r.byteLength;let i=new ProgressEvent("progress",{lengthComputable:s,loaded:o,total:a});for(let e=0,t=n.length;e{switch(o){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,s)));case"json":return e.json();default:if(void 0===s)return e.text();{let t=/charset="?([^;"\s]*)"?/i.exec(s),n=t&&t[1]?t[1].toLowerCase():void 0,i=new TextDecoder(n);return e.arrayBuffer().then((e=>i.decode(e)))}}})).then((t=>{Em.add(e,t);let n=Bh[e];delete Bh[e];for(let e=0,i=n.length;e{let n=Bh[e];if(void 0===n)throw this.manager.itemError(e),t;delete Bh[e];for(let e=0,i=n.length;e{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}},iU=class extends Er{constructor(e){super(e)}load(e,t,n,i){let r=this,a=new Kr(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(n){try{t(r.parse(JSON.parse(n)))}catch(t){i?i(t):console.error(t),r.manager.itemError(e)}}),n,i)}parse(e){let t=[];for(let n=0;n0:i.vertexColors=e.vertexColors),void 0!==e.uniforms)for(let r in e.uniforms){let t=e.uniforms[r];switch(i.uniforms[r]={},t.type){case"t":i.uniforms[r].value=n(t.value);break;case"c":i.uniforms[r].value=(new ct).setHex(t.value);break;case"v2":i.uniforms[r].value=(new be).fromArray(t.value);break;case"v3":i.uniforms[r].value=(new O).fromArray(t.value);break;case"v4":i.uniforms[r].value=(new gr).fromArray(t.value);break;case"m3":i.uniforms[r].value=(new Ln).fromArray(t.value);break;case"m4":i.uniforms[r].value=(new et).fromArray(t.value);break;default:i.uniforms[r].value=t.value}}if(void 0!==e.defines&&(i.defines=e.defines),void 0!==e.vertexShader&&(i.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(i.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(i.glslVersion=e.glslVersion),void 0!==e.extensions)for(let r in e.extensions)i.extensions[r]=e.extensions[r];if(void 0!==e.lights&&(i.lights=e.lights),void 0!==e.clipping&&(i.clipping=e.clipping),void 0!==e.size&&(i.size=e.size),void 0!==e.sizeAttenuation&&(i.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(i.map=n(e.map)),void 0!==e.matcap&&(i.matcap=n(e.matcap)),void 0!==e.alphaMap&&(i.alphaMap=n(e.alphaMap)),void 0!==e.bumpMap&&(i.bumpMap=n(e.bumpMap)),void 0!==e.bumpScale&&(i.bumpScale=e.bumpScale),void 0!==e.normalMap&&(i.normalMap=n(e.normalMap)),void 0!==e.normalMapType&&(i.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),i.normalScale=(new be).fromArray(t)}return void 0!==e.displacementMap&&(i.displacementMap=n(e.displacementMap)),void 0!==e.displacementScale&&(i.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(i.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(i.roughnessMap=n(e.roughnessMap)),void 0!==e.metalnessMap&&(i.metalnessMap=n(e.metalnessMap)),void 0!==e.emissiveMap&&(i.emissiveMap=n(e.emissiveMap)),void 0!==e.emissiveIntensity&&(i.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(i.specularMap=n(e.specularMap)),void 0!==e.specularIntensityMap&&(i.specularIntensityMap=n(e.specularIntensityMap)),void 0!==e.specularColorMap&&(i.specularColorMap=n(e.specularColorMap)),void 0!==e.envMap&&(i.envMap=n(e.envMap)),void 0!==e.envMapIntensity&&(i.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(i.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(i.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(i.lightMap=n(e.lightMap)),void 0!==e.lightMapIntensity&&(i.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(i.aoMap=n(e.aoMap)),void 0!==e.aoMapIntensity&&(i.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(i.gradientMap=n(e.gradientMap)),void 0!==e.clearcoatMap&&(i.clearcoatMap=n(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(i.clearcoatNormalMap=n(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(i.clearcoatNormalScale=(new be).fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(i.iridescenceMap=n(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(i.transmissionMap=n(e.transmissionMap)),void 0!==e.thicknessMap&&(i.thicknessMap=n(e.thicknessMap)),void 0!==e.anisotropyMap&&(i.anisotropyMap=n(e.anisotropyMap)),void 0!==e.sheenColorMap&&(i.sheenColorMap=n(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(i.sheenRoughnessMap=n(e.sheenRoughnessMap)),i}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){return new{ShadowMaterial:IR,SpriteMaterial:bb,RawShaderMaterial:LR,ShaderMaterial:ln,PointsMaterial:xi,MeshPhysicalMaterial:Xo,MeshStandardMaterial:hf,MeshPhongMaterial:na,MeshToonMaterial:DR,MeshNormalMaterial:df,MeshLambertMaterial:Pu,MeshDepthMaterial:Tc,MeshDistanceMaterial:xb,MeshBasicMaterial:on,MeshMatcapMaterial:OR,LineDashedMaterial:Iu,LineBasicMaterial:Gn,Material:yr}[e]}},ra=class{static decodeText(e){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let n=0,i=e.length;n0){let i=new Lu(t);n=new _m(i),n.setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t0){t=new _m(this.manager),t.setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(n,i,this._addIndex*t,1,t);for(let o=t,l=t+t;o!==l;++o)if(n[o]!==n[o+t]){s.setValue(n,i);break}}saveOriginalState(){let e=this.binding,t=this.buffer,n=this.valueSize,i=n*this._origIndex;e.getValue(t,i);for(let r=n,a=i;r!==a;++r)t[r]=t[i+r%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){let e=3*this.valueSize;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){let e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n=.5)for(let a=0;a!==r;++a)e[t+a]=e[n+a]}_slerp(e,t,n,i){dr.slerpFlat(e,t,e,t,e,n,i)}_slerpAdditive(e,t,n,i,r){let a=this._workIndex*r;dr.multiplyQuaternionsFlat(e,a,e,t,e,n),dr.slerpFlat(e,t,e,t,e,a,i)}_lerp(e,t,n,i,r){let a=1-i;for(let s=0;s!==r;++s){let r=t+s;e[r]=e[r]*a+e[n+s]*i}}_lerpAdditive(e,t,n,i,r){for(let a=0;a!==r;++a){let r=t+a;e[r]=e[r]+e[n+a]*i}}},QU="\\[\\]\\.:\\/",qlt=new RegExp("["+QU+"]","g"),eH="[^"+QU+"]",Wlt="[^"+QU.replace("\\.","")+"]",jlt=/((?:WC+[\/:])*)/.source.replace("WC",eH),Xlt=/(WCOD+)?/.source.replace("WCOD",Wlt),Ylt=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",eH),$lt=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",eH),Zlt=new RegExp("^"+jlt+Xlt+Ylt+$lt+"$"),Klt=["material","materials","bones","map"],vU=class{constructor(e,t,n){let i=n||Jn.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,i)}getValue(e,t){this.bind();let n=this._targetGroup.nCachedObjects_,i=this._bindings[n];void 0!==i&&i.getValue(e,t)}setValue(e,t){let n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(e,t)}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind()}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind()}},Jn=class{constructor(e,t,n){this.path=t,this.parsedPath=n||Jn.parseTrackName(t),this.node=Jn.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new Jn.Composite(e,t,n):new Jn(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(qlt,"")}static parseTrackName(e){let t=Zlt.exec(e);if(null===t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);let n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){let e=n.nodeName.substring(i+1);-1!==Klt.indexOf(e)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=e)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){let n=e.skeleton.getBoneByName(t);if(void 0!==n)return n}if(e.children){let n=function(e){for(let i=0;i=r){let a=r++,h=e[a];t[h.uuid]=l,e[l]=h,t[o]=a,e[a]=s;for(let e=0,t=i;e!==t;++e){let t=n[e],i=t[a],r=t[l];t[l]=i,t[a]=r}}}this.nCachedObjects_=r}uncache(){let e=this._objects,t=this._indicesByUUID,n=this._bindings,i=n.length,r=this.nCachedObjects_,a=e.length;for(let s=0,o=arguments.length;s!==o;++s){let o=arguments[s].uuid,l=t[o];if(void 0!==l)if(delete t[o],l0&&(t[s.uuid]=l),e[l]=s,e.pop();for(let e=0,t=i;e!==t;++e){let t=n[e];t[l]=t[r],t.pop()}}}this.nCachedObjects_=r}subscribe_(e,t){let n=this._bindingsIndicesByPath,i=n[e],r=this._bindings;if(void 0!==i)return r[i];let a=this._paths,s=this._parsedPaths,o=this._objects,l=o.length,h=this.nCachedObjects_,c=new Array(l);i=r.length,n[e]=i,a.push(e),s.push(t),r.push(c);for(let u=h,d=o.length;u!==d;++u){let n=o[u];c[u]=new Jn(n,e,t)}return c}unsubscribe_(e){let t=this._bindingsIndicesByPath,n=t[e];if(void 0!==n){let i=this._paths,r=this._parsedPaths,a=this._bindings,s=a.length-1,o=a[s];t[e[s]]=n,a[n]=o,a.pop(),r[n]=r[s],r.pop(),i[n]=i[s],i.pop()}}},qR=class{constructor(e,t,n=null,i=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=i;let r=t.tracks,a=r.length,s=new Array(a),o={endingStart:lm,endingEnd:lm};for(let l=0;l!==a;++l){let e=r[l].createInterpolant(null);s[l]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=s,this._propertyBindings=new Array(a),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=lhe,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n){if(e.fadeOut(t),this.fadeIn(t),n){let n=this._clip.duration,i=e._clip.duration,r=i/n,a=n/i;e.warp(1,r,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,n){return e.crossFadeFrom(this,t,n)}stopFading(){let e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){let i=this._mixer,r=i.time,a=this.timeScale,s=this._timeScaleInterpolant;null===s&&(s=i._lendControlInterpolant(),this._timeScaleInterpolant=s);let o=s.parameterPositions,l=s.sampleValues;return o[0]=r,o[1]=r+n,l[0]=e/a,l[1]=t/a,this}stopWarping(){let e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,i){if(!this.enabled)return void this._updateWeight(e);let r=this._startTime;if(null!==r){let i=(e-r)*n;i<0||0===n?t=0:(this._startTime=null,t=n*i)}t*=this._updateTimeScale(e);let a=this._updateTime(t),s=this._updateWeight(e);if(s>0){let e=this._interpolants,t=this._propertyBindings;if(this.blendMode===GU)for(let n=0,i=e.length;n!==i;++n)e[n].evaluate(a),t[n].accumulateAdditive(s);else for(let n=0,r=e.length;n!==r;++n)e[n].evaluate(a),t[n].accumulate(i,s)}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;let n=this._weightInterpolant;if(null!==n){let i=n.evaluate(e)[0];t*=i,e>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;let n=this._timeScaleInterpolant;null!==n&&(t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t))}return this._effectiveTimeScale=t,t}_updateTime(e){let t=this._clip.duration,n=this.loop,i=this.time+e,r=this._loopCount,a=n===che;if(0===e)return-1===r?i:a&&1==(1&r)?t-i:i;if(n===ohe){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(i>=t)i=t;else{if(!(i<0)){this.time=i;break e}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===r&&(e>=0?(r=0,this._setEndings(!0,0===this.repetitions,a)):this._setEndings(0===this.repetitions,!0,a)),i>=t||i<0){let n=Math.floor(i/t);i-=t*n,r+=Math.abs(n);let s=this.repetitions-r;if(s<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=e>0?t:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===s){let t=e<0;this._setEndings(t,!t,a)}else this._setEndings(!1,!1,a);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(a&&1==(1&r))return t-i}return i}_setEndings(e,t,n){let i=this._interpolantSettings;n?(i.endingStart=cm,i.endingEnd=cm):(i.endingStart=e?this.zeroSlopeAtStart?cm:lm:hb,i.endingEnd=t?this.zeroSlopeAtEnd?cm:lm:hb)}_scheduleFading(e,t,n){let i=this._mixer,r=i.time,a=this._weightInterpolant;null===a&&(a=i._lendControlInterpolant(),this._weightInterpolant=a);let s=a.parameterPositions,o=a.sampleValues;return s[0]=r,o[0]=t,s[1]=r+e,o[1]=n,this}},Jlt=new Float32Array(1),xU=class extends jo{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){let n=e._localRoot||this._root,i=e._clip.tracks,r=i.length,a=e._propertyBindings,s=e._interpolants,o=n.uuid,l=this._bindingsByRootAndName,h=l[o];void 0===h&&(h={},l[o]=h);for(let c=0;c!==r;++c){let e=i[c],r=e.name,l=h[r];if(void 0!==l)++l.referenceCount,a[c]=l;else{if(l=a[c],void 0!==l){null===l._cacheIndex&&(++l.referenceCount,this._addInactiveBinding(l,o,r));continue}let i=t&&t._propertyBindings[c].binding.parsedPath;l=new GR(Jn.create(n,r,i),e.ValueTypeName,e.getValueSize()),++l.referenceCount,this._addInactiveBinding(l,o,r),a[c]=l}s[c].resultBuffer=l.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){let t=(e._localRoot||this._root).uuid,n=e._clip.uuid,i=this._actionsByClip[n];this._bindAction(e,i&&i.knownActions[0]),this._addInactiveAction(e,n,t)}let t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){let n=t[e];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){let t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){let n=t[e];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;let e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){let t=e._cacheIndex;return null!==t&&t=0;--t)e[t].stop();return this}update(e){e*=this.timeScale;let t=this._actions,n=this._nActiveActions,i=this.time+=e,r=Math.sign(e),a=this._accuIndex^=1;for(let l=0;l!==n;++l)t[l]._update(i,e,r,a);let s=this._bindings,o=this._nActiveBindings;for(let l=0;l!==o;++l)s[l].apply(a);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,_ue).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},Tue=new O,rR=new O,sa=class{constructor(e=new O,t=new O){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){Tue.subVectors(e,this.start),rR.subVectors(this.end,this.start);let n=rR.dot(rR),i=rR.dot(Tue)/n;return t&&(i=cs(i,0,1)),i}closestPointToPoint(e,t,n){let i=this.closestPointToPointParameter(e,t);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}},wue=new O,SU=class extends an{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";let n=new Dt,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let a=0,s=1,o=32;a1)for(let h=0;h.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{Cue.set(e.z,0,-e.x).normalize();let t=Math.acos(e.y);this.quaternion.setFromAxisAngle(Cue,t)}}setLength(e,t=.2*e,n=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},DU=class extends Wr{constructor(e=1){let t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],n=new Dt;n.setAttribute("position",new Bt(t,3)),n.setAttribute("color",new Bt([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(n,new Gn({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(e,t,n){let i=new ct,r=this.geometry.attributes.color.array;return i.set(e),i.toArray(r,0),i.toArray(r,3),i.set(t),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}},Sm=class{constructor(){this.type="ShapePath",this.color=new ct,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new Ru,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,n,i){return this.currentPath.quadraticCurveTo(e,t,n,i),this}bezierCurveTo(e,t,n,i,r,a){return this.currentPath.bezierCurveTo(e,t,n,i,r,a),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(e,t){let n=t.length,i=!1;for(let r=n-1,a=0;aNumber.EPSILON){if(l<0&&(n=t[a],o=-o,s=t[r],l=-l),e.ys.y)continue;if(e.y===n.y){if(e.x===n.x)return!0}else{let t=l*(e.x-n.x)-o*(e.y-n.y);if(0===t)return!0;if(t<0)continue;i=!i}}else{if(e.y!==n.y)continue;if(s.x<=e.x&&e.x<=n.x||n.x<=e.x&&e.x<=s.x)return!0}}return i}let n=qs.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,a,s,o=[];if(1===i.length)return a=i[0],s=new Ss,s.curves=a.curves,o.push(s),o;let l=!n(i[0].getPoints());l=e?!l:l;let h,c,u=[],d=[],p=[],f=0;d[f]=void 0,p[f]=[];for(let m=0,g=i.length;m1){let e=!1,n=0;for(let t=0,i=d.length;t0&&!1===e&&(p=u)}for(let m=0,g=d.length;ma)return!1;let o=n.ray.origin.distanceTo(Hhe);return!(on.far)&&(s.push({distance:o,point:Uhe.clone(),index:i,object:e}),!0)}hr.prototype.raycast=function(e,t){let n=this.geometry,i=this.matrixWorld,r=e.params.Line.threshold,a=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),ku.copy(n.boundingSphere),ku.applyMatrix4(i),ku.radius+=r,!1===e.ray.intersectsSphere(ku))return;let s=r*r,o=this.isLineSegments?2:1,l=n.index,h=n.attributes.position,c=t.length;if(null!==l){let n=this.userData.batches;if(n&&n.length>0&&n[0].boundingSphere)for(let r=0;r=1))return}else for(let i=Math.max(0,a.start),r=Math.min(l.count,a.start+a.count)-1;i=1))return}else{let n=this.userData.batches;if(n&&n.length>0&&n[0].boundingSphere)for(let r=0;r=1)return}else for(let i=Math.max(0,a.start),r=Math.min(h.count,a.start+a.count)-1;i=1)return}};var Vhe=Math.pow(2,-24),Cm=class{constructor(){}};function Il(e,t,n){return n.min.x=t[e],n.min.y=t[e+1],n.min.z=t[e+2],n.max.x=t[e+3],n.max.y=t[e+4],n.max.z=t[e+5],n}function tH(e){let t=-1,n=-1/0;for(let i=0;i<3;i++){let r=e[i+3]-e[i];r>n&&(n=r,t=i)}return t}function nH(e,t){t.set(e)}function rH(e,t,n){let i,r;for(let a=0;a<3;a++){let s=a+3;i=e[a],r=t[a],n[a]=ir?i:r}}function Ub(e,t,n){for(let i=0;i<3;i++){let r=t[e+2*i],a=t[e+2*i+1],s=r-a,o=r+a;sn[i+3]&&(n[i+3]=o)}}function Pv(e){let t=e[3]-e[0],n=e[4]-e[1],i=e[5]-e[2];return 2*(t*n+n*i+i*t)}function rct(e,t){if(!e.index){let n,i=e.attributes.position.count,r=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;n=i>65535?new Uint32Array(new r(4*i)):new Uint16Array(new r(2*i)),e.setIndex(new mn(n,1));for(let e=0;ee-t));for(let r=0;rl&&(l=r),v&&tf&&(f=t);let x=e[y+2],b=e[y+3],_=x-b,w=x+b;_h&&(h=w),v&&xm&&(m=x);let S=e[y+4],M=e[y+5],T=S-M,E=S+M;Tc&&(c=E),v&&Sg&&(g=S)}i[0]=a,i[1]=s,i[2]=o,i[3]=l,i[4]=h,i[5]=c,v&&(r[0]=u,r[1]=d,r[2]=p,r[3]=f,r[4]=m,r[5]=g)}function sct(e,t,n,i){let r=1/0,a=1/0,s=1/0,o=-1/0,l=-1/0,h=-1/0;for(let c=6*t,u=6*(t+n);co&&(o=t);let n=e[c+2];nl&&(l=n);let i=e[c+4];ih&&(h=i)}i[0]=r,i[1]=a,i[2]=s,i[3]=o,i[4]=l,i[5]=h}function act(e,t,n,i,r){let a=n,s=n+i-1,o=r.pos,l=2*r.axis;for(;;){for(;a<=s&&t[6*a+l]=o;)s--;if(!(ae.candidate-t.candidate,gf=new Array(td).fill().map((()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0}))),eA=new Float32Array(6);function lct(e,t,n,i,r,a){let s=-1,o=0;if(0===a)s=tH(t),-1!==s&&(o=(t[s]+t[s+3])/2);else if(1===a)s=tH(e),-1!==s&&(o=cct(n,i,r,s));else if(2===a){let a=Pv(e),l=1.25*r,h=6*i,c=6*(i+r);for(let e=0;e<3;e++){let i=t[e],u=(t[e+3]-i)/td;if(r=a.candidate?Ub(r,n,a.rightCacheBounds):(Ub(r,n,a.leftCacheBounds),a.count++)}}for(let n=0;n=td&&(t=td-1);let a=gf[t];a.count++,Ub(r,n,a.bounds)}let t=gf[td-1];nH(t.bounds,t.rightCacheBounds);for(let e=td-2;e>=0;e--){let t=gf[e],n=gf[e+1];rH(t.bounds,n.rightCacheBounds,t.rightCacheBounds)}let d=0;for(let n=0;nm&&(m=h),u>m&&(m=u);let g=(m-p)/2,v=2*i;a[f+v+0]=p+g,a[f+v+1]=g+(Math.abs(p)+g)*Vhe,pt[i+3]&&(t[i+3]=m)}}return a}function hct(e,t){function n(e){d&&d(e/p)}function i(t,r,d,p=null,m=0){if(!f&&m>=l&&(f=!0,h&&(console.warn(`MeshBVH: Max depth of ${l} reached when generating BVH. Consider increasing maxDepth.`),console.warn(e))),d<=c||m>=l)return n(r+d),t.offset=r,t.count=d,t;let g=lct(t.boundingData,p,s,r,d,u);if(-1===g.axis)return n(r+d),t.offset=r,t.count=d,t;let v=act(o,s,r,d,g);if(v===r||v===r+d)n(r+d),t.offset=r,t.count=d;else{t.splitAxis=g.axis;let e=new Cm,n=r,o=v-r;t.left=e,e.boundingData=new Float32Array(6),sH(s,n,o,e.boundingData,a),i(e,n,o,a,m+1);let l=new Cm,h=v,c=d-o;t.right=l,l.boundingData=new Float32Array(6),sH(s,h,c,l.boundingData,a),i(l,h,c,a,m+1)}return t}rct(e,t);let r=new Float32Array(6),a=new Float32Array(6),s=uct(e,r),o=e.index.array,l=t.maxDepth,h=t.verbose,c=t.maxLeafTris,u=t.strategy,d=t.onProgress,p=e.index.count/3,f=!1,m=[],g=ict(e);if(1===g.length){let e=g[0],t=new Cm;t.boundingData=r,sct(s,e.offset,e.count,a),i(t,e.offset,e.count,a),m.push(t)}else for(let v of g){let e=new Cm;e.boundingData=new Float32Array(6),sH(s,v.offset,v.count,e.boundingData,a),i(e,v.offset,v.count,a),m.push(e)}return m}function qhe(e,t){let n,i,r,a=hct(e,t),s=[],o=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let c=0;cMath.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return i[a+6]=n/4,n=h(n,s),i[a+7]=o,n}}}var vo=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(e,t){let n=1/0,i=-1/0;for(let r=0,a=e.length;ri?a:i}this.min=n,this.max=i}setFromPoints(e,t){let n=1/0,i=-1/0;for(let r=0,a=t.length;ri?s:i}this.min=n,this.max=i}isSeparated(e){return this.min>e.max||e.min>this.max}};vo.prototype.setFromBox=function(){let e=new O;return function(t,n){let i=n.min,r=n.max,a=1/0,s=-1/0;for(let o=0;o<=1;o++)for(let n=0;n<=1;n++)for(let l=0;l<=1;l++){e.x=i.x*o+r.x*(1-o),e.y=i.y*n+r.y*(1-n),e.z=i.z*l+r.z*(1-l);let h=t.dot(e);a=Math.min(h,a),s=Math.max(h,s)}this.min=a,this.max=s}}();var QIt=function(){let e=new vo;return function(t,n){let i=t.points,r=t.satAxes,a=t.satBounds,s=n.points,o=n.satAxes,l=n.satBounds;for(let h=0;h<3;h++){let t=a[h],n=r[h];if(e.setFromPoints(n,s),t.isSeparated(e))return!1}for(let h=0;h<3;h++){let t=l[h],n=o[h];if(e.setFromPoints(n,i),t.isSeparated(e))return!1}}}(),dct=function(){let e=new O,t=new O,n=new O;return function(i,r,a){let s=i.start,o=e,l=r.start,h=t;n.subVectors(s,l),e.subVectors(i.end,i.start),t.subVectors(r.end,r.start);let c,u,d=n.dot(h),p=h.dot(o),f=h.dot(h),m=n.dot(o),g=o.dot(o)*f-p*p;c=0!==g?(d*p-m*f)/g:0,u=(d+c*p)/f,a.x=c,a.y=u}}(),Hb=function(){let e=new be,t=new O,n=new O;return function(i,r,a,s){dct(i,r,e);let o=e.x,l=e.y;if(o>=0&&o<=1&&l>=0&&l<=1)return i.at(o,a),void r.at(l,s);if(o>=0&&o<=1)return l<0?r.at(0,s):r.at(1,s),void i.closestPointToPoint(s,!0,a);if(l>=0&&l<=1)return o<0?i.at(0,a):i.at(1,a),void r.closestPointToPoint(a,!0,s);{let e,h;e=o<0?i.start:i.end,h=l<0?r.start:r.end;let c=t,u=n;return i.closestPointToPoint(h,!0,t),r.closestPointToPoint(e,!0,n),c.distanceToSquared(h)<=u.distanceToSquared(e)?(a.copy(c),void s.copy(h)):(a.copy(e),void s.copy(u))}}}(),Whe=function(){let e=new O,t=new O,n=new Gr,i=new sa;return function(r,a){let{radius:s,center:o}=r,{a:l,b:h,c:c}=a;if(i.start=l,i.end=h,i.closestPointToPoint(o,!0,e).distanceTo(o)<=s||(i.start=l,i.end=c,i.closestPointToPoint(o,!0,e).distanceTo(o)<=s)||(i.start=h,i.end=c,i.closestPointToPoint(o,!0,e).distanceTo(o)<=s))return!0;let u=a.getPlane(n);if(Math.abs(u.distanceToPoint(o))<=s){let e=u.projectPoint(o,t);if(a.containsPoint(e))return!0}return!1}}(),fct=1e-15;function Iv(e){return Math.abs(e)new O)),this.satBounds=new Array(4).fill().map((()=>new vo)),this.points=[this.a,this.b,this.c],this.sphere=new vr,this.plane=new Gr,this.needsUpdate=!0}intersectsSphere(e){return Whe(e,this)}update(){let e=this.a,t=this.b,n=this.c,i=this.points,r=this.satAxes,a=this.satBounds,s=r[0],o=a[0];this.getNormal(s),o.setFromPoints(s,i);let l=r[1],h=a[1];l.subVectors(e,t),h.setFromPoints(l,i);let c=r[2],u=a[2];c.subVectors(t,n),u.setFromPoints(c,i);let d=r[3],p=a[3];d.subVectors(n,e),p.setFromPoints(d,i),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(s,e),this.needsUpdate=!1}};yo.prototype.closestPointToSegment=function(){let e=new O,t=new O,n=new sa;return function(i,r=null,a=null){let s,{start:o,end:l}=i,h=this.points,c=1/0;for(let u=0;u<3;u++){let o=(u+1)%3;n.start.copy(h[u]),n.end.copy(h[o]),Hb(n,i,e,t),s=e.distanceToSquared(t),s1-1e-10){let e=this.satBounds,s=this.satAxes;n[0]=d.a,n[1]=d.b,n[2]=d.c;for(let t=0;t<4;t++){let r=e[t],a=s[t];if(i.setFromPoints(a,n),r.isSeparated(i))return!1}let o=d.satBounds,l=d.satAxes;t[0]=this.a,t[1]=this.b,t[2]=this.c;for(let n=0;n<4;n++){let e=o[n],r=l[n];if(i.setFromPoints(r,t),e.isSeparated(i))return!1}for(let h=0;h<4;h++){let e=s[h];for(let s=0;s<4;s++){let o=l[s];if(a.crossVectors(e,o),i.setFromPoints(a,t),r.setFromPoints(a,n),i.isSeparated(r))return!1}}return p&&(f||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),p.start.set(0,0,0),p.end.set(0,0,0)),!0}{let e=this.points,t=!1,n=0;for(let o=0;o<3;o++){let i=e[o],r=e[(o+1)%3];h.start.copy(i),h.end.copy(r),h.delta(s);let a=t?c.start:c.end,l=Iv(g.distanceToPoint(i));if(Iv(g.normal.dot(s))&&l){c.copy(h),n=2;break}if((g.intersectLine(h,a)||l)&&!Iv(a.distanceTo(r))){if(n++,t)break;t=!0}}if(1===n&&d.containsPoint(c.end))return p&&(p.start.copy(c.end),p.end.copy(c.end)),!0;if(2!==n)return!1;let i=d.points,r=!1,a=0;for(let s=0;s<3;s++){let e=i[s],t=i[(s+1)%3];h.start.copy(e),h.end.copy(t),h.delta(o);let n=r?u.start:u.end,l=Iv(m.distanceToPoint(e));if(Iv(m.normal.dot(o))&&l){u.copy(h),a=2;break}if((m.intersectLine(h,n)||l)&&!Iv(n.distanceTo(t))){if(a++,r)break;r=!0}}if(1===a&&this.containsPoint(u.end))return p&&(p.start.copy(u.end),p.end.copy(u.end)),!0;if(2!==a)return!1;if(c.delta(s),u.delta(o),s.dot(o)<0){let e=u.start;u.start=u.end,u.end=e}let f=c.start.dot(s),v=c.end.dot(s),y=u.start.dot(s),x=u.end.dot(s);return(f===x||y===v||v0?p.start.copy(c.start):p.start.copy(u.start),l.subVectors(c.end,u.end),l.dot(s)<0?p.end.copy(c.end):p.end.copy(u.end)),!0)}}}(),yo.prototype.distanceToPoint=function(){let e=new O;return function(t){return this.closestPointToPoint(t,e),t.distanceTo(e)}}(),yo.prototype.distanceToTriangle=function(){let e=new O,t=new O,n=["a","b","c"],i=new sa,r=new sa;return function(a,s=null,o=null){let l=s||o?i:null;if(this.intersectsTriangle(a,l))return(s||o)&&(s&&l.getCenter(s),o&&l.getCenter(o)),0;let h=1/0;for(let t=0;t<3;t++){let i,r=n[t],l=a[r];this.closestPointToPoint(l,e),i=l.distanceToSquared(e),inew O)),this.satAxes=new Array(3).fill().map((()=>new O)),this.satBounds=new Array(3).fill().map((()=>new vo)),this.alignedSatBounds=new Array(3).fill().map((()=>new vo)),this.needsUpdate=!1,e&&this.min.copy(e),t&&this.max.copy(t),n&&this.matrix.copy(n)}set(e,t,n){this.min.copy(e),this.max.copy(t),this.matrix.copy(n),this.needsUpdate=!0}copy(e){this.min.copy(e.min),this.max.copy(e.max),this.matrix.copy(e.matrix),this.needsUpdate=!0}};xo.prototype.update=function(){let e=this.matrix,t=this.min,n=this.max,i=this.points;for(let l=0;l<=1;l++)for(let r=0;r<=1;r++)for(let a=0;a<=1;a++){let s=i[1*l|2*r|4*a];s.x=l?n.x:t.x,s.y=r?n.y:t.y,s.z=a?n.z:t.z,s.applyMatrix4(e)}let r=this.satBounds,a=this.satAxes,s=i[0];for(let l=0;l<3;l++){let e=a[l],t=r[l],n=i[1<new sa)),n=new Array(12).fill().map((()=>new sa)),i=new O,r=new O;return function(a,s=0,o=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(a))return(o||l)&&(a.getCenter(r),this.closestPointToPoint(r,i),a.closestPointToPoint(i,r),o&&o.copy(i),l&&l.copy(r)),0;let h=s*s,c=a.min,u=a.max,d=this.points,p=1/0;for(let e=0;e<8;e++){let t=d[e];r.copy(t).clamp(c,u);let n=t.distanceToSquared(r);if(nn.far)?null:e}function Ll(e,t,n,i){let r=e.a,a=e.b,s=e.c,o=t,l=t+1,h=t+2;n&&(o=n.getX(t),l=n.getX(t+1),h=n.getX(t+2)),r.x=i.getX(o),r.y=i.getY(o),r.z=i.getZ(o),a.x=i.getX(l),a.y=i.getY(l),a.z=i.getZ(l),s.x=i.getX(h),s.y=i.getY(h),s.z=i.getZ(h)}function cH(e,t,n,i,r,a,s){let o=n.index,l=n.attributes.position;for(let h=e,c=t+e;h=0;c?(r=Ov(e),s=kv(e,o)):(r=kv(e,o),s=Ov(e));let u=cA(r,a,i,aA)?lA(r,t,n,i):null;if(u){let e=u.point[h];if(c?e<=a[s+l]:e>=a[s+l+3])return u}let d=cA(s,a,i,aA)?lA(s,t,n,i):null;return u&&d?u.distance<=d.distance?u:d:u||d||null}}var Qhe=function(){let e,t,n=[],i=new Lv((()=>new Ot));return function(...a){e=i.getPrimitive(),t=i.getPrimitive(),n.push(e,t);let s=r(...a);i.releasePrimitive(e),i.releasePrimitive(t),n.pop(),n.pop();let o=n.length;return o>0&&(t=n[o-1],e=n[o-2]),s};function r(n,i,a,s,o=null,l=0,h=0){function c(e){let t=2*e,n=vf,i=yf;for(;!nd(t,n);)t=2*(e=Ov(e));return Pm(e,i)}function u(e){let t=2*e,n=vf,i=yf;for(;!nd(t,n);)t=2*(e=kv(e,i));return Pm(e,i)+Dv(t,n)}let d=2*n,p=Nv,f=vf,m=yf;if(nd(d,f)){let t=Pm(n,m),i=Dv(d,f);return Il(n,p,e),s(t,i,!1,h,l+n,e)}{let d,g,v,y,x=Ov(n),b=kv(n,m),_=x,w=b;if(o&&(v=e,y=t,Il(_,p,v),Il(w,p,y),d=o(v),g=o(y),gr.intersectsBox(e),intersectsTriangle:e=>{e.a.applyMatrix4(h),e.b.applyMatrix4(h),e.c.applyMatrix4(h),e.needsUpdate=!0;for(let n=3*v,i=3*(y+v);nnew yo)),Rc=class{static serialize(e,t={}){if(t.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),Rc.serialize(arguments[0],{cloneBuffers:void 0===arguments[2]||arguments[2]});t=Tr({cloneBuffers:!0},t);let n,i=e.geometry,r=e._roots,a=i.getIndex();return n=t.cloneBuffers?{roots:r.map((e=>e.slice())),index:a.array.slice()}:{roots:r,index:a.array},n}static deserialize(e,t,n={}){if("boolean"==typeof n)return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),Rc.deserialize(arguments[0],arguments[1],{setIndex:void 0===arguments[2]||arguments[2]});n=Tr({setIndex:!0},n);let{index:i,roots:r}=e,a=new Rc(t,Ri(Tr({},n),{[hH]:!0}));if(a._roots=r,n.setIndex){let n=t.getIndex();if(null===n){let n=new mn(e.index,1,!1);t.setIndex(n)}else n.array!==i&&(n.array.set(i),n.needsUpdate=!0)}return a}constructor(e,t={}){if(!e.isBufferGeometry)throw new Error("MeshBVH: Only BufferGeometries are supported.");if(e.index&&e.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.");if((t=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[hH]:!1},t)).useSharedArrayBuffer&&"undefined"==typeof SharedArrayBuffer)throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,t[hH]||(this._roots=qhe(e,t),!e.boundingBox&&t.setBoundingBox&&(e.boundingBox=this.getBoundingBox(new Ot))),this.geometry=e}refit(e=null){e&&Array.isArray(e)&&(e=new Set(e));let t,n,i,r,a=this.geometry,s=a.index.array,o=a.attributes.position,l=0,h=this._roots;for(let u=0,d=h.length;uu&&(u=n),id&&(d=i),rp&&(p=r)}return(r[t+0]!==a||r[t+1]!==l||r[t+2]!==c||r[t+3]!==u||r[t+4]!==d||r[t+5]!==p)&&(r[t+0]=a,r[t+1]=l,r[t+2]=c,r[t+3]=u,r[t+4]=d,r[t+5]=p,!0)}{let i=t+8,s=n[t+6],o=i+a,h=s+a,u=l,d=!1,p=!1;e?u||(d=e.has(o),p=e.has(h),u=!d&&!p):(d=!0,p=!0);let f=u||p,m=!1;(u||d)&&(m=c(i,a,u));let g=!1;f&&(g=c(s,a,u));let v=m||g;if(v)for(let e=0;e<3;e++){let n=i+e,a=s+e,o=r[n],l=r[n+3],h=r[a],c=r[a+3];r[t+e]=oc?l:c}return v}}}traverse(e,t=0){let n=this._roots[t],i=new Uint32Array(n),r=new Uint16Array(n);!function t(a,s=0){let o=2*a,l=65535===r[o+15];if(l){let t=i[a+6],h=r[o+14];e(s,l,new Float32Array(n,4*a,6),t,h)}else{let r=a+8,o=i[a+6],h=i[a+7];e(s,l,new Float32Array(n,4*a,6),h)||(t(r,s+1),t(o,s+1))}}(0)}raycast(e,t=pi){let n=this._roots,i=this.geometry,r=[],a=t.isMaterial,s=Array.isArray(t),o=i.groups,l=a?t.side:t;for(let h=0,c=n.length;h{let a=3*n;return e(t,a,a+1,a+2,i,r)}}e={boundsTraverseOrder:n,intersectsBounds:e,intersectsTriangle:t,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let r=Fu.getPrimitive(),{boundsTraverseOrder:a,intersectsBounds:s,intersectsRange:o,intersectsTriangle:l}=e;if(o&&l){let e=o;o=(t,n,a,s,o)=>!!e(t,n,a,s,o)||cH(t,n,i,l,a,s,r)}else o||(o=l?(e,t,n,a)=>cH(e,t,i,l,n,a,r):(e,t,n)=>n);let h=!1,c=0;for(let u of this._roots){if(Bv(u),h=Qhe(0,i,s,o,a,c),Vb(),h)break;c+=u.byteLength}return Fu.releasePrimitive(r),h}bvhcast(e,t,n){let{intersectsRanges:i,intersectsTriangles:r}=n,a=this.geometry.index,s=this.geometry.attributes.position,o=e.geometry.index,l=e.geometry.attributes.position;Uv.copy(t).invert();let h=Fu.getPrimitive(),c=Fu.getPrimitive();if(r){let e=function(e,n,i,u,d,p,f,m){for(let g=i,v=i+u;gfH.intersectsBox(e),intersectsRange:(t,n,r,a,s,o)=>(dH.copy(o),dH.applyMatrix4(Uv),e.shapecast({intersectsBounds:e=>dH.intersectsBox(e),intersectsRange:(e,r,o,l,h)=>i(t,n,e,r,a,s,l,h)}))});return Fu.releasePrimitive(h),Fu.releasePrimitive(c),u}intersectsBox(e,t){return Im.set(e.min,e.max,t),Im.needsUpdate=!0,this.shapecast({intersectsBounds:e=>Im.intersectsBox(e),intersectsTriangle:e=>Im.intersectsTriangle(e)})}intersectsSphere(e){return this.shapecast({intersectsBounds:t=>e.intersectsBox(t),intersectsTriangle:t=>t.intersectsSphere(e)})}closestPointToGeometry(e,t,n={},i={},r=0,a=1/0){e.boundingBox||e.computeBoundingBox(),Im.set(e.boundingBox.min,e.boundingBox.max,t),Im.needsUpdate=!0;let s=this.geometry,o=s.attributes.position,l=s.index,h=e.attributes.position,c=e.index,u=Fu.getPrimitive(),d=Fu.getPrimitive(),p=uA,f=yct,m=null,g=null;i&&(m=xct,g=bct);let v=1/0,y=null,x=null;return Uv.copy(t).invert(),zb.matrix.copy(Uv),this.shapecast({boundsTraverseOrder:e=>Im.distanceToBox(e),intersectsBounds:(e,t,n)=>n{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:e=>zb.distanceToBox(e),intersectsBounds:(e,t,n)=>n{for(let s=3*e,b=3*(e+a);s(Gb.copy(e).clamp(t.min,t.max),Gb.distanceToSquared(e)),intersectsBounds:(e,t,n)=>n{t.closestPointToPoint(e,Gb);let i=e.distanceToSquared(Gb);return i{Il(0,new Float32Array(t),tde),e.union(tde)})),e}},pH=new ho,nde=new et,Ect=xt.prototype.raycast;function mH(e,t){if(this.geometry.boundsTree){if(void 0===this.material)return;nde.copy(this.matrixWorld).invert(),pH.copy(e.ray).applyMatrix4(nde);let n=this.geometry.boundsTree;if(!0===e.firstHitOnly){let i=lH(n.raycastFirst(pH,this.material),this,e);i&&t.push(i)}else{let i=n.raycast(pH,this.material);for(let n=0,r=i.length;nn.far?null:{distance:h,point:vA.clone(),object:e}}function yA(e,t,n,i,r,a,s,o,l,h,c,u){xf.fromBufferAttribute(r,h),bf.fromBufferAttribute(r,c),Ef.fromBufferAttribute(r,u);let d=e.morphTargetInfluences;if(a&&d){hA.set(0,0,0),dA.set(0,0,0),fA.set(0,0,0);for(let e=0,t=a.length;ei.far)return;r.push({distance:o,distanceToRay:Math.sqrt(s),point:n,index:t,face:null,object:a})}}ii.prototype.raycast=function(e,t){let n=this.geometry,i=this.matrixWorld,r=e.params.Points.threshold,a=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),xA.copy(n.boundingSphere),xA.applyMatrix4(i),xA.radius+=r,!1===e.ray.intersectsSphere(xA))return;let s=r*r,o=n.index,l=n.attributes.position,h=t.length;if(null!==o)for(let c=Math.max(0,a.start),u=Math.min(o.count,a.start+a.count);c=1)return}else for(let c=Math.max(0,a.start),u=Math.min(l.count,a.start+a.count);c=1)return};var EH=class{constructor(){this.id=0,this.object=null,this.z=0,this.renderOrder=0}},qb=class{constructor(){this.id=0,this.v1=new _f,this.v2=new _f,this.v3=new _f,this.normalModel=new O,this.vertexNormalsModel=[new O,new O,new O],this.vertexNormalsLength=0,this.color=new ct,this.material=null,this.uvs=[new be,new be,new be],this.z=0,this.renderOrder=0}},_f=class{constructor(){this.position=new O,this.positionWorld=new O,this.positionScreen=new gr,this.visible=!0}copy(e){this.positionWorld.copy(e.positionWorld),this.positionScreen.copy(e.positionScreen)}},Wb=class{constructor(){this.id=0,this.v1=new _f,this.v2=new _f,this.vertexColors=[new ct,new ct],this.material=null,this.z=0,this.renderOrder=0}},jb=class{constructor(){this.id=0,this.object=null,this.x=0,this.y=0,this.z=0,this.rotation=0,this.scale=new be,this.material=null,this.renderOrder=0}},EA=class{constructor(){let e,t,n,i,r,a,s,o,l,h,c,u=0,d=0,p=0,f=0,m=0,g={objects:[],lights:[],elements:[]},v=new O,y=new gr,x=new Ot(new O(-1,-1,-1),new O(1,1,1)),b=new Ot,_=new Array(3),w=new et,S=new et,M=new et,T=new ya,E=[],A=[],C=[],P=[],R=[],L=new function(){let e=[],t=[],l=[],h=null,u=new Ln;function m(e){let t=e.position,n=e.positionWorld,i=e.positionScreen;n.copy(t).applyMatrix4(c),i.copy(n).applyMatrix4(S);let r=1/i.w;i.x*=r,i.y*=r,i.z*=r,e.visible=i.x>=-1&&i.x<=1&&i.y>=-1&&i.y<=1&&i.z>=-1&&i.z<=1}function w(e,t,n){return!0===e.visible||!0===t.visible||!0===n.visible||(_[0]=e.positionScreen,_[1]=t.positionScreen,_[2]=n.positionScreen,x.intersectsBox(b.setFromPoints(_)))}function T(e,t,n){return(n.positionScreen.x-e.positionScreen.x)*(t.positionScreen.y-e.positionScreen.y)-(n.positionScreen.y-e.positionScreen.y)*(t.positionScreen.x-e.positionScreen.x)<0}return{setObject:function(n){h=n,u.getNormalMatrix(h.matrixWorld),e.length=0,t.length=0,l.length=0},projectVertex:m,checkTriangleVisibility:w,checkBackfaceCulling:T,pushVertex:function(e,t,r){n=function(){if(i===d){let e=new _f;return A.push(e),d++,i++,e}return A[i++]}(),n.position.set(e,t,r),m(n)},pushNormal:function(t,n,i){e.push(t,n,i)},pushColor:function(e,n,i){t.push(e,n,i)},pushUv:function(e,t){l.push(e,t)},pushLine:function(e,n){let i=A[e],r=A[n];i.positionScreen.copy(i.position).applyMatrix4(M),r.positionScreen.copy(r.position).applyMatrix4(M),!0===function(e,t){let n=0,i=1,r=e.z+e.w,a=t.z+t.w,s=-e.z+e.w,o=-t.z+t.w;return r>=0&&a>=0&&s>=0&&o>=0||!(r<0&&a<0||s<0&&o<0)&&(r<0?n=Math.max(n,r/(r-a)):a<0&&(i=Math.min(i,r/(r-a))),s<0?n=Math.max(n,s/(s-o)):o<0&&(i=Math.min(i,s/(s-o))),!(i=-1&&e.z<=1&&(l=function(){if(h===m){let e=new jb;return R.push(e),m++,h++,e}return R[h++]}(),l.id=t.id,l.x=e.x*i,l.y=e.y*i,l.z=e.z,l.renderOrder=t.renderOrder,l.object=t,l.rotation=t.rotation,l.scale.x=t.scale.x*Math.abs(l.x-(e.x+n.projectionMatrix.elements[0])/(e.w+n.projectionMatrix.elements[12])),l.scale.y=t.scale.y*Math.abs(l.y-(e.y+n.projectionMatrix.elements[5])/(e.w+n.projectionMatrix.elements[13])),l.material=t.material,g.elements.push(l))}function N(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id!==t.id?e.id-t.id:0}this.projectScene=function(e,n,r,s){a=0,o=0,h=0,g.elements.length=0,!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),null===n.parent&&!0===n.matrixWorldAutoUpdate&&n.updateMatrixWorld(),w.copy(n.matrixWorldInverse),S.multiplyMatrices(n.projectionMatrix,w),T.setFromProjectionMatrix(S),t=0,g.objects.length=0,g.lights.length=0,I(e),!0===r&&g.objects.sort(N);let l=g.objects;for(let t=0,a=l.length;t0)for(let r=0;r0)for(let r=0;r0;)k.removeChild(k.childNodes[0])}function F(e){return null!==g?e.toFixed(g):e}function U(e,t,n){let i=t.scale.x*a,r=t.scale.y*s;n.isPointsMaterial&&(i*=n.size,r*=n.size);let o="M"+F(e.x-.5*i)+","+F(e.y-.5*r)+"h"+F(i)+"v"+F(r)+"h"+F(-i)+"z",l="";(n.isSpriteMaterial||n.isPointsMaterial)&&(l="fill:"+n.color.getStyle()+";fill-opacity:"+n.opacity),V(l,o)}function B(e,t,n){let i="M"+F(e.positionScreen.x)+","+F(e.positionScreen.y)+"L"+F(t.positionScreen.x)+","+F(t.positionScreen.y);if(n.isLineBasicMaterial){let e="fill:none;stroke:"+n.color.getStyle()+";stroke-opacity:"+n.opacity+";stroke-width:"+n.linewidth+";stroke-linecap:"+n.linecap;n.isLineDashedMaterial&&(e=e+";stroke-dasharray:"+n.dashSize+","+n.gapSize),V(e,i)}}function z(e,t,i,r,a){y.info.render.vertices+=3,y.info.render.faces++;let s="M"+F(e.positionScreen.x)+","+F(e.positionScreen.y)+"L"+F(t.positionScreen.x)+","+F(t.positionScreen.y)+"L"+F(i.positionScreen.x)+","+F(i.positionScreen.y)+"z",o="";a.isMeshBasicMaterial?(_.copy(a.color),a.vertexColors&&_.multiply(r.color)):a.isMeshLambertMaterial||a.isMeshPhongMaterial||a.isMeshStandardMaterial?(w.copy(a.color),a.vertexColors&&w.multiply(r.color),_.copy(S),A.copy(e.positionWorld).add(t.positionWorld).add(i.positionWorld).divideScalar(3),function(e,t,n,i){for(let r=0,a=e.length;r1||l.positionScreen.z<-1||l.positionScreen.z>1||h.positionScreen.z<-1||h.positionScreen.z>1)continue;o.positionScreen.x*=a,o.positionScreen.y*=-s,l.positionScreen.x*=a,l.positionScreen.y*=-s,h.positionScreen.x*=a,h.positionScreen.y*=-s,this.overdraw>0&&(H(o.positionScreen,l.positionScreen,this.overdraw),H(l.positionScreen,h.positionScreen,this.overdraw),H(h.positionScreen,o.positionScreen,this.overdraw)),b.setFromPoints([o.positionScreen,l.positionScreen,h.positionScreen]),!0===x.intersectsBox(b)&&z(o,l,h,n,i)}}j(),i.traverseVisible((function(e){if(e.isSVGObject){if(E.setFromMatrixPosition(e.matrixWorld),E.applyMatrix4(L),E.z<-1||E.z>1)return;let t=E.x*a,n=-E.y*s,i=e.node;i.setAttribute("transform",`translate(${t}, ${n}) rotate(${e.rotation.z})`),k.appendChild(i)}}))}}};function Tct(e){let t={};return t.r=(e>>16&255)/255,t.g=(e>>8&255)/255,t.b=(255&e)/255,t}var ode="\n #if defined(USE_BC_OUTLINE)\n // Restore barycentric coordinates\n int barycentricX = int(barycentric) & 0x1;\n int barycentricY = int(barycentric) & 0x2;\n int barycentricZ = int(barycentric) & 0x4;\n vBarycentric = vec3(float(barycentricX), float(barycentricY), float(barycentricZ));\n #endif\n",lde="\n #if defined(USE_BC_OUTLINE)\n vec3 finWireFrameColor = outLineColor;\n vec3 _tempColor = gl_FragColor.rgb;\n\n gl_FragColor.rgb = mix(finWireFrameColor, _tempColor, edgeFactor3());\n #endif\n",cde="\n #if defined(USE_BC_OUTLINE)\n varying vec3 vBarycentric;\n uniform vec3 outLineColor;\n\n float edgeFactor3(){\n vec3 d = fwidth(vBarycentric);\n float minValue = 0.0000001;\n // make sure d is not 0\n d = clamp(d, vec3(minValue), vec3(10.0));\n vec3 a3 = smoothstep(vec3(0.0), d*0.8, vBarycentric);\n return min(min(a3.x, a3.y), a3.z);\n }\n #endif\n",ude="\n #ifdef USE_BC_OUTLINE \n attribute float barycentric;\n varying vec3 vBarycentric;\n #endif\n",hde="\n#define STANDARD\n\nvarying vec3 vViewPosition;\n\n#ifdef USE_TRANSMISSION\n\n\tvarying vec3 vWorldPosition;\n\n#endif\n\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n#include \n\nvoid main() {\n\n\t#include \n\t#include \n\t#include \n\n #include \n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\tvViewPosition = - mvPosition.xyz;\n\n\t#include \n\t#include \n\t#include \n\n#ifdef USE_TRANSMISSION\n\n\tvWorldPosition = worldPosition.xyz;\n\n#endif\n}\n",dde="\n#define STANDARD\n\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef IOR\n\tuniform float ior;\n#endif\n\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\n\nvarying vec3 vViewPosition;\n\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n#include \n\nvoid main() {\n\n\t#include \n\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\t// accumulation\n\t#include \n\t#include \n\t#include \n\t#include \n\n\t// modulation\n\t#include \n\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\n\t#include \n\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\n\t#ifdef USE_SHEEN\n\n\t\t// Sheen energy compensation approximation calculation can be found at the end of\n\t\t// https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\n\t#endif\n\n\t#ifdef USE_CLEARCOAT\n\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\n\t#endif\n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n #include \n}\n";$n.outline_bc_vertex=ode,$n.outline_bc_fragment=lde,$n.outline_bc_pars_fragment=cde,$n.outline_bc_pars_vertex=ude,$n.gemini_standard_vertex=hde,$n.gemini_standard_fragment=dde;var _A=class{constructor(e){this.isCanceled=!1;let t=new Promise(((e,t)=>{this.cancelReject=t}));this.promise=Promise.race([t,e])}cancel(){this.cancelReject&&this.cancelReject({type:"cancel"})}},fde={enableSpinner:!0,containerId:"myCanvas",units:"meters"},Sct=ji(mde(),1),se=Sct;se.setLevel("warn");var gde=e=>{try{se.setLevel(e)}catch(e){se.setLevel("error"),se.error(e)}},_H=class{static isTouchScreenDevice(){return"ontouchstart"in window}static printDeviceInfo(){let e=navigator.userAgent,t=/(?:Android)/.test(e),n=/(?:Firefox)/.test(e),i=/(?:Chrome|CriOS)/.test(e),r=/(?:iPad|PlayBook)/.test(e)||t&&!/(?:Mobile)/.test(e)||n&&/(?:Tablet)/.test(e),a=/(?:iPhone)/.test(e)&&!r,s=!a&&!t,o=_H.isTouchScreenDevice();t&&se.debug("[DI] is android"),n&&se.debug("[DI] is fireFox"),i&&se.debug("[DI] is chrome"),r&&se.debug("[DI] is tablet"),a&&se.debug("[DI] is iPhone"),s&&se.debug("[DI] is PC"),o&&se.debug("[DI] is touch device")}static creatReactNativeCanvas(e){let t=e.drawingBufferWidth||e.width||0,n=e.drawingBufferHeight||e.height||0;return{style:{},width:t,height:n,clientWidth:Math.ceil(t/(window.devicePixelRatio||1)),clientHeight:Math.ceil(n/(window.devicePixelRatio||1)),addEventListener:()=>{},removeEventListener:()=>{}}}},Dn=_H;Dn.isMobile=/mobile/i.test(navigator.userAgent),Dn.isBrowser="undefined"!=typeof document,Dn.isNode="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process);var wA=class{static isFullScreen(){return!(!document.fullscreenElement&&!document.mozFullScreenElement)}static fullScreen(e=document.documentElement){(e.requestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen||e.msRequestFullscreen).call(e)}static exitFullscreen(){(document.exitFullscreen||document.mozCancelFullscreen||document.webkitExitFullscreen||document.msExitFullscreen).call(document)}static joinStrings(...e){return e.join("")}static numberToString(e){let t=2;return Math.abs(e)<1e-6?t=2:Math.abs(e)<1e-5?t=7:Math.abs(e)<1e-4?t=6:Math.abs(e)<.001?t=5:Math.abs(e)<.01?t=4:Math.abs(e)<.1&&(t=3),e.toFixed(t)}static hexToBase64(e){return btoa((e.match(/\w{2}/g)||[]).map((function(e){return String.fromCharCode(parseInt(e,16))})).join(""))}static vectorToString(e){return e instanceof O?`(${this.numberToString(e.x)}, ${this.numberToString(e.y)}, ${this.numberToString(e.z)})`:`(${this.numberToString(e.x)}, ${this.numberToString(e.y)})`}static arrayToVector2(e){return e?e instanceof be?e:Array.isArray(e)&&e.length>=2?new be(e[0],e[1]):void 0:e}static arrayToVector3(e){return e?e instanceof O?e:Array.isArray(e)&&e.length>=2?new O(e[0],e[1],e.length>2?e[2]:0):void 0:e}static arrayToEuler(e){return e?e instanceof Xn?e:Array.isArray(e)&&e.length>=3?new Xn(e[0],e[1],e[2]):void 0:e}static arrayOrObjectToVector3(e){if(!e)return e;if(e instanceof O)return e;if(e instanceof be)return new O(e.x,e.y,0);if(Array.isArray(e)&&e.length>=2)return new O(e[0],e[1],e[2]||0);let t=e;return null!=t.x&&null!=t.y?new O(t.x,t.y,t.z||0):void 0}static isVectorValid(e){let t=e&&!isNaN(e.x)&&!isNaN(e.y)&&isFinite(e.x)&&isFinite(e.y);return t&&e instanceof O&&(t=!isNaN(e.z)&&isFinite(e.z)),t}static isBoxValid(e){return e&&!e.isEmpty()&&this.isVectorValid(e.min)&&this.isVectorValid(e.max)}static isMatrixValid(e){let t=e&&e.elements;if(!t||t.length<16)return!1;for(let n=0;n<16;++n){let e=t[n];if(Number.isNaN(e))return!1}return!0}static guid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{let t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}static expandBoxByScale(e,t){let n=new O;e.getCenter(n);let i=(e.max.x-e.min.x)*t,r=(e.max.y-e.min.y)*t,a=(e.max.z-e.min.z)*t,s=new O(n.x-i/2,n.y-r/2,n.z-a/2),o=new O(n.x+i/2,n.y+r/2,n.z+a/2);e.set(s,o)}static expandBoxByMinSize(e,t){let n=new O;e.getCenter(n);let i=e.max.x-e.min.x,r=e.max.y-e.min.y,a=e.max.z-e.min.z;i{n.onload=function(){e(n)}}))}static renderingContextToImage(e,t,n="image/png",i=.8){if(t){let r=Math.max(t.min.x,0),a=Math.max(t.min.y,0),s=Math.max(t.max.x-r,0),o=Math.max(t.max.y-a,0),l=e.getImageData(r,a,s,o),h=document.createElement("canvas");return h.width=s,h.height=o,h.getContext("2d").putImageData(l,0,0),h.toDataURL(n,i)}return e.canvas.toDataURL(n,i)}static printMemory(e){if(Dn.isBrowser){let t=performance.memory;if(!t)return void se.warn("[CommonUtils] performance.memory is not available in this browser");let n=(t.jsHeapSizeLimit/1048576).toFixed(2),i=(t.totalJSHeapSize/1048576).toFixed(2),r=(t.usedJSHeapSize/1048576).toFixed(2);se.info(`[CommonUtils] ${e}. jsHeapSizeLimit: ${n}M , totalJSHeapSize: ${i}M , usedJSHeapSize: ${r}M `)}}static printGpuInfo(e){if(Dn.isBrowser){let t=e.getExtension("webgl_debug_renderer_info"),n=e.getParameter(t.UNMASKED_RENDERER_WEBGL);se.info("[CommonUtils] gpu:",n)}}static sleep(e){return ft(this,null,(function*(){let t;return new Promise((n=>{t=setTimeout((()=>{n("")}),e)})).then((()=>{clearTimeout(t)}))}))}static twinkle(e,t=500){return ft(this,null,(function*(){let n=this.twinklingObjectIds;n[e.id]||(n[e.id]=!0,e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,delete n[e.id])}))}static getUpdateProgressFunc(e){return t=>{e&&e(new ProgressEvent("",{loaded:t,total:100}))}}static getUpdateProgressFuncAsync(e){let t=Date.now();return n=>ft(this,null,(function*(){if(e){e(new ProgressEvent("",{loaded:n,total:100}));let i=500,r=Date.now();r-t>i&&(yield wA.sleep(0),t=r)}}))}static getUpdateProgressFuncForLoop(e,t){let n=Math.round(Math.pow(e,.5)),i=Date.now();return r=>ft(this,null,(function*(){if(t&&(r%n==0||r===e-1)){t(new ProgressEvent("",{loaded:r+1,total:e}));let n=500,a=Date.now();(a-i>n||r===e-1)&&(yield wA.sleep(0),i=a)}}))}static getUpdateSubProgressFunc(e,t,n){let i=!1;return r=>{let a=100*r.loaded/r.total;a=a*(t-e)/100+e,a>t&&(i||(se.warn("[Progress] Invalid ProgressEvent:",r),i=!0),a=t),n&&n(new ProgressEvent(r.type,{loaded:a,total:100}))}}},Mt=wA;Mt.twinklingObjectIds={};var SA=(e,t,n)=>{let{default:i,active:r}=t;n?(e.remove(i),e.add(r||i)):(r&&e.remove(r),e.add(i))},Cn=class{static color2rgba(e){let t,n=[0,0,0,1];if(t=/^(\w+)\(([^)]*)\)/.exec(e)){let i,r=t[1],a=t[2];switch(r){case"rgb":case"rgba":(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))&&(n=[Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,Number(i[4]||1)]),(i=/^\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))&&(n=[Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,Number(i[4]||1)]);break;case"hsl":case"hsla":(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)%\s*,\s*(\d*\.?\d+)%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))&&(n=[parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,Number(i[4]||1)]);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(t=/^#([A-Fa-f\d]+)$/.exec(e)){let i=t[1],r=i.length;if(3===r)n=[parseInt(i.charAt(0),16)/15,parseInt(i.charAt(1),16)/15,parseInt(i.charAt(2),16)/15,1];else if(6===r){let e=parseInt(i,16);n=[(e>>16&255)/255,(e>>8&255)/255,(255&e)/255,1]}else console.warn("THREE.Color: Invalid hex color "+e)}return n}static rgba2Color(e){return`rgba(${this.to255(e[0])},${this.to255(e[1])},${this.to255(e[2])},${null!=e[3]?e[3]:1})`}static colorStr2Rgba(e){let t=e.replace("rgba(","");t=t.replace(")","");let n=t.split(","),i=[];return i.push(this.to1(parseInt(n[0]))),i.push(this.to1(parseInt(n[1]))),i.push(this.to1(parseInt(n[2]))),null!=n[3]&&i.push(parseFloat(n[3])),i}static rgb2Hex(e){return(this.to255(e[0])<<16)+(this.to255(e[1])<<8)+this.to255(e[2])}static to255(e){let t=Math.max(e,0);return t=Math.min(e,1),255*t}static to1(e){let t=Math.max(e,0);return t=Math.min(e,255),t/255}},cn=class{static getScreenPointByEvent(e,t){let n=new be,{left:i,top:r}=t.getBoundingClientRect();return n.x=e.clientX-i,n.y=e.clientY-r,n}static getScreenPointByTouchEvent(e,t){let n=new be,{left:i,top:r}=t.getBoundingClientRect();return n.x=e.touches[0].clientX-i,n.y=e.touches[0].clientY-r,n}static worldPosition2ScreenPoint(e,t,n){let{clientWidth:i,clientHeight:r}=n,a=e.clone(),s=new be;return a.project(t),s.x=Math.round((.5+a.x/2)*i),s.y=Math.round((.5-a.y/2)*r),s}static screenPoint2worldPosition(e,t,n){let i=cn.screenPoint2NdcPoint(e,t,n);return new O(i.x,i.y,1).unproject(t)}static screenPoint2NdcPoint(e,t,n){let{clientWidth:i,clientHeight:r}=n,a=new be;return a.x=e.x/i*2-1,a.y=-e.y/r*2+1,a}static worldCoordinate2NormalizedScreenCoordinate(e,t,n){let i=new O;e instanceof be?i.set(e.x,e.y,0):i.set(e.x,e.y,e.z);let r=cn.worldPosition2ScreenPoint(i,t,n);return r.x/=n.clientWidth,r.y/=n.clientHeight,r}},zv=class extends an{constructor(e=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.center=new be(.5,.5),this.addEventListener("removed",(function(){this.traverse((function(e){e.element instanceof Element&&null!==e.element.parentNode&&e.element.parentNode.removeChild(e.element)}))}))}copy(e,t){return super.copy(e,t),this.element=e.element.cloneNode(!0),this.center=e.center,this}},Vv=new O,vde=new et,yde=new et,xde=new O,bde=new O,Nu=class{constructor(e={}){let t,n,i,r,a=this,s={objects:new WeakMap},o=void 0!==e.element?e.element:document.createElement("div");function l(e,t,n){if(e.isCSS2DObject){Vv.setFromMatrixPosition(e.matrixWorld),Vv.applyMatrix4(yde);let l=!0===e.visible&&Vv.z>=-1&&Vv.z<=1&&!0===e.layers.test(n.layers);if(e.element.style.display=!0===l?"":"none",!0===l){e.onBeforeRender(a,t,n);let s=e.element;s.style.transform="translate("+-100*e.center.x+"%,"+-100*e.center.y+"%)translate("+(Vv.x*i+i)+"px,"+(-Vv.y*r+r)+"px)",s.parentNode!==o&&o.appendChild(s),e.onAfterRender(a,t,n)}let c={distanceToCameraSquared:h(n,e)};s.objects.set(e,c)}for(let i=0,r=e.children.length;ie.toFixed(t===Ede["Precision from file"]?2:t),si=!1,YLt=!1,Uu=10,vs=11,ei=12,qv="gemini-viewer-iconfont",$Lt="keydown",ZLt="keyup",wf="mousemove",TH="mouseup",wH="mousedown",KLt="Escape",JLt="Enter",QLt="axis-section-plane",eDt="axis-section-plane-control",tDt="section-plane",nDt="section-plane-control",rDt="section-box",SH="plane-section-boxface",_de=-1e3,MA=10,Wv=(e=>(e.ObjectsBoxSection="ObjectsBoxSection",e.PickPlaneSection="PickPlaneSection",e.AxisPlaneSection="AxisPlaneSection",e))(Wv||{}),MH=(e=>(e.Default="Default",e.BoxSelection="BoxSelection",e.PickMarkup="PickMarkup",e))(MH||{}),Tde=new O,wde=new O,Sde=new O,Xb=new O,rd=new O,Mde=new Zr;function Mct(e,t,n,i,r){let a,s,o,l,h,c,u=[],d={},p=Math.pow(10,4),f=0;for(h=0,c=e.length;hy))&&(m=r[d.index1],g=r[d.index2],(!b&&m>65535||g>65535)&&(b=!0),v.push(m),v.push(g));return b?new Uint32Array(v):new Uint16Array(v)}static buildBarycentrics(e){let t=e.getAttribute("position");if(!t||0===t.count)return console.warn(" no positions in geometry !"),!1;let n=Math.pow(10,4),i=Math.cos(20*An.DEG2RAD),r=e.getIndex(),a=r?r.count:t.count,s=[0,0,0],o=new Array(3),l=RH.length,h=[];for(let S=0;S0))break;g=new Set;for(let e of m[v])g.add(e.a),g.add(e.b),g.add(e.c);m.splice(v,1),v=0}}let y=new Set;for(let S=0;S{y.has(e)?se.warn(`${e} is already in positionIndexSet !`):y.add(e)}));let x=(e,t)=>{let n=!1,i=d[e];if(!i)return console.warn(`${e} is not in positionIndexHash !`),n;let r=d[t];if(!r)return console.warn(`${t} is not in positionIndexHash !`),n;let a=`${i}_${r}`;if(p[a])n=p[a].outer;else{let e=`${r}_${i}`;p[e]&&(n=p[e].outer)}return n},b=(e,t,n)=>{let i=[];return i.push(x(e,t)),i.push(x(t,n)),i.push(x(n,e)),i.filter((e=>!0===e)).length>=2},_=(e,t)=>{if(!c[e])return se.warn(`${e} position isn't used !`),!0;let n=c[e];for(let r of n){let n=x(e,r),i=h[r];if(!i.inited)continue;let a=Act(t,i.point);if(n&&!a||!n&&a)return!1}let i=u[e];for(let r of i){let n=t,i=h[r.b],a=h[r.c];if(r.b===e?i=h[r.a]:r.c===e&&(a=h[r.a]),b(r.a,r.b,r.c)&&(i.inited&&n.equals(i.point)||a.inited&&n.equals(a.point)))return!1;if(i.inited&&a.inited&&(rd.addVectors(n,i.point),rd.add(a.point),rd.x+rd.y+rd.z<2))return!1}return!0},w=!1;for(let S=0;S=0;){t=e[n];let i=h[t].inited?h[t].barycentricIndex+1:0;for(;ie(t)))}hasEventListener(e){return!!this.map.get(e)}removeEventListener(e,t){if(!e)return void this.map.clear();if(!t)return void this.map.delete(e);let n=this.map.get(e);n&&n.delete(t)}},xa=class{parse(e,t={}){if(t=Object.assign({decodeSpeed:5,encodeSpeed:5,encoderMethod:xa.MESH_EDGEBREAKER_ENCODING,quantization:[16,8,8,8,8],exportUvs:!0,exportNormals:!0,exportColor:!1},t),void 0===DracoEncoderModule)throw new Error("THREE.DRACOExporter: required the draco_encoder to work.");let n,i,r=e.geometry,a=DracoEncoderModule(),s=new a.Encoder;if(!0===e.isMesh){n=new a.MeshBuilder,i=new a.Mesh;let e=r.getAttribute("position");n.AddFloatAttributeToMesh(i,a.POSITION,e.count,e.itemSize,e.array);let s=r.getIndex();if(null!==s)n.AddFacesToMesh(i,s.count/3,s.array);else{let t=new(e.count>65535?Uint32Array:Uint16Array)(e.count);for(let e=0;e4?n=e.array[r*e.itemSize+t]:(0===t?n=e.getX(r):1===t?n=e.getY(r):2===t?n=e.getZ(r):3===t&&(n=e.getW(r)),!0===e.normalized&&(n=An.normalize(n,e.array))),i.min[t]=Math.min(i.min[t],n),i.max[t]=Math.max(i.max[t],n)}return i}function Ode(e){return 4*Math.ceil(e/4)}function PH(e,t=0){let n=Ode(e.byteLength);if(n!==e.byteLength){let i=new Uint8Array(n);if(i.set(new Uint8Array(e)),0!==t)for(let r=e.byteLength;re.toBlob(n,t)));let n;return"image/jpeg"===t?n=.92:"image/webp"===t&&(n=.8),e.convertToBlob({type:t,quality:n})}var IH=class{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.extensionsRequired={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(e){this.plugins=e}write(e,t){return ft(this,arguments,(function*(e,t,n={}){this.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},n),this.options.animations.length>0&&(this.options.trs=!0),this.processInput(e),yield Promise.all(this.pending);let i=this,r=i.buffers,a=i.json;n=i.options;let s=i.extensionsUsed,o=i.extensionsRequired,l=new Blob(r,{type:"application/octet-stream"}),h=Object.keys(s),c=Object.keys(o);if(h.length>0&&(a.extensionsUsed=h),c.length>0&&(a.extensionsRequired=c),a.buffers&&a.buffers.length>0&&(a.buffers[0].byteLength=l.size),!0===n.binary){let e=new FileReader;e.readAsArrayBuffer(l),e.onloadend=function(){let n=PH(e.result),i=new DataView(new ArrayBuffer(Ide));i.setUint32(0,n.byteLength,!0),i.setUint32(4,Dct,!0);let r=PH(Oct(JSON.stringify(a)),32),s=new DataView(new ArrayBuffer(Ide));s.setUint32(0,r.byteLength,!0),s.setUint32(4,Lct,!0);let o=new ArrayBuffer(Pde),l=new DataView(o);l.setUint32(0,Pct,!0),l.setUint32(4,Ict,!0);let h=Pde+s.byteLength+r.byteLength+i.byteLength+n.byteLength;l.setUint32(8,h,!0);let c=new Blob([o,s,r,i,n],{type:"application/octet-stream"}),u=new FileReader;u.readAsArrayBuffer(c),u.onloadend=function(){t(u.result)}}}else if(a.buffers&&a.buffers.length>0){let e=new FileReader;e.readAsDataURL(l),e.onloadend=function(){let n=e.result;a.buffers[0].uri=n,t(a)}}else t(a)}))}serializeUserData(e,t){if(0===Object.keys(e.userData).length)return;let n=this.options,i=this.extensionsUsed;try{let r=JSON.parse(JSON.stringify(e.userData));if(n.includeCustomExtensions&&r.gltfExtensions){void 0===t.extensions&&(t.extensions={});for(let e in r.gltfExtensions)t.extensions[e]=r.gltfExtensions[e],i[e]=!0;delete r.gltfExtensions}Object.keys(r).length>0&&(t.extras=r)}catch(t){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+t.message)}}getUID(e,t=!1){if(!1===this.uids.has(e)){let t=new Map;t.set(!0,this.uid++),t.set(!1,this.uid++),this.uids.set(e,t)}return this.uids.get(e).get(t)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;let t=new O;for(let n=0,i=e.count;n5e-4)return!1;return!0}createNormalizedNormalAttribute(e){let t=this.cache;if(t.attributesNormalized.has(e))return t.attributesNormalized.get(e);let n=e.clone(),i=new O;for(let r=0,a=n.count;r4?i=e.array[u*e.itemSize+n]:(0===n?i=e.getX(u):1===n?i=e.getY(u):2===n?i=e.getZ(u):3===n&&(i=e.getW(u)),!0===e.normalized&&(i=An.normalize(i,e.array))),t===Hr.FLOAT?l.setFloat32(h,i,!0):t===Hr.INT?l.setInt32(h,i,!0):t===Hr.UNSIGNED_INT?l.setUint32(h,i,!0):t===Hr.SHORT?l.setInt16(h,i,!0):t===Hr.UNSIGNED_SHORT?l.setUint16(h,i,!0):t===Hr.BYTE?l.setInt8(h,i):t===Hr.UNSIGNED_BYTE&&l.setUint8(h,i),h+=a}let c={buffer:this.processBuffer(l.buffer),byteOffset:this.byteOffset,byteLength:o};return void 0!==r&&(c.target=r),r===Hr.ARRAY_BUFFER&&(c.byteStride=e.itemSize*a),this.byteOffset+=o,s.bufferViews.push(c),{id:s.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){let t=this,n=t.json;return n.bufferViews||(n.bufferViews=[]),new Promise((function(i){let r=new FileReader;r.readAsArrayBuffer(e),r.onloadend=function(){let e=PH(r.result),a={buffer:t.processBuffer(e),byteOffset:t.byteOffset,byteLength:e.byteLength};t.byteOffset+=e.byteLength,i(n.bufferViews.push(a)-1)}}))}processAccessor(e,t,n,i){let r,a=this.json;if(e.array.constructor===Float32Array)r=Hr.FLOAT;else if(e.array.constructor===Int32Array)r=Hr.INT;else if(e.array.constructor===Uint32Array)r=Hr.UNSIGNED_INT;else if(e.array.constructor===Int16Array)r=Hr.SHORT;else if(e.array.constructor===Uint16Array)r=Hr.UNSIGNED_SHORT;else if(e.array.constructor===Int8Array)r=Hr.BYTE;else{if(e.array.constructor!==Uint8Array)throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: "+e.array.constructor.name);r=Hr.UNSIGNED_BYTE}if(void 0===n&&(n=0),void 0===i&&(i=e.count),0===i)return null;let s,o=Fct(e,n,i);void 0!==t&&(s=e===t.index?Hr.ELEMENT_ARRAY_BUFFER:Hr.ARRAY_BUFFER);let l=this.processBufferView(e,r,n,i,s),h={bufferView:l.id,byteOffset:l.byteOffset,componentType:r,count:i,max:o.max,min:o.min,type:{1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",9:"MAT3",16:"MAT4"}[e.itemSize]};return!0===e.normalized&&(h.normalized=!0),a.accessors||(a.accessors=[]),a.accessors.push(h)-1}processImage(e,t,n,i="image/png"){if(null!==e){let r=this,a=r.cache,s=r.json,o=r.options,l=r.pending;a.images.has(e)||a.images.set(e,{});let h=a.images.get(e),c=i+":flipY/"+n.toString();if(void 0!==h[c])return h[c];s.images||(s.images=[]);let u={mimeType:i},d=Lde();d.width=Math.min(e.width,o.maxTextureSize),d.height=Math.min(e.height,o.maxTextureSize);let p=d.getContext("2d");if(!0===n&&(p.translate(0,d.height),p.scale(1,-1)),void 0!==e.data){t!==ea&&console.error("GLTFExporter: Only RGBAFormat is supported.",t),(e.width>o.maxTextureSize||e.height>o.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);let n=new Uint8ClampedArray(e.height*e.width*4);for(let t=0;tr.processBufferViewImage(e))).then((e=>{u.bufferView=e}))):void 0!==d.toDataURL?u.uri=d.toDataURL(i):l.push(Dde(d,i).then((e=>(new FileReader).readAsDataURL(e))).then((e=>{u.uri=e})));let f=s.images.push(u)-1;return h[c]=f,f}throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(e){let t=this.json;t.samplers||(t.samplers=[]);let n={magFilter:$o[e.magFilter],minFilter:$o[e.minFilter],wrapS:$o[e.wrapS],wrapT:$o[e.wrapT]};return t.samplers.push(n)-1}processTexture(e){let t=this.options,n=this.cache,i=this.json;if(n.textures.has(e))return n.textures.get(e);i.textures||(i.textures=[]),e instanceof Mu&&(e=PA(e,t.maxTextureSize));let r=e.userData.mimeType;"image/webp"===r&&(r="image/png");let a={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,r)};e.name&&(a.name=e.name),this._invokeAll((function(t){t.writeTexture&&t.writeTexture(e,a)}));let s=i.textures.push(a)-1;return n.textures.set(e,s),s}processMaterial(e){let t=this.cache,n=this.json;if(t.materials.has(e))return t.materials.get(e);if(e.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;n.materials||(n.materials=[]);let i={pbrMetallicRoughness:{}};!0!==e.isMeshStandardMaterial&&!0!==e.isMeshBasicMaterial&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");let r=e.color.toArray().concat([e.opacity]);if(Yb(r,[1,1,1,1])||(i.pbrMetallicRoughness.baseColorFactor=r),e.isMeshStandardMaterial?(i.pbrMetallicRoughness.metallicFactor=e.metalness,i.pbrMetallicRoughness.roughnessFactor=e.roughness):(i.pbrMetallicRoughness.metallicFactor=.5,i.pbrMetallicRoughness.roughnessFactor=.5),e.metalnessMap||e.roughnessMap){let t=this.buildMetalRoughTexture(e.metalnessMap,e.roughnessMap),n={index:this.processTexture(t),channel:t.channel};this.applyTextureTransform(n,t),i.pbrMetallicRoughness.metallicRoughnessTexture=n}if(e.map){let t={index:this.processTexture(e.map),texCoord:e.map.channel};this.applyTextureTransform(t,e.map),i.pbrMetallicRoughness.baseColorTexture=t}if(e.emissive){let t=e.emissive;if(Math.max(t.r,t.g,t.b)>0&&(i.emissiveFactor=e.emissive.toArray()),e.emissiveMap){let t={index:this.processTexture(e.emissiveMap),texCoord:e.emissiveMap.channel};this.applyTextureTransform(t,e.emissiveMap),i.emissiveTexture=t}}if(e.normalMap){let t={index:this.processTexture(e.normalMap),texCoord:e.normalMap.channel};e.normalScale&&1!==e.normalScale.x&&(t.scale=e.normalScale.x),this.applyTextureTransform(t,e.normalMap),i.normalTexture=t}if(e.aoMap){let t={index:this.processTexture(e.aoMap),texCoord:e.aoMap.channel};1!==e.aoMapIntensity&&(t.strength=e.aoMapIntensity),this.applyTextureTransform(t,e.aoMap),i.occlusionTexture=t}e.transparent?i.alphaMode="BLEND":e.alphaTest>0&&(i.alphaMode="MASK",i.alphaCutoff=e.alphaTest),e.side===Sr&&(i.doubleSided=!0),""!==e.name&&(i.name=e.name),this.serializeUserData(e,i),this._invokeAll((function(t){t.writeMaterial&&t.writeMaterial(e,i)}));let a=n.materials.push(i)-1;return t.materials.set(e,a),a}processMesh(e){let t=this.cache,n=this.json,i=[e.geometry.uuid];if(Array.isArray(e.material))for(let y=0,x=e.material.length;y0){let n=[],i=[],r={};if(void 0!==e.morphTargetDictionary)for(let t in e.morphTargetDictionary)r[e.morphTargetDictionary[t]]=t;for(let a=0;a0&&(o.extras={},o.extras.targetNames=i)}let f=Array.isArray(e.material);if(f&&0===s.groups.length)return null;let m=f?e.material:[e.material],g=f?s.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let y=0,x=g.length;y0&&(e.targets=c),null!==s.index){let n=this.getUID(s.index);(void 0!==g[y].start||void 0!==g[y].count)&&(n+=":"+g[y].start+":"+g[y].count),t.attributes.has(n)?e.indices=t.attributes.get(n):(e.indices=this.processAccessor(s.index,s,g[y].start,g[y].count),t.attributes.set(n,e.indices)),null===e.indices&&delete e.indices}let n=this.processMaterial(m[g[y].materialIndex]);null!==n&&(e.material=n),h.push(e)}o.primitives=h,n.meshes||(n.meshes=[]),this._invokeAll((function(t){t.writeMesh&&t.writeMesh(e,o)}));let v=n.meshes.push(o)-1;return t.meshes.set(r,v),v}detectMeshQuantization(e,t){if(this.extensionsUsed[CH])return;let n;switch(t.array.constructor){case Int8Array:n="byte";break;case Uint8Array:n="unsigned byte";break;case Int16Array:n="short";break;case Uint16Array:n="unsigned short";break;default:return}t.normalized&&(n+=" normalized");let i=e.split("_",1)[0];Ade[i]&&Ade[i].includes(n)&&(this.extensionsUsed[CH]=!0,this.extensionsRequired[CH]=!0)}processCamera(e){let t=this.json;t.cameras||(t.cameras=[]);let n=e.isOrthographicCamera,i={type:n?"orthographic":"perspective"};return n?i.orthographic={xmag:2*e.right,ymag:2*e.top,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:i.perspective={aspectRatio:e.aspect,yfov:An.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},""!==e.name&&(i.name=e.type),t.cameras.push(i)-1}processAnimation(e,t){let n=this.json,i=this.nodeMap;n.animations||(n.animations=[]);let r=(e=Xv.Utils.mergeMorphTargetTracks(e.clone(),t)).tracks,a=[],s=[];for(let o=0;o0){let t=[];for(let i=0,r=e.children.length;i0&&(r.children=t)}this._invokeAll((function(t){t.writeNode&&t.writeNode(e,r)}));let a=t.nodes.push(r)-1;return i.set(e,a),a}processScene(e){let t=this.json,n=this.options;t.scenes||(t.scenes=[],t.scene=0);let i={};""!==e.name&&(i.name=e.name),t.scenes.push(i);let r=[];for(let a=0,s=e.children.length;a0&&(i.nodes=r),this.serializeUserData(e,i)}processObjects(e){let t=new _i;t.name="AuxScene";for(let n=0;n0&&this.processObjects(n);for(let i=0;i0&&(a.range=e.distance)):e.isSpotLight&&(a.type="spot",e.distance>0&&(a.range=e.distance),a.spot={},a.spot.innerConeAngle=(e.penumbra-1)*e.angle*-1,a.spot.outerConeAngle=e.angle),void 0!==e.decay&&2!==e.decay&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),e.target&&(e.target.parent!==e||0!==e.target.position.x||0!==e.target.position.y||-1!==e.target.position.z)&&console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),r[this.name]||(i.extensions=i.extensions||{},i.extensions[this.name]={lights:[]},r[this.name]=!0);let s=i.extensions[this.name].lights;s.push(a),t.extensions=t.extensions||{},t.extensions[this.name]={light:s.length-1}}},DH=class{constructor(e){this.writer=e,this.name="KHR_materials_unlit"}writeMaterial(e,t){if(!e.isMeshBasicMaterial)return;let n=this.writer.extensionsUsed;t.extensions=t.extensions||{},t.extensions[this.name]={},n[this.name]=!0,t.pbrMetallicRoughness.metallicFactor=0,t.pbrMetallicRoughness.roughnessFactor=.9}},OH=class{constructor(e){this.writer=e,this.name="KHR_materials_clearcoat"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.clearcoat)return;let n=this.writer,i=n.extensionsUsed,r={};if(r.clearcoatFactor=e.clearcoat,e.clearcoatMap){let t={index:n.processTexture(e.clearcoatMap),texCoord:e.clearcoatMap.channel};n.applyTextureTransform(t,e.clearcoatMap),r.clearcoatTexture=t}if(r.clearcoatRoughnessFactor=e.clearcoatRoughness,e.clearcoatRoughnessMap){let t={index:n.processTexture(e.clearcoatRoughnessMap),texCoord:e.clearcoatRoughnessMap.channel};n.applyTextureTransform(t,e.clearcoatRoughnessMap),r.clearcoatRoughnessTexture=t}if(e.clearcoatNormalMap){let t={index:n.processTexture(e.clearcoatNormalMap),texCoord:e.clearcoatNormalMap.channel};n.applyTextureTransform(t,e.clearcoatNormalMap),r.clearcoatNormalTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=r,i[this.name]=!0}},kH=class{constructor(e){this.writer=e,this.name="KHR_materials_iridescence"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.iridescence)return;let n=this.writer,i=n.extensionsUsed,r={};if(r.iridescenceFactor=e.iridescence,e.iridescenceMap){let t={index:n.processTexture(e.iridescenceMap),texCoord:e.iridescenceMap.channel};n.applyTextureTransform(t,e.iridescenceMap),r.iridescenceTexture=t}if(r.iridescenceIor=e.iridescenceIOR,r.iridescenceThicknessMinimum=e.iridescenceThicknessRange[0],r.iridescenceThicknessMaximum=e.iridescenceThicknessRange[1],e.iridescenceThicknessMap){let t={index:n.processTexture(e.iridescenceThicknessMap),texCoord:e.iridescenceThicknessMap.channel};n.applyTextureTransform(t,e.iridescenceThicknessMap),r.iridescenceThicknessTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=r,i[this.name]=!0}},FH=class{constructor(e){this.writer=e,this.name="KHR_materials_transmission"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;let n=this.writer,i=n.extensionsUsed,r={};if(r.transmissionFactor=e.transmission,e.transmissionMap){let t={index:n.processTexture(e.transmissionMap),texCoord:e.transmissionMap.channel};n.applyTextureTransform(t,e.transmissionMap),r.transmissionTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=r,i[this.name]=!0}},NH=class{constructor(e){this.writer=e,this.name="KHR_materials_volume"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;let n=this.writer,i=n.extensionsUsed,r={};if(r.thicknessFactor=e.thickness,e.thicknessMap){let t={index:n.processTexture(e.thicknessMap),texCoord:e.thicknessMap.channel};n.applyTextureTransform(t,e.thicknessMap),r.thicknessTexture=t}r.attenuationDistance=e.attenuationDistance,r.attenuationColor=e.attenuationColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=r,i[this.name]=!0}},BH=class{constructor(e){this.writer=e,this.name="KHR_materials_ior"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1.5===e.ior)return;let n=this.writer.extensionsUsed,i={};i.ior=e.ior,t.extensions=t.extensions||{},t.extensions[this.name]=i,n[this.name]=!0}},UH=class{constructor(e){this.writer=e,this.name="KHR_materials_specular"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1===e.specularIntensity&&e.specularColor.equals(Cct)&&!e.specularIntensityMap&&!e.specularColorTexture)return;let n=this.writer,i=n.extensionsUsed,r={};if(e.specularIntensityMap){let t={index:n.processTexture(e.specularIntensityMap),texCoord:e.specularIntensityMap.channel};n.applyTextureTransform(t,e.specularIntensityMap),r.specularTexture=t}if(e.specularColorMap){let t={index:n.processTexture(e.specularColorMap),texCoord:e.specularColorMap.channel};n.applyTextureTransform(t,e.specularColorMap),r.specularColorTexture=t}r.specularFactor=e.specularIntensity,r.specularColorFactor=e.specularColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=r,i[this.name]=!0}},HH=class{constructor(e){this.writer=e,this.name="KHR_materials_sheen"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.sheen)return;let n=this.writer,i=n.extensionsUsed,r={};if(e.sheenRoughnessMap){let t={index:n.processTexture(e.sheenRoughnessMap),texCoord:e.sheenRoughnessMap.channel};n.applyTextureTransform(t,e.sheenRoughnessMap),r.sheenRoughnessTexture=t}if(e.sheenColorMap){let t={index:n.processTexture(e.sheenColorMap),texCoord:e.sheenColorMap.channel};n.applyTextureTransform(t,e.sheenColorMap),r.sheenColorTexture=t}r.sheenRoughnessFactor=e.sheenRoughness,r.sheenColorFactor=e.sheenColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=r,i[this.name]=!0}},VH=class{constructor(e){this.writer=e,this.name="KHR_materials_anisotropy"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.anisotropy)return;let n=this.writer,i=n.extensionsUsed,r={};if(e.anisotropyMap){let t={index:n.processTexture(e.anisotropyMap)};n.applyTextureTransform(t,e.anisotropyMap),r.anisotropyTexture=t}r.anisotropyStrength=e.anisotropy,r.anisotropyRotation=e.anisotropyRotation,t.extensions=t.extensions||{},t.extensions[this.name]=r,i[this.name]=!0}},zH=class{constructor(e){this.writer=e,this.name="KHR_materials_emissive_strength"}writeMaterial(e,t){if(!e.isMeshStandardMaterial||1===e.emissiveIntensity)return;let n=this.writer.extensionsUsed,i={};i.emissiveStrength=e.emissiveIntensity,t.extensions=t.extensions||{},t.extensions[this.name]=i,n[this.name]=!0}};Xv.Utils={insertKeyframe:function(e,t){let n,i=e.getValueSize(),r=new e.TimeBufferType(e.times.length+1),a=new e.ValueBufferType(e.values.length+i),s=e.createInterpolant(new e.ValueBufferType(i));if(0===e.times.length){r[0]=t;for(let e=0;ee.times[e.times.length-1]){if(Math.abs(e.times[e.times.length-1]-t)<.001)return e.times.length-1;r[r.length-1]=t,r.set(e.times,0),a.set(e.values,0),a.set(s.evaluate(t),e.values.length),n=r.length-1}else for(let o=0;ot){r.set(e.times.slice(0,o+1),0),r[o+1]=t,r.set(e.times.slice(o+1),o+2),a.set(e.values.slice(0,(o+1)*i),0),a.set(s.evaluate(t),(o+1)*i),a.set(e.values.slice((o+1)*i),(o+2)*i),n=o+1;break}}return e.times=r,e.values=a,n},mergeMorphTargetTracks:function(e,t){let n=[],i={},r=e.tracks;for(let a=0;a{if(n.binary){t=Fi.addExtention(t,Fi.EXTENSION_GLB);let n=e;Fi.saveArrayBuffer(n,t)}else t=Fi.addExtention(t,Fi.EXTENSION_GLTF),Fi.saveJson(e,t)}),(e=>console.log(e)),n)}static exportToObj(e,t){if(!e||!t)throw new Error("Invalid input or filename!");t=Fi.addExtention(t,Fi.EXTENSION_OBJ);let n=(new IA).parse(e);Fi.saveString(n,t)}static exportToDraco(e,t,n={}){if(!e||!t)throw new Error("Invalid input or filename!");t=Fi.addExtention(t,Fi.EXTENSION_DRACO);let i=new xa;n=Object.assign({},{encodeSpeed:5},n);let r=i.parse(e,n);Fi.saveArrayBuffer(r,t)}static exportToThreeJsJson(e,t){let n=e.toJSON();t.toLowerCase().endsWith(Fi.EXTENSION_JSON)||(t+=Fi.EXTENSION_JSON),Fi.saveJson(n,t)}static save(e,t){let n=Fi.downloadLink;n||(n=document.createElement("a"),n.style.display="none",document.body.appendChild(n),Fi.downloadLink=n),n.href=URL.createObjectURL(e),n.download=t,n.click()}static saveArrayBuffer(e,t){Fi.save(new Blob([e],{type:"application/octet-stream"}),t)}static saveJson(e,t){Fi.saveJsonString(JSON.stringify(e),t)}static saveJsonString(e,t){Fi.save(new Blob([e],{type:"application/json"}),t)}static saveString(e,t){Fi.save(new Blob([e],{type:"text/csv"}),t)}static addExtention(e,t){return e.toLowerCase().endsWith(t.toLowerCase())||(e+=t),e}},Lm=Fi;Lm.EXTENSION_GLTF=".gltf",Lm.EXTENSION_GLB=".glb",Lm.EXTENSION_OBJ=".obj",Lm.EXTENSION_DRACO=".drc",Lm.EXTENSION_JSON=".json";var LA=class{constructor(){this.prevTime=(performance||Date).now(),this.beginTime=(performance||Date).now(),this.frames=0,this.fps=Number.NaN}begin(){this.beginTime=(performance||Date).now()}end(){this.frames++;let e=(performance||Date).now();return e>=this.prevTime+1e3&&(this.fps=Math.round(1e3*this.frames/(e-this.prevTime)),this.frames=0,this.prevTime=e),e}update(){this.beginTime=this.end()}},YH={exports:{}};function kA(e,t,n){n=n||2;var i,r,a,s,o,l,h,c=t&&t.length,u=c?t[0]*n:e.length,d=Hde(e,0,u,n,!0),p=[];if(!d||d.next===d.prev)return p;if(c&&(d=Vct(e,t,d,n)),e.length>80*n){i=a=e[0],r=s=e[1];for(var f=n;fa&&(a=o),l>s&&(s=l);h=0!==(h=Math.max(a-i,s-r))?32767/h:0}return $b(d,p,n,i,r,h,0),p}function Hde(e,t,n,i,r){var a,s;if(r===XH(e,t,n,i)>0)for(a=t;a=t;a-=i)s=kde(a,e[a],e[a+1],s);return s&&FA(s,s.next)&&(Kb(s),s=s.next),s}function Dm(e,t){if(!e)return e;t||(t=e);var n,i=e;do{if(n=!1,i.steiner||!FA(i,i.next)&&0!==Qi(i.prev,i,i.next))i=i.next;else{if(Kb(i),(i=t=i.prev)===i.next)break;n=!0}}while(n||i!==t);return t}function $b(e,t,n,i,r,a,s){if(e){!s&&a&&jct(e,i,r,a);for(var o,l,h=e;e.prev!==e.next;)if(o=e.prev,l=e.next,a?Bct(e,i,r,a):Nct(e))t.push(o.i/n|0),t.push(e.i/n|0),t.push(l.i/n|0),Kb(e),e=l.next,h=l.next;else if((e=l)===h){s?1===s?$b(e=Uct(Dm(e),t,n),t,n,i,r,a,2):2===s&&Hct(e,t,n,i,r,a):$b(Dm(e),t,n,i,r,a,1);break}}}function Nct(e){var t=e.prev,n=e,i=e.next;if(Qi(t,n,i)>=0)return!1;for(var r=t.x,a=n.x,s=i.x,o=t.y,l=n.y,h=i.y,c=ra?r>s?r:s:a>s?a:s,p=o>l?o>h?o:h:l>h?l:h,f=i.next;f!==t;){if(f.x>=c&&f.x<=d&&f.y>=u&&f.y<=p&&Yv(r,o,a,l,s,h,f.x,f.y)&&Qi(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function Bct(e,t,n,i){var r=e.prev,a=e,s=e.next;if(Qi(r,a,s)>=0)return!1;for(var o=r.x,l=a.x,h=s.x,c=r.y,u=a.y,d=s.y,p=ol?o>h?o:h:l>h?l:h,g=c>u?c>d?c:d:u>d?u:d,v=WH(p,f,t,n,i),y=WH(m,g,t,n,i),x=e.prevZ,b=e.nextZ;x&&x.z>=v&&b&&b.z<=y;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&Yv(o,c,l,u,h,d,x.x,x.y)&&Qi(x.prev,x,x.next)>=0||(x=x.prevZ,b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&Yv(o,c,l,u,h,d,b.x,b.y)&&Qi(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;x&&x.z>=v;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&Yv(o,c,l,u,h,d,x.x,x.y)&&Qi(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;b&&b.z<=y;){if(b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&Yv(o,c,l,u,h,d,b.x,b.y)&&Qi(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function Uct(e,t,n){var i=e;do{var r=i.prev,a=i.next.next;!FA(r,a)&&Vde(r,i,i.next,a)&&Zb(r,a)&&Zb(a,r)&&(t.push(r.i/n|0),t.push(i.i/n|0),t.push(a.i/n|0),Kb(i),Kb(i.next),i=e=a),i=i.next}while(i!==e);return Dm(i)}function Hct(e,t,n,i,r,a){var s=e;do{for(var o=s.next.next;o!==s.prev;){if(s.i!==o.i&&$ct(s,o)){var l=zde(s,o);return s=Dm(s,s.next),l=Dm(l,l.next),$b(s,t,n,i,r,a,0),void $b(l,t,n,i,r,a,0)}o=o.next}s=s.next}while(s!==e)}function Vct(e,t,n,i){var r,a,s,o=[];for(r=0,a=t.length;r=i.next.y&&i.next.y!==i.y){var o=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(o<=r&&o>s&&(s=o,n=i.x=i.x&&i.x>=c&&r!==i.x&&Yv(an.x||i.x===n.x&&Wct(n,i)))&&(n=i,d=l)),i=i.next}while(i!==h);return n}function Wct(e,t){return Qi(e.prev,e,t.prev)<0&&Qi(t.next,e,e.next)<0}function jct(e,t,n,i){var r=e;do{0===r.z&&(r.z=WH(r.x,r.y,t,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,Xct(r)}function Xct(e){var t,n,i,r,a,s,o,l,h=1;do{for(n=e,e=null,a=null,s=0;n;){for(s++,i=n,o=0,t=0;t0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),a?a.nextZ=r:e=r,r.prevZ=a,a=r;n=i}a.nextZ=null,h*=2}while(s>1);return e}function WH(e,t,n,i,r){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function Yct(e){var t=e,n=e;do{(t.x=(e-s)*(a-o)&&(e-s)*(i-o)>=(n-s)*(t-o)&&(n-s)*(a-o)>=(r-s)*(i-o)}function $ct(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!Zct(e,t)&&(Zb(e,t)&&Zb(t,e)&&Kct(e,t)&&(Qi(e.prev,e,t.prev)||Qi(e,t.prev,t))||FA(e,t)&&Qi(e.prev,e,e.next)>0&&Qi(t.prev,t,t.next)>0)}function Qi(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function FA(e,t){return e.x===t.x&&e.y===t.y}function Vde(e,t,n,i){var r=OA(Qi(e,t,n)),a=OA(Qi(e,t,i)),s=OA(Qi(n,i,e)),o=OA(Qi(n,i,t));return!!(r!==a&&s!==o||0===r&&DA(e,n,t)||0===a&&DA(e,i,t)||0===s&&DA(n,e,i)||0===o&&DA(n,t,i))}function DA(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function OA(e){return e>0?1:e<0?-1:0}function Zct(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Vde(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function Zb(e,t){return Qi(e.prev,e,e.next)<0?Qi(e,t,e.next)>=0&&Qi(e,e.prev,t)>=0:Qi(e,t,e.prev)<0||Qi(e,e.next,t)<0}function Kct(e,t){var n=e,i=!1,r=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&n.next.y!==n.y&&r<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==e);return i}function zde(e,t){var n=new jH(e.i,e.x,e.y),i=new jH(t.i,t.x,t.y),r=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=r,r.prev=n,i.next=n,n.prev=i,a.next=i,i.prev=a,i}function kde(e,t,n,i){var r=new jH(e,t,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Kb(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function jH(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function XH(e,t,n,i){for(var r=0,a=t,s=n-i;a0&&(i+=e[r-1].length,n.holes.push(i))}return n};var wDt=YH.exports;function Fde(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function Jct(e,t){var n=t[0],i=t[1],r=t[2],a=Math.sqrt(n*n+i*i+r*r)||1;return e[0]=n/a,e[1]=i/a,e[2]=r/a,e}function Qct(e,t,n){var i=t[0],r=t[1],a=t[2],s=n[0],o=n[1],l=n[2];return e[0]=r*l-a*o,e[1]=a*s-i*l,e[2]=i*o-r*s,e}function eut(e,t){function n(e,t,n,i){e[0]=t,e[1]=n,e[2]=i}for(var i=[],r=[],a=[],s=[],o=[],l=[],h=e.length,c=new Float32Array(t.length),u=0;u0&&(d=(d=d.map((function(e){return e}))).reverse());for(var p=0,f=d.length-1;p0}var $H=1e-15,qde=(new et).set(0,0,-1,0,1,0,0,0,0,1,0,0,0,0,0,1),Wde=(new et).set(0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1),Zt=class{static roundNumber(e,t){return Math.round(e*Math.pow(10,t))/Math.pow(10,t)}static floorNumber(e,t){return Math.floor(e*Math.pow(10,t))/Math.pow(10,t)}static areNumbersEqual(e,t,n=1e-7){return Math.abs(e-t){let n=e.attributes[t];if(n instanceof fo){let i=n.clone();e.attributes[t]=i}}))}static isPointInPolygon(e,t,n=!1){let i=e.x,r=e.y,a=!1,s=t.length;for(let o=0,l=s-1;or!=c>r;n&&(u=s>=r!=c>=r),u&&i<(h-e)*(r-s)/(c-s)+e&&(a=!a)}return a}static caculateGeometryCenter(e){if(!e.hasAttribute("position"))return null;let t=e.getAttribute("position");if(0===t.count)return null;let n=new O,i=t.itemSize,r=t.array,a=[0,0,0];for(let s=0;s0&&n<0||i<0&&n>0)return!1;n=i}}return!0}static areLineSegmentsIntersecting(e,t){let{start:n,end:i}=e,{start:r,end:a}=t,s=r.clone().sub(n),o=i.clone().sub(n),l=a.clone().sub(n),h=s.cross(o).dot(l.cross(o)),c=n.clone().sub(r),u=a.clone().sub(r),d=i.clone().sub(r),p=c.cross(u).dot(d.cross(u));return h<0&&p<0}static getLineSegmentsIntersectingPoint(e,t){let{start:n,end:i}=e,{start:r,end:a}=t,s=Yde.subVectors(i,n).normalize(),o=$de.subVectors(a,r).normalize();if(1===s.dot(o))return null;let l=Zde.subVectors(r,n),h=s.clone().cross(o),c=l.clone().cross(o),u=l.clone().dot(h);if(u>=1e-5||u<=-1e-5)return null;let d=h.lengthSq();if(Zt.areNumbersEqual(0,d))return;let p=c.clone().dot(h)/d,f=n.clone().add(s.multiplyScalar(p));return f.equals(n)||f.equals(i)?null:f}static isPointOnLineSegment(e,t,n=.001){let{start:i,end:r}=t,a=Yde.subVectors(i,r).length(),s=$de.subVectors(e,i).length(),o=Zde.subVectors(e,r).length();return Math.abs(a-(s+o))<=n}static isPointOnLineSegments(e,t,n=.001){let i=!1;for(let r=0;r{n?t.add(e):(t.x+=e.x,t.y+=e.y)})),t.divideScalar(e.length);let i=!1;if(Qt.shouldRebasePositionOnRTC(t)){i=!0;for(let i=0;iZH||Math.abs(e.y)>ZH||e instanceof O&&Math.abs(e.z)>ZH}static calculateSurfaceArea(e){let t=0,n=e.getAttribute("position"),i=e.index;if(i)for(let r=0;r2&&(a=t?2*r:2*r-2);let s=new i(a),o=0;for(let l=0;l0&&l{let n=e.geometry.attributes.position.array;return e.localToWorld(new O(n[3*t],n[3*t+1],n[3*t+2]))};e.updateWorldMatrix(!0,!1);let s=(null==(n=e.geometry.getIndex())?void 0:n.array)||[],o=null!=(i=s[t])?i:t,l=null!=(r=s[t+1])?r:t+1;return[a(o),a(l)]}static arePolygonsIntersect(e,t){if(0===e.length||0===t.length||(jde.setFromPoints(e),Xde.setFromPoints(t),!jde.intersectsBox(Xde)))return!1;for(let n=0;n1-r)return;let o=t.y-e.y,l=e.x-t.x,h=o*e.x+l*e.y,c=i.y-n.y,u=n.x-i.x,d=c*n.x+u*n.y,p=o*u-c*l;return Math.abs(p){n.push([e.x,e.y])}));try{let{indices:e,position:i}=Gde([n],{lineWidth:t,depth:1}),r=new Dt;return r.setAttribute("position",new Bt(i,3)),r.setIndex(Array.from(e)),r}catch(e){return}}static releaseGeometryManually(e){e.index=null,e.attributes={}}static getAdjacentNonRepeatPoints(e,t=1e-7){let n=[],i=e.length;for(let r=0;r0){let e=[];return n.forEach((n=>{e.push(this.clonedHighlightMaterial(n,t))})),e}if(n instanceof yr)return this.clonedHighlightMaterial(n,t);console.warn(`[MaterialUtils] Invalid material: ${n}`)}static clonedHighlightMaterial(e,t={}){let{depthTest:n,highlightColor:i=new ct(583902),opacity:r=.7}=t,a=e.clone();return this.setMaterialColor(a,i),a.opacity=r,a.transparent=!0,void 0!==n&&(a.depthTest=n,a.side=Sr),a}static cloneMaterial(e){if(!e)return e;if(Array.isArray(e)){let t=[];return e.forEach((e=>{t.push(e.clone())})),t}return e.clone()}static getMaterialColor(e){let t=new ct(16777215);return e instanceof xi||e instanceof Gn||e instanceof on?t=e.color:e instanceof ln&&e.uniforms.u_color&&(t=e.uniforms.u_color.value),t}static setMaterialColor(e,t){var n,i,r;let a=e;null==(n=a.color)||n.set(t),null==(i=a.emissive)||i.set(t),null!=(r=a.uniforms)&&r.u_color&&a.uniforms.u_color.value.set(t)}static cloneMaterials(e){let t=new Map;e.traverse((e=>{e.material&&(e.material=(e=>{let n;return Array.isArray(e)?(n=[],e.forEach((e=>{if(t.has(e))n.push(t.get(e));else{let i=e.clone();t.set(e,i),n.push(i)}}))):e&&(t.has(e)?n=t.get(e):(n=e.clone(),t.set(e,n))),n})(e.material))}))}};function Ni(e,t=!1){let n=null!==e[0].index,i=new Set(Object.keys(e[0].attributes)),r=new Set(Object.keys(e[0].morphAttributes)),a={},s={},o=e[0].morphTargetsRelative,l=new Dt,h=0;for(let c=0;c0){e.matrixWorld||(e.matrixWorld=new et),e.matrixWorld.copy(e.matrix),n&&e.matrixWorld.premultiply(n);let i=e.children;for(let n=0,r=i.length;n{r.find((t=>t.id===e.id))||(r.push({id:e.id,opacity:e.opacity,transparent:e.transparent,side:e.side}),e.opacity*=t,e.transparent=!0,e.side=Sr)},s=e=>{let n=r.find((t=>t.id===e.id));if(!n){let n=e.clone();return r.push({id:e.id,opacity:e.opacity,transparent:e.transparent,side:e.side,material:e,clonedMaterial:n}),n.opacity*=t,n.transparent=!0,n}return n.clonedMaterial};return e.traverse((e=>{if((!i||-1===i.indexOf(e.id))&&(!n||-1!==n.indexOf(e.id))&&e instanceof xt){let t=e;if(n||i){if(Array.isArray(t.material)){let e=[];t.material.forEach((t=>{let n=s(t);n&&e.push(n)})),t.material=e}else if(t.material){let e=s(t.material);e&&(t.material=e)}}else if(Array.isArray(t.material))t.material.forEach((e=>{a(e)}));else if(t.material){let e=t.material;a(e)}}})),r}static revertObjectOpacity(e,t,n,i){let r=new Set,a=e=>{if(!e||null==e.id||r.has(e.id))return;r.add(e.id);let n=t.find((t=>t.id===e.id));n&&(e.opacity=n.opacity,e.transparent=n.transparent,e.side=n.side,0===e.opacity&&se.warn(`[ObjectUtils] Material '${e.name}'s opacity is 0, you may not be able to see your objects!`))},s=e=>{let n=t.find((t=>t.clonedMaterial&&t.clonedMaterial.id===e.id));if(n)return n.material};e.traverse((e=>{if((!i||-1===i.indexOf(e.id))&&(!n||-1!==n.indexOf(e.id))&&e instanceof xt)if(Array.isArray(e.material)){let t=[];e.material.forEach((e=>{let n=s(e);n?t.push(n):a(e)})),e.material=t}else if(e.material){let t=s(e.material);t?e.material=t:a(e.material)}}))}static setObjectOpacityById(e,t,n=.3,i,r){let a=e.getObjectById(t);if(!a)throw new Error(`Failed to find object by id: ${t}`);return Ac.setObjectOpacity(a,n,i,r)}static revertObjectOpacityById(e,t,n,i,r){let a=e.getObjectById(t);if(!a)throw new Error(`Failed to find object by id: ${t}`);Ac.revertObjectOpacity(a,n,i,r)}static applyMaterialToObject(e,t,n,i){e.traverse((e=>{i&&-1!==i.indexOf(e.id)||n&&-1===n.indexOf(e.id)||e instanceof xt&&(e.userData.originalMaterial||(e.userData.originalMaterial=e.material),e.material=t)}))}static revertAppliedMaterialToObject(e,t,n){e.traverse((e=>{n&&-1!==n.indexOf(e.id)||t&&-1===t.indexOf(e.id)||e.userData.originalMaterial&&(e.material=e.userData.originalMaterial,e.userData.originalMaterial=void 0)}))}static applyMaterialToObjectById(e,t,n,i,r){let a=e.getObjectById(t);if(!a)throw new Error(`Failed to find object by id: ${t}`);this.applyMaterialToObject(a,n,i,r)}static revertAppliedMaterialToObjectById(e,t,n,i){let r=e.getObjectById(t);if(!r)throw new Error(`Failed to find object by id: ${t}`);this.revertAppliedMaterialToObject(r,n,i)}static applyOpacityMaterialToObject(e,t,n){let i=new on({color:0,transparent:!0,opacity:.05});this.applyMaterialToObject(e,i,t,n)}static setWireframeMode(e){let t=new on({color:16732160,wireframe:!0,transparent:!0,opacity:.8});e.traverseVisible((e=>{if(e instanceof xt){let n=e;n.userData.materialForWireframe=n.material,n.material=t}}))}static setWireframeModeById(e,t){let n=e.getObjectById(t);if(!n)throw new Error(`Failed to find object by id: ${t}`);Ac.setWireframeMode(n)}static revertWireframeMode(e){e.traverseVisible((e=>{e instanceof xt&&e.userData.materialForWireframe&&(e.material=e.userData.materialForWireframe,e.userData.materialForWireframe=void 0)}))}static revertWireframeModeById(e,t){let n=e.getObjectById(t);if(!n)throw new Error(`Failed to find object by id: ${t}`);Ac.revertWireframeMode(n)}static findInner(e,t,n=[],i=!1){let r=t.toLowerCase(),a=[],s=e=>-1!==e.toLowerCase().indexOf(r),o=e=>-1!==e.toString().indexOf(r),l=e=>{if(e.name&&-1!==e.name.toLowerCase().indexOf(r))return!0;if(e.gltfExtensions){let t=e.gltfExtensions,n=t.objectId&&t.objectId.Value||t.elementId&&t.elementId.Value;if(n&&-1!==n.toLowerCase().indexOf(r))return!0}return!1};if(n.length>0)for(let h=0;h{(s(e.name)||o(e.id)||l(e.userData))&&a.push(e)})),i&&a.length>0)return[a[0]]}else if(e.traverse((e=>{(s(e.name)||o(e.id)||l(e.userData))&&a.push(e)})),i&&a.length>0)return[a[0]];return a}static find(e,t,n=[],i=!1){return this.findInner(e,t,n,i)}static findFirst(e,t,n=[],i=!1){let r=this.findInner(e,t,n,i);if(r.length>0)return r[0]}static getFloorsFromString(e){let t=[],n=new RegExp(/(?:-?(?:\d+(?:\.5)?)F)(?=\W|$)/,"g").exec(e);return n&&n.length>0&&n.forEach((e=>{if(e){let n=e.replace("F",""),i=Number(n);i?t.push(i):console.log(`[OU] invalid floor: ${e}`)}})),t}static matchFloor(e,t){return-1!==this.getFloorsFromString(e).findIndex((e=>e===t))}static matchFloors(e,t){return-1!==this.getFloorsFromString(e).findIndex((e=>-1!==t.findIndex((t=>t===e))))}static distinctFloors(e,t){let n=[],i=e=>{this.getFloorsFromString(e).forEach((e=>{n[e]=!0}))};return t.forEach((t=>{let n=e.getObjectById(t);n&&n.traverse((e=>{if(i(e.name),e.userData.gltfExtensions){let t=e.userData.gltfExtensions;t.level&&t.level.Value&&i(t.level.Value)}}))})),Object.keys(n).sort()}static traverseObjectByFloors(e,t,n,i,r){let a=e.getObjectById(t);if(!a)return[];a.traverse((e=>{let t=this.matchFloors(e.name,n);if(!t&&e.userData&&e.userData.gltfExtensions){let i=e.userData.gltfExtensions;i.level&&i.level.Value&&(t=this.matchFloors(i.level.Value,n))}t&&i&&i(e),!t&&r&&r(e)}))}static setVisibleForFloors(e,t,n,i=!0){this.traverseObjectByFloors(e,t,n,(e=>{let t=e;for(;t;)t.visible=!0,t=t.parent||void 0}),(e=>{i&&(e.visible=!1)}))}static revertVisibleForFloors(e){e.traverse((e=>{e.visible=!0}))}static revertVisibleForFloorsById(e,t){let n=this.getObjectById(e,t);this.revertVisibleForFloors(n)}static getObjectById(e,t){let n=e.getObjectById(t);if(!n)throw new Error(`Failed to find object by id: ${t}`);return n}static createOutlines(e){return ft(this,arguments,(function*(e,t={onlyVisible:!0,meshOnly:!0},n){if(!e)return[];if(0===e.children.length&&(t.onlyVisible&&!e.visible||t.meshOnly&&!(e instanceof xt)))return[];let i=[],r=e,a=r.children.length,s=Math.round(Math.pow(a,.5)),o=Mt.getUpdateProgressFuncAsync(n);for(let l=a-1;l>=0;--l){let e,o=a-l-1;if(n&&(o%s==0||0===o||o===a-1)){let t=90*o/a,i=90*(o+1)/a;e=Mt.getUpdateSubProgressFunc(t,i,n)}let h=r.children[l],c=yield this.createOutlines(h,t,e);i.push(...c)}if(!r.geometry)return yield o(100),i;if(r instanceof xt&&!this.hasOutline(r,!1)){yield o(50);let e=this.createOutline(r.geometry);r.add(e),e.updateWorldMatrix(!0,!1),i.push(e)}return yield o(100),i}))}static removeOutlines(e){if(e&&Array.isArray(e.children))for(let t=e.children.length-1;t>=0;--t){let n=e.children[t];n.children.length>0&&this.removeOutlines(n),n.userData.isOutline&&e.remove(n)}}static hasOutline(e,t=!0){let n=!1;for(let i=0;i0&&(n=this.hasOutline(r),n))break}return n}static setOutlinesVisibility(e,t){e.traverse((e=>{e.userData.isOutline&&(e.visible=t)}))}static createOutline(e,t=this.OUTLINE_MATERIAL,n){let i=new Cu(e,10),r=new Wr(i,t);return r.layers.enableAll(),Ac.disableLayerChannels(r,[12,11]),r.userData.isOutline=!0,r.matrixAutoUpdate=!1,n&&r.applyMatrix4(n),r}static cloneObject(e,t=!0){let n=e.clone();return t&&n.traverse((e=>{(e instanceof xt||e instanceof hr)&&(e.material=es.cloneMaterial(e.material))})),n}static createBox(e,t,n,i=Ac.BOX_FACE_MATERIAL,r=!0){let a=[],s=(e,t,n)=>{a.push(new O(e,t,n))};s(0,0,0),s(e,0,0),s(e,t,0),s(0,t,0),s(0,0,n),s(e,0,n),s(e,t,n),s(0,t,n);let o=new Dt;o.setFromPoints(a);let l=[0,3,2,0,2,1,4,6,7,4,5,6,0,7,3,0,4,7,3,6,2,3,7,6,1,6,5,1,2,6];return r&&l.push(0,5,4,0,1,5),o.setIndex(l),o.computeVertexNormals(),new xt(o,i)}static rebaseObjectOnRTC(e){let t=e;if(!((t.isMesh||t.isLine||t.isPoints)&&t.geometry&&t.geometry instanceof Dt))return e;let n=t.geometry;if(!n.hasAttribute("position"))return e;let i=n.getAttribute("position");if(0===i.count)return e;let r=i.itemSize,a=i.array,s=[];for(let h=0;h2?s[2]:0);let l=e.matrixAutoUpdate;return e.matrixAutoUpdate=!1,e.applyMatrix4(o),e.matrixAutoUpdate=l,e}static isEmptyObject(e){if(0===e.children.length){let t=e.geometry;if(!t||!t.hasAttribute("position")||0===t.getAttribute("position").count)return!0}return!1}static removeEmptyObjects(e){for(let t=0;t{e.removeFromParent()})),this.removeEmptyObjects(t))}static setSharedVariablesOfObject(e){e.uuid="",e.up=cut;let t=e;t.material&&(Array.isArray(t.material)?t.material.forEach((e=>{e.uuid&&(e.uuid="")})):t.material.uuid&&(t.material.uuid=""))}static isLeafObject(e){return(e instanceof xt||e instanceof hr||e instanceof ii)&&!!e.geometry}static enableLayerChannels(e,t,n=!0){for(let i=0,r=t.length;i0){this.mergeInner(n,t);continue}if(n.isInstancedMesh||!n.geometry||!(n.geometry instanceof Dt))continue;let a=!1,s=Object.values(i);for(let t=s.length-1;t>=0;--t){let n=s[t].indexes[0];if(a=this.tryHandleMergeableObjects(e,h,n,i,r),a)break}for(let t=r.length-1;!a&&t>=0;--t){let n=r[t];if(a=this.tryHandleMergeableObjects(e,h,n,i,r),a)break}a||r.push(h)}if(Object.keys(i).length<=0)return;let a=[],s=[],o=[],l=[];Object.values(i).forEach((n=>{let i,r=n.indexes,h=e.children[r[0]],c=[],u=0,d=0,p=0,f=[];if(r.forEach((n=>{var i,r,a;let s=e.children[n],o=s.geometry.clone();if(o.applyMatrix4(s.matrix),Qt.tryConvertInterleavedBufferAttributes(o),o.userData.isLineSegments=!0===s.isLineSegments,c.push(o),t){let e=s.name,t=null==(r=null==(i=o.attributes)?void 0:i.position)?void 0:r.count,n=(null==(a=o.index)?void 0:a.count)||0,l={batchId:u,name:e,positionStart:d,positionCount:t,indexStart:p,indexCount:n};0!==Object.keys(s.userData).length&&(l.userData=s.userData),f.push(l),d+=t,p+=n,u++}})),0!==c.length){if(h.isMesh){let e=Ni(c);if(!e)return;e.userData={},i=new xt(e,h.material),a.push(i)}else if(h.isLine){let e=this.mergeLineGeometries(c,t,h.material instanceof Iu||h.material instanceof ln,f);if(!e)return;i=new Wr(e,h.material),s.push(i)}else if(h.isPoints){let e=Ni(c);if(!e)return;e.userData={},i=new ii(e,h.material),o.push(i)}i&&(t?i.userData.batches=f:(i.userData=h.userData,i.userData.batches=void 0),i.userData.layerName=h.userData.layerName,i.name=`[Merged] ${h.name}`,i.matrixAutoUpdate=!1,i.renderOrder=h.renderOrder,i.layers.mask=h.layers.mask,i.visible=h.visible,l.push(...r)),c.forEach((e=>{e.dispose(),Qt.releaseGeometryManually(e)})),c=[]}})),l.sort(((e,t)=>t-e)),l.forEach((t=>{let n=e.children[t];e.remove(n)})),[...a,...s,...o].forEach((t=>{e.add(t)})),e.updateMatrix(),this.mergeInfo.removedObjects+=l.length,this.mergeInfo.mergedMeshes+=a.length,this.mergeInfo.mergedLines+=s.length,this.mergeInfo.mergedPoints+=o.length}static tryHandleMergeableObjects(e,t,n,i,r){let a=!1,s=Array.isArray(e),o=s?e.length:e.children.length;if(t===n||t>=o||n>=o)return a;let l=s?e[t]:e.children[t],h=s?e[n]:e.children[n];return this.areObjectsMergeable(l,h)&&this.areGeometriesMergeable(l.geometry,h.geometry)&&es.materialsEquals(l.material,h.material)&&(i[n]||(i[n]={indexes:[n]},this.removeFromArray(r,n)),i[n].indexes.push(t),a=!0),a}static deepMerge(e,t=void 0,n=!0,i=!0,r=!0){let a={added:[],removed:[]};if(e.length<=1)return a;let s=Date.now(),o={},l=[];for(let m=0;m=0;--r){let t=i[r].indexes[0];if(n=this.tryHandleMergeableObjects(e,m,t,o,l),n)break}for(let r=l.length-1;!n&&r>=0;--r){let t=l[r];if(n=this.tryHandleMergeableObjects(e,m,t,o,l),n)break}n||l.push(m)}if(Object.keys(o).length<=0)return a;se.debug(`[Merge] Built merged indexes for ${e.length} objects in ${(Date.now()-s)/1e3}s`),s=Date.now();let h=[],c=[],u=[],d=[];Object.values(o).forEach((n=>{let i=n.indexes;if(i.length<2)return;let a,s=e[i[0]],o=[],l=0,p=0,f=0,m=[];if(i.forEach((n=>{var i,a,h;let c=e[n],u=c.geometry.clone();if(s.material instanceof Gn&&u.deleteAttribute("lineDistance"),this.applyMatrix(u,c,t),u.userData.isLineSegments=!0===c.isLineSegments,o.push(u),r){let e,t=c.name,n=null==(a=null==(i=u.attributes)?void 0:i.position)?void 0:a.count,r=(null==(h=u.index)?void 0:h.count)||0;s.isLine&&(u.boundingSphere||u.computeBoundingSphere(),e=u.boundingSphere.clone());let o={batchId:l,name:t,positionStart:p,positionCount:n,indexStart:f,indexCount:r,boundingSphere:e};0!==Object.keys(c.userData).length&&(o.userData=c.userData),m.push(o),p+=n,f+=r,l++}})),0!==o.length){if(s.isMesh){let e=Ni(o);if(!e)return;e.userData={},a=new xt(e,s.material),h.push(a)}else if(s.isLine){let e=this.mergeLineGeometries(o,r,s.material instanceof Iu||s.material instanceof ln,m);if(!e)return;a=new Wr(e,s.material),c.push(a)}else if(s.isPoints){let e=Ni(o);if(!e)return;e.userData={},a=new ii(e,s.material),u.push(a)}a&&(r?a.userData.batches=m:(a.userData=s.userData,a.userData.batches=void 0),a.userData.layerName=s.userData.layerName,a.name=`[Merged] ${s.name}`,a.matrixAutoUpdate=!1,a.renderOrder=s.renderOrder,a.layers.mask=s.layers.mask,a.visible=s.visible,i.forEach((e=>d.push(e)))),o.forEach((e=>{e.dispose(),Qt.releaseGeometryManually(e)})),o=[]}})),se.debug(`[Merge] Ran deepMerge() in ${(Date.now()-s)/1e3}s`);let p=a.removed;d.forEach((t=>{let i=e[t];p.push(i),n&&i.removeFromParent()}));let f=a.added;return[...h,...c,...u].forEach((e=>{f.push(e),n&&t&&(t.add(e),e.updateWorldMatrix(!1,!1))})),this.mergeInfo.removedObjects+=d.length,this.mergeInfo.mergedMeshes+=h.length,this.mergeInfo.mergedLines+=c.length,this.mergeInfo.mergedPoints+=u.length,i&&t&&Hn.removeEmptyObjects(t),a}static applyMatrix(e,t,n){let i=t;for(NA.identity();i&&i!==n&&(NA.premultiply(i.matrix),i.parent);)i=i.parent;return NA.equals(uut)?e:e.applyMatrix4(NA)}static mergeLineGeometries(e,t,n,i){let r;if(n)r=BA.mergeBufferGeometriesWithLinesToLineSegments(e,t,i);else{if(r=Ni(e),!r)return;r.userData={};let n=[],a=0;e.forEach(((e,r)=>{let s=e.attributes.position;if(!s)return;let o=e.index,l=!0===e.userData.isLineSegments,h=n.length;if(o)for(let t=0;t0&&n.push(a+o.array[t-1],a+e)}else for(let t=0;t0&&(l?t%2==1&&n.push(a+t-1,a+t):n.push(a+t-1,a+t));a+=s.count,t&&i&&(i[r].indexStart=h,i[r].indexCount=n.length-h)})),r.setIndex(n)}return r}static mergeBufferGeometriesWithLinesToLineSegments(e,t,n){let i=new Set(Object.keys(e[0].attributes)),r={},a=new Dt,s=[],o=0;for(let l=0;l=0;--n)if(e[n]===t)return void e.splice(n,1)}static removeObjectFromArray(e,t){for(let n=e.length-1;n>=0;--n)if(e[n]===t)return void e.splice(n,1)}static areGeometriesMergeable(e,t){if(!e||!t||"InstancedBufferGeometry"===e.type||"InstancedBufferGeometry"===t.type||!!e.index!=!!t.index)return!1;let n=Object.keys(e.attributes);if(n.length!==Object.keys(t.attributes).length)return!1;for(let i of n)if(!t.attributes[i])return!1;return!0}static areObjectsMergeable(e,t){if(e.layers.mask!==t.layers.mask||e.renderOrder!==t.renderOrder||e.visible!==t.visible||e.userData.layerName!==t.userData.layerName)return!1;if(e.type===t.type)return!0;let n=e,i=t;return n.isMesh&&i.isMesh||n.isLine&&i.isLine||n.isPoints&&i.isPoints}static isMergedMesh(e){return!(!e||!e.userData.batches)}static isFaceIndexInBatch(e,t,n){if(e.boundsTree){let i=e.index.getX(3*n);if(i>=t.positionStart&&i=e&&n<=i)return!0}else{let e=3*n;if(e>=t.positionStart&&e=e.indexStart&&t=e.positionStart&&t80*n){i=a=e[0],r=s=e[1];for(let t=n;ta&&(a=o),l>s&&(s=l);h=Math.max(a-i,s-r),h=0!==h?32767/h:0}return nE(d,p,n,i,r,h,0),p}};function Tfe(e,t,n,i,r){let a,s;if(r===nht(e,t,n,i)>0)for(a=t;a=t;a-=i)s=Efe(a,e[a],e[a+1],s);return s&&XA(s,s.next)&&(iE(s),s=s.next),s}function km(e,t){if(!e)return e;t||(t=e);let n,i=e;do{if(n=!1,i.steiner||!XA(i,i.next)&&0!==ts(i.prev,i,i.next))i=i.next;else{if(iE(i),i=t=i.prev,i===i.next)break;n=!0}}while(n||i!==t);return t}function nE(e,t,n,i,r,a,s){if(!e)return;!s&&a&&Zut(e,i,r,a);let o,l,h=e;for(;e.prev!==e.next;)if(o=e.prev,l=e.next,a?zut(e,i,r,a):Vut(e))t.push(o.i/n|0),t.push(e.i/n|0),t.push(l.i/n|0),iE(e),e=l.next,h=l.next;else if((e=l)===h){s?1===s?nE(e=Gut(km(e),t,n),t,n,i,r,a,2):2===s&&qut(e,t,n,i,r,a):nE(km(e),t,n,i,r,a,1);break}}function Vut(e){let t=e.prev,n=e,i=e.next;if(ts(t,n,i)>=0)return!1;let r=t.x,a=n.x,s=i.x,o=t.y,l=n.y,h=i.y,c=ra?r>s?r:s:a>s?a:s,p=o>l?o>h?o:h:l>h?l:h,f=i.next;for(;f!==t;){if(f.x>=c&&f.x<=d&&f.y>=u&&f.y<=p&&$v(r,o,a,l,s,h,f.x,f.y)&&ts(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function zut(e,t,n,i){let r=e.prev,a=e,s=e.next;if(ts(r,a,s)>=0)return!1;let o=r.x,l=a.x,h=s.x,c=r.y,u=a.y,d=s.y,p=ol?o>h?o:h:l>h?l:h,g=c>u?c>d?c:d:u>d?u:d,v=a5(p,f,t,n,i),y=a5(m,g,t,n,i),x=e.prevZ,b=e.nextZ;for(;x&&x.z>=v&&b&&b.z<=y;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&$v(o,c,l,u,h,d,x.x,x.y)&&ts(x.prev,x,x.next)>=0||(x=x.prevZ,b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&$v(o,c,l,u,h,d,b.x,b.y)&&ts(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;x&&x.z>=v;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&$v(o,c,l,u,h,d,x.x,x.y)&&ts(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;b&&b.z<=y;){if(b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&$v(o,c,l,u,h,d,b.x,b.y)&&ts(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function Gut(e,t,n){let i=e;do{let r=i.prev,a=i.next.next;!XA(r,a)&&wfe(r,i,i.next,a)&&rE(r,a)&&rE(a,r)&&(t.push(r.i/n|0),t.push(i.i/n|0),t.push(a.i/n|0),iE(i),iE(i.next),i=e=a),i=i.next}while(i!==e);return km(i)}function qut(e,t,n,i,r,a){let s=e;do{let e=s.next.next;for(;e!==s.prev;){if(s.i!==e.i&&Qut(s,e)){let o=Sfe(s,e);return s=km(s,s.next),o=km(o,o.next),nE(s,t,n,i,r,a,0),void nE(o,t,n,i,r,a,0)}e=e.next}s=s.next}while(s!==e)}function Wut(e,t,n,i){let r,a,s,o,l,h=[];for(r=0,a=t.length;r=i.next.y&&i.next.y!==i.y){let e=i.x+(s-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(e<=a&&e>r&&(r=e,n=i.x=i.x&&i.x>=h&&a!==i.x&&$v(sn.x||i.x===n.x&&$ut(n,i)))&&(n=i,u=o)),i=i.next}while(i!==l);return n}function $ut(e,t){return ts(e.prev,e,t.prev)<0&&ts(t.next,e,e.next)<0}function Zut(e,t,n,i){let r=e;do{0===r.z&&(r.z=a5(r.x,r.y,t,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,Kut(r)}function Kut(e){let t,n,i,r,a,s,o,l,h=1;do{for(n=e,e=null,a=null,s=0;n;){for(s++,i=n,o=0,t=0;t0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),a?a.nextZ=r:e=r,r.prevZ=a,a=r;n=i}a.nextZ=null,h*=2}while(s>1);return e}function a5(e,t,n,i,r){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function Jut(e){let t=e,n=e;do{(t.x=(e-s)*(a-o)&&(e-s)*(i-o)>=(n-s)*(t-o)&&(n-s)*(a-o)>=(r-s)*(i-o)}function Qut(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!eht(e,t)&&(rE(e,t)&&rE(t,e)&&tht(e,t)&&(ts(e.prev,e,t.prev)||ts(e,t.prev,t))||XA(e,t)&&ts(e.prev,e,e.next)>0&&ts(t.prev,t,t.next)>0)}function ts(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function XA(e,t){return e.x===t.x&&e.y===t.y}function wfe(e,t,n,i){let r=jA(ts(e,t,n)),a=jA(ts(e,t,i)),s=jA(ts(n,i,e)),o=jA(ts(n,i,t));return!!(r!==a&&s!==o||0===r&&WA(e,n,t)||0===a&&WA(e,i,t)||0===s&&WA(n,e,i)||0===o&&WA(n,t,i))}function WA(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function jA(e){return e>0?1:e<0?-1:0}function eht(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&wfe(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function rE(e,t){return ts(e.prev,e,e.next)<0?ts(e,t,e.next)>=0&&ts(e,e.prev,t)>=0:ts(e,t,e.prev)<0||ts(e,e.next,t)<0}function tht(e,t){let n=e,i=!1,r=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&n.next.y!==n.y&&r<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==e);return i}function Sfe(e,t){let n=new o5(e.i,e.x,e.y),i=new o5(t.i,t.x,t.y),r=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=r,r.prev=n,i.next=n,n.prev=i,a.next=i,i.prev=a,i}function Efe(e,t,n,i){let r=new o5(e,t,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function iE(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function o5(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function nht(e,t,n,i){let r=0;for(let a=t,s=n-i;ae.toArray())).reduce(((e,t)=>(e.push(...t),e)),[]),n=[];return _fe.triangulate(t,[],3).forEach((e=>n.push(e))),n}static arePointsCoplanar(e){if(e.length<4)return!0;let t=e[1].clone().sub(e[0]),n=e[2].clone().sub(e[0]).cross(t).normalize();for(let i=3;irht)return!1;return!0}static isSelfIntersecting(e){let t=e.map((e=>e.toArray().slice(0,-1)));return(0,Mfe.default)(t).length>0}},ks=class{static getVisibleObjectBoundingBox(e){let t=new Ot;return e.traverse((e=>{e.visible&&(e instanceof xt||e instanceof hr)&&Hn.isObjectSelectable(e)&&t.expandByObject(e)})),t}static getObjectsBoundingBox(e,t,n){let i=new Ot;return t.forEach((t=>{let r=e.getObjectById(t);if(r){let e=ks.getBoundingBox(r,n);e.isEmpty()||i.union(e)}})),i}static getBoundingBox(e,t=!0){let n=new Ot;if(e instanceof Pi)return ks.getInstancedMeshBoundingBox(e);if(0===e.children.length)return n.expandByObject(e),n;let i=e.children.length,r=1;i>20&&(r=3),i>100&&(r=5),i>200&&(r=10),i>1e3&&(r=100),e.updateMatrixWorld(!1);for(let a=0;a{let t=e.material;Array.isArray(t)?t.forEach((e=>{e.clippingPlanes=[]})):t&&(t.clippingPlanes=[])}))}static addSection(e,t,n=!1,i=!1){e&&e.traverse((e=>{let r=e.material;Array.isArray(r)?r.forEach((e=>{Hu.setMaterialSection(e,t,n,i)})):r&&Hu.setMaterialSection(r,t,n,i)}))}static generateSectionPlanesByBox(e){let t=e.min,n=e.max;return[new Gr(new O(0,-1,0),n.y),new Gr(new O(0,1,0),-t.y),new Gr(new O(1,0,0),-t.x),new Gr(new O(-1,0,0),n.x)]}static generateSectionPlanesByPoints(e,t=!0){let n=e.length;if(n<2)return;let i=[];for(let r=0;r-1&&e.splice(n,1)}function sht(e,t){let n=t.position.distanceTo(e.position),i=0,r=[];for(let a=0,s=e.faces.length;a=0;a--)n.faces[a]&&n.faces[a].hasVertex(i)&&aht(n.faces[a],t);for(let a=n.faces.length-1;a>=0;a--)n.faces[a].replaceVertex(n,i);Afe(n,e);for(let a=0;a0?(new YA).modify(e,n):e}static getNumberOfVerticesToRemove(e,t){let n=0;e instanceof Dt&&e.index&&(n=e.attributes.position.count);let i=Math.floor(n*t);return n<20?0:i}},ZA=class extends an{constructor(e){super(),this.isSVGObject=!0,this.node=e}},AOt=10,Lfe=(e=>(e.TripleCross="TripleCross",e.Square="Square",e.Triangle="Triangle",e.CircleWithCross="CircleWithCross",e.Cross="Cross",e.Perpendicular="Perpendicular",e))(Lfe||{}),Ife=class{static createSVGObject(e){return new ZA(e)}},KA=class extends Tm{constructor(e){super(e),this.type=Rr}parse(e){let t=function(e,t){switch(e){case 1:console.error("THREE.RGBELoader Read Error: "+(t||""));break;case 2:console.error("THREE.RGBELoader Write Error: "+(t||""));break;case 3:console.error("THREE.RGBELoader Bad File Format: "+(t||""));break;default:console.error("THREE.RGBELoader: Error: "+(t||""))}return-1},n=function(e,t,n){t=t||1024;let i=e.pos,r=-1,a=0,s="",o=String.fromCharCode.apply(null,new Uint16Array(e.subarray(i,i+128)));for(;0>(r=o.indexOf("\n"))&&a=e.byteLength||!(i=n(e)))return t(1,"no header found");if(!(r=i.match(/^#\?(\S+)/)))return t(3,"bad initial token");for(h.valid|=1,h.programtype=r[1],h.string+=i+"\n";i=n(e),!1!==i;)if(h.string+=i+"\n","#"!==i.charAt(0)){if((r=i.match(a))&&(h.gamma=parseFloat(r[1])),(r=i.match(s))&&(h.exposure=parseFloat(r[1])),(r=i.match(o))&&(h.valid|=2,h.format=r[1]),(r=i.match(l))&&(h.valid|=4,h.height=parseInt(r[1],10),h.width=parseInt(r[2],10)),2&h.valid&&4&h.valid)break}else h.comments+=i+"\n";return 2&h.valid?4&h.valid?h:t(3,"missing image size specifier"):t(3,"missing format specifier")}(a);if(-1!==s){let e=s.width,n=s.height,o=function(e,n,i){let r=n;if(r<8||r>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);if(r!==(e[2]<<8|e[3]))return t(3,"wrong scanline width");let a=new Uint8Array(4*n*i);if(!a.length)return t(4,"unable to allocate buffer space");let s=0,o=0,l=4*r,h=new Uint8Array(4),c=new Uint8Array(l),u=i;for(;u>0&&oe.byteLength)return t(1);if(h[0]=e[o++],h[1]=e[o++],h[2]=e[o++],h[3]=e[o++],2!=h[0]||2!=h[1]||(h[2]<<8|h[3])!=r)return t(3,"bad rgbe scanline format");let n,i=0;for(;i128;if(r&&(n-=128),0===n||i+n>l)return t(3,"bad scanline data");if(r){let t=e[o++];for(let e=0;e{n.load(t,(t=>{if(e){let n=e.fromEquirectangular(t).texture;e.dispose(),i(n)}}))}))}))}static createEnvTextureFromDataArray(e){return ft(this,arguments,(function*(e,t=this.HDR_CITY_STREET_64x32,n=64,i=32){if(e){let r=new Sl(t,n,i);r.flipY=!0,r.magFilter=Ir,r.minFilter=Ir,r.type=Rr,r.version=1;let a=e.fromEquirectangular(r).texture;return e.dispose(),Promise.resolve(a)}return Promise.reject("Invalid pmremGenerator!")}))}};function cht(){if(Dn.isBrowser){let e=document.createElement("div");return e.setAttribute("style","height: 1in; visibility: hidden; position: absolute; margin: 0; padding: 0;"),document.body.appendChild(e),.0254/e.clientHeight}return.0254/96}Cc.HDR_CITY_STREET_64x32=Uint16Array.from([11910,12340,12797,15360,11926,12348,12806,15360,11958,12364,12814,15360,11974,12380,12830,15360,11958,12364,12822,15360,11926,12348,12797,15360,11878,12324,12773,15360,11830,12308,12749,15360,11798,12292,12733,15360,11782,12279,12725,15360,11765,12263,12709,15360,11749,12247,12701,15360,11733,12231,12701,15360,11701,12215,12693,15360,11685,12199,12685,15360,11685,12199,12685,15360,11701,12215,12693,15360,11717,12231,12701,15360,11733,12247,12709,15360,11749,12263,12717,15360,11749,12279,12717,15360,11765,12279,12725,15360,11765,12279,12725,15360,11765,12292,12725,15360,11798,12300,12733,15360,11830,12316,12749,15360,11846,12324,12757,15360,11894,12340,12781,15360,11926,12356,12797,15360,11942,12356,12797,15360,11926,12348,12789,15360,11926,12348,12789,15360,11942,12356,12797,15360,11942,12356,12797,15360,11942,12348,12806,15360,11942,12356,12806,15360,11942,12356,12814,15360,11958,12372,12830,15360,11974,12372,12830,15360,11974,12372,12838,15360,11990,12388,12854,15360,12055,12420,12886,15360,12119,12452,12918,15360,12167,12476,12950,15360,12231,12500,12982,15360,12263,12516,12998,15360,12231,12500,12974,15360,12199,12484,12958,15360,12199,12484,12958,15360,12199,12492,12966,15360,12247,12508,12982,15360,12247,12508,12990,15360,12231,12500,12982,15360,12199,12484,12966,15360,12167,12468,12942,15360,12119,12444,12918,15360,12087,12436,12902,15360,12055,12420,12886,15360,12055,12412,12878,15360,12039,12412,12878,15360,12022,12396,12862,15360,12006,12388,12846,15360,11958,12364,12830,15360,11910,12340,12806,15360,12119,12508,13103,15360,12087,12484,13071,15360,12055,12468,13046,15360,12006,12436,13006,15360,11926,12396,12958,15360,11878,12364,12926,15360,11846,12348,12894,15360,11782,12308,12854,15360,11749,12292,12830,15360,11717,12263,12814,15360,11685,12247,12806,15360,11669,12215,12789,15360,11685,12231,12789,15360,11701,12247,12797,15360,11701,12247,12806,15360,11717,12263,12814,15360,11749,12292,12822,15360,11782,12308,12838,15360,11798,12316,12846,15360,11814,12332,12862,15360,11846,12340,12870,15360,11862,12348,12878,15360,11846,12340,12870,15360,11846,12340,12862,15360,11878,12356,12886,15360,11910,12372,12910,15360,11942,12396,12934,15360,11958,12412,12958,15360,12039,12452,12998,15360,12071,12468,13022,15360,12039,12452,12998,15360,12039,12452,12998,15360,12006,12444,13006,15360,11974,12436,12998,15360,11942,12412,12982,15360,11926,12396,12974,15360,11926,12404,12974,15360,11958,12420,12998,15360,12006,12452,13038,15360,12055,12476,13071,15360,12039,12476,13079,15360,12087,12508,13127,15360,12247,12597,13231,15360,12388,12693,13332,15360,12420,12741,13364,15360,12436,12757,13372,15360,12468,12773,13380,15360,12500,12806,13388,15360,12516,12822,13404,15360,12629,12934,13452,15360,12741,13046,13508,15360,12806,13095,13532,15360,12757,13046,13516,15360,12645,12950,13460,15360,12565,12870,13428,15360,12532,12838,13412,15360,12549,12854,13412,15360,12516,12838,13396,15360,12452,12757,13356,15360,12420,12725,13340,15360,12404,12709,13332,15360,12372,12677,13316,15360,12279,12589,13207,15360,12135,12516,13119,15360,12388,12709,13348,15360,12247,12581,13223,15360,12055,12476,13087,15360,11910,12388,12982,15360,11733,12308,12886,15360,11669,12247,12846,15360,11621,12199,12814,15360,11541,12103,12765,15360,11492,12055,12733,15360,11508,12055,12733,15360,11476,12022,12717,15360,11525,12055,12725,15360,11589,12135,12757,15360,11669,12199,12765,15360,11765,12292,12814,15360,11862,12348,12886,15360,11910,12372,12910,15360,12006,12420,12966,15360,12071,12452,12998,15360,12119,12476,13022,15360,12167,12492,13046,15360,12183,12500,13063,15360,12199,12524,13079,15360,12308,12589,13151,15360,12300,12581,13151,15360,12167,12516,13087,15360,12087,12468,13030,15360,12022,12444,13014,15360,11990,12420,12990,15360,11974,12420,12990,15360,11974,12420,12990,15360,11990,12436,13014,15360,11990,12444,13030,15360,12103,12500,13103,15360,12087,12508,13111,15360,12039,12484,13103,15360,12039,12476,13103,15360,11942,12436,13054,15360,11974,12452,13087,15360,12039,12492,13135,15360,12103,12532,13199,15360,12183,12581,13263,15360,12308,12661,13340,15360,12484,12822,13436,15360,12613,12918,13484,15360,12725,13046,13540,15360,13046,13332,13677,15360,13143,13380,13717,15360,13223,13420,13741,15360,13396,13540,13862,15360,13436,13589,13902,15360,13484,13629,13942,15360,13468,13621,13934,15360,13412,13564,13878,15360,13372,13524,13846,15360,13287,13452,13781,15360,13223,13428,13749,15360,13340,13492,13805,15360,13239,13428,13749,15360,13095,13364,13685,15360,12918,13223,13597,15360,12822,13111,13556,15360,12613,12934,13468,15360,12532,12854,13428,15360,12565,12870,13444,15360,12468,12789,13396,15360,12372,12693,13340,15360,12087,12492,13111,15360,11846,12364,12958,15360,11717,12300,12878,15360,11557,12135,12781,15360,11476,12055,12741,15360,11460,12022,12725,15360,11476,12022,12725,15360,11476,12022,12709,15360,11476,11958,12605,15360,11364,11733,12332,15360,11111,11412,11661,15360,11223,11476,11773,15360,11388,11669,12095,15360,11765,12119,12492,15360,12388,12613,13079,15360,12661,12902,13356,15360,12998,13255,13564,15360,13372,13508,13797,15360,13412,13548,13846,15360,13287,13436,13725,15360,13271,13428,13709,15360,13287,13428,13717,15360,13014,13287,13597,15360,12709,12998,13460,15360,12452,12741,13332,15360,12364,12653,13271,15360,12404,12693,13316,15360,12420,12709,13316,15360,12420,12709,13332,15360,12263,12589,13231,15360,12332,12661,13312,15360,12300,12629,13295,15360,12263,12605,13287,15360,12231,12597,13279,15360,12247,12613,13303,15360,12231,12597,13295,15360,12231,12605,13312,15360,12199,12597,13324,15360,12231,12613,13340,15360,12516,12870,13468,15360,12725,13063,13564,15360,12741,13079,13573,15360,12854,13175,13613,15360,12902,13223,13629,15360,13046,13348,13693,15360,13356,13516,13846,15360,13605,13765,14078,15360,13717,13870,14191,15360,13765,13918,14255,15360,13765,13910,14247,15360,13701,13854,14191,15360,13573,13733,14070,15360,13508,13677,14006,15360,13380,13548,13886,15360,13111,13380,13741,15360,13063,13348,13709,15360,12886,13207,13629,15360,12725,13046,13548,15360,12645,12966,13508,15360,12677,12982,13508,15360,12629,12950,13492,15360,12452,12789,13412,15360,12324,12661,13332,15360,12356,12677,13340,15360,12388,12693,13348,15360,12279,12597,13247,15360,11894,12396,12998,15360,11637,12231,12846,15360,11573,12135,12789,15360,11589,12151,12797,15360,11621,12167,12797,15360,11637,12119,12677,15360,11079,11404,11693,15360,10517,10701,10653,15360,10252,10348,10007,15360,9902,9999,9428,15360,9846,9886,9047,15360,10135,10260,9685,15360,10412,10533,10412,15360,11268,11436,11549,15360,12364,12605,13087,15360,12444,12709,13255,15360,12549,12822,13348,15360,12613,12886,13396,15360,12597,12886,13412,15360,12581,12870,13404,15360,12661,12950,13460,15360,12725,13014,13492,15360,13079,13332,13645,15360,12757,13046,13500,15360,12677,12982,13476,15360,12854,13143,13556,15360,12693,12982,13492,15360,12581,12886,13452,15360,12709,13030,13508,15360,12372,12709,13364,15360,12324,12661,13348,15360,12292,12645,13340,15360,12292,12645,13348,15360,12468,12806,13436,15360,12532,12854,13460,15360,12500,12854,13468,15360,12500,12854,13484,15360,12725,13063,13589,15360,12982,13324,13701,15360,13111,13388,13741,15360,13014,13340,13709,15360,13014,13332,13717,15360,13287,13476,13862,15360,13436,13621,13974,15360,13532,13717,14095,15360,13725,13902,14295,15360,13942,14103,14420,15360,13974,14135,14436,15360,13862,14022,14388,15360,13725,13894,14295,15360,13789,13958,14336,15360,13830,13990,14348,15360,13372,13548,13942,15360,13014,13332,13733,15360,12886,13239,13661,15360,12854,13207,13637,15360,12757,13095,13589,15360,12757,13079,13573,15360,12645,12982,13516,15360,12629,12966,13532,15360,12549,12870,13468,15360,12356,12693,13372,15360,12151,12549,13231,15360,12215,12573,13247,15360,12199,12565,13231,15360,12071,12492,13135,15360,12055,12468,13087,15360,11878,12372,12958,15360,11685,12199,12781,15360,10774,11159,11412,15360,9533,9621,8870,15360,9308,9340,8071,15360,9276,9300,7878,15360,9324,9332,8420,15360,9191,9216,7991,15360,8950,8983,7766,15360,9493,9525,8677,15360,10252,10332,10007,15360,10661,10846,10894,15360,10701,10926,10998,15360,10950,11276,11428,15360,11364,11637,12063,15360,11958,12388,12926,15360,12183,12540,13175,15360,12340,12645,13295,15360,12420,12693,13316,15360,12757,13030,13460,15360,13046,13324,13645,15360,13095,13348,13677,15360,13303,13460,13781,15360,13207,13404,13741,15360,13127,13372,13717,15360,13372,13524,13862,15360,12693,13030,13540,15360,12725,13046,13548,15360,12468,12822,13436,15360,12263,12629,13348,15360,12436,12773,13428,15360,12693,12998,13524,15360,12725,13046,13564,15360,12645,12982,13556,15360,12613,12966,13556,15360,12886,13255,13685,15360,13436,13629,14022,15360,13637,13813,14231,15360,13621,13789,14215,15360,13878,14038,14412,15360,14022,14183,14468,15360,13926,14119,14452,15360,14054,14231,14508,15360,14135,14311,14540,15360,14348,14436,14669,15360,14460,14540,14749,15360,14404,14484,14709,15360,14420,14500,14709,15360,14653,14717,14894,15360,14119,14279,14508,15360,13484,13669,14078,15360,13063,13380,13773,15360,12677,13079,13613,15360,12484,12886,13516,15360,12436,12822,13476,15360,12468,12838,13476,15360,12039,12532,13316,15360,12231,12613,13340,15360,12468,12789,13436,15360,12388,12725,13396,15360,12135,12557,13287,15360,12151,12557,13271,15360,12039,12484,13175,15360,11878,12396,13038,15360,11814,12348,12950,15360,11492,11894,12460,15360,9950,10103,9621,15360,8830,8838,7220,15360,8565,8533,7015,15360,8541,8501,6919,15360,8332,8300,6822,15360,8412,8372,7220,15360,8710,8701,7686,15360,9372,9404,8549,15360,9533,9621,9079,15360,9268,9292,8196,15360,9452,9460,8167,15360,9533,9581,8533,15360,9742,9870,9316,15360,11460,11814,12348,15360,11942,12388,12902,15360,11749,12167,12573,15360,11300,11492,11621,15360,11974,12332,12669,15360,12436,12741,13364,15360,12597,12886,13460,15360,12966,13271,13653,15360,12998,13303,13669,15360,13476,13629,13974,15360,13733,13886,14239,15360,13364,13524,13894,15360,13063,13356,13725,15360,12982,13287,13669,15360,12484,12806,13444,15360,12565,12902,13500,15360,12950,13287,13693,15360,12934,13271,13677,15360,12693,13046,13589,15360,12661,13030,13605,15360,12870,13271,13717,15360,13348,13548,13966,15360,13621,13813,14271,15360,13797,13974,14412,15360,13942,14119,14484,15360,14263,14388,14629,15360,14420,14508,14733,15360,14460,14548,14773,15360,14982,15046,15231,15360,15564,15580,15669,15360,15974,15982,16078,15360,15805,15821,15926,15360,15460,15476,15572,15360,15436,15460,15556,15360,14781,14862,15127,15360,13621,13813,14348,15360,12789,13207,13757,15360,12452,12886,13581,15360,12263,12709,13476,15360,12039,12597,13396,15360,11942,12516,13340,15360,11846,12468,13271,15360,11733,12380,13127,15360,11926,12460,13191,15360,12055,12524,13263,15360,11878,12428,13159,15360,11605,12231,12886,15360,11412,11990,12709,15360,11508,12103,12789,15360,11637,12231,12854,15360,10661,11079,11380,15360,9541,9685,9252,15360,8573,8605,7493,15360,8404,8388,7348,15360,8830,8822,8212,15360,9308,9324,9095,15360,9324,9364,9220,15360,9047,9119,8653,15360,9023,9055,8404,15360,9055,9063,8167,15360,8870,8846,7541,15360,8862,8806,7380,15360,8950,8910,7252,15360,9268,9284,7557,15360,10316,10468,10380,15360,11239,11476,11677,15360,10653,10942,11047,15360,9661,9814,9324,15360,10693,10958,11047,15360,11396,11653,11990,15360,11878,12292,12597,15360,12468,12789,13396,15360,12773,13095,13589,15360,13364,13516,13894,15360,13894,14054,14380,15360,13717,13870,14247,15360,13420,13589,13958,15360,13255,13452,13830,15360,12806,13143,13637,15360,13159,13412,13830,15360,13629,13813,14215,15360,13303,13500,13910,15360,13079,13396,13805,15360,13191,13452,13878,15360,13412,13621,14062,15360,14103,14279,14540,15360,14773,14854,15086,15360,14717,14805,15046,15360,14295,14420,14685,15360,14380,14476,14733,15360,14572,14661,14902,15360,15596,15612,15701,15360,16351,16335,16384,15360,16484,16476,16492,15360,16516,16500,16516,15360,16388,16375,16404,15360,16054,16054,16118,15360,15918,15926,16006,15360,15556,15572,15669,15360,14653,14725,14982,15360,13637,13838,14319,15360,13412,13613,14054,15360,12870,13287,13789,15360,12404,12838,13524,15360,12199,12677,13428,15360,12324,12741,13452,15360,11942,12516,13324,15360,11765,12380,13111,15360,11428,11942,12589,15360,10886,11388,11902,15360,10372,10717,11006,15360,9846,10240,10191,15360,10252,10549,10766,15360,10613,11079,11484,15360,10581,10998,11388,15360,9613,9846,9629,15360,8525,8557,7541,15360,8605,8613,7814,15360,9292,9324,9079,15360,9388,9396,9220,15360,10709,10846,11031,15360,9894,9966,9854,15360,9252,9236,8774,15360,8822,8790,8183,15360,8292,8260,6533,15360,8111,8007,6324,15360,8228,8183,6405,15360,8501,8501,6565,15360,8814,8878,7172,15360,9260,9364,8244,15360,8902,9095,8252,15360,9444,9581,9047,15360,9509,9637,8790,15360,9477,9613,8806,15360,10725,11063,11079,15360,11508,11910,12356,15360,12484,12789,13380,15360,12838,13159,13629,15360,13428,13589,13974,15360,14135,14279,14484,15360,13942,14087,14396,15360,13677,13846,14247,15360,13436,13613,14006,15360,13597,13781,14183,15360,14183,14340,14540,15360,14022,14215,14484,15360,13637,13838,14271,15360,14038,14231,14508,15360,14380,14476,14701,15360,14757,14854,15078,15360,15030,15111,15343,15360,15420,15452,15556,15360,15476,15500,15588,15360,15351,15388,15492,15360,15572,15596,15677,15360,15653,15669,15717,15360,15821,15821,15853,15360,15845,15845,15869,15360,15998,15990,16022,15360,15926,15926,15974,15360,15653,15669,15733,15360,15661,15677,15749,15360,15612,15629,15717,15360,15271,15335,15452,15360,14484,14572,14821,15360,14215,14372,14588,15360,13468,13677,14167,15360,12773,13175,13653,15360,12725,13143,13637,15360,12452,12886,13532,15360,12263,12709,13444,15360,11894,12436,13103,15360,10252,10533,10661,15360,8613,8693,7445,15360,8742,8782,7047,15360,8420,8412,6565,15360,7926,7910,6405,15360,8806,8854,7300,15360,9127,9228,8007,15360,8685,8750,7300,15360,8348,8356,6758,15360,8380,8340,7300,15360,8991,8918,8388,15360,9838,9790,9549,15360,10055,10127,10047,15360,9501,9493,9268,15360,9332,9292,8902,15360,9079,9007,8509,15360,8300,8260,7252,15360,8693,8701,8196,15360,8228,8212,7111,15360,8469,8501,7380,15360,8420,8501,6919,15360,8549,8645,6983,15360,8581,8661,6951,15360,9268,9332,7718,15360,9063,9207,7445,15360,9284,9380,7718,15360,9412,9557,8693,15360,10276,10517,10103,15360,11830,12279,12589,15360,12725,13079,13589,15360,13127,13396,13773,15360,14087,14231,14460,15360,13974,14119,14412,15360,13677,13854,14247,15360,14119,14279,14500,15360,13990,14167,14460,15360,14364,14452,14653,15360,14564,14653,14837,15360,14404,14492,14701,15360,14870,14942,15135,15360,15388,15420,15500,15360,15207,15287,15420,15360,14797,14894,15127,15360,15271,15335,15452,15360,15926,15942,15990,15360,16207,16207,16231,15360,16118,16110,16126,15360,15741,15733,15741,15360,16239,16207,16175,15360,16444,16460,16484,15360,16046,16022,16006,15360,15942,15950,15966,15360,15773,15789,15829,15360,15789,15797,15845,15360,15693,15709,15757,15360,15540,15564,15653,15360,15303,15364,15468,15360,14733,14813,15014,15360,13862,14054,14420,15360,12838,13255,13725,15360,12789,13207,13693,15360,12468,12918,13564,15360,12404,12838,13500,15360,11428,11862,12412,15360,9143,9276,8388,15360,8541,8533,6726,15360,8444,8428,6629,15360,8212,8183,6597,15360,8388,8380,7015,15360,8726,8710,6758,15360,8332,8316,6437,15360,8453,8428,6565,15360,8597,8605,7814,15360,8701,8661,8151,15360,9452,9396,9015,15360,10581,10557,10380,15360,10950,10974,10846,15360,10380,10356,10252,15360,10749,10741,10685,15360,9870,9854,9693,15360,9023,9039,8669,15360,8790,8854,8509,15360,8196,8167,7332,15360,7975,8015,7079,15360,8589,8750,7445,15360,9095,9260,7111,15360,8983,9135,7188,15360,8902,8991,7252,15360,8862,9007,7015,15360,8967,9111,7300,15360,8742,8878,7493,15360,9557,9999,9549,15360,11292,11613,11862,15360,12135,12468,12982,15360,12215,12460,12878,15360,13356,13468,13685,15360,13821,13934,14199,15360,13548,13701,14022,15360,14103,14263,14468,15360,14279,14388,14572,15360,14364,14452,14645,15360,14709,14789,14950,15360,15143,15199,15327,15360,15388,15412,15468,15360,15476,15500,15548,15360,15420,15444,15492,15360,15436,15460,15516,15360,15612,15637,15685,15360,16086,16086,16110,15360,16396,16388,16396,15360,16094,16094,16110,15360,15869,15861,15861,15360,16135,16110,16070,15360,16428,16420,16404,15360,15588,15556,15524,15360,15484,15500,15508,15360,15335,15364,15396,15360,15677,15685,15717,15360,15604,15621,15661,15360,15420,15444,15500,15360,15303,15372,15452,15360,14717,14805,14998,15360,14412,14508,14701,15360,13548,13765,14199,15360,13271,13508,13942,15360,12661,13159,13709,15360,12468,12854,13436,15360,10260,10484,10509,15360,8613,8669,6951,15360,8151,8143,6469,15360,8653,8629,7814,15360,8469,8444,7541,15360,8718,8693,7814,15360,8372,8332,6597,15360,8356,8308,7111,15360,9047,8983,8396,15360,8822,8798,8308,15360,9372,9348,8967,15360,10364,10364,10183,15360,10268,10260,9894,15360,10541,10533,10468,15360,10380,10364,10276,15360,10621,10613,10549,15360,9910,9942,9758,15360,8364,8380,7621,15360,8581,8637,8135,15360,8252,8300,7573,15360,8119,8175,7300,15360,8372,8453,7493,15360,8420,8501,6983,15360,8742,8822,7573,15360,8782,8854,8151,15360,8581,8661,7079,15360,9220,9268,8340,15360,9549,9645,8854,15360,11717,11950,12127,15360,12468,12741,13207,15360,12709,12966,13388,15360,12300,12508,12886,15360,12492,12709,13063,15360,13239,13372,13548,15360,12476,12597,12814,15360,13581,13685,13878,15360,14476,14548,14685,15360,14556,14629,14773,15360,14765,14829,14966,15360,15159,15207,15303,15360,15372,15396,15444,15360,15516,15532,15572,15360,15653,15661,15693,15360,15829,15837,15853,15360,16022,16014,16022,15360,16311,16295,16279,15360,16343,16319,16303,15360,16412,16388,16359,15360,15813,15797,15773,15360,13063,13151,13183,15360,11484,11701,11798,15360,12300,12412,12468,15360,14613,14637,14653,15360,11974,12215,12316,15360,14135,14215,14303,15360,15604,15629,15677,15360,15524,15548,15596,15360,15351,15380,15428,15360,14797,14894,15054,15360,13990,14231,14500,15360,13492,13709,14070,15360,12886,13316,13701,15360,12613,13207,13749,15360,11525,11974,12428,15360,9284,9412,8629,15360,8597,8653,6951,15360,7806,7790,6292,15360,7589,7541,6437,15360,7485,7437,6597,15360,7453,7404,6180,15360,7774,7686,6565,15360,8300,8260,7332,15360,9918,9942,9862,15360,10348,10372,10231,15360,9725,9709,9228,15360,10613,10621,10509,15360,10199,10175,9838,15360,10380,10388,10340,15360,11207,11255,11284,15360,10661,10717,10725,15360,10103,10135,9950,15360,8444,8436,7669,15360,8469,8501,7445,15360,8950,9111,8854,15360,9485,9798,10071,15360,8364,8501,8039,15360,7959,7951,6806,15360,8597,8605,8039,15360,8501,8533,7557,15360,8758,8830,7509,15360,10758,10830,10693,15360,11508,11605,11621,15360,13524,13669,13886,15360,13830,14022,14327,15360,13926,14103,14364,15360,13460,13621,13886,15360,12854,13191,13420,15360,13597,13733,13926,15360,13846,13990,14223,15360,13773,13942,14199,15360,13910,14087,14356,15360,13813,14022,14319,15360,14247,14396,14540,15360,14693,14765,14878,15360,15223,15279,15343,15360,15508,15524,15540,15360,15540,15548,15564,15360,15327,15335,15319,15360,15303,15311,15303,15360,15918,15910,15886,15360,16247,16207,16151,15360,16175,16143,16086,15360,14436,14452,14436,15360,12263,12380,12404,15360,11476,11701,11773,15360,12380,12492,12532,15360,14797,14797,14757,15360,11372,11589,11677,15360,12597,12934,13356,15360,13990,14364,14725,15360,14183,14444,14773,15360,14231,14444,14717,15360,14412,14532,14709,15360,14054,14199,14380,15360,12372,12500,12605,15360,12199,12565,13006,15360,12581,13175,13653,15360,10055,10380,10324,15360,8557,8573,6726,15360,8167,8196,6533,15360,7517,7485,6119,15360,7244,7172,5798,15360,7071,6959,5718,15360,7669,7581,6260,15360,8661,8605,7975,15360,10942,11079,11151,15360,12573,12741,13014,15360,11902,12030,12191,15360,10308,10332,10135,15360,11255,11300,11284,15360,11276,11348,11396,15360,10055,10215,10292,15360,12183,12332,12468,15360,9918,9966,9798,15360,8734,8742,8196,15360,8967,8950,8469,15360,10260,10276,10039,15360,9734,9758,9605,15360,9388,9404,9308,15360,7943,7878,7095,15360,7726,7637,6645,15360,8047,7983,7204,15360,9284,9236,8693,15360,9621,9565,9143,15360,11255,11268,11047,15360,13175,13332,13420,15360,13773,13934,14175,15360,13854,14022,14271,15360,13870,14038,14279,15360,13388,13516,13677,15360,12279,12629,12966,15360,13348,13452,13564,15360,13821,13918,14054,15360,13701,13846,14022,15360,13460,13605,13781,15360,13492,13637,13821,15360,13709,13821,13950,15360,14372,14428,14476,15360,14516,14572,14613,15360,14741,14789,14813,15360,14725,14749,14749,15360,13452,13484,13468,15360,13476,13500,13492,15360,14990,15022,15022,15360,14556,14572,14564,15360,15094,15111,15094,15360,13231,13287,13215,15360,11255,11380,11175,15360,10677,10886,10492,15360,11846,12006,11934,15360,14327,14340,14279,15360,10766,11039,10862,15360,12918,13255,13452,15360,14231,14548,14886,15360,13878,14380,14765,15360,13444,13862,14412,15360,12151,12404,12621,15360,12637,12902,13215,15360,11549,11749,11870,15360,12279,12653,13119,15360,13223,13404,13516,15360,9228,9260,8276,15360,8087,7991,6308,15360,7918,7814,6919,15360,7469,7364,6148,15360,7485,7380,6212,15360,8228,7991,7204,15360,9276,8967,8212,15360,9806,9573,8742,15360,10135,10087,9621,15360,11452,11452,11452,15360,10629,10637,10509,15360,10693,10733,10637,15360,11095,11111,10982,15360,11292,11348,11372,15360,10199,10244,10167,15360,10814,10926,10846,15360,8669,8774,7493,15360,7870,7910,6244,15360,8204,8183,6919,15360,9806,9758,9159,15360,9460,9436,8629,15360,9159,9087,8260,15360,7637,7509,6790,15360,7758,7629,6838,15360,7967,7918,6774,15360,10854,10749,10501,15360,11508,11412,11316,15360,12372,12300,12151,15360,12030,12119,12063,15360,12781,12910,12982,15360,13476,13581,13661,15360,13484,13589,13677,15360,12404,12428,12380,15360,11605,11765,11798,15360,11492,11533,11452,15360,11838,11886,11798,15360,12263,12372,12380,15360,12151,12231,12175,15360,11492,11508,11412,15360,11119,11111,10838,15360,12508,12581,12573,15360,12621,12693,12677,15360,12573,12629,12589,15360,12292,12324,12231,15360,12476,12565,12573,15360,11998,12159,12215,15360,12950,13071,13159,15360,12263,12372,12428,15360,12380,12428,12444,15360,11300,11308,11143,15360,10199,10244,9734,15360,9709,9701,9252,15360,10492,10581,10404,15360,11476,11516,11388,15360,9477,9517,8790,15360,11717,11854,11838,15360,14247,14420,14524,15360,14054,14311,14436,15360,13597,13805,13982,15360,11364,11533,11597,15360,12263,12428,12549,15360,11436,11605,11653,15360,13079,13324,13444,15360,12516,12613,12605,15360,10039,10015,9605,15360,8693,8621,7878,15360,7951,7862,6902,15360,8196,8204,7015,15360,8677,8589,7637,15360,9284,9031,8340,15360,9814,9605,8902,15360,10685,10428,9910,15360,10492,10260,9685,15360,9404,9252,7943,15360,8830,8766,7220,15360,9220,9047,7943,15360,9693,9669,9015,15360,11412,11468,11372,15360,11135,11159,11023,15360,10087,10055,9428,15360,9910,10007,9621,15360,9236,9300,8934,15360,9597,9557,8902,15360,10669,10549,9782,15360,9926,9870,9127,15360,9894,9918,9047,15360,8685,8742,7910,15360,9958,10167,10284,15360,10215,10332,10396,15360,11396,11428,11452,15360,11223,11255,11300,15360,11814,11862,11958,15360,10685,10846,10870,15360,10340,10380,10007,15360,11175,11207,10894,15360,12103,12207,12215,15360,11143,11103,10902,15360,9910,9966,9613,15360,10015,10079,9493,15360,10806,10846,10517,15360,10862,10934,10637,15360,10838,10942,10661,15360,10958,11087,10878,15360,10709,10838,10701,15360,10669,10741,10589,15360,10581,10669,10525,15360,10252,10348,9974,15360,11396,11500,11525,15360,11207,11255,11264,15360,10878,10910,10934,15360,11031,11063,11159,15360,11292,11324,11396,15360,11223,11255,11300,15360,10693,10685,10645,15360,10428,10420,10324,15360,10300,10252,9991,15360,10838,10846,10798,15360,10428,10428,10364,15360,9669,9605,9380,15360,10167,10244,10087,15360,11709,11854,11910,15360,11223,11284,11268,15360,10231,10244,9878,15360,10199,10244,9862,15360,10183,10260,9942,15360,10525,10653,10541,15360,12500,12597,12621,15360,11814,11741,11597,15360,11533,11460,11175,15360,11103,11006,10557,15360,10444,10396,9846,15360,10007,10023,9228,15360,9653,9790,8469,15360,9316,9372,8039,15360,9557,9830,8071,15360,9621,9918,8071,15360,9677,10015,8167,15360,9991,10284,8420,15360,10215,10436,8581,15360,10260,10484,8645,15360,10292,10476,8902,15360,10324,10468,9252,15360,9910,9894,8886,15360,10525,10573,9701,15360,9782,10039,8581,15360,9565,9814,8167,15360,9950,10039,8934,15360,10749,10758,10199,15360,10669,10685,10244,15360,10838,10838,10460,15360,11215,10910,10087,15360,11492,11364,10806,15360,11095,11159,11055,15360,11364,11388,11356,15360,11023,11039,10990,15360,11653,11653,11613,15360,11798,11725,11557,15360,11974,11862,11637,15360,12039,11942,11765,15360,12119,12047,11934,15360,12151,12071,11950,15360,12087,12006,11886,15360,12047,11966,11838,15360,11990,11926,11790,15360,11974,11910,11798,15360,11998,11934,11814,15360,12111,12039,11886,15360,12231,12143,11998,15360,12292,12199,12039,15360,12039,11974,11846,15360,11822,11782,11653,15360,11862,11838,11765,15360,11798,11765,11701,15360,11782,11733,11669,15360,11798,11749,11685,15360,11838,11790,11725,15360,11870,11822,11749,15360,11741,11701,11621,15360,11565,11541,11452,15360,11533,11500,11412,15360,11621,11581,11484,15360,11605,11557,11460,15360,11516,11468,11372,15360,11565,11533,11444,15360,11677,11637,11541,15360,11725,11661,11557,15360,11725,11661,11557,15360,11733,11669,11573,15360,11838,11773,11677,15360,11998,11926,11814,15360,12014,11926,11798,15360,11460,11404,11332,15360,11637,11557,11428,15360,12014,11894,11693,15360,12167,12022,11765,15360,12119,11982,11709,15360,11926,11806,11516,15360,11685,11589,11300,15360,11476,11404,10886,15360,11239,11151,10468,15360,10766,10733,9894,15360,10565,10565,9589,15360,10436,10444,9332,15360,10308,10308,9031,15360,10308,10316,8999,15360,10199,10244,8774,15360,9725,9645,8549,15360,10244,10276,8967,15360,10878,10838,10183,15360,11055,10966,10348,15360,11119,11006,10404,15360,11264,11135,10565,15360,11404,11316,10822,15360,11492,11388,10982,15360,11798,11613,11223,15360,12047,11830,11412,15360,12039,11894,11597,15360,12127,11990,11693,15360,12127,11990,11725,15360,12191,12055,11806,15360,12191,12055,11830,15360,11870,11773,11613,15360,11573,11516,11428,15360,11533,11484,11412,15360,11541,11492,11420,15360,11565,11516,11452,15360,11589,11541,11476,15360,11605,11557,11500,15360,11637,11589,11533,15360,11669,11621,11557,15360,11701,11645,11573,15360,11733,11669,11589,15360,11798,11717,11605,15360,11838,11749,11621,15360,11878,11782,11661,15360,11894,11798,11661,15360,11926,11806,11653,15360,11958,11822,11661,15360,11982,11846,11677,15360,12006,11870,11685,15360,12095,11950,11765,15360,12047,11910,11741,15360,11886,11765,11605,15360,11838,11733,11589,15360,11814,11717,11589,15360,11814,11709,11573,15360,11790,11693,11565,15360,11741,11677,11589,15360,11733,11677,11613,15360,11733,11685,11629,15360,11717,11669,11621,15360,11685,11645,11589,15360,11629,11589,11533,15360,11573,11525,11468,15360,11492,11444,11380,15360,11316,11255,11111,15360,11348,11292,11143,15360,11516,11436,11316,15360,11854,11749,11589,15360,12127,11990,11765,15360,12199,12055,11782,15360,12340,12231,11910,15360,12372,12292,11958,15360,12380,12300,11974,15360,12348,12247,11910,15360,12324,12215,11878,15360,12247,12103,11773,15360,12095,11958,11637,15360,12055,11926,11613,15360,11974,11854,11541,15360,11870,11765,11468,15360,11966,11854,11541,15360,12300,12151,11846,15360,12396,12316,12006,15360,12388,12308,11990,15360,12388,12308,12006,15360,12396,12316,12022,15360,12396,12308,12022,15360,12396,12308,12022,15360,12364,12279,11974,15360,12340,12247,11942,15360,12340,12231,11926,15360,12215,12071,11806,15360,12095,11966,11749,15360,11741,11645,11500,15360,11420,11356,11255,15360,11364,11308,11207,15360,11356,11300,11175,15360,11348,11292,11191,15360,11372,11324,11255,15360,11412,11364,11308,15360,11420,11372,11316,15360,11428,11380,11324,15360,11444,11388,11332,15360,11484,11428,11364,15360,11508,11460,11396,15360,11557,11500,11436,15360,11589,11533,11460,15360,11613,11557,11484,15360,11621,11557,11492,15360,11613,11557,11500,15360,11621,11557,11500,15360,11629,11573,11508,15360,11629,11573,11508,15360,11605,11557,11484,15360,11589,11533,11468,15360,11557,11508,11436,15360,11549,11500,11428,15360,11557,11500,11436,15360,11549,11492,11436,15360,11533,11484,11428,15360,11525,11476,11428,15360,11516,11476,11428,15360,11525,11484,11444,15360,11516,11476,11428,15360,11468,11428,11380,15360,11428,11388,11332,15360,11356,11308,11239,15360,11308,11255,11127,15360,11167,11071,10926,15360,11223,11119,10966,15360,11276,11175,10998,15360,11404,11332,11191,15360,11773,11693,11557,15360,11926,11798,11613,15360,12207,12039,11773,15360,12348,12231,11894,15360,12308,12151,11846,15360,12332,12215,11894,15360,12364,12279,11958,15360,12380,12292,11974,15360,12396,12316,12022,15360,12404,12316,12039,15360,12412,12332,12087,15360,12412,12332,12103,15360,12436,12356,12135,15360,12372,12292,12039,15360,12420,12332,12087,15360,12396,12316,12055,15360,12356,12263,11990,15360,12340,12231,11942,15360,12271,12127,11854,15360,12215,12071,11814,15360,12292,12135,11878,15360,12288,12135,11870,15360,12111,11982,11765,15360,11990,11886,11717,15360,11637,11557,11428,15360,11364,11300,11143,15360,11316,11239,11079,15360,11300,11207,11047,15360,11268,11159,11015,15360,11268,11159,11015,15360,11268,11159,11031,15360,11300,11223,11095,15360,11340,11292,11191,15360,11348,11300,11223,15360,11372,11324,11255,15360,11380,11332,11255,15360,11372,11316,11239,15360,11396,11340,11268,15360,11468,11404,11300,15360,11460,11404,11324,15360,11484,11428,11356,15360,11492,11436,11372,15360,11500,11444,11388,15360,11508,11460,11404,15360,11500,11452,11396,15360,11492,11436,11380,15360,11468,11412,11356,15360,11444,11388,11324,15360,11444,11388,11324,15360,11428,11380,11316,15360,11412,11356,11300,15360,11404,11348,11300,15360,11404,11356,11308,15360,11396,11356,11308,15360,11388,11348,11308,15360,11372,11340,11292,15360,11348,11308,11255,15360,11284,11223,11111,15360,11231,11143,11023,15360,11199,11111,10974,15360,11047,10958,10814,15360,11127,11023,10870,15360,11119,11006,10846,15360,11175,11055,10886,15360,11292,11191,10998,15360,11525,11404,11284,15360,11822,11637,11476,15360,11878,11733,11549,15360,11918,11790,11573,15360,12063,11918,11653,15360,12223,12063,11765,15360,12300,12151,11846,15360,12255,12103,11814,15360,12271,12127,11846,15360,12271,12127,11862,15360,12271,12127,11886,15360,12308,12183,11942,15360,12175,12039,11814,15360,12063,11934,11709,15360,12159,12014,11765,15360,12215,12063,11798,15360,12143,11998,11757,15360,12071,11934,11693,15360,11998,11870,11661,15360,11974,11870,11685,15360,11998,11910,11757,15360,11846,11765,11629,15360,11468,11396,11284,15360,11308,11223,11031,15360,11215,11103,10934,15360,11207,11095,10942,15360,11215,11103,10950,15360,11191,11087,10942,15360,11175,11079,10942,15360,11167,11063,10934,15360,11143,11031,10902,15360,11247,11143,11015,15360,11284,11191,11079,15360,11300,11223,11095,15360,11316,11268,11127,15360,11340,11284,11143,15360,11340,11284,11159,15360,11356,11300,11191,15360,11372,11316,11239,15360,11380,11324,11255,15360,11372,11316,11255,15360,11380,11324,11276,15360,11380,11324,11268,15360,11372,11316,11255,15360,11364,11316,11255,15360,11364,11308,11239,15360,11348,11292,11207,15360,11340,11284,11191,15360,11348,11292,11191,15360,11348,11292,11207,15360,11340,11292,11207,15360,11340,11292,11207,15360,11324,11276,11207,15360,11308,11255,11175,15360,11264,11175,11079,15360,11119,11039,10934,15360,11103,11015,10902,15360,11095,11006,10878,15360,11031,10942,10806,15360,10990,10902,10766,15360,11047,10942,10814,15360,11031,10926,10790,15360,11055,10942,10806,15360,11119,10998,10846,15360,11151,11015,10830,15360,11268,11095,10886,15360,11484,11396,11268,15360,11790,11701,11549,15360,11886,11790,11637,15360,11838,11741,11581,15360,11838,11725,11541,15360,11902,11782,11581,15360,11966,11838,11629,15360,11974,11846,11629,15360,11958,11838,11629,15360,11950,11838,11637,15360,11814,11701,11525,15360,11581,11492,11332,15360,11645,11541,11380,15360,11806,11701,11533,15360,11902,11806,11637,15360,11950,11862,11717,15360,12014,11934,11790,15360,11942,11862,11725,15360,11565,11492,11388,15360,11292,11191,11015,15360,11231,11111,10950,15360,11159,11047,10894,15360,11119,11006,10854,15360,11127,11023,10878,15360,11159,11055,10902,15360,11135,11031,10894,15360,11111,11006,10878,15360,11095,10990,10870,15360,11095,10998,10886,15360,11071,10966,10846,15360,11111,11006,10902,15360,11191,11095,10974,15360,11268,11159,11031,15360,11284,11191,11063,15360,11292,11207,11063,15360,11300,11223,11079,15360,11332,11268,11143,15360,11316,11255,11127,15360,11316,11255,11143,15360,11308,11239,11127,15360,11316,11255,11159,15360,11300,11223,11127,15360,11292,11207,11095,15360,11300,11223,11111,15360,11300,11223,11095,15360,11300,11223,11095,15360,11308,11239,11111,15360,11300,11223,11111,15360,11292,11207,11111,15360,11264,11167,11071,15360,11215,11127,11047,15360,11135,11055,10966,15360,11015,10934,10846,15360,10918,10838,10733,15360,10982,10894,10782,15360,10974,10886,10766,15360,10982,10894,10766,15360,10958,10862,10749,15360,10982,10886,10774,15360,10958,10862,10758,15360,10958,10862,10749,15360,11015,10910,10790,15360,11023,10910,10774,15360,11079,10958,10806,15360,11103,10974,10798,15360,11191,11047,10846,15360,11468,11388,11276,15360,11846,11765,11637,15360,12006,11918,11782,15360,11998,11910,11782,15360,11902,11822,11693,15360,11838,11749,11637,15360,11782,11709,11605,15360,11806,11741,11645,15360,11782,11717,11629,15360,11773,11717,11621,15360,11870,11806,11701,15360,11942,11862,11757,15360,12183,12103,11974,15360,11974,11894,11765,15360,11476,11404,11308,15360,11268,11143,10966,15360,11183,11063,10902,15360,11111,10998,10854,15360,11055,10942,10806,15360,11023,10910,10766,15360,11047,10934,10782,15360,11039,10926,10782,15360,11079,10966,10830,15360,11031,10918,10782,15360,11031,10926,10806,15360,10990,10894,10782,15360,10974,10886,10790,15360,10966,10870,10774,15360,11006,10902,10806,15360,11039,10942,10838,15360,11127,11023,10910,15360,11175,11079,10958,15360,11191,11087,10958,15360,11207,11095,10958,15360,11268,11143,11015,15360,11276,11175,11047,15360,11284,11191,11079,15360,11292,11191,11079,15360,11276,11175,11079,15360,11239,11135,11031,15360,11268,11159,11047,15360,11215,11111,11006,15360,11239,11127,11015,15360,11255,11143,11031,15360,11223,11119,11015,15360,11199,11103,10998,15360,11175,11087,10982,15360,11143,11047,10958,15360,11031,10942,10854,15360,10958,10878,10790,15360,10910,10830,10741,15360,10942,10862,10758,15360,10926,10838,10733,15360,10854,10758,10637,15360,10918,10830,10709,15360,10910,10822,10717,15360,10942,10846,10749,15360,10942,10854,10741,15360,10942,10854,10749,15360,10966,10870,10758,15360,10966,10870,10758,15360,10958,10854,10733,15360,10998,10886,10741,15360,10942,10830,10677,15360,11039,10918,10749,15360,11095,10974,10806,15360,11308,11223,11031,15360,11468,11396,11292,15360,11605,11533,11428,15360,11701,11621,11525,15360,11693,11629,11541,15360,11685,11621,11549,15360,11685,11629,11549,15360,11629,11565,11484,15360,11589,11533,11444,15360,11364,11308,11191,15360,11191,11087,10958,15360,11135,11031,10902,15360,11135,11031,10894,15360,11055,10950,10830,15360,11015,10910,10782,15360,10958,10854,10733,15360,10942,10838,10717,15360,10974,10870,10733,15360,10982,10878,10749,15360,10990,10886,10758,15360,11015,10910,10798,15360,10966,10862,10758,15360,10950,10854,10758,15360,10910,10822,10733,15360,10894,10798,10709,15360,10902,10814,10725,15360,10934,10846,10758,15360,10910,10822,10733,15360,10950,10854,10749,15360,10974,10878,10766,15360,11047,10942,10830,15360,11095,10990,10878,15360,11167,11055,10942,15360,11199,11103,10990,15360,11191,11087,10982,15360,11151,11047,10950,15360,11135,11031,10934,15360,11095,10998,10902,15360,11143,11047,10950,15360,11079,10990,10894,15360,11079,10990,10902,15360,11103,11006,10910,15360,11079,10982,10886,15360,11023,10926,10822,15360,10982,10894,10798,15360,10958,10870,10782,15360,10910,10814,10725,15360,10926,10838,10741,15360,10934,10838,10733,15360,10950,10854,10749,15360,10886,10798,10709,15360,10910,10814,10709,15360,10926,10830,10725,15360,10910,10814,10701,15360,10862,10774,10677,15360,10950,10854,10733,15360,10926,10830,10717,15360,10926,10838,10725,15360,10926,10830,10725,15360,10894,10798,10685,15360,10926,10830,10701,15360,10958,10854,10717,15360,10934,10830,10685,15360,10950,10846,10709,15360,10974,10862,10717,15360,10942,10830,10685,15360,10958,10846,10701,15360,11006,10894,10749,15360,10950,10846,10725,15360,10958,10862,10741,15360,10894,10806,10701,15360,10854,10774,10669,15360,10886,10806,10701,15360,10862,10790,10693,15360,10878,10806,10717,15360,10982,10902,10798,15360,10990,10902,10798,15360,10950,10862,10758,15360,10942,10846,10733,15360,10870,10774,10669,15360,10894,10798,10693,15360,10918,10830,10725,15360,10894,10806,10701,15360,10926,10830,10733,15360,10902,10830,10725,15360,10870,10790,10693,15360,10886,10814,10725,15360,10814,10741,10661,15360,10838,10766,10677,15360,10822,10741,10661,15360,10822,10741,10669,15360,10862,10790,10709,15360,10846,10758,10669,15360,10894,10798,10693,15360,10974,10878,10766,15360,10966,10870,10766,15360,11023,10926,10814,15360,11079,10974,10862,15360,11006,10910,10814,15360,10950,10862,10766,15360,10982,10894,10798,15360,10958,10862,10774,15360,10958,10870,10782,15360,10910,10830,10741,15360,10950,10862,10766,15360,10982,10886,10790,15360,10918,10822,10725,15360,10886,10798,10701,15360,10854,10766,10669,15360,10894,10806,10709,15360,10926,10830,10725,15360,10926,10830,10725,15360,10958,10862,10749,15360,10958,10862,10749,15360,10894,10806,10717,15360,10902,10814,10717,15360,10878,10790,10677,15360,10942,10838,10717,15360,10918,10814,10701,15360,10886,10790,10661,15360,10942,10838,10717,15360,10950,10854,10725,15360,10950,10854,10725,15360,10910,10814,10693,15360,10910,10814,10685,15360,10942,10838,10709,15360,10894,10790,10661,15360,10910,10806,10669,15360,10822,10725,10597,15360,10749,10661,10541,15360,10830,10733,10613,15360,10838,10741,10629,15360,10806,10709,10597,15360,10854,10766,10653,15360,10862,10774,10669,15360,10798,10725,10629,15360,10822,10749,10653,15360,10854,10782,10693,15360,10806,10741,10661,15360,10862,10790,10701,15360,10870,10790,10685,15360,10870,10790,10693,15360,10878,10790,10677,15360,10862,10782,10677,15360,10870,10790,10693,15360,10870,10782,10685,15360,10894,10814,10709,15360,10886,10814,10709,15360,10846,10782,10685,15360,10741,10669,10573,15360,10766,10693,10589,15360,10709,10637,10541,15360,10741,10669,10589,15360,10741,10677,10589,15360,10709,10637,10557,15360,10774,10701,10613,15360,10862,10774,10677,15360,11006,10918,10806,15360,11006,10902,10782,15360,10974,10870,10749,15360,10958,10854,10733,15360,10934,10838,10725,15360,10934,10838,10733,15360,10934,10838,10725,15360,10886,10790,10685,15360,10854,10766,10661,15360,10886,10798,10701,15360,10838,10749,10645,15360,10878,10782,10661,15360,10822,10725,10613,15360,10822,10717,10605,15360,10846,10749,10629,15360,10854,10749,10637,15360,10950,10854,10733,15360,10958,10854,10741,15360,10910,10806,10693,15360,10926,10822,10693,15360,10934,10838,10725,15360,10910,10822,10709,15360,10910,10822,10709,15360,10886,10782,10661,15360,10910,10814,10677,15360,10910,10806,10677,15360,10926,10822,10685,15360,10958,10854,10717,15360,10974,10870,10725,15360,10926,10830,10693,15360,10926,10830,10693,15360,10918,10822,10693,15360,10934,10838,10701,15360,10918,10814,10685,15360,10878,10782,10653,15360,10870,10774,10645,15360,10838,10749,10629,15360,10806,10717,10605,15360,10822,10733,10621,15360,10822,10733,10621,15360,10846,10758,10653,15360,10846,10766,10653,15360,10822,10741,10629,15360,10806,10733,10629,15360,10806,10725,10621,15360,10790,10709,10605,15360,10766,10693,10589,15360,10814,10741,10629,15360,10846,10766,10653,15360,10838,10758,10653,15360,10878,10790,10677,15360,10894,10798,10685,15360,10830,10741,10629,15360,10830,10758,10653,15360,10798,10725,10629,15360,10806,10733,10629,15360,10717,10637,10525,15360,10661,10581,10476,15360,10701,10621,10517,15360,10733,10661,10565,15360,10782,10685,10557,15360,10862,10758,10613,15360,10974,10862,10725,15360,10958,10846,10709,15360,11006,10902,10766,15360,11006,10902,10774,15360,11039,10934,10814,15360,11006,10902,10790,15360,11006,10910,10790,15360,10950,10854,10741,15360,10934,10830,10709,15360,10918,10814,10701,15360,10854,10758,10653,15360,10918,10814,10701,15360,10870,10766,10645,15360,10830,10733,10621,15360,10934,10830,10709,15360,10990,10886,10758,15360,10950,10838,10717,15360,10910,10814,10701,15360,10926,10822,10693,15360,10934,10830,10709,15360,10878,10774,10653,15360,10934,10830,10701,15360,10926,10822,10693,15360,10878,10782,10661,15360,10878,10782,10661,15360,10862,10766,10621,15360,10886,10782,10645,15360,10886,10782,10653,15360,10926,10822,10701,15360,10902,10806,10685,15360,10926,10822,10701,15360,10918,10814,10685,15360,10878,10782,10645,15360,10910,10806,10669,15360,10854,10758,10621,15360,10886,10790,10645,15360,10854,10758,10629,15360,10830,10741,10613,15360,10918,10814,10685,15360,10862,10766,10645,15360,10830,10741,10613,15360,10806,10717,10597,15360,10741,10661,10557,15360,10774,10693,10581,15360,10749,10669,10557,15360,10774,10693,10581,15360,10766,10685,10573,15360,10790,10709,10597,15360,10782,10701,10589,15360,10790,10709,10597,15360,10838,10749,10621,15360,10870,10774,10645,15360,10894,10790,10661,15360,10878,10782,10653,15360,10846,10741,10613,15360,10790,10693,10557,15360,10814,10717,10597,15360,10790,10701,10581,15360,10741,10645,10525,15360,10717,10629,10509,15360,10774,10685,10573,15360,10725,10637,10525,15360,10854,10749,10621,15360,10950,10846,10701,15360,10966,10854,10709,15360,10934,10814,10677,15360,10926,10822,10701,15360,10982,10878,10766,15360,10998,10894,10782,15360,10990,10878,10766,15360,10998,10894,10782,15360,10998,10886,10774,15360,10998,10886,10758,15360,11006,10894,10774,15360,10942,10838,10733,15360,10958,10854,10741,15360,10958,10854,10749,15360,11006,10902,10790,15360,11015,10902,10798,15360,10982,10870,10758,15360,10998,10894,10782,15360,10974,10870,10758,15360,11006,10902,10790,15360,10998,10894,10774,15360,10974,10870,10758,15360,10950,10854,10741,15360,10878,10790,10693,15360,10902,10814,10701,15360,10918,10822,10709,15360,10838,10733,10613,15360,10878,10782,10661,15360,10934,10838,10717,15360,10902,10806,10693,15360,10918,10822,10709,15360,10926,10830,10709,15360,10838,10733,10605,15360,10910,10806,10661,15360,10942,10838,10693,15360,10886,10782,10645,15360,10886,10782,10637,15360,10854,10749,10621,15360,10926,10830,10709,15360,10966,10862,10741,15360,10846,10749,10629,15360,10830,10733,10605,15360,10854,10758,10637,15360,10822,10725,10605,15360,10886,10790,10661,15360,10902,10806,10669,15360,10918,10814,10677,15360,10830,10733,10605,15360,10806,10717,10589,15360,10870,10774,10645,15360,10934,10838,10709,15360,10958,10862,10733,15360,10886,10790,10661,15360,10894,10798,10661,15360,10958,10854,10709,15360,10934,10830,10709,15360,10814,10717,10581,15360,10862,10758,10613,15360,10854,10741,10589,15360,10814,10717,10573,15360,10886,10782,10645,15360,10814,10725,10597,15360,10862,10766,10637,15360,10910,10806,10669,15360,10942,10838,10709,15360,10966,10862,10733,15360,10974,10870,10741,15360,10974,10870,10749,15360,10958,10862,10749,15360,11031,10934,10822,15360,10998,10894,10782,15360,10974,10870,10766,15360,11023,10918,10814,15360,11039,10926,10822,15360,10958,10846,10741,15360,10918,10814,10693,15360,10966,10870,10741,15360,10982,10886,10766,15360,10982,10878,10766,15360,10942,10846,10733,15360,10958,10862,10758,15360,10950,10854,10758,15360,10934,10830,10717,15360,10966,10862,10733,15360,10942,10846,10725,15360,10934,10846,10733,15360,10934,10846,10733,15360,10878,10798,10693,15360,10886,10798,10693,15360,10910,10814,10709,15360,10942,10846,10733,15360,10838,10733,10597,15360,10878,10774,10645,15360,10918,10822,10701,15360,10878,10782,10653,15360,10894,10790,10661,15360,10934,10838,10725,15360,10958,10854,10725,15360,10966,10862,10733,15360,10910,10806,10685,15360,10982,10878,10758,15360,10942,10854,10749,15360,10934,10838,10733,15360,10918,10814,10701,15360,10894,10798,10669,15360,10894,10798,10669,15360,10814,10725,10605,15360,10902,10798,10669,15360,10814,10725,10605,15360,10894,10798,10685,15360,10958,10862,10749,15360,10910,10814,10701,15360,10910,10806,10685,15360,10918,10814,10693,15360,10926,10822,10709,15360,10894,10790,10661,15360,10902,10806,10677,15360,10902,10806,10685,15360,10934,10838,10717,15360,10934,10838,10701,15360,10934,10838,10717,15360,10950,10854,10725,15360,10894,10798,10661,15360,10862,10749,10597,15360,10894,10798,10677,15360,10878,10782,10661,15360,10926,10838,10717,15360,10926,10838,10717,15360,10918,10822,10709,15360,10934,10838,10733,15360,10926,10838,10733,15360,10958,10870,10766,15360,10942,10854,10749,15360,10958,10870,10774,15360,10974,10878,10774,15360,10958,10854,10741,15360,10950,10846,10741,15360,10950,10854,10758,15360,10934,10838,10733,15360,10942,10846,10725,15360,10966,10862,10741,15360,10926,10838,10733,15360,10958,10862,10749,15360,10910,10822,10709,15360,10942,10854,10758,15360,10926,10838,10733,15360,10910,10822,10717,15360,10934,10838,10733,15360,10934,10846,10733,15360,10902,10814,10709,15360,10926,10830,10717,15360,10918,10822,10709,15360,10838,10749,10637,15360,10878,10790,10677,15360,10942,10846,10733,15360,10926,10822,10701,15360,10958,10862,10749,15360,10886,10790,10685,15360,10918,10814,10693,15360,10910,10814,10693,15360,10902,10806,10701,15360,10878,10774,10637,15360,10798,10693,10565,15360,10822,10725,10597,15360,10934,10838,10709,15360,10958,10854,10725,15360,10886,10790,10669,15360,10910,10806,10677,15360,10886,10782,10645,15360,10830,10725,10597,15360,10822,10717,10581,15360,10862,10758,10637,15360,10878,10782,10669,15360,10926,10822,10709,15360,10974,10878,10774,15360,10966,10870,10758,15360,10918,10822,10709,15360,10846,10749,10645,15360,10894,10798,10693,15360,10918,10822,10709,15360,10974,10878,10774,15360,10918,10822,10717,15360,10982,10886,10774,15360,10974,10878,10758,15360,10950,10854,10741,15360,10958,10854,10725,15360,10982,10886,10766,15360,10918,10822,10701,15360,10878,10782,10669,15360,10886,10790,10669,15360,10934,10838,10717,15360,10950,10854,10741,15360,10934,10838,10733,15360,10982,10886,10782,15360,10886,10798,10701,15360,10870,10782,10685,15360,10894,10814,10717,15360,10910,10822,10725,15360,10934,10838,10733,15360,10950,10846,10741,15360,10934,10838,10725,15360,10934,10846,10749,15360,10902,10814,10717,15360,10878,10790,10677,15360,10878,10782,10669,15360,10854,10766,10645,15360,10838,10749,10629,15360,10902,10814,10701,15360,10910,10814,10693,15360,10902,10798,10669,15360,10910,10806,10677,15360,10886,10782,10653,15360,10854,10749,10629,15360,10870,10774,10653,15360,10974,10870,10758,15360,10990,10878,10758,15360,10918,10822,10709,15360,10926,10838,10725,15360,10958,10854,10733,15360,10894,10790,10653,15360,10822,10725,10605,15360,10878,10782,10661,15360,10974,10870,10749,15360,10902,10806,10677,15360,10934,10838,10725,15360,10870,10774,10653,15360,10798,10701,10581,15360,10854,10749,10621,15360,10894,10798,10669,15360,10934,10822,10685,15360,10942,10830,10701,15360,10910,10806,10669,15360,10870,10758,10629,15360,10886,10774,10645,15360,10950,10838,10701,15360,10966,10870,10749,15360,10886,10790,10685,15360,10870,10782,10677,15360,10934,10838,10733,15360,10934,10838,10725,15360,10822,10725,10621,15360,10878,10790,10677,15360,10894,10798,10693,15360,10822,10733,10629,15360,10894,10798,10685,15360,10998,10902,10790,15360,11015,10918,10806,15360,10950,10854,10741,15360,10950,10846,10741,15360,10934,10838,10733,15360,10942,10846,10749,15360,10910,10822,10725,15360,10846,10758,10653,15360,10878,10790,10685,15360,10894,10798,10701,15360,10862,10774,10669,15360,10814,10725,10621,15360,10846,10758,10645,15360,10870,10774,10661,15360,10870,10774,10677,15360,10878,10790,10693,15360,10878,10782,10677,15360,10830,10741,10637,15360,10870,10782,10677,15360,10966,10870,10766,15360,11015,10918,10814,15360,10910,10814,10701,15360,10942,10846,10725,15360,10950,10846,10725,15360,10942,10838,10725,15360,10934,10830,10701,15360,10910,10798,10677,15360,10886,10782,10653,15360,10838,10733,10597,15360,10902,10806,10669,15360,10830,10733,10613,15360,10838,10741,10621,15360,10838,10741,10621,15360,10894,10798,10669,15360,10934,10830,10685,15360,10886,10790,10669,15360,10902,10806,10685,15360,10854,10749,10637,15360]);var Dfe={file:1,m:1,mm:.001,cm:.01,ft:.3048,in:.0254,pt:cht()},uht={file:"m",m:"m",mm:"mm",cm:"cm",ft:"ft",in:"in",pt:"pt"},Ofe=e=>2===e?"\xb2":3===e?"\xb3":"",sE=(e,t=1)=>uht[e]+Ofe(t),FOt=(e,t,n,i=1)=>(null==n&&(n=t),n===t?{value:e,unit:sE(n)}:{value:e*Math.pow(Dfe[t]/Dfe[n],i),unit:sE(n)+Ofe(i)}),u5=(e=>(e.Top="Top",e.Bottom="Bottom",e.Front="Front",e.Back="Back",e.Left="Left",e.Right="Right",e))(u5||{}),aE=class{static getCameraPositionByBboxAndDirection(e,t,n,i,r){if(e.isEmpty()||!i)return;let a=new O,s=new O,o=new O(0,1,0);e.getSize(s),e.getCenter(a);let l,h,c=(s.x+s.y+s.z)/3*1.5;if(!r||null!=r&&r.equals(new O))l=new O(a.x+c,a.y+c/1.5,a.z+c),h=l.clone().sub(a);else{let e=new O(c,c/1.5,c).length();h=new O(-r.x,-r.y,-r.z).normalize().multiplyScalar(e),l=h.clone().add(a)}c=h.length(),h=h.normalize();let u=new et;u.lookAt(l,a,o);let d=new et;d.makeTranslation(-l.x,-l.y,-l.z);let p=e.clone().applyMatrix4(d).applyMatrix4(u.invert()).applyMatrix4(i),f=Math.max(Math.abs(p.max.x),Math.abs(p.min.x)),m=Math.max(Math.abs(p.max.y),Math.abs(p.min.y));c*=1.1*Math.sqrt(Math.pow(f,2)+Math.pow(m,2)),l=h.multiplyScalar(c).add(a),n.set(a.x,a.y,a.z),t.set(l.x,l.y,l.z)}static getCameraDirectionByView(e){let t=new O(1,0,0);return"Top"===e?t.set(0,-1,0):"Bottom"===e?t.set(0,1,0):"Front"===e?t.set(0,0,-1):"Back"===e?t.set(0,0,1):"Left"===e?t.set(1,0,0):"Right"===e&&t.set(-1,0,0),t}},hht=!1,Bi=class extends us{constructor(e){super(),this.DEFAULT_LINE_WIDTH=1,this.DEFAULT_STROKE_STYLE=[0,0,0,1],this.DEFAULT_FILL_STYLE=[0,0,0,1],this.lineWidth=this.DEFAULT_LINE_WIDTH,this.lineColor=this.DEFAULT_STROKE_STYLE,this.fillColor=this.DEFAULT_FILL_STYLE,this.x=0,this.y=0,this.width=0,this.height=0,this.points=[],this.userData={},this.tolerance=1,this.visible=!0,this.selected=!1,this.renderOrder=1,this.needsFrustumCulled=!0,this.editPointSize=3,this.editPointFillColor="#ffffff",this.editPointStrokeColor="#939ea4",this.matrix=new et,this.id=e||Mt.guid()}setTolerance(e){this.tolerance=e}render(e,t){this.ctx=e,this.draw(e,t),this.selected&&this.drawSelect(e,t),hht&&(this.drawBounds(e,t),this.drawCenter(e,t))}getData(){return{id:this.id,points:this.points.map((e=>[e.x,e.y])),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.getClassType()}}setData(e){this.id=e.id,this.setLineWidth(e.lineWidth),this.setLineColor(e.lineColor),this.setFillColor(e.fillColor)}getVertexes(){return[new O(this.x,this.y,0),new O(this.x+this.width,this.y,0),new O(this.x+this.width,this.y-this.height,0),new O(this.x,this.y-this.height,0)]}setLineWidth(e){this.lineWidth=e||this.DEFAULT_LINE_WIDTH}setLineColor(e){this.lineColor=e||this.DEFAULT_STROKE_STYLE}setFillColor(e){this.fillColor=e||this.DEFAULT_FILL_STYLE}isSelected(){return this.selected}getCenter(){return this.getBounds().getCenter(new O)}transToScreenCoord(e,t){return this.ctx?cn.worldPosition2ScreenPoint(e,t,this.ctx.canvas):new be}drawBounds(e,t){let{min:n,max:i}=this.getBounds(),r=[],a=(e,t,n)=>r.push(new O(e,t,n));a(i.x,i.y,i.z),a(n.x,i.y,i.z),a(n.x,n.y,i.z),a(i.x,n.y,i.z),a(i.x,i.y,n.z),a(n.x,i.y,n.z),a(n.x,n.y,n.z),a(i.x,n.y,n.z),a(n.x,i.y,i.z),a(n.x,n.y,i.z),a(i.x,i.y,i.z),a(i.x,n.y,i.z),a(i.x,i.y,n.z),a(i.x,n.y,n.z),a(n.x,i.y,n.z),a(n.x,n.y,n.z),a(n.x,i.y,i.z),a(n.x,i.y,n.z),a(i.x,i.y,i.z),a(i.x,i.y,n.z),a(n.x,n.y,i.z),a(n.x,n.y,n.z),a(i.x,n.y,i.z),a(i.x,n.y,n.z),e.save(),e.strokeStyle="yellow",e.beginPath(),r.forEach(((n,i)=>{let r=this.transToScreenCoord(n,t);i%2==0?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),e.closePath(),e.stroke(),e.restore()}drawCenter(e,t){let n=this.transToScreenCoord(this.getCenter(),t);e.save(),e.fillStyle="yellow",e.beginPath(),e.arc(n.x,n.y,5,0,2*Math.PI),e.closePath(),e.fill(),e.restore()}getBounds(){let e=this.getVertexes();return(new Ot).setFromPoints(e)}},Ii=(e=>(e.MouseClicked="MouseClicked",e.LayoutChanged="LayoutChanged",e.ModelLoaded="ModelLoaded",e.BeforeRender="BeforeRender",e.AfterRender="AfterRender",e.OnAnimate="OnAnimate",e.CameraChanged="CameraChanged",e.BoxSelectActivated="BoxSelectActivated",e.BoxSelectDeactivated="BoxSelectDeactivated",e.PickMarkupActivated="PickMarkupActivated",e.PickMarkupDeactivated="PickMarkupDeactivated",e.MarkupActivated="MarkupActivated",e.MarkupDeactivated="MarkupDeactivated",e.MarkupAdded="MarkupAdded",e.MarkupUpdated="MarkupUpdated",e.MarkupRemoved="MarkupRemoved",e.BeforeRemoveMarkup="BeforeRemoveMarkup",e.MeasurementActivated="MeasurementActivated",e.MeasurementDeactivated="MeasurementDeactivated",e.MeasurementAdded="MeasurementAdded",e.MeasurementRemoved="MeasurementRemoved",e))(Ii||{}),kfe={},Un=class extends us{constructor(e){super(),this.drawableLists=[],this.frustum=new ya,this.projScreenMatrix=new et,this.viewer=e,this.init()}static _registerDrawableClass(e){kfe[e.prototype.getClassType()]=e}static createDrawable(e){let t=kfe[e.type];if(!t)throw new Error(`Invalid drawable type: ${t}`);let n=e.points.map((e=>new O(e[0],e[1],e[2]||0))),i=new t(e.id,n);return i.setData(e),i}get container(){return this.viewer.viewerContainer}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}init(){this.initCanvas(),this.viewer.addEventListener("AfterRender",(()=>{this.projScreenMatrix.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),this.frustum.setFromProjectionMatrix(this.projScreenMatrix),this.render()}))}initCanvas(){let e=this.viewer.getViewConfig();if(Dn.isBrowser&&!e.context2d){let e=this.canvas=document.createElement("canvas"),t=this.viewer.viewerContainer;t.appendChild(e),e.classList.add("overlay-renderer"),e.style.pointerEvents="none",e.style.position="absolute",e.style.left="0px",e.style.top="0px",e.style.userSelect="none",this.context=e.getContext("2d",{willReadFrequently:!0});let{clientWidth:n,clientHeight:i}=t;this.setSize(n,i)}else e.context2d&&(this.context=e.context2d,this.canvas=Dn.creatReactNativeCanvas(this.context),this.context.canvas||(this.context.canvas=this.canvas))}toHighDpr(e,t,n){let i=Math.max(window.devicePixelRatio||1,1),r=this.canvas;return r.width=t*i,r.height=n*i,e.scale(i,i),r.style.width=`${t}px`,r.style.height=`${n}px`,e}clearCanvas(){var e,t,n;null==(n=this.context)||n.clearRect(0,0,null==(e=this.canvas)?void 0:e.width,null==(t=this.canvas)?void 0:t.height)}addDrawableList(e){this.drawableLists.push(e)}render(){if(!this.canvas||!this.context||this.drawableLists.length<1)return;this.clearCanvas();let e=this.getSortedDrawables(!1);if(0===e.length)return;let t=new vr,n=this.viewer.getPixelSizeInWorldCoord();for(let i=0;i{let i=Array.from(n.getDrawables().values());e&&(i=i.filter((e=>e.visible))),i.length>0&&t.push(...i)})),t.sort(((e,t)=>e.renderOrder===t.renderOrder?t.getCenter().distanceTo(this.camera.position)-e.getCenter().distanceTo(this.camera.position):e.renderOrder-t.renderOrder)),t}getDrawablesByPosition(e,t){let n=this.getSortedDrawables(),i=[];for(let r=0;rt.id===e))}measureTextLength(e,t){let n=this.context,i=e.split("\n"),r=0;for(let a=0;ae.clear())),this.drawableLists=[],this.canvas&&(null==(e=this.viewer.viewerContainer)||e.removeChild(this.canvas),this.canvas=void 0)}},Ko=class extends us{constructor(e){super(),this.drawableMap=new Map,this.category=e}addDrawable(e){this.drawableMap.set(e.id,e),this.dispatchEvent("addDrawable",e.getData())}updateDrawable(e,t){e.setData(t),this.dispatchEvent("updateDrawable",e.getData())}removeDrawable(e){this.drawableMap.delete(e.id),this.dispatchEvent("removeDrawable",e.getData())}getDrawableById(e){return this.drawableMap.get(e)}clear(){this.drawableMap.forEach((e=>this.removeDrawable(e)))}getDrawables(){return this.drawableMap}getDrawableDatas(){return Array.from(this.drawableMap).map((([e,t])=>t.getData()))}setDrawableDatas(e){for(let t=0;t{let i=this.transToScreenCoord(n,t);e.moveTo(i.x,i.y),e.arc(i.x,i.y,this.editPointSize,0,2*Math.PI)})),e.closePath(),e.stroke(),e.fill(),e.restore()}setEditPointSize(e){this.editPointSize=e}setEditPointFillColor(e){this.editPointFillColor=e}setEditPointStrokeColor(e){this.editPointStrokeColor=e}getCenter(){return this.getBounds().getCenter(new O)}isPointInPath(e){let t=this.getVertexes().map((e=>new be(e.x,e.y)));return Qt.isPointInPolygon(new be(e.x,e.y),t,!0)}setData(e){super.setData(e),this.update(e.points.map((e=>new O(e[0],e[1],0))))}setParent(e){this.parent=e}setLeaderText(e){this.leaderText=e,e.setParent(this)}update(e){let{min:t,max:n}=dht.setFromPoints(e);return this.x=t.x,this.y=n.y,this.width=Math.abs(n.x-t.x),this.height=Math.abs(n.y-t.y),this.points=e,this}translate(e,t){let n=new O(e,t,0);return this.points.forEach((e=>e.add(n))),this.update(this.points),this}rotate(){return this}scale(){return this}},Wa=(e=>(e.Arrow="ArrowMarkup",e.Circle="CircleMarkup",e.CloudLine="CloudLineMarkup",e.CloudLineRectangle="CloudRectMarkup",e.CloudRectWithText="CloudRectWithTextMarkup",e.Dot="DotMarkup",e.Ellipse="EllipseMarkup",e.LeaderLine="LeaderLineMarkup",e.PolyLine="PolylineMarkup",e.Rectangle="RectMarkup",e.Text="TextMarkup",e.X="XMarkup",e))(Wa||{}),h5=class extends wi{constructor(e,t){super(e),this.type="ArrowMarkup",this.update(t)}draw(e,t){let n=this.points.map((e=>this.transToScreenCoord(e,t))),[i,r]=this.points,a=(new O).subVectors(i,r).length()/10/this.tolerance;this.drawArrowLine(e,n,a),this.drawArrowHead(e,n[0],n[1],10,a)}drawArrowLine(e,t,n){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=Cn.rgba2Color(this.lineColor);let[i,r]=t,a=(new be).subVectors(r,i).normalize();e.beginPath(),e.moveTo(i.x,i.y);let s=r.clone().sub(a.multiplyScalar(n));e.lineTo(s.x,s.y),e.closePath(),e.stroke(),e.restore()}drawArrowHead(e,t,n,i,r){let a=180*Math.atan2(t.y-n.y,t.x-n.x)/Math.PI,s=(a+i)*Math.PI/180,o=(a-i)*Math.PI/180,l=r*Math.cos(s),h=r*Math.sin(s),c=r*Math.cos(o),u=r*Math.sin(o),d=new be(n.x+l,n.y+h),p=new be(n.x+c,n.y+u);e.save(),e.fillStyle=Cn.rgba2Color(this.lineColor),e.beginPath(),e.moveTo(n.x,n.y),e.lineTo(d.x,d.y),e.lineTo(p.x,p.y),e.closePath(),e.fill(),e.restore()}getVertexes(){return this.points}update(e){let[t,n]=e;return this.points=e,this.x=Math.min(t.x,n.x),this.y=Math.max(t.y,n.y),this.width=Math.abs(n.x-t.x),this.height=Math.abs(n.y-t.y),this}isPointInPath(e){return Qt.isPointOnLineSegments(e,this.points,this.tolerance)}getClassType(){return"ArrowMarkup"}};Un._registerDrawableClass(h5);var fht=new be,Ffe=new O,d5=class extends wi{constructor(e,t){super(e),this.radius=1,this.type="CircleMarkup",this.update(t)}draw(e,t){let[n,i]=this.points.map((e=>this.transToScreenCoord(e,t)));this.radius=fht.subVectors(i,n).length(),e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=Cn.rgba2Color(this.lineColor),e.fillStyle=Cn.rgba2Color(this.fillColor),e.beginPath(),e.arc(n.x,n.y,this.radius,0,2*Math.PI),e.closePath(),e.stroke(),e.restore()}update(e){let[t,n]=e,i=Ffe.subVectors(n,t).length();return this.width=2*i,this.height=2*i,this.x=t.x-this.width/2,this.y=t.y+this.height/2,this.points=e,this}isPointInPath(e){let[t,n]=this.points,i=Ffe.subVectors(t,n).length();return Math.abs(e.distanceTo(t)-i)<=2*this.tolerance}getClassType(){return"CircleMarkup"}};Un._registerDrawableClass(d5);var Nfe=new Ot,Pc=class extends wi{constructor(e,t){super(e),this.type="CloudLineMarkup",this.update(t)}draw(e,t){let n=this.points,i=[];e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=Cn.rgba2Color(this.lineColor),e.fillStyle=Cn.rgba2Color(this.fillColor),e.beginPath();for(let s=0;sthis.transToScreenCoord(e,t))),r=(new be).lerpVectors(n,i,.5);this.radiusX=Math.abs(i.x-n.x)/2,this.radiusY=Math.abs(i.y-n.y)/2,e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=Cn.rgba2Color(this.lineColor),e.fillStyle=Cn.rgba2Color(this.fillColor),e.beginPath(),e.ellipse(r.x,r.y,this.radiusX,this.radiusY,0,0,2*Math.PI),e.closePath(),e.stroke(),e.restore()}isPointInPath(e){let[t,n]=this.points,i=(new O).lerpVectors(t,n,.5),r=Math.pow(e.x-i.x,2),a=Math.pow(e.y-i.y,2),s=2*this.tolerance,o=Math.abs(n.x-t.x)/2-s,l=Math.abs(n.y-t.y)/2-s,h=r/(o*o),c=a/(l*l),u=Math.abs(n.x-t.x)/2+s,d=Math.abs(n.y-t.y)/2+s;return h+c>=1&&r/(u*u)+a/(d*d)<=1}getClassType(){return"EllipseMarkup"}};Un._registerDrawableClass(m5);var oE=class extends wi{constructor(e,t,n){super(e),this.text="",this.fontSize=12,this.type="TextMarkup",this.padding=300,this.inputStatus="CHAR_TYPING",this.isEditing=!1,this.handleClick=()=>{},this.handleKeydown=e=>{if(this.textInput)if("Enter"===e.key){let e=parseInt(this.textInput.style.height);this.textInput.style.height=`${Math.round(e+this.fontSize/this.tolerance)}px`}else"Escape"===e.code&&this.exitEditing()},this.handleInput=()=>{var e;if(!this.textInput||!this.manager||"CHINESE_TYPING"===this.inputStatus)return;let t=this.textInput.value,n=(null==(e=this.manager.overlayRender)?void 0:e.measureTextLength(t,this.fontSize/this.tolerance+"px Arial"))||0;n>oE.DEFAULT_INPUT_WIDTH&&(this.textInput.style.width=`${Math.round(n+this.padding/this.tolerance*2)}px`),this.inputStatus="CHAR_TYPING",this.text=t},this.handleCompositionStart=()=>{this.inputStatus="CHINESE_TYPING"},this.handleCompositionEnd=()=>{var e;if(!this.textInput||!this.manager||"CHINESE_TYPING"!==this.inputStatus)return;let t=this.textInput.value,n=(null==(e=this.manager.overlayRender)?void 0:e.measureTextLength(t,this.fontSize/this.tolerance+"px Arial"))||0;n>oE.DEFAULT_INPUT_WIDTH&&(this.textInput.style.width=`${Math.round(n+this.padding/this.tolerance*2)}px`),this.text=t,this.inputStatus="CHAR_TYPING"},this.handleBlur=()=>{this.exitEditing()},this.handleFoucs=()=>{},this.update(t),this.text=n}draw(e,t){this.isEditing||this.drawText(e,t,this.text)}drawText(e,t,n){let i=this.transToScreenCoord(new O(this.x,this.y,0),t),r=n.split("\n"),a=this.fontSize/this.tolerance,s=0;e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=Cn.rgba2Color(this.lineColor),e.fillStyle=Cn.rgba2Color(this.lineColor),e.textAlign="left",e.textBaseline="top",e.font=`${a}px Arial`;for(let h=0;hs&&(s=n)}let o=this.padding/this.tolerance,l=new be(i.x,i.y);for(let h=0;h[e.x,e.y])),text:this.text,lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize,type:this.getClassType()}}getClassType(){return"TextMarkup"}addInput(e,t,n){var i;this.textInput||(this.textInput=document.createElement("textarea"),this.textInput.style.cssText=`\n position: absolute;\n border: ${this.lineWidth}px solid ${Cn.rgba2Color(this.lineColor)};\n background: transparent;\n outline: none;\n resize: none;\n overflow: hidden;\n z-index: 1000;\n box-sizing: content-box;\n display: inline-block;\n padding: ${this.padding/this.tolerance}px;\n whiteSpace: 'nowrap';\n color: ${this.lineColor}`,this.textInput.style.display="inline-block",null==(i=e.viewerCanvas.parentElement)||i.appendChild(this.textInput),this.addInputEvents()),this.manager=e,this.enterEditing(),this.textInput.style.left=`${t}px`,this.textInput.style.top=`${n}px`,this.textInput.style.width=`${oE.DEFAULT_INPUT_WIDTH}px`,this.textInput.style.height=this.fontSize/this.tolerance+"px",this.textInput.style.lineHeight=this.fontSize/this.tolerance+"px",this.textInput.style.fontSize=this.fontSize/this.tolerance+"px",this.textInput.style.color=Cn.rgba2Color(this.lineColor)}addInputEvents(){var e,t,n,i,r,a,s;null==(e=this.textInput)||e.addEventListener("click",this.handleClick),null==(t=this.textInput)||t.addEventListener("blur",this.handleBlur),null==(n=this.textInput)||n.addEventListener("foucs",this.handleFoucs),null==(i=this.textInput)||i.addEventListener("keydown",this.handleKeydown),null==(r=this.textInput)||r.addEventListener("input",this.handleInput),null==(a=this.textInput)||a.addEventListener("compositionstart",this.handleCompositionStart),null==(s=this.textInput)||s.addEventListener("compositionend",this.handleCompositionEnd)}enterEditing(){this.textInput&&(this.textInput.value=this.text,this.textInput.focus(),this.isEditing=!0,this.dispatchEvent("EnterEditing"))}exitEditing(){var e,t,n,i,r,a,s,o;null==(e=this.textInput)||e.removeEventListener("click",this.handleClick),null==(t=this.textInput)||t.removeEventListener("blur",this.handleBlur),null==(n=this.textInput)||n.removeEventListener("foucs",this.handleFoucs),null==(i=this.textInput)||i.removeEventListener("keydown",this.handleKeydown),null==(r=this.textInput)||r.removeEventListener("input",this.handleInput),null==(a=this.textInput)||a.removeEventListener("compositionstart",this.handleCompositionStart),null==(s=this.textInput)||s.removeEventListener("compositionend",this.handleCompositionEnd),null==(o=this.textInput)||o.remove(),this.textInput=void 0,this.isEditing=!1,this.dispatchEvent("ExitEditing")}},Ol=oE;Ol.DEFAULT_INPUT_WIDTH=50,Un._registerDrawableClass(Ol);var Bfe=new be,Ufe=new be(1,0),Hfe=new be(0,-1),g5=class extends Ol{constructor(e,t,n){super(e,t,n),this.type="LeaderLineMarkup",this.text="LeaderLine",this.fontSize=12,this.textBounds=new Ot,this.handleInput=()=>{!this.textInput||!this.manager||"CHINESE_TYPING"===this.inputStatus||(this.text=this.textInput.value,this.calcuTextInputPositionByText(this.text),this.inputStatus="CHAR_TYPING")},this.handleCompositionEnd=()=>{!this.textInput||!this.manager||"CHINESE_TYPING"!==this.inputStatus||(this.text=this.textInput.value,this.calcuTextInputPositionByText(this.text),this.inputStatus="CHAR_TYPING")}}draw(e,t){if(this.points.length<2)return;let n=this.points.map((e=>this.transToScreenCoord(e,t))),[i,r]=this.points,a=(new O).subVectors(i,r).length()/10/this.tolerance;this.drawArrowLine(e,n,a),this.drawArrowHead(e,n[1],n[0],10,a),!this.isEditing&&this.text.length>0&&this.drawText(e,t,this.text)}drawArrowHead(e,t,n,i,r){let a=180*Math.atan2(t.y-n.y,t.x-n.x)/Math.PI,s=(a+i)*Math.PI/180,o=(a-i)*Math.PI/180,l=r*Math.cos(s),h=r*Math.sin(s),c=r*Math.cos(o),u=r*Math.sin(o),d=new be(n.x+l,n.y+h),p=new be(n.x+c,n.y+u);e.save(),e.fillStyle=Cn.rgba2Color(this.lineColor),e.beginPath(),e.moveTo(n.x,n.y),e.lineTo(d.x,d.y),e.lineTo(p.x,p.y),e.closePath(),e.fill(),e.restore()}drawArrowLine(e,t,n){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=Cn.rgba2Color(this.lineColor);let[i,r]=t,a=(new be).subVectors(i,r).normalize();e.beginPath(),e.moveTo(r.x,r.y);let s=i.clone().sub(a.multiplyScalar(n));e.lineTo(s.x,s.y),e.closePath(),e.stroke(),e.restore()}drawText(e,t,n){let[i,r]=this.points.map((e=>this.transToScreenCoord(e,t))),a=(new be).subVectors(r,i).normalize(),s=a.cross(Hfe)<0,o=a.cross(Ufe)<0,l=n.split("\n"),h=this.fontSize/this.tolerance,c=0;e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=Cn.rgba2Color(this.lineColor),e.fillStyle=Cn.rgba2Color(this.lineColor),e.textAlign="left",e.textBaseline="top",e.font=`${h}px Arial`;for(let v=0;vc&&(c=n)}let u=this.padding/this.tolerance,d=u+h/2,p=l.length*h+2*u,f=new be(s?r.x:r.x-c-2*u,o?r.y-d:r.y-p+(p-d));for(let v=0;v[e.x,e.y])),text:this.text,lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize,type:this.getClassType()}}isPointInPath(e){return Qt.isPointOnLineSegments(e,this.points,this.tolerance)||this.textBounds.containsPoint(e)}updateText(e){this.text=e}getClassType(){return"LeaderLineMarkup"}addInput(e,t,n){let[i,r]=this.points.map((t=>cn.worldPosition2ScreenPoint(t,e.camera,e.viewerCanvas))),a=(new be).subVectors(r,i).normalize(),s=a.cross(Hfe)<0,o=a.cross(Ufe)<0,l=this.fontSize/this.tolerance,h=this.padding/this.tolerance,c=h+l/2,u=Ol.DEFAULT_INPUT_WIDTH,d=l;super.addInput(e,s?t:t-u-2*h,o?n-c:n-d+(d-c))}calcuTextInputPositionByText(e){var t;if(!this.textInput||!this.manager)return;let n=(null==(t=this.manager.overlayRender)?void 0:t.measureTextLength(e,this.fontSize/this.tolerance+"px Arial"))||0;if(n>Ol.DEFAULT_INPUT_WIDTH){let e=this.points[1],t=cn.worldPosition2ScreenPoint(this.points[0],this.manager.camera,this.manager.viewerCanvas),i=cn.worldPosition2ScreenPoint(e,this.manager.camera,this.manager.viewerCanvas).clone().sub(t).normalize().cross(new be(0,-1))<0,r=cn.worldPosition2ScreenPoint(e,this.manager.camera,this.manager.viewerCanvas);i||(this.textInput.style.left=r.x-n-this.padding/this.tolerance*2+"px"),this.textInput.style.width=`${Math.round(n)}px`}}};Un._registerDrawableClass(g5);var v5=class extends wi{constructor(e,t){super(e),this.type="PolylineMarkup",this.update(t)}draw(e,t){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=Cn.rgba2Color(this.lineColor),e.fillStyle=Cn.rgba2Color(this.fillColor);let n=this.points;e.beginPath(),n.forEach(((n,i)=>{let r=this.transToScreenCoord(n,t);0===i?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),e.stroke(),e.restore()}isPointInPath(e){let t=this.points,n=[];for(let i=0;i{let r=this.transToScreenCoord(n,t);0===i?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),e.closePath(),e.stroke(),e.restore()}isPointInPath(e){let t=this.getVertexes(),n=[];for(let i=0;ithis.transToScreenCoord(e,t)));e.moveTo(n.x,n.y),e.lineTo(r.x,r.y),e.moveTo(i.x,i.y),e.lineTo(a.x,a.y),e.closePath(),e.stroke(),e.restore()}isPointInPath(e){let[t,n,i,r]=this.getVertexes();return Qt.isPointOnLineSegments(e,[t,i,n,r],.1)}getClassType(){return"XMarkup"}};Un._registerDrawableClass(x5);var Vfe=new Ot,b5=new O,E5=new be,pht=new be(1,0),mht=new be(0,-1),_5=class extends Ol{constructor(e,t,n=""){super(e,t,n),this.type="CloudRectWithTextMarkup",this.textPosition=new O,this.textBounds=new Ot,this.text="CloudRectWithText",this.fontSize=12,this.handleClick=()=>{var e;null==(e=this.textInput)||e.blur()},this.handleInput=()=>{!this.textInput||!this.manager||"CHINESE_TYPING"===this.inputStatus||(this.text=this.textInput.value,this.calcInputPositionByText(this.text),this.inputStatus="CHAR_TYPING")},this.handleCompositionEnd=()=>{!this.textInput||!this.manager||"CHINESE_TYPING"!==this.inputStatus||(this.text=this.textInput.value,this.calcInputPositionByText(this.text),this.inputStatus="CHAR_TYPING")}}draw(e,t){this.drawCloudRect(e,t),(this.isEditing||this.text.length>0)&&this.drawLeaderLine(e,t),!this.isEditing&&this.text.length>0&&this.drawText(e,t,this.text)}drawCloudRect(e,t){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=Cn.rgba2Color(this.lineColor),e.fillStyle=Cn.rgba2Color(this.fillColor),e.beginPath();let n=this.getCloudPoints();n.push(n[0]);let i,r=[];for(let a=0;an.distanceTo(e)-n.distanceTo(t)));let i=this.controlPoints[0];e.save(),e.lineWidth=_5.LEADER_LINE_WIDTH,e.strokeStyle=Cn.rgba2Color(this.lineColor),e.beginPath(),e.moveTo(i.x,i.y),e.lineTo(n.x,n.y),e.closePath(),e.stroke(),e.restore()}drawText(e,t,n){let i=this.transToScreenCoord(this.points[0],t),r=this.transToScreenCoord(this.textPosition,t),a=E5.subVectors(r,i).normalize(),s=a.cross(pht)<0,o=a.cross(mht)<0,l=n.split("\n"),h=this.fontSize/this.tolerance,c=0;e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=Cn.rgba2Color(this.lineColor),e.fillStyle=Cn.rgba2Color(this.lineColor),e.textAlign="left",e.textBaseline="top",e.font=`${h}px Arial`;for(let v=0;vc&&(c=n)}let u=this.padding/this.tolerance,d=u+h/2,p=l.length*h+2*u,f=new be(o?r.x:r.x-c-2*u,s?r.y-d:r.y-p+(p-d));for(let v=0;ve.add(n))),this.textPosition.add(n);let[i,r]=this.points;return this.x=Math.min(i.x,r.x),this.y=Math.max(i.y,r.y),this.width=Math.abs(r.x-i.x),this.height=Math.abs(r.y-i.y),this}update(e){let[t,n]=e;return this.points=e,this.x=Math.min(t.x,n.x),this.y=Math.max(t.y,n.y),this.width=Math.abs(n.x-t.x),this.height=Math.abs(n.y-t.y),this.textPosition||(this.textPosition=new O),this.textPosition.set(Math.max(t.x,n.x),Math.max(t.y,n.y),0),this}getCloudPoints(){return[new O(this.x,this.y,0),new O(this.x+this.width,this.y,0),new O(this.x+this.width,this.y-this.height,0),new O(this.x,this.y-this.height,0)]}getBounds(){return Vfe.setFromPoints([...this.points,...this.vertexes||[]]),Vfe.union(this.textBounds)}getVertexes(){let e=this.getBounds(),t=e.min,n=e.getSize(b5);return[new O(t.x,t.y,0),new O(t.x+n.x,t.y,0),new O(t.x+n.x,t.y+n.y,0),new O(t.x,t.y+n.y,0)]}isLeaderTextSelected(e){return this.textBounds.containsPoint(e)}translateLeaderText(e,t){let n=new O(e,t,0);return this.textPosition.add(n),this}isPointInPath(e){let t=this.getCloudPoints(),n=[];for(let i=0;i[e.x,e.y])),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize,text:this.text,textPosition:[this.textPosition.x,this.textPosition.y],type:this.getClassType()}}getClassType(){return"CloudRectWithTextMarkup"}addInput(e,t,n){let i=this.padding/this.tolerance+this.fontSize/this.tolerance/2;super.addInput(e,t,n-i)}updateInputPosition(e,t){var n;if(!this.manager||!this.textInput)return;let i=t.clone().sub(e).normalize().cross(new be(0,-1))<0,r=this.textInput.value,a=(null==(n=this.manager.overlayRender)?void 0:n.measureTextLength(r,this.fontSize/this.tolerance+"px Arial"))||Ol.DEFAULT_INPUT_WIDTH,s=this.padding/this.tolerance+this.fontSize/this.tolerance/2;this.textInput.style.left=`${i?t.x:t.x-this.padding/this.tolerance*2-a}px`,this.textInput.style.top=t.y-s+"px",this.textPosition.copy(cn.screenPoint2worldPosition(t,this.manager.camera,this.manager.viewerCanvas))}calcInputPositionByText(e){var t;if(!this.textInput||!this.manager)return;let n=(null==(t=this.manager.overlayRender)?void 0:t.measureTextLength(e,this.fontSize/this.tolerance+"px Arial"))||0;if(n>Ol.DEFAULT_INPUT_WIDTH){let e=cn.worldPosition2ScreenPoint(this.points[0],this.manager.camera,this.manager.viewerCanvas),t=cn.worldPosition2ScreenPoint(this.textPosition,this.manager.camera,this.manager.viewerCanvas).clone().sub(e).normalize().cross(new be(0,-1))<0,i=cn.worldPosition2ScreenPoint(this.textPosition,this.manager.camera,this.manager.viewerCanvas);t||(this.textInput.style.left=i.x-n-this.padding/this.tolerance*2+"px"),this.textInput.style.width=`${Math.round(n)}px`}}},Bm=_5;Bm.LEADER_LINE_WIDTH=1,Un._registerDrawableClass(Bm);var tr={LEFT:1,RIGHT:2,MIDDLE:4},yt=Object.freeze({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768});function Rf(e){return e.isPerspectiveCamera}function Vu(e){return e.isOrthographicCamera}var ght=(e=>(e[e.NONE=-1]="NONE",e[e.ROTATE=0]="ROTATE",e[e.DOLLY=1]="DOLLY",e[e.PAN=2]="PAN",e[e.TOUCH_ROTATE=3]="TOUCH_ROTATE",e[e.TOUCH_DOLLY=4]="TOUCH_DOLLY",e))(ght||{}),vht=(e=>(e.LEFT="ArrowLeft",e.UP="ArrowUp",e.RIGHT="ArrowRight",e.BOTTOM="ArrowDown",e))(vht||{});function Zv(e){return{type:e}}var zu={movable:!1,startDistBetweenFingers:0,scale:1},Kv=2*Math.PI,zfe=1e-6,JA=class extends jo{constructor(e,t,n=!1){super(),this.enabled=!0,this.target=new O,this.enableZoom=!1,this.enablePan=!1,this.enableRotate=!0,this.state=-1,this.rotateSpeed=1,this.zoomSpeed=1,this.panSpeed=1,this.scale=1,this.minZoom=0,this.maxZoom=1/0,this.screenSpacePanning=!0,this.autoRotate=!0,this.autoRotateSpeed=2,this.enableDamping=!1,this.dampingFactor=.05,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minDistance=0,this.maxDistance=1/0,this.keyPanSpeed=7,this.minFov=50,this.maxFov=95,this.zoomChanged=!1,this.panOffset=new O,this.pointerPositions={},this.rotateStart=new be,this.rotateEnd=new be,this.rotateDelta=new be,this.dollyStart=new be,this.dollyEnd=new be,this.dollyDelta=new be,this.panStart=new be,this.panEnd=new be,this.panDelta=new be,this.pointers=[],this.spherical=new ff,this.sphericalDelta=new ff,this.update=function(e){let t=new O,n=new O,i=new dr;return function(){let r=e.quat,a=r.clone().invert(),s=e.object.position;t.copy(s).sub(e.target),t.applyQuaternion(r),e.spherical.setFromVector3(t),e.autoRotate&&-1===e.state&&(e.isVRMode?e.sphericalDelta.theta+=Kv/60/60*e.autoRotateSpeed:e.sphericalDelta.theta-=Kv/60/60*e.autoRotateSpeed),e.enableDamping?(e.spherical.theta+=e.sphericalDelta.theta*e.dampingFactor,e.spherical.phi+=e.sphericalDelta.phi*e.dampingFactor):(e.spherical.theta+=e.sphericalDelta.theta,e.spherical.phi+=e.sphericalDelta.phi);let o=e.minAzimuthAngle,l=e.maxAzimuthAngle;return isFinite(o)&&isFinite(l)&&(o<-Math.PI?o+=Kv:o>Math.PI&&(o-=Kv),l<-Math.PI?l+=Kv:l>Math.PI&&(l-=Kv),e.spherical.theta=o<=l?Math.max(o,Math.min(l,e.spherical.theta)):e.spherical.theta>(o+l)/2?Math.max(o,e.spherical.theta):Math.min(l,e.spherical.theta)),e.spherical.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,e.spherical.phi)),e.spherical.makeSafe(),e.spherical.radius*=e.scale,e.spherical.radius=Math.max(e.minDistance,Math.min(e.maxDistance,e.spherical.radius)),!0===e.enableDamping?e.target.addScaledVector(e.panOffset,e.dampingFactor):e.target.add(e.panOffset),t.setFromSpherical(e.spherical),t.applyQuaternion(a),s.copy(e.target).add(t),e.object.lookAt(e.target),!0===e.enableDamping?(e.sphericalDelta.theta*=1-e.dampingFactor,e.sphericalDelta.phi*=1-e.dampingFactor,e.panOffset.multiplyScalar(1-e.dampingFactor)):(e.sphericalDelta.set(0,0,0),e.panOffset.set(0,0,0)),e.scale=1,!!(e.zoomChanged||n.distanceToSquared(e.object.position)>zfe||8*(1-i.dot(e.object.quaternion))>zfe)&&(e.dispatchEvent(Zv("change")),n.copy(e.object.position),i.copy(e.object.quaternion),e.zoomChanged=!1,!0)}}(this),this.onContextMenu=function(e){return t=>{!1!==e.enabled&&t.preventDefault()}}(this),this.onPointerDown=function(e){return t=>{!1!==e.enabled&&(0===e.pointers.length&&(e.domElement.setPointerCapture(t.pointerId),e.domElement.addEventListener("pointermove",e.onPointerMove),e.domElement.addEventListener("pointerup",e.onPointerUp)),e.addPointer(t),"touch"===t.pointerType?e.onTouchStart(t):e.onMouseDown(t))}}(this),this.onPointerMove=function(e){return t=>{!1!==e.enabled&&("touch"===t.pointerType?e.onTouchMove(t):e.onMouseMove(t))}}(this),this.onPointerUp=function(e){return t=>{e.removePointer(t),0===e.pointers.length&&(e.domElement.releasePointerCapture(t.pointerId),e.domElement.removeEventListener("pointermove",e.onPointerMove),e.domElement.removeEventListener("pointerup",e.onPointerUp)),"touch"===t.pointerType&&e.handlerTouchEnd(t),e.dispatchEvent(Zv("end")),e.state=-1}}(this),this.onPointerCancel=function(e){return t=>{e.removePointer(t),e.handlerTouchEnd(t)}}(this),this.onMouseWheel=function(e){return t=>{!1===e.enabled||!1===e.enableZoom||-1!==e.state||(t.preventDefault(),t.stopPropagation(),e.dispatchEvent(Zv("start")),e.handleMouseWheel(t),e.dispatchEvent(Zv("end")))}}(this),this.pan=function(e){let t=new O;return function(n,i){let r=e.domElement;if(e.object instanceof ur){let a=e.object.position;t.copy(a).sub(e.target);let s=t.length();s*=Math.tan(e.object.fov/2*Math.PI/180),e.panLeft(2*n*s/r.clientHeight,e.object.matrix),e.panUp(2*i*s/r.clientHeight,e.object.matrix)}else console.warn("WARNING: VRControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1}}(this),this.panLeft=function(e){let t=new O;return function(n,i){t.setFromMatrixColumn(i,0),t.multiplyScalar(-n),e.panOffset.add(t)}}(this),this.panUp=function(e){let t=new O;return function(n,i){!0===e.screenSpacePanning?t.setFromMatrixColumn(i,1):(t.setFromMatrixColumn(i,0),t.crossVectors(e.object.up,t)),t.multiplyScalar(n),e.panOffset.add(t)}}(this),this.onKeyDown=e=>{!1===this.enabled||!1===this.enablePan||this.handleKeyDown(e)},this.object=e,this.domElement=t,this.isVRMode=n,this.quat=(new dr).setFromUnitVectors(this.object.up,new O(0,1,0)),this.domElement&&this.domElement.style&&(this.domElement.style.touchAction="none"),this.domElement.addEventListener("contextmenu",this.onContextMenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointercancel",this.onPointerCancel),this.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerCancel),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this.domElementKeyEvents&&this.domElementKeyEvents.removeEventListener("keydown",this.onKeyDown)}addPointer(e){this.pointers.push(e)}removePointer(e){delete this.pointerPositions[e.pointerId];for(let t=0;t0&&this.dollyOut(t),this.update()}handleMouseDownRotate(e){this.rotateStart.set(e.clientX,e.clientY)}handleMouseDownDolly(e){this.dollyStart.set(e.clientX,e.clientY)}handleMouseDownPan(e){this.panStart.set(e.clientX,e.clientY)}handleTouchStartRotate(){if(1===this.pointers.length)this.rotateStart.set(this.pointers[0].pageX,this.pointers[0].pageY);else{let e=.5*(this.pointers[0].pageX+this.pointers[1].pageX),t=.5*(this.pointers[0].pageY+this.pointers[1].pageY);this.rotateStart.set(e,t)}}handleTouchStartDolly(e){if(e.length<2)return;let t=e[0],n=e[1];zu.startDistBetweenFingers=this.getDist([t.pageX,t.pageY],[n.pageX,n.pageY]),zu.movable=!0,zu.scale=1}updateRotate(){let e=this.isVRMode,t=this.sphericalDelta;this.rotateDelta.subVectors(this.rotateEnd,this.rotateStart).multiplyScalar(this.rotateSpeed);let n=this.domElement;e?(t.theta+=2*Math.PI*this.rotateDelta.x/n.clientHeight,t.phi+=2*Math.PI*this.rotateDelta.y/n.clientHeight):(t.theta-=2*Math.PI*this.rotateDelta.x/n.clientHeight,t.phi-=2*Math.PI*this.rotateDelta.y/n.clientHeight),this.rotateStart.copy(this.rotateEnd)}handleMouseMoveRotate(e){this.rotateEnd.set(e.clientX,e.clientY),this.updateRotate()}dollyOut(e){this.object instanceof ur?this.scale/=e:(console.warn("WARNING: VRControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}dollyIn(e){this.object instanceof ur?this.scale*=e:(console.warn("WARNING: VRControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}handleMouseMoveDolly(e){this.dollyEnd.set(e.clientX,e.clientY),this.dollyDelta.subVectors(this.dollyEnd,this.dollyStart);let t=Math.pow(.95,this.zoomSpeed);this.dollyDelta.y>0?this.dollyOut(t):this.dollyIn(t),this.dollyStart.copy(this.dollyEnd)}handleMouseMovePan(e){this.panEnd.set(e.clientX,e.clientY),this.panDelta.subVectors(this.panEnd,this.panStart).multiplyScalar(this.panSpeed),this.pan(this.panDelta.x,this.panDelta.y),this.panStart.copy(this.panEnd)}getSecondPointerPosition(e){let t=e.pointerId===this.pointers[0].pointerId?this.pointers[1]:this.pointers[0];return this.pointerPositions[t.pointerId]}handleTouchMoveRotate(e){if(1==this.pointers.length)this.rotateEnd.set(e.pageX,e.pageY);else{let t=this.getSecondPointerPosition(e),n=.5*(e.pageX+t.x),i=.5*(e.pageY+t.y);this.rotateEnd.set(n,i)}this.updateRotate()}updateFov(e){var t;let n=this.object;if(!(n&&n instanceof ur))return void console.warn("WARNING: VRControls.js encountered an unknown camera type - updateFov disabled.");let i=this.minFov,r=this.maxFov,a=e=>{let t=n.fov+e;t=Math.min(t,r),t=Math.max(t,i),n.fov!==t&&(n.fov=t,n.updateProjectionMatrix(),this.dispatchEvent({type:"change"}))},s=e/20;for(let o=0;o<20;++o)setTimeout((()=>a(s)),5*o);this.autoRotate&&(null==(t=this.controlsHelper)||t.delayAutoRotate())}handleTouchMoveDolly(e){if(!zu.movable||this.pointers.length<2)return;let t=this.getSecondPointerPosition(e),n=[e.pageX,e.pageY],i=[t.x,t.y],r=zu.startDistBetweenFingers,a=this.getDist(n,i);if(!r||!a||Math.abs(r-a)<10)return;let s=a/r;console.log(s),s=Math.min(s,3),s=Math.max(s,1/3);let o=s-zu.scale;if(Math.abs(o)<.05)return;let l=0;l=o>0?10*-o:10*(zu.scale/s-1),this.updateFov(l),zu.scale=s}handleKeyDown(e){let t=!1;switch(e.code){case"ArrowUp":this.pan(0,this.keyPanSpeed),t=!0;break;case"ArrowDown":this.pan(0,-this.keyPanSpeed),t=!0;break;case"ArrowLeft":this.pan(this.keyPanSpeed,0),t=!0;break;case"ArrowRight":this.pan(-this.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),this.update())}listenToKeyEvents(e){e.addEventListener("keydown",this.onKeyDown),this.domElementKeyEvents=e}},Jo=class extends us{constructor(e){super(),this.enabled=!0,this.keyboardEnabled=!0,this.mouseDownPositionX=0,this.mouseDownPositionY=0,this.lastLeftPointerUpTime=0,this.pointers=[],this.handleClick=e=>{if(!this.enabled)return;let t=this.getBaseEvent(e);this.dispatchEvent("click",t)},this.handlePointerDown=e=>{if(!this.enabled)return;this.stop(e);let t=this.getBaseEvent(e);this.isDoubleClick(t)?(this.lastLeftPointerUpTime=0,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1,this.dispatchEvent("dblclick",t)):(this.mouseDownPositionX=t.x,this.mouseDownPositionY=t.y),this.dispatchEvent("pointerdown",t),"touch"===e.pointerType?(this.pointers.push(t),t.pointers=this.pointers,this.dispatchEvent("touchstart",t)):this.dispatchEvent("mousedown",t)},this.handlePointerMove=e=>{if(!this.enabled)return;this.stop(e);let t=this.getBaseEvent(e);this.isCloseToLastPosition(t)||(this.dispatchEvent("pointermove",t),"touch"===e.pointerType?(this.updatePointers(t),t.pointers=this.pointers,this.dispatchEvent("touchmove",t)):this.dispatchEvent("mousemove",t))},this.handlePointerUp=e=>{if(!this.enabled)return;this.stop(e);let t=this.getBaseEvent(e);0===t.button&&(this.lastLeftPointerUpTime=t.timestamp),this.dispatchEvent("pointerup",t),"touch"===e.pointerType?(this.removePointers(t),t.pointers=this.pointers,this.dispatchEvent("touchend",t)):this.dispatchEvent("mouseup",t)},this.handlePointerCancel=e=>{this.enabled&&(this.stop(e),this.dispatchEvent("pointercancel",this.getBaseEvent(e)))},this.handleMouseWheel=e=>{this.enabled&&(this.stop(e),this.dispatchEvent("wheel",this.getBaseEvent(e)))},this.handleContextMenu=e=>{if(this.enabled)return this.stop(e),this.dispatchEvent("contextmenu",this.getBaseEvent(e)),!1},this.handlePointerEnter=e=>{this.enabled&&(this.stop(e),this.dispatchEvent("pointerenter",this.getBaseEvent(e)))},this.handlePointerLeave=e=>{this.enabled&&(this.stop(e),this.dispatchEvent("pointerleave",this.getBaseEvent(e)))},this.handleResize=e=>{this.enabled&&(this.stop(e),this.dispatchEvent("resize",this.getBaseEvent(e)))},this.handleKeydown=e=>{!this.enabled||!this.keyboardEnabled||this.dispatchEvent("keydown",this.getBaseEvent(e))},this.handleKeyup=e=>{!this.enabled||!this.keyboardEnabled||this.dispatchEvent("keyup",this.getBaseEvent(e))},this.style={},this.element=e,this.bindEvents()}getEnabled(){return this.enabled}setEnabled(e){this.enabled=e}getkKeyboardEnabled(){return this.keyboardEnabled}setkKeyboardEnabled(e){this.keyboardEnabled=e}setCursor(e){this.element.style&&(this.element.style.cursor=e||"default")}bindEvents(){this.element.style.touchAction="none",this.element.style.userSelect="none",this.element.style.webkitUserSelect="none",this.element.addEventListener("click",this.handleClick),this.element.addEventListener("pointerdown",this.handlePointerDown),this.element.addEventListener("pointermove",this.handlePointerMove),this.element.addEventListener("pointerup",this.handlePointerUp),this.element.addEventListener("pointercancel",this.handlePointerCancel),this.element.addEventListener("pointerenter",this.handlePointerEnter),this.element.addEventListener("pointerleave",this.handlePointerLeave),this.element.addEventListener("contextmenu",this.handleContextMenu),this.element.addEventListener("wheel",this.handleMouseWheel),window.addEventListener("resize",this.handleResize),window.addEventListener("keydown",this.handleKeydown),window.addEventListener("keyup",this.handleKeyup)}unBindEvents(){this.element.removeEventListener("pointerdown",this.handlePointerDown),this.element.removeEventListener("pointermove",this.handlePointerMove),this.element.removeEventListener("pointerup",this.handlePointerUp),this.element.removeEventListener("pointerenter",this.handlePointerEnter),this.element.removeEventListener("pointerleave",this.handlePointerLeave),this.element.removeEventListener("contextmenu",this.handleContextMenu),this.element.removeEventListener("wheel",this.handleMouseWheel),window.removeEventListener("resize",this.handleResize),window.removeEventListener("keydown",this.handleKeydown),window.removeEventListener("keyup",this.handleKeyup),this.element.style.touchAction="",this.element.style.userSelect="",this.element.style.webkitUserSelect=""}getBaseEvent(e){let t={x:0,y:0,pageX:0,pageY:0,clientX:0,clientY:0,deltaX:0,deltaY:0,movementX:0,movementY:0,deltaMode:0,pointerId:0,timestamp:0,buttons:0,pointerType:"mouse",altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,originalEvent:e};if(t.timestamp=e.timeStamp,QA(e,"clientX"))if(t.altKey=e.altKey,t.ctrlKey=e.ctrlKey,t.shiftKey=e.shiftKey,t.clientX=e.clientX,t.clientY=e.clientY,t.button=e.button,QA(e,"pointerId")){t.pointerType=e.pointerType,t.buttons=e.buttons,t.pageX=e.pageX,t.pageY=e.pageY,t.pointerId=e.pointerId;let n=cn.getScreenPointByEvent(e,this.element);t.x=n.x,t.y=n.y,t.movementX=e.movementX,t.movementY=e.movementY}else QA(e,"deltaX")&&(t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY);else QA(e,"code")&&(t.altKey=e.altKey,t.ctrlKey=e.ctrlKey,t.shiftKey=e.shiftKey,t.metaKey=e.metaKey,t.code=e.code);return t}stop(e){e.preventDefault()}updatePointers(e){for(let t=0;t0==p>c&&(p=c,n.value=(p-c)/a),p}function S5(e,t,n,i,r=1/0,a,s){let o=2/(i=Math.max(1e-4,i)),l=o*a,h=1/(1+l+.48*l*l+.235*l*l*l),c=t.x,u=t.y,d=t.z,p=e.x-c,f=e.y-u,m=e.z-d,g=c,v=u,y=d,x=r*i,b=p*p+f*f+m*m;if(b>x*x){let e=Math.sqrt(b);p=p/e*x,f=f/e*x,m=m/e*x}c=e.x-p,u=e.y-f,d=e.z-m;let _=(n.x+o*p)*a,w=(n.y+o*f)*a,S=(n.z+o*m)*a;n.x=(n.x-o*_)*h,n.y=(n.y-o*w)*h,n.z=(n.z-o*S)*h,s.x=c+(p+_)*h,s.y=u+(f+w)*h,s.z=d+(m+S)*h;let M=g-e.x,T=v-e.y,E=y-e.z;return M*(s.x-g)+T*(s.y-v)+E*(s.z-y)>0&&(s.x=g,s.y=v,s.z=y,n.x=(s.x-g)/a,n.y=(s.y-v)/a,n.z=(s.z-y)/a),s}function eC(e,t){t.set(0,0),e.forEach((e=>{t.x+=e.clientX,t.y+=e.clientY})),t.x/=e.length,t.y/=e.length}function tC(e,t){return!!Vu(e)&&(console.warn(`${t} is not supported in OrthographicCamera`),!0)}var nC=class{constructor(){this._listeners={}}addEventListener(e,t){let n=this._listeners;void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(t)&&n[e].push(t)}hasEventListener(e,t){let n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(t)}removeEventListener(e,t){let n=this._listeners[e];if(void 0!==n){let e=n.indexOf(t);-1!==e&&n.splice(e,1)}}removeAllEventListeners(e){e?Array.isArray(this._listeners[e])&&(this._listeners[e].length=0):this._listeners={}}dispatchEvent(e){let t=this._listeners[e.type];if(void 0!==t){e.target=this;let n=t.slice(0);for(let t=0,i=n.length;t{},this._enabled=!0,this._state=yt.NONE,this._viewport=null,this._dollyControlAmount=0,this._hasRested=!0,this._boundaryEnclosesCamera=!1,this._needsUpdate=!0,this._updatedLastTime=!1,this._elementRect=Dn.isBrowser?new DOMRect:{x:0,y:0,width:0,height:0,left:0,right:0,top:0,bottom:0},this._activePointers=[],this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._isUserControllingOffset=!1,this._isUserControllingZoom=!1,this._thetaVelocity={value:0},this._phiVelocity={value:0},this._radiusVelocity={value:0},this._targetVelocity=new nr.Vector3,this._focalOffsetVelocity=new nr.Vector3,this._zoomVelocity={value:0},this._truckInternal=(e,t,n)=>{if(Rf(this._camera)){let i=ar.copy(this._camera.position).sub(this._target),r=this._camera.getEffectiveFOV()*Jv,a=i.length()*Math.tan(.5*r),s=this.truckSpeed*e*a/this._elementRect.height,o=this.truckSpeed*t*a/this._elementRect.height;this.verticalDragToForward?(n?this.setFocalOffset(this._focalOffsetEnd.x+s,this._focalOffsetEnd.y,this._focalOffsetEnd.z,!0):this.truck(s,0,!0),this.forward(-o,!0)):n?this.setFocalOffset(this._focalOffsetEnd.x+s,this._focalOffsetEnd.y+o,this._focalOffsetEnd.z,!0):this.truck(s,o,!0)}else if(Vu(this._camera)){let i=this._camera,r=e*(i.right-i.left)/i.zoom/this._elementRect.width,a=t*(i.top-i.bottom)/i.zoom/this._elementRect.height;n?this.setFocalOffset(this._focalOffsetEnd.x+r,this._focalOffsetEnd.y+a,this._focalOffsetEnd.z,!0):this.truck(r,a,!0)}},this._rotateInternal=(e,t)=>{let n=Um*this.azimuthRotateSpeed*e/this._elementRect.height,i=Um*this.polarRotateSpeed*t/this._elementRect.height;this.rotate(n,i,!0)},this._dollyInternal=(e,t,n)=>{let i=Math.pow(.95,-e*this.dollySpeed),r=this._sphericalEnd.radius*i,a=this._sphericalEnd.radius,s=a*(e>=0?-1:1);this.dollyTo(r),this.infinityDolly&&(r{let i=Math.pow(.95,e*this.dollySpeed),r=this._zoomEnd;this.zoomTo(this._zoom*i),this.dollyToCursor&&(this._dollyControlAmount+=this._zoomEnd-r,this._dollyControlCoord.set(t,n))},void 0===nr&&console.error("camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."),this._camera=e,this._yAxisUpSpace=(new nr.Quaternion).setFromUnitVectors(this._camera.up,iC),this._yAxisUpSpaceInverse=this._yAxisUpSpace.clone().invert(),this._state=yt.NONE,this._target=new nr.Vector3,this._targetEnd=this._target.clone(),this._focalOffset=new nr.Vector3,this._focalOffsetEnd=this._focalOffset.clone(),this._spherical=(new nr.Spherical).setFromVector3(ar.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)),this._sphericalEnd=this._spherical.clone(),this._zoom=this._camera.zoom,this._zoomEnd=this._zoom,this._nearPlaneCorners=[new nr.Vector3,new nr.Vector3,new nr.Vector3,new nr.Vector3],this._updateNearPlaneCorners(),this._boundary=new nr.Box3(new nr.Vector3(-1/0,-1/0,-1/0),new nr.Vector3(1/0,1/0,1/0)),this._target0=this._target.clone(),this._position0=this._camera.position.clone(),this._zoom0=this._zoom,this._focalOffset0=this._focalOffset.clone(),this._dollyControlAmount=0,this._dollyControlCoord=new nr.Vector2,this.mouseButtons={left:yt.ROTATE,middle:yt.DOLLY,right:yt.TRUCK,wheel:Rf(this._camera)?yt.DOLLY:Vu(this._camera)?yt.ZOOM:yt.NONE},this.touches={one:yt.TOUCH_ROTATE,two:Rf(this._camera)?yt.TOUCH_DOLLY_TRUCK:Vu(this._camera)?yt.TOUCH_ZOOM_TRUCK:yt.NONE,three:yt.TOUCH_TRUCK};let n=new nr.Vector2,i=new nr.Vector2,r=new nr.Vector2,a=e=>{if(!this._enabled||!this._domElement)return;let t="mouse"!==e.pointerType?null:(e.buttons&tr.LEFT)===tr.LEFT?tr.LEFT:(e.buttons&tr.MIDDLE)===tr.MIDDLE?tr.MIDDLE:(e.buttons&tr.RIGHT)===tr.RIGHT?tr.RIGHT:null;if(null!==t){let e=this._findPointerByMouseButton(t);e&&this._activePointers.splice(this._activePointers.indexOf(e),1)}let n={pointerId:e.pointerId,clientX:e.clientX,clientY:e.clientY,deltaX:0,deltaY:0,mouseButton:t};this._activePointers.push(n),this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("pointerup",h),this._domElement.addEventListener("pointermove",o),this._domElement.addEventListener("pointerup",h),f(e)},s=e=>{if(!this._enabled||!this._domElement)return;let t=(e.buttons&tr.LEFT)===tr.LEFT?tr.LEFT:(e.buttons&tr.MIDDLE)===tr.MIDDLE?tr.MIDDLE:(e.buttons&tr.RIGHT)===tr.RIGHT?tr.RIGHT:null;if(null!==t){let e=this._findPointerByMouseButton(t);e&&this._activePointers.splice(this._activePointers.indexOf(e),1)}let n={pointerId:0,clientX:e.clientX,clientY:e.clientY,deltaX:0,deltaY:0,mouseButton:(e.buttons&tr.LEFT)===tr.LEFT?tr.LEFT:(e.buttons&tr.MIDDLE)===tr.LEFT?tr.MIDDLE:(e.buttons&tr.RIGHT)===tr.LEFT?tr.RIGHT:null};this._activePointers.push(n),this._domElement.removeEventListener("mousemove",l),this._domElement.removeEventListener("mouseup",c),this._domElement.addEventListener("mousemove",l),this._domElement.addEventListener("mouseup",c),f(e)},o=e=>{let t=e.pointerId,n=this._findPointerById(t);if(n){if(n.clientX=e.clientX,n.clientY=e.clientY,n.deltaX=e.movementX,n.deltaY=e.movementY,"touch"===e.pointerType)switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three}else this._state=0,(e.buttons&tr.LEFT)===tr.LEFT&&(this._state=this._state|this.mouseButtons.left),(e.buttons&tr.MIDDLE)===tr.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(e.buttons&tr.RIGHT)===tr.RIGHT&&(this._state=this._state|this.mouseButtons.right);m()}},l=e=>{let t=this._findPointerById(0);t&&(t.clientX=e.clientX,t.clientY=e.clientY,t.deltaX=e.movementX,t.deltaY=e.movementY,this._state=0,(e.buttons&tr.LEFT)===tr.LEFT&&(this._state=this._state|this.mouseButtons.left),(e.buttons&tr.MIDDLE)===tr.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(e.buttons&tr.RIGHT)===tr.RIGHT&&(this._state=this._state|this.mouseButtons.right),m())},h=e=>{let t=e.pointerId,n=this._findPointerById(t);if(n&&this._activePointers.splice(this._activePointers.indexOf(n),1),"touch"===e.pointerType)switch(this._activePointers.length){case 0:this._state=yt.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three}else this._state=yt.NONE;g()},c=()=>{let e=this._findPointerById(0);e&&this._activePointers.splice(this._activePointers.indexOf(e),1),this._state=yt.NONE,g()},u=-1,d=e=>{if(!this._enabled||this.mouseButtons.wheel===yt.NONE)return;if(this.dollyToCursor||this.mouseButtons.wheel===yt.ROTATE||this.mouseButtons.wheel===yt.TRUCK){let e=performance.now();u-e<1e3&&this._getClientRect(this._elementRect),u=e}let t=yht?-1:-3,n=1===e.deltaMode?e.deltaY/t:e.deltaY/(10*t),i=this.dollyToCursor?(e.clientX-this._elementRect.x)/this._elementRect.width*2-1:0,r=this.dollyToCursor?(e.clientY-this._elementRect.y)/this._elementRect.height*-2+1:0;switch(this.mouseButtons.wheel){case yt.ROTATE:this._rotateInternal(e.deltaX,e.deltaY),this._isUserControllingRotate=!0;break;case yt.TRUCK:this._truckInternal(e.deltaX,e.deltaY,!1),this._isUserControllingTruck=!0;break;case yt.OFFSET:this._truckInternal(e.deltaX,e.deltaY,!0),this._isUserControllingOffset=!0;break;case yt.DOLLY:this._dollyInternal(-n,i,r),this._isUserControllingDolly=!0;break;case yt.ZOOM:this._zoomInternal(-n,i,r),this._isUserControllingZoom=!0}this.dispatchEvent({type:"control"})},p=e=>{if(this._domElement&&this._enabled&&this.mouseButtons.right===Af.ACTION.NONE){let t=e instanceof PointerEvent?e.pointerId:(MouseEvent,0),n=this._findPointerById(t);return n&&this._activePointers.splice(this._activePointers.indexOf(n),1),this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("pointerup",h),this._domElement.removeEventListener("mousemove",l),void this._domElement.removeEventListener("mouseup",c)}},f=e=>{if(this._enabled){if(eC(this._activePointers,bo),this._getClientRect(this._elementRect),n.copy(bo),i.copy(bo),this._activePointers.length>=2){let e=bo.x-this._activePointers[1].clientX,t=bo.y-this._activePointers[1].clientY,n=Math.sqrt(e*e+t*t);r.set(0,n);let a=.5*(this._activePointers[0].clientX+this._activePointers[1].clientX),s=.5*(this._activePointers[0].clientY+this._activePointers[1].clientY);i.set(a,s)}if("pointerType"in e&&"touch"===e.pointerType)switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three}else this._state=0,(e.buttons&tr.LEFT)===tr.LEFT&&(this._state=this._state|this.mouseButtons.left),(e.buttons&tr.MIDDLE)===tr.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(e.buttons&tr.RIGHT)===tr.RIGHT&&(this._state=this._state|this.mouseButtons.right);((this._state&yt.ROTATE)===yt.ROTATE||(this._state&yt.TOUCH_ROTATE)===yt.TOUCH_ROTATE||(this._state&yt.TOUCH_DOLLY_ROTATE)===yt.TOUCH_DOLLY_ROTATE||(this._state&yt.TOUCH_ZOOM_ROTATE)===yt.TOUCH_ZOOM_ROTATE)&&(this._sphericalEnd.theta=this._spherical.theta,this._sphericalEnd.phi=this._spherical.phi,this._thetaVelocity.value=0,this._phiVelocity.value=0),((this._state&yt.TRUCK)===yt.TRUCK||(this._state&yt.TOUCH_TRUCK)===yt.TOUCH_TRUCK||(this._state&yt.TOUCH_DOLLY_TRUCK)===yt.TOUCH_DOLLY_TRUCK||(this._state&yt.TOUCH_ZOOM_TRUCK)===yt.TOUCH_ZOOM_TRUCK)&&(this._targetEnd.copy(this._target),this._targetVelocity.set(0,0,0)),((this._state&yt.DOLLY)===yt.DOLLY||(this._state&yt.TOUCH_DOLLY)===yt.TOUCH_DOLLY||(this._state&yt.TOUCH_DOLLY_TRUCK)===yt.TOUCH_DOLLY_TRUCK||(this._state&yt.TOUCH_DOLLY_OFFSET)===yt.TOUCH_DOLLY_OFFSET||(this._state&yt.TOUCH_DOLLY_ROTATE)===yt.TOUCH_DOLLY_ROTATE)&&(this._sphericalEnd.radius=this._spherical.radius,this._radiusVelocity.value=0),((this._state&yt.ZOOM)===yt.ZOOM||(this._state&yt.TOUCH_ZOOM)===yt.TOUCH_ZOOM||(this._state&yt.TOUCH_ZOOM_TRUCK)===yt.TOUCH_ZOOM_TRUCK||(this._state&yt.TOUCH_ZOOM_OFFSET)===yt.TOUCH_ZOOM_OFFSET||(this._state&yt.TOUCH_ZOOM_ROTATE)===yt.TOUCH_ZOOM_ROTATE)&&(this._zoomEnd=this._zoom,this._zoomVelocity.value=0),((this._state&yt.OFFSET)===yt.OFFSET||(this._state&yt.TOUCH_OFFSET)===yt.TOUCH_OFFSET||(this._state&yt.TOUCH_DOLLY_OFFSET)===yt.TOUCH_DOLLY_OFFSET||(this._state&yt.TOUCH_ZOOM_OFFSET)===yt.TOUCH_ZOOM_OFFSET)&&(this._focalOffsetEnd.copy(this._focalOffset),this._focalOffsetVelocity.set(0,0,0)),this.dispatchEvent({type:"controlstart"})}},m=()=>{if(!this._enabled)return;eC(this._activePointers,bo);let e=!!Dn.isBrowser&&this._domElement&&document.pointerLockElement===this._domElement,t=e?-this._activePointers[0].deltaX:i.x-bo.x,a=e?-this._activePointers[0].deltaY:i.y-bo.y;if(i.copy(bo),((this._state&yt.ROTATE)===yt.ROTATE||(this._state&yt.TOUCH_ROTATE)===yt.TOUCH_ROTATE||(this._state&yt.TOUCH_DOLLY_ROTATE)===yt.TOUCH_DOLLY_ROTATE||(this._state&yt.TOUCH_ZOOM_ROTATE)===yt.TOUCH_ZOOM_ROTATE)&&(this._rotateInternal(t,a),this._isUserControllingRotate=!0),(this._state&yt.DOLLY)===yt.DOLLY||(this._state&yt.ZOOM)===yt.ZOOM){let e=this.dollyToCursor?(n.x-this._elementRect.x)/this._elementRect.width*2-1:0,t=this.dollyToCursor?(n.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&yt.DOLLY)===yt.DOLLY?(this._dollyInternal(a*rC,e,t),this._isUserControllingDolly=!0):(this._zoomInternal(a*rC,e,t),this._isUserControllingZoom=!0)}if((this._state&yt.TOUCH_DOLLY)===yt.TOUCH_DOLLY||(this._state&yt.TOUCH_ZOOM)===yt.TOUCH_ZOOM||(this._state&yt.TOUCH_DOLLY_TRUCK)===yt.TOUCH_DOLLY_TRUCK||(this._state&yt.TOUCH_ZOOM_TRUCK)===yt.TOUCH_ZOOM_TRUCK||(this._state&yt.TOUCH_DOLLY_OFFSET)===yt.TOUCH_DOLLY_OFFSET||(this._state&yt.TOUCH_ZOOM_OFFSET)===yt.TOUCH_ZOOM_OFFSET||(this._state&yt.TOUCH_DOLLY_ROTATE)===yt.TOUCH_DOLLY_ROTATE||(this._state&yt.TOUCH_ZOOM_ROTATE)===yt.TOUCH_ZOOM_ROTATE){let e=bo.x-this._activePointers[1].clientX,t=bo.y-this._activePointers[1].clientY,n=Math.sqrt(e*e+t*t),a=r.y-n;r.set(0,n);let s=this.dollyToCursor?(i.x-this._elementRect.x)/this._elementRect.width*2-1:0,o=this.dollyToCursor?(i.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&yt.TOUCH_DOLLY)===yt.TOUCH_DOLLY||(this._state&yt.TOUCH_DOLLY_ROTATE)===yt.TOUCH_DOLLY_ROTATE||(this._state&yt.TOUCH_DOLLY_TRUCK)===yt.TOUCH_DOLLY_TRUCK||(this._state&yt.TOUCH_DOLLY_OFFSET)===yt.TOUCH_DOLLY_OFFSET?(this._dollyInternal(a*rC,s,o),this._isUserControllingDolly=!0):(this._zoomInternal(a*rC,s,o),this._isUserControllingZoom=!0)}((this._state&yt.TRUCK)===yt.TRUCK||(this._state&yt.TOUCH_TRUCK)===yt.TOUCH_TRUCK||(this._state&yt.TOUCH_DOLLY_TRUCK)===yt.TOUCH_DOLLY_TRUCK||(this._state&yt.TOUCH_ZOOM_TRUCK)===yt.TOUCH_ZOOM_TRUCK)&&(this._truckInternal(t,a,!1),this._isUserControllingTruck=!0),((this._state&yt.OFFSET)===yt.OFFSET||(this._state&yt.TOUCH_OFFSET)===yt.TOUCH_OFFSET||(this._state&yt.TOUCH_DOLLY_OFFSET)===yt.TOUCH_DOLLY_OFFSET||(this._state&yt.TOUCH_ZOOM_OFFSET)===yt.TOUCH_ZOOM_OFFSET)&&(this._truckInternal(t,a,!0),this._isUserControllingOffset=!0),this.dispatchEvent({type:"control"})},g=()=>{eC(this._activePointers,bo),i.copy(bo),0===this._activePointers.length&&this._domElement&&(this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("mousemove",l),this._domElement.removeEventListener("pointerup",h),this._domElement.removeEventListener("mouseup",c),this.dispatchEvent({type:"controlend"}))};this._addAllEventListeners=e=>{this._domElement=e,this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none",this._domElement.addEventListener("pointerdown",a),xht&&this._domElement.addEventListener("mousedown",s),this._domElement.addEventListener("pointercancel",h),this._domElement.addEventListener("wheel",d),this._domElement.addEventListener("contextmenu",p)},this._removeAllEventListeners=()=>{this._domElement&&(this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect="",this._domElement.removeEventListener("pointerdown",a),this._domElement.removeEventListener("mousedown",s),this._domElement.removeEventListener("pointercancel",h),this._domElement.removeEventListener("wheel",d),this._domElement.removeEventListener("contextmenu",p),this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("mousemove",l),this._domElement.removeEventListener("pointerup",h),this._domElement.removeEventListener("mouseup",c))},this.cancel=()=>{this._state!==yt.NONE&&(this._state=yt.NONE,this._activePointers.length=0,g())},t&&this.connect(t),this.update(0)}static install(e){nr=e.THREE,Gfe=Object.freeze(new nr.Vector3(0,0,0)),iC=Object.freeze(new nr.Vector3(0,1,0)),M5=Object.freeze(new nr.Vector3(0,0,1)),bo=new nr.Vector2,ar=new nr.Vector3,bi=new nr.Vector3,ty=new nr.Vector3,Gu=new nr.Vector3,qu=new nr.Vector3,Vm=new nr.Vector3,qfe=new nr.Vector3,Wfe=new nr.Vector3,Ic=new nr.Spherical,cE=new nr.Spherical,ny=new nr.Box3,jfe=new nr.Box3,R5=new nr.Sphere,Xfe=new nr.Quaternion,A5=new nr.Quaternion,C5=new nr.Matrix4,sC=new nr.Raycaster}static get ACTION(){return yt}get camera(){return this._camera}set camera(e){this._camera=e,this.updateCameraUp(),this._camera.updateProjectionMatrix(),this._updateNearPlaneCorners(),this._needsUpdate=!0}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._domElement&&(e?(this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none"):(this.cancel(),this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect=""))}get active(){return!this._hasRested}get currentAction(){return this._state}get distance(){return this._spherical.radius}set distance(e){this._spherical.radius===e&&this._sphericalEnd.radius===e||(this._spherical.radius=e,this._sphericalEnd.radius=e,this._needsUpdate=!0)}get azimuthAngle(){return this._spherical.theta}set azimuthAngle(e){this._spherical.theta===e&&this._sphericalEnd.theta===e||(this._spherical.theta=e,this._sphericalEnd.theta=e,this._needsUpdate=!0)}get polarAngle(){return this._spherical.phi}set polarAngle(e){this._spherical.phi===e&&this._sphericalEnd.phi===e||(this._spherical.phi=e,this._sphericalEnd.phi=e,this._needsUpdate=!0)}get boundaryEnclosesCamera(){return this._boundaryEnclosesCamera}set boundaryEnclosesCamera(e){this._boundaryEnclosesCamera=e,this._needsUpdate=!0}addEventListener(e,t){super.addEventListener(e,t)}removeEventListener(e,t){super.removeEventListener(e,t)}rotate(e,t,n=!1){return this.rotateTo(this._sphericalEnd.theta+e,this._sphericalEnd.phi+t,n)}rotateAzimuthTo(e,t=!1){return this.rotateTo(e,this._sphericalEnd.phi,t)}rotatePolarTo(e,t=!1){return this.rotateTo(this._sphericalEnd.theta,e,t)}rotateTo(e,t,n=!1){this._isUserControllingRotate=!1;let i=Hm(e,this.minAzimuthAngle,this.maxAzimuthAngle),r=Hm(t,this.minPolarAngle,this.maxPolarAngle);this._sphericalEnd.theta=i,this._sphericalEnd.phi=r,this._sphericalEnd.makeSafe(),this._needsUpdate=!0,n||(this._spherical.theta=this._sphericalEnd.theta,this._spherical.phi=this._sphericalEnd.phi);let a=!n||Hi(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&Hi(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold);return this._createOnRestPromise(a)}dolly(e,t=!1){return this.dollyTo(this._sphericalEnd.radius-e,t)}dollyTo(e,t=!1){this._isUserControllingDolly=!1;let n=this._sphericalEnd.radius,i=Hm(e,this.minDistance,this.maxDistance);if(this.colliderMeshes.length>=1){let e=this._collisionTest(),t=Hi(e,this._spherical.radius);if(!(n>i)&&t)return Promise.resolve();this._sphericalEnd.radius=Math.min(i,e)}else this._sphericalEnd.radius=i;this._needsUpdate=!0,t||(this._spherical.radius=this._sphericalEnd.radius);let r=!t||Hi(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(r)}zoom(e,t=!1){return this.zoomTo(this._zoomEnd+e,t)}zoomTo(e,t=!1){this._isUserControllingZoom=!1,this._zoomEnd=Hm(e,this.minZoom,this.maxZoom),this._needsUpdate=!0,t||(this._zoom=this._zoomEnd);let n=!t||Hi(this._zoom,this._zoomEnd,this.restThreshold);return this._createOnRestPromise(n)}pan(e,t,n=!1){return console.warn("`pan` has been renamed to `truck`"),this.truck(e,t,n)}truck(e,t,n=!1){this._camera.updateMatrix(),Gu.setFromMatrixColumn(this._camera.matrix,0),qu.setFromMatrixColumn(this._camera.matrix,1),Gu.multiplyScalar(e),qu.multiplyScalar(-t);let i=ar.copy(Gu).add(qu),r=bi.copy(this._targetEnd).add(i);return this.moveTo(r.x,r.y,r.z,n)}forward(e,t=!1){ar.setFromMatrixColumn(this._camera.matrix,0),ar.crossVectors(this._camera.up,ar),ar.multiplyScalar(e);let n=bi.copy(this._targetEnd).add(ar);return this.moveTo(n.x,n.y,n.z,t)}elevate(e,t=!1){return ar.copy(this._camera.up).multiplyScalar(e),this.moveTo(this._targetEnd.x+ar.x,this._targetEnd.y+ar.y,this._targetEnd.z+ar.z,t)}moveTo(e,t,n,i=!1){this._isUserControllingTruck=!1;let r=ar.set(e,t,n).sub(this._targetEnd);this._encloseToBoundary(this._targetEnd,r,this.boundaryFriction),this._needsUpdate=!0,i||this._target.copy(this._targetEnd);let a=!i||Hi(this._target.x,this._targetEnd.x,this.restThreshold)&&Hi(this._target.y,this._targetEnd.y,this.restThreshold)&&Hi(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(a)}lookInDirectionOf(e,t,n,i=!1){let r=ar.set(e,t,n).sub(this._targetEnd).normalize().multiplyScalar(-this._sphericalEnd.radius);return this.setPosition(r.x,r.y,r.z,i)}fitToBox(e,t,{cover:n=!1,paddingLeft:i=0,paddingRight:r=0,paddingBottom:a=0,paddingTop:s=0}={}){let o=[],l=e.isBox3?ny.copy(e):ny.setFromObject(e);l.isEmpty()&&(console.warn("camera-controls: fitTo() cannot be used with an empty box. Aborting"),Promise.resolve());let h=w5(this._sphericalEnd.theta,T5),c=w5(this._sphericalEnd.phi,T5);o.push(this.rotateTo(h,c,t));let u=ar.setFromSpherical(this._sphericalEnd).normalize(),d=Xfe.setFromUnitVectors(u,M5),p=Hi(Math.abs(u.y),1);p&&d.multiply(A5.setFromAxisAngle(iC,h)),d.multiply(this._yAxisUpSpaceInverse);let f=jfe.makeEmpty();bi.copy(l.min).applyQuaternion(d),f.expandByPoint(bi),bi.copy(l.min).setX(l.max.x).applyQuaternion(d),f.expandByPoint(bi),bi.copy(l.min).setY(l.max.y).applyQuaternion(d),f.expandByPoint(bi),bi.copy(l.max).setZ(l.min.z).applyQuaternion(d),f.expandByPoint(bi),bi.copy(l.min).setZ(l.max.z).applyQuaternion(d),f.expandByPoint(bi),bi.copy(l.max).setY(l.min.y).applyQuaternion(d),f.expandByPoint(bi),bi.copy(l.max).setX(l.min.x).applyQuaternion(d),f.expandByPoint(bi),bi.copy(l.max).applyQuaternion(d),f.expandByPoint(bi),f.min.x-=i,f.min.y-=a,f.max.x+=r,f.max.y+=s,d.setFromUnitVectors(M5,u),p&&d.premultiply(A5.invert()),d.premultiply(this._yAxisUpSpace);let m=f.getSize(ar),g=f.getCenter(bi).applyQuaternion(d);if(Rf(this._camera)){let e=this.getDistanceToFitBox(m.x,m.y,m.z,n);o.push(this.moveTo(g.x,g.y,g.z,t)),o.push(this.dollyTo(e,t)),o.push(this.setFocalOffset(0,0,0,t))}else if(Vu(this._camera)){let e=this._camera,i=e.right-e.left,r=e.top-e.bottom,a=n?Math.max(i/m.x,r/m.y):Math.min(i/m.x,r/m.y);o.push(this.moveTo(g.x,g.y,g.z,t)),o.push(this.zoomTo(a,t)),o.push(this.setFocalOffset(0,0,0,t))}return Promise.all(o)}fitToSphere(e,t){let n=[],i=e instanceof nr.Sphere?R5.copy(e):Af.createBoundingSphere(e,R5);if(n.push(this.moveTo(i.center.x,i.center.y,i.center.z,t)),Rf(this._camera)){let e=this.getDistanceToFitSphere(i.radius);n.push(this.dollyTo(e,t))}else if(Vu(this._camera)){let e=this._camera.right-this._camera.left,r=this._camera.top-this._camera.bottom,a=2*i.radius,s=Math.min(e/a,r/a);n.push(this.zoomTo(s,t))}return n.push(this.setFocalOffset(0,0,0,t)),Promise.all(n)}setLookAt(e,t,n,i,r,a,s=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1;let o=bi.set(i,r,a),l=ar.set(e,t,n);this._targetEnd.copy(o),this._sphericalEnd.setFromVector3(l.sub(o).applyQuaternion(this._yAxisUpSpace)),this.normalizeRotations(),this._needsUpdate=!0,s||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));let h=!s||Hi(this._target.x,this._targetEnd.x,this.restThreshold)&&Hi(this._target.y,this._targetEnd.y,this.restThreshold)&&Hi(this._target.z,this._targetEnd.z,this.restThreshold)&&Hi(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&Hi(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&Hi(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(h)}lerpLookAt(e,t,n,i,r,a,s,o,l,h,c,u,d,p=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1;let f=ar.set(i,r,a),m=bi.set(e,t,n);Ic.setFromVector3(m.sub(f).applyQuaternion(this._yAxisUpSpace));let g=ty.set(h,c,u),v=bi.set(s,o,l);cE.setFromVector3(v.sub(g).applyQuaternion(this._yAxisUpSpace)),this._targetEnd.copy(f.lerp(g,d));let y=cE.theta-Ic.theta,x=cE.phi-Ic.phi,b=cE.radius-Ic.radius;this._sphericalEnd.set(Ic.radius+b*d,Ic.phi+x*d,Ic.theta+y*d),this.normalizeRotations(),this._needsUpdate=!0,p||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));let _=!p||Hi(this._target.x,this._targetEnd.x,this.restThreshold)&&Hi(this._target.y,this._targetEnd.y,this.restThreshold)&&Hi(this._target.z,this._targetEnd.z,this.restThreshold)&&Hi(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&Hi(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&Hi(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(_)}setPosition(e,t,n,i=!1){return this.setLookAt(e,t,n,this._targetEnd.x,this._targetEnd.y,this._targetEnd.z,i)}setTarget(e,t,n,i=!1){let r=this.getPosition(ar),a=this.setLookAt(r.x,r.y,r.z,e,t,n,i);return this._sphericalEnd.phi=Hm(this.polarAngle,this.minPolarAngle,this.maxPolarAngle),a}setFocalOffset(e,t,n,i=!1){this._isUserControllingOffset=!1,this._focalOffsetEnd.set(e,t,n),this._needsUpdate=!0,i||this._focalOffset.copy(this._focalOffsetEnd);let r=!i||Hi(this._focalOffset.x,this._focalOffsetEnd.x,this.restThreshold)&&Hi(this._focalOffset.y,this._focalOffsetEnd.y,this.restThreshold)&&Hi(this._focalOffset.z,this._focalOffsetEnd.z,this.restThreshold);return this._createOnRestPromise(r)}setOrbitPoint(e,t,n){this._camera.updateMatrixWorld(),Gu.setFromMatrixColumn(this._camera.matrixWorldInverse,0),qu.setFromMatrixColumn(this._camera.matrixWorldInverse,1),Vm.setFromMatrixColumn(this._camera.matrixWorldInverse,2);let i=ar.set(e,t,n),r=i.distanceTo(this._camera.position),a=i.sub(this._camera.position);Gu.multiplyScalar(a.x),qu.multiplyScalar(a.y),Vm.multiplyScalar(a.z),ar.copy(Gu).add(qu).add(Vm),ar.z=ar.z+r,this.dollyTo(r,!1),this.setFocalOffset(-ar.x,ar.y,-ar.z,!1),this.moveTo(e,t,n,!1)}setBoundary(e){if(!e)return this._boundary.min.set(-1/0,-1/0,-1/0),this._boundary.max.set(1/0,1/0,1/0),void(this._needsUpdate=!0);this._boundary.copy(e),this._boundary.clampPoint(this._targetEnd,this._targetEnd),this._needsUpdate=!0}setViewport(e,t,n,i){null!==e?(this._viewport=this._viewport||new nr.Vector4,"number"==typeof e?this._viewport.set(e,t,n,i):this._viewport.copy(e)):this._viewport=null}getDistanceToFitBox(e,t,n,i=!1){if(tC(this._camera,"getDistanceToFitBox"))return this._spherical.radius;let r=e/t,a=this._camera.getEffectiveFOV()*Jv,s=this._camera.aspect;return.5*((i?r>s:rt.pointerId===e))}_findPointerByMouseButton(e){return this._activePointers.find((t=>t.mouseButton===e))}_encloseToBoundary(e,t,n){let i=t.lengthSq();if(0===i)return e;let r=bi.copy(t).add(e),a=this._boundary.clampPoint(r,ty).sub(r),s=a.lengthSq();if(0===s)return e.add(t);if(s===i)return e;if(0===n)return e.add(t).add(a);{let i=1+n*s/t.dot(a);return e.add(bi.copy(t).multiplyScalar(i)).add(a.multiplyScalar(1-n))}}_updateNearPlaneCorners(){if(Rf(this._camera)){let e=this._camera,t=e.near,n=e.getEffectiveFOV()*Jv,i=Math.tan(.5*n)*t,r=i*e.aspect;this._nearPlaneCorners[0].set(-r,-i,0),this._nearPlaneCorners[1].set(r,-i,0),this._nearPlaneCorners[2].set(r,i,0),this._nearPlaneCorners[3].set(-r,i,0)}else if(Vu(this._camera)){let e=this._camera,t=1/e.zoom,n=e.left*t,i=e.right*t,r=e.top*t,a=e.bottom*t;this._nearPlaneCorners[0].set(n,r,0),this._nearPlaneCorners[1].set(i,r,0),this._nearPlaneCorners[2].set(i,a,0),this._nearPlaneCorners[3].set(n,a,0)}}_collisionTest(){let e=1/0;if(!(this.colliderMeshes.length>=1)||tC(this._camera,"_collisionTest"))return e;let t=ar.setFromSpherical(this._spherical).divideScalar(this._spherical.radius);C5.lookAt(Gfe,t,this._camera.up);for(let n=0;n<4;n++){let i=bi.copy(this._nearPlaneCorners[n]);i.applyMatrix4(C5);let r=ty.addVectors(this._target,i);sC.set(r,t),sC.far=this._spherical.radius+1;let a=sC.intersectObjects(this.colliderMeshes);0!==a.length&&a[0].distance{let t=()=>{this.removeEventListener("rest",t),e()};this.addEventListener("rest",t)})))}_addAllEventListeners(e){}_removeAllEventListeners(){}get dampingFactor(){return console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead."),0}set dampingFactor(e){console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead.")}get draggingDampingFactor(){return console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead."),0}set draggingDampingFactor(e){console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.")}static createBoundingSphere(e,t=new nr.Sphere){let n=t,i=n.center;ny.makeEmpty(),e.traverseVisible((e=>{e.isMesh&&ny.expandByObject(e)})),ny.getCenter(i);let r=0;return e.traverseVisible((e=>{if(!e.isMesh)return;let t=e,n=t.geometry.clone();if(n.applyMatrix4(t.matrixWorld),n.isBufferGeometry){let e=n.attributes.position;for(let t=0,n=e.count;t{if(this.enabled){switch(e.code){case this.keys.up:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(0,1),this._isUserControllingRotate=!0):(this._truckInternal(0,this.keyTruckSpeed,!1),this._isUserControllingTruck=!0);break;case this.keys.bottom:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(0,-1),this._isUserControllingRotate=!0):(this._truckInternal(0,-this.keyTruckSpeed,!1),this._isUserControllingTruck=!0);break;case this.keys.left:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(1,0),this._isUserControllingRotate=!0):(this._truckInternal(this.keyTruckSpeed,0,!1),this._isUserControllingTruck=!0);break;case this.keys.right:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(-1,0),this._isUserControllingRotate=!0):(this._truckInternal(-this.keyTruckSpeed,0,!1),this._isUserControllingTruck=!0)}this.dispatchEvent({type:"control"})}},this.onKeyUp=e=>{this.dispatchEvent({type:"controlend"})},this._getClientRect(this._elementRect),this.dollySpeedBackup=this.dollySpeed,this.azimuthRotateSpeedBackup=this.azimuthRotateSpeed,this.polarRotateSpeedBackup=this.polarRotateSpeed,this.truckSpeedBackup=this.truckSpeed}get enableZoom(){return!!this.dollySpeed}set enableZoom(e){e?this.dollySpeed=this.dollySpeedBackup:(this.dollySpeedBackup=this.dollySpeed,this.dollySpeed=0)}get enableRotate(){return!!this.azimuthRotateSpeed||!!this.polarRotateSpeed}set enableRotate(e){e?(this.azimuthRotateSpeed=this.azimuthRotateSpeedBackup,this.polarRotateSpeed=this.polarRotateSpeedBackup):(this.azimuthRotateSpeedBackup=this.azimuthRotateSpeed,this.polarRotateSpeedBackup=this.polarRotateSpeed,this.azimuthRotateSpeed=0,this.polarRotateSpeed=0)}get enableTruck(){return!!this.truckSpeed}set enableTruck(e){e?this.truckSpeed=this.truckSpeedBackup:(this.truckSpeedBackup=this.truckSpeed,this.truckSpeed=0)}listenToKeyEvents(){var e,t;null==(e=this._domElement)||e.addEventListener("keydown",this.onKeyDown),null==(t=this._domElement)||t.addEventListener("keyup",this.onKeyUp)}stopListenToKeyEvents(){var e,t;null==(e=this._domElement)||e.removeEventListener("keydown",this.onKeyDown),null==(t=this._domElement)||t.removeEventListener("keyup",this.onKeyUp)}dispose(){super.dispose(),this.stopListenToKeyEvents()}},kl=class{constructor(e){this.name=e}},aC=class{constructor(e){this.history=[],this.step=0,this.maxCount=50,this.isBatchCommand=!1,this.batchCommands=[],this.maxCount=e||this.maxCount}addCommand(e){this.isBatchCommand?this.batchCommands.push(e):(this.history.length===this.maxCount&&this.history.shift(),this.step!==this.history.length&&this.history.splice(this.step),this.history.push(e),this.step++)}startTransaction(){this.isBatchCommand=!0}endTransaction(){this.history.length===this.maxCount&&this.history.shift(),this.step!==this.history.length&&this.history.splice(this.step),this.batchCommands.length>0&&(this.history.push(this.batchCommands.slice()),this.step++),this.isBatchCommand=!1,this.batchCommands=[]}undo(){if(this.canUndo())return!1;this.step--;let e=this.history[this.step];return e&&(Array.isArray(e)?e.forEach((e=>e.undo())):e.undo()),!0}redo(){if(this.canRedo())return!1;this.step++;let e=this.history[this.step-1];return e&&(Array.isArray(e)?e.forEach((e=>e.redo())):e.redo()),!0}getCommands(){return this.history}canUndo(){return this.step<=0}canRedo(){return this.step>=this.history.length}clear(){this.history=[],this.step=0}destroy(){this.clear(),this.maxCount=0}},uE=class extends kl{constructor(e,t){super("AddMarkup"),this.manager=e,this.data=t}undo(){let e=this.manager.getMarkupById(this.data.id);return!!e&&(this.manager.removeMarkup(e),!0)}redo(){let e=this.manager.createMarkup(this.data);return!!e&&(this.manager.addMarkup(e),!0)}},oC=class extends kl{constructor(e,t,n){super("UpdateMarkup"),this.manager=e,this.oldData=t,this.newData=n}undo(){let e=this.manager.getMarkupById(this.oldData.id);return!!e&&(this.manager.updateMarkup(e,this.oldData),!0)}redo(){let e=this.manager.getMarkupById(this.newData.id);return!!e&&(this.manager.updateMarkup(e,this.newData),!0)}},zm=class extends kl{constructor(e,t){super("RemoveMarkup"),this.manager=e,this.data=t}undo(){let e=this.manager.createMarkup(this.data);return!!e&&(this.manager.addMarkup(e),!0)}redo(){let e=this.manager.getMarkupById(this.data.id);return!!e&&(this.manager.removeMarkup(e),!0)}},hE=class extends kl{constructor(e,t){super("AddMeasurement"),this.manager=e,this.data=t}undo(){let e=this.manager.getById(this.data.id);return!!e&&(this.manager.remove(e),!0)}redo(){let e=this.manager.create(this.data);return!!e&&(this.manager.add(e),!0)}},ry=class extends kl{constructor(e,t){super("RemoveMeasurement"),this.manager=e,this.data=t}undo(){let e=this.manager.create(this.data);return!!e&&(this.manager.add(e),!0)}redo(){let e=this.manager.getById(this.data.id);return!!e&&(this.manager.remove(e),!0)}},Yfe=new O,dE=class extends us{constructor(e,t){var n;super(),this.drawableList=new Ko("markup"),this.lineWidth=2,this.lineColor=[1,0,0,1],this.fillColor=[1,0,0,.3],this.fontSize=20,this.mouseDown=!1,this.mouseDownPositionX=void 0,this.mouseDownPositionY=void 0,this.isSelectLeaderText=!1,this.isDrawing=!1,this.tempPoints=[],this.activated=!1,this.handleDbClick=()=>{},this.handleInputMousemove=e=>{if(!this.mouseDown&&"CloudRectWithTextMarkup"===this.type&&this.isDrawing&&this.creatingShape){let t=cn.getScreenPointByEvent(e,this.viewerCanvas);this.creatingShape.updateInputPosition(this.mousedownPoint,t),this.render()}},this.mousedown=e=>{var t;if(e.pointers&&e.pointers.length>1)return;let n=this.pickThreejsPositionByMouse(e);if(n){if(n.z=0,this.mouseDownPositionX=n.x,this.mouseDownPositionY=n.y,this.mousedownPoint=new be(e.x,e.y),0===e.button&&(this.mouseDown=!0),2===e.button)return void(this.isDrawing&&this.endDraw(this.creatingShape));if(this.selectedShape&&(this.selectedShape.selected=!1,this.selectedShape=void 0,this.render()),!this.isDrawing){let e=this.drawableList.getDrawableByPosition(n);e&&(this.selectedShape=e,e.selected=!0,e instanceof Bm&&(this.isSelectLeaderText=e.isLeaderTextSelected(n)),this.render())}if(this.isCreateTextMode()&&this.mouseDown&&!this.selectedShape){this.creatingShape||(this.creatingShape=this.drawText(n,""));let t=this.creatingShape;0===t.text.length?(t.setTolerance(this.viewer.getPixelSizeInWorldCoord()),t.update([n]),t.addInput(this,e.x,e.y)):(t.exitEditing(),this.addMarkup(t,!1),this.endDraw(t)),this.render()}if(this.isCreateLineMode()&&this.mouseDown&&!this.selectedShape){if(this.tempPoints.length>0){let e=this.tempPoints[0];if(Yfe.subVectors(e,n).length()<5*this.viewer.getPixelSizeInWorldCoord())return n=this.tempPoints[0].clone(),this.tempPoints.push(n),void this.endDraw(this.creatingShape)}if(this.isDrawing=!0,this.tempPoints.push(n),!this.creatingShape){let e=this.creatingShape=this.drawLine([...this.tempPoints,n]);e&&this.addMarkup(e,!1)}this.creatingShape&&(this.creatingShape.update([...this.tempPoints,n]),this.render()),this.dispatchEvent("StartDraw",this.creatingShape)}if(this.isCreateDotMode()&&this.mouseDown&&!this.selectedShape){if(!this.creatingShape){let e=this.creatingShape=this.drawShape(n);e&&this.addMarkup(e,!1)}this.isDrawing=!0,this.render()}null==(t=this.creatingShape)||t.setTolerance(this.viewer.getPixelSizeInWorldCoord())}},this.mousemove=e=>{if(e.pointers&&e.pointers.length>1)return;let t=this.pickThreejsPositionByMouse(e);if(t)if(t.z=0,this.selectedShape){if(this.mouseDown&&void 0!==this.mouseDownPositionX&&void 0!==this.mouseDownPositionY){this.isEditing()||(this.initialDataForEditing=this.selectedShape.getData());let e=t.x-this.mouseDownPositionX,n=t.y-this.mouseDownPositionY;this.selectedShape instanceof Bm&&this.isSelectLeaderText?this.selectedShape.translateLeaderText(e,n):this.selectedShape.translate(e,n),this.render(),this.mouseDownPositionX=t.x,this.mouseDownPositionY=t.y}}else{if(this.isCreateDotMode())return;if(this.mouseDown&&this.isCreateShapeMode()&&void 0!==this.mouseDownPositionX&&void 0!==this.mouseDownPositionY){let e=new O(this.mouseDownPositionX,this.mouseDownPositionY,0);if(!this.creatingShape){let n=this.creatingShape=this.drawShape(e,t);n&&this.addMarkup(n,!1)}this.creatingShape.update([e,t]),this.isDrawing=!0,this.render()}if(this.isCreateLineMode()&&this.tempPoints.length>0&&this.isDrawing){let e=this.tempPoints[0];Yfe.subVectors(e,t).length()<5*this.viewer.getPixelSizeInWorldCoord()&&(t=this.tempPoints[0].clone()),this.creatingShape.update([...this.tempPoints,t]),this.render()}}},this.mouseup=e=>{if(this.mouseDown=!1,this.selectedShape&&this.isEditing()&&this.endEdit(this.selectedShape),this.isCreateShapeMode()&&this.isDrawing&&this.creatingShape)if("LeaderLineMarkup"===this.type){let t=this.creatingShape;t.isEditing?t.exitEditing():(t.setFontSize(this.fontSize*this.viewer.getPixelSizeInWorldCoord()),t.addInput(this,e.x,e.y)),t.addEventListener("ExitEditing",(()=>{this.isDrawing=!1,this.endDraw(this.creatingShape)}))}else if("CloudRectWithTextMarkup"===this.type){let t=this.creatingShape;t.setFontSize(this.fontSize*this.viewer.getPixelSizeInWorldCoord()),t.addInput(this,e.x,e.y),t.addEventListener("ExitEditing",(()=>{this.isDrawing=!1,this.endDraw(this.creatingShape)}))}else this.endDraw(this.creatingShape)},this.keydown=e=>{var t;"Delete"===e.code?this.selectedShape&&(this.viewer.hasEventListener("BeforeRemoveMarkup")?this.viewer.dispatchEvent("BeforeRemoveMarkup",this.confirmToRemove.bind(this)):(this.removeMarkup(this.selectedShape),null==(t=this.viewer.undoRedoManager)||t.addCommand(new zm(this,this.selectedShape.getData())),this.selectedShape=void 0)):"Escape"===e.code&&this.cancelDraw(this.creatingShape)},this.viewer=e,this.inputManager=t,this.overlayRender=this.viewer.overlayRender,null==(n=this.overlayRender)||n.addDrawableList(this.drawableList)}get viewerCanvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}setMarkupVisibility(e,t){let n=this.drawableList.getDrawables().get(e);return!!n&&(n.visible!==t&&(n.visible=t,this.render()),!0)}setMarkupsVisibility(e){let t=!1;this.drawableList.getDrawables().forEach((n=>{n.visible!==e&&(n.visible=e,t=!0)})),t&&this.render()}clearAll(){this.drawableList.clear(),this.isDrawing&&this.reset(),this.render()}isMarkupActive(){return this.activated}createMobileExitButton(){let e=this.viewer.widgetContainer,t=document.createElement("button");return t.innerText="X",t.style.cssText="position: absolute;right: 5%; top: 5%;background-color: #000000;color: #ffffff;padding: 3px 10px;font-weight: bolder;",null==e||e.appendChild(t),this.exitButton=t,this.exitButton.style.display="none",t.addEventListener("touchstart",(()=>{this.isDrawing&&this.endDraw(this.creatingShape),this.exitButton&&(this.exitButton.style.display="none")})),this.addEventListener("StartDraw",(()=>{this.exitButton&&(this.exitButton.style.display="inline")})),this.addEventListener("EndDraw",(()=>{this.exitButton&&(this.exitButton.style.display="none")})),this.exitButton}activate(){this.activated=!0,Dn.isMobile?(this.inputManager.addEventListener("touchstart",this.mousedown),this.inputManager.addEventListener("touchmove",this.mousemove),this.inputManager.addEventListener("touchend",this.mouseup)):(this.inputManager.addEventListener("mousedown",this.mousedown),this.inputManager.addEventListener("mousemove",this.mousemove),this.inputManager.addEventListener("mouseup",this.mouseup),this.inputManager.addEventListener("dblclick",this.handleDbClick)),this.inputManager.addEventListener("keydown",this.keydown),window.addEventListener("mousemove",this.handleInputMousemove);let e=this.viewer.controls;this.tempKey=e.mouseButtons.left,e.mouseButtons.left=yt.NONE,this.tempTouch=e.touches.one,e.touches.one=yt.NONE,this.tempArrowKeys=e.keys,e.keys={},this.render()}deactivate(){this.activated=!1,Dn.isMobile?(this.inputManager.removeEventListener("touchstart",this.mousedown),this.inputManager.removeEventListener("touchmove",this.mousemove),this.inputManager.removeEventListener("touchend",this.mouseup)):(this.inputManager.removeEventListener("mousedown",this.mousedown),this.inputManager.removeEventListener("mousemove",this.mousemove),this.inputManager.removeEventListener("mouseup",this.mouseup),this.inputManager.removeEventListener("dblclick",this.handleDbClick)),this.inputManager.removeEventListener("keydown",this.keydown),window.removeEventListener("mousemove",this.handleInputMousemove),this.viewer.controls.mouseButtons.left=this.tempKey,this.viewer.controls.keys=this.tempArrowKeys,this.viewer.controls.touches.one=this.tempTouch,this.mouseDown=!1,this.tempPoints=[],this.isDrawing=!1,this.creatingShape=void 0,this.selectedShape&&(this.selectedShape.selected=!1,this.selectedShape=void 0),this.render()}getActiveMarkupType(){return this.type}setDrawType(e){this.type=e,this.reset()}setLineWidth(e){this.lineWidth=e}getLineWidth(){return this.lineWidth}setLineColor(e){this.lineColor=e}getLineColor(){return this.lineColor}setFillColor(e){this.fillColor=e}getFillColor(){return this.fillColor}setFontSize(e){this.fontSize=e}getFontSize(){return this.fontSize}pickPositionByScreenPoint(e){let t,n=cn.screenPoint2NdcPoint(e,this.camera,this.viewerCanvas);this.raycaster.layers.set(10),this.raycaster.setFromCamera(n,this.camera);let i=this.viewer.scene,r=this.raycaster.intersectObject(this.viewer.groundPlane||i)||[];return r.length>0&&(t=r[0].point),t}pickThreejsPositionByMouse(e){return this.pickPositionByScreenPoint(new be(e.x,e.y))}confirmToRemove(e){var t;this.selectedShape&&e&&(this.removeMarkup(this.selectedShape),null==(t=this.viewer.undoRedoManager)||t.addCommand(new zm(this,this.selectedShape.getData())),this.selectedShape=void 0)}isEditing(){return!!this.initialDataForEditing}endEdit(e){var t;if(!this.initialDataForEditing)return;let n=e.getData();this.viewer.dispatchEvent("MarkupUpdated",{oldData:this.initialDataForEditing,newData:n}),this.dispatchEvent("EndEdit",e),null==(t=this.viewer.undoRedoManager)||t.addCommand(new oC(this,this.initialDataForEditing,n)),this.initialDataForEditing=void 0,this.isSelectLeaderText=!1}endDraw(e){var t;if("PolylineMarkup"===this.type&&this.creatingShape&&(this.tempPoints.length<2?(this.removeMarkup(this.creatingShape,!1),this.creatingShape=void 0):this.creatingShape.update(this.tempPoints)),e){let n=e.getData();this.viewer.dispatchEvent("MarkupAdded",n),null==(t=this.viewer.undoRedoManager)||t.addCommand(new uE(this,n))}this.dispatchEvent("EndDraw",e),this.reset()}cancelDraw(e){e&&this.removeMarkup(e,!1),this.reset()}reset(){this.tempPoints=[],this.isDrawing=!1,this.creatingShape=void 0,this.mouseDownPositionX=void 0,this.mouseDownPositionY=void 0,this.mousedownPoint=void 0,this.isSelectLeaderText=!1,this.selectedShape&&(this.selectedShape.selected=!1,this.selectedShape=void 0),this.render()}render(){var e;null==(e=this.overlayRender)||e.render()}addMarkup(e,t=!0){this.drawableList.addDrawable(e),this.render(),t&&this.viewer.dispatchEvent("MarkupAdded",e.getData())}updateMarkup(e,t,n=!0){this.drawableList.updateDrawable(e,t),this.render(),n&&this.viewer.dispatchEvent("MarkupUpdated",{oldData:e.getData(),newData:t})}removeMarkup(e,t=!0){this.drawableList.removeDrawable(e),this.render(),t&&this.viewer.dispatchEvent("MarkupRemoved",e.getData())}removeMarkupById(e){let t=this.getMarkupById(e);return!!t&&(this.removeMarkup(t,!1),!0)}createMarkup(e){return Un.createDrawable(e)}getMarkupById(e){return this.drawableList.getDrawableById(e)}getMarkupData(){return this.drawableList.getDrawableDatas()}setMarkupData(e){var t,n;null==(t=this.viewer.undoRedoManager)||t.startTransaction(),e.forEach((e=>{var t;this.addMarkup(this.createMarkup(e)),null==(t=this.viewer.undoRedoManager)||t.addCommand(new uE(this,e))})),null==(n=this.viewer.undoRedoManager)||n.endTransaction(),this.render()}isCreateLineMode(){return["PolylineMarkup","CloudLineMarkup"].includes(this.type)}isCreateDotMode(){return["DotMarkup"].includes(this.type)}isCreateTextMode(){return["TextMarkup"].includes(this.type)}isCreateShapeMode(){return["XMarkup","RectMarkup","CloudRectMarkup","CircleMarkup","EllipseMarkup","ArrowMarkup","LeaderLineMarkup","CloudRectWithTextMarkup","DotMarkup"].includes(this.type)}drawShape(e,t){let n=[[e.x,e.y]];return t&&n.push([t.x,t.y]),Un.createDrawable({id:Mt.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.type,points:n})}drawLine(e){return Un.createDrawable({id:Mt.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.type,points:e.map((e=>[e.x,e.y]))})}drawText(e,t){return Un.createDrawable({id:Mt.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize*this.viewer.getPixelSizeInWorldCoord(),type:this.type,text:t,points:[[e.x,e.y]]})}destroy(){this.deactivate(),this.clearAll()}},$fe=new O,Gm=class extends Bi{constructor(e,t){super(e),this.lineSegments=[],this.boxes=t,this.lineColor=[1,0,0,1],this.lineWidth=2,this.calculateCloudLineSegments(t)}calculateCloudLineSegments(e){var t;for(let n=0;n(e[e.Mesh=-1]="Mesh",e[e.MeshWithPattern=0]="MeshWithPattern",e[e.LineWithWidth=1]="LineWithWidth",e[e.Line=2]="Line",e[e.LineWithPattern=3]="LineWithPattern",e[e.Point=4]="Point",e[e.Text=5]="Text",e))(Zfe||{}),qm=["INSERT","DIMENSION"],aVt=ji(tpe(),1),lC=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215],ay=class{constructor(){this.pointer=0,this.eof=!1}},L5=ji(npe(),1),Cf=class{constructor(e,t){this.endian=t&&"big"===t?"big":"little",this.position=0,this.data=new DataView(e)}readAsciiString(e){if(this.data.byteLength=0&&e<=9)return this.readNullTerminatedString();if(e>=10&&e<=59)return this.reader.readFloat64();if(e>=60&&e<=79)return this.reader.readInt16();if(e>=90&&e<=99)return this.reader.readInt32();if(e>=100&&e<=109)return this.readNullTerminatedString();if(e>=110&&e<=149)return this.reader.readFloat64();if(e>=160&&e<=169)return this.reader.readInt64();if(e>=170&&e<=179)return this.reader.readInt16();if(e>=210&&e<=239)return this.reader.readFloat64();if(e>=270&&e<=289)return this.reader.readInt16();if(e>=290&&e<=299)return this.reader.readInt8()>0;if(e>=300&&e<=309)return this.readNullTerminatedString();if(e>=310&&e<=319)return ipe(this.ReadBinaryData());if(e>=320&&e<=369)return this.readNullTerminatedString();if(e>=370&&e<=389)return this.reader.readInt16();if(e>=390&&e<=399)return this.readNullTerminatedString();if(e>=400&&e<=409)return this.reader.readInt16();if(e>=410&&e<=419)return this.readNullTerminatedString();if(e>=420&&e<=429)return this.reader.readInt32();if(e>=430&&e<=439)return this.readNullTerminatedString();if(e>=440&&e<=459)return this.reader.readInt32();if(e>=460&&e<=469)return this.reader.readFloat64();if(e>=470&&e<=481)return this.readNullTerminatedString();if(999===e)throw new Error("The comment group 999, is not used in binary DXF files at byte address!");return 1004===e?ipe(this.ReadBinaryData()):e>=1e3&&e<=1009?this.readNullTerminatedString():e>=1010&&e<=1059?this.reader.readFloat64():e>=1060&&e<=1070?this.reader.readInt16():1071===e?this.reader.readInt32():void se.warn(`[DxfBinReader] Invalid code '${e}' at byte address ${this.reader.getPosition()}`)}readNullTerminatedString(){var e;this.decoder||(this.decoder=new TextDecoder("utf-8"));let t=0,n=this.reader.readInt8();for(;0!==n;)this.int8Array[t++]=n,n=this.reader.readInt8();if(0===t)return"";if(t>rpe)return se.warn(`[DxfBinReader] Failed to read string! The number of bytes is ${t} !`),"";let i=this.int8Array.subarray(0,t),r=i.toString();if(this.caches.get(r))return this.caches.get(r);let a=null==(e=this.decoder)?void 0:e.decode(i);return this.caches.set(r,a),a}ReadBinaryData(){let e=this.reader.readUint8();return this.reader.readBytes(e)}};function ipe(e){return Array.prototype.map.call(e,(e=>("00"+e.toString(16)).slice(-2))).join("")}var oy=class extends ay{constructor(e){super(),this.data=e}next(){if(!this.hasNext())throw this.eof?new Error("Cannot call 'next' after EOF group has been read"):new Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this.data[this.pointer]);let e={code:parseInt(this.data[this.pointer])};return this.pointer++,e.value=Eht(e.code,this.data[this.pointer].trim()),this.pointer++,0===e.code&&"EOF"===e.value&&(this.eof=!0),this.lastReadGroup=e,e}hasNext(){return!(this.eof||this.pointer>this.data.length-2)}isEOF(){return this.eof}};function Eht(e,t){return e>=0&&e<=9?t:e>=10&&e<=59?parseFloat(t):e>=60&&e<=99?parseInt(t):e>=100&&e<=109?t:e>=110&&e<=149?parseFloat(t):e>=160&&e<=179?parseInt(t):e>=210&&e<=239?parseFloat(t):e>=270&&e<=289?parseInt(t):e>=290&&e<=299?_ht(t):e>=300&&e<=369?t:e>=370&&e<=389?parseInt(t):e>=390&&e<=399?t:e>=400&&e<=409?parseInt(t):e>=410&&e<=419?t:e>=420&&e<=429?parseInt(t):e>=430&&e<=439?t:e>=440&&e<=459?parseInt(t):e>=460&&e<=469?parseFloat(t):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?t:e>=1010&&e<=1059?parseFloat(t):e>=1060&&e<=1071?parseInt(t):(se.info("WARNING: Group code does not have a defined type: %j",{code:e,value:t}),t)}function _ht(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}var ope=ji(Fl(),1),Tht="OriginalHandle",wht="OriginalType",Sht="Outlines",spe=["PROXY","REGION","INSERT","HATCH"];function Wm(e){return lC[e]}function Ft(e){let t={},n=e.lastReadGroup,i=n.code;if(t.x=n.value,i+=10,n=e.next(),n.code!=i)throw new Error(`Expected code for point value to be ${i} but got ${n.code}`);return t.y=n.value,i+=10,n=e.next(),n.code!=i||(t.z=n.value,e.next()),t}function ape(e,t){let n=e.lastReadGroup,i=[];for(let r=0;r<16;r++){if(n.code!==t)throw new Error(`Expected code for matrix value to be ${t} but got ${n.code}`);i.push(n.value),n=e.next()}return i}function Nn(e,t){switch(t.code){case 0:e.type=t.value;break;case 5:e.handle=t.value;break;case 6:e.lineType=t.value.toUpperCase();break;case 8:e.layer=t.value;break;case 48:e.lineTypeScale=t.value,e.lineTypeScale<=0&&(e.lineTypeScale=1);break;case 60:e.visible=0===t.value;break;case 62:e.isTrueColor||(e.colorIndex=t.value,e.colorIndex<0&&se.warn("[DxfParser] a negative value of colorIndex indicates that the layer is turned off"),e.color=Wm(Math.abs(t.value)));break;case 67:e.inPaperSpace=0!==t.value;break;case 100:case 1001:break;case 330:e.ownerHandle=t.value;break;case 347:e.materialObjectHandle=t.value;break;case 370:e.lineweight=t.value;break;case 410:e.layoutName=t.value;break;case 420:e.isTrueColor=!0,e.color=t.value;break;case 1e3:if(t.value&&t.value.includes(Tht)){let n=t.value.split(":").map((e=>e.trim()));e.extendedData||(e.extendedData={}),e.extendedData.originalHandle=n[1]}if(e.extendedData&&e.extendedData.outlines)try{e.extendedData.outlines=JSON.parse(t.value||"[]")}catch(t){e.extendedData.outlines=void 0}if(t.value&&t.value.includes(Sht)&&(e.extendedData||(e.extendedData={}),e.extendedData.outlines=[]),t.value&&t.value.includes(wht)){let n=t.value.split(":").map((e=>e.trim()));e.extendedData||(e.extendedData={}),e.extendedData.originalType=n[1]}break;default:return!1}return!0}function Nl(e,t){switch(t.code){case 0:e.type=t.value;break;case 5:e.handle=t.value;break;case 330:e.ownerHandle=t.value;break;case 1e3:case 1001:break;default:return!1}return!0}var gE=class{constructor(){this.ForEntityName="3DFACE"}parseEntity(e,t){let n={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 70:if(0!==t.value){let e=Math.log2(t.value)-1;n.vertices.splice(e,1)}t=e.next();break;case 10:n.vertices=Mht(e,t),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}};function Mht(e,t){let n=[],i=!1,r=!1;for(let a=0;a<=4;a++){let a={};for(;!e.isEOF()&&0!==t.code&&!r;){switch(t.code){case 10:case 11:case 12:case 13:if(i){r=!0;continue}a.x=t.value,i=!0;break;case 20:case 21:case 22:case 23:a.y=t.value;break;case 30:case 31:case 32:case 33:a.z=t.value;break;default:return n}t=e.next()}(0,ope.isEmpty)(a)||n.push(a),i=!1,r=!1}return n}var vE=class{constructor(){this.ForEntityName="ARC"}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:n.center=Ft(e),t=e.lastReadGroup;break;case 40:n.radius=t.value,t=e.next();break;case 50:n.startAngle=Math.PI/180*t.value,t=e.next();break;case 51:n.endAngle=Math.PI/180*t.value,n.angleLength=n.endAngle-n.startAngle,t=e.next();break;case 210:n.extrusionDirectionX=t.value,t=e.next();break;case 220:n.extrusionDirectionY=t.value,t=e.next();break;case 230:n.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},yE=class{constructor(){this.ForEntityName="ATTDEF"}parseEntity(e,t){let n={type:t.value,xScale:1,textStyle:"STANDARD"};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 1:n.text=t.value,t=e.next();break;case 2:n.tag=t.value,t=e.next();break;case 3:n.prompt=t.value,t=e.next();break;case 7:n.textStyle=t.value,t=e.next();break;case 10:n.startPoint=Ft(e),t=e.lastReadGroup;break;case 11:n.endPoint=Ft(e),t=e.lastReadGroup;break;case 39:n.thickness=t.value,t=e.next();break;case 40:n.textHeight=t.value,t=e.next();break;case 41:n.xScale=t.value,t=e.next();break;case 50:n.rotation=t.value,t=e.next();break;case 51:n.obliqueAngle=t.value,t=e.next();break;case 70:n.invisible=!!(1&t.value),n.constant=!!(2&t.value),n.verificationRequired=!!(4&t.value),n.preset=!!(8&t.value),t=e.next();break;case 71:n.backwards=!!(2&t.value),n.mirrored=!!(4&t.value),t=e.next();break;case 72:n.horizontalJustification=t.value,t=e.next();break;case 73:n.fieldLength=t.value,t=e.next();break;case 74:n.verticalJustification=t.value,t=e.next();break;case 100:t=e.next();break;case 210:n.extrusionDirectionX=t.value,t=e.next();break;case 220:n.extrusionDirectionY=t.value,t=e.next();break;case 230:n.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},xE=class{constructor(){this.ForEntityName="ATTRIB"}parseEntity(e,t){let n={type:t.value,xScale:1,textStyle:"STANDARD"};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 1:n.text=t.value,t=e.next();break;case 2:n.tag=t.value,t=e.next();break;case 3:n.prompt=t.value,t=e.next();break;case 7:n.textStyle=t.value,t=e.next();break;case 10:n.startPoint=Ft(e),t=e.lastReadGroup;break;case 11:n.endPoint=Ft(e),t=e.lastReadGroup;break;case 39:n.thickness=t.value,t=e.next();break;case 40:n.textHeight=t.value,t=e.next();break;case 41:n.xScale=t.value,t=e.next();break;case 50:n.rotation=t.value,t=e.next();break;case 51:n.obliqueAngle=t.value,t=e.next();break;case 70:n.invisible=!!(1&t.value),n.constant=!!(2&t.value),n.verificationRequired=!!(4&t.value),n.preset=!!(8&t.value),t=e.next();break;case 71:n.backwards=!!(2&t.value),n.mirrored=!!(4&t.value),t=e.next();break;case 72:n.horizontalJustification=t.value,t=e.next();break;case 73:n.fieldLength=t.value,t=e.next();break;case 74:n.verticalJustification=t.value,t=e.next();break;case 100:t=e.next();break;case 210:n.extrusionDirectionX=t.value,t=e.next();break;case 220:n.extrusionDirectionY=t.value,t=e.next();break;case 230:n.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},bE=class{constructor(){this.ForEntityName="CIRCLE"}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:n.center=Ft(e),t=e.lastReadGroup;break;case 40:n.radius=t.value,t=e.next();break;case 50:n.startAngle=Math.PI/180*t.value,t=e.next();break;case 51:let i=Math.PI/180*t.value;i=0&&n.push({angle:e,origin:r,delta:a,dashPattern:o})}return n}function Iht(e,t){let n=[],i=t.next();for(;n.length0&&(n.colorIndex=t.value,n.color=Wm(Math.abs(t.value))))}t=e.next();break;default:Nn(n,t),t=e.next()}return n}};function Lht(e){switch(e){case 40:return"DIMSCALE";case 41:return"DIMASZ";case 42:return"DIMEXO";case 44:return"DIMEXE";case 75:return"DIMSE1";case 76:return"DIMSE2";case 77:return"DIMTAD";case 140:return"DIMTXT";case 144:return"DIMLFAC";case 147:return"DIMGAP";case 176:return"DIMCLRD";case 178:return"DIMCLRT";case 271:return"DIMDEC";case 341:return"DIMLDRBLK";default:return null}}var RE=class{constructor(){this.ForEntityName="LINE"}parseEntity(e,t){let n={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:n.vertices.unshift(Ft(e)),t=e.lastReadGroup;break;case 11:n.vertices.push(Ft(e)),t=e.lastReadGroup;break;case 210:n.extrusionDirection=Ft(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},AE=class{constructor(){this.ForEntityName="LWPOLYLINE"}parseEntity(e,t){let n={type:t.value,vertices:[]},i=0;for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 38:n.elevation=t.value,t=e.next();break;case 39:n.thickness=t.value,t=e.next();break;case 70:n.shape=1==(1&t.value),n.hasContinuousLinetypePattern=128==(128&t.value),t=e.next();break;case 90:i=t.value,t=e.next();break;case 10:n.vertices.push(...Dht(i,e)),t=e.lastReadGroup;break;case 43:0!==t.value&&(n.constantWidth=t.value),t=e.next();break;case 210:n.extrusionDirectionX=t.value,t=e.next();break;case 220:n.extrusionDirectionY=t.value,t=e.next();break;case 230:n.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}};function Dht(e,t){if(!e||e<=0)throw Error("n must be greater than 0 verticies");let n=[],i=!1,r=!1,a=t.lastReadGroup,s={};for(;!t.isEOF()&&0!==a.code&&!r;)switch(a.code){case 10:if(i){r=!0;continue}s.x=a.value,i=!0,a=t.next();break;case 20:s.y=a.value,a=t.next();break;case 30:s.z=a.value,a=t.next();break;case 40:s.startWidth=a.value,a=t.next();break;case 41:s.endWidth=a.value,a=t.next();break;case 42:0!=a.value&&(s.bulge=a.value),a=t.next();break;default:return i&&n.push(s),n}return n.push(s),i=!1,r=!1,n}var CE=class{constructor(){this.ForEntityName="MULTILEADER"}parseEntity(e,t){let n={type:t.value};function i(){for(;!e.isEOF();)switch(t.code){case 40:n.contextData.contentScale=t.value,t=e.next();break;case 10:n.contextData.contentBasePosition=Ft(e),t=e.lastReadGroup;break;case 145:n.contextData.landingGap=t.value,t=e.next();break;case 290:n.contextData.hasMText=t.value,t=e.next();break;case 304:n.contextData.defaultTextContents=t.value,t=e.next();break;case 11:n.contextData.textNormalDirection=Ft(e),t=e.lastReadGroup;break;case 12:n.contextData.textLocation=Ft(e),t=e.lastReadGroup;break;case 13:n.contextData.textDirection=Ft(e),t=e.lastReadGroup;break;case 140:n.contextData.arrowHeadSize=t.value,t=e.next();break;case 41:n.contextData.textHeight=t.value,t=e.next();break;case 42:n.contextData.textRotation=t.value,t=e.next();break;case 43:n.contextData.textWidth=t.value,t=e.next();break;case 44:default:t=e.next();break;case 45:n.contextData.textLineSpacingFactor=t.value,t=e.next();break;case 90:n.contextData.textColor=t.value,t=e.next();break;case 170:n.contextData.textLineSpacingStyle=t.value,t=e.next();break;case 171:n.contextData.textAttachment=t.value,t=e.next();break;case 172:n.contextData.textFlowDirection=t.value,t=e.next();break;case 141:n.contextData.textBackgroundScaleFactor=t.value,t=e.next();break;case 92:n.contextData.textBackgroundTransparency=t.value,t=e.next();break;case 291:n.contextData.textBackgroundColorOn=t.value,t=e.next();break;case 292:n.contextData.textBackgroundFillOn=t.value,t=e.next();break;case 293:n.contextData.textUseAutoHeight=t.value,t=e.next();break;case 173:n.contextData.textColumnType=t.value,t=e.next();break;case 142:n.contextData.textColumnWidth=t.value,t=e.next();break;case 143:n.contextData.textColumnGutterWidth=t.value,t=e.next();break;case 144:n.contextData.textColumnHeight=t.value,t=e.next();break;case 295:n.contextData.textUseWordBreak=t.value,t=e.next();break;case 296:n.contextData.hasBlock=t.value,t=e.next();break;case 341:n.contextData.blockContentId=t.value,t=e.next();break;case 14:n.contextData.blockContentNormalDirection=Ft(e),t=e.lastReadGroup;break;case 15:n.contextData.blockContentPosition=Ft(e),t=e.lastReadGroup;break;case 16:n.contextData.blockContentScale=t.value,t=e.next();break;case 46:n.contextData.blockContentRotation=t.value,t=e.next();break;case 93:n.contextData.blockContentColor=t.value,t=e.next();break;case 47:n.contextData.blockTransformationMatrix=ape(e,47),t=e.lastReadGroup;break;case 110:n.contextData.planeOriginPoint=Ft(e),t=e.lastReadGroup;break;case 111:n.contextData.planeXAxisDirection=Ft(e),t=e.lastReadGroup;break;case 112:n.contextData.planeYAxisDirection=Ft(e),t=e.lastReadGroup;break;case 297:n.contextData.planeNormalReversed=t.value,t=e.next();break;case 301:return;case 302:r(),t=e.lastReadGroup}}function r(){let i={leaderLines:[]};for(n.contextData.leaders.push(i);!e.isEOF();)switch(t.code){case 290:i.hasSetLastLeaderLinePoint=t.value,t=e.next();break;case 291:i.hasSetDoglegVector=t.value,t=e.next();break;case 10:i.lastLeaderLinePoint=Ft(e),t=e.lastReadGroup;break;case 11:i.doglegVector=Ft(e),t=e.lastReadGroup;break;case 90:i.leaderBranchIndex=t.value,t=e.next();break;case 40:i.doglegLength=t.value,t=e.next();break;case 303:return;case 304:a(),t=e.lastReadGroup;break;default:t=e.next()}}function a(){let i={vertices:[[]]};for(n.contextData.leaders[n.contextData.leaders.length-1].leaderLines.push(i);!e.isEOF();)switch(t.code){case 10:i.vertices[0].push(Ft(e)),t=e.lastReadGroup;break;case 305:return;default:t=e.next()}}return n.contextData={leaders:[]},t=e.next(),function(){for(;!e.isEOF();)switch(t.code){case 0:return;case 340:n.leaderStyleId=t.value,t=e.next();break;case 170:n.leaderLineType=t.value,t=e.next();break;case 91:n.leaderLineColor=t.value,t=e.next();break;case 341:n.leaderLineTypeId=t.value,t=e.next();break;case 171:n.leaderLineWeight=t.value,t=e.next();break;case 41:n.doglegLength=t.value,t=e.next();break;case 290:n.enableLanding=t.value,t=e.next();break;case 291:n.enableDogLeg=t.value,t=e.next();break;case 342:n.arrowHeadId=t.value,t=e.next();break;case 42:n.arrowHeadSize=t.value,t=e.next();break;case 172:n.contentType=t.value,t=e.next();break;case 173:case 95:n.textLeftAttachmentType=t.value,t=e.next();break;case 174:n.textAngleType=t.value,t=e.next();break;case 175:n.textAlignmentType=t.value,t=e.next();break;case 343:n.textStyleId=t.value,t=e.next();break;case 92:n.textColor=t.value,t=e.next();break;case 292:n.enableFrameText=t.value,t=e.next();break;case 344:n.blockContentId=t.value,t=e.next();break;case 93:n.blockContentColor=t.value,t=e.next();break;case 10:n.blockContentScale=Ft(e),t=e.lastReadGroup;break;case 43:n.blockContentRotation=t.value,t=e.next();break;case 176:n.blockContentConnectionType=t.value,t=e.next();break;case 293:n.enableAnotationScale=t.value,t=e.next();break;case 94:n.arrowHeadIndex=t.value,t=e.next();break;case 177:n.blockAttributeIndex=t.value,t=e.next();break;case 44:n.blockAttributeWidth=t.value,t=e.next();break;case 302:n.blockAttributeTextString=t.value,t=e.next();break;case 294:n.textDirectionNegative=t.value,t=e.next();break;case 178:n.textAlignInIPE=t.value,t=e.next();break;case 179:n.textAttachmentPoint=t.value,t=e.next();break;case 271:n.textAttachmentDirectionMText=t.value,t=e.next();break;case 272:n.textAttachmentDirectionBottom=t.value,t=e.next();break;case 273:n.textAttachmentDirectionTop=t.value,t=e.next();break;case 300:i(),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}}(),n}},PE=class{constructor(){this.ForEntityName="MTEXT"}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 3:case 1:n.text?n.text+=t.value:n.text=t.value,t=e.next();break;case 10:n.position=Ft(e),t=e.lastReadGroup;break;case 7:n.textStyle=t.value,t=e.next();break;case 44:n.lineSpaceFactor=t.value,t=e.next();break;case 11:n.directionVector=Ft(e),n.rotation=void 0,t=e.lastReadGroup;break;case 40:n.height=t.value,t=e.next();break;case 41:n.width=t.value,t=e.next();break;case 50:n.rotation=t.value,n.directionVector=void 0,t=e.next();break;case 71:n.attachmentPoint=t.value,t=e.next();break;case 72:n.drawingDirection=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},IE=class{constructor(){this.ForEntityName="OLE2FRAME"}parseEntity(e,t){let n={type:t.value,binaryData:""};for(t=e.next();"OLE"!==t.value&&0!==t.code;)switch(t.code){case 3:n.documentType=t.value,t=e.next();break;case 70:n.version=t.value,t=e.next();break;case 10:n.leftUpX=t.value,t=e.next();break;case 20:n.leftUpY=t.value,t=e.next();break;case 30:n.leftUpZ=t.value,t=e.next();break;case 11:n.rightDownX=t.value,t=e.next();break;case 21:n.rightDownY=t.value,t=e.next();break;case 31:n.rightDownZ=t.value,t=e.next();break;case 90:n.lengthOfBinaryData=t.value,t=e.next();break;case 310:n.binaryData+=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},LE=class{constructor(){this.ForEntityName="POINT"}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:n.position=Ft(e),t=e.lastReadGroup;break;case 39:n.thickness=t.value,t=e.next();break;case 210:n.extrusionDirection=Ft(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},DE=class{constructor(){this.ForEntityName="VERTEX"}parseEntity(e,t){var n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:n.x=t.value,t=e.next();break;case 20:n.y=t.value,t=e.next();break;case 30:n.z=t.value,t=e.next();break;case 40:case 41:case 50:t=e.next();break;case 42:0!=t.value&&(n.bulge=t.value),t=e.next();break;case 70:n.curveFittingVertex=0!=(1&t.value),n.curveFitTangent=0!=(2&t.value),n.splineVertex=0!=(8&t.value),n.splineControlPoint=0!=(16&t.value),n.threeDPolylineVertex=0!=(32&t.value),n.threeDPolylineMesh=0!=(64&t.value),n.polyfaceMeshVertex=0!=(128&t.value),t=e.next();break;case 71:n.faceA=t.value,t=e.next();break;case 72:n.faceB=t.value,t=e.next();break;case 73:n.faceC=t.value,t=e.next();break;case 74:n.faceD=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},OE=class{constructor(){this.ForEntityName="POLYLINE"}parseEntity(e,t){var n={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:case 20:case 30:case 40:case 41:case 71:case 72:case 73:case 74:case 75:t=e.next();break;case 39:t=e.next(),n.thickness=t.value;break;case 70:n.shape=0!=(1&t.value),n.includesCurveFitVertices=0!=(2&t.value),n.includesSplineFitVertices=0!=(4&t.value),n.is3dPolyline=0!=(8&t.value),n.is3dPolygonMesh=0!=(16&t.value),n.is3dPolygonMeshClosed=0!=(32&t.value),n.isPolyfaceMesh=0!=(64&t.value),n.hasContinuousLinetypePattern=0!=(128&t.value),t=e.next();break;case 210:n.extrusionDirection=Ft(e),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n.vertices=Oht(e,t),n}};function Oht(e,t){let n=new DE,i=[];for(;!e.isEOF();)if(0===t.code)if("VERTEX"===t.value)i.push(n.parseEntity(e,t)),t=e.lastReadGroup;else if("SEQEND"===t.value){kht(e,t);break}return i}function kht(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)if(101===t.code)for(;0!=t.code;)t=e.next();else Nn(n,t),t=e.next();return n}var kE=class{constructor(){this.ForEntityName="RAY"}parseEntity(e,t){let n={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:n.vertices.unshift(Ft(e)),t=e.lastReadGroup;break;case 11:n.directionVector=Ft(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},FE=class{constructor(){this.ForEntityName="REGION"}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 70:n.modelerVersion=t.value,t=e.next();break;case 1:n.proprietaryData=t.value,t=e.next();break;case 3:n.proprietaryData+=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},NE=class{constructor(){this.ForEntityName="SEQEND"}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)-2===t.code||(Nn(n,t),t=e.next());return n}},BE=class{constructor(){this.ForEntityName="SOLID"}parseEntity(e,t){let n={type:t.value,points:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:n.points[0]=Ft(e),t=e.lastReadGroup;break;case 11:n.points[1]=Ft(e),t=e.lastReadGroup;break;case 12:n.points[2]=Ft(e),t=e.lastReadGroup;break;case 13:n.points[3]=Ft(e),t=e.lastReadGroup;break;case 210:n.extrusionDirection=Ft(e),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},UE=class{constructor(){this.ForEntityName="SPLINE"}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:n.controlPoints||(n.controlPoints=[]),n.controlPoints.push(Ft(e)),t=e.lastReadGroup;break;case 11:n.fitPoints||(n.fitPoints=[]),n.fitPoints.push(Ft(e)),t=e.lastReadGroup;break;case 12:n.startTangent=Ft(e),t=e.lastReadGroup;break;case 13:n.endTangent=Ft(e),t=e.lastReadGroup;break;case 40:n.knotValues||(n.knotValues=[]),n.knotValues.push(t.value),t=e.next();break;case 70:1&t.value&&(n.closed=!0),2&t.value&&(n.periodic=!0),4&t.value&&(n.rational=!0),8&t.value&&(n.planar=!0),16&t.value&&(n.planar=!0,n.linear=!0),t=e.next();break;case 71:n.degreeOfSplineCurve=t.value,t=e.next();break;case 72:n.numberOfKnots=t.value,t=e.next();break;case 73:n.numberOfControlPoints=t.value,t=e.next();break;case 74:n.numberOfFitPoints=t.value,t=e.next();break;case 210:n.normalVector=Ft(e),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},HE=class{constructor(){this.ForEntityName="TEXT"}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:n.startPoint=Ft(e),t=e.lastReadGroup;break;case 11:n.endPoint=Ft(e),t=e.lastReadGroup;break;case 40:n.textHeight=t.value,t=e.next();break;case 41:n.xScale=t.value,t=e.next();break;case 50:n.rotation=t.value,t=e.next();break;case 1:n.text=t.value,t=e.next();break;case 72:n.halign=t.value,t=e.next();break;case 73:n.valign=t.value,t=e.next();break;case 7:n.textStyle=t.value,t=e.next();break;case 71:n.mirrored=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},VE=class{constructor(){this.ForEntityName="VIEWPORT"}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 68:n.viewportStatus=t.value,t=e.next();break;case 40:n.width_paperSpace=t.value,t=e.next();break;case 41:n.height_paperSpace=t.value,t=e.next();break;case 69:n.viewportId=t.value,t=e.next();break;case 10:n.centerPoint=Ft(e),t=e.lastReadGroup;break;case 12:n.centerPoint_dcs=Ft(e),t=e.lastReadGroup;break;case 13:n.snapBasePoint_dcs=Ft(e),t=e.lastReadGroup;break;case 14:n.snapSpacing_dcs=Ft(e),t=e.lastReadGroup;break;case 15:n.gridSpacing_dcs=Ft(e),t=e.lastReadGroup;break;case 16:n.viewDirection=Ft(e),t=e.lastReadGroup;break;case 17:n.viewTarget=Ft(e),t=e.lastReadGroup;break;case 42:n.perspectiveLens=t.value,t=e.next();break;case 43:n.frontClippingPlaneZ=t.value,t=e.next();break;case 44:n.backClippingPlaneZ=t.value,t=e.next();break;case 45:n.viewHeight=t.value,t=e.next();break;case 50:n.snapAngle=t.value,t=e.next();break;case 51:n.viewTwistAngle=t.value,t=e.next();break;case 72:n.circleZoomPercent=t.value,t=e.next();break;case 331:n.frozenLayerHandles=n.frozenLayerHandles||[],n.frozenLayerHandles.push(t.value),t=e.next();break;case 90:n.viewportStatusFlags=t.value,t=e.next();break;case 340:n.viewportClippingBoundaryhandleId=t.value,t=e.next();break;case 1:n.plotStyleSheetName=t.value,t=e.next();break;case 281:n.renderMode=t.value,t=e.next();break;case 71:n.viewportFlag_ucs=t.value,t=e.next();break;case 74:n.ucsIcon=t.value,t=e.next();break;case 110:n.ucsOrigin=Ft(e),t=e.lastReadGroup;break;case 111:n.ucsXAxis=Ft(e),t=e.lastReadGroup;break;case 112:n.ucsYAxis=Ft(e),t=e.lastReadGroup;break;case 345:n.ucsTableRecordHandle=t.value,t=e.next();break;case 346:n.baseUcsTableRecordHandle=t.value,t=e.next();break;case 79:n.orthographicType=t.value,t=e.next();break;case 146:n.elevation=t.value,t=e.next();break;case 170:n.shadePlotMode=t.value,t=e.next();break;case 61:n.frequency=t.value,t=e.next();break;case 292:n.lightingFlag=t.value,t=e.next();break;case 282:n.lightingType=t.value,t=e.next();break;case 141:n.viewBrightness=t.value,t=e.next();break;case 142:n.viewContrast=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},zE=class{constructor(){this.ForEntityName="XLINE"}parseEntity(e,t){let n={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:n.vertices.unshift(Ft(e)),t=e.lastReadGroup;break;case 11:n.directionVector=Ft(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(n,t),t=e.next()}return n}},cC=class{constructor(){this.ForObjectName="DICTIONARY"}parseObject(e,t){let n={type:t.value},i=[],r=[];for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 280:n.isHardOwner=1===t.value,t=e.next();break;case 281:n.cloningFlag=t.value,t=e.next();break;case 3:i.push(t.value),t=e.next();break;case 350:case 360:r.push(t.value),t=e.next();break;case 100:case 102:t=e.next();break;default:Nl(n,t),t=e.next()}if(i.length!==r.length)throw new Error("The number of Dictionary entries does not match !");return n.entries={},i.forEach(((e,t)=>{n.entries[r[t]]=e})),n}},uC=class{constructor(){this.ForObjectName="IMAGEDEF"}parseObject(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 90:n.classVersion=t.value,t=e.next();break;case 1:n.filename=t.value,t=e.next();break;case 10:n.imageSize=Ft(e),t=e.next();break;case 11:n.pixelSize=Ft(e),t=e.next();break;case 280:n.loaded=t.value,t=e.next();break;case 281:n.resolutionUnits=t.value,t=e.next();break;default:Nl(n,t),t=e.next()}return n}},hC=class{constructor(){this.ForObjectName="LAYOUT"}parseObject(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 100:t=e.next();break;case 1:n.layoutName=t.value,t=e.next();break;case 70:n.flag=t.value,t=e.next();break;case 71:n.tabOrder=t.value,t=e.next();break;case 76:n.orthographicType=t.value,t=e.next();break;case 10:n.minLimit=Ft(e),t=e.lastReadGroup;break;case 11:n.maxLimit=Ft(e),t=e.lastReadGroup;break;case 12:n.basePoint=Ft(e),t=e.lastReadGroup;break;case 13:n.origin=Ft(e),t=e.lastReadGroup;break;case 14:n.minExtent=Ft(e),t=e.lastReadGroup;break;case 15:n.maxExtent=Ft(e),t=e.lastReadGroup;break;case 16:n.XAxis=Ft(e),t=e.lastReadGroup;break;case 17:n.YAxis=Ft(e),t=e.lastReadGroup;break;case 146:n.elevation=t.value,t=e.next();break;case 331:n.viewportHandle=t.value,t=e.next();break;default:Nl(n,t),t=e.next()}return n.blockTableHandle=n.ownerHandle,n}},dC=class{constructor(){this.ForObjectName="SORTENTSTABLE"}parseObject(e,t){let n={type:t.value},i=!1;n.sortEntsObject={},n.sortEntsObject.entityHandles=[];let r=[];for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 5:i?(r.push(t.value),n.sortEntsObject.entityHandles.push(r),r=[]):n.handle=t.value,t=e.next();break;case 100:t=e.next(),i=!0;break;case 102:t=e.next();break;case 330:i?n.sortEntsObject.ownerHandle=t.value:n.ownerHandle=t.value,t=e.next();break;case 331:r.push(t.value),t=e.next();break;default:Nl(n,t),t=e.next()}return n}},fC=class{constructor(){this.ForObjectName="SPATIAL_FILTER"}parseObject(e,t){let n,i,r={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 11:r.origin=Ft(e),t=e.lastReadGroup;break;case 70:r.numberOfPointsOnClipBoundary=t.value,2===r.numberOfPointsOnClipBoundary?(t=e.next(),n=Ft(e),t=e.lastReadGroup,i=Ft(e),t=e.lastReadGroup,r.vertices.push(n,{x:i.x,y:n.y},i,{x:n.x,y:i.y},n)):r.numberOfPointsOnClipBoundary>2?(r.vertices=Fht(r.numberOfPointsOnClipBoundary,e),t=e.lastReadGroup):t=e.next();break;case 71:r.clipBoundaryVisible=1===t.value,t=e.next();break;case 72:r.frontClippingPlaneFlag=1===t.value,t=e.next(),r.frontClippingPlaneFlag&&40===t.code&&(r.frontClippingPlaneDistance=t.value,t=e.next());break;case 73:r.backClippingPlaneFlag=1===t.value,t=e.next(),r.backClippingPlaneFlag&&41===t.code&&(r.backClippingPlaneDistance=t.value,t=e.next());break;case 100:case 102:t=e.next();break;case 210:r.extrusionDirectionX=t.value,t=e.next();break;case 220:r.extrusionDirectionY=t.value,t=e.next();break;case 230:r.extrusionDirectionZ=t.value,t=e.next();break;case 40:r.invertBlockMatrix=lpe(e,40),r.matrix=lpe(e,40),t=e.lastReadGroup;break;default:Nl(r,t),t=e.next()}return r}};function Fht(e,t){t.next();let n=[];for(;n.length{e.on("data",(e=>{t+=e})),e.on("end",(()=>{try{i(n.parse(t))}catch(e){r(e)}})),e.on("error",(e=>{r(e)}))}))}_parse(e){let t={},n=0;if(!e.hasNext())throw Error("Empty file");let i,r=this;function a(){let t=null,n=null,r={};for(i=e.next();;){if(el(i,0,"ENDSEC")){t&&(r[t]=n);break}9===i.code?(t&&(r[t]=n),t=i.value):10===i.code?n={x:i.value}:20===i.code?n.y=i.value:30===i.code?n.z=i.value:n=i.value,i=e.next()}return i=e.next(),r}function s(){let t={};for(i=e.next();"EOF"!==i.value&&!el(i,0,"ENDSEC");)if(el(i,0,"BLOCK")){se.trace("block {");let e=o();se.trace("}"),m(e),e.name?t[e.name]=e:se.error(`[DxfParser] Block with handle '${e.handle}' is missing a name, ignored!`)}else id(i),i=e.next();return t}function o(){let t={};for(i=e.next();"EOF"!==i.value;){switch(i.code){case 1:t.xrefPath=i.value,i=e.next();break;case 2:t.name=i.value,i=e.next();break;case 3:t.name2=i.value,i=e.next();break;case 4:t.description=i.value,i=e.next();break;case 5:t.handle=i.value,i=e.next();break;case 8:t.layer=i.value,i=e.next();break;case 10:t.position=f(i),i=e.lastReadGroup;break;case 67:t.paperSpace=!(!i.value||1!==i.value),i=e.next();break;case 70:t.blockType=i.value,i=e.next();break;case 100:i=e.next();break;case 330:t.ownerHandle=i.value,i=e.next();break;case 0:if("ENDBLK"==i.value)break;t.entities=d(!0);break;default:id(i),i=e.next()}if(el(i,0,"ENDBLK")){i=e.next();break}}return t}function l(){let t={};for(i=e.next();"EOF"!==i.value&&!el(i,0,"ENDSEC");)el(i,0,"TABLE")?(i=e.next(),u[i.value]?(se.trace(i.value+" Table {"),t[u[i.value].tableName]=c(i),se.trace("}")):se.trace("Unhandled Table "+i.value)):i=e.next();return i=e.next(),t}let h="ENDTAB";function c(t){let n=u[t.value],r={},a=0;for(i=e.next();!el(i,0,h);)switch(i.code){case 5:r.handle=i.value,i=e.next();break;case 330:r.ownerHandle=i.value,i=e.next();break;case 100:"AcDbSymbolTable"===i.value||id(i),i=e.next();break;case 70:a=i.value,i=e.next();break;case 0:i.value===n.dxfSymbolName?r[n.tableRecordsProperty]=n.parseTableRecords():(id(i),i=e.next());break;default:id(i),i=e.next()}let s=r[n.tableRecordsProperty];if(s){let e=s.constructor===Array?s.length:"object"==typeof s?Object.keys(s).length:void 0;a!==e&&se.warn(`[DxfParser] Parsed ${e} ${n.dxfSymbolName}s but expected ${a}`)}return i=e.next(),r}let u={VPORT:{tableRecordsProperty:"viewports",tableName:"viewport",dxfSymbolName:"VPORT",parseTableRecords:function(){let t=[],n={};for(se.trace("Viewport {"),i=e.next();!el(i,0,h);)switch(i.code){case 2:n.name=i.value,i=e.next();break;case 10:n.lowerLeftCorner=f(i),i=e.lastReadGroup;break;case 11:n.upperRightCorner=f(i),i=e.lastReadGroup;break;case 12:n.center=f(i),i=e.lastReadGroup;break;case 13:n.snapBasePoint=f(i),i=e.lastReadGroup;break;case 14:n.snapSpacing=f(i),i=e.lastReadGroup;break;case 15:n.gridSpacing=f(i),i=e.lastReadGroup;break;case 16:n.viewDirectionFromTarget=f(i),i=e.lastReadGroup;break;case 17:n.viewTarget=f(i),i=e.lastReadGroup;break;case 40:case 45:n.viewHeight=i.value,i=e.next();break;case 41:n.aspectRatio=i.value,i=e.next();break;case 42:n.lensLength=i.value,i=e.next();break;case 43:n.frontClippingPlane=i.value,i=e.next();break;case 44:n.backClippingPlane=i.value,i=e.next();break;case 50:n.snapRotationAngle=i.value,i=e.next();break;case 51:n.viewTwistAngle=i.value,i=e.next();break;case 79:n.orthographicType=i.value,i=e.next();break;case 110:n.ucsOrigin=f(i),i=e.lastReadGroup;break;case 111:n.ucsXAxis=f(i),i=e.lastReadGroup;break;case 112:n.ucsYAxis=f(i),i=e.lastReadGroup;break;case 281:n.renderMode=i.value,i=e.next();break;case 282:n.defaultLightingType=i.value,i=e.next();break;case 292:n.defaultLightingOn=i.value,i=e.next();break;case 330:n.ownerHandle=i.value,i=e.next();break;case 63:case 421:case 431:n.ambientColor=i.value,i=e.next();break;case 0:"VPORT"===i.value&&(se.trace("}"),t.push(n),se.trace("Viewport {"),n={},i=e.next());break;default:id(i),i=e.next()}return se.trace("}"),t.push(n),t}},LTYPE:{tableRecordsProperty:"lineTypes",tableName:"lineType",dxfSymbolName:"LTYPE",parseTableRecords:function(){let t={},n={},a=0,s="",o=!1;for(se.trace("LType {"),i=e.next();!el(i,0,"ENDTAB");)switch(i.code){case 2:n.name=i.value.toUpperCase(),s=n.name,i=e.next();break;case 3:n.description=i.value,i=e.next();break;case 9:case 44:case 45:case 46:case 70:case 75:default:i=e.next();break;case 40:n.patternLength=i.value,i=e.next();break;case 49:let l=i.value;o&&(l=Math.abs(l),o=!1),n.pattern.push(l),i=e.next();break;case 73:a=i.value,a>0&&(n.pattern=[]),i=e.next();break;case 74:0!==i.value&&(o=!0,r.unsupportedLineTypes[n.name]?r.unsupportedLineTypes[n.name]++:r.unsupportedLineTypes[n.name]=1),i=e.next();break;case 0:se.trace("}"),a>0&&a!==n.pattern.length&&se.warn("[DxfParser] lengths do not match on LTYPE pattern"),t[s]=n,n={},se.trace("LType {"),i=e.next()}return se.trace("}"),t[s]=n,t}},LAYER:{tableRecordsProperty:"layers",tableName:"layer",dxfSymbolName:"LAYER",parseTableRecords:function(){let t,n={},r={};for(se.trace("Layer {"),i=e.next();!el(i,0,"ENDTAB");)switch(i.code){case 2:r.name=i.value,t=i.value,i=e.next();break;case 5:r.handle=i.value,i=e.next();break;case 62:r.visible=i.value>=0,r.colorIndex=Math.abs(i.value),r.color=Hht(r.colorIndex),i=e.next();break;case 70:r.flag=i.value,r.frozen=(1&r.flag)>0,i=e.next();break;case 420:r.color=Math.abs(i.value),i=e.next();break;case 6:r.lineType=i.value.toUpperCase(),i=e.next();break;case 370:r.lineweight=i.value,i=e.next();break;case 0:"LAYER"===i.value&&(se.trace("}"),t&&(n[t]=r),se.trace("Layer {"),r={},t=void 0,i=e.next());break;default:id(i),i=e.next()}return se.trace("}"),t&&(n[t]=r),n}},BLOCK_RECORD:{tableRecordsProperty:"blockRecords",tableName:"blockRecord",dxfSymbolName:"BLOCK_RECORD",parseTableRecords:function(){let t,n={},a={};for(se.trace("BlockRecord {"),i=e.next();!el(i,0,"ENDTAB");)switch(i.code){case 5:a.handle=i.value,i=e.next();break;case 330:a.ownerHandle=i.value,i=e.next();break;case 2:a.blockName=i.value,t=a.blockName,i=e.next();break;case 340:a.layoutHandle=i.value,i=e.next();break;case 70:a.blockInsertUnits=i.value,i=e.next();break;case 280:a.blockExplodability=i.value,i=e.next();break;case 281:a.blockScalability=i.value,i=e.next();break;case 310:a.bitmap=i.value,i=e.next();break;case 0:if("BLOCK_RECORD"===i.value){se.trace("}"),t&&(n[t]=a);let s=a.layoutHandle;t&&s&&s.length>0&&"0"!==s&&(r._layoutBlocks[s]=a),se.trace("BlockRecord {"),a={},t=void 0,i=e.next()}else id(i),i=e.next();break;default:id(i),i=e.next()}se.trace("}"),t&&(n[t]=a);let s=a.layoutHandle;return t&&s&&s.length>0&&"0"!==s&&(r._layoutBlocks[s]=a),n}},STYLE:{tableRecordsProperty:"styles",tableName:"style",dxfSymbolName:"STYLE",parseTableRecords:function(){let t,n={},r={};for(se.trace("Style {"),i=e.next();!el(i,0,"ENDTAB");)switch(i.code){case 2:r.styleName=i.value,t=i.value,i=e.next();break;case 3:r.fontFile=i.value,i=e.next();break;case 4:r.bigFontFile=i.value,i=e.next();break;case 5:r.handle=i.value,i=e.next();break;case 40:r.textHeight=i.value,i=e.next();break;case 41:r.xScale=i.value,i=e.next();break;case 42:r.priorTextHeight=i.value,i=e.next();break;case 50:r.rotation=i.value,i=e.next();break;case 70:default:i=e.next();break;case 71:r.mirrorType=i.value,i=e.next();break;case 330:r.ownerHandle=i.value,i=e.next();break;case 0:"STYLE"===i.value&&(se.trace("}"),t&&(n[t]=r),se.trace("Style {"),r={},t=void 0,i=e.next())}return se.trace("}"),t&&(n[t]=r),n}},DIMSTYLE:{tableRecordsProperty:"dimStyles",tableName:"dimStyle",dxfSymbolName:"DIMSTYLE",parseTableRecords:function(){let t,n={},r={};for(se.trace("DimStyle {"),i=e.next();!el(i,0,"ENDTAB");)switch(i.code){case 2:r.styleName=i.value,t=i.value,i=e.next();break;case 40:r.DIMSCALE=i.value,i=e.next();break;case 41:r.DIMASZ=i.value,i=e.next();break;case 42:r.DIMEXO=i.value,i=e.next();break;case 44:r.DIMEXE=i.value,i=e.next();break;case 75:r.DIMSE1=i.value,i=e.next();break;case 76:r.DIMSE2=i.value,i=e.next();break;case 77:r.DIMTAD=i.value,i=e.next();break;case 140:r.DIMTXT=i.value,i=e.next();break;case 144:r.DIMLFAC=i.value,i=e.next();break;case 147:r.DIMGAP=i.value,i=e.next();break;case 176:r.DIMCLRD=i.value,i=e.next();break;case 178:r.DIMCLRT=i.value,i=e.next();break;case 271:r.DIMDEC=i.value,i=e.next();break;case 341:r.DIMLDRBLK=i.value,i=e.next();break;case 70:default:i=e.next();break;case 0:"DIMSTYLE"===i.value&&(se.trace("}"),t&&(n[t]=r),se.trace("DimStyle {"),r={},t=void 0,i=e.next())}return se.trace("}"),t&&(n[t]=r),n}}};function d(t){let n=[],a=t?"ENDBLK":"ENDSEC";for(t||(i=e.next());;)if(0===i.code){if(i.value===a)break;let t=r._entityHandlers[i.value];if(null==t){let t=i.value;r.unhandledEntities[t]||(r.unhandledEntities[t]=0),r.unhandledEntities[t]++,i=e.next();continue}{se.trace(i.value+" {");let r=t.parseEntity(e,i);r&&(r.layer||(r.layer="0"),void 0===r.colorIndex&&(r.colorIndex=256),r.lineType||(r.lineType=iy)),i=e.lastReadGroup,se.trace("}"),m(r),n.push(r)}}else i=e.next();return"ENDSEC"==a&&(i=e.next()),n}function p(){let t={};for(i=e.next();"EOF"!==i.value;)if(0===i.code){if("ENDSEC"===i.value)break;let n=r._objectHandlers[i.value];if(null==n){let t=i.value;r.unhandledObjects[t]||(r.unhandledObjects[t]=0),r.unhandledObjects[t]++,i=e.next();continue}{se.trace(i.value+" {");let r=n.parseObject(e,i),a=i.value;i=e.lastReadGroup,se.trace("}"),m(r),t[a]||(t[a]=[]),t[a].push(r)}}else i=e.next();return i=e.next(),t.LAYOUT&&(Object.keys(r._layoutBlocks).length!==t.LAYOUT.length&&se.warn("[DxfParser] The number of layout and block associations does not match!"),t.LAYOUT.forEach((e=>{r._layoutBlocks[e.handle]&&(e.associatedBlockName=r._layoutBlocks[e.handle].blockName)})),t.LAYOUT.sort(((e,t)=>e.tabOrder-t.tabOrder))),t}function f(t){let n={},i=t.code;if(n.x=t.value,i+=10,(t=e.next()).code!=i)throw new Error(`Expected code for point value to be ${i} but got ${t.code}.`);return n.y=t.value,i+=10,(t=e.next()).code!=i||(n.z=t.value,t=e.next()),n}function m(e){if(!e)throw new TypeError("entity cannot be undefined or null");e.handle||(e.handle=(n++).toString())}return function(){for(i=e.next();999===i.code;)i=e.next();for(;!e.isEOF();)if(0===i.code&&"SECTION"===i.value){if(i=e.next(),2!==i.code){se.error("Unexpected code %s after 0:SECTION",cpe(i)),i=e.next();continue}if("HEADER"===i.value)se.trace("> HEADER"),t.header=a(),se.trace("<");else if("TABLES"===i.value)se.trace("> TABLES"),t.tables=l(),se.trace("<");else if("BLOCKS"===i.value)se.trace("> BLOCKS"),t.blocks=s(),se.trace("<");else if("ENTITIES"===i.value)se.trace("> ENTITIES"),t.entities=d(!1),se.trace("<");else if("OBJECTS"===i.value)se.trace("> OBJECTS"),t.objects=p(),se.trace("<");else if("EOF"===i.value)se.trace("EOF");else{let e=i.value;r.unhandledSections[e]?r.unhandledSections[e]++:r.unhandledSections[e]=1}}else i=e.next();r.unhandledSections={},r.unhandledEntities={},r.unhandledObjects={},r.unsupportedLineTypes={}}(),t}splitByLineSeparator(e){let t=[],n=0;for(let i=0,r=e.length;i(e.Added="Added",e.Removed="Removed",e.Modified="Modified",e.NoChange="NoChange",e))(B5||{}),ja=1,mC=class{constructor(e,t,n){if(this.changes={},this.comparedBlocks=new Map,this.isComparingBlock=!1,this.isComparingDimension=!1,this.enableDetailComparision=!0,this.dxf1=e,this.dxf2=t,this.enableDetailComparision=!n||(null==n?void 0:n.enableDetailComparision),!e||!t)throw new Error("Invalid dxf data to compare!")}getLayerFrozen(e,t){var n,i,r;let a=null==(i=null==(n=e.tables)?void 0:n.layer)?void 0:i.layers;return a&&(null==(r=a[t.layer])?void 0:r.frozen)}compare(e){return ft(this,null,(function*(){this.changes={};let t=[],n=new Map;return this.dxf1.entities.forEach((e=>{if(!0!==e.inPaperSpace){let n=!0===this.getLayerFrozen(this.dxf1,e);!mC.ignoreEntityTypes.includes(e.type)&&!n&&t.push(e)}})),this.dxf2.entities.forEach((e=>{if(!0!==e.inPaperSpace){let t=!0===this.getLayerFrozen(this.dxf2,e);!mC.ignoreEntityTypes.includes(e.type)&&!t&&n.set(e.handle,e)}})),yield this.compareEntities(t,n,e),Promise.resolve(this.changes)}))}isDimensionBlock(e){return e.includes("*D")}compareInsertOrDemensionEntities(e,t,n,i){if(!e.block||!t.block)return;let r,a=e.block;if(this.isComparingBlock=!0,this.isDimensionBlock(a)){let n=this.dxf1.blocks[e.block],i=this.dxf2.blocks[t.block],s=Date.now();this.isComparingDimension=!0,r=this.compareBlock(e,t,n,i),this.isComparingDimension=!1,se.debug(`[DxfCompare] compare block: ${a} cost ${(Date.now()-s)/1e3}s`)}else{if(!this.comparedBlocks.has(a)){let n=this.dxf1.blocks[a],i=this.dxf2.blocks[a],r=Date.now(),s=this.compareBlock(e,t,n,i);this.comparedBlocks.set(a,s),se.debug(`[DxfCompare] compare block: ${a} cost ${(Date.now()-r)/1e3}s`)}r=this.comparedBlocks.get(a)}return null==r||r.forEach((t=>{if(t.parentHandles||(t.parentHandles=[]),n&&i)"Added"===t.type?t.parentHandles.push(i):"Removed"===t.type&&t.parentHandles.push(n);else{let n=[...t.parentHandles,e.handle];("Added"===t.type||"Removed"===t.type)&&(this.changes[ja]=Ri(Tr({id:ja},t),{parentHandles:n})),ja++}})),!n&&!i&&(this.isComparingBlock=!1),r}compareBlock(e,t,n,i){var r,a;let s=[],o=[];null==(r=null==n?void 0:n.entities)||r.forEach((e=>{"ATTDEF"!==e.type&&!this.bIgnoreChildEntitiesOriginalType(e)&&s.push(e)})),null==(a=null==i?void 0:i.entities)||a.forEach((e=>{"ATTDEF"!==e.type&&!this.bIgnoreChildEntitiesOriginalType(e)&&o.push(e)}));let l=[],h=[];for(let c=0;c0&&l.push(...e),i=!1,o.splice(r--,1);break}i=!1,o.splice(r--,1);break}i=!0}i&&(l.push({type:"Removed",handle:n.handle}),h.push(n.handle))}return o.forEach((e=>{h.includes(e.handle)||l.push({type:"Added",handle:e.handle})})),l}compareEntities(e,t,n){return ft(this,null,(function*(){var i,r;let a=Mt.getUpdateProgressFuncForLoop(e.length,n);for(let n=0;n0&&(this.changes[ja].detailChanges=l),ja++}t.delete(s)}else this.changes[ja]={id:ja,type:"Removed",handle:s},ja++;yield a(n)}for(let e of t){let t=e[0];this.changes[ja]={id:ja,type:"Added",handle:t},ja++}}))}bIgnoreChildEntitiesOriginalType(e){var t;return spe.includes(null==(t=e.extendedData)?void 0:t.originalType)}entitiesEqual(e,t,n,i,r){if(!this.baseEntitiesEqual(e,t,n,i,r))return!1;let a=e.type,s=!0;return"CIRCLE"===a||"ARC"===a?s=this.arcsEqual(e,t):"LWPOLYLINE"===a||"LINE"===a?s=this.linesEqual(e,t,r):"POLYLINE"===a?s=this.polylinesEqual(e,t):"TEXT"===a?s=this.textsEqual(e,t):"SOLID"===a?s=this.solidsEqual(e,t):"POINT"===a?s=this.pointEntitiesEqual(e,t):"INSERT"===a?s=this.insertsEqual(e,t):"SPLINE"===a?s=this.splinesEqual(e,t):"MTEXT"===a?s=this.mtextsEqual(e,t):"ELLIPSE"===a?s=this.ellipsesEqual(e,t):"DIMENSION"===a?s=this.dimensionsEqual(e,t):"REGION"===a?s=this.regionsEqual(e,t):"ATTDEF"===a?s=this.attDefsEqual(e,t):"ATTRIB"===a?s=this.attribsEqual(e,t):"HATCH"===a?s=this.hatchesEqual(e,t):"VIEWPORT"===a?s=this.viewportsEqual(e,t):"LEADER"===a?s=this.leadersEqual(e,t):"MULTILEADER"===a?s=this.mleadersEqual(e,t):"OLE2FRAME"===a&&(s=this.ole2framesEqual(e,t)),s}getColor(e,t,n){var i,r,a,s,o,l;if(e.isTrueColor||e.colorIndex>0&&e.colorIndex<256)return e.color;if(0===e.colorIndex)return n?this.getColor(n,t):null==(r=null==(i=t.tables)?void 0:i.layer)?void 0:r.layers[0].color;let h=0;if(256===e.colorIndex){let i=null==(s=null==(a=t.tables)?void 0:a.layer)?void 0:s.layers,r=i&&i[e.layer],c=i&&n&&i[n.layer];h=r&&"0"!==r.name?r.color:c?c.color:r?r.color:null==(l=null==(o=t.tables)?void 0:o.layer)?void 0:l.layers[0].color}return h}getLineType(e,t,n){var i,r;if(n&&"DIMENSION"===n.type)return this.getLineType(n,t);if(e.lineType!==iy&&e.lineType!==sy)return e.lineType;if(e.lineType===sy)return n?this.getLineType(n,t):e.lineType;let a=null==(r=null==(i=t.tables)?void 0:i.layer)?void 0:r.layers;if("0"!==e.layer){let t=a&&a[e.layer];if(t)return t.lineType}else if(n){let e=a&&a[n.layer];if(e)return e.lineType}return"CONTINUOUS"}addModificationItem(e,t,n,i){i&&(i[n]={old:e,new:t})}baseEntitiesEqual(e,t,n,i,r){var a,s;let o=!0,l=this.getColor(e,this.dxf1,n),h=this.getColor(t,this.dxf2,i);if(l!==h){if(o=!1,!this.enableDetailComparision)return o;this.addModificationItem(l,h,"color",r)}let c=this.getLineType(e,this.dxf1,n),u=this.getLineType(t,this.dxf2,i);return c!==u?(o=!1,this.enableDetailComparision?(this.addModificationItem(c,u,"lineType",r),!1):o):!((null==(a=e.extendedData)?void 0:a.originalType)!==(null==(s=t.extendedData)?void 0:s.originalType)||!this.isComparingBlock&&!this.isComparingDimension&&e.handle!==t.handle||!this.isComparingDimension&&e.ownerHandle!==t.ownerHandle||e.type!==t.type)&&o}arcsEqual(e,t){return!!(this.vectorsEqual(e.center,t.center)&&this.numberEqual(e.radius,t.radius)&&this.numberEqual(e.startAngle,t.startAngle)&&this.numberEqual(e.endAngle,t.endAngle))}linesEqual(e,t,n){let i=!0,r=e.constantWidth,a=t.constantWidth;if(r!==a){if(i=!1,!this.enableDetailComparision)return!1;this.addModificationItem(r||0,a||0,"constantWidth",n)}return!(!this.verticesEqual(e.vertices,t.vertices)||e.shape!==t.shape)&&i}polylinesEqual(e,t){return!(!this.vertexEntitiesEqual(e.vertices,t.vertices)||e.shape!==t.shape||e.isPolyfaceMesh!==t.isPolyfaceMesh)}textsEqual(e,t){if(e.halign!==t.halign)return!1;if(3===e.halign||5===e.halign){if(!this.pointsEqual(e.startPoint,t.startPoint))return!1}else if(!this.pointsEqual(e.endPoint,t.endPoint))return!1;return e.text===t.text}solidsEqual(e,t){return!!this.verticesEqual(e.points,t.points)}pointEntitiesEqual(e,t){return!!this.pointsEqual(e.position,t.position)}splinesEqual(e,t){return!(!this.verticesEqual(e.controlPoints,t.controlPoints)||!this.numbersEqual(e.knotValues,t.knotValues)||!this.numberEqual(e.degreeOfSplineCurve,t.degreeOfSplineCurve))}mtextsEqual(e,t){return!(!this.pointsEqual(e.position,t.position)||e.text!==t.text||!this.numberEqual(e.rotation,t.rotation))}ellipsesEqual(e,t){return!!(this.pointsEqual(e.center,t.center)&&this.pointsEqual(e.majorAxisEndPoint,t.majorAxisEndPoint)&&this.numberEqual(e.axisRatio,t.axisRatio)&&this.numberEqual(e.startAngle,t.startAngle)&&this.numberEqual(e.endAngle,t.endAngle))}attDefsEqual(e,t){return!(!this.pointsEqual(e.startPoint,t.startPoint)||!this.pointsEqual(e.endPoint,t.endPoint)||!this.numberEqual(e.xScale,t.xScale)||e.text!==t.text||e.tag!==t.tag||e.prompt!==t.prompt)}attribsEqual(e,t){return this.attDefsEqual(e,t)}hatchesEqual(e,t){let n=e,i=t;return!!(this.numberEqual(n.elevationX,i.elevationX)&&this.numberEqual(n.elevationY,i.elevationY)&&this.numberEqual(n.elevationZ,i.elevationZ)&&this.hatchBoundaryPathArraysEqual(n.boundaryPaths,i.boundaryPaths))}viewportsEqual(e,t){let n=e,i=t;return!!(this.pointsEqual(n.centerPoint,i.centerPoint)&&this.pointsEqual(n.centerPoint_dcs,i.centerPoint_dcs)&&this.pointsEqual(n.viewDirection,i.viewDirection)&&this.numberEqual(n.viewHeight,i.viewHeight)&&n.width_paperSpace===i.width_paperSpace&&n.height_paperSpace===i.height_paperSpace)}leadersEqual(e,t){return!!(this.pointsEqual(e.position,t.position)&&this.verticesEqual(e.vertices,t.vertices)&&e.arrowHeadBlockHandle===t.arrowHeadBlockHandle&&this.numberEqual(e.arrowHeadSize,t.arrowHeadSize)&&this.numberEqual(e.rotation,t.rotation)&&e.block===t.block)}mleadersEqual(e,t){return!(e.arrowHeadId!==t.arrowHeadId||!this.numberEqual(e.arrowHeadSize,t.arrowHeadSize))&&this.mleaderContextEqual(e.contextData,t.contextData)}ole2framesEqual(e,t){return!(e.leftUpX!==t.leftUpX||e.leftUpY!==t.leftUpY||e.leftUpZ!==t.leftUpZ||e.rightDownX!==t.rightDownX||e.rightDownY!==t.rightDownY||e.rightDownZ!==t.rightDownZ)}insertsEqual(e,t){var n,i,r,a;return"INSERT"===(null==(n=e.extendedData)?void 0:n.originalType)&&"INSERT"===(null==(i=t.extendedData)?void 0:i.originalType)?(se.warn(`[DxfCompare] We cannot compare insert (handle '${e.handle}') yet, ignored!`),!0):!!(this.pointsEqual(e.position,t.position)&&this.numberEqual(void 0===e.xScale?1:e.xScale,void 0===t.xScale?1:t.xScale)&&this.numberEqual(void 0===e.yScale?1:e.yScale,void 0===t.yScale?1:t.yScale)&&this.numberEqual(void 0===e.zScale?1:e.zScale,void 0===t.zScale?1:t.zScale)&&e.block===t.block&&(null==(r=e.entities)?void 0:r.length)===(null==(a=t.entities)?void 0:a.length))}dimensionsEqual(e,t){return!!this.pointsEqual(e.anchorPoint,t.anchorPoint)}regionsEqual(e,t){return se.warn("Cannot compare region yet!"),!0}vectorsEqual(e,t){return!e&&!t||!(!e||!t)&&this.numberEqual(e.x,t.x)&&this.numberEqual(e.y,t.y)&&this.numberEqual(e.z,t.z)}pointsEqual(e,t){return!e&&!t||!(!e||!t)&&this.numberEqual(e.x,t.x)&&this.numberEqual(e.y,t.y)&&this.numberEqual(e.z,t.z)&&this.numberEqual(e.bulge,t.bulge)}vertexEntityEqual(e,t){return!e&&!t||!(!e||!t)&&!(!this.pointsEqual(e,t)||e.polyfaceMeshVertex!==t.polyfaceMeshVertex||e.threeDPolylineMesh!==t.threeDPolylineMesh)}numbersEqual(e,t){if(!e&&!t)return!0;if(e&&t){if(e.length!==t.length)return!1;for(let n=0;n{let t={};return GE.forEach(((e,n)=>t[e]=n)),t})(),edt=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,aa=String.fromCharCode.bind(String),Cpe="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),Dpe=e=>e.replace(/=/g,"").replace(/[+\/]/g,(e=>"+"==e?"-":"_")),Ope=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),kpe=e=>{let t,n,i,r,a="",s=e.length%3;for(let o=0;o255||(i=e.charCodeAt(o++))>255||(r=e.charCodeAt(o++))>255)throw new TypeError("invalid character found");t=n<<16|i<<8|r,a+=GE[t>>18&63]+GE[t>>12&63]+GE[t>>6&63]+GE[63&t]}return s?a.slice(0,s-3)+"===".substring(s):a},$5=Jht?e=>btoa(e):hy?e=>Buffer.from(e,"binary").toString("base64"):kpe,X5=hy?e=>Buffer.from(e).toString("base64"):e=>{let t=[];for(let n=0,i=e.length;nt?Dpe(X5(e)):X5(e),tdt=e=>{if(e.length<2)return(t=e.charCodeAt(0))<128?e:t<2048?aa(192|t>>>6)+aa(128|63&t):aa(224|t>>>12&15)+aa(128|t>>>6&63)+aa(128|63&t);var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return aa(240|t>>>18&7)+aa(128|t>>>12&63)+aa(128|t>>>6&63)+aa(128|63&t)},ndt=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Fpe=e=>e.replace(ndt,tdt),Ppe=hy?e=>Buffer.from(e,"utf8").toString("base64"):Ape?e=>X5(Ape.encode(e)):e=>$5(Fpe(e)),uy=(e,t=!1)=>t?Dpe(Ppe(e)):Ppe(e),Ipe=e=>uy(e,!0),rdt=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,idt=e=>{switch(e.length){case 4:var t=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return aa(55296+(t>>>10))+aa(56320+(1023&t));case 3:return aa((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return aa((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},Npe=e=>e.replace(rdt,idt),Bpe=e=>{if(e=e.replace(/\s+/g,""),!edt.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(3&e.length));let t,n,i,r="";for(let a=0;a>16&255):64===i?aa(t>>16&255,t>>8&255):aa(t>>16&255,t>>8&255,255&t);return r},Z5=Kht?e=>atob(Ope(e)):hy?e=>Buffer.from(e,"base64").toString("binary"):Bpe,Upe=hy?e=>Cpe(Buffer.from(e,"base64")):e=>Cpe(Z5(e).split("").map((e=>e.charCodeAt(0)))),Hpe=e=>Upe(Vpe(e)),sdt=hy?e=>Buffer.from(e,"base64").toString("utf8"):Rpe?e=>Rpe.decode(Upe(e)):e=>Npe(Z5(e)),Vpe=e=>Ope(e.replace(/[-_]/g,(e=>"-"==e?"+":"/"))),Y5=e=>sdt(Vpe(e)),adt=e=>{if("string"!=typeof e)return!1;let t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},zpe=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),Gpe=function(){let e=(e,t)=>Object.defineProperty(String.prototype,e,zpe(t));e("fromBase64",(function(){return Y5(this)})),e("toBase64",(function(e){return uy(this,e)})),e("toBase64URI",(function(){return uy(this,!0)})),e("toBase64URL",(function(){return uy(this,!0)})),e("toUint8Array",(function(){return Hpe(this)}))},qpe=function(){let e=(e,t)=>Object.defineProperty(Uint8Array.prototype,e,zpe(t));e("toBase64",(function(e){return EC(this,e)})),e("toBase64URI",(function(){return EC(this,!0)})),e("toBase64URL",(function(){return EC(this,!0)}))},odt=()=>{Gpe(),qpe()},Wpe={version:Lpe,VERSION:Zht,atob:Z5,atobPolyfill:Bpe,btoa:$5,btoaPolyfill:kpe,fromBase64:Y5,toBase64:uy,encode:uy,encodeURI:Ipe,encodeURL:Ipe,utob:Fpe,btou:Npe,decode:Y5,isValid:adt,fromUint8Array:EC,toUint8Array:Hpe,extendString:Gpe,extendUint8Array:qpe,extendBuiltins:odt},Vl=ji(cme(),1),_C=new et,xdt=new et,Lc=class{static resetMergeInfo(){this.mergeInfo.removedObjects=0,this.mergeInfo.mergedMeshes=0,this.mergeInfo.mergedLines=0,this.mergeInfo.mergedPoints=0,this.mergeInfo.mergedUnknownTypeObjects=0,this.mergeInfo.elapsedTime=0}static merge(e,t=!0){let n=Date.now();this.mergeInner(e,t),this.mergeInfo.elapsedTime+=Date.now()-n}static mergeInner(e,t=!0){if(!e.children||e.children.length<1)return;let n=e.children.length,i={},r=[];for(let h=0;h0){this.mergeInner(n,t);continue}if(n.userData.relativeToCenter||!n.geometry)continue;let a=!1,s=Object.values(i);for(let t=s.length-1;t>=0;--t){let n=s[t].indexes[0];if(a=this.tryHandleMergeableObjects(e,h,n,i,r),a)break}for(let t=r.length-1;!a&&t>=0;--t){let n=r[t];if(a=this.tryHandleMergeableObjects(e,h,n,i,r),a)break}a||r.push(h)}if(Object.keys(i).length<=0)return;let a=[],s=[],o=[],l=[];Object.values(i).forEach((n=>{let i,r=n.indexes,h=e.children[r[0]],c=[],u=0,d=0,p=0,f=[];if(r.forEach((n=>{var i,r,a,s;let o=e.children[n],l=null==(i=o.geometry)?void 0:i.clone();if(l.applyMatrix4(o.matrix),l.userData.isLineSegments=3===o.type,c.push(l),t){let e=null==(a=null==(r=l.attributes)?void 0:r.position)?void 0:a.count,t=(null==(s=l.index)?void 0:s.count)||0;f.push({batchId:u,positionStart:d,positionCount:e,indexStart:p,indexCount:t}),d+=e,p+=t,u++}})),0!==c.length){if(4===h.type){let e=Ni(c);if(!e)return;e.userData={},i=new bn(h.type),i.geometry=e,i.material=h.material,a.push(i)}else if(2===h.type||3===h.type){let e=Ar.mergeLineGeometries(c,t,h.material instanceof Iu||h.material instanceof ln,f);if(!e)return;i=new bn(3),i.geometry=e,i.material=h.material,s.push(i)}else if(1===h.type){let e=Ni(c);if(!e)return;e.userData={},i=new bn(h.type),i.geometry=e,i.material=h.material,o.push(i)}i&&(t?i.userData.batches=f:(i.userData=h.userData,i.userData.batches=void 0),i.userData.layerName=h.userData.layerName,i.name=`[Merged] ${h.name}`,i.renderOrder=h.renderOrder,i.layers.mask=h.layers.mask,l.push(...r)),c.forEach((e=>{e.dispose(),Qt.releaseGeometryManually(e)})),c=[]}})),l.sort(((e,t)=>t-e)),l.forEach((t=>{let n=e.children[t];e.remove(n)})),[...a,...s,...o].forEach((t=>{e.add(t)})),this.mergeInfo.removedObjects+=l.length,this.mergeInfo.mergedMeshes+=a.length,this.mergeInfo.mergedLines+=s.length,this.mergeInfo.mergedPoints+=o.length}static tryHandleMergeableObjects(e,t,n,i,r){let a=!1,s=Array.isArray(e),o=s?e.length:e.children.length;if(t===n||t>=o||n>=o)return a;let l=s?e[t]:e.children[t],h=s?e[n]:e.children[n];return this.areObjectsMergeable(l,h)&&Ar.areGeometriesMergeable(l.geometry,h.geometry)&&es.materialsEquals(l.material,h.material)&&(i[n]||(i[n]={indexes:[n]},this.removeFromArray(r,n)),i[n].indexes.push(t),a=!0),a}static isFilteredByOtherFactors(e,t){let n=e;if(4===n.type&&n.material&&n.material.isShaderMaterial)return!0;let i=!1,r=e;for(;r&&r!==t;){let e=r.userData;if(e.relativeToCenter||e.spatialFilterHandle){i=!0;break}r=r.parent}return i}static deepMerge(e,t=void 0,n=!0,i=!0,r=!0){let a={added:[],removed:[]};if(e.length<=1)return a;let s=Date.now(),o={},l=[];for(let m=0;m=0;--t){let r=i[t].indexes[0];if(n=this.tryHandleMergeableObjects(e,m,r,o,l),n)break}for(let t=l.length-1;!n&&t>=0;--t){let i=l[t];if(n=this.tryHandleMergeableObjects(e,m,i,o,l),n)break}n||l.push(m)}if(Object.keys(o).length<=0)return a;se.debug(`[Merge] Built merged indexes for ${e.length} objects in ${(Date.now()-s)/1e3}s`),s=Date.now();let h=[],c=[],u=[],d=[];Object.values(o).forEach((n=>{let i=n.indexes;if(i.length<2)return;let a,s=e[i[0]],o=[],l=0,p=0,f=0,m=[];if(i.forEach((n=>{var i,a,h,c,u;let d=e[n],g=null==(i=d.geometry)?void 0:i.clone();if(s.material instanceof Gn&&g.deleteAttribute("lineDistance"),this.applyMatrix(g,d,t),g.userData.isLineSegments=3===d.type,o.push(g),r){let e,t=null==(h=null==(a=g.attributes)?void 0:a.position)?void 0:h.count,n=(null==(c=g.index)?void 0:c.count)||0;(2===s.type||3===s.type)&&(g.boundingSphere||g.computeBoundingSphere(),e=null==(u=g.boundingSphere)?void 0:u.clone()),m.push({batchId:l,positionStart:p,positionCount:t,indexStart:f,indexCount:n,boundingSphere:e}),p+=t,f+=n,l++}})),0!==o.length){if(4===s.type){let e=Ni(o);if(!e)return;e.userData={},a=new bn(s.type),a.geometry=e,a.material=s.material,h.push(a)}else if(2===s.type||3===s.type){let e=Ar.mergeLineGeometries(o,r,s.material instanceof Iu||s.material instanceof ln,m);if(!e)return;a=new bn(3),a.geometry=e,a.material=s.material,c.push(a)}else if(1===s.type){let e=Ni(o);if(!e)return;e.userData={},a=new bn(s.type),a.geometry=e,a.material=s.material,u.push(a)}a&&(r?a.userData.batches=m:(a.userData=s.userData,a.userData.batches=void 0),a.userData.layerName=s.userData.layerName,a.name=`[Merged] ${s.name}`,a.renderOrder=s.renderOrder,a.layers.mask=s.layers.mask,i.forEach((e=>d.push(e)))),o.forEach((e=>{e.dispose(),Qt.releaseGeometryManually(e)})),o=[]}})),se.debug(`[Merge] Ran deepMerge() in ${(Date.now()-s)/1e3}s`);let p=a.removed;d.forEach((t=>{let i=e[t];p.push(i),n&&i.removeFromParent()}));let f=a.added;return[...h,...c,...u].forEach((e=>{f.push(e),n&&t&&t.add(e)})),this.mergeInfo.removedObjects+=d.length,this.mergeInfo.mergedMeshes+=h.length,this.mergeInfo.mergedLines+=c.length,this.mergeInfo.mergedPoints+=u.length,i&&t&&Hn.removeEmptyObjects(t),a}static applyMatrix(e,t,n){let i=t;for(_C.identity();i&&i!==n&&(_C.premultiply(i.matrix),i.parent);)i=i.parent;return _C.equals(xdt)?e:e.applyMatrix4(_C)}static removeFromArray(e,t){for(let n=e.length-1;n>=0;--n)if(e[n]===t)return void e.splice(n,1)}static areObjectsMergeable(e,t){return e.layers.mask===t.layers.mask&&e.renderOrder===t.renderOrder&&e.userData.layerName===t.userData.layerName&&(e.type===t.type||!(2!==e.type&&3!==e.type||2!==t.type&&3!==t.type))}};function ume(e,t,n,i){let r={u_cameraZoom:n,u_patternLines:{value:e},u_patternAngle:{value:t},u_color:{value:i}},a=`\n uniform mat4 modelMatrix;\n uniform float u_cameraZoom;\n uniform vec3 u_color;\n varying vec3 v_pos;\n\n struct PatternLine {\n vec2 origin;\n vec2 delta;\n float angle;\n float pattern[MAX_PATTERN_SEGMENT_COUNT];\n float patternSum[MAX_PATTERN_SEGMENT_COUNT+1];\n float patternLength;\n };\n\n uniform PatternLine u_patternLines[${e.length}];\n uniform float u_patternAngle;\n\n #include \n\n // Clamp [0..1] range\n #define saturate(a) clamp(a, 0.0, 1.0)\n\n const float EPS = 1000.0;\n\n vec2 getWorldScale() {\n return vec2(length(modelMatrix[0].xyz), length(modelMatrix[1].xyz));\n }\n\n vec2 rotate(vec2 st, float rotation) {\n const float PI = 3.1415926;\n float angle = rotation * PI/180.0;\n float sine = sin(angle), cosine = cos(angle);\n return vec2(cosine * st.x - sine * st.y, cosine * st.y + sine * st.x);\n }\n\n vec2 translate(vec2 samplePosition, vec2 offset) {\n //move sample point in the opposite direction that we want to move shapes in\n return samplePosition - offset;\n }\n\n vec2 scale(vec2 samplePosition, float scale) {\n return samplePosition / scale;\n }\n\n float sdfLine(vec2 st, vec2 a, vec2 b) {\n vec2 ap = st - a;\n vec2 ab = b - a;\n return abs(((ap.x * ab.y) - (ab.x * ap.y))) / length(ab);\n }\n\n float drawSpaceLine(vec2 st, float distanceBetweenLines, float thick) {\n float dist = sdfLine(st , vec2(0.0, 0.0) , vec2(1.0, 0.0));\n \n //vec2 tt = dFdy(st);\n //float scale = (abs(tt.x)+abs(tt.y))/2.0;\n //float scale = length(fwidth(st)) * 0.5;\n // close to a pixel\n //float thick = 2.0;\n //thick = (thick * 0.5 - 0.5) * scale;\n\n float lineDistance = abs(fract(dist / distanceBetweenLines + 0.5) - 0.5) * distanceBetweenLines;\n //float lineDistance = fract(dist / distanceBetweenLines);\n //float distanceChange = fwidth(dist) * 0.5;\n //float threshold = smoothstep(thick - distanceChange, thick + distanceChange, lineDistance);\n //float threshold = step(thick,lineDistance);\n // remove gradient\n //float threshold = step(0.001,lineDistance);\n float threshold = step(thick,lineDistance);\n\n return threshold;\n }\n\n float drawSolidLine(PatternLine patternLine, float thick) {\n vec2 origin = patternLine.origin;\n vec2 delta = patternLine.delta;\n float distanceBetweenLines = length(delta);\n\n origin = rotate(origin,u_patternAngle);\n vec2 st = rotate(v_pos.xy - origin, -(patternLine.angle + u_patternAngle));\n\n return drawSpaceLine(st, distanceBetweenLines , thick);\n }\n\n int getPatternIndex(PatternLine patternLine, float u, out float distance ) {\n //u = mod(u, patternLine.patternLength);\n float y = floor(u/patternLine.patternLength);\n u = u - patternLine.patternLength * y;\n //float distance = 0.0;\n\n #pragma unroll_loop_start\n for(int i = 1; i < patternLine.patternSum.length(); i++){\n if(u <= patternLine.patternSum[i]) {\n distance = u - patternLine.patternSum[i-1];\n return i - 1;\n }\n }\n #pragma unroll_loop_end\n\n return -1;\n }\n\n float drawDashedLine(PatternLine patternLine, float thick){\n float threshold = 1.0;\n vec2 origin = patternLine.origin;\n vec2 delta = patternLine.delta; \n float distanceBetweenLines = abs(delta.y);\n\n origin = rotate(origin, u_patternAngle);\n vec2 st = rotate(v_pos.xy - origin, -(patternLine.angle + u_patternAngle));\n\n float offsetX = st.y * delta.x/delta.y;\n float u = st.x - offsetX;\n float distance = 0.0;\n int index = getPatternIndex(patternLine, u, distance);\n if(index < 0) {\n return threshold;\n }\n\n float size = patternLine.pattern[index];\n if(size >= 0.0) {\n threshold = drawSpaceLine(st, distanceBetweenLines , thick);\n // Try to solve the problem caused by the precision after zooming out by drawing a part of the dashed line\n } else if (distance < thick) {\n //threshold = 0.8;\n threshold = drawSpaceLine(st, distanceBetweenLines , thick);\n }\n \n return threshold;\n }\n\n float drawLine(PatternLine patternLine, float thick) {\n float t = 0.0;\n if(patternLine.patternLength > 0.0) {\n t = drawDashedLine(patternLine, thick);\n } else {\n t = drawSolidLine(patternLine, thick);\n }\n return t;\n }\n\n void main() {\n #include \n \n vec2 worldScale = getWorldScale();\n float averageScale = (abs(worldScale.x) + abs(worldScale.y))/2.0;\n // possible size of a pixel \n float thick = (0.7 / averageScale) / u_cameraZoom;\n\n if(thick > EPS) {\n gl_FragColor = vec4(u_color, 1.0);\n #include \n return;\n }\n\n float total = 0.0;\n\n#if ${e.length} > 1\n #pragma unroll_loop_start\n for (int i = 0; i < u_patternLines.length(); i++) {\n PatternLine pl = u_patternLines[i];\n float t = drawLine(pl, thick);\n total += (1.0 - t);\n }\n #pragma unroll_loop_end\n#else\n float t = drawLine(u_patternLines[0], thick);\n total += (1.0 - t);\n#endif\n\n total = saturate(total);\n if (total < 0.001) {\n discard;\n }\n\n gl_FragColor = vec4(u_color * total, 1.0);\n #include \n }\n `;return new ln({uniforms:r,vertexShader:"\n varying vec3 v_pos;\n\n #include \n void main() {\n //vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n v_pos = position;\n\n #include \n #include \n #include \n }",fragmentShader:a,clipping:!0})}Lc.mergeInfo={removedObjects:0,mergedMeshes:0,mergedLines:0,mergedPoints:0,mergedUnknownTypeObjects:0,elapsedTime:0};var TC=class{static createLineShaderMaterial(e,t,n,i,r){let a=0,s=[];for(let h=0;h\n\n vec2 getWorldScale() {\n return vec2(length(modelMatrix[0].xyz), length(modelMatrix[1].xyz));\n }\n\n void main() {\n\n #include \n\n // vec2 worldScale = getWorldScale();\n // float averageScale = (abs(worldScale.x) + abs(worldScale.y))/2.0;\n // When zoomed out to a certain extent, it is displayed as a solid line.\n if(patternLength * u_viewportScale * u_cameraZoom/1.5 < 1.0){\n gl_FragColor = vec4(u_color, opacity);\n #include \n return;\n }\n\n float pos = mod(vLineDistance, patternLength * u_viewportScale);\n\n for ( int i = 0; i < ${e.length}; i++ ) {\n pos = pos - abs(pattern[i] * u_viewportScale);\n if ( pos < 0.0 ) {\n if ( pattern[i] > 0.0 ) {\n gl_FragColor = vec4(u_color, opacity);\n break;\n }\n discard;\n }\n }\n #include \n }`;return new ln({uniforms:o,vertexShader:"\n attribute float lineDistance;\n varying float vLineDistance;\n\n #include \n\n void main() {\n vLineDistance = lineDistance;\n\n #include \n #include \n #include \n }",fragmentShader:l,clipping:!0})}},e6={};FT(e6,{default:()=>Q5});var J5={};FT(J5,{default:()=>K5});var K5=(e,t)=>void 0===t||0==+t?Math.round(e):(e=+e,t=+t,isNaN(e)||"number"!=typeof t||t%1!=0?NaN:(e=e.toString().split("e"),+((e=(e=Math.round(+(e[0]+"e"+(e[1]?+e[1]-t:-t)))).toString().split("e"))[0]+"e"+(e[1]?+e[1]+t:t)))),Q5=(e,t,n,i,r)=>{let a=n.length,s=n[0].length;if(e<0||e>1)throw new Error("t out of bounds [0,1]: "+e);if(t<1)throw new Error("degree must be at least 1 (linear)");if(t>a-1)throw new Error("degree must be less than or equal to point count - 1");if(i){if(i.length!==a+t+1)throw new Error("bad knot vector length")}else{i=[];for(let e=0;e=i[o]&&e<=i[o+1]);o++);let u,d=[];for(let f=0;fo-t-1+f;n--){u=(e-i[n])/(i[n+t+1-f]-i[n]);for(let e=0;e{if(!e)return[];e=e.replace(/%%(.)/g,((e,t)=>bdt[t]||t));let n,i=null==t?void 0:t.encoding,r=i instanceof TextDecoder?i:void 0,a="",s=[],o=e=>{a&&(s.push(a),a=""),s.push(e)};for(let l=0;l(e=Tdt(e),t?wdt(e,t):e),Tdt=e=>e.replace(/\\[uU]\+([0-9a-fA-F]{4})/g,((e,t)=>String.fromCodePoint(parseInt(t,16)))),wdt=(e,t)=>{let n=t instanceof TextDecoder?t:new TextDecoder(t);return e.replace(/\\[mM]\+[0|1]([0-9a-fA-F]{2})([0-9a-fA-F]{2})/g,((e,i,r)=>(n=n||new TextDecoder(t)).decode(new Uint8Array([parseInt(i,16),parseInt(r,16)]))))},SC=(e,t)=>{let n=0,i={text:""},r=[i],a=(e=_dt(e,null==t?void 0:t.encoding)).matchAll(/%%(\d\d\d|.)/g);for(let s of a){i.text+=e.slice(n,s.index);let t=s[1].toLowerCase(),a=Edt[t];a?i.text+=a:3===t.length?i.text+=String.fromCodePoint(+t):"k"===t||"o"===t||"u"===t?(i=Ri(Tr({},i),{text:""}),i[t]?delete i[t]:i[t]=1,r.push(i)):i.text+=t,n=s.index+s[0].length}return i.text+=e.slice(n),r.filter((e=>e.text))},t6=(e=>(e.Unitless="Unitless",e.Inches="Inches",e.Feet="Feet",e.Millimeters="Millimeters",e.Centimeters="Centimeters",e.Meters="Meters",e))(t6||{}),hme=e=>"Unitless"===e?1:"Inches"===e?.0254:"Feet"===e?.3048:"Millimeters"===e?.001:"Centimeters"===e?.01:("Meters"===e||console.warn(`[Units] Unsupported unit '${e}', will return 1 for unit scale.`),1),dme=(e,t)=>hme(e)/hme(t),MC=class extends ta{constructor(e,t={}){let n=t.font;if(void 0===n)super();else{let i=n.generateShapes(e,t.size);t.depth=void 0!==t.height?t.height:50,void 0===t.bevelThickness&&(t.bevelThickness=10),void 0===t.bevelSize&&(t.bevelSize=8),void 0===t.bevelEnabled&&(t.bevelEnabled=!1),super(i,t)}this.type="TextGeometry"}},RC=class{constructor(e){this.isFont=!0,this.type="Font",this.data=e}generateShapes(e,t=100){let n=[],i=Sdt(e,t,this.data);for(let r=0,a=i.length;rwindow.localStorage.getItem(fme),Adt=()=>{window.localStorage.setItem(fme,$E)},pme=()=>Rdt()!==$E&&(Adt(),!0),dy=class{constructor(){this.DATABASE_NAME="gemini_viewer_db",this.TABLES=[{name:"viewpoint",options:{keyPath:"id",autoIncrement:!0},indexArray:[]},{name:"annotation",options:{keyPath:"id",autoIncrement:!0},indexArray:[]},{name:"dxfdata",options:{keyPath:"dxfDataId",autoIncrement:!1},indexArray:[]},{name:"fontdata",options:{keyPath:"fileName",autoIncrement:!0},indexArray:[]}],this.db=void 0}static instance(){return dy._instance||(dy._instance=new dy),dy._instance}getDatabase(){return ft(this,null,(function*(){let e=yield this.getDB(this.DATABASE_NAME);return this.db||(e.close(),pme()&&(yield this.deleteDataBase(this.DATABASE_NAME)),e=yield this.getUpgradedDB(e)),e.onclose=()=>{this.db=void 0,se.debug(`[DB] Db ${e.name} is closed.`)},e.onerror=t=>{this.db=void 0,se.debug(`[DB] Db ${e.name} encountered error.`,t)},e.onabort=t=>{this.db=void 0,se.debug(`[DB] Db ${e.name} aborted.`,t)},e.onversionchange=e=>{se.debug("onversionchange",e)},this.db=e,Promise.resolve(this.db)}))}closeDatabase(){this.db&&this.db.close()}deleteDataBase(e){return new Promise(((t,n)=>{let i=window.indexedDB.deleteDatabase(e);i.onerror=e=>{se.debug(e),n(e)},i.onsuccess=n=>{let i=n.target;se.debug(`[DB] Db ${e} delete old version ${n.oldVersion}.`),t(i)}}))}getDB(e){return ft(this,null,(function*(){return new Promise(((t,n)=>{let i=window.indexedDB.open(e);i.onerror=n,i.onsuccess=e=>{let n=e.target.result;se.debug(`[DB] Db ${n.name} opened (version ${n.version}).`),t(n)}}))}))}getUpgradedDB(e){return ft(this,null,(function*(){return new Promise(((t,n)=>{se.debug(`[DB] Upgrading db ${e.name} (version ${e.version})`);let i=window.indexedDB.open(e.name,e.version+1);i.onerror=n,i.onblocked=e=>{se.debug("onblocked",e)},i.onupgradeneeded=e=>{e.target.transaction.oncomplete=()=>{se.debug(`[DB] Upgrade is done (new version: ${t.version}).`)};let t=e.target.result,n=[];for(let i=0;i0&&Promise.all(n).then((()=>{se.debug(`[DB] All(${n.length}) tables created.`)}))},i.onsuccess=e=>{let n=e.target.result;se.debug(`[DB] Db ${n.name} opened (version ${n.version}).`),t(n)}}))}))}createTable(e,t,n,i){return ft(this,null,(function*(){return new Promise((r=>{let a=e.createObjectStore(t,n);i&&i.forEach((e=>{a.createIndex(e.name,e.fields,{unique:e.unique})})),se.debug(`[DB] Table ${t} created.`),r(e)}))}))}},ns=dy;ns._instance=void 0;var Wu=class{constructor(){if(this.db=void 0,this.isCreatingTable=!1,-1===ns.instance().TABLES.findIndex((e=>e.name===this.tableName())))throw new Error(`Make sure to add table '${this.tableName()}' to IndexedDbManager.TABLES!`)}tableName(){throw new Error("Derived class have to override 'tableName', and set a proper table name!")}add(e,t,n){let i=this.tableName();ns.instance().getDatabase().then((r=>{let a=r.transaction([i],"readwrite").objectStore(i).add(e);a.onsuccess=t,a.onerror=n})).finally((()=>{ns.instance().closeDatabase()})).catch((e=>{n&&n(e)}))}save(e,t,n){let i=this.tableName();ns.instance().getDatabase().then((r=>{let a=r.transaction([i],"readwrite").objectStore(i).put(e);a.onsuccess=t,a.onerror=n})).finally((()=>{ns.instance().closeDatabase()}))}delete(e,t,n){let i=this.tableName();ns.instance().getDatabase().then((r=>{let a=r.transaction([i],"readwrite").objectStore(i).delete(e);a.onsuccess=t,a.onerror=n})).finally((()=>{ns.instance().closeDatabase()}))}update(){ns.instance().getDatabase().then((()=>{}))}query(e,t){let n=this.tableName();ns.instance().getDatabase().then((i=>{let r=i.transaction([n],"readonly").objectStore(n).openCursor();r.onsuccess=t=>{let n=t.target.result;n&&n.continue(),e&&e(n)},r.onerror=t})).finally((()=>{ns.instance().closeDatabase()}))}queryByIndex(e,t,n,i){let r=this.tableName();ns.instance().getDatabase().then((a=>{let s=a.transaction([r],"readonly").objectStore(r).index(e).get(t);s.onerror=i,s.onsuccess=function(e){var t;let i=null==(t=e.target)?void 0:t.result;n&&n(i)}})).finally((()=>{ns.instance().closeDatabase()}))}queryAll(e,t){let n=this.tableName();ns.instance().getDatabase().then((i=>{let r=i.transaction([n],"readonly").objectStore(n).getAll();r.onsuccess=t=>{e&&e(r.result)},r.onerror=t})).finally((()=>{ns.instance().closeDatabase()}))}clearAll(e,t){let n=this.tableName();ns.instance().getDatabase().then((i=>{let r=i.transaction([n],"readwrite").objectStore(n).clear();r.onsuccess=t=>{e&&e(t)},r.onerror=e=>{t&&t(e)}})).finally((()=>{ns.instance().closeDatabase()}))}},fy=class extends Wu{tableName(){return"annotation"}static instance(){return fy._instance||(fy._instance=new fy),fy._instance}query(e,t,n){let i=[];super.query((n=>{n?!n.value||n.value.projectId!==e||i.push(n.value):t&&t(i)}),(e=>{console.log(e)}))}},n6=fy;n6._instance=void 0;var py=class extends Wu{tableName(){return"viewpoint"}static instance(){return py._instance||(py._instance=new py),py._instance}query(e,t,n){let i=[];super.query((n=>{n?!n.value||n.value.projectId!==e||i.push(n.value):t&&t(i)}),(e=>{n&&n(),console.log(e)}))}},r6=py;r6._instance=void 0;var my=class extends Wu{tableName(){return"dxfdata"}static instance(){return my._instance||(my._instance=new my),my._instance}query(e,t,n){let i=[],r=this.tableName();ns.instance().getDatabase().then((a=>{let s=a.transaction([r],"readonly").objectStore(r).get(e);s.onerror=e=>{n&&n(e),se.info("[DxfDataTable] Failed to query !",e)},s.onsuccess=()=>{s.result&&i.push(s.result),t&&t(i)}})).finally((()=>{ns.instance().closeDatabase()}))}},gy=my;gy._instance=void 0;var Ym=class extends Wu{tableName(){return"fontdata"}static instance(){return Ym._instance||(Ym._instance=new Ym),Ym._instance}query(e){let t;return new Promise(((n,i)=>{super.query((i=>{i?!i.value||i.value.fileName!==e||(t=i.value):n(t)}),(e=>{i(e)}))}))}queryAll(){return ft(this,null,(function*(){return new Promise(((e,t)=>{uG(Ym.prototype,this,"queryAll").call(this,(t=>{e(t)}),(e=>{t(e)}))}))}))}},sd=Ym;sd._instance=void 0;var vy=class extends RC{constructor(e,t){super(t),this.info="",this.orientation=0,this.baseUp=0,this.baseDown=0,this.fileHeader="",this.fileVersion="",this.order=0,this.unsupportedChars={},this.fileName=e}addUnsupportedChar(e){this.unsupportedChars[e]||(this.unsupportedChars[e]=0),this.unsupportedChars[e]++}getFontFile(){return{order:this.order,data:this.data,info:this.info,orientation:this.orientation,baseUp:this.baseUp,baseDown:this.baseDown,fileName:this.fileName,fileHeader:this.fileHeader,fileVersion:this.fileVersion}}setFontFile(e){this.fileName=e.fileName,this.data=e.data,this.info=e.info,this.order=e.order,this.orientation=e.orientation,this.baseUp=e.baseUp,this.baseDown=e.baseDown,this.fileHeader=e.fileHeader,this.fileVersion=e.fileVersion}setFontDataToIndexedDb(){return ft(this,null,(function*(){let e=this.getFontFile();return new Promise(((t,n)=>{sd.instance().save(e,(()=>{console.log(`[FontFile] Saved '${this.fileName}' (${this.fileHeader}) to indexedDb`),t()}),(e=>n(`[FontFile] Failed to save '${this.fileName}' (${this.fileHeader}) to indexedDb! ${e}`)))}))}))}getFontDataByIndexedDb(){return ft(this,null,(function*(){return sd.instance().query(this.fileName)}))}releaseFontData(){this.data={}}};String.prototype.codePointAt||function(){var e=function(){try{var e={},t=Object.defineProperty,n=t(e,e,e)&&t}catch(e){}return n}(),t=function(e){if(null==this)throw TypeError();var t=String(this),n=t.length,i=e?Number(e):0;if(i!=i&&(i=0),!(i<0||i>=n)){var r,a=t.charCodeAt(i);return a>=55296&&a<=56319&&n>i+1&&(r=t.charCodeAt(i+1))>=56320&&r<=57343?1024*(a-55296)+r-56320+65536:a}};e?e(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t}();var _6=0,ege=-3;function JE(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function Cdt(e,t){this.source=e,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new JE,this.dtree=new JE}var tge=new JE,nge=new JE,T6=new Uint8Array(30),w6=new Uint16Array(30),rge=new Uint8Array(30),ige=new Uint16Array(30),Pdt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),mme=new JE,ju=new Uint8Array(320);function sge(e,t,n,i){var r,a;for(r=0;r>>=1,t}function Xu(e,t,n){if(!t)return n;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>16-t;return e.tag>>>=t,e.bitcount-=t,i+n}function f6(e,t){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>=1,++r,n+=t.table[r],i-=t.table[r]}while(i>=0);return e.tag=a,e.bitcount-=r,t.trans[n+i]}function Ddt(e,t,n){var i,r,a,s,o,l;for(i=Xu(e,5,257),r=Xu(e,5,1),a=Xu(e,4,4),s=0;s<19;++s)ju[s]=0;for(s=0;s8;)e.sourceIndex--,e.bitcount-=8;if((t=256*(t=e.source[e.sourceIndex+1])+e.source[e.sourceIndex])!==(65535&~(256*e.source[e.sourceIndex+3]+e.source[e.sourceIndex+2])))return ege;for(e.sourceIndex+=4,n=t;n;--n)e.dest[e.destLen++]=e.source[e.sourceIndex++];return e.bitcount=0,_6}function kdt(e,t){var n,i,r=new Cdt(e,t);do{switch(n=Ldt(r),Xu(r,2,0)){case 0:i=Odt(r);break;case 1:i=vme(r,tge,nge);break;case 2:Ddt(r,r.ltree,r.dtree),i=vme(r,r.ltree,r.dtree);break;default:i=ege}if(i!==_6)throw new Error("Data error")}while(!n);return r.destLenthis.x2&&(this.x2=e)),"number"==typeof t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))},Ff.prototype.addX=function(e){this.addPoint(e,null)},Ff.prototype.addY=function(e){this.addPoint(null,e)},Ff.prototype.addBezier=function(e,t,n,i,r,a,s,o){var l=[e,t],h=[n,i],c=[r,a],u=[s,o];this.addPoint(e,t),this.addPoint(s,o);for(var d=0;d<=1;d++){var p=6*l[d]-12*h[d]+6*c[d],f=-3*l[d]+9*h[d]-9*c[d]+3*u[d],m=3*h[d]-3*l[d];if(0!==f){var g=Math.pow(p,2)-4*m*f;if(!(g<0)){var v=(-p+Math.sqrt(g))/(2*f);0=0&&i>0&&(n+=" "),n+=t(r)}return n}e=void 0!==e?e:2;for(var i="",r=0;r"},Fs.prototype.toDOMElement=function(e){var t=this.toPathData(e),n=document.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d",t),n};var Yn={fail:age,argument:yme,assert:yme},xme=32768,bme=2147483648,by={},nn={},Qn={};function Fc(e){return function(){return e}}nn.BYTE=function(e){return Yn.argument(e>=0&&e<=255,"Byte value should be between 0 and 255."),[e]},Qn.BYTE=Fc(1),nn.CHAR=function(e){return[e.charCodeAt(0)]},Qn.CHAR=Fc(1),nn.CHARARRAY=function(e){void 0===e&&(e="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var t=[],n=0;n>8&255,255&e]},Qn.USHORT=Fc(2),nn.SHORT=function(e){return e>=xme&&(e=-(2*xme-e)),[e>>8&255,255&e]},Qn.SHORT=Fc(2),nn.UINT24=function(e){return[e>>16&255,e>>8&255,255&e]},Qn.UINT24=Fc(3),nn.ULONG=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},Qn.ULONG=Fc(4),nn.LONG=function(e){return e>=bme&&(e=-(2*bme-e)),[e>>24&255,e>>16&255,e>>8&255,255&e]},Qn.LONG=Fc(4),nn.FIXED=nn.ULONG,Qn.FIXED=Qn.ULONG,nn.FWORD=nn.SHORT,Qn.FWORD=Qn.SHORT,nn.UFWORD=nn.USHORT,Qn.UFWORD=Qn.USHORT,nn.LONGDATETIME=function(e){return[0,0,0,0,e>>24&255,e>>16&255,e>>8&255,255&e]},Qn.LONGDATETIME=Fc(8),nn.TAG=function(e){return Yn.argument(4===e.length,"Tag should be exactly 4 ASCII characters."),[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]},Qn.TAG=Fc(4),nn.Card8=nn.BYTE,Qn.Card8=Qn.BYTE,nn.Card16=nn.USHORT,Qn.Card16=Qn.USHORT,nn.OffSize=nn.BYTE,Qn.OffSize=Qn.BYTE,nn.SID=nn.USHORT,Qn.SID=Qn.USHORT,nn.NUMBER=function(e){return e>=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?nn.NUMBER16(e):nn.NUMBER32(e)},Qn.NUMBER=function(e){return nn.NUMBER(e).length},nn.NUMBER16=function(e){return[28,e>>8&255,255&e]},Qn.NUMBER16=Fc(3),nn.NUMBER32=function(e){return[29,e>>24&255,e>>16&255,e>>8&255,255&e]},Qn.NUMBER32=Fc(5),nn.REAL=function(e){var t=e.toString(),n=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(n){var i=parseFloat("1e"+((n[2]?+n[2]:0)+n[1].length));t=(Math.round(e*i)/i).toString()}for(var r="",a=0,s=t.length;a>8&255,t[t.length]=255&i}return t},Qn.UTF16=function(e){return 2*e.length};var p6={"x-mac-croatian":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\u0160\u2122\xb4\xa8\u2260\u017d\xd8\u221e\xb1\u2264\u2265\u2206\xb5\u2202\u2211\u220f\u0161\u222b\xaa\xba\u03a9\u017e\xf8\xbf\xa1\xac\u221a\u0192\u2248\u0106\xab\u010c\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u0110\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\uf8ff\xa9\u2044\u20ac\u2039\u203a\xc6\xbb\u2013\xb7\u201a\u201e\u2030\xc2\u0107\xc1\u010d\xc8\xcd\xce\xcf\xcc\xd3\xd4\u0111\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u03c0\xcb\u02da\xb8\xca\xe6\u02c7","x-mac-cyrillic":"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\u0490\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e","x-mac-gaelic":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u1e02\xb1\u2264\u2265\u1e03\u010a\u010b\u1e0a\u1e0b\u1e1e\u1e1f\u0120\u0121\u1e40\xe6\xf8\u1e41\u1e56\u1e57\u027c\u0192\u017f\u1e60\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\u1e61\u1e9b\xff\u0178\u1e6a\u20ac\u2039\u203a\u0176\u0177\u1e6b\xb7\u1ef2\u1ef3\u204a\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\u2663\xd2\xda\xdb\xd9\u0131\xdd\xfd\u0174\u0175\u1e84\u1e85\u1e80\u1e81\u1e82\u1e83","x-mac-greek":"\xc4\xb9\xb2\xc9\xb3\xd6\xdc\u0385\xe0\xe2\xe4\u0384\xa8\xe7\xe9\xe8\xea\xeb\xa3\u2122\xee\xef\u2022\xbd\u2030\xf4\xf6\xa6\u20ac\xf9\xfb\xfc\u2020\u0393\u0394\u0398\u039b\u039e\u03a0\xdf\xae\xa9\u03a3\u03aa\xa7\u2260\xb0\xb7\u0391\xb1\u2264\u2265\xa5\u0392\u0395\u0396\u0397\u0399\u039a\u039c\u03a6\u03ab\u03a8\u03a9\u03ac\u039d\xac\u039f\u03a1\u2248\u03a4\xab\xbb\u2026\xa0\u03a5\u03a7\u0386\u0388\u0153\u2013\u2015\u201c\u201d\u2018\u2019\xf7\u0389\u038a\u038c\u038e\u03ad\u03ae\u03af\u03cc\u038f\u03cd\u03b1\u03b2\u03c8\u03b4\u03b5\u03c6\u03b3\u03b7\u03b9\u03be\u03ba\u03bb\u03bc\u03bd\u03bf\u03c0\u03ce\u03c1\u03c3\u03c4\u03b8\u03c9\u03c2\u03c7\u03c5\u03b6\u03ca\u03cb\u0390\u03b0\xad","x-mac-icelandic":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\xdd\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\xd0\xf0\xde\xfe\xfd\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-inuit":"\u1403\u1404\u1405\u1406\u140a\u140b\u1431\u1432\u1433\u1434\u1438\u1439\u1449\u144e\u144f\u1450\u1451\u1455\u1456\u1466\u146d\u146e\u146f\u1470\u1472\u1473\u1483\u148b\u148c\u148d\u148e\u1490\u1491\xb0\u14a1\u14a5\u14a6\u2022\xb6\u14a7\xae\xa9\u2122\u14a8\u14aa\u14ab\u14bb\u14c2\u14c3\u14c4\u14c5\u14c7\u14c8\u14d0\u14ef\u14f0\u14f1\u14f2\u14f4\u14f5\u1505\u14d5\u14d6\u14d7\u14d8\u14da\u14db\u14ea\u1528\u1529\u152a\u152b\u152d\u2026\xa0\u152e\u153e\u1555\u1556\u1557\u2013\u2014\u201c\u201d\u2018\u2019\u1558\u1559\u155a\u155d\u1546\u1547\u1548\u1549\u154b\u154c\u1550\u157f\u1580\u1581\u1582\u1583\u1584\u1585\u158f\u1590\u1591\u1592\u1593\u1594\u1595\u1671\u1672\u1673\u1674\u1675\u1676\u1596\u15a0\u15a1\u15a2\u15a3\u15a4\u15a5\u15a6\u157c\u0141\u0142","x-mac-ce":"\xc4\u0100\u0101\xc9\u0104\xd6\xdc\xe1\u0105\u010c\xe4\u010d\u0106\u0107\xe9\u0179\u017a\u010e\xed\u010f\u0112\u0113\u0116\xf3\u0117\xf4\xf6\xf5\xfa\u011a\u011b\xfc\u2020\xb0\u0118\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\u0119\xa8\u2260\u0123\u012e\u012f\u012a\u2264\u2265\u012b\u0136\u2202\u2211\u0142\u013b\u013c\u013d\u013e\u0139\u013a\u0145\u0146\u0143\xac\u221a\u0144\u0147\u2206\xab\xbb\u2026\xa0\u0148\u0150\xd5\u0151\u014c\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\u014d\u0154\u0155\u0158\u2039\u203a\u0159\u0156\u0157\u0160\u201a\u201e\u0161\u015a\u015b\xc1\u0164\u0165\xcd\u017d\u017e\u016a\xd3\xd4\u016b\u016e\xda\u016f\u0170\u0171\u0172\u0173\xdd\xfd\u0137\u017b\u0141\u017c\u0122\u02c7",macintosh:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-romanian":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\u0102\u0218\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\u0103\u0219\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\u2039\u203a\u021a\u021b\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-turkish":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u011e\u011f\u0130\u0131\u015e\u015f\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\uf8a0\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"};by.MACSTRING=function(e,t,n,i){var r=p6[i];if(void 0!==r){for(var a="",s=0;s=-128&&e<=127}function Bdt(e,t,n){for(var i=0,r=e.length;t>8&255,l+256&255)}return a}nn.MACSTRING=function(e,t){var n=Ndt(t);if(void 0!==n){for(var i=[],r=0;r=128&&void 0===(a=n[a]))return;i[r]=a}return i}},Qn.MACSTRING=function(e,t){var n=nn.MACSTRING(e,t);return void 0!==n?n.length:0},nn.VARDELTAS=function(e){for(var t=0,n=[];t=-128&&i<=127?Udt(e,t,n):Hdt(e,t,n)}return n},nn.INDEX=function(e){for(var t=1,n=[t],i=[],r=0;r>8,t[u+1]=255&d,t=t.concat(i[c])}return t},Qn.TABLE=function(e){for(var t=0,n=e.fields.length,i=0;i0)return new Tt(this.data,this.offset+t).parseStruct(e)},Tt.prototype.parsePointer32=function(e){var t=this.parseOffset32();if(t>0)return new Tt(this.data,this.offset+t).parseStruct(e)},Tt.prototype.parseListOfLists=function(e){for(var t=this.parseOffset16List(),n=t.length,i=this.relativeOffset,r=new Array(n),a=0;a>1,t.skip("uShort",3),e.glyphIndexMap={};for(var s=new wn.Parser(n,i+r+14),o=new wn.Parser(n,i+r+16+2*a),l=new wn.Parser(n,i+r+16+4*a),h=new wn.Parser(n,i+r+16+6*a),c=i+r+16+8*a,u=0;u=0;r-=1){var a=wn.getUShort(e,t+4+8*r),s=wn.getUShort(e,t+4+8*r+2);if(3===a&&(0===s||1===s||10===s)||0===a&&(0===s||1===s||2===s||3===s||4===s)){i=wn.getULong(e,t+4+8*r+4);break}}if(-1===i)throw new Error("No valid cmap sub-tables found.");var o=new wn.Parser(e,t+i);if(n.format=o.parseUShort(),12===n.format)Xdt(n,o);else{if(4!==n.format)throw new Error("Only format 4 and 12 cmap tables are supported (found format "+n.format+").");Ydt(n,o,e,t,i)}return n}function Zdt(e,t,n){e.segments.push({end:t,start:t,delta:-(t-n),offset:0,glyphIndex:n})}function Kdt(e){e.segments.push({end:65535,start:65535,delta:1,offset:0})}function Jdt(e){var t,n=!0;for(t=e.length-1;t>0;t-=1)if(e.get(t).unicode>65535){console.log("Adding CMAP format 12 (needed!)"),n=!1;break}var i=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:n?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:n?12:20}];n||(i=i.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),i=i.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var r=new fn.Table("cmap",i);for(r.segments=[],t=0;t>4,a=15&i;if(15===r||(t+=n[r],15===a))break;t+=n[a]}return parseFloat(t)}function dft(e,t){if(28===t)return e.parseByte()<<8|e.parseByte();if(29===t)return e.parseByte()<<24|e.parseByte()<<16|e.parseByte()<<8|e.parseByte();if(30===t)return hft(e);if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return 256*(t-247)+e.parseByte()+108;if(t>=251&&t<=254)return 256*-(t-251)-e.parseByte()-108;throw new Error("Invalid b0 "+t)}function fft(e){for(var t={},n=0;n>1,d.length=0,f=!0}return function n(h){for(var y,x,S,M,T,E,A,C,P,R,O,L,I=0;I1&&!f&&(b=d.shift()+c,f=!0),v+=d.pop(),_(g,v);break;case 5:for(;d.length>0;)g+=d.shift(),v+=d.shift(),u.lineTo(g,v);break;case 6:for(;d.length>0&&(g+=d.shift(),u.lineTo(g,v),0!==d.length);)v+=d.shift(),u.lineTo(g,v);break;case 7:for(;d.length>0&&(v+=d.shift(),u.lineTo(g,v),0!==d.length);)g+=d.shift(),u.lineTo(g,v);break;case 8:for(;d.length>0;)i=g+d.shift(),r=v+d.shift(),a=i+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s+d.shift(),u.curveTo(i,r,a,s,g,v);break;case 10:T=d.pop()+l,(E=o[T])&&n(E);break;case 11:return;case 12:switch(D=h[I],I+=1,D){case 35:i=g+d.shift(),r=v+d.shift(),a=i+d.shift(),s=r+d.shift(),A=a+d.shift(),C=s+d.shift(),P=A+d.shift(),R=C+d.shift(),O=P+d.shift(),L=R+d.shift(),g=O+d.shift(),v=L+d.shift(),d.shift(),u.curveTo(i,r,a,s,A,C),u.curveTo(P,R,O,L,g,v);break;case 34:i=g+d.shift(),r=v,a=i+d.shift(),s=r+d.shift(),A=a+d.shift(),C=s,P=A+d.shift(),R=s,O=P+d.shift(),L=v,g=O+d.shift(),u.curveTo(i,r,a,s,A,C),u.curveTo(P,R,O,L,g,v);break;case 36:i=g+d.shift(),r=v+d.shift(),a=i+d.shift(),s=r+d.shift(),A=a+d.shift(),C=s,P=A+d.shift(),R=s,O=P+d.shift(),L=R+d.shift(),g=O+d.shift(),u.curveTo(i,r,a,s,A,C),u.curveTo(P,R,O,L,g,v);break;case 37:i=g+d.shift(),r=v+d.shift(),a=i+d.shift(),s=r+d.shift(),A=a+d.shift(),C=s+d.shift(),P=A+d.shift(),R=C+d.shift(),O=P+d.shift(),L=R+d.shift(),Math.abs(O-g)>Math.abs(L-v)?g=O+d.shift():v=L+d.shift(),u.curveTo(i,r,a,s,A,C),u.curveTo(P,R,O,L,g,v);break;default:console.log("Glyph "+t.index+": unknown operator 1200"+D),d.length=0}break;case 14:d.length>0&&!f&&(b=d.shift()+c,f=!0),m&&(u.closePath(),m=!1);break;case 19:case 20:w(),I+=p+7>>3;break;case 21:d.length>2&&!f&&(b=d.shift()+c,f=!0),v+=d.pop(),_(g+=d.pop(),v);break;case 22:d.length>1&&!f&&(b=d.shift()+c,f=!0),_(g+=d.pop(),v);break;case 24:for(;d.length>2;)i=g+d.shift(),r=v+d.shift(),a=i+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s+d.shift(),u.curveTo(i,r,a,s,g,v);g+=d.shift(),v+=d.shift(),u.lineTo(g,v);break;case 25:for(;d.length>6;)g+=d.shift(),v+=d.shift(),u.lineTo(g,v);i=g+d.shift(),r=v+d.shift(),a=i+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s+d.shift(),u.curveTo(i,r,a,s,g,v);break;case 26:for(d.length%2&&(g+=d.shift());d.length>0;)i=g,r=v+d.shift(),a=i+d.shift(),s=r+d.shift(),g=a,v=s+d.shift(),u.curveTo(i,r,a,s,g,v);break;case 27:for(d.length%2&&(v+=d.shift());d.length>0;)i=g+d.shift(),r=v,a=i+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s,u.curveTo(i,r,a,s,g,v);break;case 28:y=h[I],x=h[I+1],d.push((y<<24|x<<16)>>16),I+=2;break;case 29:T=d.pop()+e.gsubrsBias,(E=e.gsubrs[T])&&n(E);break;case 30:for(;d.length>0&&(i=g,r=v+d.shift(),a=i+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s+(1===d.length?d.shift():0),u.curveTo(i,r,a,s,g,v),0!==d.length);)i=g+d.shift(),r=v,a=i+d.shift(),s=r+d.shift(),v=s+d.shift(),g=a+(1===d.length?d.shift():0),u.curveTo(i,r,a,s,g,v);break;case 31:for(;d.length>0&&(i=g+d.shift(),r=v,a=i+d.shift(),s=r+d.shift(),v=s+d.shift(),g=a+(1===d.length?d.shift():0),u.curveTo(i,r,a,s,g,v),0!==d.length);)i=g,r=v+d.shift(),a=i+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s+(1===d.length?d.shift():0),u.curveTo(i,r,a,s,g,v);break;default:D<32?console.log("Glyph "+t.index+": unknown operator "+D):D<247?d.push(D-139):D<251?(y=h[I],I+=1,d.push(256*(D-247)+y+108)):D<255?(y=h[I],I+=1,d.push(256*-(D-251)-y-108)):(y=h[I],x=h[I+1],S=h[I+2],M=h[I+3],I+=4,d.push((y<<24|x<<16|S<<8|M)/65536))}}}(n),t.advanceWidth=b,u}function yft(e,t,n,i){var r,a=[],s=new wn.Parser(e,t),o=s.parseCard8();if(0===o)for(var l=0;l=i)throw new Error("CFF table CID Font FDSelect has bad FD index value "+r+" (FD count "+i+")");a.push(r)}else{if(3!==o)throw new Error("CFF Table CID Font FDSelect table has unsupported format "+o);var h=s.parseCard16(),c=s.parseCard16();if(0!==c)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+c);for(var u,d=0;d=i)throw new Error("CFF table CID Font FDSelect has bad FD index value "+r+" (FD count "+i+")");if(u>n)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+u);for(;c=0&&(n=i),(i=t.indexOf(e))>=0?n=i+OC.length:(n=OC.length+t.length,t.push(e)),n}function bft(){return new fn.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}])}function Eft(e){var t=new fn.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);t.names=[];for(var n=0;n=n.begin&&e=1&&(n.ulCodePageRange1=i.parseULong(),n.ulCodePageRange2=i.parseULong()),n.version>=2&&(n.sxHeight=i.parseShort(),n.sCapHeight=i.parseShort(),n.usDefaultChar=i.parseUShort(),n.usBreakChar=i.parseUShort(),n.usMaxContent=i.parseUShort()),n}function Zft(e){return new fn.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],e)}var b6={parse:$ft,make:Zft,unicodeRanges:x6,getUnicodeRange:Yft};function Kft(e,t){var n={},i=new wn.Parser(e,t);switch(n.version=i.parseVersion(),n.italicAngle=i.parseFixed(),n.underlinePosition=i.parseShort(),n.underlineThickness=i.parseShort(),n.isFixedPitch=i.parseULong(),n.minMemType42=i.parseULong(),n.maxMemType42=i.parseULong(),n.minMemType1=i.parseULong(),n.maxMemType1=i.parseULong(),n.version){case 1:n.names=Zm.slice();break;case 2:n.numberOfGlyphs=i.parseUShort(),n.glyphNameIndex=new Array(n.numberOfGlyphs);for(var r=0;r=Zm.length){var s=i.parseChar();n.names.push(i.parseString(s))}break;case 2.5:n.numberOfGlyphs=i.parseUShort(),n.offset=new Array(n.numberOfGlyphs);for(var o=0;ot.value.tag?1:-1})),t.fields=t.fields.concat(i),t.fields=t.fields.concat(r),t}function Ime(e,t,n){for(var i=0;i0)return e.glyphs.get(r).getMetrics()}return n}function rpt(e){for(var t=0,n=0;ng||void 0===t)&&g>0&&(t=g),h 123 are reserved for internal usage");p|=1<0?Tge.make(L):void 0,k=Pge.make(),N=xge.make(e.glyphs,{version:e.getEnglishName("version"),fullName:C,familyName:E,weightName:A,postScriptName:P,unitsPerEm:e.unitsPerEm,fontBBox:[0,x.yMin,x.ascender,x.advanceWidthMax]}),F=e.metas&&Object.keys(e.metas).length>0?Lge.make(e.metas):void 0,U=[b,_,w,S,I,T,k,N,M];D&&U.push(D),e.tables.gsub&&U.push(Ige.make(e.tables.gsub)),F&&U.push(F);for(var B=Dge(U),z=A6(B.encode()),H=B.fields,V=!1,j=0;j>>1,a=e[r].tag;if(a===t)return r;a>>1,a=e[r];if(a===t)return r;a>>1,s=(n=e[a]).start;if(s===t)return n;s0)return t>(n=e[i-1]).end?0:n}function n_(e,t){this.font=e,this.tableName=t}function r_(e){n_.call(this,e,"gpos")}function tl(e){n_.call(this,e,"gsub")}function apt(e,t){var n=e.length;if(n!==t.length)return!1;for(var i=0;i0?(a=e.parseByte(),t&r||(a=-a),a=n+a):a=(t&r)>0?n:n+e.parseShort(),a}function Oge(e,t,n){var i,r,a=new wn.Parser(t,n);if(e.numberOfContours=a.parseShort(),e._xMin=a.parseShort(),e._yMin=a.parseShort(),e._xMax=a.parseShort(),e._yMax=a.parseShort(),e.numberOfContours>0){for(var s=e.endPointIndices=[],o=0;o0)for(var u=a.parseByte(),d=0;d0){var p,f=[];if(h>0){for(var m=0;m=0,f.push(p);for(var g=0,v=0;v0?(2&i)>0?(_.dx=a.parseShort(),_.dy=a.parseShort()):_.matchedPoints=[a.parseUShort(),a.parseUShort()]:(2&i)>0?(_.dx=a.parseChar(),_.dy=a.parseChar()):_.matchedPoints=[a.parseByte(),a.parseByte()],(8&i)>0?_.xScale=_.yScale=a.parseF2Dot14():(64&i)>0?(_.xScale=a.parseF2Dot14(),_.yScale=a.parseF2Dot14()):(128&i)>0&&(_.xScale=a.parseF2Dot14(),_.scale01=a.parseF2Dot14(),_.scale10=a.parseF2Dot14(),_.yScale=a.parseF2Dot14()),e.components.push(_),b=!!(32&i)}if(256&i){e.instructionLength=a.parseUShort(),e.instructions=[];for(var w=0;wt.points.length-1||i.matchedPoints[1]>r.points.length-1)throw Error("Matched points out of range in "+t.name);var s=t.points[i.matchedPoints[0]],o=r.points[i.matchedPoints[1]],l={xScale:i.xScale,scale01:i.scale01,scale10:i.scale10,yScale:i.yScale,dx:0,dy:0};o=o6([o],l)[0],l.dx=s.x-o.x,l.dy=s.y-o.y,a=o6(r.points,l)}t.points=t.points.concat(a)}}return kge(t.points)}function upt(e,t,n,i){for(var r=new $u.GlyphSet(i),a=0;a=0)return i[r].script;if(t){var a={tag:e,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return i.splice(-1-r,0,a),a.script}}},getLangSysTable:function(e,t,n){var i=this.getScriptTable(e,n);if(i){if(!t||"dflt"===t||"DFLT"===t)return i.defaultLangSys;var r=a6(i.langSysRecords,t);if(r>=0)return i.langSysRecords[r].langSys;if(n){var a={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return i.langSysRecords.splice(-1-r,0,a),a.langSys}}},getFeatureTable:function(e,t,n,i){var r=this.getLangSysTable(e,t,i);if(r){for(var a,s=r.featureIndexes,o=this.font.tables[this.tableName].features,l=0;l=o[h-1].tag,"Features must be added in alphabetical order."),a={tag:n,feature:{params:0,lookupListIndexes:[]}},o.push(a),s.push(h),a.feature}}},getLookupTables:function(e,t,n,i,r){var a=this.getFeatureTable(e,t,n,r),s=[];if(a){for(var o,l=a.lookupListIndexes,h=this.font.tables[this.tableName].lookups,c=0;c=0?n:-1;case 2:var i=Dme(e.ranges,t);return i?i.index+t-i.start:-1}},expandCoverage:function(e){if(1===e.format)return e.glyphs;for(var t=[],n=e.ranges,i=0;i1,'Multiple: "by" must be an array of two or more ids');var r=C6(this.getLookupTables(n,i,e,2,!0)[0],1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});Yn.assert(1===r.coverage.format,"Multiple: unable to modify coverage table format "+r.coverage.format);var a=t.sub,s=this.binSearch(r.coverage.glyphs,a);s<0&&(s=-1-s,r.coverage.glyphs.splice(s,0,a),r.sequences.splice(s,0,0)),r.sequences[s]=t.by},tl.prototype.addAlternate=function(e,t,n,i){var r=C6(this.getLookupTables(n,i,e,3,!0)[0],1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});Yn.assert(1===r.coverage.format,"Alternate: unable to modify coverage table format "+r.coverage.format);var a=t.sub,s=this.binSearch(r.coverage.glyphs,a);s<0&&(s=-1-s,r.coverage.glyphs.splice(s,0,a),r.alternateSets.splice(s,0,0)),r.alternateSets[s]=t.by},tl.prototype.addLigature=function(e,t,n,i){var r=this.getLookupTables(n,i,e,4,!0)[0],a=r.subtables[0];a||(a={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},r.subtables[0]=a),Yn.assert(1===a.coverage.format,"Ligature: unable to modify coverage table format "+a.coverage.format);var s=t.sub[0],o=t.sub.slice(1),l={ligGlyph:t.by,components:o},h=this.binSearch(a.coverage.glyphs,s);if(h>=0){for(var c=a.ligatureSets[h],u=0;u=176&&n<=183)r+=n-176+1;else if(n>=184&&n<=191)r+=2*(n-184+1);else if(t&&1===a&&27===n)break}while(a>0);e.ip=r}function kme(e,t){exports.DEBUG&&console.log(t.step,"SVTCA["+e.axis+"]"),t.fv=t.pv=t.dpv=e}function Fme(e,t){exports.DEBUG&&console.log(t.step,"SPVTCA["+e.axis+"]"),t.pv=t.dpv=e}function Nme(e,t){exports.DEBUG&&console.log(t.step,"SFVTCA["+e.axis+"]"),t.fv=e}function Bme(e,t){var n,i,r=t.stack,a=r.pop(),s=r.pop(),o=t.z2[a],l=t.z1[s];exports.DEBUG&&console.log("SPVTL["+e+"]",a,s),e?(n=o.y-l.y,i=l.x-o.x):(n=l.x-o.x,i=l.y-o.y),t.pv=t.dpv=s_(n,i)}function Ume(e,t){var n,i,r=t.stack,a=r.pop(),s=r.pop(),o=t.z2[a],l=t.z1[s];exports.DEBUG&&console.log("SFVTL["+e+"]",a,s),e?(n=o.y-l.y,i=l.x-o.x):(n=l.x-o.x,i=l.y-o.y),t.fv=s_(n,i)}function xpt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",n,i),e.pv=e.dpv=s_(i,n)}function bpt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",n,i),e.fv=s_(i,n)}function Ept(e){var t=e.stack,n=e.pv;exports.DEBUG&&console.log(e.step,"GPV[]"),t.push(16384*n.x),t.push(16384*n.y)}function _pt(e){var t=e.stack,n=e.fv;exports.DEBUG&&console.log(e.step,"GFV[]"),t.push(16384*n.x),t.push(16384*n.y)}function Tpt(e){e.fv=e.pv,exports.DEBUG&&console.log(e.step,"SFVTPV[]")}function wpt(e){var t=e.stack,n=t.pop(),i=t.pop(),r=t.pop(),a=t.pop(),s=t.pop(),o=e.z0,l=e.z1,h=o[n],c=o[i],u=l[r],d=l[a],p=e.z2[s];exports.DEBUG&&console.log("ISECT[], ",n,i,r,a,s);var f=h.x,m=h.y,g=c.x,v=c.y,y=u.x,x=u.y,b=d.x,_=d.y,w=(f-g)*(x-_)-(m-v)*(y-b),S=f*v-m*g,M=y*_-x*b;p.x=(S*(y-b)-M*(f-g))/w,p.y=(S*(x-_)-M*(m-v))/w}function Spt(e){e.rp0=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP0[]",e.rp0)}function Mpt(e){e.rp1=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP1[]",e.rp1)}function Rpt(e){e.rp2=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP2[]",e.rp2)}function Apt(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP0[]",t),e.zp0=t,t){case 0:e.tZone||zC(e),e.z0=e.tZone;break;case 1:e.z0=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Cpt(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP1[]",t),e.zp1=t,t){case 0:e.tZone||zC(e),e.z1=e.tZone;break;case 1:e.z1=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Ppt(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP2[]",t),e.zp2=t,t){case 0:e.tZone||zC(e),e.z2=e.tZone;break;case 1:e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Ipt(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZPS[]",t),e.zp0=e.zp1=e.zp2=t,t){case 0:e.tZone||zC(e),e.z0=e.z1=e.z2=e.tZone;break;case 1:e.z0=e.z1=e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Lpt(e){e.loop=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SLOOP[]",e.loop)}function Dpt(e){exports.DEBUG&&console.log(e.step,"RTG[]"),e.round=Vge}function Opt(e){exports.DEBUG&&console.log(e.step,"RTHG[]"),e.round=mpt}function kpt(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SMD[]",t),e.minDis=t/64}function Fpt(e){exports.DEBUG&&console.log(e.step,"ELSE[]"),Gge(e,!1)}function Npt(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"JMPR[]",t),e.ip+=t-1}function Bpt(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCVTCI[]",t),e.cvCutIn=t/64}function Upt(e){var t=e.stack;exports.DEBUG&&console.log(e.step,"DUP[]"),t.push(t[t.length-1])}function l6(e){exports.DEBUG&&console.log(e.step,"POP[]"),e.stack.pop()}function Hpt(e){exports.DEBUG&&console.log(e.step,"CLEAR[]"),e.stack.length=0}function Vpt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"SWAP[]"),t.push(n),t.push(i)}function zpt(e){var t=e.stack;exports.DEBUG&&console.log(e.step,"DEPTH[]"),t.push(t.length)}function Gpt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"LOOPCALL[]",n,i);var r=e.ip,a=e.prog;e.prog=e.funcs[n];for(var s=0;s1?"loop "+(t.loop-o)+": ":"")+"SHP["+(e?"rp1":"rp2")+"]",h)}t.loop=1}function Gme(e,t){var n=t.stack,i=e?t.rp1:t.rp2,r=(e?t.z0:t.z1)[i],a=t.fv,s=t.pv,o=n.pop(),l=t.z2[t.contours[o]],h=l;exports.DEBUG&&console.log(t.step,"SHC["+e+"]",o);var c=s.distance(r,r,!1,!0);do{h!==r&&a.setRelative(h,h,c,s),h=h.nextPointOnContour}while(h!==l)}function qme(e,t){var n,i=t.stack,r=e?t.rp1:t.rp2,a=(e?t.z0:t.z1)[r],s=t.fv,o=t.pv,l=i.pop();switch(exports.DEBUG&&console.log(t.step,"SHZ["+e+"]",l),l){case 0:n=t.tZone;break;case 1:n=t.gZone;break;default:throw new Error("Invalid zone")}for(var h,c=o.distance(a,a,!1,!0),u=n.length-2,d=0;d1?"loop "+(e.loop-n)+": ":"")+"SHPIX[]",s,r),i.setRelative(o,o,r),i.touch(o)}e.loop=1}function $pt(e){for(var t=e.stack,n=e.rp1,i=e.rp2,r=e.loop,a=e.z0[n],s=e.z1[i],o=e.fv,l=e.dpv,h=e.z2;r--;){var c=t.pop(),u=h[c];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-r)+": ":"")+"IP[]",c,n,"<->",i),o.interpolate(u,a,s,l),o.touch(u)}e.loop=1}function Wme(e,t){var n=t.stack,i=n.pop()/64,r=n.pop(),a=t.z1[r],s=t.z0[t.rp0],o=t.fv,l=t.pv;o.setRelative(a,s,i,l),o.touch(a),exports.DEBUG&&console.log(t.step,"MSIRP["+e+"]",i,r),t.rp1=t.rp0,t.rp2=r,e&&(t.rp0=r)}function Zpt(e){for(var t=e.stack,n=e.rp0,i=e.z0[n],r=e.loop,a=e.fv,s=e.pv,o=e.z1;r--;){var l=t.pop(),h=o[l];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-r)+": ":"")+"ALIGNRP[]",l),a.setRelative(h,i,0,s),a.touch(h)}e.loop=1}function Kpt(e){exports.DEBUG&&console.log(e.step,"RTDG[]"),e.round=ppt}function jme(e,t){var n=t.stack,i=n.pop(),r=n.pop(),a=t.z0[r],s=t.fv,o=t.pv,l=t.cvt[i];exports.DEBUG&&console.log(t.step,"MIAP["+e+"]",i,"(",l,")",r);var h=o.distance(a,t_);e&&(Math.abs(h-l)",o),t.stack.push(Math.round(64*o))}function imt(e){exports.DEBUG&&console.log(e.step,"MPPEM[]"),e.stack.push(e.ppem)}function smt(e){exports.DEBUG&&console.log(e.step,"FLIPON[]"),e.autoFlip=!0}function amt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"LT[]",n,i),t.push(in?1:0)}function cmt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"GTEQ[]",n,i),t.push(i>=n?1:0)}function umt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"EQ[]",n,i),t.push(n===i?1:0)}function hmt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"NEQ[]",n,i),t.push(n!==i?1:0)}function dmt(e){var t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"ODD[]",n),t.push(Math.trunc(n)%2?1:0)}function fmt(e){var t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"EVEN[]",n),t.push(Math.trunc(n)%2?0:1)}function pmt(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"IF[]",t),t||(Gge(e,!0),exports.DEBUG&&console.log(e.step,"EIF[]"))}function mmt(e){exports.DEBUG&&console.log(e.step,"EIF[]")}function gmt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"AND[]",n,i),t.push(n&&i?1:0)}function vmt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"OR[]",n,i),t.push(n||i?1:0)}function ymt(e){var t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"NOT[]",n),t.push(n?0:1)}function c6(e,t){var n=t.stack,i=n.pop(),r=t.fv,a=t.pv,s=t.ppem,o=t.deltaBase+16*(e-1),l=t.deltaShift,h=t.z0;exports.DEBUG&&console.log(t.step,"DELTAP["+e+"]",i,n);for(var c=0;c>4)===s){var p=(15&d)-8;p>=0&&p++,exports.DEBUG&&console.log(t.step,"DELTAPFIX",u,"by",p*l);var f=h[u];r.setRelative(f,f,p*l,a)}}}function xmt(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SDB[]",t),e.deltaBase=t}function bmt(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SDS[]",t),e.deltaShift=Math.pow(.5,t)}function Emt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"ADD[]",n,i),t.push(i+n)}function _mt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"SUB[]",n,i),t.push(i-n)}function Tmt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"DIV[]",n,i),t.push(64*i/n)}function wmt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"MUL[]",n,i),t.push(i*n/64)}function Smt(e){var t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"ABS[]",n),t.push(Math.abs(n))}function Mmt(e){var t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"NEG[]",n),t.push(-n)}function Rmt(e){var t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"FLOOR[]",n),t.push(64*Math.floor(n/64))}function Amt(e){var t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"CEILING[]",n),t.push(64*Math.ceil(n/64))}function DC(e,t){var n=t.stack,i=n.pop();exports.DEBUG&&console.log(t.step,"ROUND[]"),n.push(64*t.round(i/64))}function Cmt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"WCVTF[]",n,i),e.cvt[i]=n*e.ppem/e.font.unitsPerEm}function u6(e,t){var n=t.stack,i=n.pop(),r=t.ppem,a=t.deltaBase+16*(e-1),s=t.deltaShift;exports.DEBUG&&console.log(t.step,"DELTAC["+e+"]",i,n);for(var o=0;o>4)===r){var c=(15&h)-8;c>=0&&c++;var u=c*s;exports.DEBUG&&console.log(t.step,"DELTACFIX",l,"by",u),t.cvt[l]+=u}}}function Pmt(e){var t,n=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SROUND[]",n),e.round=zge,192&n){case 0:t=.5;break;case 64:t=1;break;case 128:t=2;break;default:throw new Error("invalid SROUND value")}switch(e.srPeriod=t,48&n){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*t;break;case 32:e.srPhase=.5*t;break;case 48:e.srPhase=.75*t;break;default:throw new Error("invalid SROUND value")}n&=15,e.srThreshold=0===n?0:(n/8-.5)*t}function Imt(e){var t,n=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"S45ROUND[]",n),e.round=zge,192&n){case 0:t=Math.sqrt(2)/2;break;case 64:t=Math.sqrt(2);break;case 128:t=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(e.srPeriod=t,48&n){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*t;break;case 32:e.srPhase=.5*t;break;case 48:e.srPhase=.75*t;break;default:throw new Error("invalid S45ROUND value")}n&=15,e.srThreshold=0===n?0:(n/8-.5)*t}function Lmt(e){exports.DEBUG&&console.log(e.step,"ROFF[]"),e.round=fpt}function Dmt(e){exports.DEBUG&&console.log(e.step,"RUTG[]"),e.round=gpt}function Omt(e){exports.DEBUG&&console.log(e.step,"RDTG[]"),e.round=vpt}function kmt(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANCTRL[]",t)}function $me(e,t){var n,i,r=t.stack,a=r.pop(),s=r.pop(),o=t.z2[a],l=t.z1[s];exports.DEBUG&&console.log(t.step,"SDPVTL["+e+"]",a,s),e?(n=o.y-l.y,i=l.x-o.x):(n=l.x-o.x,i=l.y-o.y),t.dpv=s_(n,i)}function Fmt(e){var t=e.stack,n=t.pop(),i=0;exports.DEBUG&&console.log(e.step,"GETINFO[]",n),1&n&&(i=35),32&n&&(i|=4096),t.push(i)}function Nmt(e){var t=e.stack,n=t.pop(),i=t.pop(),r=t.pop();exports.DEBUG&&console.log(e.step,"ROLL[]"),t.push(i),t.push(n),t.push(r)}function Bmt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"MAX[]",n,i),t.push(Math.max(i,n))}function Umt(e){var t=e.stack,n=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"MIN[]",n,i),t.push(Math.min(i,n))}function Hmt(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANTYPE[]",t)}function Vmt(e){var t=e.stack.pop(),n=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"INSTCTRL[]",t,n),t){case 1:return void(e.inhibitGridFit=!!n);case 2:return void(e.ignoreCvt=!!n);default:throw new Error("invalid INSTCTRL[] selector")}}function Pf(e,t){var n=t.stack,i=t.prog,r=t.ip;exports.DEBUG&&console.log(t.step,"PUSHB["+e+"]");for(var a=0;a=0?1:-1,o=Math.abs(o),e&&(h=a.cvt[u],i&&Math.abs(o-h)":"_")+(i?"R":"_")+(0===r?"Gr":1===r?"Bl":2===r?"Wh":"")+"]",e?u+"("+a.cvt[u]+","+h+")":"",d,"(d =",s,"->",l*o,")"),a.rp1=a.rp0,a.rp2=d,t&&(a.rp0=d)}function _y(e){this.char=e,this.state={},this.activeState=null}function P6(e,t,n){this.contextName=n,this.startIndex=e,this.endOffset=t}function zmt(e,t,n){this.contextName=e,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=n}function Oc(e,t){this.context=e,this.index=t,this.length=e.length,this.current=e[t],this.backtrack=e.slice(0,t),this.lookahead=e.slice(t+1)}function GC(e){this.eventId=e,this.subscribers=[]}function Gmt(e){var t=this,n=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];n.forEach((function(e){Object.defineProperty(t.events,e,{value:new GC(e)})})),e&&n.forEach((function(n){var i=e[n];"function"==typeof i&&t.events[n].subscribe(i)})),["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"].forEach((function(e){t.events[e].subscribe(t.updateContextsRanges)}))}function ds(e){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],Gmt.call(this,e)}function Of(e){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(e)}function qge(e){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(e)}function kf(e){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(e)}function kC(e){return/[A-z]/.test(e)}function qmt(e){return/\s/.test(e)}function nl(e){this.font=e,this.features={}}function Km(e){this.id=e.id,this.tag=e.tag,this.substitution=e.substitution}function a_(e,t){if(!e)return-1;switch(t.format){case 1:return t.glyphs.indexOf(e);case 2:for(var n=t.ranges,i=0;i=r.start&&e<=r.end){var a=e-r.start;return r.index+a}}break;default:return-1}return-1}function Wmt(e,t){return-1===a_(e,t.coverage)?null:e+t.deltaGlyphId}function jmt(e,t){var n=a_(e,t.coverage);return-1===n?null:t.substitute[n]}function h6(e,t){for(var n=[],i=0;i2)){var n=this.font,i=this._prepState;if(!i||i.ppem!==t){var r=this._fpgmState;if(!r){Df.prototype=ypt,(r=this._fpgmState=new Df("fpgm",n.tables.fpgm)).funcs=[],r.font=n,exports.DEBUG&&(console.log("---EXEC FPGM---"),r.step=-1);try{Jm(r)}catch(e){return console.log("Hinting error in FPGM:"+e),void(this._errorState=3)}}Df.prototype=r,(i=this._prepState=new Df("prep",n.tables.prep)).ppem=t;var a=n.tables.cvt;if(a)for(var s=i.cvt=new Array(a.length),o=t/n.unitsPerEm,l=0;l1))try{return Uge(e,i)}catch(e){return this._errorState<1&&(console.log("Hinting error:"+e),console.log("Note: further hinting errors are silenced")),void(this._errorState=1)}}},Uge=function(e,t){var n,i,r,a=t.ppem/t.font.unitsPerEm,s=a,o=e.components;if(Df.prototype=t,o){var l=t.font;i=[],n=[];for(var h=0;h=0&&e0&&e<=this.lookahead.length:return this.lookahead[e-1];default:return null}},ds.prototype.rangeToText=function(e){if(e instanceof P6)return this.getRangeTokens(e).map((function(e){return e.char})).join("")},ds.prototype.getText=function(){return this.tokens.map((function(e){return e.char})).join("")},ds.prototype.getContext=function(e){return this.registeredContexts[e]||null},ds.prototype.on=function(e,t){var n=this.events[e];return n?n.subscribe(t):null},ds.prototype.dispatch=function(e,t){var n=this,i=this.events[e];i instanceof GC&&i.subscribers.forEach((function(e){e.apply(n,t||[])}))},ds.prototype.registerContextChecker=function(e,t,n){if(this.getContext(e))return{FAIL:"context name '"+e+"' is already registered."};if("function"!=typeof t)return{FAIL:"missing context start check."};if("function"!=typeof n)return{FAIL:"missing context end check."};var i=new zmt(e,t,n);return this.registeredContexts[e]=i,this.contextCheckers.push(i),i},ds.prototype.getRangeTokens=function(e){var t=e.startIndex+e.endOffset;return[].concat(this.tokens.slice(e.startIndex,t))},ds.prototype.getContextRanges=function(e){var t=this.getContext(e);return t?t.ranges:{FAIL:"context checker '"+e+"' is not registered."}},ds.prototype.resetContextsRanges=function(){var e=this.registeredContexts;for(var t in e)e.hasOwnProperty(t)&&(e[t].ranges=[])},ds.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var e=this.tokens.map((function(e){return e.char})),t=0;t=0;n--){var i=t[n],r=qge(i),a=kf(i);if(!r&&!a)return!0;if(r)return!1}return!1}function ogt(e){if(qge(e.current))return!1;for(var t=0;t=1.2&&(r.markGlyphSets=n.parsePointer(Pgt)),r}var Lgt={parse:Igt},kc=new Array(10);function Dgt(e,t){var n=new Tt(e,t=t||0),i=n.parseVersion(1);return Yn.argument(1===i||1.1===i,"Unsupported GPOS table version "+i),1===i?{version:i,scripts:n.parseScriptList(),features:n.parseFeatureList(),lookups:n.parseLookupList(kc)}:{version:i,scripts:n.parseScriptList(),features:n.parseFeatureList(),lookups:n.parseLookupList(kc),variations:n.parseFeatureVariationsList()}}kc[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();return 1===t?{posFormat:1,coverage:this.parsePointer(Tt.coverage),value:this.parseValueRecord()}:2===t?{posFormat:2,coverage:this.parsePointer(Tt.coverage),values:this.parseValueRecordList()}:void Yn.assert(!1,"0x"+e.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")},kc[2]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();Yn.assert(1===t||2===t,"0x"+e.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var n=this.parsePointer(Tt.coverage),i=this.parseUShort(),r=this.parseUShort();if(1===t)return{posFormat:t,coverage:n,valueFormat1:i,valueFormat2:r,pairSets:this.parseList(Tt.pointer(Tt.list((function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(i),value2:this.parseValueRecord(r)}}))))};if(2===t){var a=this.parsePointer(Tt.classDef),s=this.parsePointer(Tt.classDef),o=this.parseUShort(),l=this.parseUShort();return{posFormat:t,coverage:n,valueFormat1:i,valueFormat2:r,classDef1:a,classDef2:s,class1Count:o,class2Count:l,classRecords:this.parseList(o,Tt.list(l,(function(){return{value1:this.parseValueRecord(i),value2:this.parseValueRecord(r)}})))}}},kc[3]=function(){return{error:"GPOS Lookup 3 not supported"}},kc[4]=function(){return{error:"GPOS Lookup 4 not supported"}},kc[5]=function(){return{error:"GPOS Lookup 5 not supported"}},kc[6]=function(){return{error:"GPOS Lookup 6 not supported"}},kc[7]=function(){return{error:"GPOS Lookup 7 not supported"}},kc[8]=function(){return{error:"GPOS Lookup 8 not supported"}},kc[9]=function(){return{error:"GPOS Lookup 9 not supported"}};var Ogt=new Array(10);function kgt(e){return new fn.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new fn.ScriptList(e.scripts)},{name:"features",type:"TABLE",value:new fn.FeatureList(e.features)},{name:"lookups",type:"TABLE",value:new fn.LookupList(e.lookups,Ogt)}])}var Fgt={parse:Dgt,make:kgt};function Ngt(e){var t={};e.skip("uShort");var n=e.parseUShort();Yn.argument(0===n,"Unsupported kern sub-table version."),e.skip("uShort",2);var i=e.parseUShort();e.skip("uShort",3);for(var r=0;r1&&console.warn("Only the first kern subtable is supported."),e.skip("uLong");var n=255&e.parseUShort();if(e.skip("uShort"),0===n){var i=e.parseUShort();e.skip("uShort",3);for(var r=0;r0;n--){let t=e[n],r={type:t.type};void 0!==t.x2&&void 0!==t.y2?(r.x1=t.x2,r.y1=t.y2,r.x2=t.x1,r.y2=t.y1):void 0!==t.x1&&void 0!==t.y1&&(r.x1=t.x1,r.y1=t.y1),r.x=e[n-1].x,r.y=e[n-1].y,i.push(r)}})),i}return function(e,n){let i=Math.round,r={},a=1e5/(72*(e.unitsPerEm||2048)),s=e.encoding.cmap.glyphIndexMap,o=Object.keys(s);for(let l=0;l0){let t=this.bounds.min,n=this.bounds.getSize(Wgt),i=new be(t.x,t.y),r=new be(t.x+n.width,t.y),a=new be(t.x+n.width,t.y+n.height),s=new be(t.x,t.y+n.height);e.push([i,r],[r,a],[a,s],[s,i])}let t=[],n=[],i=0,r=new Dt;for(let a=0;a>8}}return t.subarray(0,n)}var Xgt="\u554a\u963f\u57c3\u6328\u54ce\u5509\u54c0\u7691\u764c\u853c\u77ee\u827e\u788d\u7231\u9698\u978d\u6c28\u5b89\u4ffa\u6309\u6697\u5cb8\u80fa\u6848\u80ae\u6602\u76ce\u51f9\u6556\u71ac\u7ff1\u8884\u50b2\u5965\u61ca\u6fb3\u82ad\u634c\u6252\u53ed\u5427\u7b06\u516b\u75a4\u5df4\u62d4\u8dcb\u9776\u628a\u8019\u575d\u9738\u7f62\u7238\u767d\u67cf\u767e\u6446\u4f70\u8d25\u62dc\u7a17\u6591\u73ed\u642c\u6273\u822c\u9881\u677f\u7248\u626e\u62cc\u4f34\u74e3\u534a\u529e\u7eca\u90a6\u5e2e\u6886\u699c\u8180\u7ed1\u68d2\u78c5\u868c\u9551\u508d\u8c24\u82de\u80de\u5305\u8912\u5265\u8584\u96f9\u4fdd\u5821\u9971\u5b9d\u62b1\u62a5\u66b4\u8c79\u9c8d\u7206\u676f\u7891\u60b2\u5351\u5317\u8f88\u80cc\u8d1d\u94a1\u500d\u72c8\u5907\u60eb\u7119\u88ab\u5954\u82ef\u672c\u7b28\u5d29\u7ef7\u752d\u6cf5\u8e66\u8ff8\u903c\u9f3b\u6bd4\u9119\u7b14\u5f7c\u78a7\u84d6\u853d\u6bd5\u6bd9\u6bd6\u5e01\u5e87\u75f9\u95ed\u655d\u5f0a\u5fc5\u8f9f\u58c1\u81c2\u907f\u965b\u97ad\u8fb9\u7f16\u8d2c\u6241\u4fbf\u53d8\u535e\u8fa8\u8fa9\u8fab\u904d\u6807\u5f6a\u8198\u8868\u9cd6\u618b\u522b\u762a\u5f6c\u658c\u6fd2\u6ee8\u5bbe\u6448\u5175\u51b0\u67c4\u4e19\u79c9\u997c\u70b3\u75c5\u5e76\u73bb\u83e0\u64ad\u62e8\u94b5\u6ce2\u535a\u52c3\u640f\u94c2\u7b94\u4f2f\u5e1b\u8236\u8116\u818a\u6e24\u6cca\u9a73\u6355\u535c\u54fa\u8865\u57e0\u4e0d\u5e03\u6b65\u7c3f\u90e8\u6016\u64e6\u731c\u88c1\u6750\u624d\u8d22\u776c\u8e29\u91c7\u5f69\u83dc\u8521\u9910\u53c2\u8695\u6b8b\u60ed\u60e8\u707f\u82cd\u8231\u4ed3\u6ca7\u85cf\u64cd\u7cd9\u69fd\u66f9\u8349\u5395\u7b56\u4fa7\u518c\u6d4b\u5c42\u8e6d\u63d2\u53c9\u832c\u8336\u67e5\u78b4\u643d\u5bdf\u5c94\u5dee\u8be7\u62c6\u67f4\u8c7a\u6400\u63ba\u8749\u998b\u8c17\u7f20\u94f2\u4ea7\u9610\u98a4\u660c\u7316\u573a\u5c1d\u5e38\u957f\u507f\u80a0\u5382\u655e\u7545\u5531\u5021\u8d85\u6284\u949e\u671d\u5632\u6f6e\u5de2\u5435\u7092\u8f66\u626f\u64a4\u63a3\u5f7b\u6f88\u90f4\u81e3\u8fb0\u5c18\u6668\u5ff1\u6c89\u9648\u8d81\u886c\u6491\u79f0\u57ce\u6a59\u6210\u5448\u4e58\u7a0b\u60e9\u6f84\u8bda\u627f\u901e\u9a8b\u79e4\u5403\u75f4\u6301\u5319\u6c60\u8fdf\u5f1b\u9a70\u803b\u9f7f\u4f88\u5c3a\u8d64\u7fc5\u65a5\u70bd\u5145\u51b2\u866b\u5d07\u5ba0\u62bd\u916c\u7574\u8e0c\u7a20\u6101\u7b79\u4ec7\u7ef8\u7785\u4e11\u81ed\u521d\u51fa\u6a71\u53a8\u8e87\u9504\u96cf\u6ec1\u9664\u695a\u7840\u50a8\u77d7\u6410\u89e6\u5904\u63e3\u5ddd\u7a7f\u693d\u4f20\u8239\u5598\u4e32\u75ae\u7a97\u5e62\u5e8a\u95ef\u521b\u5439\u708a\u6376\u9524\u5782\u6625\u693f\u9187\u5507\u6df3\u7eaf\u8822\u6233\u7ef0\u75b5\u8328\u78c1\u96cc\u8f9e\u6148\u74f7\u8bcd\u6b64\u523a\u8d50\u6b21\u806a\u8471\u56f1\u5306\u4ece\u4e1b\u51d1\u7c97\u918b\u7c07\u4fc3\u8e7f\u7be1\u7a9c\u6467\u5d14\u50ac\u8106\u7601\u7cb9\u6dec\u7fe0\u6751\u5b58\u5bf8\u78cb\u64ae\u6413\u63aa\u632b\u9519\u642d\u8fbe\u7b54\u7629\u6253\u5927\u5446\u6b79\u50a3\u6234\u5e26\u6b86\u4ee3\u8d37\u888b\u5f85\u902e\u6020\u803d\u62c5\u4e39\u5355\u90f8\u63b8\u80c6\u65e6\u6c2e\u4f46\u60ee\u6de1\u8bde\u5f39\u86cb\u5f53\u6321\u515a\u8361\u6863\u5200\u6363\u8e48\u5012\u5c9b\u7977\u5bfc\u5230\u7a3b\u60bc\u9053\u76d7\u5fb7\u5f97\u7684\u8e6c\u706f\u767b\u7b49\u77aa\u51f3\u9093\u5824\u4f4e\u6ef4\u8fea\u654c\u7b1b\u72c4\u6da4\u7fdf\u5ae1\u62b5\u5e95\u5730\u8482\u7b2c\u5e1d\u5f1f\u9012\u7f14\u98a0\u6382\u6ec7\u7898\u70b9\u5178\u975b\u57ab\u7535\u4f43\u7538\u5e97\u60e6\u5960\u6dc0\u6bbf\u7889\u53fc\u96d5\u51cb\u5201\u6389\u540a\u9493\u8c03\u8dcc\u7239\u789f\u8776\u8fed\u8c0d\u53e0\u4e01\u76ef\u53ee\u9489\u9876\u9f0e\u952d\u5b9a\u8ba2\u4e22\u4e1c\u51ac\u8463\u61c2\u52a8\u680b\u4f97\u606b\u51bb\u6d1e\u515c\u6296\u6597\u9661\u8c46\u9017\u75d8\u90fd\u7763\u6bd2\u728a\u72ec\u8bfb\u5835\u7779\u8d4c\u675c\u9540\u809a\u5ea6\u6e21\u5992\u7aef\u77ed\u953b\u6bb5\u65ad\u7f0e\u5806\u5151\u961f\u5bf9\u58a9\u5428\u8e72\u6566\u987f\u56e4\u949d\u76fe\u9041\u6387\u54c6\u591a\u593a\u579b\u8eb2\u6735\u8dfa\u8235\u5241\u60f0\u5815\u86fe\u5ce8\u9e45\u4fc4\u989d\u8bb9\u5a25\u6076\u5384\u627c\u904f\u9102\u997f\u6069\u800c\u513f\u8033\u5c14\u9975\u6d31\u4e8c\u8d30\u53d1\u7f5a\u7b4f\u4f10\u4e4f\u9600\u6cd5\u73d0\u85e9\u5e06\u756a\u7ffb\u6a0a\u77fe\u9492\u7e41\u51e1\u70e6\u53cd\u8fd4\u8303\u8d29\u72af\u996d\u6cdb\u574a\u82b3\u65b9\u80aa\u623f\u9632\u59a8\u4eff\u8bbf\u7eba\u653e\u83f2\u975e\u5561\u98de\u80a5\u532a\u8bfd\u5420\u80ba\u5e9f\u6cb8\u8d39\u82ac\u915a\u5429\u6c1b\u5206\u7eb7\u575f\u711a\u6c7e\u7c89\u594b\u4efd\u5fff\u6124\u7caa\u4e30\u5c01\u67ab\u8702\u5cf0\u950b\u98ce\u75af\u70fd\u9022\u51af\u7f1d\u8bbd\u5949\u51e4\u4f5b\u5426\u592b\u6577\u80a4\u5b75\u6276\u62c2\u8f90\u5e45\u6c1f\u7b26\u4f0f\u4fd8\u670d\u6d6e\u6daa\u798f\u88b1\u5f17\u752b\u629a\u8f85\u4fef\u91dc\u65a7\u812f\u8151\u5e9c\u8150\u8d74\u526f\u8986\u8d4b\u590d\u5085\u4ed8\u961c\u7236\u8179\u8d1f\u5bcc\u8ba3\u9644\u5987\u7f1a\u5490\u5676\u560e\u8be5\u6539\u6982\u9499\u76d6\u6e89\u5e72\u7518\u6746\u67d1\u7aff\u809d\u8d76\u611f\u79c6\u6562\u8d63\u5188\u521a\u94a2\u7f38\u809b\u7eb2\u5c97\u6e2f\u6760\u7bd9\u768b\u9ad8\u818f\u7f94\u7cd5\u641e\u9550\u7a3f\u544a\u54e5\u6b4c\u6401\u6208\u9e3d\u80f3\u7599\u5272\u9769\u845b\u683c\u86e4\u9601\u9694\u94ec\u4e2a\u5404\u7ed9\u6839\u8ddf\u8015\u66f4\u5e9a\u7fb9\u57c2\u803f\u6897\u5de5\u653b\u529f\u606d\u9f9a\u4f9b\u8eac\u516c\u5bab\u5f13\u5de9\u6c5e\u62f1\u8d21\u5171\u94a9\u52fe\u6c9f\u82df\u72d7\u57a2\u6784\u8d2d\u591f\u8f9c\u83c7\u5495\u7b8d\u4f30\u6cbd\u5b64\u59d1\u9f13\u53e4\u86ca\u9aa8\u8c37\u80a1\u6545\u987e\u56fa\u96c7\u522e\u74dc\u5250\u5be1\u6302\u8902\u4e56\u62d0\u602a\u68fa\u5173\u5b98\u51a0\u89c2\u7ba1\u9986\u7f50\u60ef\u704c\u8d2f\u5149\u5e7f\u901b\u7470\u89c4\u572d\u7845\u5f52\u9f9f\u95fa\u8f68\u9b3c\u8be1\u7678\u6842\u67dc\u8dea\u8d35\u523d\u8f8a\u6eda\u68cd\u9505\u90ed\u56fd\u679c\u88f9\u8fc7\u54c8\u9ab8\u5b69\u6d77\u6c26\u4ea5\u5bb3\u9a87\u9163\u61a8\u90af\u97e9\u542b\u6db5\u5bd2\u51fd\u558a\u7f55\u7ff0\u64bc\u634d\u65f1\u61be\u608d\u710a\u6c57\u6c49\u592f\u676d\u822a\u58d5\u568e\u8c6a\u6beb\u90dd\u597d\u8017\u53f7\u6d69\u5475\u559d\u8377\u83cf\u6838\u79be\u548c\u4f55\u5408\u76d2\u8c89\u9602\u6cb3\u6db8\u8d6b\u8910\u9e64\u8d3a\u563f\u9ed1\u75d5\u5f88\u72e0\u6068\u54fc\u4ea8\u6a2a\u8861\u6052\u8f70\u54c4\u70d8\u8679\u9e3f\u6d2a\u5b8f\u5f18\u7ea2\u5589\u4faf\u7334\u543c\u539a\u5019\u540e\u547c\u4e4e\u5ffd\u745a\u58f6\u846b\u80e1\u8774\u72d0\u7cca\u6e56\u5f27\u864e\u552c\u62a4\u4e92\u6caa\u6237\u82b1\u54d7\u534e\u733e\u6ed1\u753b\u5212\u5316\u8bdd\u69d0\u5f8a\u6000\u6dee\u574f\u6b22\u73af\u6853\u8fd8\u7f13\u6362\u60a3\u5524\u75ea\u8c62\u7115\u6da3\u5ba6\u5e7b\u8352\u614c\u9ec4\u78fa\u8757\u7c27\u7687\u51f0\u60f6\u714c\u6643\u5e4c\u604d\u8c0e\u7070\u6325\u8f89\u5fbd\u6062\u86d4\u56de\u6bc1\u6094\u6167\u5349\u60e0\u6666\u8d3f\u79fd\u4f1a\u70e9\u6c47\u8bb3\u8bf2\u7ed8\u8364\u660f\u5a5a\u9b42\u6d51\u6df7\u8c41\u6d3b\u4f19\u706b\u83b7\u6216\u60d1\u970d\u8d27\u7978\u51fb\u573e\u57fa\u673a\u7578\u7a3d\u79ef\u7b95\u808c\u9965\u8ff9\u6fc0\u8ba5\u9e21\u59ec\u7ee9\u7f09\u5409\u6781\u68d8\u8f91\u7c4d\u96c6\u53ca\u6025\u75be\u6c72\u5373\u5ac9\u7ea7\u6324\u51e0\u810a\u5df1\u84df\u6280\u5180\u5b63\u4f0e\u796d\u5242\u60b8\u6d4e\u5bc4\u5bc2\u8ba1\u8bb0\u65e2\u5fcc\u9645\u7ee7\u7eaa\u5609\u67b7\u5939\u4f73\u5bb6\u52a0\u835a\u988a\u8d3e\u7532\u94be\u5047\u7a3c\u4ef7\u67b6\u9a7e\u5ac1\u6b7c\u76d1\u575a\u5c16\u7b3a\u95f4\u714e\u517c\u80a9\u8270\u5978\u7f04\u8327\u68c0\u67ec\u78b1\u7877\u62e3\u6361\u7b80\u4fed\u526a\u51cf\u8350\u69db\u9274\u8df5\u8d31\u89c1\u952e\u7bad\u4ef6\u5065\u8230\u5251\u996f\u6e10\u6e85\u6da7\u5efa\u50f5\u59dc\u5c06\u6d46\u6c5f\u7586\u848b\u6868\u5956\u8bb2\u5320\u9171\u964d\u8549\u6912\u7901\u7126\u80f6\u4ea4\u90ca\u6d47\u9a84\u5a07\u56bc\u6405\u94f0\u77eb\u4fa5\u811a\u72e1\u89d2\u997a\u7f34\u7ede\u527f\u6559\u9175\u8f7f\u8f83\u53eb\u7a96\u63ed\u63a5\u7686\u79f8\u8857\u9636\u622a\u52ab\u8282\u830e\u775b\u6676\u9cb8\u4eac\u60ca\u7cbe\u7cb3\u7ecf\u4e95\u8b66\u666f\u9888\u9759\u5883\u656c\u955c\u5f84\u75c9\u9756\u7adf\u7ade\u51c0\u70af\u7a98\u63ea\u7a76\u7ea0\u7396\u97ed\u4e45\u7078\u4e5d\u9152\u53a9\u6551\u65e7\u81fc\u8205\u548e\u5c31\u759a\u97a0\u62d8\u72d9\u75bd\u5c45\u9a79\u83ca\u5c40\u5480\u77e9\u4e3e\u6cae\u805a\u62d2\u636e\u5de8\u5177\u8ddd\u8e1e\u952f\u4ff1\u53e5\u60e7\u70ac\u5267\u6350\u9e43\u5a1f\u5026\u7737\u5377\u7ee2\u6485\u652b\u6289\u6398\u5014\u7235\u6854\u6770\u6377\u776b\u7aed\u6d01\u7ed3\u89e3\u59d0\u6212\u85c9\u82a5\u754c\u501f\u4ecb\u75a5\u8beb\u5c4a\u5dfe\u7b4b\u65a4\u91d1\u4eca\u6d25\u895f\u7d27\u9526\u4ec5\u8c28\u8fdb\u9773\u664b\u7981\u8fd1\u70ec\u6d78\u5c3d\u52b2\u8346\u5162\u89c9\u51b3\u8bc0\u7edd\u5747\u83cc\u94a7\u519b\u541b\u5cfb\u4fca\u7ae3\u6d5a\u90e1\u9a8f\u5580\u5496\u5361\u54af\u5f00\u63e9\u6977\u51ef\u6168\u520a\u582a\u52d8\u574e\u780d\u770b\u5eb7\u6177\u7ce0\u625b\u6297\u4ea2\u7095\u8003\u62f7\u70e4\u9760\u5777\u82db\u67ef\u68f5\u78d5\u9897\u79d1\u58f3\u54b3\u53ef\u6e34\u514b\u523b\u5ba2\u8bfe\u80af\u5543\u57a6\u6073\u5751\u542d\u7a7a\u6050\u5b54\u63a7\u62a0\u53e3\u6263\u5bc7\u67af\u54ed\u7a9f\u82e6\u9177\u5e93\u88e4\u5938\u57ae\u630e\u8de8\u80ef\u5757\u7b77\u4fa9\u5feb\u5bbd\u6b3e\u5321\u7b50\u72c2\u6846\u77ff\u7736\u65f7\u51b5\u4e8f\u76d4\u5cbf\u7aa5\u8475\u594e\u9b41\u5080\u9988\u6127\u6e83\u5764\u6606\u6346\u56f0\u62ec\u6269\u5ed3\u9614\u5783\u62c9\u5587\u8721\u814a\u8fa3\u5566\u83b1\u6765\u8d56\u84dd\u5a6a\u680f\u62e6\u7bee\u9611\u5170\u6f9c\u8c30\u63fd\u89c8\u61d2\u7f06\u70c2\u6ee5\u7405\u6994\u72fc\u5eca\u90ce\u6717\u6d6a\u635e\u52b3\u7262\u8001\u4f6c\u59e5\u916a\u70d9\u6d9d\u52d2\u4e50\u96f7\u956d\u857e\u78ca\u7d2f\u5121\u5792\u64c2\u808b\u7c7b\u6cea\u68f1\u695e\u51b7\u5398\u68a8\u7281\u9ece\u7bf1\u72f8\u79bb\u6f13\u7406\u674e\u91cc\u9ca4\u793c\u8389\u8354\u540f\u6817\u4e3d\u5389\u52b1\u783e\u5386\u5229\u5088\u4f8b\u4fd0\u75e2\u7acb\u7c92\u6ca5\u96b6\u529b\u7483\u54e9\u4fe9\u8054\u83b2\u8fde\u9570\u5ec9\u601c\u6d9f\u5e18\u655b\u8138\u94fe\u604b\u70bc\u7ec3\u7cae\u51c9\u6881\u7cb1\u826f\u4e24\u8f86\u91cf\u667e\u4eae\u8c05\u64a9\u804a\u50da\u7597\u71ce\u5be5\u8fbd\u6f66\u4e86\u6482\u9563\u5ed6\u6599\u5217\u88c2\u70c8\u52a3\u730e\u7433\u6797\u78f7\u9716\u4e34\u90bb\u9cde\u6dcb\u51db\u8d41\u541d\u62ce\u73b2\u83f1\u96f6\u9f84\u94c3\u4f36\u7f9a\u51cc\u7075\u9675\u5cad\u9886\u53e6\u4ee4\u6e9c\u7409\u69b4\u786b\u998f\u7559\u5218\u7624\u6d41\u67f3\u516d\u9f99\u804b\u5499\u7b3c\u7abf\u9686\u5784\u62e2\u9647\u697c\u5a04\u6402\u7bd3\u6f0f\u964b\u82a6\u5362\u9885\u5e90\u7089\u63b3\u5364\u864f\u9c81\u9e93\u788c\u9732\u8def\u8d42\u9e7f\u6f5e\u7984\u5f55\u9646\u622e\u9a74\u5415\u94dd\u4fa3\u65c5\u5c65\u5c61\u7f15\u8651\u6c2f\u5f8b\u7387\u6ee4\u7eff\u5ce6\u631b\u5b6a\u6ee6\u5375\u4e71\u63a0\u7565\u62a1\u8f6e\u4f26\u4ed1\u6ca6\u7eb6\u8bba\u841d\u87ba\u7f57\u903b\u9523\u7ba9\u9aa1\u88f8\u843d\u6d1b\u9a86\u7edc\u5988\u9ebb\u739b\u7801\u8682\u9a6c\u9a82\u561b\u5417\u57cb\u4e70\u9ea6\u5356\u8fc8\u8109\u7792\u9992\u86ee\u6ee1\u8513\u66fc\u6162\u6f2b\u8c29\u8292\u832b\u76f2\u6c13\u5fd9\u83bd\u732b\u8305\u951a\u6bdb\u77db\u94c6\u536f\u8302\u5192\u5e3d\u8c8c\u8d38\u4e48\u73ab\u679a\u6885\u9176\u9709\u7164\u6ca1\u7709\u5a92\u9541\u6bcf\u7f8e\u6627\u5bd0\u59b9\u5a9a\u95e8\u95f7\u4eec\u840c\u8499\u6aac\u76df\u9530\u731b\u68a6\u5b5f\u772f\u919a\u9761\u7cdc\u8ff7\u8c1c\u5f25\u7c73\u79d8\u89c5\u6ccc\u871c\u5bc6\u5e42\u68c9\u7720\u7ef5\u5195\u514d\u52c9\u5a29\u7f05\u9762\u82d7\u63cf\u7784\u85d0\u79d2\u6e3a\u5e99\u5999\u8511\u706d\u6c11\u62bf\u76bf\u654f\u60af\u95fd\u660e\u879f\u9e23\u94ed\u540d\u547d\u8c2c\u6478\u6479\u8611\u6a21\u819c\u78e8\u6469\u9b54\u62b9\u672b\u83ab\u58a8\u9ed8\u6cab\u6f20\u5bde\u964c\u8c0b\u725f\u67d0\u62c7\u7261\u4ea9\u59c6\u6bcd\u5893\u66ae\u5e55\u52df\u6155\u6728\u76ee\u7766\u7267\u7a46\u62ff\u54ea\u5450\u94a0\u90a3\u5a1c\u7eb3\u6c16\u4e43\u5976\u8010\u5948\u5357\u7537\u96be\u56ca\u6320\u8111\u607c\u95f9\u6dd6\u5462\u9981\u5185\u5ae9\u80fd\u59ae\u9713\u502a\u6ce5\u5c3c\u62df\u4f60\u533f\u817b\u9006\u6eba\u852b\u62c8\u5e74\u78be\u64b5\u637b\u5ff5\u5a18\u917f\u9e1f\u5c3f\u634f\u8042\u5b7d\u556e\u954a\u954d\u6d85\u60a8\u67e0\u72de\u51dd\u5b81\u62e7\u6cde\u725b\u626d\u94ae\u7ebd\u8113\u6d53\u519c\u5f04\u5974\u52aa\u6012\u5973\u6696\u8650\u759f\u632a\u61e6\u7cef\u8bfa\u54e6\u6b27\u9e25\u6bb4\u85d5\u5455\u5076\u6ca4\u556a\u8db4\u722c\u5e15\u6015\u7436\u62cd\u6392\u724c\u5f98\u6e43\u6d3e\u6500\u6f58\u76d8\u78d0\u76fc\u7554\u5224\u53db\u4e53\u5e9e\u65c1\u802a\u80d6\u629b\u5486\u5228\u70ae\u888d\u8dd1\u6ce1\u5478\u80da\u57f9\u88f4\u8d54\u966a\u914d\u4f69\u6c9b\u55b7\u76c6\u7830\u62a8\u70f9\u6f8e\u5f6d\u84ec\u68da\u787c\u7bf7\u81a8\u670b\u9e4f\u6367\u78b0\u576f\u7812\u9739\u6279\u62ab\u5288\u7435\u6bd7\u5564\u813e\u75b2\u76ae\u5339\u75de\u50fb\u5c41\u8b6c\u7bc7\u504f\u7247\u9a97\u98d8\u6f02\u74e2\u7968\u6487\u77a5\u62fc\u9891\u8d2b\u54c1\u8058\u4e52\u576a\u82f9\u840d\u5e73\u51ed\u74f6\u8bc4\u5c4f\u5761\u6cfc\u9887\u5a46\u7834\u9b44\u8feb\u7c95\u5256\u6251\u94fa\u4ec6\u8386\u8461\u83e9\u84b2\u57d4\u6734\u5703\u666e\u6d66\u8c31\u66dd\u7011\u671f\u6b3a\u6816\u621a\u59bb\u4e03\u51c4\u6f06\u67d2\u6c8f\u5176\u68cb\u5947\u6b67\u7566\u5d0e\u8110\u9f50\u65d7\u7948\u7941\u9a91\u8d77\u5c82\u4e5e\u4f01\u542f\u5951\u780c\u5668\u6c14\u8fc4\u5f03\u6c7d\u6ce3\u8bab\u6390\u6d3d\u7275\u6266\u948e\u94c5\u5343\u8fc1\u7b7e\u4edf\u8c26\u4e7e\u9ed4\u94b1\u94b3\u524d\u6f5c\u9063\u6d45\u8c34\u5811\u5d4c\u6b20\u6b49\u67aa\u545b\u8154\u7f8c\u5899\u8537\u5f3a\u62a2\u6a47\u9539\u6572\u6084\u6865\u77a7\u4e54\u4fa8\u5de7\u9798\u64ac\u7fd8\u5ced\u4fcf\u7a8d\u5207\u8304\u4e14\u602f\u7a83\u94a6\u4fb5\u4eb2\u79e6\u7434\u52e4\u82b9\u64d2\u79bd\u5bdd\u6c81\u9752\u8f7b\u6c22\u503e\u537f\u6e05\u64ce\u6674\u6c30\u60c5\u9877\u8bf7\u5e86\u743c\u7a77\u79cb\u4e18\u90b1\u7403\u6c42\u56da\u914b\u6cc5\u8d8b\u533a\u86c6\u66f2\u8eaf\u5c48\u9a71\u6e20\u53d6\u5a36\u9f8b\u8da3\u53bb\u5708\u98a7\u6743\u919b\u6cc9\u5168\u75ca\u62f3\u72ac\u5238\u529d\u7f3a\u7094\u7638\u5374\u9e4a\u69b7\u786e\u96c0\u88d9\u7fa4\u7136\u71c3\u5189\u67d3\u74e4\u58e4\u6518\u56b7\u8ba9\u9976\u6270\u7ed5\u60f9\u70ed\u58ec\u4ec1\u4eba\u5fcd\u97e7\u4efb\u8ba4\u5203\u598a\u7eab\u6254\u4ecd\u65e5\u620e\u8338\u84c9\u8363\u878d\u7194\u6eb6\u5bb9\u7ed2\u5197\u63c9\u67d4\u8089\u8339\u8815\u5112\u5b7a\u5982\u8fb1\u4e73\u6c5d\u5165\u8925\u8f6f\u962e\u854a\u745e\u9510\u95f0\u6da6\u82e5\u5f31\u6492\u6d12\u8428\u816e\u9cc3\u585e\u8d5b\u4e09\u53c1\u4f1e\u6563\u6851\u55d3\u4e27\u6414\u9a9a\u626b\u5ac2\u745f\u8272\u6da9\u68ee\u50e7\u838e\u7802\u6740\u5239\u6c99\u7eb1\u50bb\u5565\u715e\u7b5b\u6652\u73ca\u82eb\u6749\u5c71\u5220\u717d\u886b\u95ea\u9655\u64c5\u8d61\u81b3\u5584\u6c55\u6247\u7f2e\u5892\u4f24\u5546\u8d4f\u664c\u4e0a\u5c1a\u88f3\u68a2\u634e\u7a0d\u70e7\u828d\u52fa\u97f6\u5c11\u54e8\u90b5\u7ecd\u5962\u8d4a\u86c7\u820c\u820d\u8d66\u6444\u5c04\u6151\u6d89\u793e\u8bbe\u7837\u7533\u547b\u4f38\u8eab\u6df1\u5a20\u7ec5\u795e\u6c88\u5ba1\u5a76\u751a\u80be\u614e\u6e17\u58f0\u751f\u7525\u7272\u5347\u7ef3\u7701\u76db\u5269\u80dc\u5723\u5e08\u5931\u72ee\u65bd\u6e7f\u8bd7\u5c38\u8671\u5341\u77f3\u62fe\u65f6\u4ec0\u98df\u8680\u5b9e\u8bc6\u53f2\u77e2\u4f7f\u5c4e\u9a76\u59cb\u5f0f\u793a\u58eb\u4e16\u67ff\u4e8b\u62ed\u8a93\u901d\u52bf\u662f\u55dc\u566c\u9002\u4ed5\u4f8d\u91ca\u9970\u6c0f\u5e02\u6043\u5ba4\u89c6\u8bd5\u6536\u624b\u9996\u5b88\u5bff\u6388\u552e\u53d7\u7626\u517d\u852c\u67a2\u68b3\u6b8a\u6292\u8f93\u53d4\u8212\u6dd1\u758f\u4e66\u8d4e\u5b70\u719f\u85af\u6691\u66d9\u7f72\u8700\u9ecd\u9f20\u5c5e\u672f\u8ff0\u6811\u675f\u620d\u7ad6\u5885\u5eb6\u6570\u6f31\u6055\u5237\u800d\u6454\u8870\u7529\u5e05\u6813\u62f4\u971c\u53cc\u723d\u8c01\u6c34\u7761\u7a0e\u542e\u77ac\u987a\u821c\u8bf4\u7855\u6714\u70c1\u65af\u6495\u5636\u601d\u79c1\u53f8\u4e1d\u6b7b\u8086\u5bfa\u55e3\u56db\u4f3a\u4f3c\u9972\u5df3\u677e\u8038\u6002\u9882\u9001\u5b8b\u8bbc\u8bf5\u641c\u8258\u64de\u55fd\u82cf\u9165\u4fd7\u7d20\u901f\u7c9f\u50f3\u5851\u6eaf\u5bbf\u8bc9\u8083\u9178\u849c\u7b97\u867d\u968b\u968f\u7ee5\u9ad3\u788e\u5c81\u7a57\u9042\u96a7\u795f\u5b59\u635f\u7b0b\u84d1\u68ad\u5506\u7f29\u7410\u7d22\u9501\u6240\u584c\u4ed6\u5b83\u5979\u5854\u736d\u631e\u8e4b\u8e0f\u80ce\u82d4\u62ac\u53f0\u6cf0\u915e\u592a\u6001\u6c70\u574d\u644a\u8d2a\u762b\u6ee9\u575b\u6a80\u75f0\u6f6d\u8c2d\u8c08\u5766\u6bef\u8892\u78b3\u63a2\u53f9\u70ad\u6c64\u5858\u642a\u5802\u68e0\u819b\u5510\u7cd6\u5018\u8eba\u6dcc\u8d9f\u70eb\u638f\u6d9b\u6ed4\u7ee6\u8404\u6843\u9003\u6dd8\u9676\u8ba8\u5957\u7279\u85e4\u817e\u75bc\u8a8a\u68af\u5254\u8e22\u9511\u63d0\u9898\u8e44\u557c\u4f53\u66ff\u568f\u60d5\u6d95\u5243\u5c49\u5929\u6dfb\u586b\u7530\u751c\u606c\u8214\u8146\u6311\u6761\u8fe2\u773a\u8df3\u8d34\u94c1\u5e16\u5385\u542c\u70c3\u6c40\u5ef7\u505c\u4ead\u5ead\u633a\u8247\u901a\u6850\u916e\u77b3\u540c\u94dc\u5f64\u7ae5\u6876\u6345\u7b52\u7edf\u75db\u5077\u6295\u5934\u900f\u51f8\u79c3\u7a81\u56fe\u5f92\u9014\u6d82\u5c60\u571f\u5410\u5154\u6e4d\u56e2\u63a8\u9893\u817f\u8715\u892a\u9000\u541e\u5c6f\u81c0\u62d6\u6258\u8131\u9e35\u9640\u9a6e\u9a7c\u692d\u59a5\u62d3\u553e\u6316\u54c7\u86d9\u6d3c\u5a03\u74e6\u889c\u6b6a\u5916\u8c4c\u5f2f\u6e7e\u73a9\u987d\u4e38\u70f7\u5b8c\u7897\u633d\u665a\u7696\u60cb\u5b9b\u5a49\u4e07\u8155\u6c6a\u738b\u4ea1\u6789\u7f51\u5f80\u65fa\u671b\u5fd8\u5984\u5a01\u5dcd\u5fae\u5371\u97e6\u8fdd\u6845\u56f4\u552f\u60df\u4e3a\u6f4d\u7ef4\u82c7\u840e\u59d4\u4f1f\u4f2a\u5c3e\u7eac\u672a\u851a\u5473\u754f\u80c3\u5582\u9b4f\u4f4d\u6e2d\u8c13\u5c09\u6170\u536b\u761f\u6e29\u868a\u6587\u95fb\u7eb9\u543b\u7a33\u7d0a\u95ee\u55e1\u7fc1\u74ee\u631d\u8717\u6da1\u7a9d\u6211\u65a1\u5367\u63e1\u6c83\u5deb\u545c\u94a8\u4e4c\u6c61\u8bec\u5c4b\u65e0\u829c\u68a7\u543e\u5434\u6bcb\u6b66\u4e94\u6342\u5348\u821e\u4f0d\u4fae\u575e\u620a\u96fe\u6664\u7269\u52ff\u52a1\u609f\u8bef\u6614\u7199\u6790\u897f\u7852\u77fd\u6670\u563b\u5438\u9521\u727a\u7a00\u606f\u5e0c\u6089\u819d\u5915\u60dc\u7184\u70ef\u6eaa\u6c50\u7280\u6a84\u88ad\u5e2d\u4e60\u5ab3\u559c\u94e3\u6d17\u7cfb\u9699\u620f\u7ec6\u778e\u867e\u5323\u971e\u8f96\u6687\u5ce1\u4fa0\u72ed\u4e0b\u53a6\u590f\u5413\u6380\u9528\u5148\u4ed9\u9c9c\u7ea4\u54b8\u8d24\u8854\u8237\u95f2\u6d8e\u5f26\u5acc\u663e\u9669\u73b0\u732e\u53bf\u817a\u9985\u7fa1\u5baa\u9677\u9650\u7ebf\u76f8\u53a2\u9576\u9999\u7bb1\u8944\u6e58\u4e61\u7fd4\u7965\u8be6\u60f3\u54cd\u4eab\u9879\u5df7\u6a61\u50cf\u5411\u8c61\u8427\u785d\u9704\u524a\u54ee\u56a3\u9500\u6d88\u5bb5\u6dc6\u6653\u5c0f\u5b5d\u6821\u8096\u5578\u7b11\u6548\u6954\u4e9b\u6b47\u874e\u978b\u534f\u631f\u643a\u90aa\u659c\u80c1\u8c10\u5199\u68b0\u5378\u87f9\u61c8\u6cc4\u6cfb\u8c22\u5c51\u85aa\u82af\u950c\u6b23\u8f9b\u65b0\u5ffb\u5fc3\u4fe1\u8845\u661f\u8165\u7329\u60fa\u5174\u5211\u578b\u5f62\u90a2\u884c\u9192\u5e78\u674f\u6027\u59d3\u5144\u51f6\u80f8\u5308\u6c79\u96c4\u718a\u4f11\u4fee\u7f9e\u673d\u55c5\u9508\u79c0\u8896\u7ee3\u589f\u620c\u9700\u865a\u5618\u987b\u5f90\u8bb8\u84c4\u9157\u53d9\u65ed\u5e8f\u755c\u6064\u7d6e\u5a7f\u7eea\u7eed\u8f69\u55a7\u5ba3\u60ac\u65cb\u7384\u9009\u7663\u7729\u7eda\u9774\u859b\u5b66\u7a74\u96ea\u8840\u52cb\u718f\u5faa\u65ec\u8be2\u5bfb\u9a6f\u5de1\u6b89\u6c5b\u8bad\u8baf\u900a\u8fc5\u538b\u62bc\u9e26\u9e2d\u5440\u4e2b\u82bd\u7259\u869c\u5d16\u8859\u6daf\u96c5\u54d1\u4e9a\u8bb6\u7109\u54bd\u9609\u70df\u6df9\u76d0\u4e25\u7814\u8712\u5ca9\u5ef6\u8a00\u989c\u960e\u708e\u6cbf\u5944\u63a9\u773c\u884d\u6f14\u8273\u5830\u71d5\u538c\u781a\u96c1\u5501\u5f66\u7130\u5bb4\u8c1a\u9a8c\u6b83\u592e\u9e2f\u79e7\u6768\u626c\u4f6f\u75a1\u7f8a\u6d0b\u9633\u6c27\u4ef0\u75d2\u517b\u6837\u6f3e\u9080\u8170\u5996\u7476\u6447\u5c27\u9065\u7a91\u8c23\u59da\u54ac\u8200\u836f\u8981\u8000\u6930\u564e\u8036\u7237\u91ce\u51b6\u4e5f\u9875\u6396\u4e1a\u53f6\u66f3\u814b\u591c\u6db2\u4e00\u58f9\u533b\u63d6\u94f1\u4f9d\u4f0a\u8863\u9890\u5937\u9057\u79fb\u4eea\u80f0\u7591\u6c82\u5b9c\u59e8\u5f5d\u6905\u8681\u501a\u5df2\u4e59\u77e3\u4ee5\u827a\u6291\u6613\u9091\u5c79\u4ebf\u5f79\u81c6\u9038\u8084\u75ab\u4ea6\u88d4\u610f\u6bc5\u5fc6\u4e49\u76ca\u6ea2\u8be3\u8bae\u8c0a\u8bd1\u5f02\u7ffc\u7fcc\u7ece\u8335\u836b\u56e0\u6bb7\u97f3\u9634\u59fb\u541f\u94f6\u6deb\u5bc5\u996e\u5c39\u5f15\u9690\u5370\u82f1\u6a31\u5a74\u9e70\u5e94\u7f28\u83b9\u8424\u8425\u8367\u8747\u8fce\u8d62\u76c8\u5f71\u9896\u786c\u6620\u54df\u62e5\u4f63\u81c3\u75c8\u5eb8\u96cd\u8e0a\u86f9\u548f\u6cf3\u6d8c\u6c38\u607f\u52c7\u7528\u5e7d\u4f18\u60a0\u5fe7\u5c24\u7531\u90ae\u94c0\u72b9\u6cb9\u6e38\u9149\u6709\u53cb\u53f3\u4f51\u91c9\u8bf1\u53c8\u5e7c\u8fc2\u6de4\u4e8e\u76c2\u6986\u865e\u611a\u8206\u4f59\u4fde\u903e\u9c7c\u6109\u6e1d\u6e14\u9685\u4e88\u5a31\u96e8\u4e0e\u5c7f\u79b9\u5b87\u8bed\u7fbd\u7389\u57df\u828b\u90c1\u5401\u9047\u55bb\u5cea\u5fa1\u6108\u6b32\u72f1\u80b2\u8a89\u6d74\u5bd3\u88d5\u9884\u8c6b\u9a6d\u9e33\u6e0a\u51a4\u5143\u57a3\u8881\u539f\u63f4\u8f95\u56ed\u5458\u5706\u733f\u6e90\u7f18\u8fdc\u82d1\u613f\u6028\u9662\u66f0\u7ea6\u8d8a\u8dc3\u94a5\u5cb3\u7ca4\u6708\u60a6\u9605\u8018\u4e91\u90e7\u5300\u9668\u5141\u8fd0\u8574\u915d\u6655\u97f5\u5b55\u531d\u7838\u6742\u683d\u54c9\u707e\u5bb0\u8f7d\u518d\u5728\u54b1\u6512\u6682\u8d5e\u8d43\u810f\u846c\u906d\u7cdf\u51ff\u85fb\u67a3\u65e9\u6fa1\u86a4\u8e81\u566a\u9020\u7682\u7076\u71e5\u8d23\u62e9\u5219\u6cfd\u8d3c\u600e\u589e\u618e\u66fe\u8d60\u624e\u55b3\u6e23\u672d\u8f67\u94e1\u95f8\u7728\u6805\u69a8\u548b\u4e4d\u70b8\u8bc8\u6458\u658b\u5b85\u7a84\u503a\u5be8\u77bb\u6be1\u8a79\u7c98\u6cbe\u76cf\u65a9\u8f97\u5d2d\u5c55\u8638\u6808\u5360\u6218\u7ad9\u6e5b\u7efd\u6a1f\u7ae0\u5f70\u6f33\u5f20\u638c\u6da8\u6756\u4e08\u5e10\u8d26\u4ed7\u80c0\u7634\u969c\u62db\u662d\u627e\u6cbc\u8d75\u7167\u7f69\u5146\u8087\u53ec\u906e\u6298\u54f2\u86f0\u8f99\u8005\u9517\u8517\u8fd9\u6d59\u73cd\u659f\u771f\u7504\u7827\u81fb\u8d1e\u9488\u4fa6\u6795\u75b9\u8bca\u9707\u632f\u9547\u9635\u84b8\u6323\u7741\u5f81\u72f0\u4e89\u6014\u6574\u62ef\u6b63\u653f\u5e27\u75c7\u90d1\u8bc1\u829d\u679d\u652f\u5431\u8718\u77e5\u80a2\u8102\u6c41\u4e4b\u7ec7\u804c\u76f4\u690d\u6b96\u6267\u503c\u4f84\u5740\u6307\u6b62\u8dbe\u53ea\u65e8\u7eb8\u5fd7\u631a\u63b7\u81f3\u81f4\u7f6e\u5e1c\u5cd9\u5236\u667a\u79e9\u7a1a\u8d28\u7099\u75d4\u6ede\u6cbb\u7a92\u4e2d\u76c5\u5fe0\u949f\u8877\u7ec8\u79cd\u80bf\u91cd\u4ef2\u4f17\u821f\u5468\u5dde\u6d32\u8bcc\u7ca5\u8f74\u8098\u5e1a\u5492\u76b1\u5b99\u663c\u9aa4\u73e0\u682a\u86db\u6731\u732a\u8bf8\u8bdb\u9010\u7af9\u70db\u716e\u62c4\u77a9\u5631\u4e3b\u8457\u67f1\u52a9\u86c0\u8d2e\u94f8\u7b51\u4f4f\u6ce8\u795d\u9a7b\u6293\u722a\u62fd\u4e13\u7816\u8f6c\u64b0\u8d5a\u7bc6\u6869\u5e84\u88c5\u5986\u649e\u58ee\u72b6\u690e\u9525\u8ffd\u8d58\u5760\u7f00\u8c06\u51c6\u6349\u62d9\u5353\u684c\u7422\u8301\u914c\u5544\u7740\u707c\u6d4a\u5179\u54a8\u8d44\u59ff\u6ecb\u6dc4\u5b5c\u7d2b\u4ed4\u7c7d\u6ed3\u5b50\u81ea\u6e0d\u5b57\u9b03\u68d5\u8e2a\u5b97\u7efc\u603b\u7eb5\u90b9\u8d70\u594f\u63cd\u79df\u8db3\u5352\u65cf\u7956\u8bc5\u963b\u7ec4\u94bb\u7e82\u5634\u9189\u6700\u7f6a\u5c0a\u9075\u6628\u5de6\u4f50\u67de\u505a\u4f5c\u5750\u5ea7\u9515\u55f3\u5ad2\u7477\u66a7\u972d\u8c19\u94f5\u9e4c\u5aaa\u9a9c\u9ccc\u94af\u5457\u94a3\u9e28\u9f85\u9e4e\u8d32\u951b\u835c\u54d4\u6ed7\u94cb\u7b5a\u8df8\u82c4\u7f0f\u7b3e\u9aa0\u98d1\u98d9\u9556\u9573\u9cd4\u50a7\u7f24\u69df\u6ba1\u8191\u9554\u9acc\u9b13\u7980\u997d\u94b9\u9e41\u94b8\u9a96\u9eea\u607b\u9538\u4faa\u9497\u5181\u8c04\u8c36\u8487\u5fcf\u5a75\u9aa3\u89c7\u7985\u9561\u4f25\u82cc\u6005\u960a\u9cb3\u7817\u4f27\u8c0c\u6987\u789c\u9f80\u67a8\u67fd\u94d6\u94db\u996c\u9e31\u94f3\u4fe6\u5e31\u96e0\u520d\u7ecc\u8e70\u948f\u6006\u7f0d\u9e51\u8f8d\u9f8a\u9e5a\u82c1\u9aa2\u679e\u8f8f\u64ba\u9509\u9e7e\u54d2\u9791\u9a80\u7ed0\u6b9a\u8d55\u7605\u7baa\u8c20\u7800\u88c6\u7118\u956b\u7c74\u8bcb\u8c1b\u7ee8\u89cc\u955d\u5dc5\u94bf\u766b\u94eb\u9cb7\u9cbd\u94e4\u94e5\u5cbd\u9e2b\u7aa6\u6e0e\u691f\u724d\u7b03\u9ee9\u7c16\u603c\u9566\u7096\u8db8\u94ce\u8c14\u57a9\u960f\u8f6d\u9507\u9537\u9e57\u989a\u989b\u9cc4\u8bf6\u8fe9\u94d2\u9e38\u9c95\u94ab\u9c82\u7eef\u9544\u9cb1\u507e\u6ca3\u51eb\u9a78\u7ec2\u7ecb\u8d59\u9eb8\u9c8b\u9cc6\u9486\u8d45\u5c34\u64c0\u7ec0\u6206\u777e\u8bf0\u7f1f\u9506\u7ea5\u9549\u988d\u4e98\u8d53\u7ee0\u9ca0\u8bdf\u7f11\u89cf\u8bc2\u6bc2\u94b4\u9522\u9e2a\u9e44\u9e58\u9e39\u63b4\u8bd6\u63bc\u9e73\u9ccf\u72b7\u5326\u523f\u59ab\u6867\u9c91\u9cdc\u886e\u7ef2\u9ca7\u57da\u5459\u5e3c\u6901\u8748\u94ea\u961a\u7ed7\u9889\u704f\u98a2\u8bc3\u9616\u86ce\u9ec9\u8ba7\u836d\u95f3\u9c8e\u6d52\u9e55\u9a85\u6866\u94e7\u5942\u7f33\u953e\u9ca9\u9cc7\u8bd9\u835f\u54d5\u6d4d\u7f0b\u73f2\u6656\u8be8\u9984\u960d\u94ac\u956c\u8ba6\u8bd8\u8360\u53fd\u54dc\u9aa5\u7391\u89ca\u9f51\u77f6\u7f81\u867f\u8dfb\u9701\u9c9a\u9cab\u90cf\u6d43\u94d7\u9553\u86f2\u8c0f\u7f23\u620b\u622c\u7751\u9e63\u7b15\u9ca3\u97af\u7edb\u7f30\u6322\u5ce4\u9e6a\u9c9b\u7596\u988c\u9c92\u537a\u8369\u9991\u7f19\u8d46\u89d0\u522d\u6cfe\u8ff3\u5f2a\u80eb\u9753\u9604\u9e20\u9e6b\u8bb5\u5c66\u6989\u98d3\u949c\u9514\u7aad\u9f83\u9529\u954c\u96bd\u8c32\u73cf\u76b2\u5240\u57b2\u5ffe\u607a\u94e0\u9534\u9f9b\u95f6\u94aa\u94d0\u9a92\u7f02\u8f72\u94b6\u951e\u9894\u9f88\u94ff\u55be\u90d0\u54d9\u810d\u72ef\u9acb\u8bd3\u8bf3\u909d\u5739\u7ea9\u8d36\u532e\u8489\u6126\u8069\u7bd1\u9603\u951f\u9cb2\u86f4\u5d03\u5f95\u6d9e\u6fd1\u8d49\u7750\u94fc\u765e\u7c41\u5c9a\u6984\u6593\u9567\u8934\u9606\u9512\u5520\u5d02\u94d1\u94f9\u75e8\u9cd3\u8bd4\u7f27\u4fea\u90e6\u575c\u82c8\u8385\u84e0\u5456\u9026\u9a8a\u7f21\u67a5\u680e\u8f79\u783a\u9502\u9e42\u75a0\u7c9d\u8dde\u96f3\u9ca1\u9ce2\u8539\u5941\u6f4b\u740f\u6b93\u88e2\u88e3\u9ca2\u9b49\u7f2d\u948c\u9e69\u853a\u5eea\u6aa9\u8f9a\u8e8f\u7eeb\u68c2\u86cf\u9cae\u6d4f\u9a9d\u7efa\u954f\u9e68\u830f\u6cf7\u73d1\u680a\u80e7\u783b\u507b\u848c\u55bd\u5d5d\u9542\u7618\u8027\u877c\u9ac5\u5786\u64b8\u565c\u95fe\u6cf8\u6e0c\u680c\u6a79\u8f73\u8f82\u8f98\u6c07\u80ea\u9e2c\u9e6d\u823b\u9c88\u8114\u5a08\u683e\u9e3e\u92ae\u56f5\u8366\u7321\u6cfa\u6924\u8136\u9559\u6988\u891b\u950a\u5452\u551b\u5b37\u6769\u52a2\u7f26\u9558\u98a1\u9cd7\u9ebd\u626a\u7116\u61d1\u9494\u8288\u8c27\u7315\u7962\u6e11\u817c\u9efe\u7f08\u7f2a\u95f5\u7f17\u8c1f\u84e6\u998d\u6b81\u9546\u94bc\u94d9\u8bb7\u94cc\u9cb5\u8f87\u9cb6\u8311\u8885\u9667\u8616\u55eb\u989f\u8e51\u82ce\u549b\u804d\u4fac\u54dd\u9a7d\u9495\u50a9\u8bb4\u6004\u74ef\u8e52\u75b1\u8f94\u7eb0\u7f74\u94cd\u8c1d\u9a88\u7f25\u5ad4\u948b\u9564\u9568\u8572\u9a90\u7eee\u6864\u789b\u9880\u9883\u9ccd\u4f65\u8368\u60ad\u9a9e\u7f31\u6920\u94a4\u5af1\u6a2f\u6217\u709d\u9516\u9535\u956a\u7f9f\u8dc4\u8bee\u8c2f\u835e\u7f32\u7857\u8df7\u60ec\u9532\u7ba7\u9513\u63ff\u9cad\u8315\u86f1\u5def\u8d47\u866e\u9cc5\u8bce\u5c96\u9612\u89d1\u9e32\u8be0\u7efb\u8f81\u94e8\u9615\u9619\u60ab\u835b\u5a06\u6861\u996a\u8f6b\u5d58\u877e\u7f1b\u94f7\u98a6\u86ac\u98d2\u6bf5\u7cc1\u7f2b\u556c\u94ef\u7a51\u94e9\u9ca8\u917e\u8baa\u59d7\u9a9f\u9490\u9cdd\u57a7\u6b87\u89de\u538d\u6ee0\u7572\u8bdc\u8c02\u6e16\u8c25\u57d8\u83b3\u5f11\u8f7c\u8d33\u94c8\u9ca5\u7ef6\u6445\u7ebe\u95e9\u94c4\u53ae\u9a77\u7f0c\u9536\u9e36\u85ae\u998a\u98d5\u953c\u8c21\u7a23\u8c07\u836a\u72f2\u5522\u7743\u95fc\u94ca\u9cce\u949b\u9c90\u6619\u94bd\u952c\u9878\u50a5\u9967\u94f4\u9557\u97ec\u94fd\u7f07\u9e48\u9617\u7c9c\u9f86\u9ca6\u6078\u94ad\u948d\u629f\u9968\u7ba8\u9f0d\u5a32\u817d\u7ea8\u7efe\u8f8b\u8bff\u5e0f\u95f1\u6ca9\u6da0\u73ae\u97ea\u709c\u9c94\u960c\u83b4\u9f8c\u90ac\u5e91\u6003\u59a9\u9a9b\u9e49\u9e5c\u9969\u960b\u73ba\u89cb\u7856\u82cb\u83b6\u85d3\u5c98\u7303\u5a34\u9e47\u75eb\u869d\u7c7c\u8df9\u8297\u9977\u9aa7\u7f03\u98e8\u54d3\u6f47\u9a81\u7ee1\u67ad\u7bab\u4eb5\u64b7\u7ec1\u7f2c\u9649\u8365\u9990\u9e3a\u8be9\u987c\u8c16\u94c9\u955f\u8c11\u6cf6\u9cd5\u57d9\u6d54\u9c9f\u57ad\u5a05\u6860\u6c29\u53a3\u8d5d\u4fe8\u5156\u8c33\u6079\u95eb\u917d\u9b47\u990d\u9f39\u7080\u8f7a\u9e5e\u9cd0\u9765\u8c12\u90ba\u6654\u70e8\u8bd2\u5453\u5cc4\u9974\u603f\u9a7f\u7f22\u8f76\u8d3b\u9487\u9552\u9571\u7617\u8223\u94df\u763e\u8314\u83ba\u8426\u84e5\u6484\u5624\u6ee2\u6f46\u748e\u9e66\u763f\u988f\u7f42\u955b\u83b8\u94d5\u9c7f\u4f1b\u4fe3\u8c00\u8c15\u84e3\u5d5b\u996b\u9608\u59aa\u7ea1\u89ce\u6b24\u94b0\u9e46\u9e6c\u9f89\u6a7c\u9e22\u9f0b\u94ba\u90d3\u82b8\u607d\u6120\u7ead\u97eb\u6b92\u6c32\u74d2\u8db1\u933e\u9a75\u8d5c\u5567\u5e3b\u7ba6\u8c2e\u7f2f\u8c35\u8bcf\u948a\u8c2a\u8f84\u9e67\u6d48\u7f1c\u6862\u8f78\u8d48\u796f\u9e29\u8be4\u5ce5\u94b2\u94ee\u7b5d\u9a98\u6809\u6800\u8f75\u8f7e\u8d3d\u9e37\u86f3\u7d77\u8e2c\u8e2f\u89ef\u953a\u7ea3\u7ec9\u4f2b\u69e0\u94e2\u556d\u9994\u989e\u9a93\u7f12\u8bfc\u956f\u8c18\u7f01\u8f8e\u8d40\u7726\u9531\u9f87\u9cbb\u506c\u8bf9\u9a7a\u9cb0\u955e\u7f35\u8e9c\u9cdf\u8ba0\u8c2b\u90c4\u52d0\u51fc\u5742\u5785\u57b4\u57ef\u57dd\u82d8\u836c\u836e\u839c\u83bc\u83f0\u85c1\u63f8\u5412\u5423\u5494\u549d\u54b4\u5658\u567c\u56af\u5e5e\u5c99\u5d74\u5f77\u5fbc\u72b8\u72cd\u9980\u9987\u9993\u9995\u6123\u61b7\u61d4\u4e2c\u6e86\u6edf\u6eb7\u6f24\u6f74\u6fb9\u752f\u7e9f\u7ed4\u7ef1\u73c9\u67a7\u684a\u6849\u69d4\u6a65\u8f71\u8f77\u8d4d\u80b7\u80e8\u98da\u7173\u7145\u7198\u610d\u6dfc\u781c\u78d9\u770d\u949a\u94b7\u94d8\u94de\u9503\u950d\u950e\u950f\u9518\u951d\u952a\u952b\u953f\u9545\u954e\u9562\u9565\u9569\u9572\u7a06\u9e4b\u9e5b\u9e71\u75ac\u75b4\u75d6\u766f\u88e5\u8941\u8022\u98a5\u87a8\u9eb4\u9c85\u9c86\u9c87\u9c9e\u9cb4\u9cba\u9cbc\u9cca\u9ccb\u9cd8\u9cd9\u9792\u97b4\u9f44",$ge="\u554a\u963f\u57c3\u6328\u54ce\u5509\u54c0\u769a\u764c\u85f9\u77ee\u827e\u7919\u611b\u9698\u978d\u6c28\u5b89\u4ffa\u6309\u6697\u5cb8\u80fa\u6848\u9aaf\u6602\u76ce\u51f9\u6556\u71ac\u7ffa\u8956\u50b2\u5967\u61ca\u6fb3\u82ad\u634c\u6252\u53ed\u5427\u7b06\u516b\u75a4\u5df4\u62d4\u8dcb\u9776\u628a\u8019\u58e9\u9738\u7f77\u7238\u767d\u67cf\u767e\u64fa\u4f70\u6557\u62dc\u7a17\u6591\u73ed\u642c\u6273\u822c\u9812\u677f\u7248\u626e\u62cc\u4f34\u74e3\u534a\u8fa6\u7d46\u90a6\u5e6b\u6886\u699c\u8180\u7d81\u68d2\u78c5\u868c\u938a\u508d\u8b17\u82de\u80de\u5305\u8912\u525d\u8584\u96f9\u4fdd\u5821\u98fd\u5bf6\u62b1\u5831\u66b4\u8c79\u9b91\u7206\u676f\u7891\u60b2\u5351\u5317\u8f29\u80cc\u8c9d\u92c7\u500d\u72fd\u5099\u618a\u7119\u88ab\u5954\u82ef\u672c\u7b28\u5d29\u7e43\u752d\u6cf5\u8e66\u8ff8\u903c\u9f3b\u6bd4\u9119\u7b46\u5f7c\u78a7\u84d6\u853d\u7562\u6583\u6bd6\u5e63\u5e87\u75f9\u9589\u655d\u5f0a\u5fc5\u8f9f\u58c1\u81c2\u907f\u965b\u97ad\u908a\u7de8\u8cb6\u6241\u4fbf\u8b8a\u535e\u8fa8\u8faf\u8fae\u904d\u6a19\u5f6a\u8198\u8868\u9c49\u618b\u5225\u765f\u5f6c\u658c\u7015\u6ff1\u8cd3\u64ef\u5175\u51b0\u67c4\u4e19\u79c9\u9905\u70b3\u75c5\u4e26\u73bb\u83e0\u64ad\u64a5\u7f3d\u6ce2\u535a\u52c3\u640f\u9251\u7b94\u4f2f\u5e1b\u8236\u8116\u818a\u6e24\u6cca\u99c1\u6355\u8514\u54fa\u88dc\u57e0\u4e0d\u5e03\u6b65\u7c3f\u90e8\u6016\u64e6\u731c\u88c1\u6750\u624d\u8ca1\u776c\u8e29\u91c7\u5f69\u83dc\u8521\u9910\u53c3\u8836\u6b98\u615a\u6158\u71e6\u84bc\u8259\u5009\u6ec4\u85cf\u64cd\u7cd9\u69fd\u66f9\u8349\u5ec1\u7b56\u5074\u518a\u6e2c\u5c64\u8e6d\u63d2\u53c9\u832c\u8336\u67e5\u78b4\u643d\u5bdf\u5c94\u5dee\u8a6b\u62c6\u67f4\u8c7a\u6519\u647b\u87ec\u995e\u8b92\u7e8f\u93df\u7522\u95e1\u986b\u660c\u7316\u5834\u5617\u5e38\u9577\u511f\u8178\u5ee0\u655e\u66a2\u5531\u5021\u8d85\u6284\u9214\u671d\u5632\u6f6e\u5de2\u5435\u7092\u8eca\u626f\u64a4\u63a3\u5fb9\u6f88\u90f4\u81e3\u8fb0\u5875\u6668\u5ff1\u6c88\u9673\u8d81\u896f\u6490\u7a31\u57ce\u6a59\u6210\u5448\u4e58\u7a0b\u61f2\u6f84\u8aa0\u627f\u901e\u9a01\u79e4\u5403\u7661\u6301\u5319\u6c60\u9072\u5f1b\u99b3\u6065\u9f52\u4f88\u5c3a\u8d64\u7fc5\u65a5\u71be\u5145\u6c96\u87f2\u5d07\u5bf5\u62bd\u916c\u7587\u8e8a\u7a20\u6101\u7c4c\u4ec7\u7da2\u7785\u919c\u81ed\u521d\u51fa\u6ae5\u5eda\u8e87\u92e4\u96db\u6ec1\u9664\u695a\u790e\u5132\u77d7\u6410\u89f8\u8655\u63e3\u5ddd\u7a7f\u693d\u50b3\u8239\u5598\u4e32\u7621\u7a97\u5e62\u5e8a\u95d6\u5275\u5439\u708a\u6376\u9318\u5782\u6625\u693f\u9187\u5507\u6df3\u7d14\u8822\u6233\u7dbd\u75b5\u8328\u78c1\u96cc\u8fad\u6148\u74f7\u8a5e\u6b64\u523a\u8cdc\u6b21\u8070\u8525\u56ea\u5306\u5f9e\u53e2\u6e4a\u7c97\u918b\u7c07\u4fc3\u8ea5\u7be1\u7ac4\u6467\u5d14\u50ac\u8106\u7601\u7cb9\u6dec\u7fe0\u6751\u5b58\u5bf8\u78cb\u64ae\u6413\u63aa\u632b\u932f\u642d\u9054\u7b54\u7629\u6253\u5927\u5446\u6b79\u50a3\u6234\u5e36\u6b86\u4ee3\u8cb8\u888b\u5f85\u902e\u6020\u803d\u64d4\u4e39\u55ae\u9132\u64a3\u81bd\u65e6\u6c2e\u4f46\u619a\u6de1\u8a95\u5f48\u86cb\u7576\u64cb\u9ee8\u8569\u6a94\u5200\u6417\u8e48\u5012\u5cf6\u79b1\u5c0e\u5230\u7a3b\u60bc\u9053\u76dc\u5fb7\u5f97\u7684\u8e6c\u71c8\u767b\u7b49\u77aa\u51f3\u9127\u5824\u4f4e\u6ef4\u8fea\u6575\u7b1b\u72c4\u6ecc\u7fdf\u5ae1\u62b5\u5e95\u5730\u8482\u7b2c\u5e1d\u5f1f\u905e\u7de0\u985b\u6382\u6ec7\u7898\u9ede\u5178\u975b\u588a\u96fb\u4f43\u7538\u5e97\u60e6\u5960\u6fb1\u6bbf\u7889\u53fc\u96d5\u96d5\u5201\u6389\u540a\u91e3\u8abf\u8dcc\u7239\u789f\u8776\u53e0\u8adc\u758a\u4e01\u76ef\u53ee\u91d8\u9802\u9f0e\u9320\u5b9a\u8a02\u4e1f\u6771\u51ac\u8463\u61c2\u52d5\u68df\u4f97\u606b\u51cd\u6d1e\u515c\u6296\u9b25\u9661\u8c46\u9017\u75d8\u90fd\u7763\u6bd2\u72a2\u7368\u8b80\u5835\u7779\u8ced\u675c\u934d\u809a\u5ea6\u6e21\u5992\u7aef\u77ed\u935b\u6bb5\u65b7\u7dde\u5806\u514c\u968a\u5c0d\u58a9\u5678\u8e72\u6566\u9813\u56e4\u920d\u76fe\u9041\u6387\u54c6\u591a\u596a\u579b\u8eb2\u6735\u8dfa\u8235\u5241\u60f0\u58ae\u86fe\u5ce8\u9d5d\u4fc4\u984d\u8a1b\u5a25\u60e1\u5384\u627c\u904f\u9102\u9913\u6069\u800c\u5152\u8033\u723e\u990c\u6d31\u4e8c\u8cb3\u767c\u7f70\u7b4f\u4f10\u4e4f\u95a5\u6cd5\u743a\u85e9\u5e06\u756a\u7ffb\u6a0a\u792c\u91e9\u7e41\u51e1\u7169\u53cd\u8fd4\u7bc4\u8ca9\u72af\u98ef\u6cdb\u574a\u82b3\u65b9\u80aa\u623f\u9632\u59a8\u4eff\u8a2a\u7d21\u653e\u83f2\u975e\u5561\u98db\u80a5\u532a\u8ab9\u5420\u80ba\u5ee2\u6cb8\u8cbb\u82ac\u915a\u5429\u6c1b\u5206\u7d1b\u58b3\u711a\u6c7e\u7c89\u596e\u4efd\u5fff\u61a4\u7cde\u8c50\u5c01\u6953\u8702\u5cf0\u92d2\u98a8\u760b\u70fd\u9022\u99ae\u7e2b\u8af7\u5949\u9cf3\u4f5b\u5426\u592b\u6577\u819a\u5b75\u6276\u62c2\u8f3b\u5e45\u6c1f\u7b26\u4f0f\u4fd8\u670d\u6d6e\u6daa\u798f\u88b1\u5f17\u752b\u64ab\u8f14\u4fef\u91dc\u65a7\u812f\u8151\u5e9c\u8150\u8d74\u526f\u8986\u8ce6\u5fa9\u5085\u4ed8\u961c\u7236\u8179\u8ca0\u5bcc\u8a03\u9644\u5a66\u7e1b\u5490\u5676\u560e\u8a72\u6539\u6982\u9223\u84cb\u6e89\u5e79\u7518\u687f\u67d1\u7aff\u809d\u8d95\u611f\u7a08\u6562\u8d1b\u5ca1\u525b\u92fc\u7f38\u809b\u7db1\u5d17\u6e2f\u6760\u7bd9\u81ef\u9ad8\u818f\u7f94\u7cd5\u641e\u93ac\u7a3f\u544a\u54e5\u6b4c\u64f1\u6208\u9d3f\u80f3\u7599\u5272\u9769\u845b\u683c\u86e4\u95a3\u9694\u927b\u500b\u5404\u7d66\u6839\u8ddf\u8015\u66f4\u5e9a\u7fb9\u57c2\u803f\u6897\u5de5\u653b\u529f\u606d\u9f94\u4f9b\u8eac\u516c\u5bae\u5f13\u978f\u6c5e\u62f1\u8ca2\u5171\u9264\u52fe\u6e9d\u830d\u72d7\u57a2\u69cb\u8cfc\u5920\u8f9c\u83c7\u5495\u7b8d\u4f30\u6cbd\u5b64\u59d1\u9f13\u53e4\u8831\u9aa8\u8c37\u80a1\u6545\u9867\u56fa\u96c7\u522e\u74dc\u526e\u5be1\u639b\u8902\u4e56\u62d0\u602a\u68fa\u95dc\u5b98\u51a0\u89c0\u7ba1\u9928\u7f50\u6163\u704c\u8cab\u5149\u5ee3\u901b\u7470\u898f\u572d\u77fd\u6b78\u9f9c\u95a8\u8ecc\u9b3c\u8a6d\u7678\u6842\u6ac3\u8dea\u8cb4\u528a\u8f25\u6efe\u68cd\u934b\u90ed\u570b\u679c\u88f9\u904e\u54c8\u9ab8\u5b69\u6d77\u6c26\u4ea5\u5bb3\u99ed\u9163\u61a8\u90af\u97d3\u542b\u6db5\u5bd2\u51fd\u558a\u7f55\u7ff0\u64bc\u634d\u65f1\u61be\u608d\u710a\u6c57\u6f22\u592f\u676d\u822a\u58d5\u568e\u8c6a\u6beb\u90dd\u597d\u8017\u865f\u6d69\u5475\u559d\u8377\u83cf\u6838\u79be\u548c\u4f55\u5408\u76d2\u8c89\u95a1\u6cb3\u6db8\u8d6b\u8910\u9db4\u8cc0\u563f\u9ed1\u75d5\u5f88\u72e0\u6068\u54fc\u4ea8\u6a6b\u8861\u6052\u8f5f\u54c4\u70d8\u8679\u9d3b\u6d2a\u5b8f\u5f18\u7d05\u5589\u4faf\u7334\u543c\u539a\u5019\u5f8c\u547c\u4e4e\u5ffd\u745a\u58fa\u846b\u80e1\u8774\u72d0\u7cca\u6e56\u5f27\u864e\u552c\u8b77\u4e92\u6eec\u6236\u82b1\u5629\u83ef\u733e\u6ed1\u756b\u5283\u5316\u8a71\u69d0\u5f8a\u61f7\u6dee\u58de\u6b61\u74b0\u6853\u9084\u7de9\u63db\u60a3\u559a\u7613\u8c62\u7165\u6e19\u5ba6\u5e7b\u8352\u614c\u9ec3\u78fa\u8757\u7c27\u7687\u51f0\u60f6\u714c\u6643\u5e4c\u604d\u8b0a\u7070\u63ee\u8f1d\u5fbd\u6062\u86d4\u56de\u6bc0\u6094\u6167\u5349\u60e0\u6666\u8cc4\u7a62\u6703\u71f4\u532f\u8af1\u8aa8\u7e6a\u8477\u660f\u5a5a\u9b42\u6e3e\u6df7\u8c41\u6d3b\u5925\u706b\u7372\u6216\u60d1\u970d\u8ca8\u798d\u64ca\u573e\u57fa\u6a5f\u7578\u7a3d\u7a4d\u7b95\u808c\u9951\u8de1\u6fc0\u8b4f\u96de\u59ec\u7e3e\u7ddd\u5409\u6975\u68d8\u8f2f\u7c4d\u96c6\u53ca\u6025\u75be\u6c72\u5373\u5ac9\u7d1a\u64e0\u5e7e\u810a\u5df1\u858a\u6280\u5180\u5b63\u4f0e\u796d\u5291\u60b8\u6fdf\u5bc4\u5bc2\u8a08\u8a18\u65e2\u5fcc\u969b\u7e7c\u7d00\u5609\u67b7\u593e\u4f73\u5bb6\u52a0\u83a2\u9830\u8cc8\u7532\u9240\u5047\u7a3c\u50f9\u67b6\u99d5\u5ac1\u6bb2\u76e3\u5805\u5c16\u7b8b\u9593\u714e\u517c\u80a9\u8271\u5978\u7dd8\u7e6d\u6aa2\u67ec\u583f\u9e7c\u63c0\u64bf\u7c21\u5109\u526a\u6e1b\u85a6\u6abb\u9452\u8e10\u8ce4\u898b\u9375\u7bad\u4ef6\u5065\u8266\u528d\u991e\u6f38\u6ffa\u6f97\u5efa\u50f5\u59dc\u5c07\u6f3f\u6c5f\u7586\u8523\u69f3\u734e\u8b1b\u5320\u91ac\u964d\u8549\u6912\u7901\u7126\u81a0\u4ea4\u90ca\u6f86\u9a55\u5b0c\u56bc\u652a\u9278\u77ef\u50e5\u8173\u72e1\u89d2\u9903\u7e73\u7d5e\u527f\u6559\u9175\u8f4e\u8f03\u53eb\u7a96\u63ed\u63a5\u7686\u7a2d\u8857\u968e\u622a\u52ab\u7bc0\u8396\u775b\u6676\u9be8\u4eac\u9a5a\u7cbe\u7cb3\u7d93\u4e95\u8b66\u666f\u9838\u975c\u5883\u656c\u93e1\u5f91\u75d9\u9756\u7adf\u7af6\u51c8\u70af\u7a98\u63ea\u7a76\u7cfe\u7396\u97ed\u4e45\u7078\u4e5d\u9152\u5ec4\u6551\u820a\u81fc\u8205\u548e\u5c31\u759a\u97a0\u62d8\u72d9\u75bd\u5c45\u99d2\u83ca\u5c40\u5480\u77e9\u8209\u6cae\u805a\u62d2\u64da\u5de8\u5177\u8ddd\u8e1e\u92f8\u4ff1\u53e5\u61fc\u70ac\u5287\u6350\u9d51\u5a1f\u5026\u7737\u5377\u7d79\u6485\u652b\u6289\u6398\u5014\u7235\u6854\u5091\u6377\u776b\u7aed\u6f54\u7d50\u89e3\u59d0\u6212\u85c9\u82a5\u754c\u501f\u4ecb\u75a5\u8aa1\u5c46\u5dfe\u7b4b\u65a4\u91d1\u4eca\u6d25\u895f\u7dca\u9326\u50c5\u8b39\u9032\u9773\u6649\u7981\u8fd1\u71fc\u6d78\u76e1\u52c1\u834a\u5162\u89ba\u6c7a\u8a23\u7d55\u5747\u83cc\u921e\u8ecd\u541b\u5cfb\u4fca\u7ae3\u6d5a\u90e1\u99ff\u5580\u5496\u5361\u54af\u958b\u63e9\u6977\u51f1\u6168\u520a\u582a\u52d8\u574e\u780d\u770b\u5eb7\u6177\u7ce0\u625b\u6297\u4ea2\u7095\u8003\u62f7\u70e4\u9760\u5777\u82db\u67ef\u68f5\u78d5\u9846\u79d1\u6bbc\u54b3\u53ef\u6e34\u514b\u523b\u5ba2\u8ab2\u80af\u5543\u58be\u61c7\u5751\u542d\u7a7a\u6050\u5b54\u63a7\u6473\u53e3\u6263\u5bc7\u67af\u54ed\u7a9f\u82e6\u9177\u5eab\u8932\u8a87\u57ae\u630e\u8de8\u80ef\u584a\u7b77\u5108\u5feb\u5bec\u6b3e\u5321\u7b50\u72c2\u6846\u7926\u7736\u66e0\u6cc1\u8667\u76d4\u5dcb\u7aba\u8475\u594e\u9b41\u5080\u994b\u6127\u6f70\u5764\u6606\u6346\u56f0\u62ec\u64f4\u5ed3\u95ca\u5783\u62c9\u5587\u881f\u81d8\u8fa3\u5566\u840a\u4f86\u8cf4\u85cd\u5a6a\u6b04\u6514\u7c43\u95cc\u862d\u703e\u8b95\u652c\u89bd\u61f6\u7e9c\u721b\u6feb\u746f\u6994\u72fc\u5eca\u90ce\u6717\u6d6a\u6488\u52de\u7262\u8001\u4f6c\u59e5\u916a\u70d9\u6f87\u52d2\u6a02\u96f7\u9433\u857e\u78ca\u7d2f\u5121\u58d8\u64c2\u808b\u985e\u6dda\u68f1\u695e\u51b7\u5398\u68a8\u7281\u9ece\u7c6c\u8c8d\u96e2\u6f13\u7406\u674e\u88cf\u9bc9\u79ae\u8389\u8354\u540f\u6817\u9e97\u53b2\u52f5\u792b\u6b77\u5229\u5088\u4f8b\u4fd0\u75e2\u7acb\u7c92\u701d\u96b8\u529b\u7483\u54e9\u5006\u806f\u84ee\u9023\u942e\u5ec9\u6190\u6f23\u7c3e\u6582\u81c9\u93c8\u6200\u7149\u7df4\u7ce7\u6dbc\u6881\u7cb1\u826f\u5169\u8f1b\u91cf\u667e\u4eae\u8ad2\u64a9\u804a\u50da\u7642\u71ce\u5be5\u907c\u6f66\u4e86\u6482\u9410\u5ed6\u6599\u5217\u88c2\u70c8\u52a3\u7375\u7433\u6797\u78f7\u9716\u81e8\u9130\u9c57\u6dcb\u51dc\u8cc3\u541d\u62ce\u73b2\u83f1\u96f6\u9f61\u9234\u4f36\u7f9a\u6de9\u9748\u9675\u5dba\u9818\u53e6\u4ee4\u6e9c\u7409\u69b4\u786b\u993e\u7559\u5289\u7624\u6d41\u67f3\u516d\u9f8d\u807e\u56a8\u7c60\u7abf\u9686\u58df\u650f\u96b4\u6a13\u5a41\u645f\u7c0d\u6f0f\u964b\u8606\u76e7\u9871\u5eec\u7210\u64c4\u9e75\u865c\u9b6f\u9e93\u788c\u9732\u8def\u8cc2\u9e7f\u6f5e\u797f\u9304\u9678\u622e\u9a62\u5442\u92c1\u4fb6\u65c5\u5c65\u5c62\u7e37\u616e\u6c2f\u5f8b\u7387\u6ffe\u7da0\u5dd2\u6523\u5b7f\u7064\u5375\u4e82\u63a0\u7565\u6384\u8f2a\u502b\u4f96\u6dea\u7db8\u8ad6\u863f\u87ba\u7f85\u908f\u947c\u7c6e\u9a3e\u88f8\u843d\u6d1b\u99f1\u7d61\u5abd\u9ebb\u746a\u78bc\u879e\u99ac\u7f75\u561b\u55ce\u57cb\u8cb7\u9ea5\u8ce3\u9081\u8108\u779e\u9945\u883b\u6eff\u8513\u66fc\u6162\u6f2b\u8b3e\u8292\u832b\u76f2\u6c13\u5fd9\u83bd\u8c93\u8305\u9328\u6bdb\u77db\u925a\u536f\u8302\u5192\u5e3d\u8c8c\u8cbf\u9ebd\u73ab\u679a\u6885\u9176\u9ef4\u7164\u6c92\u7709\u5a92\u9382\u6bcf\u7f8e\u6627\u5bd0\u59b9\u5a9a\u9580\u60b6\u5011\u840c\u8499\u6aac\u76df\u9333\u731b\u5922\u5b5f\u7787\u919a\u9761\u7cdc\u8ff7\u8b0e\u5f4c\u7c73\u79d8\u8993\u6ccc\u871c\u5bc6\u51aa\u68c9\u7720\u7dbf\u5195\u514d\u52c9\u5a29\u7dec\u9762\u82d7\u63cf\u7784\u85d0\u79d2\u6e3a\u5edf\u5999\u8511\u6ec5\u6c11\u62bf\u76bf\u654f\u61ab\u95a9\u660e\u879f\u9cf4\u9298\u540d\u547d\u8b2c\u6478\u6479\u8611\u6a21\u819c\u78e8\u6469\u9b54\u62b9\u672b\u83ab\u58a8\u9ed8\u6cab\u6f20\u5bde\u964c\u8b00\u725f\u67d0\u62c7\u7261\u755d\u59c6\u6bcd\u5893\u66ae\u5e55\u52df\u6155\u6728\u76ee\u7766\u7267\u7a46\u62ff\u54ea\u5436\u9209\u90a3\u5a1c\u7d0d\u6c16\u4e43\u5976\u8010\u5948\u5357\u7537\u96e3\u56ca\u6493\u8166\u60f1\u9b27\u6dd6\u5462\u9912\u5167\u5ae9\u80fd\u59ae\u9713\u502a\u6ce5\u5c3c\u64ec\u59b3\u533f\u81a9\u9006\u6eba\u852b\u62c8\u5e74\u78be\u6506\u649a\u5ff5\u5a18\u91c0\u9ce5\u5c3f\u634f\u8076\u5b7d\u5699\u9477\u93b3\u6d85\u60a8\u6ab8\u7370\u51dd\u5be7\u64f0\u6fd8\u725b\u626d\u9215\u7d10\u81bf\u6fc3\u8fb2\u5f04\u5974\u52aa\u6012\u5973\u6696\u8650\u7627\u632a\u61e6\u7cef\u8afe\u54e6\u6b50\u9dd7\u6bc6\u85d5\u5614\u5076\u6f1a\u556a\u8db4\u722c\u5e15\u6015\u7436\u62cd\u6392\u724c\u5f98\u6e43\u6d3e\u6500\u6f58\u76e4\u78d0\u76fc\u7554\u5224\u53db\u4e53\u9f90\u65c1\u802a\u80d6\u62cb\u5486\u5228\u70ae\u888d\u8dd1\u6ce1\u5478\u80da\u57f9\u88f4\u8ce0\u966a\u914d\u4f69\u6c9b\u5674\u76c6\u7830\u62a8\u70f9\u6f8e\u5f6d\u84ec\u68da\u787c\u7bf7\u81a8\u670b\u9d6c\u6367\u78b0\u576f\u7812\u9739\u6279\u62ab\u5288\u7435\u6bd7\u5564\u813e\u75b2\u76ae\u5339\u75de\u50fb\u5c41\u8b6c\u7bc7\u504f\u7247\u9a19\u98c4\u6f02\u74e2\u7968\u6487\u77a5\u62fc\u983b\u8ca7\u54c1\u8058\u4e52\u576a\u860b\u840d\u5e73\u6191\u74f6\u8a55\u5c4f\u5761\u6f51\u9817\u5a46\u7834\u9b44\u8feb\u7c95\u5256\u64b2\u92ea\u4ec6\u8386\u8461\u83e9\u84b2\u57d4\u6a38\u5703\u666e\u6d66\u8b5c\u66dd\u7011\u671f\u6b3a\u68f2\u621a\u59bb\u4e03\u6dd2\u6f06\u67d2\u6c8f\u5176\u68cb\u5947\u6b67\u7566\u5d0e\u81cd\u9f4a\u65d7\u7948\u7941\u9a0e\u8d77\u8c48\u4e5e\u4f01\u555f\u5951\u780c\u5668\u6c23\u8fc4\u68c4\u6c7d\u6ce3\u8a16\u6390\u6d3d\u727d\u6261\u91ec\u925b\u5343\u9077\u7c3d\u4edf\u8b19\u4e7e\u9ed4\u9322\u9257\u524d\u6f5b\u9063\u6dfa\u8b74\u5879\u5d4c\u6b20\u6b49\u69cd\u55c6\u8154\u7f8c\u58bb\u8594\u5f37\u6436\u6a47\u936c\u6572\u6084\u6a4b\u77a7\u55ac\u50d1\u5de7\u9798\u64ac\u7ff9\u5ced\u4fcf\u7ac5\u5207\u8304\u4e14\u602f\u7aca\u6b3d\u4fb5\u89aa\u79e6\u7434\u52e4\u82b9\u64d2\u79bd\u5be2\u6c81\u9752\u8f15\u6c2b\u50be\u537f\u6e05\u64ce\u6674\u6c30\u60c5\u9803\u8acb\u6176\u74ca\u7aae\u79cb\u4e18\u90b1\u7403\u6c42\u56da\u914b\u6cc5\u8da8\u5340\u86c6\u66f2\u8ec0\u5c48\u9a45\u6e20\u53d6\u5a36\u9f72\u8da3\u53bb\u5708\u9874\u6b0a\u919b\u6cc9\u5168\u75ca\u62f3\u72ac\u5238\u52f8\u7f3a\u7094\u7638\u537b\u9d72\u69b7\u78ba\u96c0\u88d9\u7fa4\u7136\u71c3\u5189\u67d3\u74e4\u58e4\u6518\u56b7\u8b93\u9952\u64fe\u7e5e\u60f9\u71b1\u58ec\u4ec1\u4eba\u5fcd\u97cc\u4efb\u8a8d\u5203\u598a\u7d09\u6254\u4ecd\u65e5\u620e\u8338\u84c9\u69ae\u878d\u7194\u6eb6\u5bb9\u7d68\u5197\u63c9\u67d4\u8089\u8339\u8815\u5112\u5b7a\u5982\u8fb1\u4e73\u6c5d\u5165\u8925\u8edf\u962e\u854a\u745e\u92b3\u958f\u6f64\u82e5\u5f31\u6492\u7051\u85a9\u816e\u9c13\u585e\u8cfd\u4e09\u4e09\u5098\u6563\u6851\u55d3\u55aa\u6414\u9a37\u6383\u5ac2\u745f\u8272\u6f80\u68ee\u50e7\u838e\u7802\u6bba\u524e\u6c99\u7d17\u50bb\u5565\u715e\u7be9\u66ec\u73ca\u82eb\u6749\u5c71\u522a\u717d\u886b\u9583\u965c\u64c5\u8d0d\u81b3\u5584\u6c55\u6247\u7e55\u5891\u50b7\u5546\u8cde\u664c\u4e0a\u5c1a\u88f3\u68a2\u634e\u7a0d\u71d2\u828d\u52fa\u97f6\u5c11\u54e8\u90b5\u7d39\u5962\u8cd2\u86c7\u820c\u820d\u8d66\u651d\u5c04\u61fe\u6d89\u793e\u8a2d\u7837\u7533\u547b\u4f38\u8eab\u6df1\u5a20\u7d33\u795e\u6c88\u5be9\u5b38\u751a\u814e\u614e\u6ef2\u8072\u751f\u7525\u7272\u5347\u7e69\u7701\u76db\u5269\u52dd\u8056\u5e2b\u5931\u7345\u65bd\u6fd5\u8a69\u5c4d\u8671\u5341\u77f3\u62fe\u6642\u4ec0\u98df\u8755\u5be6\u8b58\u53f2\u77e2\u4f7f\u5c4e\u99db\u59cb\u5f0f\u793a\u58eb\u4e16\u67ff\u4e8b\u62ed\u8a93\u901d\u52e2\u662f\u55dc\u566c\u9069\u4ed5\u4f8d\u91cb\u98fe\u6c0f\u5e02\u6043\u5ba4\u8996\u8a66\u6536\u624b\u9996\u5b88\u58fd\u6388\u552e\u53d7\u7626\u7378\u852c\u6a1e\u68b3\u6b8a\u6292\u8f38\u53d4\u8212\u6dd1\u758f\u66f8\u8d16\u5b70\u719f\u85af\u6691\u66d9\u7f72\u8700\u9ecd\u9f20\u5c6c\u8853\u8ff0\u6a39\u675f\u620d\u8c4e\u5885\u5eb6\u6578\u6f31\u6055\u5237\u800d\u6454\u8870\u7529\u5e25\u6813\u62f4\u971c\u96d9\u723d\u8ab0\u6c34\u7761\u7a05\u542e\u77ac\u9806\u821c\u8aaa\u78a9\u6714\u720d\u65af\u6495\u5636\u601d\u79c1\u53f8\u7d72\u6b7b\u8086\u5bfa\u55e3\u56db\u4f3a\u4f3c\u98fc\u5df3\u677e\u8073\u616b\u980c\u9001\u5b8b\u8a1f\u8aa6\u641c\u8258\u64fb\u55fd\u8607\u9165\u4fd7\u7d20\u901f\u7c9f\u50f3\u5851\u6eaf\u5bbf\u8a34\u8085\u9178\u849c\u7b97\u96d6\u968b\u96a8\u7d8f\u9ad3\u788e\u6b72\u7a57\u9042\u96a7\u795f\u5b6b\u640d\u7b4d\u84d1\u68ad\u5506\u7e2e\u7463\u7d22\u9396\u6240\u584c\u4ed6\u5b83\u5979\u5854\u737a\u64bb\u8e4b\u8e0f\u80ce\u82d4\u64e1\u81fa\u6cf0\u915e\u592a\u614b\u6c70\u574d\u6524\u8caa\u7671\u7058\u58c7\u6a80\u75f0\u6f6d\u8b5a\u8ac7\u5766\u6bef\u8892\u78b3\u63a2\u5606\u70ad\u6e6f\u5858\u642a\u5802\u68e0\u819b\u5510\u7cd6\u5018\u8eba\u6dcc\u8d9f\u71d9\u638f\u6fe4\u6ed4\u7d73\u8404\u6843\u9003\u6dd8\u9676\u8a0e\u5957\u7279\u85e4\u9a30\u75bc\u8b04\u68af\u5254\u8e22\u92bb\u63d0\u984c\u8e44\u557c\u9ad4\u66ff\u568f\u60d5\u6d95\u5243\u5c5c\u5929\u6dfb\u586b\u7530\u751c\u606c\u8214\u8146\u6311\u689d\u8fe2\u773a\u8df3\u8cbc\u9435\u5e16\u5ef3\u807d\u70f4\u6c40\u5ef7\u505c\u4ead\u5ead\u633a\u8247\u901a\u6850\u916e\u77b3\u540c\u9285\u5f64\u7ae5\u6876\u6345\u7b52\u7d71\u75db\u5077\u6295\u982d\u900f\u51f8\u79bf\u7a81\u5716\u5f92\u9014\u5857\u5c60\u571f\u5410\u5154\u6e4d\u5718\u63a8\u9839\u817f\u86fb\u892a\u9000\u541e\u5c6f\u81c0\u62d6\u6258\u812b\u9d15\u9640\u99b1\u99dd\u6a62\u59a5\u62d3\u553e\u6316\u54c7\u86d9\u7aaa\u5a03\u74e6\u896a\u6b6a\u5916\u8c4c\u5f4e\u7063\u73a9\u9811\u4e38\u70f7\u5b8c\u7897\u633d\u665a\u7696\u60cb\u5b9b\u5a49\u842c\u8155\u6c6a\u738b\u4ea1\u6789\u7db2\u5f80\u65fa\u671b\u5fd8\u5984\u5a01\u5dcd\u5fae\u5371\u97cb\u9055\u6845\u570d\u552f\u60df\u70ba\u6ff0\u7dad\u8466\u840e\u59d4\u5049\u507d\u5c3e\u7def\u672a\u851a\u5473\u754f\u80c3\u9935\u9b4f\u4f4d\u6e2d\u8b02\u5c09\u6170\u885b\u761f\u6eab\u868a\u6587\u805e\u7d0b\u543b\u7a69\u7d0a\u554f\u55e1\u7fc1\u7515\u64be\u8778\u6e26\u7aa9\u6211\u65a1\u81e5\u63e1\u6c83\u5deb\u55da\u93a2\u70cf\u6c59\u8aa3\u5c4b\u7121\u856a\u68a7\u543e\u5433\u6bcb\u6b66\u4e94\u6342\u5348\u821e\u4f0d\u4fae\u5862\u620a\u9727\u6664\u7269\u52ff\u52d9\u609f\u8aa4\u6614\u7199\u6790\u897f\u7852\u77fd\u6670\u563b\u5438\u932b\u72a7\u7a00\u606f\u5e0c\u6089\u819d\u5915\u60dc\u7184\u70ef\u6eaa\u6c50\u7280\u6a84\u8972\u5e2d\u7fd2\u5ab3\u559c\u9291\u6d17\u7cfb\u9699\u6232\u7d30\u778e\u8766\u5323\u971e\u8f44\u6687\u5cfd\u4fe0\u72f9\u4e0b\u5ec8\u590f\u5687\u6380\u9341\u5148\u4ed9\u9bae\u7e96\u9e79\u8ce2\u929c\u8237\u9591\u6d8e\u5f26\u5acc\u986f\u96aa\u73fe\u737b\u7e23\u817a\u9921\u7fa8\u61b2\u9677\u9650\u7dda\u76f8\u5ec2\u9472\u9999\u7bb1\u8944\u6e58\u9109\u7fd4\u7965\u8a73\u60f3\u97ff\u4eab\u9805\u5df7\u6a61\u50cf\u5411\u8c61\u856d\u785d\u9704\u524a\u54ee\u56c2\u92b7\u6d88\u5bb5\u6dc6\u66c9\u5c0f\u5b5d\u6821\u8096\u562f\u7b11\u6548\u6954\u4e9b\u6b47\u880d\u978b\u5354\u633e\u651c\u90aa\u659c\u8105\u8ae7\u5beb\u68b0\u5378\u87f9\u61c8\u6cc4\u7009\u8b1d\u5c51\u85aa\u82af\u92c5\u6b23\u8f9b\u65b0\u5ffb\u5fc3\u4fe1\u91c1\u661f\u8165\u7329\u60fa\u8208\u5211\u578b\u5f62\u90a2\u884c\u9192\u5e78\u674f\u6027\u59d3\u5144\u5147\u80f8\u5308\u6d36\u96c4\u718a\u4f11\u4fee\u7f9e\u673d\u55c5\u92b9\u79c0\u8896\u7e61\u589f\u620c\u9700\u865b\u5653\u9808\u5f90\u8a31\u84c4\u9157\u6558\u65ed\u5e8f\u755c\u6064\u7d6e\u5a7f\u7dd2\u7e8c\u8ed2\u55a7\u5ba3\u61f8\u65cb\u7384\u9078\u766c\u7729\u7d62\u9774\u859b\u5b78\u7a74\u96ea\u8840\u52db\u718f\u5faa\u65ec\u8a62\u5c0b\u99b4\u5de1\u6b89\u6c5b\u8a13\u8a0a\u905c\u8fc5\u58d3\u62bc\u9d09\u9d28\u5440\u4e2b\u82bd\u7259\u869c\u5d16\u8859\u6daf\u96c5\u555e\u4e9e\u8a1d\u7109\u54bd\u95b9\u7159\u6df9\u9e7d\u56b4\u7814\u8712\u5dd6\u5ef6\u8a00\u984f\u95bb\u708e\u6cbf\u5944\u63a9\u773c\u884d\u6f14\u8277\u5830\u71d5\u53ad\u786f\u96c1\u5501\u5f65\u7130\u5bb4\u8afa\u9a57\u6b83\u592e\u9d26\u79e7\u694a\u63da\u4f6f\u760d\u7f8a\u6d0b\u967d\u6c27\u4ef0\u7662\u990a\u6a23\u6f3e\u9080\u8170\u5996\u7464\u6416\u582f\u9059\u7aaf\u8b20\u59da\u54ac\u8200\u85e5\u8981\u8000\u6930\u564e\u8036\u723a\u91ce\u51b6\u4e5f\u9801\u6396\u696d\u8449\u66f3\u814b\u591c\u6db2\u58f9\u58f9\u91ab\u63d6\u92a5\u4f9d\u4f0a\u8863\u9824\u5937\u907a\u79fb\u5100\u80f0\u7591\u6c82\u5b9c\u59e8\u5f5c\u6905\u87fb\u501a\u5df2\u4e59\u77e3\u4ee5\u85dd\u6291\u6613\u9091\u5c79\u5104\u5f79\u81c6\u9038\u8084\u75ab\u4ea6\u88d4\u610f\u6bc5\u61b6\u7fa9\u76ca\u6ea2\u8a63\u8b70\u8abc\u8b6f\u7570\u7ffc\u7fcc\u7e79\u8335\u852d\u56e0\u6bb7\u97f3\u9670\u59fb\u541f\u9280\u6deb\u5bc5\u98f2\u5c39\u5f15\u96b1\u5370\u82f1\u6afb\u5b30\u9df9\u61c9\u7e93\u7469\u87a2\u71df\u7192\u8805\u8fce\u8d0f\u76c8\u5f71\u7a4e\u786c\u6620\u55b2\u64c1\u50ad\u81c3\u7670\u5eb8\u96cd\u8e34\u86f9\u8a60\u6cf3\u6e67\u6c38\u607f\u52c7\u7528\u5e7d\u512a\u60a0\u6182\u5c24\u7531\u90f5\u923e\u7336\u6cb9\u904a\u9149\u6709\u53cb\u53f3\u4f51\u91c9\u8a98\u53c8\u5e7c\u8fc2\u6de4\u65bc\u76c2\u6986\u865e\u611a\u8f3f\u4f59\u4fde\u903e\u9b5a\u6109\u6e1d\u6f01\u9685\u4e88\u5a1b\u96e8\u8207\u5dbc\u79b9\u5b87\u8a9e\u7fbd\u7389\u57df\u828b\u90c1\u7c72\u9047\u55bb\u5cea\u79a6\u6108\u6b32\u7344\u80b2\u8b7d\u6d74\u5bd3\u88d5\u9810\u8c6b\u99ad\u9d1b\u6df5\u51a4\u5143\u57a3\u8881\u539f\u63f4\u8f45\u5712\u54e1\u5713\u733f\u6e90\u7de3\u9060\u82d1\u9858\u6028\u9662\u66f0\u7d04\u8d8a\u8e8d\u9470\u5dbd\u7cb5\u6708\u6085\u95b1\u8018\u96f2\u9116\u52fb\u9695\u5141\u904b\u860a\u919e\u6688\u97fb\u5b55\u531d\u7838\u96dc\u683d\u54c9\u707d\u5bb0\u8f09\u518d\u5728\u54b1\u6522\u66ab\u8d0a\u8d13\u81df\u846c\u906d\u7cdf\u947f\u85fb\u68d7\u65e9\u6fa1\u86a4\u8e81\u566a\u9020\u7682\u7ac8\u71e5\u8cac\u64c7\u5247\u6fa4\u8cca\u600e\u589e\u618e\u66fe\u8d08\u7d2e\u55b3\u6e23\u5284\u8ecb\u9358\u9598\u7728\u67f5\u69a8\u548b\u4e4d\u70b8\u8a50\u6458\u9f4b\u5b85\u7a84\u50b5\u5be8\u77bb\u6c08\u8a79\u7c98\u6cbe\u76de\u65ac\u8f3e\u5d84\u5c55\u8638\u68e7\u5360\u6230\u7ad9\u6e5b\u7dbb\u6a1f\u7ae0\u5f70\u6f33\u5f35\u638c\u6f32\u6756\u4e08\u5e33\u8cec\u4ed7\u8139\u7634\u969c\u62db\u662d\u627e\u6cbc\u8d99\u7167\u7f69\u5146\u8087\u53ec\u906e\u6298\u54f2\u87c4\u8f4d\u8005\u937a\u8517\u9019\u6d59\u73cd\u659f\u771f\u7504\u7827\u81fb\u8c9e\u91dd\u5075\u6795\u75b9\u8a3a\u9707\u632f\u93ae\u9663\u84b8\u6399\u775c\u5f81\u7319\u722d\u6014\u6574\u62ef\u6b63\u653f\u5e40\u7665\u912d\u8b49\u829d\u679d\u652f\u5431\u8718\u77e5\u80a2\u8102\u6c41\u4e4b\u7e54\u8077\u76f4\u690d\u6b96\u57f7\u503c\u4f84\u5740\u6307\u6b62\u8dbe\u53ea\u65e8\u7d19\u8a8c\u646f\u64f2\u81f3\u81f4\u7f6e\u5e5f\u5cd9\u5236\u667a\u79e9\u7a1a\u8cea\u7099\u75d4\u6eef\u6cbb\u7a92\u4e2d\u76c5\u5fe0\u9418\u8877\u7d42\u7a2e\u816b\u91cd\u4ef2\u773e\u821f\u5468\u5dde\u6d32\u8b05\u7ca5\u8ef8\u8098\u5e1a\u5492\u76ba\u5b99\u665d\u9a5f\u73e0\u682a\u86db\u6731\u8c6c\u8af8\u8a85\u9010\u7af9\u71ed\u716e\u62c4\u77da\u56d1\u4e3b\u8457\u67f1\u52a9\u86c0\u8caf\u9444\u7bc9\u4f4f\u8a3b\u795d\u99d0\u6293\u722a\u62fd\u5c08\u78da\u8f49\u64b0\u8cfa\u7bc6\u6a01\u838a\u88dd\u599d\u649e\u58ef\u72c0\u690e\u9310\u8ffd\u8d05\u589c\u7db4\u8ac4\u6e96\u6349\u62d9\u5353\u684c\u7422\u8301\u914c\u5544\u8457\u707c\u6fc1\u8332\u54a8\u8cc7\u59ff\u6ecb\u6dc4\u5b5c\u7d2b\u4ed4\u7c7d\u6ed3\u5b50\u81ea\u6f2c\u5b57\u9b03\u68d5\u8e64\u5b97\u7d9c\u7e3d\u7e31\u9112\u8d70\u594f\u63cd\u79df\u8db3\u5352\u65cf\u7956\u8a5b\u963b\u7d44\u9246\u7e82\u5634\u9189\u6700\u7f6a\u5c0a\u9075\u6628\u5de6\u4f50\u67de\u505a\u4f5c\u5750\u5ea7\u9312\u566f\u5b21\u74a6\u66d6\u9744\u8af3\u92a8\u9d6a\u5abc\u9a41\u9c32\u9200\u5504\u9211\u9d07\u9f59\u9d6f\u8cc1\u931b\u84fd\u55f6\u6f77\u924d\u7bf3\u8e55\u8290\u7df6\u7c69\u9a43\u98ae\u98c6\u93e2\u9463\u9c3e\u5110\u7e7d\u6ab3\u6baf\u81cf\u944c\u9ad5\u9b22\u7a1f\u9911\u9238\u9d53\u923d\u9a42\u9ef2\u60fb\u9364\u5115\u91f5\u56c5\u8ac2\u8b96\u8546\u61fa\u5b0b\u9a4f\u8998\u79aa\u9414\u5000\u8407\u60b5\u95b6\u9be7\u7868\u5096\u8af6\u6aec\u78e3\u9f54\u68d6\u6a89\u92ee\u943a\u98ed\u9d1f\u9283\u5114\u5e6c\u8b8e\u82bb\u7d40\u8e95\u91e7\u6134\u7d9e\u9d89\u8f1f\u9f6a\u9dbf\u84ef\u9a44\u6a05\u8f33\u651b\u92bc\u9e7a\u5660\u97c3\u99d8\u7d3f\u6bab\u8ce7\u7649\u7c1e\u8b9c\u78ad\u8960\u71fe\u9419\u7cf4\u8a46\u8ae6\u7d88\u89bf\u93d1\u5dd4\u923f\u7672\u929a\u9bdb\u9c08\u92cc\u92a9\u5d20\u9d87\u7ac7\u7006\u6add\u7258\u7be4\u9ef7\u7c6a\u61df\u9413\u71c9\u8e89\u9438\u8ae4\u580a\u95bc\u8edb\u92e8\u9354\u9d9a\u984e\u9853\u9c77\u8a92\u9087\u927a\u9d2f\u9b9e\u9201\u9b74\u7dcb\u9428\u9be1\u50e8\u7043\u9ce7\u99d9\u7d31\u7d3c\u8cfb\u9ea9\u9b92\u9c12\u91d3\u8cc5\u5c37\u641f\u7d3a\u6207\u776a\u8aa5\u7e1e\u92ef\u7d07\u9398\u6f41\u4e99\u8ce1\u7d86\u9bc1\u8a6c\u7df1\u89af\u8a41\u8f42\u9237\u932e\u9d23\u9d60\u9dbb\u9d30\u6451\u8a7f\u645c\u9e1b\u9c25\u7377\u532d\u528c\u5aaf\u6a9c\u9bad\u9c56\u889e\u7dc4\u9bc0\u581d\u54bc\u5e57\u69e8\u87c8\u927f\u95de\u7d4e\u9821\u705d\u9865\u8a36\u95d4\u8823\u9ecc\u8a0c\u8452\u958e\u9c5f\u6ef8\u9d98\u9a4a\u6a3a\u93f5\u5950\u7e6f\u9370\u9bc7\u9c09\u8a7c\u8588\u5666\u6fae\u7e62\u743f\u6689\u8ae2\u991b\u95bd\u9225\u944a\u8a10\u8a70\u85ba\u5630\u568c\u9a65\u74a3\u89ac\u9f4f\u78ef\u7f88\u8806\u8e8b\u973d\u9c6d\u9bfd\u90df\u6d79\u92cf\u93b5\u87ef\u8aeb\u7e11\u6214\u6229\u77bc\u9dbc\u7b67\u9c39\u97c9\u7d73\u97c1\u649f\u5da0\u9de6\u9bab\u7664\u981c\u9b9a\u5df9\u85ce\u9949\u7e09\u8d10\u89b2\u5244\u6d87\u9015\u5f33\u811b\u975a\u9b2e\u9ce9\u9df2\u8a4e\u5c68\u6af8\u98b6\u9245\u92e6\u7ab6\u9f5f\u9308\u942b\u96cb\u8b4e\u73a8\u76b8\u5274\u584f\u613e\u6137\u93a7\u9347\u9f95\u958c\u9227\u92ac\u9a0d\u7dd9\u8efb\u9233\u9301\u9837\u9f66\u93d7\u56b3\u9136\u5672\u81be\u736a\u9ad6\u8a86\u8a91\u913a\u58d9\u7e8a\u8cba\u5331\u8562\u6192\u8075\u7c23\u95ab\u9315\u9be4\u8810\u5d0d\u5fa0\u6df6\u7028\u8cda\u775e\u9338\u7669\u7c5f\u5d50\u6b16\u6595\u946d\u8964\u95ac\u92c3\u562e\u5d97\u92a0\u9412\u7646\u9c33\u8a84\u7e32\u5137\u9148\u58e2\u85f6\u849e\u863a\u56a6\u9090\u9a6a\u7e2d\u6aea\u6adf\u8f62\u792a\u92f0\u9e1d\u7658\u7cf2\u8e92\u9742\u9c7a\u9c67\u861e\u5969\u7032\u7489\u6bae\u8933\u895d\u9c31\u9b4e\u7e5a\u91d5\u9def\u85fa\u5ee9\u6a81\u8f54\u8eaa\u7dbe\u6b1e\u87f6\u9bea\u700f\u9a2e\u7db9\u93a6\u9dda\u8622\u7027\u74cf\u6af3\u6727\u7931\u50c2\u851e\u560d\u5d81\u93e4\u763a\u802c\u87bb\u9acf\u58da\u64fc\u5695\u95ad\u7018\u6de5\u6ae8\u6ad3\u8f64\u8f05\u8f46\u6c0c\u81da\u9e15\u9dfa\u826b\u9c78\u81e0\u5b4c\u6b12\u9e1e\u947e\u5707\u7296\u7380\u6ffc\u6b0f\u8161\u93cd\u6ada\u8938\u92dd\u5638\u561c\u5b24\u69aa\u52f1\u7e35\u93dd\u9859\u9c3b\u9ebc\u636b\u71dc\u61e3\u9346\u7f8b\u8b10\u737c\u79b0\u6fa0\u9766\u9efd\u7df2\u7e46\u9594\u7de1\u8b28\u9a40\u9943\u6b7f\u93cc\u926c\u9403\u8a25\u922e\u9be2\u8f26\u9bf0\u8526\u88ca\u9689\u8617\u56c1\u9862\u8ea1\u82e7\u5680\u8079\u5102\u5665\u99d1\u91f9\u513a\u8b33\u616a\u750c\u8e63\u76b0\u8f61\u7d15\u7f86\u9239\u8ade\u99e2\u7e39\u5b2a\u91d9\u93f7\u9420\u8604\u9a0f\u7dba\u69bf\u78e7\u980e\u980f\u9c2d\u50c9\u8541\u6173\u9a2b\u7e7e\u69e7\u9210\u5b19\u6aa3\u6227\u7197\u9306\u93d8\u93f9\u7fa5\u8e4c\u8a9a\u8b59\u854e\u7e70\u78fd\u8e7a\u611c\u9365\u7bcb\u92df\u64b3\u9bd6\u7162\u86fa\u5df0\u8cd5\u87e3\u9c0d\u8a58\u5d87\u95c3\u89b7\u9d1d\u8a6e\u7da3\u8f07\u9293\u95cb\u95d5\u6128\u8558\u5b08\u6a48\u98ea\u8ed4\u5db8\u8811\u7e1f\u92a3\u9870\u8706\u98af\u6bff\u7cdd\u7e45\u55c7\u92ab\u7a61\u93a9\u9bca\u91c3\u8a15\u59cd\u9a38\u91e4\u9c54\u5770\u6ba4\u89f4\u5399\u7044\u756c\u8a75\u8ad7\u700b\u8b1a\u5852\u8494\u5f12\u8efe\u8cb0\u9230\u9c23\u7dac\u6504\u7d13\u9582\u9460\u5edd\u99df\u7de6\u9376\u9de5\u85ea\u993f\u98bc\u93aa\u8b16\u7a4c\u8ab6\u84c0\u733b\u55e9\u8127\u95e5\u9248\u9c28\u9226\u9b90\u66c7\u926d\u931f\u9807\u513b\u9933\u940b\u93dc\u97dc\u92f1\u7df9\u9d5c\u95d0\u7cf6\u9f60\u9c37\u615f\u9204\u91f7\u6476\u98e9\u7c5c\u9f09\u5aa7\u8183\u7d08\u7db0\u8f1e\u8ac9\u5e43\u95c8\u6e88\u6f7f\u744b\u97d9\u7152\u9baa\u95bf\u8435\u9f77\u9114\u5ee1\u61ae\u5af5\u9a16\u9d61\u9da9\u993c\u9b29\u74bd\u89a1\u7864\u83a7\u859f\u861a\u5cf4\u736b\u5afb\u9df4\u7647\u8814\u79c8\u8e9a\u858c\u9909\u9a64\u7dd7\u9957\u5635\u701f\u9a4d\u7d83\u689f\u7c2b\u893b\u64f7\u7d32\u7e88\u9658\u6ece\u9948\u9d42\u8a61\u980a\u8afc\u9249\u93c7\u8b14\u6fa9\u9c48\u5864\u6f6f\u9c58\u57e1\u5a6d\u690f\u6c2c\u53b4\u8d17\u513c\u5157\u8b9e\u61e8\u9586\u91c5\u9b58\u995c\u9f34\u716c\u8efa\u9dc2\u9c29\u9768\u8b01\u9134\u66c4\u71c1\u8a52\u56c8\u5da7\u98f4\u61cc\u9a5b\u7e0a\u8efc\u8cbd\u91d4\u93b0\u943f\u761e\u8264\u92a6\u766e\u584b\u9daf\u7e08\u93a3\u6516\u56b6\u7005\u7020\u74d4\u9e1a\u766d\u9826\u7f4c\u93de\u8555\u92aa\u9b77\u50b4\u4fc1\u8adb\u8aed\u8577\u5d33\u98eb\u95be\u5ad7\u7d06\u89a6\u6b5f\u923a\u9d52\u9df8\u9f6c\u6ade\u9cf6\u9eff\u925e\u9106\u8553\u60f2\u614d\u7d1c\u97de\u6b9e\u6c33\u74da\u8db2\u93e8\u99d4\u8cfe\u5616\u5e58\u7c00\u8b56\u7e52\u8b6b\u8a54\u91d7\u8b2b\u8f12\u9dd3\u6e5e\u7e1d\u6968\u8eeb\u8cd1\u798e\u9d06\u8acd\u5d22\u9266\u931a\u7b8f\u9a2d\u6adb\u6894\u8ef9\u8f0a\u8d04\u9dd9\u8784\u7e36\u8e93\u8e91\u89f6\u937e\u7d02\u7e10\u4f47\u6ae7\u9296\u56c0\u994c\u9873\u9a05\u7e0b\u8ad1\u9432\u8aee\u7dc7\u8f1c\u8cb2\u7725\u9319\u9f5c\u9bd4\u50af\u8acf\u9a36\u9beb\u93c3\u7e98\u8ea6\u9c52\u8a01\u8b7e\u90e4\u731b\u6c39\u962a\u58df\u5816\u57b5\u588a\u6abe\u8552\u8464\u84e7\u8493\u83c7\u69c1\u6463\u54a4\u551a\u54e2\u565d\u5645\u6485\u5288\u8b14\u8946\u5db4\u810a\u4eff\u50e5\u7341\u9e85\u9918\u9937\u994a\u9962\u695e\u6035\u61cd\u723f\u6f35\u7069\u6df7\u6feb\u7026\u6de1\u5be7\u7cf8\u7d5d\u7dd4\u7449\u6898\u68ec\u6848\u6a70\u6aeb\u8ef2\u8ee4\u8ceb\u8181\u8156\u98c8\u7cca\u7146\u6e9c\u6e63\u6e3a\u78b8\u6efe\u7798\u9208\u9255\u92e3\u92b1\u92e5\u92f6\u9426\u9427\u9369\u9340\u9343\u9307\u9384\u9387\u93bf\u941d\u9465\u9479\u9454\u7a6d\u9d93\u9da5\u9e0c\u7667\u5c59\u7602\u81d2\u8947\u7e48\u802e\u986c\u87ce\u9eaf\u9b81\u9b83\u9b8e\u9bd7\u9bdd\u9bf4\u9c5d\u9bff\u9c20\u9c35\u9c45\u97bd\u97dd\u9f47";function Zge(e){return Xgt.charAt($ge.indexOf(e.charAt(0)))}var eGt=new RegExp("[\u4e00-\u9fa5]+");function Kge(e){return $ge.includes(e)}var jr=class{static GetBytes(e){switch(typeof e){case"string":{let t=new Uint16Array(e.length);for(let n=0;n4294967295?((t=new Float64Array(1))[0]=e,new Uint8Array(t.buffer)):function(t){return t[0]=e,new Uint8Array(t.buffer)}(new Int32Array(1)):function(t){return t[0]=e,new Uint8Array(t.buffer)}(new Float64Array(1));case"boolean":return function(t){return t[0]=Number(e),t}(new Uint8Array(1));default:if(e instanceof Array){let t=[];for(let a=0;ae.length&&(n-=t);let i="";for(let r=0;re.length&&(n-=t);let i=new Uint8Array(n);for(let r=0;r1?(r.push(a.slice()),a=[]):i.set(0,0);break;case 3:l++,n/=t[l];break;case 4:l++,n*=t[l];break;case 5:if(4===s.length)throw"The position stack is only four locations deep";s.push(i);break;case 6:i=s.pop(),a.length>1&&(r.push(a.slice()),a=[]),o&&a.push(i.clone());break;case 7:{let s,o=0,h=n*e.baseUp,c=i.clone();switch(a.length>1&&(r.push(a.slice()),a=[]),e.fontType){case 0:l++,o=t[l];break;case 1:l++,o=t[l],0==o&&(l++,o=jr.ToUInt16(new Uint8Array([t[l++],t[l++]]),0),c.x=t[l++]*n,c.y=t[l++]*n,h=t[l]*n);break;case 2:l+=2,o=jr.ToUInt16(new Uint8Array([t[l-1],t[l]]),0)}0!==o&&(s=e.getGraphicDataByCodeWithOffset(o,h,c),s&&(r.push(...s.polylines.slice()),i=s.lastPoint.clone()))}break;case 8:{let e=new be;e.x=jr.byteTosbyte(t[++l]),e.y=jr.byteTosbyte(t[++l]),i.add(e.multiplyScalar(n)),o&&a.push(i.clone())}break;case 9:for(;;){let e=new be;if(e.x=jr.byteTosbyte(t[++l]),e.y=jr.byteTosbyte(t[++l]),0==e.x&&0==e.y)break;i.add(e.multiplyScalar(n)),o&&a.push(i.clone())}break;case 10:{let e=t[++l]*n,r=jr.byteTosbyte(t[++l]),s=(112&r)>>4,h=7&r;0==h&&(h=8);let c=Math.PI/4,u=c*h,d=Bf.CIRCLE_SPAN;r<0&&(d=-d,u=-u);let p=c*s,f=p+u,m=i.clone().sub(new be(Math.cos(p)*e,Math.sin(p)*e));if(i=m.clone().add(new be(Math.cos(f)*e,Math.sin(f)*e)),o){let t=p,n=!0;for(;n&&(t+=d,r>=0&&tf);)a.push(m.clone().add(new be(e*Math.cos(t),e*Math.sin(t))));a.push(i.clone())}}break;case 11:{let e=t[++l],r=t[++l],s=(255*t[++l]+t[++l])*n,h=jr.byteTosbyte(t[++l]),c=(112&h)>>4,u=7&h;0==u&&(u=8),0!=r&&u--;let d=Math.PI/4,p=d*u,f=Bf.CIRCLE_SPAN,m=1;h<0&&(f=-f,p=-p,m=-1);let g=d*c,v=g+p;g+=d*e/256*m,v+=d*r/256*m;let y=i.clone().sub(new be(s*Math.cos(g),s*Math.sin(g)));if(i=y.clone().add(new be(s*Math.cos(v),s*Math.sin(v))),o){let e=g,t=!0;for(;t&&(e+=f,h>0&&ev);)a.push(y.clone().add(new be(s*Math.cos(e),s*Math.sin(e))));a.push(i.clone())}}break;case 12:{let e=new be;e.x=jr.byteTosbyte(t[++l])*n,e.y=jr.byteTosbyte(t[++l])*n;let r=jr.byteTosbyte(t[++l]);r<-127&&(r=-127),o&&(0==r?a.push(i.clone().add(e)):a.push(Bf.generateArcPoints(i,e,r/127))),i.add(e)}break;case 13:for(;;){let e=new be;if(e.x=jr.byteTosbyte(t[++l])*n,e.y=jr.byteTosbyte(t[++l])*n,0==e.x&&0==e.y)break;let r=jr.byteTosbyte(t[++l]);r<-127&&(r=-127),o&&(0==r?a.push(i.clone().add(e)):a.push(Bf.generateArcPoints(i.clone(),e,r/127))),i.add(e)}break;case 14:l=Bf.skipCode(e,t,++l);break;default:if(h>15){let e=(240&h)>>4,t=15&h,r=new be;switch(t){case 0:r.x=1;break;case 1:r.x=1,r.y=.5;break;case 2:r.x=1,r.y=1;break;case 3:r.x=.5,r.y=1;break;case 4:r.y=1;break;case 5:r.x=-.5,r.y=1;break;case 6:r.x=-1,r.y=1;break;case 7:r.x=-1,r.y=.5;break;case 8:r.x=-1;break;case 9:r.x=-1,r.y=-.5;break;case 10:r.x=-1,r.y=-1;break;case 11:r.x=-.5,r.y=-1;break;case 12:r.y=-1;break;case 13:r.x=.5,r.y=-1;break;case 14:r.x=1,r.y=-1;break;case 15:r.x=1,r.y=-.5}i.add(r.multiplyScalar(e*n)),o&&a.push(i.clone())}}}return new ld(i,r)}static skipCode(e,t,n){switch(t[n]){case 0:case 1:case 2:case 5:case 6:case 14:default:break;case 3:case 4:n++;break;case 7:switch(e.fontType){case 0:n++;break;case 1:0==t[++n]&&(n+=6);break;case 2:n+=2}break;case 8:case 10:n+=2;break;case 9:for(;;){let e=t[++n],i=t[++n];if(0==e&&0==i)break}break;case 11:n+=5;break;case 12:n+=3;break;case 13:for(;;){let e=t[++n],i=t[++n];if(0==e&&0==i)break;t[++n]}}return n}static generateArcPoints(e,t,n){let i=e.clone().add(t),r=n<0;n=Math.abs(n);let a=t.length()/2,s=a*n,o=2*Math.atan(1/n),l=new be(t.y,-t.x);l.normalize(),l.multiplyScalar(s);let h=Math.abs(a/Math.sin(o/2)),c=e.add(t.divideScalar(2));!1!==r?c.add(l):c.sub(l);let u=e.sub(c),d=i.sub(c),p=Math.atan2(u.y,u.x),f=Math.atan2(d.y,d.x),m=Bf.CIRCLE_SPAN;r?(m=-m,pf&&(p-=2*Math.PI);let g=p;for(;;){if(g+=m,!r&&gf)return c.add(new be(h*Math.cos(g),h*Math.sin(g)));break}return i}},Bc=Bf;Bc.FILE_STOP_FLAG=["\r","\n","\x1a"],Bc.CIRCLE_SPAN=Math.PI/18;var Jge=new Ln,jC=class extends vy{constructor(e,t){if(super(e,t),this.isExtend=!1,this.isUniCode=!0,this.isEmbedded=!1,this.fontType=2,this.textShapesCache=new Map,this.graphicData=new Map,t instanceof ArrayBuffer){let e=new Cf(t),n=Bc.parserHeader(e,Bc.FILE_STOP_FLAG).split(" ");switch(n[1]){case"shapes":this.parseShapeFont(e),this.fontType=0;break;case"bigfont":this.parseBigFont(e),this.fontType=1;break;case"unifont":this.parseUniFont(e),this.fontType=2}this.fileHeader=n[0],this.fileVersion=n[2]}else this.setFontFile(t)}generateShapes(e,t){let n=[],i=0;for(let r=0;rnew be(e[0],e[1]))));i=new ld(new be,t),this.graphicData.set(e,i)}if(this.graphicData.has(e)){let n=t/jC.DEFAULT_SIZE;Jge.identity().scale(n,n),i=this.graphicData.get(e).transform(Jge)}return i}getGraphicDataByCodeWithOffset(e,t,n){var i;return null==(i=this.getGraphicDataByCode(e,t))?void 0:i.offset(n)}parseBigFont(e){jr.ToInt16(e.readBytes(2),0);let t=jr.ToInt16(e.readBytes(2),0),n=jr.ToInt16(e.readBytes(2),0);for(let o=0;o>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:t+=String.fromCharCode(i);break;case 12:case 13:r=e[n++],t+=String.fromCharCode((31&i)<<6|63&r);break;case 14:r=e[n++],a=e[n++],t+=String.fromCharCode((15&i)<<12|(63&r)<<6|(63&a)<<0)}return t}cd.DEFAULT_SIZE=12;var Hl=class{constructor(){this.fontMap=new Map,this.unsupportedChars={},this.missingFonts={},this.loader=new Kr}loadFonts(e){return ft(this,null,(function*(){if(e=Array.isArray(e)?e:[e],this.fileNames=e.map((e=>Hl.getFileName(e.toLowerCase()))),!(yield this.checkAllFontsLoaded(e))){for(let t=0;tft(this,null,(function*(){yield e.setFontDataToIndexedDb()})))),this.releaseFontData())}}))}getTextShape(e,t,n){if(0===this.fontMap.size)return void se.warn("[FontManager] no font loaded.");let i=this.fontMap.get(t.toLowerCase());return i||(i=this.fontMap.get(this.fontMap.keys().next().value),this.missingFonts[t]||(this.missingFonts[t]=0),this.missingFonts[t]++),null==i?void 0:i.generateShapes(e,n)}getCharShape(e,t,n){if(0===this.fontMap.size)return void se.warn("[FontManager] no font loaded.");let i=this.fontMap.get(t.toLowerCase());if(!i){this.missingFonts[t]||(this.missingFonts[t]=0),this.missingFonts[t]++;for(let[t,r]of this.fontMap)if(r.getCharShape(e,n)){i=r;break}}let r=null==i?void 0:i.getCharShape(e,n);if(r){if(i instanceof cd)return r.toThreeGeometry();if(i instanceof Nf)return new MC(e,{font:i,height:0,size:n||12,curveSegments:3,bevelSegments:3})}}getNotFoundTextShape(e){let t,n;for(let[i,r]of this.fontMap){let i=r.getNotFoundTextShape(e);if(i){t=i,n=r;break}}return n instanceof cd?t.toThreeGeometry():n instanceof Nf?new ta(t.toShapes(!1),{curveSegments:3,bevelSegments:3}):void 0}checkAllFontsLoaded(e){return ft(this,null,(function*(){if(!Dn.isBrowser)return!1;let t=!1;for(let n=0;ne.order-t.order));for(let t=0;t{Object.assign(this.unsupportedChars,e.unsupportedChars)})),this.unsupportedChars}releaseFontData(){this.fontMap.forEach((e=>{e.releaseFontData()})),this.fontMap.clear()}destroy(){this.releaseFontData(),this.fontMap.clear()}static isShxFile(e){return"shx"===Hl.getExtension(e)}static isTtfFile(e){return["WOFF","OTF","TTF"].includes(Hl.getExtension(e).toUpperCase())}static isJsonFile(e){return"json"===Hl.getExtension(e)}static getFileName(e){let t=e.lastIndexOf("/");return e.substring(t+1)}static getExtension(e){return e.substring(e.lastIndexOf(".")+1)}},ud=Hl;ud.enableFontCache=!0;var Uc=new O(1,0,0),D6=new O(0,1,0),Zu=new O(0,0,1),Qge=new O(0,0,0),Hf=16777215,Zgt="CONTINUOUS",XC=new xi({color:Hf}),Ea=new Gn({color:Hf}),Ty=new on({color:Hf}),e0e=(new Dt).setFromPoints([new O]),t0e=new et,n0e=new et,_o=new et,rr=new O,Vi=new O,wy=new O,o_=new be,Ys=new dr,r0e=new dr,YC=new an,Uf=new Ot,i0e=new xi({color:65280,size:5,depthTest:!1}),s0e=new xi({color:65280,depthTest:!1}),a0e=new xi({color:65280,depthTest:!1}),Kgt=e=>void 0!==e.viewDirectionFromTarget,Jgt=e=>{if(e){let t=e.match(/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/);if(t&&t.length>0){let n=t[1],i=e.replace("data:"+n+";","").split(",");if(i&&2===i.length&&"base64"===i[0]){let e=i[1];return Wpe.decode(e)}}}return null},o0e=(e,t)=>{let n=new be(e.x,e.y),i=new be(t.x,t.y);return i.sub(n),i.normalize(),i.y<0?-Math.acos(i.x):Math.acos(i.x)},l0e=(e,t,n)=>({x:e.x+t*Math.cos(n),y:e.y+t*Math.sin(n)}),Qgt=(e,t,n,i)=>{let r=e?new be(e.x,e.y):new be(0,0),a=t?new be(t.x,t.y):new be(1,0);n=n||1;let s=4*Math.atan(n),o=r.distanceTo(a)/2/Math.sin(s/2),l=l0e(e,o,o0e(r,a)+(Math.PI/2-s/2));i=i||Math.max(Math.abs(Math.ceil(s/(Math.PI/18))),6);let h=o0e(l,r),c=s/i,u=[];u.push(new O(r.x,r.y,0));for(let d=1;d<=i-1;d++){let e=l0e(l,Math.abs(o),h+c*d);u.push(new O(e.x,e.y,0))}return u},e0t=(e,t,n,i=2*e.length,r)=>{let a=[],s=e.map((e=>[e.x,e.y]));for(let o=0;o<1;o+=1/i){let e=Q5(o,t,s,n,r);a.push(new O(e[0],e[1],0))}return a},O6=(e,t=!1)=>{let n=[],i=e.length;for(let r=0;r{let t=[];return e.faceA&&t.push(e.faceA),e.faceB&&t.push(e.faceB),e.faceC&&t.push(e.faceC),e.faceD&&t.push(e.faceD),t},n0t=e=>{let t=[],n=[];e.forEach((e=>{e.polyfaceMeshVertex&&(e.threeDPolylineMesh?t.push(new O(e.x,e.y,e.z)):n.push(t0t(e)))}));let i=[];for(let r=0;r=t.length||i<0){s=!1;break}a.push(t[i])}!s||0===a.length||(a.push(a[0]),i.push(a))}return i},Zn=class extends Er{constructor(e,t){super(e),this.timer=Date.now(),this.ignorePaperSpace=!1,this.encoding="UTF-8",this.angBase=0,this.angDir=0,this.header=void 0,this.pointsMaterials={},this.lineBasicMaterials={},this.lineShaderMaterials={},this.meshBasicMaterials={},this.meshTextureMaterials={},this.hatchShaderMaterials=[],this.entityCount=0,this.curveCount=0,this.averageCurveSize=0,this.enableRenderOrder=!1,this.enableLocalCache=!0,this.enableReleaseData=!0,this.enableMerge=!0,this.enableRTC=!0,this.enablePlineWidth=!0,this.dxfDataId=void 0,this.compareContext=void 0,this.statsInfo={unsupportedEntity:{},unsupportedEntityTypes:{},unsupportedTextStyles:{},unsupportedHatchPatterns:{},unsupportedPolylineCount:0,invisibleEntities:{},ignoredFrozenLayersAndEntityCount:{},ignoredInserts:{},entityTypesAndMeshCount:{},ignoredPaperSpaceEntityTypesAndCount:{},rebasedEntityCount:0},this.blockReferencesCache={},this.blockRecordsCache=void 0,this.entitiesCache=void 0,this.blocksCache=void 0,this.dictionaryOwnerHandleAndSpatialFilterHandlesCache=void 0,this.spatialFiltersCache=void 0,this.entityThreejsCache=void 0,this.entityTypesAndTimes=void 0,this.nonSnapableTypes=new Set(["ATTDEF","ATTRIB","LEADER","MTEXT","MULTILEADER","OLE2FRAME","TEXT"]),this.layoutsSnapObjectsMap={},this.entityHandlesWithRenderOrder={},this.addViewport=(e,t)=>{if("VIEWPORT"===e.type){t[e.ownerHandle]||(t[e.ownerHandle]=[]);let n=e;t[e.ownerHandle].push(n)}},Zn.abortJobs=!1,t&&(this.ignorePaperSpace=!0===t.ignorePaperSpace,this.enableLocalCache=!1!==t.enableLocalCache,this.enableMerge=!1!==t.enableMerge,this.encoding=t.encoding||"UTF-8",null!=t.overrideColor&&(this.overrideColor=Cn.rgb2Hex(t.overrideColor))),this.pointsMaterials[Hf]=XC,this.lineBasicMaterials[Hf]=Ea,this.meshBasicMaterials[Hf]=Ty}setFont(e){this.font=e}download(e,t){return ft(this,null,(function*(){let n=Jgt(e);if(!n){let i=Date.now(),r=new Kr(this.manager);r.setResponseType("arraybuffer"),r.setPath(this.path),n=yield r.loadAsync(e,t),se.info(`[DxfLoader] ${e} dxf file downloaded in ${(Date.now()-i)/1e3}s`)}return n}))}load(e,t,n){return ft(this,null,(function*(){return this.enableLocalCache&&t&&(t=t.trim()).length>0&&(this.dxfDataId=t),this.loadAsync(e,n)}))}loadAsync(e,t){return ft(this,null,(function*(){let n=Mt.getUpdateSubProgressFunc(0,50,t),i=Mt.getUpdateSubProgressFunc(50,100,t),r=Mt.getUpdateSubProgressFunc(10,100,t);if(Dn.isBrowser&&this.enableLocalCache&&this.dxfDataId){let t;try{if(this.timer=Date.now(),t=yield this.getDxfDataFromIndexedDb(this.dxfDataId),t){this.tryFixDxfData(t),se.info(`[DxfLoader] Loaded DxfData from indexedDb in ${(Date.now()-this.timer)/1e3}s`);let e=yield this.loadEntities(t,r);return Promise.resolve(e)}}catch(e){se.warn("[DxfLoader] Failed to parse data from indexedDb",e)}}let a=yield this.parse(e,n);return this.tryFixDxfData(a),yield this.loadEntities(a,i)}))}parse(e,t){return ft(this,null,(function*(){let n=Mt.getUpdateProgressFunc(t),i=Mt.getUpdateSubProgressFunc(0,40,t),r=yield this.download(e,i);if(!r)return Promise.reject(`[DxfLoader] Failed to download ${e}`);if(Zn.abortJobs)return Promise.reject("[DxfLoader] Job aborted");this.timer=Date.now(),se.info("[DxfLoader] Start parsing...");let a=new Xm(this.encoding).parseSync(r);if(this.tryFixDxfData(a),n(80),se.info(`[DxfLoader] Parsed in ${(Date.now()-this.timer)/1e3}s, creating entities...`),Zn.abortJobs)return Promise.reject("[DxfLoader] Job aborted");if(a&&Dn.isBrowser&&this.enableLocalCache&&this.dxfDataId){let t=Date.now();try{yield this.setDxfDataToIndexedDb(this.dxfDataId,a),se.info(`[DxfLoader] Saved to indexedDb in ${(Date.now()-t)/1e3}s`)}catch(e){se.warn(`[DxfLoader] Failed to save '${this.dxfDataId}' to indexedDb!`,e)}}return n(100),a}))}parseHeader(e){if(!e)return void se.error("[DxfLoader]: Invalid header!");this.header=e;let t=e.$ACADVER.toString();"AC1032"!==t&&se.warn(`[DxfLoader] Unexpected version: ${t}. But we'll try to continue.`),this.angBase=e.$ANGBASE||0,this.angDir=e.$ANGDIR||0}tryFixDxfData(e){e&&(e.objects||(se.warn("[DxfLoader] No objects found, Will add one."),e.objects={}),e.objects.LAYOUT||(se.warn("[DxfLoader] No layout defined! Will add a default 'Model' layout!"),e.objects.LAYOUT=[{layoutName:Zn.MODEL_LAYOUT_NAME}]),e.tables||(se.warn("[DxfLoader] No tables found, Will add one."),e.tables={}),e.tables.layer||(e.tables.layer={}),e.tables.layer.layers||(e.tables.layer.layers={}))}loadEntities(e,t){return ft(this,null,(function*(){let n=Date.now();this.parseHeader(e.header),this.enableRenderOrder&&(this.initRenderOrderInfo(e),this.enableMerge=!1),this.getFontFilesFromDxf(e);let i=0,r=e.entities.length;this.entityCount=r,Object.keys(e.blocks).forEach((t=>{var n;this.entityCount+=(null==(n=e.blocks[t].entities)?void 0:n.length)||0}));let a=Mt.getUpdateProgressFuncForLoop(r,t),s={},o=e=>{let t=e.userData.layerName,n=s[t];n||(n=[],s[t]=n),n.push(e)},l={},h={},c=new bn;for(let t=0;te.name===s));if(u||(u=new bn,u.name=s,u.userData.isLayoutLevelObject=!0,c.add(u)),r.traverse((e=>{e.userData.isSnapObject&&(this.layoutsSnapObjectsMap[s]||(this.layoutsSnapObjectsMap[s]=[]),this.layoutsSnapObjectsMap[s].push(e))})),this.enableMerge){Lc.merge(r,!1),h[s]||(h[s]={object:u,layerObjects:{}});let e=h[s];if(r.geometry){let t=r.userData.layerName;e.layerObjects[t]||(e.layerObjects[t]=[]),e.layerObjects[t].push(r),r.children.forEach((e=>{e.userData.isSnapObject&&o(e)}))}else r.children.length>0&&(u.add(r),r.traverse((e=>{e.geometry&&o(e)})))}else u.add(r),r.traverse((e=>{e.geometry&&o(e)}));i++,yield a(t)}e.objects.LAYOUT.forEach((t=>{let n=t,i=n.layoutName;if(this.ignorePaperSpace&&i!==Zn.MODEL_LAYOUT_NAME)return;let r=n.associatedBlockName,a=e.blocks[r];a&&this.drawLayout(a,e,n,c,s,l)})),se.debug(`[DxfLoader] Drew entities in ${(Date.now()-n)/1e3}s`);for(let t in this.layoutsSnapObjectsMap){let n=c.children.find((e=>e.name===t)),i=new bn;i.name=Zn.SNAP_GROUP_NAME,i.userData.isSnapGroup=!0,n.add(i);let r=this.layoutsSnapObjectsMap[t];for(let t=0;t=100&&(e=new Set(s));let t=t=>Array.isArray(e)?e.indexOf(t)>=0:e.has(t);for(let r=0,a=i.length;r{let t=e;d[t.layoutName]=t}));let p={};u.children.forEach((t=>{if(Hn.setSharedVariablesOfObject(t),!t.userData.isLayoutLevelObject)return;let n,i=t.name;if(i!==Zn.MODEL_LAYOUT_NAME){let e=d[i];e.directAssociatedLeafObjectSet||(e.directAssociatedLeafObjectSet=new Set),n=e.directAssociatedLeafObjectSet}t.traverse((t=>{if(Hn.setSharedVariablesOfObject(t),t.userData.isSnapGroup&&(t.visible=Zn.SHOW_SNAP_OBJECT),t.geometry){let i=t.userData.layerName;!1===this.getLayerVisible(e,i)&&(t.visible=!1,t.userData.layerVisible=!1),(e=>{let t=e.userData.layerName,n=p[t];n||(n=[],p[t]=n),n.push(e)})(t),n&&n.add(t)}}))})),se.info(`[DxfLoader] loadEntities() done in ${(Date.now()-n)/1e3}s`);let f=Ri(Tr({},e),{threejsObject:u,layersAndThreejsObjects:p,loadedEntityCount:i,layoutViewportsMap:l});return Promise.resolve(f)}))}getFontFilesFromDxf(e){let t=new Set;if(e.tables.style.styles){let n=e.tables.style.styles;for(let e in n){let i=n[e],r=i.fontFile,a=i.bigFontFile;r&&t.add(r),a&&t.add(a)}}se.info(`[DxfLoader] These are fonts used by dxf: ${Array.from(t).join()}`)}loadEntitiesForCompare(e,t,n,i=!0,r){return ft(this,null,(function*(){let a=e.entities.length,s=t.entities.length,o=()=>ft(this,null,(function*(){var o;let l=this.compareContext,h=l.isTheFirstFile,c=h?e:t,u=new bn,d=h?a:s,p=c.entities.length;this.entityCount=p,Object.keys(c.blocks).forEach((e=>{var t;this.entityCount+=(null==(t=c.blocks[e].entities)?void 0:t.length)||0}));let f=Math.round(Math.pow(d,.5)),m=Date.now(),g=e=>ft(this,null,(function*(){if(r&&(e%f==0||e===d-1)){let t=e+1;h||(t+=a),r(new ProgressEvent("parseProgress",{loaded:t,total:a+s}));let n=500,i=Date.now();(i-m>n||e===d-1)&&(yield Mt.sleep(0),m=i)}}));this.parseHeader(c.header);let v={};for(let e=0;ee.name===Zn.MODEL_LAYOUT_NAME));r||(r=new bn,r.name=Zn.MODEL_LAYOUT_NAME,r.userData.isLayoutLevelObject=!0,u.add(r)),r.add(i),i.traverse((e=>{if(e.geometry){let t=e.userData.layerName,r=this.getLayerVisible(c,t);e.userData.isSnapObject&&(this.layoutsSnapObjectsMap[n.layoutName]||(this.layoutsSnapObjectsMap[n.layoutName]=[]),this.layoutsSnapObjectsMap[n.layoutName].push(e),!1===r&&i.layers.disable(11));let a=v[t];a||(a=[],v[t]=a),a.push(e)}})),yield g(e)}i&&h&&(l.preservedHandles||(l.preservedHandles=new Set));for(let e in n){let t=n[e];h&&("Added"===t.type||"Modified"===t.type)&&(null==(o=l.preservedHandles)||o.add(t.handle),t.parentHandles&&t.parentHandles.forEach((e=>{var t;return null==(t=l.preservedHandles)?void 0:t.add(e)})));let i=this.entityThreejsCache&&this.entityThreejsCache[t.handle];if(t.parentHandles&&(i=this.entityThreejsCache&&this.entityThreejsCache[t.parentHandles[t.parentHandles.length-1]]),i){if(i.parent&&i.parent.userData.originalType){this.setObjectColorByChange(i,{type:"NoChange"});continue}i=this.setObjectColorByChange(i,t)}if("NoChange"!==t.type&&i){let e=i.parent,n=_o.identity();for(;e&&!0!==e.userData.isLayoutLevelObject;)n.premultiply(e.matrix),e=e.parent;Uf.makeEmpty();let r=bn.getBox(i,Uf);r.applyMatrix4(n),"Added"===t.type?!h&&(t.box=(new Ot).copy(r)):"Removed"===t.type?h&&(t.box=(new Ot).copy(r)):"Modified"===t.type&&(t.box?t.box.union(r):t.box=(new Ot).copy(r))}}for(let e in this.layoutsSnapObjectsMap){let t=u.children.find((t=>t.name===e)),n=new bn;n.name=Zn.SNAP_GROUP_NAME,t.add(n);let i=this.layoutsSnapObjectsMap[e];for(let e=0;e{Hn.setSharedVariablesOfObject(e),e.userData.isLayoutLevelObject&&e.traverse((e=>{if(Hn.setSharedVariablesOfObject(e),e.userData.isSnapGroup&&(e.visible=Zn.SHOW_SNAP_OBJECT),e.geometry){let t=e.userData.layerName;!1===this.getLayerVisible(c,t)&&(e.visible=!1,e.userData.layerVisible=!1),(e=>{let t=e.userData.layerName,n=x[t];n||(n=[],x[t]=n),n.push(e)})(e)}}))}));let b=c;b.threejsObject=y,b.layersAndThreejsObjects=x,b.layoutViewportsMap={}})),l=Date.now();this.compareContext={changes:n,isTheFirstFile:!0},Mt.printMemory("Before loading entities for first dxf"),yield o(),se.info(`[DxfLoader] loadEntities for first dxf in ${(Date.now()-l)/1e3}s`),Mt.printMemory("After loading entities for first dxf"),this.releaseCachedData(!1),this.releaseDxfData(e),Mt.printMemory("Before loading entities for second dxf"),l=Date.now(),this.compareContext.isTheFirstFile=!1,yield o(),se.info(`[DxfLoader] loadEntities for second dxf in ${(Date.now()-l)/1e3}s`),this.printStatsInfo();for(let e of Object.values(n))e.box||delete n[e.id];this.compareContext.preservedHandles=void 0,this.enableReleaseData&&(this.releaseCachedData(),this.releaseDxfData(t)),Mt.printMemory("After loading entities for second dxf")}))}setObjectColorByChange(e,t){let n=(e,t)=>{e.traverse((e=>{if(e.material)if(e.material instanceof Gn)e.material=this.getLineBasicMaterial(t);else if(e.material instanceof on)e.material=this.getMeshBasicMaterial(t);else if(e.material instanceof xi)e.material=this.getPointsMaterial(t);else if(e.material instanceof ln){let n=e.material.clone();Zn.updateMaterialUniforms(n),n.uniforms.u_color.value.set(t),e.material=n}}))},i=(e=>{var t;let n=hs.ENTITY_COLOR_NO_CHANGE;return"Added"===e.type?n=hs.ENTITY_COLOR_ADDED:"Removed"===e.type?n=hs.ENTITY_COLOR_REMOVED:"Modified"===e.type&&(n=null!=(t=this.compareContext)&&t.isTheFirstFile?hs.ENTITY_COLOR_REMOVED:hs.ENTITY_COLOR_ADDED),n})(t);return e.traverse((r=>{t.parentHandles?r.userData&&r.userData.handle&&r.userData.handle===t.handle&&(n(r,i),e=r):n(r,i)})),e}releaseCachedData(e=!0){e&&(this.pointsMaterials={},this.lineBasicMaterials={},this.lineShaderMaterials={},this.meshBasicMaterials={},this.meshTextureMaterials={},this.hatchShaderMaterials=[]),this.header=void 0,this.blockReferencesCache={},this.blockRecordsCache=void 0,this.blocksCache=void 0,this.entitiesCache=void 0,this.dictionaryOwnerHandleAndSpatialFilterHandlesCache=void 0,this.spatialFiltersCache=void 0,this.entityThreejsCache=void 0,this.entityTypesAndTimes=void 0,this.entityHandlesWithRenderOrder={},this.layoutsSnapObjectsMap={},this.statsInfo={unsupportedEntity:{},unsupportedEntityTypes:{},unsupportedTextStyles:{},unsupportedHatchPatterns:{},unsupportedPolylineCount:0,invisibleEntities:{},ignoredFrozenLayersAndEntityCount:{},ignoredInserts:{},entityTypesAndMeshCount:{},ignoredPaperSpaceEntityTypesAndCount:{},rebasedEntityCount:0}}releaseEntity(e){e.vertices&&(e.vertices=void 0),e.knotValues&&(e.knotValues=void 0),e.controlPoints&&(e.controlPoints=void 0),e.binaryData&&(e.binaryData=void 0),e.text&&(e.text=void 0),e.extendedData&&(e.extendedData=void 0),e.contextData&&(e.contextData=void 0);let t=e;t.boundaryPaths&&(t.boundaryPaths=[]),t.patternLines&&(t.patternLines=void 0)}releaseDxfData(e){delete e.objects.DICTIONARY,delete e.objects.SORTENTSTABLE,delete e.objects.XRECORD,e.tables&&(delete e.tables.dimStyle,delete e.tables.lineType,delete e.tables.style,delete e.tables.blockRecord),e.entities=[],e.blocks={}}drawEntity(e,t,n,i=!1){if(this.compareContext&&this.compareContext.preservedHandles&&this.compareContext.preservedHandles.has(e.handle)&&qm.includes(e.type)&&(i=!0),!i&&this.compareContext&&this.compareContext.preservedHandles&&!qm.includes(e.type)&&!this.compareContext.preservedHandles.has(e.handle)&&(!n||n&&!this.compareContext.preservedHandles.has(n.handle)))return;if(!0===this.getLayerFrozen(t,e)){let t=e.layer;return this.statsInfo.ignoredFrozenLayersAndEntityCount[t]||(this.statsInfo.ignoredFrozenLayersAndEntityCount[t]=0),void this.statsInfo.ignoredFrozenLayersAndEntityCount[t]++}if(!1===e.visible||e.invisible)return this.statsInfo.invisibleEntities[e.type]||(this.statsInfo.invisibleEntities[e.type]=0),void this.statsInfo.invisibleEntities[e.type]++;if(this.ignorePaperSpace&&e.inPaperSpace)return this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]||(this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]=0),void this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]++;this.entityThreejsCache||(this.entityThreejsCache={});let r,a=Date.now(),s=!1;if(!this.compareContext&&this.entityThreejsCache[e.handle])r=this.entityThreejsCache[e.handle].clone(),s=!0;else if(!this.statsInfo.unsupportedEntity[e.handle]){if("CIRCLE"===e.type||"ARC"===e.type)r=this.drawArc(e,t,n);else if("LINE"===e.type||"POLYLINE"===e.type)r=this.drawLine(e);else if("XLINE"===e.type)r=this.drawXLine(e);else if("SEQEND"!==e.type)if("RAY"===e.type)r=this.drawRay(e);else if("LWPOLYLINE"===e.type)r=this.drawLWPolyline(e,t,n);else if("3DFACE"===e.type)r=this.draw3DFace(e);else if("TEXT"===e.type)r=this.drawText(e,t,n);else if("SOLID"===e.type)r=this.drawSolid(e,t,n);else if("POINT"===e.type)r=this.drawPoint(e,t,n);else if("IMAGE"===e.type)r=this.drawImage(e,t,n);else if("INSERT"===e.type)r=this.drawInsert(e,t,i);else if("SPLINE"===e.type)r=this.drawSpline(e,n);else if("MTEXT"===e.type)r=this.drawMText(e,t,n);else if("ELLIPSE"===e.type)r=this.drawEllipse(e,t,n);else if("DIMENSION"===e.type)r=this.drawDimension(e,t);else if("REGION"!==e.type)if("ATTDEF"===e.type)r=this.drawAttDef(e,t,n);else if("ATTRIB"===e.type){if(!n)for(let i=0;i{r.geometry&&(r.userData.layerName=i,this.setMaterial(r,e,t,n))})),s||(this.nonSnapableTypes.has(e.type)&&r.traverse((e=>{e.layers.disable(11)})),this.enableRenderOrder&&(this.entityHandlesWithRenderOrder[e.handle]?r.renderOrder=parseInt(this.entityHandlesWithRenderOrder[e.handle],16)+.1:r.renderOrder=parseInt(e.handle,16)))}return qm.includes(e.type)||(this.entityTypesAndTimes||(this.entityTypesAndTimes={}),this.entityTypesAndTimes[e.type]||(this.entityTypesAndTimes[e.type]={createCount:0,totalTime:0,averageTime:0}),this.entityTypesAndTimes[e.type].createCount++,this.entityTypesAndTimes[e.type].totalTime+=Date.now()-a),r?this.statsInfo.entityTypesAndMeshCount[e.type]?this.statsInfo.entityTypesAndMeshCount[e.type]++:this.statsInfo.entityTypesAndMeshCount[e.type]=1:(this.statsInfo.unsupportedEntityTypes[e.type]?this.statsInfo.unsupportedEntityTypes[e.type]++:this.statsInfo.unsupportedEntityTypes[e.type]=1,qm.includes(e.type)||(this.statsInfo.unsupportedEntity[e.handle]?this.statsInfo.unsupportedEntity[e.handle]++:this.statsInfo.unsupportedEntity[e.handle]=1)),r}drawEllipse(e,t,n){if(!e.majorAxisEndPoint||!e.center||void 0===e.axisRatio||void 0===e.startAngle||void 0===e.endAngle)return;let i=e.startAngle,r=e.endAngle;if(e.extrusionDirection&&e.extrusionDirection.z<0&&(i=2*Math.PI-e.endAngle,r=2*Math.PI-e.startAngle),Zt.areNumbersEqual(i,r,1e-5))return void se.warn("[DxfLoader] Ellipse entity (handle '%s') contains the same start and end angle, ignored!",e.handle);let a=r-i;for(;a>2*Math.PI;)a-=2*Math.PI;Math.abs(a)<=1e-5&&(r=Zt.floorNumber(i+2*Math.PI,5));let s=Math.sqrt(Math.pow(e.majorAxisEndPoint.x,2)+Math.pow(e.majorAxisEndPoint.y,2)),o=s*e.axisRatio,l=Math.atan2(e.majorAxisEndPoint.y,e.majorAxisEndPoint.x),h=new Kh(e.center.x,e.center.y,s,o,i,r,!1,l),c=1,u=n;null!=u&&u.xScale&&null!=u&&u.yScale&&(c=Math.max(Math.abs(u.xScale),Math.abs(u.yScale)));let d=this.getDivision(i,r,Math.max(s,o)*c),p=h.getPoints(d),f=[],m=p.length;for(let _=0;_{e.geometry&&e.geometry.translate(c,u,0),e.layers.enableAll()})),e.rotation&&Ys.setFromAxisAngle(Zu,e.rotation*Math.PI/180),e.directionVector){let t=e.directionVector,n=new O(t.x,t.y,t.z),i=n.clone().cross(Uc),r=Uc.angleTo(n);Ys.multiply(r0e.setFromAxisAngle(Zu,i.z>0?-r:r))}return Qt.shouldRebasePositionOnRTC(Vi)&&this.setRTCUserData(s),s.matrix.compose(Vi,Ys,wy),s}getMTextGroup(e,t,n,i,r,a=0,s=0,o=[]){var l,h,c;if(0===e.length)return;let u=t.height||t.contextData&&t.contextData.textHeight||0;if(t.textStyle){if(n&&n.fontFile&&n.fontFile.endsWith(".shx")){let e=`${n.fontFile}_${n.styleName}`;this.statsInfo.unsupportedTextStyles[e]||(this.statsInfo.unsupportedTextStyles[e]=0),this.statsInfo.unsupportedTextStyles[e]++}u=u||n.textHeight}let d=t.lineSpaceFactor||1,p="Left";t.width&&t.attachmentPoint&&([1,4,7].includes(t.attachmentPoint)?p="Left":[2,5,8].includes(t.attachmentPoint)?p="Center":[3,6,9].includes(t.attachmentPoint)&&(p="Right"));let f,m,g=t.width||0,v=new bn,y=1,x=1,b=256,_=d*u*.3,w=_+u;for(let S=0;S{let t;if(e.forEach(((e,n)=>{e.boundingBox||e.computeBoundingBox(),0===n?t=e.boundingBox:t.union(e.boundingBox)})),t){let n=t.getSize(rr);switch(p){case"Left":default:break;case"Center":e.forEach((e=>e.translate((g-n.x)/2,0,0)));break;case"Right":e.forEach((e=>e.translate(g-n.x,0,0)))}}S.push(...e)};for(let t=0;t(g||1/0))a=0,s-=w,o.length>0&&T(o),o=[];else{e.boundingBox||e.computeBoundingBox();let t=e.boundingBox.getSize(rr).x;" "===i&&(t=u/2),a+=t+x*(u/6),o.push(e)}else a+=u+x*(u/6);else a=0,s-=w,o.length>0&&T(o),o=[]}o.length>0&&(T(o),o=[]);let E=new bn;if(S.length>0){f||(f=t.colorIndex),void 0!==b&&256!==b?(t.color=Wm(b),t.colorIndex=b):t.colorIndex=f;let e=this.getColor(t,i,r),n=S.filter((e=>e instanceof ta)),a=S.filter((e=>!(e instanceof ta)));if(n.length>0){let t=new bn(4);t.geometry=Ni(n),t.material=this.getMeshBasicMaterial(e),E.add(t)}if(a.length>0){let t=new bn(3);t.geometry=Ni(a),t.material=this.getLineBasicMaterial(e),E.add(t)}}E.matrix.makeTranslation(0,-u,0),v.add(E),m=void 0,y=1,x=1,b=256,d=t.lineSpaceFactor||1}else if(Array.isArray(M)){let e=this.getMTextGroup(M,t,n,i,r,a,s,o);e&&(v.add(e.object),a=e.hOffset,s=e.vOffset)}else"object"==typeof M&&(M.f&&(m=M.f,m&&m.includes(".shx")&&se.info(`[DxfLoader] Doesn't support custom fonts: ${m}`)),M.C&&(b=M.C),M.W&&(y="x"===M.W[1]?M.W[0]*t.width:M.W[0]),M.H&&(u="x"===M.H[1]?M.H[0]*t.height:M.H[0]),M.T&&(x=M.T))}return 0!==v.children.length?(Lc.merge(v,!1),f&&(t.colorIndex=f),1===v.children.length?{object:v.children[0],hOffset:a,vOffset:s}:{object:v,hOffset:a,vOffset:s}):void 0}mtextContentAndFormattingToTextAndStyle(e,t){let n={horizontalAlignment:"",textHeight:t.height||t.contextData&&t.contextData.textHeight},i={},r=1,a=[];for(let s=0;s{a.push(e)})),r=e.lineLength}else if("object"==typeof o)if(o.S&&3===o.S.length){let e=o.S[0]+"/"+o.S[2],t=this.getTextLineNum(e);a.push({text:o.S[0]+"/"+o.S[2],lineNum:r}),r+=t}else void 0!==o.C?i.C=o.C:void 0!==o.W?i.W=o.W:void 0!==o.H?i.H=o.H:void 0!==o.f&&(i.f=o.f)}return{text:a,lineLength:r,style:n}}getTextLineNum(e){let t=e.match(new RegExp("\\n","g"));return t?t.length:0}draw3DFace(e){if(!e.vertices||0===e.vertices.length)return void se.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=e.vertices.map((e=>new O(e.x,e.y,e.z)));if(0===t.length)return;Zt.areVector3sEqual(t[0],t[t.length-1])||t.push(t[0]);let n=new O,i=!1;this.enableRTC&&(i=Qt.checkAndRebasePositionsOnRTC(t,n));let r=(new Dt).setFromPoints(t),a=new bn(2);return a.geometry=r,a.material=Ea,i&&(this.setRTCUserData(a),a.matrix.setPosition(n.x,n.y,0)),a.layers.enableAll(),a}drawSpline(e,t){if(!e.controlPoints||!e.degreeOfSplineCurve||!e.knotValues)return;let n=1/0,i=1/0,r=-1/0,a=-1/0;for(let g of e.controlPoints)g.xr&&(r=g.x),g.y>a&&(a=g.y);let s=1,o=t;null!=o&&o.xScale&&null!=o&&o.yScale&&(s=Math.max(Math.abs(o.xScale),Math.abs(o.yScale)));let l=Math.max(r-n,a-i),h=this.getBSplineInterpolationsPerSplineSegment(e.controlPoints.length,l*s),c=e0t(e.controlPoints,e.degreeOfSplineCurve,e.knotValues,h),u=new O,d=!1;this.enableRTC&&(d=Qt.checkAndRebasePositionsOnRTC(c,u));let p=Qt.getAdjacentNonRepeatPoints(c);if(p.length<2)return void se.warn("[DxfLoader] Spline entity (handle '%s') contains less than 2 points, ignored!",e.handle);let f=(new Dt).setFromPoints(p),m=new bn(2);return m.geometry=f,m.material=Ea,d&&(this.setRTCUserData(m),m.matrix.setPosition(u.x,u.y,0)),m.layers.enableAll(),m}drawXLine(e){if(!e.vertices||0===e.vertices.length)return void se.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=Mt.arrayOrObjectToVector3(e.directionVector),n=new O(e.vertices[0].x,e.vertices[0].y,0),i=[];if(i.push(t.clone().multiplyScalar(-1e6).add(n)),i.push(t.clone().multiplyScalar(1e6).add(n)),0===i.length)return;let r=new O,a=!1;this.enableRTC&&(a=Qt.checkAndRebasePositionsOnRTC(i,r));let s=(new Dt).setFromPoints(i),o=new bn(2);return o.geometry=s,o.material=Ea,a&&(this.setRTCUserData(o),o.matrix.setPosition(r.x,r.y,0)),o.layers.enableAll(),o}drawRay(e){if(!e.vertices||0===e.vertices.length)return void se.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=Mt.arrayOrObjectToVector3(e.directionVector),n=e.vertices.map((e=>new O(e.x,e.y,0)));if(n.push(t.multiplyScalar(1e6).add(n[0])),0===n.length)return;let i=new O,r=!1;this.enableRTC&&(r=Qt.checkAndRebasePositionsOnRTC(n,i));let a=(new Dt).setFromPoints(n),s=new bn(2);return s.geometry=a,s.material=Ea,r&&(this.setRTCUserData(s),s.matrix.setPosition(i.x,i.y,0)),s.layers.enableAll(),s}drawLine(e){if(!e.vertices||0===e.vertices.length)return void se.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=[];if(e.isPolyfaceMesh)t=n0t(e.vertices);else{let n=O6(e.vertices,e.shape);e.shape&&n.length>0&&n.push(n[0]),n.length>0&&(t=[n])}if(0===t.length)return;let n=[];for(let s=0;s0){if(this.enableRTC){let e=0;t.forEach((t=>{t.forEach((t=>{r.add(t),e++}))})),r.divideScalar(e),a=Qt.shouldRebasePositionOnRTC(r)}let e=[],n=[],s=0,o=0,l=0,h=0;t.forEach((t=>{for(let i=0;i0&&n.push(s+i-1,s+i);s=t.length}));let c=(new Dt).setFromPoints(e);c.setIndex(n),i=new bn(3),i.geometry=c,i.material=Ea}if(n.length>0){this.enableRTC&&(a=Qt.checkAndRebasePositionsOnRTC(n,r));let e=(new Dt).setFromPoints(n);i=new bn(1),i.geometry=e,i.material=XC}return i?(a&&(this.setRTCUserData(i),i.matrix.setPosition(r.x,r.y,0)),i.layers.enableAll(),i):void 0}drawLWPolyline(e,t,n){var i,r,a;if(!e.vertices||e.vertices.length<2)return void se.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle);let s=e;if(void 0!==s.extrusionDirectionX&&void 0!==s.extrusionDirectionY&&void 0!==s.extrusionDirectionZ){rr.set(s.extrusionDirectionX,s.extrusionDirectionY,s.extrusionDirectionZ);let e=Zn.getOcsMatrix(rr).invert(),t=0;void 0!==s.elevation&&s.elevation>0&&(t=s.elevation),s.vertices.forEach((n=>{let i=rr.set(n.x,n.y,t).applyMatrix4(e);n.x=i.x,n.y=i.y}))}let o=O6(e.vertices,e.shape);if(e.shape&&o.length>0&&!Zt.areVector3sEqual(o[0],o[o.length-1])&&o.push(o[0]),o.length<2)return void se.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle);let l=new bn;if(null!=(i=e.extendedData)&&i.outlines){let t=e.extendedData.outlines,n=[];t.forEach((e=>{let t=new Ss;e.forEach(((e,n)=>{0===n?t.moveTo(e[0],e[1]):t.lineTo(e[0],e[1])})),t.closePath(),n.push(new Al(t))}));let i=Ni(n),r=new bn(4);r.geometry=i,r.material=Ty,r.layers.enableAll(),l.add(r)}let h=new O,c=!1;this.enableRTC&&(c=Qt.checkAndRebasePositionsOnRTC(o,h));let u=Qt.getAdjacentNonRepeatPoints(o);if(u.length<2)return void se.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle);if(this.enablePlineWidth&&void 0!==s.constantWidth&&s.constantWidth>0){let i=null==(a=null==(r=t.tables)?void 0:r.lineType)?void 0:a.lineTypes,o=i&&i[this.getLineType(e,t,n)];if(!o||!o.pattern||0===o.pattern.length){this.statsInfo.unsupportedPolylineCount++;let t=Qt.convertWidthLineToMeshGeometry(u,s.constantWidth);if(t){let e=new bn(4);e.geometry=t,e.material=Ty,e.layers.enableAll(),e.layers.disable(11),l.add(e);let n=Hn.createOutline(t,Ea,e.matrix),i=new bn(3);i.geometry=n.geometry,i.material=n.material,i.matrix=n.matrix,i.layers.enableAll(),i.layers.disable(11),l.add(i)}else se.warn("[DxfLoader] Failed to convert line with width to mesh geometry: %s",e.handle)}}let d=new bn(2);return d.geometry=(new Dt).setFromPoints(u),d.material=Ea,d.layers.enableAll(),l.children.length>0?l.add(d):l=d,c&&(this.setRTCUserData(l),l.matrix.setPosition(h)),l}drawMLeader(e,t,n){var i,r,a,s,o,l,h;let c=t.tables.dimStyle.dimStyles[e.dimensionStyle]||this.getDefaultDimensionStyle(t),u=null==(i=e.contextData)?void 0:i.defaultTextContents;if(!u)return;let d=new bn,p=wC(u),f=this.getTextStyle(t,e),m=this.getMTextGroup(p,e,f,t,n),g=m&&m.object;if(g){g.matrix.decompose(Vi,Ys,wy),null!=(r=e.contextData)&&r.textLocation&&(Vi.x+=e.contextData.textLocation.x,Vi.y+=e.contextData.textLocation.y,g.matrix.compose(Vi,Ys,wy)),Uf.makeEmpty();let t=bn.getBox(g,Uf).getSize(rr),n=t.x,i=t.y,l=0,h=0;switch(null==(a=e.contextData)?void 0:a.textAttachment){case 1:l=0,h=0;break;case 2:l-=n/2,h=0;break;case 3:l-=n,h=0;break;case 4:l=0,h+=i/2;break;case 5:l-=n/2,h+=i/2;break;case 6:l-=n,h+=i/2;break;case 7:l=0,h+=i;break;case 8:l-=n/2,h+=i;break;case 9:l-=n,h+=i;break;default:return}if(g.traverse((e=>{e.geometry&&e.geometry.translate(l,h,0)})),null!=(s=e.contextData)&&s.textRotation&&Ys.setFromAxisAngle(Zu,e.contextData.textRotation*Math.PI/180),null!=(o=e.contextData)&&o.textDirection){let t=e.contextData.textDirection,n=new O(t.x,t.y,t.z),i=n.clone().cross(Uc),r=Uc.angleTo(n);Ys.multiply(r0e.setFromAxisAngle(Zu,i.z>0?-r:r))}Qt.shouldRebasePositionOnRTC(Vi)&&this.setRTCUserData(g),g.matrix.compose(Vi,Ys,wy),g.renderOrder=5,d.add(g)}if(0===e.leaderLineType)return null==g||g.traverse((e=>{e.layers.enableAll()})),g;{let n=[],i=null==(l=e.contextData)?void 0:l.leaders[0];if(!i)return d;let r=i.lastLeaderLinePoint;if(e.enableDogLeg){let e=new O(r.x,r.y,r.z),t=i.doglegLength,a=new O(i.doglegVector.x,i.doglegVector.y,i.doglegVector.z).multiplyScalar(t),s=e.clone().add(a);n.push(s,e)}let a=(null==(h=e.contextData)?void 0:h.leaders[0].leaderLines)||[];for(let l=0;lnew O(e.x,e.y,e.z))),s=new O(r.x,r.y,r.z);for(let e=0;e{e.layers.enableAll()})),1===d.children.length?d.children[0]:d}drawLeader(e,t,n){let i=[];if(!e.vertices)return void se.warn("[DxfLoader] Entity is missing vertices:",e.handle);if(e.vertices.length<2)return void se.warn("leader's vertices number must be greater than 2");let r=t.tables.dimStyle.dimStyles[e.dimensionStyle]||this.getDefaultDimensionStyle(t),a=e.vertices;if(1===e.pathType&&(a=new vm(e.vertices).getPoints(50)),e.textWidth){let t=e.textWidth,n=new O(a[a.length-1].x,a[a.length-1].y,a[a.length-1].z);if(0===e.direction){let e=new O(1,0,0).multiplyScalar(t);a.push(e.add(n))}else{let e=new O(-1,0,0).multiplyScalar(t);a.push(e.add(n))}}for(let p=0;p0?(l.add(d),Lc.merge(l,!1),l.traverse((e=>{e.layers.enableAll()})),1===l.children.length?l.children[0]:l):(d.layers.enableAll(),d)}drawDefaultLeadArrow(e,t,n,i){let r=n*(e.x-t.x),a=n*(e.y-t.y),s=a,o=-r,l=new O(t.x+r+s/6,t.y+a+o/6,0),h=new O(t.x+r-s/6,t.y+a-o/6,0);i.push(t,l),i.push(t,h),i.push(l,h)}getBlockByHandle(e,t){if(!this.blocksCache){this.blocksCache={};for(let t in e){let n=e[t];this.blocksCache[n.ownerHandle]||(this.blocksCache[n.ownerHandle]=n)}}return this.blocksCache[t]}static updateMaterialUniforms(e){e instanceof ln&&(e.uniforms.u_cameraZoom&&(e.uniforms.u_cameraZoom=Zn.cameraZoomUniform),e.uniforms.u_viewportScale&&(e.uniforms.u_viewportScale=Zn.viewportScaleUniform))}static transformAngleByOcsMatrix(e,t){let n=rr.set(1*Math.cos(t),1*Math.sin(t),0).applyMatrix4(e);return Math.atan2(n.y,n.x)}static getArcAnglesByOcsMatrix(e,t,n){let i,r=Zt.getArcAngleSpanInRadian(t,n),a=Zn.transformAngleByOcsMatrix(e,t),s=Zn.transformAngleByOcsMatrix(e,n);if(Zt.areNumbersClose(r,Math.PI)){r=1;let n=Zn.transformAngleByOcsMatrix(e,t+r);i=Zt.getArcAngleSpanInRadian(a,n)}else{if(Zt.areNumbersClose(r,2*Math.PI))return[a,a+2*Math.PI];i=Zt.getArcAngleSpanInRadian(a,s)}return Zt.areNumbersClose(r,i,1e-5)?[a,s]:[s,a]}drawArc(e,t,n){var i,r,a;if(!e.radius||e.radius<.001)return void se.warn(`[DxfLoader] The radius of arc (handle '${e.handle}') is undefined, ignored!`);if(!e.radius||e.radius<.001)return void se.warn(`[DxfLoader] The radius of arc (handle '${e.handle}') is too small, ignored!`);let s=new O(0,0,1);void 0!==e.extrusionDirectionX&&void 0!==e.extrusionDirectionY&&void 0!==e.extrusionDirectionZ&&s.set(e.extrusionDirectionX,e.extrusionDirectionY,e.extrusionDirectionZ);let o,l,h=Zn.getOcsMatrix(s);if("CIRCLE"===e.type)o=e.startAngle||0,l=o+2*Math.PI;else{if(null==e.startAngle||null==e.endAngle||(o=e.startAngle,l=e.endAngle,Zt.areNumbersEqual(o,l,1e-6)))return;if(!Zt.areNumbersClose(Zt.getArcAngleSpanInRadian(o,l),2*Math.PI)){let e=Zn.getArcAnglesByOcsMatrix(h,o,l);o=e[0],l=e[1]}}let c=new gm(0,0,e.radius,o,l,0!==this.angBase),u=1,d=n;null!=d&&d.xScale&&null!=d&&d.yScale&&(u=Math.max(Math.abs(d.xScale),Math.abs(d.yScale)));let p=this.getDivision(o,l,e.radius*u),f=c.getPoints(p),m=new O,g=!1;this.enableRTC&&(g=Qt.checkAndRebasePositionsOnRTC(f,m));let v=(new Dt).setFromPoints(f),y=new bn(2);y.geometry=v,y.material=Ea;let x=new O;e.center&&(x.x=e.center.x,x.y=e.center.y);let b=new O(null==(i=e.center)?void 0:i.x,null==(r=e.center)?void 0:r.y,null==(a=e.center)?void 0:a.z).applyMatrix4(h.invert());x.x=b.x,x.y=b.y;let _=x,w=new bn(1);return w.geometry=e0e,w.material=XC,w.userData.handle=e.handle,w.userData.isSnapObject=!0,w.userData.type="CircleCenter",w.layers.set(11),y.add(w),g?(this.setRTCUserData(y),_.x+=m.x,_.y+=m.y):Qt.shouldRebasePositionOnRTC(_)&&this.setRTCUserData(y),y.matrix.setPosition(_),y.layers.enableAll(),y}addTriangleFacingCamera(e,t,n,i){let r=new O,a=new O;r.subVectors(n,t),a.subVectors(i,t),r.cross(a);let s=new O(t.x,t.y,t.z),o=new O(n.x,n.y,n.z),l=new O(i.x,i.y,i.z);r.z<0?e.push(l,o,s):e.push(s,o,l)}drawSolid(e,t,n){let i=e.points;if(!i||i.length<4)return;if(e.extrusionDirection&&e.extrusionDirection.z){rr.set(0,0,e.extrusionDirection.z);let t=Zn.getOcsMatrix(rr).invert();i.forEach((e=>{let n=rr.set(e.x,e.y,0).applyMatrix4(t);e.x=n.x,e.y=n.y}))}let r=[],a=[];this.addTriangleFacingCamera(r,i[0],i[1],i[2]),a.push(0,1,2),this.addTriangleFacingCamera(r,i[1],i[2],i[3]),a.push(3,4,5);let s=new O,o=!1;this.enableRTC&&(o=Qt.checkAndRebasePositionsOnRTC(r,s));let l=(new Dt).setFromPoints(r);l.setIndex(a);let h=new bn(4);return h.geometry=l,h.material=Ty,o&&(this.setRTCUserData(h),h.matrix.setPosition(s.x,s.y,0)),h.layers.enableAll(),h}getTextStyle(e,t){var n,i;let r=null==(i=null==(n=e.tables)?void 0:n.style)?void 0:i.styles;return r&&(r[t.textStyle]||r.STANDARD||r.Standard)||{}}getDefaultDimensionStyle(e){return e.tables.dimStyle.dimStyles.STANDARD||e.tables.dimStyle.dimStyles.Standard||{}}getTextEncoding(e){return(null==e?void 0:e.bigFontFile)&&e.bigFontFile.toUpperCase().startsWith("GB")?"gbk":"utf8"}getTextMesh(e,t,n,i){if(!e)return;let r=(null==n?void 0:n.styleName)||"";if(n&&n.fontFile&&n.fontFile.endsWith(".shx")){let e=`${n.fontFile}_${n.styleName}`;this.statsInfo.unsupportedTextStyles[e]||(this.statsInfo.unsupportedTextStyles[e]=0),this.statsInfo.unsupportedTextStyles[e]++}let a=.67,s={_TCH_DIM:1.45,ROMANS:1};r&&s[r]&&(a=s[r]),i.xScale&&(a*=i.xScale),r&&(a*=(null==n?void 0:n.xScale)||1,t=t||(null==n?void 0:n.textHeight)||0),0===t&&(t=r?1:.2);let o=this.createTextMeshByText(e,n,t,0,t/8);return o.traverse((e=>{e.geometry&&e.geometry.scale(a,1,1)})),o}createTextMeshByText(e,t,n=12,i=0,r=0,a=1,s=1/0){var o,l,h;let c=new bn,u=[],d=0,p=0,f=i+n;for(let m=0;ms?(d=0,p-=f):(c.boundingBox||c.computeBoundingBox(),d+=c.boundingBox.getSize(rr).x+r),u.push(c))}if(u.length>0){let e=u.filter((e=>e instanceof ta)),t=u.filter((e=>!(e instanceof ta)));if(e.length>0){let t=new bn(4);t.geometry=Ni(e),t.material=Ty,c.add(t)}if(t.length>0){let e=new bn(3);e.geometry=Ni(t),e.material=Ea,c.add(e)}}return c}transformTextMesh(e,t){Uf.makeEmpty();let n=bn.getBox(t,Uf).getSize(rr),{halign:i,valign:r}=e;t.matrix.decompose(YC.position,YC.quaternion,YC.scale);let a=YC,s=e.width||e.textWidth||n.x,o=e.height||e.textHeight||n.y;if(void 0===i&&void 0===r&&e.startPoint||[3,5].includes(i)&&e.startPoint?(a.position.x+=e.startPoint.x,a.position.y+=e.startPoint.y,a.position.z+=e.startPoint.z):e.endPoint&&(a.position.x+=e.endPoint.x,a.position.y+=e.endPoint.y,a.position.z+=e.endPoint.z),3!==i&&5!==i){if(e.rotation){let t=e.rotation*Math.PI/180;a.rotateZ(t)}2===e.mirrored?a.rotateY(Math.PI):4===e.mirrored&&a.rotateX(Math.PI)}switch(i){case 0:default:break;case 1:a.translateX(-s/2);break;case 2:a.translateX(-s);break;case 3:if(e.startPoint&&e.endPoint){let t=new O(e.startPoint.x,e.startPoint.y,e.startPoint.z),n=new O(e.endPoint.x,e.endPoint.y,e.endPoint.z),i=(new O).subVectors(t,n),r=i.length()/s;a.scale.multiplyScalar(r);let o=i.clone().cross(Uc),l=i.angleTo(Uc);a.rotateZ(o.z>0?Math.PI-l:l-Math.PI),(2===e.mirrored||4===e.mirrored)&&a.rotateX(Math.PI)}break;case 4:a.translateX(-s/2),a.translateY(-o/2);break;case 5:if(e.startPoint&&e.endPoint){let t=new O(e.startPoint.x,e.startPoint.y,e.startPoint.z),n=new O(e.endPoint.x,e.endPoint.y,e.endPoint.z),i=(new O).subVectors(t,n),r=i.length()/s;a.scale.setX(r);let o=i.clone().cross(Uc),l=i.angleTo(Uc);a.rotateZ(o.z>0?Math.PI-l:l-Math.PI),(2===e.mirrored||4===e.mirrored)&&a.rotateX(Math.PI)}}switch(r){case 0:case 1:default:break;case 2:a.translateY(-o/2);break;case 3:a.translateY(-o)}return a.position.z=0,a.updateMatrix(),t.matrix.copy(a.matrix),t}drawText(e,t,n){let i=e.text;if(!i)return;if(!this.font)return void se.info("[DxfLoader] Font file not set, ignoring text entity.");let r=this.getTextStyle(t,e);i=SC(i,{encoding:this.getTextEncoding(r)}).map((e=>e.text)).join("");let a=this.getTextMesh(i,e.textHeight,r,e);if(!a||0===a.children.length)return;this.transformTextMesh(e,a),rr.set(a.matrix.elements[12],a.matrix.elements[13],a.matrix.elements[14]);let s=Qt.shouldRebasePositionOnRTC(rr);return s&&this.setRTCUserData(a),a.traverse((e=>{let t=e.geometry;if(t){if(e instanceof xt&&!t.getIndex()){let e=t.getAttribute("position"),n=[];for(let t=0;te.text)).join();let a=this.getTextMesh(i,e.textHeight,r,e);if(!a||0===a.children.length)return;this.transformTextMesh(e,a),rr.set(a.matrix.elements[12],a.matrix.elements[13],a.matrix.elements[14]);let s=Qt.shouldRebasePositionOnRTC(rr);return s&&this.setRTCUserData(a),a.traverse((e=>{let t=e.geometry;if(t){if(e instanceof xt&&!t.getIndex()){let e=t.getAttribute("position"),n=[];for(let t=0;te.text)).join();let a=this.getTextMesh(i,e.textHeight,r,e);if(!a||0===a.children.length)return;this.transformTextMesh(e,a),rr.set(a.matrix.elements[12],a.matrix.elements[13],a.matrix.elements[14]);let s=Qt.shouldRebasePositionOnRTC(rr);return s&&this.setRTCUserData(a),a.traverse((e=>{let t=e.geometry;if(t){if(e instanceof xt&&!t.getIndex()){let e=t.getAttribute("position"),n=[];for(let t=0;t0&&(e.colorIndex=i.DIMCLRD,e.color=Wm(e.colorIndex));let r=new bn;for(let s=0;s`,r.userData.entityType=e.type;let a=null==e?void 0:e.insertionPoint;return rr.set(0,0,0),a&&rr.set(a.x,a.y,0),Qt.shouldRebasePositionOnRTC(rr)&&this.setRTCUserData(r),r.matrix.setPosition(rr),r}drawImage(e,t,n){var i;if(!e.imageSize||null==(i=t.objects.IMAGEDEF)||!i.length)return;let r=t.objects.IMAGEDEF.filter((t=>t.handle===e.imageDefHandle))[0];if(!r)return;console.log(e,r);let a=e.imageSize.x,s=e.imageSize.y,o=new bn,l=!1;2===e.flags||4===e.flags||8===e.flags||(l=!0);let h=new ui(a,s);if(l){let e=new Rs(this.manager).load(r.filename,void 0,void 0,(()=>{console.warn("Please upload the pictures in the same folder, or use url link in the dxf file.")}));e.colorSpace=tn;let t=new on({transparent:!0,side:pi,map:e}),n=new bn(4);n.geometry=h,n.material=t,o.add(n)}let c=new Cu(h),u=this.getColor(e,t,n),d=new bn(2);d.geometry=c,d.material=this.getLineBasicMaterial(u);let p=e.uPixel?new O(e.uPixel.x,e.uPixel.y,e.uPixel.z):new O(r.pixelSize.x,0,0),f=e.vPixel?new O(e.vPixel.x,e.vPixel.y,e.vPixel.z):new O(r.pixelSize.y,0,0);if(o.add(d),Vi.set(p.x,f.y,1),rr.set(0,0,0),e.position){let t=new O(e.position.x,e.position.y,e.position.z);t.add(p.multiplyScalar(a/2)).add(f.multiplyScalar(s/2)),rr.copy(t)}return Qt.shouldRebasePositionOnRTC(rr)&&this.setRTCUserData(o),Ys.identity(),o.matrix.compose(rr,Ys,Vi),o}drawInsert(e,t,n=!1){var i,r;if(!e.block)return;let a=t.blocks[e.block];if(!a.entities)return;e.blockPosition=a.position;let s=new bn;for(let u=0;u`,s.userData.entityType=e.type,null!=(i=e.extendedData)&&i.originalType&&(s.userData.originalType=null==(r=e.extendedData)?void 0:r.originalType),null!=e&&e.blockPosition&&s.matrix.setPosition(-e.blockPosition.x,-e.blockPosition.y,0);let o=rr.set(1,1,1);e.xScale&&(o.x=e.xScale),e.yScale&&(o.y=e.yScale);let l=new Xn;e.rotation&&(l.z=e.rotation*Math.PI/180),Ys.setFromEuler(l,!1);let h=Vi.set(0,0,0);e.position&&(h.x=e.position.x,h.y=e.position.y),_o.compose(h,Ys,o),e.extrusionDirection&&e.extrusionDirection.z<0&&_o.premultiply(t0e.identity().makeScale(-1,1,1)),n0e.copy(s.matrix),s.matrix.premultiply(_o),Vi.set(s.matrix.elements[12],s.matrix.elements[13],s.matrix.elements[14]),Qt.shouldRebasePositionOnRTC(Vi)&&this.setRTCUserData(s);let c=this.findSpatialFilterByHandle(e.handle,t);if(c){this.drawSpatialFilter(c);let t=c;t&&t.clipPolylines&&t.clipPolylines.length>0&&(s.userData.spatialFilterHandle=c.handle,this.cloneMaterialsForSpatialFilter(s),se.debug("[DxfLoader] Spatial filter:",e.associatedSpatialFilter))}return s}drawSpatialFilter(e){let t=e;if(t.threejsObject)return t.threejsObject.clone();let n=e.invertBlockMatrix;_o.set(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],0,0,0,1);let i=[];e.vertices.forEach((e=>{i.push(new O(e.x,e.y,0))}));let r={polyline:[],bConcave:!1,bReversed:!1};if(2===e.numberOfPointsOnClipBoundary)r.polyline=i;else{let t=e.numberOfPointsOnClipBoundary,n=3;if(te;r--){let o=i[r];if(Zt.areVector3sEqual(n,o)&&e+10)break;a.push(n)}if(s>0)for(let e=s+1;e{o.push(new be(e.x,e.y)),l.push([e.x,e.y])})),!Qt.isConvex(o)){se.warn(`[DxfLoader] Concave polygon is not supported for spatial filter (handle '${e.handle}'), converting to convex polygon!`);let t=(0,c0e.default)(l,1/0);a=[],t.forEach((e=>{a.push(new O(e[0],e[1],0))}))}Zt.areVector3sEqual(a[0],a[a.length-1])||a.push(a[0]),r.polyline=a,r.bReversed=s>0}return this.enableReleaseData&&(e.vertices=[],e.matrix=[],e.invertBlockMatrix=[]),t.localMatrix=_o.clone(),t.clipPolylines=[],void t.clipPolylines.push(r)}drawLayout(e,t,n,i,r,a){if(!e.entities)return;let s=new bn;for(let h=0;h{if(e.geometry){let t=e.userData.layerName,i=r[t];i||(i=[],r[t]=i),i.push(e),e.userData.isSnapObject&&(this.layoutsSnapObjectsMap[n.layoutName]||(this.layoutsSnapObjectsMap[n.layoutName]=[]),this.layoutsSnapObjectsMap[n.layoutName].push(e))}})))}if(0===s.children.length)return;s.userData.layerName=e.layer;let o=n.layoutName,l=i.children.find((e=>e.name===o));l||(l=new bn,l.name=o,l.userData.isLayoutLevelObject=!0,i.add(l)),l.add(s),e.position&&s.matrix.setPosition(e.position.x,e.position.y,e.position.z||0)}convertEdgeToPoints(e){let t=[];switch(e.type){case 1:{let n=e;t.push(new be(n.startPoint.x,n.startPoint.y)),t.push(new be(n.endPoint.x,n.endPoint.y));break}case 2:{let n=e,i=n.startAngle*An.DEG2RAD,r=n.endAngle*An.DEG2RAD;n.bCounterclockwise||(i=2*Math.PI-i,r=2*Math.PI-r);let a=new gm(n.center.x,n.center.y,n.radius,i,r,!n.bCounterclockwise),s=this.getDivision(i,r,n.radius);t.push(...a.getPoints(s));break}case 3:{let n=e,i=Math.sqrt(Math.pow(n.majorAxisEndPoint.x,2)+Math.pow(n.majorAxisEndPoint.y,2)),r=i*n.minorRatio,a=Math.atan2(n.majorAxisEndPoint.y,n.majorAxisEndPoint.x),s=n.startAngle*An.DEG2RAD,o=n.endAngle*An.DEG2RAD;n.bCounterclockwise||(s=2*Math.PI-s,o=2*Math.PI-o);let l=new Kh(n.center.x,n.center.y,i,r,s,o,!n.bCounterclockwise,a),h=this.getDivision(s,o,Math.max(i,r));t.push(...l.getPoints(h));break}case 4:{let n=e;t.push(...n.controlPoints);break}case 0:{let n=e;t.push(...O6(n.points,n.isClosed));break}}return t}drawHatch(e,t,n){var i;let r=e;if(0==r.boundaryPaths.length)return;let a=[],s=[],o=[],l=e=>{let t=[],n=[];n.push(...this.convertEdgeToPoints(e[0]));for(let i=1;i2){let a=this.convertEdgeToPoints(e[i-1]);Zt.areVector2sEqual(a[a.length-1],r[0])?Zt.areVector2sEqual(n[0],r[r.length-1],1e-5)&&(t.push(n),n=[]):Zt.areVector2sEqual(a[0],r[r.length-1])?Zt.areVector2sEqual(n[1],r[0],1e-5)&&(t.push(n),n=[]):n=[]}}return t};if(r.boundaryPaths.forEach(((e,t)=>{let n=[];if(this.IsfilteredByPathTypeFlag(e.pathTypeFlag)){let n="[DxfLoader] The %d path type flag is filtered at the %dth boundrayPath (hatch handle '%s')";return void se.info(n,e.pathTypeFlag,t,r.handle)}let i=e.edges;if(0===i.length)return;let h=[];for(let a=0;a31&&(!(e=>{for(let t=1;t{Zt.areVector2sEqual(e[0],e[e.length-1])||e.push(e[0]);let t=e.map((e=>new be(Mt.roundNumber(e.x,7),Mt.roundNumber(e.y,7))));if((null==t?void 0:t.length)>0){a.push(t);let e=(new Ji).setFromPoints(t);s.push(e);let n=e.getSize(o_),i=n.x*n.y;o.push({area:i,index:a.length-1})}}))})),0===a.length)return;let h=new be,c=this.checkAndRebasePolygonsOnRTC(a,h);o.sort(((e,t)=>e.area-t.area));let u=[];o.forEach((e=>{u.push(e.index)}));let d,p=this.buildContainHierarchyTree(a,s,u),f=[];if(this.buildHatchGeometry(a,p,f),f.length>0&&(d=Ni(f)),!d||!d.getIndex()||0===(null==(i=d.getIndex())?void 0:i.count))return void se.warn("[DxfLoader] Failed to convert hatch boundaries!");let m=new bn(4);m.geometry=d,m.material=Ty,this.setHatchMaterial(m,r,t,h,n);let g=m;return c&&(this.setRTCUserData(g),g.matrix.setPosition(h.x,h.y,0)),g.traverse((e=>{e.layers.enableAll(),e.layers.disable(11)})),g}drawOle2frame(e,t){let{leftUpX:n,leftUpY:i,rightDownX:r,rightDownY:a}=e;if(!(n&&i&&r&&a))return;let s=[new be(n,i),new be(n,a),new be(r,a),new be(r,i),new be(n,i)],o=new O,l=!1;this.enableRTC&&(l=Qt.checkAndRebasePositionsOnRTC(s,o));let h=(new Dt).setFromPoints(s),c=this.getLineBasicMaterial(16777215),u=new bn(2);u.geometry=h,u.material=c,u.layers.enableAll(),l&&(this.setRTCUserData(u),u.matrix.setPosition(o.x,o.y,0));let d=new bn;d.add(u);let p,f,m=t.objects.DICTIONARY;for(let g of m){let t=g;for(let n in t.entries)if(t.entries[n]===e.handle){p=n;break}}if(p)if(this.meshTextureMaterials[p])f=this.meshTextureMaterials[p];else for(let g=0;g1?d:u}static getOcsMatrix(e){let t=Uc,n=D6,i=Zu,r=new O(0,1,0),a=new O(0,0,1);return Zt.areVectorsClose(e,a)?_o.identity():(i=e.clone().normalize(),Zt.areVectorsClose(i,a)||(t=Math.abs(i.x)<1/64&&Math.abs(i.y)<1/64?r.cross(i).normalize():a.cross(i).normalize(),n=i.clone().cross(t).normalize()),_o.set(t.x,t.y,t.z,0,n.x,n.y,n.z,0,i.x,i.y,i.z,0,0,0,0,1))}static getDcs2WcsMatrix(e,t){let n;n=Kgt(e)?e.viewDirectionFromTarget:e.viewDirection;let i,r,a,s=new O(Zt.roundNumber(n.x,7),Zt.roundNumber(n.y,7),n.z),o=new O(e.viewTarget.x,e.viewTarget.y,e.viewTarget.z),l=e.viewTwistAngle||0;a=s.clone().normalize(),i=Zu.clone().cross(s),i.length()>0?(i.normalize(),r=a.clone().cross(i)):a.z<0?(i=Uc.clone().negate(),r=D6,a=Zu.clone().negate()):(i=Uc,r=D6,a=Zu);let h=new et,c=_o.identity();return c.makeBasis(i,r,a),h.premultiply(c),h.premultiply(_o.identity().compose(o.clone(),(new dr).setFromAxisAngle(new O(0,0,1),An.degToRad(t?l:-l)),new O(1,1,1))),h}getViewportMsToPsMatrix(e){let t=new O(e.centerPoint_dcs.x,e.centerPoint_dcs.y,0),n=new O(e.centerPoint.x,e.centerPoint.y,e.centerPoint.z),i=e.viewHeight/e.height_paperSpace,r=Zn.getDcs2WcsMatrix(e,this.angDir),a=new et;a.setPosition(Qge.clone().sub(n));let s=t0e.identity();s.scale(rr.set(i,i,i));let o=n0e.identity().setPosition(Qge.clone().sub(n));s.premultiply(o.clone().invert()).multiply(o),a.multiply(s);let l=_o.identity();l.setPosition(t),r.multiply(l);let h=_o.identity();return a.invert().multiply(h).multiply(r.invert())}drawViewport(e,t,n){let i=e;if("1"==i.viewportId)return e.psBBox=new Ot,void(e.msToPsMatrix=new et);let r=[],a=i.centerPoint,s=i.width_paperSpace/2,o=i.height_paperSpace/2;r.push(new O(a.x-s,a.y-o,0)),r.push(new O(a.x-s,a.y+o,0)),r.push(new O(a.x+s,a.y+o,0)),r.push(new O(a.x+s,a.y-o,0)),r.push(r[0]),e.psBBox=new Ot(r[0],r[2]),e.msToPsMatrix=this.getViewportMsToPsMatrix(i);let l=new O,h=!1;this.enableRTC&&(h=Qt.checkAndRebasePositionsOnRTC(r,l));let c=(new Dt).setFromPoints(r),u=new bn(2);u.geometry=c,u.material=Ea,h&&(this.setRTCUserData(u),u.matrix.setPosition(l.x,l.y,0)),u.userData.entityType=e.type,u.layers.enableAll();let d=new bn;d.add(u);let p=e.psBBox.clone();p.applyMatrix4(e.msToPsMatrix.clone().invert()),p.min.z=0,p.max.z=0;let f=[];f.push(p.min),f.push(new O(p.min.x,p.max.y,0)),f.push(p.max),f.push(new O(p.max.x,p.min.y,0)),f.push(f[0]);let m=new O,g=!1;this.enableRTC&&(g=Qt.checkAndRebasePositionsOnRTC(f,m));let v=(new Dt).setFromPoints(f),y=new bn(2);return y.geometry=v,y.material=Ea,g&&(this.setRTCUserData(y),y.matrix.setPosition(m.x,m.y,0)),y.userData.entityType=e.type,y.userData.inPaperSpace=!0,y.layers.enableAll(),d.add(y),u}getColor(e,t,n){var i,r,a,s;if(this.compareContext)return hs.ENTITY_COLOR_NO_CHANGE;if(null!=this.overrideColor)return this.overrideColor;let o=e;if(o&&o.isGradientColor){let t=o.gradientColors;if(t&&t.length>=2){if(t[0]!==t[1]){let t=`[DxfLoader] Gradient colors are not supported for hatch '${e.handle}', will use the first color!`;se.warn(t)}return t[0]}}if(e.isTrueColor||e.colorIndex>0&&e.colorIndex<256)return e.color;if(0===e.colorIndex)return n?this.getColor(n,t):null==(r=null==(i=t.tables)?void 0:i.layer)?void 0:r.layers[0].color;if(256===e.colorIndex){let i=null==(s=null==(a=t.tables)?void 0:a.layer)?void 0:s.layers,r=i&&i[e.layer],o=i&&n&&i[n.layer],l=Hf;return r&&"0"!==r.name?l=r.color:o?l=o.color:r?l=r.color:i&&i[0].color&&(l=i[0].color),l}return se.warn("[DxfLoader] Unknown colorIndex"),Hf}getLineType(e,t,n){var i,r;if(n&&"DIMENSION"===n.type)return this.getLineType(n,t);if(e.lineType!==iy&&e.lineType!==sy)return e.lineType;if(e.lineType===sy)return n?this.getLineType(n,t):e.lineType;let a=null==(r=null==(i=t.tables)?void 0:i.layer)?void 0:r.layers,s=Zgt;if("0"!==e.layer){let t=a&&a[e.layer];if(t)return t.lineType}else if(n){let e=a&&a[n.layer];if(e)return e.lineType}return s}getLayerName(e,t,n){var i,r;let a=t=>{s&&t&&!s[e.layer]&&(console.warn(`[DxfLoader] Failed to find layer object for '${t}', adding a default one.`),s[t]={name:t,handle:"",colorIndex:256,lineType:"",visible:!0})},s=null==(r=null==(i=t.tables)?void 0:i.layer)?void 0:r.layers;a(e.layer);let o=s&&s[e.layer];a(null==n?void 0:n.layer);let l=s&&n&&s[n.layer],h=(null==o?void 0:o.name)||"";return o&&"0"===o.name&&l&&(h=l.name),h}setMaterial(e,t,n,i){var r,a;let s=e;if(!s.geometry||(this.setRenderOrderByObjectType(e),"OLE2FRAME"===t.type))return;if("MTEXT"===t.type)return void(e.renderOrder=5);if("HATCH"===t.type)return o_.set(0,0),void this.setHatchMaterial(e,t,n,o_,i);if("IMAGE"===t.type)return;let o,l=this.getColor(t,n,i);if("LWPOLYLINE"===t.type&&(s.isMesh?(o=this.getMeshBasicMaterial(l),e.renderOrder=1):e.userData.isOutline&&(o=this.getLineBasicMaterial(l),e.renderOrder=3),o))s.material=o;else{if("SOLID"===t.type)o=this.getMeshBasicMaterial(l);else if("TEXT"===t.type||"ATTDEF"===t.type||"ATTRIB"===t.type)o=this.getLineBasicMaterial(l),e.renderOrder=5;else if("LEADER"===t.type||"MULTILEADER"===t.type||"VIEWPORT"===t.type)o=this.getLineBasicMaterial(l);else if("POINT"===t.type)o=this.getPointsMaterial(l);else{if(e.material instanceof xi)return o=this.getPointsMaterial(l),void(s.material=o);let h=null==(a=null==(r=n.tables)?void 0:r.lineType)?void 0:a.lineTypes,c=h&&h[this.getLineType(t,n,i)];if(c&&c.pattern&&0!==c.pattern.length){let n=t.lineTypeScale||1;o=this.getLineShaderMaterial(c,l,n),e.renderOrder=3}else o=this.getLineBasicMaterial(l)}s.material=o}}setHatchMaterial(e,t,n,i,r){let a=e;if(!a.geometry)return;let s=this.getColor(t,n,r);if(2===a.type||3===a.type)return void(a.material=this.getLineBasicMaterial(s));let o,l=-1;if(t.solidFill)o=this.getMeshBasicMaterial(s);else{if(a.material instanceof ln){o=a.material;let e=new ct(s);a.material.uniforms.u_color.value.equals(e)||(o=a.material.clone(),Zn.updateMaterialUniforms(o),o.uniforms.u_color.value.set(s))}else o=this.getHatchShaderMaterial(t,s,i);l=0}o||(o=this.getMeshBasicMaterial(s),l=-1),a.material=o,a.renderOrder=l}setRenderOrderByObjectType(e){let t=e,n=0;t.isMesh?n=-1:t.isLine?n=2:t.isPoints&&(n=4),e.renderOrder=n}getPointsMaterial(e){return this.pointsMaterials[e]||(this.pointsMaterials[e]=new xi({size:.2,color:e})),this.pointsMaterials[e]}getLineBasicMaterial(e){return this.lineBasicMaterials[e]||(this.lineBasicMaterials[e]=new Gn({color:e})),this.lineBasicMaterials[e]}getLineShaderMaterial(e,t,n){let i=`${e.name}_${t}_${n}`;if(!this.lineShaderMaterials[i]){let r=this.getLineTypeScales(),a=r.ltScale*r.celtScale*n;this.lineShaderMaterials[i]=TC.createLineShaderMaterial(e.pattern,t,a,Zn.viewportScaleUniform,Zn.cameraZoomUniform)}return this.lineShaderMaterials[i]}getMeshBasicMaterial(e){return this.meshBasicMaterials[e]||(this.meshBasicMaterials[e]=new on({color:e})),this.meshBasicMaterials[e]}getHatchShaderMaterial(e,t,n){if(!e.patternLines||e.patternLines.length<1)return;let i=this.findMatchedHatchShaderMaterial(e,t);if(i)return i;let r=2;e.patternLines.forEach((e=>{r=Math.max(e.dashPattern.length,r)}));let a=0,s=[],o=new be;for(let h of e.patternLines){let t=new be(h.origin.x,h.origin.y).sub(n).rotateAround(o,-An.degToRad(e.patternAngle)),i=new be(h.delta.x,h.delta.y).rotateAround(o,-An.degToRad(h.angle));if(0===i.y)return void se.warn("[DxfLoader] delta.y is equal to zero !");let l=h.dashPattern.length,c=!0,u=0;for(let e=0;e0&&(c=!1),u+=Math.abs(t)}let d=c?.05:.005,p=[],f=[],m=0;f[0]=m;for(let e=0;eZn.maxFragmentUniforms){se.warn("[DxfLoader] There will be warning in fragment shader when number of uniforms exceeds 1024, so extra hatch line patterns are ignored here!");break}s.push(g)}let l=ume(s,e.patternAngle,Zn.cameraZoomUniform,new ct(t));return l.defines={MAX_PATTERN_SEGMENT_COUNT:r},this.hatchShaderMaterials.push({patternLines:e.patternLines,patternAngle:e.patternAngle,color:t,material:l}),l}getDivision(e,t,n){let i=Math.round(5e4/this.entityCount);i=Math.max(i,2),i=Math.min(i,10);let r=5*i,a=2*i;this.averageCurveSize&&(a*=Math.pow(n/this.averageCurveSize,.5),a=Math.max(a,i),a=Math.min(a,r));let s=t-e;s<0&&(s+=2*Math.PI),a=Math.ceil(a*(s/Math.PI));let o=8;return s<.087?o=2:s<.174?o=3:s<.52?o=4:s<1.57?o=5:s<3.14?o=6:s<4.71&&(o=7),a=Math.max(a,o),this.averageCurveSize=(this.averageCurveSize*this.curveCount+n)/(this.curveCount+1),this.curveCount++,Math.max(a,12)}getBSplineInterpolationsPerSplineSegment(e,t){let n=1;this.averageCurveSize&&(n=Math.pow(t/this.averageCurveSize,.5),n=Math.max(n,.5),n=Math.min(n,2)),this.averageCurveSize=(this.averageCurveSize*this.curveCount+t)/(this.curveCount+1),this.curveCount++;let i=2*e*n;return e>20&&(i/=Math.log10(e)),i}setDxfDataToIndexedDb(e,t){return ft(this,null,(function*(){let n={dxfDataId:e,dxf:t};return new Promise(((t,i)=>{gy.instance().add(n,(()=>{se.info(`[DxfLoader] Saved '${e}' to indexedDb`),t()}),(e=>{i(e)}))}))}))}getDxfDataFromIndexedDb(e){return ft(this,null,(function*(){return new Promise(((t,n)=>{gy.instance().query(e,(e=>{e&&e.length>0&&t(e[0].dxf),t(void 0)}),(()=>n()))}))}))}buildContainHierarchyTree(e,t,n){var i;let r=new Map,a=n.length;for(let o=0;o{0===e.children.length?i.push(e.index):r.set(e.index,e.children.map((e=>e.index)))}));let a=e=>{try{let t=new Al(e);t.hasAttribute("uv")&&t.deleteAttribute("uv"),t.hasAttribute("normal")&&t.deleteAttribute("normal"),n.push(t)}catch(t){se.warn(`[DxfLoader] triangulate shape error: ${e.getPoints().map((e=>e.toArray())).toString()}`)}};i.forEach((t=>{let n=e[t];if(0===n.length)return;let i=new Ss(n);a(i)}));let s=e=>e.map((e=>e.toArray()));for(let o of r){let t=new Ss(e[o[0]]),n={regions:[],inverted:!1},i=this.findIntersectHole(e,o[1]);i.forEach((i=>{let r={regions:[],inverted:!1};try{i.forEach(((i,a)=>{if(Vl.epsilon(Zt.getVector2RelativeEps(e[i][0]),1e-6),0===a)r=Vl.segments({regions:[s(e[i])],inverted:!1});else{let a=Vl.segments({regions:[s(e[i])],inverted:!1}),o=Vl.combine(r,a);n=Vl.polygon(Vl.selectUnion(o)),n.regions.length>0?n.regions.forEach((e=>{if(0===e.length)return;let n=e.map((e=>new be(e[0],e[1])));t.holes.push(new Ru(n))})):se.warn("[DxfLoader] mergedHoles.regions is empty")}}))}catch(e){se.warn(`[DxfLoader] polybooljs has error: ${e}, epsilon is ${Vl.epsilon()}`)}}));let r=i.flat(2);for(let a=0;a{t.children.forEach((t=>{this.buildHatchGeometry(e,t,n)}))}))}findIntersectHole(e,t){let n=t.length,i=[];for(let r=0;r{e.forEach((e=>{t.add(e),n++}))})),t.divideScalar(n);let i=!1;if(this.enableRTC&&Qt.shouldRebasePositionOnRTC(t)){i=!0;for(let n=0;n{e.entries[n]&&"ACAD_SORTENTS"===e.entries[n]&&t.add(n)}))}if(0===t.size)return;let i=e.objects.SORTENTSTABLE;if(i)for(let r=0;rMath.abs(e-t)<1e-5,r=(e,t)=>i(e.angle,t.angle)&&i(e.delta.x,t.delta.x)&&i(e.delta.y,t.delta.y)&&i(e.origin.x,t.origin.x)&&i(e.origin.y,t.origin.y)&&((e,t)=>{if(e.length!==t.length)return!1;for(let n=0;ni.color===t&&i.patternAngle===e.patternAngle&&((e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n{t[e.handle]=e.layoutHandle}))}let r=this.blockRecordsCache[t.ownerHandle];if(r){let t=e.objects.LAYOUT.find((e=>e.handle===r));if(t)return t}if(!this.entitiesCache){this.entitiesCache={};let t=this.entitiesCache;Object.values(e.entities).forEach((e=>{t[e.handle]=e}))}let a=this.entitiesCache[t.ownerHandle];return a?this.getLayout(e,a):(se.warn("[DxfLoader] Failed to find layout name for entity:",t),e.objects.LAYOUT.find((e=>e.layoutName===Zn.MODEL_LAYOUT_NAME)))}getLayerVisible(e,t){var n,i,r;let a=null==(i=null==(n=e.tables)?void 0:n.layer)?void 0:i.layers;return a&&(null==(r=a[t])?void 0:r.visible)}getLayerFrozen(e,t){var n,i,r;let a=null==(i=null==(n=e.tables)?void 0:n.layer)?void 0:i.layers;return a&&(null==(r=a[t.layer])?void 0:r.frozen)}cloneMaterialsForSpatialFilter(e){let t=new Map;e.traverse((e=>{e.material&&(e.material=(e=>{let n;return Array.isArray(e)?(n=[],e.forEach((e=>{if(t.has(e.id))n.push(t.get(e.id));else{let i=e.clone();Zn.updateMaterialUniforms(i),t.set(e.id,i),n.push(i)}}))):e&&(t.has(e.id)?n=t.get(e.id):(n=e.clone(),Zn.updateMaterialUniforms(n),t.set(e.id,n))),n})(e.material))}))}getLineTypeScales(){let e={ltScale:1,celtScale:1};return this.header&&(e.ltScale=this.header.$LTSCALE||1,e.celtScale=this.header.$CELTSCALE||1),e}static getDxfUnits(e){switch(e||0){case 0:return"Unitless";case 1:return"Inches";case 2:return"Feet";case 4:return"Millimeters";case 5:return"Centimeters";case 6:return"Meters";default:se.warn(`[DxfLoader] Unsupported $INSUNITS '${e}'`)}return"Unitless"}static computeLineDistance(e){let t=!0===e.isLineSegments,n=e.geometry,i=e.matrixWorld;if(n.index&&(se.debug(`[DxfLoader] Line with id '${e.id}' contains index buffer, going to convert it to non-indexed.`),n=Qt.convertGeometryWithIndexedToNonIndexed(n),e.userData.batches&&e.userData.batches.length>0)){se.debug("[DxfLoader] This line has been merged!");let t=0;e.userData.batches.forEach((e=>{e.positionStart=t,e.positionCount=e.indexCount,e.indexStart=0,e.indexCount=0,t+=e.positionCount}))}if(null===n.index){let r=n.attributes.position;if(!r||0===r.count)return;let a=[];if(t)for(let e=0,t=r.count;e{let t=e;t.isLine&&t.material instanceof ln&&Zn.computeLineDistance(t)})),se.debug(`[DxfLoader] Computed line distances in ${(Date.now()-t)/1e3}s`)}static mergeDxfObjects(e){let t=Date.now(),n={},i={},r=0,a=0,s=()=>{let e=Date.now();for(let t in n){let e=n[t];Zn.removeEmptyObjectsFromRemovingMarkedObjects2(e.children,e.object),e.children=[]}r=0,a+=Date.now()-e};for(let l in e.layersAndObjects){let t=e.layersAndObjects[l];if(t.length<=1)continue;let o=Date.now(),h={},c=[];for(let e of t){if(e.userData.isSnapObject){c.push(e);continue}let t,n=e;for(;n;){if(n.userData.isLayoutLevelObject){t=n;break}n=n.parent}if(!t)continue;let i=t.name;h[i]||(h[i]={object:t,children:[]}),h[i].children.push(e)}for(let e in h){let t=h[e],o=Lc.deepMerge(t.children,t.object,!1,!1,!0),l=o.added,u=o.removed;n[e]||(n[e]={object:t.object,children:[]}),i[e]||(i[e]={object:t.object,children:[]});let d=u.length>15e3;if(d){let e=Date.now();Zn.removeEmptyObjectsFromRemovingMarkedObjects2(u,t.object),a+=Date.now()-e}else r+=u.length;if(u.length===t.children.length)d||u.forEach((t=>{n[e].children.push(t)}));else{let i=u;u.length>=100&&(i=new Set(u));let r=e=>Array.isArray(i)?i.indexOf(e)>=0:i.has(e);for(let a=0;a15e3&&s()}e.layersAndObjects[l]=c,se.debug(`[DxfLoader] Merged layer '${l}' in ${(Date.now()-o)/1e3}s`)}r>0&&s();for(let l in i){let t=i[l];e.root.children.find((e=>e.name===l))||e.root.add(t.object),t.children.forEach((e=>{t.object.add(e)})),t.children=[]}se.debug(`[DxfLoader] MergeUtils.deepMerge costed ${Ar.mergeInfo.elapsedTime/1e3}s`),se.debug(`[DxfLoader] The remove operation of deep merge costed ${a/1e3}s`),se.debug(`[DxfLoader] Deep merge totally costed ${(Date.now()-t)/1e3}s`);let o=Ar.mergeInfo;se.debug(`[DxfLoader] Totally merged ${o.removedObjects} objects to ${o.mergedMeshes} meshes, ${o.mergedLines} lines, ${o.mergedPoints} points, ${o.mergedUnknownTypeObjects?o.mergedUnknownTypeObjects+" unknown type,":""} `)}static merge(e,t){return ft(this,null,(function*(){let n=Mt.getUpdateProgressFuncAsync(t),i={};e.objects.LAYOUT.forEach((e=>{var t;let n=e;i[n.layoutName]=n,null==(t=n.directAssociatedLeafObjectSet)||t.clear()}));let r=Date.now(),a={},s={},o=0,l=0,h=()=>{let e=Date.now();for(let t in a){let e=a[t];Zn.removeEmptyObjectsFromRemovingMarkedObjects(e.children,e.object),e.children=[]}o=0,l+=Date.now()-e},c=Object.keys(e.layersAndThreejsObjects).length,u=0;for(let t in e.layersAndThreejsObjects){let r=e.layersAndThreejsObjects[t];if(r.length<=1){yield n(++u/c*100);continue}let d=Date.now(),p={},f=[];for(let e of r){if(e.userData.isSnapObject){f.push(e);continue}let t,n=e;for(;n;){if(n.userData.isLayoutLevelObject){t=n;break}n=n.parent}if(!t)continue;let i=t.name;p[i]||(p[i]={object:t,children:[]}),p[i].children.push(e)}let m=Object.keys(p).length,g=0;for(let e in p){let t;if(e!==Zn.MODEL_LAYOUT_NAME){let n=i[e];n.directAssociatedLeafObjectSet||(n.directAssociatedLeafObjectSet=new Set),t=n.directAssociatedLeafObjectSet}let r=p[e],d=Ar.deepMerge(r.children,r.object,!1,!1,!0),v=d.added,y=d.removed;a[e]||(a[e]={object:r.object,children:[]}),s[e]||(s[e]={object:r.object,children:[]});let x=y.length>15e3;if(x){let e=Date.now();Zn.removeEmptyObjectsFromRemovingMarkedObjects(y,r.object),l+=Date.now()-e}else o+=y.length;if(y.length===r.children.length)x||y.forEach((t=>{a[e].children.push(t)}));else{let n=y;y.length>=100&&(n=new Set(y));let i=e=>Array.isArray(n)?n.indexOf(e)>=0:n.has(e);for(let s=0;s15e3&&h(),yield n((u+ ++g/m)/c*100)}yield n(++u/c*100),e.layersAndThreejsObjects[t]=f,se.debug(`[DxfLoader] Merged layer '${t}' in ${(Date.now()-d)/1e3}s`)}o>0&&h();for(let t in s){let n=s[t],r=e.threejsObject.children.find((e=>e.name===t));if(r){let e=r.children.find((e=>e.name===Zn.SNAP_GROUP_NAME));if(e&&t!==Zn.MODEL_LAYOUT_NAME){let n=i[t];n.directAssociatedLeafObjectSet||(n.directAssociatedLeafObjectSet=new Set),e.children.forEach((e=>{var t;return null==(t=n.directAssociatedLeafObjectSet)?void 0:t.add(e)}))}}r||e.threejsObject.add(n.object),n.children.forEach((e=>{e.visible||(e.userData.layerVisible=!1),n.object.add(e),e.updateWorldMatrix(!1,!1)})),n.children=[]}se.debug(`[DxfLoader] MergeUtils.deepMerge costed ${Ar.mergeInfo.elapsedTime/1e3}s`),se.debug(`[DxfLoader] The remove operation of deep merge costed ${l/1e3}s`),se.debug(`[DxfLoader] Deep merge totally costed ${(Date.now()-r)/1e3}s`);let d=Ar.mergeInfo;se.debug(`[DxfLoader] Totally merged ${d.removedObjects} objects to ${d.mergedMeshes} meshes, ${d.mergedLines} lines, ${d.mergedPoints} points, ${d.mergedUnknownTypeObjects?d.mergedUnknownTypeObjects+" unknown type,":""} `),n(100)}))}printStatsInfo(){for(let n in this.entityTypesAndTimes)this.entityTypesAndTimes[n].averageTime=this.entityTypesAndTimes[n].totalTime/this.entityTypesAndTimes[n].createCount;se.debug("[DxfLoader] Entity types and cost times in ms:",this.entityTypesAndTimes),se.debug("[DxfLoader] Entity types and mesh count:",this.statsInfo.entityTypesAndMeshCount);let e=0;if(Object.values(this.statsInfo.entityTypesAndMeshCount).forEach((t=>{e+=t})),this.enableRTC&&se.debug(`[DxfLoader] Totally rebased ${this.statsInfo.rebasedEntityCount}(out of ${e}) entities`),this.enableMerge){let e=Ar.mergeInfo;se.debug(`[DxfLoader] Inner merged ${e.removedObjects} objects to ${e.mergedMeshes} meshes, ${e.mergedLines} lines, ${e.mergedPoints} points, ${e.mergedUnknownTypeObjects?e.mergedUnknownTypeObjects+" unknown type,":""} in ${e.elapsedTime/1e3}s`)}let t=(e,t,...n)=>{Object.keys(t).length};t(0,this.statsInfo.unsupportedEntityTypes),t(0,this.statsInfo.unsupportedTextStyles),t(0,this.statsInfo.unsupportedHatchPatterns),this.statsInfo.unsupportedPolylineCount&&se.warn(`[DxfLoader] Unsupported polyline (with both width and linetype) count: ${this.statsInfo.unsupportedPolylineCount}, linetype will be ignored.`),t(0,this.statsInfo.invisibleEntities),t(0,this.statsInfo.ignoredFrozenLayersAndEntityCount),t(0,this.statsInfo.ignoredInserts),this.ignorePaperSpace&&t(0,this.statsInfo.ignoredPaperSpaceEntityTypesAndCount),this.font&&t(0,this.font.getUnsupportedChar())}static statLayoutAndLayerObjects(e){let t=new WeakSet,n=0;for(let a in e.layersAndThreejsObjects)e.layersAndThreejsObjects[a].forEach((e=>{e.geometry&&(n++,t.has(e)?console.warn(e):t.add(e))}));let i=new WeakSet,r=0;if(e.threejsObject.traverse((e=>{e.geometry&&(r++,i.has(e)?console.warn(e):i.add(e))})),n!=r)for(let a in e.layersAndThreejsObjects)e.layersAndThreejsObjects[a].forEach((e=>{e.geometry&&(i.has(e)||console.warn(e))}));se.info(`[DxfLoader] The count of layer objects is ${n},The count of layout objects is ${r} `)}static removeEmptyObjectsFromRemovingMarkedObjects(e,t){if(0===e.length)return;let n=e=>{let i=[];for(let n of e){n.userData.validCount=0;let e=n.parent;e&&e!==t&&(void 0===e.userData.validCount&&(e.userData.validCount=e.children.length),0==--e.userData.validCount&&i.push(e))}i.length>0&&n(i)};n(e),this.removeEmptyObjectsFromMark(t)}static removeEmptyObjectsFromMark(e){if(0===e.userData.validCount||Hn.isEmptyObject(e))return e.removeFromParent(),!0;for(let t=0;t{let i=[];for(let n of e){n.userData.validCount=0;let e=n.parent;e&&e!==t&&(void 0===e.userData.validCount&&(e.userData.validCount=e.children.length),0==--e.userData.validCount&&i.push(e))}i.length>0&&n(i)};n(e),this.removeEmptyObjectsFromMark2(t)}static removeEmptyObjectsFromMark2(e){if(0===e.userData.validCount||0===e.type&&0===e.children.length)return e.removeFromParent(),!0;for(let t=0;tt.visible=e)),this.viewer.enableRender()}};function _a(e){return(_a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function zl(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function k6(e,t){if("object"!==_a(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!==_a(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function l_(e){var t=k6(e,"string");return"symbol"===_a(t)?t:String(t)}function h0e(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,i=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:{};zl(this,e),this.init(t,n)}return Gl(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||r0t,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n1?t-1:0),i=1;i-1?e.replace(/###/g,"."):e}function r(){return!e||"string"==typeof e}for(var a="string"!=typeof t?[].concat(t):t.split(".");a.length>1;){if(r())return{};var s=i(a.shift());!e[s]&&n&&(e[s]=new n),e=Object.prototype.hasOwnProperty.call(e,s)?e[s]:{}}return r()?{}:{obj:e,k:i(a.shift())}}function m0e(e,t,n){var i=z6(e,t,Object);i.obj[i.k]=n}function a0t(e,t,n,i){var r=z6(e,t,Object),a=r.obj,s=r.k;a[s]=a[s]||[],i&&(a[s]=a[s].concat(n)),i||a[s].push(n)}function JC(e,t){var n=z6(e,t),i=n.obj,r=n.k;if(i)return i[r]}function g0e(e,t,n){var i=JC(e,n);return void 0!==i?i:JC(t,n)}function A0e(e,t,n){for(var i in t)"__proto__"!==i&&"constructor"!==i&&(i in e?"string"==typeof e[i]||e[i]instanceof String||"string"==typeof t[i]||t[i]instanceof String?n&&(e[i]=t[i]):A0e(e[i],t[i],n):e[i]=t[i]);return e}function My(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var o0t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function l0t(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return o0t[e]})):e}var eP="undefined"!=typeof window&&window.navigator&&void 0===window.navigator.userAgentData&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,c0t=[" ",",","?","!",";"];function u0t(e,t,n){t=t||"",n=n||"";var i=c0t.filter((function(e){return t.indexOf(e)<0&&n.indexOf(e)<0}));if(0===i.length)return!0;var r=new RegExp("(".concat(i.map((function(e){return"?"===e?"\\?":e})).join("|"),")")),a=!r.test(e);if(!a){var s=e.indexOf(n);s>0&&!r.test(e.substring(0,s))&&(a=!0)}return a}function v0e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function ZC(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var i=t.split(n),r=e,a=0;aa+s;)s++,l=r[o=i.slice(a,a+s).join(n)];if(void 0===l)return;if(null===l)return null;if(t.endsWith(o)){if("string"==typeof l)return l;if(o&&"string"==typeof l[o])return l[o]}var h=i.slice(a+s).join(n);return h?C0e(l,h,n):void 0}r=r[i[a]]}return r}}var f0t=function(e){Sy(n,zf);var t=h0t(n);function n(e){var i,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return zl(this,n),i=t.call(this),eP&&zf.call(Hc(i)),i.data=e||{},i.options=r,void 0===i.options.keySeparator&&(i.options.keySeparator="."),void 0===i.options.ignoreJSONStructure&&(i.options.ignoreJSONStructure=!0),i}return Gl(n,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,a=void 0!==i.ignoreJSONStructure?i.ignoreJSONStructure:this.options.ignoreJSONStructure,s=[e,t];n&&"string"!=typeof n&&(s=s.concat(n)),n&&"string"==typeof n&&(s=s.concat(r?n.split(r):n)),e.indexOf(".")>-1&&(s=e.split("."));var o=JC(this.data,s);return o||!a||"string"!=typeof n?o:C0e(this.data&&this.data[e]&&this.data[e][t],n,r)}},{key:"addResource",value:function(e,t,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var s=[e,t];n&&(s=s.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(i=t,t=(s=e.split("."))[1]),this.addNamespaces(t),m0e(this.data,s,i),r.silent||this.emit("added",e,t,n,i)}},{key:"addResources",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var r in n)("string"==typeof n[r]||"[object Array]"===Object.prototype.toString.apply(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});i.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,i,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},s=[e,t];e.indexOf(".")>-1&&(i=n,n=t,t=(s=e.split("."))[1]),this.addNamespaces(t);var o=JC(this.data,s)||{};i?A0e(o,n,r):o=ZC(ZC({},o),n),m0e(this.data,s,o),a.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?ZC(ZC({},{}),this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"hasLanguageSomeTranslations",value:function(e){var t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find((function(e){return t[e]&&Object.keys(t[e]).length>0}))}},{key:"toJSON",value:function(){return this.data}}]),n}(),P0e={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,i,r){var a=this;return e.forEach((function(e){a.processors[e]&&(t=a.processors[e].process(t,n,i,r))})),t}};function y0e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function Xa(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return zl(this,n),i=t.call(this),eP&&zf.call(Hc(i)),s0t(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,Hc(i)),i.options=r,void 0===i.options.keySeparator&&(i.options.keySeparator="."),i.logger=Qu.create("translator"),i}return Gl(n,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;var n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var i=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,r=t.ns||this.options.defaultNS||[],a=n&&e.indexOf(n)>-1,s=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||u0t(e,n,i));if(a&&!s){var o=e.match(this.interpolator.nestingRegexp);if(o&&o.length>0)return{key:e,namespaces:r};var l=e.split(n);(n!==i||n===i&&this.options.ns.indexOf(l[0])>-1)&&(r=l.shift()),e=l.join(i)}return"string"==typeof r&&(r=[r]),{key:e,namespaces:r}}},{key:"translate",value:function(e,t,i){var r=this;if("object"!==_a(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var a=void 0!==t.returnDetails?t.returnDetails:this.options.returnDetails,s=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,o=this.extractFromKey(e[e.length-1],t),l=o.key,h=o.namespaces,c=h[h.length-1],u=t.lng||this.language,d=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&"cimode"===u.toLowerCase()){if(d){var p=t.nsSeparator||this.options.nsSeparator;return a?(f.res="".concat(c).concat(p).concat(l),f):"".concat(c).concat(p).concat(l)}return a?(f.res=l,f):l}var f=this.resolve(e,t),m=f&&f.res,g=f&&f.usedKey||l,v=f&&f.exactUsedKey||l,y=Object.prototype.toString.apply(m),x=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject;if(b&&m&&"string"!=typeof m&&"boolean"!=typeof m&&"number"!=typeof m&&["[object Number]","[object Function]","[object RegExp]"].indexOf(y)<0&&("string"!=typeof x||"[object Array]"!==y)){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var _=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,m,Xa(Xa({},t),{},{ns:h})):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");return a?(f.res=_,f):_}if(s){var w="[object Array]"===y,S=w?[]:{},M=w?v:g;for(var T in m)if(Object.prototype.hasOwnProperty.call(m,T)){var E="".concat(M).concat(s).concat(T);S[T]=this.translate(E,Xa(Xa({},t),{joinArrays:!1,ns:h})),S[T]===E&&(S[T]=m[T])}m=S}}else if(b&&"string"==typeof x&&"[object Array]"===y)(m=m.join(x))&&(m=this.extendTranslation(m,e,t,i));else{var A=!1,C=!1,P=void 0!==t.count&&"string"!=typeof t.count,R=n.hasDefaultValue(t),O=P?this.pluralResolver.getSuffix(u,t.count,t):"",L=t["defaultValue".concat(O)]||t.defaultValue;!this.isValidLookup(m)&&R&&(A=!0,m=L),this.isValidLookup(m)||(C=!0,m=l);var I=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&C?void 0:m,D=R&&L!==m&&this.options.updateMissing;if(C||A||D){if(this.logger.log(D?"updateKey":"missingKey",u,c,l,D?L:m),s){var k=this.resolve(l,Xa(Xa({},t),{},{keySeparator:!1}));k&&k.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var N=[],F=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&F&&F[0])for(var U=0;U1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach((function(e){if(!s.isValidLookup(t)){var l=s.extractFromKey(e,o),h=l.key;n=h;var c=l.namespaces;s.options.fallbackNS&&(c=c.concat(s.options.fallbackNS));var u=void 0!==o.count&&"string"!=typeof o.count,d=u&&!o.ordinal&&0===o.count&&s.pluralResolver.shouldUseIntlApi(),p=void 0!==o.context&&("string"==typeof o.context||"number"==typeof o.context)&&""!==o.context,f=o.lngs?o.lngs:s.languageUtils.toResolveHierarchy(o.lng||s.language,o.fallbackLng);c.forEach((function(e){s.isValidLookup(t)||(a=e,!x0e["".concat(f[0],"-").concat(e)]&&s.utils&&s.utils.hasLoadedNamespace&&!s.utils.hasLoadedNamespace(a)&&(x0e["".concat(f[0],"-").concat(e)]=!0,s.logger.warn('key "'.concat(n,'" for languages "').concat(f.join(", "),'" won\'t get resolved as namespace "').concat(a,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach((function(n){if(!s.isValidLookup(t)){r=n;var a,l=[h];if(s.i18nFormat&&s.i18nFormat.addLookupKeys)s.i18nFormat.addLookupKeys(l,h,n,e,o);else{var c;u&&(c=s.pluralResolver.getSuffix(n,o.count,o));var f="".concat(s.options.pluralSeparator,"zero");if(u&&(l.push(h+c),d&&l.push(h+f)),p){var m="".concat(h).concat(s.options.contextSeparator).concat(o.context);l.push(m),u&&(l.push(m+c),d&&l.push(m+f))}}for(;a=l.pop();)s.isValidLookup(t)||(i=a,t=s.getResource(n,e,a,o))}})))}))}})),{res:t,usedKey:n,exactUsedKey:i,usedLng:r,usedNS:a}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,i):this.resourceStore.getResource(e,t,n,i)}}],[{key:"hasDefaultValue",value:function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&"defaultValue"===t.substring(0,12)&&void 0!==e[t])return!0;return!1}}]),n}();function V6(e){return e.charAt(0).toUpperCase()+e.slice(1)}var g0t=function(){function e(t){zl(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Qu.create("languageUtils")}return Gl(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length||(t.pop(),"x"===t[t.length-1].toLowerCase())?null:this.formatLanguageCode(t.join("-"))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map((function(e){return e.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=V6(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=V6(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=V6(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach((function(e){if(!t){var i=n.formatLanguageCode(e);(!n.options.supportedLngs||n.isSupportedCode(i))&&(t=i)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var i=n.getLanguagePartFromCode(e);if(n.isSupportedCode(i))return t=i;t=n.options.supportedLngs.find((function(e){if(0===e.indexOf(i))return e}))}})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,i=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],a=function(e){e&&(n.isSupportedCode(e)?r.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&a(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&a(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&a(this.getLanguagePartFromCode(e))):"string"==typeof e&&a(this.formatLanguageCode(e)),i.forEach((function(e){r.indexOf(e)<0&&a(n.formatLanguageCode(e))})),r}}]),e}(),v0t=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],y0t={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}},x0t=["v1","v2","v3"],E0e={zero:0,one:1,two:2,few:3,many:4,other:5};function b0t(){var e={};return v0t.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:y0t[t.fc]}}))})),e}var E0t=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};zl(this,e),this.languageUtils=t,this.options=n,this.logger=Qu.create("pluralResolver"),(!this.options.compatibilityJSON||"v4"===this.options.compatibilityJSON)&&("undefined"==typeof Intl||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=b0t()}return Gl(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(e,{type:t.ordinal?"ordinal":"cardinal"})}catch(e){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,n).map((function(e){return"".concat(t).concat(e)}))}},{key:"getSuffixes",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.getRule(e,n);return i?this.shouldUseIntlApi()?i.resolvedOptions().pluralCategories.sort((function(e,t){return E0e[e]-E0e[t]})).map((function(e){return"".concat(t.options.prepend).concat(e)})):i.numbers.map((function(i){return t.getSuffix(e,i,n)})):[]}},{key:"getSuffix",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.getRule(e,n);return i?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(i.select(t)):this.getSuffixRetroCompatible(i,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var n=this,i=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),r=e.numbers[i];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var a=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?"_plural_".concat(r.toString()):a():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?a():this.options.prepend&&i.toString()?this.options.prepend+i.toString():i.toString()}},{key:"shouldUseIntlApi",value:function(){return!x0t.includes(this.options.compatibilityJSON)}}]),e}();function _0e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function Vc(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};zl(this,e),this.logger=Qu.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return Gl(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:l0t,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?My(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?My(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?My(t.nestingPrefix):t.nestingPrefixEscaped||My("$t("),this.nestingSuffix=t.nestingSuffix?My(t.nestingSuffix):t.nestingSuffixEscaped||My(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,i){var r,a,s,o=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function h(e){return e.replace(/\$/g,"$$$$")}var c=function(e){if(e.indexOf(o.formatSeparator)<0){var r=g0e(t,l,e);return o.alwaysFormat?o.format(r,void 0,n,Vc(Vc(Vc({},i),t),{},{interpolationkey:e})):r}var a=e.split(o.formatSeparator),s=a.shift().trim(),h=a.join(o.formatSeparator).trim();return o.format(g0e(t,l,s),h,n,Vc(Vc(Vc({},i),t),{},{interpolationkey:s}))};this.resetRegExp();var u=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,d=i&&i.interpolation&&void 0!==i.interpolation.skipOnVariables?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return h(e)}},{regex:this.regexp,safeValue:function(e){return o.escapeValue?h(o.escape(e)):h(e)}}].forEach((function(t){for(s=0;r=t.regex.exec(e);){var n=r[1].trim();if(void 0===(a=c(n)))if("function"==typeof u){var l=u(e,r,i);a="string"==typeof l?l:""}else if(i&&i.hasOwnProperty(n))a="";else{if(d){a=r[0];continue}o.logger.warn("missed to pass in variable ".concat(n," for interpolating ").concat(e)),a=""}else"string"!=typeof a&&!o.useRawValueToEscape&&(a=p0e(a));var h=t.safeValue(a);if(e=e.replace(r[0],h),d?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=r[0].length):t.regex.lastIndex=0,++s>=o.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var n,i,r=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=Vc({},a);function o(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var i=e.split(new RegExp("".concat(n,"[ ]*{"))),r="{".concat(i[1]);e=i[0];var a=(r=this.interpolate(r,s)).match(/'/g),o=r.match(/"/g);(a&&a.length%2==0&&!o||o.length%2!=0)&&(r=r.replace(/'/g,'"'));try{s=JSON.parse(r),t&&(s=Vc(Vc({},t),s))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(n).concat(r)}return delete s.defaultValue,e}for(s.applyPostProcessor=!1,delete s.defaultValue;n=this.nestingRegexp.exec(e);){var l=[],h=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var c=n[1].split(this.formatSeparator).map((function(e){return e.trim()}));n[1]=c.shift(),l=c,h=!0}if((i=t(o.call(this,n[1].trim(),s),s))&&n[0]===e&&"string"!=typeof i)return i;"string"!=typeof i&&(i=p0e(i)),i||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),i=""),h&&(i=l.reduce((function(e,t){return r.format(e,t,a.lng,Vc(Vc({},a),{},{interpolationkey:n[1].trim()}))}),i.trim())),e=e.replace(n[0],i),this.regexp.lastIndex=0}return e}}]),e}();function T0e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function Vf(e){for(var t=1;t-1){var i=e.split("(");t=i[0].toLowerCase().trim();var r=i[1].substring(0,i[1].length-1);"currency"===t&&r.indexOf(":")<0?n.currency||(n.currency=r.trim()):"relativetime"===t&&r.indexOf(":")<0?n.range||(n.range=r.trim()):r.split(";").forEach((function(e){if(e){var t=H6(e.split(":")),i=t[0],r=t.slice(1).join(":").trim().replace(/^'+|'+$/g,"");n[i.trim()]||(n[i.trim()]=r),"false"===r&&(n[i.trim()]=!1),"true"===r&&(n[i.trim()]=!0),isNaN(r)||(n[i.trim()]=parseInt(r,10))}}))}return{formatName:t,formatOptions:n}}function Ry(e){var t={};return function(n,i,r){var a=i+JSON.stringify(r),s=t[a];return s||(s=e(i,r),t[a]=s),s(n)}}var w0t=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};zl(this,e),this.logger=Qu.create("formatter"),this.options=t,this.formats={number:Ry((function(e,t){var n=new Intl.NumberFormat(e,t);return function(e){return n.format(e)}})),currency:Ry((function(e,t){var n=new Intl.NumberFormat(e,Vf(Vf({},t),{},{style:"currency"}));return function(e){return n.format(e)}})),datetime:Ry((function(e,t){var n=new Intl.DateTimeFormat(e,Vf({},t));return function(e){return n.format(e)}})),relativetime:Ry((function(e,t){var n=new Intl.RelativeTimeFormat(e,Vf({},t));return function(e){return n.format(e,t.range||"day")}})),list:Ry((function(e,t){var n=new Intl.ListFormat(e,Vf({},t));return function(e){return n.format(e)}}))},this.init(t)}return Gl(e,[{key:"init",value:function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||","}},{key:"add",value:function(e,t){this.formats[e.toLowerCase().trim()]=t}},{key:"addCached",value:function(e,t){this.formats[e.toLowerCase().trim()]=Ry(t)}},{key:"format",value:function(e,t,n,i){var r=this;return t.split(this.formatSeparator).reduce((function(e,t){var a=T0t(t),s=a.formatName,o=a.formatOptions;if(r.formats[s]){var l=e;try{var h=i&&i.formatParams&&i.formatParams[i.interpolationkey]||{},c=h.locale||h.lng||i.locale||i.lng||n;l=r.formats[s](e,c,Vf(Vf(Vf({},o),i),h))}catch(e){r.logger.warn(e)}return l}return r.logger.warn("there was no format function for ".concat(s)),e}),e)}}]),e}();function w0e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function S0e(e){for(var t=1;t3&&void 0!==arguments[3]?arguments[3]:{};return zl(this,n),a=t.call(this),eP&&zf.call(Hc(a)),a.backend=e,a.store=i,a.services=r,a.languageUtils=r.languageUtils,a.options=s,a.logger=Qu.create("backendConnector"),a.waitingReads=[],a.maxParallelReads=s.maxParallelReads||10,a.readingCalls=0,a.maxRetries=s.maxRetries>=0?s.maxRetries:5,a.retryTimeout=s.retryTimeout>=1?s.retryTimeout:350,a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(r,s.backend,s),a}return Gl(n,[{key:"queueLoad",value:function(e,t,n,i){var r=this,a={},s={},o={},l={};return e.forEach((function(e){var i=!0;t.forEach((function(t){var o="".concat(e,"|").concat(t);!n.reload&&r.store.hasResourceBundle(e,t)?r.state[o]=2:r.state[o]<0||(1===r.state[o]?void 0===s[o]&&(s[o]=!0):(r.state[o]=1,i=!1,void 0===s[o]&&(s[o]=!0),void 0===a[o]&&(a[o]=!0),void 0===l[t]&&(l[t]=!0)))})),i||(o[e]=!0)})),(Object.keys(a).length||Object.keys(s).length)&&this.queue.push({pending:s,pendingCount:Object.keys(s).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(a),pending:Object.keys(s),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(l)}}},{key:"loaded",value:function(e,t,n){var i=e.split("|"),r=i[0],a=i[1];t&&this.emit("failedLoading",r,a,t),n&&this.store.addResourceBundle(r,a,n),this.state[e]=t?-1:2;var s={};this.queue.forEach((function(n){a0t(n.loaded,[r],a),R0t(n,e),t&&n.errors.push(t),0===n.pendingCount&&!n.done&&(Object.keys(n.loaded).forEach((function(e){s[e]||(s[e]={});var t=n.loaded[e];t.length&&t.forEach((function(t){void 0===s[e][t]&&(s[e][t]=!0)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",s),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function(e,t,n){var i=this,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,s=arguments.length>5?arguments[5]:void 0;return e.length?this.readingCalls>=this.maxParallelReads?void this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:a,callback:s}):(this.readingCalls++,this.backend[n](e,t,(function(o,l){if(i.readingCalls--,i.waitingReads.length>0){var h=i.waitingReads.shift();i.read(h.lng,h.ns,h.fcName,h.tried,h.wait,h.callback)}o&&l&&r2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var a=this.queueLoad(e,t,i,r);if(!a.toLoad.length)return a.pending.length||r(),null;a.toLoad.forEach((function(e){n.loadOne(e)}))}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=e.split("|"),r=i[0],a=i[1];this.read(r,a,"read",void 0,void 0,(function(i,s){i&&t.logger.warn("".concat(n,"loading namespace ").concat(a," for language ").concat(r," failed"),i),!i&&s&&t.logger.log("".concat(n,"loaded namespace ").concat(a," for language ").concat(r),s),t.loaded(e,i,s)}))}},{key:"saveMissing",value:function(e,t,n,i,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)?this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null==n||""===n||(this.backend&&this.backend.create&&this.backend.create(e,t,n,i,null,S0e(S0e({},a),{},{isUpdate:r})),e&&e[0]&&this.store.addResource(e[0],t,n,i))}}]),n}();function C0t(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===_a(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===_a(e[2])||"object"===_a(e[3])){var n=e[3]||e[2];Object.keys(n).forEach((function(e){t[e]=n[e]}))}return t},interpolation:{escapeValue:!0,format:function(e,t,n,i){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function M0e(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function R0e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function Ju(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(zl(this,n),e=t.call(this),eP&&zf.call(Hc(e)),e.options=M0e(i),e.services={},e.logger=Qu,e.modules={external:[]},L0t(Hc(e)),r&&!e.isInitialized&&!i.isClone){if(!e.options.initImmediate)return e.init(i,r),Qm(e,Hc(e));setTimeout((function(){e.init(i,r)}),0)}return e}return Gl(n,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;"function"==typeof t&&(n=t,t={}),!t.defaultNS&&!1!==t.defaultNS&&t.ns&&("string"==typeof t.ns?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));var i=C0t();function r(e){return e?"function"==typeof e?new e:e:null}if(this.options=Ju(Ju(Ju({},i),this.options),M0e(t)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=Ju(Ju({},i.interpolation),this.options.interpolation)),void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator),!this.options.isClone){var a;this.modules.logger?Qu.init(r(this.modules.logger),this.options):Qu.init(null,this.options),this.modules.formatter?a=this.modules.formatter:"undefined"!=typeof Intl&&(a=w0t);var s=new g0t(this.options);this.store=new f0t(this.options.resources,this.options);var o=this.services;o.logger=Qu,o.resourceStore=this.store,o.languageUtils=s,o.pluralResolver=new E0t(s,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(o.formatter=r(a),o.formatter.init(o,this.options),this.options.interpolation.format=o.formatter.format.bind(o.formatter)),o.interpolator=new _0t(this.options),o.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},o.backendConnector=new A0t(r(this.modules.backend),o.resourceStore,o,this.options),o.backendConnector.on("*",(function(t){for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1?n-1:0),r=1;r0&&"dev"!==l[0]&&(this.options.lng=l[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}})),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments),e}}));var h=u_(),c=function(){var t=function(t,i){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),h.resolve(i),n(t,i)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?c():setTimeout(c,0),h}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:KC,i="string"==typeof e?e:this.language;if("function"==typeof e&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(i&&"cimode"===i.toLowerCase())return n();var r=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){r.indexOf(e)<0&&r.push(e)}))};i?a(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((function(e){return a(e)})),this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(r,this.options.ns,(function(e){!e&&!t.resolvedLanguage&&t.language&&t.setResolvedLanguage(t.language),n(e)}))}else n(null)}},{key:"reloadResources",value:function(e,t,n){var i=u_();return e||(e=this.languages),t||(t=this.options.ns),n||(n=KC),this.services.backendConnector.reload(e,t,(function(e){i.resolve(),n(e)})),i}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&P0e.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"setResolvedLanguage",value:function(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(var t=0;t-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var i=u_();this.emit("languageChanging",e);var r=function(e){n.language=e,n.languages=n.services.languageUtils.toResolveHierarchy(e),n.resolvedLanguage=void 0,n.setResolvedLanguage(e)},a=function(a){!e&&!a&&n.services.languageDetector&&(a=[]);var s="string"==typeof a?a:n.services.languageUtils.getBestMatchFromCodes(a);s&&(n.language||r(s),n.translator.language||n.translator.changeLanguage(s),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(s)),n.loadResources(s,(function(e){!function(e,a){a?(r(a),n.translator.changeLanguage(a),n.isLanguageChangingTo=void 0,n.emit("languageChanged",a),n.logger.log("languageChanged",a)):n.isLanguageChangingTo=void 0,i.resolve((function(){return n.t.apply(n,arguments)})),t&&t(e,(function(){return n.t.apply(n,arguments)}))}(e,s)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(a):a(e):a(this.services.languageDetector.detect()),i}},{key:"getFixedT",value:function(e,t,n){var i=this,r=function e(t,r){var a;if("object"!==_a(r)){for(var s=arguments.length,o=new Array(s>2?s-2:0),l=2;l1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var i=this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===i.toLowerCase())return!0;var s=function(e,n){var i=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===i||2===i};if(n.precheck){var o=n.precheck(this,s);if(void 0!==o)return o}return!!(this.hasResourceBundle(i,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||s(i,e)&&(!r||s(a,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,i=u_();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),this.loadResources((function(e){i.resolve(),t&&t(e)})),i):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=u_();"string"==typeof e&&(e=[e]);var i=this.options.preload||[],r=e.filter((function(e){return i.indexOf(e)<0}));return r.length?(this.options.preload=i.concat(r),this.loadResources((function(e){n.resolve(),t&&t(e)})),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){return e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),e?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr":"rtl"}},{key:"cloneInstance",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:KC,r=Ju(Ju(Ju({},this.options),t),{isClone:!0}),a=new n(r);return(void 0!==t.debug||void 0!==t.prefix)&&(a.logger=a.logger.clone(t)),["store","services","language"].forEach((function(t){a[t]=e[t]})),a.services=Ju({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new b0e(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}));var Ya=QC.createInstance();Ya.createInstance=QC.createInstance;var Xqt=Ya.createInstance,Yqt=Ya.init,$qt=Ya.loadResources,Zqt=Ya.reloadResources,Kqt=Ya.use,Jqt=Ya.changeLanguage,Qqt=Ya.getFixedT,eh=Ya.t,e9t=Ya.exists,t9t=Ya.setDefaultNamespace,n9t=Ya.hasLoadedNamespace,r9t=Ya.loadNamespaces,i9t=Ya.loadLanguages,eg=Ya,Gf=class{constructor(e){this.progresseItems=[],this.element=document.createElement("div"),this.element.classList.add("progress-bar"),e.appendChild(this.element)}setVisibility(e){this.element&&(e?this.element.classList.remove("hidden"):this.element.classList.add("hidden"))}addProgressItem(e,t){let n=this.progresseItems.find((t=>t.id===e));if(!n){let i=document.createElement("div");i.classList.add("progress-bar-item"),i.innerHTML=t||"",this.element.append(i),n={id:e,div:i},this.progresseItems.push(n)}this.setVisibility(!0)}updateProgress(e,t,n){let i=this.progresseItems.find((t=>t.id===e));if(!i)return;let r=t?`${t}`:"";t&&null!=n&&(r+=": "),null!=n&&(n<0||n>100?(console.warn(`[ProgressBar] Invalid progress value: ${n}`),r+="--%"):r+=`${n.toFixed(2)}%`),i.div.innerHTML=r}removeProgressItem(e){let t=this.progresseItems.find((t=>t.id===e));t&&t.div.remove(),0===this.progresseItems.length&&this.setVisibility(!1)}delayRemoveProgressItem(e,t=3e3){setTimeout((()=>{this.removeProgressItem(e)}),t)}};function Ay(e){return{all:e=e||new Map,on:function(t,n){var i=e.get(t);i?i.push(n):e.set(t,[n])},off:function(t,n){var i=e.get(t);i&&(n?i.splice(i.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var i=e.get(t);i&&i.slice().map((function(e){e(n)})),(i=e.get("*"))&&i.slice().map((function(e){e(t,n)}))}}}var tP=class{constructor(e){this.viewer=e,this.itemList={},this.handleMouseWheel=e=>{e.preventDefault(),this.element&&(this.element.scrollLeft+=e.deltaY)},e.addEventListener("ModelLoaded",(()=>{this.init()}))}init(){var e;let t=document.createElement("div");t.classList.add("model-layout-switch-bar");let n=document.createElement("div");n.classList.add("model-layout-switch-bar-content"),n.addEventListener("wheel",this.handleMouseWheel),this.viewer.getLayoutNames().forEach(((e,t)=>{let i=this.createItem(e,t);this.itemList[e]=i,i.resetActivate=()=>{for(let e in this.itemList)this.itemList[e].resetActive()},null==n||n.appendChild(i.element)})),this.element=t,this.content=n,this.element.appendChild(this.content),null==(e=this.viewer.widgetContainer)||e.appendChild(this.element)}createItem(e,t){let n=new G6(this.viewer,e);return 0===t&&n.setActive(!0),n}destroy(){var e,t;for(let n in this.itemList){let t=this.itemList[n];t.destroy(),null==(e=this.content)||e.removeChild(t.element)}this.itemList={},this.element&&this.content&&(this.element.removeChild(this.content),this.element.removeEventListener("wheel",this.handleMouseWheel),null==(t=this.viewer.widgetContainer)||t.removeChild(this.element),this.element=void 0)}show(){this.element&&(this.element.style.display="block")}hide(){this.element&&(this.element.style.display="none")}},G6=class{constructor(e,t){this.viewer=e,this.eventBus=Ay(),this.active=!1,this.element=this.createItem(t),this.eventBus.on("activechange",(e=>{this.resetActivate&&this.resetActivate(),e?(this.element.classList.add("activate"),this.viewer.activateLayout(t)):this.element.classList.remove("activate")}))}createItem(e){let t=document.createElement("div"),n=document.createElement("span");return t.classList.add("model-layout-switch-item"),t.onclick=()=>{this.active=!this.active,this.eventBus.emit("activechange",this.active)},n.innerText=e,t.appendChild(n),t}setActive(e){this.active!==e&&(this.active=e,this.eventBus.emit("activechange",e))}resetActive(){this.active=!1,this.element.classList.remove("activate")}destroy(){this.eventBus.off("activechange")}},nP=class{constructor(e,t){this.flyDuration=500,this.autoRotateRemainingTime=0,this.automaticallyAdjustCameraPosition=!0,this.rotateIntervalStartTime=0,this.camera=e,this.controls=t}flyTo(e,t,n){let i=this.camera,r=this.controls;if(!i||!r)return;if(e.equals(t))return void console.error("[Controls] camera position and lookAt cannot be the same!");if(isNaN(e.x)||isNaN(e.y)||isNaN(e.z)||isNaN(t.x)||isNaN(t.y)||isNaN(t.z))return void console.error("[Controls] invalid position or lookAt!");if(this.automaticallyAdjustCameraPosition){let n=e.distanceTo(t);ni.far&&(e=e.clone().sub(t).normalize().multiplyScalar(.9*i.far),console.warn("[Controls] camera could be too far to see the object!"))}let a=i.position.clone(),s=r.target.clone(),o=this.flyDuration,l=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval((()=>{let h=Date.now()-l;h>o&&(h=o);let c=(e,t,n)=>{let i=e.x+(t.x-e.x)*n,r=e.y+(t.y-e.y)*n,a=e.z+(t.z-e.z)*n;return new O(i,r,a)};((e,t)=>{i.lookAt(t),i.position.set(e.x,e.y,e.z),r.target.set(t.x,t.y,t.z),r.update()})(c(a,e,h/o),c(s,t,h/o)),h>=o&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0,n&&n())}),10)}lookTo(e){let t=this.camera,n=this.controls;if(!t||!n)return;let i=t.position,r=n.target.distanceTo(i),a=e.normalize().multiplyScalar(r),s=new O(i.x+a.x,i.y+a.y,i.z+a.z);this.flyTo(i,s)}startAutoRotate(){let e=this.camera,t=this.controls;if(!e||!t)return;t.autoRotate=!0;let n=new O;e.getWorldPosition(n);let i=t.target;if(i.y===n.y)return;let r=(i.y-n.y)/50;for(let a=0;a<50;++a)setTimeout((()=>{let e=t.target.y-r;t.target.setY(e),t.update()}),30*a)}delayAutoRotate(){this.autoRotateRemainingTime=5e3,this.controls&&(this.controls.autoRotate=!1)}startToRotate(e){let t=Date.now()-this.rotateIntervalStartTime;this.rotateIntervalStartTime=Date.now(),!(this.rotateInterval&&t<100)&&(this.rotateInterval&&clearInterval(this.rotateInterval),this.rotateInterval=setInterval((()=>{if(Date.now()-this.rotateIntervalStartTime>=100)return clearInterval(this.rotateInterval),void(this.rotateInterval=void 0);"ArrowLeft"===e.code||"ArrowRight"===e.code?this.rotateLeftOrRight(.3,"ArrowLeft"===e.code):("ArrowUp"===e.code||"ArrowDown"===e.code)&&this.rotateUpOrDown(.3,"ArrowUp"===e.code)}),1))}rotateLeftOrRight(e,t=!0){let n=this.controls;if(!this.camera||!n)return;let i=this.camera.position,r=n.target,a=r.clone(),s=Math.PI*e/180;t&&(s=-s),a.x=(r.x-i.x)*Math.cos(s)-(r.z-i.z)*Math.sin(s)+i.x,a.z=(r.z-i.z)*Math.cos(s)+(r.x-i.x)*Math.sin(s)+i.z,this.camera.lookAt(a),n.target=a,n.update()}rotateUpOrDown(e,t=!0){let n=this.controls;if(!this.camera||!n)return;let i=this.camera.position,r=n.target,a=r.clone(),s=Math.PI*e/180,o=new O(r.x-i.x,r.y-i.y,r.z-i.z).length(),l=r.y-i.y;t||(s=-s);let h=Math.asin(l/o)+s;if(h<-Math.PI/2||h>Math.PI/2)return;let c=Math.sin(h)*o;a.y=r.y+(c-l),n.target=a,n.update()}},I0e=class{constructor(e){this.object=e}instantiate(){let e=Date.now();this.instantiateInner(this.object),console.log(`[Inst] instantiate() costed ${(Date.now()-e)/1e3}s`)}instantiateInner(e){if(!e.children||0===e.children.length)return;let t=e.children.length,n={},i=[];for(let s=0;s0||!t.geometry)continue;let r=!1,a=Object.values(n);for(let o=a.length-1;o>=0;--o){let l=a[o].indexes[0],h=e.children[l];if(this.geometryEquals(t.geometry,h.geometry)&&es.materialsEquals(t.material,h.material)){n[l]||(n[l]={indexes:[l]},this.removeFromArray(i,l)),n[l].indexes.push(s),r=!0;break}}for(let o=i.length-1;!r&&o>=0;--o){let a=i[o],l=e.children[a];if(this.geometryEquals(t.geometry,l.geometry)&&es.materialsEquals(t.material,l.material)){n[a]||(n[a]={indexes:[a]},this.removeFromArray(i,a)),n[a].indexes.push(s),r=!0;break}}r||i.push(s)}if(Object.keys(n).length<=0)return;let r=[],a=[];Object.values(n).forEach((t=>{let n=t.indexes;a.push(...n);let i=e.children[n[0]],s=i.material;if(s instanceof yr)s=s.clone();else if(Array.isArray(s)){let e=[];s.forEach((t=>e.push(t.clone()))),s=e}let o=new Pi(i.geometry,s,n.length);o.name=`[Instanced] ${i.name}`;for(let r=0;rt-e)),a.forEach((t=>e.remove(e.children[t]))),r.forEach((t=>{t.parent=e,e.children.push(t)})),e.updateMatrix(),console.log(`[Inst] ${a.length}(out of ${t}) objects instanced to ${r.length} InstancedMesh`)}removeFromArray(e,t){for(let n=e.length-1;n>=0;--n)if(e[n]===t)return void e.splice(n,1)}geometryEquals(e,t){return Qt.geometryEquals(e,t)}},qf=class{constructor(){this.TIMEOUT="timeout",this.INTERVAL="interval",this.timeoutMap={},this.intervalMap={}}run(e=this.INTERVAL,t,n=16.7){let i=Date.now,r=i(),a=r,s=Symbol(""),o=()=>{this.setIdMap(s,e,o),a=i(),a-r>=n&&(e===this.intervalMap&&(r=i(),a=r),t(),e===this.TIMEOUT&&this.clearTimeout(s))};return this.setIdMap(s,e,o),s}setIdMap(e,t,n){let i=requestAnimationFrame(n);t===this.INTERVAL?this.intervalMap[e]=i:t===this.TIMEOUT&&(this.timeoutMap[e]=i)}setTimeout(e,t){return this.run(this.TIMEOUT,e,t)}clearTimeout(e){cancelAnimationFrame(this.timeoutMap[e])}setInterval(e,t){return this.run(this.INTERVAL,e,t)}clearInterval(e){cancelAnimationFrame(this.intervalMap[e])}},h_=class extends Tm{constructor(e){super(e)}parse(e){if(e.length<19)throw new Error("THREE.TGALoader: Not enough data to contain header.");let t=0,n=new Uint8Array(e),i={id_length:n[t++],colormap_type:n[t++],image_type:n[t++],colormap_index:n[t++]|n[t++]<<8,colormap_length:n[t++]|n[t++]<<8,colormap_size:n[t++],origin:[n[t++]|n[t++]<<8,n[t++]|n[t++]<<8],width:n[t++]|n[t++]<<8,height:n[t++]|n[t++]<<8,pixel_size:n[t++],flags:n[t++]};if(function(e){switch(e.image_type){case 1:case 9:if(e.colormap_length>256||24!==e.colormap_size||1!==e.colormap_type)throw new Error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case 2:case 3:case 10:case 11:if(e.colormap_type)throw new Error("THREE.TGALoader: Invalid type colormap data for colormap type.");break;case 0:throw new Error("THREE.TGALoader: No data.");default:throw new Error("THREE.TGALoader: Invalid type "+e.image_type)}if(e.width<=0||e.height<=0)throw new Error("THREE.TGALoader: Invalid image size.");if(8!==e.pixel_size&&16!==e.pixel_size&&24!==e.pixel_size&&32!==e.pixel_size)throw new Error("THREE.TGALoader: Invalid pixel size "+e.pixel_size)}(i),i.id_length+t>e.length)throw new Error("THREE.TGALoader: No data.");t+=i.id_length;let r=!1,a=!1,s=!1;switch(i.image_type){case 9:r=!0,a=!0;break;case 1:a=!0;break;case 10:r=!0;break;case 2:break;case 11:r=!0,s=!0;break;case 3:s=!0}let o=new Uint8Array(i.width*i.height*4),l=function(e,t,n,i,r){let a,s,o=n.pixel_size>>3,l=n.width*n.height*o;if(t&&(s=r.subarray(i,i+=n.colormap_length*(n.colormap_size>>3))),e){a=new Uint8Array(l);let e,t,n,s=0,h=new Uint8Array(o);for(;s>4){default:case 2:o=0,h=1,u=t,l=0,c=1,d=n;break;case 0:o=0,h=1,u=t,l=n-1,c=-1,d=-1;break;case 3:o=t-1,h=-1,u=-1,l=0,c=1,d=n;break;case 1:o=t-1,h=-1,u=-1,l=n-1,c=-1,d=-1}if(s)switch(i.pixel_size){case 8:!function(e,t,n,r,a,s,o,l){let h,c,u,d=0,p=i.width;for(u=t;u!==r;u+=n)for(c=a;c!==o;c+=s,d++)h=l[d],e[4*(c+p*u)+0]=h,e[4*(c+p*u)+1]=h,e[4*(c+p*u)+2]=h,e[4*(c+p*u)+3]=255}(e,l,c,d,o,h,u,r);break;case 16:!function(e,t,n,r,a,s,o,l){let h,c,u=0,d=i.width;for(c=t;c!==r;c+=n)for(h=a;h!==o;h+=s,u+=2)e[4*(h+d*c)+0]=l[u+0],e[4*(h+d*c)+1]=l[u+0],e[4*(h+d*c)+2]=l[u+0],e[4*(h+d*c)+3]=l[u+1]}(e,l,c,d,o,h,u,r);break;default:throw new Error("THREE.TGALoader: Format not supported.")}else switch(i.pixel_size){case 8:!function(e,t,n,r,a,s,o,l,h){let c,u,d,p=h,f=0,m=i.width;for(d=t;d!==r;d+=n)for(u=a;u!==o;u+=s,f++)c=l[f],e[4*(u+m*d)+3]=255,e[4*(u+m*d)+2]=p[3*c+0],e[4*(u+m*d)+1]=p[3*c+1],e[4*(u+m*d)+0]=p[3*c+2]}(e,l,c,d,o,h,u,r,a);break;case 16:!function(e,t,n,r,a,s,o,l){let h,c,u,d=0,p=i.width;for(u=t;u!==r;u+=n)for(c=a;c!==o;c+=s,d+=2)h=l[d+0]+(l[d+1]<<8),e[4*(c+p*u)+0]=(31744&h)>>7,e[4*(c+p*u)+1]=(992&h)>>2,e[4*(c+p*u)+2]=(31&h)<<3,e[4*(c+p*u)+3]=32768&h?0:255}(e,l,c,d,o,h,u,r);break;case 24:!function(e,t,n,r,a,s,o,l){let h,c,u=0,d=i.width;for(c=t;c!==r;c+=n)for(h=a;h!==o;h+=s,u+=3)e[4*(h+d*c)+3]=255,e[4*(h+d*c)+2]=l[u+0],e[4*(h+d*c)+1]=l[u+1],e[4*(h+d*c)+0]=l[u+2]}(e,l,c,d,o,h,u,r);break;case 32:!function(e,t,n,r,a,s,o,l){let h,c,u=0,d=i.width;for(c=t;c!==r;c+=n)for(h=a;h!==o;h+=s,u+=4)e[4*(h+d*c)+2]=l[u+0],e[4*(h+d*c)+1]=l[u+1],e[4*(h+d*c)+0]=l[u+2],e[4*(h+d*c)+3]=l[u+3]}(e,l,c,d,o,h,u,r);break;default:throw new Error("THREE.TGALoader: Format not supported.")}}(o,i.width,i.height,l.pixel_data,l.palettes),{data:o,width:i.width,height:i.height,flipY:!0,generateMipmaps:!0,minFilter:Ua}}},rP=class extends Er{constructor(e){super(e)}load(e,t,n,i){let r=this,a=""===r.path?ra.extractUrlBase(e):r.path,s=new Kr(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(e,(function(n){try{t(r.parse(n,a))}catch(t){i?i(t):console.error(t),r.manager.itemError(e)}}),n,i)}parse(e,t){function n(e,t){let n=[],i=e.childNodes;for(let r=0,a=i.length;r0&&t.push(new qa(i+".position",r,a)),s.length>0&&t.push(new Ga(i+".quaternion",r,s)),o.length>0&&t.push(new qa(i+".scale",r,o)),t}function b(e,t,n){let i,r,a,s=!0;for(r=0,a=e.length;r=0;){let i=e[t];if(null!==i.value[n])return i;t--}return null}function w(e,t,n){for(;t>>0));return t="tga"===(n=n.toLowerCase(),n)?qe:Xe,t}(r);if(void 0!==n){let i=n.load(r),a=e.extra;if(void 0!==a&&void 0!==a.technique&&!1===o(a.technique)){let e=a.technique;i.wrapS=e.wrapU?Ci:Ai,i.wrapT=e.wrapV?Ci:Ai,i.offset.set(e.offsetU||0,e.offsetV||0),i.repeat.set(e.repeatU||1,e.repeatV||1)}else i.wrapS=Ci,i.wrapT=Ci;return null!==t&&(i.colorSpace=t),i}return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",r),null}return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",e.id),null}t.name=e.name||"";let a=i.parameters;for(let o in a){let e=a[o];switch(o){case"diffuse":e.color&&t.color.fromArray(e.color),e.texture&&(t.map=r(e.texture,tn));break;case"specular":e.color&&t.specular&&t.specular.fromArray(e.color),e.texture&&(t.specularMap=r(e.texture));break;case"bump":e.texture&&(t.normalMap=r(e.texture));break;case"ambient":e.texture&&(t.lightMap=r(e.texture,tn));break;case"shininess":e.float&&t.shininess&&(t.shininess=e.float);break;case"emission":e.color&&t.emissive&&t.emissive.fromArray(e.color),e.texture&&(t.emissiveMap=r(e.texture,tn))}}t.color.convertSRGBToLinear(),t.specular&&t.specular.convertSRGBToLinear(),t.emissive&&t.emissive.convertSRGBToLinear();let s=a.transparent,l=a.transparency;if(void 0===l&&s&&(l={float:1}),void 0===s&&l&&(s={opaque:"A_ONE",data:{color:[1,1,1,1]}}),s&&l)if(s.data.texture)t.transparent=!0;else{let e=s.data.color;switch(s.opaque){case"A_ONE":t.opacity=e[3]*l.float;break;case"RGB_ZERO":t.opacity=1-e[0]*l.float;break;case"A_ZERO":t.opacity=1-e[3]*l.float;break;case"RGB_ONE":t.opacity=e[0]*l.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',s.opaque)}t.opacity<1&&(t.transparent=!0)}if(void 0!==i.extra&&void 0!==i.extra.technique){let e=i.extra.technique;for(let n in e){let i=e[n];switch(n){case"double_sided":t.side=1===i?Sr:pi;break;case"bump":t.normalMap=r(i.texture),t.normalScale=new be(1,1)}}}return t}function J(e){return c(Qe.materials[e],q)}function Z(e){for(let t=0;t0?n+o:n;t.inputs[l]={id:e,offset:r},t.stride=Math.max(t.stride,r+1),"TEXCOORD"===n&&(t.hasUV=!0);break;case"vcount":t.vcount=a(i.textContent);break;case"p":t.p=a(i.textContent)}}return t}function le(e){let t=0;for(let n=0,i=e.length;n0&&t0&&u.setAttribute("position",new Bt(r.array,r.stride)),a.array.length>0&&u.setAttribute("normal",new Bt(a.array,a.stride)),l.array.length>0&&u.setAttribute("color",new Bt(l.array,l.stride)),s.array.length>0&&u.setAttribute("uv",new Bt(s.array,s.stride)),o.array.length>0&&u.setAttribute("uv1",new Bt(o.array,o.stride)),h.length>0&&u.setAttribute("skinIndex",new Bt(h,4)),c.length>0&&u.setAttribute("skinWeight",new Bt(c,4)),i.data=u,i.type=e[0].type,i.materialKeys=d,i}function ue(e,t,n,i,r=!1){let a=e.p,s=e.stride,o=e.vcount;function l(e){let t=a[e+n]*c,s=t+c;for(;t4)for(let t=1,i=n-2;t<=i;t++){let n=e+s*t,i=e+s*(t+1);l(e+0*s),l(n),l(i)}e+=s*n}}else for(let u=0,d=a.length;u=t.limits.max&&(t.static=!0),t.middlePosition=(t.limits.min+t.limits.max)/2,t}function ve(e){let t={sid:e.getAttribute("sid"),name:e.getAttribute("name")||"",attachments:[],transforms:[]};for(let n=0;ni.limits.max||t{this.parse(e,t,i)}),n,i)}parse(e,t,n){this.decodeDracoFile(e,t,null,null,tn).catch(n)}decodeDracoFile(e,t,n,i,r=Ha){let a={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!n,vertexColorSpace:r};return this.decodeGeometry(e,a).then(t)}decodeGeometry(e,t){let n=JSON.stringify(t);if(q6.has(e)){let t=q6.get(e);if(t.key===n)return t.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let i,r=this.workerNextTaskID++,a=e.byteLength,s=this._getWorker(r,a).then((n=>(i=n,new Promise(((n,a)=>{i._callbacks[r]={resolve:n,reject:a},i.postMessage({type:"decode",id:r,taskConfig:t,buffer:e},[e])}))))).then((e=>this._createGeometry(e.geometry)));return s.catch((()=>!0)).then((()=>{i&&r&&this._releaseTask(i,r)})),q6.set(e,{key:n,promise:s}),s}_createGeometry(e){let t=new Dt;e.index&&t.setIndex(new mn(e.index.array,1));for(let n=0;n{n.load(e,t,void 0,i)}))}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then((t=>{let n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);let i=D0t.toString(),r=["/* draco decoder */",n,"","/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([r]))})),this.decoderPending}_getWorker(e,t){return this._initDecoder().then((()=>{if(this.workerPool.lengtht._taskLoad?-1:1}));let n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n}))}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))}dispose(){for(let e=0;e{let t=e.draco,s=new t.Decoder;try{let e=function(e,t,i,r){let a,s,o=r.attributeIDs,l=r.attributeTypes,h=t.GetEncodedGeometryType(i);if(h===e.TRIANGULAR_MESH)a=new e.Mesh,s=t.DecodeArrayToMesh(i,i.byteLength,a);else{if(h!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");a=new e.PointCloud,s=t.DecodeArrayToPointCloud(i,i.byteLength,a)}if(!s.ok()||0===a.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+s.error_msg());let c={index:null,attributes:[]};for(let u in o){let i,s,h=self[l[u]];if(r.useUniqueIDs)s=o[u],i=t.GetAttributeByUniqueId(a,s);else{if(s=t.GetAttributeId(a,e[o[u]]),-1===s)continue;i=t.GetAttribute(a,s)}let d=n(e,t,a,u,h,i);"color"===u&&(d.vertexColorSpace=r.vertexColorSpace),c.attributes.push(d)}return h===e.TRIANGULAR_MESH&&(c.index=function(e,t,n){let i=3*n.num_faces(),r=4*i,a=e._malloc(r);t.GetTrianglesUInt32Array(n,r,a);let s=new Uint32Array(e.HEAPF32.buffer,a,i).slice();return e._free(a),{array:s,itemSize:1}}(e,t,a)),e.destroy(a),c}(t,s,new Int8Array(i),a),o=e.attributes.map((e=>e.array.buffer));e.index&&o.push(e.index.array.buffer),self.postMessage({type:"decode",id:r.id,geometry:e},o)}catch(e){console.error(e),self.postMessage({type:"error",id:r.id,error:e.message})}finally{t.destroy(s)}}))}}}var L0e=function(e){return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))},O0t=function(e){return new Worker(e)};try{URL.revokeObjectURL(L0e(""))}catch(e){L0e=function(e){return"data:application/javascript;charset=UTF-8,"+encodeURI(e)},O0t=function(e){return new Worker(e,{type:"module"})}}var Wl=Uint8Array,Wf=Uint16Array,X6=Uint32Array,D0e=new Wl([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),O0e=new Wl([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),k0t=new Wl([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),k0e=function(e,t){for(var n=new Wf(31),i=0;i<31;++i)n[i]=t+=1<>>1|(21845&hi)<<1,hd=(52428&hd)>>>2|(13107&hd)<<2,hd=(61680&hd)>>>4|(3855&hd)<<4,Y6[hi]=((65280&hd)>>>8|(255&hd)<<8)>>>1;var hd,hi,d_=function(e,t,n){for(var i=e.length,r=0,a=new Wf(t);r>>l]=h}else for(s=new Wf(i),r=0;r>>15-e[r]);return s},f_=new Wl(288),hi,hi,hi;for(hi=0;hi<144;++hi)f_[hi]=8;for(hi=144;hi<256;++hi)f_[hi]=9;for(hi=256;hi<280;++hi)f_[hi]=7;for(hi=280;hi<288;++hi)f_[hi]=8;var hi,U0e=new Wl(32),hi;for(hi=0;hi<32;++hi)U0e[hi]=5;var B0t=d_(f_,9,1),U0t=d_(U0e,5,1),W6=function(e){for(var t=e[0],n=1;nt&&(t=e[n]);return t},zc=function(e,t,n){var i=t/8|0;return(e[i]|e[i+1]<<8)>>(7&t)&n},j6=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},H0t=function(e){return(e/8|0)+(7&e&&1)},V0t=function(e,t,n){(null==t||t<0)&&(t=0),(null==n||n>e.length)&&(n=e.length);var i=new(e instanceof Wf?Wf:e instanceof X6?X6:Wl)(n-t);return i.set(e.subarray(t,n)),i},z0t=function(e,t,n){var i=e.length;if(!i||n&&!n.l&&i<5)return t||new Wl(0);var r=!t||n,a=!n||n.i;n||(n={}),t||(t=new Wl(3*i));var s=function(e){var n=t.length;if(e>n){var i=new Wl(Math.max(2*n,e));i.set(t),t=i}},o=n.f||0,l=n.p||0,h=n.b||0,c=n.l,u=n.d,d=n.m,p=n.n,f=8*i;do{if(!c){n.f=o=zc(e,l,1);var m=zc(e,l+1,3);if(l+=3,!m){var g=e[(A=H0t(l)+4)-4]|e[A-3]<<8,v=A+g;if(v>i){if(a)throw"unexpected EOF";break}r&&s(h+g),t.set(e.subarray(A,v),h),n.b=h+=g,n.p=l=8*v;continue}if(1==m)c=B0t,u=U0t,d=9,p=5;else{if(2!=m)throw"invalid block type";var y=zc(e,l,31)+257,x=zc(e,l+10,15)+4,b=y+zc(e,l+5,31)+1;l+=14;for(var _=new Wl(b),w=new Wl(19),S=0;S>>4)<16)_[S++]=A;else{var P=0,R=0;for(16==A?(R=3+zc(e,l,3),l+=2,P=_[S-1]):17==A?(R=3+zc(e,l,7),l+=3):18==A&&(R=11+zc(e,l,127),l+=7);R--;)_[S++]=P}}var O=_.subarray(0,y),L=_.subarray(y);d=W6(O),p=W6(L),c=d_(O,d,1),u=d_(L,p,1)}if(l>f){if(a)throw"unexpected EOF";break}}r&&s(h+131072);for(var I=(1<>>4;if((l+=15&P)>f){if(a)throw"unexpected EOF";break}if(!P)throw"invalid length/literal";if(N<256)t[h++]=N;else{if(256==N){k=l,c=null;break}var F=N-254;if(N>264){var U=D0e[S=N-257];F=zc(e,l,(1<>>4;if(!B)throw"invalid distance";if(l+=15&B,L=N0t[z],z>3&&(U=O0e[z],L+=j6(e,l)&(1<f){if(a)throw"unexpected EOF";break}r&&s(h+131072);for(var H=h+F;h>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function H0e(e,t){return z0t((q0t(e),e.subarray(2,-4)),t)}var W0t="undefined"!=typeof TextDecoder&&new TextDecoder,j0t=0;try{W0t.decode(G0t,{stream:!0}),j0t=1}catch(e){}function V0e(e,t,n){let i=n.length-e-1;if(t>=n[i])return i-1;if(t<=n[e])return e;let r=e,a=i,s=Math.floor((r+a)/2);for(;t=n[s+1];)t=a&&(r[t][0]=r[e][0]/o[h+1][l],i=r[t][0]*o[l][h]);let c=u-1<=h?a-1:n-u;for(let n=l>=-1?1:-l;n<=c;++n)r[t][n]=(r[e][n]-r[e][n-1])/o[h+1][l+n],i+=r[t][n]*o[l+n][h];u<=h&&(r[t][a]=-r[e][a-1]/o[h+1][u],i+=r[t][a]*o[u][h]),s[a][u]=i;let d=e;e=t,t=d}}let c=n;for(let u=1;u<=i;++u){for(let e=0;e<=n;++e)s[u][e]*=c;c*=n-u}return s}function Z0t(e,t,n,i,r){let a=r0,a="string"==typeof r.Content&&""!==r.Content;if(e||a){let e=this.parseImage(n[i]);t[r.RelativeFilename||r.Filename]=e}}}}for(let n in e){let i=e[n];void 0!==t[i]?e[n]=t[i]:e[n]=e[n].split("\\").pop()}return e}parseImage(e){let t,n=e.Content,i=e.RelativeFilename||e.Filename,r=i.slice(i.lastIndexOf(".")+1).toLowerCase();switch(r){case"bmp":t="image/bmp";break;case"jpg":case"jpeg":t="image/jpeg";break;case"png":t="image/png";break;case"tif":t="image/tiff";break;case"tga":null===this.manager.getHandler(".tga")&&console.warn("FBXLoader: TGA loader not found, skipping ",i),t="image/tga";break;default:return void console.warn('FBXLoader: Image type "'+r+'" is not supported.')}if("string"==typeof n)return"data:"+t+";base64,"+n;{let e=new Uint8Array(n);return window.URL.createObjectURL(new Blob([e],{type:t}))}}parseTextures(e){let t=new Map;if("Texture"in Lr.Objects){let n=Lr.Objects.Texture;for(let i in n){let r=this.parseTexture(n[i],e);t.set(parseInt(i),r)}}return t}parseTexture(e,t){let n=this.loadTexture(e,t);n.ID=e.id,n.name=e.attrName;let i=e.WrapModeU,r=e.WrapModeV,a=void 0!==i?i.value:0,s=void 0!==r?r.value:0;if(n.wrapS=0===a?Ci:Ai,n.wrapT=0===s?Ci:Ai,"Scaling"in e){let t=e.Scaling.value;n.repeat.x=t[0],n.repeat.y=t[1]}if("Translation"in e){let t=e.Translation.value;n.offset.x=t[0],n.offset.y=t[1]}return n}loadTexture(e,t){let n,i=this.textureLoader.path,r=xs.get(e.id).children;void 0!==r&&r.length>0&&void 0!==t[r[0].ID]&&(n=t[r[0].ID],(0===n.indexOf("blob:")||0===n.indexOf("data:"))&&this.textureLoader.setPath(void 0));let a,s=e.FileName.slice(-3).toLowerCase();if("tga"===s){let t=this.manager.getHandler(".tga");null===t?(console.warn("FBXLoader: TGA loader not found, creating placeholder texture for",e.RelativeFilename),a=new qr):(t.setPath(this.textureLoader.path),a=t.load(n))}else"psd"===s?(console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for",e.RelativeFilename),a=new qr):a=this.textureLoader.load(n);return this.textureLoader.setPath(i),a}parseMaterials(e){let t=new Map;if("Material"in Lr.Objects){let n=Lr.Objects.Material;for(let i in n){let r=this.parseMaterial(n[i],e);null!==r&&t.set(parseInt(i),r)}}return t}parseMaterial(e,t){let n=e.id,i=e.attrName,r=e.ShadingModel;if("object"==typeof r&&(r=r.value),!xs.has(n))return null;let a,s=this.parseParameters(e,t,n);switch(r.toLowerCase()){case"phong":a=new na;break;case"lambert":a=new Pu;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',r),a=new na}return a.setValues(s),a.name=i,a}parseParameters(e,t,n){let i={};e.BumpFactor&&(i.bumpScale=e.BumpFactor.value),e.Diffuse?i.color=(new ct).fromArray(e.Diffuse.value).convertSRGBToLinear():e.DiffuseColor&&("Color"===e.DiffuseColor.type||"ColorRGB"===e.DiffuseColor.type)&&(i.color=(new ct).fromArray(e.DiffuseColor.value).convertSRGBToLinear()),e.DisplacementFactor&&(i.displacementScale=e.DisplacementFactor.value),e.Emissive?i.emissive=(new ct).fromArray(e.Emissive.value).convertSRGBToLinear():e.EmissiveColor&&("Color"===e.EmissiveColor.type||"ColorRGB"===e.EmissiveColor.type)&&(i.emissive=(new ct).fromArray(e.EmissiveColor.value).convertSRGBToLinear()),e.EmissiveFactor&&(i.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),e.Opacity&&(i.opacity=parseFloat(e.Opacity.value)),i.opacity<1&&(i.transparent=!0),e.ReflectionFactor&&(i.reflectivity=e.ReflectionFactor.value),e.Shininess&&(i.shininess=e.Shininess.value),e.Specular?i.specular=(new ct).fromArray(e.Specular.value).convertSRGBToLinear():e.SpecularColor&&"Color"===e.SpecularColor.type&&(i.specular=(new ct).fromArray(e.SpecularColor.value).convertSRGBToLinear());let r=this;return xs.get(n).children.forEach((function(e){let n=e.relationship;switch(n){case"Bump":i.bumpMap=r.getTexture(t,e.ID);break;case"Maya|TEX_ao_map":i.aoMap=r.getTexture(t,e.ID);break;case"DiffuseColor":case"Maya|TEX_color_map":i.map=r.getTexture(t,e.ID),void 0!==i.map&&(i.map.colorSpace=tn);break;case"DisplacementColor":i.displacementMap=r.getTexture(t,e.ID);break;case"EmissiveColor":i.emissiveMap=r.getTexture(t,e.ID),void 0!==i.emissiveMap&&(i.emissiveMap.colorSpace=tn);break;case"NormalMap":case"Maya|TEX_normal_map":i.normalMap=r.getTexture(t,e.ID);break;case"ReflectionColor":i.envMap=r.getTexture(t,e.ID),void 0!==i.envMap&&(i.envMap.mapping=fm,i.envMap.colorSpace=tn);break;case"SpecularColor":i.specularMap=r.getTexture(t,e.ID),void 0!==i.specularMap&&(i.specularMap.colorSpace=tn);break;case"TransparentColor":case"TransparencyFactor":i.alphaMap=r.getTexture(t,e.ID),i.transparent=!0;break;default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",n)}})),i}getTexture(e,t){return"LayeredTexture"in Lr.Objects&&t in Lr.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),t=xs.get(t).children[0].ID),e.get(t)}parseDeformers(){let e={},t={};if("Deformer"in Lr.Objects){let n=Lr.Objects.Deformer;for(let i in n){let r=n[i],a=xs.get(parseInt(i));if("Skin"===r.attrType){let t=this.parseSkeleton(a,n);t.ID=i,a.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),t.geometryID=a.parents[0].ID,e[i]=t}else if("BlendShape"===r.attrType){let e={id:i};e.rawTargets=this.parseMorphTargets(a,n),e.id=i,a.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),t[i]=e}}}return{skeletons:e,morphTargets:t}}parseSkeleton(e,t){let n=[];return e.children.forEach((function(e){let i=t[e.ID];if("Cluster"!==i.attrType)return;let r={ID:e.ID,indices:[],weights:[],transformLink:(new et).fromArray(i.TransformLink.a)};"Indexes"in i&&(r.indices=i.Indexes.a,r.weights=i.Weights.a),n.push(r)})),{rawBones:n,bones:[]}}parseMorphTargets(e,t){let n=[];for(let i=0;i1?a=s:s.length>0?a=s[0]:(a=new na({name:Er.DEFAULT_MATERIAL_NAME,color:13421772}),s.push(a)),"color"in r.attributes&&s.forEach((function(e){e.vertexColors=!0})),r.FBX_Deformer?(i=new Su(r,a),i.normalizeSkinWeights()):i=new xt(r,a),i}createCurve(e,t){let n=e.children.reduce((function(e,n){return t.has(n.ID)&&(e=t.get(n.ID)),e}),null),i=new Gn({name:Er.DEFAULT_MATERIAL_NAME,color:3342591,linewidth:1});return new hr(n,i)}getTransformData(e,t){let n={};"InheritType"in t&&(n.inheritType=parseInt(t.InheritType.value)),n.eulerOrder="RotationOrder"in t?X0e(t.RotationOrder.value):"ZYX","Lcl_Translation"in t&&(n.translation=t.Lcl_Translation.value),"PreRotation"in t&&(n.preRotation=t.PreRotation.value),"Lcl_Rotation"in t&&(n.rotation=t.Lcl_Rotation.value),"PostRotation"in t&&(n.postRotation=t.PostRotation.value),"Lcl_Scaling"in t&&(n.scale=t.Lcl_Scaling.value),"ScalingOffset"in t&&(n.scalingOffset=t.ScalingOffset.value),"ScalingPivot"in t&&(n.scalingPivot=t.ScalingPivot.value),"RotationOffset"in t&&(n.rotationOffset=t.RotationOffset.value),"RotationPivot"in t&&(n.rotationPivot=t.RotationPivot.value),e.userData.transformData=n}setLookAtProperties(e,t){"LookAtProperty"in t&&xs.get(e.ID).children.forEach((function(t){if("LookAtProperty"===t.relationship){let n=Lr.Objects.Model[t.ID];if("Lcl_Translation"in n){let t=n.Lcl_Translation.value;void 0!==e.target?(e.target.position.fromArray(t),To.add(e.target)):e.lookAt((new O).fromArray(t))}}}))}bindSkeleton(e,t,n){let i=this.parsePoseNodes();for(let r in e){let a=e[r];xs.get(parseInt(a.ID)).parents.forEach((function(e){if(t.has(e.ID)){let t=e.ID;xs.get(t).parents.forEach((function(e){n.has(e.ID)&&n.get(e.ID).bind(new Rl(a.bones),i[e.ID])}))}}))}}parsePoseNodes(){let e={};if("Pose"in Lr.Objects){let t=Lr.Objects.Pose;for(let n in t)if("BindPose"===t[n].attrType&&t[n].NbPoseNodes>0){let i=t[n].PoseNode;Array.isArray(i)?i.forEach((function(t){e[t.Node]=(new et).fromArray(t.Matrix.a)})):e[i.Node]=(new et).fromArray(i.Matrix.a)}}return e}createAmbientLight(){if("GlobalSettings"in Lr&&"AmbientColor"in Lr.GlobalSettings){let e=Lr.GlobalSettings.AmbientColor.value,t=e[0],n=e[1],i=e[2];if(0!==t||0!==n||0!==i){let e=new ct(t,n,i).convertSRGBToLinear();To.add(new Pl(e,1))}}}},J6=class{constructor(){this.negativeMaterialIndices=!1}parse(e){let t=new Map;if("Geometry"in Lr.Objects){let n=Lr.Objects.Geometry;for(let i in n){let r=xs.get(parseInt(i)),a=this.parseGeometry(r,n[i],e);t.set(parseInt(i),a)}}return!0===this.negativeMaterialIndices&&console.warn("THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected."),t}parseGeometry(e,t,n){switch(t.attrType){case"Mesh":return this.parseMeshGeometry(e,t,n);case"NurbsCurve":return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,n){let i=n.skeletons,r=[],a=e.parents.map((function(e){return Lr.Objects.Model[e.ID]}));if(0===a.length)return;let s=e.children.reduce((function(e,t){return void 0!==i[t.ID]&&(e=i[t.ID]),e}),null);e.children.forEach((function(e){void 0!==n.morphTargets[e.ID]&&r.push(n.morphTargets[e.ID])}));let o=a[0],l={};"RotationOrder"in o&&(l.eulerOrder=X0e(o.RotationOrder.value)),"InheritType"in o&&(l.inheritType=parseInt(o.InheritType.value)),"GeometricTranslation"in o&&(l.translation=o.GeometricTranslation.value),"GeometricRotation"in o&&(l.rotation=o.GeometricRotation.value),"GeometricScaling"in o&&(l.scale=o.GeometricScaling.value);let h=j0e(l);return this.genGeometry(t,s,r,h)}genGeometry(e,t,n,i){let r=new Dt;e.attrName&&(r.name=e.attrName);let a=this.parseGeoNode(e,t),s=this.genBuffers(a),o=new Bt(s.vertex,3);if(o.applyMatrix4(i),r.setAttribute("position",o),s.colors.length>0&&r.setAttribute("color",new Bt(s.colors,3)),t&&(r.setAttribute("skinIndex",new pm(s.weightsIndices,4)),r.setAttribute("skinWeight",new Bt(s.vertexWeights,4)),r.FBX_Deformer=t),s.normal.length>0){let e=(new Ln).getNormalMatrix(i),t=new Bt(s.normal,3);t.applyNormalMatrix(e),r.setAttribute("normal",t)}if(s.uvs.forEach((function(e,t){let n=0===t?"uv":`uv${t}`;r.setAttribute(n,new Bt(s.uvs[t],2))})),a.material&&"AllSame"!==a.material.mappingType){let e=s.materialIndex[0],t=0;if(s.materialIndex.forEach((function(n,i){n!==e&&(r.addGroup(t,i-t,e),e=n,t=i)})),r.groups.length>0){let t=r.groups[r.groups.length-1],n=t.start+t.count;n!==s.materialIndex.length&&r.addGroup(n,s.materialIndex.length-n,e)}0===r.groups.length&&r.addGroup(0,s.materialIndex.length,s.materialIndex[0])}return this.addMorphTargets(r,e,n,i),r}parseGeoNode(e,t){let n={};if(n.vertexPositions=void 0!==e.Vertices?e.Vertices.a:[],n.vertexIndices=void 0!==e.PolygonVertexIndex?e.PolygonVertexIndex.a:[],e.LayerElementColor&&(n.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(n.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(n.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){n.uv=[];let t=0;for(;e.LayerElementUV[t];)e.LayerElementUV[t].UV&&n.uv.push(this.parseUVs(e.LayerElementUV[t])),t++}return n.weightTable={},null!==t&&(n.skeleton=t,t.rawBones.forEach((function(e,t){e.indices.forEach((function(i,r){void 0===n.weightTable[i]&&(n.weightTable[i]=[]),n.weightTable[i].push({id:t,weight:e.weights[r]})}))}))),n}genBuffers(e){let t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},n=0,i=0,r=!1,a=[],s=[],o=[],l=[],h=[],c=[],u=this;return e.vertexIndices.forEach((function(d,p){let f,m=!1;d<0&&(d^=-1,m=!0);let g=[],v=[];if(a.push(3*d,3*d+1,3*d+2),e.color){let t=aP(p,n,d,e.color);o.push(t[0],t[1],t[2])}if(e.skeleton){if(void 0!==e.weightTable[d]&&e.weightTable[d].forEach((function(e){v.push(e.weight),g.push(e.id)})),v.length>4){r||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),r=!0);let e=[0,0,0,0],t=[0,0,0,0];v.forEach((function(n,i){let r=n,a=g[i];t.forEach((function(t,n,i){if(r>t){i[n]=r,r=t;let s=e[n];e[n]=a,a=s}}))})),g=e,v=t}for(;v.length<4;)v.push(0),g.push(0);for(let e=0;e<4;++e)h.push(v[e]),c.push(g[e])}if(e.normal){let t=aP(p,n,d,e.normal);s.push(t[0],t[1],t[2])}e.material&&"AllSame"!==e.material.mappingType&&(f=aP(p,n,d,e.material)[0],f<0&&(u.negativeMaterialIndices=!0,f=0)),e.uv&&e.uv.forEach((function(e,t){let i=aP(p,n,d,e);void 0===l[t]&&(l[t]=[]),l[t].push(i[0]),l[t].push(i[1])})),i++,m&&(i>4&&console.warn("THREE.FBXLoader: Polygons with more than four sides are not supported. Make sure to triangulate the geometry during export."),u.genFace(t,e,a,f,s,o,l,h,c,i),n++,i=0,a=[],s=[],o=[],l=[],h=[],c=[])})),t}genFace(e,t,n,i,r,a,s,o,l,h){for(let c=2;c1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");let a=e.get(r[0].ID);n[i]={name:t[i].attrName,layer:a}}return n}addClip(e){let t=[],n=this;return e.layer.forEach((function(e){t=t.concat(n.generateTracks(e))})),new po(e.name,-1,t)}generateTracks(e){let t=[],n=new O,i=new dr,r=new O;if(e.transform&&e.transform.decompose(n,i,r),n=n.toArray(),i=(new Xn).setFromQuaternion(i,e.eulerOrder).toArray(),r=r.toArray(),void 0!==e.T&&Object.keys(e.T.curves).length>0){let i=this.generateVectorTrack(e.modelName,e.T.curves,n,"position");void 0!==i&&t.push(i)}if(void 0!==e.R&&Object.keys(e.R.curves).length>0){let n=this.generateRotationTrack(e.modelName,e.R.curves,i,e.preRotation,e.postRotation,e.eulerOrder);void 0!==n&&t.push(n)}if(void 0!==e.S&&Object.keys(e.S.curves).length>0){let n=this.generateVectorTrack(e.modelName,e.S.curves,r,"scale");void 0!==n&&t.push(n)}if(void 0!==e.DeformPercent){let n=this.generateMorphTrack(e);void 0!==n&&t.push(n)}return t}generateVectorTrack(e,t,n,i){let r=this.getTimesForAllAxes(t),a=this.getKeyframeTrackValues(r,t,n);return new qa(e+"."+i,r,a)}generateRotationTrack(e,t,n,i,r,a){void 0!==t.x&&(this.interpolateRotations(t.x),t.x.values=t.x.values.map(An.degToRad)),void 0!==t.y&&(this.interpolateRotations(t.y),t.y.values=t.y.values.map(An.degToRad)),void 0!==t.z&&(this.interpolateRotations(t.z),t.z.values=t.z.values.map(An.degToRad));let s=this.getTimesForAllAxes(t),o=this.getKeyframeTrackValues(s,t,n);void 0!==i&&((i=i.map(An.degToRad)).push(a),i=(new Xn).fromArray(i),i=(new dr).setFromEuler(i)),void 0!==r&&((r=r.map(An.degToRad)).push(a),r=(new Xn).fromArray(r),r=(new dr).setFromEuler(r).invert());let l=new dr,h=new Xn,c=[];for(let u=0;u1){let e=1,n=t[0];for(let i=1;i=180){let a=r/180,s=i/a,o=n+s,l=e.times[t-1],h=(e.times[t]-l)/a,c=l+h,u=[],d=[];for(;c1&&(n=e[1].replace(/^(\w+)::/,""),i=e[2]),{id:t,name:n,type:i}}parseNodeProperty(e,t,n){let i=t[1].replace(/^"/,"").replace(/"$/,"").trim(),r=t[2].replace(/^"/,"").replace(/"$/,"").trim();"Content"===i&&","===r&&(r=n.replace(/"/g,"").replace(/,$/,"").trim());let a=this.getCurrentNode();if("Properties70"!==a.name){if("C"===i){let e=r.split(",").slice(1),t=parseInt(e[0]),n=parseInt(e[1]),s=r.split(",").slice(3);s=s.map((function(e){return e.trim().replace(/^"/,"")})),i="connections",r=[t,n],ivt(r,s),void 0===a[i]&&(a[i]=[])}"Node"===i&&(a.id=r),i in a&&Array.isArray(a[i])?a[i].push(r):"a"!==i?a[i]=r:a.a=r,this.setCurrentProp(a,i),"a"===i&&","!==r.slice(-1)&&(a.a=Z6(r))}else this.parseNodeSpecialProperty(e,i,r)}parseNodePropertyContinued(e){let t=this.getCurrentNode();t.a+=e,","!==e.slice(-1)&&(t.a=Z6(t.a))}parseNodeSpecialProperty(e,t,n){let i=n.split('",').map((function(e){return e.trim().replace(/^\"/,"").replace(/\s/,"_")})),r=i[0],a=i[1],s=i[2],o=i[3],l=i[4];switch(a){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":l=parseFloat(l);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":l=Z6(l)}this.getPrevNode()[r]={type:a,type2:s,flag:o,value:l},this.setCurrentProp(this.getPrevNode(),r)}},t4=class{parse(e){let t=new lP(e);t.skip(23);let n=t.getUint32();if(n<6400)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+n);let i=new cP;for(;!this.endOfContent(t);){let e=this.parseNode(t,n);null!==e&&i.add(e.name,e)}return i}endOfContent(e){return e.size()%16==0?(e.getOffset()+160+16&-16)>=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){let n={},i=t>=7500?e.getUint64():e.getUint32(),r=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();let a=e.getUint8(),s=e.getString(a);if(0===i)return null;let o=[];for(let u=0;u0?o[0]:"",h=o.length>1?o[1]:"",c=o.length>2?o[2]:"";for(n.singleProperty=1===r&&e.getOffset()===i;i>e.getOffset();){let i=this.parseNode(e,t);null!==i&&this.parseSubNode(s,n,i)}return n.propertyList=o,"number"==typeof l&&(n.id=l),""!==h&&(n.attrName=h),""!==c&&(n.attrType=c),""!==s&&(n.name=s),n}parseSubNode(e,t,n){if(!0===n.singleProperty){let e=n.propertyList[0];Array.isArray(e)?(t[n.name]=n,n.a=e):t[n.name]=e}else if("Connections"===e&&"C"===n.name){let e=[];n.propertyList.forEach((function(t,n){0!==n&&e.push(t)})),void 0===t.connections&&(t.connections=[]),t.connections.push(e)}else if("Properties70"===n.name)Object.keys(n).forEach((function(e){t[e]=n[e]}));else if("Properties70"===e&&"P"===n.name){let e,i=n.propertyList[0],r=n.propertyList[1],a=n.propertyList[2],s=n.propertyList[3];0===i.indexOf("Lcl ")&&(i=i.replace("Lcl ","Lcl_")),0===r.indexOf("Lcl ")&&(r=r.replace("Lcl ","Lcl_")),e="Color"===r||"ColorRGB"===r||"Vector"===r||"Vector3D"===r||0===r.indexOf("Lcl_")?[n.propertyList[4],n.propertyList[5],n.propertyList[6]]:n.propertyList[4],t[i]={type:r,type2:a,flag:s,value:e}}else void 0===t[n.name]?"number"==typeof n.id?(t[n.name]={},t[n.name][n.id]=n):t[n.name]=n:"PoseNode"===n.name?(Array.isArray(t[n.name])||(t[n.name]=[t[n.name]]),t[n.name].push(n)):void 0===t[n.name][n.id]&&(t[n.name][n.id]=n)}parseProperty(e){let t,n=e.getString(1);switch(n){case"C":return e.getBoolean();case"D":return e.getFloat64();case"F":return e.getFloat32();case"I":return e.getInt32();case"L":return e.getInt64();case"R":return t=e.getUint32(),e.getArrayBuffer(t);case"S":return t=e.getUint32(),e.getString(t);case"Y":return e.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":let i=e.getUint32(),r=e.getUint32(),a=e.getUint32();if(0===r)switch(n){case"b":case"c":return e.getBooleanArray(i);case"d":return e.getFloat64Array(i);case"f":return e.getFloat32Array(i);case"i":return e.getInt32Array(i);case"l":return e.getInt64Array(i)}let s=H0e(new Uint8Array(e.getArrayBuffer(a))),o=new lP(s.buffer);switch(n){case"b":case"c":return o.getBooleanArray(i);case"d":return o.getFloat64Array(i);case"f":return o.getFloat32Array(i);case"i":return o.getInt32Array(i);case"l":return o.getInt64Array(i)}break;default:throw new Error("THREE.FBXLoader: Unknown property type "+n)}}},lP=class{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=void 0===t||t,this._textDecoder=new TextDecoder}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return 1==(1&this.getUint8())}getBooleanArray(e){let t=[];for(let n=0;n=0&&(n=new Uint8Array(this.dv.buffer,t,i)),this._textDecoder.decode(n)}},cP=class{add(e,t){this[e]=t}};function evt(e){return e.byteLength>=21&&"Kaydara FBX Binary \0"===Y0e(e,0,21)}function tvt(e){let t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"],n=0;function i(t){let i=e[t-1];return e=e.slice(n+t),n++,i}for(let r=0;r=2.0 are supported.")));let l=new A4(r,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let h=0;h=0&&void 0===s[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}l.setExtensions(a),l.setPlugins(s),l.parse(n,i)}parseAsync(e,t){let n=this;return new Promise((function(i,r){n.parse(e,t,i,r)}))}};function avt(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}var Xr={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"},s4=class{constructor(e){this.parser=e,this.name=Xr.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let n=0,i=t.length;n=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,r.source,a)}},v4=class{constructor(e){this.parser=e,this.name=Xr.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,i=n.json,r=i.textures[e];if(!r.extensions||!r.extensions[t])return null;let a=r.extensions[t],s=i.images[a.source],o=n.textureLoader;if(s.uri){let e=n.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then((function(r){if(r)return n.loadTextureImage(e,a.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return n.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){let t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}},y4=class{constructor(e){this.parser=e,this.name=Xr.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,i=n.json,r=i.textures[e];if(!r.extensions||!r.extensions[t])return null;let a=r.extensions[t],s=i.images[a.source],o=n.textureLoader;if(s.uri){let e=n.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then((function(r){if(r)return n.loadTextureImage(e,a.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return n.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){let t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}},x4=class{constructor(e){this.name=Xr.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){let e=n.extensions[this.name],i=this.parser.getDependency("buffer",e.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then((function(t){let n=e.byteOffset||0,i=e.byteLength||0,a=e.count,s=e.byteStride,o=new Uint8Array(t,n,i);return r.decodeGltfBufferAsync?r.decodeGltfBufferAsync(a,s,o,e.mode,e.filter).then((function(e){return e.buffer})):r.ready.then((function(){let t=new ArrayBuffer(a*s);return r.decodeGltfBuffer(new Uint8Array(t),a,s,o,e.mode,e.filter),t}))}))}return null}},b4=class{constructor(e){this.name=Xr.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||void 0===n.mesh)return null;let i=t.meshes[n.mesh];for(let o of i.primitives)if(o.mode!==jl.TRIANGLES&&o.mode!==jl.TRIANGLE_STRIP&&o.mode!==jl.TRIANGLE_FAN&&void 0!==o.mode)return null;let r=n.extensions[this.name].attributes,a=[],s={};for(let o in r)a.push(this.parser.getDependency("accessor",r[o]).then((e=>(s[o]=e,s[o]))));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then((e=>{let t=e.pop(),n=t.isGroup?t.children:[t],i=e[0].count,r=[];for(let a of n){let e=new et,t=new O,n=new dr,o=new O(1,1,1),l=new Pi(a.geometry,a.material,i);for(let r=0;r0||0===e.search(/^data\:image\/jpeg/)?"image/jpeg":e.search(/\.webp($|\?)/i)>0||0===e.search(/^data\:image\/webp/)?"image/webp":"image/png"}var pvt=new et,A4=class{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new avt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,i=!1,r=-1;"undefined"!=typeof navigator&&(n=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),i=navigator.userAgent.indexOf("Firefox")>-1,r=i?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||n||i&&r<98?this.textureLoader=new Rs(this.options.manager):this.textureLoader=new Lb(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Kr(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let n=this,i=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll((function(e){return e._markDefs&&e._markDefs()})),Promise.all(this._invokeAll((function(e){return e.beforeRoot&&e.beforeRoot()}))).then((function(){return Promise.all([n.getDependencies("scene"),n.getDependencies("animation"),n.getDependencies("camera")])})).then((function(t){let a={scene:t[0][i.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:i.asset,parser:n,userData:{}};tg(r,a,i),Xf(a,i),Promise.all(n._invokeAll((function(e){return e.afterRoot&&e.afterRoot(a)}))).then((function(){e(a)}))})).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let i=0,r=t.length;i{let n=this.associations.get(e);null!=n&&this.associations.set(t,n);for(let[i,a]of e.children.entries())r(a,t.children[i])};return r(n,i),i.name+="_instance_"+e.uses[t]++,i}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let n=0;n=2&&a.setY(t,u[e*o+1]),o>=3&&a.setZ(t,u[e*o+2]),o>=4&&a.setW(t,u[e*o+3]),o>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return a}))}loadTexture(e){let t=this.json,n=this.options,i=t.textures[e].source,r=t.images[i],a=this.textureLoader;if(r.uri){let e=n.manager.getHandler(r.uri);null!==e&&(a=e)}return this.loadTextureImage(e,i,a)}loadTextureImage(e,t,n){let i=this,r=this.json,a=r.textures[e],s=r.images[t],o=(s.uri||s.bufferView)+":"+a.sampler;if(this.textureCache[o])return this.textureCache[o];let l=this.loadImageSource(t,n).then((function(t){t.flipY=!1,t.name=a.name||s.name||"",""===t.name&&"string"==typeof s.uri&&!1===s.uri.startsWith("data:image/")&&(t.name=s.uri);let n=(r.samplers||{})[a.sampler]||{};return t.magFilter=Z0e[n.magFilter]||Ir,t.minFilter=Z0e[n.minFilter]||Ua,t.wrapS=K0e[n.wrapS]||Ci,t.wrapT=K0e[n.wrapT]||Ci,i.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[o]=l,l}loadImageSource(e,t){let n=this.json,i=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));let r=n.images[e],a=self.URL||self.webkitURL,s=r.uri||"",o=!1;if(void 0!==r.bufferView)s=this.getDependency("bufferView",r.bufferView).then((function(e){o=!0;let t=new Blob([e],{type:r.mimeType});return s=a.createObjectURL(t),s}));else if(void 0===r.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");let l=Promise.resolve(s).then((function(e){return new Promise((function(n,r){let a=n;!0===t.isImageBitmapLoader&&(a=function(e){let t=new qr(e);t.needsUpdate=!0,n(t)}),t.load(ra.resolveURL(e,i.path),a,void 0,r)}))})).then((function(e){return!0===o&&a.revokeObjectURL(s),e.userData.mimeType=r.mimeType||fvt(r.uri),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",s),e}));return this.sourceCache[e]=l,l}assignTexture(e,t,n,i){let r=this;return this.getDependency("texture",n.index).then((function(a){if(!a)return null;if(void 0!==n.texCoord&&n.texCoord>0&&((a=a.clone()).channel=n.texCoord),r.extensions[Xr.KHR_TEXTURE_TRANSFORM]){let e=void 0!==n.extensions?n.extensions[Xr.KHR_TEXTURE_TRANSFORM]:void 0;if(e){let t=r.associations.get(a);a=r.extensions[Xr.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),r.associations.set(a,t)}}return void 0!==i&&(a.colorSpace=i),e[t]=a,a}))}assignFinalMaterial(e){let t=e.geometry,n=e.material,i=void 0===t.attributes.tangent,r=void 0!==t.attributes.color,a=void 0===t.attributes.normal;if(e.isPoints){let e="PointsMaterial:"+n.uuid,t=this.cache.get(e);t||(t=new xi,yr.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){let e="LineBasicMaterial:"+n.uuid,t=this.cache.get(e);t||(t=new Gn,yr.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(i||r||a){let e="ClonedMaterial:"+n.uuid+":";i&&(e+="derivative-tangents:"),r&&(e+="vertex-colors:"),a&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=n.clone(),r&&(t.vertexColors=!0),a&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return hf}loadMaterial(e){let t,n=this,i=this.json,r=this.extensions,a=i.materials[e],s={},o=[];if((a.extensions||{})[Xr.KHR_MATERIALS_UNLIT]){let e=r[Xr.KHR_MATERIALS_UNLIT];t=e.getMaterialType(),o.push(e.extendParams(s,a,n))}else{let i=a.pbrMetallicRoughness||{};if(s.color=new ct(1,1,1),s.opacity=1,Array.isArray(i.baseColorFactor)){let e=i.baseColorFactor;s.color.fromArray(e),s.opacity=e[3]}void 0!==i.baseColorTexture&&o.push(n.assignTexture(s,"map",i.baseColorTexture,tn)),s.metalness=void 0!==i.metallicFactor?i.metallicFactor:1,s.roughness=void 0!==i.roughnessFactor?i.roughnessFactor:1,void 0!==i.metallicRoughnessTexture&&(o.push(n.assignTexture(s,"metalnessMap",i.metallicRoughnessTexture)),o.push(n.assignTexture(s,"roughnessMap",i.metallicRoughnessTexture))),t=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),o.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,s)}))))}!0===a.doubleSided&&(s.side=Sr);let l=a.alphaMode||r4.OPAQUE;if(l===r4.BLEND?(s.transparent=!0,s.depthWrite=!1):(s.transparent=!1,l===r4.MASK&&(s.alphaTest=void 0!==a.alphaCutoff?a.alphaCutoff:.5)),void 0!==a.normalTexture&&t!==on&&(o.push(n.assignTexture(s,"normalMap",a.normalTexture)),s.normalScale=new be(1,1),void 0!==a.normalTexture.scale)){let e=a.normalTexture.scale;s.normalScale.set(e,e)}return void 0!==a.occlusionTexture&&t!==on&&(o.push(n.assignTexture(s,"aoMap",a.occlusionTexture)),void 0!==a.occlusionTexture.strength&&(s.aoMapIntensity=a.occlusionTexture.strength)),void 0!==a.emissiveFactor&&t!==on&&(s.emissive=(new ct).fromArray(a.emissiveFactor)),void 0!==a.emissiveTexture&&t!==on&&o.push(n.assignTexture(s,"emissiveMap",a.emissiveTexture,tn)),Promise.all(o).then((function(){let i=new t(s);return a.name&&(i.name=a.name),Xf(i,a),n.associations.set(i,{materials:e}),a.extensions&&tg(r,i,a),i}))}createUniqueName(e){let t=Jn.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,n=this.extensions,i=this.primitiveCache;function r(e){return n[Xr.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(n){return J0e(n,e,t)}))}let a=[];for(let s=0,o=e.length;s0&&hvt(n,r),n.name=t.createUniqueName(r.name||"mesh_"+e),Xf(n,r),u.extensions&&tg(i,n,u),t.assignFinalMaterial(n),l.push(n)}for(let i=0,r=l.length;i1?new er:1===t.length?t[0]:new an,s!==t[0])for(let e=0,n=t.length;e{let t=new Map;for(let[n,r]of i.associations)(n instanceof yr||n instanceof qr)&&t.set(n,r);return e.traverse((e=>{let n=i.associations.get(e);null!=n&&t.set(e,n)})),t})(r),r}))}_createAnimationTracks(e,t,n,i,r){let a,s=[],o=e.name?e.name:e.uuid,l=[];switch(jf[r.path]===jf.weights?e.traverse((function(e){e.morphTargetInfluences&&l.push(e.name?e.name:e.uuid)})):l.push(o),jf[r.path]){case jf.weights:a=Cl;break;case jf.rotation:a=Ga;break;case jf.position:case jf.scale:a=qa;break;default:a=1===n.itemSize?Cl:qa}let h=void 0!==i.interpolation?lvt[i.interpolation]:Tu,c=this._getArrayFromAccessor(n);for(let u=0,d=l.length;u=0?e.substring(0,t):e;s=s.toLowerCase();let l=t>=0?e.substring(t+1):"";if(l=l.trim(),"newmtl"===s)i={name:l},a[l]=i;else if("ka"===s||"kd"===s||"ks"===s||"ke"===s){let e=l.split(r,3);i[s]=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])]}else i[s]=l}let s=new C4(this.resourcePath||t,this.materialOptions);return s.setCrossOrigin(this.crossOrigin),s.setManager(this.manager),s.setMaterials(a),s}},C4=class{constructor(e="",t={}){this.baseUrl=e,this.options=t,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.crossOrigin="anonymous",this.side=void 0!==this.options.side?this.options.side:pi,this.wrap=void 0!==this.options.wrap?this.options.wrap:Ci}setCrossOrigin(e){return this.crossOrigin=e,this}setManager(e){this.manager=e}setMaterials(e){this.materialsInfo=this.convert(e),this.materials={},this.materialsArray=[],this.nameLookup={}}convert(e){if(!this.options)return e;let t={};for(let n in e){let i=e[n],r={};t[n]=r;for(let e in i){let t=!0,n=i[e],a=e.toLowerCase();switch(a){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(n=[n[0]/255,n[1]/255,n[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===n[0]&&0===n[1]&&0===n[2]&&(t=!1)}t&&(r[a]=n)}}return t}preload(){for(let e in this.materialsInfo)this.create(e)}getIndex(e){return this.nameLookup[e]}getAsArray(){let e=0;for(let t in this.materialsInfo)this.materialsArray[e]=this.create(t),this.nameLookup[t]=e,e++;return this.materialsArray}create(e){return void 0===this.materials[e]&&this.createMaterial_(e),this.materials[e]}createMaterial_(e){let t=this,n=this.materialsInfo[e],i={name:e,side:this.side};function r(e,n){if(i[e])return;let r=t.getTextureParams(n,i),a=t.loadTexture(function(e,t){return"string"!=typeof t||""===t?"":/^https?:\/\//i.test(t)?t:e+t}(t.baseUrl,r.url));a.repeat.copy(r.scale),a.offset.copy(r.offset),a.wrapS=t.wrap,a.wrapT=t.wrap,("map"===e||"emissiveMap"===e)&&(a.colorSpace=tn),i[e]=a}for(let a in n){let e,t=n[a];if(""!==t)switch(a.toLowerCase()){case"kd":i.color=(new ct).fromArray(t).convertSRGBToLinear();break;case"ks":i.specular=(new ct).fromArray(t).convertSRGBToLinear();break;case"ke":i.emissive=(new ct).fromArray(t).convertSRGBToLinear();break;case"map_kd":r("map",t);break;case"map_ks":r("specularMap",t);break;case"map_ke":r("emissiveMap",t);break;case"norm":r("normalMap",t);break;case"map_bump":case"bump":r("bumpMap",t);break;case"map_d":r("alphaMap",t),i.transparent=!0;break;case"ns":i.shininess=parseFloat(t);break;case"d":e=parseFloat(t),e<1&&(i.opacity=e,i.transparent=!0);break;case"tr":e=parseFloat(t),this.options&&this.options.invertTrProperty&&(e=1-e),e>0&&(i.opacity=1-e,i.transparent=!0)}}return this.materials[e]=new na(i),this.materials[e]}getTextureParams(e,t){let n,i={scale:new be(1,1),offset:new be(0,0)},r=e.split(/\s+/);return n=r.indexOf("-bm"),n>=0&&(t.bumpScale=parseFloat(r[n+1]),r.splice(n,2)),n=r.indexOf("-s"),n>=0&&(i.scale.set(parseFloat(r[n+1]),parseFloat(r[n+2])),r.splice(n,4)),n=r.indexOf("-o"),n>=0&&(i.offset.set(parseFloat(r[n+1]),parseFloat(r[n+2])),r.splice(n,4)),i.url=r.join(" ").trim(),i}loadTexture(e,t,n,i,r){let a=void 0!==this.manager?this.manager:go,s=a.getHandler(e);null===s&&(s=new Rs(a)),s.setCrossOrigin&&s.setCrossOrigin(this.crossOrigin);let o=s.load(e,n,i,r);return void 0!==t&&(o.mapping=t),o}},gvt=/^[og]\s*(.+)?/,vvt=/^mtllib /,yvt=/^usemtl /,xvt=/^usemap /,eve=/\s+/,tve=new O,P4=new O,nve=new O,rve=new O,Xl=new O,dP=new ct;function bvt(){let e={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,t){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=e,void(this.object.fromDeclaration=!1!==t);let n=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:!1!==t,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(e,t){let n=this._finalize(!1);n&&(n.inherited||n.groupCount<=0)&&this.materials.splice(n.index,1);let i={index:this.materials.length,name:e||"",mtllib:Array.isArray(t)&&t.length>0?t[t.length-1]:"",smooth:void 0!==n?n.smooth:this.smooth,groupStart:void 0!==n?n.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(e){let t={index:"number"==typeof e?e:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return t.clone=this.clone.bind(t),t}};return this.materials.push(i),i},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(e){let t=this.currentMaterial();if(t&&-1===t.groupEnd&&(t.groupEnd=this.geometry.vertices.length/3,t.groupCount=t.groupEnd-t.groupStart,t.inherited=!1),e&&this.materials.length>1)for(let n=this.materials.length-1;n>=0;n--)this.materials[n].groupCount<=0&&this.materials.splice(n,1);return e&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),t}},n&&n.name&&"function"==typeof n.clone){let e=n.clone(0);e.inherited=!0,this.object.materials.push(e)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(e,t){let n=parseInt(e,10);return 3*(n>=0?n-1:n+t/3)},parseNormalIndex:function(e,t){let n=parseInt(e,10);return 3*(n>=0?n-1:n+t/3)},parseUVIndex:function(e,t){let n=parseInt(e,10);return 2*(n>=0?n-1:n+t/2)},addVertex:function(e,t,n){let i=this.vertices,r=this.object.geometry.vertices;r.push(i[e+0],i[e+1],i[e+2]),r.push(i[t+0],i[t+1],i[t+2]),r.push(i[n+0],i[n+1],i[n+2])},addVertexPoint:function(e){let t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addVertexLine:function(e){let t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addNormal:function(e,t,n){let i=this.normals,r=this.object.geometry.normals;r.push(i[e+0],i[e+1],i[e+2]),r.push(i[t+0],i[t+1],i[t+2]),r.push(i[n+0],i[n+1],i[n+2])},addFaceNormal:function(e,t,n){let i=this.vertices,r=this.object.geometry.normals;tve.fromArray(i,e),P4.fromArray(i,t),nve.fromArray(i,n),Xl.subVectors(nve,P4),rve.subVectors(tve,P4),Xl.cross(rve),Xl.normalize(),r.push(Xl.x,Xl.y,Xl.z),r.push(Xl.x,Xl.y,Xl.z),r.push(Xl.x,Xl.y,Xl.z)},addColor:function(e,t,n){let i=this.colors,r=this.object.geometry.colors;void 0!==i[e]&&r.push(i[e+0],i[e+1],i[e+2]),void 0!==i[t]&&r.push(i[t+0],i[t+1],i[t+2]),void 0!==i[n]&&r.push(i[n+0],i[n+1],i[n+2])},addUV:function(e,t,n){let i=this.uvs,r=this.object.geometry.uvs;r.push(i[e+0],i[e+1]),r.push(i[t+0],i[t+1]),r.push(i[n+0],i[n+1])},addDefaultUV:function(){let e=this.object.geometry.uvs;e.push(0,0),e.push(0,0),e.push(0,0)},addUVLine:function(e){let t=this.uvs;this.object.geometry.uvs.push(t[e+0],t[e+1])},addFace:function(e,t,n,i,r,a,s,o,l){let h=this.vertices.length,c=this.parseVertexIndex(e,h),u=this.parseVertexIndex(t,h),d=this.parseVertexIndex(n,h);if(this.addVertex(c,u,d),this.addColor(c,u,d),void 0!==s&&""!==s){let e=this.normals.length;c=this.parseNormalIndex(s,e),u=this.parseNormalIndex(o,e),d=this.parseNormalIndex(l,e),this.addNormal(c,u,d)}else this.addFaceNormal(c,u,d);if(void 0!==i&&""!==i){let e=this.uvs.length;c=this.parseUVIndex(i,e),u=this.parseUVIndex(r,e),d=this.parseUVIndex(a,e),this.addUV(c,u,d),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type="Points";let t=this.vertices.length;for(let n=0,i=e.length;n=7?(dP.setRGB(parseFloat(n[4]),parseFloat(n[5]),parseFloat(n[6])).convertSRGBToLinear(),t.colors.push(dP.r,dP.g,dP.b)):t.colors.push(void 0,void 0,void 0);break;case"vn":t.normals.push(parseFloat(n[1]),parseFloat(n[2]),parseFloat(n[3]));break;case"vt":t.uvs.push(parseFloat(n[1]),parseFloat(n[2]))}}else if("f"===r){let n=e.slice(1).trim().split(eve),i=[];for(let e=0,t=n.length;e0){let e=t.split("/");i.push(e)}}let r=i[0];for(let e=1,a=i.length-1;e1){let e=i[1].trim().toLowerCase();t.object.smooth="0"!==e&&"off"!==e}else t.object.smooth=!0;let n=t.object.currentMaterial();n&&(n.smooth=t.object.smooth)}else{if("\0"===e)continue;console.warn('THREE.OBJLoader: Unexpected line: "'+e+'"')}}t.finalize();let r=new er;if(r.materialLibraries=[].concat(t.materialLibraries),1==!(1===t.objects.length&&0===t.objects[0].geometry.vertices.length))for(let a=0,s=t.objects.length;a0&&h.setAttribute("normal",new Bt(n.normals,3)),n.colors.length>0&&(l=!0,h.setAttribute("color",new Bt(n.colors,3))),!0===n.hasUVIndices&&h.setAttribute("uv",new Bt(n.uvs,2));let c,u=[];for(let r=0,a=i.length;r1){for(let e=0,t=i.length;e0){let e=new xi({size:1,sizeAttenuation:!1}),n=new Dt;n.setAttribute("position",new Bt(t.vertices,3)),t.colors.length>0&&void 0!==t.colors[0]&&(n.setAttribute("color",new Bt(t.colors,3)),e.vertexColors=!0);let i=new ii(n,e);r.add(i)}return r}},wo=new ct,pP=class extends Er{constructor(e){super(e),this.propertyNameMapping={},this.customPropertyMapping={}}load(e,t,n,i){let r=this,a=new Kr(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(n){try{t(r.parse(n))}catch(t){i?i(t):console.error(t),r.manager.itemError(e)}}),n,i)}setPropertyNameMapping(e){this.propertyNameMapping=e}setCustomPropertyNameMapping(e){this.customPropertyMapping=e}parse(e){function t(e,t=0){let n="",i=/^ply([\s\S]*)end_header(\r\n|\r|\n)/.exec(e);null!==i&&(n=i[1]);let r,a={comments:[],elements:[],headerLength:t,objInfo:""},s=n.split(/\r\n|\r|\n/);function o(e,t){let n={type:e[0]};return"list"===n.type?(n.name=e[3],n.countType=e[1],n.itemType=e[2]):n.name=e[1],n.name in t&&(n.name=t[n.name]),n}for(let l=0;le.name));function n(e){for(let n=0,i=e.length;n0&&t.setIndex(e.indices),t.setAttribute("position",new Bt(e.vertices,3)),e.normals.length>0&&t.setAttribute("normal",new Bt(e.normals,3)),e.uvs.length>0&&t.setAttribute("uv",new Bt(e.uvs,2)),e.colors.length>0&&t.setAttribute("color",new Bt(e.colors,3)),(e.faceVertexUvs.length>0||e.faceVertexColors.length>0)&&(t=t.toNonIndexed(),e.faceVertexUvs.length>0&&t.setAttribute("uv",new Bt(e.faceVertexUvs,2)),e.faceVertexColors.length>0&&t.setAttribute("color",new Bt(e.faceVertexColors,3)));for(let n of Object.keys(d.customPropertyMapping))e[n].length>0&&t.setAttribute(n,new Bt(e[n],d.customPropertyMapping[n].length));return t.computeBoundingSphere(),t}function l(e,t,n,i){if("vertex"===t){e.vertices.push(n[i.attrX],n[i.attrY],n[i.attrZ]),null!==i.attrNX&&null!==i.attrNY&&null!==i.attrNZ&&e.normals.push(n[i.attrNX],n[i.attrNY],n[i.attrNZ]),null!==i.attrS&&null!==i.attrT&&e.uvs.push(n[i.attrS],n[i.attrT]),null!==i.attrR&&null!==i.attrG&&null!==i.attrB&&(wo.setRGB(n[i.attrR]/255,n[i.attrG]/255,n[i.attrB]/255).convertSRGBToLinear(),e.colors.push(wo.r,wo.g,wo.b));for(let t of Object.keys(d.customPropertyMapping))for(let i of d.customPropertyMapping[t])e[t].push(n[i])}else if("face"===t){let t=n.vertex_indices||n.vertex_index,r=n.texcoord;3===t.length?(e.indices.push(t[0],t[1],t[2]),r&&6===r.length&&(e.faceVertexUvs.push(r[0],r[1]),e.faceVertexUvs.push(r[2],r[3]),e.faceVertexUvs.push(r[4],r[5]))):4===t.length&&(e.indices.push(t[0],t[1],t[3]),e.indices.push(t[1],t[2],t[3])),null!==i.attrR&&null!==i.attrG&&null!==i.attrB&&(wo.setRGB(n[i.attrR]/255,n[i.attrG]/255,n[i.attrB]/255).convertSRGBToLinear(),e.faceVertexColors.push(wo.r,wo.g,wo.b),e.faceVertexColors.push(wo.r,wo.g,wo.b),e.faceVertexColors.push(wo.r,wo.g,wo.b))}}function h(e,t){let n={},i=0;for(let r=0;re.getInt8(t),size:1};case"uint8":case"uchar":return{read:t=>e.getUint8(t),size:1};case"int16":case"short":return{read:t=>e.getInt16(t,n),size:2};case"uint16":case"ushort":return{read:t=>e.getUint16(t,n),size:2};case"int32":case"int":return{read:t=>e.getInt32(t,n),size:4};case"uint32":case"uint":return{read:t=>e.getUint32(t,n),size:4};case"float32":case"float":return{read:t=>e.getFloat32(t,n),size:4};case"float64":case"double":return{read:t=>e.getFloat64(t,n),size:8}}}for(let r=0,a=e.length;r=this.arr.length}next(){return this.arr[this.i++]}},mP=class extends Er{constructor(e){super(e)}load(e,t,n,i){let r=this,a=new Kr(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(n){try{t(r.parse(n))}catch(t){i?i(t):console.error(t),r.manager.itemError(e)}}),n,i)}parse(e){function t(e,t,n){for(let i=0,r=e.length;i>5&31)/31,i=(r>>10&31)/31)}for(let a=1;a<=3;a++){let s=e+12*a,o=3*g*3+3*(a-1);p[o]=h.getFloat32(s,!0),p[o+1]=h.getFloat32(s+4,!0),p[o+2]=h.getFloat32(s+8,!0),f[o]=l,f[o+1]=c,f[o+2]=d,u&&(m.set(t,n,i).convertSRGBToLinear(),r[o]=m.r,r[o+1]=m.g,r[o+2]=m.b)}}return d.setAttribute("position",new mn(p,3)),d.setAttribute("normal",new mn(f,3)),u&&(d.setAttribute("color",new mn(r,3)),d.hasColors=!0,d.alpha=l),d}(n):function(e){let t,n=new Dt,i=/solid([\s\S]*?)endsolid/g,r=/facet([\s\S]*?)endfacet/g,a=0,s=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,o=new RegExp("vertex"+s+s+s,"g"),l=new RegExp("normal"+s+s+s,"g"),h=[],c=[],u=new O,d=0,p=0,f=0;for(;null!==(t=i.exec(e));){p=f;let e=t[0];for(;null!==(t=r.exec(e));){let e=0,n=0,i=t[0];for(;null!==(t=l.exec(i));)u.x=parseFloat(t[1]),u.y=parseFloat(t[2]),u.z=parseFloat(t[3]),n++;for(;null!==(t=o.exec(i));)h.push(parseFloat(t[1]),parseFloat(t[2]),parseFloat(t[3])),c.push(u.x,u.y,u.z),e++,f++;1!==n&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+a),3!==e&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+a),a++}let i=p,s=f-p;n.addGroup(i,s,d),d++}return n.setAttribute("position",new Bt(h,3)),n.setAttribute("normal",new Bt(c,3)),n}("string"!=typeof(i=e)?(new TextDecoder).decode(i):i);var i}},ng=class{constructor(e){this.buffer=e,this.u8=new Uint8Array(e)}getBit(e){var t=7&e;return(this.u8[e>>3]&128>>t)>>7-t}setBit(e,t){var n=e>>3,i=this.u8[n],r=7&e;this.u8[n]=t?i|128>>r:i&~(128>>r)}getInt12(e){var t=e/8|0,n=this.u8[t],i=this.u8[t+1],r=this.u8[t+2],a=e%8,s=8-a,o=Math.min(12-s,8);return(((n&=~(255<>12-a)-2048}setInt12(e,t){var n=e/8|0,i=e%8,r=(t+=2048)<<12-i,a=(16711680&r)>>16,s=(65280&r)>>8,o=255&r,l=8-i,h=Math.min(12-l,8),c=Math.max(12-l-h,0),u=255<>8-(2-r))))<<8)+(i&=255<<8-Math.max(6-a,0))>>10-r)-32}setInt6(e,t){var n=e/8|0,i=e%8,r=(t+=32)<<10-i,a=(65280&r)>>8,s=255&r,o=8-i,l=Math.max(6-o,0),h=(255<>8-(2-i));this.u8[n]=(this.u8[n]&h)+a;var c=~(255<<8-l);this.u8[n+1]=(this.u8[n+1]&c)+s}test(){var e,t,n=new ArrayBuffer(3),i=new ng(n);for(t=0;t<12;t++)for(e=-2048;e<2048;e++)if(i.setInt12(t,e),i.getInt12(t)!=e){console.log("12-bit prob at",t,e),console.log("expected",e,"got",i.getInt12(t));break}for(t=0;t<18;t++)for(e=-32;e<32;e++)if(i.setInt6(t,e),i.getInt6(t)!=e){console.log("6-bit prob at",t,e),console.log("expected",e,"got",i.getInt6(t));break}return i}},ive=(e=>(e[e.NULL=0]="NULL",e[e.POINT=1]="POINT",e[e.POLYLINE=3]="POLYLINE",e[e.POLYGON=5]="POLYGON",e))(ive||{}),gP=class{parse(e){var t={},n=new DataView(e),i=0;if(t.fileCode=n.getInt32(i,!1),9994!=t.fileCode)throw new Error("Unknown file code: "+t.fileCode);for(i+=24,t.wordLength=n.getInt32(i,!1),t.byteLength=2*t.wordLength,i+=4,t.version=n.getInt32(i,!0),i+=4,t.shapeType=n.getInt32(i,!0),i+=4,t.minX=n.getFloat64(i,!0),t.minY=n.getFloat64(i+8,!0),t.maxX=n.getFloat64(i+16,!0),t.maxY=n.getFloat64(i+24,!0),t.minZ=n.getFloat64(i+32,!0),t.maxZ=n.getFloat64(i+40,!0),t.minM=n.getFloat64(i+48,!0),t.maxM=n.getFloat64(i+56,!0),i+=64,t.records=[];ir.push(...e)));let a=new Dt;a.setFromPoints(e),a.setIndex(r),t.push(a);let s=new Dt;e.length>2&&!e[0].equals(e[e.length-1])&&e.push(e[0]),s.setFromPoints(e),n.push(s)}else{let t=new Dt;t.setFromPoints(e),n.push(t)}}}var d=new an;for(i=0;i1023||Math.abs(a-e[o+1])>1023?(n.push(i),s+=1,i=[],r=e[o],a=e[o+1],i.push(r,a),s+=4,o++):(i.push((e[o]-r)/8,(e[o+1]-a)/8),r+=8*((e[o]-r)/8|0),a+=8*((e[o+1]-a)/8|0),s+=2,o++):(n.push(i),t.push(n),n=[],i=[],s+=3);return this.storeDeltas(s,t)}deltaEncode6(e){var t=[],n=[],i=[],r=0,a=0,s=0,o=0;for(s=0;s31||Math.abs(a-e[s+1])>31?(n.push(i),o+=1,i=[],r=e[s],a=e[s+1],i.push(r,a),o+=4,s++):(i.push(e[s]-r,e[s+1]-a),r+=e[s]-r,a+=e[s+1]-a,o+=2,s++):(n.push(i),t.push(n),n=[],i=[],o+=3);return this.storeDeltas6(o,t)}storeDeltas(e,t){for(var n=new ArrayBuffer(e),i=new DataView(n),r=0,a=0;a{this.updateProgress(n,50);let e=(new gP).parse(r.response),i=(new vP).createModel(e);this.updateProgress(n,99),t(i)},r.onerror=i,r.open("GET",e),r.send(null)}))}updateProgress(e,t){e&&e(new ProgressEvent("progress",{lengthComputable:!0,loaded:t,total:100}))}},L4=class{constructor(e){this.manager=e}loadLocalModel(e,t,n){return ft(this,null,(function*(){let i=t.toLowerCase();return i.endsWith("fbx")?this.loadFbx(e,n):i.endsWith("obj")?this.loadObj(e,n):i.endsWith("stl")?this.loadStl(e,n):i.endsWith("ifc")?(se.warn("[LoadingHelper] IFC is not supported directly since three.js r150!"),Promise.reject("Not supported!")):i.endsWith("shp")?this.loadShp(e,n):i.endsWith("dae")?this.loadDae(e,n):i.endsWith("dxf")?this.loadDxf(e,n):i.endsWith("jpg")||i.endsWith("jpeg")||i.endsWith("png")?this.loadImage(e,n):this.loadGltf(e,n)}))}loadModel(e,t,n){return ft(this,null,(function*(){let i=e;if(!i)return Promise.resolve();let r=(null==t?void 0:t.toLowerCase())||"";if(!r){let e=i.split("?")[0].toLowerCase();if(e){let t=e.lastIndexOf(".");-1!==t&&(r=e.slice(t+1))}}return r.endsWith("fbx")?this.loadFbx(i,n):r.endsWith("obj")?this.loadObj(i,n):r.endsWith("stl")?this.loadStl(i,n):r.endsWith("ifc")?void se.warn("[LoadingHelper] IFC is not supported directly since three.js r150!"):r.endsWith("shp")?this.loadShp(i,n):r.endsWith("dae")?this.loadDae(i,n):r.endsWith("dxf")?this.loadDxf(i,n):r.endsWith("jpg")||r.endsWith("jpeg")||r.endsWith("png")?this.loadImage(i,n):this.loadGltf(i,n)}))}loadGltf(e,t){return ft(this,null,(function*(){let n=this.getGltfLoader();-1!==e.indexOf("#")&&console.warn(`[LoadingHelper] '#' is not allowed in filename ${e}`),e=e.replace(/#/g,encodeURIComponent("#"));let i=yield n.loadAsync(e,(e=>{0===e.total&&e.loaded>0||t&&t(e)}));return Promise.resolve(i.scene)}))}parseGltf(e,t,n,i){return this.getGltfLoader().parse(e,t,(e=>n(e.scene)),i)}loadFbx(e,t){return ft(this,null,(function*(){let n=yield new oP(this.manager).loadAsync(e,t);return Promise.resolve(n)}))}loadObj(e,t){return ft(this,null,(function*(){let n=new fP(this.manager),i=new hP(this.manager),r=e.replace(".obj",".mtl"),a=yield i.loadAsync(r,t);a.preload(),n.setMaterials(a);let s=yield n.loadAsync(e,t);return Promise.resolve(s)}))}loadStl(e,t){return ft(this,null,(function*(){let n=yield new mP(this.manager).loadAsync(e,t);return Promise.resolve(new xt(n))}))}loadShp(e,t){return ft(this,null,(function*(){let n=new yP;return new Promise(((i,r)=>{n.load(e,(e=>{i(e)}),t,(e=>{r(e)}))}))}))}loadDae(e,t){return ft(this,null,(function*(){let n=yield new rP(this.manager).loadAsync(e,t);return Promise.resolve(n.scene)}))}loadDxf(e,t){return ft(this,null,(function*(){var n;this.font||console.warn("[LoadingHelper] Should set font first!");let i=new gn(this.manager,{ignorePaperSpace:!0,enableLocalCache:!1});i.setFont(this.font),yield null==(n=this.font)?void 0:n.getFontFromIndexeddb();try{let n=yield i.loadAsync(e,t);return Promise.resolve(n.threejsObject)}catch(e){let n=new ErrorEvent("");return Promise.reject(n)}}))}loadPly(e,t){return ft(this,null,(function*(){let n=yield new pP(this.manager).loadAsync(e,t);return Promise.resolve(new xt(n))}))}loadImage(e,t){return ft(this,null,(function*(){let n=yield new Rs(this.manager).loadAsync(e,t);if(!n)return Promise.reject("Failed to load image!");let i=n.image,r=i&&i.height||10,a=i&&i.width||10;r*=10/a,a=10;let s=new on({map:n,side:Sr,transparent:!0}),o=new ui(a,r),l=new xt(o,s);return Promise.resolve(l)}))}loadDxfData(e,t,n,i,r){return ft(this,null,(function*(){var a;this.font||console.warn("[LoadingHelper] Should set font first!");let s=new gn(this.manager,r);return s.setFont(this.font),yield null==(a=this.font)?void 0:a.getFontFromIndexeddb(),s.manager.onLoad=()=>{i&&i()},s.load(e,t,n)}))}setFont(e){this.font=e}static setDracoDecoderPath(e){this.decoderPath=e}getGltfLoader(){if(!this.gltfLoader){this.gltfLoader=new th(this.manager);let e=new iP(this.manager);e.setDecoderPath(L4.decoderPath),this.gltfLoader.setDRACOLoader(e)}return this.gltfLoader}},$a=L4;function D4(e){let t=new Blob([e],{type:"text/javascript"}),n=URL.createObjectURL(t),i=new Worker(n);return URL.revokeObjectURL(n),i}function O4(){return D4('var Jc=Object.defineProperty,$c=Object.defineProperties;var Kc=Object.getOwnPropertyDescriptors;var zo=Object.getOwnPropertySymbols;var Qc=Object.prototype.hasOwnProperty,jc=Object.prototype.propertyIsEnumerable;var Vo=(i,t,e)=>t in i?Jc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,ts=(i,t)=>{for(var e in t||(t={}))Qc.call(t,e)&&Vo(i,e,t[e]);if(zo)for(var e of zo(t))jc.call(t,e)&&Vo(i,e,t[e]);return i},ko=(i,t)=>$c(i,Kc(t));var mo="155";var tl=0,Ho=1,el=2;var ac=1,nl=2,rn=3,He=0,he=1,ze=2;var vn=0,fi=1,Go=2,Wo=3,Xo=4,il=5,li=100,sl=101,rl=102,qo=103,Yo=104,ol=200,al=201,cl=202,ll=203,cc=204,lc=205,hl=206,ul=207,fl=208,dl=209,pl=210,ml=0,gl=1,_l=2,Lr=3,xl=4,yl=5,vl=6,Ml=7,hc=0,Sl=1,bl=2,Mn=0,El=1,Tl=2,wl=3,Al=4,Rl=5,uc=300,mi=301,gi=302,Ir=303,Ur=304,Bs=306,Dr=1e3,Ve=1001,Nr=1002,pe=1003,Zo=1004;var er=1005;var Ie=1006,Cl=1007;var Hi=1008;var Sn=1009,Pl=1010,Ll=1011,go=1012,fc=1013,xn=1014,yn=1015,Gi=1016,dc=1017,pc=1018,Fn=1020,Il=1021,ke=1023,Ul=1024,Dl=1025,On=1026,_i=1027,Nl=1028,mc=1029,Fl=1030,gc=1031,_c=1033,nr=33776,ir=33777,sr=33778,rr=33779,Jo=35840,$o=35841,Ko=35842,Qo=35843,Ol=36196,jo=37492,ta=37496,ea=37808,na=37809,ia=37810,sa=37811,ra=37812,oa=37813,aa=37814,ca=37815,la=37816,ha=37817,ua=37818,fa=37819,da=37820,pa=37821,or=36492,Bl=36283,ma=36284,ga=36285,_a=36286;var bs=2300,Es=2301,ar=2302,xa=2400,ya=2401,va=2402;var xc=3e3,Bn=3001,zl=3200,Vl=3201,kl=0,Hl=1,zn="",Rt="srgb",Ze="srgb-linear",yc="display-p3";var cr=7680;var Gl=519,Wl=512,Xl=513,ql=514,Yl=515,Zl=516,Jl=517,$l=518,Kl=519,Ma=35044;var Sa="300 es",Fr=1035,on=2e3,Ts=2001,bn=class{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;let n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;let s=this._listeners[t];if(s!==void 0){let r=s.indexOf(e);r!==-1&&s.splice(r,1)}}dispatchEvent(t){if(this._listeners===void 0)return;let n=this._listeners[t.type];if(n!==void 0){t.target=this;let s=n.slice(0);for(let r=0,a=s.length;r>8&255]+ce[i>>16&255]+ce[i>>24&255]+"-"+ce[t&255]+ce[t>>8&255]+"-"+ce[t>>16&15|64]+ce[t>>24&255]+"-"+ce[e&63|128]+ce[e>>8&255]+"-"+ce[e>>16&255]+ce[e>>24&255]+ce[n&255]+ce[n>>8&255]+ce[n>>16&255]+ce[n>>24&255]).toLowerCase()}function me(i,t,e){return Math.max(t,Math.min(e,i))}function Ql(i,t){return(i%t+t)%t}function hr(i,t,e){return(1-e)*i+e*t}function ba(i){return(i&i-1)===0&&i!==0}function Br(i){return Math.pow(2,Math.floor(Math.log(i)/Math.LN2))}function Di(i,t){switch(t.constructor){case Float32Array:return i;case Uint32Array:return i/4294967295;case Uint16Array:return i/65535;case Uint8Array:return i/255;case Int32Array:return Math.max(i/2147483647,-1);case Int16Array:return Math.max(i/32767,-1);case Int8Array:return Math.max(i/127,-1);default:throw new Error("Invalid component type.")}}function ye(i,t){switch(t.constructor){case Float32Array:return i;case Uint32Array:return Math.round(i*4294967295);case Uint16Array:return Math.round(i*65535);case Uint8Array:return Math.round(i*255);case Int32Array:return Math.round(i*2147483647);case Int16Array:return Math.round(i*32767);case Int8Array:return Math.round(i*127);default:throw new Error("Invalid component type.")}}var Nt=class{constructor(t=0,e=0){Nt.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){let e=this.x,n=this.y,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6],this.y=s[1]*e+s[4]*n+s[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){let e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;let n=this.dot(t)/e;return Math.acos(me(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){let n=Math.cos(e),s=Math.sin(e),r=this.x-t.x,a=this.y-t.y;return this.x=r*n-a*s+t.x,this.y=r*s+a*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Ct=class{constructor(t,e,n,s,r,a,o,c,l){Ct.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,e,n,s,r,a,o,c,l)}set(t,e,n,s,r,a,o,c,l){let h=this.elements;return h[0]=t,h[1]=s,h[2]=o,h[3]=e,h[4]=r,h[5]=c,h[6]=n,h[7]=a,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){let e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){let e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,s=e.elements,r=this.elements,a=n[0],o=n[3],c=n[6],l=n[1],h=n[4],d=n[7],u=n[2],m=n[5],g=n[8],x=s[0],p=s[3],f=s[6],v=s[1],_=s[4],b=s[7],S=s[2],T=s[5],A=s[8];return r[0]=a*x+o*v+c*S,r[3]=a*p+o*_+c*T,r[6]=a*f+o*b+c*A,r[1]=l*x+h*v+d*S,r[4]=l*p+h*_+d*T,r[7]=l*f+h*b+d*A,r[2]=u*x+m*v+g*S,r[5]=u*p+m*_+g*T,r[8]=u*f+m*b+g*A,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){let t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8];return e*a*h-e*o*l-n*r*h+n*o*c+s*r*l-s*a*c}invert(){let t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8],d=h*a-o*l,u=o*c-h*r,m=l*r-a*c,g=e*d+n*u+s*m;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);let x=1/g;return t[0]=d*x,t[1]=(s*l-h*n)*x,t[2]=(o*n-s*a)*x,t[3]=u*x,t[4]=(h*e-s*c)*x,t[5]=(s*r-o*e)*x,t[6]=m*x,t[7]=(n*c-l*e)*x,t[8]=(a*e-n*r)*x,this}transpose(){let t,e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){let e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,s,r,a,o){let c=Math.cos(r),l=Math.sin(r);return this.set(n*c,n*l,-n*(c*a+l*o)+a+t,-s*l,s*c,-s*(-l*a+c*o)+o+e,0,0,1),this}scale(t,e){return this.premultiply(ur.makeScale(t,e)),this}rotate(t){return this.premultiply(ur.makeRotation(-t)),this}translate(t,e){return this.premultiply(ur.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){let e=this.elements,n=t.elements;for(let s=0;s<9;s++)if(e[s]!==n[s])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){let n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return new this.constructor().fromArray(this.elements)}},ur=new Ct;function vc(i){for(let t=i.length-1;t>=0;--t)if(i[t]>=65535)return!0;return!1}function ws(i){return document.createElementNS("http://www.w3.org/1999/xhtml",i)}var Ea={};function Vi(i){i in Ea||(Ea[i]=!0,console.warn(i))}function di(i){return i<.04045?i*.0773993808:Math.pow(i*.9478672986+.0521327014,2.4)}function fr(i){return i<.0031308?i*12.92:1.055*Math.pow(i,.41666)-.055}var jl=new Ct().fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),th=new Ct().fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);function eh(i){return i.convertSRGBToLinear().applyMatrix3(th)}function nh(i){return i.applyMatrix3(jl).convertLinearToSRGB()}var ih={[Ze]:i=>i,[Rt]:i=>i.convertSRGBToLinear(),[yc]:eh},sh={[Ze]:i=>i,[Rt]:i=>i.convertLinearToSRGB(),[yc]:nh},Ne={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(i){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!i},get workingColorSpace(){return Ze},set workingColorSpace(i){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(i,t,e){if(this.enabled===!1||t===e||!t||!e)return i;let n=ih[t],s=sh[e];if(n===void 0||s===void 0)throw new Error(`Unsupported color space conversion, "${t}" to "${e}".`);return s(n(i))},fromWorkingColorSpace:function(i,t){return this.convert(i,this.workingColorSpace,t)},toWorkingColorSpace:function(i,t){return this.convert(i,t,this.workingColorSpace)}},Yn,As=class{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement=="undefined")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{Yn===void 0&&(Yn=ws("canvas")),Yn.width=t.width,Yn.height=t.height;let n=Yn.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=Yn}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement!="undefined"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&t instanceof ImageBitmap){let e=ws("canvas");e.width=t.width,e.height=t.height;let n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);let s=n.getImageData(0,0,t.width,t.height),r=s.data;for(let a=0;a0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==uc)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Dr:t.x=t.x-Math.floor(t.x);break;case Ve:t.x=t.x<0?0:1;break;case Nr:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case Dr:t.y=t.y-Math.floor(t.y);break;case Ve:t.y=t.y<0?0:1;break;case Nr:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Vi("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===Rt?Bn:xc}set encoding(t){Vi("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=t===Bn?Rt:zn}};ge.DEFAULT_IMAGE=null;ge.DEFAULT_MAPPING=uc;ge.DEFAULT_ANISOTROPY=1;var jt=class{constructor(t=0,e=0,n=0,s=1){jt.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=s}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,s){return this.x=t,this.y=e,this.z=n,this.w=s,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){let e=this.x,n=this.y,s=this.z,r=this.w,a=t.elements;return this.x=a[0]*e+a[4]*n+a[8]*s+a[12]*r,this.y=a[1]*e+a[5]*n+a[9]*s+a[13]*r,this.z=a[2]*e+a[6]*n+a[10]*s+a[14]*r,this.w=a[3]*e+a[7]*n+a[11]*s+a[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);let e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,s,r,c=t.elements,l=c[0],h=c[4],d=c[8],u=c[1],m=c[5],g=c[9],x=c[2],p=c[6],f=c[10];if(Math.abs(h-u)<.01&&Math.abs(d-x)<.01&&Math.abs(g-p)<.01){if(Math.abs(h+u)<.1&&Math.abs(d+x)<.1&&Math.abs(g+p)<.1&&Math.abs(l+m+f-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;let _=(l+1)/2,b=(m+1)/2,S=(f+1)/2,T=(h+u)/4,A=(d+x)/4,L=(g+p)/4;return _>b&&_>S?_<.01?(n=0,s=.707106781,r=.707106781):(n=Math.sqrt(_),s=T/n,r=A/n):b>S?b<.01?(n=.707106781,s=0,r=.707106781):(s=Math.sqrt(b),n=T/s,r=L/s):S<.01?(n=.707106781,s=.707106781,r=0):(r=Math.sqrt(S),n=A/r,s=L/r),this.set(n,s,r,e),this}let v=Math.sqrt((p-g)*(p-g)+(d-x)*(d-x)+(u-h)*(u-h));return Math.abs(v)<.001&&(v=1),this.x=(p-g)/v,this.y=(d-x)/v,this.z=(u-h)/v,this.w=Math.acos((l+m+f-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},zr=class extends bn{constructor(t=1,e=1,n={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new jt(0,0,t,e),this.scissorTest=!1,this.viewport=new jt(0,0,t,e);let s={width:t,height:e,depth:1};n.encoding!==void 0&&(Vi("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),n.colorSpace=n.encoding===Bn?Rt:zn),this.texture=new ge(s,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.internalFormat=n.internalFormat!==void 0?n.internalFormat:null,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:Ie,this.depthBuffer=n.depthBuffer!==void 0?n.depthBuffer:!0,this.stencilBuffer=n.stencilBuffer!==void 0?n.stencilBuffer:!1,this.depthTexture=n.depthTexture!==void 0?n.depthTexture:null,this.samples=n.samples!==void 0?n.samples:0}setSize(t,e,n=1){(this.width!==t||this.height!==e||this.depth!==n)&&(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return new this.constructor().copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.scissor.copy(t.scissor),this.scissorTest=t.scissorTest,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.isRenderTargetTexture=!0;let e=Object.assign({},t.texture.image);return this.texture.source=new Rs(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,t.depthTexture!==null&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},cn=class extends zr{constructor(t=1,e=1,n={}){super(t,e,n),this.isWebGLRenderTarget=!0}},Cs=class extends ge{constructor(t=null,e=1,n=1,s=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:n,depth:s},this.magFilter=pe,this.minFilter=pe,this.wrapR=Ve,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var Vr=class extends ge{constructor(t=null,e=1,n=1,s=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:n,depth:s},this.magFilter=pe,this.minFilter=pe,this.wrapR=Ve,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var En=class{constructor(t=0,e=0,n=0,s=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=n,this._w=s}static slerpFlat(t,e,n,s,r,a,o){let c=n[s+0],l=n[s+1],h=n[s+2],d=n[s+3],u=r[a+0],m=r[a+1],g=r[a+2],x=r[a+3];if(o===0){t[e+0]=c,t[e+1]=l,t[e+2]=h,t[e+3]=d;return}if(o===1){t[e+0]=u,t[e+1]=m,t[e+2]=g,t[e+3]=x;return}if(d!==x||c!==u||l!==m||h!==g){let p=1-o,f=c*u+l*m+h*g+d*x,v=f>=0?1:-1,_=1-f*f;if(_>Number.EPSILON){let S=Math.sqrt(_),T=Math.atan2(S,f*v);p=Math.sin(p*T)/S,o=Math.sin(o*T)/S}let b=o*v;if(c=c*p+u*b,l=l*p+m*b,h=h*p+g*b,d=d*p+x*b,p===1-o){let S=1/Math.sqrt(c*c+l*l+h*h+d*d);c*=S,l*=S,h*=S,d*=S}}t[e]=c,t[e+1]=l,t[e+2]=h,t[e+3]=d}static multiplyQuaternionsFlat(t,e,n,s,r,a){let o=n[s],c=n[s+1],l=n[s+2],h=n[s+3],d=r[a],u=r[a+1],m=r[a+2],g=r[a+3];return t[e]=o*g+h*d+c*m-l*u,t[e+1]=c*g+h*u+l*d-o*m,t[e+2]=l*g+h*m+o*u-c*d,t[e+3]=h*g-o*d-c*u-l*m,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,s){return this._x=t,this._y=e,this._z=n,this._w=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){let n=t._x,s=t._y,r=t._z,a=t._order,o=Math.cos,c=Math.sin,l=o(n/2),h=o(s/2),d=o(r/2),u=c(n/2),m=c(s/2),g=c(r/2);switch(a){case"XYZ":this._x=u*h*d+l*m*g,this._y=l*m*d-u*h*g,this._z=l*h*g+u*m*d,this._w=l*h*d-u*m*g;break;case"YXZ":this._x=u*h*d+l*m*g,this._y=l*m*d-u*h*g,this._z=l*h*g-u*m*d,this._w=l*h*d+u*m*g;break;case"ZXY":this._x=u*h*d-l*m*g,this._y=l*m*d+u*h*g,this._z=l*h*g+u*m*d,this._w=l*h*d-u*m*g;break;case"ZYX":this._x=u*h*d-l*m*g,this._y=l*m*d+u*h*g,this._z=l*h*g-u*m*d,this._w=l*h*d+u*m*g;break;case"YZX":this._x=u*h*d+l*m*g,this._y=l*m*d+u*h*g,this._z=l*h*g-u*m*d,this._w=l*h*d-u*m*g;break;case"XZY":this._x=u*h*d-l*m*g,this._y=l*m*d-u*h*g,this._z=l*h*g+u*m*d,this._w=l*h*d+u*m*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return e!==!1&&this._onChangeCallback(),this}setFromAxisAngle(t,e){let n=e/2,s=Math.sin(n);return this._x=t.x*s,this._y=t.y*s,this._z=t.z*s,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){let e=t.elements,n=e[0],s=e[4],r=e[8],a=e[1],o=e[5],c=e[9],l=e[2],h=e[6],d=e[10],u=n+o+d;if(u>0){let m=.5/Math.sqrt(u+1);this._w=.25/m,this._x=(h-c)*m,this._y=(r-l)*m,this._z=(a-s)*m}else if(n>o&&n>d){let m=2*Math.sqrt(1+n-o-d);this._w=(h-c)/m,this._x=.25*m,this._y=(s+a)/m,this._z=(r+l)/m}else if(o>d){let m=2*Math.sqrt(1+o-n-d);this._w=(r-l)/m,this._x=(s+a)/m,this._y=.25*m,this._z=(c+h)/m}else{let m=2*Math.sqrt(1+d-n-o);this._w=(a-s)/m,this._x=(r+l)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(me(this.dot(t),-1,1)))}rotateTowards(t,e){let n=this.angleTo(t);if(n===0)return this;let s=Math.min(1,e/n);return this.slerp(t,s),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){let n=t._x,s=t._y,r=t._z,a=t._w,o=e._x,c=e._y,l=e._z,h=e._w;return this._x=n*h+a*o+s*l-r*c,this._y=s*h+a*c+r*o-n*l,this._z=r*h+a*l+n*c-s*o,this._w=a*h-n*o-s*c-r*l,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);let n=this._x,s=this._y,r=this._z,a=this._w,o=a*t._w+n*t._x+s*t._y+r*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=n,this._y=s,this._z=r,this;let c=1-o*o;if(c<=Number.EPSILON){let m=1-e;return this._w=m*a+e*this._w,this._x=m*n+e*this._x,this._y=m*s+e*this._y,this._z=m*r+e*this._z,this.normalize(),this._onChangeCallback(),this}let l=Math.sqrt(c),h=Math.atan2(l,o),d=Math.sin((1-e)*h)/l,u=Math.sin(e*h)/l;return this._w=a*d+this._w*u,this._x=n*d+this._x*u,this._y=s*d+this._y*u,this._z=r*d+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){let t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),s=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(s),n*Math.sin(r),n*Math.cos(r),e*Math.sin(s))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},P=class{constructor(t=0,e=0,n=0){P.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return n===void 0&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(Ta.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Ta.setFromAxisAngle(t,e))}applyMatrix3(t){let e=this.x,n=this.y,s=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*s,this.y=r[1]*e+r[4]*n+r[7]*s,this.z=r[2]*e+r[5]*n+r[8]*s,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){let e=this.x,n=this.y,s=this.z,r=t.elements,a=1/(r[3]*e+r[7]*n+r[11]*s+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*s+r[12])*a,this.y=(r[1]*e+r[5]*n+r[9]*s+r[13])*a,this.z=(r[2]*e+r[6]*n+r[10]*s+r[14])*a,this}applyQuaternion(t){let e=this.x,n=this.y,s=this.z,r=t.x,a=t.y,o=t.z,c=t.w,l=c*e+a*s-o*n,h=c*n+o*e-r*s,d=c*s+r*n-a*e,u=-r*e-a*n-o*s;return this.x=l*c+u*-r+h*-o-d*-a,this.y=h*c+u*-a+d*-r-l*-o,this.z=d*c+u*-o+l*-a-h*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){let e=this.x,n=this.y,s=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*s,this.y=r[1]*e+r[5]*n+r[9]*s,this.z=r[2]*e+r[6]*n+r[10]*s,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){let n=t.x,s=t.y,r=t.z,a=e.x,o=e.y,c=e.z;return this.x=s*c-r*o,this.y=r*a-n*c,this.z=n*o-s*a,this}projectOnVector(t){let e=t.lengthSq();if(e===0)return this.set(0,0,0);let n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return pr.copy(this).projectOnVector(t),this.sub(pr)}reflect(t){return this.sub(pr.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){let e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;let n=this.dot(t)/e;return Math.acos(me(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,n=this.y-t.y,s=this.z-t.z;return e*e+n*n+s*s}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){let s=Math.sin(e)*t;return this.x=s*Math.sin(n),this.y=Math.cos(e)*t,this.z=s*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){let e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){let e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),s=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=s,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let t=(Math.random()-.5)*2,e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},pr=new P,Ta=new En,_e=class{constructor(t=new P(1/0,1/0,1/0),e=new P(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,je),je.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ni),es.subVectors(this.max,Ni),Jn.subVectors(t.a,Ni),$n.subVectors(t.b,Ni),Kn.subVectors(t.c,Ni),dn.subVectors($n,Jn),pn.subVectors(Kn,$n),Pn.subVectors(Jn,Kn);let e=[0,-dn.z,dn.y,0,-pn.z,pn.y,0,-Pn.z,Pn.y,dn.z,0,-dn.x,pn.z,0,-pn.x,Pn.z,0,-Pn.x,-dn.y,dn.x,0,-pn.y,pn.x,0,-Pn.y,Pn.x,0];return!mr(e,Jn,$n,Kn,es)||(e=[1,0,0,0,1,0,0,0,1],!mr(e,Jn,$n,Kn,es))?!1:(ns.crossVectors(dn,pn),e=[ns.x,ns.y,ns.z],mr(e,Jn,$n,Kn,es))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,je).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=this.getSize(je).length()*.5),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()?this:(Qe[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Qe[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Qe[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Qe[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Qe[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Qe[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Qe[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Qe[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Qe),this)}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},Qe=[new P,new P,new P,new P,new P,new P,new P,new P],je=new P,Zn=new _e,Jn=new P,$n=new P,Kn=new P,dn=new P,pn=new P,Pn=new P,Ni=new P,es=new P,ns=new P,Ln=new P;function mr(i,t,e,n,s){for(let r=0,a=i.length-3;r<=a;r+=3){Ln.fromArray(i,r);let o=s.x*Math.abs(Ln.x)+s.y*Math.abs(Ln.y)+s.z*Math.abs(Ln.z),c=t.dot(Ln),l=e.dot(Ln),h=n.dot(Ln);if(Math.max(-Math.max(c,l,h),Math.min(c,l,h))>o)return!1}return!0}var ah=new _e,Fi=new P,gr=new P,Vn=class{constructor(t=new P,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){let n=this.center;e!==void 0?n.copy(e):ah.setFromPoints(t).getCenter(n);let s=0;for(let r=0,a=t.length;rthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;Fi.subVectors(t,this.center);let e=Fi.lengthSq();if(e>this.radius*this.radius){let n=Math.sqrt(e),s=(n-this.radius)*.5;this.center.addScaledVector(Fi,s/n),this.radius+=s}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(gr.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Fi.copy(t.center).add(gr)),this.expandByPoint(Fi.copy(t.center).sub(gr))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}},tn=new P,_r=new P,is=new P,mn=new P,xr=new P,ss=new P,yr=new P,kr=class{constructor(t=new P,e=new P(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,tn)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);let n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){let e=tn.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(tn.copy(this.origin).addScaledVector(this.direction,e),tn.distanceToSquared(t))}distanceSqToSegment(t,e,n,s){_r.copy(t).add(e).multiplyScalar(.5),is.copy(e).sub(t).normalize(),mn.copy(this.origin).sub(_r);let r=t.distanceTo(e)*.5,a=-this.direction.dot(is),o=mn.dot(this.direction),c=-mn.dot(is),l=mn.lengthSq(),h=Math.abs(1-a*a),d,u,m,g;if(h>0)if(d=a*c-o,u=a*o-c,g=r*h,d>=0)if(u>=-g)if(u<=g){let x=1/h;d*=x,u*=x,m=d*(d+a*u+2*o)+u*(a*d+u+2*c)+l}else u=r,d=Math.max(0,-(a*u+o)),m=-d*d+u*(u+2*c)+l;else u=-r,d=Math.max(0,-(a*u+o)),m=-d*d+u*(u+2*c)+l;else u<=-g?(d=Math.max(0,-(-a*r+o)),u=d>0?-r:Math.min(Math.max(-r,-c),r),m=-d*d+u*(u+2*c)+l):u<=g?(d=0,u=Math.min(Math.max(-r,-c),r),m=u*(u+2*c)+l):(d=Math.max(0,-(a*r+o)),u=d>0?r:Math.min(Math.max(-r,-c),r),m=-d*d+u*(u+2*c)+l);else u=a>0?-r:r,d=Math.max(0,-(a*u+o)),m=-d*d+u*(u+2*c)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,d),s&&s.copy(_r).addScaledVector(is,u),m}intersectSphere(t,e){tn.subVectors(t.center,this.origin);let n=tn.dot(this.direction),s=tn.dot(tn)-n*n,r=t.radius*t.radius;if(s>r)return null;let a=Math.sqrt(r-s),o=n-a,c=n+a;return c<0?null:o<0?this.at(c,e):this.at(o,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){let e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){let n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){let e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,s,r,a,o,c,l=1/this.direction.x,h=1/this.direction.y,d=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,s=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,s=(t.min.x-u.x)*l),h>=0?(r=(t.min.y-u.y)*h,a=(t.max.y-u.y)*h):(r=(t.max.y-u.y)*h,a=(t.min.y-u.y)*h),n>a||r>s||((r>n||isNaN(n))&&(n=r),(a=0?(o=(t.min.z-u.z)*d,c=(t.max.z-u.z)*d):(o=(t.max.z-u.z)*d,c=(t.min.z-u.z)*d),n>c||o>s)||((o>n||n!==n)&&(n=o),(c=0?n:s,e)}intersectsBox(t){return this.intersectBox(t,tn)!==null}intersectTriangle(t,e,n,s,r){xr.subVectors(e,t),ss.subVectors(n,t),yr.crossVectors(xr,ss);let a=this.direction.dot(yr),o;if(a>0){if(s)return null;o=1}else if(a<0)o=-1,a=-a;else return null;mn.subVectors(this.origin,t);let c=o*this.direction.dot(ss.crossVectors(mn,ss));if(c<0)return null;let l=o*this.direction.dot(xr.cross(mn));if(l<0||c+l>a)return null;let h=-o*mn.dot(yr);return h<0?null:this.at(h/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},Gt=class{constructor(t,e,n,s,r,a,o,c,l,h,d,u,m,g,x,p){Gt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!==void 0&&this.set(t,e,n,s,r,a,o,c,l,h,d,u,m,g,x,p)}set(t,e,n,s,r,a,o,c,l,h,d,u,m,g,x,p){let f=this.elements;return f[0]=t,f[4]=e,f[8]=n,f[12]=s,f[1]=r,f[5]=a,f[9]=o,f[13]=c,f[2]=l,f[6]=h,f[10]=d,f[14]=u,f[3]=m,f[7]=g,f[11]=x,f[15]=p,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Gt().fromArray(this.elements)}copy(t){let e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){let e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){let e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){let e=this.elements,n=t.elements,s=1/Qn.setFromMatrixColumn(t,0).length(),r=1/Qn.setFromMatrixColumn(t,1).length(),a=1/Qn.setFromMatrixColumn(t,2).length();return e[0]=n[0]*s,e[1]=n[1]*s,e[2]=n[2]*s,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*a,e[9]=n[9]*a,e[10]=n[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){let e=this.elements,n=t.x,s=t.y,r=t.z,a=Math.cos(n),o=Math.sin(n),c=Math.cos(s),l=Math.sin(s),h=Math.cos(r),d=Math.sin(r);if(t.order==="XYZ"){let u=a*h,m=a*d,g=o*h,x=o*d;e[0]=c*h,e[4]=-c*d,e[8]=l,e[1]=m+g*l,e[5]=u-x*l,e[9]=-o*c,e[2]=x-u*l,e[6]=g+m*l,e[10]=a*c}else if(t.order==="YXZ"){let u=c*h,m=c*d,g=l*h,x=l*d;e[0]=u+x*o,e[4]=g*o-m,e[8]=a*l,e[1]=a*d,e[5]=a*h,e[9]=-o,e[2]=m*o-g,e[6]=x+u*o,e[10]=a*c}else if(t.order==="ZXY"){let u=c*h,m=c*d,g=l*h,x=l*d;e[0]=u-x*o,e[4]=-a*d,e[8]=g+m*o,e[1]=m+g*o,e[5]=a*h,e[9]=x-u*o,e[2]=-a*l,e[6]=o,e[10]=a*c}else if(t.order==="ZYX"){let u=a*h,m=a*d,g=o*h,x=o*d;e[0]=c*h,e[4]=g*l-m,e[8]=u*l+x,e[1]=c*d,e[5]=x*l+u,e[9]=m*l-g,e[2]=-l,e[6]=o*c,e[10]=a*c}else if(t.order==="YZX"){let u=a*c,m=a*l,g=o*c,x=o*l;e[0]=c*h,e[4]=x-u*d,e[8]=g*d+m,e[1]=d,e[5]=a*h,e[9]=-o*h,e[2]=-l*h,e[6]=m*d+g,e[10]=u-x*d}else if(t.order==="XZY"){let u=a*c,m=a*l,g=o*c,x=o*l;e[0]=c*h,e[4]=-d,e[8]=l*h,e[1]=u*d+x,e[5]=a*h,e[9]=m*d-g,e[2]=g*d-m,e[6]=o*h,e[10]=x*d+u}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(ch,t,lh)}lookAt(t,e,n){let s=this.elements;return we.subVectors(t,e),we.lengthSq()===0&&(we.z=1),we.normalize(),gn.crossVectors(n,we),gn.lengthSq()===0&&(Math.abs(n.z)===1?we.x+=1e-4:we.z+=1e-4,we.normalize(),gn.crossVectors(n,we)),gn.normalize(),rs.crossVectors(we,gn),s[0]=gn.x,s[4]=rs.x,s[8]=we.x,s[1]=gn.y,s[5]=rs.y,s[9]=we.y,s[2]=gn.z,s[6]=rs.z,s[10]=we.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,s=e.elements,r=this.elements,a=n[0],o=n[4],c=n[8],l=n[12],h=n[1],d=n[5],u=n[9],m=n[13],g=n[2],x=n[6],p=n[10],f=n[14],v=n[3],_=n[7],b=n[11],S=n[15],T=s[0],A=s[4],L=s[8],y=s[12],w=s[1],z=s[5],Y=s[9],I=s[13],D=s[2],O=s[6],$=s[10],G=s[14],q=s[3],J=s[7],K=s[11],B=s[15];return r[0]=a*T+o*w+c*D+l*q,r[4]=a*A+o*z+c*O+l*J,r[8]=a*L+o*Y+c*$+l*K,r[12]=a*y+o*I+c*G+l*B,r[1]=h*T+d*w+u*D+m*q,r[5]=h*A+d*z+u*O+m*J,r[9]=h*L+d*Y+u*$+m*K,r[13]=h*y+d*I+u*G+m*B,r[2]=g*T+x*w+p*D+f*q,r[6]=g*A+x*z+p*O+f*J,r[10]=g*L+x*Y+p*$+f*K,r[14]=g*y+x*I+p*G+f*B,r[3]=v*T+_*w+b*D+S*q,r[7]=v*A+_*z+b*O+S*J,r[11]=v*L+_*Y+b*$+S*K,r[15]=v*y+_*I+b*G+S*B,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){let t=this.elements,e=t[0],n=t[4],s=t[8],r=t[12],a=t[1],o=t[5],c=t[9],l=t[13],h=t[2],d=t[6],u=t[10],m=t[14],g=t[3],x=t[7],p=t[11],f=t[15];return g*(+r*c*d-s*l*d-r*o*u+n*l*u+s*o*m-n*c*m)+x*(+e*c*m-e*l*u+r*a*u-s*a*m+s*l*h-r*c*h)+p*(+e*l*d-e*o*m-r*a*d+n*a*m+r*o*h-n*l*h)+f*(-s*o*h-e*c*d+e*o*u+s*a*d-n*a*u+n*c*h)}transpose(){let t=this.elements,e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){let s=this.elements;return t.isVector3?(s[12]=t.x,s[13]=t.y,s[14]=t.z):(s[12]=t,s[13]=e,s[14]=n),this}invert(){let t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8],d=t[9],u=t[10],m=t[11],g=t[12],x=t[13],p=t[14],f=t[15],v=d*p*l-x*u*l+x*c*m-o*p*m-d*c*f+o*u*f,_=g*u*l-h*p*l-g*c*m+a*p*m+h*c*f-a*u*f,b=h*x*l-g*d*l+g*o*m-a*x*m-h*o*f+a*d*f,S=g*d*c-h*x*c-g*o*u+a*x*u+h*o*p-a*d*p,T=e*v+n*_+s*b+r*S;if(T===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let A=1/T;return t[0]=v*A,t[1]=(x*u*r-d*p*r-x*s*m+n*p*m+d*s*f-n*u*f)*A,t[2]=(o*p*r-x*c*r+x*s*l-n*p*l-o*s*f+n*c*f)*A,t[3]=(d*c*r-o*u*r-d*s*l+n*u*l+o*s*m-n*c*m)*A,t[4]=_*A,t[5]=(h*p*r-g*u*r+g*s*m-e*p*m-h*s*f+e*u*f)*A,t[6]=(g*c*r-a*p*r-g*s*l+e*p*l+a*s*f-e*c*f)*A,t[7]=(a*u*r-h*c*r+h*s*l-e*u*l-a*s*m+e*c*m)*A,t[8]=b*A,t[9]=(g*d*r-h*x*r-g*n*m+e*x*m+h*n*f-e*d*f)*A,t[10]=(a*x*r-g*o*r+g*n*l-e*x*l-a*n*f+e*o*f)*A,t[11]=(h*o*r-a*d*r-h*n*l+e*d*l+a*n*m-e*o*m)*A,t[12]=S*A,t[13]=(h*x*s-g*d*s+g*n*u-e*x*u-h*n*p+e*d*p)*A,t[14]=(g*o*s-a*x*s-g*n*c+e*x*c+a*n*p-e*o*p)*A,t[15]=(a*d*s-h*o*s+h*n*c-e*d*c-a*n*u+e*o*u)*A,this}scale(t){let e=this.elements,n=t.x,s=t.y,r=t.z;return e[0]*=n,e[4]*=s,e[8]*=r,e[1]*=n,e[5]*=s,e[9]*=r,e[2]*=n,e[6]*=s,e[10]*=r,e[3]*=n,e[7]*=s,e[11]*=r,this}getMaxScaleOnAxis(){let t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],s=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,s))}makeTranslation(t,e,n){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){let e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){let n=Math.cos(e),s=Math.sin(e),r=1-n,a=t.x,o=t.y,c=t.z,l=r*a,h=r*o;return this.set(l*a+n,l*o-s*c,l*c+s*o,0,l*o+s*c,h*o+n,h*c-s*a,0,l*c-s*o,h*c+s*a,r*c*c+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,s,r,a){return this.set(1,n,r,0,t,1,a,0,e,s,1,0,0,0,0,1),this}compose(t,e,n){let s=this.elements,r=e._x,a=e._y,o=e._z,c=e._w,l=r+r,h=a+a,d=o+o,u=r*l,m=r*h,g=r*d,x=a*h,p=a*d,f=o*d,v=c*l,_=c*h,b=c*d,S=n.x,T=n.y,A=n.z;return s[0]=(1-(x+f))*S,s[1]=(m+b)*S,s[2]=(g-_)*S,s[3]=0,s[4]=(m-b)*T,s[5]=(1-(u+f))*T,s[6]=(p+v)*T,s[7]=0,s[8]=(g+_)*A,s[9]=(p-v)*A,s[10]=(1-(u+x))*A,s[11]=0,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=1,this}decompose(t,e,n){let s=this.elements,r=Qn.set(s[0],s[1],s[2]).length(),a=Qn.set(s[4],s[5],s[6]).length(),o=Qn.set(s[8],s[9],s[10]).length();this.determinant()<0&&(r=-r),t.x=s[12],t.y=s[13],t.z=s[14],Fe.copy(this);let l=1/r,h=1/a,d=1/o;return Fe.elements[0]*=l,Fe.elements[1]*=l,Fe.elements[2]*=l,Fe.elements[4]*=h,Fe.elements[5]*=h,Fe.elements[6]*=h,Fe.elements[8]*=d,Fe.elements[9]*=d,Fe.elements[10]*=d,e.setFromRotationMatrix(Fe),n.x=r,n.y=a,n.z=o,this}makePerspective(t,e,n,s,r,a,o=on){let c=this.elements,l=2*r/(e-t),h=2*r/(n-s),d=(e+t)/(e-t),u=(n+s)/(n-s),m,g;if(o===on)m=-(a+r)/(a-r),g=-2*a*r/(a-r);else if(o===Ts)m=-a/(a-r),g=-a*r/(a-r);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+o);return c[0]=l,c[4]=0,c[8]=d,c[12]=0,c[1]=0,c[5]=h,c[9]=u,c[13]=0,c[2]=0,c[6]=0,c[10]=m,c[14]=g,c[3]=0,c[7]=0,c[11]=-1,c[15]=0,this}makeOrthographic(t,e,n,s,r,a,o=on){let c=this.elements,l=1/(e-t),h=1/(n-s),d=1/(a-r),u=(e+t)*l,m=(n+s)*h,g,x;if(o===on)g=(a+r)*d,x=-2*d;else if(o===Ts)g=r*d,x=-1*d;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+o);return c[0]=2*l,c[4]=0,c[8]=0,c[12]=-u,c[1]=0,c[5]=2*h,c[9]=0,c[13]=-m,c[2]=0,c[6]=0,c[10]=x,c[14]=-g,c[3]=0,c[7]=0,c[11]=0,c[15]=1,this}equals(t){let e=this.elements,n=t.elements;for(let s=0;s<16;s++)if(e[s]!==n[s])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){let n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}},Qn=new P,Fe=new Gt,ch=new P(0,0,0),lh=new P(1,1,1),gn=new P,rs=new P,we=new P,wa=new Gt,Aa=new En,xi=class{constructor(t=0,e=0,n=0,s=xi.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=s}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,s=this._order){return this._x=t,this._y=e,this._z=n,this._order=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){let s=t.elements,r=s[0],a=s[4],o=s[8],c=s[1],l=s[5],h=s[9],d=s[2],u=s[6],m=s[10];switch(e){case"XYZ":this._y=Math.asin(me(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-me(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(o,m),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-d,r),this._z=0);break;case"ZXY":this._x=Math.asin(me(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-d,m),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(c,r));break;case"ZYX":this._y=Math.asin(-me(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(u,m),this._z=Math.atan2(c,r)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(me(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-d,r)):(this._x=0,this._y=Math.atan2(o,m));break;case"XZY":this._z=Math.asin(-me(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(o,r)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,n===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return wa.makeRotationFromQuaternion(t),this.setFromRotationMatrix(wa,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Aa.setFromEuler(this),this.setFromQuaternion(Aa,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};xi.DEFAULT_ORDER="XYZ";var Ps=class{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){for(let n=0;n0&&(n=n.concat(a))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Oi,t,uh),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Oi,fh,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);let e=this.children;for(let n=0,s=e.length;n0&&(s.userData=this.userData),s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(s.matrixAutoUpdate=!1),this.isInstancedMesh&&(s.type="InstancedMesh",s.count=this.count,s.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(s.instanceColor=this.instanceColor.toJSON()));function r(o,c){return o[c.uuid]===void 0&&(o[c.uuid]=c.toJSON(t)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(s.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=r(t.geometries,this.geometry);let o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){let c=o.shapes;if(Array.isArray(c))for(let l=0,h=c.length;l0){s.children=[];for(let o=0;o0){s.animations=[];for(let o=0;o0&&(n.geometries=o),c.length>0&&(n.materials=c),l.length>0&&(n.textures=l),h.length>0&&(n.images=h),d.length>0&&(n.shapes=d),u.length>0&&(n.skeletons=u),m.length>0&&(n.animations=m),g.length>0&&(n.nodes=g)}return n.object=s,n;function a(o){let c=[];for(let l in o){let h=o[l];delete h.metadata,c.push(h)}return c}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let n=0;n0?s.multiplyScalar(1/Math.sqrt(r)):s.set(0,0,0)}static getBarycoord(t,e,n,s,r){Oe.subVectors(s,e),nn.subVectors(n,e),vr.subVectors(t,e);let a=Oe.dot(Oe),o=Oe.dot(nn),c=Oe.dot(vr),l=nn.dot(nn),h=nn.dot(vr),d=a*l-o*o;if(d===0)return r.set(-2,-1,-1);let u=1/d,m=(l*c-o*h)*u,g=(a*h-o*c)*u;return r.set(1-m-g,g,m)}static containsPoint(t,e,n,s){return this.getBarycoord(t,e,n,s,sn),sn.x>=0&&sn.y>=0&&sn.x+sn.y<=1}static getUV(t,e,n,s,r,a,o,c){return as===!1&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),as=!0),this.getInterpolation(t,e,n,s,r,a,o,c)}static getInterpolation(t,e,n,s,r,a,o,c){return this.getBarycoord(t,e,n,s,sn),c.setScalar(0),c.addScaledVector(r,sn.x),c.addScaledVector(a,sn.y),c.addScaledVector(o,sn.z),c}static isFrontFacing(t,e,n,s){return Oe.subVectors(n,e),nn.subVectors(t,e),Oe.cross(nn).dot(s)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,s){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[s]),this}setFromAttributeAndIndices(t,e,n,s){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,s),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Oe.subVectors(this.c,this.b),nn.subVectors(this.a,this.b),Oe.cross(nn).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return se.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return se.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,s,r){return as===!1&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),as=!0),se.getInterpolation(t,this.a,this.b,this.c,e,n,s,r)}getInterpolation(t,e,n,s,r){return se.getInterpolation(t,this.a,this.b,this.c,e,n,s,r)}containsPoint(t){return se.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return se.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){let n=this.a,s=this.b,r=this.c,a,o;ti.subVectors(s,n),ei.subVectors(r,n),Mr.subVectors(t,n);let c=ti.dot(Mr),l=ei.dot(Mr);if(c<=0&&l<=0)return e.copy(n);Sr.subVectors(t,s);let h=ti.dot(Sr),d=ei.dot(Sr);if(h>=0&&d<=h)return e.copy(s);let u=c*d-h*l;if(u<=0&&c>=0&&h<=0)return a=c/(c-h),e.copy(n).addScaledVector(ti,a);br.subVectors(t,r);let m=ti.dot(br),g=ei.dot(br);if(g>=0&&m<=g)return e.copy(r);let x=m*l-c*g;if(x<=0&&l>=0&&g<=0)return o=l/(l-g),e.copy(n).addScaledVector(ei,o);let p=h*g-m*d;if(p<=0&&d-h>=0&&m-g>=0)return Ua.subVectors(r,s),o=(d-h)/(d-h+(m-g)),e.copy(s).addScaledVector(Ua,o);let f=1/(p+x+u);return a=x*f,o=u*f,e.copy(n).addScaledVector(ti,a).addScaledVector(ei,o)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}},ph=0,yi=class extends bn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:ph++}),this.uuid=qi(),this.name="",this.type="Material",this.blending=fi,this.side=He,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=cc,this.blendDst=lc,this.blendEquation=li,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Lr,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=Gl,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=cr,this.stencilZFail=cr,this.stencilZPass=cr,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(let e in t){let n=t[e];if(n===void 0){console.warn(`THREE.Material: parameter \'${e}\' has value of undefined.`);continue}let s=this[e];if(s===void 0){console.warn(`THREE.Material: \'${e}\' is not a property of THREE.${this.type}.`);continue}s&&s.isColor?s.set(n):s&&s.isVector3&&n&&n.isVector3?s.copy(n):this[e]=n}}toJSON(t){let e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});let n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==fi&&(n.blending=this.blending),this.side!==He&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=this.alphaHash),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.forceSinglePass===!0&&(n.forceSinglePass=this.forceSinglePass),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function s(r){let a=[];for(let o in r){let c=r[o];delete c.metadata,a.push(c)}return a}if(e){let r=s(t.textures),a=s(t.images);r.length>0&&(n.textures=r),a.length>0&&(n.images=a)}return n}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;let e=t.clippingPlanes,n=null;if(e!==null){let s=e.length;n=new Array(s);for(let r=0;r!==s;++r)n[r]=e[r].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){t===!0&&this.version++}},Mc={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Be={h:0,s:0,l:0},cs={h:0,s:0,l:0};function Er(i,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?i+(t-i)*6*e:e<1/2?t:e<2/3?i+(t-i)*6*(2/3-e):i}var kt=class{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(e===void 0&&n===void 0){let s=t;s&&s.isColor?this.copy(s):typeof s=="number"?this.setHex(s):typeof s=="string"&&this.setStyle(s)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Rt){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,Ne.toWorkingColorSpace(this,e),this}setRGB(t,e,n,s=Ne.workingColorSpace){return this.r=t,this.g=e,this.b=n,Ne.toWorkingColorSpace(this,s),this}setHSL(t,e,n,s=Ne.workingColorSpace){if(t=Ql(t,1),e=me(e,0,1),n=me(n,0,1),e===0)this.r=this.g=this.b=n;else{let r=n<=.5?n*(1+e):n+e-n*e,a=2*n-r;this.r=Er(a,r,t+1/3),this.g=Er(a,r,t),this.b=Er(a,r,t-1/3)}return Ne.toWorkingColorSpace(this,s),this}setStyle(t,e=Rt){function n(r){r!==void 0&&parseFloat(r)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let s;if(s=/^(\\w+)\\(([^\\)]*)\\)/.exec(t)){let r,a=s[1],o=s[2];switch(a){case"rgb":case"rgba":if(r=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,e);if(r=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,e);break;case"hsl":case"hsla":if(r=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(s=/^\\#([A-Fa-f\\d]+)$/.exec(t)){let r=s[1],a=r.length;if(a===3)return this.setRGB(parseInt(r.charAt(0),16)/15,parseInt(r.charAt(1),16)/15,parseInt(r.charAt(2),16)/15,e);if(a===6)return this.setHex(parseInt(r,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Rt){let n=Mc[t.toLowerCase()];return n!==void 0?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=di(t.r),this.g=di(t.g),this.b=di(t.b),this}copyLinearToSRGB(t){return this.r=fr(t.r),this.g=fr(t.g),this.b=fr(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Rt){return Ne.fromWorkingColorSpace(le.copy(this),t),Math.round(me(le.r*255,0,255))*65536+Math.round(me(le.g*255,0,255))*256+Math.round(me(le.b*255,0,255))}getHexString(t=Rt){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Ne.workingColorSpace){Ne.fromWorkingColorSpace(le.copy(this),e);let n=le.r,s=le.g,r=le.b,a=Math.max(n,s,r),o=Math.min(n,s,r),c,l,h=(o+a)/2;if(o===a)c=0,l=0;else{let d=a-o;switch(l=h<=.5?d/(a+o):d/(2-a-o),a){case n:c=(s-r)/d+(s0&&(t.userData=this.userData),this.parameters!==void 0){let c=this.parameters;for(let l in c)c[l]!==void 0&&(t[l]=c[l]);return t}t.data={attributes:{}};let e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});let n=this.attributes;for(let c in n){let l=n[c];t.data.attributes[c]=l.toJSON(t.data)}let s={},r=!1;for(let c in this.morphAttributes){let l=this.morphAttributes[c],h=[];for(let d=0,u=l.length;d0&&(s[c]=h,r=!0)}r&&(t.data.morphAttributes=s,t.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(t.data.groups=JSON.parse(JSON.stringify(a)));let o=this.boundingSphere;return o!==null&&(t.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let e={};this.name=t.name;let n=t.index;n!==null&&this.setIndex(n.clone(e));let s=t.attributes;for(let l in s){let h=s[l];this.setAttribute(l,h.clone(e))}let r=t.morphAttributes;for(let l in r){let h=[],d=r[l];for(let u=0,m=d.length;u0){let s=e[n[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=s.length;r(t.far-t.near)**2))&&(Da.copy(r).invert(),In.copy(t.ray).applyMatrix4(Da),!(n.boundingBox!==null&&In.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(t,e,In)))}_computeIntersections(t,e,n){let s,r=this.geometry,a=this.material,o=r.index,c=r.attributes.position,l=r.attributes.uv,h=r.attributes.uv1,d=r.attributes.normal,u=r.groups,m=r.drawRange;if(o!==null)if(Array.isArray(a))for(let g=0,x=u.length;ge.far?null:{distance:l,point:gs.clone(),object:i}}function _s(i,t,e,n,s,r,a,o,c,l){i.getVertexPosition(o,ii),i.getVertexPosition(c,si),i.getVertexPosition(l,ri);let h=gh(i,t,e,n,ii,si,ri,ms);if(h){s&&(fs.fromBufferAttribute(s,o),ds.fromBufferAttribute(s,c),ps.fromBufferAttribute(s,l),h.uv=se.getInterpolation(ms,ii,si,ri,fs,ds,ps,new Nt)),r&&(fs.fromBufferAttribute(r,o),ds.fromBufferAttribute(r,c),ps.fromBufferAttribute(r,l),h.uv1=se.getInterpolation(ms,ii,si,ri,fs,ds,ps,new Nt),h.uv2=h.uv1),a&&(Fa.fromBufferAttribute(a,o),Oa.fromBufferAttribute(a,c),Ba.fromBufferAttribute(a,l),h.normal=se.getInterpolation(ms,ii,si,ri,Fa,Oa,Ba,new P),h.normal.dot(n.direction)>0&&h.normal.multiplyScalar(-1));let d={a:o,b:c,c:l,normal:new P,materialIndex:0};se.getNormal(ii,si,ri,d.normal),h.face=d}return h}var kn=class extends Ge{constructor(t=1,e=1,n=1,s=1,r=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:s,heightSegments:r,depthSegments:a};let o=this;s=Math.floor(s),r=Math.floor(r),a=Math.floor(a);let c=[],l=[],h=[],d=[],u=0,m=0;g("z","y","x",-1,-1,n,e,t,a,r,0),g("z","y","x",1,-1,n,e,-t,a,r,1),g("x","z","y",1,1,t,n,e,s,a,2),g("x","z","y",1,-1,t,n,-e,s,a,3),g("x","y","z",1,-1,t,e,n,s,r,4),g("x","y","z",-1,-1,t,e,-n,s,r,5),this.setIndex(c),this.setAttribute("position",new an(l,3)),this.setAttribute("normal",new an(h,3)),this.setAttribute("uv",new an(d,2));function g(x,p,f,v,_,b,S,T,A,L,y){let w=b/A,z=S/L,Y=b/2,I=S/2,D=T/2,O=A+1,$=L+1,G=0,q=0,J=new P;for(let K=0;K<$;K++){let B=K*z-I;for(let Z=0;Z0?1:-1,h.push(J.x,J.y,J.z),d.push(Z/A),d.push(1-K/L),G+=1}}for(let K=0;K0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;let n={};for(let s in this.extensions)this.extensions[s]===!0&&(n[s]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}},Ds=class extends ve{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Gt,this.projectionMatrix=new Gt,this.projectionMatrixInverse=new Gt,this.coordinateSystem=on}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}},Re=class extends Ds{constructor(t=50,e=1,n=.1,s=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=s,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){let e=.5*this.getFilmHeight()/t;this.fov=Or*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){let t=Math.tan(lr*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return Or*2*Math.atan(Math.tan(lr*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,s,r,a){this.aspect=t/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=s,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=this.near,e=t*Math.tan(lr*.5*this.fov)/this.zoom,n=2*e,s=this.aspect*n,r=-.5*s,a=this.view;if(this.view!==null&&this.view.enabled){let c=a.fullWidth,l=a.fullHeight;r+=a.offsetX*s/c,e-=a.offsetY*n/l,s*=a.width/c,n*=a.height/l}let o=this.filmOffset;o!==0&&(r+=t*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+s,e,e-n,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}},oi=-90,ai=1,Hr=class extends ve{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null;let s=new Re(oi,ai,t,e);s.layers=this.layers,this.add(s);let r=new Re(oi,ai,t,e);r.layers=this.layers,this.add(r);let a=new Re(oi,ai,t,e);a.layers=this.layers,this.add(a);let o=new Re(oi,ai,t,e);o.layers=this.layers,this.add(o);let c=new Re(oi,ai,t,e);c.layers=this.layers,this.add(c);let l=new Re(oi,ai,t,e);l.layers=this.layers,this.add(l)}updateCoordinateSystem(){let t=this.coordinateSystem,e=this.children.concat(),[n,s,r,a,o,c]=e;for(let l of e)this.remove(l);if(t===on)n.up.set(0,1,0),n.lookAt(1,0,0),s.up.set(0,1,0),s.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),a.up.set(0,0,1),a.lookAt(0,-1,0),o.up.set(0,1,0),o.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(t===Ts)n.up.set(0,-1,0),n.lookAt(-1,0,0),s.up.set(0,-1,0),s.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),a.up.set(0,0,-1),a.lookAt(0,-1,0),o.up.set(0,-1,0),o.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);for(let l of e)this.add(l),l.updateMatrixWorld()}update(t,e){this.parent===null&&this.updateMatrixWorld();let n=this.renderTarget;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());let[s,r,a,o,c,l]=this.children,h=t.getRenderTarget(),d=t.xr.enabled;t.xr.enabled=!1;let u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,s),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,a),t.setRenderTarget(n,3),t.render(e,o),t.setRenderTarget(n,4),t.render(e,c),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=d,n.texture.needsPMREMUpdate=!0}},Ns=class extends ge{constructor(t,e,n,s,r,a,o,c,l,h){t=t!==void 0?t:[],e=e!==void 0?e:mi,super(t,e,n,s,r,a,o,c,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}},Gr=class extends cn{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;let n={width:t,height:t,depth:1},s=[n,n,n,n,n,n];e.encoding!==void 0&&(Vi("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),e.colorSpace=e.encoding===Bn?Rt:zn),this.texture=new Ns(s,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:Ie}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,fragmentShader:`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`},s=new kn(5,5,5),r=new ln({name:"CubemapFromEquirect",uniforms:vi(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:he,blending:vn});r.uniforms.tEquirect.value=e;let a=new Ye(s,r),o=e.minFilter;return e.minFilter===Hi&&(e.minFilter=Ie),new Hr(1,10,this).update(t,a),e.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(t,e,n,s){let r=t.getRenderTarget();for(let a=0;a<6;a++)t.setRenderTarget(this,a),t.clear(e,n,s);t.setRenderTarget(r)}},Ar=new P,Mh=new P,Sh=new Ct,Ce=class{constructor(t=new P(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,s){return this.normal.set(t,e,n),this.constant=s,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){let s=Ar.subVectors(n,e).cross(Mh.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(s,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){let t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){let n=t.delta(Ar),s=this.normal.dot(n);if(s===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;let r=-(t.start.dot(this.normal)+this.constant)/s;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){let e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){let n=e||Sh.getNormalMatrix(t),s=this.coplanarPoint(Ar).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-s.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return new this.constructor().copy(this)}},Un=new Vn,xs=new P,Fs=class{constructor(t=new Ce,e=new Ce,n=new Ce,s=new Ce,r=new Ce,a=new Ce){this.planes=[t,e,n,s,r,a]}set(t,e,n,s,r,a){let o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(n),o[3].copy(s),o[4].copy(r),o[5].copy(a),this}copy(t){let e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=on){let n=this.planes,s=t.elements,r=s[0],a=s[1],o=s[2],c=s[3],l=s[4],h=s[5],d=s[6],u=s[7],m=s[8],g=s[9],x=s[10],p=s[11],f=s[12],v=s[13],_=s[14],b=s[15];if(n[0].setComponents(c-r,u-l,p-m,b-f).normalize(),n[1].setComponents(c+r,u+l,p+m,b+f).normalize(),n[2].setComponents(c+a,u+h,p+g,b+v).normalize(),n[3].setComponents(c-a,u-h,p-g,b-v).normalize(),n[4].setComponents(c-o,u-d,p-x,b-_).normalize(),e===on)n[5].setComponents(c+o,u+d,p+x,b+_).normalize();else if(e===Ts)n[5].setComponents(o,d,x,_).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);return this}intersectsObject(t){if(t.boundingSphere!==void 0)t.boundingSphere===null&&t.computeBoundingSphere(),Un.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{let e=t.geometry;e.boundingSphere===null&&e.computeBoundingSphere(),Un.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Un)}intersectsSprite(t){return Un.center.set(0,0,0),Un.radius=.7071067811865476,Un.applyMatrix4(t.matrixWorld),this.intersectsSphere(Un)}intersectsSphere(t){let e=this.planes,n=t.center,s=-t.radius;for(let r=0;r<6;r++)if(e[r].distanceToPoint(n)0?t.max.x:t.min.x,xs.y=s.normal.y>0?t.max.y:t.min.y,xs.z=s.normal.z>0?t.max.z:t.min.z,s.distanceToPoint(xs)<0)return!1}return!0}containsPoint(t){let e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}};function bc(){let i=null,t=!1,e=null,n=null;function s(r,a){e(r,a),n=i.requestAnimationFrame(s)}return{start:function(){t!==!0&&e!==null&&(n=i.requestAnimationFrame(s),t=!0)},stop:function(){i.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(r){e=r},setContext:function(r){i=r}}}function bh(i,t){let e=t.isWebGL2,n=new WeakMap;function s(l,h){let d=l.array,u=l.usage,m=i.createBuffer();i.bindBuffer(h,m),i.bufferData(h,d,u),l.onUploadCallback();let g;if(d instanceof Float32Array)g=i.FLOAT;else if(d instanceof Uint16Array)if(l.isFloat16BufferAttribute)if(e)g=i.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else g=i.UNSIGNED_SHORT;else if(d instanceof Int16Array)g=i.SHORT;else if(d instanceof Uint32Array)g=i.UNSIGNED_INT;else if(d instanceof Int32Array)g=i.INT;else if(d instanceof Int8Array)g=i.BYTE;else if(d instanceof Uint8Array)g=i.UNSIGNED_BYTE;else if(d instanceof Uint8ClampedArray)g=i.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+d);return{buffer:m,type:g,bytesPerElement:d.BYTES_PER_ELEMENT,version:l.version}}function r(l,h,d){let u=h.array,m=h.updateRange;i.bindBuffer(d,l),m.count===-1?i.bufferSubData(d,0,u):(e?i.bufferSubData(d,m.offset*u.BYTES_PER_ELEMENT,u,m.offset,m.count):i.bufferSubData(d,m.offset*u.BYTES_PER_ELEMENT,u.subarray(m.offset,m.offset+m.count)),m.count=-1),h.onUploadCallback()}function a(l){return l.isInterleavedBufferAttribute&&(l=l.data),n.get(l)}function o(l){l.isInterleavedBufferAttribute&&(l=l.data);let h=n.get(l);h&&(i.deleteBuffer(h.buffer),n.delete(l))}function c(l,h){if(l.isGLBufferAttribute){let u=n.get(l);(!u||u.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif`,Bh=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif`,zh=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif`,Vh=`#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif`,kh=`#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif`,Hh=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif`,Gh=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif`,Wh=`#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif`,Xh=`#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated`,qh=`#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif`,Yh=`vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif`,Zh=`#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif`,Jh=`#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif`,$h=`#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif`,Kh=`#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif`,Qh="gl_FragColor = linearToOutputTexel( gl_FragColor );",jh=`vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}`,tu=`#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif`,eu=`#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif`,nu=`#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif`,iu=`#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif`,su=`#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif`,ru=`#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif`,ou=`#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif`,au=`#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif`,cu=`#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif`,lu=`#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}`,hu=`#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif`,uu=`#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif`,fu=`LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;`,du=`varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert`,pu=`uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif`,mu=`#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif`,gu=`ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;`,_u=`varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon`,xu=`BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;`,yu=`varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong`,vu=`PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif`,Mu=`struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}`,Su=`\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif`,bu=`#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif`,Eu=`#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif`,Tu=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif`,wu=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif`,Au=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif`,Ru=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif`,Cu=`#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, vMapUv );\n#endif`,Pu=`#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif`,Lu=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif`,Iu=`#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif`,Uu=`float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif`,Du=`#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif`,Nu=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif`,Fu=`#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif`,Ou=`#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif`,Bu=`#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif`,zu=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;`,Vu=`#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif`,ku=`#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif`,Hu=`#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif`,Gu=`#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif`,Wu=`#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif`,Xu=`#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif`,qu=`#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif`,Yu=`#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif`,Zu=`#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif`,Ju=`#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );`,$u=`vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}`,Ku=`#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif`,Qu=`vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;`,ju=`#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif`,tf=`#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif`,ef=`float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif`,nf=`#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif`,sf=`#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif`,rf=`#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif`,of=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif`,af=`float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}`,cf=`#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif`,lf=`#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif`,hf=`#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif`,uf=`#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif`,ff=`float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif`,df=`#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif`,pf=`#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif`,mf=`#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }`,gf=`#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif`,_f=`#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif`,xf=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif`,yf=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif`,vf=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif`,Mf=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif`,Sf=`varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}`,bf=`uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}`,Ef=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}`,Tf=`#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}`,wf=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}`,Af=`uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}`,Rf=`#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}`,Cf=`#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}`,Pf=`#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}`,Lf=`#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}`,If=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}`,Uf=`uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}`,Df=`uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Nf=`uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Ff=`#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Of=`uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Bf=`#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,zf=`#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Vf=`#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}`,kf=`#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Hf=`#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}`,Gf=`#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}`,Wf=`#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,Xf=`#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,qf=`#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}`,Yf=`#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Zf=`#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}`,Jf=`#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,$f=`uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}`,Kf=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Qf=`#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,jf=`uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}`,td=`uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}`,ed=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,At={alphahash_fragment:Eh,alphahash_pars_fragment:Th,alphamap_fragment:wh,alphamap_pars_fragment:Ah,alphatest_fragment:Rh,alphatest_pars_fragment:Ch,aomap_fragment:Ph,aomap_pars_fragment:Lh,begin_vertex:Ih,beginnormal_vertex:Uh,bsdfs:Dh,iridescence_fragment:Nh,bumpmap_pars_fragment:Fh,clipping_planes_fragment:Oh,clipping_planes_pars_fragment:Bh,clipping_planes_pars_vertex:zh,clipping_planes_vertex:Vh,color_fragment:kh,color_pars_fragment:Hh,color_pars_vertex:Gh,color_vertex:Wh,common:Xh,cube_uv_reflection_fragment:qh,defaultnormal_vertex:Yh,displacementmap_pars_vertex:Zh,displacementmap_vertex:Jh,emissivemap_fragment:$h,emissivemap_pars_fragment:Kh,colorspace_fragment:Qh,colorspace_pars_fragment:jh,envmap_fragment:tu,envmap_common_pars_fragment:eu,envmap_pars_fragment:nu,envmap_pars_vertex:iu,envmap_physical_pars_fragment:mu,envmap_vertex:su,fog_vertex:ru,fog_pars_vertex:ou,fog_fragment:au,fog_pars_fragment:cu,gradientmap_pars_fragment:lu,lightmap_fragment:hu,lightmap_pars_fragment:uu,lights_lambert_fragment:fu,lights_lambert_pars_fragment:du,lights_pars_begin:pu,lights_toon_fragment:gu,lights_toon_pars_fragment:_u,lights_phong_fragment:xu,lights_phong_pars_fragment:yu,lights_physical_fragment:vu,lights_physical_pars_fragment:Mu,lights_fragment_begin:Su,lights_fragment_maps:bu,lights_fragment_end:Eu,logdepthbuf_fragment:Tu,logdepthbuf_pars_fragment:wu,logdepthbuf_pars_vertex:Au,logdepthbuf_vertex:Ru,map_fragment:Cu,map_pars_fragment:Pu,map_particle_fragment:Lu,map_particle_pars_fragment:Iu,metalnessmap_fragment:Uu,metalnessmap_pars_fragment:Du,morphcolor_vertex:Nu,morphnormal_vertex:Fu,morphtarget_pars_vertex:Ou,morphtarget_vertex:Bu,normal_fragment_begin:zu,normal_fragment_maps:Vu,normal_pars_fragment:ku,normal_pars_vertex:Hu,normal_vertex:Gu,normalmap_pars_fragment:Wu,clearcoat_normal_fragment_begin:Xu,clearcoat_normal_fragment_maps:qu,clearcoat_pars_fragment:Yu,iridescence_pars_fragment:Zu,opaque_fragment:Ju,packing:$u,premultiplied_alpha_fragment:Ku,project_vertex:Qu,dithering_fragment:ju,dithering_pars_fragment:tf,roughnessmap_fragment:ef,roughnessmap_pars_fragment:nf,shadowmap_pars_fragment:sf,shadowmap_pars_vertex:rf,shadowmap_vertex:of,shadowmask_pars_fragment:af,skinbase_vertex:cf,skinning_pars_vertex:lf,skinning_vertex:hf,skinnormal_vertex:uf,specularmap_fragment:ff,specularmap_pars_fragment:df,tonemapping_fragment:pf,tonemapping_pars_fragment:mf,transmission_fragment:gf,transmission_pars_fragment:_f,uv_pars_fragment:xf,uv_pars_vertex:yf,uv_vertex:vf,worldpos_vertex:Mf,background_vert:Sf,background_frag:bf,backgroundCube_vert:Ef,backgroundCube_frag:Tf,cube_vert:wf,cube_frag:Af,depth_vert:Rf,depth_frag:Cf,distanceRGBA_vert:Pf,distanceRGBA_frag:Lf,equirect_vert:If,equirect_frag:Uf,linedashed_vert:Df,linedashed_frag:Nf,meshbasic_vert:Ff,meshbasic_frag:Of,meshlambert_vert:Bf,meshlambert_frag:zf,meshmatcap_vert:Vf,meshmatcap_frag:kf,meshnormal_vert:Hf,meshnormal_frag:Gf,meshphong_vert:Wf,meshphong_frag:Xf,meshphysical_vert:qf,meshphysical_frag:Yf,meshtoon_vert:Zf,meshtoon_frag:Jf,points_vert:$f,points_frag:Kf,shadow_vert:Qf,shadow_frag:jf,sprite_vert:td,sprite_frag:ed},it={common:{diffuse:{value:new kt(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ct},alphaMap:{value:null},alphaMapTransform:{value:new Ct},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ct}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ct}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ct}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ct},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ct},normalScale:{value:new Nt(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ct},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ct}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ct}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ct}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new kt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new kt(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ct},alphaTest:{value:0},uvTransform:{value:new Ct}},sprite:{diffuse:{value:new kt(16777215)},opacity:{value:1},center:{value:new Nt(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ct},alphaMap:{value:null},alphaMapTransform:{value:new Ct},alphaTest:{value:0}}},qe={basic:{uniforms:de([it.common,it.specularmap,it.envmap,it.aomap,it.lightmap,it.fog]),vertexShader:At.meshbasic_vert,fragmentShader:At.meshbasic_frag},lambert:{uniforms:de([it.common,it.specularmap,it.envmap,it.aomap,it.lightmap,it.emissivemap,it.bumpmap,it.normalmap,it.displacementmap,it.fog,it.lights,{emissive:{value:new kt(0)}}]),vertexShader:At.meshlambert_vert,fragmentShader:At.meshlambert_frag},phong:{uniforms:de([it.common,it.specularmap,it.envmap,it.aomap,it.lightmap,it.emissivemap,it.bumpmap,it.normalmap,it.displacementmap,it.fog,it.lights,{emissive:{value:new kt(0)},specular:{value:new kt(1118481)},shininess:{value:30}}]),vertexShader:At.meshphong_vert,fragmentShader:At.meshphong_frag},standard:{uniforms:de([it.common,it.envmap,it.aomap,it.lightmap,it.emissivemap,it.bumpmap,it.normalmap,it.displacementmap,it.roughnessmap,it.metalnessmap,it.fog,it.lights,{emissive:{value:new kt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:At.meshphysical_vert,fragmentShader:At.meshphysical_frag},toon:{uniforms:de([it.common,it.aomap,it.lightmap,it.emissivemap,it.bumpmap,it.normalmap,it.displacementmap,it.gradientmap,it.fog,it.lights,{emissive:{value:new kt(0)}}]),vertexShader:At.meshtoon_vert,fragmentShader:At.meshtoon_frag},matcap:{uniforms:de([it.common,it.bumpmap,it.normalmap,it.displacementmap,it.fog,{matcap:{value:null}}]),vertexShader:At.meshmatcap_vert,fragmentShader:At.meshmatcap_frag},points:{uniforms:de([it.points,it.fog]),vertexShader:At.points_vert,fragmentShader:At.points_frag},dashed:{uniforms:de([it.common,it.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:At.linedashed_vert,fragmentShader:At.linedashed_frag},depth:{uniforms:de([it.common,it.displacementmap]),vertexShader:At.depth_vert,fragmentShader:At.depth_frag},normal:{uniforms:de([it.common,it.bumpmap,it.normalmap,it.displacementmap,{opacity:{value:1}}]),vertexShader:At.meshnormal_vert,fragmentShader:At.meshnormal_frag},sprite:{uniforms:de([it.sprite,it.fog]),vertexShader:At.sprite_vert,fragmentShader:At.sprite_frag},background:{uniforms:{uvTransform:{value:new Ct},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:At.background_vert,fragmentShader:At.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:At.backgroundCube_vert,fragmentShader:At.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:At.cube_vert,fragmentShader:At.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:At.equirect_vert,fragmentShader:At.equirect_frag},distanceRGBA:{uniforms:de([it.common,it.displacementmap,{referencePosition:{value:new P},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:At.distanceRGBA_vert,fragmentShader:At.distanceRGBA_frag},shadow:{uniforms:de([it.lights,it.fog,{color:{value:new kt(0)},opacity:{value:1}}]),vertexShader:At.shadow_vert,fragmentShader:At.shadow_frag}};qe.physical={uniforms:de([qe.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ct},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ct},clearcoatNormalScale:{value:new Nt(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ct},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ct},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ct},sheen:{value:0},sheenColor:{value:new kt(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ct},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ct},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ct},transmissionSamplerSize:{value:new Nt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ct},attenuationDistance:{value:0},attenuationColor:{value:new kt(0)},specularColor:{value:new kt(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ct},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ct},anisotropyVector:{value:new Nt},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ct}}]),vertexShader:At.meshphysical_vert,fragmentShader:At.meshphysical_frag};var ys={r:0,b:0,g:0};function nd(i,t,e,n,s,r,a){let o=new kt(0),c=r===!0?0:1,l,h,d=null,u=0,m=null;function g(p,f){let v=!1,_=f.isScene===!0?f.background:null;switch(_&&_.isTexture&&(_=(f.backgroundBlurriness>0?e:t).get(_)),_===null?x(o,c):_&&_.isColor&&(x(_,1),v=!0),i.xr.getEnvironmentBlendMode()){case"opaque":v=!0;break;case"additive":n.buffers.color.setClear(0,0,0,1,a),v=!0;break;case"alpha-blend":n.buffers.color.setClear(0,0,0,0,a),v=!0;break}(i.autoClear||v)&&i.clear(i.autoClearColor,i.autoClearDepth,i.autoClearStencil),_&&(_.isCubeTexture||_.mapping===Bs)?(h===void 0&&(h=new Ye(new kn(1,1,1),new ln({name:"BackgroundCubeMaterial",uniforms:vi(qe.backgroundCube.uniforms),vertexShader:qe.backgroundCube.vertexShader,fragmentShader:qe.backgroundCube.fragmentShader,side:he,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(T,A,L){this.matrixWorld.copyPosition(L.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),s.update(h)),h.material.uniforms.envMap.value=_,h.material.uniforms.flipEnvMap.value=_.isCubeTexture&&_.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=f.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=f.backgroundIntensity,h.material.toneMapped=_.colorSpace!==Rt,(d!==_||u!==_.version||m!==i.toneMapping)&&(h.material.needsUpdate=!0,d=_,u=_.version,m=i.toneMapping),h.layers.enableAll(),p.unshift(h,h.geometry,h.material,0,0,null)):_&&_.isTexture&&(l===void 0&&(l=new Ye(new Wi(2,2),new ln({name:"BackgroundMaterial",uniforms:vi(qe.background.uniforms),vertexShader:qe.background.vertexShader,fragmentShader:qe.background.fragmentShader,side:He,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),s.update(l)),l.material.uniforms.t2D.value=_,l.material.uniforms.backgroundIntensity.value=f.backgroundIntensity,l.material.toneMapped=_.colorSpace!==Rt,_.matrixAutoUpdate===!0&&_.updateMatrix(),l.material.uniforms.uvTransform.value.copy(_.matrix),(d!==_||u!==_.version||m!==i.toneMapping)&&(l.material.needsUpdate=!0,d=_,u=_.version,m=i.toneMapping),l.layers.enableAll(),p.unshift(l,l.geometry,l.material,0,0,null))}function x(p,f){p.getRGB(ys,Sc(i)),n.buffers.color.setClear(ys.r,ys.g,ys.b,f,a)}return{getClearColor:function(){return o},setClearColor:function(p,f=1){o.set(p),c=f,x(o,c)},getClearAlpha:function(){return c},setClearAlpha:function(p){c=p,x(o,c)},render:g}}function id(i,t,e,n){let s=i.getParameter(i.MAX_VERTEX_ATTRIBS),r=n.isWebGL2?null:t.get("OES_vertex_array_object"),a=n.isWebGL2||r!==null,o={},c=p(null),l=c,h=!1;function d(D,O,$,G,q){let J=!1;if(a){let K=x(G,$,O);l!==K&&(l=K,m(l.object)),J=f(D,G,$,q),J&&v(D,G,$,q)}else{let K=O.wireframe===!0;(l.geometry!==G.id||l.program!==$.id||l.wireframe!==K)&&(l.geometry=G.id,l.program=$.id,l.wireframe=K,J=!0)}q!==null&&e.update(q,i.ELEMENT_ARRAY_BUFFER),(J||h)&&(h=!1,L(D,O,$,G),q!==null&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,e.get(q).buffer))}function u(){return n.isWebGL2?i.createVertexArray():r.createVertexArrayOES()}function m(D){return n.isWebGL2?i.bindVertexArray(D):r.bindVertexArrayOES(D)}function g(D){return n.isWebGL2?i.deleteVertexArray(D):r.deleteVertexArrayOES(D)}function x(D,O,$){let G=$.wireframe===!0,q=o[D.id];q===void 0&&(q={},o[D.id]=q);let J=q[O.id];J===void 0&&(J={},q[O.id]=J);let K=J[G];return K===void 0&&(K=p(u()),J[G]=K),K}function p(D){let O=[],$=[],G=[];for(let q=0;q=0){let at=q[Z],ct=J[Z];if(ct===void 0&&(Z==="instanceMatrix"&&D.instanceMatrix&&(ct=D.instanceMatrix),Z==="instanceColor"&&D.instanceColor&&(ct=D.instanceColor)),at===void 0||at.attribute!==ct||ct&&at.data!==ct.data)return!0;K++}return l.attributesNum!==K||l.index!==G}function v(D,O,$,G){let q={},J=O.attributes,K=0,B=$.getAttributes();for(let Z in B)if(B[Z].location>=0){let at=J[Z];at===void 0&&(Z==="instanceMatrix"&&D.instanceMatrix&&(at=D.instanceMatrix),Z==="instanceColor"&&D.instanceColor&&(at=D.instanceColor));let ct={};ct.attribute=at,at&&at.data&&(ct.data=at.data),q[Z]=ct,K++}l.attributes=q,l.attributesNum=K,l.index=G}function _(){let D=l.newAttributes;for(let O=0,$=D.length;O<$;O++)D[O]=0}function b(D){S(D,0)}function S(D,O){let $=l.newAttributes,G=l.enabledAttributes,q=l.attributeDivisors;$[D]=1,G[D]===0&&(i.enableVertexAttribArray(D),G[D]=1),q[D]!==O&&((n.isWebGL2?i:t.get("ANGLE_instanced_arrays"))[n.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](D,O),q[D]=O)}function T(){let D=l.newAttributes,O=l.enabledAttributes;for(let $=0,G=O.length;$=0){let ot=q[B];if(ot===void 0&&(B==="instanceMatrix"&&D.instanceMatrix&&(ot=D.instanceMatrix),B==="instanceColor"&&D.instanceColor&&(ot=D.instanceColor)),ot!==void 0){let at=ot.normalized,ct=ot.itemSize,_t=e.get(ot);if(_t===void 0)continue;let Et=_t.buffer,xt=_t.type,zt=_t.bytesPerElement,xe=n.isWebGL2===!0&&(xt===i.INT||xt===i.UNSIGNED_INT||ot.gpuType===fc);if(ot.isInterleavedBufferAttribute){let Pt=ot.data,F=Pt.stride,oe=ot.offset;if(Pt.isInstancedInterleavedBuffer){for(let yt=0;yt0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision>0)return"highp";A="mediump"}return A==="mediump"&&i.getShaderPrecisionFormat(i.VERTEX_SHADER,i.MEDIUM_FLOAT).precision>0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let a=typeof WebGL2RenderingContext!="undefined"&&i.constructor.name==="WebGL2RenderingContext",o=e.precision!==void 0?e.precision:"highp",c=r(o);c!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",c,"instead."),o=c);let l=a||t.has("WEBGL_draw_buffers"),h=e.logarithmicDepthBuffer===!0,d=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),u=i.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),m=i.getParameter(i.MAX_TEXTURE_SIZE),g=i.getParameter(i.MAX_CUBE_MAP_TEXTURE_SIZE),x=i.getParameter(i.MAX_VERTEX_ATTRIBS),p=i.getParameter(i.MAX_VERTEX_UNIFORM_VECTORS),f=i.getParameter(i.MAX_VARYING_VECTORS),v=i.getParameter(i.MAX_FRAGMENT_UNIFORM_VECTORS),_=u>0,b=a||t.has("OES_texture_float"),S=_&&b,T=a?i.getParameter(i.MAX_SAMPLES):0;return{isWebGL2:a,drawBuffers:l,getMaxAnisotropy:s,getMaxPrecision:r,precision:o,logarithmicDepthBuffer:h,maxTextures:d,maxVertexTextures:u,maxTextureSize:m,maxCubemapSize:g,maxAttributes:x,maxVertexUniforms:p,maxVaryings:f,maxFragmentUniforms:v,vertexTextures:_,floatFragmentTextures:b,floatVertexTextures:S,maxSamples:T}}function od(i){let t=this,e=null,n=0,s=!1,r=!1,a=new Ce,o=new Ct,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(d,u){let m=d.length!==0||u||n!==0||s;return s=u,n=d.length,m},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1},this.setGlobalState=function(d,u){e=h(d,u,0)},this.setState=function(d,u,m){let g=d.clippingPlanes,x=d.clipIntersection,p=d.clipShadows,f=i.get(d);if(!s||g===null||g.length===0||r&&!p)r?h(null):l();else{let v=r?0:n,_=v*4,b=f.clippingState||null;c.value=b,b=h(g,u,_,m);for(let S=0;S!==_;++S)b[S]=e[S];f.clippingState=b,this.numIntersection=x?this.numPlanes:0,this.numPlanes+=v}};function l(){c.value!==e&&(c.value=e,c.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function h(d,u,m,g){let x=d!==null?d.length:0,p=null;if(x!==0){if(p=c.value,g!==!0||p===null){let f=m+x*4,v=u.matrixWorldInverse;o.getNormalMatrix(v),(p===null||p.length0){let l=new Gr(c.height/2);return l.fromEquirectangularTexture(i,a),t.set(a,l),a.addEventListener("dispose",s),e(l.texture,a.mapping)}else return null}}return a}function s(a){let o=a.target;o.removeEventListener("dispose",s);let c=t.get(o);c!==void 0&&(t.delete(o),c.dispose())}function r(){t=new WeakMap}return{get:n,dispose:r}}var Wr=class extends Ds{constructor(t=-1,e=1,n=1,s=-1,r=.1,a=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=s,this.near=r,this.far=a,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=t.view===null?null:Object.assign({},t.view),this}setViewOffset(t,e,n,s,r,a){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=s,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,s=(this.top+this.bottom)/2,r=n-t,a=n+t,o=s+e,c=s-e;if(this.view!==null&&this.view.enabled){let l=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=l*this.view.offsetX,a=r+l*this.view.width,o-=h*this.view.offsetY,c=o-h*this.view.height}this.projectionMatrix.makeOrthographic(r,a,o,c,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,this.view!==null&&(e.object.view=Object.assign({},this.view)),e}},hi=4,za=[.125,.215,.35,.446,.526,.582],Nn=20,Rr=new Wr,Va=new kt,Cr=null,Dn=(1+Math.sqrt(5))/2,ci=1/Dn,ka=[new P(1,1,1),new P(-1,1,1),new P(1,1,-1),new P(-1,1,-1),new P(0,Dn,ci),new P(0,Dn,-ci),new P(ci,0,Dn),new P(-ci,0,Dn),new P(Dn,ci,0),new P(-Dn,ci,0)],Os=class{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,s=100){Cr=this._renderer.getRenderTarget(),this._setSize(256);let r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,s,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Wa(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Ga(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t2?_:0,_,_),h.setRenderTarget(s),x&&h.render(g,o),h.render(t,o)}g.geometry.dispose(),g.material.dispose(),h.toneMapping=u,h.autoClear=d,t.background=p}_textureToCubeUV(t,e){let n=this._renderer,s=t.mapping===mi||t.mapping===gi;s?(this._cubemapMaterial===null&&(this._cubemapMaterial=Wa()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Ga());let r=s?this._cubemapMaterial:this._equirectMaterial,a=new Ye(this._lodPlanes[0],r),o=r.uniforms;o.envMap.value=t;let c=this._cubeSize;vs(e,0,0,3*c,2*c),n.setRenderTarget(e),n.render(a,Rr)}_applyPMREM(t){let e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let s=1;sNn&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${p} samples when the maximum is set to ${Nn}`);let f=[],v=0;for(let A=0;A_-hi?s-_+hi:0),T=4*(this._cubeSize-b);vs(e,S,T,3*b,2*b),c.setRenderTarget(e),c.render(d,Rr)}};function cd(i){let t=[],e=[],n=[],s=i,r=i-hi+1+za.length;for(let a=0;ai-hi?c=za[a-i+hi-1]:a===0&&(c=0),n.push(c);let l=1/(o-2),h=-l,d=1+l,u=[h,h,d,h,d,d,h,h,d,d,h,d],m=6,g=6,x=3,p=2,f=1,v=new Float32Array(x*g*m),_=new Float32Array(p*g*m),b=new Float32Array(f*g*m);for(let T=0;T2?0:-1,y=[A,L,0,A+2/3,L,0,A+2/3,L+1,0,A,L,0,A+2/3,L+1,0,A,L+1,0];v.set(y,x*g*T),_.set(u,p*g*T);let w=[T,T,T,T,T,T];b.set(w,f*g*T)}let S=new Ge;S.setAttribute("position",new te(v,x)),S.setAttribute("uv",new te(_,p)),S.setAttribute("faceIndex",new te(b,f)),t.push(S),s>hi&&s--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function Ha(i,t,e){let n=new cn(i,t,e);return n.texture.mapping=Bs,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function vs(i,t,e,n,s){i.viewport.set(t,e,n,s),i.scissor.set(t,e,n,s)}function ld(i,t,e){let n=new Float32Array(Nn),s=new P(0,1,0);return new ln({name:"SphericalGaussianBlur",defines:{n:Nn,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${i}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:s}},vertexShader:_o(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues\' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t`,blending:vn,depthTest:!1,depthWrite:!1})}function Ga(){return new ln({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:_o(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`,blending:vn,depthTest:!1,depthWrite:!1})}function Wa(){return new ln({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:_o(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`,blending:vn,depthTest:!1,depthWrite:!1})}function _o(){return`\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t`}function hd(i){let t=new WeakMap,e=null;function n(o){if(o&&o.isTexture){let c=o.mapping,l=c===Ir||c===Ur,h=c===mi||c===gi;if(l||h)if(o.isRenderTargetTexture&&o.needsPMREMUpdate===!0){o.needsPMREMUpdate=!1;let d=t.get(o);return e===null&&(e=new Os(i)),d=l?e.fromEquirectangular(o,d):e.fromCubemap(o,d),t.set(o,d),d.texture}else{if(t.has(o))return t.get(o).texture;{let d=o.image;if(l&&d&&d.height>0||h&&d&&s(d)){e===null&&(e=new Os(i));let u=l?e.fromEquirectangular(o):e.fromCubemap(o);return t.set(o,u),o.addEventListener("dispose",r),u.texture}else return null}}}return o}function s(o){let c=0,l=6;for(let h=0;ht.maxTextureSize&&(w=Math.ceil(y/t.maxTextureSize),y=t.maxTextureSize);let z=new Float32Array(y*w*4*g),Y=new Cs(z,y,w,g);Y.type=yn,Y.needsUpdate=!0;let I=L*4;for(let O=0;O0)return i;let s=t*e,r=Xa[s];if(r===void 0&&(r=new Float32Array(s),Xa[s]=r),t!==0){n.toArray(r,0);for(let a=1,o=0;a!==t;++a)o+=e,i[a].toArray(r,o)}return r}function ee(i,t){if(i.length!==t.length)return!1;for(let e=0,n=i.length;e":" "} ${o}: ${e[a]}`)}return n.join(`\n`)}function cp(i){switch(i){case Ze:return["Linear","( value )"];case Rt:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",i),["Linear","( value )"]}}function Qa(i,t,e){let n=i.getShaderParameter(t,i.COMPILE_STATUS),s=i.getShaderInfoLog(t).trim();if(n&&s==="")return"";let r=/ERROR: 0:(\\d+)/.exec(s);if(r){let a=parseInt(r[1]);return e.toUpperCase()+`\n\n`+s+`\n\n`+ap(i.getShaderSource(t),a)}else return s}function lp(i,t){let e=cp(t);return"vec4 "+i+"( vec4 value ) { return LinearTo"+e[0]+e[1]+"; }"}function hp(i,t){let e;switch(t){case El:e="Linear";break;case Tl:e="Reinhard";break;case wl:e="OptimizedCineon";break;case Al:e="ACESFilmic";break;case Rl:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+i+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}function up(i){return[i.extensionDerivatives||i.envMapCubeUVHeight||i.bumpMap||i.normalMapTangentSpace||i.clearcoatNormalMap||i.flatShading||i.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(i.extensionFragDepth||i.logarithmicDepthBuffer)&&i.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",i.extensionDrawBuffers&&i.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(i.extensionShaderTextureLOD||i.envMap||i.transmission)&&i.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(zi).join(`\n`)}function fp(i){let t=[];for(let e in i){let n=i[e];n!==!1&&t.push("#define "+e+" "+n)}return t.join(`\n`)}function dp(i,t){let e={},n=i.getProgramParameter(t,i.ACTIVE_ATTRIBUTES);for(let s=0;s/gm;function Zr(i){return i.replace(pp,gp)}var mp=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function gp(i,t){let e=At[t];if(e===void 0){let n=mp.get(t);if(n!==void 0)e=At[n],console.warn(\'THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.\',t,n);else throw new Error("Can not resolve #include <"+t+">")}return Zr(e)}var _p=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function ec(i){return i.replace(_p,xp)}function xp(i,t,e,n){let s="";for(let r=parseInt(t);r0&&(p+=`\n`),f=[m,"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g].filter(zi).join(`\n`),f.length>0&&(f+=`\n`)):(p=[nc(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g,e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+h:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.displacementMap?"#define USE_DISPLACEMENTMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.mapUv?"#define MAP_UV "+e.mapUv:"",e.alphaMapUv?"#define ALPHAMAP_UV "+e.alphaMapUv:"",e.lightMapUv?"#define LIGHTMAP_UV "+e.lightMapUv:"",e.aoMapUv?"#define AOMAP_UV "+e.aoMapUv:"",e.emissiveMapUv?"#define EMISSIVEMAP_UV "+e.emissiveMapUv:"",e.bumpMapUv?"#define BUMPMAP_UV "+e.bumpMapUv:"",e.normalMapUv?"#define NORMALMAP_UV "+e.normalMapUv:"",e.displacementMapUv?"#define DISPLACEMENTMAP_UV "+e.displacementMapUv:"",e.metalnessMapUv?"#define METALNESSMAP_UV "+e.metalnessMapUv:"",e.roughnessMapUv?"#define ROUGHNESSMAP_UV "+e.roughnessMapUv:"",e.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+e.anisotropyMapUv:"",e.clearcoatMapUv?"#define CLEARCOATMAP_UV "+e.clearcoatMapUv:"",e.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+e.clearcoatNormalMapUv:"",e.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+e.clearcoatRoughnessMapUv:"",e.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+e.iridescenceMapUv:"",e.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+e.iridescenceThicknessMapUv:"",e.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+e.sheenColorMapUv:"",e.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+e.sheenRoughnessMapUv:"",e.specularMapUv?"#define SPECULARMAP_UV "+e.specularMapUv:"",e.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+e.specularColorMapUv:"",e.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+e.specularIntensityMapUv:"",e.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+e.transmissionMapUv:"",e.thicknessMapUv?"#define THICKNESSMAP_UV "+e.thicknessMapUv:"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors&&e.isWebGL2?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.useLegacyLights?"#define LEGACY_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif",`\n`].filter(zi).join(`\n`),f=[m,nc(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+l:"",e.envMap?"#define "+h:"",e.envMap?"#define "+d:"",u?"#define CUBEUV_TEXEL_WIDTH "+u.texelWidth:"",u?"#define CUBEUV_TEXEL_HEIGHT "+u.texelHeight:"",u?"#define CUBEUV_MAX_MIP "+u.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.useLegacyLights?"#define LEGACY_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==Mn?"#define TONE_MAPPING":"",e.toneMapping!==Mn?At.tonemapping_pars_fragment:"",e.toneMapping!==Mn?hp("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",At.colorspace_pars_fragment,lp("linearToOutputTexel",e.outputColorSpace),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",`\n`].filter(zi).join(`\n`)),a=Zr(a),a=ja(a,e),a=tc(a,e),o=Zr(o),o=ja(o,e),o=tc(o,e),a=ec(a),o=ec(o),e.isWebGL2&&e.isRawShaderMaterial!==!0&&(v=`#version 300 es\n`,p=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(`\n`)+`\n`+p,f=["#define varying in",e.glslVersion===Sa?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===Sa?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(`\n`)+`\n`+f);let _=v+p+a,b=v+f+o,S=Ka(s,s.VERTEX_SHADER,_),T=Ka(s,s.FRAGMENT_SHADER,b);if(s.attachShader(x,S),s.attachShader(x,T),e.index0AttributeName!==void 0?s.bindAttribLocation(x,0,e.index0AttributeName):e.morphTargets===!0&&s.bindAttribLocation(x,0,"position"),s.linkProgram(x),i.debug.checkShaderErrors){let y=s.getProgramInfoLog(x).trim(),w=s.getShaderInfoLog(S).trim(),z=s.getShaderInfoLog(T).trim(),Y=!0,I=!0;if(s.getProgramParameter(x,s.LINK_STATUS)===!1)if(Y=!1,typeof i.debug.onShaderError=="function")i.debug.onShaderError(s,x,S,T);else{let D=Qa(s,S,"vertex"),O=Qa(s,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+s.getError()+" - VALIDATE_STATUS "+s.getProgramParameter(x,s.VALIDATE_STATUS)+`\n\nProgram Info Log: `+y+`\n`+D+`\n`+O)}else y!==""?console.warn("THREE.WebGLProgram: Program Info Log:",y):(w===""||z==="")&&(I=!1);I&&(this.diagnostics={runnable:Y,programLog:y,vertexShader:{log:w,prefix:p},fragmentShader:{log:z,prefix:f}})}s.deleteShader(S),s.deleteShader(T);let A;this.getUniforms=function(){return A===void 0&&(A=new pi(s,x)),A};let L;return this.getAttributes=function(){return L===void 0&&(L=dp(s,x)),L},this.destroy=function(){n.releaseStatesOfProgram(this),s.deleteProgram(x),this.program=void 0},this.type=e.shaderType,this.name=e.shaderName,this.id=op++,this.cacheKey=t,this.usedTimes=1,this.program=x,this.vertexShader=S,this.fragmentShader=T,this}var Tp=0,Jr=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){let e=t.vertexShader,n=t.fragmentShader,s=this._getShaderStage(e),r=this._getShaderStage(n),a=this._getShaderCacheForMaterial(t);return a.has(s)===!1&&(a.add(s),s.usedTimes++),a.has(r)===!1&&(a.add(r),r.usedTimes++),this}remove(t){let e=this.materialCache.get(t);for(let n of e)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){let e=this.materialCache,n=e.get(t);return n===void 0&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){let e=this.shaderCache,n=e.get(t);return n===void 0&&(n=new $r(t),e.set(t,n)),n}},$r=class{constructor(t){this.id=Tp++,this.code=t,this.usedTimes=0}};function wp(i,t,e,n,s,r,a){let o=new Ps,c=new Jr,l=[],h=s.isWebGL2,d=s.logarithmicDepthBuffer,u=s.vertexTextures,m=s.precision,g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function x(y){return y===0?"uv":`uv${y}`}function p(y,w,z,Y,I){let D=Y.fog,O=I.geometry,$=y.isMeshStandardMaterial?Y.environment:null,G=(y.isMeshStandardMaterial?e:t).get(y.envMap||$),q=G&&G.mapping===Bs?G.image.height:null,J=g[y.type];y.precision!==null&&(m=s.getMaxPrecision(y.precision),m!==y.precision&&console.warn("THREE.WebGLProgram.getParameters:",y.precision,"not supported, using",m,"instead."));let K=O.morphAttributes.position||O.morphAttributes.normal||O.morphAttributes.color,B=K!==void 0?K.length:0,Z=0;O.morphAttributes.position!==void 0&&(Z=1),O.morphAttributes.normal!==void 0&&(Z=2),O.morphAttributes.color!==void 0&&(Z=3);let ot,at,ct,_t;if(J){let Wt=qe[J];ot=Wt.vertexShader,at=Wt.fragmentShader}else ot=y.vertexShader,at=y.fragmentShader,c.update(y),ct=c.getVertexShaderID(y),_t=c.getFragmentShaderID(y);let Et=i.getRenderTarget(),xt=I.isInstancedMesh===!0,zt=!!y.map,xe=!!y.matcap,Pt=!!G,F=!!y.aoMap,oe=!!y.lightMap,yt=!!y.bumpMap,Tt=!!y.normalMap,bt=!!y.displacementMap,Xt=!!y.emissiveMap,Ft=!!y.metalnessMap,Lt=!!y.roughnessMap,Vt=y.anisotropy>0,re=y.clearcoat>0,ae=y.iridescence>0,R=y.sheen>0,M=y.transmission>0,V=Vt&&!!y.anisotropyMap,j=re&&!!y.clearcoatMap,Q=re&&!!y.clearcoatNormalMap,tt=re&&!!y.clearcoatRoughnessMap,ft=ae&&!!y.iridescenceMap,et=ae&&!!y.iridescenceThicknessMap,H=R&&!!y.sheenColorMap,mt=R&&!!y.sheenRoughnessMap,dt=!!y.specularMap,pt=!!y.specularColorMap,ht=!!y.specularIntensityMap,ut=M&&!!y.transmissionMap,It=M&&!!y.thicknessMap,Ht=!!y.gradientMap,C=!!y.alphaMap,st=y.alphaTest>0,k=!!y.alphaHash,nt=!!y.extensions,rt=!!O.attributes.uv1,Ot=!!O.attributes.uv2,qt=!!O.attributes.uv3,Jt=Mn;return y.toneMapped&&(Et===null||Et.isXRRenderTarget===!0)&&(Jt=i.toneMapping),{isWebGL2:h,shaderID:J,shaderType:y.type,shaderName:y.name,vertexShader:ot,fragmentShader:at,defines:y.defines,customVertexShaderID:ct,customFragmentShaderID:_t,isRawShaderMaterial:y.isRawShaderMaterial===!0,glslVersion:y.glslVersion,precision:m,instancing:xt,instancingColor:xt&&I.instanceColor!==null,supportsVertexTextures:u,outputColorSpace:Et===null?i.outputColorSpace:Et.isXRRenderTarget===!0?Et.texture.colorSpace:Ze,map:zt,matcap:xe,envMap:Pt,envMapMode:Pt&&G.mapping,envMapCubeUVHeight:q,aoMap:F,lightMap:oe,bumpMap:yt,normalMap:Tt,displacementMap:u&&bt,emissiveMap:Xt,normalMapObjectSpace:Tt&&y.normalMapType===Hl,normalMapTangentSpace:Tt&&y.normalMapType===kl,metalnessMap:Ft,roughnessMap:Lt,anisotropy:Vt,anisotropyMap:V,clearcoat:re,clearcoatMap:j,clearcoatNormalMap:Q,clearcoatRoughnessMap:tt,iridescence:ae,iridescenceMap:ft,iridescenceThicknessMap:et,sheen:R,sheenColorMap:H,sheenRoughnessMap:mt,specularMap:dt,specularColorMap:pt,specularIntensityMap:ht,transmission:M,transmissionMap:ut,thicknessMap:It,gradientMap:Ht,opaque:y.transparent===!1&&y.blending===fi,alphaMap:C,alphaTest:st,alphaHash:k,combine:y.combine,mapUv:zt&&x(y.map.channel),aoMapUv:F&&x(y.aoMap.channel),lightMapUv:oe&&x(y.lightMap.channel),bumpMapUv:yt&&x(y.bumpMap.channel),normalMapUv:Tt&&x(y.normalMap.channel),displacementMapUv:bt&&x(y.displacementMap.channel),emissiveMapUv:Xt&&x(y.emissiveMap.channel),metalnessMapUv:Ft&&x(y.metalnessMap.channel),roughnessMapUv:Lt&&x(y.roughnessMap.channel),anisotropyMapUv:V&&x(y.anisotropyMap.channel),clearcoatMapUv:j&&x(y.clearcoatMap.channel),clearcoatNormalMapUv:Q&&x(y.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:tt&&x(y.clearcoatRoughnessMap.channel),iridescenceMapUv:ft&&x(y.iridescenceMap.channel),iridescenceThicknessMapUv:et&&x(y.iridescenceThicknessMap.channel),sheenColorMapUv:H&&x(y.sheenColorMap.channel),sheenRoughnessMapUv:mt&&x(y.sheenRoughnessMap.channel),specularMapUv:dt&&x(y.specularMap.channel),specularColorMapUv:pt&&x(y.specularColorMap.channel),specularIntensityMapUv:ht&&x(y.specularIntensityMap.channel),transmissionMapUv:ut&&x(y.transmissionMap.channel),thicknessMapUv:It&&x(y.thicknessMap.channel),alphaMapUv:C&&x(y.alphaMap.channel),vertexTangents:!!O.attributes.tangent&&(Tt||Vt),vertexColors:y.vertexColors,vertexAlphas:y.vertexColors===!0&&!!O.attributes.color&&O.attributes.color.itemSize===4,vertexUv1s:rt,vertexUv2s:Ot,vertexUv3s:qt,pointsUvs:I.isPoints===!0&&!!O.attributes.uv&&(zt||C),fog:!!D,useFog:y.fog===!0,fogExp2:D&&D.isFogExp2,flatShading:y.flatShading===!0,sizeAttenuation:y.sizeAttenuation===!0,logarithmicDepthBuffer:d,skinning:I.isSkinnedMesh===!0,morphTargets:O.morphAttributes.position!==void 0,morphNormals:O.morphAttributes.normal!==void 0,morphColors:O.morphAttributes.color!==void 0,morphTargetsCount:B,morphTextureStride:Z,numDirLights:w.directional.length,numPointLights:w.point.length,numSpotLights:w.spot.length,numSpotLightMaps:w.spotLightMap.length,numRectAreaLights:w.rectArea.length,numHemiLights:w.hemi.length,numDirLightShadows:w.directionalShadowMap.length,numPointLightShadows:w.pointShadowMap.length,numSpotLightShadows:w.spotShadowMap.length,numSpotLightShadowsWithMaps:w.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:y.dithering,shadowMapEnabled:i.shadowMap.enabled&&z.length>0,shadowMapType:i.shadowMap.type,toneMapping:Jt,useLegacyLights:i._useLegacyLights,premultipliedAlpha:y.premultipliedAlpha,doubleSided:y.side===ze,flipSided:y.side===he,useDepthPacking:y.depthPacking>=0,depthPacking:y.depthPacking||0,index0AttributeName:y.index0AttributeName,extensionDerivatives:nt&&y.extensions.derivatives===!0,extensionFragDepth:nt&&y.extensions.fragDepth===!0,extensionDrawBuffers:nt&&y.extensions.drawBuffers===!0,extensionShaderTextureLOD:nt&&y.extensions.shaderTextureLOD===!0,rendererExtensionFragDepth:h||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||n.has("EXT_shader_texture_lod"),customProgramCacheKey:y.customProgramCacheKey()}}function f(y){let w=[];if(y.shaderID?w.push(y.shaderID):(w.push(y.customVertexShaderID),w.push(y.customFragmentShaderID)),y.defines!==void 0)for(let z in y.defines)w.push(z),w.push(y.defines[z]);return y.isRawShaderMaterial===!1&&(v(w,y),_(w,y),w.push(i.outputColorSpace)),w.push(y.customProgramCacheKey),w.join()}function v(y,w){y.push(w.precision),y.push(w.outputColorSpace),y.push(w.envMapMode),y.push(w.envMapCubeUVHeight),y.push(w.mapUv),y.push(w.alphaMapUv),y.push(w.lightMapUv),y.push(w.aoMapUv),y.push(w.bumpMapUv),y.push(w.normalMapUv),y.push(w.displacementMapUv),y.push(w.emissiveMapUv),y.push(w.metalnessMapUv),y.push(w.roughnessMapUv),y.push(w.anisotropyMapUv),y.push(w.clearcoatMapUv),y.push(w.clearcoatNormalMapUv),y.push(w.clearcoatRoughnessMapUv),y.push(w.iridescenceMapUv),y.push(w.iridescenceThicknessMapUv),y.push(w.sheenColorMapUv),y.push(w.sheenRoughnessMapUv),y.push(w.specularMapUv),y.push(w.specularColorMapUv),y.push(w.specularIntensityMapUv),y.push(w.transmissionMapUv),y.push(w.thicknessMapUv),y.push(w.combine),y.push(w.fogExp2),y.push(w.sizeAttenuation),y.push(w.morphTargetsCount),y.push(w.morphAttributeCount),y.push(w.numDirLights),y.push(w.numPointLights),y.push(w.numSpotLights),y.push(w.numSpotLightMaps),y.push(w.numHemiLights),y.push(w.numRectAreaLights),y.push(w.numDirLightShadows),y.push(w.numPointLightShadows),y.push(w.numSpotLightShadows),y.push(w.numSpotLightShadowsWithMaps),y.push(w.shadowMapType),y.push(w.toneMapping),y.push(w.numClippingPlanes),y.push(w.numClipIntersection),y.push(w.depthPacking)}function _(y,w){o.disableAll(),w.isWebGL2&&o.enable(0),w.supportsVertexTextures&&o.enable(1),w.instancing&&o.enable(2),w.instancingColor&&o.enable(3),w.matcap&&o.enable(4),w.envMap&&o.enable(5),w.normalMapObjectSpace&&o.enable(6),w.normalMapTangentSpace&&o.enable(7),w.clearcoat&&o.enable(8),w.iridescence&&o.enable(9),w.alphaTest&&o.enable(10),w.vertexColors&&o.enable(11),w.vertexAlphas&&o.enable(12),w.vertexUv1s&&o.enable(13),w.vertexUv2s&&o.enable(14),w.vertexUv3s&&o.enable(15),w.vertexTangents&&o.enable(16),w.anisotropy&&o.enable(17),y.push(o.mask),o.disableAll(),w.fog&&o.enable(0),w.useFog&&o.enable(1),w.flatShading&&o.enable(2),w.logarithmicDepthBuffer&&o.enable(3),w.skinning&&o.enable(4),w.morphTargets&&o.enable(5),w.morphNormals&&o.enable(6),w.morphColors&&o.enable(7),w.premultipliedAlpha&&o.enable(8),w.shadowMapEnabled&&o.enable(9),w.useLegacyLights&&o.enable(10),w.doubleSided&&o.enable(11),w.flipSided&&o.enable(12),w.useDepthPacking&&o.enable(13),w.dithering&&o.enable(14),w.transmission&&o.enable(15),w.sheen&&o.enable(16),w.opaque&&o.enable(17),w.pointsUvs&&o.enable(18),y.push(o.mask)}function b(y){let w=g[y.type],z;if(w){let Y=qe[w];z=xh.clone(Y.uniforms)}else z=y.uniforms;return z}function S(y,w){let z;for(let Y=0,I=l.length;Y0?n.push(f):m.transparent===!0?s.push(f):e.push(f)}function c(d,u,m,g,x,p){let f=a(d,u,m,g,x,p);m.transmission>0?n.unshift(f):m.transparent===!0?s.unshift(f):e.unshift(f)}function l(d,u){e.length>1&&e.sort(d||Rp),n.length>1&&n.sort(u||ic),s.length>1&&s.sort(u||ic)}function h(){for(let d=t,u=i.length;d=r.length?(a=new sc,r.push(a)):a=r[s],a}function e(){i=new WeakMap}return{get:t,dispose:e}}function Pp(){let i={};return{get:function(t){if(i[t.id]!==void 0)return i[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new P,color:new kt};break;case"SpotLight":e={position:new P,direction:new P,color:new kt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new P,color:new kt,distance:0,decay:0};break;case"HemisphereLight":e={direction:new P,skyColor:new kt,groundColor:new kt};break;case"RectAreaLight":e={color:new kt,position:new P,halfWidth:new P,halfHeight:new P};break}return i[t.id]=e,e}}}function Lp(){let i={};return{get:function(t){if(i[t.id]!==void 0)return i[t.id];let e;switch(t.type){case"DirectionalLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt};break;case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt,shadowCameraNear:1,shadowCameraFar:1e3};break}return i[t.id]=e,e}}}var Ip=0;function Up(i,t){return(t.castShadow?2:0)-(i.castShadow?2:0)+(t.map?1:0)-(i.map?1:0)}function Dp(i,t){let e=new Pp,n=Lp(),s={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let h=0;h<9;h++)s.probe.push(new P);let r=new P,a=new Gt,o=new Gt;function c(h,d){let u=0,m=0,g=0;for(let z=0;z<9;z++)s.probe[z].set(0,0,0);let x=0,p=0,f=0,v=0,_=0,b=0,S=0,T=0,A=0,L=0;h.sort(Up);let y=d===!0?Math.PI:1;for(let z=0,Y=h.length;z0&&(t.isWebGL2||i.has("OES_texture_float_linear")===!0?(s.rectAreaLTC1=it.LTC_FLOAT_1,s.rectAreaLTC2=it.LTC_FLOAT_2):i.has("OES_texture_half_float_linear")===!0?(s.rectAreaLTC1=it.LTC_HALF_1,s.rectAreaLTC2=it.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),s.ambient[0]=u,s.ambient[1]=m,s.ambient[2]=g;let w=s.hash;(w.directionalLength!==x||w.pointLength!==p||w.spotLength!==f||w.rectAreaLength!==v||w.hemiLength!==_||w.numDirectionalShadows!==b||w.numPointShadows!==S||w.numSpotShadows!==T||w.numSpotMaps!==A)&&(s.directional.length=x,s.spot.length=f,s.rectArea.length=v,s.point.length=p,s.hemi.length=_,s.directionalShadow.length=b,s.directionalShadowMap.length=b,s.pointShadow.length=S,s.pointShadowMap.length=S,s.spotShadow.length=T,s.spotShadowMap.length=T,s.directionalShadowMatrix.length=b,s.pointShadowMatrix.length=S,s.spotLightMatrix.length=T+A-L,s.spotLightMap.length=A,s.numSpotLightShadowsWithMaps=L,w.directionalLength=x,w.pointLength=p,w.spotLength=f,w.rectAreaLength=v,w.hemiLength=_,w.numDirectionalShadows=b,w.numPointShadows=S,w.numSpotShadows=T,w.numSpotMaps=A,s.version=Ip++)}function l(h,d){let u=0,m=0,g=0,x=0,p=0,f=d.matrixWorldInverse;for(let v=0,_=h.length;v<_;v++){let b=h[v];if(b.isDirectionalLight){let S=s.directional[u];S.direction.setFromMatrixPosition(b.matrixWorld),r.setFromMatrixPosition(b.target.matrixWorld),S.direction.sub(r),S.direction.transformDirection(f),u++}else if(b.isSpotLight){let S=s.spot[g];S.position.setFromMatrixPosition(b.matrixWorld),S.position.applyMatrix4(f),S.direction.setFromMatrixPosition(b.matrixWorld),r.setFromMatrixPosition(b.target.matrixWorld),S.direction.sub(r),S.direction.transformDirection(f),g++}else if(b.isRectAreaLight){let S=s.rectArea[x];S.position.setFromMatrixPosition(b.matrixWorld),S.position.applyMatrix4(f),o.identity(),a.copy(b.matrixWorld),a.premultiply(f),o.extractRotation(a),S.halfWidth.set(b.width*.5,0,0),S.halfHeight.set(0,b.height*.5,0),S.halfWidth.applyMatrix4(o),S.halfHeight.applyMatrix4(o),x++}else if(b.isPointLight){let S=s.point[m];S.position.setFromMatrixPosition(b.matrixWorld),S.position.applyMatrix4(f),m++}else if(b.isHemisphereLight){let S=s.hemi[p];S.direction.setFromMatrixPosition(b.matrixWorld),S.direction.transformDirection(f),p++}}}return{setup:c,setupView:l,state:s}}function rc(i,t){let e=new Dp(i,t),n=[],s=[];function r(){n.length=0,s.length=0}function a(d){n.push(d)}function o(d){s.push(d)}function c(d){e.setup(n,d)}function l(d){e.setupView(n,d)}return{init:r,state:{lightsArray:n,shadowsArray:s,lights:e},setupLights:c,setupLightsView:l,pushLight:a,pushShadow:o}}function Np(i,t){let e=new WeakMap;function n(r,a=0){let o=e.get(r),c;return o===void 0?(c=new rc(i,t),e.set(r,[c])):a>=o.length?(c=new rc(i,t),o.push(c)):c=o[a],c}function s(){e=new WeakMap}return{get:n,dispose:s}}var Kr=class extends yi{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=zl,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}},Qr=class extends yi{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}},Fp=`void main() {\n\tgl_Position = vec4( position, 1.0 );\n}`,Op=`uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}`;function Bp(i,t,e){let n=new Fs,s=new Nt,r=new Nt,a=new jt,o=new Kr({depthPacking:Vl}),c=new Qr,l={},h=e.maxTextureSize,d={[He]:he,[he]:He,[ze]:ze},u=new ln({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Nt},radius:{value:4}},vertexShader:Fp,fragmentShader:Op}),m=u.clone();m.defines.HORIZONTAL_PASS=1;let g=new Ge;g.setAttribute("position",new te(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let x=new Ye(g,u),p=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=ac;let f=this.type;this.render=function(S,T,A){if(p.enabled===!1||p.autoUpdate===!1&&p.needsUpdate===!1||S.length===0)return;let L=i.getRenderTarget(),y=i.getActiveCubeFace(),w=i.getActiveMipmapLevel(),z=i.state;z.setBlending(vn),z.buffers.color.setClear(1,1,1,1),z.buffers.depth.setTest(!0),z.setScissorTest(!1);let Y=f!==rn&&this.type===rn,I=f===rn&&this.type!==rn;for(let D=0,O=S.length;Dh||s.y>h)&&(s.x>h&&(r.x=Math.floor(h/q.x),s.x=r.x*q.x,G.mapSize.x=r.x),s.y>h&&(r.y=Math.floor(h/q.y),s.y=r.y*q.y,G.mapSize.y=r.y)),G.map===null||Y===!0||I===!0){let K=this.type!==rn?{minFilter:pe,magFilter:pe}:{};G.map!==null&&G.map.dispose(),G.map=new cn(s.x,s.y,K),G.map.texture.name=$.name+".shadowMap",G.camera.updateProjectionMatrix()}i.setRenderTarget(G.map),i.clear();let J=G.getViewportCount();for(let K=0;K0||T.map&&T.alphaTest>0){let z=y.uuid,Y=T.uuid,I=l[z];I===void 0&&(I={},l[z]=I);let D=I[Y];D===void 0&&(D=y.clone(),I[Y]=D),y=D}if(y.visible=T.visible,y.wireframe=T.wireframe,L===rn?y.side=T.shadowSide!==null?T.shadowSide:T.side:y.side=T.shadowSide!==null?T.shadowSide:d[T.side],y.alphaMap=T.alphaMap,y.alphaTest=T.alphaTest,y.map=T.map,y.clipShadows=T.clipShadows,y.clippingPlanes=T.clippingPlanes,y.clipIntersection=T.clipIntersection,y.displacementMap=T.displacementMap,y.displacementScale=T.displacementScale,y.displacementBias=T.displacementBias,y.wireframeLinewidth=T.wireframeLinewidth,y.linewidth=T.linewidth,A.isPointLight===!0&&y.isMeshDistanceMaterial===!0){let z=i.properties.get(y);z.light=A}return y}function b(S,T,A,L,y){if(S.visible===!1)return;if(S.layers.test(T.layers)&&(S.isMesh||S.isLine||S.isPoints)&&(S.castShadow||S.receiveShadow&&y===rn)&&(!S.frustumCulled||n.intersectsObject(S))){S.modelViewMatrix.multiplyMatrices(A.matrixWorldInverse,S.matrixWorld);let Y=t.update(S),I=S.material;if(Array.isArray(I)){let D=Y.groups;for(let O=0,$=D.length;O<$;O++){let G=D[O],q=I[G.materialIndex];if(q&&q.visible){let J=_(S,q,L,y);i.renderBufferDirect(A,null,Y,J,S,G)}}}else if(I.visible){let D=_(S,I,L,y);i.renderBufferDirect(A,null,Y,D,S,null)}}let z=S.children;for(let Y=0,I=z.length;Y=1):q.indexOf("OpenGL ES")!==-1&&(G=parseFloat(/^OpenGL ES (\\d)/.exec(q)[1]),$=G>=2);let J=null,K={},B=i.getParameter(i.SCISSOR_BOX),Z=i.getParameter(i.VIEWPORT),ot=new jt().fromArray(B),at=new jt().fromArray(Z);function ct(C,st,k,nt){let rt=new Uint8Array(4),Ot=i.createTexture();i.bindTexture(C,Ot),i.texParameteri(C,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(C,i.TEXTURE_MAG_FILTER,i.NEAREST);for(let qt=0;qtj||R.height>j)&&(Q=j/Math.max(R.width,R.height)),Q<1||M===!0)if(typeof HTMLImageElement!="undefined"&&R instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&R instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&R instanceof ImageBitmap){let tt=M?Br:Math.floor,ft=tt(Q*R.width),et=tt(Q*R.height);x===void 0&&(x=v(ft,et));let H=V?v(ft,et):x;return H.width=ft,H.height=et,H.getContext("2d").drawImage(R,0,0,ft,et),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+R.width+"x"+R.height+") to ("+ft+"x"+et+")."),H}else return"data"in R&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+R.width+"x"+R.height+")."),R;return R}function b(R){return ba(R.width)&&ba(R.height)}function S(R){return o?!1:R.wrapS!==Ve||R.wrapT!==Ve||R.minFilter!==pe&&R.minFilter!==Ie}function T(R,M){return R.generateMipmaps&&M&&R.minFilter!==pe&&R.minFilter!==Ie}function A(R){i.generateMipmap(R)}function L(R,M,V,j,Q=!1){if(o===!1)return M;if(R!==null){if(i[R]!==void 0)return i[R];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \'"+R+"\'")}let tt=M;return M===i.RED&&(V===i.FLOAT&&(tt=i.R32F),V===i.HALF_FLOAT&&(tt=i.R16F),V===i.UNSIGNED_BYTE&&(tt=i.R8)),M===i.RED_INTEGER&&(V===i.UNSIGNED_BYTE&&(tt=i.R8UI),V===i.UNSIGNED_SHORT&&(tt=i.R16UI),V===i.UNSIGNED_INT&&(tt=i.R32UI),V===i.BYTE&&(tt=i.R8I),V===i.SHORT&&(tt=i.R16I),V===i.INT&&(tt=i.R32I)),M===i.RG&&(V===i.FLOAT&&(tt=i.RG32F),V===i.HALF_FLOAT&&(tt=i.RG16F),V===i.UNSIGNED_BYTE&&(tt=i.RG8)),M===i.RGBA&&(V===i.FLOAT&&(tt=i.RGBA32F),V===i.HALF_FLOAT&&(tt=i.RGBA16F),V===i.UNSIGNED_BYTE&&(tt=j===Rt&&Q===!1?i.SRGB8_ALPHA8:i.RGBA8),V===i.UNSIGNED_SHORT_4_4_4_4&&(tt=i.RGBA4),V===i.UNSIGNED_SHORT_5_5_5_1&&(tt=i.RGB5_A1)),(tt===i.R16F||tt===i.R32F||tt===i.RG16F||tt===i.RG32F||tt===i.RGBA16F||tt===i.RGBA32F)&&t.get("EXT_color_buffer_float"),tt}function y(R,M,V){return T(R,V)===!0||R.isFramebufferTexture&&R.minFilter!==pe&&R.minFilter!==Ie?Math.log2(Math.max(M.width,M.height))+1:R.mipmaps!==void 0&&R.mipmaps.length>0?R.mipmaps.length:R.isCompressedTexture&&Array.isArray(R.image)?M.mipmaps.length:1}function w(R){return R===pe||R===Zo||R===er?i.NEAREST:i.LINEAR}function z(R){let M=R.target;M.removeEventListener("dispose",z),I(M),M.isVideoTexture&&g.delete(M)}function Y(R){let M=R.target;M.removeEventListener("dispose",Y),O(M)}function I(R){let M=n.get(R);if(M.__webglInit===void 0)return;let V=R.source,j=p.get(V);if(j){let Q=j[M.__cacheKey];Q.usedTimes--,Q.usedTimes===0&&D(R),Object.keys(j).length===0&&p.delete(V)}n.remove(R)}function D(R){let M=n.get(R);i.deleteTexture(M.__webglTexture);let V=R.source,j=p.get(V);delete j[M.__cacheKey],a.memory.textures--}function O(R){let M=R.texture,V=n.get(R),j=n.get(M);if(j.__webglTexture!==void 0&&(i.deleteTexture(j.__webglTexture),a.memory.textures--),R.depthTexture&&R.depthTexture.dispose(),R.isWebGLCubeRenderTarget)for(let Q=0;Q<6;Q++){if(Array.isArray(V.__webglFramebuffer[Q]))for(let tt=0;tt=c&&console.warn("THREE.WebGLTextures: Trying to use "+R+" texture units while this GPU supports only "+c),$+=1,R}function J(R){let M=[];return M.push(R.wrapS),M.push(R.wrapT),M.push(R.wrapR||0),M.push(R.magFilter),M.push(R.minFilter),M.push(R.anisotropy),M.push(R.internalFormat),M.push(R.format),M.push(R.type),M.push(R.generateMipmaps),M.push(R.premultiplyAlpha),M.push(R.flipY),M.push(R.unpackAlignment),M.push(R.colorSpace),M.join()}function K(R,M){let V=n.get(R);if(R.isVideoTexture&&re(R),R.isRenderTargetTexture===!1&&R.version>0&&V.__version!==R.version){let j=R.image;if(j===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(j.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{zt(V,R,M);return}}e.bindTexture(i.TEXTURE_2D,V.__webglTexture,i.TEXTURE0+M)}function B(R,M){let V=n.get(R);if(R.version>0&&V.__version!==R.version){zt(V,R,M);return}e.bindTexture(i.TEXTURE_2D_ARRAY,V.__webglTexture,i.TEXTURE0+M)}function Z(R,M){let V=n.get(R);if(R.version>0&&V.__version!==R.version){zt(V,R,M);return}e.bindTexture(i.TEXTURE_3D,V.__webglTexture,i.TEXTURE0+M)}function ot(R,M){let V=n.get(R);if(R.version>0&&V.__version!==R.version){xe(V,R,M);return}e.bindTexture(i.TEXTURE_CUBE_MAP,V.__webglTexture,i.TEXTURE0+M)}let at={[Dr]:i.REPEAT,[Ve]:i.CLAMP_TO_EDGE,[Nr]:i.MIRRORED_REPEAT},ct={[pe]:i.NEAREST,[Zo]:i.NEAREST_MIPMAP_NEAREST,[er]:i.NEAREST_MIPMAP_LINEAR,[Ie]:i.LINEAR,[Cl]:i.LINEAR_MIPMAP_NEAREST,[Hi]:i.LINEAR_MIPMAP_LINEAR},_t={[Wl]:i.NEVER,[Kl]:i.ALWAYS,[Xl]:i.LESS,[Yl]:i.LEQUAL,[ql]:i.EQUAL,[$l]:i.GEQUAL,[Zl]:i.GREATER,[Jl]:i.NOTEQUAL};function Et(R,M,V){if(V?(i.texParameteri(R,i.TEXTURE_WRAP_S,at[M.wrapS]),i.texParameteri(R,i.TEXTURE_WRAP_T,at[M.wrapT]),(R===i.TEXTURE_3D||R===i.TEXTURE_2D_ARRAY)&&i.texParameteri(R,i.TEXTURE_WRAP_R,at[M.wrapR]),i.texParameteri(R,i.TEXTURE_MAG_FILTER,ct[M.magFilter]),i.texParameteri(R,i.TEXTURE_MIN_FILTER,ct[M.minFilter])):(i.texParameteri(R,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(R,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),(R===i.TEXTURE_3D||R===i.TEXTURE_2D_ARRAY)&&i.texParameteri(R,i.TEXTURE_WRAP_R,i.CLAMP_TO_EDGE),(M.wrapS!==Ve||M.wrapT!==Ve)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),i.texParameteri(R,i.TEXTURE_MAG_FILTER,w(M.magFilter)),i.texParameteri(R,i.TEXTURE_MIN_FILTER,w(M.minFilter)),M.minFilter!==pe&&M.minFilter!==Ie&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),M.compareFunction&&(i.texParameteri(R,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE),i.texParameteri(R,i.TEXTURE_COMPARE_FUNC,_t[M.compareFunction])),t.has("EXT_texture_filter_anisotropic")===!0){let j=t.get("EXT_texture_filter_anisotropic");if(M.magFilter===pe||M.minFilter!==er&&M.minFilter!==Hi||M.type===yn&&t.has("OES_texture_float_linear")===!1||o===!1&&M.type===Gi&&t.has("OES_texture_half_float_linear")===!1)return;(M.anisotropy>1||n.get(M).__currentAnisotropy)&&(i.texParameterf(R,j.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(M.anisotropy,s.getMaxAnisotropy())),n.get(M).__currentAnisotropy=M.anisotropy)}}function xt(R,M){let V=!1;R.__webglInit===void 0&&(R.__webglInit=!0,M.addEventListener("dispose",z));let j=M.source,Q=p.get(j);Q===void 0&&(Q={},p.set(j,Q));let tt=J(M);if(tt!==R.__cacheKey){Q[tt]===void 0&&(Q[tt]={texture:i.createTexture(),usedTimes:0},a.memory.textures++,V=!0),Q[tt].usedTimes++;let ft=Q[R.__cacheKey];ft!==void 0&&(Q[R.__cacheKey].usedTimes--,ft.usedTimes===0&&D(M)),R.__cacheKey=tt,R.__webglTexture=Q[tt].texture}return V}function zt(R,M,V){let j=i.TEXTURE_2D;(M.isDataArrayTexture||M.isCompressedArrayTexture)&&(j=i.TEXTURE_2D_ARRAY),M.isData3DTexture&&(j=i.TEXTURE_3D);let Q=xt(R,M),tt=M.source;e.bindTexture(j,R.__webglTexture,i.TEXTURE0+V);let ft=n.get(tt);if(tt.version!==ft.__version||Q===!0){e.activeTexture(i.TEXTURE0+V),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,M.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,M.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,M.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,i.NONE);let et=S(M)&&b(M.image)===!1,H=_(M.image,et,!1,h);H=ae(M,H);let mt=b(H)||o,dt=r.convert(M.format,M.colorSpace),pt=r.convert(M.type),ht=L(M.internalFormat,dt,pt,M.colorSpace);Et(j,M,mt);let ut,It=M.mipmaps,Ht=o&&M.isVideoTexture!==!0,C=ft.__version===void 0||Q===!0,st=y(M,H,mt);if(M.isDepthTexture)ht=i.DEPTH_COMPONENT,o?M.type===yn?ht=i.DEPTH_COMPONENT32F:M.type===xn?ht=i.DEPTH_COMPONENT24:M.type===Fn?ht=i.DEPTH24_STENCIL8:ht=i.DEPTH_COMPONENT16:M.type===yn&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),M.format===On&&ht===i.DEPTH_COMPONENT&&M.type!==go&&M.type!==xn&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),M.type=xn,pt=r.convert(M.type)),M.format===_i&&ht===i.DEPTH_COMPONENT&&(ht=i.DEPTH_STENCIL,M.type!==Fn&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),M.type=Fn,pt=r.convert(M.type))),C&&(Ht?e.texStorage2D(i.TEXTURE_2D,1,ht,H.width,H.height):e.texImage2D(i.TEXTURE_2D,0,ht,H.width,H.height,0,dt,pt,null));else if(M.isDataTexture)if(It.length>0&&mt){Ht&&C&&e.texStorage2D(i.TEXTURE_2D,st,ht,It[0].width,It[0].height);for(let k=0,nt=It.length;k>=1,nt>>=1}}else if(It.length>0&&mt){Ht&&C&&e.texStorage2D(i.TEXTURE_2D,st,ht,It[0].width,It[0].height);for(let k=0,nt=It.length;k0&&C++,e.texStorage2D(i.TEXTURE_CUBE_MAP,C,ut,H[0].width,H[0].height));for(let k=0;k<6;k++)if(et){It?e.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+k,0,0,0,H[k].width,H[k].height,pt,ht,H[k].data):e.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+k,0,ut,H[k].width,H[k].height,0,pt,ht,H[k].data);for(let nt=0;nt>tt),pt=Math.max(1,M.height>>tt);Q===i.TEXTURE_3D||Q===i.TEXTURE_2D_ARRAY?e.texImage3D(Q,tt,H,dt,pt,M.depth,0,ft,et,null):e.texImage2D(Q,tt,H,dt,pt,0,ft,et,null)}e.bindFramebuffer(i.FRAMEBUFFER,R),Vt(M)?u.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,j,Q,n.get(V).__webglTexture,0,Lt(M)):(Q===i.TEXTURE_2D||Q>=i.TEXTURE_CUBE_MAP_POSITIVE_X&&Q<=i.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&i.framebufferTexture2D(i.FRAMEBUFFER,j,Q,n.get(V).__webglTexture,tt),e.bindFramebuffer(i.FRAMEBUFFER,null)}function F(R,M,V){if(i.bindRenderbuffer(i.RENDERBUFFER,R),M.depthBuffer&&!M.stencilBuffer){let j=i.DEPTH_COMPONENT16;if(V||Vt(M)){let Q=M.depthTexture;Q&&Q.isDepthTexture&&(Q.type===yn?j=i.DEPTH_COMPONENT32F:Q.type===xn&&(j=i.DEPTH_COMPONENT24));let tt=Lt(M);Vt(M)?u.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,tt,j,M.width,M.height):i.renderbufferStorageMultisample(i.RENDERBUFFER,tt,j,M.width,M.height)}else i.renderbufferStorage(i.RENDERBUFFER,j,M.width,M.height);i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.RENDERBUFFER,R)}else if(M.depthBuffer&&M.stencilBuffer){let j=Lt(M);V&&Vt(M)===!1?i.renderbufferStorageMultisample(i.RENDERBUFFER,j,i.DEPTH24_STENCIL8,M.width,M.height):Vt(M)?u.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,j,i.DEPTH24_STENCIL8,M.width,M.height):i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_STENCIL,M.width,M.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.RENDERBUFFER,R)}else{let j=M.isWebGLMultipleRenderTargets===!0?M.texture:[M.texture];for(let Q=0;Q0){V.__webglFramebuffer[et]=[];for(let H=0;H0){V.__webglFramebuffer=[];for(let et=0;et0&&Vt(R)===!1){let et=tt?M:[M];V.__webglMultisampledFramebuffer=i.createFramebuffer(),V.__webglColorRenderbuffer=[],e.bindFramebuffer(i.FRAMEBUFFER,V.__webglMultisampledFramebuffer);for(let H=0;H0)for(let H=0;H0)for(let H=0;H0&&Vt(R)===!1){let M=R.isWebGLMultipleRenderTargets?R.texture:[R.texture],V=R.width,j=R.height,Q=i.COLOR_BUFFER_BIT,tt=[],ft=R.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,et=n.get(R),H=R.isWebGLMultipleRenderTargets===!0;if(H)for(let mt=0;mt0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&M.__useRenderToTexture!==!1}function re(R){let M=a.render.frame;g.get(R)!==M&&(g.set(R,M),R.update())}function ae(R,M){let V=R.colorSpace,j=R.format,Q=R.type;return R.isCompressedTexture===!0||R.format===Fr||V!==Ze&&V!==zn&&(V===Rt?o===!1?t.has("EXT_sRGB")===!0&&j===ke?(R.format=Fr,R.minFilter=Ie,R.generateMipmaps=!1):M=As.sRGBToLinear(M):(j!==ke||Q!==Sn)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",V)),M}this.allocateTextureUnit=q,this.resetTextureUnits=G,this.setTexture2D=K,this.setTexture2DArray=B,this.setTexture3D=Z,this.setTextureCube=ot,this.rebindTextures=Tt,this.setupRenderTarget=bt,this.updateRenderTargetMipmap=Xt,this.updateMultisampleRenderTarget=Ft,this.setupDepthRenderbuffer=yt,this.setupFrameBufferTexture=Pt,this.useMultisampledRTT=Vt}function kp(i,t,e){let n=e.isWebGL2;function s(r,a=zn){let o;if(r===Sn)return i.UNSIGNED_BYTE;if(r===dc)return i.UNSIGNED_SHORT_4_4_4_4;if(r===pc)return i.UNSIGNED_SHORT_5_5_5_1;if(r===Pl)return i.BYTE;if(r===Ll)return i.SHORT;if(r===go)return i.UNSIGNED_SHORT;if(r===fc)return i.INT;if(r===xn)return i.UNSIGNED_INT;if(r===yn)return i.FLOAT;if(r===Gi)return n?i.HALF_FLOAT:(o=t.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(r===Il)return i.ALPHA;if(r===ke)return i.RGBA;if(r===Ul)return i.LUMINANCE;if(r===Dl)return i.LUMINANCE_ALPHA;if(r===On)return i.DEPTH_COMPONENT;if(r===_i)return i.DEPTH_STENCIL;if(r===Fr)return o=t.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(r===Nl)return i.RED;if(r===mc)return i.RED_INTEGER;if(r===Fl)return i.RG;if(r===gc)return i.RG_INTEGER;if(r===_c)return i.RGBA_INTEGER;if(r===nr||r===ir||r===sr||r===rr)if(a===Rt)if(o=t.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(r===nr)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(r===ir)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(r===sr)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(r===rr)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=t.get("WEBGL_compressed_texture_s3tc"),o!==null){if(r===nr)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(r===ir)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(r===sr)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(r===rr)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(r===Jo||r===$o||r===Ko||r===Qo)if(o=t.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(r===Jo)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(r===$o)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(r===Ko)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(r===Qo)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(r===Ol)return o=t.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(r===jo||r===ta)if(o=t.get("WEBGL_compressed_texture_etc"),o!==null){if(r===jo)return a===Rt?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(r===ta)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(r===ea||r===na||r===ia||r===sa||r===ra||r===oa||r===aa||r===ca||r===la||r===ha||r===ua||r===fa||r===da||r===pa)if(o=t.get("WEBGL_compressed_texture_astc"),o!==null){if(r===ea)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(r===na)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(r===ia)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(r===sa)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(r===ra)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(r===oa)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(r===aa)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(r===ca)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(r===la)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(r===ha)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(r===ua)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(r===fa)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(r===da)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(r===pa)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(r===or)if(o=t.get("EXT_texture_compression_bptc"),o!==null){if(r===or)return a===Rt?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(r===Bl||r===ma||r===ga||r===_a)if(o=t.get("EXT_texture_compression_rgtc"),o!==null){if(r===or)return o.COMPRESSED_RED_RGTC1_EXT;if(r===ma)return o.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(r===ga)return o.COMPRESSED_RED_GREEN_RGTC2_EXT;if(r===_a)return o.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return r===Fn?n?i.UNSIGNED_INT_24_8:(o=t.get("WEBGL_depth_texture"),o!==null?o.UNSIGNED_INT_24_8_WEBGL:null):i[r]!==void 0?i[r]:null}return{convert:s}}var jr=class extends Re{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}},ui=class extends ve{constructor(){super(),this.isGroup=!0,this.type="Group"}},Hp={type:"move"},ki=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new ui,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new ui,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new P,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new P),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new ui,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new P,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new P),this._grip}dispatchEvent(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){let e=this._hand;if(e)for(let n of t.hand.values())this._getHandJoint(e,n)}return this.dispatchEvent({type:"connected",data:t}),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(t,e,n){let s=null,r=null,a=null,o=this._targetRay,c=this._grip,l=this._hand;if(t&&e.session.visibilityState!=="visible-blurred"){if(l&&t.hand){a=!0;for(let x of t.hand.values()){let p=e.getJointPose(x,n),f=this._getHandJoint(l,x);p!==null&&(f.matrix.fromArray(p.transform.matrix),f.matrix.decompose(f.position,f.rotation,f.scale),f.matrixWorldNeedsUpdate=!0,f.jointRadius=p.radius),f.visible=p!==null}let h=l.joints["index-finger-tip"],d=l.joints["thumb-tip"],u=h.position.distanceTo(d.position),m=.02,g=.005;l.inputState.pinching&&u>m+g?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&u<=m-g&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else c!==null&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),r!==null&&(c.matrix.fromArray(r.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,r.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(r.linearVelocity)):c.hasLinearVelocity=!1,r.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(r.angularVelocity)):c.hasAngularVelocity=!1));o!==null&&(s=e.getPose(t.targetRaySpace,n),s===null&&r!==null&&(s=r),s!==null&&(o.matrix.fromArray(s.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,s.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(s.linearVelocity)):o.hasLinearVelocity=!1,s.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(s.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(Hp)))}return o!==null&&(o.visible=s!==null),c!==null&&(c.visible=r!==null),l!==null&&(l.visible=a!==null),this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){let n=new ui;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}},to=class extends ge{constructor(t,e,n,s,r,a,o,c,l,h){if(h=h!==void 0?h:On,h!==On&&h!==_i)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===On&&(n=xn),n===void 0&&h===_i&&(n=Fn),super(null,s,r,a,o,c,h,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=o!==void 0?o:pe,this.minFilter=c!==void 0?c:pe,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){let e=super.toJSON(t);return this.compareFunction!==null&&(e.compareFunction=this.compareFunction),e}},eo=class extends bn{constructor(t,e){super();let n=this,s=null,r=1,a=null,o="local-floor",c=1,l=null,h=null,d=null,u=null,m=null,g=null,x=e.getContextAttributes(),p=null,f=null,v=[],_=[],b=new Re;b.layers.enable(1),b.viewport=new jt;let S=new Re;S.layers.enable(2),S.viewport=new jt;let T=[b,S],A=new jr;A.layers.enable(1),A.layers.enable(2);let L=null,y=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(B){let Z=v[B];return Z===void 0&&(Z=new ki,v[B]=Z),Z.getTargetRaySpace()},this.getControllerGrip=function(B){let Z=v[B];return Z===void 0&&(Z=new ki,v[B]=Z),Z.getGripSpace()},this.getHand=function(B){let Z=v[B];return Z===void 0&&(Z=new ki,v[B]=Z),Z.getHandSpace()};function w(B){let Z=_.indexOf(B.inputSource);if(Z===-1)return;let ot=v[Z];ot!==void 0&&(ot.update(B.inputSource,B.frame,l||a),ot.dispatchEvent({type:B.type,data:B.inputSource}))}function z(){s.removeEventListener("select",w),s.removeEventListener("selectstart",w),s.removeEventListener("selectend",w),s.removeEventListener("squeeze",w),s.removeEventListener("squeezestart",w),s.removeEventListener("squeezeend",w),s.removeEventListener("end",z),s.removeEventListener("inputsourceschange",Y);for(let B=0;B=0&&(_[at]=null,v[at].disconnect(ot))}for(let Z=0;Z=_.length){_.push(ot),at=_t;break}else if(_[_t]===null){_[_t]=ot,at=_t;break}if(at===-1)break}let ct=v[at];ct&&ct.connect(ot)}}let I=new P,D=new P;function O(B,Z,ot){I.setFromMatrixPosition(Z.matrixWorld),D.setFromMatrixPosition(ot.matrixWorld);let at=I.distanceTo(D),ct=Z.projectionMatrix.elements,_t=ot.projectionMatrix.elements,Et=ct[14]/(ct[10]-1),xt=ct[14]/(ct[10]+1),zt=(ct[9]+1)/ct[5],xe=(ct[9]-1)/ct[5],Pt=(ct[8]-1)/ct[0],F=(_t[8]+1)/_t[0],oe=Et*Pt,yt=Et*F,Tt=at/(-Pt+F),bt=Tt*-Pt;Z.matrixWorld.decompose(B.position,B.quaternion,B.scale),B.translateX(bt),B.translateZ(Tt),B.matrixWorld.compose(B.position,B.quaternion,B.scale),B.matrixWorldInverse.copy(B.matrixWorld).invert();let Xt=Et+Tt,Ft=xt+Tt,Lt=oe-bt,Vt=yt+(at-bt),re=zt*xt/Ft*Xt,ae=xe*xt/Ft*Xt;B.projectionMatrix.makePerspective(Lt,Vt,re,ae,Xt,Ft),B.projectionMatrixInverse.copy(B.projectionMatrix).invert()}function $(B,Z){Z===null?B.matrixWorld.copy(B.matrix):B.matrixWorld.multiplyMatrices(Z.matrixWorld,B.matrix),B.matrixWorldInverse.copy(B.matrixWorld).invert()}this.updateCamera=function(B){if(s===null)return;A.near=S.near=b.near=B.near,A.far=S.far=b.far=B.far,(L!==A.near||y!==A.far)&&(s.updateRenderState({depthNear:A.near,depthFar:A.far}),L=A.near,y=A.far);let Z=B.parent,ot=A.cameras;$(A,Z);for(let at=0;at0&&(p.alphaTest.value=f.alphaTest);let v=t.get(f).envMap;if(v&&(p.envMap.value=v,p.flipEnvMap.value=v.isCubeTexture&&v.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=f.reflectivity,p.ior.value=f.ior,p.refractionRatio.value=f.refractionRatio),f.lightMap){p.lightMap.value=f.lightMap;let _=i._useLegacyLights===!0?Math.PI:1;p.lightMapIntensity.value=f.lightMapIntensity*_,e(f.lightMap,p.lightMapTransform)}f.aoMap&&(p.aoMap.value=f.aoMap,p.aoMapIntensity.value=f.aoMapIntensity,e(f.aoMap,p.aoMapTransform))}function a(p,f){p.diffuse.value.copy(f.color),p.opacity.value=f.opacity,f.map&&(p.map.value=f.map,e(f.map,p.mapTransform))}function o(p,f){p.dashSize.value=f.dashSize,p.totalSize.value=f.dashSize+f.gapSize,p.scale.value=f.scale}function c(p,f,v,_){p.diffuse.value.copy(f.color),p.opacity.value=f.opacity,p.size.value=f.size*v,p.scale.value=_*.5,f.map&&(p.map.value=f.map,e(f.map,p.uvTransform)),f.alphaMap&&(p.alphaMap.value=f.alphaMap,e(f.alphaMap,p.alphaMapTransform)),f.alphaTest>0&&(p.alphaTest.value=f.alphaTest)}function l(p,f){p.diffuse.value.copy(f.color),p.opacity.value=f.opacity,p.rotation.value=f.rotation,f.map&&(p.map.value=f.map,e(f.map,p.mapTransform)),f.alphaMap&&(p.alphaMap.value=f.alphaMap,e(f.alphaMap,p.alphaMapTransform)),f.alphaTest>0&&(p.alphaTest.value=f.alphaTest)}function h(p,f){p.specular.value.copy(f.specular),p.shininess.value=Math.max(f.shininess,1e-4)}function d(p,f){f.gradientMap&&(p.gradientMap.value=f.gradientMap)}function u(p,f){p.metalness.value=f.metalness,f.metalnessMap&&(p.metalnessMap.value=f.metalnessMap,e(f.metalnessMap,p.metalnessMapTransform)),p.roughness.value=f.roughness,f.roughnessMap&&(p.roughnessMap.value=f.roughnessMap,e(f.roughnessMap,p.roughnessMapTransform)),t.get(f).envMap&&(p.envMapIntensity.value=f.envMapIntensity)}function m(p,f,v){p.ior.value=f.ior,f.sheen>0&&(p.sheenColor.value.copy(f.sheenColor).multiplyScalar(f.sheen),p.sheenRoughness.value=f.sheenRoughness,f.sheenColorMap&&(p.sheenColorMap.value=f.sheenColorMap,e(f.sheenColorMap,p.sheenColorMapTransform)),f.sheenRoughnessMap&&(p.sheenRoughnessMap.value=f.sheenRoughnessMap,e(f.sheenRoughnessMap,p.sheenRoughnessMapTransform))),f.clearcoat>0&&(p.clearcoat.value=f.clearcoat,p.clearcoatRoughness.value=f.clearcoatRoughness,f.clearcoatMap&&(p.clearcoatMap.value=f.clearcoatMap,e(f.clearcoatMap,p.clearcoatMapTransform)),f.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=f.clearcoatRoughnessMap,e(f.clearcoatRoughnessMap,p.clearcoatRoughnessMapTransform)),f.clearcoatNormalMap&&(p.clearcoatNormalMap.value=f.clearcoatNormalMap,e(f.clearcoatNormalMap,p.clearcoatNormalMapTransform),p.clearcoatNormalScale.value.copy(f.clearcoatNormalScale),f.side===he&&p.clearcoatNormalScale.value.negate())),f.iridescence>0&&(p.iridescence.value=f.iridescence,p.iridescenceIOR.value=f.iridescenceIOR,p.iridescenceThicknessMinimum.value=f.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=f.iridescenceThicknessRange[1],f.iridescenceMap&&(p.iridescenceMap.value=f.iridescenceMap,e(f.iridescenceMap,p.iridescenceMapTransform)),f.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=f.iridescenceThicknessMap,e(f.iridescenceThicknessMap,p.iridescenceThicknessMapTransform))),f.transmission>0&&(p.transmission.value=f.transmission,p.transmissionSamplerMap.value=v.texture,p.transmissionSamplerSize.value.set(v.width,v.height),f.transmissionMap&&(p.transmissionMap.value=f.transmissionMap,e(f.transmissionMap,p.transmissionMapTransform)),p.thickness.value=f.thickness,f.thicknessMap&&(p.thicknessMap.value=f.thicknessMap,e(f.thicknessMap,p.thicknessMapTransform)),p.attenuationDistance.value=f.attenuationDistance,p.attenuationColor.value.copy(f.attenuationColor)),f.anisotropy>0&&(p.anisotropyVector.value.set(f.anisotropy*Math.cos(f.anisotropyRotation),f.anisotropy*Math.sin(f.anisotropyRotation)),f.anisotropyMap&&(p.anisotropyMap.value=f.anisotropyMap,e(f.anisotropyMap,p.anisotropyMapTransform))),p.specularIntensity.value=f.specularIntensity,p.specularColor.value.copy(f.specularColor),f.specularColorMap&&(p.specularColorMap.value=f.specularColorMap,e(f.specularColorMap,p.specularColorMapTransform)),f.specularIntensityMap&&(p.specularIntensityMap.value=f.specularIntensityMap,e(f.specularIntensityMap,p.specularIntensityMapTransform))}function g(p,f){f.matcap&&(p.matcap.value=f.matcap)}function x(p,f){let v=t.get(f).light;p.referencePosition.value.setFromMatrixPosition(v.matrixWorld),p.nearDistance.value=v.shadow.camera.near,p.farDistance.value=v.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:s}}function Wp(i,t,e,n){let s={},r={},a=[],o=e.isWebGL2?i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0;function c(v,_){let b=_.program;n.uniformBlockBinding(v,b)}function l(v,_){let b=s[v.id];b===void 0&&(g(v),b=h(v),s[v.id]=b,v.addEventListener("dispose",p));let S=_.program;n.updateUBOMapping(v,S);let T=t.render.frame;r[v.id]!==T&&(u(v),r[v.id]=T)}function h(v){let _=d();v.__bindingPointIndex=_;let b=i.createBuffer(),S=v.__size,T=v.usage;return i.bindBuffer(i.UNIFORM_BUFFER,b),i.bufferData(i.UNIFORM_BUFFER,S,T),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,_,b),b}function d(){for(let v=0;v0){T=b%S;let Y=S-T;T!==0&&Y-w.boundary<0&&(b+=S-T,y.__offset=b)}b+=w.storage}return T=b%S,T>0&&(b+=S-T),v.__size=b,v.__cache={},this}function x(v){let _={boundary:0,storage:0};return typeof v=="number"?(_.boundary=4,_.storage=4):v.isVector2?(_.boundary=8,_.storage=8):v.isVector3||v.isColor?(_.boundary=16,_.storage=12):v.isVector4?(_.boundary=16,_.storage=16):v.isMatrix3?(_.boundary=48,_.storage=48):v.isMatrix4?(_.boundary=64,_.storage=64):v.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",v),_}function p(v){let _=v.target;_.removeEventListener("dispose",p);let b=a.indexOf(_.__bindingPointIndex);a.splice(b,1),i.deleteBuffer(s[_.id]),delete s[_.id],delete r[_.id]}function f(){for(let v in s)i.deleteBuffer(s[v]);a=[],s={},r={}}return{bind:c,update:l,dispose:f}}function Xp(){let i=ws("canvas");return i.style.display="block",i}var no=class{constructor(t={}){let{canvas:e=Xp(),context:n=null,depth:s=!0,stencil:r=!0,alpha:a=!1,antialias:o=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:l=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:d=!1}=t;this.isWebGLRenderer=!0;let u;n!==null?u=n.getContextAttributes().alpha:u=a;let m=new Uint32Array(4),g=new Int32Array(4),x=null,p=null,f=[],v=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputColorSpace=Rt,this._useLegacyLights=!1,this.toneMapping=Mn,this.toneMappingExposure=1;let _=this,b=!1,S=0,T=0,A=null,L=-1,y=null,w=new jt,z=new jt,Y=null,I=new kt(0),D=0,O=e.width,$=e.height,G=1,q=null,J=null,K=new jt(0,0,O,$),B=new jt(0,0,O,$),Z=!1,ot=new Fs,at=!1,ct=!1,_t=null,Et=new Gt,xt=new Nt,zt=new P,xe={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Pt(){return A===null?G:1}let F=n;function oe(E,N){for(let X=0;X0?p=v[v.length-1]:p=null,f.pop(),f.length>0?x=f[f.length-1]:x=null};function Uo(E,N,X,U){if(E.visible===!1)return;if(E.layers.test(N.layers)){if(E.isGroup)X=E.renderOrder;else if(E.isLOD)E.autoUpdate===!0&&E.update(N);else if(E.isLight)p.pushLight(E),E.castShadow&&p.pushShadow(E);else if(E.isSprite){if(!E.frustumCulled||ot.intersectsSprite(E)){U&&zt.setFromMatrixPosition(E.matrixWorld).applyMatrix4(Et);let gt=M.update(E),Mt=E.material;Mt.visible&&x.push(E,gt,Mt,X,zt.z,null)}}else if((E.isMesh||E.isLine||E.isPoints)&&(!E.frustumCulled||ot.intersectsObject(E))){let gt=M.update(E),Mt=E.material;if(U&&(E.boundingSphere!==void 0?(E.boundingSphere===null&&E.computeBoundingSphere(),zt.copy(E.boundingSphere.center)):(gt.boundingSphere===null&>.computeBoundingSphere(),zt.copy(gt.boundingSphere.center)),zt.applyMatrix4(E.matrixWorld).applyMatrix4(Et)),Array.isArray(Mt)){let St=gt.groups;for(let Ut=0,vt=St.length;Ut0&&Wc(W,lt,N,X),U&&bt.viewport(w.copy(U)),W.length>0&&Qi(W,N,X),lt.length>0&&Qi(lt,N,X),gt.length>0&&Qi(gt,N,X),bt.buffers.depth.setTest(!0),bt.buffers.depth.setMask(!0),bt.buffers.color.setMask(!0),bt.setPolygonOffset(!1)}function Wc(E,N,X,U){let W=Tt.isWebGL2;_t===null&&(_t=new cn(1,1,{generateMipmaps:!0,type:yt.has("EXT_color_buffer_half_float")?Gi:Sn,minFilter:Hi,samples:W?4:0})),_.getDrawingBufferSize(xt),W?_t.setSize(xt.x,xt.y):_t.setSize(Br(xt.x),Br(xt.y));let lt=_.getRenderTarget();_.setRenderTarget(_t),_.getClearColor(I),D=_.getClearAlpha(),D<1&&_.setClearColor(16777215,.5),_.clear();let gt=_.toneMapping;_.toneMapping=Mn,Qi(E,X,U),Lt.updateMultisampleRenderTarget(_t),Lt.updateRenderTargetMipmap(_t);let Mt=!1;for(let St=0,Ut=N.length;St0),wt=!!X.morphAttributes.position,Yt=!!X.morphAttributes.normal,Zt=!!X.morphAttributes.color,Pe=Mn;U.toneMapped&&(A===null||A.isXRRenderTarget===!0)&&(Pe=_.toneMapping);let Ke=X.morphAttributes.position||X.morphAttributes.normal||X.morphAttributes.color,$t=Ke!==void 0?Ke.length:0,Dt=Ft.get(U),Ks=p.state.lights;if(at===!0&&(ct===!0||E!==y)){let Te=E===y&&U.id===L;ft.setState(U,E,Te)}let Kt=!1;U.version===Dt.__version?(Dt.needsLights&&Dt.lightsStateVersion!==Ks.state.version||Dt.outputColorSpace!==Mt||W.isInstancedMesh&&Dt.instancing===!1||!W.isInstancedMesh&&Dt.instancing===!0||W.isSkinnedMesh&&Dt.skinning===!1||!W.isSkinnedMesh&&Dt.skinning===!0||W.isInstancedMesh&&Dt.instancingColor===!0&&W.instanceColor===null||W.isInstancedMesh&&Dt.instancingColor===!1&&W.instanceColor!==null||Dt.envMap!==St||U.fog===!0&&Dt.fog!==lt||Dt.numClippingPlanes!==void 0&&(Dt.numClippingPlanes!==ft.numPlanes||Dt.numIntersection!==ft.numIntersection)||Dt.vertexAlphas!==Ut||Dt.vertexTangents!==vt||Dt.morphTargets!==wt||Dt.morphNormals!==Yt||Dt.morphColors!==Zt||Dt.toneMapping!==Pe||Tt.isWebGL2===!0&&Dt.morphTargetsCount!==$t)&&(Kt=!0):(Kt=!0,Dt.__version=U.version);let Rn=Dt.currentProgram;Kt===!0&&(Rn=ji(U,N,W));let Oo=!1,Ui=!1,Qs=!1,fe=Rn.getUniforms(),Cn=Dt.uniforms;if(bt.useProgram(Rn.program)&&(Oo=!0,Ui=!0,Qs=!0),U.id!==L&&(L=U.id,Ui=!0),Oo||y!==E){if(fe.setValue(F,"projectionMatrix",E.projectionMatrix),Tt.logarithmicDepthBuffer&&fe.setValue(F,"logDepthBufFC",2/(Math.log(E.far+1)/Math.LN2)),y!==E&&(y=E,Ui=!0,Qs=!0),U.isShaderMaterial||U.isMeshPhongMaterial||U.isMeshToonMaterial||U.isMeshStandardMaterial||U.envMap){let Te=fe.map.cameraPosition;Te!==void 0&&Te.setValue(F,zt.setFromMatrixPosition(E.matrixWorld))}(U.isMeshPhongMaterial||U.isMeshToonMaterial||U.isMeshLambertMaterial||U.isMeshBasicMaterial||U.isMeshStandardMaterial||U.isShaderMaterial)&&fe.setValue(F,"isOrthographic",E.isOrthographicCamera===!0),(U.isMeshPhongMaterial||U.isMeshToonMaterial||U.isMeshLambertMaterial||U.isMeshBasicMaterial||U.isMeshStandardMaterial||U.isShaderMaterial||U.isShadowMaterial||W.isSkinnedMesh)&&fe.setValue(F,"viewMatrix",E.matrixWorldInverse)}if(W.isSkinnedMesh){fe.setOptional(F,W,"bindMatrix"),fe.setOptional(F,W,"bindMatrixInverse");let Te=W.skeleton;Te&&(Tt.floatVertexTextures?(Te.boneTexture===null&&Te.computeBoneTexture(),fe.setValue(F,"boneTexture",Te.boneTexture,Lt),fe.setValue(F,"boneTextureSize",Te.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}let js=X.morphAttributes;if((js.position!==void 0||js.normal!==void 0||js.color!==void 0&&Tt.isWebGL2===!0)&&mt.update(W,X,Rn),(Ui||Dt.receiveShadow!==W.receiveShadow)&&(Dt.receiveShadow=W.receiveShadow,fe.setValue(F,"receiveShadow",W.receiveShadow)),U.isMeshGouraudMaterial&&U.envMap!==null&&(Cn.envMap.value=St,Cn.flipEnvMap.value=St.isCubeTexture&&St.isRenderTargetTexture===!1?-1:1),Ui&&(fe.setValue(F,"toneMappingExposure",_.toneMappingExposure),Dt.needsLights&&qc(Cn,Qs),lt&&U.fog===!0&&j.refreshFogUniforms(Cn,lt),j.refreshMaterialUniforms(Cn,U,G,$,_t),pi.upload(F,Dt.uniformsList,Cn,Lt)),U.isShaderMaterial&&U.uniformsNeedUpdate===!0&&(pi.upload(F,Dt.uniformsList,Cn,Lt),U.uniformsNeedUpdate=!1),U.isSpriteMaterial&&fe.setValue(F,"center",W.center),fe.setValue(F,"modelViewMatrix",W.modelViewMatrix),fe.setValue(F,"normalMatrix",W.normalMatrix),fe.setValue(F,"modelMatrix",W.matrixWorld),U.isShaderMaterial||U.isRawShaderMaterial){let Te=U.uniformsGroups;for(let tr=0,Zc=Te.length;tr0&&Lt.useMultisampledRTT(E)===!1?W=Ft.get(E).__webglMultisampledFramebuffer:Array.isArray(vt)?W=vt[X]:W=vt,w.copy(E.viewport),z.copy(E.scissor),Y=E.scissorTest}else w.copy(K).multiplyScalar(G).floor(),z.copy(B).multiplyScalar(G).floor(),Y=Z;if(bt.bindFramebuffer(F.FRAMEBUFFER,W)&&Tt.drawBuffers&&U&&bt.drawBuffers(E,W),bt.viewport(w),bt.scissor(z),bt.setScissorTest(Y),lt){let St=Ft.get(E.texture);F.framebufferTexture2D(F.FRAMEBUFFER,F.COLOR_ATTACHMENT0,F.TEXTURE_CUBE_MAP_POSITIVE_X+N,St.__webglTexture,X)}else if(gt){let St=Ft.get(E.texture),Ut=N||0;F.framebufferTextureLayer(F.FRAMEBUFFER,F.COLOR_ATTACHMENT0,St.__webglTexture,X||0,Ut)}L=-1},this.readRenderTargetPixels=function(E,N,X,U,W,lt,gt){if(!(E&&E.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Mt=Ft.get(E).__webglFramebuffer;if(E.isWebGLCubeRenderTarget&>!==void 0&&(Mt=Mt[gt]),Mt){bt.bindFramebuffer(F.FRAMEBUFFER,Mt);try{let St=E.texture,Ut=St.format,vt=St.type;if(Ut!==ke&&ht.convert(Ut)!==F.getParameter(F.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let wt=vt===Gi&&(yt.has("EXT_color_buffer_half_float")||Tt.isWebGL2&&yt.has("EXT_color_buffer_float"));if(vt!==Sn&&ht.convert(vt)!==F.getParameter(F.IMPLEMENTATION_COLOR_READ_TYPE)&&!(vt===yn&&(Tt.isWebGL2||yt.has("OES_texture_float")||yt.has("WEBGL_color_buffer_float")))&&!wt){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}N>=0&&N<=E.width-U&&X>=0&&X<=E.height-W&&F.readPixels(N,X,U,W,ht.convert(Ut),ht.convert(vt),lt)}finally{let St=A!==null?Ft.get(A).__webglFramebuffer:null;bt.bindFramebuffer(F.FRAMEBUFFER,St)}}},this.copyFramebufferToTexture=function(E,N,X=0){let U=Math.pow(2,-X),W=Math.floor(N.image.width*U),lt=Math.floor(N.image.height*U);Lt.setTexture2D(N,0),F.copyTexSubImage2D(F.TEXTURE_2D,X,0,0,E.x,E.y,W,lt),bt.unbindTexture()},this.copyTextureToTexture=function(E,N,X,U=0){let W=N.image.width,lt=N.image.height,gt=ht.convert(X.format),Mt=ht.convert(X.type);Lt.setTexture2D(X,0),F.pixelStorei(F.UNPACK_FLIP_Y_WEBGL,X.flipY),F.pixelStorei(F.UNPACK_PREMULTIPLY_ALPHA_WEBGL,X.premultiplyAlpha),F.pixelStorei(F.UNPACK_ALIGNMENT,X.unpackAlignment),N.isDataTexture?F.texSubImage2D(F.TEXTURE_2D,U,E.x,E.y,W,lt,gt,Mt,N.image.data):N.isCompressedTexture?F.compressedTexSubImage2D(F.TEXTURE_2D,U,E.x,E.y,N.mipmaps[0].width,N.mipmaps[0].height,gt,N.mipmaps[0].data):F.texSubImage2D(F.TEXTURE_2D,U,E.x,E.y,gt,Mt,N.image),U===0&&X.generateMipmaps&&F.generateMipmap(F.TEXTURE_2D),bt.unbindTexture()},this.copyTextureToTexture3D=function(E,N,X,U,W=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let lt=E.max.x-E.min.x+1,gt=E.max.y-E.min.y+1,Mt=E.max.z-E.min.z+1,St=ht.convert(U.format),Ut=ht.convert(U.type),vt;if(U.isData3DTexture)Lt.setTexture3D(U,0),vt=F.TEXTURE_3D;else if(U.isDataArrayTexture)Lt.setTexture2DArray(U,0),vt=F.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}F.pixelStorei(F.UNPACK_FLIP_Y_WEBGL,U.flipY),F.pixelStorei(F.UNPACK_PREMULTIPLY_ALPHA_WEBGL,U.premultiplyAlpha),F.pixelStorei(F.UNPACK_ALIGNMENT,U.unpackAlignment);let wt=F.getParameter(F.UNPACK_ROW_LENGTH),Yt=F.getParameter(F.UNPACK_IMAGE_HEIGHT),Zt=F.getParameter(F.UNPACK_SKIP_PIXELS),Pe=F.getParameter(F.UNPACK_SKIP_ROWS),Ke=F.getParameter(F.UNPACK_SKIP_IMAGES),$t=X.isCompressedTexture?X.mipmaps[0]:X.image;F.pixelStorei(F.UNPACK_ROW_LENGTH,$t.width),F.pixelStorei(F.UNPACK_IMAGE_HEIGHT,$t.height),F.pixelStorei(F.UNPACK_SKIP_PIXELS,E.min.x),F.pixelStorei(F.UNPACK_SKIP_ROWS,E.min.y),F.pixelStorei(F.UNPACK_SKIP_IMAGES,E.min.z),X.isDataTexture||X.isData3DTexture?F.texSubImage3D(vt,W,N.x,N.y,N.z,lt,gt,Mt,St,Ut,$t.data):X.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),F.compressedTexSubImage3D(vt,W,N.x,N.y,N.z,lt,gt,Mt,St,$t.data)):F.texSubImage3D(vt,W,N.x,N.y,N.z,lt,gt,Mt,St,Ut,$t),F.pixelStorei(F.UNPACK_ROW_LENGTH,wt),F.pixelStorei(F.UNPACK_IMAGE_HEIGHT,Yt),F.pixelStorei(F.UNPACK_SKIP_PIXELS,Zt),F.pixelStorei(F.UNPACK_SKIP_ROWS,Pe),F.pixelStorei(F.UNPACK_SKIP_IMAGES,Ke),W===0&&U.generateMipmaps&&F.generateMipmap(vt),bt.unbindTexture()},this.initTexture=function(E){E.isCubeTexture?Lt.setTextureCube(E,0):E.isData3DTexture?Lt.setTexture3D(E,0):E.isDataArrayTexture||E.isCompressedArrayTexture?Lt.setTexture2DArray(E,0):Lt.setTexture2D(E,0),bt.unbindTexture()},this.resetState=function(){S=0,T=0,A=null,bt.reset(),ut.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return on}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(t){console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!t}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===Rt?Bn:xc}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Bn?Rt:Ze}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}},io=class extends no{};io.prototype.isWebGL1Renderer=!0;function _n(i,t,e){return Rc(i)?new i.constructor(i.subarray(t,e!==void 0?e:i.length)):i.slice(t,e)}function Ms(i,t,e){return!i||!e&&i.constructor===t?i:typeof t.BYTES_PER_ELEMENT=="number"?new t(i):Array.prototype.slice.call(i)}function Rc(i){return ArrayBuffer.isView(i)&&!(i instanceof DataView)}var Mi=class{constructor(t,e,n,s){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=s!==void 0?s:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){let e=this.parameterPositions,n=this._cachedIndex,s=e[n],r=e[n-1];n:{t:{let a;e:{i:if(!(t=r)){let o=e[1];t=r)break t}a=n,n=0;break e}break n}for(;n>>1;te;)--a;if(++a,r!==0||a!==s){r>=a&&(a=Math.max(a,1),r=a-1);let o=this.getValueSize();this.times=_n(n,r,a),this.values=_n(this.values,r*o,a*o)}return this}validate(){let t=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);let n=this.times,s=this.values,r=n.length;r===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let a=null;for(let o=0;o!==r;o++){let c=n[o];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,c),t=!1;break}if(a!==null&&a>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,c,a),t=!1;break}a=c}if(s!==void 0&&Rc(s))for(let o=0,c=s.length;o!==c;++o){let l=s[o];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,l),t=!1;break}}return t}optimize(){let t=_n(this.times),e=_n(this.values),n=this.getValueSize(),s=this.getInterpolation()===ar,r=t.length-1,a=1;for(let o=1;o0){t[a]=t[r];for(let o=r*n,c=a*n,l=0;l!==n;++l)e[c+l]=e[o+l];++a}return a!==t.length?(this.times=_n(t,0,a),this.values=_n(e,0,a*n)):(this.times=t,this.values=e),this}clone(){let t=_n(this.times,0),e=_n(this.values,0),n=this.constructor,s=new n(this.name,t,e);return s.createInterpolant=this.createInterpolant,s}};We.prototype.TimeBufferType=Float32Array;We.prototype.ValueBufferType=Float32Array;We.prototype.DefaultInterpolation=Es;var Hn=class extends We{};Hn.prototype.ValueTypeName="bool";Hn.prototype.ValueBufferType=Array;Hn.prototype.DefaultInterpolation=bs;Hn.prototype.InterpolantFactoryMethodLinear=void 0;Hn.prototype.InterpolantFactoryMethodSmooth=void 0;var ao=class extends We{};ao.prototype.ValueTypeName="color";var co=class extends We{};co.prototype.ValueTypeName="number";var lo=class extends Mi{constructor(t,e,n,s){super(t,e,n,s)}interpolate_(t,e,n,s){let r=this.resultBuffer,a=this.sampleValues,o=this.valueSize,c=(n-e)/(s-e),l=t*o;for(let h=l+o;l!==h;l+=4)En.slerpFlat(r,0,a,l-o,a,l,c);return r}},Xi=class extends We{InterpolantFactoryMethodLinear(t){return new lo(this.times,this.values,this.getValueSize(),t)}};Xi.prototype.ValueTypeName="quaternion";Xi.prototype.DefaultInterpolation=Es;Xi.prototype.InterpolantFactoryMethodSmooth=void 0;var Gn=class extends We{};Gn.prototype.ValueTypeName="string";Gn.prototype.ValueBufferType=Array;Gn.prototype.DefaultInterpolation=bs;Gn.prototype.InterpolantFactoryMethodLinear=void 0;Gn.prototype.InterpolantFactoryMethodSmooth=void 0;var ho=class extends We{};ho.prototype.ValueTypeName="vector";var uo=class{constructor(t,e,n){let s=this,r=!1,a=0,o=0,c,l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(h){o++,r===!1&&s.onStart!==void 0&&s.onStart(h,a,o),r=!0},this.itemEnd=function(h){a++,s.onProgress!==void 0&&s.onProgress(h,a,o),a===o&&(r=!1,s.onLoad!==void 0&&s.onLoad())},this.itemError=function(h){s.onError!==void 0&&s.onError(h)},this.resolveURL=function(h){return c?c(h):h},this.setURLModifier=function(h){return c=h,this},this.addHandler=function(h,d){return l.push(h,d),this},this.removeHandler=function(h){let d=l.indexOf(h);return d!==-1&&l.splice(d,2),this},this.getHandler=function(h){for(let d=0,u=l.length;de&&(e=s,t=n)}return t}function Mo(i,t){t.set(i)}function So(i,t,e){let n,s;for(let r=0;r<3;r++){let a=r+3;n=i[r],s=t[r],e[r]=ns?n:s}}function Yi(i,t,e){for(let n=0;n<3;n++){let s=t[i+2*n],r=t[i+2*n+1],a=s-r,o=s+r;ae[n+3]&&(e[n+3]=o)}}function bi(i){let t=i[3]-i[0],e=i[4]-i[1],n=i[5]-i[2];return 2*(t*e+e*n+n*t)}function im(i,t){if(!i.index){let e=i.attributes.position.count,n=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,s;e>65535?s=new Uint32Array(new n(4*e)):s=new Uint16Array(new n(2*e)),i.setIndex(new te(s,1));for(let r=0;rs-r);for(let s=0;sc&&(c=A),f&&bg&&(g=b);let L=i[v+2],y=i[v+3],w=L-y,z=L+y;wl&&(l=z),f&&Lx&&(x=L);let Y=i[v+4],I=i[v+5],D=Y-I,O=Y+I;Dh&&(h=O),f&&Yp&&(p=Y)}n[0]=r,n[1]=a,n[2]=o,n[3]=c,n[4]=l,n[5]=h,f&&(s[0]=d,s[1]=u,s[2]=m,s[3]=g,s[4]=x,s[5]=p)}function rm(i,t,e,n){let s=1/0,r=1/0,a=1/0,o=-1/0,c=-1/0,l=-1/0;for(let h=t*6,d=(t+e)*6;ho&&(o=u);let m=i[h+2];mc&&(c=m);let g=i[h+4];gl&&(l=g)}n[0]=s,n[1]=r,n[2]=a,n[3]=o,n[4]=c,n[5]=l}function om(i,t,e,n,s){let r=e,a=e+n-1,o=s.pos,c=s.axis*2;for(;;){for(;r<=a&&t[r*6+c]=o;)a--;if(ri.candidate-t.candidate,Tn=new Array(hn).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),Vs=new Float32Array(6);function cm(i,t,e,n,s,r){let a=-1,o=0;if(r===0)a=vo(t),a!==-1&&(o=(t[a]+t[a+3])/2);else if(r===1)a=vo(i),a!==-1&&(o=lm(e,n,s,a));else if(r===2){let c=bi(i),l=1.25*s,h=n*6,d=(n+s)*6;for(let u=0;u<3;u++){let m=t[u],p=(t[u+3]-m)/hn;if(s=A.candidate?Yi(b,e,A.rightCacheBounds):(Yi(b,e,A.leftCacheBounds),A.count++)}}for(let b=0;b<_;b++){let S=f[b],T=S.count,A=s-S.count,L=S.leftCacheBounds,y=S.rightCacheBounds,w=0;T!==0&&(w=bi(L)/c);let z=0;A!==0&&(z=bi(y)/c);let Y=1+1.25*(w*T+z*A);Y=hn&&(T=hn-1);let A=Tn[T];A.count++,Yi(_,e,A.bounds)}let f=Tn[hn-1];Mo(f.bounds,f.rightCacheBounds);for(let _=hn-2;_>=0;_--){let b=Tn[_],S=Tn[_+1];So(b.bounds,S.rightCacheBounds,b.rightCacheBounds)}let v=0;for(let _=0;_T&&(T=_),b>T&&(T=b);let A=(T-S)/2,L=f*2;r[m+L+0]=S+A,r[m+L+1]=A+(Math.abs(S)+A)*Cc,St[f+3]&&(t[f+3]=T)}}return r}function um(i,t){function e(f){u&&u(f/m)}function n(f,v,_,b=null,S=0){if(!g&&S>=c&&(g=!0,l&&(console.warn(`MeshBVH: Max depth of ${c} reached when generating BVH. Consider increasing maxDepth.`),console.warn(i))),_<=h||S>=c)return e(v+_),f.offset=v,f.count=_,f;let T=cm(f.boundingData,b,a,v,_,d);if(T.axis===-1)return e(v+_),f.offset=v,f.count=_,f;let A=om(o,a,v,_,T);if(A===v||A===v+_)e(v+_),f.offset=v,f.count=_;else{f.splitAxis=T.axis;let L=new Wn,y=v,w=A-v;f.left=L,L.boundingData=new Float32Array(6),Eo(a,y,w,L.boundingData,r),n(L,y,w,r,S+1);let z=new Wn,Y=A,I=_-w;f.right=z,z.boundingData=new Float32Array(6),Eo(a,Y,I,z.boundingData,r),n(z,Y,I,r,S+1)}return f}im(i,t);let s=new Float32Array(6),r=new Float32Array(6),a=hm(i,s),o=i.index.array,c=t.maxDepth,l=t.verbose,h=t.maxLeafTris,d=t.strategy,u=t.onProgress,m=i.index.count/3,g=!1,x=[],p=sm(i);if(p.length===1){let f=p[0],v=new Wn;v.boundingData=s,rm(a,f.offset,f.count,r),n(v,f.offset,f.count,r),x.push(v)}else for(let f of p){let v=new Wn;v.boundingData=new Float32Array(6),Eo(a,f.offset,f.count,v.boundingData,r),n(v,f.offset,f.count,r),x.push(v)}return x}function Ic(i,t){let e=um(i,t),n,s,r,a=[],o=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let h=0;hMath.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return s[u+6]=_/4,_=l(_,f),s[u+7]=v,_}}}var Se=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(t,e){let n=1/0,s=-1/0;for(let r=0,a=t.length;rs?c:s}this.min=n,this.max=s}setFromPoints(t,e){let n=1/0,s=-1/0;for(let r=0,a=e.length;rs?c:s}this.min=n,this.max=s}isSeparated(t){return this.min>t.max||t.min>this.max}};Se.prototype.setFromBox=function(){let i=new P;return function(e,n){let s=n.min,r=n.max,a=1/0,o=-1/0;for(let c=0;c<=1;c++)for(let l=0;l<=1;l++)for(let h=0;h<=1;h++){i.x=s.x*c+r.x*(1-c),i.y=s.y*l+r.y*(1-l),i.z=s.z*h+r.z*(1-h);let d=e.dot(i);a=Math.min(d,a),o=Math.max(d,o)}this.min=a,this.max=o}}();var Um=function(){let i=new Se;return function(e,n){let s=e.points,r=e.satAxes,a=e.satBounds,o=n.points,c=n.satAxes,l=n.satBounds;for(let h=0;h<3;h++){let d=a[h],u=r[h];if(i.setFromPoints(u,o),d.isSeparated(i))return!1}for(let h=0;h<3;h++){let d=l[h],u=c[h];if(i.setFromPoints(u,s),d.isSeparated(i))return!1}}}();var fm=function(){let i=new P,t=new P,e=new P;return function(s,r,a){let o=s.start,c=i,l=r.start,h=t;e.subVectors(o,l),i.subVectors(s.end,s.start),t.subVectors(r.end,r.start);let d=e.dot(h),u=h.dot(c),m=h.dot(h),g=e.dot(c),p=c.dot(c)*m-u*u,f,v;p!==0?f=(d*u-g*m)/p:f=0,v=(d+f*u)/m,a.x=f,a.y=v}}(),Zi=function(){let i=new Nt,t=new P,e=new P;return function(s,r,a,o){fm(s,r,i);let c=i.x,l=i.y;if(c>=0&&c<=1&&l>=0&&l<=1){s.at(c,a),r.at(l,o);return}else if(c>=0&&c<=1){l<0?r.at(0,o):r.at(1,o),s.closestPointToPoint(o,!0,a);return}else if(l>=0&&l<=1){c<0?s.at(0,a):s.at(1,a),r.closestPointToPoint(a,!0,o);return}else{let h;c<0?h=s.start:h=s.end;let d;l<0?d=r.start:d=r.end;let u=t,m=e;if(s.closestPointToPoint(d,!0,t),r.closestPointToPoint(h,!0,e),u.distanceToSquared(d)<=m.distanceToSquared(h)){a.copy(u),o.copy(d);return}else{a.copy(h),o.copy(m);return}}}}(),Uc=function(){let i=new P,t=new P,e=new Ce,n=new Me;return function(r,a){let{radius:o,center:c}=r,{a:l,b:h,c:d}=a;if(n.start=l,n.end=h,n.closestPointToPoint(c,!0,i).distanceTo(c)<=o||(n.start=l,n.end=d,n.closestPointToPoint(c,!0,i).distanceTo(c)<=o)||(n.start=h,n.end=d,n.closestPointToPoint(c,!0,i).distanceTo(c)<=o))return!0;let x=a.getPlane(e);if(Math.abs(x.distanceToPoint(c))<=o){let f=x.projectPoint(c,t);if(a.containsPoint(f))return!0}return!1}}();var dm=1e-15;function Ei(i){return Math.abs(i)new P),this.satBounds=new Array(4).fill().map(()=>new Se),this.points=[this.a,this.b,this.c],this.sphere=new Vn,this.plane=new Ce,this.needsUpdate=!0}intersectsSphere(t){return Uc(t,this)}update(){let t=this.a,e=this.b,n=this.c,s=this.points,r=this.satAxes,a=this.satBounds,o=r[0],c=a[0];this.getNormal(o),c.setFromPoints(o,s);let l=r[1],h=a[1];l.subVectors(t,e),h.setFromPoints(l,s);let d=r[2],u=a[2];d.subVectors(e,n),u.setFromPoints(d,s);let m=r[3],g=a[3];m.subVectors(n,t),g.setFromPoints(m,s),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(o,t),this.needsUpdate=!1}};be.prototype.closestPointToSegment=function(){let i=new P,t=new P,e=new Me;return function(s,r=null,a=null){let{start:o,end:c}=s,l=this.points,h,d=1/0;for(let u=0;u<3;u++){let m=(u+1)%3;e.start.copy(l[u]),e.end.copy(l[m]),Zi(e,s,i,t),h=i.distanceToSquared(t),h1-1e-10){let v=this.satBounds,_=this.satAxes;e[0]=m.a,e[1]=m.b,e[2]=m.c;for(let T=0;T<4;T++){let A=v[T],L=_[T];if(n.setFromPoints(L,e),A.isSeparated(n))return!1}let b=m.satBounds,S=m.satAxes;t[0]=this.a,t[1]=this.b,t[2]=this.c;for(let T=0;T<4;T++){let A=b[T],L=S[T];if(n.setFromPoints(L,t),A.isSeparated(n))return!1}for(let T=0;T<4;T++){let A=_[T];for(let L=0;L<4;L++){let y=S[L];if(r.crossVectors(A,y),n.setFromPoints(r,t),s.setFromPoints(r,e),n.isSeparated(s))return!1}}return g&&(x||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),g.start.set(0,0,0),g.end.set(0,0,0)),!0}else{let v=this.points,_=!1,b=0;for(let D=0;D<3;D++){let O=v[D],$=v[(D+1)%3];l.start.copy(O),l.end.copy($),l.delta(a);let G=_?h.start:h.end,q=Ei(f.distanceToPoint(O));if(Ei(f.normal.dot(a))&&q){h.copy(l),b=2;break}if((f.intersectLine(l,G)||q)&&!Ei(G.distanceTo($))){if(b++,_)break;_=!0}}if(b===1&&m.containsPoint(h.end))return g&&(g.start.copy(h.end),g.end.copy(h.end)),!0;if(b!==2)return!1;let S=m.points,T=!1,A=0;for(let D=0;D<3;D++){let O=S[D],$=S[(D+1)%3];l.start.copy(O),l.end.copy($),l.delta(o);let G=T?d.start:d.end,q=Ei(p.distanceToPoint(O));if(Ei(p.normal.dot(o))&&q){d.copy(l),A=2;break}if((p.intersectLine(l,G)||q)&&!Ei(G.distanceTo($))){if(A++,T)break;T=!0}}if(A===1&&this.containsPoint(d.end))return g&&(g.start.copy(d.end),g.end.copy(d.end)),!0;if(A!==2)return!1;if(h.delta(a),d.delta(o),a.dot(o)<0){let D=d.start;d.start=d.end,d.end=D}let L=h.start.dot(a),y=h.end.dot(a),w=d.start.dot(a),z=d.end.dot(a),Y=y0?g.start.copy(h.start):g.start.copy(d.start),c.subVectors(h.end,d.end),c.dot(a)<0?g.end.copy(h.end):g.end.copy(d.end)),!0)}}}();be.prototype.distanceToPoint=function(){let i=new P;return function(e){return this.closestPointToPoint(e,i),e.distanceTo(i)}}();be.prototype.distanceToTriangle=function(){let i=new P,t=new P,e=["a","b","c"],n=new Me,s=new Me;return function(a,o=null,c=null){let l=o||c?n:null;if(this.intersectsTriangle(a,l))return(o||c)&&(o&&l.getCenter(o),c&&l.getCenter(c)),0;let h=1/0;for(let d=0;d<3;d++){let u,m=e[d],g=a[m];this.closestPointToPoint(g,i),u=g.distanceToSquared(i),unew P),this.satAxes=new Array(3).fill().map(()=>new P),this.satBounds=new Array(3).fill().map(()=>new Se),this.alignedSatBounds=new Array(3).fill().map(()=>new Se),this.needsUpdate=!1,t&&this.min.copy(t),e&&this.max.copy(e),n&&this.matrix.copy(n)}set(t,e,n){this.min.copy(t),this.max.copy(e),this.matrix.copy(n),this.needsUpdate=!0}copy(t){this.min.copy(t.min),this.max.copy(t.max),this.matrix.copy(t.matrix),this.needsUpdate=!0}};Ee.prototype.update=function(){return function(){let t=this.matrix,e=this.min,n=this.max,s=this.points;for(let l=0;l<=1;l++)for(let h=0;h<=1;h++)for(let d=0;d<=1;d++){let u=1*l|2*h|4*d,m=s[u];m.x=l?n.x:e.x,m.y=h?n.y:e.y,m.z=d?n.z:e.z,m.applyMatrix4(t)}let r=this.satBounds,a=this.satAxes,o=s[0];for(let l=0;l<3;l++){let h=a[l],d=r[l],u=1<new Me),e=new Array(12).fill().map(()=>new Me),n=new P,s=new P;return function(a,o=0,c=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(a))return(c||l)&&(a.getCenter(s),this.closestPointToPoint(s,n),a.closestPointToPoint(n,s),c&&c.copy(n),l&&l.copy(s)),0;let h=o*o,d=a.min,u=a.max,m=this.points,g=1/0;for(let p=0;p<8;p++){let f=m[p];s.copy(f).clamp(d,u);let v=f.distanceToSquared(s);if(v=0,m,g;u?(m=Ai(i),g=Ri(i,o)):(m=Ri(i,o),g=Ai(i));let p=Js(m,r,n,qs)?Zs(m,t,e,n):null;if(p){let _=p.point[h];if(u?_<=r[g+l]:_>=r[g+l+3])return p}let v=Js(g,r,n,qs)?Zs(g,t,e,n):null;return p&&v?p.distance<=v.distance?p:v:p||v||null}}var kc=function(){let i,t,e=[],n=new Ti(()=>new _e);return function(...a){i=n.getPrimitive(),t=n.getPrimitive(),e.push(i,t);let o=s(...a);n.releasePrimitive(i),n.releasePrimitive(t),e.pop(),e.pop();let c=e.length;return c>0&&(t=e[c-1],i=e[c-2]),o};function s(r,a,o,c,l=null,h=0,d=0){function u(_){let b=_*2,S=wn,T=An;for(;!un(b,S);)_=Ai(_),b=_*2;return Xn(_,T)}function m(_){let b=_*2,S=wn,T=An;for(;!un(b,S);)_=Ri(_,T),b=_*2;return Xn(_,T)+wi(b,S)}let g=r*2,x=Pi,p=wn,f=An;if(un(g,p)){let _=Xn(r,f),b=wi(g,p);return Ue(r,x,i),c(_,b,!1,d,h+r,i)}else{let _=Ai(r),b=Ri(r,f),S=_,T=b,A,L,y,w;if(l&&(y=i,w=t,Ue(S,x,y),Ue(T,x,w),A=l(y),L=l(w),Ls.intersectsBox(L),intersectsTriangle:L=>{L.a.applyMatrix4(l),L.b.applyMatrix4(l),L.c.applyMatrix4(l),L.needsUpdate=!0;for(let y=S*3,w=(T+S)*3;ynew be),$e=class{static serialize(t,e={}){if(e.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),$e.serialize(arguments[0],{cloneBuffers:arguments[2]===void 0?!0:arguments[2]});e=ts({cloneBuffers:!0},e);let n=t.geometry,s=t._roots,r=n.getIndex(),a;return e.cloneBuffers?a={roots:s.map(o=>o.slice()),index:r.array.slice()}:a={roots:s,index:r.array},a}static deserialize(t,e,n={}){if(typeof n=="boolean")return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),$e.deserialize(arguments[0],arguments[1],{setIndex:arguments[2]===void 0?!0:arguments[2]});n=ts({setIndex:!0},n);let{index:s,roots:r}=t,a=new $e(e,ko(ts({},n),{[Co]:!0}));if(a._roots=r,n.setIndex){let o=e.getIndex();if(o===null){let c=new te(t.index,1,!1);e.setIndex(c)}else o.array!==s&&(o.array.set(s),o.needsUpdate=!0)}return a}constructor(t,e={}){if(t.isBufferGeometry){if(t.index&&t.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}else throw new Error("MeshBVH: Only BufferGeometries are supported.");if(e=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[Co]:!1},e),e.useSharedArrayBuffer&&typeof SharedArrayBuffer=="undefined")throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,e[Co]||(this._roots=Ic(t,e),!t.boundingBox&&e.setBoundingBox&&(t.boundingBox=this.getBoundingBox(new _e))),this.geometry=t}refit(t=null){t&&Array.isArray(t)&&(t=new Set(t));let e=this.geometry,n=e.index.array,s=e.attributes.position,r,a,o,c,l=0,h=this._roots;for(let u=0,m=h.length;uT&&(T=Y),IA&&(A=I),DL&&(L=D)}return c[u+0]!==_||c[u+1]!==b||c[u+2]!==S||c[u+3]!==T||c[u+4]!==A||c[u+5]!==L?(c[u+0]=_,c[u+1]=b,c[u+2]=S,c[u+3]=T,c[u+4]=A,c[u+5]=L,!0):!1}else{let f=u+8,v=a[u+6],_=f+m,b=v+m,S=g,T=!1,A=!1;t?S||(T=t.has(_),A=t.has(b),S=!T&&!A):(T=!0,A=!0);let L=S||T,y=S||A,w=!1;L&&(w=d(f,m,S));let z=!1;y&&(z=d(v,m,S));let Y=w||z;if(Y)for(let I=0;I<3;I++){let D=f+I,O=v+I,$=c[D],G=c[D+3],q=c[O],J=c[O+3];c[u+I]=$J?G:J}return Y}}}traverse(t,e=0){let n=this._roots[e],s=new Uint32Array(n),r=new Uint16Array(n);a(0);function a(o,c=0){let l=o*2,h=r[l+15]===65535;if(h){let d=s[o+6],u=r[l+14];t(c,h,new Float32Array(n,o*4,6),d,u)}else{let d=o+32/4,u=s[o+6],m=s[o+7];t(c,h,new Float32Array(n,o*4,6),m)||(a(d,c+1),a(u,c+1))}}}raycast(t,e=He){let n=this._roots,s=this.geometry,r=[],a=e.isMaterial,o=Array.isArray(e),c=s.groups,l=a?e.side:e;for(let h=0,d=n.length;h{let f=g*3;return u(m,f,f+1,f+2,x,p)}}t={boundsTraverseOrder:n,intersectsBounds:t,intersectsTriangle:e,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let r=Je.getPrimitive(),{boundsTraverseOrder:a,intersectsBounds:o,intersectsRange:c,intersectsTriangle:l}=t;if(c&&l){let u=c;c=(m,g,x,p,f)=>u(m,g,x,p,f)?!0:Ao(m,g,s,l,x,p,r)}else c||(l?c=(u,m,g,x)=>Ao(u,m,s,l,g,x,r):c=(u,m,g)=>g);let h=!1,d=0;for(let u of this._roots){if(Li(u),h=kc(0,s,o,c,a,d),Ji(),h)break;d+=u.byteLength}return Je.releasePrimitive(r),h}bvhcast(t,e,n){let{intersectsRanges:s,intersectsTriangles:r}=n,a=this.geometry.index,o=this.geometry.attributes.position,c=t.geometry.index,l=t.geometry.attributes.position;Ii.copy(e).invert();let h=Je.getPrimitive(),d=Je.getPrimitive();if(r){let m=function(g,x,p,f,v,_,b,S){for(let T=p,A=p+f;TLo.intersectsBox(m),intersectsRange:(m,g,x,p,f,v)=>(Po.copy(v),Po.applyMatrix4(Ii),t.shapecast({intersectsBounds:_=>Po.intersectsBox(_),intersectsRange:(_,b,S,T,A)=>s(m,g,_,b,p,f,T,A)}))});return Je.releasePrimitive(h),Je.releasePrimitive(d),u}intersectsBox(t,e){return qn.set(t.min,t.max,e),qn.needsUpdate=!0,this.shapecast({intersectsBounds:n=>qn.intersectsBox(n),intersectsTriangle:n=>qn.intersectsTriangle(n)})}intersectsSphere(t){return this.shapecast({intersectsBounds:e=>t.intersectsBox(e),intersectsTriangle:e=>e.intersectsSphere(t)})}closestPointToGeometry(t,e,n={},s={},r=0,a=1/0){t.boundingBox||t.computeBoundingBox(),qn.set(t.boundingBox.min,t.boundingBox.max,e),qn.needsUpdate=!0;let o=this.geometry,c=o.attributes.position,l=o.index,h=t.attributes.position,d=t.index,u=Je.getPrimitive(),m=Je.getPrimitive(),g=$s,x=xm,p=null,f=null;s&&(p=ym,f=vm);let v=1/0,_=null,b=null;return Ii.copy(e).invert(),$i.matrix.copy(Ii),this.shapecast({boundsTraverseOrder:S=>qn.distanceToBox(S),intersectsBounds:(S,T,A)=>A{if(t.boundsTree)return t.boundsTree.shapecast({boundsTraverseOrder:A=>$i.distanceToBox(A),intersectsBounds:(A,L,y)=>y{for(let y=A*3,w=(A+L)*3;y(Ki.copy(t).clamp(h.min,h.max),Ki.distanceToSquared(t)),intersectsBounds:(h,d,u)=>u{h.closestPointToPoint(t,Ki);let u=t.distanceToSquared(Ki);return u{Ue(0,new Float32Array(n),Gc),t.union(Gc)}),t}};var Io=self;Io.addEventListener("message",async function({data:i}){let t=performance.now();function e(o){let c=performance.now();(c-t>=10||o===1)&&(postMessage({error:void 0,serialized:void 0,position:void 0,progress:o}),t=c)}let{id:n,index:s,position:r,options:a}=i;try{let o=new Ge;if(o.setAttribute("position",new te(r,3,!1)),s&&o.setIndex(new te(s,1,!1)),a.includedProgressCallback&&(a.onProgress=e),a.groups){let h=a.groups;for(let d in h){let u=h[d];o.addGroup(u.start,u.count,u.materialIndex)}}let c=new $e(o,a),l=$e.serialize(c,{cloneBuffers:!1});Io.postMessage({id:n,error:void 0,serialized:l,position:r,progress:1},[l.index.buffer,r.buffer,...l.roots])}catch(o){Io.postMessage({id:n,error:o,serialized:void 0,position:void 0,progress:1})}});\n/*! Bundled license information:\n\nthree/build/three.module.js:\n (**\n * @license\n * Copyright 2010-2023 Three.js Authors\n * SPDX-License-Identifier: MIT\n *)\n*/\n')}$a.decoderPath="libs/draco/gltf/";var xP=class{constructor(){this.running=!1,this.worker=new O4,this.worker.onerror=e=>{throw e.message?new Error(`[GenerateMeshBVHWorker] Could not create Web Worker with error "${e.message}"`):new Error("[GenerateMeshBVHWorker] Could not create Web Worker.")}}isRunning(){return this.running}generate(e,t={}){if(this.running)return void se.warn("[GenerateMeshBVHWorker] Already running job.");if(!this.worker)return void se.warn("[GenerateMeshBVHWorker] Worker has been disposed.");let{worker:n}=this;this.running=!0;let i=new Map;e.forEach((e=>{i.set(e.id,e)}));let r=0;return new Promise(((e,a)=>{let s=()=>{++r===i.size&&(this.running=!1,n.onmessage=null,e())};n.onerror=e=>{se.warn(`[GenerateMeshBVHWorker] ${e.message}`),a(new Error(`[GenerateMeshBVHWorker] ${e.message}`)),this.running=!1},n.onmessage=e=>{this.running=!1;let{data:n}=e;if(n.error)se.warn(n.error),s();else if(n.serialized){let{serialized:e,position:r,id:a}=n,o=i.get(a),l=Rc.deserialize(e,o,{setIndex:!1}),h=Object.assign({setBoundingBox:!0},t);if(h.transferred&&(o.attributes.position.array=r),o.index)t.saveOriginalIndex&&!o.userData.originalIndex&&(o.userData.originalIndex=o.index.array),se.debug("before update, index:",o.index.array),o.index.array=e.index;else{let t=new mn(e.index,1,!1);o.setIndex(t)}o.index&&(se.debug("after update, index:",o.index.array),o.index.needsUpdate=!0),h.setBoundingBox&&!o.boundingBox&&(o.boundingBox=l.getBoundingBox(new Ot)),o.boundsTree=l,s()}else t.onProgress&&t.onProgress(n.progress)};for(let r of i){let e=r[0],i=r[1],a=i.index?i.index.array:void 0,o=i.attributes.position,l=o.array;if(o.isInterleavedBufferAttribute||a&&a.isInterleavedBufferAttribute){se.warn("[GenerateMeshBVHWorker] InterleavedBufferAttribute are not supported for the geometry attributes."),s();continue}let h=[];t.transferred&&(h.push(l),a&&(h.push(a),t.saveOriginalIndex&&(i.userData.originalIndex=a.slice()))),n.postMessage({id:e,index:a,position:l,options:Ri(Tr({},t),{onProgress:null,includedProgressCallback:Boolean(t.onProgress),groups:[...i.groups]})},h.length>0?h.map((e=>e.buffer)):[])}}))}dispose(){this.worker.terminate(),this.worker=void 0}},Yf=class{constructor(e){this.running=!1,this.workers=[];let t=1;e?t=e:window.navigator&&(t=Math.max(t,window.navigator.hardwareConcurrency-1));for(let n=0;n{let i=this.workers.length,r=e.length,a=[],s=Math.floor(r/i),o=r%i,l=0,h=0;for(let c=0;c=h)break;se.debug("startIndex: "+l+" endIndex: "+h),a.push(n.generate(e.slice(l,h),t))}Promise.allSettled(a).then((()=>{this.running=!1,n()}))}));se.warn("[BVHHelper] Worker has been disposed.")}}))}dispose(){for(let e=0;e{e.traverse((e=>{let i=e;if(i.isMesh&&i.geometry&&Ar.isMergedMesh(i)&&!(i instanceof Pi)){if(n.has(i.geometry.id))return;i.geometry.index&&t.saveOriginalIndex&&(i.geometry.userData.originalIndex=i.geometry.index.array.slice()),i.geometry.boundsTree=new Rc(i.geometry,t),n.add(i.geometry.id)}}))}))}static createMeshBvhAsync(e,t={}){let n=new Set,i=[];e.forEach((e=>{e.traverse((e=>{let t=e;if(t.isMesh&&t.geometry&&Ar.isMergedMesh(t)&&!(t instanceof Pi)){if(n.has(t.geometry.id))return;i.push(t.geometry),n.add(t.geometry.id)}}))}));let r=new Yf;r.generate(i,t).then((()=>{r.dispose()}))}},sve=class{constructor(e,t,n,i,r){this.targetPixelHeight=100,this.canvasHeight=800,this.camera=e,this.object=n,this.targetPixelHeight=i,this.canvasHeight=r,this.adjustSize(),t.addEventListener("update",(()=>{this.adjustSize()}))}adjustSize(){let e=new Ot;if(this.object.updateMatrix(),e.expandByObject(this.object),!e)return;let t=e.max.x-e.min.x,n=this.camera.position.distanceTo(this.object.position),i=Evt(t,n,this.canvasHeight);if(Math.abs(i-this.targetPixelHeight)<5)return;let r=this.object.scale.x;r*=this.targetPixelHeight/i,this.object.scale.set(r,r,r),this.object.updateMatrix()}},Evt=(e,t,n=800,i=45)=>{let r=i*(Math.PI/180);return n*(e/(2*Math.tan(r/2)*t))},bP,EP=new be,_P=new be,TP=new be,ave=new be,_vt=new be,Tvt=new be,So=class extends Bi{constructor(e){super(Mt.guid()),this.needsFrustumCulled=!1,this.renderOrder=1e3,this.snapType="TripleCross",this.snapLineVisible=!1,this.snapType=e,this.drawSnapFunctions={TripleCross:this.drawTripleCorss.bind(this),Square:this.drawSquare.bind(this),Triangle:this.drawTriangle.bind(this),CircleWithCross:this.drawCircleWithCross.bind(this),Cross:this.drawCross.bind(this),Perpendicular:this.drawPerpendicular.bind(this)}}setSnapLineVisible(e){this.snapLineVisible=e}draw(e,t){this.osnapInfo&&(this.snapLineVisible&&this.drawSnapLine(e,t),e.save(),e.fillStyle=So.FILL_COLOR_NONE,e.strokeStyle=So.lineColor,e.lineWidth=So.lineWidth,e.beginPath(),this.drawSnapFunctions[this.snapType](e,t),bP&&this.drawDebug(e,t),e.closePath(),e.fill(),e.stroke(),e.restore())}drawDebug(e,t){null==bP||bP.forEach((n=>{let i=this.transToScreenCoord(n.start,t),r=this.transToScreenCoord(n.end,t);e.moveTo(i.x,i.y),e.lineTo(r.x,r.y)}))}drawSelect(e,t){}isPointInPath(e){return!1}drawSnapLine(e,t){e.save(),e.strokeStyle=So.SNAP_LINE_COLOR,e.lineWidth=So.lineWidth;let n=this.osnapInfo.line;if(!n)return;let i=this.transToScreenCoord(n.start,t),r=this.transToScreenCoord(n.end,t);e.moveTo(i.x,i.y),e.lineTo(r.x,r.y),e.stroke(),e.restore()}drawTripleCorss(e,t){let n=this.transToScreenCoord(this.osnapInfo.point,t),i=So.iconSize/1.6,r=EP.set(n.x,n.y-i),a=_P.set(n.x-.87*i,n.y+i/1.4),s=TP.set(n.x+.87*i,n.y+i/1.4);e.moveTo(n.x,n.y),e.lineTo(r.x,r.y),e.moveTo(n.x,n.y),e.lineTo(a.x,a.y),e.moveTo(n.x,n.y),e.lineTo(s.x,s.y)}drawSquare(e,t){let n=this.transToScreenCoord(this.osnapInfo.point,t),i=So.iconSize,r=So.iconSize;e.rect(n.x-i/2,n.y-r/2,i,r)}drawTriangle(e,t){let n=this.transToScreenCoord(this.osnapInfo.point,t),i=So.iconSize/1.6,r=EP.set(n.x,n.y-i),a=_P.set(n.x-.87*i,n.y+i/2),s=TP.set(n.x+.87*i,n.y+i/2);e.moveTo(r.x,r.y),e.lineTo(a.x,a.y),e.lineTo(s.x,s.y)}drawCircleWithCross(e,t){let n=this.transToScreenCoord(this.osnapInfo.point,t),i=So.iconSize/2;e.arc(n.x,n.y,i,0,2*Math.PI),e.moveTo(n.x-i/1.8,n.y),e.lineTo(n.x+i/1.8,n.y),e.moveTo(n.x,n.y-i/1.8),e.lineTo(n.x,n.y+i/1.8)}drawCross(e,t){let n=this.transToScreenCoord(this.osnapInfo.point,t),i=So.iconSize/2,r=EP.set(n.x-i,n.y-i),a=_P.set(n.x+i,n.y+i),s=TP.set(n.x+i,n.y-i),o=ave.set(n.x-i,n.y+i);e.moveTo(r.x,r.y),e.lineTo(a.x,a.y),e.moveTo(s.x,s.y),e.lineTo(o.x,o.y)}drawPerpendicular(e,t){let n=this.transToScreenCoord(this.osnapInfo.point,t),i=So.iconSize/2,r=EP.set(n.x,n.y),a=_P.set(n.x-i,n.y),s=TP.set(n.x,n.y+i),o=ave.set(n.x-i,n.y-i),l=_vt.set(n.x-i,n.y+i),h=Tvt.set(n.x+i,n.y+i);e.moveTo(a.x,a.y),e.lineTo(r.x,r.y),e.lineTo(s.x,s.y),e.moveTo(o.x,o.y),e.lineTo(l.x,l.y),e.lineTo(h.x,h.y),e.lineTo(o.x,o.y)}update(e){this.osnapInfo=e}getClassType(){return"SnapDrawable"}},As=So;As.lineColor="rgba(255, 119, 0, 1)",As.FILL_COLOR_NONE="rgba(0, 0, 0, 0)",As.SNAP_LINE_COLOR="rgba(255, 240, 0, 0.3)",As.lineWidth=2,As.iconSize=14,Un._registerDrawableClass(As);var k4=(e=>(e[e.None=0]="None",e[e.Vertex=1]="Vertex",e[e.MiddlePoint=2]="MiddlePoint",e[e.Edge=4]="Edge",e[e.Face=8]="Face",e[e.FootOfPerpendicular=16]="FootOfPerpendicular",e[e.Intersection=32]="Intersection",e[e.CircleCenter=64]="CircleCenter",e))(k4||{}),wvt=1e-5,qi=new O,oa=new O,Iy=new O,m_=new O,rg=new et,g_=new sa;function Svt(e,t){let n=Number.MAX_VALUE,i=0;for(let r=0;r65535?new Uint32Array(i):new Uint16Array(i);for(let n=0,r=i;n{e.visible=!1,this.drawableList.addDrawable(e)}))}isOSnapTypeEnabled(e){return!!(this.enabledOSnapTypes&e)}setOSnapTypeEnabled(e,t){if(t)this.enabledOSnapTypes|=e;else{let t=~e;this.enabledOSnapTypes&=t}}setSnapTolerance(e){this.snapToleranceInWorldCoord=e}getSnapTolerance(){return this.snapToleranceInWorldCoord}setIntersectionLimit(e){this.intersectionLimit=e}getIntersectionLimit(){return this.intersectionLimit}getMarkerLineColor(){return Cn.colorStr2Rgba(As.lineColor)}setMarkerLineColor(e){As.lineColor=Cn.rgba2Color(e)}getMarkerLineWidth(){return As.lineWidth}setMarkerLineWidth(e){As.lineWidth=e}getMarkerIconSize(){return As.iconSize}setMarkerIconSize(e){As.iconSize=e}getMarker(e){return this.markers[e]}setAllSnapLinesVisible(e){Object.values(this.markers).forEach((t=>{t.setSnapLineVisible(e)}))}deactivate(){var e;this.activeOSnapType&&(this.markers[this.activeOSnapType].visible=!1,null==(e=this.overlayRender)||e.render()),this.activeOSnapType=0}destroy(){}handleSnap(e,t,n){if(!e||e.length<1)return void this.deactivate();se.debug("[OSnap] intersections before handleSnap:",e);let i,r=[],a=!1;for(let o of e)o.object instanceof xt?(i||(i=o.point),!a&&"groundPlane"!==o.object.name&&(r.push(o),a=!0)):r.push(o);if(!t&&i){i.setZ(0);for(let t of r)t.point.z=0,t.distance=t.point.distanceTo(i);let e=e=>e instanceof ii?0:e instanceof Wr?2:e instanceof hr?1:3;r.sort(((t,n)=>{let i=e(t.object),r=e(n.object);return i!==r?i-r:t.distance-n.distance}))}i||(se.warn("[OSnap] Potential to produce erroneous snap results"),i=r[0].point),se.debug("[OSnap] intersections:",r),se.debug("[OSnap] mousePosition:",i);let s=this.getSnapPointAndUpdateMarker(i,r,t,n);return(null==s?void 0:s.clone())||i}getSnapPointAndUpdateMarker(e,t,n,i){if(!t.length)return void this.activateMarker(0);let r=this.getSnapInfo(e,t,n,i);if(r&&0!==r.type)return this.activateMarker(r.type,r),r.point;this.activateMarker(0)}activateMarker(e,t){var n;this.activeOSnapType&&(this.markers[this.activeOSnapType].visible=!1),this.activeOSnapType=e;let i=this.markers[e];i&&t&&(i.update(t),i.visible=!0),null==(n=this.overlayRender)||n.render()}getFootOfPerpendicular(e,t,n=wvt){let{start:i,end:r}=t,a=i.x-r.x,s=i.y-r.y,o=i.z-r.z;if(i.distanceTo(r){let n=this.osnapTypePriorities[e.type],i=this.osnapTypePriorities[t.type];return n!==i?n-i:e.distance-t.distance})),a[0]}getOsnapInfoListFromMesh(e,t,n,i){if(i=this.osnapTypePriorities[16]&&this.isOSnapTypeEnabled(16)){let t=this.getFootOfPerpendicular(s,o,i),n=e.distanceTo(t);if(n<=i)return{distance:Zt.floorNumber(n,7),type:16,point:t.clone()}}if(ai)return;let h=e.distanceTo(t),c=e.distanceTo(n);if(Math.min(h,c)<=i&&this.isOSnapTypeEnabled(1)){let e=h,i=t;return c{let n=this.osnapTypePriorities[e.type],i=this.osnapTypePriorities[t.type];return n!==i?n-i:e.distance-t.distance})),o[0]}getOsnapInfoListFromPoint(e,t,n,i,r){if(ri)return;let l={distance:o,point:qi.clone(),type:1};if("CircleCenter"===a.userData.type){if(!this.isOSnapTypeEnabled(64))return;l.type=64}else if(se.debug("[OSnap] Other types of vertices !"),!this.isOSnapTypeEnabled(1))return;return l}getIntersectsIncludeOutline(e,t){let n=e.slice(),i=[];for(let a=0;a0&&(r=t.intersectObjects(i)||[],se.debug("[OSnap] Intersected with newly created edges: ",r),r.length>0&&n.push(...r)),n.sort(((e,t)=>e.distance-t.distance)),n}},F4=ji(Fl(),1),Yl=class{constructor(e,t,n){this.follow=e=>{this.node.style.left=e.offsetX+15+"px",this.node.style.top=e.offsetY-30+"px"},this.show=()=>this.node.hasAttribute("hidden")&&this.node.removeAttribute("hidden"),this.hide=()=>!this.node.hasAttribute("hidden")&&this.node.setAttribute("hidden",""),this.destroy=()=>{this.target?this.target.removeEventListener(wf,this.follow):document.removeEventListener(wf,this.follow),this.parentNode.removeChild(this.node)},this.node=document.createElement("div"),this.node.id=e,t&&this.node.append(t),this.childNode=document.createElement("div"),this.target=null==n?void 0:n.target,this.parentNode=(null==n?void 0:n.parentNode)||document.body,null!=n&&n.followPointer&&(this.node.classList.add("follow-tooltip"),this.target?this.target.addEventListener(wf,this.follow):document.addEventListener(wf,this.follow)),this.parentNode.appendChild(this.node),(null==n||!n.showOnCreate)&&this.node.setAttribute("hidden","")}setContent(e){this.node.textContent&&(this.node.textContent=null),(0,F4.forEach)(this.node.children,(e=>{this.node.removeChild(e)})),this.node.append(e),this.node.appendChild(this.childNode)}updateChildContent(e){this.childNode.textContent&&(this.childNode.textContent=null),(0,F4.forEach)(this.childNode.children,(e=>{this.childNode.removeChild(e)})),this.childNode.append(e)}},SP=class{constructor(e){this.active=!1,this.isResolvedOrRejected=!1,this.mouseClicked=e=>{var t;if(e.markupData){let n=e.markupData.id,i=null==(t=this.viewer.overlayRender)?void 0:t.getDrawableById(n);if(i){let e=i.getBounds();e=e.clone().expandByScalar(20*this.viewer.getPixelSizeInWorldCoord());let t=cn.worldCoordinate2NormalizedScreenCoordinate(e.min,this.camera,this.viewerContainer),n=cn.worldCoordinate2NormalizedScreenCoordinate(e.max,this.camera,this.viewerContainer),r=new Ji(new be(Math.min(t.x,n.x),Math.min(t.y,n.y)),new be(Math.max(t.x,n.x),Math.max(t.y,n.y)));r.min.x=Math.max(r.min.x,0)*this.viewerContainer.clientWidth,r.min.y=Math.max(r.min.y,0)*this.viewerContainer.clientHeight,r.max.x=Math.min(r.max.x,1)*this.viewerContainer.clientWidth,r.max.y=Math.min(r.max.y,1)*this.viewerContainer.clientHeight,this.resolve&&(this.resolve(r),this.isResolvedOrRejected=!0),this.deactivate();let a=this.viewer;"function"==typeof a.clearSelection&&a.clearSelection()}}},this.keydown=e=>{"Escape"===e.code&&this.deactivate()},this.viewer=e}get viewerContainer(){return this.viewer.viewerContainer}get camera(){return this.viewer.camera}isActive(){return this.active}activate(){var e,t;if(this.isActive())return void(this.reject&&(this.deactivate(),this.reject("PickMarkupHelper is already actived!"),this.isResolvedOrRejected=!0));this.active=!0,this.viewer.addEventListener("MouseClicked",this.mouseClicked),null==(e=this.viewer.getInputManager())||e.addEventListener("keydown",this.keydown);let n=this.viewer.translate;if(n){this.tooltip=new Yl("pick-markup-tooltip",n("Tooltip.pickMarkup"),{followPointer:!0,showOnCreate:!0,parentNode:this.viewer.widgetContainer,target:this.viewerContainer});let e=document.getElementById("pick-markup-tooltip");e&&(e.style.pointerEvents="none");let i=n("Tooltip.pickMarkup");i&&this.tooltip&&(null==(t=this.tooltip)||t.setContent(i))}this.viewer.dispatchEvent("PickMarkupActivated")}deactivate(){var e,t,n;this.active=!1,this.viewer.removeEventListener("MouseClicked",this.mouseClicked),null==(e=this.viewer.getInputManager())||e.removeEventListener("keydown",this.keydown),null==(t=this.tooltip)||t.hide(),null==(n=this.tooltip)||n.destroy(),this.tooltip=void 0,this.viewer.dispatchEvent("PickMarkupDeactivated"),this.resolve&&!this.isResolvedOrRejected&&(this.resolve(void 0),this.isResolvedOrRejected=!0)}pick(){return ft(this,null,(function*(){return new Promise(((e,t)=>{this.resolve=e,this.reject=t,this.activate()}))}))}destroy(){this.deactivate(),this.isResolvedOrRejected||this.reject&&this.reject("PickMarkupHelper is not done for some reason!")}},MP=class{constructor(e){this.mouseDown=!1,this.mouseMove=!1,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1,this.tempEnableRotate=!1,this.active=!1,this.isResolvedOrRejected=!1,this.mousedown=e=>{var t,n;if(0===e.button){this.mouseDown=!0;let i=new be(e.x,e.y);this.mouseDownPositionX=i.x,this.mouseDownPositionY=i.y,null==(t=this.tooltip)||t.hide(),null==(n=this.tooltip)||n.destroy(),this.tooltip=void 0}},this.mousemove=e=>{if(!this.mouseDown)return;let t=new be(e.x,e.y);if(this.mouseDownPositionX>=0&&this.mouseDownPositionY>=0&&(Math.abs(t.x-this.mouseDownPositionX)>=5||Math.abs(t.y-this.mouseDownPositionY)>=5)){this.mouseMove=!0;let e=new be(Math.min(this.mouseDownPositionX,t.x),Math.min(this.mouseDownPositionY,t.y)),n=new be(Math.max(this.mouseDownPositionX,t.x),Math.max(this.mouseDownPositionY,t.y));this.drawRect(e,n)}},this.mouseup=e=>{if(this.mouseDown&&this.mouseMove){let t=new be(e.x,e.y),n=new be(Math.min(this.mouseDownPositionX,t.x),Math.min(this.mouseDownPositionY,t.y)),i=new be(Math.max(this.mouseDownPositionX,t.x),Math.max(this.mouseDownPositionY,t.y)),r=new Ji(n,i);this.resolve&&(this.resolve(r),this.isResolvedOrRejected=!0),this.deactivate(),this.setRectDomVisible(!1)}this.mouseDown=!1,this.mouseMove=!1,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1},this.keydown=e=>{"Escape"===e.code&&this.deactivate()},this.viewer=e,this.input=e.getInputManager()}get viewerContainer(){return this.viewer.viewerContainer}isActive(){return this.active}activate(){var e;if(this.isActive())return void(this.reject&&(this.deactivate(),this.reject("BoxSelectHelper is already actived!"),this.isResolvedOrRejected=!0));this.active=!0,this.input.addEventListener("pointerdown",this.mousedown),this.input.addEventListener("pointermove",this.mousemove),this.input.addEventListener("pointerup",this.mouseup),this.input.addEventListener("keydown",this.keydown);let t=this.viewer.controls;this.tempKey=t.mouseButtons.left,this.tempEnableRotate=t.enableRotate,t.mouseButtons.left=yt.NONE,this.tempTouch=t.touches.one,t.touches.one=yt.NONE,t.enableRotate=!1;let n=this.viewer.translate;if(n){this.tooltip=new Yl("box-select-tooltip",n("Tooltip.boxSelect"),{followPointer:!0,showOnCreate:!0,parentNode:this.viewer.widgetContainer,target:this.viewerContainer});let t=document.getElementById("box-select-tooltip");t&&(t.style.pointerEvents="none");let i=n("Tooltip.boxSelect");i&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(i))}this.viewer.dispatchEvent("BoxSelectActivated")}deactivate(){var e,t;this.active=!1,this.input.removeEventListener("pointerdown",this.mousedown),this.input.removeEventListener("pointermove",this.mousemove),this.input.removeEventListener("pointerup",this.mouseup),this.input.removeEventListener("keydown",this.keydown),null==(e=this.tooltip)||e.hide(),null==(t=this.tooltip)||t.destroy(),this.tooltip=void 0,this.viewer.controls.mouseButtons.left=this.tempKey,this.viewer.controls.enableRotate=this.tempEnableRotate,this.viewer.controls.touches.one=this.tempTouch,this.viewer.dispatchEvent("BoxSelectDeactivated"),this.resolve&&!this.isResolvedOrRejected&&(this.resolve(void 0),this.isResolvedOrRejected=!0)}drawRect(e,t){this.rectDom||(this.rectDom=document.createElement("div"),this.rectDom.style.cssText=`position: absolute;border: ${MP.BORDER_WIDTH} solid ${MP.BORDER_COLOR};`,this.viewerContainer.appendChild(this.rectDom)),this.setRectDomVisible(!0),this.rectDom.style.left=`${e.x}px`,this.rectDom.style.top=`${e.y}px`;let n=Math.abs(t.x-e.x),i=Math.abs(t.y-e.y);this.rectDom.style.width=`${n}px`,this.rectDom.style.height=`${i}px`}setRectDomVisible(e){this.rectDom&&(this.rectDom.style.display=e?"inline-block":"none")}select(){return ft(this,null,(function*(){return new Promise(((e,t)=>{this.resolve=e,this.reject=t,this.activate()}))}))}destroy(){var e;this.deactivate(),null==(e=this.rectDom)||e.remove(),this.rectDom=void 0,this.isResolvedOrRejected||this.reject&&this.reject("BoxSelectHelper is not done for some reason!")}},$f=MP;$f.BORDER_COLOR="#fff000",$f.BORDER_WIDTH="2px";var fr=class extends us{constructor(e,t){if(!t.id)throw new Error("[Plugin] Missing plugin id!");super(),this.id=t.id,this.viewer=e,e.addPlugin(this)}destroy(){this.viewer.removePlugin(this)}},Ly=(e=>(e.BaseViewer="BaseViewer",e.BimViewer="BimViewer",e.DxfViewer="DxfViewer",e.VRViewer="VRViewer",e))(Ly||{}),Zf=class extends us{constructor(e){super(),this.name="BaseViewer",this.translate=this.initLocalization(),this.height=0,this.width=0,this.jobCount=0,this.enableOverlayRenderer=!0,this.frustumSize=this.width,this.lastFrameExecuteTime=Date.now(),this.minFrameInterval=10,this.plugins=[],this.viewerCfg=e,this.undoRedoManager=new aC,this.initLogLevel(),this.initLocalization(),Dn.isBrowser&&!e.context&&(this.initContainer(),this.initViewerContainer(),this.initWidgetContainer())}initLogLevel(){let e=this.viewerCfg.logLevel;e&&gde(e)}initLocalization(){var e;let t=(null==(e=this.viewerCfg)?void 0:e.language)||"cn";return eg.init({lng:t,debug:!1,resources:{en:{translation:Kde},cn:{translation:Jde}}}),eg.t}initContainer(){let e=document.getElementById(this.viewerCfg.containerId);e||(se.error("[Viewer] containerId:",this.viewerCfg.containerId,"is not found in dom tree! will append to document body"),e=document.body);let t=document.createElement("div");t.classList.add("gemini-container"),t.style.cssText="width: 100%; height: 100%; position: relative;",e.appendChild(t),this.container=t}initViewerContainer(){let e=this.container;if(!e)return;let t=document.createElement("div");t.classList.add("gemini-viewer-container"),t.style.cssText="width: 100%; height: 100%;display: inline-block;position: relative; overflow: hidden;",e.appendChild(t),this.width=e.clientWidth,this.height=e.clientHeight,this.viewerContainer=t}initWidgetContainer(){let e=this.container;if(!e)return;let t=document.createElement("div");t.classList.add("gemini-widget-container"),e.appendChild(t),this.widgetContainer=t}initSpinner(){var e;if(!this.viewerCfg.enableSpinner)return;let t=document.createElement("div");t.classList.add("gemini-spinner"),t.appendChild(document.createElement("span")),t.appendChild(document.createElement("span")),t.appendChild(document.createElement("span")),t.appendChild(document.createElement("span")),null==(e=this.viewerContainer)||e.appendChild(t),this.spinner=t,this.setSpinnerVisibility(this.jobCount>0)}setSpinnerVisibility(e){this.spinner&&(e?this.spinner.classList.remove("hidden"):this.spinner.classList.add("hidden"))}increaseJobCount(){this.setSpinnerVisibility(++this.jobCount>0)}decreaseJobCount(){this.jobCount<=0?se.warn("[Viewer] jobCount should be at least 1 here!"):this.setSpinnerVisibility(--this.jobCount>0)}resize(e,t){let n=this.camera;if(n&&t>0){if(n instanceof ur)n.aspect=e/t;else if(n instanceof Ur){let i=e/t;n.left=-this.frustumSize/2,n.right=this.frustumSize/2,n.top=this.frustumSize/i/2,n.bottom=-this.frustumSize/i/2}n.updateProjectionMatrix(),this.renderer&&this.renderer.setSize(e,t,!0),this.overlayRender&&this.overlayRender.setSize(e,t)}this.width=e,this.height=t,this.enableRender()}destroy(){var e,t,n,i;this.clearPlugins(),null==(e=this.widgetContainer)||e.remove(),this.widgetContainer=void 0,null==(t=this.viewerContainer)||t.remove(),this.viewerContainer=void 0,null==(n=this.scene)||n.clear(),this.scene=void 0,this.requestAnimationFrameHandle&&(cancelAnimationFrame(this.requestAnimationFrameHandle),this.requestAnimationFrameHandle=void 0),this.renderer&&(this.renderer.domElement.remove(),this.renderer.clear(),this.renderer.dispose(),this.renderer.forceContextLoss(),this.renderer=void 0),this.overlayRender&&(this.overlayRender.destroy(),this.overlayRender=void 0),this.camera=void 0,this.controls&&(this.controls.dispose(),this.controls=void 0),this.groundPlane&&(this.groundPlane.geometry.dispose(),this.groundPlane.clear(),this.groundPlane=void 0),this.removeEventListener(),null==(i=this.undoRedoManager)||i.destroy(),this.spinner&&(this.spinner.remove(),this.spinner=void 0)}getInputManager(){return this.inputManager}getViewConfig(){return this.viewerCfg}enableRender(){}getRaycaster(){}getRaycastableObjectsByMouse(e){return[]}getBBox(){}getActiveSection(){}flyTo(e,t){}is3d(){return!0}get measurePlugin(){}getMarkupManager(){}deactivateMeasurement(){}setMeasurementVisibility(e,t){return!1}screenshot(e){return ft(this,null,(function*(){}))}getPixelSizeInWorldCoord(){let e=this.camera,{clientWidth:t,clientHeight:n}=this.viewerContainer,i=1;if("OrthographicCamera"===e.type){let r=e;i=Math.max(r.right-r.left,r.top-r.bottom)/r.zoom/Math.max(t,n)}else if("PerspectiveCamera"===e.type){let t=e,r=new O;e.getWorldPosition(r);let a=new O,s=this.controls;s.getTarget?s.getTarget(a):s.target&&(a=s.target),r&&a&&(i=r.distanceTo(a)*Math.tan(t.fov/2*Math.PI/180)*2/n)}return i}getUniqueModelId(e){let t=e,n=e=>!!this.loadedModels.find((t=>t.modelId===e));if(n(t)){let e=1;for(;n(`${t}_${e}`);)e++;t=`${t}_${e}`,se.warn(`[Viewer] Model '${t}' is loaded more than once!`)}return t}addPlugin(e){this.plugins.find((t=>t.id===e.id))?se.error(`[Viewer] Plugin already exist: ${e.id}`):(this.plugins.push(e),se.debug(`[Viewer] Added plugin: ${e.id}`))}removePlugin(e){for(let t=0,n=this.plugins.length;tt.id===e))}},Dy=class{constructor(e){this.active=!1,this.viewer=e,this.boxSelectHelper=new $f(e)}get viewerContainer(){return this.viewer.viewerContainer}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}isActive(){return this.active}activate(){var e;this.active=!0,null==(e=this.boxSelectHelper)||e.select().then((e=>{e&&this.handleZoomToRect(e.min,e.max)}))}deactivate(){var e;this.active=!1,null==(e=this.boxSelectHelper)||e.deactivate()}pickPositionByScreenPoint(e){let t=cn.screenPoint2NdcPoint(e,this.camera,this.viewerContainer);this.raycaster.layers.set(10),this.raycaster.setFromCamera(t,this.camera);let n=[];"BimViewer"===this.viewer.name?n=this.viewer.getRaycastableObjectsByMouse({x:e.x,y:e.y}):"DxfViewer"===this.viewer.name&&(n=[this.viewer.groundPlane]);let i=this.raycaster.intersectObjects(n)||[];if(i.length>0)return i[0].point}handleZoomToRect(e,t){let n=this.pickPositionByScreenPoint(e),i=this.pickPositionByScreenPoint(t);if(n&&i){let e=new O(Math.min(n.x,i.x),Math.min(n.y,i.y),Math.min(n.z,i.z)),t=new O(Math.max(n.x,i.x),Math.max(n.y,i.y),Math.max(n.z,i.z)),r=new Ot(e,t);this.viewer.zoomToBBox(r)}}destroy(){var e;null==(e=this.boxSelectHelper)||e.destroy(),this.boxSelectHelper=void 0}},RP=class extends Bi{constructor(e){super("MobileHelper"),this.needsFrustumCulled=!1,this.renderOrder=1e3,this.position=e}setPosition(e){this.position=e}isPointInPath(e,t){return!1}draw(e,t){this.drawInnerCircle(e),this.drawOuterRing(e),this.drawSnapTriangle(e)}drawInnerCircle(e){let{x:t,y:n}=this.position;e.save(),e.fillStyle="rgba(137, 137, 138, 0.8)",e.beginPath(),e.arc(t,n,25,0,2*Math.PI),e.closePath(),e.fill(),e.restore()}drawOuterRing(e){let{x:t,y:n}=this.position;e.save(),e.strokeStyle="rgba(17, 17, 19, 0.8)",e.lineWidth=10,e.beginPath(),e.arc(t,n,30,0,2*Math.PI),e.closePath(),e.stroke(),e.restore(),e.save(),e.strokeStyle="rgba(173, 173, 174, 0.8)",e.lineWidth=3,e.beginPath(),e.arc(t,n,35,0,2*Math.PI),e.closePath(),e.stroke(),e.restore()}drawSnapTriangle(e){let{x:t,y:n}=this.position;e.save(),e.fillStyle="rgba(17, 17, 19, 0.8)",e.strokeStyle="rgba(137, 137, 138, 0.8)",e.lineWidth=2,e.beginPath(),e.moveTo(t-35,n-35),e.lineTo(t-35+12,n-35),e.lineTo(t-35,n-35+12),e.closePath(),e.fill(),e.stroke(),e.restore()}translate(e,t){this.position.add(new be(e,t))}getTouchPoint(){return{x:this.position.x-35,y:this.position.y-35}}isIntersect(e){return this.position.x-35e.x&&this.position.y+35>e.y}drawSelect(e,t){}getClassType(){return"MobileTouchHelperDrawable"}},$l=(e=>(e.Distance="Distance",e.Area="Area",e.Angle="Angle",e.Coordinate="Coordinate",e))($l||{}),nh=class extends us{constructor(e,t,n,i,r){super(),this.mouseMoved=!1,this.mouseDowned=!1,this.touchDowned=!1,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1,this.snapPoint=void 0,this.touchstart=e=>{this.mobileTouchHelper&&this.mobileTouchHelper.isIntersect(e)&&!this.touchDowned&&(this.clearClickedDrawable(),this.viewer.controls&&(this.viewer.controls.enabled=!1),this.touchDowned=!0,this.mouseDownPositionX=e.x,this.mouseDownPositionY=e.y)},this.touchmove=e=>{if(e.pointers&&e.pointers.length>1)return;let{width:t,height:n}=this.canvas.getBoundingClientRect();if(!(e.x>t-15||e.x<35||e.y<15||e.y>n-35)&&this.touchDowned&&this.mobileTouchHelper){let t=e.x-this.mouseDownPositionX,n=e.y-this.mouseDownPositionY;this.mobileTouchHelper.translate(t,n),this.mouseDownPositionX=e.x,this.mouseDownPositionY=e.y;let i=this.mobileTouchHelper.getTouchPoint(),r=this.getIntersections(i);if(!r.length)return void this.osnapHelper.deactivate();let a=Date.now();if(this.snapPoint=this.osnapHelper.handleSnap(r,this.viewer.is3d(),this.lastMouseDownPosition),se.debug(`[BaseMeasurement] handleSnap costs ${(Date.now()-a)/1e3}s`),!this.snapPoint)return void console.warn("[BaseMeasurement] Failed to find a snap point!");this.onMouseMove(this.snapPoint)}},this.touchend=e=>{var t;if(this.viewer.controls&&(this.viewer.controls.enabled=!0),!(e.pointers&&e.pointers.length>1)){if(this.touchDowned){this.touchDowned=!1;let e=null==(t=this.mobileTouchHelper)?void 0:t.getTouchPoint();this.onMouseClick(e)}else this.selectMeasurementByEvent(e);Dn.isMobile&&(this.osnapHelper.deactivate(),this.dispatchEvent("Updated"))}},this.mousedown=e=>{this.mouseMoved=!1,this.mouseDowned=!0,this.mouseDownPositionX=e.x,this.mouseDownPositionY=e.y},this.mousemove=e=>{if(this.lastMoveEvent=e,this.mouseDownPositionX>=0&&this.mouseDownPositionY>=0&&(Math.abs(e.x-this.mouseDownPositionX)>5||Math.abs(e.y-this.mouseDownPositionY)>5)&&(this.mouseMoved=!0),this.mouseDowned)return;let t=this.getIntersections(e);if(!t.length)return void this.osnapHelper.deactivate();let n=Date.now();this.snapPoint=this.osnapHelper.handleSnap(t,this.viewer.is3d(),this.lastMouseDownPosition),se.debug(`[BaseMeasurement] this.handleSnap costs ${(Date.now()-n)/1e3}s`),this.snapPoint?this.onMouseMove(this.snapPoint):console.warn("[BaseMeasurement] Failed to find a snap point!")},this.mouseup=e=>{this.mouseDowned=!1,this.mouseMoved||this.onMouseClick(e)},this.dblclick=()=>{se.info("[Measure] Double clicked")},this.keydown=e=>{if("Enter"===e.code){let e={x:0,y:0,pageX:0,pageY:0,clientX:0,clientY:0,deltaX:0,deltaY:0,button:2,movementX:0,movementY:0,deltaMode:0,pointerId:0,timestamp:0,buttons:0,pointerType:"mouse",altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1};this.onMouseClick(e)}else"Escape"===e.code&&this.cancel()},this.getIntersections=e=>{if(!this.raycaster)return[];this.raycaster.layers.set(11);let t=this.viewer.getRaycastableObjectsByMouse(e);se.debug(`[BaseMeasurement] The count of raycastable object is ${t.length}`,t);let n=Date.now(),i=this.raycaster.intersectObjects(t,!0)||[];return se.debug(`[BaseMeasurement] this.raycaster.intersectObjects costs ${(Date.now()-n)/1e3}s`),this.renderer.clippingPlanes.length>0&&(i=i.filter((e=>this.renderer.clippingPlanes.every((function(t){return t.distanceToPoint(e.point)>0}))))),i},this.type=e,this.viewer=t,this.inputManager=n,this.drawList=i,this.osnapHelper=r}get canvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get camera(){return this.viewer.camera}get renderer(){return this.viewer.renderer}get isActive(){return!!this.raycaster}get isMeasuring(){return!1===this.completed}setTouchHelper(e){this.mobileTouchHelper=e}createMobileExitButton(){let e=this.viewer.widgetContainer,t=document.createElement("button");return t.innerText="X",t.style.cssText="position: absolute;right: 5%; top: 5%;background-color: #000000;color: #ffffff;padding: 3px 10px;font-weight: bolder;",null==e||e.appendChild(t),this.exitButton=t,this.exitButton.style.display="none",t.addEventListener("touchstart",(()=>{this.exitDrawing(),this.exitButton&&(this.exitButton.style.display="none")})),this.addEventListener("FirstPointPicked",this.firstPickedListener=()=>{this.exitButton&&(this.exitButton.style.display="inline-block")}),this.addEventListener("Completed",this.completedListener=()=>{this.exitButton&&(this.exitButton.style.display="none")}),this.exitButton}activate(){if(Dn.isMobile)this.inputManager.addEventListener("touchstart",this.touchstart),this.inputManager.addEventListener("touchmove",this.touchmove),this.inputManager.addEventListener("touchend",this.touchend);else{this.inputManager.addEventListener("pointerdown",this.mousedown),this.inputManager.addEventListener("pointermove",this.mousemove),this.inputManager.addEventListener("pointerup",this.mouseup);let e=this.viewer.translate;if(e){this.tooltip=new Yl("measure-tooltip",e("Tooltip.measure"),{followPointer:!0,showOnCreate:!0,parentNode:this.viewer.widgetContainer,target:this.viewer.viewerContainer});let t=document.getElementById("measure-tooltip");t&&(t.style.pointerEvents="none")}this.setTooltipContent()}this.inputManager.addEventListener("dblclick",this.dblclick),this.inputManager.addEventListener("keydown",this.keydown),this.raycaster=this.viewer.getRaycaster()}deactivate(){var e,t;Dn.isMobile?(this.inputManager.removeEventListener("touchstart",this.touchstart),this.inputManager.removeEventListener("touchmove",this.touchmove),this.inputManager.removeEventListener("touchend",this.touchend)):(this.inputManager.removeEventListener("pointerdown",this.mousedown),this.inputManager.removeEventListener("pointermove",this.mousemove),this.inputManager.removeEventListener("pointerup",this.mouseup)),this.inputManager.removeEventListener("dblclick",this.dblclick),this.inputManager.removeEventListener("keydown",this.keydown),null==(e=this.tooltip)||e.hide(),null==(t=this.tooltip)||t.destroy(),this.tooltip=void 0,this.raycaster=void 0,this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable),this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}removeDrawable(e){this.dispatchEvent("WillBeRemoved",e)}clearClickedDrawable(){this.clickedOnMeasurementDrawable&&(this.clickedOnMeasurementDrawable.selected=!1,this.clickedOnMeasurementDrawable=void 0)}onMouseClick(e){if(Dn.isMobile)return;let t=Date.now();this.lastClickTime&&t-this.lastClickTime<500||(this.lastClickTime=t,this.selectMeasurementByEvent(e))}selectMeasurementByEvent(e){if(this.clickedOnMeasurementDrawable&&(this.clickedOnMeasurementDrawable.selected=!1,this.clickedOnMeasurementDrawable=void 0),null==this.completed||!0===this.completed){let t=this.getIntersections(e)[0];if(t){let e=this.drawList.getDrawableByPosition(t.point,this.raycaster);e&&(this.dispatchEvent("ClickedOnMeasurement",e),this.clickedOnMeasurementDrawable=e)}}}onMouseMove(e){this.createOrUpdateMeasureDrawable(e)}createOrUpdateMeasureDrawable(e){if(!this.drawingPoints||this.drawingPoints&&this.drawingPoints.length<1)return;let t=[...this.drawingPoints];if(!this.currentMeasureDrawable)return this.currentMeasureDrawable=this.createMeasureDrawable(),this.currentMeasureDrawable&&(this.currentMeasureDrawable.selected=!0),void this.dispatchEvent("WillBeAdded",this.currentMeasureDrawable);e&&t.push(e),this.currentMeasureDrawable.selected=!0,this.currentMeasureDrawable.update(t),this.currentMeasureDrawable.setDrawingState(!0),this.dispatchEvent("Updated")}},Ta=class extends Bi{constructor(e,t){super(e),this.type="Distance",this.labelBounds=new Ji,this.drawing=!1,this.update(t)}setDrawingState(e){this.drawing=e}drawSelect(e,t){let n=this.getVertexes();this.drawPoints(e,t,n)}drawPoints(e,t,n){e.save(),e.fillStyle=Ta.MAJOR_COLOR,e.strokeStyle=Ta.MINOR_COLOR,e.lineWidth=Ta.LINE_WIDTH,e.beginPath(),(this.drawing?n.slice(0,n.length-1):n).forEach((n=>{let i=this.transToScreenCoord(n,t);e.moveTo(i.x+Ta.POINT_RADIUS,i.y),e.arc(i.x,i.y,Ta.POINT_RADIUS,0,2*Math.PI)})),e.closePath(),e.fill(),e.stroke(),e.restore()}drawText(e,t){if(!this.label||!this.labelPositon)return;e.font=`${Ta.LABEL_FONT_SIZE}px Arial`;let n=1.2*e.measureText(this.label).width,i=1.5*Ta.LABEL_FONT_SIZE;this.labelBounds.setFromCenterAndSize(this.labelPositon,new be(n,i)),this.drawRoundRect(e,this.labelPositon.x-n/2,this.labelPositon.y-i/2,n,i,4),e.save(),e.fillStyle=Ta.MINOR_COLOR,e.textBaseline="middle",e.textAlign="center",e.fillText(this.label,this.labelPositon.x,this.labelPositon.y),e.restore()}drawRoundRect(e,t,n,i,r,a){i<2*a&&(a=i/2),r<2*a&&(a=r/2),e.save(),e.fillStyle=Ta.MAJOR_COLOR,e.strokeStyle=Ta.MINOR_COLOR,e.lineWidth=Ta.LINE_WIDTH,e.beginPath(),e.moveTo(t+a,n),e.arcTo(t+i,n,t+i,n+r,a),e.arcTo(t+i,n+r,t,n+r,a),e.arcTo(t,n+r,t,n,a),e.arcTo(t,n,t+i,n,a),e.closePath(),e.fill(),this.selected&&e.stroke(),e.restore()}getVertexes(){return this.points}update(e){let{min:t,max:n}=(new Ot).setFromPoints(e);return this.x=t.x,this.y=t.y,this.width=Math.abs(n.x-t.x),this.height=Math.abs(n.y-t.y),this.points=e,this}getBounds(){let e=this.getVertexes();return(new Ot).setFromPoints(e)}getData(){return{id:this.id,type:this.type,points:this.points.map((e=>[e.x,e.y,e.z]))}}setData(e){super.setData(e),this.setLineColor(Cn.colorStr2Rgba(Ta.MAJOR_COLOR)),this.setFillColor(Cn.colorStr2Rgba(Ta.AREA_FILL_COLOR)),this.setLineWidth(Ta.LINE_WIDTH)}isPointInPath(e,t){let n=null==t?void 0:t.ray;if(!n)return!1;let i=3*this.tolerance,r=this.transToScreenCoord(e,t.camera);if(this.labelBounds.containsPoint(r))return!0;let a=new O,s=new O,o=this.points;for(let l=0;l{let r=this.transToScreenCoord(n,t);0===i?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),3===this.points.length){let[n,i,r]=this.points.map((e=>this.transToScreenCoord(e,t))),a=(new be).subVectors(n,i).normalize(),s=(new be).subVectors(r,i).normalize(),o=Math.min(n.distanceTo(i),r.distanceTo(i)),l=a.angle(),h=s.angle();e.moveTo(i.x,i.y),e.arc(i.x,i.y,o/5,l,h,a.cross(s)<0)}if(e.stroke(),e.restore(),this.drawing){let n=1===this.points.length?this.points:this.points.slice(0,this.points.length-1);this.drawPoints(e,t,n)}this.drawText(e,t)}drawText(e,t){if(this.points.length<3)return;let[n,i,r]=this.points,a=this.getAngleBisector(n,i,r),s=this.calculateAngle(n,i,r);this.label=`${Bu(s,2)} ${this.getUnitString()}`;let o=.3*Math.min(n.distanceTo(i),r.distanceTo(i));this.labelPositon=this.transToScreenCoord(i.clone().add(new O(a.x*o,a.y*o,a.z*o)),t),super.drawText(e,t)}getAngleBisector(e,t,n){let i=e,r=t,a=n,s=new O(i.x-r.x,i.y-r.y,i.z-r.z).normalize(),o=new O(a.x-r.x,a.y-r.y,a.z-r.z).normalize();return new O(s.x+o.x,s.y+o.y,s.z+o.z).normalize()}calculateAngle(e,t,n){let i=e,r=t,a=n,s=new O(i.x-r.x,i.y-r.y,i.z-r.z),o=new O(a.x-r.x,a.y-r.y,a.z-r.z);return 180*s.angleTo(o)/Math.PI}getClassType(){return"Angle"}};Un._registerDrawableClass(v_);var AP=class extends nh{constructor(e,t,n,i){super("Angle",e,t,n,i)}createMeasureDrawable(){if(this.drawingPoints)return new v_(Mt.guid(),this.drawingPoints)}onMouseClick(e){var t;if(super.onMouseClick(e),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),2===e.button)return void this.exitDrawing();let n=this.getIntersections(e)[0];if(!n)return;let i=null!=(t=this.snapPoint)?t:null==n?void 0:n.point;if(this.drawingPoints[0]&&Zt.areVector3sEqual(this.drawingPoints[0],i))return;let r=this.drawingPoints;r.push(i),this.lastMouseDownPosition=i,1===r.length&&(this.dispatchEvent("FirstPointPicked"),this.completed=!1),this.createOrUpdateMeasureDrawable(),r.length>=3&&this.complete()}exitDrawing(){this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=void 0,this.lastMouseDownPosition=void 0}complete(){var e;!0!==this.completed&&(null==(e=this.currentMeasureDrawable)||e.setDrawingState(!1),this.dispatchEvent("Completed",this.currentMeasureDrawable),this.completed=!0,this.currentMeasureDrawable=void 0,this.drawingPoints=void 0,this.lastMouseDownPosition=void 0)}cancel(){let e=this.drawingPoints;if(e&&e.length>0&&(e.pop(),0===e.length&&(this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=!0),this.lastMoveEvent)){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}this.osnapHelper.deactivate(),this.lastMouseDownPosition=void 0}deactivate(){super.deactivate(),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)}setTooltipContent(){var e;let t=this.viewer.translate;if(!t)return;let n=t("Tooltip.measure");n&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(n))}},Jf=class extends Dr{constructor(e,t,n){super(e,t),this.type="Area",this.scale=n,this.update(t)}draw(e,t){let n=this.points;if(e.save(),e.lineWidth=Dr.LINE_WIDTH,e.strokeStyle=Dr.MAJOR_COLOR,e.fillStyle=Dr.AREA_FILL_COLOR,e.beginPath(),n.forEach(((n,i)=>{let r=this.transToScreenCoord(n,t);0===i?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),e.closePath(),e.fill(),e.stroke(),e.restore(),this.drawing){let n=1===this.points.length?this.points:this.points.slice(0,this.points.length-1);this.drawPoints(e,t,n)}this.drawText(e,t)}drawText(e,t){if(this.points.length<3)return;let n=this.points,i=this.calculateArea(n);this.scale&&(i*=Math.pow(this.scale,2)),this.label=`${Bu(i,2)}`,this.labelPositon=this.transToScreenCoord(this.getBarycenter(n),t),super.drawText(e,t)}calculateArea(e){let t=0,n=Fm.getFaces(e);for(let i=0;i{n+=e.x,i+=e.y,r+=e.z})),new O(n/t,i/t,r/t)}isPointInPath(e,t){let n=null==t?void 0:t.ray;if(!n)return!1;let i=this.transToScreenCoord(e,t.camera);if(this.labelBounds.containsPoint(i))return!0;let r=3*this.tolerance,a=new O,s=new O,o=this.points;for(let h=0;h2&&this.drawingPoints[0]){let t=this.drawingPoints[0];ove.subVectors(e,t).length()<3*this.viewer.getPixelSizeInWorldCoord()&&(this.osnapHelper.activateMarker(1,{point:t,type:1,distance:0}),se.info("[AreaMeasurement] auto close area measurement."))}}onMouseClick(e){var t,n;if(super.onMouseClick(e),this.clickedOnMeasurementDrawable)return;this.drawingPoints||(this.drawingPoints=[]);let i=this.drawingPoints;if(2===e.button)return void this.exitDrawing();let r=this.getIntersections(e)[0];if(!r)return void se.warn("[Measure] No intersection found!");let a=null!=(n=null==(t=this.snapPoint)?void 0:t.clone())?n:null==r?void 0:r.point.clone();if(this.drawingPoints&&this.drawingPoints.length>2&&this.drawingPoints[0]){let e=this.drawingPoints[0];if(ove.subVectors(a,e).length()<3*this.viewer.getPixelSizeInWorldCoord())return se.info("[AreaMeasurement] auto close area measurement."),this.touchDowned=!1,void this.exitDrawing()}this.drawingPoints[0]&&Zt.areVector3sEqual(this.drawingPoints[0],a)||(i.push(a),this.lastMouseDownPosition=a,1===i.length&&(this.dispatchEvent("FirstPointPicked"),this.completed=!1),this.createOrUpdateMeasureDrawable())}exitDrawing(){let e=this.drawingPoints||[],t=!0;if(e.length<3&&(se.warn("[Measure] If the number of points is less than 3, the measurement area cannot be formed !"),t=!1),t&&Fm.isSelfIntersecting(e)&&(se.warn("[Measure] The area formed by these points intersects itself, so the correct measurement cannot be obtained !"),t=!1),!t)return this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=void 0,void(this.lastMouseDownPosition=void 0);this.createOrUpdateMeasureDrawable(),this.complete()}complete(){var e;!0!==this.completed&&(null==(e=this.currentMeasureDrawable)||e.setDrawingState(!1),this.dispatchEvent("Completed",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0)}cancel(){let e=this.drawingPoints;if(e&&e.length>0&&(e.pop(),0===e.length&&(this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=!0),this.lastMoveEvent)){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}this.osnapHelper.deactivate(),this.lastMouseDownPosition=void 0}setTooltipContent(){var e;let t=this.viewer.translate;if(t){let n=t("Tooltip.areaMeasurement");n&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(n))}}getScale(){return this.scale}setScale(e){this.scale=e;let t=this.drawList.getDrawables();for(let n of t){let t=n[1];t instanceof Jf&&(t.scale=e)}}},y_=class extends Dr{constructor(e,t){super(e,t),this.type="Coordinate",this.update(t)}draw(e,t){this.drawText(e,t),e.save(),e.lineWidth=Dr.LINE_WIDTH,e.strokeStyle=Dr.MAJOR_COLOR,e.fillStyle=Dr.AREA_FILL_COLOR;let n=this.points;e.beginPath(),n.forEach((n=>{let i=this.transToScreenCoord(n,t);e.arc(i.x,i.y,Dr.POINT_RADIUS,0,2*Math.PI)})),e.fill(),e.stroke(),e.restore()}drawText(e,t){let n=this.points[0];Zt.areNumbersEqual(n.x,0);let i=Zt.areNumbersEqual(n.x,0)?0:n.x,r=Zt.areNumbersEqual(n.y,0)?0:n.y,a=Zt.areNumbersEqual(n.z,0)?0:n.z;this.label=`${Bu(i,2)}, ${Bu(r,2)}, ${Bu(a,2)}`,e.font=`${Dr.LABEL_FONT_SIZE}px Arial`;let s=1.2*e.measureText(this.label).width,o=1.5*Dr.LABEL_FONT_SIZE;this.labelPositon=this.transToScreenCoord(n,t),this.labelPositon.y-=o/2,this.labelBounds.setFromCenterAndSize(this.labelPositon,new be(s,o)),this.drawRoundRect(e,this.labelPositon.x-s/2,this.labelPositon.y-o/2,s,o,4),e.save(),e.fillStyle=Dr.MINOR_COLOR,e.textBaseline="middle",e.textAlign="center",e.fillText(this.label,this.labelPositon.x,this.labelPositon.y),e.restore()}getClassType(){return"Coordinate"}};Un._registerDrawableClass(y_);var PP=class extends nh{constructor(e,t,n,i){super("Coordinate",e,t,n,i)}createMeasureDrawable(){if(this.drawingPoints)return new y_(Mt.guid(),this.drawingPoints)}onMouseClick(e){var t;if(super.onMouseClick(e),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),2===e.button)return void this.exitDrawing();let n=this.getIntersections(e)[0];if(!n)return;let i=null!=(t=this.snapPoint)?t:null==n?void 0:n.point,r=this.drawingPoints;r.push(i),this.lastMouseDownPosition=i,1===r.length&&(this.dispatchEvent("FirstPointPicked"),this.completed=!1),this.createOrUpdateMeasureDrawable(i),r.length>=1&&this.complete()}exitDrawing(){this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=void 0,this.lastMouseDownPosition=void 0}complete(){!0!==this.completed&&(this.dispatchEvent("Completed",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0)}cancel(){let e=this.drawingPoints;if(e&&e.length>0&&(e.pop(),0===e.length&&(this.completed=!0),this.lastMoveEvent)){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}setTooltipContent(){var e;let t=this.viewer.translate;if(t){let n=t("Tooltip.measure");n&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(n))}}},N4=class extends Dr{constructor(e,t,n){super(e,t),this.type="Distance",this.scale=n,this.update(t)}draw(e,t){let n=this.points;if(e.save(),e.lineWidth=Dr.LINE_WIDTH,e.strokeStyle=Dr.MAJOR_COLOR,e.beginPath(),n.forEach(((n,i)=>{let r=this.transToScreenCoord(n,t);0===i?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),e.closePath(),e.stroke(),e.restore(),this.drawing){let n=1===this.points.length?this.points:this.points.slice(0,this.points.length-1);this.drawPoints(e,t,n)}else this.selected||this.drawVerticalLine(e,t);this.drawText(e,t)}drawText(e,t){if(this.points.length<2)return;let[n,i]=this.points,r=n.distanceTo(i);this.scale&&(r*=this.scale),this.label=`${Bu(r,2)}`,this.labelPositon=this.transToScreenCoord((new O).lerpVectors(n,i,.5),t),super.drawText(e,t)}drawVerticalLine(e,t){if(this.points.length<2)return;let[n,i]=this.points.map((e=>this.transToScreenCoord(e,t))),[r,a]=this.getShortLineBySegments(n,i),[s,o]=this.getShortLineBySegments(i,n);e.save(),e.lineWidth=Dr.LINE_WIDTH,e.strokeStyle=Dr.MAJOR_COLOR,e.beginPath(),e.moveTo(r.x,r.y),e.lineTo(a.x,a.y),e.moveTo(s.x,s.y),e.lineTo(o.x,o.y),e.stroke(),e.restore()}getShortLineBySegments(e,t){let n=(new be).subVectors(t,e).normalize(),i=N4.SHORT_LINE_LENGTH/2,r=Math.PI/2;return[n.clone().rotateAround(new be,r).normalize().multiplyScalar(i).add(e),n.clone().rotateAround(new be,-r).normalize().multiplyScalar(i).add(e)]}getClassType(){return"Distance"}setScale(e){this.scale=e}},ig=N4;ig.SHORT_LINE_LENGTH=12,Un._registerDrawableClass(ig);var IP=class extends nh{constructor(e,t,n,i){super("Distance",e,t,n,i)}createMeasureDrawable(){if(this.drawingPoints)return new ig(Mt.guid(),this.drawingPoints,this.scale)}onMouseClick(e){var t;if(super.onMouseClick(e),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),2===e.button)return void this.exitDrawing();let n=this.getIntersections(e)[0];if(!n)return;let i=null!=(t=this.snapPoint)?t:null==n?void 0:n.point;if(this.drawingPoints[0]&&Zt.areVector3sEqual(this.drawingPoints[0],i))return;let r=this.drawingPoints;r.length<2&&r.push(i),this.lastMouseDownPosition=i,1===r.length&&(this.dispatchEvent("FirstPointPicked"),this.completed=!1),this.createOrUpdateMeasureDrawable(),r.length>=2&&this.complete()}exitDrawing(){this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=void 0,this.lastMouseDownPosition=void 0}complete(){var e;!0!==this.completed&&(null==(e=this.currentMeasureDrawable)||e.setDrawingState(!1),this.dispatchEvent("Completed",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0)}cancel(){let e=this.drawingPoints;e&&e.length>0&&(e.pop(),0===e.length&&(this.completed=!0),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)),this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}deactivate(){super.deactivate(),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)}setTooltipContent(){var e;let t=this.viewer.translate;if(t){let n=t("Tooltip.measure");n&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(n))}}getScale(){return this.scale}setScale(e){this.scale=e;let t=this.drawList.getDrawables();for(let n of t){let t=n[1];(t instanceof ig||t instanceof Jf)&&(t.scale=e)}}},lve=class extends fr{constructor(e){var t,n;super(e,{id:"MeasurementPlugin"}),this.selectedDrawable=void 0,this.drawableList=new Ko("measure"),this.drawableHelperList=new Ko("touchHelper"),this.snapToleranceInPixel=3,this.measurements={},this.activeMeasurementType=void 0,this.keydown=e=>{var t;let n,i=this.getActiveMeasurementType();i&&(n=this.measurements[i]);let r=this.selectedDrawable;r&&"Delete"===e.code&&(this.remove(r),null==(t=this.viewer.undoRedoManager)||t.addCommand(new ry(this,r.getData())),this.activeMeasurementType&&this.measurements[this.activeMeasurementType].clearClickedDrawable()),e.ctrlKey&&"KeyZ"===e.code&&null!=n&&n.isMeasuring&&n.cancel(),e.ctrlKey&&"KeyY"===e.code&&null!=n&&n.isMeasuring};let i=e.getInputManager();if(!i)throw"InputManager init error";this.inputManager=i,this.overlayRender=this.viewer.overlayRender,null==(t=this.overlayRender)||t.addDrawableList(this.drawableHelperList),null==(n=this.overlayRender)||n.addDrawableList(this.drawableList);let r=new wP(this.overlayRender);e.is3d()&&(r.setOSnapTypeEnabled(32,!1),r.setOSnapTypeEnabled(64,!1)),this.measurements.Distance=new IP(e,i,this.drawableList,r),this.measurements.Area=new CP(e,i,this.drawableList,r),this.measurements.Angle=new AP(e,i,this.drawableList,r),this.measurements.Coordinate=new PP(e,i,this.drawableList,r),this.osnapHelper=r,this.inputManager.addEventListener("wheel",(()=>{this.updateSnapTolerance()})),this.viewer.addEventListener("LayoutChanged",(()=>{this.updateSnapTolerance()})),this.initEvents()}initEvents(){Object.values(this.measurements).forEach((e=>{e.addEventListener("Completed",(e=>{var t;this.viewer.dispatchEvent("MeasurementAdded",e.getData()),null==(t=this.viewer.undoRedoManager)||t.addCommand(new hE(this,e.getData())),this.select(e)})),e.addEventListener("WillBeAdded",(e=>{this.add(e,!1)})),e.addEventListener("Updated",(()=>{this.render()})),e.addEventListener("WillBeRemoved",(e=>{this.remove(e,!1)})),e.addEventListener("Deactivate",(()=>{this.osnapHelper.deactivate(),this.viewer.deactivateMeasurement()})),e.addEventListener("FirstPointPicked",(()=>{this.unselect()})),e.addEventListener("ClickedOnMeasurement",(e=>{this.select(e)}))}))}get canvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get raycaster(){return this.viewer.getRaycaster()}add(e,t=!0){this.drawableList.addDrawable(e),this.selectedDrawable=e,this.render(),t&&this.viewer.dispatchEvent("MeasurementAdded",e.getData())}create(e){return Un.createDrawable(e)}remove(e,t=!0){this.drawableList.removeDrawable(e),this.render(),t&&this.viewer.dispatchEvent("MeasurementRemoved",e.getData())}setSnapTolerance(e){this.snapToleranceInPixel=e,this.updateSnapTolerance()}updateSnapTolerance(){let e=this.viewer.getPixelSizeInWorldCoord()*this.snapToleranceInPixel;this.osnapHelper.setSnapTolerance(e)}activate(e){this.activeMeasurementType&&this.deactivate(),this.measurements[e]?(this.measurements[e].activate(),this.activeMeasurementType=e,this.updateSnapTolerance()):(this.activeMeasurementType=void 0,se.error("[Measure] Failed to activate measurement, type:",e));let{width:t,height:n}=this.canvas.getBoundingClientRect();Dn.isMobile&&this.canvas&&!this.mobileTouchHelper&&(this.mobileTouchHelper=new RP(new be(t/2,n/2)),this.drawableHelperList.addDrawable(this.mobileTouchHelper)),this.mobileTouchHelper&&(this.mobileTouchHelper.setPosition(new be(t/2,n/2)),this.measurements[e].setTouchHelper(this.mobileTouchHelper),this.mobileTouchHelper.visible=!0,this.render()),this.inputManager.addEventListener("keydown",this.keydown)}deactivate(){this.unselect();let e=this.activeMeasurementType;e&&this.measurements[e].deactivate(),this.activeMeasurementType=void 0,this.mobileTouchHelper&&(this.mobileTouchHelper.visible=!1,this.render()),this.inputManager.removeEventListener("keydown",this.keydown)}getActiveMeasurementType(){return this.activeMeasurementType}isActive(){let e=this.activeMeasurementType;return e?this.measurements[e].isActive:!!this.getActiveMeasurementType()}isMeasuring(){let e=this.activeMeasurementType;return!!e&&this.measurements[e].isMeasuring}getData(){return this.drawableList.getDrawableDatas()}cancel(){let e=this.activeMeasurementType;e&&this.measurements[e].exitDrawing()}setData(e){var t,n;null==(t=this.viewer.undoRedoManager)||t.startTransaction(),e.forEach((e=>{var t;this.measurements[e.type]?e.points.length>=2?(this.add(Un.createDrawable(e)),null==(t=this.viewer.undoRedoManager)||t.addCommand(new hE(this,e))):se.info("[Measure] Invalid points found in MeasurementData:",e):se.warn("[Measure] Failed to add measurement data for",e)})),null==(n=this.viewer.undoRedoManager)||n.endTransaction()}setVisibilityById(e,t){let n=this.drawableList.getDrawables().get(e);return!!n&&(n.visible!==t&&(n.visible=t,this.render()),!0)}setVisibilities(e){let t=!1;this.drawableList.getDrawables().forEach((n=>{n.visible!==e&&(n.visible=e,t=!0)})),t&&this.render()}clear(){let e=this.activeMeasurementType;e&&this.measurements[e].exitDrawing(),this.drawableList.clear(),this.render()}getById(e){return this.drawableList.getDrawableById(e)}removeById(e){let t=this.drawableList.getDrawableById(e);t?this.remove(t):se.warn("[Measure] Failed to find measurement by id:",e)}selectById(e){let t=this.drawableList.getDrawableById(e);t&&this.select(t)}select(e){this.unselect(!1),e.selected=!0,this.selectedDrawable=e,this.render()}unselect(e=!0){this.selectedDrawable&&(this.selectedDrawable.selected=!1,e&&this.render()),this.selectedDrawable=void 0}getScale(){return this.measurements.Distance.getScale()}setScale(e){if(!e||e<=0)return void se.error("[Measure] Invalid scale value:",e);let t=this.measurements.Distance,n=this.measurements.Area;t.setScale(e),n.setScale(e)}destroy(){super.destroy(),this.deactivate(),this.clear(),this.drawableHelperList.clear(),this.measurements={},this.osnapHelper.destroy(),this.render()}render(e=!1){var t;e?this.viewer.enableRender():null==(t=this.overlayRender)||t.render()}},Oy=new et,cve=new et,uve=new ya,B4=new O,ky=new Ot,hve=new ct,Qf=class extends Zf{constructor(e){super(e),this.name="DxfViewer",this.CAMERA_Z_POSITION=100,this.CAMERA_MIN_ZOOM=1e-6,this.timer=Date.now(),this.loadedModels=[],this.masterModelId="",this.raycaster=new ia,this.selected=!0,this.raf=new qf,this.clock=new mo,this.renderEnabled=!1,this.enableHideVisuallySmallObjects=!0,this.sortedHidableObjects={},this.lastCameraZoom=1/0,this.lastFrame=-1,this.activeLayoutName="",this.layoutInfos={},this.units=void 0,this.fpsUtils=new LA,this.onResize=()=>{this.viewerContainer&&this.viewerContainer&&this.resize(this.viewerContainer.clientWidth,this.viewerContainer.clientHeight)},this.enableRender=(e=1e3)=>{this.renderEnabled=!0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.timeoutSymbol=this.raf.setTimeout((()=>{this.renderEnabled=!1}),e))},this.loadingDxfCount=0,this.compareMode=!1,this.viewerCfg=e,this.increaseJobCount(),this.init(),this.animate(),this.enableRender(),this.decreaseJobCount(),se.info(`[Viewer] Initialized in ${(Date.now()-this.timer)/1e3}s`)}init(){let e=this.viewerCfg;this.initThree(),Dn.isBrowser&&!e.context&&this.initDom(),this.initInputManager(),this.initEvents(),this.initControls(),this.initOthers(),this.enableSelection=e.enableSelection}initInputManager(){this.viewerContainer&&(this.inputManager=new Jo(this.viewerContainer))}initThree(){this.initScene(),this.initRenderer(),this.initCamera()}initDom(){let e=this.viewerCfg;this.initSpinner(),this.initCSS2DRenderer(),!0===e.enableAxisGizmo&&console.warn("[Viewer] enableAxisGizmo is deprecated, use AxisGizmoPlugin instead!"),!0===e.enableStats&&console.warn("[Viewer] enableStats is deprecated, use StatsPlugin instead!"),e.enableToolbar&&console.warn("[Viewer] enableToolbar is deprecated, use ToolbarPlugin instead!"),e.enableBottomBar&&console.warn("[Viewer] enableBottomBar is deprecated, use BottomBarPlugin instead!"),e.enableProgressBar&&(this.loadingProgressBar=this.initLoadingProgressBar()),e.enableLayoutBar&&(this.dxfLayoutBar=new tP(this))}initScene(){let e=new _i;e.background=new ct(2172976),e.matrixAutoUpdate=!1,e.matrixWorldAutoUpdate=!1,this.scene=e}initRenderer(){var e;let{context:t}=this.viewerCfg,n={context:t,antialias:!0,preserveDrawingBuffer:!0,alpha:!1,stencil:!1};!Dn.isBrowser&&t&&Object.assign(n,{context:t,canvas:Dn.creatReactNativeCanvas(t)}),t&&(this.width=t.drawingBufferWidth,this.height=t.drawingBufferHeight),this.renderer=new Ms(n),this.renderer.setClearColor(11119017,1),this.renderer.localClippingEnabled=!0,Dn.isBrowser&&(!t&&this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.domElement.classList.add("webgl-renderer"),null==(e=this.viewerContainer)||e.appendChild(this.renderer.domElement)),this.renderer.setSize(this.width,this.height),Mt.printGpuInfo(this.renderer.getContext()),gn.maxFragmentUniforms=this.renderer.capabilities.maxFragmentUniforms-20,this.enableOverlayRenderer&&(this.overlayRender=new Un(this))}initCSS2DRenderer(){var e;let t=new Nu;t.setSize(this.width,this.height),t.domElement.style.height="0",t.domElement.style.width="0",t.domElement.style.position="absolute",t.domElement.style.top="0",t.domElement.style.left="0",t.domElement.style.overflow="visible",t.domElement.classList.add("css2d-renderer"),null==(e=this.viewerContainer)||e.appendChild(t.domElement),this.css2dRenderer=t}initCamera(){if(!this.scene)return;let e=new Ur(-this.width/2,this.width/2,this.height/2,-this.height/2,.1,1e5);e.position.set(0,0,this.CAMERA_Z_POSITION),e.zoom=10,e.updateProjectionMatrix(),this.scene.add(e),this.camera=e,this.frustumSize=this.width}initControls(){let e=this.camera;if(!this.inputManager||!e)return;let t=new ba(e,this.inputManager);t.enableRotate=!1,t.enabled=!0,t.keyTruckSpeed=10,t.dollyToCursor=!0,t.dollySpeed=.5,t.truckSpeed=1,t.mouseButtons={left:yt.TRUCK,middle:yt.TRUCK,wheel:yt.ZOOM,right:yt.TRUCK},t.touches={one:yt.TOUCH_TRUCK,two:yt.TOUCH_ZOOM_TRUCK,three:yt.NONE},t.listenToKeyEvents(),t.update(0),this.controls=t,t.addEventListener("control",this.onControlsChange(this))}onControlsChange(e){return()=>{this.updateHidableObjectsVisibility(),e.enableRender()}}initEvents(){if(!this.inputManager||!this.renderer)return;let e=!1,t=!1;this.inputManager.addEventListener("pointerdown",(n=>{var i;t=!1,e=!0,1===n.button&&(null==(i=this.inputManager)||i.setCursor("move"))})),this.inputManager.addEventListener("pointermove",(()=>{var n;e&&(t=!0,null==(n=this.inputManager)||n.setCursor("move"))})),this.inputManager.addEventListener("pointerup",(n=>{var i;if(e=!1,null==(i=this.inputManager)||i.setCursor("default"),t)return void(t=!1);this.handleMouseClick(n);let r={evt:n};if(this.selectedObject&&this.selectedObject instanceof wi&&(r.markupData=this.selectedObject.getData()),this.selectedObject&&this.selectedObject instanceof Dr&&(r.measureData=this.selectedObject.getData()),this.selectedObject&&this.selectedObject instanceof an){let e=t=>t.parent&&!t.parent.isScene?e(t.parent):t.name;r.entityData={modelId:e(this.selectedObject),layerName:this.selectedObject.userData.layerName}}this.dispatchEvent("MouseClicked",r)})),this.inputManager.addEventListener("keydown",(e=>{var t,n,i,r,a;if(e.altKey&&"KeyR"===e.code)this.flyToRandomObject();else if(e.ctrlKey&&"KeyZ"===e.code){if(this.measurePlugin&&this.measurePlugin.isMeasuring())return;null==(t=this.undoRedoManager)||t.undo()}else if(e.ctrlKey&&"KeyY"===e.code){if(this.measurePlugin&&this.measurePlugin.isMeasuring())return;null==(n=this.undoRedoManager)||n.redo()}else"Delete"===e.code&&this.selectedObject&&(this.markupManager&&this.selectedObject instanceof wi&&(this.markupManager.removeMarkup(this.selectedObject),null==(i=this.undoRedoManager)||i.addCommand(new zm(this.markupManager,this.selectedObject.getData()))),this.measurePlugin&&this.selectedObject instanceof Dr&&(null==(r=this.measurePlugin)||r.remove(this.selectedObject),null==(a=this.undoRedoManager)||a.addCommand(new ry(this.measurePlugin,this.selectedObject.getData()))))}))}initOthers(){!this.scene||!this.renderer||!this.camera||(this.renderer.domElement.style.outlineWidth="0")}initLoadingProgressBar(){return new Gf(this.widgetContainer)}showLayoutBar(){var e;null==(e=this.dxfLayoutBar)||e.show()}hideLayoutBar(){var e;null==(e=this.dxfLayoutBar)||e.hide()}animate(){var e,t,n;if(this.minFrameInterval>0&&Date.now()-this.lastFrameExecuteTime{var n;null==(n=this.loadingProgressBar)||n.updateProgress(o,l,e),t&&t(new ProgressEvent("LoadProgress",{loaded:e,total:100}))},c=(e,n,i)=>{var r;let a=100*e.loaded/e.total;a=a*(i-n)/100+n,null==(r=this.loadingProgressBar)||r.updateProgress(o,l,a),t&&t(new ProgressEvent("LoadProgress",{loaded:a,total:100}))};null==(n=this.loadingProgressBar)||n.addProgressItem(o),h(0);let u={ignorePaperSpace:a,enableLocalCache:this.viewerCfg.enableLocalCache,enableMerge:e.merge,encoding:e.encoding,overrideColor:e.overrideColor},d=yield s.loadDxfData(e.src,e.modelId,(e=>c(e,0,90)),void 0,u).finally((()=>{this.loadingDxfCount--,0===this.loadingDxfCount&&this.fontManager&&this.fontManager.releaseFontData()}));if(se.info(`[Viewer] Loaded '${e.src}' in ${(Date.now()-this.timer)/1e3}s, adding to scene...`),gn.abortJobs&&Promise.reject("[Viewer] abort load dxf"),0===d.threejsObject.children.length){let t=`[Viewer] Nothing was loaded from ${e.src}`;return se.warn(t),this.decreaseJobCount(),Promise.reject(t)}let p=d.threejsObject;p.name=r;let f=this.getDxfUnits(d);if(this.masterModelId===e.modelId&&(this.units=f),se.info(`[Viewer] Units of '${e.src}' is '${f}'`),e.matrix&&16===e.matrix.length){let t=new et;t.elements=e.matrix,p.applyMatrix4(t)}return this.addModel({modelId:r,dxfData:d}),Mt.printMemory("After addModel()"),se.info(`[Viewer] Added '${e.src}' to scene in ${(Date.now()-this.timer)/1e3}s`),this.decreaseJobCount(),h(100),null==(i=this.loadingProgressBar)||i.delayRemoveProgressItem(o),this.dispatchEvent("ModelLoaded"),Promise.resolve()}))}unloadDxf(){throw new Error("Not implemented yet!")}addModel(e){if(!this.scene||!this.camera)return;let{dxfData:t,pdfData:n}=e,i=this.getUniqueModelId(e.modelId);if(this.masterModelId||(this.masterModelId=i),t){let e=t.threejsObject;e.name=i;let n={modelId:i,dxfData:t};this.loadedModels.push(n),e.matrixAutoUpdate=!1,e.updateMatrix(),e.updateMatrixWorld(!0),gn.computeLineDistances(e),this.getMsTransformMatrix(i),this.masterModelId===i?this.activateLayout(gn.MODEL_LAYOUT_NAME):this.handleOverlayDxf(i),se.debug("[Viewer] dxfData:",t),this.scene.add(e);let r=null==t?void 0:t.threejsObject.children.find((e=>e.name===gn.MODEL_LAYOUT_NAME));r&&this.setLayoutHidableObjectArray(r),this.updateGroundPlane(),this.raycastableObjects=void 0,this.masterModelId===i||this.enableRender()}else if(n){let t=n.threejsObject;this.activeLayoutName=gn.MODEL_LAYOUT_NAME;let i=(new Ot).setFromObject(t);this.layoutInfos[this.activeLayoutName]={homeViewExtent:i,extent:i},this.loadedModels.push(e),t.matrixAutoUpdate=!1,this.scene.add(t);let r=i.max.z;r>this.camera.position.z&&(this.camera.position.z=r,this.camera.updateProjectionMatrix()),this.updateGroundPlane(),this.flyToObject(t)}}isCompareMode(){return this.compareMode}compare(e,t,n,i){return ft(this,null,(function*(){var r,a,s,o;let{src:l,modelId:h}=e,{src:c}=t;if(this.compareMode)return Promise.reject("[Viewer] It is already under comparing mode!");if(this.masterModelId||this.loadedModels.length>0)return Promise.reject("[Viewer] Shouldn't load anything else before compare!");if(this.compareMode=!0,this.timer=Date.now(),this.increaseJobCount(),!this.fontManager)return Promise.reject("[Viewer] Should set font first!");let u={ignorePaperSpace:!0,encoding:e.encoding},d=new gn(this.loadingManager,u);d.setFont(this.fontManager);let p=l+c,f=this.translate("ProgressBar.Comparing"),m=e=>{var t;null==(t=this.loadingProgressBar)||t.updateProgress(p,f,e),i&&i(new ProgressEvent("CompareProgress",{loaded:e,total:100}))},g=(e,t,n)=>{var r;let a=100*e.loaded/e.total;a=a*(n-t)/100+t,null==(r=this.loadingProgressBar)||r.updateProgress(p,f,a),i&&i(new ProgressEvent("CompareProgress",{loaded:a,total:100}))};Mt.printMemory("Before comparing"),this.masterModelId=h||l,this.loadingDxfCount+=2,null==(r=this.loadingProgressBar)||r.addProgressItem(p),m(0);let v=Date.now(),y=yield d.parse(l,(e=>g(e,0,15))),x=yield d.parse(c,(e=>g(e,15,30))),[b,_]=yield Promise.allSettled([y,x]);if("rejected"===b.status)return Promise.reject(`[Viewer] Failed to parse ${l}`);if("rejected"===_.status)return Promise.reject(`[Viewer] Failed to parse ${c}`);if(se.info(`[Viewer] loadFiles in ${(Date.now()-v)/1e3}s`),gn.abortJobs)return Promise.reject("[Viewer] compare loadFile aborted");let w=b.value,S=_.value;v=Date.now();let M=yield new hs(w,S,n).compare((e=>g(e,30,60)));if(se.info(`[Viewer] Compared in ${(Date.now()-v)/1e3}s`),se.debug("[Viewer] Compared results:",M),gn.abortJobs)return Promise.reject("[Viewer] compare change aborted");Mt.printMemory("After getting the comparison results"),v=Date.now(),yield d.loadEntitiesForCompare(w,S,M,!0,(e=>g(e,60,95))),Mt.printMemory("After Creating threejs objects based on comparison result"),this.fontManager.releaseFontData(),this.changes=M,se.info(`[Viewer] Creates threejs objects based on comparison result in ${(Date.now()-v)/1e3}s`);let T=w,E=S;if(this.loadingDxfCount-=2,this.decreaseJobCount(),Object.keys(M).length||se.info("[Viewer] No change found"),0===(null==(a=T.threejsObject)?void 0:a.children.length)&&0===(null==(s=E.threejsObject)?void 0:s.children.length)){let e=`[Viewer] Nothing was loaded from ${l} and ${c}`;return se.warn(e),Promise.reject(e)}let A=T.threejsObject,C=E.threejsObject;return A.name=l,C.name=c,v=Date.now(),this.addModel({modelId:e.modelId||e.src,dxfData:T}),Mt.printMemory("After adding first loaded Model to scene"),m(95),this.addModel({modelId:t.modelId||t.src,dxfData:E}),Mt.printMemory("After adding second loaded Model to scene"),se.info(`[Viewer] Added compared objects to scene in ${(Date.now()-v)/1e3}s`),se.info(`[Viewer] The comparison between ${l}' and '${c}' is completed in ${(Date.now()-this.timer)/1e3}s !`),m(100),null==(o=this.loadingProgressBar)||o.delayRemoveProgressItem(p),Promise.resolve()}))}getEntitiesCount(){let e=0;return this.loadedModels.forEach((t=>{var n,i;e+=(null==(n=t.dxfData)?void 0:n.loadedEntityCount)||(null==(i=t.pdfData)?void 0:i.loadedEntityCount)||0})),e}getLoadedDxfModelIds(){return this.loadedModels.map((e=>e.modelId))}getLayoutNames(){let e=[];return this.getLayouts().forEach((t=>{e.push(t.layoutName)})),e}getLayouts(){let e=[],t=this.loadedModels.find((e=>this.masterModelId===e.modelId));if(t){let n=t.dxfData,i=null==n?void 0:n.objects.LAYOUT;null==i||i.forEach((t=>{e.push(t)}))}return e}handleOverlayDxf(e){var t;let n=this.loadedModels.find((t=>e===t.modelId));if(!n)return void se.warn(`[Viewer] Can't find model for modelId '${e}'!`);this.increaseJobCount(),this.switchTransformMs(gn.MODEL_LAYOUT_NAME,e);let i=null==(t=n.dxfData)?void 0:t.threejsObject,r=null==i?void 0:i.children.find((e=>e.name===gn.MODEL_LAYOUT_NAME));r&&r.traverse((e=>{this.addSpatialFilterSection(e,n.dxfData)})),this.showLayoutObjects(this.activeLayoutName),this.decreaseJobCount()}activateLayout(e){var t,n,i,r;if(this.increaseJobCount(),0==e.length)return se.warn("[Viewer] layout name is empty !"),void this.decreaseJobCount();if(e===this.activeLayoutName)return void this.decreaseJobCount();let a=Date.now(),s=this.camera,o=this.getLayoutByName(e);if(!o)return se.warn(`[Viewer] Can't find layout of ${e} !`),void this.decreaseJobCount();let l=this.loadedModels.find((e=>this.masterModelId===e.modelId));if(!l)return se.warn(`[Viewer] Can't find master model for modelId '${this.masterModelId}'!`),void this.decreaseJobCount();if(this.raycastableObjects=void 0,this.activeLayoutName){let e=this.getActiveLayoutInfo();e.lastCameraPosition||(e.lastCameraPosition=new O),null==(t=this.camera)||t.getWorldPosition(e.lastCameraPosition),this.controls.update(0),e.lastCameraZoom=s.zoom}if(!(e=>{let t=this.layoutInfos[e];return!(null==t||!t.lastCameraZoom)})(e)){this.switchTransformMs(e,this.masterModelId);let t=this.getLayoutViewports(o),r=[];t.length>0&&(r=t[0].frozenLayerHandles);let a=e!==gn.MODEL_LAYOUT_NAME,s=null==(n=l.dxfData)?void 0:n.threejsObject,h=null==s?void 0:s.children.find((t=>t.name===e));if(h){let t=[],n=null==(i=l.dxfData)?void 0:i.layersAndThreejsObjects;h.traverse((i=>{this.addSpatialFilterSection(i,l.dxfData);let s=i;if(a&&s.material&&s.geometry){let i=s.userData.layerName;if(!this.isLayerFrozenForViewport(l.dxfData,i,r))return;t.push(s);let a=-1;n&&n[i]&&(a=n[i].indexOf(s),a>=0&&n[i].splice(a,1)),a<0&&se.warn(`[Viewer] Failed to find object for modelId '${this.masterModelId}', layer '${i}', layout '${e}'`)}})),t.forEach((e=>{e.removeFromParent()}))}let c=this.getFilteredViewports(o);se.debug("[Viewer] Active layout:",e,", viewports:",c);let u=Date.now(),d=this.CAMERA_Z_POSITION/10,p=0;c.forEach((t=>{var n;this.generateObjectsByViewport(e,t,l.dxfData);let i=null==(n=null==t?void 0:t.msToPsMatrix)?void 0:n.elements[14];i&&i>p&&(p=i)}));let f=this.controls,m=f.getPosition(new O);if(p>m.z+d){let e=Math.ceil(p+d);se.info(`[Viewer] Changing camera's z value from ${m.z} to ${e}`);let t=f.getTarget(new O);m.setZ(e),f.setLookAt(m.x,m.y,m.z,t.x,t.y,t.z)}se.info(`[Viewer] generateObjectsByViewport in ${(Date.now()-u)/1e3}s`),e!==gn.MODEL_LAYOUT_NAME&&this.switchTransformMs(gn.MODEL_LAYOUT_NAME,this.masterModelId),e!==gn.MODEL_LAYOUT_NAME&&h&&this.setLayoutHidableObjectArray(h)}this.measurePlugin&&this.clearMeasurements(),this.markupManager&&this.clearMarkups(),null==(r=this.undoRedoManager)||r.clear(),this.showLayoutObjects(e),this.activeLayoutName=e;let h=this.getActiveLayoutInfo();if(h.lastCameraPosition)this.goTo(h.lastCameraPosition,h.lastCameraZoom,!1);else{h.extent=this.computeBoundingBox();let e=this.getLayoutExtentEx(o);if(e){let t=e.max.x-e.min.x,n=e.max.y-e.min.y;(t<1e-16||n<1e-16||t>1e16||n>1e16)&&(se.warn(`[Viewer] Got wired bbox, max: ${e.max.toArray()}, min: ${e.min.toArray()}, going to use the calculated one...`),e=h.extent)}else se.warn("[Viewer] Failed to get layout extent, going to use the calculated one..."),e=h.extent;h.homeViewExtent=e,this.zoomToBBox(e)}this.updateGroundPlane(),this.dispatchEvent("LayoutChanged"),Mt.printMemory(`After activated layout '${this.activeLayoutName}'`),this.enableRender(),this.decreaseJobCount(),se.info(`[Viewer] Activated layout '${e}' in ${(Date.now()-a)/1e3}s`)}cancelAllOperations(){var e,t,n,i,r,a;null!=(e=this.measurePlugin)&&e.isActive()&&(null==(t=this.measurePlugin)||t.deactivate()),null!=(n=this.markupManager)&&n.isMarkupActive()&&(null==(i=this.markupManager)||i.deactivate()),null!=(r=this.zoomToRectHelper)&&r.isActive()&&(null==(a=this.zoomToRectHelper)||a.deactivate())}getActiveLayoutName(){return this.activeLayoutName}getLayers(){var e,t,n,i,r,a;let s=[];if(this.masterModelId){let i=this.loadedModels.find((e=>this.masterModelId===e.modelId)),r=(null==(t=null==(e=null==i?void 0:i.dxfData)?void 0:e.tables)?void 0:t.layer.layers)||(null==(n=null==i?void 0:i.pdfData)?void 0:n.layers);r&&s.push({modelId:this.masterModelId,layers:r})}for(let o of this.loadedModels){let e=o.modelId;if(e===this.masterModelId)continue;let t=(null==(r=null==(i=null==o?void 0:o.dxfData)?void 0:i.tables)?void 0:r.layer.layers)||(null==(a=o.pdfData)?void 0:a.layers);t&&s.push({modelId:e,layers:t})}return s}setModelVisibility(e,t){let n=this.loadedModels.find((t=>e===t.modelId)),i=(null==n?void 0:n.dxfData)||(null==n?void 0:n.pdfData);if(!n||!i)throw new Error(`Failed to find model by modelId '${e}'!`);i.threejsObject.visible=t,this.enableRender()}setLayerVisibility(e,t,n){var i;let r=this.camera;n=n||this.masterModelId;let a=this.loadedModels.find((e=>n===e.modelId));if(!a)throw new Error(`Failed to find layer by modelId '${n}'!`);let s=a.dxfData||a.pdfData,o=(null==(i=s.tables)?void 0:i.layer.layers[e])||s.layers[e];o?o.visible=t:se.warn(`[Viewer] Layer '${e}' not found from modelData!`);let l=(null==s?void 0:s.layersAndThreejsObjects)&&(null==s?void 0:s.layersAndThreejsObjects[e]);if(l){let e=r.zoom;for(let n=0;nn===e.modelId));if(!r)throw new Error(`Failed to find layer by modelId '${n}'!`);let a=r.dxfData||r.pdfData;if(!(null==(i=a.tables)?void 0:i.layer.layers[e])&&!a.layers[e])throw new Error(`Failed to find layer by layerName '${e}'!`);this.clearSelection();let s=(null==a?void 0:a.layersAndThreejsObjects)&&(null==a?void 0:a.layersAndThreejsObjects[e]);s?s.forEach((e=>{let n=e;if(n.material){n.userData.originalMaterial||(n.userData.originalMaterial=es.cloneMaterial(n.material));let e=es.cloneMaterial(n.material);es.setMaterialColor(e,new ct(t)),gn.updateMaterialUniforms(e),n.material=e}})):se.info(`[Viewer] No object found for layer '${e}'`),this.enableRender()}resetLayerColor(e,t){var n;t=t||this.masterModelId;let i=this.loadedModels.find((e=>t===e.modelId));if(!i)throw new Error(`Failed to find model by modelId '${t}'!`);let r=i.dxfData||i.pdfData;if(!(null==(n=r.tables)?void 0:n.layer.layers[e])&&!r.layers[e])throw new Error(`Failed to find layer by layerName '${e}'!`);this.clearSelection();let a=(null==r?void 0:r.layersAndThreejsObjects)&&(null==r?void 0:r.layersAndThreejsObjects[e]);a?a.forEach((e=>{let t=e;t.material&&t.userData.originalMaterial&&(t.material.dispose(),t.material=t.userData.originalMaterial,delete t.userData.originalMaterial)})):se.info(`[Viewer] No object found for layer '${e}'`),this.enableRender()}setFont(e){return ft(this,null,(function*(){this.increaseJobCount();let t=Date.now();this.fontManager||(this.fontManager=new ud),yield this.fontManager.loadFonts(e),this.decreaseJobCount(),se.info(`[Viewer] Font file(s) load time in ${(Date.now()-t)/1e3}s`)}))}getFont(){return this.fontManager}setLoadingManager(e){this.loadingManager=e}setDisplayLengthUnits(){throw new Error("Not implemented yet!")}setDisplayAreaUnits(){throw new Error("Not implemented yet!")}setDisplayPrecision(){throw new Error("Not implemented yet!")}getCurrentViewExtent(){return{min:this.getHitResultByNdcCoordinate({x:-1,y:-1}),max:this.getHitResultByNdcCoordinate({x:1,y:1})}}getScreenshot(){return ft(this,arguments,(function*(e="BoxSelection"){this.cancelAllOperations();let t=this.findPlugin("ScreenshotPlugin");if(t)return t.getScreenshotAsync(e);se.warn("[DxfViwer] ScreenshotPlugin doesn't seem to be installed!")}))}get measurePlugin(){return this.plugins.find((e=>"MeasurementPlugin"===e.id))}activateMeasurement(e){this.cancelAllOperations();let t=this.measurePlugin;t?(t.activate(e),this.clearSelection(),this.dispatchEvent("MeasurementActivated")):se.warn("[Viewer] MeasurementPlugin doesn't seem to be installed!")}deactivateMeasurement(){var e;null==(e=this.measurePlugin)||e.deactivate(),this.dispatchEvent("MeasurementDeactivated")}getActiveMeasurementType(){var e;return null==(e=this.measurePlugin)?void 0:e.getActiveMeasurementType()}getMeasurements(){var e;return(null==(e=this.measurePlugin)?void 0:e.getData())||[]}cancelMeasurement(){var e;null==(e=this.measurePlugin)||e.cancel()}setMeasurements(e){let t=this.measurePlugin;t&&(this.clearMeasurements(),t.setData(e))}selectMeasurement(e){var t;null==(t=this.measurePlugin)||t.selectById(e)}unselectMeasurement(){var e;null==(e=this.measurePlugin)||e.unselect()}removeMeasurement(e){var t;null==(t=this.measurePlugin)||t.removeById(e)}setMeasurementVisibility(e,t){let n=this.measurePlugin;return!!n&&n.setVisibilityById(e,t)}clearMeasurements(){var e;null==(e=this.measurePlugin)||e.clear()}getMarkupManager(){return this.markupManager}activateMarkup(e){this.cancelAllOperations(),this.inputManager&&(this.markupManager||(this.markupManager=new dE(this,this.inputManager)),this.markupManager.isMarkupActive()||this.markupManager.activate(),this.markupManager.setDrawType(e),this.clearSelection(),this.dispatchEvent("MarkupActivated"))}deactivateMarkup(){this.markupManager&&this.markupManager.deactivate(),this.dispatchEvent("MarkupDeactivated")}getActiveMarkupType(){var e;return null==(e=this.markupManager)?void 0:e.getActiveMarkupType()}setMarkupLineColor(e,t,n,i){var r;null==(r=this.markupManager)||r.setLineColor([e,t,n,i])}getMarkupLineColor(){var e;return null==(e=this.markupManager)?void 0:e.getLineColor()}setMarkupFillColor(e,t,n,i){var r;null==(r=this.markupManager)||r.setFillColor([e,t,n,i])}getMarkupFillColor(){var e;return null==(e=this.markupManager)?void 0:e.getFillColor()}setMarkupLineWidth(e){var t;null==(t=this.markupManager)||t.setLineWidth(e)}getMarkupLineWidth(){var e;return null==(e=this.markupManager)?void 0:e.getLineWidth()}setMarkupFontSize(e){var t;null==(t=this.markupManager)||t.setFontSize(e)}getMarkupFontSize(){var e;return null==(e=this.markupManager)?void 0:e.getFontSize()}getMarkups(){var e;return(null==(e=this.markupManager)?void 0:e.getMarkupData())||[]}setMarkups(e){this.inputManager&&(this.clearMarkups(),this.markupManager||(this.markupManager=new dE(this,this.inputManager)),this.markupManager.setMarkupData(e))}setMarkupVisibility(e,t){return!!(this.inputManager&&this.markupManager&&e)&&this.markupManager.setMarkupVisibility(e,t)}updateMarkup(e){if(!(this.inputManager&&this.markupManager&&e&&e.id))return!1;let t=!1,n=this.markupManager,i=n.getMarkupById(e.id);return i&&(n.updateMarkup(i,e),t=!0),t}removeMarkup(e){return!(!this.inputManager||!this.markupManager)&&this.markupManager.removeMarkupById(e)}clearMarkups(){var e;null==(e=this.markupManager)||e.clearAll()}getHitResult(e){let t=this.viewerContainer;if(!this.camera||!this.raycaster||!this.groundPlane)return;let n=cn.getScreenPointByEvent(e,t),i=cn.screenPoint2NdcPoint(n,this.camera,t);return this.getHitResultByNdcCoordinate(i)}getHitResultByNdcCoordinate(e){if(!this.camera||!this.raycaster||!this.groundPlane)return;this.raycaster.setFromCamera(e,this.camera),this.raycaster.layers.set(10);let t=this.raycaster.intersectObject(this.groundPlane,!0);return t&&t.length>0?t[0].point:void 0}zoomToRect(){this.cancelAllOperations(),this.zoomToRectHelper||(this.zoomToRectHelper=new Dy(this)),this.zoomToRectHelper.activate()}deactivateZoomRect(){var e;null==(e=this.zoomToRectHelper)||e.deactivate()}getLayoutByName(e){let t,n=this.getLayouts();for(let i of n)if(i.layoutName===e){t=i;break}return t}getActiveLayoutInfo(){return this.getLayoutInfo(this.activeLayoutName)}getMsTransformMatrix(e){var t,n;let i=this.loadedModels.find((t=>e===t.modelId)),r=null==(t=null==i?void 0:i.dxfData)?void 0:t.header;if(!r)return;let a=r.$ANGDIR,s=this.getDxfUnits(i.dxfData),o=null==(n=i.dxfData)?void 0:n.tables.viewport.viewports.filter((e=>"*ACTIVE"===e.name.toLocaleUpperCase()));if(!o)return;let l=new et,h=gn.getDcs2WcsMatrix(o[0],a),c=new O(o[0].center.x,o[0].center.y,0).applyMatrix4(h),u=1;this.units&&s!==this.units&&(u=dme(s,this.units)),c.multiplyScalar(u),l.makeTranslation(c.x,c.y,0);let d=o[0].viewTwistAngle;null!=d&&l.multiply((new et).makeRotationZ(An.degToRad(d))),l.multiply((new et).makeTranslation(-c.x,-c.y,0)),i.msTransformMatrix=l}switchTransformMs(e,t){var n;let i=this.loadedModels.find((e=>t===e.modelId));if(!i)return void se.warn(`[Viewer] Can't find model whose modelId is ${t}`);let r=i.msTransformMatrix;if(Oy.identity(),!r||!Mt.isMatrixValid(r)||r.equals(Oy))return;let a=null==(n=i.dxfData)?void 0:n.threejsObject,s=null==a?void 0:a.children.find((e=>e.name===gn.MODEL_LAYOUT_NAME));s&&(e===gn.MODEL_LAYOUT_NAME?s.applyMatrix4(r):s.applyMatrix4(r.clone().invert()),s.updateMatrixWorld(!0))}getLayoutExtentEx(e){return e.layoutName===gn.MODEL_LAYOUT_NAME?this.getModelSpaceExtent():this.getLayoutExtent(e)}getModelSpaceExtent(){var e,t;let n=this.loadedModels.find((e=>this.masterModelId===e.modelId));if(!n)return;let i=null==(e=n.dxfData)?void 0:e.header,r=new O,a=new O;if(!i)return void se.error(`Header is undefined in ${this.masterModelId}!`);let s=null==(t=n.dxfData)?void 0:t.tables.viewport.viewports,o=i.$EXTMIN,l=i.$EXTMAX,h=i.$ANGDIR;if(s&&s.length>0)for(let c=0;cthis.masterModelId===e.modelId));if(!n)return;let i=null==(t=n.dxfData)?void 0:t.header,r=new O,a=new O;if(!i)throw new Error(`Header is undefined in ${this.masterModelId}!`);let s=this.getLayoutViewports(e),o=i.$PEXTMIN,l=i.$PEXTMAX,h=i.$ANGDIR;if(s&&s.length>0){let e,t=s.filter((e=>1===parseInt(e.viewportId)));e=t.length>0?t[0]:s[0];let{centerPoint:n,width_paperSpace:i,height_paperSpace:r}=e,a=gn.getDcs2WcsMatrix(e,h),c=new O(n.x,n.y,0);c.applyMatrix4(a),o={x:c.x-i/2,y:c.y-r/2,z:0},l={x:c.x+i/2,y:c.y+r/2,z:0}}return r.set(o.x,o.y,o.z),a.set(l.x,l.y,l.z),new Ot(r,a)}showLayoutObjects(e){this.loadedModels.forEach((t=>{var n;let i=0,r=0,a=null==(n=t.dxfData)?void 0:n.threejsObject;null==a||a.children.forEach((t=>{let n=t.name===e;t.visible=n,n?i++:r++})),se.debug(`[Viewer] showLayoutObjects('${e}') sets ${i} layout level object(s) to visible and ${r} to hidden for model '${null==a?void 0:a.name}'`)}))}getLayoutViewports(e){var t;let n=this.loadedModels.find((e=>this.masterModelId===e.modelId));if(!n)return[];let i=e.ownerHandle;return(null==(t=n.dxfData)?void 0:t.layoutViewportsMap[i])||[]}setMaterialUniforms(e,t){e instanceof ln&&(e.uniforms.u_cameraZoom&&(e.uniforms.u_cameraZoom=gn.cameraZoomUniform),e.uniforms.u_viewportScale&&1===(null==t?void 0:t.header.$PSLTSCALE)&&(e.uniforms.u_viewportScale=gn.viewportScaleUniform))}isLayerFrozenForViewport(e,t,n){if(!e||!t)return!1;let i=e.tables.layer.layers[t];return!!(i&&(1&i.flag)>0)||!(!n||n.length<=0)&&i&&n.indexOf(i.handle)>=0}getFilteredViewports(e){let t=this.getLayoutViewports(e),n=t.filter((e=>"1"!==e.viewportId));return n.length===t.length&&(n=t.filter(((e,t)=>0!==t))),n}generateObjectsByViewport(e,t,n,i=[]){let r=t;if("1"==t.viewportId)return;if(!r.psBBox||!r.msToPsMatrix)throw new Error("The bbox or matrix is invalid in the viewport!");gn.transformMatrixUniform={value:r.msToPsMatrix},gn.viewportScaleUniform={value:t.viewHeight/t.height_paperSpace};let a=r.psBBox.clone();a.applyMatrix4(r.msToPsMatrix.clone().invert()),a.min.setZ(-1),a.max.setZ(1);let s=this.getObjectsByBoundingBox(a);if(0===s.length)return;let o,l=r.psBBox.min,h=r.psBBox.max,c=new Ji(new be(l.x,l.y),new be(h.x,h.y)),u=Hu.generateSectionPlanesByBox(c),d=[],p=e=>(d[e.id]||(d[e.id]=e.clone(),this.setMaterialUniforms(d[e.id],n),Hu.setMaterialSection(d[e.id],u)),d[e.id]),f=[...i,...t.frozenLayerHandles||[]];if(e!==gn.MODEL_LAYOUT_NAME){let e=t;e.associatedLeafObjectSet||(e.associatedLeafObjectSet=new Set),o=e.associatedLeafObjectSet}let m=new er;m.name=t.viewportId;let g=null==n?void 0:n.layersAndThreejsObjects,v=[];if(s.forEach((t=>{let i=t.clone();i.traverse((t=>{if(t.material&&t.geometry){let i=t.userData.layerName;if(this.isLayerFrozenForViewport(n,i,f))return void v.push(t);!1!==t.userData.layerVisible&&(t.visible=!0),t.material=(e=>{if(Array.isArray(e)){let t=[];return e.forEach((e=>{let n=p(e);t.push(n)})),t}return p(e)})(t.material),null==o||o.add(t),g&&g[i]?g[i].push(t):se.warn(`[Viewer] Failed to find object for modelId '${this.masterModelId}', layer '${i}', layout '${e}'`)}})),m.add(i)})),o&&0===o.size)return;let y=null==n?void 0:n.threejsObject,x=null==y?void 0:y.children.find((t=>t.name===e));x||(x=new er,Hn.setSharedVariablesOfObject(x),x.name=e,null==y||y.add(x)),x.add(m),m.applyMatrix4(r.msToPsMatrix),m.updateMatrixWorld(!0);let b=x.children.find((e=>e.name===gn.SNAP_GROUP_NAME));b||(b=new er,b.visible=gn.SHOW_SNAP_OBJECT,b.name=gn.SNAP_GROUP_NAME,x.add(b));let _=null==y?void 0:y.children.find((e=>e.name===gn.MODEL_LAYOUT_NAME)),w=null==_?void 0:_.children.find((e=>e.name===gn.SNAP_GROUP_NAME));w&&w.traverse((e=>{if(!e.geometry)return;let t=e.userData.layerName;if(this.isLayerFrozenForViewport(n,t,f)||(ky.makeEmpty(),ky.expandByObject(e),!a.intersectsBox(ky)))return;let i=e.clone();Hn.setSharedVariablesOfObject(i);let s=i.parent,l=Oy.identity();for(;s&&!0!==s.userData.isLayoutLevelObject;)l.premultiply(s.matrix),s=s.parent;l.premultiply(r.msToPsMatrix),i.applyMatrix4(l),null==b||b.add(i),null==o||o.add(i),g&&g[t]&&g[t].push(i)})),v.length>0&&Hn.removeEmptyObjectsFromRemovingObjects(v,m),m.traverse((e=>{Hn.setSharedVariablesOfObject(e),this.addSpatialFilterSection(e,n,!0)}))}findSpatialFilter(e,t){let n,i=t.objects.SPATIAL_FILTER;if(i){for(let t of i)if(t.handle===e){n=t;break}return n}}getAnyMaterial(e){let t,n=e;if(n.material)return Array.isArray(n.material)?n.material[0]:n.material;for(let i=0;i0),r=a.clipIntersection),t&&r!==i.clipPolylines[0].bReversed)return void se.warn("[Viewer] Material cannot set clipIntersection to different values at the same time. clipIntersection needs to be set to true here!");r=i.clipPolylines[0].bReversed;let s=this.generateSectionsBySpatialFilter(i,e.matrixWorld);if(s){let n=e=>{let t=0;return e.clippingPlanes&&(t=e.clippingPlanes.length),t+s.length>gn.maxFragmentUniforms},i=new Set,a=e=>{i.has(e.id)||(i.add(e.id),n(e)||Hu.setMaterialSection(e,s,t,r))};e.traverse((e=>{let t=e.material;Array.isArray(t)?t.forEach((e=>{a(e)})):t&&a(t)}))}}}getObjectsByBoundingBox(e){var t;let n=[];if(e.isEmpty())return se.warn("[Viewer] bbox is empty !"),n;let i=null==(t=this.loadedModels.find((e=>this.masterModelId===e.modelId)).dxfData)?void 0:t.threejsObject,r=null==i?void 0:i.children.find((e=>e.name===gn.MODEL_LAYOUT_NAME));return r&&r.children.forEach((t=>{t.name!==gn.SNAP_GROUP_NAME&&(t=>{let i=ks.getBoundingBox(t,!1);e.intersectsBox(i)&&n.push(t)})(t)})),n}getDxfUnits(e){if(!e&&this.loadedModels.length>0){let t=this.loadedModels.find((e=>this.masterModelId===e.modelId));e=null==t?void 0:t.dxfData}if(!e)return"Unitless";let t=null==e?void 0:e.header;if(!t)return se.warn("DxfData or its header is undefined!"),"Unitless";let n=t.$INSUNITS;return gn.getDxfUnits(n)}generateSectionsBySpatialFilter(e,t){let n=e.clipPolylines[0];if(n.bConcave)return void se.warn("[Viewer] clipPolyline.bConcave = true is not supported yet in spatialFilter !");Oy.copy(t),e.localMatrix&&Oy.multiply(e.localMatrix);let i=n.polyline,r=[];i.forEach((e=>{let t=e.clone().applyMatrix4(Oy);r.push(new be(t.x,t.y))}));let a=qs.isClockWise(r),s=!a&&!n.bReversed||a&&n.bReversed;return Hu.generateSectionPlanesByPoints(r,s)}resize(e,t){super.resize(e,t),t>0&&(this.css2dRenderer&&(this.css2dRenderer.setSize(e,t),this.css2dRenderer.domElement.style.width="0",this.css2dRenderer.domElement.style.height="0"),this.overlayRender&&this.overlayRender.setSize(e,t)),this.enableRender()}getRaycaster(){return this.raycaster}getRaycastableObjects(){var e;if(this.raycastableObjects)return this.raycastableObjects;let t=Date.now(),n=[];for(let i of this.loadedModels){let t=null==(e=i.dxfData)?void 0:e.threejsObject,r=t&&t.children.find((e=>e.name===this.activeLayoutName));r&&r.traverse((e=>{(e.visible||e.userData.isSnapObject)&&Hn.isLeafObject(e)&&n.push(e)}))}return this.groundPlane&&n.push(this.groundPlane),this.raycastableObjects=n,se.debug(`[Viewer] getRaycastableObjects() finds ${n.length} objects`),se.debug(`[Viewer] getRaycastableObjects() costs ${(Date.now()-t)/1e3} s`),n}getViewportByPoint(e){if(0===this.activeLayoutName.length||this.activeLayoutName===gn.MODEL_LAYOUT_NAME)return;let t=this.getLayoutByName(this.activeLayoutName);if(!t)return;let n=t=>e.xt.max.x||e.yt.max.y,i=this.getFilteredViewports(t);for(let r=0,a=i.length;r{e.object&&e.object.geometry&&o.push(e.object)})),e.transparent.forEach((e=>{e.object&&e.object.geometry&&o.push(e.object)})))}cve.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),uve.setFromProjectionMatrix(cve);for(let e of this.loadedModels){let t=null==(r=e.dxfData)?void 0:r.threejsObject,n=t&&t.children.find((e=>e.name===this.activeLayoutName));if(n){let e=n.children.find((e=>e.name===gn.SNAP_GROUP_NAME));null==e||e.traverse((e=>{if(Hn.isLeafObject(e)){if(ky.makeEmpty(),ky.expandByObject(e),!uve.intersectsBox(ky))return;o.push(e)}}))}}this.groundPlane&&o.push(this.groundPlane),se.debug("[Viewer] getRaycastableObjectsByMouse() from modelSpace"),this.lastFrame=(null==(a=this.renderer)?void 0:a.info.render.frame)||0,this.raycastableObjects=o}else{let e=new WeakSet,t=this.getLayoutByName(this.activeLayoutName);if(t){let n=t.directAssociatedLeafObjectSet;n&&n.forEach((t=>{t.visible&&!e.has(t)&&(o.push(t),e.add(t))}))}let n=this.getViewportByPoint(this.raycaster.ray.origin);n&&n.associatedLeafObjectSet?(null==(s=n.associatedLeafObjectSet)||s.forEach((t=>{!e.has(t)&&(t.visible||t.userData.isSnapObject)&&(o.push(t),e.add(t))})),se.debug("[Viewer] getRaycastableObjectsByMouse() from inside of viewport:",n.viewportId)):se.debug("[Viewer] getRaycastableObjectsByMouse() from out of viewport"),this.groundPlane&&o.push(this.groundPlane)}return se.debug(`[Viewer] getRaycastableObjectsByMouse() costs ${(Date.now()-h)/1e3} s`),o}getIntersections(e){let t=this.getRaycastableObjectsByMouse(e);return this.raycaster&&this.raycaster.intersectObjects(t,!0)||[]}handleMouseClick(e){var t,n;if(null!=(t=this.measurePlugin)&&t.isActive()||null!=(n=this.markupManager)&&n.isMarkupActive()||(this.selectDrawableByEvent(e),this.selectedObject)||!this.enableSelection)return;this.raycaster&&this.raycaster.layers.set(12);let i=this.getIntersections(e);if(i.length>0){let e=e=>Mt.vectorToString(e);se.debug(`[Viewer] Clicked at: ${e(i[0].point)}`)}let r=i.find((e=>e.object.visible)),a=r&&r.object||void 0;this.selectedObject&&this.clearSelection(),a&&this.selectedObject&&this.selectedObject.id===a.id&&(a=void 0),a?this.selectObject(a):this.clearSelection()}selectDrawableByEvent(e){var t,n;this.clearSelection();let i=this.getHitResult(e);if(!i)return;let r=null==(t=this.overlayRender)?void 0:t.getDrawablesByPosition(i,this.raycaster);r&&r.length>0&&(r[0].selected=!0,this.selectedObject=r[0],null==(n=this.overlayRender)||n.render())}selectObject(e,t=!1){if(!this.enableSelection)return;let n=e=>{if(e.children.length>0&&e.children.forEach((e=>n(e))),e instanceof xt||e instanceof hr||e instanceof ii){let n=es.clonedHighlightMaterials(e,{depthTest:t});n&&(e.userData.originalMaterial=e.material,e.material=n)}},i=e=>{if(e.children.length>0&&e.children.forEach((e=>i(e))),(e instanceof xt||e instanceof hr||e instanceof ii)&&e.userData.originalMaterial){let t=e.material;e.material=e.userData.originalMaterial,delete e.userData.originalMaterial,Array.isArray(t)?t.forEach((e=>e.dispose())):t instanceof yr&&t.dispose()}},r=!1;this.selectedObject&&(i(this.selectedObject),this.selectedObject=void 0,r=!0),e&&(n(e),this.selectedObject=e,e.userData.dxfEntity?se.info("[Viewer] Selected entity:",e.userData.dxfEntity):se.info("[Viewer] Selected object:",e),r=!0),r&&this.enableRender()}clearSelection(){var e;this.selectedObject&&this.selectedObject instanceof Bi?(this.selectedObject.selected=!1,null==(e=this.overlayRender)||e.render()):this.selectObject(),this.selectedObject=void 0}flyToObjects(e){if(!e||0===e.length||!this.camera)return;let t=new Ot;e.forEach((e=>{let n=ks.getBoundingBox(e);n.isEmpty()||t.union(n)})),this.zoomToBBox(t)}flyToObject(e){this.flyToObjects([e])}flyToSelectedObject(){if(!this.selectedObject)return;let e=this.selectedObject;(e instanceof Pi&&e.userData.clonedMesh||e instanceof xt&&Ar.isMergedMesh(e)&&e.userData.clonedMesh)&&(e=e.userData.clonedMesh),this.flyToObject(e)}flyToRandomObject(){var e;let t=this.scene,n=[];for(let c of this.loadedModels){let t=null==(e=c.dxfData)?void 0:e.threejsObject;t&&n.push(t.id)}let i=n.length;if(i<=0)return;let r=n[Math.floor(Math.random()*i)],a=t.getObjectById(r);if(!a)return;let s=this.getActiveLayoutName();if(!a.children.find((e=>e.name===s)))return;let o=[];if(t.traverseVisible((e=>{(e instanceof xt||e instanceof hr)&&!["SKYBOX","GROUND_GRID","GROUND_GRASS","BIM_VIEWER_BOX_HELPER"].includes(e.name)&&o.push(e.id)})),o.length<1)return;let l=Math.floor(Math.random()*o.length),h=t.getObjectById(o[l]);h&&(se.info(`[Viewer] Flying to random object: ${h.name}, type: ${h.type}`),this.selectObject(h,void 0),this.flyToObject(h))}flyTo(e,t,n,i){let r=this.camera,a=this.controls;if(!r||!a)return;if(n&&(n=this.checkAndGetLimitedCameraZoom(n)),e.equals(t))return void se.error("[Viewer] Camera position and lookAt cannot be the same!");if(!Mt.isVectorValid(e)||!Mt.isVectorValid(t))return void se.error("[Viewer] Invalid position or lookAt!",e,t);let s=e.distanceTo(t);sr.far&&(e=e.clone().sub(t).normalize().multiplyScalar(.9*r.far),se.warn("[Viewer] Camera could be too far to see the object!"));let o=(e,t,n)=>{n&&Number.isFinite(n)&&a.zoomTo(n),a.setLookAt(e.x,e.y,e.z,t.x,t.y,t.z),this.updateHidableObjectsVisibility(),this.enableRender()};if(!1===i)return this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),void o(e,t,n);let l=r.position.clone(),h=a.getTarget(new O),c=r.zoom,u=300,d=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval((()=>{let i=Date.now()-d;i>u&&(i=u);let r,a=(e,t,n)=>{let i=e.x+(t.x-e.x)*n,r=e.y+(t.y-e.y)*n,a=e.z+(t.z-e.z)*n;return new O(i,r,a)},s=a(l,e,i/u),p=a(h,t,i/u);n&&(r=c+(n-c)*i/u),o(s,p,r),i>=u&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0)}),10)}goTo(e,t,n){let i=this.camera,r=this.controls;if(!i||!r)return;let a=new O(e.x,e.y,i.position.z),s=r.getTarget(new O),o=new O(e.x,e.y,s.z);this.flyTo(a,o,t,n)}goToHomeView(){let e=this.getActiveLayoutInfo();e.homeViewExtent?this.zoomToBBox(e.homeViewExtent):se.error(`[Viewer] Failed to find extent for ${this.activeLayoutName}`)}zoomToBBox(e){let t=this.camera;if(!t)return;let n=e.max.x-e.min.x,i=e.max.y-e.min.y,r=t.right-t.left,a=t.top-t.bottom,s=Math.min(r/n,a/i);s/=1.1;let o=new Ot(new O(e.min.x,e.min.y,0),new O(e.max.x,e.max.y,0)),l=new O;o.getCenter(l),l.z=0;let h=l.clone().setZ(Math.max(t.position.z,this.CAMERA_Z_POSITION));h.equals(l)||this.flyTo(h,l,s,!1)}zoomToExtent(){let e=this.getActiveLayoutInfo();e.extent?this.zoomToBBox(e.extent):(console.error("[Viewer] Failed to find extent of current layout! Will go to home view."),this.goToHomeView())}zoomToCompareChange(e){if(this.changes){let t=this.changes[e];if(!t)return;let n=t.box;n&&this.zoomToBBox(n.clone().expandByScalar(1.2))}}getCompareChanges(){return this.changes}setBackgroundColor(e,t,n){!this.scene||!this.renderer||(hve.setRGB(e,t,n,this.renderer.outputColorSpace),(!this.scene.background||!(this.scene.background instanceof ct))&&(this.scene.background=new ct(e,t,n)),this.scene.background.copy(hve),this.enableRender())}getLayoutInfo(e){return this.layoutInfos[e]||(this.layoutInfos[e]={}),this.layoutInfos[e]}updateGroundPlane(){if(!this.scene)return;let e=this.getActiveLayoutInfo();if(!e.homeViewExtent)return;let t=e.homeViewExtent.clone();Mt.expandBoxByScale(t,3);let n=t.min,i=t.max,r=i.x-n.x+i.y-n.y+i.z-n.z;Mt.expandBoxByMinSize(t,r);let a=[],s=(e,t,n)=>{a.push(new O(e,t,n))},o=t.getSize(new O),l=t.getCenter(new O);if(s(-o.x/2,-o.y/2,0),s(o.x/2,-o.y/2,0),s(o.x/2,o.y/2,0),s(-o.x/2,o.y/2,0),this.groundPlane)this.groundPlane.position.set(l.x,l.y,-o.z),this.groundPlane.geometry.setFromPoints(a),this.groundPlane.geometry.computeBoundingSphere(),this.groundPlane.geometry.computeBoundingBox();else{let e=new Dt;e.setFromPoints(a),e.setIndex([0,3,2,0,2,1]);let t=new on({color:"#888",transparent:!0,opacity:0,side:Sr});this.groundPlane=new xt(e,t),this.groundPlane.visible=!0,this.groundPlane.frustumCulled=!1,this.groundPlane.position.set(l.x,l.y,-o.z),this.groundPlane.scale.set(1e5,1e5,1),this.groundPlane.name="groundPlane",this.groundPlane.renderOrder=-1e3,this.groundPlane.layers.enableAll(),Hn.disableLayerChannels(this.groundPlane,[12]),this.scene.add(this.groundPlane)}this.groundPlane.updateMatrixWorld()}computeBoundingBox(){var e;let t=new Ot;for(let n of this.loadedModels){let i=null==(e=n.dxfData)?void 0:e.threejsObject;for(let e=0;i&&e{if(!this.isCompareMode()||!e.material)return!1;let t;return t=e.material instanceof ln?e.material.uniforms.u_color.value:e.material.color,t.equals(new ct(hs.ENTITY_COLOR_ADDED))||t.equals(new ct(hs.ENTITY_COLOR_REMOVED))},o=1;e.traverse((e=>{if(this.isCompareMode()&&s(e)||e.userData.isSnapObject||!Hn.isLeafObject(e))return;let t=e.geometry;t.boundingBox||t.computeBoundingBox();let n=t.boundingBox.clone();if(!n||!Mt.isBoxValid(n))return;n.applyMatrix4(e.matrixWorld),n.getSize(B4);let i=Math.max(B4.x,B4.y),a=o/i;a<1/0?r.push({visibleMinZoom:a,object:e}):e instanceof ii?r.push({visibleMinZoom:o,object:e}):se.warn("[Viewer] The size of bbox is 0 ! ",e)})),o=this.getVisiblePixelSize(r.length);let l=0;r.forEach((e=>{let t=e.visibleMinZoom*o;e.visibleMinZoom=t,e.object.userData.visibleMinZoom=t,t>a&&(e.object.visible=!1,l++)})),r.sort(((e,t)=>e.visibleMinZoom-t.visibleMinZoom)),se.debug(`[Viewer] setLayoutHidableObjectArray cost: ${(Date.now()-n)/1e3}s, ${l} objects changed to hidden`)}statObjects(e){let t=this.sortedHidableObjects[this.activeLayoutName],n=t.length,i={},r=0;t.forEach((t=>{let n=t.object;if(n.geometry&&n.material){r++;let n=(t=>{let n=0,i=t;for(;i&&(n++,i!==e);)i=i.parent;return n})(t.object);i[n]||(i[n]=0),i[n]++}}));let a=0;e.traverse((e=>{let t=e;t.geometry&&t.material&&a++})),se.info(`[Viewer] hidableObjects count:${n}, real count:${r}, layout count: ${a}, level:`,i),se.info("[Viewer] scene:",this.scene)}updateHidableObjectsVisibility(){let e=this.camera;if(!e)return;let t=Date.now();this.controls.update(0);let n=e.zoom;if(Math.abs(n-this.lastCameraZoom)<1e-5||(this.updateRaycasterThreshold(),this.updateCameraZoomUniform(n),this.raycastableObjects=void 0,!this.sortedHidableObjects[this.activeLayoutName]))return;let i=this.sortedHidableObjects[this.activeLayoutName];if(0===i.length)return;let r=n>this.lastCameraZoom,a=Math.min(n,this.lastCameraZoom),s=Math.max(n,this.lastCameraZoom),o=[],l=0;for(let h=0;hs)break;i[h].object.visible=r,r&&o.push(i[h].object),l++}this.lastCameraZoom=n,se.debug(`[Viewer] updateHidableObjectsVisibility cost: ${(Date.now()-t)/1e3}s, ${l}(out of ${i.length}) objects changed to ${r?"visible":"hidden"}`)}updateRaycasterThreshold(){if(!this.camera||!this.raycaster)return;let e=3*this.getPixelSizeInWorldCoord(),t=this.raycaster.params;t.Line?t.Line.threshold=e:t.Line={threshold:e},t.Points?t.Points.threshold=e:t.Points={threshold:e}}updateCameraZoomUniform(e){gn.cameraZoomUniform.value=e}},LP=class{constructor(e){this.jobCount=0,this.viewer=new Qf(e);let t=document.getElementById(e.containerId);this.container=(null==t?void 0:t.parentElement)||document.body,this.loadingProgressBar=new Gf(this.container),this.loader=new gn(this.loadingManager,{ignorePaperSpace:!0}),this.initSpinner()}initSpinner(){let e=document.createElement("div");e.classList.add("gemini-spinner"),e.appendChild(document.createElement("span")),e.appendChild(document.createElement("span")),e.appendChild(document.createElement("span")),e.appendChild(document.createElement("span")),this.container.appendChild(e),this.spinner=e,this.setSpinnerVisibility(this.jobCount>0)}setFont(e){return ft(this,null,(function*(){let t=Date.now();this.fontManager||(this.fontManager=new ud),yield this.fontManager.loadFonts(e),se.info(`[DxfCompareHelper] Font file(s) load time in ${(Date.now()-t)/1e3}s`)}))}compare(e,t,n,i){return ft(this,null,(function*(){var r,a,s,o,l;let{src:h,modelId:c}=e,{src:u}=t;this.viewer.masterModelId=c||h;let d=Date.now();if(this.increaseJobCount(),!this.fontManager)return Promise.reject("[DxfCompareHelper] Should set font first!");this.loader.setFont(this.fontManager),yield this.fontManager.getFontFromIndexeddb();let p=h+u,f=eg.t("ProgressBar.Comparing"),m=e=>{var t;null==(t=this.loadingProgressBar)||t.updateProgress(p,f,e),i&&i(new ProgressEvent("CompareProgress",{loaded:e,total:100}))},g=(e,t,n)=>{var r;let a=100*e.loaded/e.total;a=a*(n-t)/100+t,null==(r=this.loadingProgressBar)||r.updateProgress(p,f,a),i&&i(new ProgressEvent("CompareProgress",{loaded:a,total:100}))};Mt.printMemory("Before comparing"),null==(r=this.loadingProgressBar)||r.addProgressItem(p),m(0);let v=Date.now(),y=yield this.loader.parse(h,(e=>g(e,0,15))),x=yield this.loader.parse(u,(e=>g(e,15,30))),[b,_]=yield Promise.allSettled([y,x]);if("rejected"===b.status)return Promise.reject(`[DxfCompareHelper] Failed to parse ${h}`);if("rejected"===_.status)return Promise.reject(`[DxfCompareHelper] Failed to parse ${u}`);if(se.info(`[DxfCompareHelper] loadFiles in ${(Date.now()-v)/1e3}s`),gn.abortJobs)return Promise.reject("[DxfCompareHelper] compare loadFile aborted");let w=b.value,S=_.value;v=Date.now();let M=yield new hs(w,S,n).compare((e=>g(e,30,60)));if(se.info(`[DxfCompareHelper] Compared in ${(Date.now()-v)/1e3}s`),se.debug("[DxfCompareHelper] Compared results:",M),gn.abortJobs)return Promise.reject("[DxfCompareHelper] compare change aborted");Mt.printMemory("After getting the comparison results"),v=Date.now(),yield this.loader.loadEntitiesForCompare(w,S,M,!0,(e=>g(e,60,95))),Mt.printMemory("After Creating threejs objects based on comparison result"),null==(a=this.fontManager)||a.releaseFontData(),this.changes=M,se.info(`[DxfCompareHelper] Creates threejs objects based on comparison result in ${(Date.now()-v)/1e3}s`);let T=w,E=S;if(this.decreaseJobCount(),Object.keys(M).length||se.info("[DxfCompareHelper] No change found"),0===(null==(s=T.threejsObject)?void 0:s.children.length)&&0===(null==(o=E.threejsObject)?void 0:o.children.length)){let e=`[DxfCompareHelper] Nothing was loaded from ${h} and ${u}`;return se.warn(e),Promise.reject(e)}let A=T.threejsObject,C=E.threejsObject;return A.name=h,C.name=u,v=Date.now(),this.viewer.addModel({modelId:e.modelId||e.src,dxfData:T}),Mt.printMemory("After adding first loaded Model to scene"),m(95),this.viewer.addModel({modelId:t.modelId||t.src,dxfData:E}),Mt.printMemory("After adding second loaded Model to scene"),se.info(`[DxfCompareHelper] Added compared objects to scene in ${(Date.now()-v)/1e3}s`),se.info(`[DxfCompareHelper] The comparison between ${h}' and '${u}' is completed in ${(Date.now()-d)/1e3}s !`),m(100),null==(l=this.loadingProgressBar)||l.delayRemoveProgressItem(p),Promise.resolve()}))}getChanges(){return this.changes}zoomToChange(e){if(this.changes){let t=this.changes[e];if(!t)return;let n=t.box;n&&this.viewer.zoomToBBox(n.clone().expandByScalar(1.2))}}setSpinnerVisibility(e){this.spinner&&(e?this.spinner.classList.remove("hidden"):this.spinner.classList.add("hidden"))}increaseJobCount(){this.setSpinnerVisibility(++this.jobCount>0)}decreaseJobCount(){this.setSpinnerVisibility(--this.jobCount>0)}},dve=class extends LP{constructor(e,t){super(e),this.syncCamera=!1,this.syncCameraControls=(e,t,n)=>{let i=new O,r=new O,a=new O;e.getPosition(r),e.getTarget(a),e.getFocalOffset(i),t.setLookAt(r.x,r.y,r.z,a.x,a.y,a.z),t.zoomTo(n),t.dispatchEvent({type:"control"})},this.viewer2=new Qf(t),this.initSyncCameraEvent()}initSyncCameraEvent(){let e=this.viewer.controls,t=this.viewer2.controls,n=!1;e.addEventListener("control",(()=>{n=!1})),e.addEventListener("update",(()=>{!this.syncCamera||n||this.syncCameraControls(e,t,this.viewer.camera.zoom)})),t.addEventListener("control",(()=>{n=!0})),t.addEventListener("update",(()=>{!this.syncCamera||!n||this.syncCameraControls(t,e,this.viewer2.camera.zoom)}))}enableSyncCamera(e){if(this.syncCamera=e,e){let e=this.viewer.controls,t=this.viewer2.controls;this.syncCameraControls(e,t,this.viewer.camera.zoom)}}compare(e,t,n,i){return ft(this,null,(function*(){var r,a,s,o,l;let{src:h,modelId:c}=e,{src:u,modelId:d}=t;this.viewer.masterModelId=c||h,this.viewer2.masterModelId=d||u;let p=Date.now();if(this.increaseJobCount(),!this.fontManager)return Promise.reject("[DxfCompareHelper] Should set font first!");this.loader.setFont(this.fontManager),yield this.fontManager.getFontFromIndexeddb();let f=h+u,m=eg.t("ProgressBar.Comparing"),g=e=>{var t;null==(t=this.loadingProgressBar)||t.updateProgress(f,m,e),i&&i(new ProgressEvent("CompareProgress",{loaded:e,total:100}))},v=(e,t,n)=>{var r;let a=100*e.loaded/e.total;a=a*(n-t)/100+t,null==(r=this.loadingProgressBar)||r.updateProgress(f,m,a),i&&i(new ProgressEvent("CompareProgress",{loaded:a,total:100}))};Mt.printMemory("Before comparing"),null==(r=this.loadingProgressBar)||r.addProgressItem(f),g(0);let y=Date.now(),x=yield this.loader.parse(h,(e=>v(e,0,15))),b=yield this.loader.parse(u,(e=>v(e,15,30))),[_,w]=yield Promise.allSettled([x,b]);if("rejected"===_.status)return Promise.reject(`[DxfCompareHelper] Failed to parse ${h}`);if("rejected"===w.status)return Promise.reject(`[DxfCompareHelper] Failed to parse ${u}`);if(se.info(`[DxfCompareHelper] loadFiles in ${(Date.now()-y)/1e3}s`),gn.abortJobs)return Promise.reject("[DxfCompareHelper] compare loadFile aborted");let S=_.value,M=w.value;y=Date.now();let T=yield new hs(S,M,n).compare((e=>v(e,30,60)));if(se.info(`[DxfCompareHelper] Compared in ${(Date.now()-y)/1e3}s`),se.debug("Compared results:",T),gn.abortJobs)return Promise.reject("[DxfCompareHelper] compare change aborted");Mt.printMemory("After getting the comparison results"),y=Date.now(),yield this.loader.loadEntitiesForCompare(S,M,T,!1,(e=>v(e,60,95))),Mt.printMemory("After Creating threejs objects based on comparison result"),null==(a=this.fontManager)||a.releaseFontData(),this.changes=T,se.info(`[DxfCompareHelper] Creates threejs objects based on comparison result in ${(Date.now()-y)/1e3}s`);let E=S,A=M;if(this.decreaseJobCount(),Object.keys(T).length||se.info("[DxfCompareHelper] No change found"),0===(null==(s=E.threejsObject)?void 0:s.children.length)&&0===(null==(o=A.threejsObject)?void 0:o.children.length)){let e=`[DxfCompareHelper] Nothing was loaded from ${h} and ${u}`;return se.warn(e),Promise.reject(e)}let C=E.threejsObject,P=A.threejsObject;return C.name=h,P.name=u,y=Date.now(),this.viewer.addModel({modelId:e.modelId||e.src,dxfData:E}),Mt.printMemory("After adding first loaded Model to scene"),g(95),this.viewer2.addModel({modelId:t.modelId||t.src,dxfData:A}),Mt.printMemory("After adding second loaded Model to scene"),se.info(`[DxfCompareHelper] Added compared objects to scene in ${(Date.now()-y)/1e3}s`),se.info(`[DxfCompareHelper] The comparison between ${h}' and '${u}' is completed in ${(Date.now()-p)/1e3}s !`),g(100),null==(l=this.loadingProgressBar)||l.delayRemoveProgressItem(f),Promise.resolve()}))}zoomToChange(e){if(this.changes){let t=this.changes[e];if(!t)return;let n=t.box;n&&(this.viewer.zoomToBBox(n.clone().expandByScalar(1.2)),this.viewer2.zoomToBBox(n.clone().expandByScalar(1.2)))}}},sg=ji(fve(),1),dd=class{constructor(e,t){this.current=e,this.next=t,this.inNormal=this.inwardsNormal(),this.outNormal=this.outwardsNormal()}outwardsNormal(){let e=this.inwardsNormal();return[-e[0],-e[1]]}inwardsNormal(){let e=this.next[0]-this.current[0],t=this.next[1]-this.current[1],n=Math.sqrt(e*e+t*t);if(0===n)throw new Error("Vertices overlap");return[-t/n,e/n]}offset(e,t){return dd.offsetEdge(this.current,this.next,e,t)}inverseOffset(e,t){return dd.offsetEdge(this.next,this.current,e,t)}inverse(){return new dd(this.next,this.current)}static offsetEdge(e,t,n,i){return new dd([e[0]+n,e[1]+i],[t[0]+n,t[1]+i])}},x_=Array.isArray,pve=(e,t)=>e[0]===t[0]&&e[1]===t[1],V4=e=>Array.isArray(e)&&e.length,gve=(e,t=0,n=!1)=>{let i,r;if(V4(e)&&"number"==typeof e[0][0]){let t=0,a=e;for(i=0,r=a.length;i0||n&&t<0)&&a.reverse()}else for(i=0,r=e.length;i0);if(0===t&&V4(e)&&V4(e[0])&&"number"==typeof e[0][0][0]){let t=e[0].slice(0,1)[0];e[0].pop(),e[0].push([t[0],t[1]])}return e},mve=class{constructor(e,t=5){if(this.distance=0,this.arcSegments=t,!x_(e))throw new Error("Offset requires at least one coodinate to work with");this.edges=[],x_(e)&&"number"==typeof e[0]?this.vertices=e:(this.vertices=gve(e),this.processContour(this.vertices,this.edges))}processContour(e,t){let n,i;if(x_(e[0])&&"number"==typeof e[0][0])for(i=e.length,pve(e[0],e[i-1])&&(i-=1),n=0;nh?l-h:l+o-h,u=(s?-c:o-c)/a;e.push(i);for(let d=1;d0?this.margin(this.distance):this.padding(-this.distance)}offsetSegment(e,t,n,i){let r=[n.offset(n.inNormal[0]*i,n.inNormal[1]*i),n.inverseOffset(n.outNormal[0]*i,n.outNormal[1]*i)],a=[];for(let s=0,o=2;s0&&e.push(n)}e.length>0&&(t=1===e.length?e[0]:(0,sg.union)(e[0],...e.slice(1)))}else t=1===this.vertices.length?this.offsetPoint(e):this.offsetContour(this.vertices,this.edges);return t}offsetContour(e,t){let n=[],i=0,r=0;if(x_(e[0])&&"number"==typeof e[0][0]){for(i=0,r=e.length-1;i0&&(n=1===n.length?[n[0]]:(0,sg.union)(n[0],n.slice(1)))}else{let a=[];for(i=0,r=t.length;i0&&a.push(n)}a.length>0&&(n=1===a.length?a[0]:(0,sg.union)(a[0],...a.slice(1)))}return n}offsetPoint(e){this.setDistance(e);let t=2*this.arcSegments,n=[],i=this.vertices,r=this.distance,a=0;t%2==0&&t++;for(let s=0;se.get(t)}isFull(){return this.itemSet.size>=this.maxSize}add(e,t){let n=this.itemSet;if(n.has(e)||this.isFull())return!1;let i=this.usedSet,r=this.itemList,a=this.callbacks;return r.push(e),i.add(e),n.set(e,Date.now()),a.set(e,t),!0}remove(e){let t=this.usedSet,n=this.itemSet,i=this.itemList,r=this.callbacks;if(n.has(e)){r.get(e)(e);let a=i.indexOf(e);return i.splice(a,1),t.delete(e),n.delete(e),r.delete(e),!0}return!1}markUsed(e){let t=this.itemSet,n=this.usedSet;t.has(e)&&!n.has(e)&&(t.set(e,Date.now()),n.add(e))}markAllUnused(){this.usedSet.clear()}unloadUnusedContent(){let e=this.unloadPercent,t=this.minSize,n=this.itemList,i=this.itemSet,r=this.usedSet,a=this.callbacks,s=n.length-r.size,o=n.length-t,l=this.unloadPriorityCallback||this.defaultPriorityCallback;if(o>0&&s>0){n.sort(((e,t)=>{let n=r.has(e),i=r.has(t);return n&&i?0:n||i?n?1:-1:l(t)-l(e)}));let h=Math.min(o,s),c=Math.max(t*e,h*e),u=Math.min(c,s);u=Math.ceil(u);let d=n.splice(0,u);for(let e=0,t=d.length;e{this.scheduled=!1,this.unloadUnusedContent(),e&&this.markAllUnused()})))}},b_=class{constructor(){this.maxJobs=6,this.items=[],this.callbacks=new Map,this.currJobs=0,this.scheduled=!1,this.autoUpdate=!0,this.priorityCallback=()=>{throw new Error("PriorityQueue: PriorityCallback function not defined.")},this.schedulingCallback=e=>{requestAnimationFrame(e)},this._runjobs=()=>{this.tryRunJobs(),this.scheduled=!1}}sort(){let e=this.priorityCallback;this.items.sort(e)}add(e,t){return new Promise(((n,i)=>{let r=this.items,a=this.callbacks;r.push(e),a.set(e,((...e)=>t(...e).then(n).catch(i))),this.autoUpdate&&this.scheduleJobRun()}))}remove(e){let t=this.items,n=this.callbacks,i=t.indexOf(e);-1!==i&&(t.splice(i,1),n.delete(e))}tryRunJobs(){this.sort();let e=this.items,t=this.callbacks,n=this.maxJobs,i=this.currJobs;for(;n>i&&e.length>0;){i++;let n=e.pop(),r=t.get(n);t.delete(n),r(n).then((()=>{this.currJobs--,this.autoUpdate&&this.scheduleJobRun()})).catch((()=>{this.currJobs--,this.autoUpdate&&this.scheduleJobRun()}))}this.currJobs=i}scheduleJobRun(){this.scheduled||(this.schedulingCallback(this._runjobs),this.scheduled=!0)}},Avt=.0033528106647474805,vve=-(6378137*Avt-6378137);function q4(e){return 3===e||4===e}function ag(e,t){return e.__lastFrameVisited===t&&e.__used}function yve(e,t){e.__lastFrameVisited!==t&&(e.__lastFrameVisited=t,e.__used=!1,e.__inFrustum=!1,e.__isLeaf=!1,e.__visible=!1,e.__active=!1,e.__error=1/0,e.__distanceFromCamera=1/0,e.__childrenWereVisible=!1,e.__allChildrenLoaded=!1)}function xve(e,t,n){if(yve(e,t),e.__used=!0,n.markUsed(e),e.__contentEmpty){let i=e.children;for(let e=0,r=i.length;e0&&e.__depth+1>=a))return!0;let h=!1,c=e.children;for(let u=0,d=c.length;ue.__depth!==t.__depth?e.__depth>t.__depth?-1:1:e.__inFrustum!==t.__inFrustum?e.__inFrustum?1:-1:e.__used!==t.__used?e.__used?1:-1:e.__error!==t.__error?e.__error>t.__error?1:-1:e.__distanceFromCamera!==t.__distanceFromCamera?e.__distanceFromCamera>t.__distanceFromCamera?-1:1:0,Cvt=e=>1/(e.__depthFromRenderedParent+1),FP=class{get rootTileSet(){let e=this.tileSets[this.rootURL];return!e||e instanceof Promise?null:e}get root(){let e=this.rootTileSet;return e?e.root:null}constructor(e){this.tileSets={},this.rootURL=e,this.fetchOptions={},this.preprocessURL=null;let t=new DP;t.unloadPriorityCallback=Cvt;let n=new b_;n.maxJobs=4,n.priorityCallback=_ve;let i=new b_;i.maxJobs=1,i.priorityCallback=_ve,this.lruCache=t,this.downloadQueue=n,this.parseQueue=i,this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0},this.frameCount=0,this.errorTarget=6,this.errorThreshold=1/0,this.loadSiblings=!0,this.displayActiveTiles=!1,this.maxDepth=1/0,this.stopAtEmptyTiles=!0}traverse(e,t){let n=this.tileSets[this.rootURL];!n||!n.root||kP(n.root,e,t)}update(){let e=this.stats,t=this.lruCache,n=this.tileSets,i=n[this.rootURL];if(!(this.rootURL in n))return void this.loadRootTileSet(this.rootURL);if(!i||!i.root)return;let r=i.root;e.inFrustum=0,e.used=0,e.active=0,e.visible=0,this.frameCount++,W4(r,this),j4(r,this),X4(r,this),Y4(r,this),t.scheduleUnload()}parseTile(e,t,n){return null}disposeTile(e){}preprocessNode(e,t,n){if(e.content&&(!("uri"in e.content)&&"url"in e.content&&(e.content.uri=e.content.url,delete e.content.url),e.content.uri&&(e.content.uri=new URL(e.content.uri,n+"/").toString()),e.content.boundingVolume&&!("box"in e.content.boundingVolume||"sphere"in e.content.boundingVolume||"region"in e.content.boundingVolume)&&delete e.content.boundingVolume),e.parent=t,e.children=e.children||[],e.content&&e.content.uri){let t=z4(e.content.uri),n=Boolean(t&&"json"===t.toLowerCase());e.__externalTileSet=n,e.__contentEmpty=n}else e.__externalTileSet=!1,e.__contentEmpty=!0;e.__distanceFromCamera=1/0,e.__error=1/0,e.__inFrustum=!1,e.__isLeaf=!1,e.__usedLastFrame=!1,e.__used=!1,e.__wasSetVisible=!1,e.__visible=!1,e.__childrenWereVisible=!1,e.__allChildrenLoaded=!1,e.__wasSetActive=!1,e.__active=!1,e.__loadingState=0,e.__loadIndex=0,e.__loadAbort=null,e.__depthFromRenderedParent=-1,null===t?(e.__depth=0,e.refine=e.refine||"REPLACE"):(e.__depth=t.__depth+1,e.refine=e.refine||t.refine)}setTileActive(e,t){}setTileVisible(e,t){}calculateError(e){return 0}tileInView(e){return!0}resetFailedTiles(){let e=this.stats;0!==e.failed&&(this.traverse((e=>{4===e.__loadingState&&(e.__loadingState=0)})),e.failed=0)}fetchTileSet(e,t,n=null){return fetch(e,t).then((t=>{if(t.ok)return t.json();throw new Error(`TilesRenderer: Failed to load tileset "${e}" with status ${t.status} : ${t.statusText}`)})).then((t=>{let i=t.asset.version;console.assert("1.0"===i||"0.0"===i,'asset.version is expected to be a string of "1.0" or "0.0"');let r=e.replace(/\/[^\/]*\/?$/,"");return r=new URL(r,window.location.href).toString(),kP(t.root,((e,t)=>this.preprocessNode(e,t,r)),null,n,n?n.__depth:0),t}))}loadRootTileSet(e){let t=this.tileSets;if(e in t)return t[e]instanceof Error?Promise.reject(t[e]):Promise.resolve(t[e]);{let n=this.fetchTileSet(this.preprocessURL?this.preprocessURL(e):e,this.fetchOptions).then((n=>{t[e]=n}));return n.catch((n=>{console.error(n),t[e]=n})),t[e]=n,n}}requestTileContents(e){if(0!==e.__loadingState)return;let t=this.stats,n=this.lruCache,i=this.downloadQueue,r=this.parseQueue,a=e.__externalTileSet;n.add(e,(e=>{1===e.__loadingState?(e.__loadAbort.abort(),e.__loadAbort=null):a?e.children.length=0:this.disposeTile(e),1===e.__loadingState?t.downloading--:2===e.__loadingState&&t.parsing--,e.__loadingState=0,e.__loadIndex++,r.remove(e),i.remove(e)})),e.__loadIndex++;let s=e.__loadIndex,o=new AbortController,l=o.signal;t.downloading++,e.__loadAbort=o,e.__loadingState=1;let h=a=>{e.__loadIndex===s&&("AbortError"!==a.name?(r.remove(e),i.remove(e),2===e.__loadingState?t.parsing--:1===e.__loadingState&&t.downloading--,t.failed++,console.error(`TilesRenderer : Failed to load tile at url "${e.content.uri}".`),console.error(a),e.__loadingState=4):n.remove(e))};a?i.add(e,(e=>{if(e.__loadIndex!==s)return Promise.resolve();let t=this.preprocessURL?this.preprocessURL(e.content.uri):e.content.uri;return this.fetchTileSet(t,Object.assign({signal:l},this.fetchOptions),e)})).then((n=>{e.__loadIndex===s&&(t.downloading--,e.__loadAbort=null,e.__loadingState=3,e.children.push(n.root))})).catch(h):i.add(e,(e=>{if(e.__loadIndex!==s)return Promise.resolve();let t=this.preprocessURL?this.preprocessURL(e.content.uri):e.content.uri;return fetch(t,Object.assign({signal:l},this.fetchOptions))})).then((t=>{if(e.__loadIndex===s){if(t.ok)return t.arrayBuffer();throw new Error(`Failed to load model with error code ${t.status}`)}})).then((n=>{if(e.__loadIndex===s)return t.downloading--,t.parsing++,e.__loadAbort=null,e.__loadingState=2,r.add(e,(e=>{if(e.__loadIndex!==s)return Promise.resolve();let t=z4(e.content.uri);return this.parseTile(n,e,t)}))})).then((()=>{e.__loadIndex===s&&(t.parsing--,e.__loadingState=3,e.__wasSetVisible&&this.setTileVisible(e,!0),e.__wasSetActive&&this.setTileActive(e,!0))})).catch(h)}dispose(){let e=this.lruCache;this.traverse((t=>{e.remove(t)})),this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0},this.frameCount=0}};function NP(e){return(new TextDecoder).decode(e)}var fd=class{constructor(e,t,n,i){this.buffer=e,this.binOffset=t+n,this.binLength=i;let r=null;if(0!==n){let i=new Uint8Array(e,t,n);r=JSON.parse(NP(i))}else r={};this.header=r}getKeys(){return Object.keys(this.header)}getData(e,t,n=null,i=null){let r=this.header;if(!(e in r))return null;let a=r[e];if(a instanceof Object){if(Array.isArray(a))return a;{let r,{buffer:s,binOffset:o,binLength:l}=this,h=a.byteOffset||0,c=a.type||i,u=a.componentType||n;if("type"in a&&i&&a.type!==i)throw new Error("FeatureTable: Specified type does not match expected type.");switch(c){case"SCALAR":r=1;break;case"VEC2":r=2;break;case"VEC3":r=3;break;case"VEC4":r=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${e}".`)}let d,p=o+h,f=t*r;switch(u){case"BYTE":d=new Int8Array(s,p,f);break;case"UNSIGNED_BYTE":d=new Uint8Array(s,p,f);break;case"SHORT":d=new Int16Array(s,p,f);break;case"UNSIGNED_SHORT":d=new Uint16Array(s,p,f);break;case"INT":d=new Int32Array(s,p,f);break;case"UNSIGNED_INT":d=new Uint32Array(s,p,f);break;case"FLOAT":d=new Float32Array(s,p,f);break;case"DOUBLE":d=new Float64Array(s,p,f);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${e}".`)}if(p+f*d.BYTES_PER_ELEMENT>o+l)throw new Error("FeatureTable: Feature data read outside binary body length.");return d}}return a}getBuffer(e,t){let{buffer:n,binOffset:i}=this;return n.slice(i+e,i+e+t)}},ep=class extends fd{constructor(e,t,n,i,r){super(e,n,i,r),this.batchSize=t}getData(e,t=null,n=null){return super.getData(e,this.batchSize,t,n)}},Zl=class{constructor(){this.fetchOptions={},this.workingPath=""}load(e){return fetch(e,this.fetchOptions).then((t=>{if(!t.ok)throw new Error(`Failed to load file "${e}" with status ${t.status} : ${t.statusText}`);return t.arrayBuffer()})).then((t=>(""===this.workingPath&&(this.workingPath=this.workingPathForURL(e)),this.parse(t))))}resolveExternalURL(e){return/^[^\\/]/.test(e)?this.workingPath+"/"+e:e}workingPathForURL(e){let t=e.split(/[\\/]/g);return t.pop(),t.join("/")+"/"}parse(e){throw new Error("LoaderBase: Parse not implemented.")}};function Gc(e){let t;if(t=e instanceof DataView?e:new DataView(e),"{"===String.fromCharCode(t.getUint8(0)))return null;let n="";for(let i=0;i<4;i++)n+=String.fromCharCode(t.getUint8(i));return n}var BP=class extends Zl{parse(e){let t=new DataView(e),n=Gc(t);console.assert("b3dm"===n);let i=t.getUint32(4,!0);console.assert(1===i);let r=t.getUint32(8,!0);console.assert(r===e.byteLength);let a=t.getUint32(12,!0),s=t.getUint32(16,!0),o=t.getUint32(20,!0),l=t.getUint32(24,!0),h=e.slice(28,28+a+s),c=new fd(h,0,a,s),u=28+a+s,d=e.slice(u,u+o+l),p=new ep(d,c.getData("BATCH_LENGTH"),0,o,l),f=u+o+l;return{version:i,featureTable:c,batchTable:p,glbBytes:new Uint8Array(e,f,r-f)}}},Fy=class extends BP{constructor(e=go){super(),this.manager=e,this.adjustmentTransform=new et}parse(e){let t=super.parse(e),n=t.glbBytes.slice().buffer;return new Promise(((e,i)=>{let r=this.manager,a=this.fetchOptions,s=r.getHandler("path.gltf")||new th(r);"include"===a.credentials&&"cors"===a.mode&&s.setCrossOrigin("use-credentials"),"credentials"in a&&s.setWithCredentials("include"===a.credentials),a.headers&&s.setRequestHeader(a.headers);let o=this.workingPath;!/[\\/]$/.test(o)&&o.length&&(o+="/");let l=this.adjustmentTransform;s.parse(n,o,(n=>{let{batchTable:i,featureTable:r}=t,{scene:a}=n,s=r.getData("RTC_CENTER");s&&(a.position.x+=s[0],a.position.y+=s[1],a.position.z+=s[2]),n.scene.updateMatrix(),n.scene.matrix.multiply(l),n.scene.matrix.decompose(n.scene.position,n.scene.quaternion,n.scene.scale),n.batchTable=i,n.featureTable=r,a.batchTable=i,a.featureTable=r,e(n)}),i)}))}},UP=class extends Zl{parse(e){let t=new DataView(e),n=Gc(t);console.assert("pnts"===n);let i=t.getUint32(4,!0);console.assert(1===i);let r=t.getUint32(8,!0);console.assert(r===e.byteLength);let a=t.getUint32(12,!0),s=t.getUint32(16,!0),o=t.getUint32(20,!0),l=t.getUint32(24,!0),h=e.slice(28,28+a+s),c=new fd(h,0,a,s),u=28+a+s,d=e.slice(u,u+o+l),p=new ep(d,c.getData("BATCH_LENGTH")||c.getData("POINTS_LENGTH"),0,o,l);return Promise.resolve({version:i,featureTable:c,batchTable:p})}},Tve={RGB:"color",POSITION:"position"},Ny=class extends UP{constructor(e=go){super(),this.manager=e}parse(e){return super.parse(e).then((e=>ft(this,null,(function*(){let t,{featureTable:n}=e,i=new xi,r=n.header.extensions;if(r&&r["3DTILES_draco_point_compression"]){let{byteOffset:e,byteLength:a,properties:s}=r["3DTILES_draco_point_compression"],o=this.manager.getHandler("draco.drc");if(null==o)throw new Error("PNTSLoader: dracoLoader not available.");let l={};for(let t in s)t in Tve&&t in s&&(l[Tve[t]]=s[t]);let h={attributeIDs:l,attributeTypes:{position:"Float32Array",color:"Uint8Array"},useUniqueIDs:!0},c=n.getBuffer(e,a);t=yield o.decodeGeometry(c,h),t.attributes.color&&(i.vertexColors=!0)}else{let e=n.getData("POINTS_LENGTH"),r=n.getData("POSITION",e,"FLOAT","VEC3"),a=n.getData("RGB",e,"UNSIGNED_BYTE","VEC3");t=new Dt,t.setAttribute("position",new mn(r,3,!1)),null!==a&&(t.setAttribute("color",new mn(a,3,!0)),i.vertexColors=!0)}["QUANTIZED_VOLUME_OFFSET","QUANTIZED_VOLUME_SCALE","CONSTANT_RGBA","BATCH_LENGTH","POSITION_QUANTIZED","RGBA","RGB565","NORMAL","NORMAL_OCT16P"].forEach((e=>{e in n.header&&console.warn(`PNTSLoader: Unsupported FeatureTable feature "${e}" detected.`)}));let a=new ii(t,i);e.scene=a,e.scene.featureTable=n;let s=n.getData("RTC_CENTER");return s&&(e.scene.position.x+=s[0],e.scene.position.y+=s[1],e.scene.position.z+=s[2]),e}))))}},HP=class extends Zl{parse(e){let t=new DataView(e),n=Gc(t);console.assert("i3dm"===n);let i=t.getUint32(4,!0);console.assert(1===i);let r=t.getUint32(8,!0);console.assert(r===e.byteLength);let a=t.getUint32(12,!0),s=t.getUint32(16,!0),o=t.getUint32(20,!0),l=t.getUint32(24,!0),h=t.getUint32(28,!0),c=e.slice(32,32+a+s),u=new fd(c,0,a,s),d=32+a+s,p=e.slice(d,d+o+l),f=new ep(p,u.getData("INSTANCES_LENGTH"),0,o,l),m=d+o+l,g=new Uint8Array(e,m,r-m),v=null,y=null;if(h)v=g,y=Promise.resolve();else{let e=this.resolveExternalURL(NP(g));y=fetch(e,this.fetchOptions).then((t=>{if(!t.ok)throw new Error(`I3DMLoaderBase : Failed to load file "${e}" with status ${t.status} : ${t.statusText}`);return t.arrayBuffer()})).then((e=>{v=new Uint8Array(e)}))}return y.then((()=>({version:i,featureTable:u,batchTable:f,glbBytes:v})))}},wve=new O,K4=new O,J4=new O,Sve=new O,Q4=new dr,VP=new O,zP=new et,By=class extends HP{constructor(e=go){super(),this.manager=e,this.adjustmentTransform=new et}resolveExternalURL(e){return this.manager.resolveURL(super.resolveExternalURL(e))}parse(e){return super.parse(e).then((e=>{let{featureTable:t,batchTable:n}=e,i=e.glbBytes.slice().buffer;return new Promise(((e,r)=>{let a=this.fetchOptions,s=this.manager,o=s.getHandler("path.gltf")||new th(s);"include"===a.credentials&&"cors"===a.mode&&o.setCrossOrigin("use-credentials"),"credentials"in a&&o.setWithCredentials("include"===a.credentials),a.headers&&o.setRequestHeader(a.headers);let l=this.workingPath;/[\\/]$/.test(l)||(l+="/");let h=this.adjustmentTransform;o.parse(i,l,(i=>{let r=t.getData("INSTANCES_LENGTH"),a=t.getData("POSITION",r,"FLOAT","VEC3"),s=t.getData("NORMAL_UP",r,"FLOAT","VEC3"),o=t.getData("NORMAL_RIGHT",r,"FLOAT","VEC3"),l=t.getData("SCALE_NON_UNIFORM",r,"FLOAT","VEC3"),c=t.getData("SCALE",r,"FLOAT","SCALAR");["RTC_CENTER","QUANTIZED_VOLUME_OFFSET","QUANTIZED_VOLUME_SCALE","EAST_NORTH_UP","POSITION_QUANTIZED","NORMAL_UP_OCT32P","NORMAL_RIGHT_OCT32P"].forEach((e=>{e in t.header&&console.warn(`I3DMLoader: Unsupported FeatureTable feature "${e}" detected.`)}));let u=new Map,d=[];i.scene.traverse((e=>{if(e.isMesh){let{geometry:t,material:n}=e,i=new Pi(t,n,r);i.position.copy(e.position),i.rotation.copy(e.rotation),i.scale.copy(e.scale),d.push(i),u.set(e,i)}}));let p=new O;for(let e=0;e{let n=t.parent;n&&(n.remove(t),n.add(e),e.updateMatrixWorld(),e.position.copy(p).applyMatrix4(e.matrixWorld))}));for(let e=0;e{let t=new er;return e.forEach((e=>{t.add(e.scene)})),{tiles:e,scene:t}}))}},WP=class{constructor(){this.name="CESIUM_RTC"}afterRoot(e){if(e.parser.json.extensions&&e.parser.json.extensions.CESIUM_RTC){let{center:t}=e.parser.json.extensions.CESIUM_RTC;t&&(e.scene.position.x+=t[0],e.scene.position.y+=t[1],e.scene.position.z+=t[2])}}},jP=class extends Zl{constructor(e=go){super(),this.manager=e}parse(e){return new Promise(((t,n)=>{let i=this.manager,r=this.fetchOptions,a=i.getHandler("path.gltf")||i.getHandler("path.glb");a||(a=new th(i),a.register((()=>new WP)),"include"===r.credentials&&"cors"===r.mode&&a.setCrossOrigin("use-credentials"),"credentials"in r&&a.setWithCredentials("include"===r.credentials),r.headers&&a.setRequestHeader(r.headers));let s=a.resourcePath||a.path||this.workingPath;!/[\\/]$/.test(s)&&s.length&&(s+="/"),a.parse(e,s,(e=>{t(e)}),n)}))}},XP=new et,YP=class extends er{constructor(e){super(),this.name="TilesRenderer.TilesGroup",this.tilesRenderer=e}raycast(e,t){this.tilesRenderer.optimizeRaycast&&this.tilesRenderer.raycast(e,t)}updateMatrixWorld(e){if(this.matrixAutoUpdate&&this.updateMatrix(),this.matrixWorldNeedsUpdate||e){null===this.parent?XP.copy(this.matrix):XP.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1;let e=XP.elements,t=this.matrixWorld.elements,n=!1;for(let i=0;i<16;i++){let r=e[i],a=t[i];if(Math.abs(r-a)>Number.EPSILON){n=!0;break}}if(n){this.matrixWorld.copy(XP);let e=this.children;for(let t=0,n=e.length;t=t&&s<=n&&l>=i&&l<=r){let t=Ivt(e);u.push(t),this.getCartographicToPosition(s,l,o,t)}}}return u}getBoundingBox(e,t){Ave();let{latStart:n,latEnd:i,lonStart:r,lonEnd:a}=this;if(i-n{Object.getPrototypeOf(e).raycast.call(e,t,n)}))}function rV(e,t,n,i){if(n.has(e)){if(nV(e.cached.scene,i,Kl),Kl.length>0){Kl.length>1&&Kl.sort(tV);let e=Kl[0];return Kl.length=0,e}return null}let r=[],a=e.children;for(let l=0,h=a.length;l1e-6&&console.warn("ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when raycasting.");let n={distance:1/0,tile:null};r.push(n),h.containsPoint(lg.origin)?n.distance=0:n.distance=Cve.distanceToSquared(lg.origin)*t*t,n.tile=e}}}r.sort(tV);let s=1/0,o=null;for(let l=0,h=r.length;ls)break;{let r=e.tile,a=r.cached.scene,l=null;if(n.has(r)?(nV(a,i,Kl),Kl.length>0&&(Kl.length>1&&Kl.sort(tV),l=Kl[0])):l=rV(r,t,n,i),l){let e=l.distance*l.distance;e{e.frustumCulled=e[Lve]&&t}))}var w_=class extends FP{get autoDisableRendererCulling(){return this._autoDisableRendererCulling}set autoDisableRendererCulling(e){this._autoDisableRendererCulling!==e&&(super._autoDisableRendererCulling=e,this.forEachLoadedModel((t=>{Ive(t,!e)})))}constructor(...e){super(...e),this.group=new YP(this),this.cameras=[],this.cameraMap=new Map,this.cameraInfo=[],this.activeTiles=new Set,this.visibleTiles=new Set,this._autoDisableRendererCulling=!0,this.optimizeRaycast=!0,this.onLoadTileSet=null,this.onLoadModel=null,this.onDisposeModel=null,this.onTileVisibilityChange=null;let t=new Lu;t.setURLModifier((e=>this.preprocessURL?this.preprocessURL(e):e)),this.manager=t;let n=this;this._overridenRaycast=function(e,t){n.optimizeRaycast||Object.getPrototypeOf(this).raycast.call(this,e,t)}}getBounds(e){if(!this.root)return!1;let t=this.root.cached,n=t.box,i=t.boxTransform;return!!n&&(e.copy(n),e.applyMatrix4(i),!0)}getOrientedBounds(e,t){if(!this.root)return!1;let n=this.root.cached,i=n.box,r=n.boxTransform;return!!i&&(e.copy(i),t.copy(r),!0)}getBoundingSphere(e){if(!this.root)return!1;let t=this.root.cached.sphere;return!!t&&(e.copy(t),!0)}forEachLoadedModel(e){this.traverse((t=>{let n=t.cached.scene;n&&e(n,t)}))}raycast(e,t){if(this.root)if(e.firstHitOnly){let n=rV(this.root,this.group,this.activeTiles,e);n&&t.push(n)}else iV(this.root,this.group,this.activeTiles,e,t)}hasCamera(e){return this.cameraMap.has(e)}setCamera(e){let t=this.cameras,n=this.cameraMap;return!n.has(e)&&(n.set(e,new be),t.push(e),!0)}setResolution(e,t,n){let i=this.cameraMap;return!!i.has(e)&&(t instanceof be?i.get(e).copy(t):i.get(e).set(t,n),!0)}setResolutionFromRenderer(e,t){let n=this.cameraMap;if(!n.has(e))return!1;let i=n.get(e);return t.getSize(i),i.multiplyScalar(t.getPixelRatio()),!0}deleteCamera(e){let t=this.cameras,n=this.cameraMap;if(n.has(e)){let i=t.indexOf(e);return t.splice(i,1),n.delete(e),!0}return!1}fetchTileSet(e,...t){let n=super.fetchTileSet(e,...t);return n.then((t=>{this.onLoadTileSet&&Promise.resolve().then((()=>{this.onLoadTileSet(t,e)}))})),n}update(){let e=this.group,t=this.cameras,n=this.cameraMap,i=this.cameraInfo;if(0===t.length)return void console.warn("TilesRenderer: no cameras defined. Cannot update 3d tiles.");for(;i.length>t.length;)i.pop();for(;i.length1e-6&&console.warn("ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when calculating screen space error.");for(let a=0,s=i.length;ae.scene));break}case"pnts":{let t=new Ny(s);t.workingPath=r,t.fetchOptions=a,l=t.parse(e).then((e=>e.scene));break}case"i3dm":{let t=new By(s);t.workingPath=r,t.fetchOptions=a,t.adjustmentTransform.copy(qc),l=t.parse(e).then((e=>e.scene));break}case"cmpt":{let t=new qP(s);t.workingPath=r,t.fetchOptions=a,t.adjustmentTransform.copy(qc),l=t.parse(e).then((e=>e.scene));break}case"gltf":case"glb":let t=new jP(s);t.workingPath=r,t.fetchOptions=a,l=t.parse(e).then((e=>e.scene));break;default:console.warn(`TilesRenderer: Content type "${d}" not supported.`),l=Promise.resolve(null)}return l.then((e=>{if(t._loadIndex!==o)return;e.updateMatrix(),("glb"===d||"gltf"===d)&&e.matrix.multiply(qc),e.matrix.premultiply(u),e.matrix.decompose(e.position,e.quaternion,e.scale),e.traverse((e=>{e[Lve]=e.frustumCulled})),Ive(e,!this.autoDisableRendererCulling),c.scene=e,e.traverse((e=>{e.raycast=this._overridenRaycast}));let n=[],i=[],r=[];e.traverse((e=>{if(e.geometry&&i.push(e.geometry),e.material){let t=e.material;n.push(e.material);for(let e in t){let n=t[e];n&&n.isTexture&&r.push(n)}}})),c.materials=n,c.geometry=i,c.textures=r,this.onLoadModel&&this.onLoadModel(e,t)}))}disposeTile(e){let t=e.cached;if(t.scene){let n=t.materials,i=t.geometry,r=t.textures,a=t.scene.parent;for(let e=0,t=i.length;e25&&(t=25);let n=.5*(t-1),i=new Array(t),r=0;for(let a=0;a0){e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();let t=e.autoClear;e.autoClear=!1,r&&e.state.buffers.stencil.setTest(!1),e.setClearColor(16777215,1),this.changeVisibilityOfSelectedObjects(!1);let i=this.renderScene.background;if(this.renderScene.background=null,this.renderScene.overrideMaterial=this.depthMaterial,e.setRenderTarget(this.renderTargetDepthBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.changeVisibilityOfSelectedObjects(!0),this._visibilityCache.clear(),this.updateTextureMatrix(),this.changeVisibilityOfNonSelectedObjects(!1),this.renderScene.overrideMaterial=this.prepareMaskMaterial,this.prepareMaskMaterial.uniforms.cameraNearFar.value.set(this.renderCamera.near,this.renderCamera.far),this.prepareMaskMaterial.uniforms.depthTexture.value=this.renderTargetDepthBuffer.texture,this.prepareMaskMaterial.uniforms.textureMatrix.value=this.textureMatrix,e.setRenderTarget(this.renderTargetMaskBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.renderScene.overrideMaterial=null,this.changeVisibilityOfNonSelectedObjects(!0),this._visibilityCache.clear(),this.renderScene.background=i,this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.renderTargetMaskBuffer.texture,e.setRenderTarget(this.renderTargetMaskDownSampleBuffer),e.clear(),this.fsQuad.render(e),this.tempPulseColor1.copy(this.visibleEdgeColor),this.tempPulseColor2.copy(this.hiddenEdgeColor),this.pulsePeriod>0){let e=.625+.75*Math.cos(.01*performance.now()/this.pulsePeriod)/2;this.tempPulseColor1.multiplyScalar(e),this.tempPulseColor2.multiplyScalar(e)}this.fsQuad.material=this.edgeDetectionMaterial,this.edgeDetectionMaterial.uniforms.maskTexture.value=this.renderTargetMaskDownSampleBuffer.texture,this.edgeDetectionMaterial.uniforms.texSize.value.set(this.renderTargetMaskDownSampleBuffer.width,this.renderTargetMaskDownSampleBuffer.height),this.edgeDetectionMaterial.uniforms.visibleEdgeColor.value=this.tempPulseColor1,this.edgeDetectionMaterial.uniforms.hiddenEdgeColor.value=this.tempPulseColor2,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial1,this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=jc.BlurDirectionX,this.separableBlurMaterial1.uniforms.kernelRadius.value=this.edgeThickness,e.setRenderTarget(this.renderTargetBlurBuffer1),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetBlurBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=jc.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial2,this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial2.uniforms.direction.value=jc.BlurDirectionX,e.setRenderTarget(this.renderTargetBlurBuffer2),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetBlurBuffer2.texture,this.separableBlurMaterial2.uniforms.direction.value=jc.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer2),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.overlayMaterial,this.overlayMaterial.uniforms.maskTexture.value=this.renderTargetMaskBuffer.texture,this.overlayMaterial.uniforms.edgeTexture1.value=this.renderTargetEdgeBuffer1.texture,this.overlayMaterial.uniforms.edgeTexture2.value=this.renderTargetEdgeBuffer2.texture,this.overlayMaterial.uniforms.patternTexture.value=this.patternTexture,this.overlayMaterial.uniforms.edgeStrength.value=this.edgeStrength,this.overlayMaterial.uniforms.edgeGlow.value=this.edgeGlow,this.overlayMaterial.uniforms.usePatternTexture.value=this.usePatternTexture,r&&e.state.buffers.stencil.setTest(!0),e.setRenderTarget(n),this.fsQuad.render(e),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=t}this.renderToScreen&&(this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=n.texture,e.setRenderTarget(null),this.fsQuad.render(e))}getPrepareMaskMaterial(){return new ln({uniforms:{depthTexture:{value:null},cameraNearFar:{value:new be(.5,.5)},textureMatrix:{value:null}},vertexShader:"#include \n\t\t\t\t#include \n\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tuniform mat4 textureMatrix;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t\tvPosition = mvPosition;\n\n\t\t\t\t\tvec4 worldPosition = vec4( transformed, 1.0 );\n\n\t\t\t\t\t#ifdef USE_INSTANCING\n\n\t\t\t\t\t\tworldPosition = instanceMatrix * worldPosition;\n\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\tworldPosition = modelMatrix * worldPosition;\n\n\t\t\t\t\tprojTexCoord = textureMatrix * worldPosition;\n\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tuniform sampler2D depthTexture;\n\t\t\t\tuniform vec2 cameraNearFar;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tfloat depth = unpackRGBAToDepth(texture2DProj( depthTexture, projTexCoord ));\n\t\t\t\t\tfloat viewZ = - DEPTH_TO_VIEW_Z( depth, cameraNearFar.x, cameraNearFar.y );\n\t\t\t\t\tfloat depthTest = (-vPosition.z > viewZ) ? 1.0 : 0.0;\n\t\t\t\t\tgl_FragColor = vec4(0.0, depthTest, 1.0, 1.0);\n\n\t\t\t\t}"})}getEdgeDetectionMaterial(){return new ln({uniforms:{maskTexture:{value:null},texSize:{value:new be(.5,.5)},visibleEdgeColor:{value:new O(1,1,1)},hiddenEdgeColor:{value:new O(1,1,1)}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec3 visibleEdgeColor;\n\t\t\t\tuniform vec3 hiddenEdgeColor;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tvec4 uvOffset = vec4(1.0, 0.0, 0.0, 1.0) * vec4(invSize, invSize);\n\t\t\t\t\tvec4 c1 = texture2D( maskTexture, vUv + uvOffset.xy);\n\t\t\t\t\tvec4 c2 = texture2D( maskTexture, vUv - uvOffset.xy);\n\t\t\t\t\tvec4 c3 = texture2D( maskTexture, vUv + uvOffset.yw);\n\t\t\t\t\tvec4 c4 = texture2D( maskTexture, vUv - uvOffset.yw);\n\t\t\t\t\tfloat diff1 = (c1.r - c2.r)*0.5;\n\t\t\t\t\tfloat diff2 = (c3.r - c4.r)*0.5;\n\t\t\t\t\tfloat d = length( vec2(diff1, diff2) );\n\t\t\t\t\tfloat a1 = min(c1.g, c2.g);\n\t\t\t\t\tfloat a2 = min(c3.g, c4.g);\n\t\t\t\t\tfloat visibilityFactor = min(a1, a2);\n\t\t\t\t\tvec3 edgeColor = 1.0 - visibilityFactor > 0.001 ? visibleEdgeColor : hiddenEdgeColor;\n\t\t\t\t\tgl_FragColor = vec4(edgeColor, 1.0) * vec4(d);\n\t\t\t\t}"})}getSeperableBlurMaterial(e){return new ln({defines:{MAX_RADIUS:e},uniforms:{colorTexture:{value:null},texSize:{value:new be(.5,.5)},direction:{value:new be(.5,.5)},kernelRadius:{value:1}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float kernelRadius;\n\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat sigma = kernelRadius/2.0;\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, sigma);\n\t\t\t\t\tvec4 diffuseSum = texture2D( colorTexture, vUv) * weightSum;\n\t\t\t\t\tvec2 delta = direction * invSize * kernelRadius/float(MAX_RADIUS);\n\t\t\t\t\tvec2 uvOffset = delta;\n\t\t\t\t\tfor( int i = 1; i <= MAX_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = kernelRadius * float(i) / float(MAX_RADIUS);\n\t\t\t\t\t\tfloat w = gaussianPdf(x, sigma);\n\t\t\t\t\t\tvec4 sample1 = texture2D( colorTexture, vUv + uvOffset);\n\t\t\t\t\t\tvec4 sample2 = texture2D( colorTexture, vUv - uvOffset);\n\t\t\t\t\t\tdiffuseSum += ((sample1 + sample2) * w);\n\t\t\t\t\t\tweightSum += (2.0 * w);\n\t\t\t\t\t\tuvOffset += delta;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = diffuseSum/weightSum;\n\t\t\t\t}"})}getOverlayMaterial(){return new ln({uniforms:{maskTexture:{value:null},edgeTexture1:{value:null},edgeTexture2:{value:null},patternTexture:{value:null},edgeStrength:{value:1},edgeGlow:{value:1},usePatternTexture:{value:0}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform sampler2D edgeTexture1;\n\t\t\t\tuniform sampler2D edgeTexture2;\n\t\t\t\tuniform sampler2D patternTexture;\n\t\t\t\tuniform float edgeStrength;\n\t\t\t\tuniform float edgeGlow;\n\t\t\t\tuniform bool usePatternTexture;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec4 edgeValue1 = texture2D(edgeTexture1, vUv);\n\t\t\t\t\tvec4 edgeValue2 = texture2D(edgeTexture2, vUv);\n\t\t\t\t\tvec4 maskColor = texture2D(maskTexture, vUv);\n\t\t\t\t\tvec4 patternColor = texture2D(patternTexture, 6.0 * vUv);\n\t\t\t\t\tfloat visibilityFactor = 1.0 - maskColor.g > 0.0 ? 1.0 : 0.5;\n\t\t\t\t\tvec4 edgeValue = edgeValue1 + edgeValue2 * edgeGlow;\n\t\t\t\t\tvec4 finalColor = edgeStrength * maskColor.r * edgeValue;\n\t\t\t\t\tif(usePatternTexture)\n\t\t\t\t\t\tfinalColor += + visibilityFactor * (1.0 - maskColor.r) * (1.0 - patternColor.r);\n\t\t\t\t\tgl_FragColor = finalColor;\n\t\t\t\t}",blending:_c,depthTest:!1,depthWrite:!1,transparent:!0})}};jc.BlurDirectionX=new be(1,0),jc.BlurDirectionY=new be(0,1);var r2=class extends bs{constructor(e,t,n,i,r){super(),this.scene=e,this.camera=t,this.overrideMaterial=n,this.clearColor=i,this.clearAlpha=void 0!==r?r:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new ct}render(e,t,n){let i,r,a=e.autoClear;e.autoClear=!1,void 0!==this.overrideMaterial&&(r=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),i=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:n),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),this.clearColor&&e.setClearColor(this._oldClearColor,i),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=r),e.autoClear=a}},A_={defines:{NUM_SAMPLES:7,NUM_RINGS:4,NORMAL_TEXTURE:0,DIFFUSE_TEXTURE:0,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},tDiffuse:{value:null},tNormal:{value:null},size:{value:new be(512,512)},cameraNear:{value:1},cameraFar:{value:100},cameraProjectionMatrix:{value:new et},cameraInverseProjectionMatrix:{value:new et},scale:{value:1},intensity:{value:.1},bias:{value:.5},minResolution:{value:0},kernelRadius:{value:100},randomSeed:{value:0}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",fragmentShader:"\n\n\t\t#include \n\n\t\tvarying vec2 vUv;\n\n\t\t#if DIFFUSE_TEXTURE == 1\n\t\tuniform sampler2D tDiffuse;\n\t\t#endif\n\n\t\tuniform sampler2D tDepth;\n\n\t\t#if NORMAL_TEXTURE == 1\n\t\tuniform sampler2D tNormal;\n\t\t#endif\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\n\t\tuniform float scale;\n\t\tuniform float intensity;\n\t\tuniform float bias;\n\t\tuniform float kernelRadius;\n\t\tuniform float minResolution;\n\t\tuniform vec2 size;\n\t\tuniform float randomSeed;\n\n\t\t// RGBA depth\n\n\t\t#include \n\n\t\tvec4 getDefaultColor( const in vec2 screenPosition ) {\n\t\t\t#if DIFFUSE_TEXTURE == 1\n\t\t\treturn texture2D( tDiffuse, vUv );\n\t\t\t#else\n\t\t\treturn vec4( 1.0 );\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\t\t\t#if DEPTH_PACKING == 1\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t\t#else\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\t\t\tclipPosition *= clipW; // unprojection.\n\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition ) {\n\t\t\t#if NORMAL_TEXTURE == 1\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\t\t\t#else\n\t\t\treturn normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n\t\t\t#endif\n\t\t}\n\n\t\tfloat scaleDividedByCameraFar;\n\t\tfloat minResolutionMultipliedByCameraFar;\n\n\t\tfloat getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {\n\t\t\tvec3 viewDelta = sampleViewPosition - centerViewPosition;\n\t\t\tfloat viewDistance = length( viewDelta );\n\t\t\tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n\n\t\t\treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) );\n\t\t}\n\n\t\t// moving costly divides into consts\n\t\tconst float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\n\t\tconst float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n\n\t\tfloat getAmbientOcclusion( const in vec3 centerViewPosition ) {\n\t\t\t// precompute some variables require in getOcclusion.\n\t\t\tscaleDividedByCameraFar = scale / cameraFar;\n\t\t\tminResolutionMultipliedByCameraFar = minResolution * cameraFar;\n\t\t\tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUv );\n\n\t\t\t// jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/\n\t\t\tfloat angle = rand( vUv + randomSeed ) * PI2;\n\t\t\tvec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size;\n\t\t\tvec2 radiusStep = radius;\n\n\t\t\tfloat occlusionSum = 0.0;\n\t\t\tfloat weightSum = 0.0;\n\n\t\t\tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\n\t\t\t\tvec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius;\n\t\t\t\tradius += radiusStep;\n\t\t\t\tangle += ANGLE_STEP;\n\n\t\t\t\tfloat sampleDepth = getDepth( sampleUv );\n\t\t\t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\t\tvec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ );\n\t\t\t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n\t\t\t\tweightSum += 1.0;\n\t\t\t}\n\n\t\t\tif( weightSum == 0.0 ) discard;\n\n\t\t\treturn occlusionSum * ( intensity / weightSum );\n\t\t}\n\n\t\tvoid main() {\n\t\t\tfloat centerDepth = getDepth( vUv );\n\t\t\tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\n\t\t\tfloat centerViewZ = getViewZ( centerDepth );\n\t\t\tvec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ );\n\n\t\t\tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );\n\n\t\t\tgl_FragColor = getDefaultColor( vUv );\n\t\t\tgl_FragColor.xyz *= 1.0 - ambientOcclusion;\n\t\t}"},yd={defines:{KERNEL_RADIUS:4,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDiffuse:{value:null},size:{value:new be(512,512)},sampleUvOffsets:{value:[new be(0,0)]},sampleWeights:{value:[1]},tDepth:{value:null},cameraNear:{value:10},cameraFar:{value:1e3},depthCutoff:{value:10}},vertexShader:"\n\n\t\t#include \n\n\t\tuniform vec2 size;\n\n\t\tvarying vec2 vUv;\n\t\tvarying vec2 vInvSize;\n\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tvInvSize = 1.0 / size;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",fragmentShader:"\n\n\t\t#include \n\t\t#include \n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tDepth;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform float depthCutoff;\n\n\t\tuniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ];\n\t\tuniform float sampleWeights[ KERNEL_RADIUS + 1 ];\n\n\t\tvarying vec2 vUv;\n\t\tvarying vec2 vInvSize;\n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\t\t\t#if DEPTH_PACKING == 1\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t\t#else\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\n\t\tvoid main() {\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tif( depth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\n\t\t\tfloat centerViewZ = -getViewZ( depth );\n\t\t\tbool rBreak = false, lBreak = false;\n\n\t\t\tfloat weightSum = sampleWeights[0];\n\t\t\tvec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum;\n\n\t\t\tfor( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n\t\t\t\tfloat sampleWeight = sampleWeights[i];\n\t\t\t\tvec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize;\n\n\t\t\t\tvec2 sampleUv = vUv + sampleUvOffset;\n\t\t\t\tfloat viewZ = -getViewZ( getDepth( sampleUv ) );\n\n\t\t\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true;\n\n\t\t\t\tif( ! rBreak ) {\n\t\t\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;\n\t\t\t\t\tweightSum += sampleWeight;\n\t\t\t\t}\n\n\t\t\t\tsampleUv = vUv - sampleUvOffset;\n\t\t\t\tviewZ = -getViewZ( getDepth( sampleUv ) );\n\n\t\t\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true;\n\n\t\t\t\tif( ! lBreak ) {\n\t\t\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;\n\t\t\t\t\tweightSum += sampleWeight;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tgl_FragColor = diffuseSum / weightSum;\n\t\t}"},C_={createSampleWeights:function(e,t){let n=[];for(let i=0;i<=e;i++)n.push(Fvt(i,t));return n},createSampleOffsets:function(e,t){let n=[];for(let i=0;i<=e;i++)n.push(t.clone().multiplyScalar(i));return n},configure:function(e,t,n,i){e.defines.KERNEL_RADIUS=t,e.uniforms.sampleUvOffsets.value=C_.createSampleOffsets(t,i),e.uniforms.sampleWeights.value=C_.createSampleWeights(t,n),e.needsUpdate=!0}};function Fvt(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}var i2={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tvoid main() {\n\n\t\t\tfloat depth = 1.0 - unpackRGBAToDepth( texture2D( tDiffuse, vUv ) );\n\t\t\tgl_FragColor = vec4( vec3( depth ), opacity );\n\n\t\t}"},P_=class extends bs{constructor(e,t,n=!1,i=!1,r=new be(256,256)){let a;super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.supportsDepthTextureExtension=n,this.supportsNormalTexture=i,this.originalClearColor=new ct,this._oldClearColor=new ct,this.oldClearAlpha=1,this.params={output:0,saoBias:.5,saoIntensity:.18,saoScale:1,saoKernelRadius:100,saoMinResolution:0,saoBlur:!0,saoBlurRadius:8,saoBlurStdDev:4,saoBlurDepthCutoff:.01},this.resolution=new be(r.x,r.y),this.saoRenderTarget=new sr(this.resolution.x,this.resolution.y,{type:Rr}),this.blurIntermediateRenderTarget=this.saoRenderTarget.clone(),this.beautyRenderTarget=this.saoRenderTarget.clone(),this.normalRenderTarget=new sr(this.resolution.x,this.resolution.y,{minFilter:Jr,magFilter:Jr,type:Rr}),this.depthRenderTarget=this.normalRenderTarget.clone(),this.supportsDepthTextureExtension&&(a=new cf,a.type=Sv,this.beautyRenderTarget.depthTexture=a,this.beautyRenderTarget.depthBuffer=!0),this.depthMaterial=new Tc,this.depthMaterial.depthPacking=Rv,this.depthMaterial.blending=Qr,this.normalMaterial=new df,this.normalMaterial.blending=Qr,this.saoMaterial=new ln({defines:Object.assign({},A_.defines),fragmentShader:A_.fragmentShader,vertexShader:A_.vertexShader,uniforms:Ti.clone(A_.uniforms)}),this.saoMaterial.extensions.derivatives=!0,this.saoMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.saoMaterial.defines.NORMAL_TEXTURE=this.supportsNormalTexture?1:0,this.saoMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.saoMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?a:this.depthRenderTarget.texture,this.saoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.saoMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.blending=Qr,this.vBlurMaterial=new ln({uniforms:Ti.clone(yd.uniforms),defines:Object.assign({},yd.defines),vertexShader:yd.vertexShader,fragmentShader:yd.fragmentShader}),this.vBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.vBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.vBlurMaterial.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.vBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?a:this.depthRenderTarget.texture,this.vBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.vBlurMaterial.blending=Qr,this.hBlurMaterial=new ln({uniforms:Ti.clone(yd.uniforms),defines:Object.assign({},yd.defines),vertexShader:yd.vertexShader,fragmentShader:yd.fragmentShader}),this.hBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.hBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.hBlurMaterial.uniforms.tDiffuse.value=this.blurIntermediateRenderTarget.texture,this.hBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?a:this.depthRenderTarget.texture,this.hBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.hBlurMaterial.blending=Qr,this.materialCopy=new ln({uniforms:Ti.clone(Sa.uniforms),vertexShader:Sa.vertexShader,fragmentShader:Sa.fragmentShader,blending:Qr}),this.materialCopy.transparent=!0,this.materialCopy.depthTest=!1,this.materialCopy.depthWrite=!1,this.materialCopy.blending=Mm,this.materialCopy.blendSrc=Tv,this.materialCopy.blendDst=pf,this.materialCopy.blendEquation=qo,this.materialCopy.blendSrcAlpha=_v,this.materialCopy.blendDstAlpha=pf,this.materialCopy.blendEquationAlpha=qo,this.depthCopy=new ln({uniforms:Ti.clone(i2.uniforms),vertexShader:i2.vertexShader,fragmentShader:i2.fragmentShader,blending:Qr}),this.fsQuad=new wa(null)}render(e,t,n){if(this.renderToScreen&&(this.materialCopy.blending=Qr,this.materialCopy.uniforms.tDiffuse.value=n.texture,this.materialCopy.needsUpdate=!0,this.renderPass(e,this.materialCopy,null)),1===this.params.output)return;e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();let i=e.autoClear;e.autoClear=!1,e.setRenderTarget(this.depthRenderTarget),e.clear(),this.saoMaterial.uniforms.bias.value=this.params.saoBias,this.saoMaterial.uniforms.intensity.value=this.params.saoIntensity,this.saoMaterial.uniforms.scale.value=this.params.saoScale,this.saoMaterial.uniforms.kernelRadius.value=this.params.saoKernelRadius,this.saoMaterial.uniforms.minResolution.value=this.params.saoMinResolution,this.saoMaterial.uniforms.cameraNear.value=this.camera.near,this.saoMaterial.uniforms.cameraFar.value=this.camera.far;let r=this.params.saoBlurDepthCutoff*(this.camera.far-this.camera.near);this.vBlurMaterial.uniforms.depthCutoff.value=r,this.hBlurMaterial.uniforms.depthCutoff.value=r,this.vBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.vBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.hBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.hBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.params.saoBlurRadius=Math.floor(this.params.saoBlurRadius),(this.prevStdDev!==this.params.saoBlurStdDev||this.prevNumSamples!==this.params.saoBlurRadius)&&(C_.configure(this.vBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new be(0,1)),C_.configure(this.hBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new be(1,0)),this.prevStdDev=this.params.saoBlurStdDev,this.prevNumSamples=this.params.saoBlurRadius),e.setClearColor(0),e.setRenderTarget(this.beautyRenderTarget),e.clear(),e.render(this.scene,this.camera),this.supportsDepthTextureExtension||this.renderOverride(e,this.depthMaterial,this.depthRenderTarget,0,1),this.supportsNormalTexture&&this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,7829503,1),this.renderPass(e,this.saoMaterial,this.saoRenderTarget,16777215,1),this.params.saoBlur&&(this.renderPass(e,this.vBlurMaterial,this.blurIntermediateRenderTarget,16777215,1),this.renderPass(e,this.hBlurMaterial,this.saoRenderTarget,16777215,1));let a=this.materialCopy;3===this.params.output?this.supportsDepthTextureExtension?(this.materialCopy.uniforms.tDiffuse.value=this.beautyRenderTarget.depthTexture,this.materialCopy.needsUpdate=!0):(this.depthCopy.uniforms.tDiffuse.value=this.depthRenderTarget.texture,this.depthCopy.needsUpdate=!0,a=this.depthCopy):4===this.params.output?(this.materialCopy.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.materialCopy.needsUpdate=!0):(this.materialCopy.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.materialCopy.needsUpdate=!0),0===this.params.output?a.blending=Mm:a.blending=Qr,this.renderPass(e,a,this.renderToScreen?null:n),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=i}renderPass(e,t,n,i,r){e.getClearColor(this.originalClearColor);let a=e.getClearAlpha(),s=e.autoClear;e.setRenderTarget(n),e.autoClear=!1,null!=i&&(e.setClearColor(i),e.setClearAlpha(r||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=s,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)}renderOverride(e,t,n,i,r){e.getClearColor(this.originalClearColor);let a=e.getClearAlpha(),s=e.autoClear;e.setRenderTarget(n),e.autoClear=!1,i=t.clearColor||i,r=t.clearAlpha||r,null!=i&&(e.setClearColor(i),e.setClearAlpha(r||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=s,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)}setSize(e,t){this.beautyRenderTarget.setSize(e,t),this.saoRenderTarget.setSize(e,t),this.blurIntermediateRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.depthRenderTarget.setSize(e,t),this.saoMaterial.uniforms.size.value.set(e,t),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.needsUpdate=!0,this.vBlurMaterial.uniforms.size.value.set(e,t),this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.uniforms.size.value.set(e,t),this.hBlurMaterial.needsUpdate=!0}dispose(){this.saoRenderTarget.dispose(),this.blurIntermediateRenderTarget.dispose(),this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.depthRenderTarget.dispose(),this.depthMaterial.dispose(),this.normalMaterial.dispose(),this.saoMaterial.dispose(),this.vBlurMaterial.dispose(),this.hBlurMaterial.dispose(),this.materialCopy.dispose(),this.depthCopy.dispose(),this.fsQuad.dispose()}};P_.OUTPUT={Beauty:1,Default:0,SAO:2,Depth:3,Normal:4};var s2=class extends bs{constructor(e,t,n,i){super(),this.scene=e,this.camera=t,this.sampleLevel=4,this.unbiased=!0,this.clearColor=void 0!==n?n:0,this.clearAlpha=void 0!==i?i:0,this._oldClearColor=new ct;let r=Sa;this.copyUniforms=Ti.clone(r.uniforms),this.copyMaterial=new ln({uniforms:this.copyUniforms,vertexShader:r.vertexShader,fragmentShader:r.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,premultipliedAlpha:!0,blending:_c}),this.fsQuad=new wa(this.copyMaterial)}dispose(){this.sampleRenderTarget&&(this.sampleRenderTarget.dispose(),this.sampleRenderTarget=null),this.copyMaterial.dispose(),this.fsQuad.dispose()}setSize(e,t){this.sampleRenderTarget&&this.sampleRenderTarget.setSize(e,t)}render(e,t,n){this.sampleRenderTarget||(this.sampleRenderTarget=new sr(n.width,n.height,{type:Rr}),this.sampleRenderTarget.texture.name="SSAARenderPass.sample");let i=Nvt[Math.max(0,Math.min(this.sampleLevel,5))],r=e.autoClear;e.autoClear=!1,e.getClearColor(this._oldClearColor);let a=e.getClearAlpha(),s=1/i.length;this.copyUniforms.tDiffuse.value=this.sampleRenderTarget.texture;let o={fullWidth:n.width,fullHeight:n.height,offsetX:0,offsetY:0,width:n.width,height:n.height},l=Object.assign({},this.camera.view);l.enabled&&Object.assign(o,l);for(let h=0;hp?(a=1,s=0):(a=0,s=1);let f=d-a+c,m=p-s+c,g=d-1+2*c,v=p-1+2*c,y=255&l,x=255&h,b=this.perm[y+this.perm[x]]%12,_=this.perm[y+a+this.perm[x+s]]%12,w=this.perm[y+1+this.perm[x+1]]%12,S=.5-d*d-p*p;S<0?n=0:(S*=S,n=S*S*this.dot(this.grad3[b],d,p));let M=.5-f*f-m*m;M<0?i=0:(M*=M,i=M*M*this.dot(this.grad3[_],f,m));let T=.5-g*g-v*v;return T<0?r=0:(T*=T,r=T*T*this.dot(this.grad3[w],g,v)),70*(n+i+r)}noise3d(e,t,n){let i,r,a,s,o,l,h,c,u,d,p=.3333333333333333*(e+t+n),f=Math.floor(e+p),m=Math.floor(t+p),g=Math.floor(n+p),v=1/6,y=(f+m+g)*v,x=e-(f-y),b=t-(m-y),_=n-(g-y);x>=b?b>=_?(o=1,l=0,h=0,c=1,u=1,d=0):x>=_?(o=1,l=0,h=0,c=1,u=0,d=1):(o=0,l=0,h=1,c=1,u=0,d=1):b<_?(o=0,l=0,h=1,c=0,u=1,d=1):x<_?(o=0,l=1,h=0,c=0,u=1,d=1):(o=0,l=1,h=0,c=1,u=1,d=0);let w=x-o+v,S=b-l+v,M=_-h+v,T=x-c+2*v,E=b-u+2*v,A=_-d+2*v,C=x-1+.5,P=b-1+.5,R=_-1+.5,O=255&f,L=255&m,I=255&g,D=this.perm[O+this.perm[L+this.perm[I]]]%12,k=this.perm[O+o+this.perm[L+l+this.perm[I+h]]]%12,N=this.perm[O+c+this.perm[L+u+this.perm[I+d]]]%12,F=this.perm[O+1+this.perm[L+1+this.perm[I+1]]]%12,U=.6-x*x-b*b-_*_;U<0?i=0:(U*=U,i=U*U*this.dot3(this.grad3[D],x,b,_));let B=.6-w*w-S*S-M*M;B<0?r=0:(B*=B,r=B*B*this.dot3(this.grad3[k],w,S,M));let z=.6-T*T-E*E-A*A;z<0?a=0:(z*=z,a=z*z*this.dot3(this.grad3[N],T,E,A));let H=.6-C*C-P*P-R*R;return H<0?s=0:(H*=H,s=H*H*this.dot3(this.grad3[F],C,P,R)),32*(i+r+a+s)}noise4d(e,t,n,i){let r,a,s,o,l,h=this.grad4,c=this.simplex,u=this.perm,d=(Math.sqrt(5)-1)/4,p=(5-Math.sqrt(5))/20,f=(e+t+n+i)*d,m=Math.floor(e+f),g=Math.floor(t+f),v=Math.floor(n+f),y=Math.floor(i+f),x=(m+g+v+y)*p,b=e-(m-x),_=t-(g-x),w=n-(v-x),S=i-(y-x),M=(b>_?32:0)+(b>w?16:0)+(_>w?8:0)+(b>S?4:0)+(_>S?2:0)+(w>S?1:0),T=c[M][0]>=3?1:0,E=c[M][1]>=3?1:0,A=c[M][2]>=3?1:0,C=c[M][3]>=3?1:0,P=c[M][0]>=2?1:0,R=c[M][1]>=2?1:0,O=c[M][2]>=2?1:0,L=c[M][3]>=2?1:0,I=c[M][0]>=1?1:0,D=c[M][1]>=1?1:0,k=c[M][2]>=1?1:0,N=c[M][3]>=1?1:0,F=b-T+p,U=_-E+p,B=w-A+p,z=S-C+p,H=b-P+2*p,V=_-R+2*p,j=w-O+2*p,G=S-L+2*p,W=b-I+3*p,X=_-D+3*p,Y=w-k+3*p,q=S-N+3*p,J=b-1+4*p,Z=_-1+4*p,K=w-1+4*p,$=S-1+4*p,Q=255&m,ee=255&g,te=255&v,ne=255&y,ie=u[Q+u[ee+u[te+u[ne]]]]%32,re=u[Q+T+u[ee+E+u[te+A+u[ne+C]]]]%32,ae=u[Q+P+u[ee+R+u[te+O+u[ne+L]]]]%32,se=u[Q+I+u[ee+D+u[te+k+u[ne+N]]]]%32,oe=u[Q+1+u[ee+1+u[te+1+u[ne+1]]]]%32,le=.6-b*b-_*_-w*w-S*S;le<0?r=0:(le*=le,r=le*le*this.dot4(h[ie],b,_,w,S));let he=.6-F*F-U*U-B*B-z*z;he<0?a=0:(he*=he,a=he*he*this.dot4(h[re],F,U,B,z));let ce=.6-H*H-V*V-j*j-G*G;ce<0?s=0:(ce*=ce,s=ce*ce*this.dot4(h[ae],H,V,j,G));let ue=.6-W*W-X*X-Y*Y-q*q;ue<0?o=0:(ue*=ue,o=ue*ue*this.dot4(h[se],W,X,Y,q));let de=.6-J*J-Z*Z-K*K-$*$;return de<0?l=0:(de*=de,l=de*de*this.dot4(h[oe],J,Z,K,$)),27*(r+a+s+o+l)}},I_={defines:{PERSPECTIVE_CAMERA:1,KERNEL_SIZE:32},uniforms:{tDiffuse:{value:null},tNormal:{value:null},tDepth:{value:null},tNoise:{value:null},kernel:{value:null},cameraNear:{value:null},cameraFar:{value:null},resolution:{value:new be},cameraProjectionMatrix:{value:new et},cameraInverseProjectionMatrix:{value:new et},kernelRadius:{value:8},minDistance:{value:.005},maxDistance:{value:.05}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tNormal;\n\t\tuniform sampler2D tDepth;\n\t\tuniform sampler2D tNoise;\n\n\t\tuniform vec3 kernel[ KERNEL_SIZE ];\n\n\t\tuniform vec2 resolution;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\n\t\tuniform float kernelRadius;\n\t\tuniform float minDistance; // avoid artifacts caused by neighbour fragments with minimal depth difference\n\t\tuniform float maxDistance; // avoid the influence of fragments which are too far away\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t}\n\n\t\tfloat getLinearDepth( const in vec2 screenPosition ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\n\t\t\tclipPosition *= clipW; // unprojection.\n\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec2 screenPosition ) {\n\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tfloat viewZ = getViewZ( depth );\n\n\t\t\tvec3 viewPosition = getViewPosition( vUv, depth, viewZ );\n\t\t\tvec3 viewNormal = getViewNormal( vUv );\n\n\t\t\tvec2 noiseScale = vec2( resolution.x / 4.0, resolution.y / 4.0 );\n\t\t\tvec3 random = vec3( texture2D( tNoise, vUv * noiseScale ).r );\n\n\t\t\t// compute matrix used to reorient a kernel vector\n\n\t\t\tvec3 tangent = normalize( random - viewNormal * dot( random, viewNormal ) );\n\t\t\tvec3 bitangent = cross( viewNormal, tangent );\n\t\t\tmat3 kernelMatrix = mat3( tangent, bitangent, viewNormal );\n\n\t\t float occlusion = 0.0;\n\n\t\t for ( int i = 0; i < KERNEL_SIZE; i ++ ) {\n\n\t\t\t\tvec3 sampleVector = kernelMatrix * kernel[ i ]; // reorient sample vector in view space\n\t\t\t\tvec3 samplePoint = viewPosition + ( sampleVector * kernelRadius ); // calculate sample point\n\n\t\t\t\tvec4 samplePointNDC = cameraProjectionMatrix * vec4( samplePoint, 1.0 ); // project point and calculate NDC\n\t\t\t\tsamplePointNDC /= samplePointNDC.w;\n\n\t\t\t\tvec2 samplePointUv = samplePointNDC.xy * 0.5 + 0.5; // compute uv coordinates\n\n\t\t\t\tfloat realDepth = getLinearDepth( samplePointUv ); // get linear depth from depth texture\n\t\t\t\tfloat sampleDepth = viewZToOrthographicDepth( samplePoint.z, cameraNear, cameraFar ); // compute linear depth of the sample view Z value\n\t\t\t\tfloat delta = sampleDepth - realDepth;\n\n\t\t\t\tif ( delta > minDistance && delta < maxDistance ) { // if fragment is before sample point, increase occlusion\n\n\t\t\t\t\tocclusion += 1.0;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tocclusion = clamp( occlusion / float( KERNEL_SIZE ), 0.0, 1.0 );\n\n\t\t\tgl_FragColor = vec4( vec3( 1.0 - occlusion ), 1.0 );\n\n\t\t}"},L_={defines:{PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},cameraNear:{value:null},cameraFar:{value:null}},vertexShader:"varying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"uniform sampler2D tDepth;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tfloat getLinearDepth( const in vec2 screenPosition ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tfloat depth = getLinearDepth( vUv );\n\t\t\tgl_FragColor = vec4( vec3( 1.0 - depth ), 1.0 );\n\n\t\t}"},D_={uniforms:{tDiffuse:{value:null},resolution:{value:new be}},vertexShader:"varying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"uniform sampler2D tDiffuse;\n\n\t\tuniform vec2 resolution;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec2 texelSize = ( 1.0 / resolution );\n\t\t\tfloat result = 0.0;\n\n\t\t\tfor ( int i = - 2; i <= 2; i ++ ) {\n\n\t\t\t\tfor ( int j = - 2; j <= 2; j ++ ) {\n\n\t\t\t\t\tvec2 offset = ( vec2( float( i ), float( j ) ) ) * texelSize;\n\t\t\t\t\tresult += texture2D( tDiffuse, vUv + offset ).r;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tgl_FragColor = vec4( vec3( result / ( 5.0 * 5.0 ) ), 1.0 );\n\n\t\t}"},Jl=class extends bs{constructor(e,t,n,i){super(),this.width=void 0!==n?n:512,this.height=void 0!==i?i:512,this.clear=!0,this.camera=t,this.scene=e,this.kernelRadius=8,this.kernelSize=32,this.kernel=[],this.noiseTexture=null,this.output=0,this.minDistance=.005,this.maxDistance=.1,this._visibilityCache=new Map,this.generateSampleKernel(),this.generateRandomKernelRotations();let r=new cf;r.format=Wh,r.type=bu,this.beautyRenderTarget=new sr(this.width,this.height,{type:Rr}),this.normalRenderTarget=new sr(this.width,this.height,{minFilter:Jr,magFilter:Jr,type:Rr,depthTexture:r}),this.ssaoRenderTarget=new sr(this.width,this.height,{type:Rr}),this.blurRenderTarget=this.ssaoRenderTarget.clone(),this.ssaoMaterial=new ln({defines:Object.assign({},I_.defines),uniforms:Ti.clone(I_.uniforms),vertexShader:I_.vertexShader,fragmentShader:I_.fragmentShader,blending:Qr}),this.ssaoMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.ssaoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.ssaoMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.ssaoMaterial.uniforms.tNoise.value=this.noiseTexture,this.ssaoMaterial.uniforms.kernel.value=this.kernel,this.ssaoMaterial.uniforms.cameraNear.value=this.camera.near,this.ssaoMaterial.uniforms.cameraFar.value=this.camera.far,this.ssaoMaterial.uniforms.resolution.value.set(this.width,this.height),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.normalMaterial=new df,this.normalMaterial.blending=Qr,this.blurMaterial=new ln({defines:Object.assign({},D_.defines),uniforms:Ti.clone(D_.uniforms),vertexShader:D_.vertexShader,fragmentShader:D_.fragmentShader}),this.blurMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.blurMaterial.uniforms.resolution.value.set(this.width,this.height),this.depthRenderMaterial=new ln({defines:Object.assign({},L_.defines),uniforms:Ti.clone(L_.uniforms),vertexShader:L_.vertexShader,fragmentShader:L_.fragmentShader,blending:Qr}),this.depthRenderMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.depthRenderMaterial.uniforms.cameraNear.value=this.camera.near,this.depthRenderMaterial.uniforms.cameraFar.value=this.camera.far,this.copyMaterial=new ln({uniforms:Ti.clone(Sa.uniforms),vertexShader:Sa.vertexShader,fragmentShader:Sa.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blendSrc:Tv,blendDst:pf,blendEquation:qo,blendSrcAlpha:_v,blendDstAlpha:pf,blendEquationAlpha:qo}),this.fsQuad=new wa(null),this.originalClearColor=new ct}dispose(){this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.ssaoRenderTarget.dispose(),this.blurRenderTarget.dispose(),this.normalMaterial.dispose(),this.blurMaterial.dispose(),this.copyMaterial.dispose(),this.depthRenderMaterial.dispose(),this.fsQuad.dispose()}render(e,t){switch(!1===e.capabilities.isWebGL2&&(this.noiseTexture.format=YR),e.setRenderTarget(this.beautyRenderTarget),e.clear(),e.render(this.scene,this.camera),this.overrideVisibility(),this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,7829503,1),this.restoreVisibility(),this.ssaoMaterial.uniforms.kernelRadius.value=this.kernelRadius,this.ssaoMaterial.uniforms.minDistance.value=this.minDistance,this.ssaoMaterial.uniforms.maxDistance.value=this.maxDistance,this.renderPass(e,this.ssaoMaterial,this.ssaoRenderTarget),this.renderPass(e,this.blurMaterial,this.blurRenderTarget),this.output){case Jl.OUTPUT.SSAO:this.copyMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.copyMaterial.blending=Qr,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case Jl.OUTPUT.Blur:this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=Qr,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case Jl.OUTPUT.Beauty:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=Qr,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case Jl.OUTPUT.Depth:this.renderPass(e,this.depthRenderMaterial,this.renderToScreen?null:t);break;case Jl.OUTPUT.Normal:this.copyMaterial.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.copyMaterial.blending=Qr,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case Jl.OUTPUT.Default:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=Qr,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t),this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=Mm,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;default:console.warn("THREE.SSAOPass: Unknown output type.")}}renderPass(e,t,n,i,r){e.getClearColor(this.originalClearColor);let a=e.getClearAlpha(),s=e.autoClear;e.setRenderTarget(n),e.autoClear=!1,null!=i&&(e.setClearColor(i),e.setClearAlpha(r||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=s,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)}renderOverride(e,t,n,i,r){e.getClearColor(this.originalClearColor);let a=e.getClearAlpha(),s=e.autoClear;e.setRenderTarget(n),e.autoClear=!1,i=t.clearColor||i,r=t.clearAlpha||r,null!=i&&(e.setClearColor(i),e.setClearAlpha(r||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=s,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)}setSize(e,t){this.width=e,this.height=t,this.beautyRenderTarget.setSize(e,t),this.ssaoRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.blurRenderTarget.setSize(e,t),this.ssaoMaterial.uniforms.resolution.value.set(e,t),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.blurMaterial.uniforms.resolution.value.set(e,t)}generateSampleKernel(){let e=this.kernelSize,t=this.kernel;for(let n=0;n\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 invSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float gaussianCoefficients[KERNEL_RADIUS];\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tfloat weightSum = gaussianCoefficients[0];\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv ).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianCoefficients[i];\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset ).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset ).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}"})}getCompositeMaterial(e){return new ln({defines:{NUM_MIPS:e},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}"})}};xd.BlurDirectionX=new be(1,0),xd.BlurDirectionY=new be(0,1);var kve={uniforms:{tDiffuse:{value:null},resolution:{value:new be(1/1024,1/512)}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\tprecision highp float;\n\n\tuniform sampler2D tDiffuse;\n\n\tuniform vec2 resolution;\n\n\tvarying vec2 vUv;\n\n\t// FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro (biro@archilogic.com)\n\n\t//----------------------------------------------------------------------------------\n\t// File: es3-keplerFXAAassetsshaders/FXAA_DefaultES.frag\n\t// SDK Version: v3.00\n\t// Email: gameworks@nvidia.com\n\t// Site: http://developer.nvidia.com/\n\t//\n\t// Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.\n\t//\n\t// Redistribution and use in source and binary forms, with or without\n\t// modification, are permitted provided that the following conditions\n\t// are met:\n\t// * Redistributions of source code must retain the above copyright\n\t// notice, this list of conditions and the following disclaimer.\n\t// * Redistributions in binary form must reproduce the above copyright\n\t// notice, this list of conditions and the following disclaimer in the\n\t// documentation and/or other materials provided with the distribution.\n\t// * Neither the name of NVIDIA CORPORATION nor the names of its\n\t// contributors may be used to endorse or promote products derived\n\t// from this software without specific prior written permission.\n\t//\n\t// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY\n\t// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n\t// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n\t// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n\t// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n\t// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n\t// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t//\n\t//----------------------------------------------------------------------------------\n\n\t#ifndef FXAA_DISCARD\n\t\t\t//\n\t\t\t// Only valid for PC OpenGL currently.\n\t\t\t// Probably will not work when FXAA_GREEN_AS_LUMA = 1.\n\t\t\t//\n\t\t\t// 1 = Use discard on pixels which don't need AA.\n\t\t\t// For APIs which enable concurrent TEX+ROP from same surface.\n\t\t\t// 0 = Return unchanged color on pixels which don't need AA.\n\t\t\t//\n\t\t\t#define FXAA_DISCARD 0\n\t#endif\n\n\t/*--------------------------------------------------------------------------*/\n\t#define FxaaTexTop(t, p) texture2D(t, p, -100.0)\n\t#define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), -100.0)\n\t/*--------------------------------------------------------------------------*/\n\n\t#define NUM_SAMPLES 5\n\n\t// assumes colors have premultipliedAlpha, so that the calculated color contrast is scaled by alpha\n\tfloat contrast( vec4 a, vec4 b ) {\n\t\t\tvec4 diff = abs( a - b );\n\t\t\treturn max( max( max( diff.r, diff.g ), diff.b ), diff.a );\n\t}\n\n\t/*============================================================================\n\n\t\t\t\t\t\t\t\t\tFXAA3 QUALITY - PC\n\n\t============================================================================*/\n\n\t/*--------------------------------------------------------------------------*/\n\tvec4 FxaaPixelShader(\n\t\t\tvec2 posM,\n\t\t\tsampler2D tex,\n\t\t\tvec2 fxaaQualityRcpFrame,\n\t\t\tfloat fxaaQualityEdgeThreshold,\n\t\t\tfloat fxaaQualityinvEdgeThreshold\n\t) {\n\t\t\tvec4 rgbaM = FxaaTexTop(tex, posM);\n\t\t\tvec4 rgbaS = FxaaTexOff(tex, posM, vec2( 0.0, 1.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaE = FxaaTexOff(tex, posM, vec2( 1.0, 0.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaN = FxaaTexOff(tex, posM, vec2( 0.0,-1.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaW = FxaaTexOff(tex, posM, vec2(-1.0, 0.0), fxaaQualityRcpFrame.xy);\n\t\t\t// . S .\n\t\t\t// W M E\n\t\t\t// . N .\n\n\t\t\tbool earlyExit = max( max( max(\n\t\t\t\t\tcontrast( rgbaM, rgbaN ),\n\t\t\t\t\tcontrast( rgbaM, rgbaS ) ),\n\t\t\t\t\tcontrast( rgbaM, rgbaE ) ),\n\t\t\t\t\tcontrast( rgbaM, rgbaW ) )\n\t\t\t\t\t< fxaaQualityEdgeThreshold;\n\t\t\t// . 0 .\n\t\t\t// 0 0 0\n\t\t\t// . 0 .\n\n\t\t\t#if (FXAA_DISCARD == 1)\n\t\t\t\t\tif(earlyExit) FxaaDiscard;\n\t\t\t#else\n\t\t\t\t\tif(earlyExit) return rgbaM;\n\t\t\t#endif\n\n\t\t\tfloat contrastN = contrast( rgbaM, rgbaN );\n\t\t\tfloat contrastS = contrast( rgbaM, rgbaS );\n\t\t\tfloat contrastE = contrast( rgbaM, rgbaE );\n\t\t\tfloat contrastW = contrast( rgbaM, rgbaW );\n\n\t\t\tfloat relativeVContrast = ( contrastN + contrastS ) - ( contrastE + contrastW );\n\t\t\trelativeVContrast *= fxaaQualityinvEdgeThreshold;\n\n\t\t\tbool horzSpan = relativeVContrast > 0.;\n\t\t\t// . 1 .\n\t\t\t// 0 0 0\n\t\t\t// . 1 .\n\n\t\t\t// 45 deg edge detection and corners of objects, aka V/H contrast is too similar\n\t\t\tif( abs( relativeVContrast ) < .3 ) {\n\t\t\t\t\t// locate the edge\n\t\t\t\t\tvec2 dirToEdge;\n\t\t\t\t\tdirToEdge.x = contrastE > contrastW ? 1. : -1.;\n\t\t\t\t\tdirToEdge.y = contrastS > contrastN ? 1. : -1.;\n\t\t\t\t\t// . 2 . . 1 .\n\t\t\t\t\t// 1 0 2 ~= 0 0 1\n\t\t\t\t\t// . 1 . . 0 .\n\n\t\t\t\t\t// tap 2 pixels and see which ones are \"outside\" the edge, to\n\t\t\t\t\t// determine if the edge is vertical or horizontal\n\n\t\t\t\t\tvec4 rgbaAlongH = FxaaTexOff(tex, posM, vec2( dirToEdge.x, -dirToEdge.y ), fxaaQualityRcpFrame.xy);\n\t\t\t\t\tfloat matchAlongH = contrast( rgbaM, rgbaAlongH );\n\t\t\t\t\t// . 1 .\n\t\t\t\t\t// 0 0 1\n\t\t\t\t\t// . 0 H\n\n\t\t\t\t\tvec4 rgbaAlongV = FxaaTexOff(tex, posM, vec2( -dirToEdge.x, dirToEdge.y ), fxaaQualityRcpFrame.xy);\n\t\t\t\t\tfloat matchAlongV = contrast( rgbaM, rgbaAlongV );\n\t\t\t\t\t// V 1 .\n\t\t\t\t\t// 0 0 1\n\t\t\t\t\t// . 0 .\n\n\t\t\t\t\trelativeVContrast = matchAlongV - matchAlongH;\n\t\t\t\t\trelativeVContrast *= fxaaQualityinvEdgeThreshold;\n\n\t\t\t\t\tif( abs( relativeVContrast ) < .3 ) { // 45 deg edge\n\t\t\t\t\t\t\t// 1 1 .\n\t\t\t\t\t\t\t// 0 0 1\n\t\t\t\t\t\t\t// . 0 1\n\n\t\t\t\t\t\t\t// do a simple blur\n\t\t\t\t\t\t\treturn mix(\n\t\t\t\t\t\t\t\t\trgbaM,\n\t\t\t\t\t\t\t\t\t(rgbaN + rgbaS + rgbaE + rgbaW) * .25,\n\t\t\t\t\t\t\t\t\t.4\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\thorzSpan = relativeVContrast > 0.;\n\t\t\t}\n\n\t\t\tif(!horzSpan) rgbaN = rgbaW;\n\t\t\tif(!horzSpan) rgbaS = rgbaE;\n\t\t\t// . 0 . 1\n\t\t\t// 1 0 1 -> 0\n\t\t\t// . 0 . 1\n\n\t\t\tbool pairN = contrast( rgbaM, rgbaN ) > contrast( rgbaM, rgbaS );\n\t\t\tif(!pairN) rgbaN = rgbaS;\n\n\t\t\tvec2 offNP;\n\t\t\toffNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;\n\t\t\toffNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;\n\n\t\t\tbool doneN = false;\n\t\t\tbool doneP = false;\n\n\t\t\tfloat nDist = 0.;\n\t\t\tfloat pDist = 0.;\n\n\t\t\tvec2 posN = posM;\n\t\t\tvec2 posP = posM;\n\n\t\t\tint iterationsUsed = 0;\n\t\t\tint iterationsUsedN = 0;\n\t\t\tint iterationsUsedP = 0;\n\t\t\tfor( int i = 0; i < NUM_SAMPLES; i++ ) {\n\t\t\t\t\titerationsUsed = i;\n\n\t\t\t\t\tfloat increment = float(i + 1);\n\n\t\t\t\t\tif(!doneN) {\n\t\t\t\t\t\t\tnDist += increment;\n\t\t\t\t\t\t\tposN = posM + offNP * nDist;\n\t\t\t\t\t\t\tvec4 rgbaEndN = FxaaTexTop(tex, posN.xy);\n\t\t\t\t\t\t\tdoneN = contrast( rgbaEndN, rgbaM ) > contrast( rgbaEndN, rgbaN );\n\t\t\t\t\t\t\titerationsUsedN = i;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(!doneP) {\n\t\t\t\t\t\t\tpDist += increment;\n\t\t\t\t\t\t\tposP = posM - offNP * pDist;\n\t\t\t\t\t\t\tvec4 rgbaEndP = FxaaTexTop(tex, posP.xy);\n\t\t\t\t\t\t\tdoneP = contrast( rgbaEndP, rgbaM ) > contrast( rgbaEndP, rgbaN );\n\t\t\t\t\t\t\titerationsUsedP = i;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(doneN || doneP) break;\n\t\t\t}\n\n\n\t\t\tif ( !doneP && !doneN ) return rgbaM; // failed to find end of edge\n\n\t\t\tfloat dist = min(\n\t\t\t\t\tdoneN ? float( iterationsUsedN ) / float( NUM_SAMPLES - 1 ) : 1.,\n\t\t\t\t\tdoneP ? float( iterationsUsedP ) / float( NUM_SAMPLES - 1 ) : 1.\n\t\t\t);\n\n\t\t\t// hacky way of reduces blurriness of mostly diagonal edges\n\t\t\t// but reduces AA quality\n\t\t\tdist = pow(dist, .5);\n\n\t\t\tdist = 1. - dist;\n\n\t\t\treturn mix(\n\t\t\t\t\trgbaM,\n\t\t\t\t\trgbaN,\n\t\t\t\t\tdist * .5\n\t\t\t);\n\t}\n\n\tvoid main() {\n\t\t\tconst float edgeDetectionQuality = .2;\n\t\t\tconst float invEdgeDetectionQuality = 1. / edgeDetectionQuality;\n\n\t\t\tgl_FragColor = FxaaPixelShader(\n\t\t\t\t\tvUv,\n\t\t\t\t\ttDiffuse,\n\t\t\t\t\tresolution,\n\t\t\t\t\tedgeDetectionQuality, // [0,1] contrast needed, otherwise early discard\n\t\t\t\t\tinvEdgeDetectionQuality\n\t\t\t);\n\n\t}\n\t"},o2=class{constructor(){this.vertexShader="\n varying vec2 vUv;\n void main( void ) {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }",this.fragmentShader="\n uniform vec3 keyColor;\n uniform float similarity;\n uniform float smoothness;\n varying vec2 vUv;\n uniform sampler2D map;\n void main() {\n vec4 videoColor = texture2D(map, vUv);\n\n float Y1 = 0.299 * keyColor.r + 0.587 * keyColor.g + 0.114 * keyColor.b;\n float Cr1 = keyColor.r - Y1;\n float Cb1 = keyColor.b - Y1;\n \n float Y2 = 0.299 * videoColor.r + 0.587 * videoColor.g + 0.114 * videoColor.b;\n float Cr2 = videoColor.r - Y2; \n float Cb2 = videoColor.b - Y2; \n \n float blend = smoothstep(similarity, similarity + smoothness, distance(vec2(Cr2, Cb2), vec2(Cr1, Cb1)));\n gl_FragColor = vec4(videoColor.rgb, videoColor.a * blend); \n }";let e=document.createElement("video");this.webcam=e,navigator.mediaDevices.getUserMedia({video:{width:600,height:400}}).then((t=>{e.srcObject=t,e.onloadedmetadata=()=>{e.setAttribute("autoplay","true"),e.setAttribute("playsinline","true"),e.play()}})).catch((function(e){alert(e.name+": "+e.message)})),this.webcamCanvas=document.createElement("canvas");let t=this.webcamCanvas.getContext("2d");this.canvasCtx=t,t.fillStyle="#000000",t.fillRect(0,0,this.webcamCanvas.width,this.webcamCanvas.height);let n=new qr(this.webcamCanvas);this.webcamTexture=n,n.minFilter=Ir,n.magFilter=Ir,this.shaderMaterial=new ln({transparent:!0,uniforms:{map:{value:n},keyColor:{value:[0,1,0]},similarity:{value:.3},smoothness:{value:0}},vertexShader:this.vertexShader,fragmentShader:this.fragmentShader})}getShaderMaterial(){return this.shaderMaterial}createWebCamPlane(e=5,t=4){let n=new ui(e,t);return new xt(n,this.shaderMaterial)}animate(){this.webcam.readyState===this.webcam.HAVE_ENOUGH_DATA&&(this.canvasCtx.drawImage(this.webcam,0,0,this.webcamCanvas.width,this.webcamCanvas.height),this.webcamTexture.needsUpdate=!0)}},Za=new O(1,0,0),np=new O(0,1,0),rp=new O(0,0,1),Fve=new O(0,1,0),O_=new et,qy=2,Xc=class extends er{constructor(e=Za){super(),this.redMaterial=new on({color:16711680,depthTest:!1}),this.greenMaterial=new on({color:65280,depthTest:!1}),this.blueMaterial=new on({color:255,depthTest:!1}),this.highlightMaterial=new on({color:16776960,depthTest:!1}),this.pickableMaterial=new on({color:9807270,depthTest:!1}),this.initIgnoreClipMaterial(),this.initOrUpdateByAxis(e)}initIgnoreClipMaterial(){[this.redMaterial,this.greenMaterial,this.blueMaterial,this.highlightMaterial,this.pickableMaterial].forEach((e=>{e.onBeforeCompile=function(e,t){e.fragmentShader=e.fragmentShader.replace("#include ","").replace("#include ",""),e.vertexShader=e.vertexShader.replace("#include ","").replace("#include ","")}}))}setDirection(e){let t=new dr;t.setFromUnitVectors(Za,e),this.applyQuaternion(t)}initOrUpdateByAxis(e){this.clear(),[{actionType:"TranslateX",direction:Za,material:this.redMaterial},{actionType:"TranslateY",direction:np,material:this.greenMaterial},{actionType:"TranslateZ",direction:rp,material:this.blueMaterial}].forEach((t=>{let{actionType:n,direction:i,material:r}=t,a=this.createTranslateGizmo(n,i,qy,0===i.angleTo(e)?r:this.pickableMaterial);this.add(a)})),[{actionType:"RotateX",direction:Za,material:this.redMaterial,degree:90},{actionType:"RotateY",direction:np,material:this.greenMaterial,degree:90},{actionType:"RotateZ",direction:rp,material:this.blueMaterial,degree:90}].forEach((t=>{let{actionType:n,direction:i,material:r,degree:a}=t;if(0!==i.angleTo(e)){let e=this.createRotateGizmo(n,i,qy,r,a);this.add(e)}})),this.createSphere(1,this.pickableMaterial),this.createSphere(1,this.pickableMaterial,new O(12*qy,0,0)),this.createSphere(1,this.pickableMaterial,new O(0,12*qy,0)),this.createSphere(1,this.pickableMaterial,new O(0,0,12*qy))}createTranslateGizmo(e,t,n,i){let r=t.angleTo(Fve),a=Fve.clone().cross(t);O_.makeRotationAxis(a,r);let s=new wc(n/5,n/5,20*n),o=10*n;s.translate(0,o,0),s.applyMatrix4(O_);let l=new wc(0,n,3*n),h=2*o;l.translate(0,h,0),l.applyMatrix4(O_);let c=Ni([l,s]),u=new xt(c,i);return u.layers.enable(12),u.userData.actionType=e,i===this.pickableMaterial&&u.layers.disable(12),u}createRotateGizmo(e,t,n,i,r){let a=new O(0,0,1),s=t.clone().cross(a),o=t.angleTo(a);O_.makeRotationAxis(s,o);let l=new uf(12*n,n/5,24,36,An.degToRad(r));l.applyMatrix4(O_);let h=new xt(l,i);return h.layers.enable(12),h.userData.actionType=e,h}createSphere(e,t,n=new O){let i=new za(e,32,16),r=new xt(i,t);r.position.copy(n),r.layers.disable(12),this.add(r)}setActiveAxis(e){this.initOrUpdateByAxis(e)}createHoverRotateObjectByAxis(e){let t=Za;switch(e){case"RotateX":t=Za;break;case"RotateY":t=np;break;case"RotateZ":t=rp}return this.createRotateGizmo("",t,qy,this.highlightMaterial,360)}setActive(e,t){var n;let i=t.userData.actionType;["RotateX","RotateY","RotateZ"].includes(i)?e?(this.hoverObject=this.createHoverRotateObjectByAxis(i),this.add(this.hoverObject),t.visible=!1):(null==(n=this.hoverObject)||n.removeFromParent(),t.visible=!0,this.hoverObject=void 0):e?(this.originalMaterial=t.material,t.material=this.highlightMaterial):this.originalMaterial&&(t.material=this.originalMaterial)}adjustSize(e){let t=new O;this.getWorldPosition(t);let n=e.position,i=1;e instanceof Ur?i=(e.top-e.bottom)/e.zoom:e instanceof ur&&(i=t.distanceTo(n)*Math.min(1.9*Math.tan(Math.PI*e.fov/360)/e.zoom,7)),this.scale.set(1,1,1).multiplyScalar(i/180)}},ip=class{constructor(e,t){if(this.raycaster=new ia,this.sectionBox=new Ot,this.mouseDown=!1,this.lastWorldPos=new O,this.mouseMoved=!1,this.dragStarted=!1,this.refrencePlane=new Gr,this.active=!1,this.showSectionPlane=!1,this.mousedown=e=>{if(0===e.button){if(Dn.isMobile){let t=this.getIntersections(e);t?(this.inputManager.setCursor("grab"),this.selectedObject=t.object,this.activateSelectedObject(!0),this.enableDefaultControl(!1),this.viewer.enableRender()):this.enableDefaultControl(!0)}this.camera&&this.selectedObject&&(this.inputManager.setCursor("grabbing"),this.mouseDown=!0)}},this.mousemove=e=>{if(this.dragStarted)this.updateRaycasterByMouse(e),this.inputManager.setCursor("grabbing"),this.onDragMove(e);else{this.activateSelectedObject(!1);let t=this.getIntersections(e);t?(this.inputManager.setCursor("grab"),this.selectedObject=t.object,this.activateSelectedObject(!0),this.mouseDown&&(this.dragStarted||(this.dragStarted=!0,this.enableDefaultControl(!1),this.onDragStart(e)))):(this.inputManager.setCursor("default"),this.selectedObject=void 0)}this.viewer.enableRender()},this.mouseup=e=>{0===e.button&&(this.activateSelectedObject(!1),this.mouseDown&&this.dragStarted&&(this.inputManager.setCursor("grab"),this.onDragEnd(e),this.dragStarted=!1,this.enableDefaultControl(!0)),this.mouseDown=!1,this.selectedObject=void 0)},this.keydown=e=>{"Escape"===e.code&&this.deactivate()},!(e.camera&&e.renderer&&e.controls&&e.scene))throw new Error("Invalid bimViewer!");this.viewer=e,this.inputManager=t,this.scene=e.scene,this.renderer=e.renderer,this.raycaster.layers.set(12)}get canvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get isActive(){return!!this.active}get camera(){return this.viewer.camera}get controls(){return this.viewer.controls}setGlobalClippingEnabled(e){if(!this.clipPlanes)return;let t=e?this.clipPlanes:[];this.renderer.localClippingEnabled=e,this.renderer.clippingPlanes=t}setObjectClippingEnabled(e){var t,n;if(!this.clipPlanes||null==(t=this.clippingObjetIds)||!t.length)return;this.renderer.localClippingEnabled=e;let i=e?this.clipPlanes:[];null==(n=this.clippingObjetIds)||n.forEach((e=>{let t=this.scene.getObjectById(e);t&&t.traverse((e=>{e.material&&(Array.isArray(e.material)?e.material.forEach((e=>{e.clippingPlanes=i,e.clipIntersection=!1})):e.material&&(e.material.clippingPlanes=i,e.material.clipIntersection=!1))}))}))}clearClippingObjectIds(){this.setObjectClippingEnabled(!1),this.clippingObjetIds=[]}setClippingEnabled(e){var t;null!=(t=this.clippingObjetIds)&&t.length?(this.setGlobalClippingEnabled(!1),this.setObjectClippingEnabled(e)):this.setGlobalClippingEnabled(e)}activate(){if(this.inputManager.addEventListener("pointerdown",this.mousedown),this.inputManager.addEventListener("pointermove",this.mousemove),this.inputManager.addEventListener("pointerup",this.mouseup),this.inputManager.addEventListener("keydown",this.keydown),this.sectionBox.isEmpty()){let e=this.viewer.getBBox();e&&this.sectionBox.copy(e)}this.active=!0}deactivate(){var e;this.inputManager.removeEventListener("pointerdown",this.mousedown),this.inputManager.removeEventListener("pointermove",this.mousemove),this.inputManager.removeEventListener("pointerup",this.mouseup),this.inputManager.removeEventListener("keydown",this.keydown),null==(e=this.selectedObject)||e.removeFromParent(),this.selectedObject=void 0,this.dragStarted=!1,this.active=!1,this.inputManager.setCursor("default"),this.enableDefaultControl(!0)}enableDefaultControl(e){this.controls.enableRotate=e,this.controls.azimuthRotateSpeed=Number(e),this.controls.polarRotateSpeed=Number(e)}getIntersections(e){if(!this.raycaster)return;this.updateRaycasterByMouse(e);let t=this.raycaster.intersectObjects(this.getIntersectObjects())||[];return t.find((e=>e.object&&e.object.parent instanceof Xc))||t[0]}updateRaycasterByMouse(e){if(!this.raycaster)return;let t=new be(e.x,e.y),n=cn.screenPoint2NdcPoint(t,this.camera,this.canvas);this.raycaster.setFromCamera(n,this.camera)}destroy(){this.deactivate()}},Bve=new Ot,Uve=new dr,l2=class extends xt{constructor(e,t){super(),this.vertices=[],this.layers.enable(12),this.actionType=e,this.geometry=new Dt,this.vertices=t,this.geometry.setFromPoints(t),this.geometry.setIndex([0,1,2,0,2,3]),this.material=new on({depthTest:!1,color:l2.normalPlaneColor,transparent:!0,opacity:.01,side:Sr}),this.createIgnoreClipMaterials(this.material),this.geometry.computeVertexNormals(),this.edge=this.createEdge(t),this.add(this.edge)}createIgnoreClipMaterials(e){e.onBeforeCompile=function(e,t){e.fragmentShader=e.fragmentShader.replace("#include ","").replace("#include ",""),e.vertexShader=e.vertexShader.replace("#include ","").replace("#include ","")}}createEdge(e){let t=new Dt;t.setFromPoints(e),t.setIndex([0,1,1,2,2,3,3,0]);let n=new Gn({color:l2.normalLineColor});return this.createIgnoreClipMaterials(n),new hr(t,n)}update(e){this.geometry.setFromPoints(e),this.geometry.computeBoundingSphere(),this.geometry.computeVertexNormals(),this.edge.geometry.setFromPoints(e),this.vertices=e}rotatePlane(e,t){let n=this.getPlaneCenter();Uve.setFromAxisAngle(e,t),this.vertices=this.vertices.map((e=>e.sub(n).applyQuaternion(Uve).add(n))),this.update(this.vertices)}setDirection(e){let t=new dr;t.setFromUnitVectors(Za,e);let n=this.getPlaneCenter();this.vertices=this.vertices.map((e=>e.sub(n).applyQuaternion(t).add(n))),this.update(this.vertices)}getPlaneNormal(){let[e,t,n]=this.vertices,i=new O;return Zr.getNormal(e,t,n,i),i}setActive(e){this.material.opacity=e?.1:.01}getPlaneCenter(){Bve.setFromPoints(this.vertices);let e=new O;return Bve.getCenter(e),e}},Li=l2;Li.normalPlaneColor=new ct(0,.855,.718),Li.activePlaneColor=new ct(1,1,0),Li.normalLineColor=16777215;var Hve=(e=>(e.X="X",e.Y="Y",e.Z="Z",e))(Hve||{}),c2=class extends ip{constructor(e,t){super(e,t),this.activeAxis="X",this.center=new O,this.axisInfoMap={X:{normal:new O(1,0,0)},Y:{normal:new O(0,1,0)},Z:{normal:new O(0,0,1)}},this.viewer.addEventListener("AfterRender",(()=>{var e;this.isActive&&(null==(e=this.gizmo)||e.adjustSize(this.camera))}))}activate(){super.activate(),this.sectionBox&&this.sectionBox.getCenter(this.center),this.setActiveAxis("X")}deactivate(){var e,t;super.deactivate(),null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.planeMesh=void 0,this.gizmo=void 0}resetSection(){var e,t;null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.setClippingEnabled(!1),this.planeMesh=void 0,this.gizmo=void 0,this.setActiveAxis("X")}setActiveAxis(e){this.activeAxis=e,this.initOrUpdateGizmo(),this.initOrUpdateSectionPlane(),this.initOrUpdateClipPlane(),this.setClippingEnabled(!0),this.viewer.enableRender()}setSectionVisible(e){this.gizmo&&this.planeMesh&&(this.gizmo.visible=e,this.planeMesh.visible=e),this.showSectionPlane=e,this.viewer.enableRender()}initOrUpdateClipPlane(){switch(this.activeAxis){case"X":this.clipPlane=new Gr(new O(-1,0,0),this.center.x);break;case"Y":this.clipPlane=new Gr(new O(0,-1,0),this.center.y);break;case"Z":this.clipPlane=new Gr(new O(0,0,-1),this.center.z)}this.clipPlane&&(this.clipPlanes=[this.clipPlane])}initOrUpdateSectionPlane(){var e;let t=new O;this.sectionBox.getSize(t);let n=t.length(),i=this.center,r=(new Ot).setFromCenterAndSize(i,new O(n,n,n)),{min:a,max:s}=r;switch(null==(e=this.planeMesh)||e.removeFromParent(),this.activeAxis){case"X":this.planeMesh=new Li("X",[new O(i.x,s.y,a.z),new O(i.x,s.y,s.z),new O(i.x,a.y,s.z),new O(i.x,a.y,a.z)]);break;case"Y":this.planeMesh=new Li("Y",[new O(s.x,i.y,a.z),new O(a.x,i.y,a.z),new O(a.x,i.y,s.z),new O(s.x,i.y,s.z)]);break;case"Z":this.planeMesh=new Li("Z",[new O(s.x,s.y,i.z),new O(a.x,s.y,i.z),new O(a.x,a.y,i.z),new O(s.x,a.y,i.z)])}this.planeMesh&&this.scene.add(this.planeMesh),this.viewer.enableRender()}initOrUpdateGizmo(){var e,t;null==(e=this.gizmo)||e.removeFromParent();let n=this.axisInfoMap[this.activeAxis].normal;this.gizmo=new Xc,this.gizmo.setDirection(n),this.sectionBox.getCenter(this.gizmo.position),null==(t=this.scene)||t.add(this.gizmo)}onDragStart(e){var t;if(this.selectedObject instanceof Li)return;se.info("[AxisPlaneSection] onDragStart:",e);let n=new O;this.sectionBox.getCenter(n),this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),n),null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,this.lastWorldPos)}onDragMove(e){var t,n,i;if(!this.lastWorldPos||!this.selectedObject||!this.clipPlane||!this.planeMesh||!this.gizmo||this.selectedObject&&this.selectedObject instanceof Li)return;let r=new O;null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,r);let a=this.selectedObject.userData.actionType,s=(new O).subVectors(this.lastWorldPos,this.center).normalize(),o=(new O).subVectors(r,this.center).normalize(),l=(new O).subVectors(r,this.lastWorldPos).projectOnVector(Za.clone().applyQuaternion(this.gizmo.quaternion)),h=s.angleTo(o),c=(new O).crossVectors(s,o),u=new O;this.sectionBox.getSize(u);let d,p=Math.max(u.x,u.y,u.z);switch(a){case"TranslateX":case"TranslateY":case"TranslateZ":d=(new O).addVectors(this.gizmo.position,l),this.sectionBox.clone().setFromCenterAndSize(this.center,new O(p,p,p)).containsPoint(d)&&(null==(n=this.gizmo)||n.position.add(l),null==(i=this.planeMesh)||i.position.add(l));break;case"RotateX":{let e=Za.clone().applyQuaternion(this.gizmo.quaternion);c.dot(e)<0&&(h=-h),this.gizmo.rotateX(h),this.planeMesh.rotatePlane(e,h)}break;case"RotateY":{let e=np.clone().applyQuaternion(this.gizmo.quaternion);c.dot(e)<0&&(h=-h),this.gizmo.rotateY(h),this.planeMesh.rotatePlane(e,h)}break;case"RotateZ":{let e=rp.clone().applyQuaternion(this.gizmo.quaternion);c.dot(e)<0&&(h=-h),this.gizmo.rotateZ(h),this.planeMesh.rotatePlane(e,h)}}this.clipPlane.setFromNormalAndCoplanarPoint(this.planeMesh.getPlaneNormal().negate(),this.gizmo.position),this.lastWorldPos=r}onDragEnd(e){this.selectedObject instanceof Li||se.info("[AxisPlaneSection] onDragEnd:",e)}getIntersectObjects(){return this.planeMesh&&this.gizmo?[this.planeMesh,this.gizmo]:[]}activateSelectedObject(e){this.selectedObject&&(this.selectedObject instanceof Li?this.selectedObject.setActive(e):this.selectedObject.parent instanceof Xc&&this.selectedObject.parent.setActive(e,this.selectedObject))}},Bvt=new O(1,0,0),Uvt=new O(0,1,0),Hvt=new O(0,0,1),u2=class extends ip{constructor(e,t){super(e,t),this.sectionRange={}}activate(){super.activate();let e=this.viewer.getBBox();if(e){let{min:t,max:n}=e;this.sectionRange={x:[t.x,n.x],y:[t.y,n.y],z:[t.z,n.z]}}this.initOrUpdateClipPlane(),this.initOrUpdateVertices(),this.initOrUpdateSectionPlane(),this.setClippingEnabled(!0)}deactivate(){super.deactivate(),this.planesMesh&&this.scene.remove(...this.planesMesh),this.planesMesh=void 0}initOrUpdateVertices(){if(!this.sectionBox)return;let{min:e,max:t}=this.sectionBox;this.vertices=[new O(t.x,t.y,t.z),new O(e.x,t.y,t.z),new O(e.x,e.y,t.z),new O(t.x,e.y,t.z),new O(t.x,t.y,e.z),new O(e.x,t.y,e.z),new O(e.x,e.y,e.z),new O(t.x,e.y,e.z)]}initOrUpdateClipPlane(){let{min:e,max:t}=this.sectionBox;this.clipPlanes?(this.clipPlanes[0].constant=t.x,this.clipPlanes[1].constant=-e.x,this.clipPlanes[2].constant=t.y,this.clipPlanes[3].constant=-e.y,this.clipPlanes[4].constant=t.z,this.clipPlanes[5].constant=-e.z):this.clipPlanes=[new Gr(new O(-1,0,0),t.x),new Gr(new O(1,0,0),-e.x),new Gr(new O(0,-1,0),t.y),new Gr(new O(0,1,0),-e.y),new Gr(new O(0,0,-1),t.z),new Gr(new O(0,0,1),-e.z)]}initOrUpdateSectionPlane(){let e=this.vertices;if(e){if(this.planesMesh)this.planesMesh[0].update([e[4],e[0],e[3],e[7]]),this.planesMesh[1].update([e[1],e[5],e[6],e[2]]),this.planesMesh[2].update([e[4],e[5],e[1],e[0]]),this.planesMesh[3].update([e[6],e[7],e[3],e[2]]),this.planesMesh[4].update([e[0],e[1],e[2],e[3]]),this.planesMesh[5].update([e[5],e[4],e[7],e[6]]);else{let t=[new Li("Right",[e[4],e[0],e[3],e[7]]),new Li("Left",[e[1],e[5],e[6],e[2]]),new Li("Top",[e[4],e[5],e[1],e[0]]),new Li("Bottom",[e[6],e[7],e[3],e[2]]),new Li("Front",[e[0],e[1],e[2],e[3]]),new Li("Back",[e[5],e[4],e[7],e[6]])];this.planesMesh=t,this.scene.add(...t)}this.viewer.enableRender()}}activateSelectedObject(e){var t;null==(t=this.selectedObject)||t.setActive(e)}onDragStart(e){var t;this.selectedObject&&(se.info("[ObjectsBoxSection] onDragStart:",e),this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),this.selectedObject.getPlaneCenter()),null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,this.lastWorldPos))}onDragMove(e){var t;if(!this.lastWorldPos||!this.selectedObject)return;let n=new O;null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,n);let i=this.selectedObject.actionType;switch(i){case"Top":case"Bottom":this.dragTranslateSectionPlane(Uvt,this.lastWorldPos,n,i);break;case"Left":case"Right":this.dragTranslateSectionPlane(Bvt,this.lastWorldPos,n,i);break;case"Front":case"Back":this.dragTranslateSectionPlane(Hvt,this.lastWorldPos,n,i)}this.lastWorldPos=n}onDragEnd(e){se.info("[ObjectsBoxSection] onDragEnd:",e)}dragTranslateSectionPlane(e,t,n,i){let r,{min:a,max:s}=this.sectionBox,o=n.clone().sub(t).projectOnVector(e);switch(i){case"Top":r=s.y+o.y,this.isInRange(r,this.sectionRange.y)&&(s.y=r);break;case"Bottom":r=a.y+o.y,this.isInRange(r,this.sectionRange.y)&&(a.y=r);break;case"Left":r=a.x+o.x,this.isInRange(r,this.sectionRange.x)&&(a.x=r);break;case"Right":r=s.x+o.x,this.isInRange(r,this.sectionRange.x)&&(s.x=r);break;case"Front":r=s.z+o.z,this.isInRange(r,this.sectionRange.z)&&(s.z=r);break;case"Back":r=a.z+o.z,this.isInRange(r,this.sectionRange.z)&&(a.z=r)}this.initOrUpdateVertices(),this.initOrUpdateSectionPlane(),this.initOrUpdateClipPlane(),this.viewer.enableRender()}isInRange(e,t){return e>t[0]&&et.visible=e)),this.showSectionPlane=e,this.viewer.enableRender()}},h2=class extends ip{constructor(e,t){super(e,t),this.mousedown=e=>{var t;if(0===e.button){if(!this.faceInfo){let n=this.pickFace(e);if(n&&n.face){let e=n.face.normal,i=new Ln;e.applyNormalMatrix(i.getNormalMatrix(n.object.matrixWorld)),this.faceInfo={position:n.point,normal:e.normalize()},this.setSection(),null==(t=this.tooltip)||t.hide()}return}if(Dn.isMobile){let t=this.getIntersections(e);t&&(this.inputManager.setCursor("grab"),this.selectedObject=t.object,this.activateSelectedObject(!0),this.enableDefaultControl(!1),this.viewer.enableRender())}this.camera&&this.selectedObject&&(this.mouseDown=!0)}},this.mousemove=e=>{var t,n,i;if(this.faceInfo){if(this.dragStarted)this.updateRaycasterByMouse(e),this.onDragMove(e);else{this.activateSelectedObject(!1);let t=this.getIntersections(e);t?(this.selectedObject=t.object,this.activateSelectedObject(!0),this.mouseDown&&(null==(i=this.selectedObject)?void 0:i.parent)instanceof Xc&&(this.dragStarted||(this.dragStarted=!0,this.enableDefaultControl(!1),this.onDragStart(e)))):this.selectedObject=void 0}this.viewer.enableRender()}else this.pickFace(e)?null==(t=this.tooltip)||t.show():null==(n=this.tooltip)||n.hide()},this.center=new O,this.viewer.addEventListener("AfterRender",(()=>{var e;this.isActive&&(null==(e=this.gizmo)||e.adjustSize(this.camera))}))}activate(){super.activate(),this.sectionBox.getCenter(this.center),this.tooltip=new Yl("pick-section-plane",eh("Tooltip.section"),{parentNode:this.viewer.widgetContainer,followPointer:!0})}deactivate(){var e,t,n;super.deactivate(),null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.planeMesh=void 0,this.gizmo=void 0,this.faceInfo=void 0,null==(n=this.tooltip)||n.destroy(),this.tooltip=void 0}setSection(){this.initOrUpdateGizmo(),this.initOrUpdateSectionPlane(),this.initOrUpdateClipPlane(),this.setClippingEnabled(!0),this.viewer.enableRender()}resetSection(){var e,t,n;null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.setClippingEnabled(!1),this.planeMesh=void 0,this.gizmo=void 0,this.faceInfo=void 0,null==(n=this.tooltip)||n.show(),this.viewer.enableRender()}setSectionVisible(e){this.gizmo&&this.planeMesh&&(this.gizmo.visible=e,this.planeMesh.visible=e),this.showSectionPlane=e,this.viewer.enableRender()}initOrUpdateClipPlane(){if(!this.faceInfo)return;let{normal:e,position:t}=this.faceInfo;this.clipPlane=(new Gr).setFromNormalAndCoplanarPoint(e.clone().negate(),t),this.clipPlane&&(this.clipPlanes=[this.clipPlane])}initOrUpdateSectionPlane(){var e;if(!this.faceInfo)return;let{normal:t,position:n}=this.faceInfo,i=new O;this.sectionBox.getSize(i);let r=i.length(),a=n,s=(new Ot).setFromCenterAndSize(a,new O(r,r,r)),{min:o,max:l}=s;null==(e=this.planeMesh)||e.removeFromParent(),this.planeMesh=new Li("Plane",[new O(a.x,l.y,o.z),new O(a.x,l.y,l.z),new O(a.x,o.y,l.z),new O(a.x,o.y,o.z)]),this.planeMesh.setDirection(t),this.planeMesh&&this.scene.add(this.planeMesh),this.viewer.enableRender()}initOrUpdateGizmo(){var e,t;if(!this.faceInfo)return;null==(e=this.gizmo)||e.removeFromParent();let{normal:n,position:i}=this.faceInfo;this.gizmo=new Xc,this.gizmo.setDirection(n),this.gizmo.position.copy(i),null==(t=this.scene)||t.add(this.gizmo)}onDragStart(e){var t;if(!this.faceInfo||this.selectedObject instanceof Li)return;se.info("[PickPlaneSection] onDragStart:",e);let{position:n}=this.faceInfo;this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),n),null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,this.lastWorldPos)}onDragMove(e){var t,n,i;if(!this.lastWorldPos||!this.selectedObject||!this.clipPlane||!this.planeMesh||!this.gizmo||!this.faceInfo||this.selectedObject&&this.selectedObject instanceof Li)return;let r=new O;null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,r);let a=this.selectedObject.userData.actionType,{position:s}=this.faceInfo,o=(new O).subVectors(this.lastWorldPos,s).normalize(),l=(new O).subVectors(r,s).normalize(),h=(new O).subVectors(r,this.lastWorldPos).projectOnVector(Za.clone().applyQuaternion(this.gizmo.quaternion)),c=o.angleTo(l),u=(new O).crossVectors(o,l),d=new O;this.sectionBox.getSize(d);let p,f=Math.max(d.x,d.y,d.z);switch(a){case"TranslateX":case"TranslateY":case"TranslateZ":p=(new O).addVectors(this.gizmo.position,h),this.sectionBox.clone().setFromCenterAndSize(this.center,new O(f,f,f)).containsPoint(p)&&(null==(n=this.gizmo)||n.position.add(h),null==(i=this.planeMesh)||i.position.add(h));break;case"RotateX":{let e=Za.clone().applyQuaternion(this.gizmo.quaternion);u.dot(e)<0&&(c=-c),this.gizmo.rotateX(c),this.planeMesh.rotatePlane(e,c)}break;case"RotateY":{let e=np.clone().applyQuaternion(this.gizmo.quaternion);u.dot(e)<0&&(c=-c),this.gizmo.rotateY(c),this.planeMesh.rotatePlane(e,c)}break;case"RotateZ":{let e=rp.clone().applyQuaternion(this.gizmo.quaternion);u.dot(e)<0&&(c=-c),this.gizmo.rotateZ(c),this.planeMesh.rotatePlane(e,c)}}this.clipPlane.setFromNormalAndCoplanarPoint(this.planeMesh.getPlaneNormal().negate(),this.gizmo.position),this.lastWorldPos=r}onDragEnd(e){this.selectedObject instanceof Li||se.info("[PickPlaneSection] onDragEnd:",e)}getIntersectObjects(){return this.planeMesh&&this.gizmo?[this.planeMesh,this.gizmo]:[]}activateSelectedObject(e){this.selectedObject&&(this.selectedObject instanceof Li?this.selectedObject.setActive(e):this.selectedObject.parent instanceof Xc&&this.selectedObject.parent.setActive(e,this.selectedObject))}pickFace(e){if(!this.raycaster)return;let t=new be(e.x,e.y),n=cn.screenPoint2NdcPoint(t,this.camera,this.canvas);this.raycaster.setFromCamera(n,this.camera);let i=[];return this.viewer.loadedModels.forEach((e=>{let t=e.object;t&&t.visible&&i.push(t)})),(this.raycaster.intersectObjects(this.viewer.getRaycastableObjectsByMouse(e))||[]).find((e=>{let t=e.object;return t.visible&&t instanceof xt}))}},d2=class extends fr{constructor(e){super(e,{id:"SectionPlugin"}),this.sections={},this.viewer=e;let t=e.getInputManager();t&&(this.sections.ObjectsBoxSection=new u2(e,t),this.sections.AxisPlaneSection=new c2(e,t),this.sections.PickPlaneSection=new h2(e,t))}get raycaster(){return this.viewer.getRaycaster()}activate(e){this.activeSectionType&&this.deactivate(),this.activeSectionType=e,this.sections[e].activate()}deactivate(){let e=this.activeSectionType;e&&this.sections[e].deactivate(),this.activeSectionType=void 0}resetSection(){}isActive(){let e=this.activeSectionType;return e?this.sections[e].isActive:!!this.getActiveSectionType()}getActiveSectionType(){return this.activeSectionType}getActiveSection(){if(this.activeSectionType)return this.sections[this.activeSectionType]}setClippingObjectIds(e){for(let t in this.sections)this.setClippingObjectIdsForType(t,e)}setClippingObjectIdsForType(e,t){this.sections[e].clearClippingObjectIds(),null!=t&&t.length&&(this.sections[e].clippingObjetIds=t,this.sections[e].setClippingEnabled(!0))}destroy(){super.destroy(),this.deactivate(),this.activeSectionType=void 0}},Vve=new O,zve=new vr,Gve=class extends Zf{constructor(e,t){var n;super(e),this.name="BimViewer",this.timer=Date.now(),this.enableSelection=!0,this.selectedObject=void 0,this.loadedModels=[],this.composerRenderEnabled=!0,this.composerEnabled=!1,this.savedMaterialsForOpacity=[],this.raf=new qf,this.clock=new mo,this.renderEnabled=!0,this.enableModelLevelFrustumCulling=!0,this.isFrustumInsectChecking=!1,this.settings=Gv,this.twoDModelCount=0,this.enableFastOperation=!0,this.edgesVisible=!0,this.distanceCullingFactor=150,this.operationTimeoutMs=500,this.bbox=new Ot,this.onResize=()=>{this.viewerContainer&&this.viewerContainer.parentElement&&this.resize(this.viewerContainer.parentElement.clientWidth,this.viewerContainer.parentElement.clientHeight)},this.onKeyDown=e=>{let t=this.camera,n=this.controls;if(!t||!n)return;let i=this.settings.keyboard.sensitivity||3,r=n.getPosition(new O),a=n.getTarget(new O),s=a.clone();if("ArrowLeft"===e.code||"ArrowRight"===e.code){let t=Math.PI*i/180;"ArrowLeft"===e.code&&(t=-t),s.x=(a.x-r.x)*Math.cos(t)-(a.z-r.z)*Math.sin(t)+r.x,s.z=(a.z-r.z)*Math.cos(t)+(a.x-r.x)*Math.sin(t)+r.z,n.setLookAt(r.x,r.y,r.z,s.x,s.y,s.z,!0)}else if("ArrowUp"===e.code||"ArrowDown"===e.code){let t=Math.PI*i/180,o=new O(a.x-r.x,a.y-r.y,a.z-r.z).length(),l=a.y-r.y;"ArrowDown"===e.code&&(t=-t);let h=Math.asin(l/o)+t;if(h<-Math.PI/2||h>Math.PI/2)return;let c=Math.sin(h)*o;s.y=a.y+(c-l),n.setLookAt(r.x,r.y,r.z,s.x,s.y,s.z,!0)}else if("KeyW"===e.code){let e=.01*i,s=r.distanceTo(a);if(s<10*t.near){let e=n.getTarget(new O).lerp(r,-t.near/s);n.setTarget(e.x,e.y,e.z)}r.lerp(a,e),n.setLookAt(r.x,r.y,r.z,a.x,a.y,a.z)}else if("KeyS"===e.code){let e=.01*i;r.lerp(a,-e),n.setLookAt(r.x,r.y,r.z,a.x,a.y,a.z,!1)}else"KeyF"===e.code?this.flyToSelectedObject():"KeyY"===e.code?this.flyTo(r,a.clone().setY(r.y)):"KeyR"===e.code&&this.flyToRandomObject();this.enableRender()},this.enableRender=(e=1e3)=>{this.renderEnabled=!0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.timeoutSymbol=this.raf.setTimeout((()=>{this.renderEnabled=!1,this.composerRenderEnabled=!0}),e))},this.applyOptionsAndAddToScene=(e,t,n,i)=>ft(this,null,(function*(){let r=Mt.getUpdateProgressFunc(i),a=Mt.getUpdateSubProgressFunc(70,90,i);r(0),se.info(`[Viewer] '${e}' is loaded in ${(Date.now()-this.timer)/1e3}s, adding to scene...`),this.timer=Date.now();let s,o=n.src&&n.src.toLowerCase();if(o&&o.endsWith("dxf")&&this.twoDModelCount++,n.matrix&&16===n.matrix.length){let e=new et;e.elements=n.matrix,t.applyMatrix4(e)}if(t.matrixAutoUpdate=!1,t.updateMatrix(),t.traverse((e=>{e.matrixAutoUpdate&&(e.matrixAutoUpdate=!1,e.updateMatrix())})),n.merge&&this.merge(t),r(50),n.merge){let e=Date.now();Yf.createMeshBvhAsync([t],{saveOriginalIndex:!0}),se.info(`[Viewer] Creates mesh bvh cost ${(Date.now()-e)/1e3}s`)}r(60),t.traverse((e=>{e.isMesh&&(e.castShadow=!0,e.receiveShadow=!0,e.userData.surfaceArea=this.calculateMeshSurfaceArea(e)),e.geometry&&e.layers.enableAll(),e instanceof Ws&&(e.visible=!1)})),r(70),n.edges&&(s=yield Hn.createOutlines(t,void 0,a)),r(90);let l={modelId:this.getUniqueModelId(n.modelId||n.src),object:t,edges:s};this.addModel(l),r(100)})),this.onAnchorPointerDown=e=>{var t,n;null==(t=this.controls)||!t.enableRotate||!this.renderer||null!=(n=this.sectionPlugin)&&n.isActive()||this.setOrbitPoint(e)},this.onAnchorPointerUp=()=>{this.anchor&&(this.anchor.className="anchor"),!this.viewerContainer||!this.camera||this.controls},this.onOperation=()=>{let e=this.renderer;if(!this.enableFastOperation||!e)return;let t=e=>{let t=this.renderer;void 0!==t.distanceCullingFactor&&(t.distanceCullingFactor=e)},n=e=>{this.loadedModels.forEach((t=>{t.edges&&t.edges.forEach((t=>t.visible=e))})),this.edgesVisible=e},i=e=>{let t=this.directionalLight;t&&(t.castShadow=e)};t(this.distanceCullingFactor),this.edgesVisible&&n(!1),i(!1),this.operationTimeout&&clearTimeout(this.operationTimeout),this.operationTimeout=setTimeout((()=>{this.operationTimeout=void 0,i(!0),n(!0),t(0),this.enableRender()}),this.operationTimeoutMs)},this.viewerCfg=Tr(Tr({},fde),e),se.info("[Viewer]","viewerCfg:",this.viewerCfg),this.settings=Gv,this.cameraCfg=t,this.cameraCfg&&this.cameraCfg.near&&(this.settings.camera.near=this.cameraCfg.near),this.cameraCfg&&this.cameraCfg.far&&(this.settings.camera.far=this.cameraCfg.far),this.increaseJobCount(),this.init(),this.animate(),this.renderer&&(null==(n=this.viewerContainer)||n.append(this.renderer.domElement)),this.decreaseJobCount(),se.info(`[Viewer] Initialized in ${(Date.now()-this.timer)/1e3}s`)}init(){let e=this.viewerCfg;this.initThree(),Dn.isBrowser&&!e.context&&this.initDom(),this.initEvents(),this.initControls()}initThree(){this.initScene(),this.initRenderer(),this.initCamera(),this.initLights()}initDom(){let e=this.viewerCfg;this.initSpinner(),this.initCSS2DRenderer(),this.initOthers(),!0===e.enableAxisGizmo&&se.warn("[Viewer] enableAxisGizmo is deprecated, use AxisGizmoPlugin instead!"),!0===e.enableStats&&se.warn("[Viewer] enableStats is deprecated, use StatsPlugin instead!"),e.enableToolbar&&se.warn("[Viewer] enableToolbar is deprecated, use ToolbarPlugin instead!"),e.enableBottomBar&&se.warn("[Viewer] enableBottomBar is deprecated, use BottomBarPlugin instead!"),e.enableNavCube&&se.warn("[Viewer] enableNavCube is deprecated, use NavCubePlugin instead!"),e.enableProgressBar&&(this.loadingProgressBar=this.initLoadingProgressBar()),e.enableContextMenu&&se.warn("[Viewer] enableContextMenu is deprecated, use ContextMenuPlugin instead!"),null!=e.enableSelection&&(this.enableSelection=e.enableSelection)}initScene(){this.scene=new _i,this.scene.matrixAutoUpdate=!1}initRenderer(){this.renderer=new Ms({antialias:!0,preserveDrawingBuffer:!0}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),this.renderer.outputColorSpace=tn,this.renderer.toneMappingExposure=1,this.renderer.useLegacyLights=!1,this.renderer.setClearColor(11119017,1),this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=Ev,this.renderer.shadowMap.autoUpdate=!1,Mt.printGpuInfo(this.renderer.getContext()),this.pmremGenerator=new Yh(this.renderer),this.pmremGenerator.compileEquirectangularShader(),this.enableOverlayRenderer&&(this.overlayRender=new Un(this)),this.setEnvironmentFromDataArray()}initCSS2DRenderer(){var e;let t=new Nu;t.setSize(this.width,this.height),t.domElement.style.height="0",t.domElement.style.width="0",t.domElement.style.position="absolute",t.domElement.style.top="0",t.domElement.style.left="0",t.domElement.style.overflow="visible",t.domElement.classList.add("css2d-renderer"),null==(e=this.viewerContainer)||e.appendChild(t.domElement),this.css2dRenderer=t}initCamera(){this.scene&&(this.perspectiveCamera=new ur(45,this.width/this.height,this.settings.camera.near,this.settings.camera.far),this.perspectiveCamera.position.set(0,100,0),this.scene.add(this.perspectiveCamera),this.camera=this.perspectiveCamera)}initControls(e=!1){if(!this.renderer)return;Dn.printDeviceInfo();let t,n=e?this.orthoCamera:this.perspectiveCamera;n&&this.inputManager&&((!this.perspectiveCameraControls||!this.orthoCameraConrols)&&(t=new ba(n,this.inputManager),t.dollySpeed=.3,t.dollyToCursor=!0,t.infinityDolly=!0,t.enabled=!0,t.keyTruckSpeed=10,t.restThreshold=0,t.smoothTime=.05,t.keys={left:"KeyD",up:"KeyE",right:"KeyA",bottom:"KeyQ"},t.listenToKeyEvents(),t.update(0)),t&&(e?(this.orthoCameraConrols=t,t.minZoom=3):(this.perspectiveCameraControls=t,this.bbox&&(t.minDistance=.1,t.maxDistance=10*this.bbox.getSize(new O).length())),this.controls=t,this.enableFastOperation&&t.addEventListener("control",this.onOperation)))}initRotateToCursor(){this.anchor=this.createAnchor()}initLights(){if(!this.scene)return;let e=16777215,t=new js(e,1.5);t.name="sun",t.castShadow=!0,t.position.set(-2,2,4),t.shadow.autoUpdate=!1,t.shadow.mapSize.width=1024,t.shadow.mapSize.height=1024,this.directionalLight=t,this.scene.add(t),this.scene.add(t.target),this.directionalLightHelper=new kb(this.directionalLight),this.directionalLightHelper.visible=!1,this.scene.add(this.directionalLightHelper),this.shadowCameraHelper=new Fb(this.directionalLight.shadow.camera),this.shadowCameraHelper.visible=!1,this.scene.add(this.shadowCameraHelper),this.ambientLight=new Pl(e),this.hemisphereLight=new Du(e,14540253,.2),this.hemisphereLight.position.set(0,300,0),this.scene.add(this.ambientLight),this.scene.add(this.hemisphereLight)}initEvents(){if(!this.renderer||!this.viewerContainer)return;let e=new Jo(this.viewerContainer);this.inputManager=e;let t=!1,n=!1,i=0,r=0,a=0,s=e=>-1!==r&&-1!==a&&Math.abs(e.x-r)<5&&Math.abs(e.y-a)<5;e.addEventListener("pointerdown",(e=>{n=!1,t=!0,0===e.button&&this.onAnchorPointerDown(e)})),e.addEventListener("pointermove",(e=>{t&&(n=!s(e))})),e.addEventListener("pointerup",(e=>{if(t=!1,n)return n=!1,void this.onAnchorPointerUp();if(0===e.button)if((e=>{let t=e.timestamp-i;return!!(0===e.button&&t<300&&s(e))})(e)){let t=this.getClickedObject(e);t?this.flyToObject(t):this.viewFitAll(),i=0,r=-1,a=-1}else i=e.timestamp,r=e.x,a=e.y,this.handleMouseClick(e);else e.button;this.onAnchorPointerUp()})),e.addEventListener("keydown",(e=>{this.onKeyDown(e)})),this.initRotateToCursor(),this.raycaster=new ia}initOthers(){!this.scene||!this.renderer||!this.camera||(this.renderer.domElement.style.outlineWidth="0")}initLoadingProgressBar(){return new Gf(this.widgetContainer)}sycnCameraAndControls(e){let t=e?this.orthoCamera:this.perspectiveCamera,n=e?this.perspectiveCameraControls:this.orthoCameraConrols,i=e?this.orthoCameraConrols:this.perspectiveCameraControls,r=new O;n.getPosition(r),i.setPosition(r.x,r.y,r.z);let a=n.getTarget(new O);if(i.setTarget(a.x,a.y,a.z),e){let e=t;e.zoom=10,e.updateProjectionMatrix()}}setToOrthographicCamera(e=!1){var t;if(!this.scene||!this.controls)return;let n=this.perspectiveCamera,i=this.perspectiveCameraControls,r=this.orthoCamera,a=this.orthoCameraConrols;e?(r||(r=new Ur(-this.width/2,this.width/2,this.height/2,-this.height/2,this.settings.camera.near,this.settings.camera.far),r.position.set(0,100,0),r.zoom=10,r.updateProjectionMatrix(),this.scene.add(r),this.orthoCamera=r,this.frustumSize=this.width),a||(this.initControls(!0),a=this.orthoCameraConrols),this.camera=r,this.controls=a):(this.camera=n,this.controls=i),this.sycnCameraAndControls(e),this.resize(this.width,this.height),null==(t=this.composer)||t.passes.forEach((e=>{e.camera&&(e.camera=this.camera)})),this.dispatchEvent("CameraChanged")}animate(){var e,t,n;if(this.minFrameInterval>0&&Date.now()-this.lastFrameExecuteTime!!e.tilesRenderer));0!==e.length&&(this.camera.updateMatrixWorld(),e.forEach((e=>{e.tilesRenderer.update()})))}frustumCullingByModelBBox(){if(!this.enableModelLevelFrustumCulling)return;let e=this.camera,t=this.scene;if(!e||!t)return;e.updateMatrixWorld();let n=new et;n.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse);let i=new ya;i.setFromProjectionMatrix(n);let r=(e,t)=>{if(e&&t&&(void 0===e.userData._visible&&(e.userData._visible=!0,Object.defineProperties(e,{visible:{set:t=>{e.userData._visible=t,this.isFrustumInsectChecking||(e.userData.userConfigVisibility=!0)},get:()=>e.userData._visible}})),void 0===e.userData.userConfigVisibility)){let n=i.intersectsBox(t);e.visible!==n&&(e.visible=n,se.debug(`[Viewer] frustumCullingByModelBBox() set model (id ${e.id})'s visible to:`,n))}};this.isFrustumInsectChecking=!0,this.loadedModels.forEach((e=>{if(e.tilesRenderer){let t=e.tilesRenderer.group;r(t,e.bbox)}else r(e.object,e.bbox)})),this.isFrustumInsectChecking=!1}destroy(){var e,t,n,i;null==(e=this.inputManager)||e.removeEventListener();let r=this.webcamPlane;this.scene&&r&&(this.scene.remove(r),r.geometry.dispose(),r.material.dispose(),this.webcamPlane=void 0),this.webcam=void 0,this.composer=void 0,this.renderPass=void 0,this.effectFxaaPass=void 0,this.saoPass=void 0,this.ssaoPass=void 0,this.outlinePass=void 0,this.ambientLight=void 0,this.directionalLight=void 0,this.hemisphereLight=void 0,this.directionalLightHelper&&(this.directionalLightHelper.dispose(),this.directionalLightHelper=void 0),this.controls&&(this.disposeRotateToCursor(),this.controls.dispose(),this.controls=void 0),this.perspectiveCameraControls&&(this.perspectiveCameraControls.dispose(),this.perspectiveCameraControls=void 0),this.shadowCameraHelper&&(this.shadowCameraHelper.dispose(),this.shadowCameraHelper=void 0),this.css2dRenderer&&(null==(t=this.viewerContainer)||t.removeChild(this.css2dRenderer.domElement),this.css2dRenderer=void 0),this.raycaster=void 0,this.selectedObject=void 0,this.savedMaterialsForOpacity=void 0,this.section=void 0,this.sectionType=void 0,this.loadedModels.forEach((e=>{e.tilesRenderer&&e.tilesRenderer.dispose()})),this.loadedModels=[],this.perspectiveCamera=void 0,this.perspectiveCameraControls=void 0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.raf=void 0),null==(n=this.fontManager)||n.destroy(),this.fontManager=void 0,this.pmremGenerator&&(this.pmremGenerator.dispose(),this.pmremGenerator=void 0),null==(i=this.zoomToRectHelper)||i.destroy(),this.zoomToRectHelper=void 0,super.destroy()}loadLocalModel(e,t,n,i){return ft(this,null,(function*(){var r,a;this.timer=Date.now(),this.increaseJobCount();let s=t.modelId||t.src,o=this.translate("ProgressBar.Loading"),l=e=>{var t;null==(t=this.loadingProgressBar)||t.updateProgress(s,o,e),i&&i(new ProgressEvent("LoadProgress",{loaded:e,total:100}))},h=!1,c=(e,t,n)=>{var r;let a=100*e.loaded/e.total;a=a*(n-t)/100+t,a>n&&(h||(se.warn("[Progress] Invalid ProgressEvent:",e),h=!0),a=n),null==(r=this.loadingProgressBar)||r.updateProgress(s,o,a),i&&i(new ProgressEvent("LoadProgress",{loaded:a,total:100}))},u=e=>c(e,0,50),d=e=>c(e,50,99);null==(r=this.loadingProgressBar)||r.addProgressItem(s),l(0);try{let i=new $a(n);this.fontManager&&i.setFont(this.fontManager);let r=yield i.loadLocalModel(e,t.src,u);if(r)return yield this.applyOptionsAndAddToScene(e,r,t,d),Promise.resolve()}catch(e){let i=`Error loading ${t.src}`;return se.error(i,e),Promise.reject(i)}finally{this.decreaseJobCount(),l(100),null==(a=this.loadingProgressBar)||a.delayRemoveProgressItem(s)}return Promise.reject()}))}loadModel(e,t){return ft(this,null,(function*(){var n,i;this.timer=Date.now(),this.increaseJobCount();let r=e.modelId||e.src,a=this.translate("ProgressBar.Loading"),s=e=>{var n;null==(n=this.loadingProgressBar)||n.updateProgress(r,a,e),t&&t(new ProgressEvent("LoadProgress",{loaded:e,total:100}))},o=!1,l=(e,n,i)=>{var s;let l=100*e.loaded/e.total;l=l*(i-n)/100+n,l>i&&(o||(se.warn("[Progress] Invalid ProgressEvent:",e),o=!0),l=i),null==(s=this.loadingProgressBar)||s.updateProgress(r,a,l),t&&t(new ProgressEvent("LoadProgress",{loaded:l,total:100}))},h=e=>l(e,0,50),c=e=>l(e,50,99);null==(n=this.loadingProgressBar)||n.addProgressItem(r),s(0);try{let t=new $a;this.fontManager&&t.setFont(this.fontManager);let n=yield t.loadModel(e.src,e.fileFormat,h);if(n)return yield this.applyOptionsAndAddToScene(e.src,n,e,c),Promise.resolve()}catch(t){let i=`Error loading ${e.src}`;return se.error(i,t),Promise.reject(i)}finally{this.decreaseJobCount(),s(100),null==(i=this.loadingProgressBar)||i.delayRemoveProgressItem(r)}return Promise.reject()}))}load3dTiles(e){return ft(this,null,(function*(){var t;this.timer=Date.now(),this.increaseJobCount();let n=new w_(e.src),i=new Ot,r=yield new Promise(((t,r)=>{n.onLoadTileSet=()=>{n.getBounds(i)||(n.getBoundingSphere(zve)?zve.getBoundingBox(i):(se.warn(`[Viewer] Can't get the correct bounding box of 3dTiles '${e.src}'!`),r())),se.debug(i),n.onLoadTileSet=null;let a=n.group;se.debug(a),t(a)},n.onLoadModel=e=>{e.traverse((e=>{e.matrixAutoUpdate&&(e.matrixAutoUpdate=!1,e.updateMatrix()),e.isMesh&&(e.castShadow=!0,e.receiveShadow=!0),e.geometry&&e.layers.enableAll()})),e.updateWorldMatrix(!1,!0),this.updateDirectionalLightShadow(),this.enableRender()},n.setCamera(this.camera),n.setResolutionFromRenderer(this.camera,this.renderer),n.update()}));if(r){let a=Date.now(),s={modelId:this.getUniqueModelId(e.modelId||e.src),object:r,bbox:i,tilesRenderer:n};if(this.loadedModels.push(s),e.matrix&&16===e.matrix.length){let t=new et;t.elements=e.matrix,r.applyMatrix4(t)}return r.matrixAutoUpdate=!1,r.updateMatrix(),r.updateMatrixWorld(!0),null==(t=this.scene)||t.add(r),i.applyMatrix4(r.matrix),this.computeBoundingBox(),this.tryAdjustDirectionalLight(),1===this.loadedModels.length&&(this.tryAdjustCameraNearAndFar(),this.goToHomeView()),se.info(`[Viewer] Added 3dTiles '${e.src}' to scene in ${(Date.now()-a)/1e3}s`),this.enableRender(),this.decreaseJobCount(),this.dispatchEvent("ModelLoaded"),Promise.resolve()}return this.decreaseJobCount(),this.dispatchEvent("ModelLoaded"),Promise.reject()}))}setFont(e){return ft(this,null,(function*(){let t=Date.now();this.fontManager||(this.fontManager=new ud),yield this.fontManager.loadFonts(e),se.info(`[Viewer] Font file(s) load time in ${(Date.now()-t)/1e3}s`)}))}setDracoDecoderPath(e){$a.setDracoDecoderPath(e)}addModel(e){if(!this.scene||!this.renderer)return;this.increaseJobCount();let t=(new Ot).setFromObject(e.object);e.bbox||(e.bbox=t),this.scene.add(e.object),this.loadedModels.push(e),this.computeBoundingBox(),this.tryAdjustDirectionalLight(),1===this.loadedModels.length&&(this.tryAdjustCameraNearAndFar(),this.goToHomeView()),se.info(`[Viewer] Added '${e.modelId}' to scene in ${(Date.now()-this.timer)/1e3}s`),this.renderer.shadowMap.needsUpdate=!0,this.enableRender(),this.dispatchEvent("ModelLoaded",{modelId:e.modelId,bbox:t}),this.decreaseJobCount()}calculateMeshSurfaceArea(e){let t=new Zr,n=[0,0,0],i=e.geometry,r=i.getAttribute("position"),a=i.getIndex(),s=a?a.count:r.count,o=0;for(let l=0;le.object.id)).forEach((s=>{if(e){this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0&&Hn.revertObjectOpacityById(r,s,this.savedMaterialsForOpacity);let e=Hn.setObjectOpacityById(r,s,t,n,i);a.push(...e)}else this.savedMaterialsForOpacity&&Hn.revertObjectOpacityById(r,s,this.savedMaterialsForOpacity)})),this.savedMaterialsForOpacity=e?a:[],this.enableRender()}hasTransparentObject(){return!!(this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0)}showVertexNormals(e,t=.1){var n,i,r;e?(this.vertexNormalsHelpers||(this.vertexNormalsHelpers=new er),null==(n=this.scene)||n.traverseVisible((e=>{var n;if(e instanceof xt&&!["SKYBOX","GROUND_GRID","GROUND_GRASS","BIM_VIEWER_BOX_HELPER"].includes(e.name)){if(!e.geometry.attributes.normal)return;let i=new QP(e,t,16711680);null==(n=this.vertexNormalsHelpers)||n.add(i)}})),null==(i=this.scene)||i.add(this.vertexNormalsHelpers)):this.vertexNormalsHelpers&&(null==(r=this.scene)||r.remove(this.vertexNormalsHelpers),this.vertexNormalsHelpers=void 0)}resize(e,t){super.resize(e,t),t>0&&(this.composer&&this.composer.setSize(e,t),this.effectFxaaPass&&this.effectFxaaPass.uniforms.resolution.value.set(1/e,1/t),this.css2dRenderer&&(this.css2dRenderer.setSize(e,t),this.css2dRenderer.domElement.style.height="0",this.css2dRenderer.domElement.style.width="0")),this.enableRender()}getRaycaster(){return this.raycaster}getRaycastableObjectsByMouse(e){let t=[];if(!(this.raycaster&&this.camera&&this.scene&&e&&this.viewerContainer))return t;let n=new be(e.x,e.y),i=cn.screenPoint2NdcPoint(n,this.camera,this.viewerContainer);return this.camera.updateMatrixWorld(),this.raycaster.setFromCamera(i,this.camera),t=this.getRaycastableObjects(),t}getRaycastableObjects(){let e=[];return this.loadedModels.forEach((t=>{let n=t.object;n&&n.visible&&e.push(n)})),e}getIntersections(e){let t=this.getRaycastableObjectsByMouse(e),n=this.raycaster&&this.raycaster.intersectObjects(t,!0)||[];return this.renderer&&this.renderer.clippingPlanes.length>0&&(n=n.filter((e=>{var t;return null==(t=this.renderer)?void 0:t.clippingPlanes.every((function(t){return t.distanceToPoint(e.point)>0}))}))),n}getAllIntersections(e){if(!(this.raycaster&&this.camera&&this.scene&&this.viewerContainer))return[];let t=new be(null==e?void 0:e.x,null==e?void 0:e.y),n=cn.screenPoint2NdcPoint(t,this.camera,this.viewerContainer);this.raycaster.setFromCamera(n,this.camera);let i=this.scene.children,r=this.raycaster.intersectObjects(i,!0)||[];return this.renderer&&this.renderer.clippingPlanes.length>0&&(r=r.filter((e=>{var t;return null==(t=this.renderer)?void 0:t.clippingPlanes.every((function(t){return t.distanceToPoint(e.point)>0}))}))),r}getClickedObject(e){if(!this.raycaster)return;let t=Date.now();this.raycaster.layers.set(12);let n=this.getIntersections(e);se.debug(`[Viewer] getIntersections costs ${(Date.now()-t)/1e3}s`);let i=n.find((e=>{let t=e.object;return t.visible&&t instanceof xt}));return null==i?void 0:i.object}handleMouseClick(e){var t,n,i;if(null!=(t=this.measurePlugin)&&t.isActive()||null!=(n=this.sectionPlugin)&&n.isActive()||!this.raycaster)return;let r=Date.now();this.raycaster.layers.set(12);let a=this.getIntersections(e);se.debug(`[Viewer] getIntersections costs ${(Date.now()-r)/1e3}s`);let s,o,l=a.find((e=>{let t=e.object;return t.visible&&t instanceof xt})),h=l&&l.object||void 0;if(h)if(h instanceof Pi)s=l.instanceId,this.selectedObject&&this.selectedObject.id===h.id&&this.selectedObject.userData.instanceId===s&&(h=void 0);else if(Ar.isMergedMesh(h)){let e=l&&l.faceIndex||-1;e>=0?(o=Ar.getBatchIdByFaceIndex(h,e),this.selectedObject&&this.selectedObject.id===h.id&&this.selectedObject.userData.batchId===o&&(h=void 0)):h=void 0}else this.selectedObject&&this.selectedObject.id===h.id&&(h=void 0);if(a.length>0&&a[0].point){let e=null==(i=this.overlayRender)?void 0:i.getDrawablesByPosition(a[0].point,this.raycaster);e&&e.length>0?h=e[0]:this.enableSelection||(h=void 0)}this.selectedObject&&this.clearSelection(),h?this.selectObject(h,s,o):this.clearSelection()}selectObject(e,t,n,i=void 0){if(e instanceof Bi)return this.selectedObject=e,this.selectedObject.selected=!0,void this.enableRender();if(this.selectedObject){let t=this.selectedObject.userData;if(null!=t.instanceId&&t.originalMatrix&&t.clonedMesh){this.scene&&this.scene.remove(t.clonedMesh);let n=this.selectedObject;if(n.setMatrixAt(t.instanceId,t.originalMatrix),n.instanceMatrix.needsUpdate=!0,n.updateMatrix(),delete t.instanceId,delete t.originalMatrix,e===t.clonedMesh)return t.clonedMesh.geometry.dispose(),delete t.clonedMesh,this.selectedObject=void 0,void(this.outlinePass&&(this.outlinePass.selectedObjects=[]));t.clonedMesh.geometry.dispose(),delete t.clonedMesh}else if(null!=t.batchId&&t.clonedMesh){if(this.scene&&this.scene.remove(t.clonedMesh),delete t.batchId,e===t.clonedMesh)return t.clonedMesh.geometry.dispose(),delete t.clonedMesh,this.selectedObject=void 0,void(this.outlinePass&&(this.outlinePass.selectedObjects=[]));t.clonedMesh.geometry.dispose(),delete t.clonedMesh}else if(t.originalMaterial){if(this.selectedObject.material){let e=this.selectedObject.material;Array.isArray(e)?e.forEach((e=>e.dispose())):e instanceof yr&&e.dispose()}this.selectedObject.material=t.originalMaterial,delete t.originalMaterial}this.selectedObject=void 0,this.outlinePass&&(this.outlinePass.selectedObjects=[])}if(this.scene&&e){if(e instanceof Pi&&null!=t){let n=e,r=new et,a=new et;a.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),n.getMatrixAt(t,r),this.selectedObject=e,this.outlinePass&&(this.outlinePass.selectedObjects=[e]);let s=es.clonedHighlightMaterials(e,{depthTest:i});if(s){let i=new xt(n.geometry.clone(),s);i.applyMatrix4(e.matrixWorld.multiply(r)),i.matrixWorldNeedsUpdate=!0,i.name="Cloned mesh for highlighting",i.layers.enableAll();let o=r.clone();o.multiplyMatrices(r,a),n.setMatrixAt(t,o),n.instanceMatrix.needsUpdate=!0,n.updateMatrix(),this.selectedObject.userData.instanceId=t,this.selectedObject.userData.originalMatrix=r,this.selectedObject.userData.clonedMesh=i,this.scene.add(i)}}else if(Ar.isMergedMesh(e)&&null!=n){let t=Ar.getBatchByBatchId(e,n),r=`[Viewer] Clicked on merged mesh(id: ${e.id}).`;r+=` batchId: ${n}, object name before merge: ${null==t?void 0:t.name}`,null!=t&&t.userData&&(r+=`, userData before merge: ${JSON.stringify(t.userData)}`),se.info(r);let a=es.clonedHighlightMaterials(e,{depthTest:i}),s=Ar.cloneGeometryForBatch(e,t);if(a&&s){let t=new xt(s,a);t.applyMatrix4(e.matrixWorld),t.matrixWorldNeedsUpdate=!0,t.name="Cloned mesh for highlighting",t.layers.enableAll(),this.selectedObject=e,this.selectedObject.userData.batchId=n,this.selectedObject.userData.clonedMesh=t,this.scene.add(t)}}else{let t=es.clonedHighlightMaterials(e,{depthTest:i});t&&(this.selectedObject=e,this.selectedObject.userData.originalMaterial=this.selectedObject.material,this.selectedObject.material=t,this.outlinePass&&(this.outlinePass.selectedObjects=[e]))}this.enableRender()}else this.enableRender()}clearSelection(){this.selectedObject&&this.selectedObject instanceof Bi?this.selectedObject.selected=!1:this.selectObject(),this.selectedObject=void 0}getBBox(){return this.bbox}enableModelEdges(e,t){return ft(this,null,(function*(){let n=Mt.getUpdateProgressFunc(t);n(0),this.increaseJobCount();let i=this.loadedModels.length;for(let r=0;rt.visible=e))}this.decreaseJobCount(),n(100),this.enableRender()}))}flyToObjects(e){if(!e||0===e.length||!this.camera)return;let t=new Ot;e.forEach((e=>{let n=ks.getBoundingBox(e);t.union(n)}));let n=new vr;t.getBoundingSphere(n),this.controls.fitToSphere(n,!0)}flyToObject(e){this.flyToObjects([e])}flyToSelectedObject(){if(!this.selectedObject)return;let e=this.selectedObject;(e instanceof Pi&&e.userData.clonedMesh||Ar.isMergedMesh(e)&&e.userData.clonedMesh)&&(e=e.userData.clonedMesh),this.flyToObject(e)}flyToRandomObject(){var e,t,n;let i=this.loadedModels.map((e=>e.object.id)),r=i.length;if(r<=0)return;let a=i[Math.floor(Math.random()*r)];if(!(null==(e=this.scene)?void 0:e.getObjectById(a)))return;let s=[];if(null==(t=this.scene)||t.traverseVisible((e=>{(e instanceof xt||e instanceof hr)&&!["SKYBOX","GROUND_GRID","GROUND_GRASS","BIM_VIEWER_BOX_HELPER"].includes(e.name)&&s.push(e.id)})),s.length<1)return;let o=Math.floor(Math.random()*s.length),l=null==(n=this.scene)?void 0:n.getObjectById(s[o]);l&&(se.info(`[Viewer] Flying to random object: ${l.name}, type: ${l.type}`),this.selectObject(l,void 0,void 0,!1),this.flyToObject(l))}flyTo(e,t){let n=this.camera,i=this.controls;if(!n||!i)return;if(e.equals(t))return void se.error("[Viewer] camera position and lookAt cannot be the same!");if(!Mt.isVectorValid(e)||!Mt.isVectorValid(t))return void se.error("[Viewer] invalid position or lookAt!");let r=e.distanceTo(t);rn.far&&(e=e.clone().sub(t).normalize().multiplyScalar(.9*n.far),se.warn("[Viewer] camera could be too far to see the object!")),i.setLookAt(e.x,e.y,e.z,t.x,t.y,t.z,!0),i.setFocalOffset(0,0,0,!0)}viewFitAll(){if(!this.scene||!this.camera||!this.controls)return;let e=ks.getVisibleObjectBoundingBox(this.scene),t=new vr;e.getBoundingSphere(t),this.controls.fitToSphere(t,!0)}goToHomeView(){if(!this.scene)return;let e=this.camera,t=this.cameraCfg,n=t&&Mt.arrayToVector3(t.eye),i=t&&Mt.arrayToVector3(t.look);if(n&&i){let e=this.controls;e.setLookAt(n.x,n.y,n.z,i.x,i.y,i.z,!0),e.setFocalOffset(0,0,0,!0)}else{let t=new O,n=new O,i=new O(-1,-.5,-1);this.bbox.getCenter(n),t.subVectors(n,i);let r=new vr;this.bbox.getBoundingSphere(r);let a=this.controls;if(a.setLookAt(t.x,t.y,t.z,n.x,n.y,n.z,!0),a.fitToSphere(r,!0),a.getPosition(t),(!this.cameraCfg||this.cameraCfg&&(!this.cameraCfg.eye||!this.cameraCfg.look))&&(this.cameraCfg={eye:t.toArray(),look:n.toArray()}),e instanceof Ur){let t=this.bbox,n=t.max.x-t.min.x,i=t.max.z-t.min.z,r=e.right-e.left,a=e.top-e.bottom;e.zoom=Math.max(r,a)/Math.max(n,i),e.zoom/=2,e.updateProjectionMatrix()}t.equals(n)||this.flyTo(t,n)}}zoomToBBox(e){if(!this.controls)return;let t=new vr;e.getBoundingSphere(t),this.controls.fitToSphere(t,!0)}tryAdjustCameraNearAndFar(){let e=this.camera;if(!this.scene||!e)return;let t=this.bbox,n=e.near,i=e.far,r=t.max.x-t.min.x,a=t.max.y-t.min.y,s=t.max.z-t.min.z,o=Math.max(r,a,s),l=o/5,h=5*o;if(n>l||iMt.numberToString(e);se.info(`[Viewer] BBox's longest side is: ${t(o)}`),n>l&&(se.warn(`[Viewer] camera.near(${t(n)}) shouldn't bigger than ${t(l)}, will change it!`),e.near=l),i"SectionPlugin"===e.id))}activateSection(e="ObjectsBoxSection"){var t,n;!this.inputManager||null!=(t=this.sectionPlugin)&&t.isActive()?this.sectionPlugin||se.warn("[Viewer] SectionPlugin doesn't seem to be installed!"):(this.sectionType=e,this.clearSelection(),null==(n=this.sectionPlugin)||n.activate(e),this.enableRender())}deactivateSection(){var e;null==(e=this.sectionPlugin)||e.deactivate(),this.enableRender()}getActiveSection(){var e;return null==(e=this.sectionPlugin)?void 0:e.getActiveSection()}get measurePlugin(){return this.plugins.find((e=>"MeasurementPlugin"===e.id))}getMeasurements(){let e=this.measurePlugin;return e?e.getData():[]}activateMeasurement(e){let t=this.measurePlugin;t?(t.activate(e),this.clearSelection()):se.warn("[Viewer] MeasurementPlugin doesn't seem to be installed!")}deactivateMeasurement(){var e;null==(e=this.measurePlugin)||e.deactivate()}setMeasurementVisibility(e,t){let n=this.measurePlugin;return!!n&&n.setVisibilityById(e,t)}clearMeasurements(){var e;null==(e=this.measurePlugin)||e.clear()}zoomToRect(){this.zoomToRectHelper||(this.zoomToRectHelper=new Dy(this)),this.zoomToRectHelper.activate()}deactivateZoomRect(){var e;null==(e=this.zoomToRectHelper)||e.deactivate()}enableWebCam(){this.scene&&(this.webcam||(this.webcam=new o2),this.webcamPlane||(this.webcamPlane=this.webcam.createWebCamPlane(),this.webcamPlane.position.set(10,2,0)),this.scene.add(this.webcamPlane))}disableWebCam(){this.scene&&this.webcamPlane&&(this.webcamPlane.geometry.dispose(),this.webcamPlane.material.dispose(),this.scene.remove(this.webcamPlane))}setEnvironment(e){Cc.createEnvTexture(this.pmremGenerator,e).then((e=>{this.scene&&(this.scene.environment&&this.scene.environment.dispose(),this.scene.environment=e,this.enableRender())}))}setEnvironmentFromDataArray(e){Cc.createEnvTextureFromDataArray(this.pmremGenerator,e).then((e=>{this.scene&&(this.scene.environment=e,this.enableRender())}))}takeObjectsScreenshot(e){return ft(this,null,(function*(){return new Promise(((t,n)=>{var i;this.renderer||n("renderer is undefined"),null==(i=this.scene)||i.traverse((t=>{t instanceof xt&&((0,f2.includes)(e,(0,f2.get)(t.userData,"UniqueId"))?t.visible=!0:t.visible=!1)})),this.enableRender(),setTimeout((()=>{var e;t(null==(e=this.renderer)?void 0:e.domElement.toDataURL("image/png"))}),1e3)}))}))}setObjectColor(e,t){this.clearSelection();let n={};e.traverse((e=>{let t=e.material;t&&(Array.isArray(t)?t.forEach((e=>{n[e.id]=e})):n[t.id]=t)}));for(let i in n)es.setMaterialColor(n[i],new ct(t));this.enableRender()}updateRaycasterThreshold(){let e=this.camera;if(!e||!this.raycaster)return;let t=12/e.zoom,n=this.raycaster.params;n.Line?n.Line.threshold=t:n.Line={threshold:t},n.Points?n.Points.threshold=t:n.Points={threshold:t}}merge(e){this.increaseJobCount();try{let t=[];e.traverse((e=>{e.geometry&&e.material&&t.push(e)})),Ar.deepMerge(t,e)}finally{this.decreaseJobCount()}}updateProjectSettings(e){this.settings=e;let t=(e,t)=>{e&&t&&(e.near=t.near,e.far=t.far,e.updateProjectionMatrix())};t(this.perspectiveCamera,this.settings.camera),t(this.orthoCamera,this.settings.camera),this.enableRender(10)}computeBoundingBox(){let e=new Ot;return this.loadedModels.forEach((t=>{t.bbox&&!t.bbox.isEmpty()&&e.union(t.bbox)})),this.bbox=e,this.controls&&(this.controls.minDistance=.1,this.controls.maxDistance=10*this.bbox.getSize(new O).length()),e}setDistanceCullingFactor(e){this.distanceCullingFactor=e}getDistanceCullingFactor(){return this.distanceCullingFactor}getCameraPositionAndDirection(){let e=this.camera;if(!e)return;let t=e.position,n=new O;return e.getWorldDirection(n),{position:{x:t.x,y:t.y,z:t.z},direction:{x:n.x,y:n.y,z:n.z}}}},p2=ji(Fl(),1),Vvt=(e=>(e[e.Browser=0]="Browser",e[e.Browserless=1]="Browserless",e[e.Headless=2]="Headless",e))(Vvt||{}),qve=class{constructor(e,t,n){if(this.scene=this.initScene(),this.selectedObject=void 0,this.loadedModels=[],this.clock=new mo,this.viewerMode=0,this.raycaster=new ia,this.savedMaterialsForOpacity=[],this.jobCount=0,this.bbox=new Ot,this.outlineMaterial=new Gn({color:1118481}),this.outlineRoot=new er,this.transparentObjectIds=[],this.applyOptionsAndAddToScene=(e,t,n,i)=>ft(this,null,(function*(){if(se.info(`[Viewer] '${e}' is loaded, adding to scene...`),n.matrix&&16===n.matrix.length){let e=new et;e.elements=n.matrix,t.applyMatrix4(e)}let r;t.traverse((e=>{e.geometry&&e.layers.enableAll(),e instanceof Ws&&(e.visible=!1)})),n.edges&&(r=yield Hn.createOutlines(t,void 0,i));let a=n.modelId||n.src,s=e=>!!this.loadedModels.find((t=>t.modelId===e));if(s(a)){let e=1;for(;s(`${a}_${e}`);)e++;a=`${a}_${e}`,se.warn(`[Viewer] Model '${a}' is loaded more than once!`)}let o={modelId:a,object:t,edges:r};this.addModel(o)})),this.getMeshes=e=>{let t=[];return e instanceof xt?t.push(e):e.traverseVisible((e=>{e instanceof xt&&t.push(e)})),t},this.containerOrCanvas=e,t&&(this.viewerMode=t),this.glContext=n,1===this.viewerMode&&(e instanceof HTMLDivElement||!n))throw new Error("[Viewer] Parameters don't match Browserless viewerMode !");this.increaseJobCount(),this.init(),this.decreaseJobCount(),se.info("[Viewer] Initialized"),this.animate()}init(){this.initRenderer(),this.initCamera(),this.initControls(),this.initLights(),this.initPointerEvents(),this.scene.add(this.outlineRoot)}initScene(){let e=new _i;return e.background=new ct(7112861),e.matrixAutoUpdate=!0,e}isBrowserlessMode(){return 1===this.viewerMode}isBrowserMode(){return 0===this.viewerMode}initRenderer(){let e={antialias:!0,preserveDrawingBuffer:!0},t=this.isBrowserlessMode();t&&Object.assign(e,{canvas:this.containerOrCanvas,context:this.glContext});let n=new Ms(e);if(t){let e=this.containerOrCanvas.width,t=this.containerOrCanvas.height;se.info(`[Viewer] Render target size: ${e} x ${t}`),this.renderTarget=new sr(e,t,{minFilter:Ir,magFilter:Jr,format:ea,type:Ec}),n.setRenderTarget(this.renderTarget)}else{let e=this.containerOrCanvas.clientWidth,t=this.containerOrCanvas.clientHeight;this.containerOrCanvas.append(n.domElement),n.setPixelRatio(window.devicePixelRatio),n.setSize(e,t)}n.outputColorSpace=tn,n.toneMappingExposure=1,n.useLegacyLights=!1,n.setClearColor(11119017,1),n.shadowMap.enabled=!0,n.shadowMap.type=Ev,this.renderer=n,t||(this.pmremGenerator=new Yh(n),this.pmremGenerator.compileEquirectangularShader(),this.setEnvironmentFromDataArray())}initCamera(){if(!this.scene)return;let e=this.containerOrCanvas.clientWidth||this.containerOrCanvas.width||0,t=this.containerOrCanvas.clientHeight||this.containerOrCanvas.height||0,n=1;e&&t&&(n=e/t),this.camera=new ur(68,n,.05,1e4),this.camera.position.set(10,10,10),this.camera.lookAt(0,0,0),this.scene.add(this.camera)}initControls(){if(!this.renderer)return;let e=this.camera;if(!e)return;let t=new ba(e,this.renderer.domElement);t.smoothTime=.05,t.enabled=!0,t.keyTruckSpeed=10,t.keys={left:"KeyD",up:"KeyE",right:"KeyA",bottom:"KeyQ"},t.update(0),this.controls=t,t.addEventListener("update",(()=>{!this.isBrowserMode()&&this.renderer&&this.renderer.render(this.scene,e)}))}initLights(){if(!this.scene)return;let e=16777215,t=new js(e,.3);t.position.set(-2,2,4);let n=new Pl(3158064),i=new Du(e,14540253,3);i.position.set(0,300,0),this.scene.add(t),this.scene.add(n),this.scene.add(i)}initPointerEvents(){if(!this.renderer||!this.camera||!this.controls)return;let e=!1,t=!1,n=-1,i=-1;this.renderer.domElement.addEventListener("pointerdown",(t=>{n=t.x,i=t.y,e=!1})),this.renderer.domElement.addEventListener("pointermove",(t=>{n>=0&&i>=0&&(Math.abs(t.x-n)>5||Math.abs(t.y-i)>5)&&(e=!0)})),this.renderer.domElement.addEventListener("pointerup",(()=>{t&&setTimeout((()=>{t=!1}),200),n=-1,i=-1})),this.renderer.domElement.addEventListener("dblclick",(n=>{t=!0,e||(this.handleMouseClick(n),this.flyToSelectedObject())}))}animate(){var e;this.isBrowserMode()&&requestAnimationFrame(this.animate.bind(this));let t=this.clock.getDelta();this.controls&&this.controls.update(t),this.scene&&this.camera&&(null==(e=this.renderer)||e.render(this.scene,this.camera))}destroy(){this.camera=void 0,this.scene&&this.scene.clear(),this.requestAnimationFrameHandle&&(cancelAnimationFrame(this.requestAnimationFrameHandle),this.requestAnimationFrameHandle=void 0),this.renderer&&(this.containerOrCanvas.removeChild(this.renderer.domElement),this.renderer.clear(),this.renderer.dispose(),this.renderer=void 0),this.controls&&(this.controls.dispose(),this.controls=void 0),this.renderTarget&&(this.renderTarget.dispose(),this.renderTarget=void 0),this.raycaster=void 0,this.selectedObject=void 0,this.savedMaterialsForOpacity=void 0,this.loadedModels=[]}loadLocalModel(e,t,n){return ft(this,null,(function*(){let i=yield(new $a).loadLocalModel(e,t.src,n);return i?(yield this.applyOptionsAndAddToScene(e,i,t),Promise.resolve()):Promise.reject()}))}loadModel(e,t){return ft(this,null,(function*(){this.increaseJobCount();let n=yield(new $a).loadModel(e.src,e.fileFormat,t);return n?(yield this.applyOptionsAndAddToScene(e.src,n,e),Promise.resolve()):Promise.reject()}))}parseGltf(e,t,n,i){this.increaseJobCount(),(new $a).parseGltf(e,t.src,(e=>{this.applyOptionsAndAddToScene(t.src,e,t),n&&n(e)}),(e=>{i&&i(e)}))}addModel(e){if(!this.scene||!this.renderer)return;this.increaseJobCount();let t=(new Ot).setFromObject(e.object);e.bbox||(e.bbox=t),this.scene.add(e.object),this.loadedModels.push(e),this.computeBoundingBox(),1===this.loadedModels.length&&(this.tryAdjustCameraNearAndFar(),this.goToHomeView()),this.renderer.shadowMap.needsUpdate=!0,se.info(`[Viewer] Added '${e.modelId}' to scene`),this.decreaseJobCount()}addOrRemoveObjectOpacity(e=!0,t=.3,n,i){if(this.savedMaterialsForOpacity||(this.savedMaterialsForOpacity=[]),!this.scene)return;let r=this.scene,a=[];this.loadedModels.forEach((s=>{if(e){this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0&&Hn.revertObjectOpacityById(r,s.object.id,this.savedMaterialsForOpacity);let e=Hn.setObjectOpacityById(r,s.object.id,t,n,i);a.push(...e)}else this.savedMaterialsForOpacity&&Hn.revertObjectOpacityById(r,s.object.id,this.savedMaterialsForOpacity)})),this.savedMaterialsForOpacity=e?a:[]}hasTransparentObject(){return!!(this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0)}getIntersections(e){if(!this.raycaster||!this.camera||!this.scene)return[];let t=new be;e&&(t=cn.getScreenPointByEvent(e,this.containerOrCanvas));let n=cn.screenPoint2NdcPoint(t,this.camera,this.containerOrCanvas);this.raycaster.setFromCamera(n,this.camera);let i=[];return this.loadedModels.forEach((e=>{let t=e.object;t&&t.visible&&i.push(t)})),this.raycaster.intersectObjects(i,!0)||[]}handleMouseClick(e){this.raycaster&&this.raycaster.layers.set(12);let t=this.getIntersections(e).find((e=>{let t=e.object;return t.visible&&t instanceof xt})),n=t&&t.object||void 0;n&&this.selectedObject&&this.selectedObject.id===n.id&&(n=void 0),n?this.selectObject(n):this.clearSelection()}selectObject(e){if(this.selectedObject){let e=this.selectedObject.userData;if(e.originalMaterial){if(this.selectedObject.material){let e=this.selectedObject.material;Array.isArray(e)?e.forEach((e=>e.dispose())):e instanceof yr&&e.dispose()}this.selectedObject.material=e.originalMaterial,delete e.originalMaterial}this.selectedObject=void 0}if(!this.scene||!e)return;let t=es.clonedHighlightMaterials(e);t&&(this.selectedObject=e,this.selectedObject.userData.originalMaterial=this.selectedObject.material,this.selectedObject.material=t)}clearSelection(){this.selectObject()}flyToObjects(e){if(!e||0===e.length||!this.camera)return;let t=new Ot;e.forEach((e=>{let n=ks.getBoundingBox(e);t.union(n)}));let n=new vr;t.getBoundingSphere(n),this.controls.fitToSphere(n,!0)}flyToObject(e){this.flyToObjects([e])}flyToSelectedObject(){this.selectedObject&&this.flyToObject(this.selectedObject)}flyTo(e,t,n){var i;let r=this.camera,a=this.controls;if(!r||!a)return;let s=e=Array.isArray(e)?new O(e[0],e[1],e[2]):e,o=t=Array.isArray(t)?new O(t[0],t[1],t[2]):t;se.info("[Viewer] flyTo: ",Mt.vectorToString(s)),a.setPosition(s.x,s.y,s.z),a.setTarget(o.x,o.y,o.z),this.isBrowserMode()||null==(i=this.renderer)||i.render(this.scene,r),n&&n()}goToHomeView(){let e=new vr;this.bbox.getBoundingSphere(e),this.controls.fitToSphere(e,!0)}setEnvironmentFromDataArray(e){Cc.createEnvTextureFromDataArray(this.pmremGenerator,e).then((e=>{this.scene.environment=e,this.isBrowserMode()||this.animate()}))}tryAdjustCameraNearAndFar(){let e=this.camera;if(!this.scene||!e)return;let t=this.bbox,n=e.near,i=e.far,r=t.max.x-t.min.x,a=t.max.y-t.min.y,s=t.max.z-t.min.z,o=Math.max(r,a,s),l=o/5,h=5*o;if(n>l||iMt.numberToString(e);se.info(`[Viewer] BBox's longest side is: ${t(o)}`),n>l&&(se.warn(`[Viewer] camera.near(${t(n)}) shouldn't bigger than ${t(l)}, will change it!`),e.near=l),i0?void 0:this.transparentObjectIds,n=this.transparentObjectIds.length>0?this.transparentObjectIds:void 0,i=new on({color:16777215,transparent:!0,opacity:.1});this.loadedModels.forEach((e=>{Hn.applyMaterialToObjectById(this.scene,e.object.id,i,n,t)})),this.outlineRoot.clear();let r=[];if(e.forEach((e=>{let t=e.modelId,n=this.loadedModels.find((e=>e.modelId===t)),i=null==n?void 0:n.object;i||(se.warn(`[Viewer] The ModelId of ${t} has no corresponding model.`),i=this.scene),i.traverse((t=>{if((0,p2.includes)(e.id,(0,p2.get)(t.userData,"UniqueId"))){let e=this.getMeshes(t);r=r.concat(e)}}))})),r.length>0){r.forEach((e=>{let t=Hn.createOutline(e.geometry,this.outlineMaterial);t.applyMatrix4(e.matrixWorld),this.outlineRoot.add(t),t.updateWorldMatrix(!0,!1)}));let e=r.map((e=>e.id));this.loadedModels.forEach((t=>{Hn.revertAppliedMaterialToObjectById(this.scene,t.object.id,e)})),this.transparentObjectIds=e,this.flyToObjects(r)}else se.warn(`[Viewer] No object found with uniqueIds: ${e.map((e=>e.id))}`);this.isBrowserMode()||this.animate()}increaseJobCount(){++this.jobCount}decreaseJobCount(){--this.jobCount}computeBoundingBox(){let e=new Ot;return this.loadedModels.forEach((t=>{t.bbox&&!t.bbox.isEmpty()&&e.union(t.bbox)})),this.bbox=e,e}getContext(){var e;return null==(e=this.renderer)?void 0:e.getContext()}getCameraDirection(){var e;let t=new O;return null==(e=this.camera)||e.getWorldDirection(t),{x:t.x,y:t.y,z:t.z}}setFov(e){this.camera&&(this.camera.fov=e,this.camera.updateProjectionMatrix())}},Wve=new O,zvt=new dr,jve=new O,cg=class extends an{constructor(e=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",(function(){this.traverse((function(e){e.element instanceof Element&&null!==e.element.parentNode&&e.element.parentNode.removeChild(e.element)}))}))}copy(e,t){return super.copy(e,t),this.element=e.element.cloneNode(!0),this}},ih=new et,Gvt=new et,m2=class{constructor(e={}){let t,n,i,r,a=this,s={camera:{fov:0,style:""},objects:new WeakMap},o=void 0!==e.element?e.element:document.createElement("div");o.style.overflow="hidden",this.domElement=o;let l=document.createElement("div");l.style.transformOrigin="0 0",l.style.pointerEvents="none",o.appendChild(l);let h=document.createElement("div");function c(e){return Math.abs(e)<1e-10?0:e}function u(e){let t=e.elements;return"matrix3d("+c(t[0])+","+c(-t[1])+","+c(t[2])+","+c(t[3])+","+c(t[4])+","+c(-t[5])+","+c(t[6])+","+c(t[7])+","+c(t[8])+","+c(-t[9])+","+c(t[10])+","+c(t[11])+","+c(t[12])+","+c(-t[13])+","+c(t[14])+","+c(t[15])+")"}function d(e){let t=e.elements;return"translate(-50%,-50%)matrix3d("+c(t[0])+","+c(t[1])+","+c(t[2])+","+c(t[3])+","+c(-t[4])+","+c(-t[5])+","+c(-t[6])+","+c(-t[7])+","+c(t[8])+","+c(t[9])+","+c(t[10])+","+c(t[11])+","+c(t[12])+","+c(t[13])+","+c(t[14])+","+c(t[15])+")"}function p(e,t,n,i){if(e.isCSS3DObject){let i=!0===e.visible&&!0===e.layers.test(n.layers);if(e.element.style.display=!0===i?"":"none",!0===i){let i;e.onBeforeRender(a,t,n),e.isCSS3DSprite?(ih.copy(n.matrixWorldInverse),ih.transpose(),0!==e.rotation2D&&ih.multiply(Gvt.makeRotationZ(e.rotation2D)),e.matrixWorld.decompose(Wve,zvt,jve),ih.setPosition(Wve),ih.scale(jve),ih.elements[3]=0,ih.elements[7]=0,ih.elements[11]=0,ih.elements[15]=1,i=d(ih)):i=d(e.matrixWorld);let r=e.element,o=s.objects.get(e);if(void 0===o||o.style!==i){r.style.transform=i;let t={style:i};s.objects.set(e,t)}r.parentNode!==h&&h.appendChild(r),e.onAfterRender(a,t,n)}}for(let r=0,a=e.children.length;r0))return void(this.visible=!0);t.forEach((e=>e.opacity=0));let n=1/(e/10);this.visible=!0,this.clearFading(),this.renderOrder+=1,this.fadingInInterval=setInterval((()=>{let e=1,i=this.getMaterials();this.materialEquals(t,i)||(t=i),t.length>0&&(e=Math.min(t[0].opacity+n,1),t.forEach((t=>t.opacity=e))),e>=1&&this.clearFading()}),10)}materialEquals(e,t){return Xve.default.isEqualWith(e,t,((e,t)=>{if(!Array.isArray(e)||!Array.isArray(t))return e.id===t.id}))}fadeOut(e=1e3){let t=this.getMaterials(),n=1/(e/10),i=1/(e/10);this.clearFading(),this.scale.set(2,2,2),this.fadingOutInterval=setInterval((()=>{let e=this.scale.x+i;this.scale.set(e,e,e);let r=0;t.length>0&&(r=Math.max(t[0].opacity-n,0),t.forEach((e=>e.opacity=r))),(r<=0||e>=3)&&this.clearFading()}),10)}clearFading(){let e=this.getMaterials();this.fadingInInterval&&(clearInterval(this.fadingInInterval),this.fadingInInterval=void 0,this.visible=!0,e.forEach((e=>e.opacity=1)),this.renderOrder-=1),this.fadingOutInterval&&(clearInterval(this.fadingOutInterval),this.fadingOutInterval=void 0,this.visible=!1,e.forEach((e=>e.opacity=1)),this.scale.set(1,1,1))}getMaterials(){let e=this.thumbnailMesh;e||(e=this.mesh);let t=[];return Array.isArray(e.material)?t.push(...e.material):e.material&&t.push(e.material),t}create(){}createThumbnailMesh(e){return ft(this,null,(function*(){if(!this.thumbnailImages||6!=this.thumbnailImages.length)return;this.thumbnailMesh=new xt(new va(e,e,e)),this.thumbnailMesh.geometry.scale(1,1,-1);let t=(yield this.loadTexturesAsync(this.thumbnailImages)).map((e=>new on({map:e,side:pi,transparent:!0})));this.thumbnailMesh&&(this.thumbnailMesh.material=t,this.add(this.thumbnailMesh))}))}loadTextures(e){return e.map((e=>{let t=this.textureLoader.load(e);return t.colorSpace=tn,t}))}loadTexturesAsync(e){return ft(this,null,(function*(){let t=e.map((e=>this.textureLoader.loadAsync(e))),n=yield Promise.all(t);return n.forEach((e=>e.colorSpace=tn)),n}))}destroyMesh(e){var t;this.remove(e),e.clear(),e.geometry.dispose(),Array.isArray(e.material)?e.material.forEach((e=>{var t;null==(t=e.map)||t.dispose(),e.dispose()})):(null==(t=e.material.map)||t.dispose(),e.material.dispose())}destroy(){this.clearFading(),this.images=[],this.mesh&&(this.mesh instanceof xt?this.destroyMesh(this.mesh):this.mesh.traverse((e=>{e instanceof xt&&this.destroyMesh(e)})),this.mesh=void 0)}},g2=class extends sp{constructor(e,t,n=200){if(super(e,t,n),6!==e.length)throw new Error(`[VRCube] Wrong number of images! Expected 6, got ${e.length}`)}create(){return ft(this,null,(function*(){yield this.createThumbnailMesh(this.size),this.thumbnailMesh?this.updateMesh():yield this.createMesh()}))}updateMesh(){let e=this.thumbnailMesh,t=this.thumbnailImages.length;this.images.forEach(((n,i)=>ft(this,null,(function*(){let r=yield this.loadTexturesAsync([n]);e.material[i].map=r[0],t--,0===t&&(this.thumbnailImages=void 0)})))),this.destroyMesh(this.mesh),this.mesh=void 0}createMesh(){return ft(this,null,(function*(){let e=this.mesh;e.geometry=new va(this.size,this.size,this.size),e.geometry.scale(1,1,-1);let t=(yield this.loadTexturesAsync(this.images)).map((e=>new on({map:e,side:pi,transparent:!0})));e.material=t,this.add(e),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.thumbnailMesh=void 0,this.thumbnailImages=void 0)}))}},v2=class extends sp{constructor(e,t,n=200){if(super(e,t,n),24!==e.length)throw new Error(`[VRCube24Faces] Wrong number of images! Expected 24, got ${e.length}`);this.ratio=1,this.subPlaneWidth0=this.size*(this.ratio/(this.ratio+1)),this.subPlaneWidth1=this.size-this.subPlaneWidth0}create(){return ft(this,null,(function*(){yield this.createThumbnailMesh(this.size+.1),this.thumbnailMesh?this.createMesh():yield this.createMesh()}))}createMesh(){return ft(this,null,(function*(){var e;this.mesh=new er,this.mesh.scale.set(1,1,-1);let t=(yield this.loadTexturesAsync(this.images)).map((e=>new on({map:e,side:Ki,transparent:!0})));if(24!==t.length)throw new Error(`[VRCube24Faces] Wrong number of materials! Expected 24, got ${t.length}`);let n=this.createPlaneOfAFace(t.slice(0,4));n.rotateOnAxis(new O(0,1,0),-Math.PI/2),n.position.set(this.size/2,0,0);let i=this.createPlaneOfAFace(t.slice(4,8));i.rotateOnAxis(new O(0,1,0),Math.PI/2),i.position.set(-this.size/2,0,0);let r=this.createPlaneOfAFace(t.slice(8,12));r.rotateOnAxis(new O(1,0,0),-Math.PI/2),r.rotateOnAxis(new O(0,0,1),Math.PI),r.rotateOnAxis(new O(1,0,0),Math.PI),r.position.set(0,this.size/2,0);let a=this.createPlaneOfAFace(t.slice(12,16));a.rotateOnAxis(new O(1,0,0),Math.PI/2),a.rotateOnAxis(new O(0,0,1),Math.PI),a.rotateOnAxis(new O(1,0,0),Math.PI),a.position.set(0,-this.size/2,0);let s=this.createPlaneOfAFace(t.slice(16,20));s.rotateOnAxis(new O(0,1,0),Math.PI),s.position.set(0,0,this.size/2),this.createPlaneOfAFace(t.slice(20,24)).position.set(0,0,-this.size/2),this.add(this.mesh),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.remove(this.thumbnailMesh),null==(e=this.thumbnailMesh)||e.clear(),this.thumbnailMesh=void 0)}))}createPlaneOfAFace(e){var t;let n=new er,i=new ui(this.subPlaneWidth0,this.subPlaneWidth0),r=new ui(this.subPlaneWidth1,this.subPlaneWidth0),a=new ui(this.subPlaneWidth0,this.subPlaneWidth1),s=new ui(this.subPlaneWidth1,this.subPlaneWidth1),o=new xt(i,e[0]),l=new xt(r,e[1]),h=new xt(a,e[2]),c=new xt(s,e[3]);return o.position.set(this.subPlaneWidth1/2,this.subPlaneWidth1/2,0),l.position.set(-this.subPlaneWidth0/2,this.subPlaneWidth1/2,0),h.position.set(this.subPlaneWidth1/2,-this.subPlaneWidth0/2,0),c.position.set(-this.subPlaneWidth0/2,-this.subPlaneWidth0/2,0),o.geometry.scale(-1,1,1),l.geometry.scale(-1,1,1),h.geometry.scale(-1,1,1),c.geometry.scale(-1,1,1),n.add(o,l,h,c),null==(t=this.mesh)||t.add(n),n}},y2=class extends sp{constructor(e,t,n=100){if(super(e,t,n),1!==e.length)throw new Error(`[VRSphere] Wrong number of images! Expected 1, got ${e.length}`)}create(){return ft(this,null,(function*(){yield this.createThumbnailMesh(this.size+.1),this.thumbnailMesh?this.createMesh():yield this.createMesh()}))}createMesh(){return ft(this,null,(function*(){var e;let t=this.mesh;t.geometry=new za(this.size,100,100),t.geometry.scale(-1,1,1);let n=(yield this.loadTexturesAsync(this.images)).map((e=>new on({map:e,side:pi,transparent:!0})));t.material=n[0],this.add(t),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.remove(this.thumbnailMesh),null==(e=this.thumbnailMesh)||e.clear(),this.thumbnailMesh=void 0)}))}},Yve=class extends Zf{constructor(e,t){super(e),this.name="VRViewer",this.timer=Date.now(),this.loadedModels=[],this.minFov=50,this.maxFov=95,this.raycaster=new ia,this.autoRotate=!0,this.events=[],this.isMousePressing=!1,this.settings=Gv,this.viewpoints=[],this.activeViewpointId="",this.activePanoramaId="",this.viewpointAssetsMap=new Map,this.loadingPanos=[],this.onResize=()=>{this.viewerContainer&&this.viewerContainer.parentElement&&this.resize(this.viewerContainer.parentElement.clientWidth,this.viewerContainer.parentElement.clientHeight)},this.onMouseWheel=e=>{let t=e.deltaY<0?-5:5;this.updateFov(t)},this.applyOptionsAndAddToScene=(e,t,n,i)=>ft(this,null,(function*(){let r,a=Mt.getUpdateProgressFunc(i),s=Mt.getUpdateSubProgressFunc(70,90,i);if(a(0),se.info(`[Viewer] '${e}' is loaded in ${(Date.now()-this.timer)/1e3}s, adding to scene...`),this.timer=Date.now(),n.matrix&&16===n.matrix.length){let e=new et;e.elements=n.matrix,t.applyMatrix4(e)}if(t.matrixAutoUpdate=!1,t.updateMatrix(),t.traverse((e=>{e.matrixAutoUpdate&&(e.matrixAutoUpdate=!1,e.updateMatrix())})),n.merge&&this.merge(t),a(50),n.merge){let e=Date.now();Yf.createMeshBvhAsync([t],{saveOriginalIndex:!0}),se.info(`[Viewer] Creates mesh bvh cost ${(Date.now()-e)/1e3}s`)}a(60),t.traverse((e=>{e.geometry&&e.layers.enableAll(),e instanceof Ws&&(e.visible=!1)})),a(70),n.edges&&(r=yield Hn.createOutlines(t,void 0,s)),a(90);let o={modelId:this.getUniqueModelId(n.modelId||n.src),object:t,edges:r};this.addModel(o),a(100)})),this.viewerCfg=e,this.cameraCfg=t||{eye:[0,0,0],look:[0,0,0]},this.settings=Gv,this.cameraCfg.near&&(this.settings.camera.near=this.cameraCfg.near),this.cameraCfg.far&&(this.settings.camera.far=this.cameraCfg.far),this.setSpinnerVisibility(++this.jobCount>0),this.init(),this.animate(),this.setSpinnerVisibility(--this.jobCount>0)}init(){this.initSpinner(),this.initScene(),this.initRenderer(),this.initCamera(),this.initControls(),this.initLights(),this.initInputManager(),this.initEvents(),this.initOthers()}initScene(){let e=new _i;e.background=new ct(16777215),e.matrixAutoUpdate=!0,this.scene=e}initRenderer(){var e,t;this.renderer=new Ms({antialias:!0,preserveDrawingBuffer:!1}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),this.renderer.useLegacyLights=!1,this.css2dRenderer=new Nu,this.css2dRenderer.setSize(this.width,this.height),this.css2dRenderer.domElement.style.height="0",this.css2dRenderer.domElement.style.width="0",null==(e=this.viewerContainer)||e.appendChild(this.renderer.domElement),null==(t=this.viewerContainer)||t.appendChild(this.css2dRenderer.domElement)}initCamera(){this.scene&&(this.camera=new ur(75,this.width/this.height,this.settings.camera.near,this.settings.camera.far),this.scene.add(this.camera))}initControls(){if(!this.renderer||!this.camera)return;let e=this.camera,t=this.viewerCfg,n=new JA(e,this.renderer.domElement,!0);n.enabled=!0,n.autoRotate=this.autoRotate,n.autoRotateSpeed=t.autoRotateSpeed||-2,n.enablePan=!1,n.enableZoom=!1,n.enableRotate=!0,n.rotateSpeed=.3,n.minPolarAngle=.05*Math.PI,n.maxPolarAngle=.95*Math.PI,n.listenToKeyEvents(document.body),n.update(),this.controls=n,this.controlsHelper=new nP(e,n),this.controls.controlsHelper=this.controlsHelper,this.autoRotate&&this.controlsHelper.delayAutoRotate(),this.controlsHelper.automaticallyAdjustCameraPosition=!1,this.controls.addEventListener("end",(()=>{this.handleDragEnd&&this.handleDragEnd()}));let i=new O(0,0,0),r=new O(10,0,0);this.setCameraPositionAndDirection(i,r)}onKeyDown(e){return t=>{var n,i;let r=e.camera,a=e.controls;!r||!a||(("ArrowLeft"===t.code||"ArrowRight"===t.code||"ArrowUp"===t.code||"ArrowDown"===t.code)&&(null==(n=this.controlsHelper)||n.startToRotate(t)),null==(i=this.controlsHelper)||i.delayAutoRotate())}}initLights(){if(!this.scene)return;let e=new js(16777215,.3);e.position.set(-2,2,4),this.scene.add(e);let t=new Du(16777215,14540253,2);t.position.set(0,300,0),this.scene.add(t)}initInputManager(){this.viewerContainer&&(this.inputManager=new Jo(this.viewerContainer))}initEvents(){let e=this.renderer,t=this.camera;if(!e||!t)return;let n=!1,i=-1,r=-1;this.addEvent("keydown",this.onKeyDown(this)),this.addEvent("wheel",this.onMouseWheel),this.addEvent("pointerdown",(t=>{var a,s;i=t.x,r=t.y,n=!1,this.isMousePressing=!0,this.autoRotate&&(null==(a=this.controlsHelper)||a.delayAutoRotate()),t.button===jR.LEFT&&(null==(s=t.originalEvent)?void 0:s.target)instanceof HTMLCanvasElement&&(e.domElement.style.cursor="move")})),this.addEvent("pointermove",(e=>{i>=0&&r>=0&&(Math.abs(e.x-i)>5||Math.abs(e.y-r)>5)&&(n=!0)})),this.addEvent("pointerup",(i=>{var r,a,s;this.isMousePressing=!1,this.autoRotate&&(null==(r=this.controlsHelper)||r.delayAutoRotate()),e.domElement.style.cursor="auto";let o=i.button;if(!n&&o===jR.LEFT)if(null!=(a=i.originalEvent)&&a.target&&i.originalEvent.target instanceof HTMLDivElement){let e=Tf.tryFindObjectId(i.originalEvent.target);if(e){let t=null==(s=this.scene)?void 0:s.getObjectById(e);if(t){let e=t.userData.hotpoint;e&&(se.info("[Viewer] Clicked on hotpoint: ",e.hotpointId||e),this.onHotpointClicked&&this.onHotpointClicked(e))}}}else{let e=this.getIntersection(i);if(e){let n=e=>Mt.vectorToString(e),i=e.point,r=i.clone().sub(t.position).normalize();se.info(`[Viewer] Clicked at: ${n(i)},\n Camera position: ${n(t.position)},\n Target direction: ${n(r)}`)}}}))}initOthers(){!this.controls||!this.renderer||!this.camera||(this.renderer.domElement.style.outlineWidth="0")}animate(){var e,t,n;if(this.requestAnimationFrameHandle=requestAnimationFrame(this.animate.bind(this)),this.minFrameInterval>0){let e=Date.now()-this.lastFrameExecuteTime;if(e0&&!this.isMousePressing&&(t.autoRotateRemainingTime-=e,t.autoRotateRemainingTime<=0&&this.controls&&t.startAutoRotate())}}if(this.viewerContainer&&this.viewerContainer){let{width:e,height:t}=this.viewerContainer.getBoundingClientRect();(this.width!==e||this.height!==t)&&this.resize(e,t)}this.controls&&this.controls.update(),this.scene&&this.camera&&(this.dispatchEvent("BeforeRender"),null==(e=this.renderer)||e.render(this.scene,this.camera),null==(t=this.css2dRenderer)||t.render(this.scene,this.camera),null==(n=this.css3dRenderer)||n.render(this.scene,this.camera),this.dispatchEvent("AfterRender")),this.dispatchEvent("OnAnimate")}clearAllCachedPanoramas(){this.handleCameraUpdateInterval(),this.loadingPanos.forEach((e=>{e.creationPromise&&(e.creationPromise.cancel(),e.creationPromise=void 0)})),this.viewpointAssetsMap.forEach((e=>{var t;let n=e.panoramas;for(let i=n.length-1;i>=0;--i){let e=n[i];e.box.destroy(),null==(t=this.scene)||t.remove(e.box)}})),this.loadingPanos=[],this.viewpointAssetsMap.clear(),this.activePanoramaId="",this.activePanoramaId=""}destroy(){var e;this.events.forEach((e=>{var t;return null==(t=this.inputManager)?void 0:t.removeEventListener(e.type,e.func)})),this.events=[],this.clearAllCachedPanoramas(),this.css2dRenderer&&(null==(e=this.viewerContainer)||e.removeChild(this.css2dRenderer.domElement)),super.destroy()}updateFov(e){var t;let n=this.camera;if(!n)return;let i=this.minFov,r=this.maxFov,a=e=>{let t=n.fov+e;t=Math.min(t,r),t=Math.max(t,i),n.fov!==t&&(n.fov=t,n.updateProjectionMatrix())},s=e/20;for(let o=0;o<20;++o)setTimeout((()=>a(s)),5*o);this.autoRotate&&(null==(t=this.controlsHelper)||t.delayAutoRotate())}setMinAndMaxFov(e,t){let n=this.controls;n&&(this.minFov=e,this.maxFov=t,n.minFov=e,n.maxFov=t)}resize(e,t){super.resize(e,t),t>0&&(this.css2dRenderer&&(this.css2dRenderer.setSize(e,t),this.css2dRenderer.domElement.style.height="0",this.css2dRenderer.domElement.style.width="0"),this.css3dRenderer&&this.css3dRenderer.setSize(e,t))}enableAutoRotate(e){this.controls&&(this.autoRotate=e,this.controls.autoRotate=e)}setAutoRotateSpeed(e=1){this.controls&&(this.controls.autoRotateSpeed=e)}setCameraFov(e=75){let t=this.camera;t&&(t.fov=e,t.updateProjectionMatrix())}addEvent(e,t){var n;null==(n=this.inputManager)||n.addEventListener(e,t),this.events.push({type:e,func:t})}setCameraPositionAndDirection(e,t,n){let i,r,a=this.camera,s=this.controls;if(!a||!s)return;i=t?Array.isArray(t)?new O(t[0],t[1],t[2]):new O(t.x,t.y,t.z):s.target.clone().sub(a.position),i.normalize(),r=Array.isArray(e)?new O(e[0],e[1],e[2]):new O(e.x,e.y,e.z);let o=r.clone().addScaledVector(i,.01);this.fianlCameraPosition=r,this.finalCameraTarget=o;let l=(e,t)=>{a.position.set(e.x,e.y,e.z),s.target.set(t.x,t.y,t.z),s.update()};if(!1===n)return this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),void l(r,o);let h=a.position.clone(),c=s.target.clone(),u=500,d=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval((()=>{let e=Date.now()-d;e>u&&(e=u);let t=(e,t,n)=>{let i=e.x+(t.x-e.x)*n,r=e.y+(t.y-e.y)*n,a=e.z+(t.z-e.z)*n;return new O(i,r,a)},n=t(h,r,e/u),i=t(c,o,e/u);l(n,i),e>=u&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0)}),10)}getCameraPositionAndDirection(){let e=this.camera;if(!e)return;let t=e.position,n=new O;return e.getWorldDirection(n),{position:{x:t.x,y:t.y,z:t.z},direction:{x:n.x,y:n.y,z:n.z}}}getCameraFov(){let e=this.camera;if(e)return e.fov}setViewpoints(e){this.handleCameraUpdateInterval(),this.viewpointAssetsMap.size>0&&(this.viewpointAssetsMap.forEach((e=>{let t=e.panoramas,n=e.css2dObjects;t.forEach((e=>{var t;e.box.destroy(),null==(t=this.scene)||t.remove(e.box)})),n.forEach((e=>{var t;null==(t=this.scene)||t.remove(e)}))})),this.viewpointAssetsMap.clear()),this.loadingPanos.forEach((e=>{e.creationPromise&&(e.creationPromise.cancel(),e.creationPromise=void 0)})),this.loadingPanos=[],this.activeViewpointId="",this.activePanoramaId="",this.viewpoints=e}loadModel(e,t){return ft(this,null,(function*(){var n,i;this.timer=Date.now(),this.increaseJobCount();let r=e.modelId||e.src,a=this.translate("ProgressBar.Loading"),s=e=>{var n;null==(n=this.loadingProgressBar)||n.updateProgress(r,a,e),t&&t(new ProgressEvent("LoadProgress",{loaded:e,total:100}))},o=(e,n,i)=>{var s;let o=100*e.loaded/e.total;o=o*(i-n)/100+n,null==(s=this.loadingProgressBar)||s.updateProgress(r,a,o),t&&t(new ProgressEvent("LoadProgress",{loaded:o,total:100}))},l=e=>o(e,0,50),h=e=>o(e,50,99);null==(n=this.loadingProgressBar)||n.addProgressItem(r),s(0);try{let t=yield(new $a).loadModel(e.src,e.fileFormat,l);if(t)return yield this.applyOptionsAndAddToScene(e.src,t,e,h),Promise.resolve()}catch(t){let i=`Error loading ${e.src}`;return se.error(i,t),Promise.reject(i)}finally{this.decreaseJobCount(),s(100),null==(i=this.loadingProgressBar)||i.delayRemoveProgressItem(r)}return Promise.reject()}))}setModelVisibility(e,t){let n=this.loadedModels.find((t=>t.modelId===e)),i=n&&n.object;if(!i)throw new Error(`Failed to find model by modelId '${e}'!`);i.visible=t,this.enableRender()}addModel(e){if(!this.scene||!this.renderer)return;this.increaseJobCount();let t=(new Ot).setFromObject(e.object);e.bbox||(e.bbox=t),this.scene.add(e.object),this.loadedModels.push(e),se.info(`[Viewer] Added '${e.modelId}' to scene in ${(Date.now()-this.timer)/1e3}s`),this.renderer.shadowMap.needsUpdate=!0,this.enableRender(),this.dispatchEvent("ModelLoaded",{modelId:e.modelId,bbox:t}),this.decreaseJobCount()}addPanorama(e,t){let n=this.viewpoints.find((t=>t.id===e));if(!n)throw new Error(`[Viewer] Failed to find viewpoint by id '${e}'`);n.panoramas||(n.panoramas=[]),n.panoramas.push(t)}findPanorama(e,t){let n=this.viewpoints.find((t=>t.id===e));if(n&&n.panoramas)return n.panoramas.find((e=>e.id===t))}setHotpointsVisibility(e,t="",n=[]){if(!this.viewpoints)return;let i=t=>{var i;let r=this.viewpointAssetsMap.get(t.id),a=(null==r?void 0:r.css2dObjects)||[];null==(i=t.hotpoints)||i.forEach((i=>{if(n&&n.length>0){if(-1===n.findIndex((e=>e===i.hotpointId)))return;if(i.visible=e,this.activeViewpointId===t.id){let t=a.find((e=>e.userData.hotpoint.hotpointId===i.hotpointId));t&&(t.visible=e)}}else i.visible=e,this.activeViewpointId===t.id&&a.forEach((t=>t.visible=e))}))};if(t){let e=this.viewpoints.find((e=>e.id===t));e&&i(e)}else this.viewpoints.forEach((e=>i(e)))}addHotpoints(e){if(!this.activeViewpointId||!e)return;let t=this.viewpoints.find((e=>e.id===this.activeViewpointId)),n=this.viewpointAssetsMap.get(this.activeViewpointId);!t||!n||(t.hotpoints||(t.hotpoints=[]),e.forEach((e=>{var i,r;if(-1!==(null==(i=t.hotpoints)?void 0:i.findIndex((t=>t.hotpointId===e.hotpointId))))return void se.warn(`[Viewer] Duplicated hotpointId: ${e.hotpointId}`);let a=t.position||[0,0,0],s=e.anchorPosition,o=Tf.createHotpoint(e.html),l=new O(s[0],s[1],s[2]),h=new O(a[0],a[1],a[2]);this.relocateAnchorIfTooCloseToCamera(o,l,h),o.visible=!1!==e.visible,o.userData.hotpoint=e,n.css2dObjects.push(o),null==(r=this.scene)||r.add(o),t.hotpoints.push(e)})))}removeHotpoints(e){if(!this.activeViewpointId||!e)return;let t=this.viewpoints.find((e=>e.id===this.activeViewpointId)),n=this.viewpointAssetsMap.get(this.activeViewpointId);!t||!n||e.forEach((e=>{var i,r;if(t.hotpoints)for(let n=t.hotpoints.length-1;n>=0;--n)e===t.hotpoints[n].hotpointId&&t.hotpoints.splice(n,1);for(let t=n.css2dObjects.length-1;t>=0;--t){let a=n.css2dObjects[t];e===(null==(i=a.userData.hotpoint)?void 0:i.hotpointId)&&(n.css2dObjects.splice(t,1),null==(r=this.scene)||r.remove(a))}}))}activeViewpointById(e,t,n,i){this.activatePanoramaById(e,"",!0,t,n,i)}activatePanoramaById(e,t,n=!0,i,r,a){if(e===this.activeViewpointId&&t===this.activePanoramaId)return;let s=this.viewpoints.find((t=>t.id===e));s&&this.activatePanorama(s,t,n,i,r,a)}removeCachedPanoramas(e={}){this.viewpointAssetsMap.forEach(((t,n)=>{var i;let r=t.panoramas;for(let a=r.length-1;a>=0;--a){let t=r[a];if(n===this.activeViewpointId&&t.id===this.activePanoramaId||e[n]&&e[n].includes(t.id))return;t.box.destroy(),null==(i=this.scene)||i.remove(t.box),r.splice(a,1)}}))}unlimitControlsAndShowAssets(e=!1){if(this.controls){let e=this.controls;e.enablePan=!0,e.enableZoom=!0}this.viewpointAssetsMap.forEach((t=>{t.panoramas.forEach((e=>{e.box.visible=!0})),e&&t.css2dObjects.forEach((e=>{e.visible=!0}))}))}relocateAnchorIfTooCloseToCamera(e,t,n){let i=this.camera;if(!i)return se.error("[Viewer] Camera is not initialized"),void e.position.set(t.x,t.y,t.z);let r,a=Math.abs(t.distanceTo(n));if(a{let i=e.panoramas.find((e=>e.id===t)),r=null==i?void 0:i.box;r&&(n?this.fadeIn(r):this.fadeOut(r))},c=(e,t)=>{e.css2dObjects.forEach((e=>{t?!1!==e.userData.hotpoint.visible&&(e.visible=t):e.visible=t}))},u=()=>{var t;let r=new O(0,0,0),a=new O(1,0,0),s=null==(t=this.getCameraPositionAndDirection())?void 0:t.direction;s&&a.set(s.x,s.y,s.z);let o=e.position;if(o&&3===o.length&&r.set(o[0],o[1],o[2]),n){let t=e.initialDirection;t&&3===t.length&&a.set(t[0],t[1],t[2])}this.setCameraPositionAndDirection(r,a,i)};!t&&(null==(s=e.panoramas)?void 0:s.length)>0&&(t=e.panoramas[0].id||""),this.handleCameraUpdateInterval();let d=this.viewpointAssetsMap.get(this.activeViewpointId),p=this.viewpointAssetsMap.get(e.id);if(this.activeViewpointId&&d&&(this.activeViewpointId!==e.id&&c(d,!1),h(d,this.activePanoramaId,!1)),p&&p.panoramas.find((e=>e.id===t)))return h(p,t,!0),this.activeViewpointId!==e.id&&c(p,!0),this.activeViewpointId!==e.id&&u(),this.activeViewpointId=e.id,this.activePanoramaId=t,void(r&&r(e));this.activeViewpointId=e.id,this.activePanoramaId=t;try{if(this.loadingPanos.some((n=>n.viewpointId===e.id&&n.panoramaId===t)))return void se.warn(`[Viewer] Panorama with viewpointId=${e.id} and panoramaId=${t} is being created`);let n=new _A(this.createBoxByImageOrImages(e,t));this.loadingPanos.push({viewpointId:e.id,panoramaId:t,creationPromise:n});let i=yield n.promise;this.loadingPanos=this.loadingPanos.filter((n=>n.viewpointId!==e.id||n.panoramaId!==t));let a=e.position;a&&3===a.length&&i.position.set(a[0],a[1],a[2]),this.activeViewpointId===e.id&&this.activePanoramaId===t?(this.fadeIn(i),null==(o=this.scene)||o.add(i),u()):(i.visible=!1,null==(l=this.scene)||l.add(i));let s={id:t,box:i},h=this.viewpointAssetsMap.get(e.id);if(h)h.panoramas.push(s),c(h,!0);else{let n=[];e.hotpoints&&e.hotpoints.forEach((r=>{let a=r.anchorPosition,s=Tf.createHotpoint(r.html);s.visible=!1!==r.visible,s.userData.hotpoint=r;let o=new O(a[0],a[1],a[2]);this.relocateAnchorIfTooCloseToCamera(s,o,i.position),(this.activeViewpointId!==e.id||this.activePanoramaId!==t)&&(s.visible=!1),n.push(s)}));let r={panoramas:[s],css2dObjects:n};this.viewpointAssetsMap.set(e.id,r),n.forEach((e=>{var t;return null==(t=this.scene)?void 0:t.add(e)}))}r&&r(e)}catch(e){"cancel"!==e.type&&a&&a(e)}}))}createBoxByImageOrImages(e,t){var n;let i=e.imageOrImages,r=e.thumbnailImages;if((null==(n=e.panoramas)?void 0:n.length)>0){let n=this.findPanorama(e.id,t);n||(n=e.panoramas[0],se.warn(`[Viewer] Failed to find panorama by id '${t}', will use the first one`)),i=n.images,r=n.thumbnails}if(!i)throw new Error("[Viewer] Invalid images!");if(Array.isArray(i)||(i=[i]),1===i.length)return this.createBoxByImage(i,r);if(6===i.length)return this.createBoxBy6Images(i,r);if(24===i.length)return this.createBoxBy24Images(i,r);throw new Error(`[Viewer] Wrong number of images! Expected 1/6/24, got ${i.length}`)}createBoxByImage(e,t){return ft(this,null,(function*(){let n=new y2(e,t);return yield n.create(),n}))}createBoxBy6Images(e,t){return ft(this,null,(function*(){if(6!==e.length)throw new Error(`[VRCube] Wrong number of images! Expected 6, got ${e.length}`);let n=new g2(e,t);return yield n.create(),n}))}createBoxBy24Images(e,t){return ft(this,null,(function*(){if(24!==e.length)throw new Error(`[VRCube] Wrong number of images! Expected 24, got ${e.length}`);let n=new v2(e,t);return yield n.create(),n}))}getIntersection(e){if(!this.camera||!this.scene)return;let t=this.viewpointAssetsMap.get(this.activeViewpointId);if(!t)return;let n=t.panoramas.find((e=>e.id===this.activePanoramaId));if(!n)return;let i=n.box,r=this.viewerContainer,a=new be;e&&(a=cn.getScreenPointByEvent(e,r));let s=cn.screenPoint2NdcPoint(a,this.camera,r);this.raycaster.setFromCamera(s,this.camera);let o=[i],l=this.raycaster.intersectObjects(o,!0)||[];return l.length>0?l.find((e=>{let t=e.object;return t.visible&&t instanceof xt})):void 0}fadeIn(e,t=500){e.fadeIn(t)}fadeOut(e,t=1e3){e.fadeOut(t)}handleCameraUpdateInterval(){if(this.cameraUpdateInterval){clearInterval(this.cameraUpdateInterval);let e=this.fianlCameraPosition,t=this.finalCameraTarget;if(e&&t&&this.controls&&this.camera){this.camera.position.set(e.x,e.y,e.z);let n=this.controls;n.target.set(t.x,t.y,t.z),n.update()}this.cameraUpdateInterval=void 0}this.fianlCameraPosition=void 0,this.finalCameraTarget=void 0}getHitResult(e){let t={location:null};if(!this.camera)return t;let n=this.getIntersection(e);return t.location=n?{x:n.point.x,y:n.point.y,z:n.point.z}:null,t}lookToPosition(e){var t;if(!this.camera)return;this.handleCameraUpdateInterval();let n=new O(e[0],e[1],e[2]).clone().sub(this.camera.position);null==(t=this.controlsHelper)||t.lookTo(n)}merge(e){this.increaseJobCount();try{let t=[];e.traverse((e=>{e.geometry&&e.material&&t.push(e)})),Ar.deepMerge(t,e)}finally{this.decreaseJobCount()}}},x2=class extends an{constructor(e=!0,t=!1){super(),this.name="COORDINATE_AXES",this.AXIS_LENGTH=1,this.AXIS_COLOR_X=16711680,this.AXIS_COLOR_Y=65280,this.AXIS_COLOR_Z=255;let n=new O(0,0,0),i=new O(1,0,0),r=new O(0,1,0),a=new Mc(i,n,this.AXIS_LENGTH,this.AXIS_COLOR_X,0,0),s=new Mc(r,n,this.AXIS_LENGTH,this.AXIS_COLOR_Y,0,0);if(this.add(a,s),!t){let e=new O(0,0,1),t=new Mc(e,n,this.AXIS_LENGTH,this.AXIS_COLOR_Z,0,0);this.add(t)}e&&this.addTexts(t)}addTexts(e=!1){let t=this.createText("X","#ff0000"),n=this.createText("Y","#00ff00");if(t.position.set(this.AXIS_LENGTH+.1,0,0),n.position.set(.1,this.AXIS_LENGTH,.1),this.add(t,n),!e){let e=this.createText("Z","#0000ff");e.position.set(0,0,this.AXIS_LENGTH+.1),this.add(e)}}createText(e,t,n=14){let i=document.createElement("div");i.innerHTML=e;let r=i.style;return r.color=t,r.width=`${n}px`,r.height=`${n}px`,r.textAlign="center",r.top="0px",r.left="0px",new zv(i)}},$ve=class extends fr{constructor(e,t){super(e,{id:"AxisGizmoPlugin"}),this.ignoreZAxis=!1,this.cfg=t||{},this.ignoreZAxis=!(null==t||!t.ignoreZAxis),this.hostCamera=e.camera,this.init()}init(){this.initRenderer(),this.initScene(),this.animate(),this.viewer.addEventListener("CameraChanged",(()=>{this.hostCamera=this.viewer.camera}))}initRenderer(){var e;let t,n=100,i=100;if(this.cfg.containerId&&(t=document.getElementById(this.cfg.containerId),t&&(n=t.clientWidth,i=t.clientHeight)),!t){let n="axisGizmo";t=document.createElement("div"),t.id=n,null==(e=this.viewer.widgetContainer)||e.appendChild(t)}this.renderer=new Ms({antialias:!0,alpha:!0}),this.renderer.setSize(n,i),t.appendChild(this.renderer.domElement),this.css2dRenderer=new Nu,this.css2dRenderer.setSize(n,i),this.css2dRenderer.domElement.style.height="0",this.css2dRenderer.domElement.style.width="0",t.appendChild(this.css2dRenderer.domElement)}initScene(){this.scene=new _i,this.camera=new Ur(-1,1,1,-1,.1,100),this.scene.add(this.camera),this.coordinateAxes=new x2(!0,this.ignoreZAxis),this.scene.add(this.coordinateAxes)}setHostCamera(e){this.hostCamera=e}render(){var e;!this.scene||!this.camera||(this.renderer&&(this.update(),this.renderer.render(this.scene,this.camera)),null==(e=this.css2dRenderer)||e.render(this.scene,this.camera))}animate(){requestAnimationFrame(this.animate.bind(this)),this.render()}update(){if(!this.hostCamera)return;let e=this.hostCamera;if(e){let t=new O;e.getWorldDirection(t);let n=e.up;this.updateCameraDirection(t,n)}}updateCameraDirection(e,t){if(!this.camera||!e)return;e.normalize();let n=.3;this.camera.position.set(2*-e.x+n,2*-e.y+n,2*-e.z+n),this.camera.lookAt(n,n,n),this.camera.up=t}destroy(){var e,t;super.destroy(),this.scene&&this.camera&&this.coordinateAxes&&(this.scene.clear(),this.scene=void 0,this.css2dRenderer&&(null==(e=this.container)||e.removeChild(this.css2dRenderer.domElement),this.css2dRenderer=void 0),this.renderer&&(null==(t=this.container)||t.removeChild(this.renderer.domElement),this.renderer.dispose(),this.renderer.forceContextLoss(),this.renderer=void 0),this.hostCamera=void 0,this.camera=void 0,this.coordinateAxes=void 0)}},cV=ji(Fl(),1),qvt="bottomBar",Wvt={"gemini-viewer-threejs-statistics":{icon:{default:"icon-info",active:"icon-info-filled",iconFont:"gemini-viewer-icon"},mutexIds:["gemini-viewer-threejs-cameraInfo","gemini-viewer-threejs-tips"],onActive:e=>{let t=document.createElement("span");if(!e.viewer.scene)return void(t.textContent="Failed!");t.textContent="Comupting...";let n={components:{},points:0,faces:0,materials:{},lights:{}},i=["SKYBOX","GROUND_GRID","GROUND_GRASS","BIM_VIEWER_BOX_HELPER"];e.viewer.scene.traverse((e=>{(e instanceof xt||e instanceof hr||e instanceof ii)&&!i.includes(e.name)?((e,t)=>{if(t.components[e.type]?t.components[e.type]++:t.components[e.type]=1,e.geometry){let n=e.geometry;if(e instanceof xt)if(n.index&&n.index.count){let i=Math.round(n.index.count/3);e instanceof Pi&&(i*=e.count),t.faces+=i}else if(n.groups.length>0)for(let e=0;e{t.materials[e]?t.materials[e]++:t.materials[e]=1},i=e.material;i instanceof yr?n(i.id):Array.isArray(i)&&i.forEach((e=>n(e.id)))})(e,n):e instanceof Ws&&(n.lights[e.type]?n.lights[e.type]++:n.lights[e.type]=1)}));let r=(e,n)=>{t.innerHTML+=`

${e}:${n}

`};t.innerHTML="";let a=` (${(e=>{var t;let n=null==(t=e.renderer)?void 0:t.domElement;return null==n?void 0:n.dataset.engine})(e.viewer)})`;r("Version",`${$E}${a}`),r("Components",JSON.stringify(n.components)),r("Points",n.points),r("Faces",n.faces),r("Materials",Object.keys(n.materials).length),r("Lights",JSON.stringify(n.lights)),"DxfViewer"===e.viewer.name&&r("Entities",e.viewer.getEntitiesCount()),e.tooltip.setContent(t),e.tooltip.show()},onDeactive:e=>{e.tooltip.hide()},onUpdate:e=>{let t=e.viewer.renderer,n=document.createElement("span"),i=(e,t)=>{n.innerHTML+=`

${e}:${t}

`};n.innerHTML="

-- Renderer Info --

";let r=null==t?void 0:t.info;i("Drawcalls",JSON.stringify(null==r?void 0:r.render.calls)),i("Points",JSON.stringify(null==r?void 0:r.render.points)),i("Lines",JSON.stringify(null==r?void 0:r.render.lines)),i("Triangles",JSON.stringify(null==r?void 0:r.render.triangles)),i("Geometries",JSON.stringify(null==r?void 0:r.memory.geometries)),i("Textures",JSON.stringify(null==r?void 0:r.memory.textures)),e.tooltip.updateChildContent(n)}},"gemini-viewer-threejs-cameraInfo":{icon:{default:"icon-view",active:"icon-view-filled",iconFont:"gemini-viewer-icon"},mutexIds:["gemini-viewer-threejs-statistics","gemini-viewer-threejs-tips"],onActive:e=>{let t=()=>{if(!e.viewer||!e.viewer.camera||!e.viewer.controls)return;let n=e.viewer.camera,i=e.viewer.controls,r=e=>Mt.numberToString(e),a=e=>Mt.vectorToString(e),s=n.position,o=i instanceof ba?i.getTarget(new O):i.target;if(s){let t=document.createElement("span");t.innerHTML=`\n

Camera position:${a(s)}

\n

Camera target:${a(o)}

`,n instanceof Ur&&(t.innerHTML+=`\n

top: ${r(n.top)}, bottom: ${r(n.bottom)}, left: ${r(n.left)}, right: ${r(n.right)}

\n

zoom: ${r(n.zoom)}

`),e.tooltip.setContent(t)}e.active||window.removeEventListener("mouseup",t)};if(t(),window.addEventListener("mouseup",t),"BimViewer"===e.viewer.name){let n=e.viewer.controls;null==n||n.addEventListener("update",t)}else e.viewer.controls.addEventListener("change",t);e.tooltip.show()},onDeactive:e=>{e.tooltip.hide()}},"gemini-viewer-threejs-tips":{icon:{default:"icon-more",iconFont:"gemini-viewer-icon"},mutexIds:["gemini-viewer-threejs-cameraInfo","gemini-viewer-threejs-cameraInfo"],onActive:e=>{let t=document.createElement("span");"BimViewer"===e.viewer.name?t.innerHTML="\n

W: Move forward

\n

A: Move backward

\n

S: Move left

\n

D: Move right

\n

Q: Rise up

\n

E: Lower down

\n

\u2191: Rotate up

\n

\u2193: Rotate down

\n

\u2190: Rotate to left

\n

\u2192: Rotate to right

\n ":"DxfViewer"===e.viewer.name?t.innerHTML="\n

\u2191: Move up

\n

\u2193: Move down

\n

\u2190: Move to left

\n

\u2192: Move to right

\n ":"VRViewer"===e.viewer.name?t.innerHTML="\n

\u2191: Rotate up

\n

\u2193: Rotate down

\n

\u2190: Rotate to left

\n

\u2192: Rotate to right

\n ":t.innerHTML="\n

Nothing to show

\n ",e.tooltip.setContent(t),e.tooltip.show()},onDeactive:e=>{e.tooltip.hide()}}},Zve=class extends fr{constructor(e){super(e,{id:"BottomBarPlugin"}),this.itemList=new Map,this.init()}update(){this.itemList.forEach((e=>{e.update()}))}init(){var e;let t=document.createElement("div");t.id=qvt,t.classList.add("bottom-bar"),(0,cV.forEach)(Wvt,((e,n)=>{let i=this.createItem(this.viewer,n,e);t.appendChild(i.element)})),this.element=t,null==(e=this.viewer.widgetContainer)||e.appendChild(this.element),this.viewer.addEventListener("AfterRender",(()=>{this.update()}))}createItem(e,t,n){let i=new lV(e,this,t,n);return this.itemList.set(t,i),i}},lV=class{constructor(e,t,n,i){this.viewer=e,this.bottomBar=t,this.menuId=n,this.cfg=i,this.eventBus=Ay(),this.active=!1,this.itemconfig=i,this.element=this.createButton(this.menuId,i),this.tooltip=new Yl(n+"-tooltip",null,{parentNode:e.widgetContainer}),this.eventBus.on("activeChange",(e=>{e?(this.element.classList.add("active"),(0,cV.forEach)(i.mutexIds,(e=>{var t;let n=null==(t=this.bottomBar)?void 0:t.itemList.get(e);n&&n.active&&n.setActive(!1)})),i.onActive&&i.onActive(this)):(this.element.classList.remove("active"),i.onDeactive&&i.onDeactive(this)),this.element instanceof HTMLElement&&SA(this.element.classList,i.icon,this.active)}))}createButton(e,t){let n=document.createElement("i");n.id=e;let{default:i="icon-new",iconFont:r=qv}=t.icon;return n.classList.add("icon"),n.classList.add(r),n.classList.add(i),n.onclick=()=>{this.active=!this.active,t.onClick&&t.onClick(this),this.eventBus.emit("activeChange",this.active)},n}setActive(e){this.active=e,this.eventBus.emit("activeChange",this.active)}update(){this.active&&this.itemconfig.onUpdate&&this.itemconfig.onUpdate(this)}},ug=ji(Fl(),1),k_=ji(Fl(),1),fs=ji(Fl(),1),b2=(e=>(e[e.ClickEvent=1]="ClickEvent",e[e.Popup=2]="Popup",e[e.SubMenu=3]="SubMenu",e[e.Switch=4]="Switch",e))(b2||{}),E2=(e=>(e.HomeView="HomeView",e.OrthoMode="OrthoMode",e.Measure="Measure",e.MeasureDistance="MeasureDistance",e.MeasureArea="MeasureArea",e.MeasureAngle="MeasureAngle",e.MeasureCoordinate="MeasureCoordinate",e.MeasureClear="MeasureClear",e.MarkupVisibility="MarkupVisibility",e.Markup="Markup",e.MarkupArrow="Arrow",e.MarkupRect="Rect",e.MarkupCloudRect="CloudRect",e.MarkupPolyLine="PolyLine",e.MarkupCloudLine="CloudLine",e.MarkupEllipse="Ellipse",e.MarkupCircle="Circle",e.MarkupDot="Dot",e.MarkupText="Text",e.MarkupX="X",e.MarkupStrokeStyle="StrokeStyle",e.MarkupLineWidth="LineWidth",e.MarkupLineWidth2="LineWidth2",e.MarkupLineWidth5="LineWidth5",e.MarkupLineWidth10="LineWidth10",e.MarkupFontSize="FontSize",e.MarkupFontSize14="FontSize14",e.MarkupFontSize18="FontSize18",e.MarkupFontSize24="FontSize24",e.MarkupClear="MarkupClear",e.MarkupQuit="MarkupQuit",e.Section="Section",e.SectionBox="SectionBox",e.SectionPlane="SectionPlane",e.SectionAxis="SectionAxis",e.BimTree="BimTree",e.Viewpoint="Viewpoint",e.Annotation="Annotation",e.Property="Property",e.Settings="Settings",e.Compared="Compared",e.QuitCompare="QuitCompare",e.Fullscreen="FullScreen",e.SceneClear="SceneClear",e.Layers="Layers",e.ZoomToRectangle="ZoomToRectangle",e.Screenshot="GetScreenshot",e))(E2||{}),_2=[["HomeView","OrthoMode","FullScreen","ZoomToRectangle","GetScreenshot"],["Measure","Markup","MarkupVisibility","Section"],["BimTree","Viewpoint","Annotation","Property","Compared","QuitCompare","Layers"],["Settings"]],ap=class{constructor(e,t,n=[]){this.visible=!0,this.menuList=new Map,this.keydown=e=>{var t,n;if(this.visible&&"Escape"===e.code){if(null!=(t=this.viewer.measurePlugin)&&t.isMeasuring()||null!=(n=this.viewer.getMarkupManager())&&n.isMarkupActive())return;this.clearActive()}},this.viewer=e,this.menuCfg=t,this.groupCfg=n,this.init(),window.addEventListener("keydown",this.keydown,!1)}init(){var e;let t=document.createElement("div");t.classList.add("toolbar");let n=this.menuCfg;this.groupCfg.forEach(((e,i)=>{let r=document.createElement("div");r.classList.add("toolbar-group");let a=document.createElement("div");a.classList.add("toolbar-group-division"),e.forEach((e=>{let t=(0,fs.get)(n,e);if(t&&!1!==t.visible){let n=this.createToolbarMenu(this.viewer,e,t);r.appendChild(n.element)}})),r.hasChildNodes()&&(i&&t.appendChild(a),t.appendChild(r))})),this.element=t,null==(e=this.viewer.widgetContainer)||e.appendChild(t),t.oncontextmenu=e=>{e.preventDefault()}}clearActive(){if(this.activateMenuId){let e=this.menuList.get(this.activateMenuId);null==e||e.setActive(!1),this.activateMenuId=void 0}}setActive(e,t){let n=this.menuList.get(e);null==n||n.setActive(t),this.activateMenuId=t?e:void 0}createToolbarMenu(e,t,n,i){let r=new uV(e,this,t,n,i);if(this.menuList.set(t,r),n.children){let t=document.createElement("div");t.classList.add("toolbar-sub-menu");let i=document.createElement("div");i.classList.add("toolbar-sub-menu-list"),t.appendChild(i),(0,fs.forIn)(n.children,((t,n)=>{if(t&&!1!==t.visible){let a=this.createToolbarMenu(e,n,t,r);i.appendChild(a.element)}})),r.element.appendChild(t)}return r}updateMenu(e,t){(0,fs.assign)(this.menuCfg[e],t),this.refresh()}updateMenus(e){(0,fs.forEach)(e,(({menuId:e,config:t})=>{(0,fs.assign)(this.menuCfg[e],t)})),this.refresh()}addMenu(e,t,n){if((0,fs.keys)(this.menuCfg).includes(e))se.error("[Toolbar]",e,"exists.");else{if((0,fs.assign)(this.menuCfg,{[e]:t}),n){let[t,i]=n;if(t>this.groupCfg.length-1)this.groupCfg=(0,fs.concat)(this.groupCfg,[[e]]);else{let n=this.groupCfg[t];this.groupCfg[t]=i>n.length-1?(0,fs.concat)(n,e):(0,fs.concat)((0,fs.take)(n,i),e,(0,fs.takeRight)(n,n.length-i))}}else this.groupCfg=(0,fs.concat)(this.groupCfg,[[e]]);this.refresh()}}refresh(){this.element&&this.element.remove(),this.element=void 0,this.menuList.clear(),this.init()}show(){this.element&&(this.element.style.display=""),this.visible=!0}hide(){this.element&&(this.element.style.display="none"),this.visible=!1}destroy(){this.element&&this.element.remove(),this.element=void 0,this.menuList.clear(),window.removeEventListener("keydown",this.keydown,!1)}},uV=class{constructor(e,t,n,i,r){this.eventBus=Ay(),this.toolbar=t,this.menuId=n,this.active=i.defaultActive||!1,this.element=i.customElement&&i.customElement(e,this.menuId,i)||this.createButton(e,this.menuId,i),this.eventBus.on("activeChange",(t=>{t?(this.element.classList.add("active"),(0,fs.forEach)(i.mutexIds,(e=>{var t;let n=null==(t=this.toolbar)?void 0:t.menuList.get(e);n&&n.active&&n.setActive(!1)})),i.onActive&&i.onActive(e)):(this.element.classList.remove("active"),i.onDeactive&&i.onDeactive(e)),this.element.firstChild instanceof HTMLElement&&SA(this.element.firstChild.classList,i.icon,this.active),r&&r.setActive(t)})),Dn.isMobile?(this.element.ontouchstart=t=>{switch(this.element.classList.toggle("toolbar-parent-menu-active"),this.element.classList.toggle("toolbar-menu-active"),t.stopPropagation(),i.type){case 1:i.onClick&&i.onClick(e,this.toolbar,t);break;case 4:i.onClick&&i.onClick(e,this.toolbar,t),this.active=!this.active,this.toolbar.activateMenuId=this.menuId,this.eventBus.emit("activeChange",this.active)}},this.element.addEventListener("touchend",(()=>{r&&r.element.classList.remove("toolbar-parent-menu-active")}))):(this.element.onclick=t=>{switch(t.stopPropagation(),i.type){case 1:i.onClick&&i.onClick(e,this.toolbar,t);break;case 4:i.onClick&&i.onClick(e,this.toolbar,t),this.active=!this.active,this.toolbar.activateMenuId=this.menuId,this.eventBus.emit("activeChange",this.active)}r&&r.element.classList.remove("toolbar-parent-menu-active")},this.element.addEventListener("mouseover",(()=>{this.element.classList.toggle("toolbar-parent-menu-active"),this.element.classList.add("toolbar-menu-active")})),this.element.addEventListener("mouseout",(()=>{this.element.classList.contains("toolbar-parent-menu-active")&&this.element.classList.remove("toolbar-parent-menu-active"),this.element.classList.remove("toolbar-menu-active")})))}createButton(e,t,n){let i=document.createElement("div");i.id=t,i.classList.add("toolbar-menu"),n.defaultActive&&i.classList.add("active"),n.children&&i.classList.add("toolbar-parent-menu");let{default:r="icon-new",iconFont:a=qv}=n.icon;return i.innerHTML=`
`,i.title=eh(n.menuName),i.innerHTML+=`${i.title}`,i}setActive(e){this.active=e,e?this.element.classList.add("toolbar-menu-active"):this.element.classList.remove("toolbar-menu-active"),this.eventBus.emit("activeChange",this.active)}},Kve={Arrow:{menuName:"Toolbar.markupArrow",icon:{default:"icon-arrow"},type:4,onActive:e=>{e.activateMarkup("ArrowMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},Rect:{defaultActive:!1,menuName:"Toolbar.markupRect",icon:{default:"icon-rectangle"},type:4,onActive:e=>{e.activateMarkup("RectMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Arrow","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},CloudRect:{defaultActive:!0,menuName:"Toolbar.markupCloudRect",icon:{default:"icon-cloud"},type:4,onActive:e=>{e.activateMarkup("CloudRectWithTextMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","Arrow","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},PolyLine:{menuName:"Toolbar.markupPolyLine",icon:{default:"icon-polyline"},type:4,onActive:e=>{e.activateMarkup("PolylineMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","Arrow","CloudRect","CloudLine","Ellipse","Circle","Dot","Text","X"]},CloudLine:{menuName:"Toolbar.markupCloudLine",icon:{default:"icon-cloud-segment"},type:4,onActive:e=>{e.activateMarkup("CloudLineMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","Arrow","Ellipse","Circle","Dot","Text","X"]},Ellipse:{menuName:"Toolbar.markupEllipse",icon:{default:"icon-oval"},type:4,onActive:e=>{e.activateMarkup("EllipseMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Arrow","Circle","Dot","Text","X"]},Circle:{menuName:"Toolbar.markupCircle",icon:{default:"icon-round"},type:4,onActive:e=>{e.activateMarkup("CircleMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Arrow","Dot","Text","X"]},Dot:{menuName:"Toolbar.markupDot",icon:{default:"icon-round"},type:4,onActive:e=>{e.activateMarkup("DotMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Arrow","Circle","Text","X"]},X:{menuName:"Toolbar.markupX",icon:{default:"icon-cross"},type:4,onActive:e=>{e.activateMarkup("XMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Arrow","Text"]},Text:{menuName:"Toolbar.markupText",icon:{default:"icon-text"},type:4,onActive:e=>{e.activateMarkup("TextMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Arrow","X"]},StrokeStyle:{menuName:"Toolbar.markupStroke",icon:{default:"icon-color-red"},type:1,onClick:(e,t,n)=>{let i=n.target.parentElement,r=null==i?void 0:i.firstElementChild,a=document.createElement("input");a.setAttribute("type","color"),a.value=Cn.rgba2Color(e.getMarkupLineColor()),a.click(),a.oninput=t=>{let n=t.target.value;e.setMarkupLineColor(...Cn.color2rgba(n)),r.style.color=n}}},LineWidth:{menuName:"Toolbar.markupLineWidth",icon:{default:"icon-line"},customElement(e,t,n){let i=document.createElement("div");return i.id=t,i.classList.add("toolbar-menu"),n.children&&i.classList.add("toolbar-parent-menu"),i.title=eh(n.menuName),i.innerHTML+=`${i.title}`,i},type:3,children:{LineWidth2:{defaultActive:!0,icon:{default:"icon-line-2"},onClick:e=>{e.setMarkupLineWidth(2)},type:4,menuName:"Toolbar.markupLineWidth2",mutexIds:["LineWidth5","LineWidth10"]},LineWidth5:{icon:{default:"icon-line-3"},onClick:e=>{e.setMarkupLineWidth(3)},type:4,menuName:"Toolbar.markupLineWidth5",mutexIds:["LineWidth2","LineWidth10"]},LineWidth10:{icon:{default:"icon-line-4"},onClick:e=>{e.setMarkupLineWidth(4)},type:4,menuName:"Toolbar.markupLineWidth10",mutexIds:["LineWidth2","LineWidth5"]}}},FontSize:{menuName:"Toolbar.markupFontSize",icon:{default:"icon-font"},customElement(e,t,n){let i=document.createElement("div");return i.id=t,i.classList.add("toolbar-menu"),n.children&&i.classList.add("toolbar-parent-menu"),i.title=eh(n.menuName),i.innerHTML+=`${i.title}`,i},type:3,children:{FontSize14:{icon:{default:"icon-font14"},onClick:e=>{e.setMarkupFontSize(14)},type:4,menuName:"",mutexIds:["FontSize18","FontSize24"]},FontSize18:{defaultActive:!0,icon:{default:"icon-font18"},onClick:e=>{e.setMarkupFontSize(18)},type:4,menuName:"",mutexIds:["FontSize14","FontSize24"]},FontSize24:{icon:{default:"icon-font24"},onClick:e=>{e.setMarkupFontSize(24)},type:4,menuName:"",mutexIds:["FontSize14","FontSize18"]}}},MarkupClear:{icon:{default:"icon-eraser"},onClick:e=>{se.info("[Toolbar]","Clear Markup",e),e.clearMarkups()},type:1,menuName:"Toolbar.clearMarkup"},MarkupQuit:{icon:{default:""},customElement(e,t,n){let i=document.createElement("div");return i.id=t,i.classList.add("toolbar-menu"),n.children&&i.classList.add("toolbar-parent-menu"),i.title=eh(n.menuName),i.innerHTML+=`${i.title}`,i},onClick:e=>{var t;null==(t=e.getMarkupManager())||t.deactivate(),e.dispatchEvent("MarkupDeactivated")},type:1,menuName:"Toolbar.quitMarkup"}},Jve=[["Arrow","Rect","CloudRect","PolyLine","Ellipse","Circle","Text","StrokeStyle","FontSize","MarkupClear","MarkupQuit"]],T2=class extends ap{constructor(e,t,n=[]){super(e,t,n),this.keydown=()=>{}}},Wy=class{constructor(e,t,n=document.body){this.container=n,this.isFollowing=!1,this.diffX=0,this.diffY=0,this.start=e=>{this.isFollowing=!0,this.diffX=e.clientX-this.element.offsetLeft,this.diffY=e.clientY-this.element.offsetTop},this.stop=()=>{this.isFollowing=!1},this.follow=e=>{if(!this.isFollowing)return;let t=e.clientX-this.diffX,n=e.clientY-this.diffY;this.element.style.left=t+"px",this.element.style.top=n+"px"},this.element=document.createElement("div"),this.element.id=e,this.element.classList.add("pop-panel");let i=document.createElement("div");i.classList.add("pop-panel-header"),i.append(t),this.element.appendChild(i),this.header=i;let r=document.createElement("div");r.classList.add("pop-panel-body"),this.element.appendChild(r),this.body=r,i.addEventListener(wH,this.start),i.addEventListener(TH,this.stop),document.body.addEventListener(wf,this.follow),this.container.appendChild(this.element)}destroy(){document.body.removeEventListener(wf,this.follow),this.element.removeEventListener(wH,this.start),this.element.removeEventListener(TH,this.stop),this.element.remove()}},w2=class extends Wy{constructor(e){super("axis-section-pop-panel","\u8f74\u5411\u5256\u5207",e.widgetContainer),this.axis="x",this.isVisible=!0,this.keydown=e=>{"Escape"===e.code&&this.destroy()},this.section=e.getActiveSection(),this.createGroupSelectLayout(),this.addGroupSelectItems(),this.createActiveSelectLayout(),this.addActiveItems(),window.addEventListener("keydown",this.keydown)}destroy(){super.destroy(),window.removeEventListener("keydown",this.keydown)}createGroupSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-group-select"),this.body.appendChild(e),this.groupSelectNode=e}addGroupSelectItems(){let e=(e,t,n=!1)=>{let i=document.createElement("div");return i.classList.add("pop-panel-item"),i.setAttribute("itemName",e),i.append(t),n&&i.classList.add("active"),this.groupSelectNode&&this.groupSelectNode.appendChild(i),i},t=(e,t)=>a=>{a.stopPropagation(),this.activeItem!==e&&(n.classList.remove("active"),i.classList.remove("active"),r.classList.remove("active"),this.activeItem=e,t.classList.add("active"),this.section.setActiveAxis(e))},n=e("X","X",!0);n.onclick=t("X",n);let i=e("Y","Y");i.onclick=t("Y",i);let r=e("Z","Z");r.onclick=t("Z",r)}createActiveSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-active-select"),this.body.appendChild(e),this.activeSelectNode=e}addActiveItems(){let e=(e,t)=>{let n=document.createElement("i");n.classList.add(qv),n.classList.add(t),e.innerHTML="",e.appendChild(n)},t=((t,n,i="")=>{let r=document.createElement("div");return r.classList.add("pop-panel-item"),n&&r.setAttribute("title",n),r.setAttribute("itemName",t),r.setAttribute("isActive","false"),e(r,i),r})("visible","\u9690\u85cf\u5256\u5207\u9762","icon-hidesectionplane");t.onclick=()=>{this.isVisible=!this.isVisible,this.isVisible?(e(t,"icon-hidesectionplane"),t.setAttribute("title","\u9690\u85cf\u5256\u5207\u9762")):(e(t,"icon-showsectionplane"),t.setAttribute("title","\u663e\u793a\u5256\u5207\u9762")),this.section.setSectionVisible(this.isVisible)}}},S2=class extends Wy{constructor(e){super("pick-section-pop-panel","\u62fe\u53d6\u9762\u5256\u5207",e.widgetContainer),this.isVisible=!0,this.enabled=!0,this.keydown=e=>{"Escape"===e.code&&this.destroy()},this.section=e.getActiveSection(),this.createActiveSelectLayout(),this.addActiveItems(),window.addEventListener("keydown",this.keydown)}destroy(){super.destroy(),window.removeEventListener("keydown",this.keydown)}createActiveSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-active-select"),this.body.appendChild(e),this.activeSelectNode=e}addActiveItems(){let e=(e,t)=>{let n=document.createElement("i");n.classList.add("gemini-viewer-icon"),n.classList.add(t),e.innerHTML="",e.appendChild(n)},t=(t,n,i="")=>{let r=document.createElement("div");return r.classList.add("pop-panel-item"),n&&r.setAttribute("title",n),r.setAttribute("itemName",t),r.setAttribute("isActive","false"),e(r,i),r},n=t("visible","\u9690\u85cf\u5256\u5207\u9762","icon-hidesectionplane");n.onclick=()=>{this.enabled&&(this.isVisible=!this.isVisible,this.isVisible?(e(n,"icon-hidesectionplane"),n.setAttribute("title","\u9690\u85cf\u5256\u5207\u9762")):(e(n,"icon-showsectionplane"),n.setAttribute("title","\u663e\u793a\u5256\u5207\u9762")),this.section.setSectionVisible(this.isVisible))},this.activeSelectNode&&this.activeSelectNode.appendChild(n),this.visibleNode=n;let i=t("reset","\u91cd\u7f6e","icon-reset");i.onclick=t=>{t.stopPropagation(),this.enabled&&(this.isVisible=!0,e(n,"icon-hidesectionplane"),n.setAttribute("title","\u9690\u85cf\u5256\u5207\u9762"),this.section.resetSection())},this.activeSelectNode&&this.activeSelectNode.appendChild(i),this.resetNode=i}enable(){this.enabled=!0,this.visibleNode&&this.visibleNode.classList.remove("disable")}disable(){this.enabled=!1,this.visibleNode&&this.visibleNode.classList.add("disable")}},Ma,Qve={HomeView:{icon:{default:"icon-home",active:"icon-home-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.homeView",type:1,onClick:e=>{e.goToHomeView()}},OrthoMode:{icon:{default:"icon-orthomode",active:"icon-orthomode-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.orthoView",type:4,onActive:e=>{se.info("[Toolbar]","Enter OrthoMode"),e.setToOrthographicCamera(!0)},onDeactive:e=>{se.info("[Toolbar]","Exit OrthoMode"),e.setToOrthographicCamera(!1)}},Measure:{icon:{default:"icon-measure",active:"icon-measure-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.measurement",type:3,children:{MeasureDistance:{icon:{default:"icon-measure-distance"},menuName:"Toolbar.distanceMeasurement",onActive:e=>{let t=e;t.deactivateSection(),t.activateMeasurement("Distance")},onDeactive:e=>{e.deactivateMeasurement()},type:4,mutexIds:["MeasureArea","MeasureAngle","MeasureCoordinate"]},MeasureArea:{icon:{default:"icon-measure-area-color"},onActive:e=>{let t=e;t.deactivateSection(),t.activateMeasurement("Area")},onDeactive:e=>{e.deactivateMeasurement()},type:4,menuName:"Toolbar.areaMeasurement",mutexIds:["MeasureDistance","MeasureAngle","MeasureCoordinate"]},MeasureAngle:{menuName:"Toolbar.angleMeasurement",icon:{default:"icon-angle-measure"},type:4,onActive:e=>{let t=e;t.deactivateSection(),t.activateMeasurement("Angle")},onDeactive:e=>{e.deactivateMeasurement()},mutexIds:["MeasureDistance","MeasureArea","MeasureCoordinate"]},MeasureCoordinate:{menuName:"Toolbar.coordinateMeasurement",icon:{default:"icon-distancemeasure",iconFont:"gemini-viewer-icon"},type:4,onActive:e=>{let t=e;t.deactivateSection(),t.activateMeasurement("Coordinate")},onDeactive:e=>{e.deactivateMeasurement()},mutexIds:["MeasureDistance","MeasureArea","MeasureAngle"]},MeasureClear:{icon:{default:"icon-clear",active:"icon-clear-filled",iconFont:"gemini-viewer-icon"},onClick:e=>{let t=e;se.debug("[Toolbar]","Clearing Measure",e),t.clearMeasurements()},type:1,menuName:"Toolbar.clearMeasurement"}},mutexIds:["Section","SectionAxis","SectionBox","SectionPlane"]},Section:{icon:{default:"icon-section",active:"icon-section-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.section",type:3,children:{SectionAxis:{icon:{default:"icon-sectionplane",active:"icon-sectionplane-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.axisSection",type:4,onActive:e=>{let t=e;t.deactivateMeasurement(),t.getMeasurements().forEach((e=>t.setMeasurementVisibility(e.id,!1))),null==Ma||Ma.destroy(),t.activateSection("AxisPlaneSection"),Ma=new w2(t)},onDeactive:e=>{let t=e;t.getMeasurements().forEach((e=>t.setMeasurementVisibility(e.id,!0))),t.deactivateSection(),null==Ma||Ma.destroy(),Ma=void 0},mutexIds:["SectionBox","SectionPlane"]},SectionPlane:{icon:{default:"icon-choosesectionplane",active:"icon-choosesectionplane-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.pickSectionPlane",type:4,onActive:e=>{let t=e;t.deactivateMeasurement(),t.getMeasurements().forEach((e=>t.setMeasurementVisibility(e.id,!1))),null==Ma||Ma.destroy(),t.activateSection("PickPlaneSection"),Ma=new S2(t)},onDeactive:e=>{let t=e;t.getMeasurements().forEach((e=>t.setMeasurementVisibility(e.id,!0))),t.deactivateSection(),null==Ma||Ma.destroy(),Ma=void 0},mutexIds:["SectionAxis","SectionBox"]},SectionBox:{icon:{default:"icon-sectionbox",active:"icon-sectionbox-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.sectionBox",type:4,onActive:e=>{let t=e;t.deactivateMeasurement(),t.getMeasurements().forEach((e=>t.setMeasurementVisibility(e.id,!1))),t.activateSection()},onDeactive:e=>{let t=e;t.getMeasurements().forEach((e=>t.setMeasurementVisibility(e.id,!0))),t.deactivateSection()},mutexIds:["SectionAxis","SectionPlane"]}},mutexIds:["Measure","MeasureDistance","MeasureArea","MeasureAngle","MeasureCoordinate"]},BimTree:{icon:{default:"icon-bimtree",active:"icon-bimtree-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.bimTree",type:4,onActive:()=>{se.info("[Toolbar]","Activate Bim Tree")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Bim Tree")},visible:!1},Viewpoint:{icon:{default:"icon-viewpoint",active:"icon-viewpoint-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.viewpoint",type:4,onActive:()=>{se.info("[Toolbar]","Activate Viewpoint")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Viewpoint")},visible:!1},Annotation:{icon:{default:"icon-annotation",active:"icon-annotation-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.annotation",type:4,onActive:()=>{se.info("[Toolbar]","Activate Annotation")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Annotation")},visible:!1},Property:{icon:{default:"icon-property",active:"icon-property-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.property",type:4,onActive:()=>{se.info("[Toolbar]","Activate Property")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Property")},visible:!1},Settings:{icon:{default:"icon-settings",active:"icon-settings-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.settings",type:4,onActive:()=>{se.info("[Toolbar]","Activate Settings")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Settings")},visible:!1},FullScreen:{icon:{default:"icon-fullscreen",active:"icon-fullscreen-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.fullscreen",type:4,onClick:(e,t)=>{var n;let i=()=>{let e=null==t?void 0:t.menuList.get("FullScreen");e&&e.setActive(Mt.isFullScreen())};Mt.isFullScreen()?(Mt.exitFullscreen(),window.removeEventListener("resize",i)):Mt.fullScreen(null==(n=e.viewerContainer)?void 0:n.parentElement),window.addEventListener("resize",i)}}},eye={HomeView:{icon:{default:"icon-zhushitu",active:"icon-zhushitu"},menuName:"Toolbar.homeView",type:1,onClick:e=>{e.goToHomeView()}},ZoomToRectangle:{icon:{default:"icon-kuangxuanfangda",active:"icon-kuangxuanfangda"},menuName:"Toolbar.zoomToRectangle",type:4,onClick:(e,t)=>{let n=e;n.removeEventListener("BoxSelectDeactivated"),n.addEventListener("BoxSelectDeactivated",(()=>{null==t||t.setActive("ZoomToRectangle",!1)})),n.zoomToRect()},mutexIds:["GetScreenshot"]},GetScreenshot:{icon:{default:"icon-frame-clipping",active:"icon-frame-clipping"},menuName:"Toolbar.screenshot",type:4,onClick:(e,t)=>{let n=e;n.removeEventListener("BoxSelectDeactivated"),n.addEventListener("BoxSelectDeactivated",(()=>{null==t||t.setActive("GetScreenshot",!1)})),n.getScreenshot().then((e=>{if(se.info("[Toolbar] getScreenshot() returns:",null==e?void 0:e.base64Image),null==e||!e.base64Image)throw"[Toolbar] Image data is empty!";let t=document.createElement("a");t.href=null==e?void 0:e.base64Image,t.download="",t.click()})).catch((e=>{se.error("[Toolbar] Failed to get screenshot, reason:",e),null==t||t.setActive("GetScreenshot",!1)}))},mutexIds:["ZoomToRectangle"]},Measure:{icon:{default:"icon-celiang1",active:"icon-celiang1"},menuName:"Toolbar.measurement",type:3,children:{MeasureDistance:{icon:{default:"icon-measure-distance"},menuName:"Toolbar.distanceMeasurement",onActive:e=>{e.activateMeasurement("Distance")},onDeactive:e=>{e.deactivateMeasurement()},type:4,mutexIds:["MeasureArea","MeasureAngle","MeasureCoordinate","ZoomToRectangle","GetScreenshot"]},MeasureArea:{icon:{default:"icon-measure-area-color"},onActive:e=>{e.activateMeasurement("Area")},onDeactive:e=>{e.deactivateMeasurement()},type:4,menuName:"Toolbar.areaMeasurement",mutexIds:["MeasureDistance","MeasureAngle","MeasureCoordinate","ZoomToRectangle","GetScreenshot"]},MeasureAngle:{menuName:"Toolbar.angleMeasurement",icon:{default:"icon-angle-measure"},type:4,onActive:e=>{e.activateMeasurement("Angle")},onDeactive:e=>{e.deactivateMeasurement()},mutexIds:["MeasureDistance","MeasureArea","MeasureCoordinate","ZoomToRectangle","GetScreenshot"]},MeasureCoordinate:{menuName:"Toolbar.coordinateMeasurement",icon:{default:"icon-distancemeasure",iconFont:"gemini-viewer-icon"},type:4,onActive:e=>{e.activateMeasurement("Coordinate")},onDeactive:e=>{e.deactivateMeasurement()},visible:!1,mutexIds:["MeasureDistance","MeasureArea","MeasureAngle","ZoomToRectangle","GetScreenshot"]},MeasureClear:{icon:{default:"icon-clear",active:"icon-clear-filled",iconFont:"gemini-viewer-icon"},onClick:e=>{let t=e;se.debug("[Toolbar]","Clearing Measure",e),t.clearMeasurements()},type:1,menuName:"Toolbar.clearMeasurement"}}},Markup:{icon:{default:"icon-annotation"},menuName:"Toolbar.markup",type:1,onClick:(e,t)=>{let n=e;null==t||t.updateMenu("Measure",{defaultActive:!1}),null==t||t.setActive("ZoomToRectangle",!1),n.getMarkups().forEach((e=>n.setMarkupVisibility(e.id,!0))),null==t||t.setActive("MarkupVisibility",!1),n.activateMarkup("CloudRectWithTextMarkup"),e.dispatchEvent("MarkupActivated")}},MarkupVisibility:{icon:{default:"icon-annotation-show",active:"icon-annotation-hide"},menuName:"Toolbar.markupVisibility",type:4,onActive:e=>{let t=e;t.getMarkups().forEach((e=>t.setMarkupVisibility(e.id,!1)))},onDeactive:e=>{let t=e;t.getMarkups().forEach((e=>t.setMarkupVisibility(e.id,!0)))},visible:!0},Settings:{icon:{default:"icon-settings",active:"icon-settings-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.settings",type:4,onActive:()=>{se.info("[Toolbar]","Activate Settings")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Settings")},visible:!0},Compared:{icon:{default:"icon-compared"},menuName:"Toolbar.compared",type:4,onActive:()=>{se.info("[Toolbar]","Activate Compare")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Compare")},visible:!1},QuitCompare:{icon:{default:"icon-compared"},menuName:"Toolbar.quitCompare",type:4,onActive:()=>{se.info("[Toolbar]","Activate Compare")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Compare")},visible:!1},Layers:{icon:{default:"icon-tucengkongzhi",active:"icon-tucengkongzhi"},menuName:"Toolbar.layers",type:4,onClick:()=>{}},FullScreen:{icon:{default:"icon-quanping",active:"icon-quanping"},menuName:"Toolbar.fullscreen",type:4,onClick:(e,t)=>{var n;let i=()=>{let e=null==t?void 0:t.menuList.get("FullScreen");e&&e.setActive(Mt.isFullScreen())};Mt.isFullScreen()?(Mt.exitFullscreen(),window.removeEventListener("resize",i)):Mt.fullScreen(null==(n=e.viewerContainer)?void 0:n.parentElement),window.addEventListener("resize",i)}}},tye=class extends fr{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||"DxfViewerToolbarPlugin"}),this.onMarkupActivated=()=>{if(!this.markupToolbar){let e=(0,k_.merge)(this.cfg.markupMenuCfg||[],Kve),t=(0,k_.merge)(this.cfg.markupGroupCfg||[],Jve);this.markupToolbar=new T2(this.viewer,e,t),this.markupToolbar.hide()}this.toolbar.hide(),this.markupToolbar.show()},this.onMarkupDeactivated=()=>{var e;null==(e=this.markupToolbar)||e.hide(),this.toolbar.show()},this.cfg=t||{};let n=(0,k_.merge)({},eye,this.cfg.menuConfig),i=(0,k_.merge)(this.cfg.groupConfig||[],_2);this.toolbar=new ap(e,n,i),this.viewer.addEventListener("MarkupActivated",this.onMarkupActivated),this.viewer.addEventListener("MarkupDeactivated",this.onMarkupDeactivated)}setActive(e,t){this.toolbar.setActive(e,t)}destroy(){super.destroy()}},rye=ji(Fl(),1),nye=class extends fr{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||"BimViewerToolbarPlugin"}),this.cfg=t||{};let n=(0,rye.merge)({},Qve,this.cfg.menuConfig),i=this.cfg.groupConfig||_2;this.toolbar=new ap(e,n,i)}setActive(e,t){this.toolbar.setActive(e,t)}destroy(){super.destroy()}},Mo=e=>({viewer:t})=>t.translate(`ContextMenu.${e}`),sye=e=>{var t;let n=0;return null==(t=e.scene)||t.traverseVisible((e=>{e instanceof xt&&n++})),n>0},jvt=e=>{var t,n;let i=0;return null==(t=e.scene)||t.traverse((e=>{e instanceof xt&&i++})),null==(n=e.scene)||n.traverseVisible((e=>{e instanceof xt&&i--})),i>0},hV=e=>e.hasTransparentObject(),M2=e=>Hn.isObjectSelectable(e),iye=(e,t,n,i)=>{let r=e.selectedObject;return!(!r||!t||r.id!==t.id)&&(null!=n&&r.isInstancedMesh?n===r.userData.instanceId:null==i||!Ar.isMergedMesh(r)||i===r.userData.batchId)},Xvt={getTitle:Mo("viewFitEntity"),getShown:({hit:e})=>e,doAction:({viewer:e,hit:t})=>{e.flyToObject(t)}},Yvt={getTitle:Mo("viewFitAll"),getEnabled:({viewer:e})=>sye(e),doAction:({viewer:e})=>e.viewFitAll()},$vt={getTitle:Mo("hideEntity"),getShown:({hit:e})=>e,doAction:({viewer:e,hit:t})=>{let n=e;M2(t)&&(n.clearSelection(),t.visible=!1,n.enableRender())}},Zvt={getTitle:Mo("hideOthers"),getShown:({hit:e})=>e,doAction:({viewer:e,hit:t})=>{var n;let i=e;i.clearSelection(),null==(n=i.scene)||n.traverse((e=>{e instanceof xt&&M2(e)&&(e.visible=!1)})),t.visible=!0,i.enableRender()}},Kvt={getTitle:Mo("hideAll"),getEnabled:({viewer:e})=>sye(e),doAction:({viewer:e})=>{var t;let n=e;n.clearSelection(),null==(t=n.scene)||t.traverse((e=>{e instanceof xt&&M2(e)&&(e.visible=!1)})),n.enableRender()}},Jvt={getTitle:Mo("showAll"),getEnabled:({viewer:e})=>jvt(e),doAction:({viewer:e})=>{var t;let n=e;null==(t=n.scene)||t.traverse((e=>{e instanceof xt&&M2(e)&&(e.visible=!0)})),n.enableRender()}},Qvt={getTitle:({hit:e,viewer:t,instanceId:n,batchId:i})=>iye(t,e,n,i)?Mo("deselect")({viewer:t}):Mo("select")({viewer:t}),getShown:({hit:e,viewer:t})=>t.enableSelection&&e,doAction:({hit:e,viewer:t,instanceId:n,batchId:i})=>{let r=t;Hn.isObjectSelectable(e)?iye(r,e,n,i)?r.clearSelection():r.selectObject(e,e.instanceId,i):se.debug(`[ContextMenu] object(type: ${e.type}, name: ${e.name}) not selectable!`)}},eyt={getTitle:Mo("selectNone"),getShown:({viewer:e})=>e.enableSelection,getEnabled:({viewer:e})=>e.selectedObject,doAction:({viewer:e})=>e.clearSelection()},tyt={getTitle:Mo("xRayAll"),getShown:({viewer:e})=>!hV(e),doAction:({viewer:e})=>{let t=e;t.clearSelection(),t.addOrRemoveObjectOpacity(!0),t.enableRender()}},nyt={getTitle:Mo("xRayNone"),getEnabled:({viewer:e})=>hV(e),doAction:({viewer:e})=>{let t=e;t.clearSelection(),hV(t)&&(t.addOrRemoveObjectOpacity(!1),t.enableRender())}},ryt={getTitle:Mo("xRayEntity"),getShown:({hit:e})=>e,doAction:({viewer:e,hit:t})=>{let n=e;n.clearSelection(),n.addOrRemoveObjectOpacity(!0,void 0,[t.id],void 0)}},iyt={getTitle:Mo("xRayOthers"),getShown:({hit:e})=>e,doAction:({viewer:e,hit:t})=>{let n=e;n.clearSelection(),n.addOrRemoveObjectOpacity(!0,.1,void 0,[t.id]),n.enableRender()}},syt={getTitle:({viewer:e})=>{let t=e,n="";switch(t.sectionType){case"PickPlaneSection":n="*showSectionPlane";break;case"AxisPlaneSection":n="showAxisSection";break;case"ObjectsBoxSection":n="*showSectionBox"}return t.translate(`ContextMenu.${n}`)},getShown:({viewer:e,section:t})=>{let n=e;return("PickPlaneSection"===n.sectionType||"AxisPlaneSection"===n.sectionType)&&!!t&&!t.showSectionPlane},doAction:({viewer:e,section:t})=>{let n=e;("PickPlaneSection"===n.sectionType||"AxisPlaneSection"===n.sectionType)&&(null==t||t.setSectionVisible(!0))}},ayt={getTitle:({viewer:e})=>{let t=e,n="";switch(t.sectionType){case"PickPlaneSection":n="hideSectionPlane";break;case"AxisPlaneSection":n="hideAxisSection";break;case"ObjectsBoxSection":n="hideSectionBox"}return t.translate(`ContextMenu.${n}`)},getShown:e=>aye(e),doAction:({viewer:e,section:t})=>{let n=e;("PickPlaneSection"===n.sectionType||"AxisPlaneSection"===n.sectionType)&&(null==t||t.setSectionVisible(!1))}},oyt={getTitle:Mo("undoSection"),getShown:e=>aye(e),doAction:({viewer:e,toolbar:t})=>{let n=e;if("PickPlaneSection"===n.sectionType){let e=null==t?void 0:t.menuList.get("SectionPlane");null==e||e.setActive(!1)}else if("AxisPlaneSection"===n.sectionType){let e=null==t?void 0:t.menuList.get("SectionAxis");null==e||e.setActive(!1)}else if("ObjectsBoxSection"===n.sectionType){let e=null==t?void 0:t.menuList.get("SectionBox");null==e||e.setActive(!1)}}},aye=({viewer:e,hit:t,section:n})=>{let i=e;return("PickPlaneSection"===i.sectionType||"AxisPlaneSection"===i.sectionType)&&!!n&&n.showSectionPlane&&(null==t?void 0:t.name)===SH},oye=[[syt],[ayt,oyt],[Xvt,Yvt],[$vt,Zvt,Kvt,Jvt],[ryt,iyt,tyt,nyt],[Qvt,eyt]],lye=class extends fr{constructor(e){super(e,{id:"ContextMenuPlugin"}),this.itemList=[],this.handleClick=()=>{this.hide()},this.container=e.widgetContainer||document.body,this.context={viewer:e},this.element=this.createMenuUI(oye||[]),window.oncontextmenu=e=>e.preventDefault(),this.hide(),this.initEvents()}initEvents(){let e=this.viewer.getInputManager();if(!e)return;let t=!1,n=!1,i=0,r=0;e.addEventListener("pointerdown",(()=>{n=!1,t=!0,this.hide()})),e.addEventListener("pointermove",(e=>{t&&!n&&(n=!(e=>-1!==i&&-1!==r&&Math.abs(e.x-i)<5&&Math.abs(e.y-r)<5)(e))})),e.addEventListener("pointerup",(e=>{if(t=!1,n)return n=!1,void this.hide();i=e.x,r=e.y,2===e.button?this.showContextMenu(e):this.hide()})),document.addEventListener("click",this.handleClick)}showContextMenu(e){let t=this.context,n=this.viewer;if(n.selectedObject){let e=n.selectedObject.userData.instanceId,i=n.selectedObject.userData.batchId;this.context=Ri(Tr({},t),{hit:n.selectedObject,instanceId:e,batchId:i})}else{let i=n.getRaycaster();i&&i.layers.set(10);let r=n.getAllIntersections(e);se.debug("[Viewer] showContextMenu intersections = ",r);let a,s=(0,ug.find)(r,(e=>{let t=e.object;return t instanceof xt&&t.visible})),o=null==s?void 0:s.instanceId,l=null==s?void 0:s.faceIndex;l&&(a=Ar.getBatchIdByFaceIndex(null==s?void 0:s.object,l)),this.context=Ri(Tr({},t),{hit:null==s?void 0:s.object,instanceId:o,batchId:a})}let{x:i,y:r}=e;this.show(i,r)}isEnabled(e){return e.getEnabled?e.getEnabled(this.context):void 0===e.enabled||e.enabled}isShown(e){return e.getShown?e.getShown(this.context):void 0===e.shown||e.shown}getTitle(e){return e.title||e.getTitle&&e.getTitle(this.context)||""}createMenuUI(e){let t=document.createElement("div");t.id=this.id,t.classList.add("context-menu");let n=this.createMenuGroup(e);return t.append(...n),this.container.appendChild(t),t}createMenuGroup(e){return(0,ug.map)(e,(e=>{let t=document.createElement("ul");return(0,ug.forEach)(e,(e=>{let n=this.createMenuItem(e);t.append(n)})),t}))}createMenuItem(e){let t=document.createElement("li");return t.innerHTML=this.getTitle(e),t.onclick=()=>e.doAction&&e.doAction(this.context),this.isEnabled(e)?t.classList.remove("disabled"):t.classList.add("disabled"),this.isShown(e)?t.removeAttribute("hidden"):t.setAttribute("hidden",""),this.itemList.push([e,t]),t}updateMenuItems(){(0,ug.forEach)(this.itemList,(([e,t])=>{this.isEnabled(e)?t.classList.remove("disabled"):t.classList.add("disabled"),this.isShown(e)?t.removeAttribute("hidden"):t.setAttribute("hidden",""),t.innerHTML=this.getTitle(e)}))}showMenuElement(e,t){let n=this.element.offsetHeight,i=this.element.offsetWidth;t+n>window.innerHeight&&(t=window.innerHeight-n-5),e+i>window.innerWidth&&(e=window.innerWidth-i-5),this.element.style.left=e+"px",this.element.style.top=t+"px"}show(e,t){this.updateMenuItems(),this.element.removeAttribute("hidden"),this.showMenuElement(e,t)}hide(){this.element.setAttribute("hidden","")}destroy(){document.removeEventListener("click",this.handleClick),this.container.removeChild(this.element)}};function lyt(e){if(e&&"undefined"!=typeof window){var t=document.createElement("style");return t.setAttribute("type","text/css"),t.innerHTML=e,document.head.appendChild(t),e}}function Yy(e,t){var n=e.__state.conversionName.toString(),i=Math.round(e.r),r=Math.round(e.g),a=Math.round(e.b),s=e.a,o=Math.round(e.h),l=e.s.toFixed(1),h=e.v.toFixed(1);if(t||"THREE_CHAR_HEX"===n||"SIX_CHAR_HEX"===n){for(var c=e.hex.toString(16);c.length<6;)c="0"+c;return"#"+c}return"CSS_RGB"===n?"rgb("+i+","+r+","+a+")":"CSS_RGBA"===n?"rgba("+i+","+r+","+a+","+s+")":"HEX"===n?"0x"+e.hex.toString(16):"RGB_ARRAY"===n?"["+i+","+r+","+a+"]":"RGBA_ARRAY"===n?"["+i+","+r+","+a+","+s+"]":"RGB_OBJ"===n?"{r:"+i+",g:"+r+",b:"+a+"}":"RGBA_OBJ"===n?"{r:"+i+",g:"+r+",b:"+a+",a:"+s+"}":"HSV_OBJ"===n?"{h:"+o+",s:"+l+",v:"+h+"}":"HSVA_OBJ"===n?"{h:"+o+",s:"+l+",v:"+h+",a:"+s+"}":"unknown format"}var cye=Array.prototype.forEach,F_=Array.prototype.slice,Ht={BREAK:{},extend:function(e){return this.each(F_.call(arguments,1),(function(t){(this.isObject(t)?Object.keys(t):[]).forEach(function(n){this.isUndefined(t[n])||(e[n]=t[n])}.bind(this))}),this),e},defaults:function(e){return this.each(F_.call(arguments,1),(function(t){(this.isObject(t)?Object.keys(t):[]).forEach(function(n){this.isUndefined(e[n])&&(e[n]=t[n])}.bind(this))}),this),e},compose:function(){var e=F_.call(arguments);return function(){for(var t=F_.call(arguments),n=e.length-1;n>=0;n--)t=[e[n].apply(this,t)];return t[0]}},each:function(e,t,n){if(e)if(cye&&e.forEach&&e.forEach===cye)e.forEach(t,n);else if(e.length===e.length+0){var i,r=void 0;for(r=0,i=e.length;r1?Ht.toArray(arguments):arguments[0];return Ht.each(cyt,(function(t){if(t.litmus(e))return Ht.each(t.conversions,(function(t,n){if(N_=t.read(e),!1===R2&&!1!==N_)return R2=N_,N_.conversionName=n,N_.conversion=t,Ht.BREAK})),Ht.BREAK})),R2},uye=void 0,C2={hsv_to_rgb:function(e,t,n){var i=Math.floor(e/60)%6,r=e/60-Math.floor(e/60),a=n*(1-t),s=n*(1-r*t),o=n*(1-(1-r)*t),l=[[n,o,a],[s,n,a],[a,n,o],[a,s,n],[o,a,n],[n,a,s]][i];return{r:255*l[0],g:255*l[1],b:255*l[2]}},rgb_to_hsv:function(e,t,n){var i=Math.min(e,t,n),r=Math.max(e,t,n),a=r-i,s=void 0;return 0===r?{h:NaN,s:0,v:0}:(s=e===r?(t-n)/a:t===r?2+(n-e)/a:4+(e-t)/a,(s/=6)<0&&(s+=1),{h:360*s,s:a/r,v:r/255})},rgb_to_hex:function(e,t,n){var i=this.hex_with_component(0,2,e);return i=this.hex_with_component(i,1,t),this.hex_with_component(i,0,n)},component_from_hex:function(e,t){return e>>8*t&255},hex_with_component:function(e,t,n){return n<<(uye=8*t)|e&~(255<-1?t.length-t.indexOf(".")-1:0}var _ye=function(e){function t(e,n,i){Yc(this,t);var r=cp(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n)),a=i||{};return r.__min=a.min,r.__max=a.max,r.__step=a.step,Ht.isUndefined(r.__step)?0===r.initialValue?r.__impliedStep=1:r.__impliedStep=Math.pow(10,Math.floor(Math.log(Math.abs(r.initialValue))/Math.LN10))/10:r.__impliedStep=r.__step,r.__precision=hye(r.__impliedStep),r}return lp(t,hg),$c(t,[{key:"setValue",value:function(e){var n=e;return void 0!==this.__min&&nthis.__max&&(n=this.__max),void 0!==this.__step&&n%this.__step!=0&&(n=Math.round(n/this.__step)*this.__step),op(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"setValue",this).call(this,n)}},{key:"min",value:function(e){return this.__min=e,this}},{key:"max",value:function(e){return this.__max=e,this}},{key:"step",value:function(e){return this.__step=e,this.__impliedStep=e,this.__precision=hye(e),this}}]),t}();function myt(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}var P2=function(e){function t(e,n,i){Yc(this,t);var r=cp(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n,i));r.__truncationSuspended=!1;var a=r,s=void 0;function o(){a.__onFinishChange&&a.__onFinishChange.call(a,a.getValue())}function l(e){var t=s-e.clientY;a.setValue(a.getValue()+t*a.__impliedStep),s=e.clientY}function h(){bt.unbind(window,"mousemove",l),bt.unbind(window,"mouseup",h),o()}return r.__input=document.createElement("input"),r.__input.setAttribute("type","text"),bt.bind(r.__input,"change",(function(){var e=parseFloat(a.__input.value);Ht.isNaN(e)||a.setValue(e)})),bt.bind(r.__input,"blur",(function(){o()})),bt.bind(r.__input,"mousedown",(function(e){bt.bind(window,"mousemove",l),bt.bind(window,"mouseup",h),s=e.clientY})),bt.bind(r.__input,"keydown",(function(e){13===e.keyCode&&(a.__truncationSuspended=!0,this.blur(),a.__truncationSuspended=!1,o())})),r.updateDisplay(),r.domElement.appendChild(r.__input),r}return lp(t,_ye),$c(t,[{key:"updateDisplay",value:function(){return this.__input.value=this.__truncationSuspended?this.getValue():myt(this.getValue(),this.__precision),op(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"updateDisplay",this).call(this)}}]),t}();function dye(e,t,n,i,r){return i+(e-t)/(n-t)*(r-i)}var pV=function(e){function t(e,n,i,r,a){Yc(this,t);var s=cp(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n,{min:i,max:r,step:a})),o=s;function l(e){e.preventDefault();var t=o.__background.getBoundingClientRect();return o.setValue(dye(e.clientX,t.left,t.right,o.__min,o.__max)),!1}function h(){bt.unbind(window,"mousemove",l),bt.unbind(window,"mouseup",h),o.__onFinishChange&&o.__onFinishChange.call(o,o.getValue())}function c(e){var t=e.touches[0].clientX,n=o.__background.getBoundingClientRect();o.setValue(dye(t,n.left,n.right,o.__min,o.__max))}function u(){bt.unbind(window,"touchmove",c),bt.unbind(window,"touchend",u),o.__onFinishChange&&o.__onFinishChange.call(o,o.getValue())}return s.__background=document.createElement("div"),s.__foreground=document.createElement("div"),bt.bind(s.__background,"mousedown",(function(e){document.activeElement.blur(),bt.bind(window,"mousemove",l),bt.bind(window,"mouseup",h),l(e)})),bt.bind(s.__background,"touchstart",(function(e){1===e.touches.length&&(bt.bind(window,"touchmove",c),bt.bind(window,"touchend",u),c(e))})),bt.addClass(s.__background,"slider"),bt.addClass(s.__foreground,"slider-fg"),s.updateDisplay(),s.__background.appendChild(s.__foreground),s.domElement.appendChild(s.__background),s}return lp(t,_ye),$c(t,[{key:"updateDisplay",value:function(){var e=(this.getValue()-this.__min)/(this.__max-this.__min);return this.__foreground.style.width=100*e+"%",op(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"updateDisplay",this).call(this)}}]),t}(),Tye=function(e){function t(e,n,i){Yc(this,t);var r=cp(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n)),a=r;return r.__button=document.createElement("div"),r.__button.innerHTML=void 0===i?"Fire":i,bt.bind(r.__button,"click",(function(e){return e.preventDefault(),a.fire(),!1})),bt.addClass(r.__button,"button"),r.domElement.appendChild(r.__button),r}return lp(t,hg),$c(t,[{key:"fire",value:function(){this.__onChange&&this.__onChange.call(this),this.getValue().call(this.object),this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue())}}]),t}(),mV=function(e){function t(e,n){Yc(this,t);var i=cp(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));i.__color=new $s(i.getValue()),i.__temp=new $s(0);var r=i;i.domElement=document.createElement("div"),bt.makeSelectable(i.domElement,!1),i.__selector=document.createElement("div"),i.__selector.className="selector",i.__saturation_field=document.createElement("div"),i.__saturation_field.className="saturation-field",i.__field_knob=document.createElement("div"),i.__field_knob.className="field-knob",i.__field_knob_border="2px solid ",i.__hue_knob=document.createElement("div"),i.__hue_knob.className="hue-knob",i.__hue_field=document.createElement("div"),i.__hue_field.className="hue-field",i.__input=document.createElement("input"),i.__input.type="text",i.__input_textShadow="0 1px 1px ",bt.bind(i.__input,"keydown",(function(e){13===e.keyCode&&c.call(this)})),bt.bind(i.__input,"blur",c),bt.bind(i.__selector,"mousedown",(function(){bt.addClass(this,"drag").bind(window,"mouseup",(function(){bt.removeClass(r.__selector,"drag")}))})),bt.bind(i.__selector,"touchstart",(function(){bt.addClass(this,"drag").bind(window,"touchend",(function(){bt.removeClass(r.__selector,"drag")}))}));var a=document.createElement("div");function s(e){d(e),bt.bind(window,"mousemove",d),bt.bind(window,"touchmove",d),bt.bind(window,"mouseup",l),bt.bind(window,"touchend",l)}function o(e){p(e),bt.bind(window,"mousemove",p),bt.bind(window,"touchmove",p),bt.bind(window,"mouseup",h),bt.bind(window,"touchend",h)}function l(){bt.unbind(window,"mousemove",d),bt.unbind(window,"touchmove",d),bt.unbind(window,"mouseup",l),bt.unbind(window,"touchend",l),u()}function h(){bt.unbind(window,"mousemove",p),bt.unbind(window,"touchmove",p),bt.unbind(window,"mouseup",h),bt.unbind(window,"touchend",h),u()}function c(){var e=fV(this.value);!1!==e?(r.__color.__state=e,r.setValue(r.__color.toOriginal())):this.value=r.__color.toString()}function u(){r.__onFinishChange&&r.__onFinishChange.call(r,r.__color.toOriginal())}function d(e){-1===e.type.indexOf("touch")&&e.preventDefault();var t=r.__saturation_field.getBoundingClientRect(),n=e.touches&&e.touches[0]||e,i=n.clientX,a=n.clientY,s=(i-t.left)/(t.right-t.left),o=1-(a-t.top)/(t.bottom-t.top);return o>1?o=1:o<0&&(o=0),s>1?s=1:s<0&&(s=0),r.__color.v=o,r.__color.s=s,r.setValue(r.__color.toOriginal()),!1}function p(e){-1===e.type.indexOf("touch")&&e.preventDefault();var t=r.__hue_field.getBoundingClientRect(),n=1-((e.touches&&e.touches[0]||e).clientY-t.top)/(t.bottom-t.top);return n>1?n=1:n<0&&(n=0),r.__color.h=360*n,r.setValue(r.__color.toOriginal()),!1}return Ht.extend(i.__selector.style,{width:"122px",height:"102px",padding:"3px",backgroundColor:"#222",boxShadow:"0px 1px 3px rgba(0,0,0,0.3)"}),Ht.extend(i.__field_knob.style,{position:"absolute",width:"12px",height:"12px",border:i.__field_knob_border+(i.__color.v<.5?"#fff":"#000"),boxShadow:"0px 1px 3px rgba(0,0,0,0.5)",borderRadius:"12px",zIndex:1}),Ht.extend(i.__hue_knob.style,{position:"absolute",width:"15px",height:"2px",borderRight:"4px solid #fff",zIndex:1}),Ht.extend(i.__saturation_field.style,{width:"100px",height:"100px",border:"1px solid #555",marginRight:"3px",display:"inline-block",cursor:"pointer"}),Ht.extend(a.style,{width:"100%",height:"100%",background:"none"}),fye(a,"top","rgba(0,0,0,0)","#000"),Ht.extend(i.__hue_field.style,{width:"15px",height:"100px",border:"1px solid #555",cursor:"ns-resize",position:"absolute",top:"3px",right:"3px"}),vyt(i.__hue_field),Ht.extend(i.__input.style,{outline:"none",textAlign:"center",color:"#fff",border:0,fontWeight:"bold",textShadow:i.__input_textShadow+"rgba(0,0,0,0.7)"}),bt.bind(i.__saturation_field,"mousedown",s),bt.bind(i.__saturation_field,"touchstart",s),bt.bind(i.__field_knob,"mousedown",s),bt.bind(i.__field_knob,"touchstart",s),bt.bind(i.__hue_field,"mousedown",o),bt.bind(i.__hue_field,"touchstart",o),i.__saturation_field.appendChild(a),i.__selector.appendChild(i.__field_knob),i.__selector.appendChild(i.__saturation_field),i.__selector.appendChild(i.__hue_field),i.__hue_field.appendChild(i.__hue_knob),i.domElement.appendChild(i.__input),i.domElement.appendChild(i.__selector),i.updateDisplay(),i}return lp(t,hg),$c(t,[{key:"updateDisplay",value:function(){var e=fV(this.getValue());if(!1!==e){var t=!1;Ht.each($s.COMPONENTS,(function(n){if(!Ht.isUndefined(e[n])&&!Ht.isUndefined(this.__color.__state[n])&&e[n]!==this.__color.__state[n])return t=!0,{}}),this),t&&Ht.extend(this.__color.__state,e)}Ht.extend(this.__temp.__state,this.__color.__state),this.__temp.a=1;var n=this.__color.v<.5||this.__color.s>.5?255:0,i=255-n;Ht.extend(this.__field_knob.style,{marginLeft:100*this.__color.s-7+"px",marginTop:100*(1-this.__color.v)-7+"px",backgroundColor:this.__temp.toHexString(),border:this.__field_knob_border+"rgb("+n+","+n+","+n+")"}),this.__hue_knob.style.marginTop=100*(1-this.__color.h/360)+"px",this.__temp.s=1,this.__temp.v=1,fye(this.__saturation_field,"left","#fff",this.__temp.toHexString()),this.__input.value=this.__color.toString(),Ht.extend(this.__input.style,{backgroundColor:this.__color.toHexString(),color:"rgb("+n+","+n+","+n+")",textShadow:this.__input_textShadow+"rgba("+i+","+i+","+i+",.7)"})}}]),t}(),gyt=["-moz-","-o-","-webkit-","-ms-",""];function fye(e,t,n,i){e.style.background="",Ht.each(gyt,(function(r){e.style.cssText+="background: "+r+"linear-gradient("+t+", "+n+" 0%, "+i+" 100%); "}))}function vyt(e){e.style.background="",e.style.cssText+="background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);",e.style.cssText+="background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"}var yyt={load:function(e,t){var n=t||document,i=n.createElement("link");i.type="text/css",i.rel="stylesheet",i.href=e,n.getElementsByTagName("head")[0].appendChild(i)},inject:function(e,t){var n=t||document,i=document.createElement("style");i.type="text/css",i.innerHTML=e;var r=n.getElementsByTagName("head")[0];try{r.appendChild(i)}catch(e){}}},xyt='
\n\n Here\'s the new load parameter for your GUI\'s constructor:\n\n \n\n
\n\n Automatically save\n values to localStorage on exit.\n\n
The values saved to localStorage will\n override those passed to dat.GUI\'s constructor. This makes it\n easier to work incrementally, but localStorage is fragile,\n and your friends may not see the same values you do.\n\n
\n\n
\n\n
',byt=function(e,t){var n=e[t];return Ht.isArray(arguments[2])||Ht.isObject(arguments[2])?new fyt(e,t,arguments[2]):Ht.isNumber(n)?Ht.isNumber(arguments[2])&&Ht.isNumber(arguments[3])?Ht.isNumber(arguments[4])?new pV(e,t,arguments[2],arguments[3],arguments[4]):new pV(e,t,arguments[2],arguments[3]):Ht.isNumber(arguments[4])?new P2(e,t,{min:arguments[2],max:arguments[3],step:arguments[4]}):new P2(e,t,{min:arguments[2],max:arguments[3]}):Ht.isString(n)?new pyt(e,t):Ht.isFunction(n)?new Tye(e,t,""):Ht.isBoolean(n)?new Eye(e,t):null};function Eyt(e){setTimeout(e,1e3/60)}var _yt=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||Eyt,Tyt=function(){function e(){Yc(this,e),this.backgroundElement=document.createElement("div"),Ht.extend(this.backgroundElement.style,{backgroundColor:"rgba(0,0,0,0.8)",top:0,left:0,display:"none",zIndex:"1000",opacity:0,WebkitTransition:"opacity 0.2s linear",transition:"opacity 0.2s linear"}),bt.makeFullscreen(this.backgroundElement),this.backgroundElement.style.position="fixed",this.domElement=document.createElement("div"),Ht.extend(this.domElement.style,{position:"fixed",display:"none",zIndex:"1001",opacity:0,WebkitTransition:"-webkit-transform 0.2s ease-out, opacity 0.2s linear",transition:"transform 0.2s ease-out, opacity 0.2s linear"}),document.body.appendChild(this.backgroundElement),document.body.appendChild(this.domElement);var t=this;bt.bind(this.backgroundElement,"click",(function(){t.hide()}))}return $c(e,[{key:"show",value:function(){var e=this;this.backgroundElement.style.display="block",this.domElement.style.display="block",this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)",this.layout(),Ht.defer((function(){e.backgroundElement.style.opacity=1,e.domElement.style.opacity=1,e.domElement.style.webkitTransform="scale(1)"}))}},{key:"hide",value:function(){var e=this,t=function t(){e.domElement.style.display="none",e.backgroundElement.style.display="none",bt.unbind(e.domElement,"webkitTransitionEnd",t),bt.unbind(e.domElement,"transitionend",t),bt.unbind(e.domElement,"oTransitionEnd",t)};bt.bind(this.domElement,"webkitTransitionEnd",t),bt.bind(this.domElement,"transitionend",t),bt.bind(this.domElement,"oTransitionEnd",t),this.backgroundElement.style.opacity=0,this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)"}},{key:"layout",value:function(){this.domElement.style.left=window.innerWidth/2-bt.getWidth(this.domElement)/2+"px",this.domElement.style.top=window.innerHeight/2-bt.getHeight(this.domElement)/2+"px"}}]),e}(),wyt=lyt(".dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear;border:0;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button.close-top{position:relative}.dg.main .close-button.close-bottom{position:absolute}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-y:visible}.dg.a.has-save>ul.close-top{margin-top:0}.dg.a.has-save>ul.close-bottom{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{top:0;z-index:1002}.dg.a .save-row.close-top{position:relative}.dg.a .save-row.close-bottom{position:fixed}.dg li{-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;-moz-transition:height .1s ease-out;transition:height .1s ease-out;-webkit-transition:overflow .1s linear;-o-transition:overflow .1s linear;-moz-transition:overflow .1s linear;transition:overflow .1s linear}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px;overflow:hidden}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .cr.function .property-name{width:100%}.dg .c{float:left;width:60%;position:relative}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:7px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .cr.color{overflow:visible}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2FA1D6}.dg .cr.number input[type=text]{color:#2FA1D6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2FA1D6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}\n");yyt.inject(wyt);var pye="dg",mye=72,gye=20,V_="Default",B_=function(){try{return!!window.localStorage}catch(e){return!1}}(),U_=void 0,vye=!0,jy=void 0,dV=!1,wye=[],Di=function e(t){var n=this,i=t||{};this.domElement=document.createElement("div"),this.__ul=document.createElement("ul"),this.domElement.appendChild(this.__ul),bt.addClass(this.domElement,pye),this.__folders={},this.__controllers=[],this.__rememberedObjects=[],this.__rememberedObjectIndecesToControllers=[],this.__listening=[],i=Ht.defaults(i,{closeOnTop:!1,autoPlace:!0,width:e.DEFAULT_WIDTH}),i=Ht.defaults(i,{resizable:i.autoPlace,hideable:i.autoPlace}),Ht.isUndefined(i.load)?i.load={preset:V_}:i.preset&&(i.load.preset=i.preset),Ht.isUndefined(i.parent)&&i.hideable&&wye.push(this),i.resizable=Ht.isUndefined(i.parent)&&i.resizable,i.autoPlace&&Ht.isUndefined(i.scrollable)&&(i.scrollable=!0);var r,a=B_&&"true"===localStorage.getItem(Xy(this,"isLocal")),s=void 0,o=void 0;if(Object.defineProperties(this,{parent:{get:function(){return i.parent}},scrollable:{get:function(){return i.scrollable}},autoPlace:{get:function(){return i.autoPlace}},closeOnTop:{get:function(){return i.closeOnTop}},preset:{get:function(){return n.parent?n.getRoot().preset:i.load.preset},set:function(e){n.parent?n.getRoot().preset=e:i.load.preset=e,Ayt(this),n.revert()}},width:{get:function(){return i.width},set:function(e){i.width=e,yV(n,e)}},name:{get:function(){return i.name},set:function(e){i.name=e,o&&(o.innerHTML=i.name)}},closed:{get:function(){return i.closed},set:function(t){i.closed=t,i.closed?bt.addClass(n.__ul,e.CLASS_CLOSED):bt.removeClass(n.__ul,e.CLASS_CLOSED),this.onResize(),n.__closeButton&&(n.__closeButton.innerHTML=t?e.TEXT_OPEN:e.TEXT_CLOSED)}},load:{get:function(){return i.load}},useLocalStorage:{get:function(){return a},set:function(e){B_&&(a=e,e?bt.bind(window,"unload",s):bt.unbind(window,"unload",s),localStorage.setItem(Xy(n,"isLocal"),e))}}}),Ht.isUndefined(i.parent)){if(this.closed=i.closed||!1,bt.addClass(this.domElement,e.CLASS_MAIN),bt.makeSelectable(this.domElement,!1),B_&&a){n.useLocalStorage=!0;var l=localStorage.getItem(Xy(this,"gui"));l&&(i.load=JSON.parse(l))}this.__closeButton=document.createElement("div"),this.__closeButton.innerHTML=e.TEXT_CLOSED,bt.addClass(this.__closeButton,e.CLASS_CLOSE_BUTTON),i.closeOnTop?(bt.addClass(this.__closeButton,e.CLASS_CLOSE_TOP),this.domElement.insertBefore(this.__closeButton,this.domElement.childNodes[0])):(bt.addClass(this.__closeButton,e.CLASS_CLOSE_BOTTOM),this.domElement.appendChild(this.__closeButton)),bt.bind(this.__closeButton,"click",(function(){n.closed=!n.closed}))}else{void 0===i.closed&&(i.closed=!0);var h=document.createTextNode(i.name);bt.addClass(h,"controller-name"),o=EV(n,h),bt.addClass(this.__ul,e.CLASS_CLOSED),bt.addClass(o,"title"),bt.bind(o,"click",(function(e){return e.preventDefault(),n.closed=!n.closed,!1})),i.closed||(this.closed=!1)}i.autoPlace&&(Ht.isUndefined(i.parent)&&(vye&&(jy=document.createElement("div"),bt.addClass(jy,pye),bt.addClass(jy,e.CLASS_AUTO_PLACE_CONTAINER),document.body.appendChild(jy),vye=!1),jy.appendChild(this.domElement),bt.addClass(this.domElement,e.CLASS_AUTO_PLACE)),this.parent||yV(n,i.width)),this.__resizeHandler=function(){n.onResizeDebounced()},bt.bind(window,"resize",this.__resizeHandler),bt.bind(this.__ul,"webkitTransitionEnd",this.__resizeHandler),bt.bind(this.__ul,"transitionend",this.__resizeHandler),bt.bind(this.__ul,"oTransitionEnd",this.__resizeHandler),this.onResize(),i.resizable&&Ryt(this),s=function(){B_&&"true"===localStorage.getItem(Xy(n,"isLocal"))&&localStorage.setItem(Xy(n,"gui"),JSON.stringify(n.getSaveObject()))},this.saveToLocalStorageIfPossible=s,i.parent||((r=n.getRoot()).width+=1,Ht.defer((function(){r.width-=1})))};function EV(e,t,n){var i=document.createElement("li");return t&&i.appendChild(t),n?e.__ul.insertBefore(i,n):e.__ul.appendChild(i),e.onResize(),i}function yye(e){bt.unbind(window,"resize",e.__resizeHandler),e.saveToLocalStorageIfPossible&&bt.unbind(window,"unload",e.saveToLocalStorageIfPossible)}function gV(e,t){var n=e.__preset_select[e.__preset_select.selectedIndex];n.innerHTML=t?n.value+"*":n.value}function Syt(e,t,n){if(n.__li=t,n.__gui=e,Ht.extend(n,{options:function(t){if(arguments.length>1){var i=n.__li.nextElementSibling;return n.remove(),H_(e,n.object,n.property,{before:i,factoryArgs:[Ht.toArray(arguments)]})}if(Ht.isArray(t)||Ht.isObject(t)){var r=n.__li.nextElementSibling;return n.remove(),H_(e,n.object,n.property,{before:r,factoryArgs:[t]})}},name:function(e){return n.__li.firstElementChild.firstElementChild.innerHTML=e,n},listen:function(){return n.__gui.listen(n),n},remove:function(){return n.__gui.remove(n),n}}),n instanceof pV){var i=new P2(n.object,n.property,{min:n.__min,max:n.__max,step:n.__step});Ht.each(["updateDisplay","onChange","onFinishChange","step","min","max"],(function(e){var t=n[e],r=i[e];n[e]=i[e]=function(){var e=Array.prototype.slice.call(arguments);return r.apply(i,e),t.apply(n,e)}})),bt.addClass(t,"has-slider"),n.domElement.insertBefore(i.domElement,n.domElement.firstElementChild)}else if(n instanceof P2){var r=function(t){if(Ht.isNumber(n.__min)&&Ht.isNumber(n.__max)){var i=n.__li.firstElementChild.firstElementChild.innerHTML,r=n.__gui.__listening.indexOf(n)>-1;n.remove();var a=H_(e,n.object,n.property,{before:n.__li.nextElementSibling,factoryArgs:[n.__min,n.__max,n.__step]});return a.name(i),r&&a.listen(),a}return t};n.min=Ht.compose(r,n.min),n.max=Ht.compose(r,n.max)}else n instanceof Eye?(bt.bind(t,"click",(function(){bt.fakeEvent(n.__checkbox,"click")})),bt.bind(n.__checkbox,"click",(function(e){e.stopPropagation()}))):n instanceof Tye?(bt.bind(t,"click",(function(){bt.fakeEvent(n.__button,"click")})),bt.bind(t,"mouseover",(function(){bt.addClass(n.__button,"hover")})),bt.bind(t,"mouseout",(function(){bt.removeClass(n.__button,"hover")}))):n instanceof mV&&(bt.addClass(t,"color"),n.updateDisplay=Ht.compose((function(e){return t.style.borderLeftColor=n.__color.toString(),e}),n.updateDisplay),n.updateDisplay());n.setValue=Ht.compose((function(t){return e.getRoot().__preset_select&&n.isModified()&&gV(e.getRoot(),!0),t}),n.setValue)}function Sye(e,t){var n=e.getRoot(),i=n.__rememberedObjects.indexOf(t.object);if(-1!==i){var r=n.__rememberedObjectIndecesToControllers[i];if(void 0===r&&(r={},n.__rememberedObjectIndecesToControllers[i]=r),r[t.property]=t,n.load&&n.load.remembered){var a=n.load.remembered,s=void 0;if(a[e.preset])s=a[e.preset];else{if(!a[V_])return;s=a[V_]}if(s[i]&&void 0!==s[i][t.property]){var o=s[i][t.property];t.initialValue=o,t.setValue(o)}}}}function H_(e,t,n,i){if(void 0===t[n])throw new Error('Object "'+t+'" has no property "'+n+'"');var r=void 0;if(i.color)r=new mV(t,n);else{var a=[t,n].concat(i.factoryArgs);r=byt.apply(e,a)}i.before instanceof hg&&(i.before=i.before.__li),Sye(e,r),bt.addClass(r.domElement,"c");var s=document.createElement("span");bt.addClass(s,"property-name"),s.innerHTML=r.property;var o=document.createElement("div");o.appendChild(s),o.appendChild(r.domElement);var l=EV(e,o,i.before);return bt.addClass(l,Di.CLASS_CONTROLLER_ROW),r instanceof mV?bt.addClass(l,"color"):bt.addClass(l,uyt(r.getValue())),Syt(e,l,r),e.__controllers.push(r),r}function Xy(e,t){return document.location.href+"."+t}function vV(e,t,n){var i=document.createElement("option");i.innerHTML=t,i.value=t,e.__preset_select.appendChild(i),n&&(e.__preset_select.selectedIndex=e.__preset_select.length-1)}function xye(e,t){t.style.display=e.useLocalStorage?"block":"none"}function Myt(e){var t=e.__save_row=document.createElement("li");bt.addClass(e.domElement,"has-save"),e.__ul.insertBefore(t,e.__ul.firstChild),bt.addClass(t,"save-row");var n=document.createElement("span");n.innerHTML=" ",bt.addClass(n,"button gears");var i=document.createElement("span");i.innerHTML="Save",bt.addClass(i,"button"),bt.addClass(i,"save");var r=document.createElement("span");r.innerHTML="New",bt.addClass(r,"button"),bt.addClass(r,"save-as");var a=document.createElement("span");a.innerHTML="Revert",bt.addClass(a,"button"),bt.addClass(a,"revert");var s=e.__preset_select=document.createElement("select");if(e.load&&e.load.remembered?Ht.each(e.load.remembered,(function(t,n){vV(e,n,n===e.preset)})):vV(e,V_,!1),bt.bind(s,"change",(function(){for(var t=0;t0&&(e.preset=this.preset,e.remembered||(e.remembered={}),e.remembered[this.preset]=A2(this)),e.folders={},Ht.each(this.__folders,(function(t,n){e.folders[n]=t.getSaveObject()})),e},save:function(){this.load.remembered||(this.load.remembered={}),this.load.remembered[this.preset]=A2(this),gV(this,!1),this.saveToLocalStorageIfPossible()},saveAs:function(e){this.load.remembered||(this.load.remembered={},this.load.remembered[V_]=A2(this,!0)),this.load.remembered[e]=A2(this),this.preset=e,vV(this,e,!0),this.saveToLocalStorageIfPossible()},revert:function(e){Ht.each(this.__controllers,(function(t){this.getRoot().load.remembered?Sye(e||this.getRoot(),t):t.setValue(t.initialValue),t.__onFinishChange&&t.__onFinishChange.call(t,t.getValue())}),this),Ht.each(this.__folders,(function(e){e.revert(e)})),e||gV(this.getRoot(),!1)},listen:function(e){var t=0===this.__listening.length;this.__listening.push(e),t&&Mye(this.__listening)},updateDisplay:function(){Ht.each(this.__controllers,(function(e){e.updateDisplay()})),Ht.each(this.__folders,(function(e){e.updateDisplay()}))}});var Rye=Di,Aye=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],bd=(()=>{if("undefined"==typeof document)return!1;let e=Aye[0],t={};for(let n of Aye)if((null==n?void 0:n[1])in document){for(let[i,r]of n.entries())t[e[i]]=r;return t}return!1})(),Cye={change:bd.fullscreenchange,error:bd.fullscreenerror},rl={request:(e=document.documentElement,t)=>new Promise(((n,i)=>{let r=()=>{rl.off("change",r),n()};rl.on("change",r);let a=e[bd.requestFullscreen](t);a instanceof Promise&&a.then(r).catch(i)})),exit:()=>new Promise(((e,t)=>{if(!rl.isFullscreen)return void e();let n=()=>{rl.off("change",n),e()};rl.on("change",n);let i=document[bd.exitFullscreen]();i instanceof Promise&&i.then(n).catch(t)})),toggle:(e,t)=>rl.isFullscreen?rl.exit():rl.request(e,t),onchange(e){rl.on("change",e)},onerror(e){rl.on("error",e)},on(e,t){let n=Cye[e];n&&document.addEventListener(n,t,!1)},off(e,t){let n=Cye[e];n&&document.removeEventListener(n,t,!1)},raw:bd};Object.defineProperties(rl,{isFullscreen:{get:()=>Boolean(document[bd.fullscreenElement])},element:{enumerable:!0,get:()=>{var e;return null!=(e=document[bd.fullscreenElement])?e:void 0}},isEnabled:{enumerable:!0,get:()=>Boolean(document[bd.fullscreenEnabled])}}),bd||(rl={isEnabled:!1});var I2=rl,L2=new O,D2=class{constructor(e,t,n=void 0){this.scale=1,this.explodeUp=!1,this.scene=e,this.objectId=t,t||se.debug(`[EXP] Invalid objectId: ${t}`),n?this.explodeCenter=n:(this.explodeCenter=new O,this.getObjectCenter(this.explodeCenter));let i=this.scene.getObjectById(this.objectId);null==i||i.updateWorldMatrix(!0,!0)}explode(e){if(this.scale=e,!this.objectId||!this.explodeCenter||!this.scale)return void se.debug(`[EXP] Invalid objectId: ${this.objectId}, or position: ${this.explodeCenter}, or this.power: ${this.scale}`);let t=this.scene.getObjectById(this.objectId);t&&t.children?(se.debug(`[EXP] Exploding object '${t.name}'(id: ${t.id}) at: ${Mt.vectorToString(this.explodeCenter)}`),this.explodeObject(t)):se.debug("[EXP] No children to explode!")}explodeObject(e){e.geometry?this.explodeLeafObject(e):e.children.length>0?e.children.forEach((e=>this.explodeObject(e))):this.explodeLeafObject(e)}explodeLeafObject(e){var t;let n=e;if(!n.geometry)return;n.userData.originalMatrixWorld||(n.userData.originalMatrixWorld=n.matrixWorld);let i=n.userData.originalMatrixWorld;n.userData.originalCenter||(n.geometry.boundingBox||n.geometry.computeBoundingBox(),L2.set(0,0,0),null==(t=n.geometry.boundingBox)||t.getCenter(L2),L2.applyMatrix4(n.matrixWorld),n.userData.originalCenter=L2.clone());let r=n.userData.originalCenter.clone();r.sub(this.explodeCenter),r.multiplyScalar(this.scale-1),this.explodeUp&&(r.setX(0),r.setZ(0));let a=new et;a.setPosition(r),a.multiply(i),n.matrixWorld=a,n.children.length>0&&n.children.forEach((e=>e.updateMatrix()))}unexplode(){let e=this.scene.getObjectById(this.objectId);e&&e.children?(se.debug(`[EXP] Unexploding '${e.name}'(id: ${e.id}) at: ${Mt.vectorToString(this.explodeCenter)}`),this.unexplodeObject(e)):se.debug("[EXP] No children to explode!")}unexplodeObject(e){e.geometry?this.unexplodeLeafObject(e):e.children.length>0?e.children.forEach((e=>this.unexplodeObject(e))):this.unexplodeLeafObject(e)}unexplodeLeafObject(e){let t=e.userData.originalMatrixWorld;t&&(e.matrixWorld=t,e.children.length>0&&e.children.forEach((e=>e.updateMatrix())))}setExplodeUp(e){this.explodeUp=e}getObjectCenter(e){let t=new Ot;if(!this.objectId)return void se.debug(`[EXP] Invalid objectId: ${this.objectId}`);let n=this.scene.getObjectById(this.objectId);n&&n.children?(n.traverse((e=>{t.expandByObject(e)})),t.getCenter(e)):se.debug("[EXP] No children to explode!")}},O2=class extends fr{constructor(e,t){super(e,{id:"ExplodePlugin"}),this.exploders=[],this.onModelLoaded=()=>{this.init()},this.viewer=e,this.cfg=t||{},this.viewer.addEventListener("ModelLoaded",this.onModelLoaded)}get scene(){return this.viewer.scene}init(){this.viewer.loadedModels.forEach((e=>{if(this.hasExploderForModel(e.object.id))return;let t=new O;if(this.cfg.explodeCenter){let e=this.cfg.explodeCenter;t.set(e.x,e.y,e.z)}else!this.cfg.explodeCenter&&e.bbox&&e.bbox.getCenter(t);let n=new D2(this.scene,e.object.id,t);n.setExplodeUp(!!this.cfg.explodeUp),this.exploders.push(n)}))}explode(e){0===this.exploders.length&&this.init();for(let t of this.exploders)t.explode(e),this.viewer.enableRender()}unexplode(){for(let e of this.exploders)e.unexplode(),this.viewer.enableRender()}hasExploderForModel(e){return!!this.exploders.find((t=>t.objectId===e))}destroy(){super.destroy(),this.viewer.removeEventListener("ModelLoaded",this.onModelLoaded),this.unexplode()}},k2=class extends fr{constructor(e,t){super(e,{id:"GroundGrassPlugin"}),this.NAME="GROUND_GRASS",this.DEFAULT_SIZE=1e3,this.DEFAULT_REPEAT=20,this.onModelLoaded=()=>{!1!==this.cfg.visible&&(this.init(),this.viewer.enableRender())},this.cfg=t||{},!1!==this.cfg.visible&&this.init(),this.viewer.addEventListener("ModelLoaded",this.onModelLoaded)}init(){var e;this.groundGrass&&(null==(e=this.viewer.scene)||e.remove(this.groundGrass),this.groundGrass=void 0);let t=this.cfg.texture||"images/terrain/grass.jpg",n=this.cfg.width||this.DEFAULT_SIZE,i=this.cfg.height||this.DEFAULT_SIZE,r=this.cfg.repeatX||this.DEFAULT_REPEAT,a=this.cfg.repeatY||this.DEFAULT_REPEAT,s=new O,o=this.viewer.getBBox();o&&o.getCenter(s),ft(this,null,(function*(){var e;this.groundGrass=yield this.createGrassGround(t,n,i,r,a),null==(e=this.viewer.scene)||e.add(this.groundGrass),this.viewer.enableRender()}))}setVisible(e){e&&!this.groundGrass&&this.init(),this.groundGrass&&(this.groundGrass.visible=e),this.viewer.enableRender()}createGrassGround(e,t,n,i,r){return ft(this,null,(function*(){return new Promise((a=>{(new Rs).load(e,(e=>{e.wrapS=e.wrapT=Ci,e.repeat.set(i,r),e.anisotropy=16,e.encoding=Eu;let s=new Pu({map:e});s.side=pi;let o=new xt(new ui(t,n),s);return o.rotation.x=-Math.PI/2,o.position.y=0,o.receiveShadow=!0,o.name=this.NAME,o.layers.enableAll(),o.layers.disable(12),o.matrixAutoUpdate=!1,o.updateMatrix(),a(o)}))}))}))}destroy(){super.destroy(),this.groundGrass&&(this.groundGrass.removeFromParent(),this.groundGrass.geometry.dispose(),this.groundGrass.clear(),this.groundGrass=void 0),this.viewer.removeEventListener("ModelLoaded",this.onModelLoaded)}},F2=class extends fr{constructor(e,t){super(e,{id:"GroundGridPlugin"}),this.NAME="GROUND_GRID",this.DEFAULT_SIZE=1e3,this.DEFAULT_DIVISIONS=100,this.DEFAULT_MAT_PARAMS={color:12829635,transparent:!0,opacity:.5,wireframeLinewidth:.5},this.onModelLoaded=()=>{!1!==this.cfg.visible&&(this.init(),this.viewer.enableRender())},this.cfg=t||{},!1!==this.cfg.visible&&this.init(),this.viewer.addEventListener("ModelLoaded",this.onModelLoaded)}init(){var e,t;this.gridHelper&&(null==(e=this.viewer.scene)||e.remove(this.gridHelper),this.gridHelper=void 0);let n=this.cfg.size,i=this.cfg.divisions,r=new O,a=this.viewer.getBBox();a&&a.getCenter(r),this.gridHelper=this.createGroundGrid(n,i,r),null==(t=this.viewer.scene)||t.add(this.gridHelper),this.viewer.enableRender()}setVisible(e){e&&!this.gridHelper&&this.init(),this.gridHelper&&(this.gridHelper.visible=e),this.viewer.enableRender()}createGroundGrid(e,t,n){e=e||this.DEFAULT_SIZE,t=t||this.DEFAULT_DIVISIONS;let i=new Ob(e,t);n?i.position.set(n.x,n.y,n.z):i.position.y=0;let r=i.material;return Array.isArray(r)||(r.opacity=this.DEFAULT_MAT_PARAMS.opacity,r.transparent=this.DEFAULT_MAT_PARAMS.transparent),i.name=this.NAME,i.layers.enableAll(),i.layers.disable(12),i.matrixAutoUpdate=!1,i.updateMatrix(),i}destroy(){super.destroy(),this.gridHelper&&(this.gridHelper.removeFromParent(),this.gridHelper.geometry.dispose(),this.gridHelper.clear(),this.gridHelper=void 0),this.viewer.removeEventListener("ModelLoaded",this.onModelLoaded)}},N2=class extends fr{constructor(e,t){super(e,{id:"ScreenshotPlugin"}),this.cfg=t||{},this.cfg.type=this.cfg.type||"image/png",this.cfg.quality=this.cfg.quality||.8}getScreenshot(){var e;let t=null==(e=this.viewer.renderer)?void 0:e.domElement;if(t)return t.toDataURL(this.cfg.type,this.cfg.quality)}getScreenshotAsync(){return ft(this,arguments,(function*(e="BoxSelection"){var t;this.cancel();let n,i="image/png",r=this.viewer,a=null==(t=r.renderer)?void 0:t.domElement;if(!a||!r.viewerContainer||!r.camera)return;if("PickMarkup"===e?(this.pickMarkupHelper||(this.pickMarkupHelper=new SP(r)),n=yield this.pickMarkupHelper.pick()):"BoxSelection"===e&&(this.boxSelectHelper||(this.boxSelectHelper=new $f(r)),n=yield this.boxSelectHelper.select()),"Default"!==e&&!n)return;let s=yield Mt.canvasToImage(a),o=document.createElement("canvas");o.width=a.width,o.height=a.height;let l=window.devicePixelRatio,h=o.getContext("2d");if(h.drawImage(s,0,0,s.width/l,s.height/l),r.overlayRender){let e=yield r.overlayRender.getImage((e=>e instanceof Dr||e instanceof wi));h.drawImage(e,0,0,e.width/l,e.height/l)}let c=Mt.renderingContextToImage(h,n,i,.8);return r instanceof Qf?{base64Image:c,viewExtent:r.getCurrentViewExtent(),imageType:i}:{base64Image:c,imageType:i}}))}isActive(){var e,t;return(null==(e=this.boxSelectHelper)?void 0:e.isActive)||(null==(t=this.pickMarkupHelper)?void 0:t.isActive)}cancel(){var e,t;null!=(e=this.boxSelectHelper)&&e.isActive&&this.boxSelectHelper.deactivate(),null!=(t=this.pickMarkupHelper)&&t.isActive&&this.pickMarkupHelper.deactivate()}},up=class{constructor(e="uploadModelFile"){this.input=document.createElement("input"),this.input.id=e,this.input.type="file",this.input.multiple=!0,this.input.accept=this.formats().map((e=>"."+e)).join(","),this.input.style.display="none",this.input.onchange=e=>{let t=e.target.files;!t||t.length<=0?se.error("[Uploader] No files to be uploaded!"):this.uploadFiles(t)}}formats(){return se.warn("[Uploader]: Should call derived class instead!"),[]}uploadFiles(e){se.warn(`[Uploader]: Should call derived class instead! files: ${e}`)}openFileBrowserToUpload(){this.input.click()}},B2=class extends up{constructor(e,t){super(t),this.defaultModelConfig={src:"",merge:!1},this.viewer=e}formats(){return["gltf","glb","dxf","obj","stl","fbx","ifc","dae","*"]}uploadFiles(e){let t=e.length;if(0===t)return;if(this.checkAllFilesWithTheSameFormat(e)){for(let n=0;n{r&&(n=URL.createObjectURL(r),o.push(n),a.src=r.name)};if(r){l();let e=ra.extractUrlBase(n);i=new Lu,i.setURLModifier((t=>{let n=decodeURI(t).replace(e,"").replace(/^(\.?\/)/,"");if(s.has(n)){let e=s.get(n),t=URL.createObjectURL(e);return o.push(t),t}return t}))}else r=e[0],l();this.viewer.loadLocalModel(n,a,i,(e=>{let t=Math.floor(100*e.loaded/e.total);se.info(`[Uploader] Loading ${null==r?void 0:r.name}, ${t}%`)})).then((()=>{se.info(`[Uploader] Loaded ${null==r?void 0:r.name}`),o.forEach(URL.revokeObjectURL)}))}checkAllFilesWithTheSameFormat(e){let t=e=>{let t=e.lastIndexOf(".");return e.substring(t+1).toLowerCase()},n=e.length,i=t(e[0].name);for(let r=0;r{let n=Math.floor(100*t.loaded/t.total);se.info(`[Uploader] Loading ${null==e?void 0:e.name}, ${n}%`)}))}};function Pye(e,t,n,i,r,a,s){let o=e.addFolder(t);o.add(n,"x",r,a,s).onChange(i),o.add(n,"y",r,a,s).onChange(i),o.add(n,"z",r,a,s).onChange(i)}var Iye=class extends fr{constructor(e){super(e,{id:"BimViewerDatGuiPlugin"}),this.controls={showGroundGrid:!1,showGroundGrass:!1,skyMode:["None","Black Background","White Background","Gradient ramp","Cloudy"],environments:["None","Default (City Streat 64x32)","Venice Sunset","Footprint Court (HDR Labs)","City Street"],homeView:()=>console.log("[DGH] Go to home view"),views:["Top","Bottom","Front","Back","Left","Right"],OrthographicCamera:!1,viewpoints:!1,annotations:!1,takeSnapshot:()=>console.log("[DGH] Taking snapshot..."),fullScreen:()=>console.log("[DGH] Full screen..."),webcam:!1,uploadFile:()=>console.log("[DGH] Upload file..."),showBimTree:!1,showPropertyPanel:!1,transparentMode:!1,showVertexNormals:!1,explode:1,sectionMode:["No section","Box section","Pick plane section","Axis plane section"],alVisible:!0,alColor:"#cccccc",alIntensity:1,dlColor:"#dddddd",showDlHelper:!1,hlVisible:!0,hlIntensity:1,hlColor:[255,255,255,.6],hlGroundColor:[200,255,200,.6],fogEnabled:!1,fogColor:14540253,fogNearDistance:1,fogFarDistance:1e3,composerEnabled:!1,renderPassEnabled:!1,fxaaEnabled:!1,saoEnabled:!1,ssaoEnabled:!1,outlineEnabled:!1,ssaaEnabled:!1,bloomEnabled:!1,unrealBloomEnabled:!1,enableFastOperation:!1,distanceCullingFactor:100},this.viewer=e,this.init()}init(){if(!this.viewer||!this.viewer.renderer||!this.viewer.scene)throw new Error("Need to initialize renderer, scene first!");let e=this.viewer,t=this.viewer.scene,n=this.controls;this.gui=new Rye({name:"controls",autoPlace:!0,width:300,closed:!0}),this.gui.domElement.style.opacity="0.6";let i=this.gui.addFolder("Common settings");i.add(n,"showGroundGrid").name("Show ground grid").onChange((t=>{let n=e.findPlugin("GroundGridPlugin");n?n.setVisible(t):n=new F2(e)})),i.add(n,"showGroundGrass").name("Show ground grass").onChange((t=>{let n=e.findPlugin("GroundGrassPlugin");n?n.setVisible(t):n=new k2(e)})),i.add(n,"environments",n.environments).name("Environments").onChange((n=>{let i="";if("Default (City Streat 64x32)"===n){if(e.pmremGenerator)return Cc.createEnvTextureFromDataArray(e.pmremGenerator).then((e=>{t.environment=e})),void e.enableRender()}else"Venice Sunset"===n?i="venice_sunset_1k.hdr":"Footprint Court (HDR Labs)"===n?i="footprint_court_2k.hdr":"City Street"===n&&(i="city_street_256.hdr");""===i?t.environment=null:(i=`${window.location.origin}/images/envmap/${i}`,Cc.createEnvTexture(e.pmremGenerator,i).then((e=>{t.environment=e}))),e.enableRender()})),i.add(n,"homeView").name("Go to home view").onChange((()=>{e.goToHomeView()})),i.add(n,"views",n.views).name("Views").onChange((n=>{var i;let r=new O,a=new O,s=ks.getVisibleObjectBoundingBox(t),o=aE.getCameraDirectionByView(n);aE.getCameraPositionByBboxAndDirection(s,r,a,null==(i=e.camera)?void 0:i.projectionMatrix,o),e.flyTo(r,a)})),i.add(n,"OrthographicCamera").name("Orth Camera").onChange((t=>{e.setToOrthographicCamera(t)})),i.add(n,"takeSnapshot").name("Take snapshot").onChange((()=>{let t=e.findPlugin("ScreenshotPlugin");t||(t=new N2(e));let n=t.getScreenshot(),i=document.createElement("a");i.href=n,i.download="",i.click()})),i.add(n,"fullScreen").name("Full screen").onChange((()=>{I2&&I2.isEnabled&&I2.request(),e.enableRender()})),i.add(n,"uploadFile").name("Upload file").onChange((()=>{new B2(e).openFileBrowserToUpload()}));let r=this.gui.addFolder("Model operations");r.add(n,"transparentMode",n.transparentMode).name("Transparent mode").onChange((t=>{e.addOrRemoveObjectOpacity(t),e.enableRender()})),r.add(n,"showVertexNormals",n.showVertexNormals).name("Show Vertex Normals").onChange((t=>{e.showVertexNormals(t),e.enableRender()})),r.add(n,"explode",1,5).name("Explode tool").onChange((t=>{let n=e.findPlugin("ExplodePlugin");n||(n=new O2(e)),n.explode(t)})),r.add(n,"sectionMode",n.sectionMode).name("Section mode").onChange((t=>{let n=e.findPlugin("SectionPlugin");n||(n=new d2(e)),"No section"===t?n.deactivate():"Box section"===t?n.activate("ObjectsBoxSection"):"Pick plane section"===t?n.activate("PickPlaneSection"):"Axis plane section"===t&&n.activate("AxisPlaneSection"),e.enableRender()}));let a=this.viewer.ambientLight,s=this.gui.addFolder("Ambient light");s.add(n,"alVisible",n.alVisible).name("visible").onChange((t=>{a&&(a.visible=t),e.enableRender()})),s.addColor(n,"alColor").name("color").onChange((t=>{a&&(a.color=new ct(t)),e.enableRender()})),s.add(n,"alIntensity",0,5).name("intensity").onChange((t=>{a&&(a.intensity=t),e.enableRender()}));let o=this.viewer.directionalLight;if(o){let t=this.gui.addFolder("Directional light");t.add(o,"visible").name("visible").onChange((t=>{o&&(o.visible=t),e.enableRender()})),t.addColor(n,"dlColor").name("color").onChange((t=>{o&&(o.color=new ct(t)),e.enableRender()})),t.add(o,"intensity",0,5).name("intensity").onChange((t=>{o&&(o.intensity=t),e.enableRender()})),t.add(o,"castShadow").name("castShadow").onChange((t=>{o&&(o.castShadow=t),e.enableRender()})),t.add(n,"showDlHelper").name("showDlHelper").onChange((t=>{e.showDirectionalLightHelper(t),e.enableRender()}));let i=()=>{e.updateDirectionalLight(),e.enableRender()};Pye(t,"position",o.position,i),Pye(t,"target",o.target.position,i);let r=t.addFolder("shadow");r.add(o.shadow.camera,"near").name("near").onChange(i),r.add(o.shadow.camera,"far").name("far").onChange(i),r.add(o.shadow.camera,"zoom").name("zoom").onChange(i)}let l=this.viewer.hemisphereLight,h=this.gui.addFolder("Hemisphere Light");h.add(n,"hlVisible",n.hlVisible).name("visible").onChange((t=>{l&&(l.visible=t),e.enableRender()})),h.add(n,"hlIntensity",0,5).name("intensity").onChange((t=>{l&&(l.intensity=t),e.enableRender()})),h.addColor(n,"hlColor").name("color").onChange((t=>{l&&(l.color=new ct(t)),e.enableRender()})),h.addColor(n,"hlGroundColor").name("groundColor").onChange((t=>{l&&(l.groundColor=new ct(t)),e.enableRender()}));let c=this.gui.addFolder("Fog");c.add(n,"fogEnabled",n.fogEnabled).name("Enabled").onChange((i=>{t.fog=i?new wu(n.fogColor,n.fogNearDistance,n.fogFarDistance):null,e.enableRender()})),c.add(n,"fogNearDistance",0,100).name("Near").onChange((i=>{n.fogEnabled&&t&&(t.fog=new wu(n.fogColor,i,n.fogFarDistance)),e.enableRender()})),c.add(n,"fogFarDistance",100,2e3).name("Far").onChange((i=>{n.fogEnabled&&t&&(t.fog=new wu(n.fogColor,n.fogNearDistance,i)),e.enableRender()}));let u=this.gui.addFolder("Composer");u.add(n,"composerEnabled",n.composerEnabled).name("Composer Enabled").onChange((t=>{e.enableComposer(t)})),u.add(n,"renderPassEnabled",n.renderPassEnabled).name("RenderPass Enabled").onChange((t=>{e.enableRenderPass(t)})),u.add(n,"fxaaEnabled",n.fxaaEnabled).name("Effect FXAA Enabled").onChange((t=>{e.enableFxaaPass(t)})),u.add(n,"saoEnabled",n.saoEnabled).name("SAO Enabled").onChange((t=>{e.enableSaoPass(t)})),u.add(n,"ssaoEnabled",n.ssaoEnabled).name("SSAO Enabled").onChange((t=>{e.enableSsaoPass(t)})),u.add(n,"outlineEnabled",n.outlineEnabled).name("OutlinePass Enabled").onChange((t=>{e.enableOutlinePass(t)})),u.add(n,"ssaaEnabled",n.ssaaEnabled).name("SSAA Enabled").onChange((t=>{e.enableSsaaPass(t)})),u.add(n,"bloomEnabled",n.bloomEnabled).name("Bloom Enabled").onChange((t=>{e.enableBloomPass(t)})),u.add(n,"unrealBloomEnabled",n.unrealBloomEnabled).name("Unreal Bloom Enabled").onChange((t=>{e.enableUnrealBloomPass(t)}));let d=this.gui.addFolder("Performance");d.add(n,"enableFastOperation",n.enableFastOperation).name("Enable Fast Operation").onChange((t=>{e.enableFastOperation=t,e.enableRender()})).setValue(e.enableFastOperation),d.add(n,"distanceCullingFactor",10,1e3).name("Distance Culling Factor").onChange((t=>{e.setDistanceCullingFactor(t),e.enableRender()})).setValue(e.getDistanceCullingFactor())}open(){this.gui&&this.gui.open()}close(){this.gui&&this.gui.close()}destroy(){super.destroy(),this.gui&&this.gui.destroy(),this.gui=void 0}},Lye=class extends fr{constructor(e,t){super(e,{id:"LayerManagerPlugin"}),this.mouseDownPositionX=-1,this.mouseDownPositionY=-1,this.onPointerDown=e=>{let t=e.target;null!=t&&t.classList.contains("draggable")&&0===e.button&&(this.mouseDownPositionX=e.x,this.mouseDownPositionY=e.y,document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp))},this.onPointerMove=e=>{let t=this.layerMgrRoot,n=this.viewer.viewerContainer;if(!t||!n)return;let i=n.clientLeft+n.clientWidth,r=n.clientTop+n.clientHeight,a=e.x-this.mouseDownPositionX,s=e.y-this.mouseDownPositionY,o=t.offsetLeft+a,l=t.offsetTop+s;o<0&&(o=0),o>0&&o+t.clientWidth>i&&a>0&&(o=t.offsetLeft),l<0&&(l=0),l>0&&l+t.clientHeight>r&&s>0&&(l=t.offsetTop),t.style.left=`${o}px`,t.style.top=`${l}px`,this.mouseDownPositionX=e.x,this.mouseDownPositionY=e.y},this.onPointerUp=()=>{document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp)},this.cfg=t||{},!1!==this.cfg.visible&&this.init()}init(){let e=this.viewer;this.cfg.containerId&&(this.container=document.getElementById(this.cfg.containerId)),this.container||(this.container=e.widgetContainer),this.dxfLayersArray=e.getLayers(),this.buildPage(),this.addContent(),this.addEventHandlers()}setVisible(e){e&&!this.container&&this.init();let t=this.layerMgrRoot;"none"!==t.style.display!==e&&(e?(this.updatePage(),t.style.display=""):t.style.display="none",this.dispatchEvent("Visibilitychange",e))}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}destroy(){var e,t,n;super.destroy(),null==(e=this.closeBtn)||e.removeEventListener("click",this.closePanel),null==(t=this.checkboxes)||t.forEach((e=>{e.removeEventListener("change",(()=>{this.checkboxHandler(e)}))})),null==(n=this.layerMgrRoot)||n.remove()}buildPage(){var e;this.layerMgrRoot=document.createElement("div"),this.layerMgrRoot.classList.add("layer-manager");let t=document.createElement("div");t.classList.add("header","draggable"),this.headerText=document.createElement("span"),this.headerText.innerHTML="Layers",this.headerText.classList.add("draggable"),this.closeBtn=document.createElement("span"),this.closeBtn.classList.add("close"),this.closeBtn.innerHTML="X",t.appendChild(this.headerText),t.appendChild(this.closeBtn),this.layerMgrRoot.appendChild(t),this.layerList=document.createElement("div"),this.layerList.classList.add("layer-list"),this.layerMgrRoot.appendChild(this.layerList),null==(e=this.container)||e.appendChild(this.layerMgrRoot),this.updateHeaderText()}addContent(){var e;let t='\n
\n \n Color\n   Layer name\n
\n ';if(this.dxfLayersArray){let e=this.dxfLayersArray.length>1;for(let n=0;n{let n=/[a-zA-Z0-9]/,i=e.toString(),r=t.toString();return n.test(i[0])||n.test(r[0])?i>r?1:i{e.addEventListener("change",(()=>{this.checkboxHandler(e)}))}))}generateListItem(e,t,n){return`\n
\n \n
\n ${e}\n
\n `}closePanel(){this.hide()}addEventHandlers(){var e,t;null==(e=this.closeBtn)||e.addEventListener("click",this.closePanel.bind(this)),null==(t=this.layerMgrRoot)||t.addEventListener("pointerdown",this.onPointerDown)}checkboxHandler(e){var t;if(!this.dxfLayersArray||!this.checkboxes)return;let n=this.viewer;if("toggleAllLayers"===e.id){for(let t=0;t{n.setLayerVisibility(t,e.checked,i)}))}return void(null==(t=this.checkboxes)||t.forEach((t=>t.checked=e.checked)))}let i="",r=e.value,a=r.indexOf(">");-1!==a&&(i=r.slice(1,a),r=r.slice(a+2)),i||(i=this.dxfLayersArray[0].modelId),n.setLayerVisibility(r,e.checked,i)}updatePage(){if(!this.dxfLayersArray)return;let e=this.viewer.getLayers();e.length!==this.dxfLayersArray.length&&(this.dxfLayersArray=e,this.addContent(),this.updateHeaderText())}updateHeaderText(){if(!this.dxfLayersArray||!this.headerText)return;let e=0;for(let t=0;t{this.initMaterial(),this.initRenderTarget(),this.createGroundShadowByBBox(e,t)},this.onShadowRender=()=>{var e,t,n,i,r;this.shouldUpdateShadow()&&(this.render(),null==(e=this.shadowCamera)||e.removeFromParent(),this.shadowCamera=void 0,null==(t=this.blurPlane)||t.removeFromParent(),this.blurPlane=void 0,null==(n=this.depthMaterial)||n.dispose(),this.depthMaterial=void 0,null==(i=this.horizontalBlurMaterial)||i.dispose(),this.horizontalBlurMaterial=void 0,null==(r=this.verticalBlurMaterial)||r.dispose(),this.verticalBlurMaterial=void 0)},this.cfg=t,this.viewer.addEventListener("ModelLoaded",this.onModelLoaded),this.viewer.addEventListener("BeforeRender",this.onShadowRender)}get scene(){return this.viewer.scene}get renderer(){return this.viewer.renderer}shouldUpdateShadow(){let e=!1,t=this.viewer.loadedModels.length;return this.modelCount!==t&&(this.modelCount=t,e=!0),e}initMaterial(){this.depthMaterial=new Tc,this.depthMaterial.userData.darkness={value:this.cfg.darkness},this.depthMaterial.onBeforeCompile=e=>{var t;e.uniforms.darkness=null==(t=this.depthMaterial)?void 0:t.userData.darkness,e.fragmentShader=`\n uniform float darkness;\n ${e.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );","gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );")}\n `},this.depthMaterial.depthTest=!1,this.depthMaterial.depthWrite=!1,this.horizontalBlurMaterial=new ln(Dye),this.horizontalBlurMaterial.depthTest=!1,this.verticalBlurMaterial=new ln(Oye),this.verticalBlurMaterial.depthTest=!1}initRenderTarget(){this.renderTarget=new sr(128,128),this.renderTarget.texture.generateMipmaps=!1,this.renderTargetBlur=new sr(128,128),this.renderTargetBlur.texture.generateMipmaps=!1}createGroundShadowByBBox(e,t){var n,i,r;this.shadowGroup=new er,this.shadowGroup.name=`${e}-ground-shadow`,Hn.disableLayerChannels(this.shadowGroup,[12,11]),null==(n=this.scene)||n.add(this.shadowGroup);let{min:a,max:s}=t,o=new O;t.getSize(o),o.multiplyScalar(2);let l=new O;t.getCenter(l);let h=new ui(o.x,o.z).rotateX(Math.PI/2),c=new on({map:null==(i=this.renderTarget)?void 0:i.texture,transparent:!0,depthWrite:!1}),u=new xt(h,c);u.renderOrder=1,u.position.set(l.x,a.y,l.z),u.scale.y=-1,null==(r=this.shadowGroup)||r.add(u),this.shadowCamera=new Ur(-o.x/2,o.x/2,o.z/2,-o.z/2,-o.y/2,o.y),this.shadowCamera.position.set(l.x,a.y,l.z),this.shadowCamera.lookAt(l.x,s.y,l.z),this.shadowGroup.add(this.shadowCamera),this.blurPlane=new xt(h),this.blurPlane.position.set(l.x,a.y,l.z),this.blurPlane.visible=!1,this.shadowGroup.add(this.blurPlane)}blurShadow(e){this.renderer&&this.blurPlane&&this.renderTarget&&this.renderTargetBlur&&this.shadowCamera&&this.horizontalBlurMaterial&&this.verticalBlurMaterial&&(this.blurPlane.visible=!0,this.blurPlane.material=this.horizontalBlurMaterial,this.horizontalBlurMaterial.uniforms.tDiffuse.value=this.renderTarget.texture,this.horizontalBlurMaterial.uniforms.h.value=1*e/256,this.renderer.setRenderTarget(this.renderTargetBlur),this.renderer.render(this.blurPlane,this.shadowCamera),this.blurPlane.material=this.verticalBlurMaterial,this.verticalBlurMaterial.uniforms.tDiffuse.value=this.renderTargetBlur.texture,this.verticalBlurMaterial.uniforms.v.value=1*e/256,this.renderer.setRenderTarget(this.renderTarget),this.renderer.render(this.blurPlane,this.shadowCamera),this.blurPlane.visible=!1)}render(){if(!(this.renderer&&this.scene&&this.renderTarget&&this.shadowCamera&&this.depthMaterial))return;let e=this.scene.background;this.scene.background=null,this.scene.overrideMaterial=this.depthMaterial;let t=this.renderer.getClearAlpha();this.renderer.setClearAlpha(0),this.renderer.setRenderTarget(this.renderTarget),this.renderer.render(this.scene,this.shadowCamera),this.scene.overrideMaterial=null,this.blurShadow(this.cfg.blur),this.blurShadow(.4*this.cfg.blur),this.renderer.setRenderTarget(null),this.renderer.setClearAlpha(t),this.scene.background=e}destroy(){var e,t,n,i,r,a,s;super.destroy(),this.viewer.removeEventListener("ModelLoaded",this.onModelLoaded),this.viewer.removeEventListener("BeforeRender",this.onShadowRender),null==(e=this.shadowCamera)||e.removeFromParent(),this.shadowCamera=void 0,null==(t=this.blurPlane)||t.removeFromParent(),this.blurPlane=void 0,null==(n=this.depthMaterial)||n.dispose(),this.depthMaterial=void 0,null==(i=this.horizontalBlurMaterial)||i.dispose(),this.horizontalBlurMaterial=void 0,null==(r=this.verticalBlurMaterial)||r.dispose(),this.verticalBlurMaterial=void 0,null==(a=this.renderTarget)||a.dispose(),this.renderTarget=void 0,null==(s=this.renderTargetBlur)||s.dispose(),this.renderTargetBlur=void 0}},Fye=class extends fr{constructor(e){super(e,{id:"HotpointPlugin"}),this.onAfterRender=()=>{var e;let t=this.viewer.scene,n=this.viewer.camera;!t||!n||!this.hotpointRoot||0===this.hotpointRoot.children.length||null==(e=this.css2dRenderer)||e.render(t,n)},this.css2dRenderer=this.viewer.css2dRenderer,this.viewer.addEventListener("AfterRender",this.onAfterRender)}add(e){var t;if(this.has(e.hotpointId))return void se.warn(`[Hotpoint] Hotpoint with id '${e.hotpointId}' already exist!`);let n=e.anchorPosition,i=Tf.createHotpoint(e.html);i.position.set(n[0]||0,n[1]||0,n[2]||0),i.visible=!1!==e.visible,i.userData.hotpoint=e,this.hotpointRoot||(this.hotpointRoot=new er,this.hotpointRoot.matrixAutoUpdate=!1,this.hotpointRoot.matrixWorldAutoUpdate=!1,this.hotpointRoot.name="HotpointRoot",null==(t=this.viewer.scene)||t.add(this.hotpointRoot)),this.hotpointRoot.add(i),i.updateWorldMatrix(!1,!1),this.viewer.enableRender()}remove(e){var t,n;let i=(null==(t=this.hotpointRoot)?void 0:t.children)||[];for(let r=0;r{var n;return(null==(n=t.userData.hotpoint)?void 0:n.hotpointId)===e}))}},Ns=ji(Nye(),1),ai=ji(v1e(),1),YV={Fill:"Fill",Stroke:"Stroke",Shading:"Shading"},ec={Fill:0,Stroke:1,FillStroke:2,Invisible:3,FillAddToPath:4,StrokeAddToPath:5,FillStrokeAddToPath:6,AddToPath:7,FillStrokeMask:3,AddToPathFlag:4},y1e=16,x1e=100,$V=[1,0,0,1,0,0],ZV=[.001,0,0,.001,0,0],Pyt=["butt","round","square"],Iyt=["miter","round","bevel"],Lyt={},b1e={},E1e=new ct,Y2=new et,_1e=0,Dyt=.01,KV=class extends Er{constructor(e){if(super(),this.contentVisible=!0,this.markedContentStack=[],this.stateStack=[],this.current=new $2(1,1),this.tempSMask=null,this.pendingEOFill=!1,this.activeLayoutName="Model",this.defaultLayerId="0",this.currentLayerId="0",this.layers={0:{name:"0",id:"0",index:"0",visible:!0}},this.loadedEntityCount=0,this.viewportScale=1,this.baseTransform=new et,this.currentTransform=new et,this.transformStack=[],this.clipType=Ns.PolyFillType.pftNonZero,this.paths=[],this.pointsMaterials={},this.lineBasicMaterials={},this.meshBasicMaterials={},this.lineWithWidthCount=0,void 0===ai)throw"[PdfLoader] need load pdf.js first";"3.8.162"!==ai.version&&se.warn("[PdfLoader] The pdf.js version we are using now is 3.8.162,if not maybe wrong."),this.fontManager=e.font,ai.GlobalWorkerOptions.workerSrc=e.pdfWorker}load(e,t,n,i){this.loadAsync(e,n).then((e=>{t(e)})).catch((e=>{i(e)}))}loadAsync(e,t){return ft(this,null,(function*(){var n,i,r;let a=Mt.getUpdateProgressFunc(t),s=Mt.getUpdateSubProgressFunc(0,10,t),o=Mt.getUpdateSubProgressFunc(30,90,t);a(0);let{src:l}=e;this.modelCfg=e;let h=e.modelId||l,c=Date.now(),u=ai.getDocument(l);u.onProgress=s;let d=yield u.promise;this.pdf=d,se.info(`[PdfLoader] Pdf document loaded in ${(Date.now()-c)/1e3}s`),c=Date.now(),se.log(d),this.pdfDocumentGroup=new er,this.pdfDocumentGroup.name=`PdfDocument-${h}`,this.optionalContentConfig=yield d.getOptionalContentConfig(),d.numPages>1&&se.info("[PdfLoader] Only the first page can be render others will be ignore.");let p=yield d.getPage(1);a(20),se.info(`[PdfLoader] Pdf page loaded in ${(Date.now()-c)/1e3}s`),c=Date.now(),se.log(p),this.pdfPage=p,this.pdfPageGroup=new er,this.pdfPageGroup.name=KV.MODEL_LAYOUT_NAME,this.pdfDocumentGroup.add(this.pdfPageGroup),this.commonObjs=d._transport.commonObjs,this.objs=p.objs,yield null==(n=this.fontManager)?void 0:n.getFontFromIndexeddb(),se.log("[PdfLoader] Font loaded.");let f=p.view,m=8192/Math.max(f[2]-f[0],f[3]-f[1]),g=Math.min(300/72,m),v=p.getViewport({scale:g});return this.beginDrawing(v),this.current=new $2(v.width,v.height),yield this.buildLayers(p),a(30),yield this.getOperatorList(o),null!=(i=this.fontManager)&&i.missingFonts&&se.warn("[PdfLoader] Missing fonts and reference count:",null==(r=this.fontManager)?void 0:r.missingFonts,", used other fonts instead."),this.lineWithWidthCount>0&&se.warn(`[PdfLoader] Found ${this.lineWithWidthCount} line(s) with width, line width is not supported and was ignored.`),a(100),se.info(`[PdfLoader] Loaded '${e.src}' in ${(Date.now()-c)/1e3}s, adding to scene...`),{modelId:h,pdfData:{threejsObject:this.pdfDocumentGroup,layers:this.layers||[],layersAndThreejsObjects:this.layersAndThreejsObjects,loadedEntityCount:this.loadedEntityCount}}}))}getOperatorList(e){return ft(this,null,(function*(){let t=this.pdfPage;if(!t)return;let n,i=ai.AnnotationMode.ENABLE,r=t._transport.getRenderingIntent("display",i,null,!0),a=t._intentStates.get(r.cacheKey);return a||(a=Object.create(null),t._intentStates.set(r.cacheKey,a)),a.opListReadCapability||(n=Object.create(null),n.operatorListChanged=function(){a.operatorList.lastChunk&&(a.opListReadCapability.resolve(a.operatorList),a.renderTasks.delete(n))},a.opListReadCapability=new ai.PromiseCapability,(a.renderTasks||(a.renderTasks=new Set)).add(n),a.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null}),yield this._pumpOperatorList(r,e)}))}_pumpOperatorList(e,t){return ft(this,null,(function*(){var n,i;let r=this.pdfPage;if(!r)return;let{renderingIntent:a,cacheKey:s,annotationStorageSerializable:o}=e,{map:l,transfers:h}=o,c=r._transport.messageHandler.sendWithStream("GetOperatorList",{pageIndex:r._pageIndex,intent:a,cacheKey:s,annotationStorage:l},h).getReader(),u=r._intentStates.get(s);for(u.streamReader=c;;)try{let{value:e,done:a}=yield c.read();if(a)return void(u.streamReader=null);if(r._transport.destroyed)return;let s=e;yield this.executeOperatorList(s,t),null==(n=this.pdfPageGroup)||n.updateMatrixWorld(!0),null!=(i=this.modelCfg)&&i.merge&&this.mergePdfObjects(),s.lastChunk&&this.endDrawing()}catch(e){if(u.streamReader=null,r._transport.destroyed)return;if(u.operatorList){u.operatorList.lastChunk=!0;for(let e of u.renderTasks)e.operatorListChanged();this.tryCleanup()}if(u.displayReadyCapability)u.displayReadyCapability.reject(e);else{if(!u.opListReadCapability)throw e;u.opListReadCapability.reject(e)}}}))}tryCleanup(){let e=this.pdfPage;e&&e._intentStates.clear()}mergePdfObjects(){for(let e in this.layersAndThreejsObjects){let t=this.layersAndThreejsObjects[e];if(t.length<=1)continue;let n=Ar.deepMerge(t,this.pdfPageGroup,!1,!1,!1),i=n.added,r=n.removed;r.forEach((e=>{var t,n;null==(t=this.pdfPageGroup)||t.remove(e);let i=e;i.geometry.dispose(),i.material.dispose(),null==(n=i.material.map)||n.dispose()})),i.forEach((e=>{var t;null==(t=this.pdfPageGroup)||t.add(e)}));let a=t.filter((e=>!r.includes(e)));a.push(...i),this.layersAndThreejsObjects[e]=a}}getPointsMaterial(e,t=1){return this.pointsMaterials[`${e}-${t}`]||(this.pointsMaterials[`${e}-${t}`]=new xi({color:e,transparent:!0,opacity:t})),this.pointsMaterials[`${e}-${t}`]}getLineBasicMaterial(e,t=1){return this.lineBasicMaterials[`${e}-${t}`]||(this.lineBasicMaterials[`${e}-${t}`]=new Gn({color:e,transparent:!0,opacity:t})),this.lineBasicMaterials[`${e}-${t}`]}getMeshBasicMaterial(e,t=1){return this.meshBasicMaterials[`${e}-${t}`]||(this.meshBasicMaterials[`${e}-${t}`]=new on({color:e,transparent:!0,opacity:t,side:Sr})),this.meshBasicMaterials[`${e}-${t}`]}getTransformByMatrix4(e){return[e.elements[0],e.elements[1],e.elements[4],e.elements[5],e.elements[12],e.elements[13]]}getObject(e,t=null){return"string"==typeof e?e.startsWith("g_")?this.commonObjs.get(e):this.objs.get(e):t}beginDrawing(e){var t,n,i;se.log("beginDrawing",e),this.viewportScale=e.scale;let[r,a,s,o,l,h]=e.transform;this.baseTransform.set(r,s,0,l,a,o,0,h,0,0,1,0,0,0,0,1),this.currentTransform.copy(this.baseTransform),null==(t=this.pdfDocumentGroup)||t.applyMatrix4(this.baseTransform),null==(n=this.pdfDocumentGroup)||n.rotateZ(An.degToRad(-e.rotation));let{width:c,height:u}=e,d=(new Dt).setFromPoints([new O(0,0,0),new O(c,0,0),new O(c,u,0),new O(0,0,0),new O(c,u,0),new O(0,u,0)]),p=new on({color:16777215}),f=new xt(d,p);f.renderOrder=-999,null==(i=this.pdfDocumentGroup)||i.add(f)}endDrawing(){var e;null==(e=this.pdfPageGroup)||e.updateMatrixWorld(!0),this.tryCleanup(),this.releaseData()}releaseData(){var e;null==(e=this.fontManager)||e.releaseFontData(),this.operatorList=void 0,this.optionalContentConfig=void 0,this.commonObjs=void 0,this.objs=void 0,this.pdfPage=void 0,this.pdf=void 0}buildLayers(e){return ft(this,null,(function*(){if(!this.pdf)return;let t=yield e.getOperatorList(),n=t.fnArray,i=t.argsArray,r={},a=1;for(let e=0;n&&e1&&this.lineWithWidthCount++}setLineCap(e){se.log("setLineCap",Pyt[e]),this.current.lineCap=e}setLineJoin(e){se.log("setLineJoin",Iyt[e]),this.current.lineJoin=e}setMiterLimit(e){se.log("setMiterLimit",e),this.current.miterLimit=e}setDash(e,t){se.log("setDash",e,t)}setRenderingIntent(e){}setFlatness(e){}setGState(e){for(let[t,n]of e)switch(t){case"LW":this.setLineWidth(n);break;case"LC":this.setLineCap(n);break;case"LJ":this.setLineJoin(n);break;case"ML":this.setMiterLimit(n);break;case"D":this.setDash(n[0],n[1]);break;case"RI":this.setRenderingIntent(n);break;case"FL":this.setFlatness(n);break;case"Font":this.setFont(n[0],n[1]);break;case"CA":this.current.strokeAlpha=n;break;case"ca":this.current.fillAlpha=n;break;case"BM":case"TR":break;case"SMask":this.current.activeSMask=n?this.tempSMask:null,this.tempSMask=null}}save(){se.log("[PdfLoader] ================save");let e=this.current;this.transformStack.push(this.currentTransform.clone()),this.stateStack.push(e),this.current=e.clone()}restore(){se.log("[PdfLoader] ================restore"),0!==this.stateStack.length&&(this.current=this.stateStack.pop()),0!==this.transformStack.length&&this.currentTransform.copy(this.transformStack.pop()),this.pendingClip=null,this.paths=[]}transform(e,t,n,i,r,a){let s=Y2.set(e,n,0,r,t,i,0,a,0,0,1,0,0,0,0,1);this.currentTransform.multiply(s)}moveTo(){}lineTo(){}curveTo(){}curveTo2(){}curveTo3(){}closePath(){this.currentPath&&this.currentPath.curves.length>0&&(this.currentPath.closePath(),this.paths.push(this.currentPath.clone()),this.currentPath=void 0)}rectangle(){}stroke(e=!0){if(this.contentVisible){let e=this.current.strokeColor,t=this.current.strokeAlpha,n=[],i=[];for(let r=0;r0){let i=Ni(n),r=new ii(i,this.getPointsMaterial(e,t));this.addObjectToModel(r)}if(i.length>0){let n=Ni(i),r=new hr(n,this.getLineBasicMaterial(e,t));this.addObjectToModel(r)}}e&&this.consumePath(this.current.getClippedPathBoundingBox())}closeStroke(){this.closePath(),this.stroke()}fill(e=!0){if(0===this.paths.length)return;this.current.patternFill&&se.warn("[PdfLoader] fill pattern not supported now.");let t=this.current.getClippedPathBoundingBox();if(this.contentVisible&&null!==t){let e,t=[];if(this.clipPaths){let e=new Ns.PolyTree,n=new Ns.Clipper,i=this.paths.map((e=>e.getPoints().map((e=>({X:e.x,Y:e.y}))))),r=this.clipPaths.map((e=>e.getPoints().map((e=>({X:e.x,Y:e.y}))))),a=100;Ns.JS.ScaleUpPaths(i,a),Ns.JS.ScaleUpPaths(r,a),n.AddPaths(i,Ns.PolyType.ptSubject,!0),n.AddPaths(r,Ns.PolyType.ptClip,!0),n.Execute(Ns.ClipType.ctIntersection,e,this.pendingEOFill?Ns.PolyFillType.pftEvenOdd:Ns.PolyFillType.pftNonZero,this.clipType);let s=Ns.JS.PolyTreeToExPolygons(e);for(let o=0;onew be(e.X/a,e.Y/a)))),n.length>0&&n.forEach((e=>{let t=new Ss;t.setFromPoints(e.map((e=>new be(e.X/a,e.Y/a)))),i.holes.push(t)})),t.push(i)}this.clipPaths=void 0}e=t.length>0?new Al(t):Ni(this.paths.map((e=>new Al(e)))),e.applyMatrix4(this.currentTransform);let n=this.current.fillColor,i=this.current.fillAlpha,r=new xt(e,this.getMeshBasicMaterial(n,i));this.addObjectToModel(r),this.pendingEOFill=!1}e&&this.consumePath(t)}eoFill(){this.pendingEOFill=!0,this.fill()}fillStroke(){this.fill(!1),this.consumePath()}eoFillStroke(){this.pendingEOFill=!0,this.fillStroke()}closeFillStroke(){this.closePath(),this.fillStroke()}closeEOFillStroke(){this.pendingEOFill=!0,this.closePath(),this.fillStroke()}endPath(){this.consumePath()}clip(){this.pendingClip=Lyt}eoClip(){this.pendingClip=b1e}beginText(){this.current.textMatrix=$V,this.current.textMatrixScale=1,this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}endText(){this.currentPath=new Ss}setCharSpacing(e){this.current.charSpacing=e}setWordSpacing(e){this.current.wordSpacing=e}setHScale(e){this.current.textHScale=e/100}setLeading(e){this.current.leading=-e}setFont(e,t){var n;let i=this.commonObjs.get(e),r=this.current;if(!i)throw new Error(`Can't find font for ${e}`);if(r.fontMatrix=i.fontMatrix||ZV,(0===r.fontMatrix[0]||0===r.fontMatrix[3])&&se.warn("Invalid font matrix for font "+e),t<0?(t=-t,r.fontDirection=-1):r.fontDirection=1,this.current.font=i,this.current.fontSize=t,i.isType3Font)return;let a=i.loadedName||"sans-serif",s=(null==(n=i.systemFontInfo)?void 0:n.css)||`"${a}", ${i.fallbackName}`,o="normal";i.black?o="900":i.bold&&(o="bold");let l=i.italic?"italic":"normal",h=t;tx1e&&(h=x1e),this.current.fontSizeScale=t/h,this.current.browserFontSize=h,se.log(`[PdfLoader] font: ${l} ${o} ${h}px ${s}`),se.log(`[PdfLoader] current font is: ${i.name}`)}setTextRenderingMode(e){this.current.textRenderingMode=e}setTextRise(e){this.current.textRise=e}moveText(e,t){this.current.x=this.current.lineX+=e,this.current.y=this.current.lineY+=t}setLeadingMoveText(){}setTextMatrix(e,t,n,i,r,a){this.current.textMatrix=[e,t,n,i,r,a],this.current.textMatrixScale=Math.hypot(e,t),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}nextLine(){this.moveText(0,this.current.leading)}paintChar(e,t,n){var i,r,a,s;se.log("paintChar",e,t,n);let o,l,h=this.current,c=h.font,u=h.textRenderingMode,d=h.fontSize/h.fontSizeScale,p=u&ec.FillStrokeMask,f=!!(u&ec.AddToPathFlag),m=h.patternFill&&!c.missingFile;return(c.disableFontFace||f||m)&&(o=c.getPathGenerator(this.commonObjs,e)),c.disableFontFace||m?se.log("paintChar path:",o,d,p):((p===ec.Fill||p===ec.FillStroke)&&(l=null==(r=this.fontManager)?void 0:r.getCharShape(e,null==(i=this.current.font)?void 0:i.name,.8*this.current.browserFontSize)),(p===ec.Stroke||p===ec.FillStroke)&&(l=null==(s=this.fontManager)?void 0:s.getCharShape(e,null==(a=this.current.font)?void 0:a.name,.8*this.current.browserFontSize))),l}showText(e){var t,n;let i=this.current,r=i.font;if(r.isType3Font)return this.showType3Text(e);let a=i.fontSize;if(0===a)return;let s=i.fontSizeScale,o=i.charSpacing,l=i.wordSpacing,h=i.fontDirection,c=i.textHScale*h,u=e.length,d=r.vertical,p=d?1:-1,f=r.defaultVMetrics,m=a*i.fontMatrix[0],g=i.textRenderingMode===ec.Fill&&!r.disableFontFace&&!i.patternFill,[v,y,x,b,_,w]=i.textMatrix,S=this.currentTransform.clone();S.multiply(Y2.set(v,x,0,_,y,b,0,w,0,0,1,0,0,0,0,1)),S.multiply(Y2.makeTranslation(i.x,i.y+i.textRise,0)),h>0?S.scale(new O(c,1,1)):S.scale(new O(c,-1,1));let M=i.lineWidth,T=i.textMatrixScale;0===T||0===M?(i.textRenderingMode&ec.FillStrokeMask)===ec.Stroke||ec.FillStroke:M/=T,1!==s&&(S.scale(new O(s,s,1)),M/=s);let E,A=0,C=[];for(E=0;E0){let e,t=C[0]instanceof ta,n=Ni(C);e=t?new xt(n,this.getMeshBasicMaterial(this.current.fillColor)):new Wr(n,this.getLineBasicMaterial(this.current.fillColor)),e&&(this.addObjectToModel(e),e.layers.disable(11))}d?i.y-=A:i.x+=A*c}showType3Text(e){}setCharWidth(e,t){}setCharWidthAndBounds(e,t,n,i,r,a){}setStrokeColor(){}setStrokeColorN(){}setFillColorN(){this.current.patternFill=!0}setStrokeRGBColor(e,t,n){se.log("setStrokeRGBColor",[e,t,n]),this.current.strokeColor=E1e.setRGB(e/255,t/255,n/255).convertSRGBToLinear().getHex()}setFillRGBColor(e,t,n){se.log("setFillRGBColor",[e,t,n]),this.current.fillColor=E1e.setRGB(e/255,t/255,n/255).convertSRGBToLinear().getHex(),this.current.patternFill=!1}shadingFill(){}beginInlineImage(){}beginImageData(){}markPoint(e){}markPointProps(e,t){}beginMarkedContent(e){se.log("beginMarkedContent",e),this.markedContentStack.push({visible:!0})}beginMarkedContentProps(e,t){if("OC"===e){this.markedContentStack.push({visible:this.optionalContentConfig.isVisible(t)});let e=this.optionalContentConfig.getGroup(null==t?void 0:t.id);this.currentLayerId=(null==e?void 0:e.name)||this.defaultLayerId,se.log("current layer:",null==e?void 0:e.name)}else this.markedContentStack.push({visible:!0});this.contentVisible=this.isContentVisible()}endMarkedContent(){this.markedContentStack.pop(),this.contentVisible=this.isContentVisible()}beginCompat(){}endCompat(){}consumePath(e){let t=this.current.isEmptyClip();this.pendingClip&&this.current.updateClipFromPath(),this.pendingClip,this.pendingClip&&(t||(this.pendingClip===b1e?this.clipType=Ns.PolyFillType.pftEvenOdd:this.clipType=Ns.PolyFillType.pftNonZero,this.clipPaths=this.paths.slice()),this.pendingClip=null),this.current.startNewPathAndClipBox(this.current.clipBox),this.paths=[],this.currentPath=void 0}paintFormXObjectBegin(e,t){se.log("paintFormXObjectBegin",e,t)}paintFormXObjectEnd(){}beginGroup(){}endGroup(){}beginAnnotation(){}endAnnotation(){}paintImageMaskXObject(){}paintImageMaskXObjectGroup(){}paintImageXObject(e){if(!this.contentVisible)return;let t=this.getObject(e);t?this.paintInlineImageXObject(t):se.warn("Dependent image isn't ready yet")}paintInlineImageXObject(e){if(!this.contentVisible)return;se.log("paintInlineImageXObject",e),this.save();let{bitmap:t,width:n,height:i}=e;this.currentTransform.multiply(Y2.makeScale(1/n,-1/i,1));let r=new Eb(t),a=new on({map:r,transparent:!0}),s=new ui(n,i),o=new xt(s,a);o.translateX(n/2),o.translateY(-i/2),o.applyMatrix4(this.currentTransform),this.addObjectToModel(o),this.restore()}paintInlineImageXObjectGroup(){}paintImageXObjectRepeat(){}paintImageMaskXObjectRepeat(){}paintSolidColorImageMask(){}_scaleImage(e,t){let n=e.width,i=e.height,r=Math.max(Math.hypot(t.elements[0],t.elements[4]),1),a=Math.max(Math.hypot(t.elements[1],t.elements[5]),1),s=n,o=i,l=s,h=o;for(;r>2&&s>1||a>2&&o>1;)r>2&&s>1&&(l=s>=16384?Math.floor(s/2)-1||1:Math.ceil(s/2),r/=s/l),a>2&&o>1&&(h=o>=16384?Math.floor(o/2)-1||1:Math.ceil(o)/2,a/=o/h),s=l,o=h;return{paintWidth:s,paintHeight:o}}constructPath(e,t,n){let i,r,a=this.current,s=a.x,o=a.y,l=[this.currentTransform.elements[0],this.currentTransform.elements[1],this.currentTransform.elements[4],this.currentTransform.elements[5],this.currentTransform.elements[12],this.currentTransform.elements[13]],h=0===l[0]&&0===l[3]||0===l[1]&&0===l[2],c=h?n.slice(0):null;for(let u=0,d=0,p=e.length;u=0;e--)if(!this.markedContentStack[e].visible)return!1;return!0}},ah=KV;ah.MODEL_LAYOUT_NAME="Model";for(let t in ai.OPS)void 0!==ah.prototype[t]&&(ah.prototype[ai.OPS[t]]=ah.prototype[t]);var $2=class{constructor(e,t){this.textMatrix=$V,this.fontMatrix=ZV,this.textRenderingMode=ec.Fill,this.fillColor=0,this.strokeColor=0,this.activeSMask=null,this.lineCap=0,this.lineJoin=0,this.miterLimit=0,this.alphaIsShape=!1,this.fontSize=0,this.fontSizeScale=1,this.browserFontSize=1,this.textMatrix=$V,this.textMatrixScale=1,this.fontMatrix=ZV,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRenderingMode=ec.Fill,this.textRise=0,this.fillColor=0,this.strokeColor=0,this.patternFill=!1,this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.activeSMask=null,this.transferMaps="none",this.ctxMatrix=new Ln,this.clipBox=[0,0,e,t],this.minX=1/0,this.minY=1/0,this.maxX=0,this.maxY=0}clone(){return Object.create(this)}setCurrentPoint(e,t){this.x=e,this.y=t}startNewPathAndClipBox(e){this.clipBox=e,this.minX=1/0,this.minY=1/0,this.maxX=0,this.maxY=0}updatePathMinMax(e,t,n){[t,n]=ai.Util.applyTransform([t,n],e),this.minX=Math.min(this.minX,t),this.minY=Math.min(this.minY,n),this.maxX=Math.max(this.maxX,t),this.maxY=Math.max(this.maxY,n)}getPathBoundingBox(e=YV.Fill,t=null){let n=[this.minX,this.minY,this.maxX,this.maxY];if(e===YV.Stroke){if(!t)throw new Error("Stroke bounding box must include transform.");let e=ai.Util.singularValueDecompose2dScale(t),i=e[0]*this.lineWidth/2,r=e[1]*this.lineWidth/2;n[0]-=i,n[1]-=r,n[2]+=i,n[3]+=r}return n}updateRectMinMax(e,t){let n=ai.Util.applyTransform(t,e),i=ai.Util.applyTransform(t.slice(2),e);this.minX=Math.min(this.minX,n[0],i[0]),this.minY=Math.min(this.minY,n[1],i[1]),this.maxX=Math.max(this.maxX,n[0],i[0]),this.maxY=Math.max(this.maxY,n[1],i[1])}updateScalingPathMinMax(e,t){ai.Util.scaleMinMax(e,t),this.minX=Math.min(this.minX,t[0]),this.maxX=Math.max(this.maxX,t[1]),this.minY=Math.min(this.minY,t[2]),this.maxY=Math.max(this.maxY,t[3])}updateCurvePathMinMax(e,t,n,i,r,a,s,o,l,h){let c=ai.Util.bezierBoundingBox(t,n,i,r,a,s,o,l);if(h)return h[0]=Math.min(h[0],c[0],c[2]),h[1]=Math.max(h[1],c[0],c[2]),h[2]=Math.min(h[2],c[1],c[3]),void(h[3]=Math.max(h[3],c[1],c[3]));this.updateRectMinMax(e,c)}updateClipFromPath(){let e=ai.Util.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(e||[0,0,0,0])}isEmptyClip(){return this.minX===1/0}getClippedPathBoundingBox(e=YV.Fill,t=null){return ai.Util.intersect(this.clipBox,this.getPathBoundingBox(e,t))||[]}},T1e=class extends fr{constructor(e,t){super(e,{id:"PdfLoaderPlugin"}),this.cfg=t||{}}loadAsync(e,t){return ft(this,null,(function*(){let n=this.viewer;n.increaseJobCount();let i=this.cfg.font,r=this.cfg.pdfWorker,a=yield new ah({font:i,pdfWorker:r}).loadAsync(e,t);return n.decreaseJobCount(),a}))}},w1e=class extends up{constructor(e,t){super(t),this.pdfWorker="",this.defaultModelConfig={src:"",merge:!0},this.viewer=e}setPdfWorker(e){this.pdfWorker=e}formats(){return["dxf","pdf"]}uploadFiles(e){for(let t=0;t{let n=Math.floor(100*t.loaded/t.total);se.info(`[Uploader] Loading ${null==e?void 0:e.name}, ${n}%`)}))}))}uploadSinglePdf(e){return ft(this,null,(function*(){let t=t=>{let n=Math.floor(100*t.loaded/t.total);se.info(`[Uploader] Loading ${null==e?void 0:e.name}, ${n}%`)};try{let n=this.viewer;n.increaseJobCount();let i={font:n.fontManager,pdfWorker:this.pdfWorker},r={merge:!0,src:URL.createObjectURL(e),modelId:e.name};new ah(i).loadAsync(r,t).then((e=>{this.viewer.addModel(e),this.onSuccess&&this.onSuccess({}),n.decreaseJobCount(),se.info(`[Uploader] Loaded model '${r.src}'`)}))}catch(e){se.info(e)}}))}},S1e=class extends up{constructor(e,t){super(t),this.viewer=e}formats(){return["png","jpg","jpeg"]}uploadFiles(e){let t={panoramas:[],id:"viewpoint_1",name:"",position:[0,1,0],initialDirection:[0,0,1]};if(1===e.length){let n=[];n.push(URL.createObjectURL(e[0])),t.panoramas.push({id:"panorama_1",images:n}),this.viewer.setViewpoints([t]),this.viewer.activatePanoramaById(t.id,t.panoramas[0].id)}else if(6===e.length){let n=t=>{let n="";for(let i=0;i({position:new O(e,t,n),rotation:new Xn(i,r,a)}),Oyt={Front:Ri(Tr({},Zs([0,0,1],[0,0,0])),{label:"NavCube.front"}),Right:Ri(Tr({},Zs([1,0,0],[0,mi,0])),{label:"NavCube.right"}),Back:Ri(Tr({},Zs([0,0,-1],[0,Math.PI,0])),{label:"NavCube.back"}),Left:Ri(Tr({},Zs([-1,0,0],[0,-mi,0])),{label:"NavCube.left"}),Top:Ri(Tr({},Zs([0,1,0],[-mi,0,0])),{label:"NavCube.top"}),Bottom:Ri(Tr({},Zs([0,-1,0],[mi,0,0])),{label:"NavCube.bottom"})},kyt=[Zs([0,1,1],[-Vr,0,-mi]),Zs([0,1,-1],[-3*Vr,0,-mi]),Zs([0,-1,1],[Vr,0,-mi]),Zs([0,-1,-1],[3*Vr,0,-mi]),Zs([1,1,0],[-mi,Vr,0]),Zs([1,-1,0],[-mi,3*Vr,0]),Zs([-1,1,0],[-mi,-Vr,0]),Zs([-1,-1,0],[-mi,-3*Vr,0]),Zs([1,0,1],[0,Vr,0]),Zs([1,0,-1],[0,3*Vr,0]),Zs([-1,0,1],[0,-Vr,0]),Zs([-1,0,-1],[0,-3*Vr,0])],Fyt=[{position:new O(1,1,1),rotation:[new Xn(-mi,mi,-Vr),new Xn(-mi,0,Vr),new Xn(0,0,3*Vr)]},{position:new O(1,1,-1),rotation:[new Xn(0,mi,3*Vr),new Xn(-mi,0,3*Vr),new Xn(0,Math.PI,-3*Vr)]},{position:new O(-1,1,-1),rotation:[new Xn(Math.PI,-mi,Vr),new Xn(-mi,0,-3*Vr),new Xn(0,Math.PI,3*Vr)]},{position:new O(-1,1,1),rotation:[new Xn(0,-mi,3*Vr),new Xn(-mi,0,-Vr),new Xn(0,0,-3*Vr)]},{position:new O(1,-1,1),rotation:[new Xn(0,mi,-Vr),new Xn(-mi,Math.PI,-Vr),new Xn(0,0,Vr)]},{position:new O(1,-1,-1),rotation:[new Xn(-mi,mi,3*Vr),new Xn(mi,0,Vr),new Xn(0,Math.PI,-Vr)]},{position:new O(-1,-1,1),rotation:[new Xn(0,-mi,Vr),new Xn(mi,0,-3*Vr),new Xn(0,0,-Vr)]},{position:new O(-1,-1,-1),rotation:[new Xn(0,-mi,-Vr),new Xn(mi,0,-Vr),new Xn(0,Math.PI,Vr)]}],Z2=class extends an{constructor(e={}){super(),this.NAVCUBE_SIZE=100,this.clickHandler=e.onClick,(0,fg.forEach)(Oyt,(e=>{this.createPlane(e)})),(0,fg.forEach)(kyt,(e=>{this.createEdge(e)})),(0,fg.forEach)(Fyt,((e,t)=>{this.createCorner(e,t)}))}createPlane(e){let t=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2),{rotation:n,label:i}=e,r=document.createElement("div");r.style.width=this.NAVCUBE_SIZE+"px",r.style.height=this.NAVCUBE_SIZE+"px",r.classList.add("navcube-plane"),r.classList.add("outer");let a=document.createElement("div");a.style.width=this.NAVCUBE_SIZE-4+"px",a.style.height=this.NAVCUBE_SIZE-4+"px",a.innerHTML=eh(i),a.classList.add("navcube-plane"),a.classList.add("inner"),r.appendChild(a);let s=new cg(r);s.position.copy(t),s.rotation.copy(n),this.add(s),r.addEventListener("click",(()=>{this.clickHandler&&this.clickHandler(t.clone().normalize(),n)}))}createEdge(e){let t=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2),n=document.createElement("div");n.style.width="4px",n.style.height=this.NAVCUBE_SIZE-40+"px",n.style.background=M1e,n.classList.add("navcube-edge");let i=new cg(n);i.position.copy(t),i.rotation.copy(e.rotation),this.add(i),n.addEventListener("click",(()=>{this.clickHandler&&this.clickHandler(t.clone().normalize(),e.rotation)}))}createCorner(e,t){let n=n=>{n.addEventListener("click",(()=>{this.clickHandler&&this.clickHandler(e.position.clone().normalize(),new Xn)})),n.addEventListener("mouseenter",(()=>{let e=document.getElementsByClassName("group-"+t);(0,fg.forEach)(e,(e=>{e instanceof HTMLElement&&e.classList.add("highlight")}))})),n.addEventListener("mouseleave",(()=>{let e=document.getElementsByClassName("group-"+t);(0,fg.forEach)(e,(e=>{e instanceof HTMLElement&&e.classList.remove("highlight")}))}))},i=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2+.5),r=document.createElement("div");r.style.borderTop=14*Math.sqrt(3)+"px solid #efefef",r.style.borderLeft="14px solid transparent",r.style.borderRight="14px solid transparent",r.classList.add("navcube-corner"),r.classList.add("group-"+t);let a=new cg(r);a.position.copy(i).lerp(e.position,.14);let s=Math.atan2(i.z,i.x);a.rotateY(i.z*i.x<0?Math.PI+s:s);let o=(new Xn).setFromVector3(i.clone().normalize());a.rotateX(-o.y),i.y<0&&a.rotateZ(Math.PI),this.add(a);let l=(t,r,a)=>{let s=document.createElement("div");s.style.borderTop=`13px solid ${M1e}`,s.style.borderLeft="13px solid transparent",s.style.borderRight="13px solid transparent",s.classList.add("navcube-corner-plane"),s.classList.add("group-"+r);let o=new cg(s),l=e.position.clone();l.setComponent(a,0),o.position.copy(i).sub(l),o.rotateX(t.x),o.rotateY(t.y),o.rotateZ(t.z),this.add(o),n(s)};(0,fg.forEach)(e.rotation,((e,n)=>{l(e,t,n)})),n(r)}},R1e=class extends fr{constructor(e,t){super(e,{id:"NavCubePlugin"}),this.cfg=t||{},this.init()}init(){this.initRenderer(),this.initScene(),this.animate()}initRenderer(){var e;let t,n=135,i=135;if(this.cfg.containerId&&(t=document.getElementById(this.cfg.containerId),t&&(n=t.clientWidth,i=t.clientHeight)),!t){let n="navCube";t=document.createElement("div"),t.id=n,null==(e=this.viewer.widgetContainer)||e.appendChild(t)}this.renderer=new m2,this.renderer.setSize(n,i),this.renderer.domElement.classList.add("css3d-navcube"),t.appendChild(this.renderer.domElement)}initScene(){this.scene=new _i;let e=window.innerWidth/window.innerHeight;this.camera=new Ur(200*e/-2,200*e/2,100,-100,1,1e3),this.camera.position.set(-200,200,200),this.scene.add(this.camera),this.navCube=new Z2({onClick:e=>{let t=this.viewer.controls;if(!(this.camera&&e&&this.viewer.camera&&t))return;let n=t instanceof ba?t.getTarget(new O):t.target,i=this.viewer.camera.position.distanceTo(n);this.viewer.flyTo(n.clone().add(e.clone().multiplyScalar(i)),n)}}),this.scene.add(this.navCube)}render(){this.renderer&&this.scene&&this.camera&&(this.update(),this.renderer.render(this.scene,this.camera))}animate(){requestAnimationFrame(this.animate.bind(this)),this.render()}update(){if(!this.viewer||!this.viewer.camera)return;let e=this.viewer.camera;if(e){let t=new O;e.getWorldDirection(t);let n=e.up;this.updateCameraDirection(t,n)}}updateCameraDirection(e,t){this.camera&&e&&(e.normalize(),this.camera.position.set(20*-e.x+0,20*-e.y+0,20*-e.z+0),this.camera.lookAt(0,0,0),this.camera.up=t)}destroy(){super.destroy(),this.scene&&this.camera&&this.navCube&&(this.scene.clear(),this.camera=void 0,this.navCube=void 0,this.scene=void 0)}},X_=function(){var e=0,t=document.createElement("div");function n(e){return t.appendChild(e.dom),e}function i(n){for(var i=0;i=a+1e3&&(o.update(1e3*s/(e-a),100),a=e,s=0,h)){var t=performance.memory;h.update(t.usedJSHeapSize/1048576,t.jsHeapSizeLimit/1048576)}return e},update:function(){r=this.end()},domElement:t,setMode:i}};X_.Panel=function(e,t,n){var i=1/0,r=0,a=Math.round,s=a(window.devicePixelRatio||1),o=80*s,l=48*s,h=3*s,c=2*s,u=3*s,d=15*s,p=74*s,f=30*s,m=document.createElement("canvas");m.width=o,m.height=l,m.style.cssText="width:80px;height:48px";var g=m.getContext("2d");return g.font="bold "+9*s+"px Helvetica,Arial,sans-serif",g.textBaseline="top",g.fillStyle=n,g.fillRect(0,0,o,l),g.fillStyle=t,g.fillText(e,h,c),g.fillRect(u,d,p,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(u,d,p,f),{dom:m,update:function(l,v){i=Math.min(i,l),r=Math.max(r,l),g.fillStyle=n,g.globalAlpha=1,g.fillRect(0,0,o,d),g.fillStyle=t,g.fillText(a(l)+" "+e+" ("+a(i)+"-"+a(r)+")",h,c),g.drawImage(m,u+s,d,p-s,f,u,d,p-s,f),g.fillRect(u+p-s,d,s,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(u+p-s,d,s,a((1-l/v)*f))}}};var A1e=X_,C1e=class extends fr{constructor(e){super(e,{id:"StatsPlugin"}),this.init()}init(){var e;let t=new A1e;t.setMode(0);let n=document.createElement("div");n.classList.add("statsOutput"),n.appendChild(t.domElement),null==(e=this.viewer.widgetContainer)||e.append(n),this.stats=t,this.viewer.addEventListener("OnAnimate",(()=>{var e;null==(e=this.stats)||e.update()}))}show(){var e;null==(e=this.stats)||e.showPanel(0)}hide(){var e;null==(e=this.stats)||e.showPanel(-1)}destroy(){super.destroy(),this.stats=void 0}},Y_=class extends xt{constructor(e,t,n,i=4e3,r=32,a=15,s=new O,o=new O(0,.7,.5)){super();let l={topColor:{value:e},skylineColor:{value:t},bottomColor:{value:n},offset:{value:400},exponent:{value:.9},skyCenter:{value:s||new O},sunDirection:{value:o.normalize()}};this.geometry=new za(i,r,a),this.material=new ln({uniforms:l,vertexShader:Y_.vertexShader,fragmentShader:Y_.fragmentShader,side:Ki}),this.name=Y_.NAME,this.matrixAutoUpdate=!1,this.layers.disable(12)}},il=Y_;il.NAME="SKYBOX",il.MIN_SKY_RADIUS=4e3,il.MAX_SKY_RADIUS=2e4,il.vertexShader="\n varying vec3 vWorldPosition;\n void main() {\n vec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",il.fragmentShader="\n uniform vec3 topColor;\n uniform vec3 skylineColor;\n uniform vec3 bottomColor;\n uniform float offset;\n uniform float exponent;\n uniform vec3 skyCenter;\n uniform vec3 sunDirection;\n varying vec3 vWorldPosition;\n // Used to find the position to draw the sun. Sun size is bigger when this value is smaller\n const float sunDirectionDotThreshold = 0.98;\n\n void main() {\n vec3 position = vec3(vWorldPosition.x - skyCenter.x, vWorldPosition.y - skyCenter.y, vWorldPosition.z - skyCenter.z);\n vec3 normalizedPosition = normalize( position + offset );\n float h = normalizedPosition.y;\n vec3 color;\n if (h > 0.0) {\n color = mix( skylineColor, topColor, pow( h, exponent ) );\n\n // draw the sun\n float dotResult = dot(sunDirection, normalizedPosition);\n if (dotResult > sunDirectionDotThreshold) {\n const float sunSize = 1.0 - sunDirectionDotThreshold; // maximum sun size\n const vec3 sunColor = vec3(1.0, 1.0, 1.0);\n color = mix(color, sunColor, pow((dotResult + sunSize - 1.0) / sunSize, 3.0));\n }\n } else {\n color = mix( skylineColor, bottomColor, pow( -h, exponent ) );\n }\n gl_FragColor = vec4(color , 1.0);\n }";var P1e=class extends fr{constructor(e,t){super(e,{id:"SkyboxPlugin"}),null!=t&&t.color?this.setSkyboxByColor(t.color):this.setSkyboxByGradientColors(),e.addEventListener("ModelLoaded",(()=>{let t=e.getBBox(),n=this.viewer.cameraCfg;if(t){if(t=t.clone(),n&&n.eye&&n.look){let e=n&&Mt.arrayToVector3(n.eye),i=n&&Mt.arrayToVector3(n.look),r=new Ot;r.setFromPoints([e,i]),t.union(r)}this.updateGradientColorSkybox(t)}}))}setSkyboxByColor(e=[.92,.95,.96]){let t=this.viewer;!t||!t.scene||(this.gradientColorSkybox&&(this.gradientColorSkybox.visible=!1),t.scene.background=this.rgb2Color(e),t.enableRender())}setSkyboxByGradientColors(e=[.52,.71,.96],t=[1,1,1],n=[.6,.6,.6]){var i;this.gradientColorSkybox&&(this.gradientColorSkybox.removeFromParent(),this.gradientColorSkybox=void 0);let r=this.rgb2Color(e),a=this.rgb2Color(t),s=this.rgb2Color(n);this.gradientColorSkybox=new il(r,a,s),null==(i=this.viewer.scene)||i.add(this.gradientColorSkybox),this.viewer.enableRender()}setSkyboxByCubeTexture(e){let t=this.viewer;if(!t||!t.scene)return;this.gradientColorSkybox&&(this.gradientColorSkybox.visible=!1);let n=new Pb;t.scene.background=n.load(e),t.enableRender()}updateGradientColorSkybox(e){if(!this.gradientColorSkybox)return;let t=2*(e.max.x-e.min.x+(e.max.y-e.min.y)+(e.max.z-e.min.z));til.MAX_SKY_RADIUS&&(t=il.MAX_SKY_RADIUS),this.gradientColorSkybox.geometry=new za(t,32,15),this.viewer.enableRender()}destroy(){var e;super.destroy(),null==(e=this.gradientColorSkybox)||e.removeFromParent(),this.gradientColorSkybox=void 0,this.viewer.scene&&(this.viewer.scene.background=null)}rgb2Color(e){let t=e[0]||0,n=e[1]||0,i=e[2]||0,r=new ct;return r.setRGB(t,n,i),r}};function Nyt(e,t,n,i,r){let a=document.createElement("span");return a.style.font="1px serif",a.style.fontFamily=e,a.style.fontSize=`${t}px`,a.style.fontStyle=n,a.style.fontVariant=i,a.style.fontWeight=r,a.style.font}var Byt=Object.freeze({text:"",color:"#fff",alignment:"center",backgroundColor:0,fontFamily:"sans-serif",fontSize:16,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",lineGap:1/4,padding:.5,strokeColor:"#000",strokeWidth:0}),K2=class extends qr{constructor(e,t=document.createElement("canvas")){super(t),this.canvas=t,this.isTextTexture=!0,this.needsRedraw=!0,this.contentOffset=0,this.lineOffset=0,this.width=0,this.height=0,this.pixelRatio=Math.max(window.devicePixelRatio||1),this.computeOptimalPixelRatio=()=>{let e=new O,t=new be,n=new O,i=new O,r=new be;return(a,s,o)=>{var l,h;if(r.set(this.width,this.height),r.x&&r.y){a.getWorldPosition(n),o.getWorldPosition(e);let c=n.distanceTo(e);if(o.isPerspectiveCamera&&(c*=2*Math.tan(An.degToRad(o.fov)/2)),(o.isPerspectiveCamera||o.isOrthographicCamera)&&(c/=o.zoom),c){a.getWorldScale(i);let e=null!=(h=null==(l=s.capabilities)?void 0:l.maxTextureSize)?h:1/0;return s.getDrawingBufferSize(t),Math.min(Math.max(i.x/c*(t.x/r.x),i.y/c*(t.y/r.y)),e/r.x,e/r.y)}}return 0}},this.cfg=Tr(Tr({},Byt),e)}get lines(){let{text:e}=this.cfg;return e?e.split("\n"):[]}get font(){let{fontFamily:e,fontSize:t,fontStyle:n,fontVariant:i,fontWeight:r}=this.cfg;return Nyt(e,t,n,i,r)}getContentWidth(){let{font:e,lines:t}=this,n=document.createElement("canvas").getContext("2d");return n.font=e,Math.max(...t.map((e=>n.measureText(e).width)))}initDraw(){let{lineGap:e,padding:t,strokeWidth:n}=this.cfg;t*=this.cfg.fontSize,e*=this.cfg.fontSize,n*=this.cfg.fontSize;let i=this.lines.length,r=this.cfg.fontSize+e,a=t+n/2,s=(i?this.getContentWidth():0)+2*a,o=(i?this.cfg.fontSize+r*(i-1):0)+2*a;this.width=s,this.height=o,this.contentOffset=a,this.lineOffset=r}getDrawPosition(e){let t=this.contentOffset+this.cfg.fontSize/2;switch(e){case"left":return{x:this.contentOffset,y:t};case"right":return{x:this.width-this.contentOffset,y:t}}return{x:this.width/2,y:t}}draw(){let e=this.canvas.getContext("2d"),{alignment:t,backgroundColor:n,color:i,strokeColor:r,strokeWidth:a}=this.cfg;e.fillStyle="#"+n.toString(16),e.fillRect(0,0,e.canvas.width,e.canvas.height),Object.assign(e,{fillStyle:i,font:this.font,lineWidth:a,miterLimit:1,strokeStyle:r,textAlign:t,textBaseline:"middle"});let{x:s,y:o}=this.getDrawPosition(t),l=o;this.lines.forEach((t=>{e.fillText(t,s,l),a&&e.strokeText(t,s,l),l+=this.lineOffset}))}getDrawingBufferWidth(){return An.ceilPowerOfTwo(this.width*this.pixelRatio)}getDrawingBufferHeight(){return An.ceilPowerOfTwo(this.height*this.pixelRatio)}redrew(){if(this.needsRedraw){this.initDraw();let e=this.canvas,t=e.getContext("2d");t.clearRect(0,0,e.width,e.height),e.width=this.getDrawingBufferWidth(),e.height=this.getDrawingBufferHeight(),e.width&&e.height?(t.save(),t.scale(e.width/this.width,e.height/this.height),this.draw(),t.restore()):e.width=e.height=1,this.needsRedraw=!1,this.needsUpdate=!0}}setPixelRatio(e){if(this.pixelRatio!==e){let t=this.getDrawingBufferWidth(),n=this.getDrawingBufferHeight();this.pixelRatio=e;let i=this.getDrawingBufferWidth(),r=this.getDrawingBufferHeight();(i!==t||r!==n)&&(this.needsRedraw=!0)}}setOptimalPixelRatio(e,t,n){let i=this.computeOptimalPixelRatio();this.setPixelRatio(i(e,t,n))}updateConfig(e){this.cfg=Tr(Tr({},this.cfg),e),this.needsRedraw=!0}};function JV(e,t,n){let i=new ct(e),r=new ct(t);return i.lerp(r,n).getHex()}var Or=(e=>(e[e.Rotate0=0]="Rotate0",e[e.Rotate90=Math.PI/2]="Rotate90",e[e.Rotate180=Math.PI]="Rotate180",e[e.Rotate270=1.5*Math.PI]="Rotate270",e))(Or||{}),oh=new O(1,0,0),Ra=new O(0,1,0),Cs=new O(0,0,1),I1e={right:{text:"\u53f3",name:"RightFace",position:new O(50,0,0),rotation:{axis:Ra,rad:Or.Rotate90}},left:{text:"\u5de6",name:"LeftFace",position:new O(-50,0,0),rotation:{axis:Ra,rad:Or.Rotate270}},top:{text:"\u4e0a",name:"TopFace",position:new O(0,50,0),rotation:{axis:oh,rad:Or.Rotate270}},bottom:{text:"\u4e0b",name:"BottomFace",position:new O(0,-50,0),rotation:{axis:oh,rad:Or.Rotate90}},front:{text:"\u524d",name:"FrontFace",position:new O(0,0,50),rotation:{axis:Ra,rad:0}},back:{text:"\u540e",name:"BackFace",position:new O(0,0,-50),rotation:{axis:Ra,rad:Or.Rotate180}}},J2=class extends an{constructor(e){super(),this.name="ViewCube",this.AXIS_LENGTH=130,this.AXIS_COLOR_X=16711680,this.AXIS_COLOR_Y=65280,this.AXIS_COLOR_Z=255,this.FACE_BACKGROUND_COLOR=16777215,this.FACE_HOVER_BACKGROUND_COLOR=8618481,this.EDGE_COLOUR=13290452,this.EDGE_OPACITY=.1,this.EDGE_SIZE=new be(70,12),this.CORNER_WIDTH=12,this.CORNER_COLOR=13290452,this.CORNER_OPACITY=1,this.faces=[],this.dirty=!1,this.showAxes=(null==e?void 0:e.showAxes)||!1,this.lineColor=(null==e?void 0:e.lineColor)||9343125,this.init()}init(){this.showAxes&&this.add(this.createAxes()),this.add(this.createViewCubeFaces()),this.add(this.createViewCubeEdges()),this.add(this.createViewCubeCorners())}createAxes(){let e=new an,t=new O(-50,-50,-50),n=new O(1,0,0),i=new O(0,1,0),r=new O(0,0,1),a=this.AXIS_LENGTH/15,s=this.AXIS_LENGTH/20,o=new Mc(n,t,this.AXIS_LENGTH,this.AXIS_COLOR_X,a,s),l=new Mc(i,t,this.AXIS_LENGTH,this.AXIS_COLOR_Y,a,s),h=new Mc(r,t,this.AXIS_LENGTH,this.AXIS_COLOR_Z,a,s);return e.add(o,l,h),e}createViewCubeFaces(){let e=new an,t=[],n=new on({color:this.FACE_BACKGROUND_COLOR,opacity:0,transparent:!0});Object.keys(I1e).forEach((e=>{let i=I1e[e],r=new K2({text:i.text,fontSize:100,color:"#cccccc",backgroundColor:this.FACE_BACKGROUND_COLOR,padding:.8,fontWeight:"bold"});r.redrew();let a=new on({map:r,opacity:1,transparent:!0});t.push(a);let s=this.createViewCubeFace(i.name,n,i.position,i.rotation);s.layers.enableAll(),s.userData={textTexture:r,tick:0,translateTick:0},this.faces.push(s)})),e.add(...this.faces);let i=new va(76,76,76),r=new xt(i,t);this.innerViewCubeMesh=r,e.add(r);let a=new Cu(new va(100,100,100)),s=new on({color:this.lineColor}),o=new Wr(a,s);return e.add(o),e.position.set(0,0,0),e}createViewCubeFace(e,t,n,i){let r=new ui(76,76),a=new xt(r,t);return a.name=e,a.rotateOnAxis(i.axis,i.rad),a.position.copy(n),a}createViewCubeEdges(){let e=new an,t=this.createEdge("TopFrontEdge",new O(0,51,51),[{axis:Cs,rad:Or.Rotate180}]),n=this.createEdge("TopRightEdge",new O(51,51,0),[{axis:oh,rad:Or.Rotate180},{axis:Ra,rad:Or.Rotate90},{axis:Cs,rad:0}]),i=this.createEdge("TopBackEdge",new O(0,51,-51),[{axis:Cs,rad:Or.Rotate180},{axis:Ra,rad:Or.Rotate180}]),r=this.createEdge("TopLeftEdge",new O(-51,51,0),[{axis:oh,rad:Or.Rotate90},{axis:Ra,rad:Or.Rotate180},{axis:Cs,rad:Or.Rotate90}]),a=this.createEdge("BottomFrontEdge",new O(0,-51,51),[{axis:Cs,rad:0}]),s=this.createEdge("BottomRightEdge",new O(51,-51,0),[{axis:oh,rad:Or.Rotate90},{axis:Ra,rad:0},{axis:Cs,rad:Or.Rotate90}]),o=this.createEdge("BottomBackEdge",new O(0,-51,-51),[{axis:Cs,rad:0},{axis:Ra,rad:Or.Rotate180}]),l=this.createEdge("BottomLeftEdge",new O(-51,-51,0),[{axis:oh,rad:Or.Rotate90},{axis:Ra,rad:Or.Rotate270},{axis:Cs,rad:Or.Rotate90}]),h=this.createEdge("FrontRightEdge",new O(51,0,51),[{axis:Cs,rad:Or.Rotate90}]),c=this.createEdge("BackRightEdge",new O(51,0,-51),[{axis:Cs,rad:Or.Rotate90},{axis:Ra,rad:Or.Rotate180}]),u=this.createEdge("BackLeftEdge",new O(-51,0,-51),[{axis:Cs,rad:Or.Rotate270},{axis:Ra,rad:Or.Rotate180}]),d=this.createEdge("FrontLeftEdge",new O(-51,0,51),[{axis:Cs,rad:Or.Rotate270}]);return e.add(t),e.add(n),e.add(i),e.add(r),e.add(a),e.add(s),e.add(o),e.add(l),e.add(h),e.add(c),e.add(u),e.add(d),e}createEdge(e,t,n){let i=new an,r=new ui(this.EDGE_SIZE.x,this.EDGE_SIZE.y),a=new on({color:this.EDGE_COLOUR,opacity:this.EDGE_OPACITY,transparent:!0}),s={tick:0},o=new xt(r,a);o.name=e,o.userData=s,o.position.setY(this.EDGE_SIZE.y/2),o.layers.enableAll();let l=new xt(r,a);return l.name=e,l.userData=s,l.position.setZ(-this.EDGE_SIZE.y/2),l.rotateOnAxis(new O(1,0,0),Math.PI/2),l.layers.enableAll(),i.add(o),i.add(l),i.position.copy(t),n.forEach((e=>{i.rotateOnAxis(e.axis,e.rad)})),i}createViewCubeCorners(){let e=new an,t=this.createCorner("TopFrontLeftCorner",new O(-51,51,51),[{axis:Cs,rad:Or.Rotate270}]),n=this.createCorner("TopFrontRightCorner",new O(51,51,51),[{axis:Cs,rad:Or.Rotate180}]),i=this.createCorner("TopBackRightCorner",new O(51,51,-51),[{axis:oh,rad:Or.Rotate90},{axis:Ra,rad:Or.Rotate180},{axis:Cs,rad:0}]),r=this.createCorner("TopBackLeftCorner",new O(-51,51,-51),[{axis:oh,rad:Or.Rotate90},{axis:Ra,rad:Or.Rotate180},{axis:Cs,rad:Or.Rotate90}]),a=this.createCorner("BottomFrontLeftCorner",new O(-51,-51,51),[{axis:Cs,rad:0}]),s=this.createCorner("BottomFrontRightCorner",new O(51,-51,51),[{axis:Cs,rad:Or.Rotate90}]),o=this.createCorner("BottomBackRightCorner",new O(51,-51,-51),[{axis:oh,rad:0},{axis:Ra,rad:Or.Rotate180},{axis:Cs,rad:0}]),l=this.createCorner("BottomBackLeftCorner",new O(-51,-51,-51),[{axis:oh,rad:0},{axis:Ra,rad:Or.Rotate180},{axis:Cs,rad:Or.Rotate90}]);return e.add(t),e.add(n),e.add(i),e.add(r),e.add(a),e.add(s),e.add(o),e.add(l),e}createCorner(e,t,n){let i=new an,r=new ui(this.CORNER_WIDTH,this.CORNER_WIDTH),a=new on({color:this.CORNER_COLOR,opacity:this.CORNER_OPACITY,transparent:!0}),s={tick:0},o=new xt(r,a);o.name=e,o.userData=s,o.position.set(this.CORNER_WIDTH/2,this.CORNER_WIDTH/2,0),o.layers.enableAll();let l=new xt(r,a);l.name=e,l.userData=s,l.position.set(this.CORNER_WIDTH/2,0,-this.CORNER_WIDTH/2),l.rotateOnAxis(new O(1,0,0),Math.PI/2),l.layers.enableAll();let h=new xt(r,a);return h.name=e,h.userData=s,h.position.set(0,this.CORNER_WIDTH/2,-this.CORNER_WIDTH/2),h.rotateOnAxis(new O(0,1,0),-Math.PI/2),h.layers.enableAll(),i.add(o),i.add(l),i.add(h),i.position.copy(t),n.forEach((e=>{i.rotateOnAxis(e.axis,e.rad)})),i}getBbox(){let e=new Ot;return e.setFromObject(this),e}getDirectionByViewCubeName(e){let t;switch(e){case"TopFace":t=new O(0,1,0);break;case"BottomFace":t=new O(0,-1,0);break;case"FrontFace":t=new O(0,0,1);break;case"BackFace":t=new O(0,0,-1);break;case"LeftFace":t=new O(-1,0,0);break;case"RightFace":t=new O(1,0,0);break;case"TopFrontEdge":t=new O(0,1,1);break;case"TopRightEdge":t=new O(1,1,0);break;case"TopBackEdge":t=new O(0,1,-1);break;case"TopLeftEdge":t=new O(-1,1,0);break;case"BottomFrontEdge":t=new O(0,-1,1);break;case"BottomRightEdge":t=new O(1,-1,0);break;case"BottomBackEdge":t=new O(0,-1,-1);break;case"BottomLeftEdge":t=new O(-1,-1,0);break;case"FrontLeftEdge":t=new O(-1,0,1);break;case"FrontRightEdge":t=new O(1,0,1);break;case"BackRightEdge":t=new O(1,0,-1);break;case"BackLeftEdge":t=new O(-1,0,-1);break;case"TopFrontLeftCorner":t=new O(-1,1,1);break;case"TopFrontRightCorner":t=new O(1,1,1);break;case"TopBackRightCorner":t=new O(1,1,-1);break;case"TopBackLeftCorner":t=new O(-1,1,-1);break;case"BottomFrontLeftCorner":t=new O(-1,-1,1);break;case"BottomFrontRightCorner":t=new O(1,-1,1);break;case"BottomBackRightCorner":t=new O(1,-1,-1);break;case"BottomBackLeftCorner":t=new O(-1,-1,-1)}return t}update(){this.traverse((e=>{e instanceof xt&&this.updateViewCube(e)}))}updateViewCube(e){if(this.updateMeshTick(e),e.name.indexOf("Face")>-1){let t=e.userData.textTexture;if(t){let n=JV(this.FACE_BACKGROUND_COLOR,this.FACE_HOVER_BACKGROUND_COLOR,e.userData.tick);t.updateConfig({backgroundColor:n}),e.userData.tick>0&&t.redrew()}if(this.innerViewCubeMesh){this.updateMeshTick(e,"translateTick",2);let t=e.position.clone().normalize(),n=Math.max(2*e.userData.translateTick-2,0);t.multiplyScalar(7*n),n>0&&this.innerViewCubeMesh.position.copy(t)}}else if(e.name.indexOf("Edge")>-1){let t=e.material,n=JV(this.EDGE_COLOUR,this.FACE_HOVER_BACKGROUND_COLOR,e.userData.tick);t.color.set(n),t.opacity=e.userData.tick}else if(e.name.indexOf("Corner")>-1){let t=e.material,n=JV(this.CORNER_COLOR,this.FACE_HOVER_BACKGROUND_COLOR,e.userData.tick);t.color.set(n);let i=1+.3*e.userData.tick;e.parent&&e.parent.scale.set(i,i,i)}}updateMeshTick(e,t="tick",n=1){void 0!==e.userData[t]&&(e.name===this.activateMeshName&&e.userData[t]0&&(e.userData[t]-=.05),e.userData[t]>0&&e.userData[t]{var t,n;let i=this.getNdcPointByEvent(e);if(!i)return;null==(t=e.originalEvent)||t.stopPropagation();let r=this.getIntersects(i);if(this.lastCoords=i,!r||0===r.length)return;let a=r[0].object.name,s=null==(n=this.viewCube)?void 0:n.getDirectionByViewCubeName(a);s&&this.updateViewerCamera(s)},this.onPointerMove=e=>{var t;let n=this.getNdcPointByEvent(e);n&&(null==(t=e.originalEvent)||t.stopPropagation(),this.updateActivateMeshName(n),this.lastCoords=n)},this.onPointerleave=e=>{var t,n;null==(t=e.originalEvent)||t.stopPropagation(),this.lastCoords=void 0,null!=(n=this.viewCube)&&n.activateMeshName&&(this.viewCube.activateMeshName=void 0)},this.onClick=e=>{var t;null==(t=e.originalEvent)||t.stopPropagation()},this.updateCameraAndMeshName=()=>{var e;if(null==(e=this.viewer)||!e.camera)return;let t=this.viewer.camera,n=new O;t.getWorldDirection(n);let i=t.up;this.updateCameraDirection(n,i),this.renderEnabled=!0,this.lastCoords&&this.updateActivateMeshName(this.lastCoords)},this.cfg=t||{},this.init(),this.animate()}init(){Dn.isBrowser&&!this.cfg.context&&this.initDom(),this.initInputManager(),this.initScene(),this.initRenderer(),this.initCamera(),this.initLights(),this.initViewCube(),this.initEvents()}initDom(){var e;let t=document.getElementById(this.cfg.containerId);if(!t){se.error("[ViewCube] containerId:",this.cfg.containerId,"is not found in dom tree! will append to gemini-widget-container");let n="viewCube";t=document.createElement("div"),t.id=n,null==(e=this.viewer.widgetContainer)||e.appendChild(t),this.cfg.containerId=n}this.width=t.clientWidth,this.height=t.clientHeight,this.container=t}initInputManager(){this.container&&(this.inputManager=new Jo(this.container))}initScene(){let e=new _i;e.matrixAutoUpdate=!1,this.scene=e}initCamera(){if(!this.scene)return;let e=new Ur(-this.width/2,this.width/2,this.height/2,-this.height/2,.1,1e5);e.position.set(300,300,300),e.lookAt(0,0,0),e.zoom=10,e.updateProjectionMatrix(),this.scene.add(e),this.camera=e}initRenderer(){var e;this.renderer=new Ms({antialias:!0,preserveDrawingBuffer:!0}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),this.renderer.setClearColor(11119017,0),null==(e=this.container)||e.appendChild(this.renderer.domElement)}initLights(){if(!this.scene)return;let e=new js(16777215,1.5);e.name="sun",this.directionalLight=e,this.scene.add(e),this.scene.add(e.target)}initViewCube(){if(!this.scene)return;let e=new J2(this.cfg);this.viewCube=e,this.scene.add(e),this.zoomToBbox(e.getBbox())}initEvents(){var e,t,n,i;null==(e=this.inputManager)||e.addEventListener("pointerdown",this.onPointerDown),null==(t=this.inputManager)||t.addEventListener("pointermove",this.onPointerMove),null==(n=this.inputManager)||n.addEventListener("pointerleave",this.onPointerleave),null==(i=this.inputManager)||i.addEventListener("click",this.onClick),this.viewer.addEventListener("AfterRender",this.updateCameraAndMeshName)}updateViewerCamera(e){var t,n;if(null==(t=this.viewer)||!t.camera||null==(n=this.viewer)||!n.controls)return;e.normalize();let i=this.viewer.controls instanceof ba?this.viewer.getBBox().getCenter(new O):this.viewer.controls.target,r=this.viewer.camera.position.distanceTo(i);this.viewer.flyTo(i.clone().add(e.clone().multiplyScalar(r)),i)}updateActivateMeshName(e){if(!this.viewCube)return;let t=this.getIntersects(e);if(this.viewCube.activateMeshName&&(this.viewCube.activateMeshName=void 0),!t||0===t.length)return;let n=t[0].object;this.viewCube.activateMeshName=n.name}getNdcPointByEvent(e){if(!this.container||!this.camera)return;let t=cn.getScreenPointByEvent(e,this.container);return cn.screenPoint2NdcPoint(t,this.camera,this.container)}getIntersects(e){return this.scene&&this.camera&&this.viewCube?(this.camera.updateMatrixWorld(),this.raycaster.layers.set(12),this.raycaster.setFromCamera(e,this.camera),this.raycaster&&this.raycaster.intersectObjects(this.viewCube.children,!0)||[]):void 0}updateCameraDirection(e,t){this.camera&&e&&(e.normalize(),this.camera.position.set(200*-e.x+0,200*-e.y+0,200*-e.z+0),this.camera.lookAt(0,0,0),this.camera.up=t,this.camera.updateMatrixWorld())}animate(){var e,t;this.requestAnimationFrameHandle=requestAnimationFrame(this.animate.bind(this)),this.scene&&this.camera&&this.viewCube&&(this.renderEnabled||this.viewCube.dirty)&&(null==(e=this.renderer)||e.render(this.scene,this.camera),this.renderEnabled=!1,this.viewCube.dirty=!1),null==(t=this.viewCube)||t.update()}zoomToBbox(e){if(!this.camera)return;let t=this.camera.right-this.camera.left,n=this.camera.top-this.camera.bottom,i=new O;e.getSize(i);let r=Math.sqrt(Math.pow(i.x,2)+Math.pow(i.y,2)+Math.pow(i.z,2)),a=Math.min(t/r,n/r);this.camera.position.set(i.x/2,i.y/2,i.z/2),this.camera.zoom=a,this.camera.updateProjectionMatrix()}destroy(){var e,t,n,i,r,a,s;super.destroy(),this.requestAnimationFrameHandle&&(cancelAnimationFrame(this.requestAnimationFrameHandle),this.requestAnimationFrameHandle=void 0),this.renderer&&(this.renderer.domElement.remove(),this.renderer.clear(),this.renderer.dispose(),this.renderer.forceContextLoss(),this.renderer=void 0),null==(e=this.container)||e.remove(),this.container=void 0,null==(t=this.scene)||t.clear(),this.scene=void 0,null==(n=this.directionalLight)||n.dispose(),this.directionalLight=void 0,null==(i=this.inputManager)||i.removeEventListener("pointerdown",this.onPointerDown),null==(r=this.inputManager)||r.removeEventListener("pointermove",this.onPointerMove),null==(a=this.inputManager)||a.removeEventListener("pointerleave",this.onPointerleave),null==(s=this.inputManager)||s.removeEventListener("click",this.onClick),this.viewer.removeEventListener("AfterRender",this.updateCameraAndMeshName)}},Q2=class extends Bi{constructor(e,t){super(e),this.needsFrustumCulled=!1,this.image=t.image,this.min=t.min,this.max=t.max,this.radius=t.radius}getClassType(){return"OverviewMapDrawable"}getImageScreenSize(e,t,n){let i=this.transToScreenCoord(e,n),r=this.transToScreenCoord(t,n);return{width:Math.floor(Math.abs(i.x-r.x)),height:Math.floor(Math.abs(i.y-r.y))}}draw(e,t){let n=this.getImageScreenSize(this.max,this.min,t),i=new O;i.addVectors(this.max,this.min).multiplyScalar(.5);let r=this.transToScreenCoord(i,t),a=this.transToScreenCoord(t.position,t);e.save(),e.beginPath(),this.radius&&(e.arc(a.x,a.y,this.radius/this.tolerance,0,2*Math.PI,!0),e.clip()),e.drawImage(this.image,r.x-this.width/2,r.y-this.height/2,this.width,this.height),e.closePath(),e.restore(),this.width=n.width,this.height=n.height}drawSelect(){}getBounds(){let e=new O(-1,-3,-1),t=new O(1,-3,1);return new Ot(e,t)}isPointInPath(){return!1}getBBox(){return new Ot(this.min,this.max)}},$_=class extends Bi{constructor(e,t){super(e),this.hover=!1,this.needsFrustumCulled=!1,this.image=t.image,this.hoverImage=t.hoverImage,this.translate=t.translate,this.scale=t.scale||1,this.position=t.position instanceof O?t.position:new O(t.position.x,t.position.y,t.position.z),this.direction=t.direction?t.direction instanceof O?t.direction:new O(t.direction.x,t.direction.y,t.direction.z):void 0,this.radius=t.radius,this.displayRadius=t.displayRadius||1/0,this.rotation=t.rotation,this.enabledHover=!!t.enabledHover}direction2Rotation(e){return new be(e.x,e.z).angle()+Math.PI}getRotation(){let e=this.direction?this.direction2Rotation(this.direction):0,t=this.rotation?this.rotation:0;return t+=e,t}drawImage(e,t,n){let i=new be(1,1);this.translate&&i.set(this.translate.x,this.translate.y);let r=t.width*this.scale,a=t.height*this.scale,s=this.getRotation();s?(e.translate(n.x,n.y),e.rotate(s),e.drawImage(t,i.x*r,i.y*a,r,a),e.translate(-n.x,-n.y)):e.drawImage(t,n.x+i.x*r,n.y+i.y*a,r,a),this.width=r*this.tolerance,this.height=a*this.tolerance}draw(e,t){let n=this.position.clone(),i=!1;if(this.radius){let e=new be(n.x,n.z),r=new be(t.position.x,t.position.z),a=e.distanceTo(r);a>this.radius&&a0)}getBBox(){let e=this.position,t=new be(e.x,e.z),n=new Ot,i=new be(1,1);this.translate&&i.set(this.translate.x,this.translate.y);let r=[],a=i.x*this.width,s=i.y*this.height,o=(t,n)=>r.push(new be(e.x+t,e.z+n));o(a,s),o(a,s+this.height),o(a+this.width,s+this.height),o(a+this.width,s);let l=r.map((n=>{let i=this.getRotation();return i&&n.rotateAround(t,i),new O(n.x,e.y,n.y)}));return n.setFromPoints(l),n}},D1e=class extends Bi{constructor(e,t){super(e),this.needsFrustumCulled=!1,this.positions=t.positions,this.lineWidth=t.lineWidth||1,this.lineColor=t.lineColor||[0,0,0,1]}draw(e,t){let n=this.positions.map((e=>{let n=new O(e.x,e.y,e.z);return this.transToScreenCoord(n,t)}));e.save(),e.beginPath(),e.lineWidth=this.lineWidth,e.strokeStyle=Cn.rgba2Color(this.lineColor),n.forEach(((t,n)=>{0===n?e.moveTo(t.x,t.y):e.lineTo(t.x,t.y)})),e.stroke(),e.restore()}getBounds(){let e=new O(-1,-2,-1),t=new O(1,-2,1);return new Ot(e,t)}drawSelect(){}getClassType(){return"LineDrawable"}isPointInPath(){return!1}getBBox(){let e=this.positions.map((e=>new O(e.x,e.y,e.z)));return(new Ot).setFromPoints(e)}},O1e=class extends Bi{constructor(e,t){super(e),this.needsFrustumCulled=!1,this.text=t.text,this.position=t.position,this.offset=t.offset||{x:0,y:0},this.textStyle=t.textStyle||{},this.radius=t.radius,this.displayRadius=t.displayRadius||1/0,this.size=t.size||{width:0,height:0}}getFont(){let e=this.textStyle,t="";return t+=(e.fontSize?e.fontSize:12)+"px ",t+=e.fontWeight?e.fontWeight+" ":"",t+=e.fontFamily?e.fontFamily:"Arial",t}drawRoundRect(e,t,n,i,r,a,s){let o=this.textStyle,l=Math.min(o.borderRadius||0,i/2,r/2);e.save(),o.backgroundColor&&(e.fillStyle=o.backgroundColor),o.borderColor&&(e.strokeStyle=o.borderColor),o.borderWidth&&(e.lineWidth=o.borderWidth),this.radius&&s&&(e.beginPath(),e.arc(a.x,a.y,this.radius/this.tolerance,0,2*Math.PI,!0),e.clip(),e.closePath()),e.beginPath(),e.moveTo(t+l,n),e.arcTo(t+i,n,t+i,n+r,l),e.arcTo(t+i,n+r,t,n+r,l),e.arcTo(t,n+r,t,n,l),e.arcTo(t,n,t+i,n,l),o.borderWidth&&e.stroke(),o.backgroundColor&&e.fill(),e.closePath(),e.restore()}draw(e,t){let n=this.textStyle,i=new O(this.position.x,this.position.y,this.position.z),r=!1;if(this.radius){let e=new be(i.x,i.z),n=new be(t.position.x,t.position.z),a=e.distanceTo(n);a>this.radius&&a(e.ZoomChanged="ZoomChanged",e.SyncCamera="SyncCamera",e.CameraChanged="CameraChanged",e))(Gyt||{}),U1e=class extends us{constructor(e){var t,n,i;super(),this.CAMERA_Z_POSITION=100,this.width=0,this.height=0,this.frustumSize=this.width,this.renderEnabled=!1,this.drawableList=new Ko("overviewMap"),this.clock=new mo,this.raf=new qf,this.raycaster=new ia,this.translateStart=new be,this.rotateStart=new be,this.markerRotateState=!1,this.markerTranslateState=!1,this.isMarkerRotating=!1,this.isMarkerTranslating=!1,this.isUpdateWhenPawnMove=!0,this.allMarkersBBox=new Ot,this.tolerance=5,this.enableLookToAllMarkers=!1,this.handlePointerDown=e=>{let t=this.cameraDrawable,n=this.cameraDirDrawable;if(!(t&&n&&this.viewerContainer&&this.camera&&this.controls))return;let i=this.getDrawableByEvent(e),r=cn.getScreenPointByEvent(e,this.viewerContainer),a=this.lockCameraInViewCenter?this.camera.position:cn.worldPosition2ScreenPoint(t.position,this.camera,this.viewerContainer);i&&i===n&&(this.isMarkerRotating=!0,this.rotateStart.set(r.x-a.x,r.y-a.y),this.controls.enabled=!1),i&&i===t&&(this.isMarkerTranslating=!0,this.translateStart.set(r.x,r.y),this.controls.enabled=!1)},this.onCameraMove=e=>{var t,n;let i=this.cameraDrawable,r=this.cameraDirDrawable;if(!(i&&r&&this.camera&&this.viewerContainer))return;let a=cn.getScreenPointByEvent(e,this.viewerContainer),s=this.lockCameraInViewCenter?this.camera.position:cn.worldPosition2ScreenPoint(i.position,this.camera,this.viewerContainer);if(this.isMarkerRotating){let e=new be(a.x-s.x,a.y-s.y),n=(new be).subVectors(e,this.rotateStart);if(Math.abs(n.x)>this.tolerance||Math.abs(n.y)>this.tolerance){let n=e.angle()-this.rotateStart.angle();n=(n+2*Math.PI)%(2*Math.PI),null==(t=r.direction)||t.applyAxisAngle(this.camera.up,-n),this.rotateStart.copy(e)}}if(this.isMarkerTranslating){let e=new be(a.x,a.y),t=(new be).subVectors(e,this.translateStart);if(Math.abs(t.x)>this.tolerance||Math.abs(t.y)>this.tolerance){let t=cn.screenPoint2worldPosition(this.translateStart,this.camera,this.viewerContainer),r=cn.screenPoint2worldPosition(e,this.camera,this.viewerContainer),a=(new O).subVectors(r,t);a.setY(0),this.lockCameraInViewCenter?null==(n=this.controls)||n.truck(a.x,a.z):i.position.add(a),this.translateStart.copy(e)}}if(this.isMarkerRotating||this.isMarkerTranslating){let e=this.lockCameraInViewCenter?this.camera.position.clone():i.position.clone(),t=r.direction.clone(),n=this.transformMatrix.clone().invert();e.applyMatrix4(n),t.applyMatrix4(n),this.syncCamera(e,t)}},this.handlePointerUp=()=>{this.isMarkerTranslating=!1,this.isMarkerRotating=!1,this.markerRotateState=!1,this.markerTranslateState=!1,this.controls.enabled=!0},this.handlePointerLeave=()=>{this.markerRotateState=this.isMarkerRotating,this.markerTranslateState=this.isMarkerTranslating,this.isMarkerTranslating=!1,this.isMarkerRotating=!1,this.controls.enabled=!0},this.handlePointerEnter=e=>{1&e.buttons?(this.isMarkerTranslating=this.markerTranslateState,this.isMarkerRotating=this.markerRotateState,this.controls.enabled=!1):(this.markerRotateState=!1,this.markerTranslateState=!1)},this.handleDblClick=e=>{var t;let n=this.cameraDrawable,i=this.cameraDirDrawable;if(this.animationId&&window.cancelAnimationFrame(this.animationId),!(n&&i&&this.camera&&this.viewerContainer))return;let r=cn.getScreenPointByEvent(e,this.viewerContainer),a=cn.screenPoint2worldPosition(r,this.camera,this.viewerContainer);this.lockCameraInViewCenter?(a.setY(this.camera.position.y),null==(t=this.controls)||t.setLookAt(a.x,a.y,a.z,a.x,0,a.z)):(a.setY(n.position.y),n.position.copy(a));let s=i.direction.clone(),o=this.transformMatrix.clone().invert();a.applyMatrix4(o),s.applyMatrix4(o),this.syncCamera(a,s)},this.handlePointerMove=e=>{this.onCameraHover(e),this.onCameraMove(e),this.enableRender()},this.enableRender=(e=1e3)=>{this.renderEnabled=!0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.timeoutSymbol=this.raf.setTimeout((()=>{this.renderEnabled=!1}),e))},this.isPointInBoundary=e=>{var t;if(null==(t=this.boundaries)||!t.size)return;let n,i=new be(e.x,e.y);return this.boundaries.forEach((e=>{e.polygon.length<3||Qt.isPointInPolygon(i,e.polygon)&&(n={id:e.id,name:e.name})})),n},this.animate=()=>{var e,t,n;this.requestAnimationFrameHandle=requestAnimationFrame(this.animate);let i=this.clock.getDelta(),r=null==(e=this.controls)?void 0:e.update(i);if(this.scene&&this.camera){if(this.viewerContainer&&this.viewerContainer){let{width:e,height:t}=this.viewerContainer.getBoundingClientRect();(this.width!==e||this.height!==t)&&(r=!0,this.resize(e,t))}if(this.renderEnabled||r){if(null==(t=this.renderer)||t.render(this.scene,this.camera),!Dn.isBrowser){let e=null==(n=this.renderer)?void 0:n.getContext();e&&e.endFrameEXP&&(e.flush(),e.endFrameEXP())}this.enableLookToAllMarkers&&this.lookToAllMarkers(),this.dispatchEvent("AfterRender")}}},this.cfg=e||{},this.transformMatrix=new et,this.transformMatrix.elements=this.cfg.transformMatrix||[0,0,-1,0,1,0,0,0,0,1,0,0,0,0,0,1],this.enabled=null==(t=this.cfg.enabled)||t,this.lockCameraInViewCenter=!!this.cfg.lockCameraInViewCenter,this.radius=this.cfg.radius,this.size=this.cfg.size,this.minZoomFactor=null!=(n=this.cfg.minZoomFactor)?n:.3,this.maxZoomFactor=null!=(i=this.cfg.maxZoomFactor)?i:5,this.init(),this.animate(),this.enableRender()}get cameraDrawable(){return this.getMarker("cameraDrawable")}get cameraDirDrawable(){return this.getMarker("cameraDirDrawable")}get overviewMapDrawable(){return this.getMarker("overviewMap")}init(){Dn.isBrowser&&!this.cfg.context&&this.initDom(),this.initScene(),this.initRenderer(),this.initCamera(),this.initInputManager(),this.initEvents(),this.initControls()}initDom(){let e=document.getElementById(this.cfg.containerId);if(!e){se.error("[ViewCube] containerId:",this.cfg.containerId,"is not found in dom tree! will append to document.body.");let t="overview-map";e=document.createElement("div"),e.id=t,document.body.appendChild(e),this.cfg.containerId=t}this.width=e.clientWidth,this.height=e.clientHeight,this.viewerContainer=e}initInputManager(){this.viewerContainer&&(this.inputManager=new Jo(this.viewerContainer))}initScene(){let e=new _i;e.background=null,e.matrixAutoUpdate=!1,e.matrixWorldAutoUpdate=!1,this.scene=e}initCamera(){if(!this.scene)return;let e=new Ur(-this.width/2,this.width/2,this.height/2,-this.height/2,.1,1e5);e.position.set(0,0,this.CAMERA_Z_POSITION),e.zoom=10,e.updateProjectionMatrix(),this.scene.add(e),this.camera=e,this.frustumSize=this.width}initRenderer(){var e;let{context:t}=this.cfg,n={context:t,antialias:!0,preserveDrawingBuffer:!0,alpha:!1,stencil:!1};!Dn.isBrowser&&t&&Object.assign(n,{context:t,canvas:Dn.creatReactNativeCanvas(t)}),t&&(this.width=t.drawingBufferWidth,this.height=t.drawingBufferHeight),this.renderer=new Ms(n),this.renderer.setClearColor(11119017,1),this.renderer.setClearAlpha(0),Dn.isBrowser&&(!t&&this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.domElement.classList.add("webgl-renderer"),null==(e=this.viewerContainer)||e.appendChild(this.renderer.domElement)),this.renderer.setSize(this.width,this.height),this.overlayRender=new Un(this),this.overlayRender.addDrawableList(this.drawableList)}initControls(){let e=this.camera;if(!this.inputManager||!e)return;let t=new ba(e,this.inputManager);t.enableRotate=!1,t.enabled=this.enabled,t.keyTruckSpeed=10,t.dollyToCursor=!0,t.dollySpeed=.1,t.truckSpeed=1,t.mouseButtons={left:yt.TRUCK,middle:yt.TRUCK,wheel:yt.ZOOM,right:yt.TRUCK},t.touches={one:yt.TOUCH_TRUCK,two:yt.TOUCH_ZOOM_TRUCK,three:yt.NONE},t.update(0),this.controls=t,t.addEventListener("control",this.onControlsChange()),t.addEventListener("update",this.onControlsUpdate())}onControlsChange(){return()=>{this.enableRender()}}onControlsUpdate(){return()=>{if(!this.camera||!this.cameraZoom||!this.initialZoom)return;let e=this.camera.zoom;Zt.areNumbersEqual(e,this.cameraZoom)||(this.cameraZoom=e,this.dispatchEvent("ZoomChanged",(e/this.initialZoom).toFixed(2)))}}initEvents(){var e,t,n,i,r,a;!this.enabled||this.lockCameraInViewCenter||(null==(e=this.inputManager)||e.addEventListener("pointermove",this.handlePointerMove),null==(t=this.inputManager)||t.addEventListener("pointerdown",this.handlePointerDown),null==(n=this.inputManager)||n.addEventListener("pointerup",this.handlePointerUp),null==(i=this.inputManager)||i.addEventListener("dblclick",this.handleDblClick),null==(r=this.inputManager)||r.addEventListener("pointerleave",this.handlePointerLeave),null==(a=this.inputManager)||a.addEventListener("pointerenter",this.handlePointerEnter))}getDrawableByEvent(e){var t;if(!this.camera||!this.groundPlane||!this.viewerContainer)return;let n=this.raycaster;if(!n)return;let i=cn.getScreenPointByEvent(e,this.viewerContainer),r=cn.screenPoint2NdcPoint(i,this.camera,this.viewerContainer);n.setFromCamera(r,this.camera);let a=n.intersectObject(this.groundPlane);if(0===a.length||!a[0].point)return;let s=null==(t=this.overlayRender)?void 0:t.getDrawablesByPosition(a[0].point,n);return s&&s.length>0?s[0]:void 0}onCameraHover(e){let t=this.cameraDrawable,n=this.cameraDirDrawable;if(!t||!n)return;t.hover=!1,n.hover=!1;let i=this.getDrawableByEvent(e);i&&i===n&&(n.hover=!0),i&&i===t&&(t.hover=!0),this.enableRender()}syncCamera(e,t){this.timeout&&clearTimeout(this.timeout),this.isUpdateWhenPawnMove=!1,this.dispatchEvent("SyncCamera",{location:e,direction:t}),this.dispatchEvent("CameraChanged",e.applyMatrix4(this.transformMatrix)),this.timeout=setTimeout((()=>{this.timeout&&clearTimeout(this.timeout),this.isUpdateWhenPawnMove=!0}),500)}updateZoomFromRadius(){if(!this.camera||!this.radius||!this.controls)return;let e=this.controls;e.minZoom=0,e.maxZoom=1/0,e.update(0);let t=this.getContainerRadius(),n=this.camera.zoom*Number((t/this.radius).toFixed(2));this.controls.zoomTo(n)}getContainerRadius(){if(!this.viewerContainer)return;let e=this.viewerContainer,{width:t,height:n}=e.getBoundingClientRect();return this.size&&(t=this.size.width,n=this.size.height),this.screenDistance2WorldDistance(Math.min(t,n)/2)}screenDistance2WorldDistance(e){let t=this.camera,n=this.viewerContainer,i=cn.screenPoint2worldPosition(new be(e,0),t,n),r=cn.screenPoint2worldPosition(new be(0,0),t,n);return Math.abs(new be(i.x,i.z).distanceTo(new be(r.x,r.z)))}initGroundPlane(e){var t;Mt.expandBoxByScale(e,3);let n=e.min,i=e.max,r=i.x-n.x+i.y-n.y+i.z-n.z;Mt.expandBoxByMinSize(e,r);let a=[],s=(e,t,n)=>{a.push(new O(e,t,n))},o=e.getSize(new O),l=e.getCenter(new O);if(s(-o.x/2,0,-o.z/2),s(o.x/2,0,-o.z/2),s(o.x/2,0,o.z/2),s(-o.x/2,0,o.z/2),this.groundPlane)this.groundPlane.geometry.setFromPoints(a),this.groundPlane.geometry.computeBoundingSphere(),this.groundPlane.geometry.computeBoundingBox(),this.groundPlane.geometry.computeVertexNormals();else{let e=new Dt;e.setFromPoints(a),e.setIndex([0,3,2,0,2,1]),e.computeVertexNormals();let n=new on({color:"#888",transparent:!0,opacity:0,side:Sr});this.groundPlane=new xt(e,n),this.groundPlane.frustumCulled=!1,this.groundPlane.position.copy(l),this.groundPlane.scale.set(1e5,1e5,1),this.groundPlane.name="groundPlane",this.groundPlane.userData.selectable=!1,this.groundPlane.renderOrder=-1e3,this.groundPlane.layers.enableAll(),Hn.disableLayerChannels(this.groundPlane,[12]),null==(t=this.scene)||t.add(this.groundPlane)}this.groundPlane.updateMatrixWorld()}initMaxAndMinZoom(){if(!this.controls)return;this.controls.update(0);let e=this.camera.zoom;this.controls.minZoom=e*this.minZoomFactor,this.controls.maxZoom=e*this.maxZoomFactor,this.initialZoom=e,this.cameraZoom=e}getImageElementFromUrl(e){let t=new Image;return t.src=e,new Promise(((e,n)=>{t.onload=()=>{e(t)},t.onerror=e=>{n(e)}}))}updateOverviewMap(e){return ft(this,null,(function*(){let t=new O,n=new O;t.set(e.min.x,e.min.y,e.min.z),n.set(e.max.x,e.max.y,e.max.z),t.applyMatrix4(this.transformMatrix),n.applyMatrix4(this.transformMatrix);let i=yield this.getImageElementFromUrl(e.image),r=new O(Math.min(t.x,n.x),0,Math.min(t.z,n.z)),a=new O(Math.max(t.x,n.x),0,Math.max(t.z,n.z)),s=new Ot(r,a);this.initGroundPlane(s.clone());let o=this.overviewMapDrawable;o?(o.image=i,o.radius=this.radius,o.max.copy(n),o.min.copy(t)):(this.zoomToBBox(s),this.updateZoomFromRadius(),this.initMaxAndMinZoom(),this.addMarker(new Q2("overviewMap",{image:i,min:t,max:n,radius:this.radius}))),this.imgBBox=s,this.enableRender()}))}createCameraMarkers(e,t){return ft(this,null,(function*(){var n,i;if(!this.camera||!this.viewerContainer)return;let r=this.cameraDrawable,a=this.cameraDirDrawable;if(r)r.position.copy(e),null==(n=r.direction)||n.copy(t);else{let n=yield this.getImageElementFromUrl(F1e),i=yield this.getImageElementFromUrl(B1e);this.addMarker(new $_("cameraDirDrawable",{image:n,hoverImage:i,translate:new be(-1,-.5),scale:.25,position:e,direction:t,enabledHover:this.enabled}))}if(a)a.position.copy(e),null==(i=a.direction)||i.copy(t);else{let n=yield this.getImageElementFromUrl(k1e),i=yield this.getImageElementFromUrl(N1e);this.addMarker(new $_("cameraDrawable",{image:n,hoverImage:i,translate:new be(-.5,-.5),scale:.25,position:e,direction:t,enabledHover:this.enabled}))}this.enableRender()}))}initCameraMarkers(e,t){return ft(this,null,(function*(){var n;let i=new O(e.x,e.y,e.z),r=new O(t.x,t.y,t.z);if(i.applyMatrix4(this.transformMatrix),r.applyMatrix4(this.transformMatrix),this.lockCameraInViewCenter){let e=this.camera;yield this.createCameraMarkers(e.position,r),i.setY(e.position.y),null==(n=this.controls)||n.setLookAt(i.x,i.y,i.z,i.x,0,i.z)}else yield this.createCameraMarkers(i,r)}))}updateOverviewMapCameraAnimation(){var e,t;let n=this.animationParam;if(!n)return void(this.animationId&&cancelAnimationFrame(this.animationId));let{startTime:i,positionStart:r,positionEnd:a,directionStart:s,directionEnd:o}=n,l=Math.min(1,(Date.now()-i)/500),h=r.lerp(a,l),c=s.lerp(o,l),u=this.cameraDrawable,d=this.cameraDirDrawable;if(null==(e=null==d?void 0:d.direction)||e.copy(c),this.lockCameraInViewCenter?null==(t=this.controls)||t.setLookAt(h.x,h.y,h.z,h.x,0,h.z):(null==u||u.position.copy(h),null==d||d.position.copy(h)),this.enableRender(),1===l)return this.animationParam=void 0,void(this.animationId&&cancelAnimationFrame(this.animationId));this.animationId=requestAnimationFrame(this.updateOverviewMapCameraAnimation.bind(this))}updateOverviewMapCamera(e,t){let n=this.cameraDrawable,i=this.cameraDirDrawable;if(!(this.camera&&this.viewerContainer&&n&&i&&this.isUpdateWhenPawnMove))return;this.animationId&&cancelAnimationFrame(this.animationId);let r,a=new O(e.x,e.y,e.z),s=new O(t.x,t.y,t.z);a.applyMatrix4(this.transformMatrix),s.applyMatrix4(this.transformMatrix),this.lockCameraInViewCenter?(r=this.camera.position.clone(),a.setY(r.y)):r=n.position.clone();let o=Date.now(),l=i.direction.clone();this.animationParam={startTime:o,positionStart:r,positionEnd:a,directionStart:l,directionEnd:s},this.updateOverviewMapCameraAnimation(),this.dispatchEvent("CameraChanged",a)}zoomToBBox(e){if(!this.scene||!this.camera||!this.controls)return;let t=this.camera,n=e.max.x-e.min.x,i=e.max.z-e.min.z,r=t.right-t.left,a=t.top-t.bottom,s=Math.min(r/n,a/i);this.controls.zoomTo(s);let o=new O;e.getCenter(o);let l=o.clone().setY(e.max.y+2);l.equals(o)||this.controls.setLookAt(l.x,l.y,l.z,o.x,o.y,o.z)}addMarker(e){this.drawableList.addDrawable(e),this.enableRender()}getMarker(e){return this.drawableList.getDrawableById(e)}removeMarker(e){this.drawableList.removeDrawable(e),this.enableRender()}dollyIn(e=.2){let t=this.camera;if(!t||!this.controls||!this.initialZoom)return;let n=t.zoom,i=Math.min(n+e*this.initialZoom,this.controls.maxZoom);this.controls.zoomTo(i)}dollyOut(e=.2){let t=this.camera;if(!t||!this.controls||!this.initialZoom)return;let n=t.zoom,i=Math.max(n-e*this.initialZoom,this.controls.minZoom);this.controls.zoomTo(i)}goToHomeView(){this.imgBBox&&this.zoomToBBox(this.imgBBox)}setRadius(e){this.radius=e;let t=this.overviewMapDrawable;t&&(t.radius=e),this.updateZoomFromRadius()}registerBoundaries(e){this.boundaries||(this.boundaries=new Map),e.forEach((e=>{var t;let n=e.points.map((e=>new be(e.x,e.y)));null==(t=this.boundaries)||t.set(e.id,{id:e.id,name:e.name,polygon:n})}))}screenShot(){return ft(this,null,(function*(){var e;try{let t=yield null==(e=this.overlayRender)?void 0:e.getImage((()=>!0));return null==t?void 0:t.src}catch(e){return void se.error(e)}}))}getViewConfig(){return this.cfg}getPixelSizeInWorldCoord(){let e=this.camera,{clientWidth:t,clientHeight:n}=this.viewerContainer;return Math.max(e.right-e.left,e.top-e.bottom)/e.zoom/Math.max(t,n)}lookToAllMarkers(){var e,t;let n=new Ot;this.drawableList.getDrawables().forEach((e=>{if("overviewMap"===e.id||"cameraDrawable"===e.id||"cameraDirDrawable"===e.id||!this.camera||!this.viewerContainer)return;let t=e;n.union(t.getBBox())})),n.min.setY(0),n.max.setY(0);let i=n.min.distanceTo(n.max);n.expandByVector(new O(.01*i,0,.01*i)),Zt.areVector3sEqual(null==(e=this.allMarkersBBox)?void 0:e.min,n.min)&&Zt.areVector3sEqual(null==(t=this.allMarkersBBox)?void 0:t.max,n.max)?this.enableLookToAllMarkers=!1:(this.allMarkersBBox=n,this.zoomToBBox(n))}resize(e,t){let n=this.camera;if(n&&t>0){let i=e/t;n.left=-this.frustumSize/2,n.right=this.frustumSize/2,n.top=this.frustumSize/i/2,n.bottom=-this.frustumSize/i/2,n.updateProjectionMatrix(),this.renderer&&this.renderer.setSize(e,t,!0),this.overlayRender&&this.overlayRender.setSize(e,t)}this.width=e,this.height=t,this.enableRender()}destroy(){var e,t,n;this.raycaster=void 0,null==(e=this.inputManager)||e.removeEventListener(),this.animationId&&(cancelAnimationFrame(this.animationId),this.animationId=void 0),this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0),this.drawableList.clear(),null==(t=this.viewerContainer)||t.remove(),this.viewerContainer=void 0,null==(n=this.scene)||n.clear(),this.scene=void 0,this.requestAnimationFrameHandle&&(cancelAnimationFrame(this.requestAnimationFrameHandle),this.requestAnimationFrameHandle=void 0),this.renderer&&(this.renderer.domElement.remove(),this.renderer.clear(),this.renderer.dispose(),this.renderer.forceContextLoss(),this.renderer=void 0),this.overlayRender&&(this.overlayRender.destroy(),this.overlayRender=void 0),this.camera=void 0,this.controls&&(this.controls.dispose(),this.controls=void 0),this.groundPlane&&(this.groundPlane.geometry.dispose(),this.groundPlane.clear(),this.groundPlane=void 0),this.removeEventListener()}};export{MA as ANGLE_THRESHOLD_FOR_EDGE,eDt as AXIS_SECTION_PLANE_CONTROL_ID,QLt as AXIS_SECTION_PLANE_ID,n6 as AnnotationTable,h5 as ArrowMarkup,$ve as AxisGizmoPlugin,c2 as AxisPlaneSection,Hve as AxisType,sy as BYBLOCK,iy as BYLAYER,LP as BaseDxfCompareHelper,Dr as BaseMeasureDrawable,nh as BaseMeasurement,ip as BaseSection,Wu as BaseTable,sp as BaseVRMesh,Zf as BaseViewer,Gve as BimViewer,Iye as BimViewerDatGuiPlugin,nye as BimViewerToolbarPlugin,Cf as BinaryReader,ng as BitView,Zve as BottomBarPlugin,$f as BoxSelectHelper,Tf as CSS2DObjectUtils,ba as CameraControlsEx,_A as CancelablePromise,Un as CanvasRender,d5 as CircleMarkup,Pc as CloudLineMarkup,f5 as CloudRectMarkup,Cn as ColorUtils,Mt as CommonUtils,Gm as CompareDrawable,lye as ContextMenuPlugin,nP as ControlsHelper,cn as CoordinateConversionUtils,Qve as DEFAULT_BIMVIEWER_TOOLBAR_CONFIG,fde as DEFAULT_BIM_VIEWER_CONFIG,eye as DEFAULT_DXFVIEWER_TOOLBAR_CONFIG,Kve as DEFAULT_MARKUP_TOOLBAR_CONFIG,Dn as DeviceUtils,p5 as DotMarkup,Bi as Drawable,Ko as DrawableList,B5 as DxfChangeType,hs as DxfCompare,dve as DxfCompareHelper,u0e as DxfCompareMarkupManager,gy as DxfDataTable,gn as DxfLoader,Xm as DxfParser,Zfe as DxfRenderOrder,Lc as DxfUtils,Qf as DxfViewer,tye as DxfViewerToolbarPlugin,JLt as ENTER_KEY,KLt as ESC_KEY,RA as EdgeUtils,m5 as EllipseMarkup,us as Event,O2 as ExplodePlugin,Lm as ExportUtils,sd as FontDataTable,ud as FontManager,LA as FpsUtils,_de as GROUND_PLANE_RENDER_ORDER,_2 as GROUP_CONFIG,xP as GenerateMeshBvhWorker,Qt as GeometryUtils,k2 as GroundGrassPlugin,F2 as GroundGridPlugin,kye as GroundShadowPlugin,Fye as HotpointPlugin,qv as ICON_FONT_CLASS,$_ as ImageDrawable,ns as IndexedDbManager,Jo as InputManager,I0e as InstantiateHelper,$Lt as KEYDOWN_EVENT,ZLt as KEYUP_EVENT,vht as Keys,Lye as LayerManagerPlugin,g5 as LeaderLineMarkup,hr as Line,D1e as LineDrawable,TC as LinePatternShaders,$a as LoadingHelper,w1e as LocalDxfUploader,S1e as LocalImageUploader,B2 as LocalModelUploader,Jve as MARKUP_GROUP_CONFIG,wH as MOUSEDOWN_EVENT,wf as MOUSEMOVE_EVENT,TH as MOUSEUP_EVENT,dE as MarkupManager,T2 as MarkupToolbar,Wa as MarkupType,es as MaterialUtils,Zt as MathUtils,lve as MeasurementPlugin,$l as MeasurementType,b2 as MenuTypeEnums,Ar as MergeUtils,xt as Mesh,Yf as MeshBvhHelper,RP as MobileTouchHelperDrawable,R1e as NavCubePlugin,qm as NestCompareTypes,wP as OSnapHelper,Lfe as OSnapMarkerType,k4 as OSnapType,sve as ObjectPixelSizeHelper,Hn as ObjectUtils,u2 as ObjectsBoxSection,mve as Offset,Q2 as OverviewMapDrawable,U1e as OverviewMapPlugin,Gyt as OverviewMapPluginEvent,ah as PdfLoader,T1e as PdfLoaderPlugin,SP as PickMarkupHelper,h2 as PickPlaneSection,fr as Plugin,ii as Points,Fm as PolygonUtils,v5 as PolylineMarkup,Gf as ProgressBar,qf as RafHelper,y5 as RectMarkup,rDt as SECTION_BOX_ID,nDt as SECTION_PLANE_CONTROL_ID,tDt as SECTION_PLANE_ID,SH as SECTION_PLANE_NAME,ive as SHP,yP as SHPLoader,gP as SHPParser,AOt as SNAP_ICON_SIZE,ght as STATE,sde as SVGObject,Ife as SVGObjectUtils,ade as SVGRenderer,ks as SceneUtils,MH as ScreenshotMode,N2 as ScreenshotPlugin,d2 as SectionPlugin,Wv as SectionType,Hu as SectionUtils,$n as ShaderChunk,vP as ShpThree,qve as SimplifiedBimViewer,Pfe as SimplifyUtils,P1e as SkyboxPlugin,As as SnapDrawable,C1e as StatsPlugin,O1e as TextDrawable,Ol as TextMarkup,Cc as TextureUtils,ap as Toolbar,uV as ToolbarMenu,E2 as ToolbarMenuId,t6 as Units,JA as VRControls,g2 as VRCube,v2 as VRCube24Faces,y2 as VRSphere,Yve as VRViewer,L1e as ViewCubePlugin,aE as Viewer3DUtils,Ii as ViewerEvent,Vvt as ViewerMode,Ly as ViewerName,r6 as ViewpointTable,u5 as Views,o2 as WebCam,x5 as XMarkup,Dy as ZoomToRectHelper,e6 as bspline,pme as checkIsNewVersion,Jde as cn,oye as contextMenuItems,ume as createHatchPatternShaderMaterial,_dt as decodeDxfTextCharacterCodes,wdt as decodeDxfTextMbcsCharacterCodes,Tdt as decodeDxfTextUnicodeCodePoints,Kde as en,FOt as getLengthValueByUnit,sE as getUnitStr,Rdt as getVersionFromLocalStorage,Uu as layerForHitableObjects,ei as layerForSelectableObjects,vs as layerForSnapableObjects,se as log,si as matrixAutoUpdate,wC as parseDxfMTextContent,SC as parseDxfTextContent,J5 as round10,YLt as sceneAutoUpdate,SA as setIcon,gde as setLogLevel,Adt as setVersionToLocalStorage,Bu as showPrecisionValue,Dfe as unitConversionByMeter,uht as unitLabel,dme as unitScaleConversion,hme as unitScaleToMeter}; \ No newline at end of file +var Qwe=Object.create,y1=Object.defineProperty,eSe=Object.defineProperties,tSe=Object.getOwnPropertyDescriptor,nSe=Object.getOwnPropertyDescriptors,rSe=Object.getOwnPropertyNames,SG=Object.getOwnPropertySymbols,MG=Object.getPrototypeOf,RG=Object.prototype.hasOwnProperty,iSe=Object.prototype.propertyIsEnumerable,sSe=Reflect.get,Do=Math.pow,s3=(e,t,i)=>t in e?y1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Tr=(e,t)=>{for(var i in t||(t={}))RG.call(t,i)&&s3(e,i,t[i]);if(SG)for(var i of SG(t))iSe.call(t,i)&&s3(e,i,t[i]);return e},Ii=(e,t)=>eSe(e,nSe(t)),a3=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,t)=>("undefined"!=typeof require?require:e)[t]}):e)((function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')})),aSe=(e,t)=>()=>(e&&(t=e(e=0)),t),Q=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),zT=(e,t)=>{for(var i in t)y1(e,i,{get:t[i],enumerable:!0})},AG=(e,t,i,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of rSe(t))!RG.call(e,r)&&r!==i&&y1(e,r,{get:()=>t[r],enumerable:!(n=tSe(t,r))||n.enumerable});return e},Xi=(e,t,i)=>(i=null!=e?Qwe(MG(e)):{},AG(!t&&e&&e.__esModule?i:y1(i,"default",{value:e,enumerable:!0}),e)),oSe=e=>AG(y1({},"__esModule",{value:!0}),e),Yi=(e,t,i)=>(s3(e,"symbol"!=typeof t?t+"":t,i),i),o3=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},ce=(e,t,i)=>(o3(e,t,"read from private field"),i?i.call(e):t.get(e)),Je=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},Mt=(e,t,i,n)=>(o3(e,t,"write to private field"),n?n.call(e,i):t.set(e,i),i),GT=(e,t,i,n)=>({set _(n){Mt(e,t,n,i)},get _(){return ce(e,t,n)}}),dt=(e,t,i)=>(o3(e,t,"access private method"),i),CG=(e,t,i)=>sSe(MG(e),i,t),ft=(e,t,i)=>new Promise(((n,r)=>{var a=e=>{try{o(i.next(e))}catch(e){r(e)}},s=e=>{try{o(i.throw(e))}catch(e){r(e)}},o=e=>e.done?n(e.value):Promise.resolve(e.value).then(a,s);o((i=i.apply(e,t)).next())})),LG={};function qT(e){return(qT="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function cSe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function PG(e,t){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{};cSe(this,a),this._locale=r(i),this._select=t(this._locale),this._type=fSe(n.type),this._nf=new e("en",n)}return uSe(a,[{key:"resolvedOptions",value:function(){var e=this._nf.resolvedOptions(),t=e.minimumIntegerDigits,n=e.minimumFractionDigits,r=e.maximumFractionDigits,a=e.minimumSignificantDigits,s=e.maximumSignificantDigits,o={locale:this._locale,minimumIntegerDigits:t,minimumFractionDigits:n,maximumFractionDigits:r,pluralCategories:i(this._locale,"ordinal"===this._type),type:this._type};return"number"==typeof a&&(o.minimumSignificantDigits=a,o.maximumSignificantDigits=s),o}},{key:"select",value:function(e){if(!(this instanceof a))throw new TypeError("select() called on incompatible ".concat(this));if("number"!=typeof e&&(e=Number(e)),!isFinite(e))return"other";var t=this._nf.format(Math.abs(e));return this._select(t,"ordinal"===this._type)}}],[{key:"supportedLocalesOf",value:function(e){return IG(e).filter(n)}}]),a}();return Object.defineProperty(a,"prototype",{writable:!1}),a}zT(LG,{default:()=>pSe});var hSe,IG,dSe,fSe,DG=aSe((()=>{hSe=function(e){return e.split("-").every((function(e){return/[a-z0-9]+/i.test(e)}))},IG=function(e){if(!e)return[];Array.isArray(e)||(e=[e]);for(var t={},i=0;i{"use strict";function i(e,t){for(var i=0;i="0"&&r<="9"&&++i}return ithis._maxSD?e.toPrecision(this._maxSD):t}return this._minFD>0?e.toFixed(this._minFD):0===this._maxFD?e.toFixed(0):String(e)}}]),e}();t.exports=n})),qG=Q(((e,t)=>{"use strict";var i=(DG(),oSe(LG)),n=FG();function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=r(i),s=r(n);function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var h,c,u,d,p,f,m,g,v={exports:{}};h=v,u=function(e,t){return t?"other":1==e?"one":"other"},d=function(e,t){return t?"other":0==e||1==e?"one":"other"},p=function(e,t){return t?"other":e>=0&&e<=1?"one":"other"},f=function(e,t){var i=!String(e).split(".")[1];return t?"other":1==e&&i?"one":"other"},g=function(e,t){return t?"other":1==e?"one":2==e?"two":"other"},c={_in:m=function(e,t){return"other"},af:u,ak:d,am:p,an:u,ar:function(e,t){var i=String(e).split("."),n=Number(i[0])==e&&i[0].slice(-2);return t?"other":0==e?"zero":1==e?"one":2==e?"two":n>=3&&n<=10?"few":n>=11&&n<=99?"many":"other"},ars:function(e,t){var i=String(e).split("."),n=Number(i[0])==e&&i[0].slice(-2);return t?"other":0==e?"zero":1==e?"one":2==e?"two":n>=3&&n<=10?"few":n>=11&&n<=99?"many":"other"},as:function(e,t){return t?1==e||5==e||7==e||8==e||9==e||10==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},asa:u,ast:f,az:function(e,t){var i=String(e).split(".")[0],n=i.slice(-1),r=i.slice(-2),a=i.slice(-3);return t?1==n||2==n||5==n||7==n||8==n||20==r||50==r||70==r||80==r?"one":3==n||4==n||100==a||200==a||300==a||400==a||500==a||600==a||700==a||800==a||900==a?"few":0==i||6==n||40==r||60==r||90==r?"many":"other":1==e?"one":"other"},be:function(e,t){var i=String(e).split("."),n=Number(i[0])==e,r=n&&i[0].slice(-1),a=n&&i[0].slice(-2);return t?2!=r&&3!=r||12==a||13==a?"other":"few":1==r&&11!=a?"one":r>=2&&r<=4&&(a<12||a>14)?"few":n&&0==r||r>=5&&r<=9||a>=11&&a<=14?"many":"other"},bem:u,bez:u,bg:u,bho:d,bm:m,bn:function(e,t){return t?1==e||5==e||7==e||8==e||9==e||10==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},bo:m,br:function(e,t){var i=String(e).split("."),n=Number(i[0])==e,r=n&&i[0].slice(-1),a=n&&i[0].slice(-2),s=n&&i[0].slice(-6);return t?"other":1==r&&11!=a&&71!=a&&91!=a?"one":2==r&&12!=a&&72!=a&&92!=a?"two":(3==r||4==r||9==r)&&(a<10||a>19)&&(a<70||a>79)&&(a<90||a>99)?"few":0!=e&&n&&0==s?"many":"other"},brx:u,bs:function(e,t){var i=String(e).split("."),n=i[0],r=i[1]||"",a=!i[1],s=n.slice(-1),o=n.slice(-2),l=r.slice(-1),h=r.slice(-2);return t?"other":a&&1==s&&11!=o||1==l&&11!=h?"one":a&&s>=2&&s<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},ca:function(e,t){var i=!String(e).split(".")[1];return t?1==e||3==e?"one":2==e?"two":4==e?"few":"other":1==e&&i?"one":"other"},ce:u,ceb:function(e,t){var i=String(e).split("."),n=i[0],r=i[1]||"",a=!i[1],s=n.slice(-1),o=r.slice(-1);return t?"other":a&&(1==n||2==n||3==n)||a&&4!=s&&6!=s&&9!=s||!a&&4!=o&&6!=o&&9!=o?"one":"other"},cgg:u,chr:u,ckb:u,cs:function(e,t){var i=String(e).split("."),n=i[0],r=!i[1];return t?"other":1==e&&r?"one":n>=2&&n<=4&&r?"few":r?"other":"many"},cy:function(e,t){return t?0==e||7==e||8==e||9==e?"zero":1==e?"one":2==e?"two":3==e||4==e?"few":5==e||6==e?"many":"other":0==e?"zero":1==e?"one":2==e?"two":3==e?"few":6==e?"many":"other"},da:function(e,t){var i=String(e).split("."),n=i[0],r=Number(i[0])==e;return t||1!=e&&(r||0!=n&&1!=n)?"other":"one"},de:f,doi:p,dsb:function(e,t){var i=String(e).split("."),n=i[0],r=i[1]||"",a=!i[1],s=n.slice(-2),o=r.slice(-2);return t?"other":a&&1==s||1==o?"one":a&&2==s||2==o?"two":a&&(3==s||4==s)||3==o||4==o?"few":"other"},dv:u,dz:m,ee:u,el:u,en:function(e,t){var i=String(e).split("."),n=!i[1],r=Number(i[0])==e,a=r&&i[0].slice(-1),s=r&&i[0].slice(-2);return t?1==a&&11!=s?"one":2==a&&12!=s?"two":3==a&&13!=s?"few":"other":1==e&&n?"one":"other"},eo:u,es:u,et:f,eu:u,fa:p,ff:function(e,t){return t?"other":e>=0&&e<2?"one":"other"},fi:f,fil:function(e,t){var i=String(e).split("."),n=i[0],r=i[1]||"",a=!i[1],s=n.slice(-1),o=r.slice(-1);return t?1==e?"one":"other":a&&(1==n||2==n||3==n)||a&&4!=s&&6!=s&&9!=s||!a&&4!=o&&6!=o&&9!=o?"one":"other"},fo:u,fr:function(e,t){var i=String(e).split("."),n=i[0],r=!i[1],a=n.slice(-6);return t?1==e?"one":"other":e>=0&&e<2?"one":0!=n&&0==a&&r?"many":"other"},fur:u,fy:f,ga:function(e,t){var i=String(e).split("."),n=Number(i[0])==e;return t?1==e?"one":"other":1==e?"one":2==e?"two":n&&e>=3&&e<=6?"few":n&&e>=7&&e<=10?"many":"other"},gd:function(e,t){var i=String(e).split("."),n=Number(i[0])==e;return t?1==e||11==e?"one":2==e||12==e?"two":3==e||13==e?"few":"other":1==e||11==e?"one":2==e||12==e?"two":n&&e>=3&&e<=10||n&&e>=13&&e<=19?"few":"other"},gl:f,gsw:u,gu:function(e,t){return t?1==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},guw:d,gv:function(e,t){var i=String(e).split("."),n=i[0],r=!i[1],a=n.slice(-1),s=n.slice(-2);return t?"other":r&&1==a?"one":r&&2==a?"two":!r||0!=s&&20!=s&&40!=s&&60!=s&&80!=s?r?"other":"many":"few"},ha:u,haw:u,he:function(e,t){var i=String(e).split("."),n=i[0],r=!i[1],a=Number(i[0])==e,s=a&&i[0].slice(-1);return t?"other":1==e&&r?"one":2==n&&r?"two":r&&(e<0||e>10)&&a&&0==s?"many":"other"},hi:function(e,t){return t?1==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},hr:function(e,t){var i=String(e).split("."),n=i[0],r=i[1]||"",a=!i[1],s=n.slice(-1),o=n.slice(-2),l=r.slice(-1),h=r.slice(-2);return t?"other":a&&1==s&&11!=o||1==l&&11!=h?"one":a&&s>=2&&s<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},hsb:function(e,t){var i=String(e).split("."),n=i[0],r=i[1]||"",a=!i[1],s=n.slice(-2),o=r.slice(-2);return t?"other":a&&1==s||1==o?"one":a&&2==s||2==o?"two":a&&(3==s||4==s)||3==o||4==o?"few":"other"},hu:function(e,t){return t?1==e||5==e?"one":"other":1==e?"one":"other"},hy:function(e,t){return t?1==e?"one":"other":e>=0&&e<2?"one":"other"},ia:f,id:m,ig:m,ii:m,io:f,is:function(e,t){var i=String(e).split("."),n=i[0],r=Number(i[0])==e,a=n.slice(-1),s=n.slice(-2);return t?"other":r&&1==a&&11!=s||!r?"one":"other"},it:function(e,t){var i=!String(e).split(".")[1];return t?11==e||8==e||80==e||800==e?"many":"other":1==e&&i?"one":"other"},iu:g,iw:function(e,t){var i=String(e).split("."),n=i[0],r=!i[1],a=Number(i[0])==e,s=a&&i[0].slice(-1);return t?"other":1==e&&r?"one":2==n&&r?"two":r&&(e<0||e>10)&&a&&0==s?"many":"other"},ja:m,jbo:m,jgo:u,ji:f,jmc:u,jv:m,jw:m,ka:function(e,t){var i=String(e).split(".")[0],n=i.slice(-2);return t?1==i?"one":0==i||n>=2&&n<=20||40==n||60==n||80==n?"many":"other":1==e?"one":"other"},kab:function(e,t){return t?"other":e>=0&&e<2?"one":"other"},kaj:u,kcg:u,kde:m,kea:m,kk:function(e,t){var i=String(e).split("."),n=Number(i[0])==e,r=n&&i[0].slice(-1);return t?6==r||9==r||n&&0==r&&0!=e?"many":"other":1==e?"one":"other"},kkj:u,kl:u,km:m,kn:p,ko:m,ks:u,ksb:u,ksh:function(e,t){return t?"other":0==e?"zero":1==e?"one":"other"},ku:u,kw:function(e,t){var i=String(e).split("."),n=Number(i[0])==e,r=n&&i[0].slice(-2),a=n&&i[0].slice(-3),s=n&&i[0].slice(-5),o=n&&i[0].slice(-6);return t?n&&e>=1&&e<=4||r>=1&&r<=4||r>=21&&r<=24||r>=41&&r<=44||r>=61&&r<=64||r>=81&&r<=84?"one":5==e||5==r?"many":"other":0==e?"zero":1==e?"one":2==r||22==r||42==r||62==r||82==r||n&&0==a&&(s>=1e3&&s<=2e4||4e4==s||6e4==s||8e4==s)||0!=e&&1e5==o?"two":3==r||23==r||43==r||63==r||83==r?"few":1==e||1!=r&&21!=r&&41!=r&&61!=r&&81!=r?"other":"many"},ky:u,lag:function(e,t){var i=String(e).split(".")[0];return t?"other":0==e?"zero":0!=i&&1!=i||0==e?"other":"one"},lb:u,lg:u,lij:function(e,t){var i=String(e).split("."),n=!i[1],r=Number(i[0])==e;return t?11==e||8==e||r&&e>=80&&e<=89||r&&e>=800&&e<=899?"many":"other":1==e&&n?"one":"other"},lkt:m,ln:d,lo:function(e,t){return t&&1==e?"one":"other"},lt:function(e,t){var i=String(e).split("."),n=i[1]||"",r=Number(i[0])==e,a=r&&i[0].slice(-1),s=r&&i[0].slice(-2);return t?"other":1==a&&(s<11||s>19)?"one":a>=2&&a<=9&&(s<11||s>19)?"few":0!=n?"many":"other"},lv:function(e,t){var i=String(e).split("."),n=i[1]||"",r=n.length,a=Number(i[0])==e,s=a&&i[0].slice(-1),o=a&&i[0].slice(-2),l=n.slice(-2),h=n.slice(-1);return t?"other":a&&0==s||o>=11&&o<=19||2==r&&l>=11&&l<=19?"zero":1==s&&11!=o||2==r&&1==h&&11!=l||2!=r&&1==h?"one":"other"},mas:u,mg:d,mgo:u,mk:function(e,t){var i=String(e).split("."),n=i[0],r=i[1]||"",a=!i[1],s=n.slice(-1),o=n.slice(-2),l=r.slice(-1),h=r.slice(-2);return t?1==s&&11!=o?"one":2==s&&12!=o?"two":7!=s&&8!=s||17==o||18==o?"other":"many":a&&1==s&&11!=o||1==l&&11!=h?"one":"other"},ml:u,mn:u,mo:function(e,t){var i=String(e).split("."),n=!i[1],r=Number(i[0])==e&&i[0].slice(-2);return t?1==e?"one":"other":1==e&&n?"one":!n||0==e||r>=2&&r<=19?"few":"other"},mr:function(e,t){return t?1==e?"one":2==e||3==e?"two":4==e?"few":"other":1==e?"one":"other"},ms:function(e,t){return t&&1==e?"one":"other"},mt:function(e,t){var i=String(e).split("."),n=Number(i[0])==e&&i[0].slice(-2);return t?"other":1==e?"one":0==e||n>=2&&n<=10?"few":n>=11&&n<=19?"many":"other"},my:m,nah:u,naq:g,nb:u,nd:u,ne:function(e,t){var i=String(e).split("."),n=Number(i[0])==e;return t?n&&e>=1&&e<=4?"one":"other":1==e?"one":"other"},nl:f,nn:u,nnh:u,no:u,nqo:m,nr:u,nso:d,ny:u,nyn:u,om:u,or:function(e,t){var i=String(e).split("."),n=Number(i[0])==e;return t?1==e||5==e||n&&e>=7&&e<=9?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":1==e?"one":"other"},os:u,osa:m,pa:d,pap:u,pcm:p,pl:function(e,t){var i=String(e).split("."),n=i[0],r=!i[1],a=n.slice(-1),s=n.slice(-2);return t?"other":1==e&&r?"one":r&&a>=2&&a<=4&&(s<12||s>14)?"few":r&&1!=n&&(0==a||1==a)||r&&a>=5&&a<=9||r&&s>=12&&s<=14?"many":"other"},prg:function(e,t){var i=String(e).split("."),n=i[1]||"",r=n.length,a=Number(i[0])==e,s=a&&i[0].slice(-1),o=a&&i[0].slice(-2),l=n.slice(-2),h=n.slice(-1);return t?"other":a&&0==s||o>=11&&o<=19||2==r&&l>=11&&l<=19?"zero":1==s&&11!=o||2==r&&1==h&&11!=l||2!=r&&1==h?"one":"other"},ps:u,pt:function(e,t){var i=String(e).split(".")[0];return t?"other":0==i||1==i?"one":"other"},pt_PT:f,rm:u,ro:function(e,t){var i=String(e).split("."),n=!i[1],r=Number(i[0])==e&&i[0].slice(-2);return t?1==e?"one":"other":1==e&&n?"one":!n||0==e||r>=2&&r<=19?"few":"other"},rof:u,root:m,ru:function(e,t){var i=String(e).split("."),n=i[0],r=!i[1],a=n.slice(-1),s=n.slice(-2);return t?"other":r&&1==a&&11!=s?"one":r&&a>=2&&a<=4&&(s<12||s>14)?"few":r&&0==a||r&&a>=5&&a<=9||r&&s>=11&&s<=14?"many":"other"},rwk:u,sah:m,saq:u,sat:g,sc:function(e,t){var i=!String(e).split(".")[1];return t?11==e||8==e||80==e||800==e?"many":"other":1==e&&i?"one":"other"},scn:function(e,t){var i=!String(e).split(".")[1];return t?11==e||8==e||80==e||800==e?"many":"other":1==e&&i?"one":"other"},sd:u,sdh:u,se:g,seh:u,ses:m,sg:m,sh:function(e,t){var i=String(e).split("."),n=i[0],r=i[1]||"",a=!i[1],s=n.slice(-1),o=n.slice(-2),l=r.slice(-1),h=r.slice(-2);return t?"other":a&&1==s&&11!=o||1==l&&11!=h?"one":a&&s>=2&&s<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},shi:function(e,t){var i=String(e).split("."),n=Number(i[0])==e;return t?"other":e>=0&&e<=1?"one":n&&e>=2&&e<=10?"few":"other"},si:function(e,t){var i=String(e).split("."),n=i[0],r=i[1]||"";return t?"other":0==e||1==e||0==n&&1==r?"one":"other"},sk:function(e,t){var i=String(e).split("."),n=i[0],r=!i[1];return t?"other":1==e&&r?"one":n>=2&&n<=4&&r?"few":r?"other":"many"},sl:function(e,t){var i=String(e).split("."),n=i[0],r=!i[1],a=n.slice(-2);return t?"other":r&&1==a?"one":r&&2==a?"two":r&&(3==a||4==a)||!r?"few":"other"},sma:g,smi:g,smj:g,smn:g,sms:g,sn:u,so:u,sq:function(e,t){var i=String(e).split("."),n=Number(i[0])==e,r=n&&i[0].slice(-1),a=n&&i[0].slice(-2);return t?1==e?"one":4==r&&14!=a?"many":"other":1==e?"one":"other"},sr:function(e,t){var i=String(e).split("."),n=i[0],r=i[1]||"",a=!i[1],s=n.slice(-1),o=n.slice(-2),l=r.slice(-1),h=r.slice(-2);return t?"other":a&&1==s&&11!=o||1==l&&11!=h?"one":a&&s>=2&&s<=4&&(o<12||o>14)||l>=2&&l<=4&&(h<12||h>14)?"few":"other"},ss:u,ssy:u,st:u,su:m,sv:function(e,t){var i=String(e).split("."),n=!i[1],r=Number(i[0])==e,a=r&&i[0].slice(-1),s=r&&i[0].slice(-2);return t?1!=a&&2!=a||11==s||12==s?"other":"one":1==e&&n?"one":"other"},sw:f,syr:u,ta:u,te:u,teo:u,th:m,ti:d,tig:u,tk:function(e,t){var i=String(e).split("."),n=Number(i[0])==e&&i[0].slice(-1);return t?6==n||9==n||10==e?"few":"other":1==e?"one":"other"},tl:function(e,t){var i=String(e).split("."),n=i[0],r=i[1]||"",a=!i[1],s=n.slice(-1),o=r.slice(-1);return t?1==e?"one":"other":a&&(1==n||2==n||3==n)||a&&4!=s&&6!=s&&9!=s||!a&&4!=o&&6!=o&&9!=o?"one":"other"},tn:u,to:m,tr:u,ts:u,tzm:function(e,t){var i=String(e).split("."),n=Number(i[0])==e;return t?"other":0==e||1==e||n&&e>=11&&e<=99?"one":"other"},ug:u,uk:function(e,t){var i=String(e).split("."),n=i[0],r=!i[1],a=Number(i[0])==e,s=a&&i[0].slice(-1),o=a&&i[0].slice(-2),l=n.slice(-1),h=n.slice(-2);return t?3==s&&13!=o?"few":"other":r&&1==l&&11!=h?"one":r&&l>=2&&l<=4&&(h<12||h>14)?"few":r&&0==l||r&&l>=5&&l<=9||r&&h>=11&&h<=14?"many":"other"},ur:f,uz:u,ve:u,vi:function(e,t){return t&&1==e?"one":"other"},vo:u,vun:u,wa:d,wae:u,wo:m,xh:u,xog:u,yi:f,yo:m,yue:m,zh:m,zu:p},Object.defineProperty(c,"__esModule",{value:!0}),h.exports=c;var y=l(v.exports),x=Object.freeze(Object.assign(Object.create(null),v.exports,{default:y})),b={exports:{}};!function(e,t){var i,n="zero",r="one",a="two",s="few",o="many",l="other",h={cardinal:[r,l],ordinal:[l]},c={cardinal:[l],ordinal:[l]},u={cardinal:[r,s,o,l],ordinal:[l]},d={cardinal:[r,l],ordinal:[r,l]},p={cardinal:[r,a,l],ordinal:[l]};i={_in:c,af:h,ak:h,am:h,an:h,ar:{cardinal:[n,r,a,s,o,l],ordinal:[l]},ars:{cardinal:[n,r,a,s,o,l],ordinal:[l]},as:{cardinal:[r,l],ordinal:[r,a,s,o,l]},asa:h,ast:h,az:{cardinal:[r,l],ordinal:[r,s,o,l]},be:{cardinal:[r,s,o,l],ordinal:[s,l]},bem:h,bez:h,bg:h,bho:h,bm:c,bn:{cardinal:[r,l],ordinal:[r,a,s,o,l]},bo:c,br:{cardinal:[r,a,s,o,l],ordinal:[l]},brx:h,bs:{cardinal:[r,s,l],ordinal:[l]},ca:{cardinal:[r,l],ordinal:[r,a,s,l]},ce:h,ceb:h,cgg:h,chr:h,ckb:h,cs:u,cy:{cardinal:[n,r,a,s,o,l],ordinal:[n,r,a,s,o,l]},da:h,de:h,doi:h,dsb:{cardinal:[r,a,s,l],ordinal:[l]},dv:h,dz:c,ee:h,el:h,en:{cardinal:[r,l],ordinal:[r,a,s,l]},eo:h,es:h,et:h,eu:h,fa:h,ff:h,fi:h,fil:d,fo:h,fr:{cardinal:[r,o,l],ordinal:[r,l]},fur:h,fy:h,ga:{cardinal:[r,a,s,o,l],ordinal:[r,l]},gd:{cardinal:[r,a,s,l],ordinal:[r,a,s,l]},gl:h,gsw:h,gu:{cardinal:[r,l],ordinal:[r,a,s,o,l]},guw:h,gv:{cardinal:[r,a,s,o,l],ordinal:[l]},ha:h,haw:h,he:{cardinal:[r,a,o,l],ordinal:[l]},hi:{cardinal:[r,l],ordinal:[r,a,s,o,l]},hr:{cardinal:[r,s,l],ordinal:[l]},hsb:{cardinal:[r,a,s,l],ordinal:[l]},hu:d,hy:d,ia:h,id:c,ig:c,ii:c,io:h,is:h,it:{cardinal:[r,l],ordinal:[o,l]},iu:p,iw:{cardinal:[r,a,o,l],ordinal:[l]},ja:c,jbo:c,jgo:h,ji:h,jmc:h,jv:c,jw:c,ka:{cardinal:[r,l],ordinal:[r,o,l]},kab:h,kaj:h,kcg:h,kde:c,kea:c,kk:{cardinal:[r,l],ordinal:[o,l]},kkj:h,kl:h,km:c,kn:h,ko:c,ks:h,ksb:h,ksh:{cardinal:[n,r,l],ordinal:[l]},ku:h,kw:{cardinal:[n,r,a,s,o,l],ordinal:[r,o,l]},ky:h,lag:{cardinal:[n,r,l],ordinal:[l]},lb:h,lg:h,lij:{cardinal:[r,l],ordinal:[o,l]},lkt:c,ln:h,lo:{cardinal:[l],ordinal:[r,l]},lt:u,lv:{cardinal:[n,r,l],ordinal:[l]},mas:h,mg:h,mgo:h,mk:{cardinal:[r,l],ordinal:[r,a,o,l]},ml:h,mn:h,mo:{cardinal:[r,s,l],ordinal:[r,l]},mr:{cardinal:[r,l],ordinal:[r,a,s,l]},ms:{cardinal:[l],ordinal:[r,l]},mt:u,my:c,nah:h,naq:p,nb:h,nd:h,ne:d,nl:h,nn:h,nnh:h,no:h,nqo:c,nr:h,nso:h,ny:h,nyn:h,om:h,or:{cardinal:[r,l],ordinal:[r,a,s,o,l]},os:h,osa:c,pa:h,pap:h,pcm:h,pl:u,prg:{cardinal:[n,r,l],ordinal:[l]},ps:h,pt:h,pt_PT:h,rm:h,ro:{cardinal:[r,s,l],ordinal:[r,l]},rof:h,root:c,ru:u,rwk:h,sah:c,saq:h,sat:p,sc:{cardinal:[r,l],ordinal:[o,l]},scn:{cardinal:[r,l],ordinal:[o,l]},sd:h,sdh:h,se:p,seh:h,ses:c,sg:c,sh:{cardinal:[r,s,l],ordinal:[l]},shi:{cardinal:[r,s,l],ordinal:[l]},si:h,sk:u,sl:{cardinal:[r,a,s,l],ordinal:[l]},sma:p,smi:p,smj:p,smn:p,sms:p,sn:h,so:h,sq:{cardinal:[r,l],ordinal:[r,o,l]},sr:{cardinal:[r,s,l],ordinal:[l]},ss:h,ssy:h,st:h,su:c,sv:d,sw:h,syr:h,ta:h,te:h,teo:h,th:c,ti:h,tig:h,tk:{cardinal:[r,l],ordinal:[s,l]},tl:d,tn:h,to:c,tr:h,ts:h,tzm:h,ug:h,uk:{cardinal:[r,s,o,l],ordinal:[s,l]},ur:h,uz:h,ve:h,vi:{cardinal:[l],ordinal:[r,l]},vo:h,vun:h,wa:h,wae:h,wo:c,xh:h,xog:h,yi:h,yo:c,yue:c,zh:c,zu:h},Object.defineProperty(i,"__esModule",{value:!0}),e.exports=i}(b);var _=l(b.exports),w=Object.freeze(Object.assign(Object.create(null),b.exports,{default:_})),S=y||x,M=_||w,E="object"===("undefined"==typeof Intl?"undefined":o(Intl))&&Intl.NumberFormat||s.default,T=function(e){return"in"===e?"_in":"pt-PT"===e?"pt_PT":e},A=a.default(E,(function(e){return S[T(e)]}),(function(e,t){return M[T(e)][t?"ordinal":"cardinal"]}));t.exports=A})),XG=Q((e=>{"use strict";var t,i,n=(t=qG())&&"object"==typeof t&&"default"in t?t:{default:t};"undefined"==typeof Intl?("undefined"!=typeof global?global.Intl={PluralRules:n.default}:"undefined"!=typeof window?window.Intl={PluralRules:n.default}:e.Intl={PluralRules:n.default},n.default.polyfill=!0):Intl.PluralRules?(i=["en","es","ru","zh"],Intl.PluralRules.supportedLocalesOf(i).length{var i=function(e){return e&&e.Math==Math&&e};t.exports=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof global&&global)||function(){return this}()||Function("return this")()})),Yt=Q(((e,t)=>{t.exports=function(e){try{return!!e()}catch(e){return!0}}})),rr=Q(((e,t)=>{var i=Yt();t.exports=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))})),Pg=Q(((e,t)=>{var i=Yt();t.exports=!i((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))})),wr=Q(((e,t)=>{var i=Pg(),n=Function.prototype.call;t.exports=i?n.bind(n):function(){return n.apply(n,arguments)}})),x1=Q((e=>{"use strict";var t={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,n=i&&!t.call({1:2},1);e.f=n?function(e){var t=i(this,e);return!!t&&t.enumerable}:t})),Oo=Q(((e,t)=>{t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}})),sn=Q(((e,t)=>{var i=Pg(),n=Function.prototype,r=n.call,a=i&&n.bind.bind(r,r);t.exports=i?a:function(e){return function(){return r.apply(e,arguments)}}})),Ra=Q(((e,t)=>{var i=sn(),n=i({}.toString),r=i("".slice);t.exports=function(e){return r(n(e),8,-1)}})),Mp=Q(((e,t)=>{var i=sn(),n=Yt(),r=Ra(),a=Object,s=i("".split);t.exports=n((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"==r(e)?s(e,""):a(e)}:a})),Aa=Q(((e,t)=>{t.exports=function(e){return null==e}})),xs=Q(((e,t)=>{var i=Aa(),n=TypeError;t.exports=function(e){if(i(e))throw n("Can't call method on "+e);return e}})),Ca=Q(((e,t)=>{var i=Mp(),n=xs();t.exports=function(e){return i(n(e))}})),p3=Q(((e,t)=>{var i="object"==typeof document&&document.all,n=void 0===i&&void 0!==i;t.exports={all:i,IS_HTMLDDA:n}})),Vr=Q(((e,t)=>{var i=p3(),n=i.all;t.exports=i.IS_HTMLDDA?function(e){return"function"==typeof e||e===n}:function(e){return"function"==typeof e}})),Cr=Q(((e,t)=>{var i=Vr(),n=p3(),r=n.all;t.exports=n.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:i(e)||e===r}:function(e){return"object"==typeof e?null!==e:i(e)}})),qi=Q(((e,t)=>{var i=In(),n=Vr();t.exports=function(e,t){return arguments.length<2?function(e){return n(e)?e:void 0}(i[e]):i[e]&&i[e][t]}})),ko=Q(((e,t)=>{var i=sn();t.exports=i({}.isPrototypeOf)})),ru=Q(((e,t)=>{t.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""})),iu=Q(((e,t)=>{var i,n,r=In(),a=ru(),s=r.process,o=r.Deno,l=s&&s.versions||o&&o.version,h=l&&l.v8;h&&(n=(i=h.split("."))[0]>0&&i[0]<4?1:+(i[0]+i[1])),!n&&a&&(!(i=a.match(/Edge\/(\d+)/))||i[1]>=74)&&(i=a.match(/Chrome\/(\d+)/))&&(n=+i[1]),t.exports=n})),Rp=Q(((e,t)=>{var i=iu(),n=Yt();t.exports=!!Object.getOwnPropertySymbols&&!n((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&i&&i<41}))})),v3=Q(((e,t)=>{var i=Rp();t.exports=i&&!Symbol.sham&&"symbol"==typeof Symbol.iterator})),Od=Q(((e,t)=>{var i=qi(),n=Vr(),r=ko(),a=v3(),s=Object;t.exports=a?function(e){return"symbol"==typeof e}:function(e){var t=i("Symbol");return n(t)&&r(t.prototype,s(e))}})),kd=Q(((e,t)=>{var i=String;t.exports=function(e){try{return i(e)}catch(e){return"Object"}}})),Ps=Q(((e,t)=>{var i=Vr(),n=kd(),r=TypeError;t.exports=function(e){if(i(e))return e;throw r(n(e)+" is not a function")}})),su=Q(((e,t)=>{var i=Ps(),n=Aa();t.exports=function(e,t){var r=e[t];return n(r)?void 0:i(r)}})),E3=Q(((e,t)=>{var i=wr(),n=Vr(),r=Cr(),a=TypeError;t.exports=function(e,t){var s,o;if("string"===t&&n(s=e.toString)&&!r(o=i(s,e))||n(s=e.valueOf)&&!r(o=i(s,e))||"string"!==t&&n(s=e.toString)&&!r(o=i(s,e)))return o;throw a("Can't convert object to primitive value")}})),ss=Q(((e,t)=>{t.exports=!1})),$T=Q(((e,t)=>{var i=In(),n=Object.defineProperty;t.exports=function(e,t){try{n(i,e,{value:t,configurable:!0,writable:!0})}catch(n){i[e]=t}return t}})),ZT=Q(((e,t)=>{var i=In(),n=$T(),r="__core-js_shared__",a=i[r]||n(r,{});t.exports=a})),Ap=Q(((e,t)=>{var i=ss(),n=ZT();(t.exports=function(e,t){return n[e]||(n[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.27.2",mode:i?"pure":"global",copyright:"\xa9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.27.2/LICENSE",source:"https://github.com/zloirock/core-js"})})),ci=Q(((e,t)=>{var i=xs(),n=Object;t.exports=function(e){return n(i(e))}})),Yr=Q(((e,t)=>{var i=sn(),n=ci(),r=i({}.hasOwnProperty);t.exports=Object.hasOwn||function(e,t){return r(n(e),t)}})),Cp=Q(((e,t)=>{var i=sn(),n=0,r=Math.random(),a=i(1..toString);t.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++n+r,36)}})),kr=Q(((e,t)=>{var i=In(),n=Ap(),r=Yr(),a=Cp(),s=Rp(),o=v3(),l=i.Symbol,h=n("wks"),c=o?l.for||l:l&&l.withoutSetter||a;t.exports=function(e){return r(h,e)||(h[e]=s&&r(l,e)?l[e]:c("Symbol."+e)),h[e]}})),b1=Q(((e,t)=>{var i=wr(),n=Cr(),r=Od(),a=su(),s=E3(),o=kr(),l=TypeError,h=o("toPrimitive");t.exports=function(e,t){if(!n(e)||r(e))return e;var o,c=a(e,h);if(c){if(void 0===t&&(t="default"),o=i(c,e,t),!n(o)||r(o))return o;throw l("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}})),gh=Q(((e,t)=>{var i=b1(),n=Od();t.exports=function(e){var t=i(e,"string");return n(t)?t:t+""}})),E1=Q(((e,t)=>{var i=In(),n=Cr(),r=i.document,a=n(r)&&n(r.createElement);t.exports=function(e){return a?r.createElement(e):{}}})),w3=Q(((e,t)=>{var i=rr(),n=Yt(),r=E1();t.exports=!i&&!n((function(){return 7!=Object.defineProperty(r("div"),"a",{get:function(){return 7}}).a}))})),Ks=Q((e=>{var t=rr(),i=wr(),n=x1(),r=Oo(),a=Ca(),s=gh(),o=Yr(),l=w3(),h=Object.getOwnPropertyDescriptor;e.f=t?h:function(e,t){if(e=a(e),t=s(t),l)try{return h(e,t)}catch(e){}if(o(e,t))return r(!i(n.f,e,t),e[t])}})),S3=Q(((e,t)=>{var i=rr(),n=Yt();t.exports=i&&n((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))})),br=Q(((e,t)=>{var i=Cr(),n=String,r=TypeError;t.exports=function(e){if(i(e))return e;throw r(n(e)+" is not an object")}})),fi=Q((e=>{var t=rr(),i=w3(),n=S3(),r=br(),a=gh(),s=TypeError,o=Object.defineProperty,l=Object.getOwnPropertyDescriptor,h="enumerable",c="configurable",u="writable";e.f=t?n?function(e,t,i){if(r(e),t=a(t),r(i),"function"==typeof e&&"prototype"===t&&"value"in i&&u in i&&!i[u]){var n=l(e,t);n&&n[u]&&(e[t]=i.value,i={configurable:c in i?i[c]:n[c],enumerable:h in i?i[h]:n[h],writable:!1})}return o(e,t,i)}:o:function(e,t,n){if(r(e),t=a(t),r(n),i)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw s("Accessors not supported");return"value"in n&&(e[t]=n.value),e}})),ca=Q(((e,t)=>{var i=rr(),n=fi(),r=Oo();t.exports=i?function(e,t,i){return n.f(e,t,r(1,i))}:function(e,t,i){return e[t]=i,e}})),Pp=Q(((e,t)=>{var i=rr(),n=Yr(),r=Function.prototype,a=i&&Object.getOwnPropertyDescriptor,s=n(r,"name"),o=s&&"something"===function(){}.name,l=s&&(!i||i&&a(r,"name").configurable);t.exports={EXISTS:s,PROPER:o,CONFIGURABLE:l}})),JT=Q(((e,t)=>{var i=sn(),n=Vr(),r=ZT(),a=i(Function.toString);n(r.inspectSource)||(r.inspectSource=function(e){return a(e)}),t.exports=r.inspectSource})),D3=Q(((e,t)=>{var i=In(),n=Vr(),r=i.WeakMap;t.exports=n(r)&&/native code/.test(String(r))})),_1=Q(((e,t)=>{var i=Ap(),n=Cp(),r=i("keys");t.exports=function(e){return r[e]||(r[e]=n(e))}})),Lg=Q(((e,t)=>{t.exports={}})),bs=Q(((e,t)=>{var i,n,r,a,s,o=D3(),l=In(),h=Cr(),c=ca(),u=Yr(),d=ZT(),p=_1(),f=Lg(),m="Object already initialized",g=l.TypeError,v=l.WeakMap;o||d.state?((a=d.state||(d.state=new v)).get=a.get,a.has=a.has,a.set=a.set,i=function(e,t){if(a.has(e))throw g(m);return t.facade=e,a.set(e,t),t},n=function(e){return a.get(e)||{}},r=function(e){return a.has(e)}):(f[s=p("state")]=!0,i=function(e,t){if(u(e,s))throw g(m);return t.facade=e,c(e,s,t),t},n=function(e){return u(e,s)?e[s]:{}},r=function(e){return u(e,s)}),t.exports={set:i,get:n,has:r,enforce:function(e){return r(e)?n(e):i(e,{})},getterFor:function(e){return function(t){var i;if(!h(t)||(i=n(t)).type!==e)throw g("Incompatible receiver, "+e+" required");return i}}}})),rw=Q(((e,t)=>{var i=sn(),n=Yt(),r=Vr(),a=Yr(),s=rr(),o=Pp().CONFIGURABLE,l=JT(),h=bs(),c=h.enforce,u=h.get,d=String,p=Object.defineProperty,f=i("".slice),m=i("".replace),g=i([].join),v=s&&!n((function(){return 8!==p((function(){}),"length",{value:8}).length})),y=String(String).split("String"),x=t.exports=function(e,t,i){"Symbol("===f(d(t),0,7)&&(t="["+m(d(t),/^Symbol\(([^)]*)\)/,"$1")+"]"),i&&i.getter&&(t="get "+t),i&&i.setter&&(t="set "+t),(!a(e,"name")||o&&e.name!==t)&&(s?p(e,"name",{value:t,configurable:!0}):e.name=t),v&&i&&a(i,"arity")&&e.length!==i.arity&&p(e,"length",{value:i.arity});try{i&&a(i,"constructor")&&i.constructor?s&&p(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var n=c(e);return a(n,"source")||(n.source=g(y,"string"==typeof t?t:"")),e};Function.prototype.toString=x((function(){return r(this)&&u(this).source||l(this)}),"toString")})),$i=Q(((e,t)=>{var i=Vr(),n=fi(),r=rw(),a=$T();t.exports=function(e,t,s,o){o||(o={});var l=o.enumerable,h=void 0!==o.name?o.name:t;if(i(s)&&r(s,h,o),o.global)l?e[t]=s:a(t,s);else{try{o.unsafe?e[t]&&(l=!0):delete e[t]}catch(e){}l?e[t]=s:n.f(e,t,{value:s,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return e}})),U3=Q(((e,t)=>{var i=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(e){var t=+e;return(t>0?n:i)(t)}})),Is=Q(((e,t)=>{var i=U3();t.exports=function(e){var t=+e;return t!=t||0===t?0:i(t)}})),au=Q(((e,t)=>{var i=Is(),n=Math.max,r=Math.min;t.exports=function(e,t){var a=i(e);return a<0?n(a+t,0):r(a,t)}})),Qa=Q(((e,t)=>{var i=Is(),n=Math.min;t.exports=function(e){return e>0?n(i(e),9007199254740991):0}})),wi=Q(((e,t)=>{var i=Qa();t.exports=function(e){return i(e.length)}})),Dg=Q(((e,t)=>{var i=Ca(),n=au(),r=wi(),a=function(e){return function(t,a,s){var o,l=i(t),h=r(l),c=n(s,h);if(e&&a!=a){for(;h>c;)if((o=l[c++])!=o)return!0}else for(;h>c;c++)if((e||c in l)&&l[c]===a)return e||c||0;return!e&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}})),V3=Q(((e,t)=>{var i=sn(),n=Yr(),r=Ca(),a=Dg().indexOf,s=Lg(),o=i([].push);t.exports=function(e,t){var i,l=r(e),h=0,c=[];for(i in l)!n(s,i)&&n(l,i)&&o(c,i);for(;t.length>h;)n(l,i=t[h++])&&(~a(c,i)||o(c,i));return c}})),iw=Q(((e,t)=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]})),vh=Q((e=>{var t=V3(),i=iw().concat("length","prototype");e.f=Object.getOwnPropertyNames||function(e){return t(e,i)}})),w1=Q((e=>{e.f=Object.getOwnPropertySymbols})),sw=Q(((e,t)=>{var i=qi(),n=sn(),r=vh(),a=w1(),s=br(),o=n([].concat);t.exports=i("Reflect","ownKeys")||function(e){var t=r.f(s(e)),i=a.f;return i?o(t,i(e)):t}})),S1=Q(((e,t)=>{var i=Yr(),n=sw(),r=Ks(),a=fi();t.exports=function(e,t,s){for(var o=n(t),l=a.f,h=r.f,c=0;c{var i=Yt(),n=Vr(),r=/#|\.prototype\./,a=function(e,t){var r=o[s(e)];return r==h||r!=l&&(n(t)?i(t):!!t)},s=a.normalize=function(e){return String(e).replace(r,".").toLowerCase()},o=a.data={},l=a.NATIVE="N",h=a.POLYFILL="P";t.exports=a})),rt=Q(((e,t)=>{var i=In(),n=Ks().f,r=ca(),a=$i(),s=$T(),o=S1(),l=Og();t.exports=function(e,t){var h,c,u,d,p,f=e.target,m=e.global,g=e.stat;if(h=m?i:g?i[f]||s(f,{}):(i[f]||{}).prototype)for(c in t){if(d=t[c],u=e.dontCallGetSet?(p=n(h,c))&&p.value:h[c],!l(m?c:f+(g?".":"#")+c,e.forced)&&void 0!==u){if(typeof d==typeof u)continue;o(d,u)}(e.sham||u&&u.sham)&&r(d,"sham",!0),a(h,c,d,e)}}})),aw=Q(((e,t)=>{var i={};i[kr()("toStringTag")]="z",t.exports="[object z]"===String(i)})),oc=Q(((e,t)=>{var i=aw(),n=Vr(),r=Ra(),a=kr()("toStringTag"),s=Object,o="Arguments"==r(function(){return arguments}());t.exports=i?r:function(e){var t,i,l;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=function(e,t){try{return e[t]}catch(e){}}(t=s(e),a))?i:o?r(t):"Object"==(l=r(t))&&n(t.callee)?"Arguments":l}})),Fr=Q(((e,t)=>{var i=oc(),n=String;t.exports=function(e){if("Symbol"===i(e))throw TypeError("Cannot convert a Symbol value to a string");return n(e)}})),kg=Q(((e,t)=>{var i=V3(),n=iw();t.exports=Object.keys||function(e){return i(e,n)}})),lw=Q((e=>{var t=rr(),i=S3(),n=fi(),r=br(),a=Ca(),s=kg();e.f=t&&!i?Object.defineProperties:function(e,t){r(e);for(var i,o=a(t),l=s(t),h=l.length,c=0;h>c;)n.f(e,i=l[c++],o[i]);return e}})),G3=Q(((e,t)=>{var i=qi();t.exports=i("document","documentElement")})),eo=Q(((e,t)=>{var i,n=br(),r=lw(),a=iw(),s=Lg(),o=G3(),l=E1(),h=_1(),c="prototype",u="script",d=h("IE_PROTO"),p=function(){},f=function(e){return"<"+u+">"+e+""},m=function(e){e.write(f("")),e.close();var t=e.parentWindow.Object;return e=null,t},g=function(){try{i=new ActiveXObject("htmlfile")}catch(e){}g="undefined"!=typeof document?document.domain&&i?m(i):function(){var e,t=l("iframe"),i="java"+u+":";return t.style.display="none",o.appendChild(t),t.src=String(i),(e=t.contentWindow.document).open(),e.write(f("document.F=Object")),e.close(),e.F}():m(i);for(var e=a.length;e--;)delete g[c][a[e]];return g()};s[d]=!0,t.exports=Object.create||function(e,t){var i;return null!==e?(p[c]=n(e),i=new p,p[c]=null,i[d]=e):i=g(),void 0===t?i:r.f(i,t)}})),ou=Q(((e,t)=>{"use strict";var i=gh(),n=fi(),r=Oo();t.exports=function(e,t,a){var s=i(t);s in e?n.f(e,s,r(0,a)):e[s]=a}})),Fg=Q(((e,t)=>{var i=au(),n=wi(),r=ou(),a=Array,s=Math.max;t.exports=function(e,t,o){for(var l=n(e),h=i(t,l),c=i(void 0===o?l:o,l),u=a(s(c-h,0)),d=0;h{var i=Ra(),n=Ca(),r=vh().f,a=Fg(),s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(e){return s&&"Window"==i(e)?function(e){try{return r(e)}catch(e){return a(s)}}(e):r(n(e))}})),X3=Q((e=>{var t=kr();e.f=t})),dw=Q(((e,t)=>{var i=In();t.exports=i})),Pa=Q(((e,t)=>{var i=dw(),n=Yr(),r=X3(),a=fi().f;t.exports=function(e){var t=i.Symbol||(i.Symbol={});n(t,e)||a(t,e,{value:r.f(e)})}})),Y3=Q(((e,t)=>{var i=wr(),n=qi(),r=kr(),a=$i();t.exports=function(){var e=n("Symbol"),t=e&&e.prototype,s=t&&t.valueOf,o=r("toPrimitive");t&&!t[o]&&a(t,o,(function(e){return i(s,this)}),{arity:1})}})),to=Q(((e,t)=>{var i=fi().f,n=Yr(),r=kr()("toStringTag");t.exports=function(e,t,a){e&&!a&&(e=e.prototype),e&&!n(e,r)&&i(e,r,{configurable:!0,value:t})}})),yh=Q(((e,t)=>{var i=Ra(),n=sn();t.exports=function(e){if("Function"===i(e))return n(e)}})),dl=Q(((e,t)=>{var i=yh(),n=Ps(),r=Pg(),a=i(i.bind);t.exports=function(e,t){return n(e),void 0===t?e:r?a(e,t):function(){return e.apply(t,arguments)}}})),xh=Q(((e,t)=>{var i=Ra();t.exports=Array.isArray||function(e){return"Array"==i(e)}})),Lp=Q(((e,t)=>{var i=sn(),n=Yt(),r=Vr(),a=oc(),s=qi(),o=JT(),l=function(){},h=[],c=s("Reflect","construct"),u=/^\s*(?:class|function)\b/,d=i(u.exec),p=!u.exec(l),f=function(e){if(!r(e))return!1;try{return c(l,h,e),!0}catch(e){return!1}},m=function(e){if(!r(e))return!1;switch(a(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!d(u,o(e))}catch(e){return!0}};m.sham=!0,t.exports=!c||n((function(){var e;return f(f.call)||!f(Object)||!f((function(){e=!0}))||e}))?m:f})),wq=Q(((e,t)=>{var i=xh(),n=Lp(),r=Cr(),a=kr()("species"),s=Array;t.exports=function(e){var t;return i(e)&&(t=e.constructor,(n(t)&&(t===s||i(t.prototype))||r(t)&&null===(t=t[a]))&&(t=void 0)),void 0===t?s:t}})),Ng=Q(((e,t)=>{var i=wq();t.exports=function(e,t){return new(i(e))(0===t?0:t)}})),Us=Q(((e,t)=>{var i=dl(),n=sn(),r=Mp(),a=ci(),s=wi(),o=Ng(),l=n([].push),h=function(e){var t=1==e,n=2==e,h=3==e,c=4==e,u=6==e,d=7==e,p=5==e||u;return function(f,m,g,v){for(var y,x,b=a(f),_=r(b),w=i(m,g),S=s(_),M=0,E=v||o,T=t?E(f,S):n||d?E(f,0):void 0;S>M;M++)if((p||M in _)&&(x=w(y=_[M],M,b),e))if(t)T[M]=x;else if(x)switch(e){case 3:return!0;case 5:return y;case 6:return M;case 2:l(T,y)}else switch(e){case 4:return!1;case 7:l(T,y)}return u?-1:h||c?c:T}};t.exports={forEach:h(0),map:h(1),filter:h(2),some:h(3),every:h(4),find:h(5),findIndex:h(6),filterReject:h(7)}})),Gq=Q((()=>{"use strict";var e=rt(),t=In(),i=wr(),n=sn(),r=ss(),a=rr(),s=Rp(),o=Yt(),l=Yr(),h=ko(),c=br(),u=Ca(),d=gh(),p=Fr(),f=Oo(),m=eo(),g=kg(),v=vh(),y=hw(),x=w1(),b=Ks(),_=fi(),w=lw(),S=x1(),M=$i(),E=Ap(),T=_1(),A=Lg(),C=Cp(),P=kr(),R=X3(),D=Pa(),L=Y3(),I=to(),O=bs(),k=Us().forEach,N=T("hidden"),U="Symbol",F="prototype",B=O.set,z=O.getterFor(U),H=Object[F],V=t.Symbol,j=V&&V[F],G=t.TypeError,W=t.QObject,X=b.f,Y=_.f,q=y.f,Z=S.f,Q=n([].push),J=E("symbols"),K=E("op-symbols"),$=E("wks"),ee=!W||!W[F]||!W[F].findChild,te=a&&o((function(){return 7!=m(Y({},"a",{get:function(){return Y(this,"a",{value:7}).a}})).a}))?function(e,t,i){var n=X(H,t);n&&delete H[t],Y(e,t,i),n&&e!==H&&Y(H,t,n)}:Y,ie=function(e,t){var i=J[e]=m(j);return B(i,{type:U,tag:e,description:t}),a||(i.description=t),i},ne=function(e,t,i){e===H&&ne(K,t,i),c(e);var n=d(t);return c(i),l(J,n)?(i.enumerable?(l(e,N)&&e[N][n]&&(e[N][n]=!1),i=m(i,{enumerable:f(0,!1)})):(l(e,N)||Y(e,N,f(1,{})),e[N][n]=!0),te(e,n,i)):Y(e,n,i)},re=function(e,t){c(e);var n=u(t),r=g(n).concat(le(n));return k(r,(function(t){(!a||i(ae,n,t))&&ne(e,t,n[t])})),e},ae=function(e){var t=d(e),n=i(Z,this,t);return!(this===H&&l(J,t)&&!l(K,t))&&(!(n||!l(this,t)||!l(J,t)||l(this,N)&&this[N][t])||n)},se=function(e,t){var i=u(e),n=d(t);if(i!==H||!l(J,n)||l(K,n)){var r=X(i,n);return r&&l(J,n)&&!(l(i,N)&&i[N][n])&&(r.enumerable=!0),r}},oe=function(e){var t=q(u(e)),i=[];return k(t,(function(e){!l(J,e)&&!l(A,e)&&Q(i,e)})),i},le=function(e){var t=e===H,i=q(t?K:u(e)),n=[];return k(i,(function(e){l(J,e)&&(!t||l(H,e))&&Q(n,J[e])})),n};s||(M(j=(V=function(){if(h(j,this))throw G("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?p(arguments[0]):void 0,t=C(e),n=function(e){this===H&&i(n,K,e),l(this,N)&&l(this[N],t)&&(this[N][t]=!1),te(this,t,f(1,e))};return a&&ee&&te(H,t,{configurable:!0,set:n}),ie(t,e)})[F],"toString",(function(){return z(this).tag})),M(V,"withoutSetter",(function(e){return ie(C(e),e)})),S.f=ae,_.f=ne,w.f=re,b.f=se,v.f=y.f=oe,x.f=le,R.f=function(e){return ie(P(e),e)},a&&(Y(j,"description",{configurable:!0,get:function(){return z(this).description}}),r||M(H,"propertyIsEnumerable",ae,{unsafe:!0}))),e({global:!0,constructor:!0,wrap:!0,forced:!s,sham:!s},{Symbol:V}),k(g($),(function(e){D(e)})),e({target:U,stat:!0,forced:!s},{useSetter:function(){ee=!0},useSimple:function(){ee=!1}}),e({target:"Object",stat:!0,forced:!s,sham:!a},{create:function(e,t){return void 0===t?m(e):re(m(e),t)},defineProperty:ne,defineProperties:re,getOwnPropertyDescriptor:se}),e({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:oe}),L(),I(V,U),A[N]=!0})),cL=Q(((e,t)=>{var i=Rp();t.exports=i&&!!Symbol.for&&!!Symbol.keyFor})),jq=Q((()=>{var e=rt(),t=qi(),i=Yr(),n=Fr(),r=Ap(),a=cL(),s=r("string-to-symbol-registry"),o=r("symbol-to-string-registry");e({target:"Symbol",stat:!0,forced:!a},{for:function(e){var r=n(e);if(i(s,r))return s[r];var a=t("Symbol")(r);return s[r]=a,o[a]=r,a}})})),Yq=Q((()=>{var e=rt(),t=Yr(),i=Od(),n=kd(),r=Ap(),a=cL(),s=r("symbol-to-string-registry");e({target:"Symbol",stat:!0,forced:!a},{keyFor:function(e){if(!i(e))throw TypeError(n(e)+" is not a symbol");if(t(s,e))return s[e]}})})),Fo=Q(((e,t)=>{var i=Pg(),n=Function.prototype,r=n.apply,a=n.call;t.exports="object"==typeof Reflect&&Reflect.apply||(i?a.bind(r):function(){return a.apply(r,arguments)})})),Bd=Q(((e,t)=>{var i=sn();t.exports=i([].slice)})),hL=Q((()=>{var e=rt(),t=qi(),i=Fo(),n=wr(),r=sn(),a=Yt(),s=xh(),o=Vr(),l=Cr(),h=Od(),c=Bd(),u=Rp(),d=t("JSON","stringify"),p=r(/./.exec),f=r("".charAt),m=r("".charCodeAt),g=r("".replace),v=r(1..toString),y=/[\uD800-\uDFFF]/g,x=/^[\uD800-\uDBFF]$/,b=/^[\uDC00-\uDFFF]$/,_=!u||a((function(){var e=t("Symbol")();return"[null]"!=d([e])||"{}"!=d({a:e})||"{}"!=d(Object(e))})),w=a((function(){return'"\\udf06\\ud834"'!==d("\udf06\ud834")||'"\\udead"'!==d("\udead")})),S=function(e,t){var r=c(arguments),a=t;if((l(t)||void 0!==e)&&!h(e))return s(t)||(t=function(e,t){if(o(a)&&(t=n(a,this,e,t)),!h(t))return t}),r[1]=t,i(d,null,r)},M=function(e,t,i){var n=f(i,t-1),r=f(i,t+1);return p(x,e)&&!p(b,r)||p(b,e)&&!p(x,n)?"\\u"+v(m(e,0),16):e};d&&e({target:"JSON",stat:!0,arity:3,forced:_||w},{stringify:function(e,t,n){var r=c(arguments),a=i(_?S:d,null,r);return w&&"string"==typeof a?g(a,y,M):a}})})),hW=Q((()=>{var e=rt(),t=Rp(),i=Yt(),n=w1(),r=ci();e({target:"Object",stat:!0,forced:!t||i((function(){n.f(1)}))},{getOwnPropertySymbols:function(e){var t=n.f;return t?t(r(e)):[]}})})),dW=Q((()=>{Gq(),jq(),Yq(),hL(),hW()})),xW=Q((()=>{"use strict";var e,t,i,n,r,a,s,o,l=rt(),h=rr(),c=In(),u=sn(),d=Yr(),p=Vr(),f=ko(),m=Fr(),g=fi().f,v=S1(),y=c.Symbol,x=y&&y.prototype;h&&p(y)&&(!("description"in x)||void 0!==y().description)&&(e={},v(t=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:m(arguments[0]),i=f(x,this)?new y(t):void 0===t?y():y(t);return""===t&&(e[i]=!0),i},y),t.prototype=x,x.constructor=t,i="Symbol(test)"==String(y("test")),n=u(x.valueOf),r=u(x.toString),a=/^Symbol\((.*)\)[^)]+$/,s=u("".replace),o=u("".slice),g(x,"description",{configurable:!0,get:function(){var t=n(this);if(d(e,t))return"";var l=r(t),h=i?o(l,7,-1):s(l,a,"$1");return""===h?void 0:h}}),l({global:!0,constructor:!0,forced:!0},{Symbol:t}))})),bW=Q((()=>{Pa()("asyncIterator")})),EW=Q((()=>{Pa()("hasInstance")})),_W=Q((()=>{Pa()("isConcatSpreadable")})),TW=Q((()=>{Pa()("iterator")})),wW=Q((()=>{Pa()("match")})),SW=Q((()=>{Pa()("matchAll")})),MW=Q((()=>{Pa()("replace")})),RW=Q((()=>{Pa()("search")})),AW=Q((()=>{Pa()("species")})),CW=Q((()=>{Pa()("split")})),PW=Q((()=>{var e=Pa(),t=Y3();e("toPrimitive"),t()})),IW=Q((()=>{var e=qi(),t=Pa(),i=to();t("toStringTag"),i(e("Symbol"),"Symbol")})),LW=Q((()=>{Pa()("unscopables")})),fL=Q(((e,t)=>{var i=Vr(),n=String,r=TypeError;t.exports=function(e){if("object"==typeof e||i(e))return e;throw r("Can't set "+n(e)+" as a prototype")}})),lc=Q(((e,t)=>{var i=sn(),n=br(),r=fL();t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,a={};try{(e=i(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(a,[]),t=a instanceof Array}catch(e){}return function(i,a){return n(i),r(a),t?e(i,a):i.__proto__=a,i}}():void 0)})),pL=Q(((e,t)=>{var i=fi().f;t.exports=function(e,t,n){n in e||i(e,n,{configurable:!0,get:function(){return t[n]},set:function(e){t[n]=e}})}})),kp=Q(((e,t)=>{var i=Vr(),n=Cr(),r=lc();t.exports=function(e,t,a){var s,o;return r&&i(s=t.constructor)&&s!==a&&n(o=s.prototype)&&o!==a.prototype&&r(e,o),e}})),Hg=Q(((e,t)=>{var i=Fr();t.exports=function(e,t){return void 0===e?arguments.length<2?"":t:i(e)}})),mL=Q(((e,t)=>{var i=Cr(),n=ca();t.exports=function(e,t){i(t)&&"cause"in t&&n(e,"cause",t.cause)}})),bw=Q(((e,t)=>{var i=sn(),n=Error,r=i("".replace),a=String(n("zxcasd").stack),s=/\n\s*at [^:]*:[^\n]*/,o=s.test(a);t.exports=function(e,t){if(o&&"string"==typeof e&&!n.prepareStackTrace)for(;t--;)e=r(e,s,"");return e}})),gL=Q(((e,t)=>{var i=Yt(),n=Oo();t.exports=!i((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",n(1,7)),7!==e.stack)}))})),vL=Q(((e,t)=>{var i=ca(),n=bw(),r=gL(),a=Error.captureStackTrace;t.exports=function(e,t,s,o){r&&(a?a(e,t):i(e,"stack",n(s,o)))}})),yL=Q(((e,t)=>{"use strict";var i=qi(),n=Yr(),r=ca(),a=ko(),s=lc(),o=S1(),l=pL(),h=kp(),c=Hg(),u=mL(),d=vL(),p=rr(),f=ss();t.exports=function(e,t,m,g){var v="stackTraceLimit",y=g?2:1,x=e.split("."),b=x[x.length-1],_=i.apply(null,x);if(_){var w=_.prototype;if(!f&&n(w,"cause")&&delete w.cause,!m)return _;var S=i("Error"),M=t((function(e,t){var i=c(g?t:e,void 0),n=g?new _(e):new _;return void 0!==i&&r(n,"message",i),d(n,M,n.stack,2),this&&a(w,this)&&h(n,this,M),arguments.length>y&&u(n,arguments[y]),n}));if(M.prototype=w,"Error"!==b?s?s(M,S):o(M,S,{name:!0}):p&&v in _&&(l(M,_,v),l(M,_,"prepareStackTrace")),o(M,_),!f)try{w.name!==b&&r(w,"name",b),w.constructor=M}catch(e){}return M}}})),nj=Q((()=>{var e=rt(),t=In(),i=Fo(),n=yL(),r="WebAssembly",a=t[r],s=7!==Error("e",{cause:7}).cause,o=function(t,i){var r={};r[t]=n(t,i,s),e({global:!0,constructor:!0,arity:1,forced:s},r)},l=function(t,i){if(a&&a[t]){var o={};o[t]=n(r+"."+t,i,s),e({target:r,stat:!0,constructor:!0,arity:1,forced:s},o)}};o("Error",(function(e){return function(t){return i(e,this,arguments)}})),o("EvalError",(function(e){return function(t){return i(e,this,arguments)}})),o("RangeError",(function(e){return function(t){return i(e,this,arguments)}})),o("ReferenceError",(function(e){return function(t){return i(e,this,arguments)}})),o("SyntaxError",(function(e){return function(t){return i(e,this,arguments)}})),o("TypeError",(function(e){return function(t){return i(e,this,arguments)}})),o("URIError",(function(e){return function(t){return i(e,this,arguments)}})),l("CompileError",(function(e){return function(t){return i(e,this,arguments)}})),l("LinkError",(function(e){return function(t){return i(e,this,arguments)}})),l("RuntimeError",(function(e){return function(t){return i(e,this,arguments)}}))})),EL=Q(((e,t)=>{"use strict";var i=rr(),n=Yt(),r=br(),a=eo(),s=Hg(),o=Error.prototype.toString,l=n((function(){if(i){var e=a(Object.defineProperty({},"name",{get:function(){return this===e}}));if("true"!==o.call(e))return!0}return"2: 1"!==o.call({message:1,name:2})||"Error"!==o.call({})}));t.exports=l?function(){var e=r(this),t=s(e.name,"Error"),i=s(e.message);return t?i?t+": "+i:t:i}:o})),oj=Q((()=>{var e=$i(),t=EL(),i=Error.prototype;i.toString!==t&&e(i,"toString",t)})),Tw=Q(((e,t)=>{var i=Yt();t.exports=!i((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))})),No=Q(((e,t)=>{var i=Yr(),n=Vr(),r=ci(),a=_1(),s=Tw(),o=a("IE_PROTO"),l=Object,h=l.prototype;t.exports=s?l.getPrototypeOf:function(e){var t=r(e);if(i(t,o))return t[o];var a=t.constructor;return n(a)&&t instanceof a?a.prototype:t instanceof l?h:null}})),Vg=Q(((e,t)=>{t.exports={}})),ww=Q(((e,t)=>{var i=kr(),n=Vg(),r=i("iterator"),a=Array.prototype;t.exports=function(e){return void 0!==e&&(n.Array===e||a[r]===e)}})),zg=Q(((e,t)=>{var i=oc(),n=su(),r=Aa(),a=Vg(),s=kr()("iterator");t.exports=function(e){if(!r(e))return n(e,s)||n(e,"@@iterator")||a[i(e)]}})),O1=Q(((e,t)=>{var i=wr(),n=Ps(),r=br(),a=kd(),s=zg(),o=TypeError;t.exports=function(e,t){var l=arguments.length<2?s(e):t;if(n(l))return r(i(l,e));throw o(a(e)+" is not iterable")}})),TL=Q(((e,t)=>{var i=wr(),n=br(),r=su();t.exports=function(e,t,a){var s,o;n(e);try{if(!(s=r(e,"return"))){if("throw"===t)throw a;return a}s=i(s,e)}catch(e){o=!0,s=e}if("throw"===t)throw a;if(o)throw s;return n(s),a}})),cc=Q(((e,t)=>{var i=dl(),n=wr(),r=br(),a=kd(),s=ww(),o=wi(),l=ko(),h=O1(),c=zg(),u=TL(),d=TypeError,p=function(e,t){this.stopped=e,this.result=t},f=p.prototype;t.exports=function(e,t,m){var g,v,y,x,b,_,w,S=m&&m.that,M=!(!m||!m.AS_ENTRIES),E=!(!m||!m.IS_RECORD),T=!(!m||!m.IS_ITERATOR),A=!(!m||!m.INTERRUPTED),C=i(t,S),P=function(e){return g&&u(g,"normal",e),new p(!0,e)},R=function(e){return M?(r(e),A?C(e[0],e[1],P):C(e[0],e[1])):A?C(e,P):C(e)};if(E)g=e.iterator;else if(T)g=e;else{if(!(v=c(e)))throw d(a(e)+" is not iterable");if(s(v)){for(y=0,x=o(e);x>y;y++)if((b=R(e[y]))&&l(f,b))return b;return new p(!1)}g=h(e,v)}for(_=E?e.next:g.next;!(w=n(_,g)).done;){try{b=R(w.value)}catch(e){u(g,"throw",e)}if("object"==typeof b&&b&&l(f,b))return b}return new p(!1)}})),Tj=Q((()=>{"use strict";var e=rt(),t=ko(),i=No(),n=lc(),r=S1(),a=eo(),s=ca(),o=Oo(),l=mL(),h=vL(),c=cc(),u=Hg(),d=kr()("toStringTag"),p=Error,f=[].push,m=function(e,r){var o,v=t(g,this);n?o=n(p(),v?i(this):g):(o=v?this:a(g),s(o,d,"Error")),void 0!==r&&s(o,"message",u(r)),h(o,m,o.stack,1),arguments.length>2&&l(o,arguments[2]);var y=[];return c(e,f,{that:y}),s(o,"errors",y),o};n?n(m,p):r(m,p,{name:!0});var g=m.prototype=a(p.prototype,{constructor:o(1,m),message:o(1,""),name:o(1,"AggregateError")});e({global:!0,constructor:!0,arity:2},{AggregateError:m})})),wj=Q((()=>{Tj()})),Aj=Q((()=>{var e=rt(),t=qi(),i=Fo(),n=Yt(),r=yL(),a="AggregateError",s=t(a),o=!n((function(){return 1!==s([1]).errors[0]}))&&n((function(){return 7!==s([1],a,{cause:7}).cause}));e({global:!0,constructor:!0,arity:2,forced:o},{AggregateError:r(a,(function(e){return function(t,n){return i(e,this,arguments)}}),o,!0)})})),pl=Q(((e,t)=>{var i=kr(),n=eo(),r=fi().f,a=i("unscopables"),s=Array.prototype;null==s[a]&&r(s,a,{configurable:!0,value:n(null)}),t.exports=function(e){s[a][e]=!0}})),Pj=Q((()=>{"use strict";var e=rt(),t=ci(),i=wi(),n=Is(),r=pl();e({target:"Array",proto:!0},{at:function(e){var r=t(this),a=i(r),s=n(e),o=s>=0?s:a+s;return o<0||o>=a?void 0:r[o]}}),r("at")})),qg=Q(((e,t)=>{var i=TypeError;t.exports=function(e){if(e>9007199254740991)throw i("Maximum allowed index exceeded");return e}})),Wg=Q(((e,t)=>{var i=Yt(),n=kr(),r=iu(),a=n("species");t.exports=function(e){return r>=51||!i((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}})),Fj=Q((()=>{"use strict";var e=rt(),t=Yt(),i=xh(),n=Cr(),r=ci(),a=wi(),s=qg(),o=ou(),l=Ng(),h=Wg(),c=kr(),u=iu(),d=c("isConcatSpreadable"),p=u>=51||!t((function(){var e=[];return e[d]=!1,e.concat()[0]!==e})),f=function(e){if(!n(e))return!1;var t=e[d];return void 0!==t?!!t:i(e)};e({target:"Array",proto:!0,arity:1,forced:!p||!h("concat")},{concat:function(e){var t,i,n,h,c,u=r(this),d=l(u,0),p=0;for(t=-1,n=arguments.length;t{"use strict";var i=kd(),n=TypeError;t.exports=function(e,t){if(!delete e[t])throw n("Cannot delete property "+i(t)+" of "+i(e))}})),IL=Q(((e,t)=>{"use strict";var i=ci(),n=au(),r=wi(),a=k1(),s=Math.min;t.exports=[].copyWithin||function(e,t){var o=i(this),l=r(o),h=n(e,l),c=n(t,l),u=arguments.length>2?arguments[2]:void 0,d=s((void 0===u?l:n(u,l))-c,l-h),p=1;for(c0;)c in o?o[h]=o[c]:a(o,h),h+=p,c+=p;return o}})),Hj=Q((()=>{var e=rt(),t=IL(),i=pl();e({target:"Array",proto:!0},{copyWithin:t}),i("copyWithin")})),cu=Q(((e,t)=>{"use strict";var i=Yt();t.exports=function(e,t){var n=[][e];return!!n&&i((function(){n.call(null,t||function(){return 1},1)}))}})),zj=Q((()=>{"use strict";var e=rt(),t=Us().every;e({target:"Array",proto:!0,forced:!cu()("every")},{every:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),Aw=Q(((e,t)=>{"use strict";var i=ci(),n=au(),r=wi();t.exports=function(e){for(var t=i(this),a=r(t),s=arguments.length,o=n(s>1?arguments[1]:void 0,a),l=s>2?arguments[2]:void 0,h=void 0===l?a:n(l,a);h>o;)t[o++]=e;return t}})),Wj=Q((()=>{var e=rt(),t=Aw(),i=pl();e({target:"Array",proto:!0},{fill:t}),i("fill")})),jj=Q((()=>{"use strict";var e=rt(),t=Us().filter;e({target:"Array",proto:!0,forced:!Wg()("filter")},{filter:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),Yj=Q((()=>{"use strict";var e=rt(),t=Us().find,i=pl(),n="find",r=!0;n in[]&&Array(1)[n]((function(){r=!1})),e({target:"Array",proto:!0,forced:r},{find:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),i(n)})),Zj=Q((()=>{"use strict";var e=rt(),t=Us().findIndex,i=pl(),n="findIndex",r=!0;n in[]&&Array(1)[n]((function(){r=!1})),e({target:"Array",proto:!0,forced:r},{findIndex:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),i(n)})),F1=Q(((e,t)=>{var i=dl(),n=Mp(),r=ci(),a=wi(),s=function(e){var t=1==e;return function(s,o,l){for(var h,c=r(s),u=n(c),d=i(o,l),p=a(u);p-- >0;)if(d(h=u[p],p,c))switch(e){case 0:return h;case 1:return p}return t?-1:void 0}};t.exports={findLast:s(0),findLastIndex:s(1)}})),Qj=Q((()=>{"use strict";var e=rt(),t=F1().findLast,i=pl();e({target:"Array",proto:!0},{findLast:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),i("findLast")})),eX=Q((()=>{"use strict";var e=rt(),t=F1().findLastIndex,i=pl();e({target:"Array",proto:!0},{findLastIndex:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),i("findLastIndex")})),OL=Q(((e,t)=>{"use strict";var i=xh(),n=wi(),r=qg(),a=dl(),s=function(e,t,o,l,h,c,u,d){for(var p,f,m=h,g=0,v=!!u&&a(u,d);g0&&i(p)?(f=n(p),m=s(e,t,p,f,m,c-1)-1):(r(m+1),e[m]=p),m++),g++;return m};t.exports=s})),rX=Q((()=>{"use strict";var e=rt(),t=OL(),i=ci(),n=wi(),r=Is(),a=Ng();e({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,s=i(this),o=n(s),l=a(s,0);return l.length=t(l,s,s,o,0,void 0===e?1:r(e)),l}})})),iX=Q((()=>{"use strict";var e=rt(),t=OL(),i=Ps(),n=ci(),r=wi(),a=Ng();e({target:"Array",proto:!0},{flatMap:function(e){var s,o=n(this),l=r(o);return i(e),(s=a(o,0)).length=t(s,o,o,l,0,1,e,arguments.length>1?arguments[1]:void 0),s}})})),kL=Q(((e,t)=>{"use strict";var i=Us().forEach,n=cu()("forEach");t.exports=n?[].forEach:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})),oX=Q((()=>{"use strict";var e=rt(),t=kL();e({target:"Array",proto:!0,forced:[].forEach!=t},{forEach:t})})),cX=Q(((e,t)=>{var i=br(),n=TL();t.exports=function(e,t,r,a){try{return a?t(i(r)[0],r[1]):t(r)}catch(t){n(e,"throw",t)}}})),FL=Q(((e,t)=>{"use strict";var i=dl(),n=wr(),r=ci(),a=cX(),s=ww(),o=Lp(),l=wi(),h=ou(),c=O1(),u=zg(),d=Array;t.exports=function(e){var t=r(e),p=o(this),f=arguments.length,m=f>1?arguments[1]:void 0,g=void 0!==m;g&&(m=i(m,f>2?arguments[2]:void 0));var v,y,x,b,_,w,S=u(t),M=0;if(!S||this===d&&s(S))for(v=l(t),y=p?new this(v):d(v);v>M;M++)w=g?m(t[M],M):t[M],h(y,M,w);else for(_=(b=c(t,S)).next,y=p?new this:[];!(x=n(_,b)).done;M++)w=g?a(b,m,[x.value,M],!0):x.value,h(y,M,w);return y.length=M,y}})),N1=Q(((e,t)=>{var i,n,r=kr()("iterator"),a=!1;try{i=0,(n={next:function(){return{done:!!i++}},return:function(){a=!0}})[r]=function(){return this},Array.from(n,(function(){throw 2}))}catch(e){}t.exports=function(e,t){if(!t&&!a)return!1;var i=!1;try{var n={};n[r]=function(){return{next:function(){return{done:i=!0}}}},e(n)}catch(e){}return i}})),vX=Q((()=>{var e=rt(),t=FL();e({target:"Array",stat:!0,forced:!N1()((function(e){Array.from(e)}))},{from:t})})),yX=Q((()=>{"use strict";var e=rt(),t=Dg().includes,i=Yt(),n=pl();e({target:"Array",proto:!0,forced:i((function(){return!Array(1).includes()}))},{includes:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n("includes")})),bX=Q((()=>{"use strict";var e=rt(),t=yh(),i=Dg().indexOf,n=cu(),r=t([].indexOf),a=!!r&&1/r([1],1,-0)<0;e({target:"Array",proto:!0,forced:a||!n("indexOf")},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return a?r(this,e,t)||0:i(this,e,t)}})})),EX=Q((()=>{rt()({target:"Array",stat:!0},{isArray:xh()})})),zL=Q(((e,t)=>{"use strict";var i,n,r,a=Yt(),s=Vr(),o=Cr(),l=eo(),h=No(),c=$i(),u=kr(),d=ss(),p=u("iterator"),f=!1;[].keys&&("next"in(r=[].keys())?(n=h(h(r)))!==Object.prototype&&(i=n):f=!0),!o(i)||a((function(){var e={};return i[p].call(e)!==e}))?i={}:d&&(i=l(i)),s(i[p])||c(i,p,(function(){return this})),t.exports={IteratorPrototype:i,BUGGY_SAFARI_ITERATORS:f}})),Cw=Q(((e,t)=>{"use strict";var i=zL().IteratorPrototype,n=eo(),r=Oo(),a=to(),s=Vg(),o=function(){return this};t.exports=function(e,t,l,h){var c=t+" Iterator";return e.prototype=n(i,{next:r(+!h,l)}),a(e,c,!1,!0),s[c]=o,e}})),Lw=Q(((e,t)=>{"use strict";var i=rt(),n=wr(),r=ss(),a=Pp(),s=Vr(),o=Cw(),l=No(),h=lc(),c=to(),u=ca(),d=$i(),p=kr(),f=Vg(),m=zL(),g=a.PROPER,v=a.CONFIGURABLE,y=m.IteratorPrototype,x=m.BUGGY_SAFARI_ITERATORS,b=p("iterator"),_="keys",w="values",S="entries",M=function(){return this};t.exports=function(e,t,a,p,m,E,T){o(a,t,p);var A,C,P,R=function(e){if(e===m&&k)return k;if(!x&&e in I)return I[e];switch(e){case _:case w:case S:return function(){return new a(this,e)}}return function(){return new a(this)}},D=t+" Iterator",L=!1,I=e.prototype,O=I[b]||I["@@iterator"]||m&&I[m],k=!x&&O||R(m),N="Array"==t&&I.entries||O;if(N&&(A=l(N.call(new e)))!==Object.prototype&&A.next&&(!r&&l(A)!==y&&(h?h(A,y):s(A[b])||d(A,b,M)),c(A,D,!0,!0),r&&(f[D]=M)),g&&m==w&&O&&O.name!==w&&(!r&&v?u(I,"name",w):(L=!0,k=function(){return n(O,this)})),m)if(C={values:R(w),keys:E?k:R(_),entries:R(S)},T)for(P in C)(x||L||!(P in I))&&d(I,P,C[P]);else i({target:t,proto:!0,forced:x||L},C);return(!r||T)&&I[b]!==k&&d(I,b,k,{name:m}),f[t]=k,C}})),H1=Q(((e,t)=>{t.exports=function(e,t){return{value:e,done:t}}})),V1=Q(((e,t)=>{"use strict";var i=Ca(),n=pl(),r=Vg(),a=bs(),s=fi().f,o=Lw(),l=H1(),h=ss(),c=rr(),u="Array Iterator",d=a.set,p=a.getterFor(u);t.exports=o(Array,"Array",(function(e,t){d(this,{type:u,target:i(e),index:0,kind:t})}),(function(){var e=p(this),t=e.target,i=e.kind,n=e.index++;return!t||n>=t.length?(e.target=void 0,l(void 0,!0)):l("keys"==i?n:"values"==i?t[n]:[n,t[n]],!1)}),"values");var f=r.Arguments=r.Array;if(n("keys"),n("values"),n("entries"),!h&&c&&"values"!==f.name)try{s(f,"name",{value:"values"})}catch(e){}})),zX=Q((()=>{"use strict";var e=rt(),t=sn(),i=Mp(),n=Ca(),r=cu(),a=t([].join);e({target:"Array",proto:!0,forced:i!=Object||!r("join",",")},{join:function(e){return a(n(this),void 0===e?",":e)}})})),jL=Q(((e,t)=>{"use strict";var i=Fo(),n=Ca(),r=Is(),a=wi(),s=cu(),o=Math.min,l=[].lastIndexOf,h=!!l&&1/[1].lastIndexOf(1,-0)<0,c=s("lastIndexOf"),u=h||!c;t.exports=u?function(e){if(h)return i(l,this,arguments)||0;var t=n(this),s=a(t),c=s-1;for(arguments.length>1&&(c=o(c,r(arguments[1]))),c<0&&(c=s+c);c>=0;c--)if(c in t&&t[c]===e)return c||0;return-1}:l})),jX=Q((()=>{var e=rt(),t=jL();e({target:"Array",proto:!0,forced:t!==[].lastIndexOf},{lastIndexOf:t})})),XX=Q((()=>{"use strict";var e=rt(),t=Us().map;e({target:"Array",proto:!0,forced:!Wg()("map")},{map:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),$X=Q((()=>{"use strict";var e=rt(),t=Yt(),i=Lp(),n=ou(),r=Array;e({target:"Array",stat:!0,forced:t((function(){function e(){}return!(r.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,a=new(i(this)?this:r)(t);t>e;)n(a,e,arguments[e++]);return a.length=t,a}})})),Ow=Q(((e,t)=>{"use strict";var i=rr(),n=xh(),r=TypeError,a=Object.getOwnPropertyDescriptor,s=i&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();t.exports=s?function(e,t){if(n(e)&&!a(e,"length").writable)throw r("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}})),KX=Q((()=>{"use strict";var e=rt(),t=ci(),i=wi(),n=Ow(),r=qg();e({target:"Array",proto:!0,arity:1,forced:Yt()((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}()},{push:function(e){var a=t(this),s=i(a),o=arguments.length;r(s+o);for(var l=0;l{var i=Ps(),n=ci(),r=Mp(),a=wi(),s=TypeError,o=function(e){return function(t,o,l,h){i(o);var c=n(t),u=r(c),d=a(c),p=e?d-1:0,f=e?-1:1;if(l<2)for(;;){if(p in u){h=u[p],p+=f;break}if(p+=f,e?p<0:d<=p)throw s("Reduce of empty array with no initial value")}for(;e?p>=0:d>p;p+=f)p in u&&(h=o(h,u[p],p,c));return h}};t.exports={left:o(!1),right:o(!0)}})),uu=Q(((e,t)=>{var i=Ra();t.exports="undefined"!=typeof process&&"process"==i(process)})),nY=Q((()=>{"use strict";var e=rt(),t=z1().left,i=cu(),n=iu();e({target:"Array",proto:!0,forced:!uu()&&n>79&&n<83||!i("reduce")},{reduce:function(e){var i=arguments.length;return t(this,e,i,i>1?arguments[1]:void 0)}})})),iY=Q((()=>{"use strict";var e=rt(),t=z1().right,i=cu(),n=iu();e({target:"Array",proto:!0,forced:!uu()&&n>79&&n<83||!i("reduceRight")},{reduceRight:function(e){return t(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})})),aY=Q((()=>{"use strict";var e=rt(),t=sn(),i=xh(),n=t([].reverse),r=[1,2];e({target:"Array",proto:!0,forced:String(r)===String(r.reverse())},{reverse:function(){return i(this)&&(this.length=this.length),n(this)}})})),cY=Q((()=>{"use strict";var e=rt(),t=xh(),i=Lp(),n=Cr(),r=au(),a=wi(),s=Ca(),o=ou(),l=kr(),h=Wg(),c=Bd(),u=h("slice"),d=l("species"),p=Array,f=Math.max;e({target:"Array",proto:!0,forced:!u},{slice:function(e,l){var h,u,m,g=s(this),v=a(g),y=r(e,v),x=r(void 0===l?v:l,v);if(t(g)&&(h=g.constructor,(i(h)&&(h===p||t(h.prototype))||n(h)&&null===(h=h[d]))&&(h=void 0),h===p||void 0===h))return c(g,y,x);for(u=new(void 0===h?p:h)(f(x-y,0)),m=0;y{"use strict";var e=rt(),t=Us().some;e({target:"Array",proto:!0,forced:!cu()("some")},{some:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),kw=Q(((e,t)=>{var i=Fg(),n=Math.floor,r=function(e,t){var o=e.length,l=n(o/2);return o<8?a(e,t):s(e,r(i(e,0,l),t),r(i(e,l),t),t)},a=function(e,t){for(var i,n,r=e.length,a=1;a0;)e[n]=e[--n];n!==a++&&(e[n]=i)}return e},s=function(e,t,i,n){for(var r=t.length,a=i.length,s=0,o=0;s{var i=ru().match(/firefox\/(\d+)/i);t.exports=!!i&&+i[1]})),ZL=Q(((e,t)=>{var i=ru();t.exports=/MSIE|Trident/.test(i)})),Fw=Q(((e,t)=>{var i=ru().match(/AppleWebKit\/(\d+)\./);t.exports=!!i&&+i[1]})),MY=Q((()=>{"use strict";var e=rt(),t=sn(),i=Ps(),n=ci(),r=wi(),a=k1(),s=Fr(),o=Yt(),l=kw(),h=cu(),c=$L(),u=ZL(),d=iu(),p=Fw(),f=[],m=t(f.sort),g=t(f.push),v=o((function(){f.sort(void 0)})),y=o((function(){f.sort(null)})),x=h("sort"),b=!o((function(){if(d)return d<70;if(!(c&&c>3)){if(u)return!0;if(p)return p<603;var e,t,i,n,r="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:i=3;break;case 68:case 71:i=4;break;default:i=2}for(n=0;n<47;n++)f.push({k:t+n,v:i})}for(f.sort((function(e,t){return t.v-e.v})),n=0;ns(i)?1:-1}}(e)),o=r(c),h=0;h{"use strict";var i=qi(),n=fi(),r=kr(),a=rr(),s=r("species");t.exports=function(e){var t=i(e),r=n.f;a&&t&&!t[s]&&r(t,s,{configurable:!0,get:function(){return this}})}})),CY=Q((()=>{Np()("Array")})),PY=Q((()=>{"use strict";var e=rt(),t=ci(),i=au(),n=Is(),r=wi(),a=Ow(),s=qg(),o=Ng(),l=ou(),h=k1(),c=Wg()("splice"),u=Math.max,d=Math.min;e({target:"Array",proto:!0,forced:!c},{splice:function(e,c){var p,f,m,g,v,y,x=t(this),b=r(x),_=i(e,b),w=arguments.length;for(0===w?p=f=0:1===w?(p=0,f=b-_):(p=w-2,f=d(u(n(c),0),b-_)),s(b+p-f),m=o(x,f),g=0;gb-f+p;g--)h(x,g-1)}else if(p>f)for(g=b-f;g>_;g--)y=g+p-1,(v=g+f-1)in x?x[y]=x[v]:h(x,y);for(g=0;g{pl()("flat")})),LY=Q((()=>{pl()("flatMap")})),DY=Q((()=>{"use strict";var e=rt(),t=ci(),i=wi(),n=Ow(),r=k1(),a=qg();e({target:"Array",proto:!0,arity:1,forced:1!==[].unshift(0)||!function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(e){return e instanceof TypeError}}()},{unshift:function(e){var s=t(this),o=i(s),l=arguments.length;if(l){a(o+l);for(var h=o;h--;){var c=h+l;h in s?s[c]=s[h]:r(s,c)}for(var u=0;u{t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView})),jg=Q(((e,t)=>{var i=$i();t.exports=function(e,t,n){for(var r in t)i(e,r,t[r],n);return e}})),uc=Q(((e,t)=>{var i=ko(),n=TypeError;t.exports=function(e,t){if(i(t,e))return e;throw n("Incorrect invocation")}})),QL=Q(((e,t)=>{var i=Is(),n=Qa(),r=RangeError;t.exports=function(e){if(void 0===e)return 0;var t=i(e),a=n(t);if(t!==a)throw r("Wrong length or index");return a}})),UY=Q(((e,t)=>{var i=Array,n=Math.abs,r=Math.pow,a=Math.floor,s=Math.log,o=Math.LN2;t.exports={pack:function(e,t,l){var h,c,u,d=i(l),p=8*l-t-1,f=(1<>1,g=23===t?r(2,-24)-r(2,-77):0,v=e<0||0===e&&1/e<0?1:0,y=0;for((e=n(e))!=e||e===1/0?(c=e!=e?1:0,h=f):(h=a(s(e)/o),e*(u=r(2,-h))<1&&(h--,u*=2),(e+=h+m>=1?g/u:g*r(2,1-m))*u>=2&&(h++,u/=2),h+m>=f?(c=0,h=f):h+m>=1?(c=(e*u-1)*r(2,t),h+=m):(c=e*r(2,m-1)*r(2,t),h=0));t>=8;)d[y++]=255&c,c/=256,t-=8;for(h=h<0;)d[y++]=255&h,h/=256,p-=8;return d[--y]|=128*v,d},unpack:function(e,t){var i,n=e.length,a=8*n-t-1,s=(1<>1,l=a-7,h=n-1,c=e[h--],u=127&c;for(c>>=7;l>0;)u=256*u+e[h--],l-=8;for(i=u&(1<<-l)-1,u>>=-l,l+=t;l>0;)i=256*i+e[h--],l-=8;if(0===u)u=1-o;else{if(u===s)return i?NaN:c?-1/0:1/0;i+=r(2,t),u-=o}return(c?-1:1)*i*r(2,u-t)}}})),q1=Q(((e,t)=>{"use strict";var i,n,r,a,s,o,l=In(),h=sn(),c=rr(),u=Nw(),d=Pp(),p=ca(),f=jg(),m=Yt(),g=uc(),v=Is(),y=Qa(),x=QL(),b=UY(),_=No(),w=lc(),S=vh().f,M=fi().f,E=Aw(),T=Fg(),A=to(),C=bs(),P=d.PROPER,R=d.CONFIGURABLE,D=C.get,L=C.set,I="ArrayBuffer",O="DataView",k="prototype",N="Wrong index",U=l[I],F=U,B=F&&F[k],z=l[O],H=z&&z[k],V=Object.prototype,j=l.Array,G=l.RangeError,W=h(E),X=h([].reverse),Y=b.pack,q=b.unpack,Z=function(e){return[255&e]},Q=function(e){return[255&e,e>>8&255]},J=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},K=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},$=function(e){return Y(e,23,4)},ee=function(e){return Y(e,52,8)},te=function(e,t){M(e[k],t,{get:function(){return D(this)[t]}})},ie=function(e,t,i,n){var r=x(i),a=D(e);if(r+t>a.byteLength)throw G(N);var s=D(a.buffer).bytes,o=r+a.byteOffset,l=T(s,o,o+t);return n?l:X(l)},ne=function(e,t,i,n,r,a){var s=x(i),o=D(e);if(s+t>o.byteLength)throw G(N);for(var l=D(o.buffer).bytes,h=s+o.byteOffset,c=n(+r),u=0;ur;)(a=n[r++])in F||p(F,a,U[a]);B.constructor=F}w&&_(H)!==V&&w(H,V),s=new z(new F(2)),o=h(H.setInt8),s.setInt8(0,2147483648),s.setInt8(1,2147483649),(s.getInt8(0)||!s.getInt8(1))&&f(H,{setInt8:function(e,t){o(this,e,t<<24>>24)},setUint8:function(e,t){o(this,e,t<<24>>24)}},{unsafe:!0})}else B=(F=function(e){g(this,B);var t=x(e);L(this,{bytes:W(j(t),0),byteLength:t}),c||(this.byteLength=t)})[k],H=(z=function(e,t,i){g(this,H),g(e,B);var n=D(e).byteLength,r=v(t);if(r<0||r>n)throw G("Wrong offset");if(r+(i=void 0===i?n-r:y(i))>n)throw G("Wrong length");L(this,{buffer:e,byteLength:i,byteOffset:r}),c||(this.buffer=e,this.byteLength=i,this.byteOffset=r)})[k],c&&(te(F,"byteLength"),te(z,"buffer"),te(z,"byteLength"),te(z,"byteOffset")),f(H,{getInt8:function(e){return ie(this,1,e)[0]<<24>>24},getUint8:function(e){return ie(this,1,e)[0]},getInt16:function(e){var t=ie(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=ie(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return K(ie(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return K(ie(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return q(ie(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return q(ie(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){ne(this,1,e,Z,t)},setUint8:function(e,t){ne(this,1,e,Z,t)},setInt16:function(e,t){ne(this,2,e,Q,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){ne(this,2,e,Q,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){ne(this,4,e,J,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){ne(this,4,e,J,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){ne(this,4,e,$,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){ne(this,8,e,ee,t,arguments.length>2?arguments[2]:void 0)}});A(F,I),A(z,O),t.exports={ArrayBuffer:F,DataView:z}})),a$=Q((()=>{"use strict";var e=rt(),t=In(),i=q1(),n=Np(),r="ArrayBuffer",a=i[r];e({global:!0,constructor:!0,forced:t[r]!==a},{ArrayBuffer:a}),n(r)})),$r=Q(((e,t)=>{"use strict";var i,n,r,a=Nw(),s=rr(),o=In(),l=Vr(),h=Cr(),c=Yr(),u=oc(),d=kd(),p=ca(),f=$i(),m=fi().f,g=ko(),v=No(),y=lc(),x=kr(),b=Cp(),_=bs(),w=_.enforce,S=_.get,M=o.Int8Array,E=M&&M.prototype,T=o.Uint8ClampedArray,A=T&&T.prototype,C=M&&v(M),P=E&&v(E),R=Object.prototype,D=o.TypeError,L=x("toStringTag"),I=b("TYPED_ARRAY_TAG"),O="TypedArrayConstructor",k=a&&!!y&&"Opera"!==u(o.opera),N=!1,U={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},F={BigInt64Array:8,BigUint64Array:8},B=function(e){var t=v(e);if(h(t)){var i=S(t);return i&&c(i,O)?i[O]:B(t)}},z=function(e){if(!h(e))return!1;var t=u(e);return c(U,t)||c(F,t)};for(i in U)(r=(n=o[i])&&n.prototype)?w(r)[O]=n:k=!1;for(i in F)(r=(n=o[i])&&n.prototype)&&(w(r)[O]=n);if((!k||!l(C)||C===Function.prototype)&&(C=function(){throw D("Incorrect invocation")},k))for(i in U)o[i]&&y(o[i],C);if((!k||!P||P===R)&&(P=C.prototype,k))for(i in U)o[i]&&y(o[i].prototype,P);if(k&&v(A)!==P&&y(A,P),s&&!c(P,L))for(i in N=!0,m(P,L,{get:function(){return h(this)?this[I]:void 0}}),U)o[i]&&p(o[i],I,i);t.exports={NATIVE_ARRAY_BUFFER_VIEWS:k,TYPED_ARRAY_TAG:N&&I,aTypedArray:function(e){if(z(e))return e;throw D("Target is not a typed array")},aTypedArrayConstructor:function(e){if(l(e)&&(!y||g(C,e)))return e;throw D(d(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,i,n){if(s){if(i)for(var r in U){var a=o[r];if(a&&c(a.prototype,e))try{delete a.prototype[e]}catch(i){try{a.prototype[e]=t}catch(e){}}}(!P[e]||i)&&f(P,e,i?t:k&&E[e]||t,n)}},exportTypedArrayStaticMethod:function(e,t,i){var n,r;if(s){if(y){if(i)for(n in U)if((r=o[n])&&c(r,e))try{delete r[e]}catch(e){}if(C[e]&&!i)return;try{return f(C,e,i?t:k&&C[e]||t)}catch(e){}}for(n in U)(r=o[n])&&(!r[e]||i)&&f(r,e,t)}},getTypedArrayConstructor:B,isView:function(e){if(!h(e))return!1;var t=u(e);return"DataView"===t||c(U,t)||c(F,t)},isTypedArray:z,TypedArray:C,TypedArrayPrototype:P}})),y$=Q((()=>{var e=rt(),t=$r();e({target:"ArrayBuffer",stat:!0,forced:!t.NATIVE_ARRAY_BUFFER_VIEWS},{isView:t.isView})})),$w=Q(((e,t)=>{var i=Lp(),n=kd(),r=TypeError;t.exports=function(e){if(i(e))return e;throw r(n(e)+" is not a constructor")}})),Up=Q(((e,t)=>{var i=br(),n=$w(),r=Aa(),a=kr()("species");t.exports=function(e,t){var s,o=i(e).constructor;return void 0===o||r(s=i(o)[a])?t:n(s)}})),R$=Q((()=>{"use strict";var e=rt(),t=yh(),i=Yt(),n=q1(),r=br(),a=au(),s=Qa(),o=Up(),l=n.ArrayBuffer,h=n.DataView,c=h.prototype,u=t(l.prototype.slice),d=t(c.getUint8),p=t(c.setUint8);e({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:i((function(){return!new l(2).slice(1,void 0).byteLength}))},{slice:function(e,t){if(u&&void 0===t)return u(r(this),e);for(var i=r(this).byteLength,n=a(e,i),c=a(void 0===t?i:t,i),f=new(o(this,l))(s(c-n)),m=new h(this),g=new h(f),v=0;n{var e=rt(),t=q1();e({global:!0,constructor:!0,forced:!Nw()},{DataView:t.DataView})})),C$=Q((()=>{A$()})),P$=Q((()=>{"use strict";var e=rt(),t=sn(),i=Yt()((function(){return 120!==new Date(16e11).getYear()})),n=t(Date.prototype.getFullYear);e({target:"Date",proto:!0,forced:i},{getYear:function(){return n(this)-1900}})})),L$=Q((()=>{var e=rt(),t=sn(),i=Date,n=t(i.prototype.getTime);e({target:"Date",stat:!0},{now:function(){return n(new i)}})})),k$=Q((()=>{"use strict";var e=rt(),t=sn(),i=Is(),n=Date.prototype,r=t(n.getTime),a=t(n.setFullYear);e({target:"Date",proto:!0},{setYear:function(e){r(this);var t=i(e);return a(this,0<=t&&t<=99?t+1900:t)}})})),F$=Q((()=>{rt()({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})})),W1=Q(((e,t)=>{"use strict";var i=Is(),n=Fr(),r=xs(),a=RangeError;t.exports=function(e){var t=n(r(this)),s="",o=i(e);if(o<0||o==1/0)throw a("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(t+=t))1&o&&(s+=t);return s}})),Zw=Q(((e,t)=>{var i=sn(),n=Qa(),r=Fr(),a=W1(),s=xs(),o=i(a),l=i("".slice),h=Math.ceil,c=function(e){return function(t,i,a){var c,u,d=r(s(t)),p=n(i),f=d.length,m=void 0===a?" ":r(a);return p<=f||""==m?d:((u=o(m,h((c=p-f)/m.length))).length>c&&(u=l(u,0,c)),e?d+u:u+d)}};t.exports={start:c(!1),end:c(!0)}})),q$=Q(((e,t)=>{"use strict";var i=sn(),n=Yt(),r=Zw().start,a=RangeError,s=isFinite,o=Math.abs,l=Date.prototype,h=l.toISOString,c=i(l.getTime),u=i(l.getUTCDate),d=i(l.getUTCFullYear),p=i(l.getUTCHours),f=i(l.getUTCMilliseconds),m=i(l.getUTCMinutes),g=i(l.getUTCMonth),v=i(l.getUTCSeconds);t.exports=n((function(){return"0385-07-25T07:06:39.999Z"!=h.call(new Date(-50000000000001))}))||!n((function(){h.call(new Date(NaN))}))?function(){if(!s(c(this)))throw a("Invalid time value");var e=this,t=d(e),i=f(e),n=t<0?"-":t>9999?"+":"";return n+r(o(t),n?6:4,0)+"-"+r(g(e)+1,2,0)+"-"+r(u(e),2,0)+"T"+r(p(e),2,0)+":"+r(m(e),2,0)+":"+r(v(e),2,0)+"."+r(i,3,0)+"Z"}:h})),j$=Q((()=>{var e=rt(),t=q$();e({target:"Date",proto:!0,forced:Date.prototype.toISOString!==t},{toISOString:t})})),X$=Q((()=>{"use strict";var e=rt(),t=Yt(),i=ci(),n=b1();e({target:"Date",proto:!0,arity:1,forced:t((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=i(this),r=n(t,"number");return"number"!=typeof r||isFinite(r)?t.toISOString():null}})})),$$=Q(((e,t)=>{"use strict";var i=br(),n=E3(),r=TypeError;t.exports=function(e){if(i(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw r("Incorrect hint");return n(this,e)}})),J$=Q((()=>{var e=Yr(),t=$i(),i=$$(),n=kr()("toPrimitive"),r=Date.prototype;e(r,n)||t(r,n,i)})),nZ=Q((()=>{var e=sn(),t=$i(),i=Date.prototype,n="Invalid Date",r="toString",a=e(i[r]),s=e(i.getTime);String(new Date(NaN))!=n&&t(i,r,(function(){var e=s(this);return e==e?a(this):n}))})),iZ=Q((()=>{"use strict";var e=rt(),t=sn(),i=Fr(),n=t("".charAt),r=t("".charCodeAt),a=t(/./.exec),s=t(1..toString),o=t("".toUpperCase),l=/[\w*+\-./@]/,h=function(e,t){for(var i=s(e,16);i.length{"use strict";var i=sn(),n=Ps(),r=Cr(),a=Yr(),s=Bd(),o=Pg(),l=Function,h=i([].concat),c=i([].join),u={},d=function(e,t,i){if(!a(u,t)){for(var n=[],r=0;r{var e=rt(),t=ED();e({target:"Function",proto:!0,forced:Function.bind!==t},{bind:t})})),fZ=Q((()=>{"use strict";var e=Vr(),t=Cr(),i=fi(),n=No(),r=kr(),a=rw(),s=r("hasInstance"),o=Function.prototype;s in o||i.f(o,s,{value:a((function(i){if(!e(this)||!t(i))return!1;var r=this.prototype;if(!t(r))return i instanceof this;for(;i=n(i);)if(r===i)return!0;return!1}),s)})})),vZ=Q((()=>{var e=rr(),t=Pp().EXISTS,i=sn(),n=fi().f,r=Function.prototype,a=i(r.toString),s=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,o=i(s.exec);e&&!t&&n(r,"name",{configurable:!0,get:function(){try{return o(s,a(this))[1]}catch(e){return""}}})})),yZ=Q((()=>{var e=rt(),t=In();e({global:!0,forced:t.globalThis!==t},{globalThis:t})})),xZ=Q((()=>{var e=In();to()(e.JSON,"JSON",!0)})),Kw=Q(((e,t)=>{var i=Yt();t.exports=i((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}))})),Qw=Q(((e,t)=>{var i=Yt(),n=Cr(),r=Ra(),a=Kw(),s=Object.isExtensible,o=i((function(){s(1)}));t.exports=o||a?function(e){return!(!n(e)||a&&"ArrayBuffer"==r(e))&&(!s||s(e))}:s})),Vp=Q(((e,t)=>{var i=Yt();t.exports=!i((function(){return Object.isExtensible(Object.preventExtensions({}))}))})),jd=Q(((e,t)=>{var i=rt(),n=sn(),r=Lg(),a=Cr(),s=Yr(),o=fi().f,l=vh(),h=hw(),c=Qw(),u=Cp(),d=Vp(),p=!1,f=u("meta"),m=0,g=function(e){o(e,f,{value:{objectID:"O"+m++,weakData:{}}})},v=t.exports={enable:function(){v.enable=function(){},p=!0;var e=l.f,t=n([].splice),r={};r[f]=1,e(r).length&&(l.f=function(i){for(var n=e(i),r=0,a=n.length;r{"use strict";var i=rt(),n=In(),r=sn(),a=Og(),s=$i(),o=jd(),l=cc(),h=uc(),c=Vr(),u=Aa(),d=Cr(),p=Yt(),f=N1(),m=to(),g=kp();t.exports=function(e,t,v){var y=-1!==e.indexOf("Map"),x=-1!==e.indexOf("Weak"),b=y?"set":"add",_=n[e],w=_&&_.prototype,S=_,M={},E=function(e){var t=r(w[e]);s(w,e,"add"==e?function(e){return t(this,0===e?0:e),this}:"delete"==e?function(e){return!(x&&!d(e))&&t(this,0===e?0:e)}:"get"==e?function(e){return x&&!d(e)?void 0:t(this,0===e?0:e)}:"has"==e?function(e){return!(x&&!d(e))&&t(this,0===e?0:e)}:function(e,i){return t(this,0===e?0:e,i),this})};if(a(e,!c(_)||!(x||w.forEach&&!p((function(){(new _).entries().next()})))))S=v.getConstructor(t,e,y,b),o.enable();else if(a(e,!0)){var T=new S,A=T[b](x?{}:-0,1)!=T,C=p((function(){T.has(1)})),P=f((function(e){new _(e)})),R=!x&&p((function(){for(var e=new _,t=5;t--;)e[b](t,t);return!e.has(-0)}));P||((S=t((function(e,t){h(e,w);var i=g(new _,e,S);return u(t)||l(t,i[b],{that:i,AS_ENTRIES:y}),i}))).prototype=w,w.constructor=S),(C||R)&&(E("delete"),E("has"),y&&E("get")),(R||A)&&E(b),x&&w.clear&&delete w.clear}return M[e]=S,i({global:!0,constructor:!0,forced:S!=_},M),m(S,e),x||v.setStrong(S,e,y),S}})),PD=Q(((e,t)=>{"use strict";var i=fi().f,n=eo(),r=jg(),a=dl(),s=uc(),o=Aa(),l=cc(),h=Lw(),c=H1(),u=Np(),d=rr(),p=jd().fastKey,f=bs(),m=f.set,g=f.getterFor;t.exports={getConstructor:function(e,t,h,c){var u=e((function(e,i){s(e,f),m(e,{type:t,index:n(null),first:void 0,last:void 0,size:0}),d||(e.size=0),o(i)||l(i,e[c],{that:e,AS_ENTRIES:h})})),f=u.prototype,v=g(t),y=function(e,t,i){var n,r,a=v(e),s=x(e,t);return s?s.value=i:(a.last=s={index:r=p(t,!0),key:t,value:i,previous:n=a.last,next:void 0,removed:!1},a.first||(a.first=s),n&&(n.next=s),d?a.size++:e.size++,"F"!==r&&(a.index[r]=s)),e},x=function(e,t){var i,n=v(e),r=p(t);if("F"!==r)return n.index[r];for(i=n.first;i;i=i.next)if(i.key==t)return i};return r(f,{clear:function(){for(var e=v(this),t=e.index,i=e.first;i;)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete t[i.index],i=i.next;e.first=e.last=void 0,d?e.size=0:this.size=0},delete:function(e){var t=this,i=v(t),n=x(t,e);if(n){var r=n.next,a=n.previous;delete i.index[n.index],n.removed=!0,a&&(a.next=r),r&&(r.previous=a),i.first==n&&(i.first=r),i.last==n&&(i.last=a),d?i.size--:t.size--}return!!n},forEach:function(e){for(var t,i=v(this),n=a(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:i.first;)for(n(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!x(this,e)}}),r(f,h?{get:function(e){var t=x(this,e);return t&&t.value},set:function(e,t){return y(this,0===e?0:e,t)}}:{add:function(e){return y(this,e=0===e?0:e,e)}}),d&&i(f,"size",{get:function(){return v(this).size}}),u},setStrong:function(e,t,i){var n=t+" Iterator",r=g(t),a=g(n);h(e,t,(function(e,t){m(this,{type:n,target:e,state:r(e),kind:t,last:void 0})}),(function(){for(var e=a(this),t=e.kind,i=e.last;i&&i.removed;)i=i.previous;return e.target&&(e.last=i=i?i.next:e.state.first)?c("keys"==t?i.key:"values"==t?i.value:[i.key,i.value],!1):(e.target=void 0,c(void 0,!0))}),i?"entries":"values",!i,!0),u(t)}}})),OZ=Q((()=>{"use strict";X1()("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),PD())})),kZ=Q((()=>{OZ()})),ID=Q(((e,t)=>{var i=Math.log;t.exports=Math.log1p||function(e){var t=+e;return t>-1e-8&&t<1e-8?t-t*t/2:i(1+t)}})),BZ=Q((()=>{var e=rt(),t=ID(),i=Math.acosh,n=Math.log,r=Math.sqrt,a=Math.LN2;e({target:"Math",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(e){var i=+e;return i<1?NaN:i>94906265.62425156?n(i)+a:t(i-1+r(i-1)*r(i+1))}})})),VZ=Q((()=>{var e=rt(),t=Math.asinh,i=Math.log,n=Math.sqrt;e({target:"Math",stat:!0,forced:!(t&&1/t(0)>0)},{asinh:function e(t){var r=+t;return isFinite(r)&&0!=r?r<0?-e(-r):i(r+n(r*r+1)):r}})})),GZ=Q((()=>{var e=rt(),t=Math.atanh,i=Math.log;e({target:"Math",stat:!0,forced:!(t&&1/t(-0)<0)},{atanh:function(e){var t=+e;return 0==t?t:i((1+t)/(1-t))/2}})})),tS=Q(((e,t)=>{t.exports=Math.sign||function(e){var t=+e;return 0==t||t!=t?t:t<0?-1:1}})),WZ=Q((()=>{var e=rt(),t=tS(),i=Math.abs,n=Math.pow;e({target:"Math",stat:!0},{cbrt:function(e){var r=+e;return t(r)*n(i(r),1/3)}})})),jZ=Q((()=>{var e=rt(),t=Math.floor,i=Math.log,n=Math.LOG2E;e({target:"Math",stat:!0},{clz32:function(e){var r=e>>>0;return r?31-t(i(r+.5)*n):32}})})),Z1=Q(((e,t)=>{var i=Math.expm1,n=Math.exp;t.exports=!i||i(10)>22025.465794806718||i(10)<22025.465794806718||-2e-17!=i(-2e-17)?function(e){var t=+e;return 0==t?t:t>-1e-6&&t<1e-6?t+t*t/2:n(t)-1}:i})),$Z=Q((()=>{var e=rt(),t=Z1(),i=Math.cosh,n=Math.abs,r=Math.E;e({target:"Math",stat:!0,forced:!i||i(710)===1/0},{cosh:function(e){var i=t(n(e)-1)+1;return(i+1/(i*r*r))*(r/2)}})})),KZ=Q((()=>{var e=rt(),t=Z1();e({target:"Math",stat:!0,forced:t!=Math.expm1},{expm1:t})})),QZ=Q(((e,t)=>{var i=tS(),n=Math.abs,r=Math.pow,a=r(2,-52),s=r(2,-23),o=r(2,127)*(2-s),l=r(2,-126);t.exports=Math.fround||function(e){var t,r,h=+e,c=n(h),u=i(h);return co||r!=r?u*(1/0):u*r}})),eK=Q((()=>{rt()({target:"Math",stat:!0},{fround:QZ()})})),nK=Q((()=>{var e=rt(),t=Math.hypot,i=Math.abs,n=Math.sqrt;e({target:"Math",stat:!0,arity:2,forced:!!t&&t(1/0,NaN)!==1/0},{hypot:function(e,t){for(var r,a,s=0,o=0,l=arguments.length,h=0;o0?(a=r/h)*a:r;return h===1/0?1/0:h*n(s)}})})),iK=Q((()=>{var e=rt(),t=Yt(),i=Math.imul;e({target:"Math",stat:!0,forced:t((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(e,t){var i=65535,n=+e,r=+t,a=i&n,s=i&r;return 0|a*s+((i&n>>>16)*s+a*(i&r>>>16)<<16>>>0)}})})),FD=Q(((e,t)=>{var i=Math.log,n=Math.LOG10E;t.exports=Math.log10||function(e){return i(e)*n}})),aK=Q((()=>{rt()({target:"Math",stat:!0},{log10:FD()})})),oK=Q((()=>{rt()({target:"Math",stat:!0},{log1p:ID()})})),lK=Q((()=>{var e=rt(),t=Math.log,i=Math.LN2;e({target:"Math",stat:!0},{log2:function(e){return t(e)/i}})})),cK=Q((()=>{rt()({target:"Math",stat:!0},{sign:tS()})})),dK=Q((()=>{var e=rt(),t=Yt(),i=Z1(),n=Math.abs,r=Math.exp,a=Math.E;e({target:"Math",stat:!0,forced:t((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){var t=+e;return n(t)<1?(i(t)-i(-t))/2:(r(t-1)-r(-t-1))*(a/2)}})})),mK=Q((()=>{var e=rt(),t=Z1(),i=Math.exp;e({target:"Math",stat:!0},{tanh:function(e){var n=+e,r=t(n),a=t(-n);return r==1/0?1:a==1/0?-1:(r-a)/(i(n)+i(-n))}})})),gK=Q((()=>{to()(Math,"Math",!0)})),vK=Q((()=>{rt()({target:"Math",stat:!0},{trunc:U3()})})),K1=Q(((e,t)=>{var i=sn();t.exports=i(1..valueOf)})),J1=Q(((e,t)=>{t.exports="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"})),zp=Q(((e,t)=>{var i=sn(),n=xs(),r=Fr(),a=J1(),s=i("".replace),o="["+a+"]",l=RegExp("^"+o+o+"*"),h=RegExp(o+o+"*$"),c=function(e){return function(t){var i=r(n(t));return 1&e&&(i=s(i,l,"")),2&e&&(i=s(i,h,"")),i}};t.exports={start:c(1),end:c(2),trim:c(3)}})),AK=Q((()=>{"use strict";var e=rt(),t=ss(),i=rr(),n=In(),r=dw(),a=sn(),s=Og(),o=Yr(),l=kp(),h=ko(),c=Od(),u=b1(),d=Yt(),p=vh().f,f=Ks().f,m=fi().f,g=K1(),v=zp().trim,y="Number",x=n[y],b=r[y],_=x.prototype,w=n.TypeError,S=a("".slice),M=a("".charCodeAt),E=function(e){var t,i,n,r,a,s,o,l,h=u(e,"number");if(c(h))throw w("Cannot convert a Symbol value to a number");if("string"==typeof h&&h.length>2)if(h=v(h),43===(t=M(h,0))||45===t){if(88===(i=M(h,2))||120===i)return NaN}else if(48===t){switch(M(h,1)){case 66:case 98:n=2,r=49;break;case 79:case 111:n=8,r=55;break;default:return+h}for(s=(a=S(h,2)).length,o=0;or)return NaN;return parseInt(a,n)}return+h},T=s(y,!x(" 0o1")||!x("0b1")||x("+0x1")),A=function(e){var t=arguments.length<1?0:x(function(e){var t=u(e,"number");return"bigint"==typeof t?t:E(t)}(e));return function(e){return h(_,e)&&d((function(){g(e)}))}(this)?l(Object(t),this,A):t};A.prototype=_,T&&!t&&(_.constructor=A),e({global:!0,constructor:!0,wrap:!0,forced:T},{Number:A});var C=function(e,t){for(var n,r=i?p(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),a=0;r.length>a;a++)o(t,n=r[a])&&!o(e,n)&&m(e,n,f(t,n))};t&&b&&C(r[y],b),(T||t)&&C(r[y],x)})),CK=Q((()=>{rt()({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})})),IK=Q(((e,t)=>{var i=In().isFinite;t.exports=Number.isFinite||function(e){return"number"==typeof e&&i(e)}})),LK=Q((()=>{rt()({target:"Number",stat:!0},{isFinite:IK()})})),oS=Q(((e,t)=>{var i=Cr(),n=Math.floor;t.exports=Number.isInteger||function(e){return!i(e)&&isFinite(e)&&n(e)===e}})),OK=Q((()=>{rt()({target:"Number",stat:!0},{isInteger:oS()})})),kK=Q((()=>{rt()({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})})),FK=Q((()=>{var e=rt(),t=oS(),i=Math.abs;e({target:"Number",stat:!0},{isSafeInteger:function(e){return t(e)&&i(e)<=9007199254740991}})})),NK=Q((()=>{rt()({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})})),BK=Q((()=>{rt()({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})})),zD=Q(((e,t)=>{var i=In(),n=Yt(),r=sn(),a=Fr(),s=zp().trim,o=J1(),l=r("".charAt),h=i.parseFloat,c=i.Symbol,u=c&&c.iterator,d=1/h(o+"-0")!=-1/0||u&&!n((function(){h(Object(u))}));t.exports=d?function(e){var t=s(a(e)),i=h(t);return 0===i&&"-"==l(t,0)?-0:i}:h})),qK=Q((()=>{var e=rt(),t=zD();e({target:"Number",stat:!0,forced:Number.parseFloat!=t},{parseFloat:t})})),GD=Q(((e,t)=>{var i=In(),n=Yt(),r=sn(),a=Fr(),s=zp().trim,o=J1(),l=i.parseInt,h=i.Symbol,c=h&&h.iterator,u=/^[+-]?0x/i,d=r(u.exec),p=8!==l(o+"08")||22!==l(o+"0x16")||c&&!n((function(){l(Object(c))}));t.exports=p?function(e,t){var i=s(a(e));return l(i,t>>>0||(d(u,i)?16:10))}:l})),JK=Q((()=>{var e=rt(),t=GD();e({target:"Number",stat:!0,forced:Number.parseInt!=t},{parseInt:t})})),rJ=Q((()=>{"use strict";var e=rt(),t=sn(),i=Is(),n=K1(),r=W1(),a=FD(),s=Yt(),o=RangeError,l=String,h=isFinite,c=Math.abs,u=Math.floor,d=Math.pow,p=Math.round,f=t(1..toExponential),m=t(r),g=t("".slice),v="-6.9000e-11"===f(-69e-12,4)&&"1.25e+0"===f(1.255,2)&&"1.235e+4"===f(12345,3)&&"3e+1"===f(25,0);e({target:"Number",proto:!0,forced:!v||!(s((function(){f(1,1/0)}))&&s((function(){f(1,-1/0)})))||!!s((function(){f(1/0,1/0),f(NaN,1/0)}))},{toExponential:function(e){var t=n(this);if(void 0===e)return f(t);var r=i(e);if(!h(t))return String(t);if(r<0||r>20)throw o("Incorrect fraction digits");if(v)return f(t,r);var s="",y="",x=0,b="",_="";if(t<0&&(s="-",t=-t),0===t)x=0,y=m("0",r+1);else{var w=a(t);x=u(w);var S=0,M=d(10,x-r);2*t>=(2*(S=p(t/M))+1)*M&&(S+=1),S>=d(10,r+1)&&(S/=10,x+=1),y=l(S)}return 0!==r&&(y=g(y,0,1)+"."+g(y,1)),0===x?(b="+",_="0"):(b=x>0?"+":"-",_=l(c(x))),s+(y+"e")+b+_}})})),cJ=Q((()=>{"use strict";var e=rt(),t=sn(),i=Is(),n=K1(),r=W1(),a=Yt(),s=RangeError,o=String,l=Math.floor,h=t(r),c=t("".slice),u=t(1..toFixed),d=function(e,t,i){return 0===t?i:t%2==1?d(e,t-1,i*e):d(e*e,t/2,i)},p=function(e,t,i){for(var n=-1,r=i;++n<6;)r+=t*e[n],e[n]=r%1e7,r=l(r/1e7)},f=function(e,t){for(var i=6,n=0;--i>=0;)n+=e[i],e[i]=l(n/t),n=n%t*1e7},m=function(e){for(var t=6,i="";--t>=0;)if(""!==i||0===t||0!==e[t]){var n=o(e[t]);i=""===i?n:i+h("0",7-n.length)+n}return i};e({target:"Number",proto:!0,forced:a((function(){return"0.000"!==u(8e-5,3)||"1"!==u(.9,0)||"1.25"!==u(1.255,2)||"1000000000000000128"!==u(0xde0b6b3a7640080,0)}))||!a((function(){u({})}))},{toFixed:function(e){var t,r,a,l,u=n(this),g=i(e),v=[0,0,0,0,0,0],y="",x="0";if(g<0||g>20)throw s("Incorrect fraction digits");if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return o(u);if(u<0&&(y="-",u=-u),u>1e-21)if(t=function(e){for(var t=0,i=e;i>=4096;)t+=12,i/=4096;for(;i>=2;)t+=1,i/=2;return t}(u*d(2,69,1))-69,r=t<0?u*d(2,-t,1):u/d(2,t,1),r*=4503599627370496,(t=52-t)>0){for(p(v,0,r),a=g;a>=7;)p(v,1e7,0),a-=7;for(p(v,d(10,a,1),0),a=t-1;a>=23;)f(v,1<<23),a-=23;f(v,1<0?y+((l=x.length)<=g?"0."+h("0",g-l)+x:c(x,0,l-g)+"."+c(x,l-g)):y+x}})})),dJ=Q((()=>{"use strict";var e=rt(),t=sn(),i=Yt(),n=K1(),r=t(1..toPrecision);e({target:"Number",proto:!0,forced:i((function(){return"1"!==r(1,void 0)}))||!i((function(){r({})}))},{toPrecision:function(e){return void 0===e?r(n(this)):r(n(this),e)}})})),ZD=Q(((e,t)=>{"use strict";var i=rr(),n=sn(),r=wr(),a=Yt(),s=kg(),o=w1(),l=x1(),h=ci(),c=Mp(),u=Object.assign,d=Object.defineProperty,p=n([].concat);t.exports=!u||a((function(){if(i&&1!==u({b:1},u(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=u({},e)[n]||s(u({},t)).join("")!=r}))?function(e,t){for(var n=h(e),a=arguments.length,u=1,d=o.f,f=l.f;a>u;)for(var m,g=c(arguments[u++]),v=d?p(s(g),d(g)):s(g),y=v.length,x=0;y>x;)m=v[x++],(!i||r(f,g,m))&&(n[m]=g[m]);return n}:u})),vJ=Q((()=>{var e=rt(),t=ZD();e({target:"Object",stat:!0,arity:2,forced:Object.assign!==t},{assign:t})})),yJ=Q((()=>{rt()({target:"Object",stat:!0,sham:!rr()},{create:eo()})})),nx=Q(((e,t)=>{"use strict";var i=ss(),n=In(),r=Yt(),a=Fw();t.exports=i||!r((function(){if(!(a&&a<535)){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete n[e]}}))})),EJ=Q((()=>{"use strict";var e=rt(),t=rr(),i=nx(),n=Ps(),r=ci(),a=fi();t&&e({target:"Object",proto:!0,forced:i},{__defineGetter__:function(e,t){a.f(r(this),e,{get:n(t),enumerable:!0,configurable:!0})}})})),TJ=Q((()=>{var e=rt(),t=rr(),i=lw().f;e({target:"Object",stat:!0,forced:Object.defineProperties!==i,sham:!t},{defineProperties:i})})),SJ=Q((()=>{var e=rt(),t=rr(),i=fi().f;e({target:"Object",stat:!0,forced:Object.defineProperty!==i,sham:!t},{defineProperty:i})})),MJ=Q((()=>{"use strict";var e=rt(),t=rr(),i=nx(),n=Ps(),r=ci(),a=fi();t&&e({target:"Object",proto:!0,forced:i},{__defineSetter__:function(e,t){a.f(r(this),e,{set:n(t),enumerable:!0,configurable:!0})}})})),KD=Q(((e,t)=>{var i=rr(),n=sn(),r=kg(),a=Ca(),s=n(x1().f),o=n([].push),l=function(e){return function(t){for(var n,l=a(t),h=r(l),c=h.length,u=0,d=[];c>u;)n=h[u++],(!i||s(l,n))&&o(d,e?[n,l[n]]:l[n]);return d}};t.exports={entries:l(!0),values:l(!1)}})),PJ=Q((()=>{var e=rt(),t=KD().entries;e({target:"Object",stat:!0},{entries:function(e){return t(e)}})})),IJ=Q((()=>{var e=rt(),t=Vp(),i=Yt(),n=Cr(),r=jd().onFreeze,a=Object.freeze;e({target:"Object",stat:!0,forced:i((function(){a(1)})),sham:!t},{freeze:function(e){return a&&n(e)?a(r(e)):e}})})),LJ=Q((()=>{var e=rt(),t=cc(),i=ou();e({target:"Object",stat:!0},{fromEntries:function(e){var n={};return t(e,(function(e,t){i(n,e,t)}),{AS_ENTRIES:!0}),n}})})),kJ=Q((()=>{var e=rt(),t=Yt(),i=Ca(),n=Ks().f,r=rr();e({target:"Object",stat:!0,forced:!r||t((function(){n(1)})),sham:!r},{getOwnPropertyDescriptor:function(e,t){return n(i(e),t)}})})),FJ=Q((()=>{var e=rt(),t=rr(),i=sw(),n=Ca(),r=Ks(),a=ou();e({target:"Object",stat:!0,sham:!t},{getOwnPropertyDescriptors:function(e){for(var t,s,o=n(e),l=r.f,h=i(o),c={},u=0;h.length>u;)void 0!==(s=l(o,t=h[u++]))&&a(c,t,s);return c}})})),NJ=Q((()=>{var e=rt(),t=Yt(),i=hw().f;e({target:"Object",stat:!0,forced:t((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})})),UJ=Q((()=>{var e=rt(),t=Yt(),i=ci(),n=No(),r=Tw();e({target:"Object",stat:!0,forced:t((function(){n(1)})),sham:!r},{getPrototypeOf:function(e){return n(i(e))}})})),HJ=Q((()=>{rt()({target:"Object",stat:!0},{hasOwn:Yr()})})),QD=Q(((e,t)=>{t.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}})),zJ=Q((()=>{rt()({target:"Object",stat:!0},{is:QD()})})),qJ=Q((()=>{var e=rt(),t=Qw();e({target:"Object",stat:!0,forced:Object.isExtensible!==t},{isExtensible:t})})),jJ=Q((()=>{var e=rt(),t=Yt(),i=Cr(),n=Ra(),r=Kw(),a=Object.isFrozen;e({target:"Object",stat:!0,forced:r||t((function(){a(1)}))},{isFrozen:function(e){return!(i(e)&&(!r||"ArrayBuffer"!=n(e)))||!!a&&a(e)}})})),YJ=Q((()=>{var e=rt(),t=Yt(),i=Cr(),n=Ra(),r=Kw(),a=Object.isSealed;e({target:"Object",stat:!0,forced:r||t((function(){a(1)}))},{isSealed:function(e){return!(i(e)&&(!r||"ArrayBuffer"!=n(e)))||!!a&&a(e)}})})),ZJ=Q((()=>{var e=rt(),t=ci(),i=kg();e({target:"Object",stat:!0,forced:Yt()((function(){i(1)}))},{keys:function(e){return i(t(e))}})})),KJ=Q((()=>{"use strict";var e=rt(),t=rr(),i=nx(),n=ci(),r=gh(),a=No(),s=Ks().f;t&&e({target:"Object",proto:!0,forced:i},{__lookupGetter__:function(e){var t,i=n(this),o=r(e);do{if(t=s(i,o))return t.get}while(i=a(i))}})})),JJ=Q((()=>{"use strict";var e=rt(),t=rr(),i=nx(),n=ci(),r=gh(),a=No(),s=Ks().f;t&&e({target:"Object",proto:!0,forced:i},{__lookupSetter__:function(e){var t,i=n(this),o=r(e);do{if(t=s(i,o))return t.set}while(i=a(i))}})})),QJ=Q((()=>{var e=rt(),t=Cr(),i=jd().onFreeze,n=Vp(),r=Yt(),a=Object.preventExtensions;e({target:"Object",stat:!0,forced:r((function(){a(1)})),sham:!n},{preventExtensions:function(e){return a&&t(e)?a(i(e)):e}})})),Xd=Q(((e,t)=>{var i=rw(),n=fi();t.exports=function(e,t,r){return r.get&&i(r.get,t,{getter:!0}),r.set&&i(r.set,t,{setter:!0}),n.f(e,t,r)}})),oQ=Q((()=>{"use strict";var e=rr(),t=Xd(),i=Cr(),n=ci(),r=xs(),a=Object.getPrototypeOf,s=Object.setPrototypeOf,o=Object.prototype,l="__proto__";if(e&&a&&s&&!(l in o))try{t(o,l,{configurable:!0,get:function(){return a(n(this))},set:function(e){var t=r(this);!i(e)&&null!==e||!i(t)||s(t,e)}})}catch(e){}})),lQ=Q((()=>{var e=rt(),t=Cr(),i=jd().onFreeze,n=Vp(),r=Yt(),a=Object.seal;e({target:"Object",stat:!0,forced:r((function(){a(1)})),sham:!n},{seal:function(e){return a&&t(e)?a(i(e)):e}})})),cQ=Q((()=>{rt()({target:"Object",stat:!0},{setPrototypeOf:lc()})})),hQ=Q(((e,t)=>{"use strict";var i=aw(),n=oc();t.exports=i?{}.toString:function(){return"[object "+n(this)+"]"}})),dQ=Q((()=>{var e=aw(),t=$i(),i=hQ();e||t(Object.prototype,"toString",i,{unsafe:!0})})),fQ=Q((()=>{var e=rt(),t=KD().values;e({target:"Object",stat:!0},{values:function(e){return t(e)}})})),mQ=Q((()=>{var e=rt(),t=zD();e({global:!0,forced:parseFloat!=t},{parseFloat:t})})),vQ=Q((()=>{var e=rt(),t=GD();e({global:!0,forced:parseInt!=t},{parseInt:t})})),Ah=Q(((e,t)=>{var i=TypeError;t.exports=function(e,t){if(e{var i=ru();t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(i)})),sx=Q(((e,t)=>{var i,n,r,a,s=In(),o=Fo(),l=dl(),h=Vr(),c=Yr(),u=Yt(),d=G3(),p=Bd(),f=E1(),m=Ah(),g=iO(),v=uu(),y=s.setImmediate,x=s.clearImmediate,b=s.process,_=s.Dispatch,w=s.Function,S=s.MessageChannel,M=s.String,E=0,T={},A="onreadystatechange";u((function(){i=s.location}));var C=function(e){if(c(T,e)){var t=T[e];delete T[e],t()}},P=function(e){return function(){C(e)}},R=function(e){C(e.data)},D=function(e){s.postMessage(M(e),i.protocol+"//"+i.host)};(!y||!x)&&(y=function(e){m(arguments.length,1);var t=h(e)?e:w(e),i=p(arguments,1);return T[++E]=function(){o(t,void 0,i)},n(E),E},x=function(e){delete T[e]},v?n=function(e){b.nextTick(P(e))}:_&&_.now?n=function(e){_.now(P(e))}:S&&!g?(a=(r=new S).port2,r.port1.onmessage=R,n=l(a.postMessage,a)):s.addEventListener&&h(s.postMessage)&&!s.importScripts&&i&&"file:"!==i.protocol&&!u(D)?(n=D,s.addEventListener("message",R,!1)):n=A in f("script")?function(e){d.appendChild(f("script"))[A]=function(){d.removeChild(this),C(e)}}:function(e){setTimeout(P(e),0)}),t.exports={set:y,clear:x}})),fO=Q(((e,t)=>{var i=function(){this.head=null,this.tail=null};i.prototype={add:function(e){var t={item:e,next:null},i=this.tail;i?i.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return null===(this.head=e.next)&&(this.tail=null),e.item}},t.exports=i})),LQ=Q(((e,t)=>{var i=ru();t.exports=/ipad|iphone|ipod/i.test(i)&&"undefined"!=typeof Pebble})),OQ=Q(((e,t)=>{var i=ru();t.exports=/web0s(?!.*chrome)/i.test(i)})),xO=Q(((e,t)=>{var i,n,r,a,s,o,l,h=In(),c=dl(),u=Ks().f,d=sx().set,p=fO(),f=iO(),m=LQ(),g=OQ(),v=uu(),y=h.MutationObserver||h.WebKitMutationObserver,x=h.document,b=h.process,_=h.Promise,w=u(h,"queueMicrotask"),S=w&&w.value;S||(o=new p,l=function(){var e,t;for(v&&(e=b.domain)&&e.exit();t=o.get();)try{t()}catch(e){throw o.head&&i(),e}e&&e.enter()},f||v||g||!y||!x?!m&&_&&_.resolve?((a=_.resolve(void 0)).constructor=_,s=c(a.then,a),i=function(){s(l)}):v?i=function(){b.nextTick(l)}:(d=c(d,h),i=function(){d(l)}):(n=!0,r=x.createTextNode(""),new y(l).observe(r,{characterData:!0}),i=function(){r.data=n=!n}),S=function(e){o.head||i(),o.add(e)}),t.exports=S})),GQ=Q(((e,t)=>{t.exports=function(e,t){try{1==arguments.length?console.error(e):console.error(e,t)}catch(e){}}})),r0=Q(((e,t)=>{t.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}})),Wp=Q(((e,t)=>{var i=In();t.exports=i.Promise})),dS=Q(((e,t)=>{t.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version})),bO=Q(((e,t)=>{var i=dS(),n=uu();t.exports=!i&&!n&&"object"==typeof window&&"object"==typeof document})),i0=Q(((e,t)=>{var i=In(),n=Wp(),r=Vr(),a=Og(),s=JT(),o=kr(),l=bO(),h=dS(),c=ss(),u=iu(),d=n&&n.prototype,p=o("species"),f=!1,m=r(i.PromiseRejectionEvent),g=a("Promise",(function(){var e=s(n),t=e!==String(n);if(!t&&66===u||c&&(!d.catch||!d.finally))return!0;if(!u||u<51||!/native code/.test(e)){var i=new n((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};if((i.constructor={})[p]=r,!(f=i.then((function(){}))instanceof r))return!0}return!t&&(l||h)&&!m}));t.exports={CONSTRUCTOR:g,REJECTION_EVENT:m,SUBCLASSING:f}})),Yd=Q(((e,t)=>{"use strict";var i=Ps(),n=TypeError,r=function(e){var t,r;this.promise=new e((function(e,i){if(void 0!==t||void 0!==r)throw n("Bad Promise constructor");t=e,r=i})),this.resolve=i(t),this.reject=i(r)};t.exports.f=function(e){return new r(e)}})),vee=Q((()=>{"use strict";var e,t,i,n=rt(),r=ss(),a=uu(),s=In(),o=wr(),l=$i(),h=lc(),c=to(),u=Np(),d=Ps(),p=Vr(),f=Cr(),m=uc(),g=Up(),v=sx().set,y=xO(),x=GQ(),b=r0(),_=fO(),w=bs(),S=Wp(),M=i0(),E=Yd(),T="Promise",A=M.CONSTRUCTOR,C=M.REJECTION_EVENT,P=M.SUBCLASSING,R=w.getterFor(T),D=w.set,L=S&&S.prototype,I=S,O=L,k=s.TypeError,N=s.document,U=s.process,F=E.f,B=F,z=!!(N&&N.createEvent&&s.dispatchEvent),H="unhandledrejection",V=function(e){var t;return!(!f(e)||!p(t=e.then))&&t},j=function(e,t){var i,n,r,a=t.value,s=1==t.state,l=s?e.ok:e.fail,h=e.resolve,c=e.reject,u=e.domain;try{l?(s||(2===t.rejection&&q(t),t.rejection=1),!0===l?i=a:(u&&u.enter(),i=l(a),u&&(u.exit(),r=!0)),i===e.promise?c(k("Promise-chain cycle")):(n=V(i))?o(n,i,h,c):h(i)):c(a)}catch(e){u&&!r&&u.exit(),c(e)}},G=function(e,t){e.notified||(e.notified=!0,y((function(){for(var i,n=e.reactions;i=n.get();)j(i,e);e.notified=!1,t&&!e.rejection&&X(e)})))},W=function(e,t,i){var n,r;z?((n=N.createEvent("Event")).promise=t,n.reason=i,n.initEvent(e,!1,!0),s.dispatchEvent(n)):n={promise:t,reason:i},!C&&(r=s["on"+e])?r(n):e===H&&x("Unhandled promise rejection",i)},X=function(e){o(v,s,(function(){var t,i=e.facade,n=e.value;if(Y(e)&&(t=b((function(){a?U.emit("unhandledRejection",n,i):W(H,i,n)})),e.rejection=a||Y(e)?2:1,t.error))throw t.value}))},Y=function(e){return 1!==e.rejection&&!e.parent},q=function(e){o(v,s,(function(){var t=e.facade;a?U.emit("rejectionHandled",t):W("rejectionhandled",t,e.value)}))},Z=function(e,t,i){return function(n){e(t,n,i)}},Q=function(e,t,i){e.done||(e.done=!0,i&&(e=i),e.value=t,e.state=2,G(e,!0))},J=function(e,t,i){if(!e.done){e.done=!0,i&&(e=i);try{if(e.facade===t)throw k("Promise can't be resolved itself");var n=V(t);n?y((function(){var i={done:!1};try{o(n,t,Z(J,i,e),Z(Q,i,e))}catch(t){Q(i,t,e)}})):(e.value=t,e.state=1,G(e,!1))}catch(t){Q({done:!1},t,e)}}};if(A&&(O=(I=function(t){m(this,O),d(t),o(e,this);var i=R(this);try{t(Z(J,i),Z(Q,i))}catch(e){Q(i,e)}}).prototype,(e=function(e){D(this,{type:T,done:!1,notified:!1,parent:!1,reactions:new _,rejection:!1,state:0,value:void 0})}).prototype=l(O,"then",(function(e,t){var i=R(this),n=F(g(this,I));return i.parent=!0,n.ok=!p(e)||e,n.fail=p(t)&&t,n.domain=a?U.domain:void 0,0==i.state?i.reactions.add(n):y((function(){j(n,i)})),n.promise})),t=function(){var t=new e,i=R(t);this.promise=t,this.resolve=Z(J,i),this.reject=Z(Q,i)},E.f=F=function(e){return e===I||void 0===e?new t(e):B(e)},!r&&p(S)&&L!==Object.prototype)){i=L.then,P||l(L,"then",(function(e,t){var n=this;return new I((function(e,t){o(i,n,e,t)})).then(e,t)}),{unsafe:!0});try{delete L.constructor}catch(e){}h&&h(L,O)}n({global:!0,constructor:!0,wrap:!0,forced:A},{Promise:I}),c(I,T,!1,!0),u(T)})),cx=Q(((e,t)=>{var i=Wp(),n=N1(),r=i0().CONSTRUCTOR;t.exports=r||!n((function(e){i.all(e).then(void 0,(function(){}))}))})),xee=Q((()=>{"use strict";var e=rt(),t=wr(),i=Ps(),n=Yd(),r=r0(),a=cc();e({target:"Promise",stat:!0,forced:cx()},{all:function(e){var s=this,o=n.f(s),l=o.resolve,h=o.reject,c=r((function(){var n=i(s.resolve),r=[],o=0,c=1;a(e,(function(e){var i=o++,a=!1;c++,t(n,s,e).then((function(e){a||(a=!0,r[i]=e,--c||l(r))}),h)})),--c||l(r)}));return c.error&&h(c.value),o.promise}})})),Eee=Q((()=>{"use strict";var e,t=rt(),i=ss(),n=i0().CONSTRUCTOR,r=Wp(),a=qi(),s=Vr(),o=$i(),l=r&&r.prototype;t({target:"Promise",proto:!0,forced:n,real:!0},{catch:function(e){return this.then(void 0,e)}}),!i&&s(r)&&(e=a("Promise").prototype.catch,l.catch!==e&&o(l,"catch",e,{unsafe:!0}))})),_ee=Q((()=>{"use strict";var e=rt(),t=wr(),i=Ps(),n=Yd(),r=r0(),a=cc();e({target:"Promise",stat:!0,forced:cx()},{race:function(e){var s=this,o=n.f(s),l=o.reject,h=r((function(){var n=i(s.resolve);a(e,(function(e){t(n,s,e).then(o.resolve,l)}))}));return h.error&&l(h.value),o.promise}})})),Tee=Q((()=>{"use strict";var e=rt(),t=wr(),i=Yd();e({target:"Promise",stat:!0,forced:i0().CONSTRUCTOR},{reject:function(e){var n=i.f(this);return t(n.reject,void 0,e),n.promise}})})),DO=Q(((e,t)=>{var i=br(),n=Cr(),r=Yd();t.exports=function(e,t){if(i(e),n(t)&&t.constructor===e)return t;var a=r.f(e);return(0,a.resolve)(t),a.promise}})),Ree=Q((()=>{"use strict";var e=rt(),t=qi(),i=ss(),n=Wp(),r=i0().CONSTRUCTOR,a=DO(),s=t("Promise"),o=i&&!r;e({target:"Promise",stat:!0,forced:i||r},{resolve:function(e){return a(o&&this===s?n:this,e)}})})),Aee=Q((()=>{vee(),xee(),Eee(),_ee(),Tee(),Ree()})),Cee=Q((()=>{"use strict";var e=rt(),t=wr(),i=Ps(),n=Yd(),r=r0(),a=cc();e({target:"Promise",stat:!0,forced:cx()},{allSettled:function(e){var s=this,o=n.f(s),l=o.resolve,h=o.reject,c=r((function(){var n=i(s.resolve),r=[],o=0,h=1;a(e,(function(e){var i=o++,a=!1;h++,t(n,s,e).then((function(e){a||(a=!0,r[i]={status:"fulfilled",value:e},--h||l(r))}),(function(e){a||(a=!0,r[i]={status:"rejected",reason:e},--h||l(r))}))})),--h||l(r)}));return c.error&&h(c.value),o.promise}})})),Iee=Q((()=>{"use strict";var e=rt(),t=wr(),i=Ps(),n=qi(),r=Yd(),a=r0(),s=cc(),o=cx(),l="No one promise resolved";e({target:"Promise",stat:!0,forced:o},{any:function(e){var o=this,h=n("AggregateError"),c=r.f(o),u=c.resolve,d=c.reject,p=a((function(){var n=i(o.resolve),r=[],a=0,c=1,p=!1;s(e,(function(e){var i=a++,s=!1;c++,t(n,o,e).then((function(e){s||p||(p=!0,u(e))}),(function(e){s||p||(s=!0,r[i]=e,--c||d(new h(r,l)))}))})),--c||d(new h(r,l))}));return p.error&&d(p.value),c.promise}})})),kee=Q((()=>{"use strict";var e,t=rt(),i=ss(),n=Wp(),r=Yt(),a=qi(),s=Vr(),o=Up(),l=DO(),h=$i(),c=n&&n.prototype;t({target:"Promise",proto:!0,real:!0,forced:!!n&&r((function(){c.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=o(this,a("Promise")),i=s(e);return this.then(i?function(i){return l(t,e()).then((function(){return i}))}:e,i?function(i){return l(t,e()).then((function(){throw i}))}:e)}}),!i&&s(n)&&(e=a("Promise").prototype.finally,c.finally!==e&&h(c,"finally",e,{unsafe:!0}))})),Fee=Q((()=>{var e=rt(),t=Fo(),i=Ps(),n=br();e({target:"Reflect",stat:!0,forced:!Yt()((function(){Reflect.apply((function(){}))}))},{apply:function(e,r,a){return t(i(e),r,n(a))}})})),Gee=Q((()=>{var e=rt(),t=qi(),i=Fo(),n=ED(),r=$w(),a=br(),s=Cr(),o=eo(),l=Yt(),h=t("Reflect","construct"),c=Object.prototype,u=[].push,d=l((function(){function e(){}return!(h((function(){}),[],e)instanceof e)})),p=!l((function(){h((function(){}))})),f=d||p;e({target:"Reflect",stat:!0,forced:f,sham:f},{construct:function(e,t){r(e),a(t);var l=arguments.length<3?e:r(arguments[2]);if(p&&!d)return h(e,t,l);if(e==l){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var f=[null];return i(u,f,t),new(i(n,e,f))}var m=l.prototype,g=o(s(m)?m:c),v=i(e,g,t);return s(v)?v:g}})})),jee=Q((()=>{var e=rt(),t=rr(),i=br(),n=gh(),r=fi();e({target:"Reflect",stat:!0,forced:Yt()((function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})})),sham:!t},{defineProperty:function(e,t,a){i(e);var s=n(t);i(a);try{return r.f(e,s,a),!0}catch(e){return!1}}})})),Xee=Q((()=>{var e=rt(),t=br(),i=Ks().f;e({target:"Reflect",stat:!0},{deleteProperty:function(e,n){var r=i(t(e),n);return!(r&&!r.configurable)&&delete e[n]}})})),BO=Q(((e,t)=>{var i=Yr();t.exports=function(e){return void 0!==e&&(i(e,"value")||i(e,"writable"))}})),Kee=Q((()=>{var e=rt(),t=wr(),i=Cr(),n=br(),r=BO(),a=Ks(),s=No();e({target:"Reflect",stat:!0},{get:function e(o,l){var h,c,u=arguments.length<3?o:arguments[2];return n(o)===u?o[l]:(h=a.f(o,l))?r(h)?h.value:void 0===h.get?void 0:t(h.get,u):i(c=s(o))?e(c,l,u):void 0}})})),Jee=Q((()=>{var e=rt(),t=rr(),i=br(),n=Ks();e({target:"Reflect",stat:!0,sham:!t},{getOwnPropertyDescriptor:function(e,t){return n.f(i(e),t)}})})),Qee=Q((()=>{var e=rt(),t=br(),i=No();e({target:"Reflect",stat:!0,sham:!Tw()},{getPrototypeOf:function(e){return i(t(e))}})})),ete=Q((()=>{rt()({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})})),tte=Q((()=>{var e=rt(),t=br(),i=Qw();e({target:"Reflect",stat:!0},{isExtensible:function(e){return t(e),i(e)}})})),nte=Q((()=>{rt()({target:"Reflect",stat:!0},{ownKeys:sw()})})),rte=Q((()=>{var e=rt(),t=qi(),i=br();e({target:"Reflect",stat:!0,sham:!Vp()},{preventExtensions:function(e){i(e);try{var n=t("Object","preventExtensions");return n&&n(e),!0}catch(e){return!1}}})})),lte=Q((()=>{var e=rt(),t=wr(),i=br(),n=Cr(),r=BO(),a=Yt(),s=fi(),o=Ks(),l=No(),h=Oo();e({target:"Reflect",stat:!0,forced:a((function(){var e=function(){},t=s.f(new e,"a",{configurable:!0});return!1!==Reflect.set(e.prototype,"a",1,t)}))},{set:function e(a,c,u){var d,p,f,m=arguments.length<4?a:arguments[3],g=o.f(i(a),c);if(!g){if(n(p=l(a)))return e(p,c,u,m);g=h(0)}if(r(g)){if(!1===g.writable||!n(m))return!1;if(d=o.f(m,c)){if(d.get||d.set||!1===d.writable)return!1;d.value=u,s.f(m,c,d)}else s.f(m,c,h(0,u))}else{if(void 0===(f=g.set))return!1;t(f,m,u)}return!0}})})),ute=Q((()=>{var e=rt(),t=br(),i=fL(),n=lc();n&&e({target:"Reflect",stat:!0},{setPrototypeOf:function(e,r){t(e),i(r);try{return n(e,r),!0}catch(e){return!1}}})})),hte=Q((()=>{var e=rt(),t=In(),i=to();e({global:!0},{Reflect:{}}),i(t.Reflect,"Reflect",!0)})),c0=Q(((e,t)=>{var i=Cr(),n=Ra(),r=kr()("match");t.exports=function(e){var t;return i(e)&&(void 0!==(t=e[r])?!!t:"RegExp"==n(e))}})),bS=Q(((e,t)=>{"use strict";var i=br();t.exports=function(){var e=i(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t}})),u0=Q(((e,t)=>{var i=wr(),n=Yr(),r=ko(),a=bS(),s=RegExp.prototype;t.exports=function(e){var t=e.flags;return void 0!==t||"flags"in s||n(e,"flags")||!r(s,e)?t:i(a,e)}})),ux=Q(((e,t)=>{var i=Yt(),n=In().RegExp,r=i((function(){var e=n("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),a=r||i((function(){return!n("a","y").sticky})),s=r||i((function(){var e=n("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));t.exports={BROKEN_CARET:s,MISSED_STICKY:a,UNSUPPORTED_Y:r}})),ES=Q(((e,t)=>{var i=Yt(),n=In().RegExp;t.exports=i((function(){var e=n(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)}))})),GO=Q(((e,t)=>{var i=Yt(),n=In().RegExp;t.exports=i((function(){var e=n("(?
b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$c")}))})),Rte=Q((()=>{var e,t,i,n=rr(),r=In(),a=sn(),s=Og(),o=kp(),l=ca(),h=vh().f,c=ko(),u=c0(),d=Fr(),p=u0(),f=ux(),m=pL(),g=$i(),v=Yt(),y=Yr(),x=bs().enforce,b=Np(),_=kr(),w=ES(),S=GO(),M=_("match"),E=r.RegExp,T=E.prototype,A=r.SyntaxError,C=a(T.exec),P=a("".charAt),R=a("".replace),D=a("".indexOf),L=a("".slice),I=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,O=/a/g,k=/a/g,N=new E(O)!==O,U=f.MISSED_STICKY,F=f.UNSUPPORTED_Y;if(s("RegExp",n&&(!N||U||w||S||v((function(){return k[M]=!1,E(O)!=O||E(k)==k||"/a/i"!=E(O,"i")}))))){for(e=function(t,i){var n,r,a,s,h,f,m=c(T,this),g=u(t),v=void 0===i,b=[],_=t;if(!m&&g&&v&&t.constructor===e)return t;if((g||c(T,t))&&(t=t.source,v&&(i=p(_))),t=void 0===t?"":d(t),i=void 0===i?"":d(i),_=t,w&&"dotAll"in O&&(r=!!i&&D(i,"s")>-1)&&(i=R(i,/s/g,"")),n=i,U&&"sticky"in O&&(a=!!i&&D(i,"y")>-1)&&F&&(i=R(i,/y/g,"")),S&&(s=function(e){for(var t,i=e.length,n=0,r="",a=[],s={},o=!1,l=!1,h=0,c="";n<=i;n++){if("\\"===(t=P(e,n)))t+=P(e,++n);else if("]"===t)o=!1;else if(!o)switch(!0){case"["===t:o=!0;break;case"("===t:C(I,L(e,n+1))&&(n+=2,l=!0),r+=t,h++;continue;case">"===t&&l:if(""===c||y(s,c))throw new A("Invalid capture group name");s[c]=!0,a[a.length]=[c,h],l=!1,c="";continue}l?c+=t:r+=t}return[r,a]}(t),t=s[0],b=s[1]),h=o(E(t,i),m?this:T,e),(r||a||b.length)&&(f=x(h),r&&(f.dotAll=!0,f.raw=e(function(e){for(var t,i=e.length,n=0,r="",a=!1;n<=i;n++)"\\"!==(t=P(e,n))?a||"."!==t?("["===t?a=!0:"]"===t&&(a=!1),r+=t):r+="[\\s\\S]":r+=t+P(e,++n);return r}(t),n)),a&&(f.sticky=!0),b.length&&(f.groups=b)),t!==_)try{l(h,"source",""===_?"(?:)":_)}catch(e){}return h},t=h(E),i=0;t.length>i;)m(e,E,t[i++]);T.constructor=e,e.prototype=T,g(r,"RegExp",e,{constructor:!0})}b("RegExp")})),Cte=Q((()=>{var e=rr(),t=ES(),i=Ra(),n=Xd(),r=bs().get,a=RegExp.prototype,s=TypeError;e&&t&&n(a,"dotAll",{configurable:!0,get:function(){if(this!==a){if("RegExp"===i(this))return!!r(this).dotAll;throw s("Incompatible receiver, RegExp required")}}})})),dx=Q(((e,t)=>{"use strict";var i,n,r=wr(),a=sn(),s=Fr(),o=bS(),l=ux(),h=Ap(),c=eo(),u=bs().get,d=ES(),p=GO(),f=h("native-string-replace",String.prototype.replace),m=RegExp.prototype.exec,g=m,v=a("".charAt),y=a("".indexOf),x=a("".replace),b=a("".slice),_=(n=/b*/g,r(m,i=/a/,"a"),r(m,n,"a"),0!==i.lastIndex||0!==n.lastIndex),w=l.BROKEN_CARET,S=void 0!==/()??/.exec("")[1];(_||S||w||d||p)&&(g=function(e){var t,i,n,a,l,h,d,p=this,M=u(p),E=s(e),T=M.raw;if(T)return T.lastIndex=p.lastIndex,t=r(g,T,E),p.lastIndex=T.lastIndex,t;var A=M.groups,C=w&&p.sticky,P=r(o,p),R=p.source,D=0,L=E;if(C&&(P=x(P,"y",""),-1===y(P,"g")&&(P+="g"),L=b(E,p.lastIndex),p.lastIndex>0&&(!p.multiline||p.multiline&&"\n"!==v(E,p.lastIndex-1))&&(R="(?: "+R+")",L=" "+L,D++),i=new RegExp("^(?:"+R+")",P)),S&&(i=new RegExp("^"+R+"$(?!\\s)",P)),_&&(n=p.lastIndex),a=r(m,C?i:p,L),C?a?(a.input=b(a.input,D),a[0]=b(a[0],D),a.index=p.lastIndex,p.lastIndex+=a[0].length):p.lastIndex=0:_&&a&&(p.lastIndex=p.global?a.index+a[0].length:n),S&&a&&a.length>1&&r(f,a[0],i,(function(){for(l=1;l{"use strict";var e=rt(),t=dx();e({target:"RegExp",proto:!0,forced:/./.exec!==t},{exec:t})})),kte=Q((()=>{var e=In(),t=rr(),i=Xd(),n=bS(),r=Yt(),a=e.RegExp,s=a.prototype;t&&r((function(){var e=!0;try{a(".","d")}catch(t){e=!1}var t={},i="",n=e?"dgimsy":"gimsy",r=function(e,n){Object.defineProperty(t,e,{get:function(){return i+=n,!0}})},o={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var l in e&&(o.hasIndices="d"),o)r(l,o[l]);return Object.getOwnPropertyDescriptor(s,"flags").get.call(t)!==n||i!==n}))&&i(s,"flags",{configurable:!0,get:n})})),Nte=Q((()=>{var e=rr(),t=ux().MISSED_STICKY,i=Ra(),n=Xd(),r=bs().get,a=RegExp.prototype,s=TypeError;e&&t&&n(a,"sticky",{configurable:!0,get:function(){if(this!==a){if("RegExp"===i(this))return!!r(this).sticky;throw s("Incompatible receiver, RegExp required")}}})})),Hte=Q((()=>{"use strict";SS();var e,t,i=rt(),n=wr(),r=Vr(),a=br(),s=Fr(),o=(e=!1,(t=/[ac]/).exec=function(){return e=!0,/./.exec.apply(this,arguments)},!0===t.test("abc")&&e),l=/./.test;i({target:"RegExp",proto:!0,forced:!o},{test:function(e){var t=a(this),i=s(e),o=t.exec;if(!r(o))return n(l,t,i);var h=n(o,t,i);return null!==h&&(a(h),!0)}})})),Gte=Q((()=>{"use strict";var e=Pp().PROPER,t=$i(),i=br(),n=Fr(),r=Yt(),a=u0(),s="toString",o=RegExp.prototype[s],l=r((function(){return"/a/b"!=o.call({source:"a",flags:"b"})})),h=e&&o.name!=s;(l||h)&&t(RegExp.prototype,s,(function(){var e=i(this);return"/"+n(e.source)+"/"+n(a(e))}),{unsafe:!0})})),qte=Q((()=>{"use strict";X1()("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),PD())})),Wte=Q((()=>{qte()})),jte=Q((()=>{"use strict";var e=rt(),t=sn(),i=xs(),n=Is(),r=Fr(),a=Yt(),s=t("".charAt);e({target:"String",proto:!0,forced:a((function(){return"\ud842"!=="\ud842\udfb7".at(-2)}))},{at:function(e){var t=r(i(this)),a=t.length,o=n(e),l=o>=0?o:a+o;return l<0||l>=a?void 0:s(t,l)}})})),fx=Q(((e,t)=>{var i=sn(),n=Is(),r=Fr(),a=xs(),s=i("".charAt),o=i("".charCodeAt),l=i("".slice),h=function(e){return function(t,i){var h,c,u=r(a(t)),d=n(i),p=u.length;return d<0||d>=p?e?"":void 0:(h=o(u,d))<55296||h>56319||d+1===p||(c=o(u,d+1))<56320||c>57343?e?s(u,d):h:e?l(u,d,d+2):c-56320+(h-55296<<10)+65536}};t.exports={codeAt:h(!1),charAt:h(!0)}})),Zte=Q((()=>{"use strict";var e=rt(),t=fx().codeAt;e({target:"String",proto:!0},{codePointAt:function(e){return t(this,e)}})})),MS=Q(((e,t)=>{var i=c0(),n=TypeError;t.exports=function(e){if(i(e))throw n("The method doesn't accept regular expressions");return e}})),RS=Q(((e,t)=>{var i=kr()("match");t.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[i]=!1,"/./"[e](t)}catch(e){}}return!1}})),rne=Q((()=>{"use strict";var e,t=rt(),i=yh(),n=Ks().f,r=Qa(),a=Fr(),s=MS(),o=xs(),l=RS(),h=ss(),c=i("".endsWith),u=i("".slice),d=Math.min,p=l("endsWith");t({target:"String",proto:!0,forced:!(!h&&!p&&(e=n(String.prototype,"endsWith"),e&&!e.writable))&&!p},{endsWith:function(e){var t=a(o(this));s(e);var i=arguments.length>1?arguments[1]:void 0,n=t.length,l=void 0===i?n:d(r(i),n),h=a(e);return c?c(t,h,l):u(t,l-h.length,l)===h}})})),ane=Q((()=>{var e=rt(),t=sn(),i=au(),n=RangeError,r=String.fromCharCode,a=String.fromCodePoint,s=t([].join);e({target:"String",stat:!0,arity:1,forced:!!a&&1!=a.length},{fromCodePoint:function(e){for(var t,a=[],o=arguments.length,l=0;o>l;){if(t=+arguments[l++],i(t,1114111)!==t)throw n(t+" is not a valid code point");a[l]=t<65536?r(t):r(55296+((t-=65536)>>10),t%1024+56320)}return s(a,"")}})})),lne=Q((()=>{"use strict";var e=rt(),t=sn(),i=MS(),n=xs(),r=Fr(),a=RS(),s=t("".indexOf);e({target:"String",proto:!0,forced:!a("includes")},{includes:function(e){return!!~s(r(n(this)),r(i(e)),arguments.length>1?arguments[1]:void 0)}})})),ek=Q((()=>{"use strict";var e=fx().charAt,t=Fr(),i=bs(),n=Lw(),r=H1(),a="String Iterator",s=i.set,o=i.getterFor(a);n(String,"String",(function(e){s(this,{type:a,string:t(e),index:0})}),(function(){var t,i=o(this),n=i.string,a=i.index;return a>=n.length?r(void 0,!0):(t=e(n,a),i.index+=t.length,r(t,!1))}))})),px=Q(((e,t)=>{"use strict";SS();var i=yh(),n=$i(),r=dx(),a=Yt(),s=kr(),o=ca(),l=s("species"),h=RegExp.prototype;t.exports=function(e,t,c,u){var d=s(e),p=!a((function(){var t={};return t[d]=function(){return 7},7!=""[e](t)})),f=p&&!a((function(){var t=!1,i=/a/;return"split"===e&&((i={}).constructor={},i.constructor[l]=function(){return i},i.flags="",i[d]=/./[d]),i.exec=function(){return t=!0,null},i[d](""),!t}));if(!p||!f||c){var m=i(/./[d]),g=t(d,""[e],(function(e,t,n,a,s){var o=i(e),l=t.exec;return l===r||l===h.exec?p&&!s?{done:!0,value:m(t,n,a)}:{done:!0,value:o(n,t,a)}:{done:!1}}));n(String.prototype,e,g[0]),n(h,d,g[1])}u&&o(h[d],"sham",!0)}})),mx=Q(((e,t)=>{"use strict";var i=fx().charAt;t.exports=function(e,t,n){return t+(n?i(e,t).length:1)}})),f0=Q(((e,t)=>{var i=wr(),n=br(),r=Vr(),a=Ra(),s=dx(),o=TypeError;t.exports=function(e,t){var l=e.exec;if(r(l)){var h=i(l,e,t);return null!==h&&n(h),h}if("RegExp"===a(e))return i(s,e,t);throw o("RegExp#exec called on incompatible receiver")}})),Ene=Q((()=>{"use strict";var e=wr(),t=px(),i=br(),n=Aa(),r=Qa(),a=Fr(),s=xs(),o=su(),l=mx(),h=f0();t("match",(function(t,c,u){return[function(i){var r=s(this),l=n(i)?void 0:o(i,t);return l?e(l,i,r):new RegExp(i)[t](a(r))},function(e){var t=i(this),n=a(e),s=u(c,t,n);if(s.done)return s.value;if(!t.global)return h(t,n);var o=t.unicode;t.lastIndex=0;for(var d,p=[],f=0;null!==(d=h(t,n));){var m=a(d[0]);p[f]=m,""===m&&(t.lastIndex=l(n,r(t.lastIndex),o)),f++}return 0===f?null:p}]}))})),Ine=Q((()=>{"use strict";var e=rt(),t=wr(),i=yh(),n=Cw(),r=H1(),a=xs(),s=Qa(),o=Fr(),l=br(),h=Aa(),c=Ra(),u=c0(),d=u0(),p=su(),f=$i(),m=Yt(),g=kr(),v=Up(),y=mx(),x=f0(),b=bs(),_=ss(),w=g("matchAll"),S="RegExp String",M=S+" Iterator",E=b.set,T=b.getterFor(M),A=RegExp.prototype,C=TypeError,P=i("".indexOf),R=i("".matchAll),D=!!R&&!m((function(){R("a",/./)})),L=n((function(e,t,i,n){E(this,{type:M,regexp:e,string:t,global:i,unicode:n,done:!1})}),S,(function(){var e=T(this);if(e.done)return r(void 0,!0);var t=e.regexp,i=e.string,n=x(t,i);return null===n?(e.done=!0,r(void 0,!0)):e.global?(""===o(n[0])&&(t.lastIndex=y(i,s(t.lastIndex),e.unicode)),r(n,!1)):(e.done=!0,r(n,!1))})),I=function(e){var t,i,n,r=l(this),a=o(e),h=v(r,RegExp),c=o(d(r));return t=new h(h===RegExp?r.source:r,c),i=!!~P(c,"g"),n=!!~P(c,"u"),t.lastIndex=s(r.lastIndex),new L(t,a,i,n)};e({target:"String",proto:!0,forced:D},{matchAll:function(e){var i,n,r,s,l=a(this);if(h(e)){if(D)return R(l,e)}else{if(u(e)&&(i=o(a(d(e))),!~P(i,"g")))throw C("`.matchAll` does not allow non-global regexes");if(D)return R(l,e);if(void 0===(r=p(e,w))&&_&&"RegExp"==c(e)&&(r=I),r)return t(r,e,l)}return n=o(l),s=new RegExp(e,"g"),_?t(I,s,n):s[w](n)}}),_||w in A||f(A,w,I)})),ok=Q(((e,t)=>{var i=ru();t.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(i)})),Dne=Q((()=>{"use strict";var e=rt(),t=Zw().end;e({target:"String",proto:!0,forced:ok()},{padEnd:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),One=Q((()=>{"use strict";var e=rt(),t=Zw().start;e({target:"String",proto:!0,forced:ok()},{padStart:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}})})),Bne=Q((()=>{var e=rt(),t=sn(),i=Ca(),n=ci(),r=Fr(),a=wi(),s=t([].push),o=t([].join);e({target:"String",stat:!0},{raw:function(e){var t=i(n(e).raw),l=a(t);if(!l)return"";for(var h=arguments.length,c=[],u=0;;){if(s(c,r(t[u++])),u===l)return o(c,"");u{rt()({target:"String",proto:!0},{repeat:W1()})})),hk=Q(((e,t)=>{var i=sn(),n=ci(),r=Math.floor,a=i("".charAt),s=i("".replace),o=i("".slice),l=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,h=/\$([$&'`]|\d{1,2})/g;t.exports=function(e,t,i,c,u,d){var p=i+e.length,f=c.length,m=h;return void 0!==u&&(u=n(u),m=l),s(d,m,(function(n,s){var l;switch(a(s,0)){case"$":return"$";case"&":return e;case"`":return o(t,0,i);case"'":return o(t,p);case"<":l=u[o(s,1,-1)];break;default:var h=+s;if(0===h)return n;if(h>f){var d=r(h/10);return 0===d?n:d<=f?void 0===c[d-1]?a(s,1):c[d-1]+a(s,1):n}l=c[h-1]}return void 0===l?"":l}))}})),Wne=Q((()=>{"use strict";var e=Fo(),t=wr(),i=sn(),n=px(),r=Yt(),a=br(),s=Vr(),o=Aa(),l=Is(),h=Qa(),c=Fr(),u=xs(),d=mx(),p=su(),f=hk(),m=f0(),g=kr()("replace"),v=Math.max,y=Math.min,x=i([].concat),b=i([].push),_=i("".indexOf),w=i("".slice),S=function(e){return void 0===e?e:String(e)},M="$0"==="a".replace(/./,"$0"),E=!!/./[g]&&""===/./[g]("a","$0");n("replace",(function(i,n,r){var M=E?"$":"$0";return[function(e,i){var r=u(this),a=o(e)?void 0:p(e,g);return a?t(a,e,r,i):t(n,c(r),e,i)},function(t,i){var o=a(this),u=c(t);if("string"==typeof i&&-1===_(i,M)&&-1===_(i,"$<")){var p=r(n,o,u,i);if(p.done)return p.value}var g=s(i);g||(i=c(i));var E=o.global;if(E){var T=o.unicode;o.lastIndex=0}for(var A=[];;){var C=m(o,u);if(null===C||(b(A,C),!E))break;""===c(C[0])&&(o.lastIndex=d(u,h(o.lastIndex),T))}for(var P="",R=0,D=0;D=R&&(P+=w(u,R,I)+F,R=I+L.length)}return P+w(u,R)}]}),!!r((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")}))||!M||E)})),Zne=Q((()=>{"use strict";var e=rt(),t=wr(),i=sn(),n=xs(),r=Vr(),a=Aa(),s=c0(),o=Fr(),l=su(),h=u0(),c=hk(),u=kr(),d=ss(),p=u("replace"),f=TypeError,m=i("".indexOf),g=i("".replace),v=i("".slice),y=Math.max,x=function(e,t,i){return i>e.length?-1:""===t?i:m(e,t,i)};e({target:"String",proto:!0},{replaceAll:function(e,i){var u,b,_,w,S,M,E,T,A,C=n(this),P=0,R=0,D="";if(!a(e)){if((u=s(e))&&(b=o(n(h(e))),!~m(b,"g")))throw f("`.replaceAll` does not allow non-global regexes");if(_=l(e,p))return t(_,e,C,i);if(d&&u)return g(o(C),e,i)}for(w=o(C),S=o(e),(M=r(i))||(i=o(i)),E=S.length,T=y(1,E),P=x(w,S,0);-1!==P;)A=M?o(i(S,P,w)):c(S,w,P,[],void 0,i),D+=v(w,R,P)+A,R=P+E,P=x(w,S,P+T);return R{"use strict";var e=wr(),t=px(),i=br(),n=Aa(),r=xs(),a=QD(),s=Fr(),o=su(),l=f0();t("search",(function(t,h,c){return[function(i){var a=r(this),l=n(i)?void 0:o(i,t);return l?e(l,i,a):new RegExp(i)[t](s(a))},function(e){var t=i(this),n=s(e),r=c(h,t,n);if(r.done)return r.value;var o=t.lastIndex;a(o,0)||(t.lastIndex=0);var u=l(t,n);return a(t.lastIndex,o)||(t.lastIndex=o),null===u?-1:u.index}]}))})),sre=Q((()=>{"use strict";var e=Fo(),t=wr(),i=sn(),n=px(),r=br(),a=Aa(),s=c0(),o=xs(),l=Up(),h=mx(),c=Qa(),u=Fr(),d=su(),p=Fg(),f=f0(),m=dx(),g=ux(),v=Yt(),y=g.UNSUPPORTED_Y,x=4294967295,b=Math.min,_=[].push,w=i(/./.exec),S=i(_),M=i("".slice);n("split",(function(i,n,g){var v;return v="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(i,r){var a=u(o(this)),l=void 0===r?x:r>>>0;if(0===l)return[];if(void 0===i)return[a];if(!s(i))return t(n,a,i,l);for(var h,c,d,f=[],g=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(i.sticky?"y":""),v=0,y=new RegExp(i.source,g+"g");(h=t(m,y,a))&&!((c=y.lastIndex)>v&&(S(f,M(a,v,h.index)),h.length>1&&h.index=l));)y.lastIndex===h.index&&y.lastIndex++;return v===a.length?(d||!w(y,""))&&S(f,""):S(f,M(a,v)),f.length>l?p(f,0,l):f}:"0".split(void 0,0).length?function(e,i){return void 0===e&&0===i?[]:t(n,this,e,i)}:n,[function(e,n){var r=o(this),s=a(e)?void 0:d(e,i);return s?t(s,e,r,n):t(v,u(r),e,n)},function(e,t){var i=r(this),a=u(e),s=g(v,i,a,t,v!==n);if(s.done)return s.value;var o=l(i,RegExp),d=i.unicode,p=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(y?"g":"y"),m=new o(y?"^(?:"+i.source+")":i,p),_=void 0===t?x:t>>>0;if(0===_)return[];if(0===a.length)return null===f(m,a)?[a]:[];for(var w=0,E=0,T=[];E{"use strict";var e,t=rt(),i=yh(),n=Ks().f,r=Qa(),a=Fr(),s=MS(),o=xs(),l=RS(),h=ss(),c=i("".startsWith),u=i("".slice),d=Math.min,p=l("startsWith");t({target:"String",proto:!0,forced:!(!h&&!p&&(e=n(String.prototype,"startsWith"),e&&!e.writable))&&!p},{startsWith:function(e){var t=a(o(this));s(e);var i=r(d(arguments.length>1?arguments[1]:void 0,t.length)),n=a(e);return c?c(t,n,i):u(t,i,i+n.length)===n}})})),dre=Q((()=>{"use strict";var e=rt(),t=sn(),i=xs(),n=Is(),r=Fr(),a=t("".slice),s=Math.max,o=Math.min;e({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(e,t){var l,h,c=r(i(this)),u=c.length,d=n(e);return d===1/0&&(d=0),d<0&&(d=s(u+d,0)),(l=void 0===t?u:n(t))<=0||l===1/0||d>=(h=o(d+l,u))?"":a(c,d,h)}})})),LS=Q(((e,t)=>{var i=Pp().PROPER,n=Yt(),r=J1();t.exports=function(e){return n((function(){return!!r[e]()||"\u200b\x85\u180e"!=="\u200b\x85\u180e"[e]()||i&&r[e].name!==e}))}})),gre=Q((()=>{"use strict";var e=rt(),t=zp().trim;e({target:"String",proto:!0,forced:LS()("trim")},{trim:function(){return t(this)}})})),vk=Q(((e,t)=>{"use strict";var i=zp().end,n=LS();t.exports=n("trimEnd")?function(){return i(this)}:"".trimEnd})),xre=Q((()=>{var e=rt(),t=vk();e({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==t},{trimRight:t})})),Ere=Q((()=>{xre();var e=rt(),t=vk();e({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==t},{trimEnd:t})})),yk=Q(((e,t)=>{"use strict";var i=zp().start,n=LS();t.exports=n("trimStart")?function(){return i(this)}:"".trimStart})),wre=Q((()=>{var e=rt(),t=yk();e({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==t},{trimLeft:t})})),Mre=Q((()=>{wre();var e=rt(),t=yk();e({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==t},{trimStart:t})})),io=Q(((e,t)=>{var i=sn(),n=xs(),r=Fr(),a=/"/g,s=i("".replace);t.exports=function(e,t,i,o){var l=r(n(e)),h="<"+t;return""!==i&&(h+=" "+i+'="'+s(r(o),a,""")+'"'),h+">"+l+""}})),so=Q(((e,t)=>{var i=Yt();t.exports=function(e){return i((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}})),Pre=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("anchor")},{anchor:function(e){return t(this,"a","name",e)}})})),Ire=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("big")},{big:function(){return t(this,"big","","")}})})),Lre=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("blink")},{blink:function(){return t(this,"blink","","")}})})),Dre=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("bold")},{bold:function(){return t(this,"b","","")}})})),Ore=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("fixed")},{fixed:function(){return t(this,"tt","","")}})})),kre=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("fontcolor")},{fontcolor:function(e){return t(this,"font","color",e)}})})),Fre=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("fontsize")},{fontsize:function(e){return t(this,"font","size",e)}})})),Nre=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("italics")},{italics:function(){return t(this,"i","","")}})})),Bre=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("link")},{link:function(e){return t(this,"a","href",e)}})})),Ure=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("small")},{small:function(){return t(this,"small","","")}})})),Hre=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("strike")},{strike:function(){return t(this,"strike","","")}})})),Vre=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("sub")},{sub:function(){return t(this,"sub","","")}})})),zre=Q((()=>{"use strict";var e=rt(),t=io();e({target:"String",proto:!0,forced:so()("sup")},{sup:function(){return t(this,"sup","","")}})})),DS=Q(((e,t)=>{var i=In(),n=Yt(),r=N1(),a=$r().NATIVE_ARRAY_BUFFER_VIEWS,s=i.ArrayBuffer,o=i.Int8Array;t.exports=!a||!n((function(){o(1)}))||!n((function(){new o(-1)}))||!r((function(e){new o,new o(null),new o(1.5),new o(e)}),!0)||n((function(){return 1!==new o(new s(2),1,void 0).length}))})),jre=Q(((e,t)=>{var i=Is(),n=RangeError;t.exports=function(e){var t=i(e);if(t<0)throw n("The argument can't be less than 0");return t}})),bk=Q(((e,t)=>{var i=jre(),n=RangeError;t.exports=function(e,t){var r=i(e);if(r%t)throw n("Wrong offset");return r}})),$re=Q(((e,t)=>{var i=oc();t.exports=function(e){var t=i(e);return"BigInt64Array"==t||"BigUint64Array"==t}})),Ek=Q(((e,t)=>{var i=b1(),n=TypeError;t.exports=function(e){var t=i(e,"number");if("number"==typeof t)throw n("Can't convert number to bigint");return BigInt(t)}})),_k=Q(((e,t)=>{var i=dl(),n=wr(),r=$w(),a=ci(),s=wi(),o=O1(),l=zg(),h=ww(),c=$re(),u=$r().aTypedArrayConstructor,d=Ek();t.exports=function(e){var t,p,f,m,g,v,y,x,b=r(this),_=a(e),w=arguments.length,S=w>1?arguments[1]:void 0,M=void 0!==S,E=l(_);if(E&&!h(E))for(x=(y=o(_,E)).next,_=[];!(v=n(x,y)).done;)_.push(v.value);for(M&&w>2&&(S=i(S,arguments[2])),p=s(_),f=new(u(b))(p),m=c(f),t=0;p>t;t++)g=M?S(_[t],t):_[t],f[t]=m?d(g):+g;return f}})),pu=Q(((e,t)=>{"use strict";var i=rt(),n=In(),r=wr(),a=rr(),s=DS(),o=$r(),l=q1(),h=uc(),c=Oo(),u=ca(),d=oS(),p=Qa(),f=QL(),m=bk(),g=gh(),v=Yr(),y=oc(),x=Cr(),b=Od(),_=eo(),w=ko(),S=lc(),M=vh().f,E=_k(),T=Us().forEach,A=Np(),C=fi(),P=Ks(),R=bs(),D=kp(),L=R.get,I=R.set,O=R.enforce,k=C.f,N=P.f,U=Math.round,F=n.RangeError,B=l.ArrayBuffer,z=B.prototype,H=l.DataView,V=o.NATIVE_ARRAY_BUFFER_VIEWS,j=o.TYPED_ARRAY_TAG,G=o.TypedArray,W=o.TypedArrayPrototype,X=o.aTypedArrayConstructor,Y=o.isTypedArray,q="BYTES_PER_ELEMENT",Z="Wrong length",Q=function(e,t){X(e);for(var i=0,n=t.length,r=new e(n);n>i;)r[i]=t[i++];return r},J=function(e,t){k(e,t,{get:function(){return L(this)[t]}})},K=function(e){var t;return w(z,e)||"ArrayBuffer"==(t=y(e))||"SharedArrayBuffer"==t},$=function(e,t){return Y(e)&&!b(t)&&t in e&&d(+t)&&t>=0},ee=function(e,t){return t=g(t),$(e,t)?c(2,e[t]):N(e,t)},te=function(e,t,i){return t=g(t),!($(e,t)&&x(i)&&v(i,"value"))||v(i,"get")||v(i,"set")||i.configurable||v(i,"writable")&&!i.writable||v(i,"enumerable")&&!i.enumerable?k(e,t,i):(e[t]=i.value,e)};a?(V||(P.f=ee,C.f=te,J(W,"buffer"),J(W,"byteOffset"),J(W,"byteLength"),J(W,"length")),i({target:"Object",stat:!0,forced:!V},{getOwnPropertyDescriptor:ee,defineProperty:te}),t.exports=function(e,t,a){var o=e.match(/\d+$/)[0]/8,l=e+(a?"Clamped":"")+"Array",c="get"+e,d="set"+e,g=n[l],v=g,y=v&&v.prototype,b={},w=function(e,t){k(e,t,{get:function(){return function(e,t){var i=L(e);return i.view[c](t*o+i.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,i){var n=L(e);a&&(i=(i=U(i))<0?0:i>255?255:255&i),n.view[d](t*o+n.byteOffset,i,!0)}(this,t,e)},enumerable:!0})};V?s&&(v=t((function(e,t,i,n){return h(e,y),D(x(t)?K(t)?void 0!==n?new g(t,m(i,o),n):void 0!==i?new g(t,m(i,o)):new g(t):Y(t)?Q(v,t):r(E,v,t):new g(f(t)),e,v)})),S&&S(v,G),T(M(g),(function(e){e in v||u(v,e,g[e])})),v.prototype=y):(v=t((function(e,t,i,n){h(e,y);var a,s,l,c=0,u=0;if(x(t)){if(!K(t))return Y(t)?Q(v,t):r(E,v,t);a=t,u=m(i,o);var d=t.byteLength;if(void 0===n){if(d%o||(s=d-u)<0)throw F(Z)}else if((s=p(n)*o)+u>d)throw F(Z);l=s/o}else l=f(t),a=new B(s=l*o);for(I(e,{buffer:a,byteOffset:u,byteLength:s,length:l,view:new H(a)});c{pu()("Float32",(function(e){return function(t,i,n){return e(this,t,i,n)}}))})),vie=Q((()=>{pu()("Float64",(function(e){return function(t,i,n){return e(this,t,i,n)}}))})),yie=Q((()=>{pu()("Int8",(function(e){return function(t,i,n){return e(this,t,i,n)}}))})),xie=Q((()=>{pu()("Int16",(function(e){return function(t,i,n){return e(this,t,i,n)}}))})),bie=Q((()=>{pu()("Int32",(function(e){return function(t,i,n){return e(this,t,i,n)}}))})),Eie=Q((()=>{pu()("Uint8",(function(e){return function(t,i,n){return e(this,t,i,n)}}))})),_ie=Q((()=>{pu()("Uint8",(function(e){return function(t,i,n){return e(this,t,i,n)}}),!0)})),Tie=Q((()=>{pu()("Uint16",(function(e){return function(t,i,n){return e(this,t,i,n)}}))})),wie=Q((()=>{pu()("Uint32",(function(e){return function(t,i,n){return e(this,t,i,n)}}))})),Mie=Q((()=>{"use strict";var e=$r(),t=wi(),i=Is(),n=e.aTypedArray;(0,e.exportTypedArrayMethod)("at",(function(e){var r=n(this),a=t(r),s=i(e),o=s>=0?s:a+s;return o<0||o>=a?void 0:r[o]}))})),Aie=Q((()=>{"use strict";var e=sn(),t=$r(),i=e(IL()),n=t.aTypedArray;(0,t.exportTypedArrayMethod)("copyWithin",(function(e,t){return i(n(this),e,t,arguments.length>2?arguments[2]:void 0)}))})),Pie=Q((()=>{"use strict";var e=$r(),t=Us().every,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("every",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),Lie=Q((()=>{"use strict";var e=$r(),t=Aw(),i=Ek(),n=oc(),r=wr(),a=sn(),s=Yt(),o=e.aTypedArray,l=e.exportTypedArrayMethod,h=a("".slice);l("fill",(function(e){var a=arguments.length;o(this);var s="Big"===h(n(this),0,3)?i(e):+e;return r(t,this,s,a>1?arguments[1]:void 0,a>2?arguments[2]:void 0)}),s((function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e})))})),Oie=Q(((e,t)=>{var i=wi();t.exports=function(e,t){for(var n=0,r=i(t),a=new e(r);r>n;)a[n]=t[n++];return a}})),_x=Q(((e,t)=>{var i=$r(),n=Up(),r=i.aTypedArrayConstructor,a=i.getTypedArrayConstructor;t.exports=function(e){return r(n(e,a(e)))}})),Bie=Q(((e,t)=>{var i=Oie(),n=_x();t.exports=function(e,t){return i(n(e),t)}})),Hie=Q((()=>{"use strict";var e=$r(),t=Us().filter,i=Bie(),n=e.aTypedArray;(0,e.exportTypedArrayMethod)("filter",(function(e){var r=t(n(this),e,arguments.length>1?arguments[1]:void 0);return i(this,r)}))})),zie=Q((()=>{"use strict";var e=$r(),t=Us().find,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("find",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),qie=Q((()=>{"use strict";var e=$r(),t=Us().findIndex,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("findIndex",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),jie=Q((()=>{"use strict";var e=$r(),t=F1().findLast,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("findLast",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),Yie=Q((()=>{"use strict";var e=$r(),t=F1().findLastIndex,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("findLastIndex",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),Zie=Q((()=>{"use strict";var e=$r(),t=Us().forEach,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("forEach",(function(e){t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),Kie=Q((()=>{"use strict";var e=DS();(0,$r().exportTypedArrayStaticMethod)("from",_k(),e)})),Qie=Q((()=>{"use strict";var e=$r(),t=Dg().includes,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("includes",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),tse=Q((()=>{"use strict";var e=$r(),t=Dg().indexOf,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("indexOf",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),ase=Q((()=>{"use strict";var e=In(),t=Yt(),i=sn(),n=$r(),r=V1(),a=kr()("iterator"),s=e.Uint8Array,o=i(r.values),l=i(r.keys),h=i(r.entries),c=n.aTypedArray,u=n.exportTypedArrayMethod,d=s&&s.prototype,p=!t((function(){d[a].call([1])})),f=!!d&&d.values&&d[a]===d.values&&"values"===d.values.name,m=function(){return o(c(this))};u("entries",(function(){return h(c(this))}),p),u("keys",(function(){return l(c(this))}),p),u("values",m,p||!f,{name:"values"}),u(a,m,p||!f,{name:"values"})})),lse=Q((()=>{"use strict";var e=$r(),t=sn(),i=e.aTypedArray,n=e.exportTypedArrayMethod,r=t([].join);n("join",(function(e){return r(i(this),e)}))})),use=Q((()=>{"use strict";var e=$r(),t=Fo(),i=jL(),n=e.aTypedArray;(0,e.exportTypedArrayMethod)("lastIndexOf",(function(e){var r=arguments.length;return t(i,n(this),r>1?[e,arguments[1]]:[e])}))})),dse=Q((()=>{"use strict";var e=$r(),t=Us().map,i=_x(),n=e.aTypedArray;(0,e.exportTypedArrayMethod)("map",(function(e){return t(n(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(i(e))(t)}))}))})),pse=Q((()=>{"use strict";var e=$r(),t=DS(),i=e.aTypedArrayConstructor;(0,e.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(i(this))(t);t>e;)n[e]=arguments[e++];return n}),t)})),gse=Q((()=>{"use strict";var e=$r(),t=z1().left,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("reduce",(function(e){var n=arguments.length;return t(i(this),e,n,n>1?arguments[1]:void 0)}))})),yse=Q((()=>{"use strict";var e=$r(),t=z1().right,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("reduceRight",(function(e){var n=arguments.length;return t(i(this),e,n,n>1?arguments[1]:void 0)}))})),bse=Q((()=>{"use strict";var e=$r(),t=e.aTypedArray,i=e.exportTypedArrayMethod,n=Math.floor;i("reverse",(function(){for(var e,i=this,r=t(i).length,a=n(r/2),s=0;s{"use strict";var e=In(),t=wr(),i=$r(),n=wi(),r=bk(),a=ci(),s=Yt(),o=e.RangeError,l=e.Int8Array,h=l&&l.prototype,c=h&&h.set,u=i.aTypedArray,d=i.exportTypedArrayMethod,p=!s((function(){var e=new Uint8ClampedArray(2);return t(c,e,{length:1,0:3},1),3!==e[1]})),f=p&&i.NATIVE_ARRAY_BUFFER_VIEWS&&s((function(){var e=new l(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));d("set",(function(e){u(this);var i=r(arguments.length>1?arguments[1]:void 0,1),s=a(e);if(p)return t(c,this,s,i);var l=this.length,h=n(s),d=0;if(h+i>l)throw o("Wrong length");for(;d{"use strict";var e=$r(),t=_x(),i=Yt(),n=Bd(),r=e.aTypedArray;(0,e.exportTypedArrayMethod)("slice",(function(e,i){for(var a=n(r(this),e,i),s=t(this),o=0,l=a.length,h=new s(l);l>o;)h[o]=a[o++];return h}),i((function(){new Int8Array(1).slice()})))})),Pse=Q((()=>{"use strict";var e=$r(),t=Us().some,i=e.aTypedArray;(0,e.exportTypedArrayMethod)("some",(function(e){return t(i(this),e,arguments.length>1?arguments[1]:void 0)}))})),Fse=Q((()=>{"use strict";var e=In(),t=yh(),i=Yt(),n=Ps(),r=kw(),a=$r(),s=$L(),o=ZL(),l=iu(),h=Fw(),c=a.aTypedArray,u=a.exportTypedArrayMethod,d=e.Uint16Array,p=d&&t(d.prototype.sort),f=!(!p||i((function(){p(new d(2),null)}))&&i((function(){p(new d(2),{})}))),m=!!p&&!i((function(){if(l)return l<74;if(s)return s<67;if(o)return!0;if(h)return h<602;var e,t,i=new d(516),n=Array(516);for(e=0;e<516;e++)t=e%4,i[e]=515-e,n[e]=e-2*t+3;for(p(i,(function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(i[e]!==n[e])return!0}));u("sort",(function(e){return void 0!==e&&n(e),m?p(this,e):r(c(this),(t=e,function(e,i){return void 0!==t?+t(e,i)||0:i!=i?-1:e!=e?1:0===e&&0===i?1/e>0&&1/i<0?1:-1:e>i}));var t}),!m||f)})),Use=Q((()=>{"use strict";var e=$r(),t=Qa(),i=au(),n=_x(),r=e.aTypedArray;(0,e.exportTypedArrayMethod)("subarray",(function(e,a){var s=r(this),o=s.length,l=i(e,o);return new(n(s))(s.buffer,s.byteOffset+l*s.BYTES_PER_ELEMENT,t((void 0===a?o:i(a,o))-l))}))})),qse=Q((()=>{"use strict";var e=In(),t=Fo(),i=$r(),n=Yt(),r=Bd(),a=e.Int8Array,s=i.aTypedArray,o=i.exportTypedArrayMethod,l=[].toLocaleString,h=!!a&&n((function(){l.call(new a(1))}));o("toLocaleString",(function(){return t(l,h?r(s(this)):s(this),r(arguments))}),n((function(){return[1,2].toLocaleString()!=new a([1,2]).toLocaleString()}))||!n((function(){a.prototype.toLocaleString.call([1,2])})))})),jse=Q((()=>{"use strict";var e=$r().exportTypedArrayMethod,t=Yt(),i=In(),n=sn(),r=i.Uint8Array,a=r&&r.prototype||{},s=[].toString,o=n([].join);t((function(){s.call({})}))&&(s=function(){return o(this)});var l=a.toString!=s;e("toString",s,l)})),Kse=Q((()=>{"use strict";var e=rt(),t=sn(),i=Fr(),n=String.fromCharCode,r=t("".charAt),a=t(/./.exec),s=t("".slice),o=/^[\da-f]{2}$/i,l=/^[\da-f]{4}$/i;e({global:!0},{unescape:function(e){for(var t,h,c=i(e),u="",d=c.length,p=0;p{"use strict";var i=sn(),n=jg(),r=jd().getWeakData,a=uc(),s=br(),o=Aa(),l=Cr(),h=cc(),c=Us(),u=Yr(),d=bs(),p=d.set,f=d.getterFor,m=c.find,g=c.findIndex,v=i([].splice),y=0,x=function(e){return e.frozen||(e.frozen=new b)},b=function(){this.entries=[]},_=function(e,t){return m(e.entries,(function(e){return e[0]===t}))};b.prototype={get:function(e){var t=_(this,e);if(t)return t[1]},has:function(e){return!!_(this,e)},set:function(e,t){var i=_(this,e);i?i[1]=t:this.entries.push([e,t])},delete:function(e){var t=g(this.entries,(function(t){return t[0]===e}));return~t&&v(this.entries,t,1),!!~t}},t.exports={getConstructor:function(e,t,i,c){var d=e((function(e,n){a(e,m),p(e,{type:t,id:y++,frozen:void 0}),o(n)||h(n,e[c],{that:e,AS_ENTRIES:i})})),m=d.prototype,g=f(t),v=function(e,t,i){var n=g(e),a=r(s(t),!0);return!0===a?x(n).set(t,i):a[n.id]=i,e};return n(m,{delete:function(e){var t=g(this);if(!l(e))return!1;var i=r(e);return!0===i?x(t).delete(e):i&&u(i,t.id)&&delete i[t.id]},has:function(e){var t=g(this);if(!l(e))return!1;var i=r(e);return!0===i?x(t).has(e):i&&u(i,t.id)}}),n(m,i?{get:function(e){var t=g(this);if(l(e)){var i=r(e);return!0===i?x(t).get(e):i?i[t.id]:void 0}},set:function(e,t){return v(this,e,t)}}:{add:function(e){return v(this,e,!0)}}),d}}})),fae=Q((()=>{"use strict";var e,t,i,n,r=Vp(),a=In(),s=sn(),o=jg(),l=jd(),h=X1(),c=qk(),u=Cr(),d=bs().enforce,p=Yt(),f=D3(),m=Object,g=Array.isArray,v=m.isExtensible,y=m.isFrozen,x=m.isSealed,b=m.freeze,_=m.seal,w={},S={},M=!a.ActiveXObject&&"ActiveXObject"in a,E=function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},T=h("WeakMap",E,c),A=T.prototype,C=s(A.set);f&&(M?(e=c.getConstructor(E,"WeakMap",!0),l.enable(),t=s(A.delete),i=s(A.has),n=s(A.get),o(A,{delete:function(i){if(u(i)&&!v(i)){var n=d(this);return n.frozen||(n.frozen=new e),t(this,i)||n.frozen.delete(i)}return t(this,i)},has:function(t){if(u(t)&&!v(t)){var n=d(this);return n.frozen||(n.frozen=new e),i(this,t)||n.frozen.has(t)}return i(this,t)},get:function(t){if(u(t)&&!v(t)){var r=d(this);return r.frozen||(r.frozen=new e),i(this,t)?n(this,t):r.frozen.get(t)}return n(this,t)},set:function(t,n){if(u(t)&&!v(t)){var r=d(this);r.frozen||(r.frozen=new e),i(this,t)?C(this,t,n):r.frozen.set(t,n)}else C(this,t,n);return this}})):r&&p((function(){var e=b([]);return C(new T,e,1),!y(e)}))&&o(A,{set:function(e,t){var i;return g(e)&&(y(e)?i=w:x(e)&&(i=S)),C(this,e,t),i==w&&b(e),i==S&&_(e),this}}))})),pae=Q((()=>{fae()})),mae=Q((()=>{"use strict";X1()("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),qk())})),gae=Q((()=>{mae()})),Xk=Q(((e,t)=>{var i,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r={};for(i=0;i<66;i++)r[n.charAt(i)]=i;t.exports={itoc:n,ctoi:r}})),Sae=Q((()=>{var e=rt(),t=In(),i=qi(),n=sn(),r=wr(),a=Yt(),s=Fr(),o=Yr(),l=Ah(),h=Xk().ctoi,c=/[^\d+/a-z]/i,u=/[\t\n\f\r ]+/g,d=/[=]+$/,p=i("atob"),f=String.fromCharCode,m=n("".charAt),g=n("".replace),v=n(c.exec),y=a((function(){return""!==p(" ")})),x=!a((function(){p("a")})),b=!y&&!x&&!a((function(){p()})),_=!y&&!x&&1!==p.length;e({global:!0,bind:!0,enumerable:!0,forced:y||x||b||_},{atob:function(e){if(l(arguments.length,1),b||_)return r(p,t,e);var n,a,y=g(s(e),u,""),x="",w=0,S=0;if(y.length%4==0&&(y=g(y,d,"")),y.length%4==1||v(c,y))throw new(i("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;n=m(y,w++);)o(h,n)&&(a=S%4?64*a+h[n]:h[n],S++%4&&(x+=f(255&a>>(-2*S&6))));return x}})})),Oae=Q((()=>{var e=rt(),t=In(),i=qi(),n=sn(),r=wr(),a=Yt(),s=Fr(),o=Ah(),l=Xk().itoc,h=i("btoa"),c=n("".charAt),u=n("".charCodeAt),d=!!h&&!a((function(){h()})),p=!!h&&a((function(){return"bnVsbA=="!==h(null)})),f=!!h&&1!==h.length;e({global:!0,bind:!0,enumerable:!0,forced:d||p||f},{btoa:function(e){if(o(arguments.length,1),d||p||f)return r(h,t,s(e));for(var n,a,m=s(e),g="",v=0,y=l;c(m,v)||(y="=",v%1);){if((a=u(m,v+=3/4))>255)throw new(i("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");g+=c(y,63&(n=n<<8|a)>>8-v%1*8)}return g}})})),Qk=Q(((e,t)=>{t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}})),tF=Q(((e,t)=>{var i=E1()("span").classList,n=i&&i.constructor&&i.constructor.prototype;t.exports=n===Object.prototype?void 0:n})),Vae=Q((()=>{var e,t=In(),i=Qk(),n=tF(),r=kL(),a=ca(),s=function(e){if(e&&e.forEach!==r)try{a(e,"forEach",r)}catch(t){e.forEach=r}};for(e in i)i[e]&&s(t[e]&&t[e].prototype);s(n)})),Xae=Q((()=>{var e,t=In(),i=Qk(),n=tF(),r=V1(),a=ca(),s=kr(),o=s("iterator"),l=s("toStringTag"),h=r.values,c=function(e,t){if(e){if(e[o]!==h)try{a(e,o,h)}catch(t){e[o]=h}if(e[l]||a(e,l,t),i[t])for(var n in r)if(e[n]!==r[n])try{a(e,n,r[n])}catch(t){e[n]=r[n]}}};for(e in i)c(t[e]&&t[e].prototype,e);c(n,"DOMTokenList")})),$ae=Q(((e,t)=>{var i=uu();t.exports=function(e){try{if(i)return Function('return require("'+e+'")')()}catch(e){}}})),aF=Q(((e,t)=>{t.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}})),ooe=Q((()=>{"use strict";var e=rt(),t=$ae(),i=qi(),n=Yt(),r=eo(),a=Oo(),s=fi().f,o=$i(),l=Xd(),h=Yr(),c=uc(),u=br(),d=EL(),p=Hg(),f=aF(),m=bw(),g=bs(),v=rr(),y=ss(),x="DOMException",b="DATA_CLONE_ERR",_=i("Error"),w=i(x)||function(){try{(new(i("MessageChannel")||t("worker_threads").MessageChannel)).port1.postMessage(new WeakMap)}catch(e){if(e.name==b&&25==e.code)return e.constructor}}(),S=w&&w.prototype,M=_.prototype,E=g.set,T=g.getterFor(x),A="stack"in _(x),C=function(e){return h(f,e)&&f[e].m?f[e].c:0},P=function(){c(this,R);var e=arguments.length,t=p(e<1?void 0:arguments[0]),i=p(e<2?void 0:arguments[1],"Error"),n=C(i);if(E(this,{type:x,name:i,message:t,code:n}),v||(this.name=i,this.message=t,this.code=n),A){var r=_(t);r.name=x,s(this,"stack",a(1,m(r.stack,1)))}},R=P.prototype=r(M),D=function(e){return{enumerable:!0,configurable:!0,get:e}},L=function(e){return D((function(){return T(this)[e]}))};v&&(l(R,"code",L("code")),l(R,"message",L("message")),l(R,"name",L("name"))),s(R,"constructor",a(1,P));var I=n((function(){return!(new w instanceof _)})),O=I||n((function(){return M.toString!==d||"2: 1"!==String(new w(1,2))})),k=I||n((function(){return 25!==new w(1,"DataCloneError").code})),N=I||25!==w[b]||25!==S[b],U=y?O||k||N:I;e({global:!0,constructor:!0,forced:U},{DOMException:U?P:w});var F,B,z,H,V=i(x),j=V.prototype;for(H in O&&(y||w===V)&&o(j,"toString",d),k&&v&&w===V&&l(j,"code",D((function(){return C(u(this).name)}))),f)h(f,H)&&(B=(F=f[H]).s,z=a(6,F.c),h(V,B)||s(V,B,z),h(j,B)||s(j,B,z))})),poe=Q((()=>{"use strict";var e=rt(),t=In(),i=qi(),n=Oo(),r=fi().f,a=Yr(),s=uc(),o=kp(),l=Hg(),h=aF(),c=bw(),u=rr(),d=ss(),p="DOMException",f=i("Error"),m=i(p),g=function(){s(this,v);var e=arguments.length,t=l(e<1?void 0:arguments[0]),i=l(e<2?void 0:arguments[1],"Error"),a=new m(t,i),h=f(t);return h.name=p,r(a,"stack",n(1,c(h.stack,1))),o(a,this,g),a},v=g.prototype=m.prototype,y="stack"in f(p),x="stack"in new m(1,2),b=m&&u&&Object.getOwnPropertyDescriptor(t,p),_=!(!b||b.writable&&b.configurable),w=y&&!_&&!x;e({global:!0,constructor:!0,forced:d||w},{DOMException:w?g:m});var S,M,E,T=i(p),A=T.prototype;if(A.constructor!==T)for(E in d||r(A,"constructor",n(1,T)),h)a(h,E)&&(a(T,M=(S=h[E]).s)||r(T,M,n(6,S.c)))})),goe=Q((()=>{var e=qi(),t="DOMException";to()(e(t),t)})),yoe=Q((()=>{var e=rt(),t=In(),i=sx().clear;e({global:!0,bind:!0,enumerable:!0,forced:t.clearImmediate!==i},{clearImmediate:i})})),boe=Q(((e,t)=>{t.exports="function"==typeof Bun&&Bun&&"string"==typeof Bun.version})),iM=Q(((e,t)=>{"use strict";var i,n=In(),r=Fo(),a=Vr(),s=boe(),o=ru(),l=Bd(),h=Ah(),c=n.Function,u=/MSIE .\./.test(o)||s&&((i=n.Bun.version.split(".")).length<3||0==i[0]&&(i[1]<3||3==i[1]&&0==i[2]));t.exports=function(e,t){var i=t?2:1;return u?function(n,s){var o=h(arguments.length,1)>i,u=a(n)?n:c(n),d=o?l(arguments,i):[],p=o?function(){r(u,this,d)}:u;return t?e(p,s):e(p)}:e}})),Moe=Q((()=>{var e=rt(),t=In(),i=sx().set,n=iM(),r=t.setImmediate?n(i,!1):i;e({global:!0,bind:!0,enumerable:!0,forced:t.setImmediate!==r},{setImmediate:r})})),Roe=Q((()=>{yoe(),Moe()})),Aoe=Q((()=>{var e=rt(),t=In(),i=xO(),n=Ps(),r=Ah(),a=uu(),s=t.process;e({global:!0,enumerable:!0,dontCallGetSet:!0},{queueMicrotask:function(e){r(arguments.length,1),n(e);var t=a&&s.domain;i(t?t.bind(e):e)}})})),Poe=Q((()=>{"use strict";var e,t=rt(),i=In(),n=Xd(),r=rr(),a=TypeError,s=Object.defineProperty,o=i.self!==i;try{r?(e=Object.getOwnPropertyDescriptor(i,"self"),(o||!e||!e.get||!e.enumerable)&&n(i,"self",{get:function(){return i},set:function(e){if(this!==i)throw a("Illegal invocation");s(i,"self",{value:e,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})):t({global:!0,simple:!0,forced:o},{self:i})}catch(e){}})),Loe=Q(((e,t)=>{var i=sn(),n=Map.prototype;t.exports={Map:Map,set:i(n.set),get:i(n.get),has:i(n.has),remove:i(n.delete),proto:n}})),Ooe=Q(((e,t)=>{var i=sn(),n=Set.prototype;t.exports={Set:Set,add:i(n.add),has:i(n.has),remove:i(n.delete),proto:n,$has:n.has,$keys:n.keys}})),qoe=Q((()=>{var e,t=ss(),i=rt(),n=In(),r=qi(),a=sn(),s=Yt(),o=Cp(),l=Vr(),h=Lp(),c=Aa(),u=Cr(),d=Od(),p=cc(),f=br(),m=oc(),g=Yr(),v=ou(),y=ca(),x=wi(),b=Ah(),_=u0(),w=Loe(),S=Ooe(),M=gL(),E=iu(),T=bO(),A=dS(),C=uu(),P=n.Object,R=n.Array,D=n.Date,L=n.Error,I=n.EvalError,O=n.RangeError,k=n.ReferenceError,N=n.SyntaxError,U=n.TypeError,F=n.URIError,B=n.PerformanceMark,z=n.WebAssembly,H=z&&z.CompileError||L,V=z&&z.LinkError||L,j=z&&z.RuntimeError||L,G=r("DOMException"),W=w.Map,X=w.has,Y=w.get,q=w.set,Z=S.Set,Q=S.add,J=r("Object","keys"),K=a([].push),$=a((!0).valueOf),ee=a(1..valueOf),te=a("".valueOf),ie=a(D.prototype.getTime),ne=o("structuredClone"),re="DataCloneError",ae="Transferring",se=function(e){return!s((function(){var t=new n.Set([7]),i=e(t),r=e(P(7));return i==t||!i.has(7)||"object"!=typeof r||7!=r}))&&e},oe=function(e,t){return!s((function(){var i=new t,n=e({a:i,b:i});return!(n&&n.a===n.b&&n.a instanceof t&&n.a.stack===i.stack)}))},le=n.structuredClone,he=t||!oe(le,L)||!oe(le,G)||(e=le,!!s((function(){var t=e(new n.AggregateError([1],ne,{cause:3}));return"AggregateError"!=t.name||1!=t.errors[0]||t.message!=ne||3!=t.cause}))),ce=!le&&se((function(e){return new B(ne,{detail:e}).detail})),ue=se(le)||ce,de=function(e){throw new G("Uncloneable type: "+e,re)},pe=function(e,t){throw new G((t||"Cloning")+" of "+e+" cannot be properly polyfilled in this engine",re)},fe=function(e,t){if(d(e)&&de("Symbol"),!u(e))return e;if(t){if(X(t,e))return Y(t,e)}else t=new W;var i,a,s,o,h,c,p,f,b,w,S=m(e),E=!1;switch(S){case"Array":s=R(x(e)),E=!0;break;case"Object":s={},E=!0;break;case"Map":s=new W,E=!0;break;case"Set":s=new Z,E=!0;break;case"RegExp":s=new RegExp(e.source,_(e));break;case"Error":switch(a=e.name){case"AggregateError":s=r("AggregateError")([]);break;case"EvalError":s=I();break;case"RangeError":s=O();break;case"ReferenceError":s=k();break;case"SyntaxError":s=N();break;case"TypeError":s=U();break;case"URIError":s=F();break;case"CompileError":s=H();break;case"LinkError":s=V();break;case"RuntimeError":s=j();break;default:s=L()}E=!0;break;case"DOMException":s=new G(e.message,e.name),E=!0;break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":i=n[S],u(i)||pe(S),s=new i(fe(e.buffer,t),e.byteOffset,"DataView"===S?e.byteLength:e.length);break;case"DOMQuad":try{s=new DOMQuad(fe(e.p1,t),fe(e.p2,t),fe(e.p3,t),fe(e.p4,t))}catch(t){ue?s=ue(e):pe(S)}break;case"FileList":if(o=function(){var e;try{e=new n.DataTransfer}catch(t){try{e=new n.ClipboardEvent("").clipboardData}catch(e){}}return e&&e.items&&e.files?e:null}(),o){for(h=0,c=x(e);h92||C&&E>94||T&&E>97)return!1;var e=new ArrayBuffer(8),t=le(e,{transfer:[e]});return 0!=e.byteLength||8!=t.byteLength})),ge=function(e,t){if(!u(e))throw U("Transfer option cannot be converted to a sequence");var i=[];p(e,(function(e){K(i,f(e))}));var r,a,s,o,c,d,g=0,v=x(i);if(me)for(o=le(i,{transfer:i});g1&&!c(arguments[1])?f(arguments[1]):void 0,n=i?i.transfer:void 0;return void 0!==n&&(t=new W,ge(n,t)),fe(e,t)}})})),Xoe=Q((()=>{var e=rt(),t=In(),i=iM()(t.setInterval,!0);e({global:!0,bind:!0,forced:t.setInterval!==i},{setInterval:i})})),Zoe=Q((()=>{var e=rt(),t=In(),i=iM()(t.setTimeout,!0);e({global:!0,bind:!0,forced:t.setTimeout!==i},{setTimeout:i})})),Koe=Q((()=>{Xoe(),Zoe()})),kF=Q(((e,t)=>{var i=Yt(),n=kr(),r=ss(),a=n("iterator");t.exports=!i((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,i="";return e.pathname="c%20d",t.forEach((function(e,n){t.delete("b"),i+=n+e})),r&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[a]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://\u0442\u0435\u0441\u0442").host||"#%D0%B1"!==new URL("http://a#\u0431").hash||"a1c3"!==i||"x"!==new URL("http://x",void 0).host}))})),ole=Q(((e,t)=>{var i=sn(),n=2147483647,r=/[^\0-\u007E]/,a=/[.\u3002\uFF0E\uFF61]/g,s="Overflow: input needs wider integers to process",o=RangeError,l=i(a.exec),h=Math.floor,c=String.fromCharCode,u=i("".charCodeAt),d=i([].join),p=i([].push),f=i("".replace),m=i("".split),g=i("".toLowerCase),v=function(e){return e+22+75*(e<26)},y=function(e,t,i){var n=0;for(e=i?h(e/700):e>>1,e+=h(e/t);e>455;)e=h(e/35),n+=36;return h(n+36*e/(e+38))},x=function(e){var t=[];e=function(e){for(var t=[],i=0,n=e.length;i=55296&&r<=56319&&i=l&&rh((n-f)/_))throw o(s);for(f+=(b-l)*_,l=b,i=0;in)throw o(s);if(r==l){for(var w=f,S=36;;){var M=S<=m?1:S>=m+26?26:S-m;if(w{"use strict";V1();var i=rt(),n=In(),r=wr(),a=sn(),s=rr(),o=kF(),l=$i(),h=jg(),c=to(),u=Cw(),d=bs(),p=uc(),f=Vr(),m=Yr(),g=dl(),v=oc(),y=br(),x=Cr(),b=Fr(),_=eo(),w=Oo(),S=O1(),M=zg(),E=Ah(),T=kr(),A=kw(),C=T("iterator"),P="URLSearchParams",R=P+"Iterator",D=d.set,L=d.getterFor(P),I=d.getterFor(R),O=Object.getOwnPropertyDescriptor,k=function(e){if(!s)return n[e];var t=O(n,e);return t&&t.value},N=k("fetch"),U=k("Request"),F=k("Headers"),B=U&&U.prototype,z=F&&F.prototype,H=n.RegExp,V=n.TypeError,j=n.decodeURIComponent,G=n.encodeURIComponent,W=a("".charAt),X=a([].join),Y=a([].push),q=a("".replace),Z=a([].shift),Q=a([].splice),J=a("".split),K=a("".slice),$=/\+/g,ee=Array(4),te=function(e){return ee[e-1]||(ee[e-1]=H("((?:%[\\da-f]{2}){"+e+"})","gi"))},ie=function(e){try{return j(e)}catch(t){return e}},ne=function(e){var t=q(e,$," "),i=4;try{return j(t)}catch(e){for(;i;)t=q(t,te(i--),ie);return t}},re=/[!'()~]|%20/g,ae={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},se=function(e){return ae[e]},oe=function(e){return q(G(e),re,se)},le=u((function(e,t){D(this,{type:R,iterator:S(L(e).entries),kind:t})}),"Iterator",(function(){var e=I(this),t=e.kind,i=e.iterator.next(),n=i.value;return i.done||(i.value="keys"===t?n.key:"values"===t?n.value:[n.key,n.value]),i}),!0),he=function(e){this.entries=[],this.url=null,void 0!==e&&(x(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===W(e,0)?K(e,1):e:b(e)))};he.prototype={type:P,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,i,n,a,s,o,l,h=M(e);if(h)for(i=(t=S(e,h)).next;!(n=r(i,t)).done;){if(s=(a=S(y(n.value))).next,(o=r(s,a)).done||(l=r(s,a)).done||!r(s,a).done)throw V("Expected sequence with length 2");Y(this.entries,{key:b(o.value),value:b(l.value)})}else for(var c in e)m(e,c)&&Y(this.entries,{key:c,value:b(e[c])})},parseQuery:function(e){if(e)for(var t,i,n=J(e,"&"),r=0;r0?arguments[0]:void 0))},me=fe.prototype;h(me,{append:function(e,t){E(arguments.length,2);var i=L(this);Y(i.entries,{key:b(e),value:b(t)}),i.updateURL()},delete:function(e){E(arguments.length,1);for(var t=L(this),i=t.entries,n=b(e),r=0;rt.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,i=L(this).entries,n=g(e,arguments.length>1?arguments[1]:void 0),r=0;r1?de(arguments[1]):{})}}),f(U)&&(pe=function(e){return p(this,B),new U(e,arguments.length>1?de(arguments[1]):{})},B.constructor=pe,pe.prototype=B,i({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:pe}))),t.exports={URLSearchParams:fe,getState:L}})),jle=Q((()=>{"use strict";ek();var e,t=rt(),i=rr(),n=kF(),r=In(),a=dl(),s=sn(),o=$i(),l=Xd(),h=uc(),c=Yr(),u=ZD(),d=FL(),p=Fg(),f=fx().codeAt,m=ole(),g=Fr(),v=to(),y=Ah(),x=$F(),b=bs(),_=b.set,w=b.getterFor("URL"),S=x.URLSearchParams,M=x.getState,E=r.URL,T=r.TypeError,A=r.parseInt,C=Math.floor,P=Math.pow,R=s("".charAt),D=s(/./.exec),L=s([].join),I=s(1..toString),O=s([].pop),k=s([].push),N=s("".replace),U=s([].shift),F=s("".split),B=s("".slice),z=s("".toLowerCase),H=s([].unshift),V="Invalid scheme",j="Invalid host",G="Invalid port",W=/[a-z]/i,X=/[\d+-.a-z]/i,Y=/\d/,q=/^0x/i,Z=/^[0-7]+$/,Q=/^\d+$/,J=/^[\da-f]+$/i,K=/[\0\t\n\r #%/:<>?@[\\\]^|]/,$=/[\0\t\n\r #/:<>?@[\\\]^|]/,ee=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,te=/[\t\n\r]/g,ie=function(e){var t,i,n,r;if("number"==typeof e){for(t=[],i=0;i<4;i++)H(t,e%256),e=C(e/256);return L(t,".")}if("object"==typeof e){for(t="",n=function(e){for(var t=null,i=1,n=null,r=0,a=0;a<8;a++)0!==e[a]?(r>i&&(t=n,i=r),n=null,r=0):(null===n&&(n=a),++r);return r>i&&(t=n,i=r),t}(e),i=0;i<8;i++)r&&0===e[i]||(r&&(r=!1),n===i?(t+=i?":":"::",r=!0):(t+=I(e[i],16),i<7&&(t+=":")));return"["+t+"]"}return e},ne={},re=u({},ne,{" ":1,'"':1,"<":1,">":1,"`":1}),ae=u({},re,{"#":1,"?":1,"{":1,"}":1}),se=u({},ae,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),oe=function(e,t){var i=f(e,0);return i>32&&i<127&&!c(t,e)?e:encodeURIComponent(e)},le={ftp:21,file:null,http:80,https:443,ws:80,wss:443},he=function(e,t){var i;return 2==e.length&&D(W,R(e,0))&&(":"==(i=R(e,1))||!t&&"|"==i)},ce=function(e){var t;return e.length>1&&he(B(e,0,2))&&(2==e.length||"/"===(t=R(e,2))||"\\"===t||"?"===t||"#"===t)},ue=function(e){return"."===e||"%2e"===z(e)},de=function(e){return".."===(e=z(e))||"%2e."===e||".%2e"===e||"%2e%2e"===e},pe={},fe={},me={},ge={},ve={},ye={},xe={},be={},_e={},we={},Se={},Me={},Ee={},Te={},Ae={},Ce={},Pe={},Re={},De={},Le={},Ie={},Oe=function(e,t,i){var n,r,a,s=g(e);if(t){if(r=this.parse(s))throw T(r);this.searchParams=null}else{if(void 0!==i&&(n=new Oe(i,!0)),r=this.parse(s,null,n))throw T(r);(a=M(new S)).bindURL(this),this.searchParams=a}};Oe.prototype={type:"URL",parse:function(t,i,n){var r,a,s,o,l=this,h=i||pe,u=0,f="",m=!1,v=!1,y=!1;for(t=g(t),i||(l.scheme="",l.username="",l.password="",l.host=null,l.port=null,l.path=[],l.query=null,l.fragment=null,l.cannotBeABaseURL=!1,t=N(t,ee,"")),t=N(t,te,""),r=d(t);u<=r.length;){switch(a=r[u],h){case pe:if(!a||!D(W,a)){if(i)return V;h=me;continue}f+=z(a),h=fe;break;case fe:if(a&&(D(X,a)||"+"==a||"-"==a||"."==a))f+=z(a);else{if(":"!=a){if(i)return V;f="",h=me,u=0;continue}if(i&&(l.isSpecial()!=c(le,f)||"file"==f&&(l.includesCredentials()||null!==l.port)||"file"==l.scheme&&!l.host))return;if(l.scheme=f,i)return void(l.isSpecial()&&le[l.scheme]==l.port&&(l.port=null));f="","file"==l.scheme?h=Te:l.isSpecial()&&n&&n.scheme==l.scheme?h=ge:l.isSpecial()?h=be:"/"==r[u+1]?(h=ve,u++):(l.cannotBeABaseURL=!0,k(l.path,""),h=De)}break;case me:if(!n||n.cannotBeABaseURL&&"#"!=a)return V;if(n.cannotBeABaseURL&&"#"==a){l.scheme=n.scheme,l.path=p(n.path),l.query=n.query,l.fragment="",l.cannotBeABaseURL=!0,h=Ie;break}h="file"==n.scheme?Te:ye;continue;case ge:if("/"!=a||"/"!=r[u+1]){h=ye;continue}h=_e,u++;break;case ve:if("/"==a){h=we;break}h=Re;continue;case ye:if(l.scheme=n.scheme,a==e)l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=p(n.path),l.query=n.query;else if("/"==a||"\\"==a&&l.isSpecial())h=xe;else if("?"==a)l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=p(n.path),l.query="",h=Le;else{if("#"!=a){l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=p(n.path),l.path.length--,h=Re;continue}l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=p(n.path),l.query=n.query,l.fragment="",h=Ie}break;case xe:if(!l.isSpecial()||"/"!=a&&"\\"!=a){if("/"!=a){l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,h=Re;continue}h=we}else h=_e;break;case be:if(h=_e,"/"!=a||"/"!=R(f,u+1))continue;u++;break;case _e:if("/"!=a&&"\\"!=a){h=we;continue}break;case we:if("@"==a){m&&(f="%40"+f),m=!0,s=d(f);for(var x=0;x65535)return G;l.port=l.isSpecial()&&w===le[l.scheme]?null:w,f=""}if(i)return;h=Pe;continue}return G}f+=a;break;case Te:if(l.scheme="file","/"==a||"\\"==a)h=Ae;else{if(!n||"file"!=n.scheme){h=Re;continue}if(a==e)l.host=n.host,l.path=p(n.path),l.query=n.query;else if("?"==a)l.host=n.host,l.path=p(n.path),l.query="",h=Le;else{if("#"!=a){ce(L(p(r,u),""))||(l.host=n.host,l.path=p(n.path),l.shortenPath()),h=Re;continue}l.host=n.host,l.path=p(n.path),l.query=n.query,l.fragment="",h=Ie}}break;case Ae:if("/"==a||"\\"==a){h=Ce;break}n&&"file"==n.scheme&&!ce(L(p(r,u),""))&&(he(n.path[0],!0)?k(l.path,n.path[0]):l.host=n.host),h=Re;continue;case Ce:if(a==e||"/"==a||"\\"==a||"?"==a||"#"==a){if(!i&&he(f))h=Re;else if(""==f){if(l.host="",i)return;h=Pe}else{if(o=l.parseHost(f))return o;if("localhost"==l.host&&(l.host=""),i)return;f="",h=Pe}continue}f+=a;break;case Pe:if(l.isSpecial()){if(h=Re,"/"!=a&&"\\"!=a)continue}else if(i||"?"!=a)if(i||"#"!=a){if(a!=e&&(h=Re,"/"!=a))continue}else l.fragment="",h=Ie;else l.query="",h=Le;break;case Re:if(a==e||"/"==a||"\\"==a&&l.isSpecial()||!i&&("?"==a||"#"==a)){if(de(f)?(l.shortenPath(),"/"!=a&&!("\\"==a&&l.isSpecial())&&k(l.path,"")):ue(f)?"/"!=a&&!("\\"==a&&l.isSpecial())&&k(l.path,""):("file"==l.scheme&&!l.path.length&&he(f)&&(l.host&&(l.host=""),f=R(f,0)+":"),k(l.path,f)),f="","file"==l.scheme&&(a==e||"?"==a||"#"==a))for(;l.path.length>1&&""===l.path[0];)U(l.path);"?"==a?(l.query="",h=Le):"#"==a&&(l.fragment="",h=Ie)}else f+=oe(a,ae);break;case De:"?"==a?(l.query="",h=Le):"#"==a?(l.fragment="",h=Ie):a!=e&&(l.path[0]+=oe(a,ne));break;case Le:i||"#"!=a?a!=e&&("'"==a&&l.isSpecial()?l.query+="%27":l.query+="#"==a?"%23":oe(a,ne)):(l.fragment="",h=Ie);break;case Ie:a!=e&&(l.fragment+=oe(a,re))}u++}},parseHost:function(e){var t,i,n;if("["==R(e,0)){if("]"!=R(e,e.length-1)||(t=function(e){var t,i,n,r,a,s,o,l=[0,0,0,0,0,0,0,0],h=0,c=null,u=0,d=function(){return R(e,u)};if(":"==d()){if(":"!=R(e,1))return;u+=2,c=++h}for(;d();){if(8==h)return;if(":"!=d()){for(t=i=0;i<4&&D(J,d());)t=16*t+A(d(),16),u++,i++;if("."==d()){if(0==i||(u-=i,h>6))return;for(n=0;d();){if(r=null,n>0){if(!("."==d()&&n<4))return;u++}if(!D(Y,d()))return;for(;D(Y,d());){if(a=A(d(),10),null===r)r=a;else{if(0==r)return;r=10*r+a}if(r>255)return;u++}l[h]=256*l[h]+r,(2==++n||4==n)&&h++}if(4!=n)return;break}if(":"==d()){if(u++,!d())return}else if(d())return;l[h++]=t}else{if(null!==c)return;u++,c=++h}}if(null!==c)for(s=h-c,h=7;0!=h&&s>0;)o=l[h],l[h--]=l[c+s-1],l[c+--s]=o;else if(8!=h)return;return l}(B(e,1,-1)),!t))return j;this.host=t}else if(this.isSpecial()){if(e=m(e),D(K,e)||(t=function(e){var t,i,n,r,a,s,o,l=F(e,".");if(l.length&&""==l[l.length-1]&&l.length--,(t=l.length)>4)return e;for(i=[],n=0;n1&&"0"==R(r,0)&&(a=D(q,r)?16:8,r=B(r,8==a?1:2)),""===r)s=0;else{if(!D(10==a?Q:8==a?Z:J,r))return e;s=A(r,a)}k(i,s)}for(n=0;n=P(256,5-t))return null}else if(s>255)return null;for(o=O(i),n=0;n1?arguments[1]:void 0,r=_(t,new Oe(e,!1,n));i||(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},Fe=Ue.prototype,Be=function(e,t){return{get:function(){return w(this)[e]()},set:t&&function(e){return w(this)[t](e)},configurable:!0,enumerable:!0}};i&&(l(Fe,"href",Be("serialize","setHref")),l(Fe,"origin",Be("getOrigin")),l(Fe,"protocol",Be("getProtocol","setProtocol")),l(Fe,"username",Be("getUsername","setUsername")),l(Fe,"password",Be("getPassword","setPassword")),l(Fe,"host",Be("getHost","setHost")),l(Fe,"hostname",Be("getHostname","setHostname")),l(Fe,"port",Be("getPort","setPort")),l(Fe,"pathname",Be("getPathname","setPathname")),l(Fe,"search",Be("getSearch","setSearch")),l(Fe,"searchParams",Be("getSearchParams")),l(Fe,"hash",Be("getHash","setHash"))),o(Fe,"toJSON",(function(){return w(this).serialize()}),{enumerable:!0}),o(Fe,"toString",(function(){return w(this).serialize()}),{enumerable:!0}),E&&(ke=E.createObjectURL,Ne=E.revokeObjectURL,ke&&o(Ue,"createObjectURL",a(ke,E)),Ne&&o(Ue,"revokeObjectURL",a(Ne,E))),v(Ue,"URL"),t({global:!0,constructor:!0,forced:!n,sham:!i},{URL:Ue})})),Xle=Q((()=>{jle()})),Yle=Q((()=>{"use strict";var e=rt(),t=wr();e({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return t(URL.prototype.toString,this)}})})),$le=Q((()=>{$F()})),Kle=Q(((e,t)=>{dW(),xW(),bW(),EW(),_W(),TW(),wW(),SW(),MW(),RW(),AW(),CW(),PW(),IW(),LW(),nj(),oj(),wj(),Aj(),Pj(),Fj(),Hj(),zj(),Wj(),jj(),Yj(),Zj(),Qj(),eX(),rX(),iX(),oX(),vX(),yX(),bX(),EX(),V1(),zX(),jX(),XX(),$X(),KX(),nY(),iY(),aY(),cY(),uY(),MY(),CY(),PY(),IY(),LY(),DY(),a$(),y$(),R$(),C$(),P$(),L$(),k$(),F$(),j$(),X$(),J$(),nZ(),iZ(),uZ(),fZ(),vZ(),yZ(),hL(),xZ(),kZ(),BZ(),VZ(),GZ(),WZ(),jZ(),$Z(),KZ(),eK(),nK(),iK(),aK(),oK(),lK(),cK(),dK(),mK(),gK(),vK(),AK(),CK(),LK(),OK(),kK(),FK(),NK(),BK(),qK(),JK(),rJ(),cJ(),dJ(),vJ(),yJ(),EJ(),TJ(),SJ(),MJ(),PJ(),IJ(),LJ(),kJ(),FJ(),NJ(),UJ(),HJ(),zJ(),qJ(),jJ(),YJ(),ZJ(),KJ(),JJ(),QJ(),oQ(),lQ(),cQ(),dQ(),fQ(),mQ(),vQ(),Aee(),Cee(),Iee(),kee(),Fee(),Gee(),jee(),Xee(),Kee(),Jee(),Qee(),ete(),tte(),nte(),rte(),lte(),ute(),hte(),Rte(),Cte(),SS(),kte(),Nte(),Hte(),Gte(),Wte(),jte(),Zte(),rne(),ane(),lne(),ek(),Ene(),Ine(),Dne(),One(),Bne(),Une(),Wne(),Zne(),Qne(),sre(),ure(),dre(),gre(),Ere(),Mre(),Pre(),Ire(),Lre(),Dre(),Ore(),kre(),Fre(),Nre(),Bre(),Ure(),Hre(),Vre(),zre(),gie(),vie(),yie(),xie(),bie(),Eie(),_ie(),Tie(),wie(),Mie(),Aie(),Pie(),Lie(),Hie(),zie(),qie(),jie(),Yie(),Zie(),Kie(),Qie(),tse(),ase(),lse(),use(),dse(),pse(),gse(),yse(),bse(),Mse(),Ase(),Pse(),Fse(),Use(),qse(),jse(),Kse(),pae(),gae(),Sae(),Oae(),Vae(),Xae(),ooe(),poe(),goe(),Roe(),Aoe(),Poe(),qoe(),Koe(),Xle(),Yle(),$le(),t.exports=dw()})),Jle=Q(((e,t)=>{var i=function(e){"use strict";var t,i=Object.prototype,n=i.hasOwnProperty,r=Object.defineProperty||function(e,t,i){e[t]=i.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",o=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function h(e,t,i){return Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{h({},"")}catch(e){h=function(e,t,i){return e[t]=i}}function c(e,t,i,n){var a=t&&t.prototype instanceof g?t:g,s=Object.create(a.prototype),o=new P(n||[]);return r(s,"_invoke",{value:E(e,i,o)}),s}function u(e,t,i){try{return{type:"normal",arg:e.call(t,i)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var d="suspendedStart",p="executing",f="completed",m={};function g(){}function v(){}function y(){}var x={};h(x,s,(function(){return this}));var b=Object.getPrototypeOf,_=b&&b(b(R([])));_&&_!==i&&n.call(_,s)&&(x=_);var w=y.prototype=g.prototype=Object.create(x);function S(e){["next","throw","return"].forEach((function(t){h(e,t,(function(e){return this._invoke(t,e)}))}))}function M(e,t){function i(r,a,s,o){var l=u(e[r],e,a);if("throw"!==l.type){var h=l.arg,c=h.value;return c&&"object"==typeof c&&n.call(c,"__await")?t.resolve(c.__await).then((function(e){i("next",e,s,o)}),(function(e){i("throw",e,s,o)})):t.resolve(c).then((function(e){h.value=e,s(h)}),(function(e){return i("throw",e,s,o)}))}o(l.arg)}var a;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){i(e,n,t,r)}))}return a=a?a.then(r,r):r()}})}function E(e,t,i){var n=d;return function(r,a){if(n===p)throw new Error("Generator is already running");if(n===f){if("throw"===r)throw a;return D()}for(i.method=r,i.arg=a;;){var s=i.delegate;if(s){var o=T(s,i);if(o){if(o===m)continue;return o}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if(n===d)throw n=f,i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n=p;var l=u(e,t,i);if("normal"===l.type){if(n=i.done?f:"suspendedYield",l.arg===m)continue;return{value:l.arg,done:i.done}}"throw"===l.type&&(n=f,i.method="throw",i.arg=l.arg)}}}function T(e,i){var n=i.method,r=e.iterator[n];if(r===t)return i.delegate=null,"throw"===n&&e.iterator.return&&(i.method="return",i.arg=t,T(e,i),"throw"===i.method)||"return"!==n&&(i.method="throw",i.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var a=u(r,e.iterator,i.arg);if("throw"===a.type)return i.method="throw",i.arg=a.arg,i.delegate=null,m;var s=a.arg;return s?s.done?(i[e.resultName]=s.value,i.next=e.nextLoc,"return"!==i.method&&(i.method="next",i.arg=t),i.delegate=null,m):s:(i.method="throw",i.arg=new TypeError("iterator result is not an object"),i.delegate=null,m)}function A(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(A,this),this.reset(!0)}function R(e){if(e){var i=e[s];if(i)return i.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function i(){for(;++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var l=n.call(s,"catchLoc"),h=n.call(s,"finallyLoc");if(l&&h){if(this.prev=0;--i){var r=this.tryEntries[i];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var i=this.tryEntries[t];if(i.finallyLoc===e)return this.complete(i.completion,i.afterLoc),C(i),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.tryLoc===e){var n=i.completion;if("throw"===n.type){var r=n.arg;C(i)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,i,n){return this.delegate={iterator:R(e),resultName:i,nextLoc:n},"next"===this.method&&(this.arg=t),m}},e}("object"==typeof t?t.exports:{});try{regeneratorRuntime=i}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=i:Function("r","regeneratorRuntime = r")(i)}})),ude=Q(((e,t)=>{!function(e,i){"use strict";"function"==typeof define&&define.amd?define(i):"object"==typeof t&&t.exports?t.exports=i():e.log=i()}(e,(function(){"use strict";var e=function(){},t="undefined",i=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"];function r(e,t){var i=e[t];if("function"==typeof i.bind)return i.bind(e);try{return Function.prototype.bind.call(i,e)}catch(t){return function(){return Function.prototype.apply.apply(i,[e,arguments])}}}function a(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function s(n){return"debug"===n&&(n="log"),typeof console!==t&&("trace"===n&&i?a:void 0!==console[n]?r(console,n):void 0!==console.log?r(console,"log"):e)}function o(t,i){for(var r=0;r=0&&i<=s.levels.SILENT))throw"log.setLevel() called with invalid level: "+i;if(a=i,!1!==r&&function(e){var i=(n[e]||"silent").toUpperCase();if(typeof window!==t&&l){try{return void(window.localStorage[l]=i)}catch(e){}try{window.document.cookie=encodeURIComponent(l)+"="+i+";"}catch(e){}}}(i),o.call(s,i,e),typeof console===t&&i{"use strict";t.exports=function(e,t,n){var r=e*t,a=i*e,s=a-(a-e),o=e-s,l=i*t,h=l-(l-t),c=t-h,u=o*c-(r-s*h-o*h-s*c);return n?(n[0]=u,n[1]=r,n):[u,r]};var i=+(Math.pow(2,27)+1)})),WH=Q(((e,t)=>{"use strict";t.exports=function(e,t){var i=0|e.length,n=0|t.length;if(1===i&&1===n)return function(e,t){var i=e+t,n=i-e,r=e-(i-n)+(t-n);return r?[r,i]:[i]}(e[0],t[0]);var r,a,s=new Array(i+n),o=0,l=0,h=0,c=Math.abs,u=e[l],d=c(u),p=t[h],f=c(p);d=n?(r=u,(l+=1){"use strict";t.exports=function(e,t,i){var n=e+t,r=n-e,a=t-r,s=e-(n-r);return i?(i[0]=s+a,i[1]=n,i):[s+a,n]}})),XH=Q(((e,t)=>{"use strict";var i=VA(),n=tfe();t.exports=function(e,t){var r=e.length;if(1===r){var a=i(e[0],t);return a[0]?a:[a[1]]}var s=new Array(2*r),o=[.1,.1],l=[.1,.1],h=0;i(e[0],t,o),o[0]&&(s[h++]=o[0]);for(var c=1;c{"use strict";t.exports=function(e){for(var t=e.length,i=e[e.length-1],n=t,r=t-2;r>=0;--r){var a=i;(l=(o=e[r])-((i=a+o)-a))&&(e[--n]=i,i=l)}var s=0;for(r=n;r{"use strict";t.exports=function(e,t){var i=0|e.length,n=0|t.length;if(1===i&&1===n)return function(e,t){var i=e+t,n=i-e,r=e-(i-n)+(t-n);return r?[r,i]:[i]}(e[0],-t[0]);var r,a,s=new Array(i+n),o=0,l=0,h=0,c=Math.abs,u=e[l],d=c(u),p=-t[h],f=c(p);d=n?(r=u,(l+=1){"use strict";var i=VA(),n=WH(),r=XH(),a=afe();function s(e,t,i,n){return function(i,r,a){var s=e(e(t(r[1],a[0]),t(-a[1],r[0])),e(t(i[1],r[0]),t(-r[1],i[0]))),o=e(t(i[1],a[0]),t(-a[1],i[0])),l=n(s,o);return l[l.length-1]}}function o(e,t,i,n){return function(r,a,s,o){var l=e(e(i(e(t(s[1],o[0]),t(-o[1],s[0])),a[2]),e(i(e(t(a[1],o[0]),t(-o[1],a[0])),-s[2]),i(e(t(a[1],s[0]),t(-s[1],a[0])),o[2]))),e(i(e(t(a[1],o[0]),t(-o[1],a[0])),r[2]),e(i(e(t(r[1],o[0]),t(-o[1],r[0])),-a[2]),i(e(t(r[1],a[0]),t(-a[1],r[0])),o[2])))),h=e(e(i(e(t(s[1],o[0]),t(-o[1],s[0])),r[2]),e(i(e(t(r[1],o[0]),t(-o[1],r[0])),-s[2]),i(e(t(r[1],s[0]),t(-s[1],r[0])),o[2]))),e(i(e(t(a[1],s[0]),t(-s[1],a[0])),r[2]),e(i(e(t(r[1],s[0]),t(-s[1],r[0])),-a[2]),i(e(t(r[1],a[0]),t(-a[1],r[0])),s[2])))),c=n(l,h);return c[c.length-1]}}function l(e,t,i,n){return function(r,a,s,o,l){var h=e(e(e(i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),s[2]),e(i(e(t(s[1],l[0]),t(-l[1],s[0])),-o[2]),i(e(t(s[1],o[0]),t(-o[1],s[0])),l[2]))),a[3]),e(i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),a[2]),e(i(e(t(a[1],l[0]),t(-l[1],a[0])),-o[2]),i(e(t(a[1],o[0]),t(-o[1],a[0])),l[2]))),-s[3]),i(e(i(e(t(s[1],l[0]),t(-l[1],s[0])),a[2]),e(i(e(t(a[1],l[0]),t(-l[1],a[0])),-s[2]),i(e(t(a[1],s[0]),t(-s[1],a[0])),l[2]))),o[3]))),e(i(e(i(e(t(s[1],o[0]),t(-o[1],s[0])),a[2]),e(i(e(t(a[1],o[0]),t(-o[1],a[0])),-s[2]),i(e(t(a[1],s[0]),t(-s[1],a[0])),o[2]))),-l[3]),e(i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),a[2]),e(i(e(t(a[1],l[0]),t(-l[1],a[0])),-o[2]),i(e(t(a[1],o[0]),t(-o[1],a[0])),l[2]))),r[3]),i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),r[2]),e(i(e(t(r[1],l[0]),t(-l[1],r[0])),-o[2]),i(e(t(r[1],o[0]),t(-o[1],r[0])),l[2]))),-a[3])))),e(e(i(e(i(e(t(a[1],l[0]),t(-l[1],a[0])),r[2]),e(i(e(t(r[1],l[0]),t(-l[1],r[0])),-a[2]),i(e(t(r[1],a[0]),t(-a[1],r[0])),l[2]))),o[3]),e(i(e(i(e(t(a[1],o[0]),t(-o[1],a[0])),r[2]),e(i(e(t(r[1],o[0]),t(-o[1],r[0])),-a[2]),i(e(t(r[1],a[0]),t(-a[1],r[0])),o[2]))),-l[3]),i(e(i(e(t(s[1],o[0]),t(-o[1],s[0])),a[2]),e(i(e(t(a[1],o[0]),t(-o[1],a[0])),-s[2]),i(e(t(a[1],s[0]),t(-s[1],a[0])),o[2]))),r[3]))),e(i(e(i(e(t(s[1],o[0]),t(-o[1],s[0])),r[2]),e(i(e(t(r[1],o[0]),t(-o[1],r[0])),-s[2]),i(e(t(r[1],s[0]),t(-s[1],r[0])),o[2]))),-a[3]),e(i(e(i(e(t(a[1],o[0]),t(-o[1],a[0])),r[2]),e(i(e(t(r[1],o[0]),t(-o[1],r[0])),-a[2]),i(e(t(r[1],a[0]),t(-a[1],r[0])),o[2]))),s[3]),i(e(i(e(t(a[1],s[0]),t(-s[1],a[0])),r[2]),e(i(e(t(r[1],s[0]),t(-s[1],r[0])),-a[2]),i(e(t(r[1],a[0]),t(-a[1],r[0])),s[2]))),-o[3]))))),c=e(e(e(i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),s[2]),e(i(e(t(s[1],l[0]),t(-l[1],s[0])),-o[2]),i(e(t(s[1],o[0]),t(-o[1],s[0])),l[2]))),r[3]),i(e(i(e(t(o[1],l[0]),t(-l[1],o[0])),r[2]),e(i(e(t(r[1],l[0]),t(-l[1],r[0])),-o[2]),i(e(t(r[1],o[0]),t(-o[1],r[0])),l[2]))),-s[3])),e(i(e(i(e(t(s[1],l[0]),t(-l[1],s[0])),r[2]),e(i(e(t(r[1],l[0]),t(-l[1],r[0])),-s[2]),i(e(t(r[1],s[0]),t(-s[1],r[0])),l[2]))),o[3]),i(e(i(e(t(s[1],o[0]),t(-o[1],s[0])),r[2]),e(i(e(t(r[1],o[0]),t(-o[1],r[0])),-s[2]),i(e(t(r[1],s[0]),t(-s[1],r[0])),o[2]))),-l[3]))),e(e(i(e(i(e(t(s[1],l[0]),t(-l[1],s[0])),a[2]),e(i(e(t(a[1],l[0]),t(-l[1],a[0])),-s[2]),i(e(t(a[1],s[0]),t(-s[1],a[0])),l[2]))),r[3]),i(e(i(e(t(s[1],l[0]),t(-l[1],s[0])),r[2]),e(i(e(t(r[1],l[0]),t(-l[1],r[0])),-s[2]),i(e(t(r[1],s[0]),t(-s[1],r[0])),l[2]))),-a[3])),e(i(e(i(e(t(a[1],l[0]),t(-l[1],a[0])),r[2]),e(i(e(t(r[1],l[0]),t(-l[1],r[0])),-a[2]),i(e(t(r[1],a[0]),t(-a[1],r[0])),l[2]))),s[3]),i(e(i(e(t(a[1],s[0]),t(-s[1],a[0])),r[2]),e(i(e(t(r[1],s[0]),t(-s[1],r[0])),-a[2]),i(e(t(r[1],a[0]),t(-a[1],r[0])),s[2]))),-l[3])))),u=n(h,c);return u[u.length-1]}}function h(e){return(3===e?s:4===e?o:l)(n,i,r,a)}var c=h(3),u=h(4),d=[function(){return 0},function(){return 0},function(e,t){return t[0]-e[0]},function(e,t,i){var n,r=(e[1]-i[1])*(t[0]-i[0]),a=(e[0]-i[0])*(t[1]-i[1]),s=r-a;if(r>0){if(a<=0)return s;n=r+a}else{if(!(r<0))return s;if(a>=0)return s;n=-(r+a)}var o=33306690738754716e-32*n;return s>=o||s<=-o?s:c(e,t,i)},function(e,t,i,n){var r=e[0]-n[0],a=t[0]-n[0],s=i[0]-n[0],o=e[1]-n[1],l=t[1]-n[1],h=i[1]-n[1],c=e[2]-n[2],d=t[2]-n[2],p=i[2]-n[2],f=a*h,m=s*l,g=s*o,v=r*h,y=r*l,x=a*o,b=c*(f-m)+d*(g-v)+p*(y-x),_=7771561172376103e-31*((Math.abs(f)+Math.abs(m))*Math.abs(c)+(Math.abs(g)+Math.abs(v))*Math.abs(d)+(Math.abs(y)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:u(e,t,i,n)}];function p(e){var t=d[e.length];return t||(t=d[e.length]=h(e.length)),t.apply(void 0,e)}function f(e,t,i,n,r,a,s){return function(t,i,o,l,h){switch(arguments.length){case 0:case 1:return 0;case 2:return n(t,i);case 3:return r(t,i,o);case 4:return a(t,i,o,l);case 5:return s(t,i,o,l,h)}for(var c=new Array(arguments.length),u=0;u{"use strict";t.exports=function(e,t,n,r){var a=i(e,n,r),s=i(t,n,r);if(a>0&&s>0||a<0&&s<0)return!1;var o=i(n,e,t),l=i(r,e,t);return!(o>0&&l>0||o<0&&l<0)&&(0!==a||0!==s||0!==o||0!==l||function(e,t,i,n){for(var r=0;r<2;++r){var a=e[r],s=t[r],o=Math.min(a,s),l=Math.max(a,s),h=i[r],c=n[r],u=Math.min(h,c);if(Math.max(h,c){"use strict";t.exports=function(e,t,o,l){if(!s(e,t,o,l))return[[0],[0],[0]];var h=n([o[1]],[-l[1]]),c=n([-o[0]],[l[0]]),u=n(n(r(c,e[1]),r(c,-t[1])),n(r(h,e[0]),r(h,-t[0]))),d=n(i(-e[0],t[1]),i(e[1],t[0])),p=n(i(-o[0],l[1]),i(o[1],l[0])),f=n(n(r(p,e[0]),r(p,-t[0])),n(r(d,-o[0]),r(d,l[0]))),m=n(n(r(p,e[1]),r(p,-t[1])),n(r(d,-o[1]),r(d,l[1])));return[a(f),a(m),a(u)]};var i=VA(),n=WH(),r=XH(),a=ife(),s=ufe()})),pfe=Q(((e,t)=>{t.exports=function(e){var t=0,i=e.length;switch(i){case 1:t=e[0];break;case 2:t=e[0]+e[1];break;case 3:t=e[0]+e[1]+e[2];break;case 4:t=e[0]+e[1]+e[2]+e[3];break;default:for(var n=0;n{var i=dfe(),n=pfe();function r(e,t){return e[0]===t[0]&&e[1]===t[1]}t.exports=function(e,t){for(var c={},u=e.length,d=[],p=0;p{function i(e){if(e)return function(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}(e)}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},i.prototype.once=function(e,t){var i=this;function n(){i.off(e,n),t.apply(this,arguments)}return this._callbacks=this._callbacks||{},n.fn=t,this.on(e,n),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[e];if(!i)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var n,r=0;r{var i=Yfe();function n(){i.call(this)}n.prototype=new i,t.exports=n,n.Stream=n,n.prototype.pipe=function(e,t){var i=this;function n(t){e.writable&&!1===e.write(t)&&i.pause&&i.pause()}function r(){i.readable&&i.resume&&i.resume()}i.on("data",n),e.on("drain",r),!e._isStdio&&(!t||!1!==t.end)&&(i.on("end",s),i.on("close",o));var a=!1;function s(){a||(a=!0,e.end())}function o(){a||(a=!0,"function"==typeof e.destroy&&e.destroy())}function l(e){if(h(),!this.hasListeners("error"))throw e}function h(){i.off("data",n),e.off("drain",r),i.off("end",s),i.off("close",o),i.off("error",l),e.off("error",l),i.off("end",h),i.off("close",h),e.off("end",h),e.off("close",h)}return i.on("error",l),e.on("error",l),i.on("end",h),i.on("close",h),e.on("end",h),e.on("close",h),e.emit("pipe",i),e}})),Jfe=Q(((e,t)=>{var i,n;i=e,n=function(){"use strict";var e=Math.imul,t=Math.clz32;function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(e,t){for(var i,n=0;ne.length)&&(t=e.length);for(var i=0,n=Array(t);id.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");return i}!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&a(e,t)}(d,e);var p=function(e){var t=s();return function(){var i,n=r(e);if(t){var a=r(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return h(e)}(this,i)}}(d);return function(e,t,i){t&&n(e.prototype,t),i&&n(e,i),Object.defineProperty(e,"prototype",{writable:!1})}(d,[{key:"toDebugString",value:function(){var e,t=["BigInt["],i=function(e,t){var i="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=u(e))){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){o=!0,a=e},f:function(){try{s||null==i.return||i.return()}finally{if(o)throw a}}}}(this);try{for(i.s();!(e=i.n()).done;){var n=e.value;t.push((n&&(n>>>0).toString(16))+", ")}}catch(e){i.e(e)}finally{i.f()}return t.push("]"),t.join("")}},{key:"toString",value:function(){var e=0e||36this.length&&(i=this.length);for(var n=32767&e,r=e>>>15,a=0,s=t,o=0;o>>15,u=d.__imul(h,n),p=d.__imul(h,r),f=d.__imul(c,n),m=s+u+a;a=m>>>30,m&=1073741823,a+=(m+=((32767&p)<<15)+((32767&f)<<15))>>>30,s=d.__imul(c,r)+(p>>>15)+(f>>>15),this.__setDigit(o,1073741823&m)}if(0!==a||0!==s)throw new Error("implementation bug")}},{key:"__inplaceAdd",value:function(e,t,i){for(var n,r=0,a=0;a>>15,this.__setHalfDigit(t+a,32767&n);return r}},{key:"__inplaceSub",value:function(e,t,i){var n=0;if(1&t){t>>=1;for(var r=this.__digit(t),a=32767&r,s=0;s>>1;s++){var o=e.__digit(s),l=(r>>>15)-(32767&o)-n;n=1&l>>>15,this.__setDigit(t+s,(32767&l)<<15|32767&a),n=1&(a=(32767&(r=this.__digit(t+s+1)))-(o>>>15)-n)>>>15}var h=e.__digit(s),c=(r>>>15)-(32767&h)-n;if(n=1&c>>>15,this.__setDigit(t+s,(32767&c)<<15|32767&a),t+s+1>=this.length)throw new RangeError("out of bounds");!(1&i)&&(n=1&(a=(32767&(r=this.__digit(t+s+1)))-(h>>>15)-n)>>>15,this.__setDigit(t+e.length,1073709056&r|32767&a))}else{t>>=1;for(var u=0;u>>15)-(p>>>15)-(n=1&f>>>15);n=1&m>>>15,this.__setDigit(t+u,(32767&m)<<15|32767&f)}var g=this.__digit(t+u),v=e.__digit(u),y=(32767&g)-(32767&v)-n;n=1&y>>>15;var x=0;!(1&i)&&(n=1&(x=(g>>>15)-(v>>>15)-n)>>>15),this.__setDigit(t+u,(32767&x)<<15|32767&y)}return n}},{key:"__inplaceRightShift",value:function(e){if(0!==e){for(var t,i=this.__digit(0)>>>e,n=this.length-1,r=0;r>>e;this.__setDigit(n,i)}}},{key:"__digit",value:function(e){return this[e]}},{key:"__unsignedDigit",value:function(e){return this[e]>>>0}},{key:"__setDigit",value:function(e,t){this[e]=0|t}},{key:"__setDigitGrow",value:function(e,t){this[e]=0|t}},{key:"__halfDigitLength",value:function(){var e=this.length;return 32767>=this.__unsignedDigit(e-1)?2*e-1:2*e}},{key:"__halfDigit",value:function(e){return 32767&this[e>>>1]>>>15*(1&e)}},{key:"__setHalfDigit",value:function(e,t){var i=e>>>1,n=this.__digit(i),r=1&e?32767&n|t<<15:1073709056&n|32767&t;this.__setDigit(i,r)}}],[{key:"BigInt",value:function(e){var t=Number.isFinite;if("number"==typeof e){if(0===e)return d.__zero();if(d.__isOneDigitInt(e))return 0>e?d.__oneDigit(-e,!0):d.__oneDigit(e,!1);if(!t(e)||l(e)!==e)throw new RangeError("The number "+e+" cannot be converted to BigInt because it is not an integer");return d.__fromDouble(e)}if("string"==typeof e){var n=d.__fromString(e);if(null===n)throw new SyntaxError("Cannot convert "+e+" to a BigInt");return n}if("boolean"==typeof e)return!0===e?d.__oneDigit(1,!1):d.__zero();if("object"===i(e)){if(e.constructor===d)return e;var r=d.__toPrimitive(e);return d.BigInt(r)}throw new TypeError("Cannot convert "+e+" to a BigInt")}},{key:"toNumber",value:function(e){var t=e.length;if(0===t)return 0;if(1===t){var i=e.__unsignedDigit(0);return e.sign?-i:i}var n=e.__digit(t-1),r=d.__clz30(n),a=30*t-r;if(1024>>=12;var u=h-12,p=12<=h?0:o<<20+h,f=20+h;for(0>>30-u,p=o<>>30-f,f-=30;var m=d.__decideRounding(e,f,l,o);if((1===m||0===m&&1==(1&p))&&0==(p=p+1>>>0)&&++c>>>20!=0&&(c=0,1023<++s))return e.sign?-1/0:1/0;var g=e.sign?-2147483648:0;return s=s+1023<<20,d.__kBitConversionInts[1]=g|s|c,d.__kBitConversionInts[0]=p,d.__kBitConversionDouble[0]}},{key:"unaryMinus",value:function(e){if(0===e.length)return e;var t=e.__copy();return t.sign=!e.sign,t}},{key:"bitwiseNot",value:function(e){return e.sign?d.__absoluteSubOne(e).__trim():d.__absoluteAddOne(e,!0)}},{key:"exponentiate",value:function(e,t){if(t.sign)throw new RangeError("Exponent must be positive");if(0===t.length)return d.__oneDigit(1,!1);if(0===e.length)return e;if(1===e.length&&1===e.__digit(0))return!e.sign||1&t.__digit(0)?e:d.unaryMinus(e);if(1=d.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===e.length&&2===e.__digit(0)){var n=1+(0|i/30),r=new d(n,e.sign&&0!=(1&i));r.__initializeDigits();var a=1<>=1;0!==i;i>>=1)o=d.multiply(o,o),1&i&&(s=null===s?o:d.multiply(s,o));return s}},{key:"multiply",value:function(e,t){if(0===e.length)return e;if(0===t.length)return t;var i=e.length+t.length;30<=e.__clzmsd()+t.__clzmsd()&&i--;var n=new d(i,e.sign!==t.sign);n.__initializeDigits();for(var r=0;rd.__absoluteCompare(e,t))return d.__zero();var i,n=e.sign!==t.sign,r=t.__unsignedDigit(0);if(1===t.length&&32767>=r){if(1===r)return n===e.sign?e:d.unaryMinus(e);i=d.__absoluteDivSmall(e,r,null)}else i=d.__absoluteDivLarge(e,t,!0,!1);return i.sign=n,i.__trim()}},{key:"remainder",value:function(e,t){if(0===t.length)throw new RangeError("Division by zero");if(0>d.__absoluteCompare(e,t))return e;var i=t.__unsignedDigit(0);if(1===t.length&&32767>=i){if(1===i)return d.__zero();var n=d.__absoluteModSmall(e,i);return 0===n?d.__zero():d.__oneDigit(n,e.sign)}var r=d.__absoluteDivLarge(e,t,!1,!0);return r.sign=e.sign,r.__trim()}},{key:"add",value:function(e,t){var i=e.sign;return i===t.sign?d.__absoluteAdd(e,t,i):0<=d.__absoluteCompare(e,t)?d.__absoluteSub(e,t,i):d.__absoluteSub(t,e,!i)}},{key:"subtract",value:function(e,t){var i=e.sign;return i===t.sign?0<=d.__absoluteCompare(e,t)?d.__absoluteSub(e,t,i):d.__absoluteSub(t,e,!i):d.__absoluteAdd(e,t,i)}},{key:"leftShift",value:function(e,t){return 0===t.length||0===e.length?e:t.sign?d.__rightShiftByAbsolute(e,t):d.__leftShiftByAbsolute(e,t)}},{key:"signedRightShift",value:function(e,t){return 0===t.length||0===e.length?e:t.sign?d.__leftShiftByAbsolute(e,t):d.__rightShiftByAbsolute(e,t)}},{key:"unsignedRightShift",value:function(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}},{key:"lessThan",value:function(e,t){return 0>d.__compareToBigInt(e,t)}},{key:"lessThanOrEqual",value:function(e,t){return 0>=d.__compareToBigInt(e,t)}},{key:"greaterThan",value:function(e,t){return 0(e=l(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return d.__zero();if(e>=d.__kMaxLengthBits)return t;var i=0|(e+29)/30;if(t.length(e=l(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return d.__zero();if(t.sign){if(e>d.__kMaxLengthBits)throw new RangeError("BigInt too big");return d.__truncateAndSubFromPowerOfTwo(e,t,!1)}if(e>=d.__kMaxLengthBits)return t;var i=0|(e+29)/30;if(t.length>>n))return t}return d.__truncateToNBits(e,t)}},{key:"ADD",value:function(e,t){if(e=d.__toPrimitive(e),t=d.__toPrimitive(t),"string"==typeof e)return"string"!=typeof t&&(t=t.toString()),e+t;if("string"==typeof t)return e.toString()+t;if(e=d.__toNumeric(e),t=d.__toNumeric(t),d.__isBigInt(e)&&d.__isBigInt(t))return d.add(e,t);if("number"==typeof e&&"number"==typeof t)return e+t;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}},{key:"LT",value:function(e,t){return d.__compare(e,t,0)}},{key:"LE",value:function(e,t){return d.__compare(e,t,1)}},{key:"GT",value:function(e,t){return d.__compare(e,t,2)}},{key:"GE",value:function(e,t){return d.__compare(e,t,3)}},{key:"EQ",value:function(e,t){for(;;){if(d.__isBigInt(e))return d.__isBigInt(t)?d.equal(e,t):d.EQ(t,e);if("number"==typeof e){if(d.__isBigInt(t))return d.__equalToNumber(t,e);if("object"!==i(t))return e==t;t=d.__toPrimitive(t)}else if("string"==typeof e){if(d.__isBigInt(t))return null!==(e=d.__fromString(e))&&d.equal(e,t);if("object"!==i(t))return e==t;t=d.__toPrimitive(t)}else if("boolean"==typeof e){if(d.__isBigInt(t))return d.__equalToNumber(t,+e);if("object"!==i(t))return e==t;t=d.__toPrimitive(t)}else if("symbol"===i(e)){if(d.__isBigInt(t))return!1;if("object"!==i(t))return e==t;t=d.__toPrimitive(t)}else{if("object"!==i(e))return e==t;if("object"===i(t)&&t.constructor!==d)return e==t;e=d.__toPrimitive(e)}}}},{key:"NE",value:function(e,t){return!d.EQ(e,t)}},{key:"DataViewGetBigInt64",value:function(e,t){var i=2>>30),l.__setDigit(2,s>>>28),l.__trim()}},{key:"DataViewSetBigInt64",value:function(e,t,i){var n=3>>2,2t)r=-t-1;else{if(0===i)return-1;i--,n=e.__digit(i),r=29}var a=1<>>20)-1023,n=1+(0|i/30),r=new d(n,0>e),a=1048575&d.__kBitConversionInts[1]|1048576,s=d.__kBitConversionInts[0],o=i%30,l=0;if(o<20){var h=20-o;l=h+32,t=a>>>h,a=a<<32-h|s>>>h,s<<=32-h}else if(20===o)l=32,t=a,a=s,s=0;else{var c=o-20;l=32-c,t=a<>>32-c,a=s<>>2,a=a<<30|s>>>2,s<<=30):t=0,r.__setDigit(u,t);return r.__trim()}},{key:"__isWhitespace",value:function(e){return 13>=e&&9<=e||(159>=e?32==e:131071>=e?160==e||5760==e:196607>=e?10>=(e&=131071)||40==e||41==e||47==e||95==e||4096==e:65279==e)}},{key:"__fromString",value:function(e){var t=11073741824/o)return null;var h=new d(0|((o*s+l>>>d.__kBitsPerCharTableShift)+29)/30,!1),c=10>t?t:10,u=10>>0>>0>>d.__kBitsPerCharTableShift)/30;h.__inplaceMultiplyAdd(v,g,x)}while(!p)}else{o>>=d.__kBitsPerCharTableShift;var b=[],_=[],w=!1;do{for(var S,M=0,E=0;;){if(S=void 0,a-48>>>0>>0>>l-(a-=30))}if(0!==r){if(n>=e.length)throw new Error("implementation bug");e.__setDigit(n++,r)}for(;n>>1)+(85&n))>>>2)+(51&n))>>>4)+(15&n),a=t-1,s=e.__digit(i-1),o=0|(30*i-d.__clz30(s)+r-1)/r;if(e.sign&&o++,268435456>>g,u=30-g;u>=r;)l[h--]=d.__kConversionChars[c&a],c>>>=r,u-=r}var v=(c|s<>>r-u;0!==c;)l[h--]=d.__kConversionChars[c&a],c>>>=r;if(e.sign&&(l[h--]="-"),-1!==h)throw new Error("implementation bug");return l.join("")}},{key:"__toStringGeneric",value:function(e,t,i){var n=e.length;if(0===n)return"";if(1===n){var r=e.__unsignedDigit(0).toString(t);return!1===i&&e.sign&&(r="-"+r),r}var a,s,o=30*n-d.__clz30(e.__digit(n-1)),l=d.__kMaxBitsPerChar[t]-1,h=o*d.__kBitsPerCharTableMultiplier,c=1+(h=0|(h+=l-1)/l)>>1,u=d.exponentiate(d.__oneDigit(t,!1),d.__oneDigit(c,!1)),p=u.__unsignedDigit(0);if(1===u.length&&32767>=p){(a=new d(e.length,!1)).__initializeDigits();for(var f,m=0,g=2*e.length-1;0<=g;g--)f=m<<15|e.__halfDigit(g),a.__setHalfDigit(g,0|f/p),m=0|f%p;s=m.toString(t)}else{var v=d.__absoluteDivLarge(e,u,!0,!0);a=v.quotient;var y=v.remainder.__trim();s=d.__toStringGeneric(y,t,!0)}a.__trim();for(var x=d.__toStringGeneric(a,t,!0);s.lengthn?d.__absoluteLess(i):0}},{key:"__compareToNumber",value:function(e,i){if(d.__isOneDigitInt(i)){var n=e.sign,r=0>i;if(n!==r)return d.__unequalSign(n);if(0===e.length){if(r)throw new Error("implementation bug");return 0===i?0:-1}if(1a?d.__absoluteGreater(n):st)return d.__unequalSign(i);if(0===t)throw new Error("implementation bug: should be handled elsewhere");if(0===e.length)return-1;d.__kBitConversionDouble[0]=t;var n=2047&d.__kBitConversionInts[1]>>>20;if(2047==n)throw new Error("implementation bug: handled elsewhere");var r=n-1023;if(0>r)return d.__absoluteGreater(i);var a=e.length,s=e.__digit(a-1),o=d.__clz30(s),l=30*a-o,h=r+1;if(lh)return d.__absoluteGreater(i);var c=1048576|1048575&d.__kBitConversionInts[1],u=d.__kBitConversionInts[0],p=29-o;if(p!==(0|(l-1)%30))throw new Error("implementation bug");var f,m=0;if(p<20){var g=20-p;m=g+32,f=c>>>g,c=c<<32-g|u>>>g,u<<=32-g}else if(20===p)m=32,f=c,c=u,u=0;else{var v=p-20;m=32-v,f=c<>>32-v,c=u<>>=0)>(f>>>=0))return d.__absoluteGreater(i);if(s>>2,c=c<<30|u>>>2,u<<=30):f=0;var x=e.__unsignedDigit(y);if(x>f)return d.__absoluteGreater(i);if(xi&&e.__unsignedDigit(0)===t(i):0===d.__compareToDouble(e,i)}},{key:"__comparisonResultToBool",value:function(e,t){return 0===t?0>e:1===t?0>=e:2===t?0t;case 3:return e>=t}if(d.__isBigInt(e)&&"string"==typeof t)return null!==(t=d.__fromString(t))&&d.__comparisonResultToBool(d.__compareToBigInt(e,t),i);if("string"==typeof e&&d.__isBigInt(t))return null!==(e=d.__fromString(e))&&d.__comparisonResultToBool(d.__compareToBigInt(e,t),i);if(e=d.__toNumeric(e),t=d.__toNumeric(t),d.__isBigInt(e)){if(d.__isBigInt(t))return d.__comparisonResultToBool(d.__compareToBigInt(e,t),i);if("number"!=typeof t)throw new Error("implementation bug");return d.__comparisonResultToBool(d.__compareToNumber(e,t),i)}if("number"!=typeof e)throw new Error("implementation bug");if(d.__isBigInt(t))return d.__comparisonResultToBool(d.__compareToNumber(t,e),2^i);if("number"!=typeof t)throw new Error("implementation bug");return 0===i?et:3===i?e>=t:void 0}},{key:"__absoluteAdd",value:function(e,t,i){if(e.length>>30,a.__setDigit(o,1073741823&r);for(;o>>30,a.__setDigit(o,1073741823&l)}return o>>30,r.__setDigit(s,1073741823&n);for(;s>>30,r.__setDigit(s,1073741823&o)}return r.__trim()}},{key:"__absoluteAddOne",value:function(e,t){var i=2>>30,i.__setDigit(s,1073741823&r);return 0!==a&&i.__setDigitGrow(n,1),i}},{key:"__absoluteSubOne",value:function(e,t){for(var i,n=e.length,r=new d(t=t||n,!1),a=1,s=0;s>>30,r.__setDigit(s,1073741823&i);if(0!==a)throw new Error("implementation bug");for(var o=n;on?0:e.__unsignedDigit(n)>t.__unsignedDigit(n)?1:-1}},{key:"__multiplyAccumulate",value:function(e,t,i,n){if(0!==t){for(var r=32767&t,a=t>>>15,s=0,o=0,l=0;l>>15,f=d.__imul(u,r),m=d.__imul(u,a),g=d.__imul(p,r);s=(h+=o+f+s)>>>30,h&=1073741823,s+=(h+=((32767&m)<<15)+((32767&g)<<15))>>>30,o=d.__imul(p,a)+(m>>>15)+(g>>>15),i.__setDigit(n,1073741823&h)}for(;0!==s||0!==o;n++){var v=i.__digit(n);v+=s+o,o=0,s=v>>>30,i.__setDigit(n,1073741823&v)}}}},{key:"__internalMultiplyAdd",value:function(e,t,i,n,r){for(var a=i,s=0,o=0;o>>15,t),u=h+((32767&c)<<15)+s+a;a=u>>>30,s=c>>>15,r.__setDigit(o,1073741823&u)}if(r.length>n)for(r.__setDigit(n++,a+s);n>>0,s=0|a/t,o=0|(a=((n=0|a%t)<<15|e.__halfDigit(r-1))>>>0)/t;n=0|a%t,i.__setDigit(r>>>1,s<<15|o)}return i}},{key:"__absoluteModSmall",value:function(e,t){for(var i=0,n=2*e.length-1;0<=n;n--)i=0|((i<<15|e.__halfDigit(n))>>>0)%t;return i}},{key:"__absoluteDivLarge",value:function(e,t,i,n){var r=t.__halfDigitLength(),a=t.length,s=e.__halfDigitLength()-r,o=null;i&&(o=new d(s+2>>>1,!1)).__initializeDigits();var l=new d(r+2>>>1,!1);l.__initializeDigits();var h=d.__clz15(t.__halfDigit(r-1));0>>0;m=0|v/u;for(var y=0|v%u,x=t.__halfDigit(r-2),b=c.__halfDigit(f+r-2);d.__imul(m,x)>>>0>(y<<16|b)>>>0&&(m--,!(32767<(y+=u))););}d.__internalMultiplyAdd(t,m,0,a,l);var _=c.__inplaceSub(l,f,r+1);0!==_&&(_=c.__inplaceAdd(t,f,r),c.__setHalfDigit(f+r,32767&c.__halfDigit(f+r)+_),m--),i&&(1&f?p=m<<15:o.__setDigit(f>>>1,p|m))}if(n)return c.__inplaceRightShift(h),i?{quotient:o,remainder:c}:c;if(i)return o;throw new Error("unreachable")}},{key:"__clz15",value:function(e){return d.__clz30(e)-15}},{key:"__specialLeftShift",value:function(e,t,i){var n=e.length,r=new d(n+i,!1);if(0===t){for(var a=0;a>>30-t;return 0i)throw new RangeError("BigInt too big");var n=0|i/30,r=i%30,a=e.length,s=0!==r&&e.__digit(a-1)>>>30-r!=0,o=a+n+(s?1:0),l=new d(o,e.sign);if(0===r){for(var h=0;h>>30-r;if(s)l.__setDigit(a+n,c);else if(0!==c)throw new Error("implementation bug")}return l.__trim()}},{key:"__rightShiftByAbsolute",value:function(e,t){var i=e.length,n=e.sign,r=d.__toShiftAmount(t);if(0>r)return d.__rightShiftByMaximum(n);var a=0|r/30,s=r%30,o=i-a;if(0>=o)return d.__rightShiftByMaximum(n);var l=!1;if(n)if(e.__digit(a)&(1<>>s,m=i-a-1,g=0;g>>s;c.__setDigit(m,f)}return l&&(c=d.__absoluteAddOne(c,!0,c)),c.__trim()}},{key:"__rightShiftByMaximum",value:function(e){return e?d.__oneDigit(1,!0):d.__zero()}},{key:"__toShiftAmount",value:function(e){if(1d.__kMaxLengthBits?-1:t}},{key:"__toPrimitive",value:function(e){var t=1>>o}return n.__setDigit(r,s),n.__trim()}},{key:"__truncateAndSubFromPowerOfTwo",value:function(e,t,i){for(var n,r=Math.min,a=0|(e+29)/30,s=new d(a,i),o=0,l=a-1,h=0,c=r(l,t.length);o>>30,s.__setDigit(o,1073741823&n);for(;o>>m)-h,u&=g-1}return s.__setDigit(l,u),s.__trim()}},{key:"__digitPow",value:function(e,t){for(var i=1;0>>=1,e*=e;return i}},{key:"__isOneDigitInt",value:function(e){return(1073741823&e)===e}}]),d}(l(Array));return p.__kMaxLength=33554432,p.__kMaxLengthBits=p.__kMaxLength<<5,p.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],p.__kBitsPerCharTableShift=5,p.__kBitsPerCharTableMultiplier=1<>>0)/t)},p.__imul=e||function(e,t){return 0|e*t},p},"object"==typeof e&&void 0!==t?t.exports=n():"function"==typeof define&&define.amd?define(n):(i=i||self).JSBI=n()})),kl=Q(((e,t)=>{(function(){var i,n="Expected a function",r="__lodash_hash_undefined__",a="__lodash_placeholder__",s=32,o=128,l=1/0,h=9007199254740991,c=NaN,u=4294967295,d=[["ary",o],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",s],["partialRight",64],["rearg",256]],p="[object Arguments]",f="[object Array]",m="[object Boolean]",g="[object Date]",v="[object Error]",y="[object Function]",x="[object GeneratorFunction]",b="[object Map]",_="[object Number]",w="[object Object]",S="[object Promise]",M="[object RegExp]",E="[object Set]",T="[object String]",A="[object Symbol]",C="[object WeakMap]",P="[object ArrayBuffer]",R="[object DataView]",D="[object Float32Array]",L="[object Float64Array]",I="[object Int8Array]",O="[object Int16Array]",k="[object Int32Array]",N="[object Uint8Array]",U="[object Uint8ClampedArray]",F="[object Uint16Array]",B="[object Uint32Array]",z=/\b__p \+= '';/g,H=/\b(__p \+=) '' \+/g,V=/(__e\(.*?\)|\b__t\)) \+\n'';/g,j=/&(?:amp|lt|gt|quot|#39);/g,G=/[&<>"']/g,W=RegExp(j.source),X=RegExp(G.source),Y=/<%-([\s\S]+?)%>/g,q=/<%([\s\S]+?)%>/g,Z=/<%=([\s\S]+?)%>/g,Q=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,J=/^\w*$/,K=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,$=/[\\^$.*+?()[\]{}|]/g,ee=RegExp($.source),te=/^\s+/,ie=/\s/,ne=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,re=/\{\n\/\* \[wrapped with (.+)\] \*/,ae=/,? & /,se=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,oe=/[()=,{}\[\]\/\s]/,le=/\\(\\)?/g,he=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ce=/\w*$/,ue=/^[-+]0x[0-9a-f]+$/i,de=/^0b[01]+$/i,pe=/^\[object .+?Constructor\]$/,fe=/^0o[0-7]+$/i,me=/^(?:0|[1-9]\d*)$/,ge=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ve=/($^)/,ye=/['\n\r\u2028\u2029\\]/g,xe="\\ud800-\\udfff",be="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",_e="\\u2700-\\u27bf",we="a-z\\xdf-\\xf6\\xf8-\\xff",Se="A-Z\\xc0-\\xd6\\xd8-\\xde",Me="\\ufe0e\\ufe0f",Ee="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Te="["+xe+"]",Ae="["+Ee+"]",Ce="["+be+"]",Pe="\\d+",Re="["+_e+"]",De="["+we+"]",Le="[^"+xe+Ee+Pe+_e+we+Se+"]",Ie="\\ud83c[\\udffb-\\udfff]",Oe="[^"+xe+"]",ke="(?:\\ud83c[\\udde6-\\uddff]){2}",Ne="[\\ud800-\\udbff][\\udc00-\\udfff]",Ue="["+Se+"]",Fe="\\u200d",Be="(?:"+De+"|"+Le+")",ze="(?:"+Ue+"|"+Le+")",He="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Ve="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",je="(?:"+Ce+"|"+Ie+")?",Ge="["+Me+"]?",We=Ge+je+"(?:"+Fe+"(?:"+[Oe,ke,Ne].join("|")+")"+Ge+je+")*",Xe="(?:"+[Re,ke,Ne].join("|")+")"+We,Ye="(?:"+[Oe+Ce+"?",Ce,ke,Ne,Te].join("|")+")",qe=RegExp("['\u2019]","g"),Ze=RegExp(Ce,"g"),Qe=RegExp(Ie+"(?="+Ie+")|"+Ye+We,"g"),Je=RegExp([Ue+"?"+De+"+"+He+"(?="+[Ae,Ue,"$"].join("|")+")",ze+"+"+Ve+"(?="+[Ae,Ue+Be,"$"].join("|")+")",Ue+"?"+Be+"+"+He,Ue+"+"+Ve,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Pe,Xe].join("|"),"g"),Ke=RegExp("["+Fe+xe+be+Me+"]"),$e=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,et=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],tt=-1,it={};it[D]=it[L]=it[I]=it[O]=it[k]=it[N]=it[U]=it[F]=it[B]=!0,it[p]=it[f]=it[P]=it[m]=it[R]=it[g]=it[v]=it[y]=it[b]=it[_]=it[w]=it[M]=it[E]=it[T]=it[C]=!1;var nt={};nt[p]=nt[f]=nt[P]=nt[R]=nt[m]=nt[g]=nt[D]=nt[L]=nt[I]=nt[O]=nt[k]=nt[b]=nt[_]=nt[w]=nt[M]=nt[E]=nt[T]=nt[A]=nt[N]=nt[U]=nt[F]=nt[B]=!0,nt[v]=nt[y]=nt[C]=!1;var rt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},at=parseFloat,st=parseInt,ot="object"==typeof global&&global&&global.Object===Object&&global,lt="object"==typeof self&&self&&self.Object===Object&&self,ht=ot||lt||Function("return this")(),ct="object"==typeof e&&e&&!e.nodeType&&e,ut=ct&&"object"==typeof t&&t&&!t.nodeType&&t,dt=ut&&ut.exports===ct,pt=dt&&ot.process,ft=function(){try{return ut&&ut.require&&ut.require("util").types||pt&&pt.binding&&pt.binding("util")}catch(e){}}(),mt=ft&&ft.isArrayBuffer,gt=ft&&ft.isDate,vt=ft&&ft.isMap,yt=ft&&ft.isRegExp,xt=ft&&ft.isSet,bt=ft&&ft.isTypedArray;function _t(e,t,i){switch(i.length){case 0:return e.call(t);case 1:return e.call(t,i[0]);case 2:return e.call(t,i[0],i[1]);case 3:return e.call(t,i[0],i[1],i[2])}return e.apply(t,i)}function wt(e,t,i,n){for(var r=-1,a=null==e?0:e.length;++r-1}function Ct(e,t,i){for(var n=-1,r=null==e?0:e.length;++n-1;);return i}function Jt(e,t){for(var i=e.length;i--&&Ut(t,e[i],0)>-1;);return i}var Kt=Vt({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),$t=Vt({"&":"&","<":"<",">":">",'"':""","'":"'"});function ei(e){return"\\"+rt[e]}function ti(e){return Ke.test(e)}function ii(e){var t=-1,i=Array(e.size);return e.forEach((function(e,n){i[++t]=[n,e]})),i}function ni(e,t){return function(i){return e(t(i))}}function ri(e,t){for(var i=-1,n=e.length,r=0,s=[];++i",""":'"',"'":"'"}),ci=function e(t){var ie,xe=(t=null==t?ht:ci.defaults(ht.Object(),t,ci.pick(ht,et))).Array,be=t.Date,_e=t.Error,we=t.Function,Se=t.Math,Me=t.Object,Ee=t.RegExp,Te=t.String,Ae=t.TypeError,Ce=xe.prototype,Pe=we.prototype,Re=Me.prototype,De=t["__core-js_shared__"],Le=Pe.toString,Ie=Re.hasOwnProperty,Oe=0,ke=(ie=/[^.]+$/.exec(De&&De.keys&&De.keys.IE_PROTO||""))?"Symbol(src)_1."+ie:"",Ne=Re.toString,Ue=Le.call(Me),Fe=ht._,Be=Ee("^"+Le.call(Ie).replace($,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ze=dt?t.Buffer:i,He=t.Symbol,Ve=t.Uint8Array,je=ze?ze.allocUnsafe:i,Ge=ni(Me.getPrototypeOf,Me),We=Me.create,Xe=Re.propertyIsEnumerable,Ye=Ce.splice,Qe=He?He.isConcatSpreadable:i,Ke=He?He.iterator:i,rt=He?He.toStringTag:i,ot=function(){try{var e=oa(Me,"defineProperty");return e({},"",{}),e}catch(e){}}(),lt=t.clearTimeout!==ht.clearTimeout&&t.clearTimeout,ct=be&&be.now!==ht.Date.now&&be.now,ut=t.setTimeout!==ht.setTimeout&&t.setTimeout,pt=Se.ceil,ft=Se.floor,Ot=Me.getOwnPropertySymbols,Vt=ze?ze.isBuffer:i,ui=t.isFinite,di=Ce.join,pi=ni(Me.keys,Me),fi=Se.max,mi=Se.min,gi=be.now,vi=t.parseInt,yi=Se.random,xi=Ce.reverse,bi=oa(t,"DataView"),_i=oa(t,"Map"),wi=oa(t,"Promise"),Si=oa(t,"Set"),Mi=oa(t,"WeakMap"),Ei=oa(Me,"create"),Ti=Mi&&new Mi,Ai={},Ci=Oa(bi),Pi=Oa(_i),Ri=Oa(wi),Di=Oa(Si),Li=Oa(Mi),Ii=He?He.prototype:i,Oi=Ii?Ii.valueOf:i,ki=Ii?Ii.toString:i;function Ni(e){if(Js(e)&&!zs(e)&&!(e instanceof zi)){if(e instanceof Bi)return e;if(Ie.call(e,"__wrapped__"))return ka(e)}return new Bi(e)}var Ui=function(){function e(){}return function(t){if(!Qs(t))return{};if(We)return We(t);e.prototype=t;var n=new e;return e.prototype=i,n}}();function Fi(){}function Bi(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=i}function zi(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=u,this.__views__=[]}function Hi(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function an(e,t,n,r,a,s){var o,l=1&t,h=2&t,c=4&t;if(n&&(o=a?n(e,r,a,s):n(e)),o!==i)return o;if(!Qs(e))return e;var u=zs(e);if(u){if(o=function(e){var t=e.length,i=new e.constructor(t);return t&&"string"==typeof e[0]&&Ie.call(e,"index")&&(i.index=e.index,i.input=e.input),i}(e),!l)return Er(e,o)}else{var d=ca(e),f=d==y||d==x;if(Gs(e))return xr(e,l);if(d==w||d==p||f&&!a){if(o=h||f?{}:da(e),!l)return h?function(e,t){return Tr(e,ha(e),t)}(e,function(e,t){return e&&Tr(t,Po(t),e)}(o,e)):function(e,t){return Tr(e,la(e),t)}(e,en(o,e))}else{if(!nt[d])return a?e:{};o=function(e,t,i){var n=e.constructor;switch(t){case P:return br(e);case m:case g:return new n(+e);case R:return function(e,t){var i=t?br(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.byteLength)}(e,i);case D:case L:case I:case O:case k:case N:case U:case F:case B:return _r(e,i);case b:return new n;case _:case T:return new n(e);case M:return function(e){var t=new e.constructor(e.source,ce.exec(e));return t.lastIndex=e.lastIndex,t}(e);case E:return new n;case A:return function(e){return Oi?Me(Oi.call(e)):{}}(e)}}(e,d,l)}}s||(s=new Wi);var v=s.get(e);if(v)return v;s.set(e,o),io(e)?e.forEach((function(i){o.add(an(i,t,n,i,e,s))})):Ks(e)&&e.forEach((function(i,r){o.set(r,an(i,t,n,r,e,s))}));var S=u?i:(c?h?ea:$r:h?Po:Co)(e);return St(S||e,(function(i,r){S&&(i=e[r=i]),Ji(o,r,an(i,t,n,r,e,s))})),o}function sn(e,t,n){var r=n.length;if(null==e)return!r;for(e=Me(e);r--;){var a=n[r],s=t[a],o=e[a];if(o===i&&!(a in e)||!s(o))return!1}return!0}function on(e,t,r){if("function"!=typeof e)throw new Ae(n);return Aa((function(){e.apply(i,r)}),t)}function ln(e,t,i,n){var r=-1,a=At,s=!0,o=e.length,l=[],h=t.length;if(!o)return l;i&&(t=Pt(t,Yt(i))),n?(a=Ct,s=!1):t.length>=200&&(a=Zt,s=!1,t=new Gi(t));e:for(;++r-1},Vi.prototype.set=function(e,t){var i=this.__data__,n=Ki(i,e);return n<0?(++this.size,i.push([e,t])):i[n][1]=t,this},ji.prototype.clear=function(){this.size=0,this.__data__={hash:new Hi,map:new(_i||Vi),string:new Hi}},ji.prototype.delete=function(e){var t=aa(this,e).delete(e);return this.size-=t?1:0,t},ji.prototype.get=function(e){return aa(this,e).get(e)},ji.prototype.has=function(e){return aa(this,e).has(e)},ji.prototype.set=function(e,t){var i=aa(this,e),n=i.size;return i.set(e,t),this.size+=i.size==n?0:1,this},Gi.prototype.add=Gi.prototype.push=function(e){return this.__data__.set(e,r),this},Gi.prototype.has=function(e){return this.__data__.has(e)},Wi.prototype.clear=function(){this.__data__=new Vi,this.size=0},Wi.prototype.delete=function(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i},Wi.prototype.get=function(e){return this.__data__.get(e)},Wi.prototype.has=function(e){return this.__data__.has(e)},Wi.prototype.set=function(e,t){var i=this.__data__;if(i instanceof Vi){var n=i.__data__;if(!_i||n.length<199)return n.push([e,t]),this.size=++i.size,this;i=this.__data__=new ji(n)}return i.set(e,t),this.size=i.size,this};var hn=Pr(vn),cn=Pr(yn,!0);function un(e,t){var i=!0;return hn(e,(function(e,n,r){return i=!!t(e,n,r)})),i}function dn(e,t,n){for(var r=-1,a=e.length;++r0&&i(o)?t>1?fn(o,t-1,i,n,r):Rt(r,o):n||(r[r.length]=o)}return r}var mn=Rr(),gn=Rr(!0);function vn(e,t){return e&&mn(e,t,Co)}function yn(e,t){return e&&gn(e,t,Co)}function xn(e,t){return Tt(t,(function(t){return Ys(e[t])}))}function bn(e,t){for(var n=0,r=(t=mr(t,e)).length;null!=e&&nt}function Mn(e,t){return null!=e&&Ie.call(e,t)}function En(e,t){return null!=e&&t in Me(e)}function Tn(e,t,n){for(var r=n?Ct:At,a=e[0].length,s=e.length,o=s,l=xe(s),h=1/0,c=[];o--;){var u=e[o];o&&t&&(u=Pt(u,Yt(t))),h=mi(u.length,h),l[o]=!n&&(t||a>=120&&u.length>=120)?new Gi(o&&u):i}u=e[0];var d=-1,p=l[0];e:for(;++d=o?l:l*("desc"==i[n]?-1:1)}return e.index-t.index}(e,t,i)}))}function Hn(e,t,i){for(var n=-1,r=t.length,a={};++n-1;)o!==e&&Ye.call(o,l,1),Ye.call(e,l,1);return e}function jn(e,t){for(var i=e?t.length:0,n=i-1;i--;){var r=t[i];if(i==n||r!==a){var a=r;fa(r)?Ye.call(e,r,1):or(e,r)}}return e}function Gn(e,t){return e+ft(yi()*(t-e+1))}function Wn(e,t){var i="";if(!e||t<1||t>h)return i;do{t%2&&(i+=e),(t=ft(t/2))&&(e+=e)}while(t);return i}function Xn(e,t){return Ca(wa(e,t,el),e+"")}function Yn(e){return Yi(Uo(e))}function qn(e,t){var i=Uo(e);return Da(i,rn(t,0,i.length))}function Zn(e,t,n,r){if(!Qs(e))return e;for(var a=-1,s=(t=mr(t,e)).length,o=s-1,l=e;null!=l&&++ar?0:r+t),(i=i>r?r:i)<0&&(i+=r),r=t>i?0:i-t>>>0,t>>>=0;for(var a=xe(r);++n>>1,s=e[a];null!==s&&!ro(s)&&(i?s<=t:s=200){var h=t?null:Wr(e);if(h)return ai(h);s=!1,r=Zt,l=new Gi}else l=t?[]:o;e:for(;++n=r?e:$n(e,t,n)}var yr=lt||function(e){return ht.clearTimeout(e)};function xr(e,t){if(t)return e.slice();var i=e.length,n=je?je(i):new e.constructor(i);return e.copy(n),n}function br(e){var t=new e.constructor(e.byteLength);return new Ve(t).set(new Ve(e)),t}function _r(e,t){var i=t?br(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.length)}function wr(e,t){if(e!==t){var n=e!==i,r=null===e,a=e==e,s=ro(e),o=t!==i,l=null===t,h=t==t,c=ro(t);if(!l&&!c&&!s&&e>t||s&&o&&h&&!l&&!c||r&&o&&h||!n&&h||!a)return 1;if(!r&&!s&&!c&&e1?n[a-1]:i,o=a>2?n[2]:i;for(s=e.length>3&&"function"==typeof s?(a--,s):i,o&&ma(n[0],n[1],o)&&(s=a<3?i:s,a=1),t=Me(t);++r-1?a[s?t[o]:o]:i}}function kr(e){return Kr((function(t){var r=t.length,a=r,s=Bi.prototype.thru;for(e&&t.reverse();a--;){var o=t[a];if("function"!=typeof o)throw new Ae(n);if(s&&!l&&"wrapper"==ia(o))var l=new Bi([],!0)}for(a=l?a:r;++a1&&y.reverse(),d&&cl))return!1;var c=s.get(e),u=s.get(t);if(c&&u)return c==t&&u==e;var d=-1,p=!0,f=2&n?new Gi:i;for(s.set(e,t),s.set(t,e);++d-1&&e%1==0&&e1?"& ":"")+t[n],t=t.join(i>2?", ":" "),e.replace(ne,"{\n/* [wrapped with "+t+"] */\n")}(n,function(e,t){return St(d,(function(i){var n="_."+i[0];t&i[1]&&!At(e,n)&&e.push(n)})),e.sort()}(function(e){var t=e.match(re);return t?t[1].split(ae):[]}(n),i)))}function Ra(e){var t=0,n=0;return function(){var r=gi(),a=16-(r-n);if(n=r,a>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(i,arguments)}}function Da(e,t){var n=-1,r=e.length,a=r-1;for(t=t===i?r:t;++n1?e[t-1]:i;return n="function"==typeof n?(e.pop(),n):i,ts(e,n)}));function ls(e){var t=Ni(e);return t.__chain__=!0,t}function hs(e,t){return t(e)}var cs=Kr((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,a=function(t){return nn(t,e)};return!(t>1||this.__actions__.length)&&r instanceof zi&&fa(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:hs,args:[a],thisArg:i}),new Bi(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(i),e}))):this.thru(a)})),us=Ar((function(e,t,i){Ie.call(e,i)?++e[i]:tn(e,i,1)})),ds=Or(Ba),ps=Or(za);function fs(e,t){return(zs(e)?St:hn)(e,ra(t,3))}function ms(e,t){return(zs(e)?Mt:cn)(e,ra(t,3))}var gs=Ar((function(e,t,i){Ie.call(e,i)?e[i].push(t):tn(e,i,[t])})),vs=Xn((function(e,t,i){var n=-1,r="function"==typeof t,a=Vs(e)?xe(e.length):[];return hn(e,(function(e){a[++n]=r?_t(t,e,i):An(e,t,i)})),a})),ys=Ar((function(e,t,i){tn(e,i,t)}));function xs(e,t){return(zs(e)?Pt:kn)(e,ra(t,3))}var bs=Ar((function(e,t,i){e[i?0:1].push(t)}),(function(){return[[],[]]})),_s=Xn((function(e,t){if(null==e)return[];var i=t.length;return i>1&&ma(e,t[0],t[1])?t=[]:i>2&&ma(t[0],t[1],t[2])&&(t=[t[0]]),zn(e,fn(t,1),[])})),ws=ct||function(){return ht.Date.now()};function Ss(e,t,n){return t=n?i:t,t=e&&null==t?e.length:t,Yr(e,o,i,i,i,i,t)}function Ms(e,t){var r;if("function"!=typeof t)throw new Ae(n);return e=co(e),function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=i),r}}var Es=Xn((function(e,t,i){var n=1;if(i.length){var r=ri(i,na(Es));n|=s}return Yr(e,n,t,i,r)})),Ts=Xn((function(e,t,i){var n=3;if(i.length){var r=ri(i,na(Ts));n|=s}return Yr(t,n,e,i,r)}));function As(e,t,r){var a,s,o,l,h,c,u=0,d=!1,p=!1,f=!0;if("function"!=typeof e)throw new Ae(n);function m(t){var n=a,r=s;return a=s=i,u=t,l=e.apply(r,n)}function g(e){var n=e-c;return c===i||n>=t||n<0||p&&e-u>=o}function v(){var e=ws();if(g(e))return y(e);h=Aa(v,function(e){var i=t-(e-c);return p?mi(i,o-(e-u)):i}(e))}function y(e){return h=i,f&&a?m(e):(a=s=i,l)}function x(){var e=ws(),n=g(e);if(a=arguments,s=this,c=e,n){if(h===i)return function(e){return u=e,h=Aa(v,t),d?m(e):l}(c);if(p)return yr(h),h=Aa(v,t),m(c)}return h===i&&(h=Aa(v,t)),l}return t=po(t)||0,Qs(r)&&(d=!!r.leading,o=(p="maxWait"in r)?fi(po(r.maxWait)||0,t):o,f="trailing"in r?!!r.trailing:f),x.cancel=function(){h!==i&&yr(h),u=0,a=c=s=h=i},x.flush=function(){return h===i?l:y(ws())},x}var Cs=Xn((function(e,t){return on(e,1,t)})),Ps=Xn((function(e,t,i){return on(e,po(t)||0,i)}));function Rs(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Ae(n);var i=function(){var n=arguments,r=t?t.apply(this,n):n[0],a=i.cache;if(a.has(r))return a.get(r);var s=e.apply(this,n);return i.cache=a.set(r,s)||a,s};return i.cache=new(Rs.Cache||ji),i}function Ds(e){if("function"!=typeof e)throw new Ae(n);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Rs.Cache=ji;var Ls=gr((function(e,t){var i=(t=1==t.length&&zs(t[0])?Pt(t[0],Yt(ra())):Pt(fn(t,1),Yt(ra()))).length;return Xn((function(n){for(var r=-1,a=mi(n.length,i);++r=t})),Bs=Cn(function(){return arguments}())?Cn:function(e){return Js(e)&&Ie.call(e,"callee")&&!Xe.call(e,"callee")},zs=xe.isArray,Hs=mt?Yt(mt):function(e){return Js(e)&&wn(e)==P};function Vs(e){return null!=e&&Zs(e.length)&&!Ys(e)}function js(e){return Js(e)&&Vs(e)}var Gs=Vt||pl,Ws=gt?Yt(gt):function(e){return Js(e)&&wn(e)==g};function Xs(e){if(!Js(e))return!1;var t=wn(e);return t==v||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!eo(e)}function Ys(e){if(!Qs(e))return!1;var t=wn(e);return t==y||t==x||"[object AsyncFunction]"==t||"[object Proxy]"==t}function qs(e){return"number"==typeof e&&e==co(e)}function Zs(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=h}function Qs(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Js(e){return null!=e&&"object"==typeof e}var Ks=vt?Yt(vt):function(e){return Js(e)&&ca(e)==b};function $s(e){return"number"==typeof e||Js(e)&&wn(e)==_}function eo(e){if(!Js(e)||wn(e)!=w)return!1;var t=Ge(e);if(null===t)return!0;var i=Ie.call(t,"constructor")&&t.constructor;return"function"==typeof i&&i instanceof i&&Le.call(i)==Ue}var to=yt?Yt(yt):function(e){return Js(e)&&wn(e)==M},io=xt?Yt(xt):function(e){return Js(e)&&ca(e)==E};function no(e){return"string"==typeof e||!zs(e)&&Js(e)&&wn(e)==T}function ro(e){return"symbol"==typeof e||Js(e)&&wn(e)==A}var ao=bt?Yt(bt):function(e){return Js(e)&&Zs(e.length)&&!!it[wn(e)]},so=Vr(On),oo=Vr((function(e,t){return e<=t}));function lo(e){if(!e)return[];if(Vs(e))return no(e)?oi(e):Er(e);if(Ke&&e[Ke])return function(e){for(var t,i=[];!(t=e.next()).done;)i.push(t.value);return i}(e[Ke]());var t=ca(e);return(t==b?ii:t==E?ai:Uo)(e)}function ho(e){return e?(e=po(e))===l||e===-l?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function co(e){var t=ho(e),i=t%1;return t==t?i?t-i:t:0}function uo(e){return e?rn(co(e),0,u):0}function po(e){if("number"==typeof e)return e;if(ro(e))return c;if(Qs(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Qs(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Xt(e);var i=de.test(e);return i||fe.test(e)?st(e.slice(2),i?2:8):ue.test(e)?c:+e}function fo(e){return Tr(e,Po(e))}function mo(e){return null==e?"":ar(e)}var go=Cr((function(e,t){if(xa(t)||Vs(t))Tr(t,Co(t),e);else for(var i in t)Ie.call(t,i)&&Ji(e,i,t[i])})),vo=Cr((function(e,t){Tr(t,Po(t),e)})),yo=Cr((function(e,t,i,n){Tr(t,Po(t),e,n)})),xo=Cr((function(e,t,i,n){Tr(t,Co(t),e,n)})),bo=Kr(nn),_o=Xn((function(e,t){e=Me(e);var n=-1,r=t.length,a=r>2?t[2]:i;for(a&&ma(t[0],t[1],a)&&(r=1);++n1),t})),Tr(e,ea(e),i),n&&(i=an(i,7,Qr));for(var r=t.length;r--;)or(i,t[r]);return i})),Io=Kr((function(e,t){return null==e?{}:function(e,t){return Hn(e,t,(function(t,i){return Mo(e,i)}))}(e,t)}));function Oo(e,t){if(null==e)return{};var i=Pt(ea(e),(function(e){return[e]}));return t=ra(t),Hn(e,i,(function(e,i){return t(e,i[0])}))}var ko=Xr(Co),No=Xr(Po);function Uo(e){return null==e?[]:qt(e,Co(e))}var Fo=Lr((function(e,t,i){return t=t.toLowerCase(),e+(i?Bo(t):t)}));function Bo(e){return Yo(mo(e).toLowerCase())}function zo(e){return(e=mo(e))&&e.replace(ge,Kt).replace(Ze,"")}var Ho=Lr((function(e,t,i){return e+(i?"-":"")+t.toLowerCase()})),Vo=Lr((function(e,t,i){return e+(i?" ":"")+t.toLowerCase()})),jo=Dr("toLowerCase"),Go=Lr((function(e,t,i){return e+(i?"_":"")+t.toLowerCase()})),Wo=Lr((function(e,t,i){return e+(i?" ":"")+Yo(t)})),Xo=Lr((function(e,t,i){return e+(i?" ":"")+t.toUpperCase()})),Yo=Dr("toUpperCase");function qo(e,t,n){return e=mo(e),(t=n?i:t)===i?function(e){return $e.test(e)}(e)?function(e){return e.match(Je)||[]}(e):function(e){return e.match(se)||[]}(e):e.match(t)||[]}var Zo=Xn((function(e,t){try{return _t(e,i,t)}catch(e){return Xs(e)?e:new _e(e)}})),Qo=Kr((function(e,t){return St(t,(function(t){t=Ia(t),tn(e,t,Es(e[t],e))})),e}));function Jo(e){return function(){return e}}var Ko=kr(),$o=kr(!0);function el(e){return e}function tl(e){return Ln("function"==typeof e?e:an(e,1))}var il=Xn((function(e,t){return function(i){return An(i,e,t)}})),nl=Xn((function(e,t){return function(i){return An(e,i,t)}}));function rl(e,t,i){var n=Co(t),r=xn(t,n);null==i&&(!Qs(t)||!r.length&&n.length)&&(i=t,t=e,e=this,r=xn(t,Co(t)));var a=!(Qs(i)&&"chain"in i&&!i.chain),s=Ys(e);return St(r,(function(i){var n=t[i];e[i]=n,s&&(e.prototype[i]=function(){var t=this.__chain__;if(a||t){var i=e(this.__wrapped__);return(i.__actions__=Er(this.__actions__)).push({func:n,args:arguments,thisArg:e}),i.__chain__=t,i}return n.apply(e,Rt([this.value()],arguments))})})),e}function al(){}var sl=Br(Pt),ol=Br(Et),ll=Br(It);function hl(e){return ga(e)?Ht(Ia(e)):function(e){return function(t){return bn(t,e)}}(e)}var cl=Hr(),ul=Hr(!0);function dl(){return[]}function pl(){return!1}var fl=Fr((function(e,t){return e+t}),0),ml=Gr("ceil"),gl=Fr((function(e,t){return e/t}),1),vl=Gr("floor"),yl=Fr((function(e,t){return e*t}),1),xl=Gr("round"),bl=Fr((function(e,t){return e-t}),0);return Ni.after=function(e,t){if("function"!=typeof t)throw new Ae(n);return e=co(e),function(){if(--e<1)return t.apply(this,arguments)}},Ni.ary=Ss,Ni.assign=go,Ni.assignIn=vo,Ni.assignInWith=yo,Ni.assignWith=xo,Ni.at=bo,Ni.before=Ms,Ni.bind=Es,Ni.bindAll=Qo,Ni.bindKey=Ts,Ni.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return zs(e)?e:[e]},Ni.chain=ls,Ni.chunk=function(e,t,n){t=(n?ma(e,t,n):t===i)?1:fi(co(t),0);var r=null==e?0:e.length;if(!r||t<1)return[];for(var a=0,s=0,o=xe(pt(r/t));aa?0:a+n),(r=r===i||r>a?a:co(r))<0&&(r+=a),r=n>r?0:uo(r);n>>0)?(e=mo(e))&&("string"==typeof t||null!=t&&!to(t))&&!(t=ar(t))&&ti(e)?vr(oi(e),0,n):e.split(t,n):[]},Ni.spread=function(e,t){if("function"!=typeof e)throw new Ae(n);return t=null==t?0:fi(co(t),0),Xn((function(i){var n=i[t],r=vr(i,0,t);return n&&Rt(r,n),_t(e,this,r)}))},Ni.tail=function(e){var t=null==e?0:e.length;return t?$n(e,1,t):[]},Ni.take=function(e,t,n){return e&&e.length?$n(e,0,(t=n||t===i?1:co(t))<0?0:t):[]},Ni.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?$n(e,(t=r-(t=n||t===i?1:co(t)))<0?0:t,r):[]},Ni.takeRightWhile=function(e,t){return e&&e.length?hr(e,ra(t,3),!1,!0):[]},Ni.takeWhile=function(e,t){return e&&e.length?hr(e,ra(t,3)):[]},Ni.tap=function(e,t){return t(e),e},Ni.throttle=function(e,t,i){var r=!0,a=!0;if("function"!=typeof e)throw new Ae(n);return Qs(i)&&(r="leading"in i?!!i.leading:r,a="trailing"in i?!!i.trailing:a),As(e,t,{leading:r,maxWait:t,trailing:a})},Ni.thru=hs,Ni.toArray=lo,Ni.toPairs=ko,Ni.toPairsIn=No,Ni.toPath=function(e){return zs(e)?Pt(e,Ia):ro(e)?[e]:Er(La(mo(e)))},Ni.toPlainObject=fo,Ni.transform=function(e,t,i){var n=zs(e),r=n||Gs(e)||ao(e);if(t=ra(t,4),null==i){var a=e&&e.constructor;i=r?n?new a:[]:Qs(e)&&Ys(a)?Ui(Ge(e)):{}}return(r?St:vn)(e,(function(e,n,r){return t(i,e,n,r)})),i},Ni.unary=function(e){return Ss(e,1)},Ni.union=Ja,Ni.unionBy=Ka,Ni.unionWith=$a,Ni.uniq=function(e){return e&&e.length?sr(e):[]},Ni.uniqBy=function(e,t){return e&&e.length?sr(e,ra(t,2)):[]},Ni.uniqWith=function(e,t){return t="function"==typeof t?t:i,e&&e.length?sr(e,i,t):[]},Ni.unset=function(e,t){return null==e||or(e,t)},Ni.unzip=es,Ni.unzipWith=ts,Ni.update=function(e,t,i){return null==e?e:lr(e,t,fr(i))},Ni.updateWith=function(e,t,n,r){return r="function"==typeof r?r:i,null==e?e:lr(e,t,fr(n),r)},Ni.values=Uo,Ni.valuesIn=function(e){return null==e?[]:qt(e,Po(e))},Ni.without=is,Ni.words=qo,Ni.wrap=function(e,t){return Is(fr(t),e)},Ni.xor=ns,Ni.xorBy=rs,Ni.xorWith=as,Ni.zip=ss,Ni.zipObject=function(e,t){return dr(e||[],t||[],Ji)},Ni.zipObjectDeep=function(e,t){return dr(e||[],t||[],Zn)},Ni.zipWith=os,Ni.entries=ko,Ni.entriesIn=No,Ni.extend=vo,Ni.extendWith=yo,rl(Ni,Ni),Ni.add=fl,Ni.attempt=Zo,Ni.camelCase=Fo,Ni.capitalize=Bo,Ni.ceil=ml,Ni.clamp=function(e,t,n){return n===i&&(n=t,t=i),n!==i&&(n=(n=po(n))==n?n:0),t!==i&&(t=(t=po(t))==t?t:0),rn(po(e),t,n)},Ni.clone=function(e){return an(e,4)},Ni.cloneDeep=function(e){return an(e,5)},Ni.cloneDeepWith=function(e,t){return an(e,5,t="function"==typeof t?t:i)},Ni.cloneWith=function(e,t){return an(e,4,t="function"==typeof t?t:i)},Ni.conformsTo=function(e,t){return null==t||sn(e,t,Co(t))},Ni.deburr=zo,Ni.defaultTo=function(e,t){return null==e||e!=e?t:e},Ni.divide=gl,Ni.endsWith=function(e,t,n){e=mo(e),t=ar(t);var r=e.length,a=n=n===i?r:rn(co(n),0,r);return(n-=t.length)>=0&&e.slice(n,a)==t},Ni.eq=Ns,Ni.escape=function(e){return(e=mo(e))&&X.test(e)?e.replace(G,$t):e},Ni.escapeRegExp=function(e){return(e=mo(e))&&ee.test(e)?e.replace($,"\\$&"):e},Ni.every=function(e,t,n){var r=zs(e)?Et:un;return n&&ma(e,t,n)&&(t=i),r(e,ra(t,3))},Ni.find=ds,Ni.findIndex=Ba,Ni.findKey=function(e,t){return kt(e,ra(t,3),vn)},Ni.findLast=ps,Ni.findLastIndex=za,Ni.findLastKey=function(e,t){return kt(e,ra(t,3),yn)},Ni.floor=vl,Ni.forEach=fs,Ni.forEachRight=ms,Ni.forIn=function(e,t){return null==e?e:mn(e,ra(t,3),Po)},Ni.forInRight=function(e,t){return null==e?e:gn(e,ra(t,3),Po)},Ni.forOwn=function(e,t){return e&&vn(e,ra(t,3))},Ni.forOwnRight=function(e,t){return e&&yn(e,ra(t,3))},Ni.get=So,Ni.gt=Us,Ni.gte=Fs,Ni.has=function(e,t){return null!=e&&ua(e,t,Mn)},Ni.hasIn=Mo,Ni.head=Va,Ni.identity=el,Ni.includes=function(e,t,i,n){e=Vs(e)?e:Uo(e),i=i&&!n?co(i):0;var r=e.length;return i<0&&(i=fi(r+i,0)),no(e)?i<=r&&e.indexOf(t,i)>-1:!!r&&Ut(e,t,i)>-1},Ni.indexOf=function(e,t,i){var n=null==e?0:e.length;if(!n)return-1;var r=null==i?0:co(i);return r<0&&(r=fi(n+r,0)),Ut(e,t,r)},Ni.inRange=function(e,t,n){return t=ho(t),n===i?(n=t,t=0):n=ho(n),function(e,t,i){return e>=mi(t,i)&&e=-h&&e<=h},Ni.isSet=io,Ni.isString=no,Ni.isSymbol=ro,Ni.isTypedArray=ao,Ni.isUndefined=function(e){return e===i},Ni.isWeakMap=function(e){return Js(e)&&ca(e)==C},Ni.isWeakSet=function(e){return Js(e)&&"[object WeakSet]"==wn(e)},Ni.join=function(e,t){return null==e?"":di.call(e,t)},Ni.kebabCase=Ho,Ni.last=Xa,Ni.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var a=r;return n!==i&&(a=(a=co(n))<0?fi(r+a,0):mi(a,r-1)),t==t?function(e,t,i){for(var n=i+1;n--;)if(e[n]===t)return n;return n}(e,t,a):Nt(e,Bt,a,!0)},Ni.lowerCase=Vo,Ni.lowerFirst=jo,Ni.lt=so,Ni.lte=oo,Ni.max=function(e){return e&&e.length?dn(e,el,Sn):i},Ni.maxBy=function(e,t){return e&&e.length?dn(e,ra(t,2),Sn):i},Ni.mean=function(e){return zt(e,el)},Ni.meanBy=function(e,t){return zt(e,ra(t,2))},Ni.min=function(e){return e&&e.length?dn(e,el,On):i},Ni.minBy=function(e,t){return e&&e.length?dn(e,ra(t,2),On):i},Ni.stubArray=dl,Ni.stubFalse=pl,Ni.stubObject=function(){return{}},Ni.stubString=function(){return""},Ni.stubTrue=function(){return!0},Ni.multiply=yl,Ni.nth=function(e,t){return e&&e.length?Bn(e,co(t)):i},Ni.noConflict=function(){return ht._===this&&(ht._=Fe),this},Ni.noop=al,Ni.now=ws,Ni.pad=function(e,t,i){e=mo(e);var n=(t=co(t))?si(e):0;if(!t||n>=t)return e;var r=(t-n)/2;return zr(ft(r),i)+e+zr(pt(r),i)},Ni.padEnd=function(e,t,i){e=mo(e);var n=(t=co(t))?si(e):0;return t&&nt){var r=e;e=t,t=r}if(n||e%1||t%1){var a=yi();return mi(e+a*(t-e+at("1e-"+((a+"").length-1))),t)}return Gn(e,t)},Ni.reduce=function(e,t,i){var n=zs(e)?Dt:jt,r=arguments.length<3;return n(e,ra(t,4),i,r,hn)},Ni.reduceRight=function(e,t,i){var n=zs(e)?Lt:jt,r=arguments.length<3;return n(e,ra(t,4),i,r,cn)},Ni.repeat=function(e,t,n){return t=(n?ma(e,t,n):t===i)?1:co(t),Wn(mo(e),t)},Ni.replace=function(){var e=arguments,t=mo(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Ni.result=function(e,t,n){var r=-1,a=(t=mr(t,e)).length;for(a||(a=1,e=i);++rh)return[];var i=u,n=mi(e,u);t=ra(t),e-=u;for(var r=Wt(n,t);++i=s)return e;var l=n-si(r);if(l<1)return r;var h=o?vr(o,0,l).join(""):e.slice(0,l);if(a===i)return h+r;if(o&&(l+=h.length-l),to(a)){if(e.slice(l).search(a)){var c,u=h;for(a.global||(a=Ee(a.source,mo(ce.exec(a))+"g")),a.lastIndex=0;c=a.exec(u);)var d=c.index;h=h.slice(0,d===i?l:d)}}else if(e.indexOf(ar(a),l)!=l){var p=h.lastIndexOf(a);p>-1&&(h=h.slice(0,p))}return h+r},Ni.unescape=function(e){return(e=mo(e))&&W.test(e)?e.replace(j,hi):e},Ni.uniqueId=function(e){var t=++Oe;return mo(e)+t},Ni.upperCase=Xo,Ni.upperFirst=Yo,Ni.each=fs,Ni.eachRight=ms,Ni.first=Va,rl(Ni,function(){var e={};return vn(Ni,(function(t,i){Ie.call(Ni.prototype,i)||(e[i]=t)})),e}(),{chain:!1}),Ni.VERSION="4.17.21",St(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Ni[e].placeholder=Ni})),St(["drop","take"],(function(e,t){zi.prototype[e]=function(n){n=n===i?1:fi(co(n),0);var r=this.__filtered__&&!t?new zi(this):this.clone();return r.__filtered__?r.__takeCount__=mi(n,r.__takeCount__):r.__views__.push({size:mi(n,u),type:e+(r.__dir__<0?"Right":"")}),r},zi.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),St(["filter","map","takeWhile"],(function(e,t){var i=t+1,n=1==i||3==i;zi.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:ra(e,3),type:i}),t.__filtered__=t.__filtered__||n,t}})),St(["head","last"],(function(e,t){var i="take"+(t?"Right":"");zi.prototype[e]=function(){return this[i](1).value()[0]}})),St(["initial","tail"],(function(e,t){var i="drop"+(t?"":"Right");zi.prototype[e]=function(){return this.__filtered__?new zi(this):this[i](1)}})),zi.prototype.compact=function(){return this.filter(el)},zi.prototype.find=function(e){return this.filter(e).head()},zi.prototype.findLast=function(e){return this.reverse().find(e)},zi.prototype.invokeMap=Xn((function(e,t){return"function"==typeof e?new zi(this):this.map((function(i){return An(i,e,t)}))})),zi.prototype.reject=function(e){return this.filter(Ds(ra(e)))},zi.prototype.slice=function(e,t){e=co(e);var n=this;return n.__filtered__&&(e>0||t<0)?new zi(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==i&&(n=(t=co(t))<0?n.dropRight(-t):n.take(t-e)),n)},zi.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},zi.prototype.toArray=function(){return this.take(u)},vn(zi.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),a=Ni[r?"take"+("last"==t?"Right":""):t],s=r||/^find/.test(t);a&&(Ni.prototype[t]=function(){var t=this.__wrapped__,o=r?[1]:arguments,l=t instanceof zi,h=o[0],c=l||zs(t),u=function(e){var t=a.apply(Ni,Rt([e],o));return r&&d?t[0]:t};c&&n&&"function"==typeof h&&1!=h.length&&(l=c=!1);var d=this.__chain__,p=!!this.__actions__.length,f=s&&!d,m=l&&!p;if(!s&&c){t=m?t:new zi(this);var g=e.apply(t,o);return g.__actions__.push({func:hs,args:[u],thisArg:i}),new Bi(g,d)}return f&&m?e.apply(this,o):(g=this.thru(u),f?r?g.value()[0]:g.value():g)})})),St(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Ce[e],i=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",n=/^(?:pop|shift)$/.test(e);Ni.prototype[e]=function(){var e=arguments;if(n&&!this.__chain__){var r=this.value();return t.apply(zs(r)?r:[],e)}return this[i]((function(i){return t.apply(zs(i)?i:[],e)}))}})),vn(zi.prototype,(function(e,t){var i=Ni[t];if(i){var n=i.name+"";Ie.call(Ai,n)||(Ai[n]=[]),Ai[n].push({name:t,func:i})}})),Ai[Nr(i,2).name]=[{name:"wrapper",func:i}],zi.prototype.clone=function(){var e=new zi(this.__wrapped__);return e.__actions__=Er(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Er(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Er(this.__views__),e},zi.prototype.reverse=function(){if(this.__filtered__){var e=new zi(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},zi.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,i=zs(e),n=t<0,r=i?e.length:0,a=function(e,t,i){for(var n=-1,r=i.length;++n=this.__values__.length;return{done:e,value:e?i:this.__values__[this.__index__++]}},Ni.prototype.plant=function(e){for(var t,n=this;n instanceof Fi;){var r=ka(n);r.__index__=0,r.__values__=i,t?a.__wrapped__=r:t=r;var a=r;n=n.__wrapped__}return a.__wrapped__=e,t},Ni.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof zi){var t=e;return this.__actions__.length&&(t=new zi(this)),(t=t.reverse()).__actions__.push({func:hs,args:[Qa],thisArg:i}),new Bi(t,this.__chain__)}return this.thru(Qa)},Ni.prototype.toJSON=Ni.prototype.valueOf=Ni.prototype.value=function(){return cr(this.__wrapped__,this.__actions__)},Ni.prototype.first=Ni.prototype.head,Ke&&(Ni.prototype[Ke]=function(){return this}),Ni}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(ht._=ci,define((function(){return ci}))):ut?((ut.exports=ci)._=ci,ct._=ci):ht._=ci}).call(e)})),ape=Q(((e,t)=>{var i,n;i=e,n=function(){"use strict";function e(e,n,r,a,s){!function e(i,n,r,a,s){for(;a>r;){if(a-r>600){var o=a-r+1,l=n-r+1,h=Math.log(o),c=.5*Math.exp(2*h/3),u=.5*Math.sqrt(h*c*(o-c)/o)*(l-o/2<0?-1:1);e(i,n,Math.max(r,Math.floor(n-l*c/o+u)),Math.min(a,Math.floor(n+(o-l)*c/o+u)),s)}var d=i[n],p=r,f=a;for(t(i,r,n),s(i[a],d)>0&&t(i,r,a);p0;)f--}0===s(i[r],d)?t(i,r,f):t(i,++f,a),f<=n&&(r=f+1),n<=f&&(a=f-1)}}(e,n,r||0,a||e.length-1,s||i)}function t(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function i(e,t){return et?1:0}var n=function(e){void 0===e&&(e=9),this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function r(e,t,i){if(!i)return t.indexOf(e);for(var n=0;n=e.minX&&t.maxY>=e.minY}function f(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function m(t,i,n,r,a){for(var s=[i,n];s.length;)if(!((n=s.pop())-(i=s.pop())<=r)){var o=i+Math.ceil((n-i)/r/2)*r;e(t,o,i,n,a),s.push(i,o,o,n)}}return n.prototype.all=function(){return this._all(this.data,[])},n.prototype.search=function(e){var t=this.data,i=[];if(!p(e,t))return i;for(var n=this.toBBox,r=[];t;){for(var a=0;a=0&&r[t].children.length>this._maxEntries;)this._split(r,t),t--;this._adjustParentBBoxes(n,r,t)},n.prototype._split=function(e,t){var i=e[t],n=i.children.length,r=this._minEntries;this._chooseSplitAxis(i,r,n);var s=this._chooseSplitIndex(i,r,n),o=f(i.children.splice(s,i.children.length-s));o.height=i.height,o.leaf=i.leaf,a(i,this.toBBox),a(o,this.toBBox),t?e[t-1].children.push(o):this._splitRoot(i,o)},n.prototype._splitRoot=function(e,t){this.data=f([e,t]),this.data.height=e.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},n.prototype._chooseSplitIndex=function(e,t,i){for(var n,r,a,o,l,h,u,d=1/0,p=1/0,f=t;f<=i-t;f++){var m=s(e,0,f,this.toBBox),g=s(e,f,i,this.toBBox),v=(r=m,a=g,o=Math.max(r.minX,a.minX),l=Math.max(r.minY,a.minY),h=Math.min(r.maxX,a.maxX),u=Math.min(r.maxY,a.maxY),Math.max(0,h-o)*Math.max(0,u-l)),y=c(m)+c(g);v=t;p--){var f=e.children[p];o(l,e.leaf?r(f):f),h+=u(l)}return h},n.prototype._adjustParentBBoxes=function(e,t,i){for(var n=i;n>=0;n--)o(t[n],e)},n.prototype._condense=function(e){for(var t=e.length-1,i=void 0;t>=0;t--)0===e[t].children.length?t>0?(i=e[t-1].children).splice(i.indexOf(e[t]),1):this.clear():a(e[t],this.toBBox)},n},"object"==typeof e&&void 0!==t?t.exports=n():"function"==typeof define&&define.amd?define(n):(i=i||self).RBush=n()})),ope=Q(((e,t)=>{var i,n;i=e,n=function(){"use strict";var e=function(e,i){if(void 0===e&&(e=[]),void 0===i&&(i=t),this.data=e,this.length=this.data.length,this.compare=i,this.length>0)for(var n=(this.length>>1)-1;n>=0;n--)this._down(n)};function t(e,t){return et?1:0}return e.prototype.push=function(e){this.data.push(e),this.length++,this._up(this.length-1)},e.prototype.pop=function(){if(0!==this.length){var e=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),e}},e.prototype.peek=function(){return this.data[0]},e.prototype._up=function(e){for(var t=this.data,i=this.compare,n=t[e];e>0;){var r=e-1>>1,a=t[r];if(i(n,a)>=0)break;t[e]=a,e=r}t[e]=n},e.prototype._down=function(e){for(var t=this.data,i=this.compare,n=this.length>>1,r=t[e];e=0)break;t[e]=s,e=a}t[e]=r},e},"object"==typeof e&&void 0!==t?t.exports=n():"function"==typeof define&&define.amd?define(n):(i=i||self).TinyQueue=n()})),cpe=Q(((e,t)=>{t.exports=function(e,t,i,n){var r=e[0],a=e[1],s=!1;void 0===i&&(i=0),void 0===n&&(n=t.length);for(var o=(n-i)/2,l=0,h=o-1;la!=p>a&&r<(d-c)*(a-u)/(p-u)+c&&(s=!s)}return s}})),hpe=Q(((e,t)=>{t.exports=function(e,t,i,n){var r=e[0],a=e[1],s=!1;void 0===i&&(i=0),void 0===n&&(n=t.length);for(var o=n-i,l=0,h=o-1;la!=p>a&&r<(d-c)*(a-u)/(p-u)+c&&(s=!s)}return s}})),ppe=Q(((e,t)=>{var i=cpe(),n=hpe();t.exports=function(e,t,r,a){return t.length>0&&Array.isArray(t[0])?n(e,t,r,a):i(e,t,r,a)},t.exports.nested=n,t.exports.flat=i})),gpe=Q(((e,t)=>{var i,n;i=e,n=function(e){"use strict";function t(e,t,i,n,r){let a,s,o,l,h=t[0],c=n[0],u=0,d=0;c>h==c>-h?(a=h,h=t[++u]):(a=c,c=n[++d]);let p=0;if(uh==c>-h?(o=a-((s=h+a)-h),h=t[++u]):(o=a-((s=c+a)-c),c=n[++d]),a=s,0!==o&&(r[p++]=o);uh==c>-h?(o=a-((s=a+h)-(l=s-a))+(h-l),h=t[++u]):(o=a-((s=a+c)-(l=s-a))+(c-l),c=n[++d]),a=s,0!==o&&(r[p++]=o);for(;u0!=p>0)return f;let m=Math.abs(d+p);return Math.abs(f)>=33306690738754716e-32*m?f:-function(e,i,l,h,c,u,d){let p,f,m,g,v,y,x,b,_,w,S,M,E,T,A,C,P,R,D=e-c,L=l-c,I=i-u,O=h-u;v=(A=(b=D-(x=(y=134217729*D)-(y-D)))*(w=O-(_=(y=134217729*O)-(y-O)))-((T=D*O)-x*_-b*_-x*w))-(S=A-(P=(b=I-(x=(y=134217729*I)-(y-I)))*(w=L-(_=(y=134217729*L)-(y-L)))-((C=I*L)-x*_-b*_-x*w))),n[0]=A-(S+v)+(v-P),v=(E=T-((M=T+S)-(v=M-T))+(S-v))-(S=E-C),n[1]=E-(S+v)+(v-C),v=(R=M+S)-M,n[2]=M-(R-v)+(S-v),n[3]=R;let k=function(e,t){let i=t[0];for(let n=1;n<4;n++)i+=t[n];return i}(0,n),N=22204460492503146e-32*d;if(k>=N||-k>=N||(p=e-(D+(v=e-D))+(v-c),m=l-(L+(v=l-L))+(v-c),f=i-(I+(v=i-I))+(v-u),g=h-(O+(v=h-O))+(v-u),0===p&&0===f&&0===m&&0===g)||(N=11093356479670487e-47*d+33306690738754706e-32*Math.abs(k),(k+=D*g+O*p-(I*m+L*f))>=N||-k>=N))return k;v=(A=(b=p-(x=(y=134217729*p)-(y-p)))*(w=O-(_=(y=134217729*O)-(y-O)))-((T=p*O)-x*_-b*_-x*w))-(S=A-(P=(b=f-(x=(y=134217729*f)-(y-f)))*(w=L-(_=(y=134217729*L)-(y-L)))-((C=f*L)-x*_-b*_-x*w))),o[0]=A-(S+v)+(v-P),v=(E=T-((M=T+S)-(v=M-T))+(S-v))-(S=E-C),o[1]=E-(S+v)+(v-C),v=(R=M+S)-M,o[2]=M-(R-v)+(S-v),o[3]=R;let U=t(4,n,4,o,r);v=(A=(b=D-(x=(y=134217729*D)-(y-D)))*(w=g-(_=(y=134217729*g)-(y-g)))-((T=D*g)-x*_-b*_-x*w))-(S=A-(P=(b=I-(x=(y=134217729*I)-(y-I)))*(w=m-(_=(y=134217729*m)-(y-m)))-((C=I*m)-x*_-b*_-x*w))),o[0]=A-(S+v)+(v-P),v=(E=T-((M=T+S)-(v=M-T))+(S-v))-(S=E-C),o[1]=E-(S+v)+(v-C),v=(R=M+S)-M,o[2]=M-(R-v)+(S-v),o[3]=R;let F=t(U,r,4,o,a);v=(A=(b=p-(x=(y=134217729*p)-(y-p)))*(w=g-(_=(y=134217729*g)-(y-g)))-((T=p*g)-x*_-b*_-x*w))-(S=A-(P=(b=f-(x=(y=134217729*f)-(y-f)))*(w=m-(_=(y=134217729*m)-(y-m)))-((C=f*m)-x*_-b*_-x*w))),o[0]=A-(S+v)+(v-P),v=(E=T-((M=T+S)-(v=M-T))+(S-v))-(S=E-C),o[1]=E-(S+v)+(v-C),v=(R=M+S)-M,o[2]=M-(R-v)+(S-v),o[3]=R;let B=t(F,a,4,o,s);return s[B-1]}(e,i,l,h,c,u,m)},e.orient2dfast=function(e,t,i,n,r,a){return(t-a)*(i-r)-(e-r)*(n-a)},Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof e&&void 0!==t?n(e):"function"==typeof define&&define.amd?define(["exports"],n):n((i=i||self).predicates={})})),_pe=Q(((e,t)=>{"use strict";var i=ape(),n=ope(),r=ppe(),a=gpe().orient2d;function s(e,t,n){t=Math.max(0,void 0===t?2:t),n=n||0;var a=function(e){for(var t=e[0],i=e[0],n=e[0],a=e[0],s=0;sn[0]&&(n=o),o[1]a[1]&&(a=o)}var l=[t,i,n,a],h=l.slice();for(s=0;s=2&&d(t[t.length-2],t[t.length-1],e[i])<=0;)t.pop();t.push(e[i])}for(var n=[],r=e.length-1;r>=0;r--){for(;n.length>=2&&d(n[n.length-2],n[n.length-1],e[r])<=0;)n.pop();n.push(e[r])}return n.pop(),t.pop(),t.concat(n)}(h)}(e),s=new i(16);s.toBBox=function(e){return{minX:e[0],minY:e[1],maxX:e[0],maxY:e[1]}},s.compareMinX=function(e,t){return e[0]-t[0]},s.compareMinY=function(e,t){return e[1]-t[1]},s.load(e);for(var l,h=[],c=0;cs||c.push({node:f,dist:m})}for(;c.length&&!c.peek().node.children;){var g=c.pop(),y=g.node,x=v(y,t,i),b=v(y,r,a);if(g.dist=t.minX&&e[0]<=t.maxX&&e[1]>=t.minY&&e[1]<=t.maxY}function u(e,t,i){for(var n=Math.min(e[0],t[0]),r=Math.min(e[1],t[1]),a=Math.max(e[0],t[0]),s=Math.max(e[1],t[1]),o=i.search({minX:n,minY:r,maxX:a,maxY:s}),l=0;l0!=d(e,t,n)>0&&d(i,n,e)>0!=d(i,n,t)>0}function f(e){var t=e.p,i=e.next.p;return e.minX=Math.min(t[0],i[0]),e.minY=Math.min(t[1],i[1]),e.maxX=Math.max(t[0],i[0]),e.maxY=Math.max(t[1],i[1]),e}function m(e,t){var i={p:e,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return t?(i.next=t.next,i.prev=t,t.next.prev=i,t.next=i):(i.prev=i,i.next=i),i}function g(e,t){var i=e[0]-t[0],n=e[1]-t[1];return i*i+n*n}function v(e,t,i){var n=t[0],r=t[1],a=i[0]-n,s=i[1]-r;if(0!==a||0!==s){var o=((e[0]-n)*a+(e[1]-r)*s)/(a*a+s*s);o>1?(n=i[0],r=i[1]):o>0&&(n+=a*o,r+=s*o)}return(a=e[0]-n)*a+(s=e[1]-r)*s}function y(e,t,i,n,r,a,s,o){var l,h,c,u,d=i-e,p=n-t,f=s-r,m=o-a,g=e-r,v=t-a,y=d*d+p*p,x=d*f+p*m,b=f*f+m*m,_=d*g+p*v,w=f*g+m*v,S=y*b-x*x,M=S,E=S;0===S?(h=0,M=1,u=w,E=b):(u=y*w-x*_,(h=x*w-b*_)<0?(h=0,u=w,E=b):h>M&&(h=M,u=w+x,E=b)),u<0?(u=0,-_<0?h=0:-_>y?h=M:(h=-_,M=y)):u>E&&(u=E,-_+x<0?h=0:-_+x>y?h=M:(h=-_+x,M=y));var T=(1-(c=0===u?0:u/E))*r+c*s-((1-(l=0===h?0:h/M))*e+l*i),A=(1-c)*a+c*o-((1-l)*t+l*n);return T*T+A*A}function x(e,t){return e[0]===t[0]?e[1]-t[1]:e[0]-t[0]}n.default&&(n=n.default),t.exports=s,t.exports.default=s})),Gpe=Q(((e,t)=>{t.exports=function(){var e,t=0,i=!1;function n(t,i){return e.list.push({type:t,data:i?JSON.parse(JSON.stringify(i)):void 0}),e}return e={list:[],segmentId:function(){return t++},checkIntersection:function(e,t){return n("check",{seg1:e,seg2:t})},segmentChop:function(e,t){return n("div_seg",{seg:e,pt:t}),n("chop",{seg:e,pt:t})},statusRemove:function(e){return n("pop_seg",{seg:e})},segmentUpdate:function(e){return n("seg_update",{seg:e})},segmentNew:function(e,t){return n("new_seg",{seg:e,primary:t})},segmentRemove:function(e){return n("rem_seg",{seg:e})},tempStatus:function(e,t,i){return n("temp_status",{seg:e,above:t,below:i})},rewind:function(e){return n("rewind",{seg:e})},status:function(e,t,i){return n("status",{seg:e,above:t,below:i})},vert:function(t){return t===i?e:(i=t,n("vert",{x:t}))},log:function(e){return"string"!=typeof e&&(e=JSON.stringify(e,!1," ")),n("log",{txt:e})},reset:function(){return n("reset")},selected:function(e){return n("selected",{segs:e})},chainStart:function(e){return n("chain_start",{seg:e})},chainRemoveHead:function(e,t){return n("chain_rem_head",{index:e,pt:t})},chainRemoveTail:function(e,t){return n("chain_rem_tail",{index:e,pt:t})},chainNew:function(e,t){return n("chain_new",{pt1:e,pt2:t})},chainMatch:function(e){return n("chain_match",{index:e})},chainClose:function(e){return n("chain_close",{index:e})},chainAddHead:function(e,t){return n("chain_add_head",{index:e,pt:t})},chainAddTail:function(e,t){return n("chain_add_tail",{index:e,pt:t})},chainConnect:function(e,t){return n("chain_con",{index1:e,index2:t})},chainReverse:function(e){return n("chain_rev",{index:e})},chainJoin:function(e,t){return n("chain_join",{index1:e,index2:t})},done:function(){return n("done")}}}})),Wpe=Q(((e,t)=>{t.exports=function(e){"number"!=typeof e&&(e=1e-10);var t={epsilon:function(t){return"number"==typeof t&&(e=t),e},pointAboveOrOnLine:function(t,i,n){var r=i[0],a=i[1],s=n[0],o=n[1],l=t[0];return(s-r)*(t[1]-a)-(o-a)*(l-r)>=-e},pointBetween:function(t,i,n){var r=t[1]-i[1],a=n[0]-i[0],s=t[0]-i[0],o=n[1]-i[1],l=s*a+r*o;return!(l-e)},pointsSameX:function(t,i){return Math.abs(t[0]-i[0])e!=s-r>e&&(a-h)*(r-c)/(s-c)+h-n>e&&(o=!o),a=h,s=c}return o}};return t}})),Xpe=Q(((e,t)=>{t.exports={create:function(){var e={root:{root:!0,next:null},exists:function(t){return!(null===t||t===e.root)},isEmpty:function(){return null===e.root.next},getHead:function(){return e.root.next},insertBefore:function(t,i){for(var n=e.root,r=e.root.next;null!==r;){if(i(r))return t.prev=r.prev,t.next=r,r.prev.next=t,void(r.prev=t);n=r,r=r.next}n.next=t,t.prev=n,t.next=null},findTransition:function(t){for(var i=e.root,n=e.root.next;null!==n&&!t(n);)i=n,n=n.next;return{before:i===e.root?null:i,after:n,insert:function(e){return e.prev=i,e.next=n,i.next=e,null!==n&&(n.prev=e),e}}}};return e},node:function(e){return e.prev=null,e.next=null,e.remove=function(){e.prev.next=e.next,e.next&&(e.next.prev=e.prev),e.prev=null,e.next=null},e}}})),$pe=Q(((e,t)=>{var i=Xpe();t.exports=function(e,t,n){function r(e,t){return{id:n?n.segmentId():-1,start:e,end:t,myFill:{above:null,below:null},otherFill:null}}function a(e,t,i){return{id:n?n.segmentId():-1,start:e,end:t,myFill:{above:i.myFill.above,below:i.myFill.below},otherFill:null}}var s=i.create();function o(e,i){s.insertBefore(e,(function(n){var r=function(e,i,n,r,a,s){var o=t.pointsCompare(i,a);return 0!==o?o:t.pointsSame(n,s)?0:e!==r?e?1:-1:t.pointAboveOrOnLine(n,r?a:s,r?s:a)?1:-1}(e.isStart,e.pt,i,n.isStart,n.pt,n.other.pt);return r<0}))}function l(e,t){var n=function(e,t){var n=i.node({isStart:!0,pt:e.start,seg:e,primary:t,other:null,status:null});return o(n,e.end),n}(e,t);return function(e,t,n){var r=i.node({isStart:!1,pt:t.end,seg:t,primary:n,other:e,status:null});e.other=r,o(r,e.pt)}(n,e,t),n}function h(e,t){var i=a(t,e.seg.end,e.seg);return function(e,t){n&&n.segmentChop(e.seg,t),e.other.remove(),e.seg.end=t,e.other.pt=t,o(e.other,e.pt)}(e,t),l(i,e.primary)}function c(r,a){var o=i.create();function l(e){return o.findTransition((function(i){var n=function(e,i){var n=e.seg.start,r=e.seg.end,a=i.seg.start,s=i.seg.end;return t.pointsCollinear(n,a,s)?t.pointsCollinear(r,a,s)||t.pointAboveOrOnLine(r,a,s)?1:-1:t.pointAboveOrOnLine(n,a,s)?1:-1}(e,i.ev);return n>0}))}function c(e,i){var r=e.seg,a=i.seg,s=r.start,o=r.end,l=a.start,c=a.end;n&&n.checkIntersection(r,a);var u=t.linesIntersect(s,o,l,c);if(!1===u){if(!t.pointsCollinear(s,o,l)||t.pointsSame(s,c)||t.pointsSame(o,l))return!1;var d=t.pointsSame(s,l),p=t.pointsSame(o,c);if(d&&p)return i;var f=!d&&t.pointBetween(s,l,c),m=!p&&t.pointBetween(o,l,c);if(d)return m?h(i,o):h(e,c),i;f&&(p||(m?h(i,o):h(e,c)),h(i,s))}else 0===u.alongA&&(-1===u.alongB?h(e,l):0===u.alongB?h(e,u.pt):1===u.alongB&&h(e,c)),0===u.alongB&&(-1===u.alongA?h(i,s):0===u.alongA?h(i,u.pt):1===u.alongA&&h(i,o));return!1}for(var u=[];!s.isEmpty();){var d=s.getHead();if(n&&n.vert(d.pt[0]),d.isStart){let t=function(){if(f){var e=c(d,f);if(e)return e}return!!m&&c(d,m)};n&&n.segmentNew(d.seg,d.primary);var p=l(d),f=p.before?p.before.ev:null,m=p.after?p.after.ev:null;n&&n.tempStatus(d.seg,!!f&&f.seg,!!m&&m.seg);var g,v=t();if(v)e?(g=null===d.seg.myFill.below||d.seg.myFill.above!==d.seg.myFill.below)&&(v.seg.myFill.above=!v.seg.myFill.above):v.seg.otherFill=d.seg.myFill,n&&n.segmentUpdate(v.seg),d.other.remove(),d.remove();if(s.getHead()!==d){n&&n.rewind(d.seg);continue}if(e)g=null===d.seg.myFill.below||d.seg.myFill.above!==d.seg.myFill.below,d.seg.myFill.below=m?m.seg.myFill.above:r,d.seg.myFill.above=g?!d.seg.myFill.below:d.seg.myFill.below;else if(null===d.seg.otherFill){var y;y=m?d.primary===m.primary?m.seg.otherFill.above:m.seg.myFill.above:d.primary?a:r,d.seg.otherFill={above:y,below:y}}n&&n.status(d.seg,!!f&&f.seg,!!m&&m.seg),d.other.status=p.insert(i.node({ev:d}))}else{var x=d.status;if(null===x)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(o.exists(x.prev)&&o.exists(x.next)&&c(x.prev.ev,x.next.ev),n&&n.statusRemove(x.ev.seg),x.remove(),!d.primary){var b=d.seg.myFill;d.seg.myFill=d.seg.otherFill,d.seg.otherFill=b}u.push(d.seg)}s.getHead().remove()}return n&&n.done(),u}return e?{addRegion:function(e){for(var i,n=e[e.length-1],a=0;a{t.exports=function(e,t,i){var n=[],r=[];return e.forEach((function(e){var a=e.start,s=e.end;if(t.pointsSame(a,s))console.warn("PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large");else{i&&i.chainStart(e);for(var o={index:0,matches_head:!1,matches_pt1:!1},l={index:0,matches_head:!1,matches_pt1:!1},h=o,c=0;c{function i(e,t,i){var n=[];return e.forEach((function(e){var r=(e.myFill.above?8:0)+(e.myFill.below?4:0)+(e.otherFill&&e.otherFill.above?2:0)+(e.otherFill&&e.otherFill.below?1:0);0!==t[r]&&n.push({id:i?i.segmentId():-1,start:e.start,end:e.end,myFill:{above:1===t[r],below:2===t[r]},otherFill:null})})),i&&i.selected(n),n}var n={union:function(e,t){return i(e,[0,2,1,0,2,2,0,0,1,0,1,0,0,0,0,0],t)},intersect:function(e,t){return i(e,[0,0,0,0,0,2,0,2,0,0,1,1,0,2,1,0],t)},difference:function(e,t){return i(e,[0,0,0,0,2,0,2,0,1,1,0,0,0,1,2,0],t)},differenceRev:function(e,t){return i(e,[0,2,1,0,0,0,1,1,0,2,0,2,0,0,0,0],t)},xor:function(e,t){return i(e,[0,2,1,0,2,0,0,1,1,0,0,2,0,1,2,0],t)}};t.exports=n})),tme=Q(((e,t)=>{var i={toPolygon:function(e,t){function i(t){if(t.length<=0)return e.segments({inverted:!1,regions:[]});function i(t){var i=t.slice(0,t.length-1);return e.segments({inverted:!1,regions:[i]})}for(var n=i(t[0]),r=1;r{var i,n=Gpe(),r=Wpe(),a=$pe(),s=Kpe(),o=Qpe(),l=tme(),h=!1,c=r();function u(e,t,n){var r=i.segments(e),a=i.segments(t),s=n(i.combine(r,a));return i.polygon(s)}i={buildLog:function(e){return!0===e?h=n():!1===e&&(h=!1),!1!==h&&h.list},epsilon:function(e){return c.epsilon(e)},segments:function(e){var t=a(!0,c,h);return e.regions.forEach(t.addRegion),{segments:t.calculate(e.inverted),inverted:e.inverted}},combine:function(e,t){return{combined:a(!1,c,h).calculate(e.segments,e.inverted,t.segments,t.inverted),inverted1:e.inverted,inverted2:t.inverted}},selectUnion:function(e){return{segments:o.union(e.combined,h),inverted:e.inverted1||e.inverted2}},selectIntersect:function(e){return{segments:o.intersect(e.combined,h),inverted:e.inverted1&&e.inverted2}},selectDifference:function(e){return{segments:o.difference(e.combined,h),inverted:e.inverted1&&!e.inverted2}},selectDifferenceRev:function(e){return{segments:o.differenceRev(e.combined,h),inverted:!e.inverted1&&e.inverted2}},selectXor:function(e){return{segments:o.xor(e.combined,h),inverted:e.inverted1!==e.inverted2}},polygon:function(e){return{regions:s(e.segments,c,h),inverted:e.inverted}},polygonFromGeoJSON:function(e){return l.toPolygon(i,e)},polygonToGeoJSON:function(e){return l.fromPolygon(i,c,e)},union:function(e,t){return u(e,t,i.selectUnion)},intersect:function(e,t){return u(e,t,i.selectIntersect)},difference:function(e,t){return u(e,t,i.selectDifference)},differenceRev:function(e,t){return u(e,t,i.selectDifferenceRev)},xor:function(e,t){return u(e,t,i.selectXor)}},"object"==typeof window&&(window.PolyBool=i),t.exports=i})),PC=Q((()=>{})),ave=Q(((e,t)=>{var i,n;i=e,n=function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var i=0;it?1:e0))break;if(null===t.right)break;if(i(e,t.right.key)>0&&(l=t.right,t.right=l.left,l.left=t,null===(t=l).right))break;a.right=t,a=t,t=t.right}}return a.right=t.left,s.left=t.right,t.left=r.right,t.right=r.left,t}function s(e,t,i,r){var s=new n(e,t);if(null===i)return s.left=s.right=null,s;var o=r(e,(i=a(e,i,r)).key);return o<0?(s.left=i.left,s.right=i,i.left=null):o>=0&&(s.right=i.right,s.left=i,i.right=null),s}function o(e,t,i){var n=null,r=null;if(t){var s=i((t=a(e,t,i)).key,e);0===s?(n=t.left,r=t.right):s<0?(r=t.right,t.right=null,n=t):(n=t.left,t.left=null,r=t)}return{left:n,right:r}}function l(e,t,i,n,r){if(e){n(t+(i?"\u2514\u2500\u2500 ":"\u251c\u2500\u2500 ")+r(e)+"\n");var a=t+(i?" ":"\u2502 ");e.left&&l(e.left,a,!1,n,r),e.right&&l(e.right,a,!0,n,r)}}var h=function(){function e(e){void 0===e&&(e=r),this._root=null,this._size=0,this._comparator=e}return e.prototype.insert=function(e,t){return this._size++,this._root=s(e,t,this._root,this._comparator)},e.prototype.add=function(e,t){var i=new n(e,t);null===this._root&&(i.left=i.right=null,this._size++,this._root=i);var r=this._comparator,s=a(e,this._root,r),o=r(e,s.key);return 0===o?this._root=s:(o<0?(i.left=s.left,i.right=s,s.left=null):o>0&&(i.right=s.right,i.left=s,s.right=null),this._size++,this._root=i),this._root},e.prototype.remove=function(e){this._root=this._remove(e,this._root,this._comparator)},e.prototype._remove=function(e,t,i){var n;return null===t?null:0===i(e,(t=a(e,t,i)).key)?(null===t.left?n=t.right:(n=a(e,t.left,i)).right=t.right,this._size--,n):t},e.prototype.pop=function(){var e=this._root;if(e){for(;e.left;)e=e.left;return this._root=a(e.key,this._root,this._comparator),this._root=this._remove(e.key,this._root,this._comparator),{key:e.key,data:e.data}}return null},e.prototype.findStatic=function(e){for(var t=this._root,i=this._comparator;t;){var n=i(e,t.key);if(0===n)return t;t=n<0?t.left:t.right}return null},e.prototype.find=function(e){return this._root&&(this._root=a(e,this._root,this._comparator),0!==this._comparator(e,this._root.key))?null:this._root},e.prototype.contains=function(e){for(var t=this._root,i=this._comparator;t;){var n=i(e,t.key);if(0===n)return!0;t=n<0?t.left:t.right}return!1},e.prototype.forEach=function(e,t){for(var i=this._root,n=[],r=!1;!r;)null!==i?(n.push(i),i=i.left):0!==n.length?(i=n.pop(),e.call(t,i),i=i.right):r=!0;return this},e.prototype.range=function(e,t,i,n){for(var r=[],a=this._comparator,s=this._root;0!==r.length||s;)if(s)r.push(s),s=s.left;else{if(a((s=r.pop()).key,t)>0)break;if(a(s.key,e)>=0&&i.call(n,s))return this;s=s.right}return this},e.prototype.keys=function(){var e=[];return this.forEach((function(t){var i=t.key;return e.push(i)})),e},e.prototype.values=function(){var e=[];return this.forEach((function(t){var i=t.data;return e.push(i)})),e},e.prototype.min=function(){return this._root?this.minNode(this._root).key:null},e.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},e.prototype.minNode=function(e){if(void 0===e&&(e=this._root),e)for(;e.left;)e=e.left;return e},e.prototype.maxNode=function(e){if(void 0===e&&(e=this._root),e)for(;e.right;)e=e.right;return e},e.prototype.at=function(e){for(var t=this._root,i=!1,n=0,r=[];!i;)if(t)r.push(t),t=t.left;else if(r.length>0){if(t=r.pop(),n===e)return t;n++,t=t.right}else i=!0;return null},e.prototype.next=function(e){var t=this._root,i=null;if(e.right){for(i=e.right;i.left;)i=i.left;return i}for(var n=this._comparator;t;){var r=n(e.key,t.key);if(0===r)break;r<0?(i=t,t=t.left):t=t.right}return i},e.prototype.prev=function(e){var t=this._root,i=null;if(null!==e.left){for(i=e.left;i.right;)i=i.right;return i}for(var n=this._comparator;t;){var r=n(e.key,t.key);if(0===r)break;r<0?t=t.left:(i=t,t=t.right)}return i},e.prototype.clear=function(){return this._root=null,this._size=0,this},e.prototype.toList=function(){return function(e){for(var t=e,i=[],r=!1,a=new n(null,null),s=a;!r;)t?(i.push(t),t=t.left):i.length>0?t=(t=s=s.next=i.pop()).right:r=!0;return s.next=null,a.next}(this._root)},e.prototype.load=function(e,t,i){void 0===t&&(t=[]),void 0===i&&(i=!1);var r=e.length,a=this._comparator;if(i&&d(e,t,0,r-1,a),null===this._root)this._root=c(e,t,0,r),this._size=r;else{var s=function(e,t,i){for(var r=new n(null,null),a=r,s=e,o=t;null!==s&&null!==o;)i(s.key,o.key)<0?(a.next=s,s=s.next):(a.next=o,o=o.next),a=a.next;return null!==s?a.next=s:null!==o&&(a.next=o),r.next}(this.toList(),function(e,t){for(var i=new n(null,null),r=i,a=0;a0){var s=i+Math.floor(a/2),o=e[s],l=t[s],h=new n(o,l);return h.left=c(e,t,i,s),h.right=c(e,t,s+1,r),h}return null}function u(e,t,i){var n=i-t;if(n>0){var r=t+Math.floor(n/2),a=u(e,t,r),s=e.head;return s.left=a,e.head=e.head.next,s.right=u(e,r+1,i),s}return null}function d(e,t,i,n,r){if(!(i>=n)){for(var a=e[i+n>>1],s=i-1,o=n+1;;){do{s++}while(r(e[s],a)<0);do{o--}while(r(e[o],a)>0);if(s>=o)break;var l=e[s];e[s]=e[o],e[o]=l,l=t[s],t[s]=t[o],t[o]=l}d(e,t,i,o,r),d(e,t,o+1,n,r)}}var p=function(e,t){return e.ll.x<=t.x&&t.x<=e.ur.x&&e.ll.y<=t.y&&t.y<=e.ur.y},f=function(e,t){if(t.ur.xt.x?1:e.yt.y?1:0}}]),i(t,[{key:"link",value:function(e){if(e.point===this.point)throw new Error("Tried to link already linked events");for(var t=e.point.events,i=0,n=t.length;i=0&&l>=0?sh?-1:0:a<0&&l<0?sh?1:0:la?1:0}}}]),t}(),R=0,D=function(){function t(i,n,r,a){e(this,t),this.id=++R,this.leftSE=i,i.segment=this,i.otherSE=n,this.rightSE=n,n.segment=this,n.otherSE=i,this.rings=r,this.windings=a}return i(t,null,[{key:"compare",value:function(e,t){var i=e.leftSE.point.x,n=t.leftSE.point.x,r=e.rightSE.point.x,a=t.rightSE.point.x;if(as&&o>l)return-1;var c=e.comparePoint(t.leftSE.point);if(c<0)return 1;if(c>0)return-1;var u=t.comparePoint(e.rightSE.point);return 0!==u?u:-1}if(i>n){if(so&&s>h)return 1;var d=t.comparePoint(e.leftSE.point);if(0!==d)return d;var p=e.comparePoint(t.rightSE.point);return p<0?1:p>0?-1:1}if(so)return 1;if(ra){var m=e.comparePoint(t.rightSE.point);if(m<0)return 1;if(m>0)return-1}if(r!==a){var g=l-s,v=r-i,y=h-o,x=a-n;if(g>v&&yx)return-1}return r>a?1:rh?1:e.idt.id?1:0}}]),i(t,[{key:"replaceRightSE",value:function(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var e=this.leftSE.point.y,t=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:et?e:t}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(e){return e.x===this.leftSE.point.x&&e.y===this.leftSE.point.y||e.x===this.rightSE.point.x&&e.y===this.rightSE.point.y}},{key:"comparePoint",value:function(e){if(this.isAnEndpoint(e))return 0;var t=this.leftSE.point,i=this.rightSE.point,n=this.vector();if(t.x===i.x)return e.x===t.x?0:e.x0&&o.swapEvents(),P.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),n&&(r.checkForConsuming(),a.checkForConsuming()),i}},{key:"swapEvents",value:function(){var e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var t=0,i=this.windings.length;t0){var a=i;i=n,n=a}if(i.prev===n){var s=i;i=n,n=s}for(var o=0,l=n.rings.length;o0))throw new Error("Tried to create degenerate segment at [".concat(e.x,", ").concat(e.y,"]"));r=i,a=e,s=-1}return new t(new P(r,!0),new P(a,!1),[n],[s])}}]),t}(),L=function(){function t(i,n,r){if(e(this,t),!Array.isArray(i)||0===i.length)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=n,this.isExterior=r,this.segments=[],"number"!=typeof i[0][0]||"number"!=typeof i[0][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var a=b.round(i[0][0],i[0][1]);this.bbox={ll:{x:a.x,y:a.y},ur:{x:a.x,y:a.y}};for(var s=a,o=1,l=i.length;othis.bbox.ur.x&&(this.bbox.ur.x=h.x),h.y>this.bbox.ur.y&&(this.bbox.ur.y=h.y),s=h)}(a.x!==s.x||a.y!==s.y)&&this.segments.push(D.fromRing(s,a,this))}return i(t,[{key:"getSweepEvents",value:function(){for(var e=[],t=0,i=this.segments.length;tthis.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.interiorRings.push(s)}this.multiPoly=n}return i(t,[{key:"getSweepEvents",value:function(){for(var e=this.exteriorRing.getSweepEvents(),t=0,i=this.interiorRings.length;tthis.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.polys.push(s)}this.isSubject=n}return i(t,[{key:"getSweepEvents",value:function(){for(var e=[],t=0,i=this.polys.length;t0&&(e=n)}for(var r=e.segment.prevInResult(),a=r?r.prevInResult():null;;){if(!r)return null;if(!a)return r.ringOut;if(a.ringOut!==r.ringOut)return a.ringOut.enclosingRing()!==r.ringOut?r.ringOut:r.ringOut.enclosingRing();r=a.prevInResult(),a=r?r.prevInResult():null}}}]),t}(),N=function(){function t(i){e(this,t),this.exteriorRing=i,i.poly=this,this.interiorRings=[]}return i(t,[{key:"addInterior",value:function(e){this.interiorRings.push(e),e.poly=this}},{key:"getGeom",value:function(){var e=[this.exteriorRing.getGeom()];if(null===e[0])return null;for(var t=0,i=this.interiorRings.length;t1&&void 0!==arguments[1]?arguments[1]:D.compare;e(this,t),this.queue=i,this.tree=new h(n),this.segments=[]}return i(t,[{key:"process",value:function(e){var t=e.segment,i=[];if(e.consumedBy)return e.isLeft?this.queue.remove(e.otherSE):this.tree.remove(t),i;var n=e.isLeft?this.tree.insert(t):this.tree.find(t);if(!n)throw new Error("Unable to find segment #".concat(t.id," ")+"[".concat(t.leftSE.point.x,", ").concat(t.leftSE.point.y,"] -> ")+"[".concat(t.rightSE.point.x,", ").concat(t.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var r=n,a=n,s=void 0,o=void 0;void 0===s;)null===(r=this.tree.prev(r))?s=null:void 0===r.key.consumedBy&&(s=r.key);for(;void 0===o;)null===(a=this.tree.next(a))?o=null:void 0===a.key.consumedBy&&(o=a.key);if(e.isLeft){var l=null;if(s){var h=s.getIntersection(t);if(null!==h&&(t.isAnEndpoint(h)||(l=h),!s.isAnEndpoint(h)))for(var c=this._splitSafely(s,h),u=0,d=c.length;u0?(this.tree.remove(t),i.push(e)):(this.segments.push(t),t.prev=s)}else{if(s&&o){var w=s.getIntersection(o);if(null!==w){if(!s.isAnEndpoint(w))for(var S=this._splitSafely(s,w),M=0,E=S.length;MB)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var w=new F(m),S=m.size,M=m.pop();M;){var E=M.key;if(m.size===S){var T=E.segment;throw new Error("Unable to pop() ".concat(E.isLeft?"left":"right"," SweepEvent ")+"[".concat(E.point.x,", ").concat(E.point.y,"] from segment #").concat(T.id," ")+"[".concat(T.leftSE.point.x,", ").concat(T.leftSE.point.y,"] -> ")+"[".concat(T.rightSE.point.x,", ").concat(T.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(m.size>B)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(w.segments.length>z)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var A=w.process(E),C=0,R=A.length;C1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n{!function(){"use strict";var e,i={version:"6.4.2.2",use_lines:!0,use_xyz:!1},n=!1;if(void 0!==t&&t.exports?(t.exports=i,n=!0):("function"==typeof define&&define.amd&&define(i),"undefined"!=typeof document?window.ClipperLib=i:self.ClipperLib=i),n){var r="chrome";e="Netscape"}else r=navigator.userAgent.toString().toLowerCase(),e=navigator.appName;var a,s={};function o(e,t,n){i.biginteger_used=1,null!=e&&("number"==typeof e&&void 0===t?this.fromInt(e):"number"==typeof e?this.fromNumber(e,t,n):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function l(){return new o(null,void 0,void 0)}-1!=r.indexOf("chrome")&&-1==r.indexOf("chromium")?s.chrome=1:s.chrome=0,-1!=r.indexOf("chromium")?s.chromium=1:s.chromium=0,-1!=r.indexOf("safari")&&-1==r.indexOf("chrome")&&-1==r.indexOf("chromium")?s.safari=1:s.safari=0,-1!=r.indexOf("firefox")?s.firefox=1:s.firefox=0,-1!=r.indexOf("firefox/17")?s.firefox17=1:s.firefox17=0,-1!=r.indexOf("firefox/15")?s.firefox15=1:s.firefox15=0,-1!=r.indexOf("firefox/3")?s.firefox3=1:s.firefox3=0,-1!=r.indexOf("opera")?s.opera=1:s.opera=0,-1!=r.indexOf("msie 10")?s.msie10=1:s.msie10=0,-1!=r.indexOf("msie 9")?s.msie9=1:s.msie9=0,-1!=r.indexOf("msie 8")?s.msie8=1:s.msie8=0,-1!=r.indexOf("msie 7")?s.msie7=1:s.msie7=0,-1!=r.indexOf("msie ")?s.msie=1:s.msie=0,i.biginteger_used=null,"Microsoft Internet Explorer"==e?(o.prototype.am=function(e,t,i,n,r,a){for(var s=32767&t,o=t>>15;--a>=0;){var l=32767&this[e],h=this[e++]>>15,c=o*l+h*s;r=((l=s*l+((32767&c)<<15)+i[n]+(1073741823&r))>>>30)+(c>>>15)+o*h+(r>>>30),i[n++]=1073741823&l}return r},a=30):"Netscape"!=e?(o.prototype.am=function(e,t,i,n,r,a){for(;--a>=0;){var s=t*this[e++]+i[n]+r;r=Math.floor(s/67108864),i[n++]=67108863&s}return r},a=26):(o.prototype.am=function(e,t,i,n,r,a){for(var s=16383&t,o=t>>14;--a>=0;){var l=16383&this[e],h=this[e++]>>14,c=o*l+h*s;r=((l=s*l+((16383&c)<<14)+i[n]+r)>>28)+(c>>14)+o*h,i[n++]=268435455&l}return r},a=28),o.prototype.DB=a,o.prototype.DM=(1<>>16)&&(e=t,i+=16),0!=(t=e>>8)&&(e=t,i+=8),0!=(t=e>>4)&&(e=t,i+=4),0!=(t=e>>2)&&(e=t,i+=2),0!=(t=e>>1)&&(e=t,i+=1),i}function g(e){this.m=e}function v(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,t+=16),255&e||(e>>=8,t+=8),15&e||(e>>=4,t+=4),3&e||(e>>=2,t+=2),1&e||++t,t}function S(e){for(var t=0;0!=e;)e&=e-1,++t;return t}function M(){}function E(e){return e}function T(e){this.r2=l(),this.q3=l(),o.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}g.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},g.prototype.revert=function(e){return e},g.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},g.prototype.mulTo=function(e,t,i){e.multiplyTo(t,i),this.reduce(i)},g.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},v.prototype.convert=function(e){var t=l();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(o.ZERO)>0&&this.m.subTo(t,t),t},v.prototype.revert=function(e){var t=l();return e.copyTo(t),this.reduce(t),t},v.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t>15)*this.mpl&this.um)<<15)&e.DM;for(e[i=t+this.m.t]+=this.m.am(0,n,e,t,0,this.m.t);e[i]>=e.DV;)e[i]-=e.DV,e[++i]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},v.prototype.mulTo=function(e,t,i){e.multiplyTo(t,i),this.reduce(i)},v.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},o.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},o.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0},o.prototype.fromString=function(e,t){var i;if(16==t)i=4;else if(8==t)i=3;else if(256==t)i=8;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)return void this.fromRadix(e,t);i=2}this.t=0,this.s=0;for(var n=e.length,r=!1,a=0;--n>=0;){var s=8==i?255&e[n]:p(e,n);s<0?"-"==e.charAt(n)&&(r=!0):(r=!1,0==a?this[this.t++]=s:a+i>this.DB?(this[this.t-1]|=(s&(1<>this.DB-a):this[this.t-1]|=s<=this.DB&&(a-=this.DB))}8==i&&128&e[0]&&(this.s=-1,a>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==e;)--this.t},o.prototype.dlShiftTo=function(e,t){var i;for(i=this.t-1;i>=0;--i)t[i+e]=this[i];for(i=e-1;i>=0;--i)t[i]=0;t.t=this.t+e,t.s=this.s},o.prototype.drShiftTo=function(e,t){for(var i=e;i=0;--i)t[i+s+1]=this[i]>>r|o,o=(this[i]&a)<=0;--i)t[i]=0;t[s]=o,t.t=this.t+s+1,t.s=this.s,t.clamp()},o.prototype.rShiftTo=function(e,t){t.s=this.s;var i=Math.floor(e/this.DB);if(i>=this.t)t.t=0;else{var n=e%this.DB,r=this.DB-n,a=(1<>n;for(var s=i+1;s>n;n>0&&(t[this.t-i-1]|=(this.s&a)<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;i>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t[i++]=this.DV+n:n>0&&(t[i++]=n),t.t=i,t.clamp()},o.prototype.multiplyTo=function(e,t){var i=this.abs(),n=e.abs(),r=i.t;for(t.t=r+n.t;--r>=0;)t[r]=0;for(r=0;r=0;)e[i]=0;for(i=0;i=t.DV&&(e[i+t.t]-=t.DV,e[i+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(i,t[i],e,2*i,0,1)),e.s=0,e.clamp()},o.prototype.divRemTo=function(e,t,i){var n=e.abs();if(!(n.t<=0)){var r=this.abs();if(r.t0?(n.lShiftTo(c,a),r.lShiftTo(c,i)):(n.copyTo(a),r.copyTo(i));var u=a.t,d=a[u-1];if(0!=d){var p=d*(1<1?a[u-2]>>this.F2:0),f=this.FV/p,g=(1<=0&&(i[i.t++]=1,i.subTo(b,i)),o.ONE.dlShiftTo(u,b),b.subTo(a,a);a.t=0;){var _=i[--y]==d?this.DM:Math.floor(i[y]*f+(i[y-1]+v)*g);if((i[y]+=a.am(0,_,i,x,0,u))<_)for(a.dlShiftTo(x,b),i.subTo(b,i);i[y]<--_;)i.subTo(b,i)}null!=t&&(i.drShiftTo(u,t),s!=h&&o.ZERO.subTo(t,t)),i.t=u,i.clamp(),c>0&&i.rShiftTo(c,i),s<0&&o.ZERO.subTo(i,i)}}},o.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(!(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},o.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},o.prototype.exp=function(e,t){if(e>4294967295||e<1)return o.ONE;var i=l(),n=l(),r=t.convert(this),a=m(e)-1;for(r.copyTo(i);--a>=0;)if(t.sqrTo(i,n),(e&1<0)t.mulTo(n,r,i);else{var s=i;i=n,n=s}return t.revert(i)},o.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var i,n=(1<0)for(o>o)>0&&(r=!0,a=d(i));s>=0;)o>(o+=this.DB-t)):(i=this[s]>>(o-=t)&n,o<=0&&(o+=this.DB,--s)),i>0&&(r=!0),r&&(a+=d(i));return r?a:"0"},o.prototype.negate=function(){var e=l();return o.ZERO.subTo(this,e),e},o.prototype.abs=function(){return this.s<0?this.negate():this},o.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var i=this.t;if(0!=(t=i-e.t))return this.s<0?-t:t;for(;--i>=0;)if(0!=(t=this[i]-e[i]))return t;return 0},o.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+m(this[this.t-1]^this.s&this.DM)},o.prototype.mod=function(e){var t=l();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(o.ZERO)>0&&e.subTo(t,t),t},o.prototype.modPowInt=function(e,t){var i;return i=e<256||t.isEven()?new g(t):new v(t),this.exp(e,i)},o.ZERO=f(0),o.ONE=f(1),M.prototype.convert=E,M.prototype.revert=E,M.prototype.mulTo=function(e,t,i){e.multiplyTo(t,i)},M.prototype.sqrTo=function(e,t){e.squareTo(t)},T.prototype.convert=function(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=l();return e.copyTo(t),this.reduce(t),t},T.prototype.revert=function(e){return e},T.prototype.reduce=function(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)},T.prototype.mulTo=function(e,t,i){e.multiplyTo(t,i),this.reduce(i)},T.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)};var A=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],C=(1<<26)/A[A.length-1];o.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},o.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),i=Math.pow(e,t),n=f(i),r=l(),a=l(),s="";for(this.divRemTo(n,r,a);r.signum()>0;)s=(i+a.intValue()).toString(e).substr(1)+s,r.divRemTo(n,r,a);return a.intValue().toString(e)+s},o.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var i=this.chunkSize(t),n=Math.pow(t,i),r=!1,a=0,s=0,l=0;l=i&&(this.dMultiply(n),this.dAddOffset(s,0),a=0,s=0))}a>0&&(this.dMultiply(Math.pow(t,a)),this.dAddOffset(s,0)),r&&o.ZERO.subTo(this,this)},o.prototype.fromNumber=function(e,t,i){if("number"==typeof t)if(e<2)this.fromInt(1);else for(this.fromNumber(e,i),this.testBit(e-1)||this.bitwiseTo(o.ONE.shiftLeft(e-1),x,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(o.ONE.shiftLeft(e-1),this);else{var n=new Array,r=7&e;n.length=1+(e>>3),t.nextBytes(n),r>0?n[0]&=(1<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;i>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t[i++]=n:n<-1&&(t[i++]=this.DV+n),t.t=i,t.clamp()},o.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},o.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}},o.prototype.multiplyLowerTo=function(e,t,i){var n,r=Math.min(this.t+e.t,t);for(i.s=0,i.t=r;r>0;)i[--r]=0;for(n=i.t-this.t;r=0;)i[n]=0;for(n=Math.max(t-this.t,0);n0)if(0==t)i=this[0]%e;else for(var n=this.t-1;n>=0;--n)i=(t*i+this[n])%e;return i},o.prototype.millerRabin=function(e){var t=this.subtract(o.ONE),i=t.getLowestSetBit();if(i<=0)return!1;var n=t.shiftRight(i);(e=e+1>>1)>A.length&&(e=A.length);for(var r=l(),a=0;a>24},o.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},o.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},o.prototype.toByteArray=function(){var e=this.t,t=new Array;t[0]=this.s;var i,n=this.DB-e*this.DB%8,r=0;if(e-- >0)for(n>n)!=(this.s&this.DM)>>n&&(t[r++]=i|this.s<=0;)n<8?(i=(this[e]&(1<>(n+=this.DB-8)):(i=this[e]>>(n-=8)&255,n<=0&&(n+=this.DB,--e)),128&i&&(i|=-256),0==r&&(128&this.s)!=(128&i)&&++r,(r>0||i!=this.s)&&(t[r++]=i);return t},o.prototype.equals=function(e){return 0==this.compareTo(e)},o.prototype.min=function(e){return this.compareTo(e)<0?this:e},o.prototype.max=function(e){return this.compareTo(e)>0?this:e},o.prototype.and=function(e){var t=l();return this.bitwiseTo(e,y,t),t},o.prototype.or=function(e){var t=l();return this.bitwiseTo(e,x,t),t},o.prototype.xor=function(e){var t=l();return this.bitwiseTo(e,b,t),t},o.prototype.andNot=function(e){var t=l();return this.bitwiseTo(e,_,t),t},o.prototype.not=function(){for(var e=l(),t=0;t=this.t?0!=this.s:0!=(this[t]&1<1){var u=l();for(n.sqrTo(s[1],u);o<=c;)s[o]=l(),n.mulTo(u,s[o-2],s[o]),o+=2}var d,p,y=e.t-1,x=!0,b=l();for(r=m(e[y])-1;y>=0;){for(r>=h?d=e[y]>>r-h&c:(d=(e[y]&(1<0&&(d|=e[y-1]>>this.DB+r-h)),o=i;!(1&d);)d>>=1,--o;if((r-=o)<0&&(r+=this.DB,--y),x)s[d].copyTo(a),x=!1;else{for(;o>1;)n.sqrTo(a,b),n.sqrTo(b,a),o-=2;o>0?n.sqrTo(a,b):(p=a,a=b,b=p),n.mulTo(b,s[d],a)}for(;y>=0&&!(e[y]&1<=0?(i.subTo(n,i),t&&r.subTo(s,r),a.subTo(l,a)):(n.subTo(i,n),t&&s.subTo(r,s),l.subTo(a,l))}return 0!=n.compareTo(o.ONE)?o.ZERO:l.compareTo(e)>=0?l.subtract(e):l.signum()<0?(l.addTo(e,l),l.signum()<0?l.add(e):l):l},o.prototype.pow=function(e){return this.exp(e,new M)},o.prototype.gcd=function(e){var t=this.s<0?this.negate():this.clone(),i=e.s<0?e.negate():e.clone();if(t.compareTo(i)<0){var n=t;t=i,i=n}var r=t.getLowestSetBit(),a=i.getLowestSetBit();if(a<0)return t;for(r0&&(t.rShiftTo(a,t),i.rShiftTo(a,i));t.signum()>0;)(r=t.getLowestSetBit())>0&&t.rShiftTo(r,t),(r=i.getLowestSetBit())>0&&i.rShiftTo(r,i),t.compareTo(i)>=0?(t.subTo(i,t),t.rShiftTo(1,t)):(i.subTo(t,i),i.rShiftTo(1,i));return a>0&&i.lShiftTo(a,i),i},o.prototype.isProbablePrime=function(e){var t,i=this.abs();if(1==i.t&&i[0]<=A[A.length-1]){for(t=0;t0},P.op_LessThan=function(e,t){return e.compareTo(t)<0},P.op_Addition=function(e,t){return new P(e,void 0,void 0).add(new P(t,void 0,void 0))},P.op_Subtraction=function(e,t){return new P(e,void 0,void 0).subtract(new P(t,void 0,void 0))},P.Int128Mul=function(e,t){return new P(e,void 0,void 0).multiply(new P(t,void 0,void 0))},P.op_Division=function(e,t){return e.divide(t)},P.prototype.ToDouble=function(){return parseFloat(this.toString())};var R=function(e,t){var i;if(void 0===Object.getOwnPropertyNames){for(i in t.prototype)(void 0===e.prototype[i]||e.prototype[i]===Object.prototype[i])&&(e.prototype[i]=t.prototype[i]);for(i in t)void 0===e[i]&&(e[i]=t[i]);e.$baseCtor=t}else{for(var n=Object.getOwnPropertyNames(t.prototype),r=0;r0?this.m_Childs[0]:this.GetNextSiblingUp()},i.PolyNode.prototype.GetNextSiblingUp=function(){return null===this.m_Parent?null:this.m_Index===this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+1]},i.PolyNode.prototype.Childs=function(){return this.m_Childs},i.PolyNode.prototype.Parent=function(){return this.m_Parent},i.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()},i.PolyTree=function(){this.m_AllPolys=[],i.PolyNode.call(this)},i.PolyTree.prototype.Clear=function(){for(var e=0,t=this.m_AllPolys.length;e0?this.m_Childs[0]:null},i.PolyTree.prototype.Total=function(){var e=this.m_AllPolys.length;return e>0&&this.m_Childs[0]!==this.m_AllPolys[0]&&e--,e},R(i.PolyTree,i.PolyNode),i.Math_Abs_Int64=i.Math_Abs_Int32=i.Math_Abs_Double=function(e){return Math.abs(e)},i.Math_Max_Int32_Int32=function(e,t){return Math.max(e,t)},s.msie||s.opera||s.safari?i.Cast_Int32=function(e){return 0|e}:i.Cast_Int32=function(e){return~~e},void 0===Number.toInteger&&(Number.toInteger=null),s.chrome?i.Cast_Int64=function(e){return e<-2147483648||e>2147483647?e<0?Math.ceil(e):Math.floor(e):~~e}:s.firefox&&"function"==typeof Number.toInteger?i.Cast_Int64=function(e){return Number.toInteger(e)}:s.msie7||s.msie8?i.Cast_Int64=function(e){return parseInt(e,10)}:s.msie?i.Cast_Int64=function(e){return e<-2147483648||e>2147483647?e<0?Math.ceil(e):Math.floor(e):0|e}:i.Cast_Int64=function(e){return e<0?Math.ceil(e):Math.floor(e)},i.Clear=function(e){e.length=0},i.PI=3.141592653589793,i.PI2=6.283185307179586,i.IntPoint=function(){var e=arguments,t=e.length;if(this.X=0,this.Y=0,i.use_xyz)if(this.Z=0,3===t)this.X=e[0],this.Y=e[1],this.Z=e[2];else if(2===t)this.X=e[0],this.Y=e[1],this.Z=0;else if(1===t)if(e[0]instanceof i.DoublePoint){var n=e[0];this.X=i.Clipper.Round(n.X),this.Y=i.Clipper.Round(n.Y),this.Z=0}else void 0===(r=e[0]).Z&&(r.Z=0),this.X=r.X,this.Y=r.Y,this.Z=r.Z;else this.X=0,this.Y=0,this.Z=0;else if(2===t)this.X=e[0],this.Y=e[1];else if(1===t)if(e[0]instanceof i.DoublePoint)n=e[0],this.X=i.Clipper.Round(n.X),this.Y=i.Clipper.Round(n.Y);else{var r=e[0];this.X=r.X,this.Y=r.Y}else this.X=0,this.Y=0},i.IntPoint.op_Equality=function(e,t){return e.X===t.X&&e.Y===t.Y},i.IntPoint.op_Inequality=function(e,t){return e.X!==t.X||e.Y!==t.Y},i.IntPoint0=function(){this.X=0,this.Y=0,i.use_xyz&&(this.Z=0)},i.IntPoint0.prototype=i.IntPoint.prototype,i.IntPoint1=function(e){this.X=e.X,this.Y=e.Y,i.use_xyz&&(void 0===e.Z?this.Z=0:this.Z=e.Z)},i.IntPoint1.prototype=i.IntPoint.prototype,i.IntPoint1dp=function(e){this.X=i.Clipper.Round(e.X),this.Y=i.Clipper.Round(e.Y),i.use_xyz&&(this.Z=0)},i.IntPoint1dp.prototype=i.IntPoint.prototype,i.IntPoint2=function(e,t,n){this.X=e,this.Y=t,i.use_xyz&&(this.Z=void 0===n?0:n)},i.IntPoint2.prototype=i.IntPoint.prototype,i.IntRect=function(){var e=arguments,t=e.length;if(4===t)this.left=e[0],this.top=e[1],this.right=e[2],this.bottom=e[3];else if(1===t){var i=e[0];this.left=i.left,this.top=i.top,this.right=i.right,this.bottom=i.bottom}else this.left=0,this.top=0,this.right=0,this.bottom=0},i.IntRect0=function(){this.left=0,this.top=0,this.right=0,this.bottom=0},i.IntRect0.prototype=i.IntRect.prototype,i.IntRect1=function(e){this.left=e.left,this.top=e.top,this.right=e.right,this.bottom=e.bottom},i.IntRect1.prototype=i.IntRect.prototype,i.IntRect4=function(e,t,i,n){this.left=e,this.top=t,this.right=i,this.bottom=n},i.IntRect4.prototype=i.IntRect.prototype,i.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3},i.PolyType={ptSubject:0,ptClip:1},i.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3},i.JoinType={jtSquare:0,jtRound:1,jtMiter:2},i.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4},i.EdgeSide={esLeft:0,esRight:1},i.Direction={dRightToLeft:0,dLeftToRight:1},i.TEdge=function(){this.Bot=new i.IntPoint0,this.Curr=new i.IntPoint0,this.Top=new i.IntPoint0,this.Delta=new i.IntPoint0,this.Dx=0,this.PolyTyp=i.PolyType.ptSubject,this.Side=i.EdgeSide.esLeft,this.WindDelta=0,this.WindCnt=0,this.WindCnt2=0,this.OutIdx=0,this.Next=null,this.Prev=null,this.NextInLML=null,this.NextInAEL=null,this.PrevInAEL=null,this.NextInSEL=null,this.PrevInSEL=null},i.IntersectNode=function(){this.Edge1=null,this.Edge2=null,this.Pt=new i.IntPoint0},i.MyIntersectNodeSort=function(){},i.MyIntersectNodeSort.Compare=function(e,t){var i=t.Pt.Y-e.Pt.Y;return i>0?1:i<0?-1:0},i.LocalMinima=function(){this.Y=0,this.LeftBound=null,this.RightBound=null,this.Next=null},i.Scanbeam=function(){this.Y=0,this.Next=null},i.Maxima=function(){this.X=0,this.Next=null,this.Prev=null},i.OutRec=function(){this.Idx=0,this.IsHole=!1,this.IsOpen=!1,this.FirstLeft=null,this.Pts=null,this.BottomPt=null,this.PolyNode=null},i.OutPt=function(){this.Idx=0,this.Pt=new i.IntPoint0,this.Next=null,this.Prev=null},i.Join=function(){this.OutPt1=null,this.OutPt2=null,this.OffPt=new i.IntPoint0},i.ClipperBase=function(){this.m_MinimaList=null,this.m_CurrentLM=null,this.m_edges=new Array,this.m_UseFullRange=!1,this.m_HasOpenPaths=!1,this.PreserveCollinear=!1,this.m_Scanbeam=null,this.m_PolyOuts=null,this.m_ActiveEdges=null},i.ClipperBase.horizontal=-9007199254740992,i.ClipperBase.Skip=-2,i.ClipperBase.Unassigned=-1,i.ClipperBase.tolerance=1e-20,i.ClipperBase.loRange=47453132,i.ClipperBase.hiRange=0xfffffffffffff,i.ClipperBase.near_zero=function(e){return e>-i.ClipperBase.tolerance&&et.X==e.Xt.Y==e.Yt.X==e.Xt.Y==e.Yi.ClipperBase.hiRange||e.Y>i.ClipperBase.hiRange||-e.X>i.ClipperBase.hiRange||-e.Y>i.ClipperBase.hiRange)&&i.Error("Coordinate outside allowed range in RangeTest()."):(e.X>i.ClipperBase.loRange||e.Y>i.ClipperBase.loRange||-e.X>i.ClipperBase.loRange||-e.Y>i.ClipperBase.loRange)&&(t.Value=!0,this.RangeTest(e,t))},i.ClipperBase.prototype.InitEdge=function(e,t,n,r){e.Next=t,e.Prev=n,e.Curr.X=r.X,e.Curr.Y=r.Y,i.use_xyz&&(e.Curr.Z=r.Z),e.OutIdx=-1},i.ClipperBase.prototype.InitEdge2=function(e,t){e.Curr.Y>=e.Next.Curr.Y?(e.Bot.X=e.Curr.X,e.Bot.Y=e.Curr.Y,i.use_xyz&&(e.Bot.Z=e.Curr.Z),e.Top.X=e.Next.Curr.X,e.Top.Y=e.Next.Curr.Y,i.use_xyz&&(e.Top.Z=e.Next.Curr.Z)):(e.Top.X=e.Curr.X,e.Top.Y=e.Curr.Y,i.use_xyz&&(e.Top.Z=e.Curr.Z),e.Bot.X=e.Next.Curr.X,e.Bot.Y=e.Next.Curr.Y,i.use_xyz&&(e.Bot.Z=e.Next.Curr.Z)),this.SetDx(e),e.PolyTyp=t},i.ClipperBase.prototype.FindNextLocMin=function(e){for(var t;;){for(;i.IntPoint.op_Inequality(e.Bot,e.Prev.Bot)||i.IntPoint.op_Equality(e.Curr,e.Top);)e=e.Next;if(e.Dx!==i.ClipperBase.horizontal&&e.Prev.Dx!==i.ClipperBase.horizontal)break;for(;e.Prev.Dx===i.ClipperBase.horizontal;)e=e.Prev;for(t=e;e.Dx===i.ClipperBase.horizontal;)e=e.Next;if(e.Top.Y!==e.Prev.Bot.Y){t.Prev.Bot.Xa.Next.Top.X&&(a=r.Prev)}for(;e!==a;)e.NextInLML=e.Next,e.Dx===i.ClipperBase.horizontal&&e!==n&&e.Bot.X!==e.Prev.Top.X&&this.ReverseHorizontal(e),e=e.Next;e.Dx===i.ClipperBase.horizontal&&e!==n&&e.Bot.X!==e.Prev.Top.X&&this.ReverseHorizontal(e),a=a.Next}else{for(;a.Top.Y===a.Prev.Bot.Y&&a.Prev.OutIdx!==i.ClipperBase.Skip;)a=a.Prev;if(a.Dx===i.ClipperBase.horizontal&&a.Prev.OutIdx!==i.ClipperBase.Skip){for(r=a;r.Next.Dx===i.ClipperBase.horizontal;)r=r.Next;(r.Next.Top.X===a.Prev.Top.X||r.Next.Top.X>a.Prev.Top.X)&&(a=r.Next)}for(;e!==a;)e.NextInLML=e.Prev,e.Dx===i.ClipperBase.horizontal&&e!==n&&e.Bot.X!==e.Next.Top.X&&this.ReverseHorizontal(e),e=e.Prev;e.Dx===i.ClipperBase.horizontal&&e!==n&&e.Bot.X!==e.Next.Top.X&&this.ReverseHorizontal(e),a=a.Prev}return a},i.ClipperBase.prototype.AddPath=function(e,t,n){i.use_lines?!n&&t===i.PolyType.ptClip&&i.Error("AddPath: Open paths must be subject."):n||i.Error("AddPath: Open paths have been disabled.");var r=e.length-1;if(n)for(;r>0&&i.IntPoint.op_Equality(e[r],e[0]);)--r;for(;r>0&&i.IntPoint.op_Equality(e[r],e[r-1]);)--r;if(n&&r<2||!n&&r<1)return!1;for(var a=new Array,s=0;s<=r;s++)a.push(new i.TEdge);var o=!0;a[1].Curr.X=e[1].X,a[1].Curr.Y=e[1].Y,i.use_xyz&&(a[1].Curr.Z=e[1].Z);var l={Value:this.m_UseFullRange};for(this.RangeTest(e[0],l),this.m_UseFullRange=l.Value,l.Value=this.m_UseFullRange,this.RangeTest(e[r],l),this.m_UseFullRange=l.Value,this.InitEdge(a[0],a[1],a[r],e[0]),this.InitEdge(a[r],a[0],a[r-1],e[r]),s=r-1;s>=1;--s)l.Value=this.m_UseFullRange,this.RangeTest(e[s],l),this.m_UseFullRange=l.Value,this.InitEdge(a[s],a[s+1],a[s-1],e[s]);for(var h=a[0],c=h,u=h;;)if(c.Curr!==c.Next.Curr||!n&&c.Next===h){if(c.Prev===c.Next)break;if(!n||!i.ClipperBase.SlopesEqual4(c.Prev.Curr,c.Curr,c.Next.Curr,this.m_UseFullRange)||this.PreserveCollinear&&this.Pt2IsBetweenPt1AndPt3(c.Prev.Curr,c.Curr,c.Next.Curr)){if((c=c.Next)===u||!n&&c.Next===h)break}else c===h&&(h=c.Next),u=c=(c=this.RemoveEdge(c)).Prev}else{if(c===c.Next)break;c===h&&(h=c.Next),u=c=this.RemoveEdge(c)}if(!n&&c===c.Next||n&&c.Prev===c.Next)return!1;n||(this.m_HasOpenPaths=!0,h.Prev.OutIdx=i.ClipperBase.Skip),c=h;do{this.InitEdge2(c,t),c=c.Next,o&&c.Curr.Y!==h.Curr.Y&&(o=!1)}while(c!==h);if(o){if(n)return!1;for(c.Prev.OutIdx=i.ClipperBase.Skip,(f=new i.LocalMinima).Next=null,f.Y=c.Bot.Y,f.LeftBound=null,f.RightBound=c,f.RightBound.Side=i.EdgeSide.esRight,f.RightBound.WindDelta=0;c.Bot.X!==c.Prev.Top.X&&this.ReverseHorizontal(c),c.Next.OutIdx!==i.ClipperBase.Skip;)c.NextInLML=c.Next,c=c.Next;return this.InsertLocalMinima(f),this.m_edges.push(a),!0}this.m_edges.push(a);var d,p=null;for(i.IntPoint.op_Equality(c.Prev.Bot,c.Prev.Top)&&(c=c.Next);(c=this.FindNextLocMin(c))!==p;){var f;null===p&&(p=c),(f=new i.LocalMinima).Next=null,f.Y=c.Bot.Y,c.Dxe.X==t.Xe.Y==t.Y=this.m_MinimaList.Y)e.Next=this.m_MinimaList,this.m_MinimaList=e;else{for(var t=this.m_MinimaList;null!==t.Next&&e.Ythis.m_Scanbeam.Y){var t=new i.Scanbeam;t.Y=e,t.Next=this.m_Scanbeam,this.m_Scanbeam=t}else{for(var n=this.m_Scanbeam;null!==n.Next&&e<=n.Next.Y;)n=n.Next;if(e===n.Y)return;var r=new i.Scanbeam;r.Y=e,r.Next=n.Next,n.Next=r}},i.ClipperBase.prototype.PopScanbeam=function(e){return null===this.m_Scanbeam?(e.v=0,!1):(e.v=this.m_Scanbeam.Y,this.m_Scanbeam=this.m_Scanbeam.Next,!0)},i.ClipperBase.prototype.LocalMinimaPending=function(){return null!==this.m_CurrentLM},i.ClipperBase.prototype.CreateOutRec=function(){var e=new i.OutRec;return e.Idx=i.ClipperBase.Unassigned,e.IsHole=!1,e.IsOpen=!1,e.FirstLeft=null,e.Pts=null,e.BottomPt=null,e.PolyNode=null,this.m_PolyOuts.push(e),e.Idx=this.m_PolyOuts.length-1,e},i.ClipperBase.prototype.DisposeOutRec=function(e){var t=this.m_PolyOuts[e];t.Pts=null,t=null,this.m_PolyOuts[e]=null},i.ClipperBase.prototype.UpdateEdgeIntoAEL=function(e){null===e.NextInLML&&i.Error("UpdateEdgeIntoAEL: invalid call");var t=e.PrevInAEL,n=e.NextInAEL;return e.NextInLML.OutIdx=e.OutIdx,null!==t?t.NextInAEL=e.NextInLML:this.m_ActiveEdges=e.NextInLML,null!==n&&(n.PrevInAEL=e.NextInLML),e.NextInLML.Side=e.Side,e.NextInLML.WindDelta=e.WindDelta,e.NextInLML.WindCnt=e.WindCnt,e.NextInLML.WindCnt2=e.WindCnt2,(e=e.NextInLML).Curr.X=e.Bot.X,e.Curr.Y=e.Bot.Y,e.PrevInAEL=t,e.NextInAEL=n,i.ClipperBase.IsHorizontal(e)||this.InsertScanbeam(e.Top.Y),e},i.ClipperBase.prototype.SwapPositionsInAEL=function(e,t){if(e.NextInAEL!==e.PrevInAEL&&t.NextInAEL!==t.PrevInAEL){if(e.NextInAEL===t){var i=t.NextInAEL;null!==i&&(i.PrevInAEL=e);var n=e.PrevInAEL;null!==n&&(n.NextInAEL=t),t.PrevInAEL=n,t.NextInAEL=e,e.PrevInAEL=t,e.NextInAEL=i}else if(t.NextInAEL===e){var r=e.NextInAEL;null!==r&&(r.PrevInAEL=t);var a=t.PrevInAEL;null!==a&&(a.NextInAEL=e),e.PrevInAEL=a,e.NextInAEL=t,t.PrevInAEL=e,t.NextInAEL=r}else{var s=e.NextInAEL,o=e.PrevInAEL;e.NextInAEL=t.NextInAEL,null!==e.NextInAEL&&(e.NextInAEL.PrevInAEL=e),e.PrevInAEL=t.PrevInAEL,null!==e.PrevInAEL&&(e.PrevInAEL.NextInAEL=e),t.NextInAEL=s,null!==t.NextInAEL&&(t.NextInAEL.PrevInAEL=t),t.PrevInAEL=o,null!==t.PrevInAEL&&(t.PrevInAEL.NextInAEL=t)}null===e.PrevInAEL?this.m_ActiveEdges=e:null===t.PrevInAEL&&(this.m_ActiveEdges=t)}},i.ClipperBase.prototype.DeleteFromAEL=function(e){var t=e.PrevInAEL,i=e.NextInAEL;null===t&&null===i&&e!==this.m_ActiveEdges||(null!==t?t.NextInAEL=i:this.m_ActiveEdges=i,null!==i&&(i.PrevInAEL=t),e.NextInAEL=null,e.PrevInAEL=null)},i.Clipper=function(e){void 0===e&&(e=0),this.m_PolyOuts=null,this.m_ClipType=i.ClipType.ctIntersection,this.m_Scanbeam=null,this.m_Maxima=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=null,this.m_IntersectNodeComparer=null,this.m_ExecuteLocked=!1,this.m_ClipFillType=i.PolyFillType.pftEvenOdd,this.m_SubjFillType=i.PolyFillType.pftEvenOdd,this.m_Joins=null,this.m_GhostJoins=null,this.m_UsingPolyTree=!1,this.ReverseSolution=!1,this.StrictlySimple=!1,i.ClipperBase.call(this),this.m_Scanbeam=null,this.m_Maxima=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=new Array,this.m_IntersectNodeComparer=i.MyIntersectNodeSort.Compare,this.m_ExecuteLocked=!1,this.m_UsingPolyTree=!1,this.m_PolyOuts=new Array,this.m_Joins=new Array,this.m_GhostJoins=new Array,this.ReverseSolution=0!=(1&e),this.StrictlySimple=0!=(2&e),this.PreserveCollinear=0!=(4&e),i.use_xyz&&(this.ZFillFunction=null)},i.Clipper.ioReverseSolution=1,i.Clipper.ioStrictlySimple=2,i.Clipper.ioPreserveCollinear=4,i.Clipper.prototype.Clear=function(){0!==this.m_edges.length&&(this.DisposeAllPolyPts(),i.ClipperBase.prototype.Clear.call(this))},i.Clipper.prototype.InsertMaxima=function(e){var t=new i.Maxima;if(t.X=e,null===this.m_Maxima)this.m_Maxima=t,this.m_Maxima.Next=null,this.m_Maxima.Prev=null;else if(e=n.Next.X;)n=n.Next;if(e===n.X)return;t.Next=n.Next,t.Prev=n,null!==n.Next&&(n.Next.Prev=t),n.Next=t}},i.Clipper.prototype.Execute=function(){var e=arguments,t=e.length,n=e[1]instanceof i.PolyTree;if(4===t&&!n){var r=e[0],a=e[1],s=e[2],o=e[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&i.Error("Error: PolyTree struct is needed for open path clipping."),this.m_ExecuteLocked=!0,i.Clear(a),this.m_SubjFillType=s,this.m_ClipFillType=o,this.m_ClipType=r,this.m_UsingPolyTree=!1;try{(h=this.ExecuteInternal())&&this.BuildResult(a)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return h}if(4===t&&n){r=e[0];var l=e[1];if(s=e[2],o=e[3],this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0,this.m_SubjFillType=s,this.m_ClipFillType=o,this.m_ClipType=r,this.m_UsingPolyTree=!0;try{var h;(h=this.ExecuteInternal())&&this.BuildResult2(l)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return h}return 2!==t||n?2===t&&n?(r=e[0],l=e[1],this.Execute(r,l,i.PolyFillType.pftEvenOdd,i.PolyFillType.pftEvenOdd)):void 0:(r=e[0],a=e[1],this.Execute(r,a,i.PolyFillType.pftEvenOdd,i.PolyFillType.pftEvenOdd))},i.Clipper.prototype.FixHoleLinkage=function(e){if(null!==e.FirstLeft&&(e.IsHole===e.FirstLeft.IsHole||null===e.FirstLeft.Pts)){for(var t=e.FirstLeft;null!==t&&(t.IsHole===e.IsHole||null===t.Pts);)t=t.FirstLeft;e.FirstLeft=t}},i.Clipper.prototype.ExecuteInternal=function(){try{this.Reset(),this.m_SortedEdges=null,this.m_Maxima=null;var e,t,i,n={},r={};if(!this.PopScanbeam(n))return!1;for(this.InsertLocalMinimaIntoAEL(n.v);this.PopScanbeam(r)||this.LocalMinimaPending();){if(this.ProcessHorizontals(),this.m_GhostJoins.length=0,!this.ProcessIntersections(r.v))return!1;this.ProcessEdgesAtTopOfScanbeam(r.v),n.v=r.v,this.InsertLocalMinimaIntoAEL(n.v)}for(t=0,i=this.m_PolyOuts.length;t0&&this.ReversePolyPtLinks(e.Pts);for(this.JoinCommonEdges(),t=0,i=this.m_PolyOuts.length;t0&&0!==n.WindDelta)for(var s=0,o=this.m_GhostJoins.length;s=0&&null!==t.PrevInAEL&&t.PrevInAEL.Curr.X===t.Bot.X&&t.PrevInAEL.OutIdx>=0&&i.ClipperBase.SlopesEqual5(t.PrevInAEL.Curr,t.PrevInAEL.Top,t.Curr,t.Top,this.m_UseFullRange)&&0!==t.WindDelta&&0!==t.PrevInAEL.WindDelta){var h=this.AddOutPt(t.PrevInAEL,t.Bot);this.AddJoin(a,h,t.Top)}if(t.NextInAEL!==n){n.OutIdx>=0&&n.PrevInAEL.OutIdx>=0&&i.ClipperBase.SlopesEqual5(n.PrevInAEL.Curr,n.PrevInAEL.Top,n.Curr,n.Top,this.m_UseFullRange)&&0!==n.WindDelta&&0!==n.PrevInAEL.WindDelta&&(h=this.AddOutPt(n.PrevInAEL,n.Bot),this.AddJoin(a,h,n.Top));var c=t.NextInAEL;if(null!==c)for(;c!==n;)this.IntersectEdges(n,c,t.Curr),c=c.NextInAEL}}}},i.Clipper.prototype.InsertEdgeIntoAEL=function(e,t){if(null===this.m_ActiveEdges)e.PrevInAEL=null,e.NextInAEL=null,this.m_ActiveEdges=e;else if(null===t&&this.E2InsertsBeforeE1(this.m_ActiveEdges,e))e.PrevInAEL=null,e.NextInAEL=this.m_ActiveEdges,this.m_ActiveEdges.PrevInAEL=e,this.m_ActiveEdges=e;else{for(null===t&&(t=this.m_ActiveEdges);null!==t.NextInAEL&&!this.E2InsertsBeforeE1(t.NextInAEL,e);)t=t.NextInAEL;e.NextInAEL=t.NextInAEL,null!==t.NextInAEL&&(t.NextInAEL.PrevInAEL=e),e.PrevInAEL=t,t.NextInAEL=e}},i.Clipper.prototype.E2InsertsBeforeE1=function(e,t){return t.Curr.X===e.Curr.X?t.Top.Y>e.Top.Y?t.Top.Xi.Clipper.TopX(t,e.Top.Y):t.Curr.X0;default:return e.WindCnt2<0}case i.ClipType.ctUnion:switch(n){case i.PolyFillType.pftEvenOdd:case i.PolyFillType.pftNonZero:return 0===e.WindCnt2;case i.PolyFillType.pftPositive:return e.WindCnt2<=0;default:return e.WindCnt2>=0}case i.ClipType.ctDifference:if(e.PolyTyp===i.PolyType.ptSubject)switch(n){case i.PolyFillType.pftEvenOdd:case i.PolyFillType.pftNonZero:return 0===e.WindCnt2;case i.PolyFillType.pftPositive:return e.WindCnt2<=0;default:return e.WindCnt2>=0}else switch(n){case i.PolyFillType.pftEvenOdd:case i.PolyFillType.pftNonZero:return 0!==e.WindCnt2;case i.PolyFillType.pftPositive:return e.WindCnt2>0;default:return e.WindCnt2<0}case i.ClipType.ctXor:if(0!==e.WindDelta)return!0;switch(n){case i.PolyFillType.pftEvenOdd:case i.PolyFillType.pftNonZero:return 0===e.WindCnt2;case i.PolyFillType.pftPositive:return e.WindCnt2<=0;default:return e.WindCnt2>=0}}return!0},i.Clipper.prototype.SetWindingCount=function(e){for(var t=e.PrevInAEL;null!==t&&(t.PolyTyp!==e.PolyTyp||0===t.WindDelta);)t=t.PrevInAEL;if(null===t){var n=e.PolyTyp===i.PolyType.ptSubject?this.m_SubjFillType:this.m_ClipFillType;0===e.WindDelta?e.WindCnt=n===i.PolyFillType.pftNegative?-1:1:e.WindCnt=e.WindDelta,e.WindCnt2=0,t=this.m_ActiveEdges}else if(0===e.WindDelta&&this.m_ClipType!==i.ClipType.ctUnion)e.WindCnt=1,e.WindCnt2=t.WindCnt2,t=t.NextInAEL;else if(this.IsEvenOddFillType(e)){if(0===e.WindDelta){for(var r=!0,a=t.PrevInAEL;null!==a;)a.PolyTyp===t.PolyTyp&&0!==a.WindDelta&&(r=!r),a=a.PrevInAEL;e.WindCnt=r?0:1}else e.WindCnt=e.WindDelta;e.WindCnt2=t.WindCnt2,t=t.NextInAEL}else t.WindCnt*t.WindDelta<0?Math.abs(t.WindCnt)>1?t.WindDelta*e.WindDelta<0?e.WindCnt=t.WindCnt:e.WindCnt=t.WindCnt+e.WindDelta:e.WindCnt=0===e.WindDelta?1:e.WindDelta:0===e.WindDelta?e.WindCnt=t.WindCnt<0?t.WindCnt-1:t.WindCnt+1:t.WindDelta*e.WindDelta<0?e.WindCnt=t.WindCnt:e.WindCnt=t.WindCnt+e.WindDelta,e.WindCnt2=t.WindCnt2,t=t.NextInAEL;if(this.IsEvenOddAltFillType(e))for(;t!==e;)0!==t.WindDelta&&(e.WindCnt2=0===e.WindCnt2?1:0),t=t.NextInAEL;else for(;t!==e;)e.WindCnt2+=t.WindDelta,t=t.NextInAEL},i.Clipper.prototype.AddEdgeToSEL=function(e){null===this.m_SortedEdges?(this.m_SortedEdges=e,e.PrevInSEL=null,e.NextInSEL=null):(e.NextInSEL=this.m_SortedEdges,e.PrevInSEL=null,this.m_SortedEdges.PrevInSEL=e,this.m_SortedEdges=e)},i.Clipper.prototype.PopEdgeFromSEL=function(e){if(e.v=this.m_SortedEdges,null===e.v)return!1;var t=e.v;return this.m_SortedEdges=e.v.NextInSEL,null!==this.m_SortedEdges&&(this.m_SortedEdges.PrevInSEL=null),t.NextInSEL=null,t.PrevInSEL=null,!0},i.Clipper.prototype.CopyAELToSEL=function(){var e=this.m_ActiveEdges;for(this.m_SortedEdges=e;null!==e;)e.PrevInSEL=e.PrevInAEL,e.NextInSEL=e.NextInAEL,e=e.NextInAEL},i.Clipper.prototype.SwapPositionsInSEL=function(e,t){if(!(null===e.NextInSEL&&null===e.PrevInSEL||null===t.NextInSEL&&null===t.PrevInSEL)){if(e.NextInSEL===t)null!==(i=t.NextInSEL)&&(i.PrevInSEL=e),null!==(n=e.PrevInSEL)&&(n.NextInSEL=t),t.PrevInSEL=n,t.NextInSEL=e,e.PrevInSEL=t,e.NextInSEL=i;else if(t.NextInSEL===e)null!==(i=e.NextInSEL)&&(i.PrevInSEL=t),null!==(n=t.PrevInSEL)&&(n.NextInSEL=e),e.PrevInSEL=n,e.NextInSEL=t,t.PrevInSEL=e,t.NextInSEL=i;else{var i=e.NextInSEL,n=e.PrevInSEL;e.NextInSEL=t.NextInSEL,null!==e.NextInSEL&&(e.NextInSEL.PrevInSEL=e),e.PrevInSEL=t.PrevInSEL,null!==e.PrevInSEL&&(e.PrevInSEL.NextInSEL=e),t.NextInSEL=i,null!==t.NextInSEL&&(t.NextInSEL.PrevInSEL=t),t.PrevInSEL=n,null!==t.PrevInSEL&&(t.PrevInSEL.NextInSEL=t)}null===e.PrevInSEL?this.m_SortedEdges=e:null===t.PrevInSEL&&(this.m_SortedEdges=t)}},i.Clipper.prototype.AddLocalMaxPoly=function(e,t,i){this.AddOutPt(e,i),0===t.WindDelta&&this.AddOutPt(t,i),e.OutIdx===t.OutIdx?(e.OutIdx=-1,t.OutIdx=-1):e.OutIdxt.Dx?(r=this.AddOutPt(e,n),t.OutIdx=e.OutIdx,e.Side=i.EdgeSide.esLeft,t.Side=i.EdgeSide.esRight,s=(a=e).PrevInAEL===t?t.PrevInAEL:a.PrevInAEL):(r=this.AddOutPt(t,n),e.OutIdx=t.OutIdx,e.Side=i.EdgeSide.esRight,t.Side=i.EdgeSide.esLeft,s=(a=t).PrevInAEL===e?e.PrevInAEL:a.PrevInAEL),null!==s&&s.OutIdx>=0&&s.Top.Yt&&(r=e,e=t,t=r),i>n&&(r=i,i=n,n=r),e=0&&0!==i.WindDelta&&(null===n?n=i:n.OutIdx===i.OutIdx&&(n=null)),i=i.PrevInAEL;null===n?(t.FirstLeft=null,t.IsHole=!1):(t.FirstLeft=this.m_PolyOuts[n.OutIdx],t.IsHole=!t.FirstLeft.IsHole)},i.Clipper.prototype.GetDx=function(e,t){return e.Y===t.Y?i.ClipperBase.horizontal:(t.X-e.X)/(t.Y-e.Y)},i.Clipper.prototype.FirstIsBottomPt=function(e,t){for(var n=e.Prev;i.IntPoint.op_Equality(n.Pt,e.Pt)&&n!==e;)n=n.Prev;var r=Math.abs(this.GetDx(e.Pt,n.Pt));for(n=e.Next;i.IntPoint.op_Equality(n.Pt,e.Pt)&&n!==e;)n=n.Next;var a=Math.abs(this.GetDx(e.Pt,n.Pt));for(n=t.Prev;i.IntPoint.op_Equality(n.Pt,t.Pt)&&n!==t;)n=n.Prev;var s=Math.abs(this.GetDx(t.Pt,n.Pt));for(n=t.Next;i.IntPoint.op_Equality(n.Pt,t.Pt)&&n!==t;)n=n.Next;var o=Math.abs(this.GetDx(t.Pt,n.Pt));return Math.max(r,a)===Math.max(s,o)&&Math.min(r,a)===Math.min(s,o)?this.Area(e)>0:r>=s&&r>=o||a>=s&&a>=o},i.Clipper.prototype.GetBottomPt=function(e){for(var t=null,n=e.Next;n!==e;)n.Pt.Y>e.Pt.Y?(e=n,t=null):n.Pt.Y===e.Pt.Y&&n.Pt.X<=e.Pt.X&&(n.Pt.Xn.Pt.Y?e:i.Pt.Yn.Pt.X||i.Next===i?t:n.Next===n||this.FirstIsBottomPt(i,n)?e:t},i.Clipper.prototype.OutRec1RightOfOutRec2=function(e,t){do{if((e=e.FirstLeft)===t)return!0}while(null!==e);return!1},i.Clipper.prototype.GetOutRec=function(e){for(var t=this.m_PolyOuts[e];t!==this.m_PolyOuts[t.Idx];)t=this.m_PolyOuts[t.Idx];return t},i.Clipper.prototype.AppendPolygon=function(e,t){var n,r=this.m_PolyOuts[e.OutIdx],a=this.m_PolyOuts[t.OutIdx];n=this.OutRec1RightOfOutRec2(r,a)?a:this.OutRec1RightOfOutRec2(a,r)?r:this.GetLowermostRec(r,a);var s=r.Pts,o=s.Prev,l=a.Pts,h=l.Prev;e.Side===i.EdgeSide.esLeft?t.Side===i.EdgeSide.esLeft?(this.ReversePolyPtLinks(l),l.Next=s,s.Prev=l,o.Next=h,h.Prev=o,r.Pts=h):(h.Next=s,s.Prev=h,l.Prev=o,o.Next=l,r.Pts=l):t.Side===i.EdgeSide.esRight?(this.ReversePolyPtLinks(l),o.Next=h,h.Prev=o,l.Next=s,s.Prev=l):(o.Next=l,l.Prev=o,s.Prev=h,h.Next=s),r.BottomPt=null,n===a&&(a.FirstLeft!==r&&(r.FirstLeft=a.FirstLeft),r.IsHole=a.IsHole),a.Pts=null,a.BottomPt=null,a.FirstLeft=r;var c=e.OutIdx,u=t.OutIdx;e.OutIdx=-1,t.OutIdx=-1;for(var d=this.m_ActiveEdges;null!==d;){if(d.OutIdx===u){d.OutIdx=c,d.Side=e.Side;break}d=d.NextInAEL}a.Idx=r.Idx},i.Clipper.prototype.ReversePolyPtLinks=function(e){if(null!==e){var t,i;t=e;do{i=t.Next,t.Next=t.Prev,t.Prev=i,t=i}while(t!==e)}},i.Clipper.SwapSides=function(e,t){var i=e.Side;e.Side=t.Side,t.Side=i},i.Clipper.SwapPolyIndexes=function(e,t){var i=e.OutIdx;e.OutIdx=t.OutIdx,t.OutIdx=i},i.Clipper.prototype.IntersectEdges=function(e,t,n){var r=e.OutIdx>=0,a=t.OutIdx>=0;if(i.use_xyz&&this.SetZ(n,e,t),!i.use_lines||0!==e.WindDelta&&0!==t.WindDelta){if(e.PolyTyp===t.PolyTyp)if(this.IsEvenOddFillType(e)){var s=e.WindCnt;e.WindCnt=t.WindCnt,t.WindCnt=s}else e.WindCnt+t.WindDelta===0?e.WindCnt=-e.WindCnt:e.WindCnt+=t.WindDelta,t.WindCnt-e.WindDelta==0?t.WindCnt=-t.WindCnt:t.WindCnt-=e.WindDelta;else this.IsEvenOddFillType(t)?e.WindCnt2=0===e.WindCnt2?1:0:e.WindCnt2+=t.WindDelta,this.IsEvenOddFillType(e)?t.WindCnt2=0===t.WindCnt2?1:0:t.WindCnt2-=e.WindDelta;var o,l,h,c,u,d;switch(e.PolyTyp===i.PolyType.ptSubject?(o=this.m_SubjFillType,h=this.m_ClipFillType):(o=this.m_ClipFillType,h=this.m_SubjFillType),t.PolyTyp===i.PolyType.ptSubject?(l=this.m_SubjFillType,c=this.m_ClipFillType):(l=this.m_ClipFillType,c=this.m_SubjFillType),o){case i.PolyFillType.pftPositive:u=e.WindCnt;break;case i.PolyFillType.pftNegative:u=-e.WindCnt;break;default:u=Math.abs(e.WindCnt)}switch(l){case i.PolyFillType.pftPositive:d=t.WindCnt;break;case i.PolyFillType.pftNegative:d=-t.WindCnt;break;default:d=Math.abs(t.WindCnt)}if(r&&a)0!==u&&1!==u||0!==d&&1!==d||e.PolyTyp!==t.PolyTyp&&this.m_ClipType!==i.ClipType.ctXor?this.AddLocalMaxPoly(e,t,n):(this.AddOutPt(e,n),this.AddOutPt(t,n),i.Clipper.SwapSides(e,t),i.Clipper.SwapPolyIndexes(e,t));else if(r)(0===d||1===d)&&(this.AddOutPt(e,n),i.Clipper.SwapSides(e,t),i.Clipper.SwapPolyIndexes(e,t));else if(a)(0===u||1===u)&&(this.AddOutPt(t,n),i.Clipper.SwapSides(e,t),i.Clipper.SwapPolyIndexes(e,t));else if(!(0!==u&&1!==u||0!==d&&1!==d)){var p,f;switch(h){case i.PolyFillType.pftPositive:p=e.WindCnt2;break;case i.PolyFillType.pftNegative:p=-e.WindCnt2;break;default:p=Math.abs(e.WindCnt2)}switch(c){case i.PolyFillType.pftPositive:f=t.WindCnt2;break;case i.PolyFillType.pftNegative:f=-t.WindCnt2;break;default:f=Math.abs(t.WindCnt2)}if(e.PolyTyp!==t.PolyTyp)this.AddLocalMinPoly(e,t,n);else if(1===u&&1===d)switch(this.m_ClipType){case i.ClipType.ctIntersection:p>0&&f>0&&this.AddLocalMinPoly(e,t,n);break;case i.ClipType.ctUnion:p<=0&&f<=0&&this.AddLocalMinPoly(e,t,n);break;case i.ClipType.ctDifference:(e.PolyTyp===i.PolyType.ptClip&&p>0&&f>0||e.PolyTyp===i.PolyType.ptSubject&&p<=0&&f<=0)&&this.AddLocalMinPoly(e,t,n);break;case i.ClipType.ctXor:this.AddLocalMinPoly(e,t,n)}else i.Clipper.SwapSides(e,t)}}else{if(0===e.WindDelta&&0===t.WindDelta)return;e.PolyTyp===t.PolyTyp&&e.WindDelta!==t.WindDelta&&this.m_ClipType===i.ClipType.ctUnion?0===e.WindDelta?a&&(this.AddOutPt(e,n),r&&(e.OutIdx=-1)):r&&(this.AddOutPt(t,n),a&&(t.OutIdx=-1)):e.PolyTyp!==t.PolyTyp&&(0!==e.WindDelta||1!==Math.abs(t.WindCnt)||this.m_ClipType===i.ClipType.ctUnion&&0!==t.WindCnt2?0===t.WindDelta&&1===Math.abs(e.WindCnt)&&(this.m_ClipType!==i.ClipType.ctUnion||0===e.WindCnt2)&&(this.AddOutPt(t,n),a&&(t.OutIdx=-1)):(this.AddOutPt(e,n),r&&(e.OutIdx=-1)))}},i.Clipper.prototype.DeleteFromSEL=function(e){var t=e.PrevInSEL,i=e.NextInSEL;null===t&&null===i&&e!==this.m_SortedEdges||(null!==t?t.NextInSEL=i:this.m_SortedEdges=i,null!==i&&(i.PrevInSEL=t),e.NextInSEL=null,e.PrevInSEL=null)},i.Clipper.prototype.ProcessHorizontals=function(){for(var e={};this.PopEdgeFromSEL(e);)this.ProcessHorizontal(e.v)},i.Clipper.prototype.GetHorzDirection=function(e,t){e.Bot.X=o.Top.X&&(h=null)}else{for(;null!==h.Next&&h.Next.X=0&&!s&&this.AddOutPt(e,new i.IntPoint2(h.X,e.Bot.Y)),h=h.Next;else for(;null!==h&&h.X>d.Curr.X;)e.OutIdx>=0&&!s&&this.AddOutPt(e,new i.IntPoint2(h.X,e.Bot.Y)),h=h.Prev;if(n===i.Direction.dLeftToRight&&d.Curr.X>a||n===i.Direction.dRightToLeft&&d.Curr.X=0&&!s){i.use_xyz&&(n===i.Direction.dLeftToRight?this.SetZ(d.Curr,e,d):this.SetZ(d.Curr,d,e)),c=this.AddOutPt(e,d.Curr);for(var p=this.m_SortedEdges;null!==p;){if(p.OutIdx>=0&&this.HorzSegmentsOverlap(e.Bot.X,e.Top.X,p.Bot.X,p.Top.X)){var f=this.GetLastOutPt(p);this.AddJoin(f,c,p.Top)}p=p.NextInSEL}this.AddGhostJoin(c,e.Bot)}if(d===l&&u)return e.OutIdx>=0&&this.AddLocalMaxPoly(e,l,e.Top),this.DeleteFromAEL(e),void this.DeleteFromAEL(l);if(n===i.Direction.dLeftToRight){var m=new i.IntPoint2(d.Curr.X,e.Curr.Y);this.IntersectEdges(e,d,m)}else m=new i.IntPoint2(d.Curr.X,e.Curr.Y),this.IntersectEdges(d,e,m);var g=this.GetNextInAEL(d,n);this.SwapPositionsInAEL(e,d),d=g}if(null===e.NextInLML||!i.ClipperBase.IsHorizontal(e.NextInLML))break;(e=this.UpdateEdgeIntoAEL(e)).OutIdx>=0&&this.AddOutPt(e,e.Bot),t={Dir:n,Left:r,Right:a},this.GetHorzDirection(e,t),n=t.Dir,r=t.Left,a=t.Right}if(e.OutIdx>=0&&null===c){for(c=this.GetLastOutPt(e),p=this.m_SortedEdges;null!==p;)p.OutIdx>=0&&this.HorzSegmentsOverlap(e.Bot.X,e.Top.X,p.Bot.X,p.Top.X)&&(f=this.GetLastOutPt(p),this.AddJoin(f,c,p.Top)),p=p.NextInSEL;this.AddGhostJoin(c,e.Top)}if(null!==e.NextInLML)if(e.OutIdx>=0){if(c=this.AddOutPt(e,e.Top),0===(e=this.UpdateEdgeIntoAEL(e)).WindDelta)return;var v=e.PrevInAEL;g=e.NextInAEL,null!==v&&v.Curr.X===e.Bot.X&&v.Curr.Y===e.Bot.Y&&0===v.WindDelta&&v.OutIdx>=0&&v.Curr.Y>v.Top.Y&&i.ClipperBase.SlopesEqual3(e,v,this.m_UseFullRange)?(f=this.AddOutPt(v,e.Bot),this.AddJoin(c,f,e.Top)):null!==g&&g.Curr.X===e.Bot.X&&g.Curr.Y===e.Bot.Y&&0!==g.WindDelta&&g.OutIdx>=0&&g.Curr.Y>g.Top.Y&&i.ClipperBase.SlopesEqual3(e,g,this.m_UseFullRange)&&(f=this.AddOutPt(g,e.Bot),this.AddJoin(c,f,e.Top))}else e=this.UpdateEdgeIntoAEL(e);else e.OutIdx>=0&&this.AddOutPt(e,e.Top),this.DeleteFromAEL(e)},i.Clipper.prototype.GetNextInAEL=function(e,t){return t===i.Direction.dLeftToRight?e.NextInAEL:e.PrevInAEL},i.Clipper.prototype.IsMinima=function(e){return null!==e&&e.Prev.NextInLML!==e&&e.Next.NextInLML!==e},i.Clipper.prototype.IsMaxima=function(e,t){return null!==e&&e.Top.Y===t&&null===e.NextInLML},i.Clipper.prototype.IsIntermediate=function(e,t){return e.Top.Y===t&&null!==e.NextInLML},i.Clipper.prototype.GetMaximaPair=function(e){return i.IntPoint.op_Equality(e.Next.Top,e.Top)&&null===e.Next.NextInLML?e.Next:i.IntPoint.op_Equality(e.Prev.Top,e.Top)&&null===e.Prev.NextInLML?e.Prev:null},i.Clipper.prototype.GetMaximaPairEx=function(e){var t=this.GetMaximaPair(e);return null===t||t.OutIdx===i.ClipperBase.Skip||t.NextInAEL===t.PrevInAEL&&!i.ClipperBase.IsHorizontal(t)?null:t},i.Clipper.prototype.ProcessIntersections=function(e){if(null===this.m_ActiveEdges)return!0;try{if(this.BuildIntersectList(e),0===this.m_IntersectList.length)return!0;if(1!==this.m_IntersectList.length&&!this.FixupIntersectionOrder())return!1;this.ProcessIntersectList()}catch(e){this.m_SortedEdges=null,this.m_IntersectList.length=0,i.Error("ProcessIntersections error")}return this.m_SortedEdges=null,!0},i.Clipper.prototype.BuildIntersectList=function(e){if(null!==this.m_ActiveEdges){var t=this.m_ActiveEdges;for(this.m_SortedEdges=t;null!==t;)t.PrevInSEL=t.PrevInAEL,t.NextInSEL=t.NextInAEL,t.Curr.X=i.Clipper.TopX(t,e),t=t.NextInAEL;for(var n=!0;n&&null!==this.m_SortedEdges;){for(n=!1,t=this.m_SortedEdges;null!==t.NextInSEL;){var r=t.NextInSEL,a=new i.IntPoint0;if(t.Curr.X>r.Curr.X){this.IntersectPoint(t,r,a),a.Y2147483647?Math.floor(e):0|e}:i.Clipper.Round=function(e){return e<0?Math.ceil(e-.5):Math.floor(e+.5)},i.Clipper.TopX=function(e,t){return t===e.Top.Y?e.Top.X:e.Bot.X+i.Clipper.Round(e.Dx*(t-e.Bot.Y))},i.Clipper.prototype.IntersectPoint=function(e,t,n){var r,a;if(n.X=0,n.Y=0,e.Dx===t.Dx)return n.Y=e.Curr.Y,void(n.X=i.Clipper.TopX(e,n.Y));if(0===e.Delta.X)n.X=e.Bot.X,i.ClipperBase.IsHorizontal(t)?n.Y=t.Bot.Y:(a=t.Bot.Y-t.Bot.X/t.Dx,n.Y=i.Clipper.Round(n.X/t.Dx+a));else if(0===t.Delta.X)n.X=t.Bot.X,i.ClipperBase.IsHorizontal(e)?n.Y=e.Bot.Y:(r=e.Bot.Y-e.Bot.X/e.Dx,n.Y=i.Clipper.Round(n.X/e.Dx+r));else{r=e.Bot.X-e.Bot.Y*e.Dx;var s=((a=t.Bot.X-t.Bot.Y*t.Dx)-r)/(e.Dx-t.Dx);n.Y=i.Clipper.Round(s),Math.abs(e.Dx)t.Top.Y)return n.Y=e.Top.Y,n.X=i.Clipper.TopX(t,e.Top.Y),n.Xe.Curr.Y&&(n.Y=e.Curr.Y,Math.abs(e.Dx)>Math.abs(t.Dx)?n.X=i.Clipper.TopX(t,n.Y):n.X=i.Clipper.TopX(e,n.Y))},i.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=function(e){for(var t=this.m_ActiveEdges;null!==t;){var n=this.IsMaxima(t,e);if(n){var r=this.GetMaximaPairEx(t);n=null===r||!i.ClipperBase.IsHorizontal(r)}if(n){this.StrictlySimple&&this.InsertMaxima(t.Top.X);var a=t.PrevInAEL;this.DoMaxima(t),t=null===a?this.m_ActiveEdges:a.NextInAEL}else{if(this.IsIntermediate(t,e)&&i.ClipperBase.IsHorizontal(t.NextInLML)?((t=this.UpdateEdgeIntoAEL(t)).OutIdx>=0&&this.AddOutPt(t,t.Bot),this.AddEdgeToSEL(t)):(t.Curr.X=i.Clipper.TopX(t,e),t.Curr.Y=e),i.use_xyz&&(t.Top.Y===e?t.Curr.Z=t.Top.Z:t.Bot.Y===e?t.Curr.Z=t.Bot.Z:t.Curr.Z=0),this.StrictlySimple&&(a=t.PrevInAEL,t.OutIdx>=0&&0!==t.WindDelta&&null!==a&&a.OutIdx>=0&&a.Curr.X===t.Curr.X&&0!==a.WindDelta)){var s=new i.IntPoint1(t.Curr);i.use_xyz&&this.SetZ(s,a,t);var o=this.AddOutPt(a,s),l=this.AddOutPt(t,s);this.AddJoin(o,l,s)}t=t.NextInAEL}}for(this.ProcessHorizontals(),this.m_Maxima=null,t=this.m_ActiveEdges;null!==t;){if(this.IsIntermediate(t,e)){o=null,t.OutIdx>=0&&(o=this.AddOutPt(t,t.Top)),a=(t=this.UpdateEdgeIntoAEL(t)).PrevInAEL;var h=t.NextInAEL;null!==a&&a.Curr.X===t.Bot.X&&a.Curr.Y===t.Bot.Y&&null!==o&&a.OutIdx>=0&&a.Curr.Y===a.Top.Y&&i.ClipperBase.SlopesEqual5(t.Curr,t.Top,a.Curr,a.Top,this.m_UseFullRange)&&0!==t.WindDelta&&0!==a.WindDelta?(l=this.AddOutPt(ePrev2,t.Bot),this.AddJoin(o,l,t.Top)):null!==h&&h.Curr.X===t.Bot.X&&h.Curr.Y===t.Bot.Y&&null!==o&&h.OutIdx>=0&&h.Curr.Y===h.Top.Y&&i.ClipperBase.SlopesEqual5(t.Curr,t.Top,h.Curr,h.Top,this.m_UseFullRange)&&0!==t.WindDelta&&0!==h.WindDelta&&(l=this.AddOutPt(h,t.Bot),this.AddJoin(o,l,t.Top))}t=t.NextInAEL}},i.Clipper.prototype.DoMaxima=function(e){var t=this.GetMaximaPairEx(e);if(null===t)return e.OutIdx>=0&&this.AddOutPt(e,e.Top),void this.DeleteFromAEL(e);for(var n=e.NextInAEL;null!==n&&n!==t;)this.IntersectEdges(e,n,e.Top),this.SwapPositionsInAEL(e,n),n=e.NextInAEL;-1===e.OutIdx&&-1===t.OutIdx?(this.DeleteFromAEL(e),this.DeleteFromAEL(t)):e.OutIdx>=0&&t.OutIdx>=0?(e.OutIdx>=0&&this.AddLocalMaxPoly(e,t,e.Top),this.DeleteFromAEL(e),this.DeleteFromAEL(t)):i.use_lines&&0===e.WindDelta?(e.OutIdx>=0&&(this.AddOutPt(e,e.Top),e.OutIdx=i.ClipperBase.Unassigned),this.DeleteFromAEL(e),t.OutIdx>=0&&(this.AddOutPt(t,e.Top),t.OutIdx=i.ClipperBase.Unassigned),this.DeleteFromAEL(t)):i.Error("DoMaxima error")},i.Clipper.ReversePaths=function(e){for(var t=0,i=e.length;t=0},i.Clipper.prototype.PointCount=function(e){if(null===e)return 0;var t=0,i=e;do{t++,i=i.Next}while(i!==e);return t},i.Clipper.prototype.BuildResult=function(e){i.Clear(e);for(var t=0,n=this.m_PolyOuts.length;tt.Pt.X?i.Direction.dRightToLeft:i.Direction.dLeftToRight,l=n.Pt.X>r.Pt.X?i.Direction.dRightToLeft:i.Direction.dLeftToRight;if(o===l)return!1;if(o===i.Direction.dLeftToRight){for(;e.Next.Pt.X<=a.X&&e.Next.Pt.X>=e.Pt.X&&e.Next.Pt.Y===a.Y;)e=e.Next;s&&e.Pt.X!==a.X&&(e=e.Next),t=this.DupOutPt(e,!s),i.IntPoint.op_Inequality(t.Pt,a)&&((e=t).Pt.X=a.X,e.Pt.Y=a.Y,i.use_xyz&&(e.Pt.Z=a.Z),t=this.DupOutPt(e,!s))}else{for(;e.Next.Pt.X>=a.X&&e.Next.Pt.X<=e.Pt.X&&e.Next.Pt.Y===a.Y;)e=e.Next;!s&&e.Pt.X!==a.X&&(e=e.Next),t=this.DupOutPt(e,s),i.IntPoint.op_Inequality(t.Pt,a)&&((e=t).Pt.X=a.X,e.Pt.Y=a.Y,i.use_xyz&&(e.Pt.Z=a.Z),t=this.DupOutPt(e,s))}if(l===i.Direction.dLeftToRight){for(;n.Next.Pt.X<=a.X&&n.Next.Pt.X>=n.Pt.X&&n.Next.Pt.Y===a.Y;)n=n.Next;s&&n.Pt.X!==a.X&&(n=n.Next),r=this.DupOutPt(n,!s),i.IntPoint.op_Inequality(r.Pt,a)&&((n=r).Pt.X=a.X,n.Pt.Y=a.Y,i.use_xyz&&(n.Pt.Z=a.Z),r=this.DupOutPt(n,!s))}else{for(;n.Next.Pt.X>=a.X&&n.Next.Pt.X<=n.Pt.X&&n.Next.Pt.Y===a.Y;)n=n.Next;!s&&n.Pt.X!==a.X&&(n=n.Next),r=this.DupOutPt(n,s),i.IntPoint.op_Inequality(r.Pt,a)&&((n=r).Pt.X=a.X,n.Pt.Y=a.Y,i.use_xyz&&(n.Pt.Z=a.Z),r=this.DupOutPt(n,s))}return o===i.Direction.dLeftToRight===s?(e.Prev=n,n.Next=e,t.Next=r,r.Prev=t):(e.Next=n,n.Prev=e,t.Prev=r,r.Next=t),!0},i.Clipper.prototype.JoinPoints=function(e,t,n){var r=e.OutPt1,a=new i.OutPt,s=e.OutPt2,o=new i.OutPt,l=e.OutPt1.Pt.Y===e.OffPt.Y;if(l&&i.IntPoint.op_Equality(e.OffPt,e.OutPt1.Pt)&&i.IntPoint.op_Equality(e.OffPt,e.OutPt2.Pt)){if(t!==n)return!1;for(a=e.OutPt1.Next;a!==r&&i.IntPoint.op_Equality(a.Pt,e.OffPt);)a=a.Next;var h=a.Pt.Y>e.OffPt.Y;for(o=e.OutPt2.Next;o!==s&&i.IntPoint.op_Equality(o.Pt,e.OffPt);)o=o.Next;return h!==o.Pt.Y>e.OffPt.Y&&(h?(a=this.DupOutPt(r,!1),o=this.DupOutPt(s,!0),r.Prev=s,s.Next=r,a.Next=o,o.Prev=a,e.OutPt1=r,e.OutPt2=a,!0):(a=this.DupOutPt(r,!0),o=this.DupOutPt(s,!1),r.Next=s,s.Prev=r,a.Prev=o,o.Next=a,e.OutPt1=r,e.OutPt2=a,!0))}if(l){for(a=r;r.Prev.Pt.Y===r.Pt.Y&&r.Prev!==a&&r.Prev!==s;)r=r.Prev;for(;a.Next.Pt.Y===a.Pt.Y&&a.Next!==r&&a.Next!==s;)a=a.Next;if(a.Next===r||a.Next===s)return!1;for(o=s;s.Prev.Pt.Y===s.Pt.Y&&s.Prev!==o&&s.Prev!==a;)s=s.Prev;for(;o.Next.Pt.Y===o.Pt.Y&&o.Next!==s&&o.Next!==r;)o=o.Next;if(o.Next===s||o.Next===r)return!1;var c={Left:null,Right:null};if(!this.GetOverlap(r.Pt.X,a.Pt.X,s.Pt.X,o.Pt.X,c))return!1;var u,d=c.Left,p=c.Right,f=new i.IntPoint0;return r.Pt.X>=d&&r.Pt.X<=p?(f.X=r.Pt.X,f.Y=r.Pt.Y,i.use_xyz&&(f.Z=r.Pt.Z),u=r.Pt.X>a.Pt.X):s.Pt.X>=d&&s.Pt.X<=p?(f.X=s.Pt.X,f.Y=s.Pt.Y,i.use_xyz&&(f.Z=s.Pt.Z),u=s.Pt.X>o.Pt.X):a.Pt.X>=d&&a.Pt.X<=p?(f.X=a.Pt.X,f.Y=a.Pt.Y,i.use_xyz&&(f.Z=a.Pt.Z),u=a.Pt.X>r.Pt.X):(f.X=o.Pt.X,f.Y=o.Pt.Y,i.use_xyz&&(f.Z=o.Pt.Z),u=o.Pt.X>s.Pt.X),e.OutPt1=r,e.OutPt2=s,this.JoinHorz(r,a,s,o,f,u)}for(a=r.Next;i.IntPoint.op_Equality(a.Pt,r.Pt)&&a!==r;)a=a.Next;var m=a.Pt.Y>r.Pt.Y||!i.ClipperBase.SlopesEqual4(r.Pt,a.Pt,e.OffPt,this.m_UseFullRange);if(m){for(a=r.Prev;i.IntPoint.op_Equality(a.Pt,r.Pt)&&a!==r;)a=a.Prev;if(a.Pt.Y>r.Pt.Y||!i.ClipperBase.SlopesEqual4(r.Pt,a.Pt,e.OffPt,this.m_UseFullRange))return!1}for(o=s.Next;i.IntPoint.op_Equality(o.Pt,s.Pt)&&o!==s;)o=o.Next;var g=o.Pt.Y>s.Pt.Y||!i.ClipperBase.SlopesEqual4(s.Pt,o.Pt,e.OffPt,this.m_UseFullRange);if(g){for(o=s.Prev;i.IntPoint.op_Equality(o.Pt,s.Pt)&&o!==s;)o=o.Prev;if(o.Pt.Y>s.Pt.Y||!i.ClipperBase.SlopesEqual4(s.Pt,o.Pt,e.OffPt,this.m_UseFullRange))return!1}return a!==r&&o!==s&&a!==o&&(t!==n||m!==g)&&(m?(a=this.DupOutPt(r,!1),o=this.DupOutPt(s,!0),r.Prev=s,s.Next=r,a.Next=o,o.Prev=a,e.OutPt1=r,e.OutPt2=a,!0):(a=this.DupOutPt(r,!0),o=this.DupOutPt(s,!1),r.Next=s,s.Prev=r,a.Prev=o,o.Next=a,e.OutPt1=r,e.OutPt2=a,!0))},i.Clipper.GetBounds=function(e){for(var t=0,n=e.length;tr.right&&(r.right=e[t][a].X),e[t][a].Yr.bottom&&(r.bottom=e[t][a].Y);return r},i.Clipper.prototype.GetBounds2=function(e){var t=e,n=new i.IntRect;for(n.left=e.Pt.X,n.right=e.Pt.X,n.top=e.Pt.Y,n.bottom=e.Pt.Y,e=e.Next;e!==t;)e.Pt.Xn.right&&(n.right=e.Pt.X),e.Pt.Yn.bottom&&(n.bottom=e.Pt.Y),e=e.Next;return n},i.Clipper.PointInPolygon=function(e,t){var i=0,n=t.length;if(n<3)return 0;for(var r=t[0],a=1;a<=n;++a){var s=a===n?t[0]:t[a];if(s.Y===e.Y&&(s.X===e.X||r.Y===e.Y&&s.X>e.X==r.X=e.X)if(s.X>e.X)i=1-i;else{if(0===(o=(r.X-e.X)*(s.Y-e.Y)-(s.X-e.X)*(r.Y-e.Y)))return-1;o>0==s.Y>r.Y&&(i=1-i)}else if(s.X>e.X){var o;if(0===(o=(r.X-e.X)*(s.Y-e.Y)-(s.X-e.X)*(r.Y-e.Y)))return-1;o>0==s.Y>r.Y&&(i=1-i)}r=s}return i},i.Clipper.prototype.PointInPolygon=function(e,t){var i=0,n=t,r=e.X,a=e.Y,s=t.Pt.X,o=t.Pt.Y;do{var l=(t=t.Next).Pt.X,h=t.Pt.Y;if(h===a&&(l===r||o===a&&l>r==s=r)if(l>r)i=1-i;else{if(0===(c=(s-r)*(h-a)-(l-r)*(o-a)))return-1;c>0==h>o&&(i=1-i)}else if(l>r){var c;if(0===(c=(s-r)*(h-a)-(l-r)*(o-a)))return-1;c>0==h>o&&(i=1-i)}s=l,o=h}while(n!==t);return i},i.Clipper.prototype.Poly2ContainsPoly1=function(e,t){var i=e;do{var n=this.PointInPolygon(i.Pt,t);if(n>=0)return n>0;i=i.Next}while(i!==e);return!0},i.Clipper.prototype.FixupFirstLefts1=function(e,t){for(var n,r,a=0,s=this.m_PolyOuts.length;a0&&this.ReversePolyPtLinks(a.Pts)):this.Poly2ContainsPoly1(r.Pts,a.Pts)?(a.IsHole=r.IsHole,r.IsHole=!a.IsHole,a.FirstLeft=r.FirstLeft,r.FirstLeft=a,this.m_UsingPolyTree&&this.FixupFirstLefts2(r,a),(r.IsHole^this.ReverseSolution)==this.Area$1(r)>0&&this.ReversePolyPtLinks(r.Pts)):(a.IsHole=r.IsHole,a.FirstLeft=r.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(r,a))):(a.Pts=null,a.BottomPt=null,a.Idx=r.Idx,r.IsHole=i.IsHole,i===a&&(r.FirstLeft=a.FirstLeft),a.FirstLeft=r,this.m_UsingPolyTree&&this.FixupFirstLefts3(a,r))))}},i.Clipper.prototype.UpdateOutPtIdxs=function(e){var t=e.Pts;do{t.Idx=e.Idx,t=t.Prev}while(t!==e.Pts)},i.Clipper.prototype.DoSimplePolygons=function(){for(var e=0;eMath.abs(e.Y-t.Y)?e.X>t.X==e.Xe.X==t.Xt.Y==e.Ye.Y==t.Y0&&r&&n.push(e.m_polygon);for(var a=0,s=e.Childs(),o=s.length,l=s[a];a0&&i.IntPoint.op_Equality(e[0],e[r]);)r--;a.m_polygon.push(e[0]);for(var s=0,o=0,l=1;l<=r;l++)i.IntPoint.op_Inequality(a.m_polygon[s],e[l])&&(s++,a.m_polygon.push(e[l]),(e[l].Y>a.m_polygon[o].Y||e[l].Y===a.m_polygon[o].Y&&e[l].Xh.Y||a.m_polygon[o].Y===h.Y&&a.m_polygon[o].X=0&&!i.Clipper.Orientation(this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon))for(var e=0;e2?this.m_miterLim=2/(this.MiterLimit*this.MiterLimit):this.m_miterLim=.5,n=this.ArcTolerance<=0?i.ClipperOffset.def_arc_tolerance:this.ArcTolerance>Math.abs(e)*i.ClipperOffset.def_arc_tolerance?Math.abs(e)*i.ClipperOffset.def_arc_tolerance:this.ArcTolerance;var r=3.14159265358979/Math.acos(1-n/Math.abs(e));for(this.m_sin=Math.sin(i.ClipperOffset.two_pi/r),this.m_cos=Math.cos(i.ClipperOffset.two_pi/r),this.m_StepsPerRad=r/i.ClipperOffset.two_pi,e<0&&(this.m_sin=-this.m_sin),t=0;t0;h--)this.m_normals[h]=new i.DoublePoint2(-this.m_normals[h-1].X,-this.m_normals[h-1].Y);for(this.m_normals[0]=new i.DoublePoint2(-d.X,-d.Y),u=0,h=s-1;h>=0;h--)u=this.OffsetPoint(h,u,a.m_jointype);this.m_destPolys.push(this.m_destPoly)}else{for(u=0,h=1;h0;h--)this.m_normals[h]=new i.DoublePoint2(-this.m_normals[h-1].X,-this.m_normals[h-1].Y);for(this.m_normals[0]=new i.DoublePoint2(-this.m_normals[1].X,-this.m_normals[1].Y),h=(u=s-1)-1;h>0;--h)u=this.OffsetPoint(h,u,a.m_jointype);a.m_endtype===i.EndType.etOpenButt?(p=new i.IntPoint2(i.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*e),i.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*e)),this.m_destPoly.push(p),p=new i.IntPoint2(i.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*e),i.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*e)),this.m_destPoly.push(p)):(u=1,this.m_sinA=0,a.m_endtype===i.EndType.etOpenSquare?this.DoSquare(0,1):this.DoRound(0,1)),this.m_destPolys.push(this.m_destPoly)}}}}},i.ClipperOffset.prototype.Execute=function(){var e=arguments;if(e[0]instanceof i.PolyTree){var t=e[0],n=e[1];if(t.Clear(),this.FixOrientations(),this.DoOffset(n),(o=new i.Clipper(0)).AddPaths(this.m_destPolys,i.PolyType.ptSubject,!0),n>0)o.Execute(i.ClipType.ctUnion,t,i.PolyFillType.pftPositive,i.PolyFillType.pftPositive);else{var r=i.Clipper.GetBounds(this.m_destPolys);if((l=new i.Path).push(new i.IntPoint2(r.left-10,r.bottom+10)),l.push(new i.IntPoint2(r.right+10,r.bottom+10)),l.push(new i.IntPoint2(r.right+10,r.top-10)),l.push(new i.IntPoint2(r.left-10,r.top-10)),o.AddPath(l,i.PolyType.ptSubject,!0),o.ReverseSolution=!0,o.Execute(i.ClipType.ctUnion,t,i.PolyFillType.pftNegative,i.PolyFillType.pftNegative),1===t.ChildCount()&&t.Childs()[0].ChildCount()>0){var a=t.Childs()[0];t.Childs()[0]=a.Childs()[0],t.Childs()[0].m_Parent=t;for(var s=1;s0)o.Execute(i.ClipType.ctUnion,t,i.PolyFillType.pftPositive,i.PolyFillType.pftPositive);else r=i.Clipper.GetBounds(this.m_destPolys),(l=new i.Path).push(new i.IntPoint2(r.left-10,r.bottom+10)),l.push(new i.IntPoint2(r.right+10,r.bottom+10)),l.push(new i.IntPoint2(r.right+10,r.top-10)),l.push(new i.IntPoint2(r.left-10,r.top-10)),o.AddPath(l,i.PolyType.ptSubject,!0),o.ReverseSolution=!0,o.Execute(i.ClipType.ctUnion,t,i.PolyFillType.pftNegative,i.PolyFillType.pftNegative),t.length>0&&t.splice(0,1)}},i.ClipperOffset.prototype.OffsetPoint=function(e,t,n){if(this.m_sinA=this.m_normals[t].X*this.m_normals[e].Y-this.m_normals[e].X*this.m_normals[t].Y,Math.abs(this.m_sinA*this.m_delta)<1){if(this.m_normals[t].X*this.m_normals[e].X+this.m_normals[e].Y*this.m_normals[t].Y>0)return this.m_destPoly.push(new i.IntPoint2(i.ClipperOffset.Round(this.m_srcPoly[e].X+this.m_normals[t].X*this.m_delta),i.ClipperOffset.Round(this.m_srcPoly[e].Y+this.m_normals[t].Y*this.m_delta))),t}else this.m_sinA>1?this.m_sinA=1:this.m_sinA<-1&&(this.m_sinA=-1);if(this.m_sinA*this.m_delta<0)this.m_destPoly.push(new i.IntPoint2(i.ClipperOffset.Round(this.m_srcPoly[e].X+this.m_normals[t].X*this.m_delta),i.ClipperOffset.Round(this.m_srcPoly[e].Y+this.m_normals[t].Y*this.m_delta))),this.m_destPoly.push(new i.IntPoint1(this.m_srcPoly[e])),this.m_destPoly.push(new i.IntPoint2(i.ClipperOffset.Round(this.m_srcPoly[e].X+this.m_normals[e].X*this.m_delta),i.ClipperOffset.Round(this.m_srcPoly[e].Y+this.m_normals[e].Y*this.m_delta)));else switch(n){case i.JoinType.jtMiter:var r=this.m_normals[e].X*this.m_normals[t].X+this.m_normals[e].Y*this.m_normals[t].Y+1;r>=this.m_miterLim?this.DoMiter(e,t,r):this.DoSquare(e,t);break;case i.JoinType.jtSquare:this.DoSquare(e,t);break;case i.JoinType.jtRound:this.DoRound(e,t)}return e},i.ClipperOffset.prototype.DoSquare=function(e,t){var n=Math.tan(Math.atan2(this.m_sinA,this.m_normals[t].X*this.m_normals[e].X+this.m_normals[t].Y*this.m_normals[e].Y)/4);this.m_destPoly.push(new i.IntPoint2(i.ClipperOffset.Round(this.m_srcPoly[e].X+this.m_delta*(this.m_normals[t].X-this.m_normals[t].Y*n)),i.ClipperOffset.Round(this.m_srcPoly[e].Y+this.m_delta*(this.m_normals[t].Y+this.m_normals[t].X*n)))),this.m_destPoly.push(new i.IntPoint2(i.ClipperOffset.Round(this.m_srcPoly[e].X+this.m_delta*(this.m_normals[e].X+this.m_normals[e].Y*n)),i.ClipperOffset.Round(this.m_srcPoly[e].Y+this.m_delta*(this.m_normals[e].Y-this.m_normals[e].X*n))))},i.ClipperOffset.prototype.DoMiter=function(e,t,n){var r=this.m_delta/n;this.m_destPoly.push(new i.IntPoint2(i.ClipperOffset.Round(this.m_srcPoly[e].X+(this.m_normals[t].X+this.m_normals[e].X)*r),i.ClipperOffset.Round(this.m_srcPoly[e].Y+(this.m_normals[t].Y+this.m_normals[e].Y)*r)))},i.ClipperOffset.prototype.DoRound=function(e,t){for(var n,r=Math.atan2(this.m_sinA,this.m_normals[t].X*this.m_normals[e].X+this.m_normals[t].Y*this.m_normals[e].Y),a=Math.max(i.Cast_Int32(i.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(r))),1),s=this.m_normals[t].X,o=this.m_normals[t].Y,l=0;l1?(y=u.X,x=u.Y):v>0&&(y+=m*v,x+=g*v)),(m=d.X-y)*m+(g=d.Y-x)*g<=_&&(p[a+1]=1,a++);for(l.push({X:s[0].X,Y:s[0].Y}),a=1;a2&&w.push(l)}return n||(w=w[0]),void 0===w&&(w=[]),w},i.JS.PerimeterOfPath=function(e,t,i){if(void 0===e)return 0;var n,r,a=Math.sqrt,s=0,o=0,l=0,h=0,c=0,u=e.length;if(u<2)return 0;for(t&&(e[u]=e[0],u++);--u;)o=(n=e[u]).X,l=n.Y,s+=a((o-(h=(r=e[u-1]).X))*(o-h)+(l-(c=r.Y))*(l-c));return t&&e.pop(),s/i},i.JS.PerimeterOfPaths=function(e,t,n){n||(n=1);for(var r=0,a=0;a{})),Sye=Q((()=>{})),Mye=Q((()=>{})),Rye=Q((()=>{})),Aye=Q((()=>{})),r1e=Q(((exports,module)=>{var t,e;t=globalThis,e=()=>(()=>{"use strict";var __webpack_modules__=[,(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.VerbosityLevel=t.Util=t.UnknownErrorException=t.UnexpectedResponseException=t.TextRenderingMode=t.RenderingIntentFlag=t.PromiseCapability=t.PermissionFlag=t.PasswordResponses=t.PasswordException=t.PageActionEventType=t.OPS=t.MissingPDFException=t.MAX_IMAGE_SIZE_TO_CACHE=t.LINE_FACTOR=t.LINE_DESCENT_FACTOR=t.InvalidPDFException=t.ImageKind=t.IDENTITY_MATRIX=t.FormatError=t.FeatureTest=t.FONT_IDENTITY_MATRIX=t.DocumentActionEventType=t.CMapCompressionType=t.BaseException=t.BASELINE_FACTOR=t.AnnotationType=t.AnnotationReplyType=t.AnnotationMode=t.AnnotationFlag=t.AnnotationFieldFlag=t.AnnotationEditorType=t.AnnotationEditorPrefix=t.AnnotationEditorParamsType=t.AnnotationBorderStyleType=t.AnnotationActionEventType=t.AbortException=void 0,t.assert=function(e,t){e||s(t)},t.bytesToString=function(e){("object"!=typeof e||void 0===(null==e?void 0:e.length))&&s("Invalid argument for bytesToString");let t=e.length,i=8192;if(t=2&&(e=`http://${e}`)}if(i.tryConvertEncoding)try{e=d(e)}catch(e){}}let n=t?new URL(e,t):new URL(e);if(function(e){switch(null==e?void 0:e.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(n))return n}catch(e){}return null},t.getModificationDate=function(e=new Date){return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),e.getUTCDate().toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")},t.getVerbosityLevel=function(){return r},t.info=function(e){r>=n.INFOS&&console.log(`Info: ${e}`)},t.isArrayBuffer=function(e){return"object"==typeof e&&void 0!==(null==e?void 0:e.byteLength)},t.isArrayEqual=function(e,t){if(e.length!==t.length)return!1;for(let i=0,n=e.length;it?t.normalize("NFKC"):f.get(i)))},t.objectFromMap=function(e){let t=Object.create(null);for(let[i,n]of e)t[i]=n;return t},t.objectSize=function(e){return Object.keys(e).length},t.setVerbosityLevel=function(e){Number.isInteger(e)&&(r=e)},t.shadow=o,t.string32=function(e){return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e)},t.stringToBytes=h,t.stringToPDFString=function(e){if(e[0]>="\xef"){let t;if("\xfe"===e[0]&&"\xff"===e[1]?t="utf-16be":"\xff"===e[0]&&"\xfe"===e[1]?t="utf-16le":"\xef"===e[0]&&"\xbb"===e[1]&&"\xbf"===e[2]&&(t="utf-8"),t)try{let i=new TextDecoder(t,{fatal:!0}),n=h(e);return i.decode(n)}catch(e){a(`stringToPDFString: "${e}".`)}}let t=[];for(let i=0,n=e.length;i=n.WARNINGS&&console.log(`Warning: ${e}`)}function s(e){throw new Error(e)}function o(e,t,i,n=!1){return Object.defineProperty(e,t,{value:i,enumerable:!n,configurable:!0,writable:!1}),i}let l=function(){function e(t,i){this.constructor===e&&s("Cannot initialize BaseException."),this.message=t,this.name=i}return e.prototype=new Error,e.constructor=e,e}();function h(e){"string"!=typeof e&&s("Invalid argument for stringToBytes");let t=e.length,i=new Uint8Array(t);for(let n=0;ne.toString(16).padStart(2,"0")));t.Util=class{static makeHexColor(e,t,i){return`#${c[e]}${c[t]}${c[i]}`}static scaleMinMax(e,t){let i;e[0]?(e[0]<0&&(i=t[0],t[0]=t[1],t[1]=i),t[0]*=e[0],t[1]*=e[0],e[3]<0&&(i=t[2],t[2]=t[3],t[3]=i),t[2]*=e[3],t[3]*=e[3]):(i=t[0],t[0]=t[2],t[2]=i,i=t[1],t[1]=t[3],t[3]=i,e[1]<0&&(i=t[2],t[2]=t[3],t[3]=i),t[2]*=e[1],t[3]*=e[1],e[2]<0&&(i=t[0],t[0]=t[1],t[1]=i),t[0]*=e[2],t[1]*=e[2]),t[0]+=e[4],t[1]+=e[4],t[2]+=e[5],t[3]+=e[5]}static transform(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}static applyTransform(e,t){return[e[0]*t[0]+e[1]*t[2]+t[4],e[0]*t[1]+e[1]*t[3]+t[5]]}static applyInverseTransform(e,t){let i=t[0]*t[3]-t[1]*t[2];return[(e[0]*t[3]-e[1]*t[2]+t[2]*t[5]-t[4]*t[3])/i,(-e[0]*t[1]+e[1]*t[0]+t[4]*t[1]-t[5]*t[0])/i]}static getAxialAlignedBoundingBox(e,t){let i=this.applyTransform(e,t),n=this.applyTransform(e.slice(2,4),t),r=this.applyTransform([e[0],e[3]],t),a=this.applyTransform([e[2],e[1]],t);return[Math.min(i[0],n[0],r[0],a[0]),Math.min(i[1],n[1],r[1],a[1]),Math.max(i[0],n[0],r[0],a[0]),Math.max(i[1],n[1],r[1],a[1])]}static inverseTransform(e){let t=e[0]*e[3]-e[1]*e[2];return[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[4]*e[3])/t,(e[4]*e[1]-e[5]*e[0])/t]}static singularValueDecompose2dScale(e){let t=[e[0],e[2],e[1],e[3]],i=e[0]*t[0]+e[1]*t[2],n=e[0]*t[1]+e[1]*t[3],r=e[2]*t[0]+e[3]*t[2],a=e[2]*t[1]+e[3]*t[3],s=(i+a)/2,o=Math.sqrt(Do(i+a,2)-4*(i*a-r*n))/2,l=s+o||1,h=s-o||1;return[Math.sqrt(l),Math.sqrt(h)]}static normalizeRect(e){let t=e.slice(0);return e[0]>e[2]&&(t[0]=e[2],t[2]=e[0]),e[1]>e[3]&&(t[1]=e[3],t[3]=e[1]),t}static intersect(e,t){let i=Math.max(Math.min(e[0],e[2]),Math.min(t[0],t[2])),n=Math.min(Math.max(e[0],e[2]),Math.max(t[0],t[2]));if(i>n)return null;let r=Math.max(Math.min(e[1],e[3]),Math.min(t[1],t[3])),a=Math.min(Math.max(e[1],e[3]),Math.max(t[1],t[3]));return r>a?null:[i,r,n,a]}static bezierBoundingBox(e,t,i,n,r,a,s,o){let l,h,c,u,d,p,f,m,g=[],v=[[],[]];for(let _=0;_<2;++_)if(0===_?(h=6*e-12*i+6*r,l=-3*e+9*i-9*r+3*s,c=3*i-3*e):(h=6*t-12*n+6*a,l=-3*t+9*n-9*a+3*o,c=3*n-3*t),Math.abs(l)<1e-12){if(Math.abs(h)<1e-12)continue;u=-c/h,0{this.resolve=t=>{Mt(this,i,!0),e(t)},this.reject=e=>{Mt(this,i,!0),t(e)}}))}get settled(){return ce(this,i)}};let p=null,f=null},(__unused_webpack_module,exports,__w_pdfjs_require__)=>{var i,e,n,r,Jy,a,U2,l,c,u,h,d,f,p,g,IV,v,E,LV,_,R;Object.defineProperty(exports,"__esModule",{value:!0}),exports.build=exports.RenderTask=exports.PDFWorkerUtil=exports.PDFWorker=exports.PDFPageProxy=exports.PDFDocumentProxy=exports.PDFDocumentLoadingTask=exports.PDFDataRangeTransport=exports.LoopbackPort=exports.DefaultStandardFontDataFactory=exports.DefaultFilterFactory=exports.DefaultCanvasFactory=exports.DefaultCMapReaderFactory=void 0,exports.getDocument=getDocument,exports.version=void 0;var _util=__w_pdfjs_require__(1),_annotation_storage=__w_pdfjs_require__(3),_display_utils=__w_pdfjs_require__(6),_font_loader=__w_pdfjs_require__(9),_canvas=__w_pdfjs_require__(11),_worker_options=__w_pdfjs_require__(14),_is_node=__w_pdfjs_require__(10),_message_handler=__w_pdfjs_require__(15),_metadata=__w_pdfjs_require__(16),_optional_content_config=__w_pdfjs_require__(17),_transport_stream=__w_pdfjs_require__(18),_xfa_text=__w_pdfjs_require__(19);let DEFAULT_RANGE_CHUNK_SIZE=65536,RENDERING_CANCELLED_TIMEOUT=100,DELAYED_CLEANUP_TIMEOUT=5e3,DefaultCanvasFactory=_is_node.isNodeJS?__w_pdfjs_require__(20).NodeCanvasFactory:_display_utils.DOMCanvasFactory;exports.DefaultCanvasFactory=DefaultCanvasFactory;let DefaultCMapReaderFactory=_is_node.isNodeJS?__w_pdfjs_require__(20).NodeCMapReaderFactory:_display_utils.DOMCMapReaderFactory;exports.DefaultCMapReaderFactory=DefaultCMapReaderFactory;let DefaultFilterFactory=_is_node.isNodeJS?__w_pdfjs_require__(20).NodeFilterFactory:_display_utils.DOMFilterFactory;exports.DefaultFilterFactory=DefaultFilterFactory;let DefaultStandardFontDataFactory=_is_node.isNodeJS?__w_pdfjs_require__(20).NodeStandardFontDataFactory:_display_utils.DOMStandardFontDataFactory,createPDFNetworkStream;if(exports.DefaultStandardFontDataFactory=DefaultStandardFontDataFactory,_is_node.isNodeJS){let{PDFNodeStream:e}=__w_pdfjs_require__(21);createPDFNetworkStream=t=>new e(t)}else{let{PDFNetworkStream:e}=__w_pdfjs_require__(24),{PDFFetchStream:t}=__w_pdfjs_require__(25);createPDFNetworkStream=i=>(0,_display_utils.isValidFetchUrl)(i.url)?new t(i):new e(i)}function getDocument(e){var t,i;if("string"==typeof e||e instanceof URL?e={url:e}:(0,_util.isArrayBuffer)(e)&&(e={data:e}),"object"!=typeof e)throw new Error("Invalid parameter in getDocument, need parameter object.");if(!e.url&&!e.data&&!e.range)throw new Error("Invalid parameter object: need either .data, .range or .url");let n=new PDFDocumentLoadingTask,{docId:r}=n,a=e.url?getUrlProp(e.url):null,s=e.data?getDataProp(e.data):null,o=e.httpHeaders||null,l=!0===e.withCredentials,h=null!=(t=e.password)?t:null,c=e.range instanceof PDFDataRangeTransport?e.range:null,u=Number.isInteger(e.rangeChunkSize)&&e.rangeChunkSize>0?e.rangeChunkSize:DEFAULT_RANGE_CHUNK_SIZE,d=e.worker instanceof PDFWorker?e.worker:null,p=e.verbosity,f="string"!=typeof e.docBaseUrl||(0,_display_utils.isDataScheme)(e.docBaseUrl)?null:e.docBaseUrl,m="string"==typeof e.cMapUrl?e.cMapUrl:null,g=!1!==e.cMapPacked,v=e.CMapReaderFactory||DefaultCMapReaderFactory,y="string"==typeof e.standardFontDataUrl?e.standardFontDataUrl:null,x=e.StandardFontDataFactory||DefaultStandardFontDataFactory,b=!0!==e.stopAtErrors,_=Number.isInteger(e.maxImageSize)&&e.maxImageSize>-1?e.maxImageSize:-1,w=!1!==e.isEvalSupported,S="boolean"==typeof e.isOffscreenCanvasSupported?e.isOffscreenCanvasSupported:!_is_node.isNodeJS,M=Number.isInteger(e.canvasMaxAreaInBytes)?e.canvasMaxAreaInBytes:-1,E="boolean"==typeof e.disableFontFace?e.disableFontFace:_is_node.isNodeJS,T=!0===e.fontExtraProperties,A=!0===e.enableXfa,C=e.ownerDocument||globalThis.document,P=!0===e.disableRange,R=!0===e.disableStream,D=!0===e.disableAutoFetch,L=!0===e.pdfBug,I=c?c.length:null!=(i=e.length)?i:NaN,O="boolean"==typeof e.useSystemFonts?e.useSystemFonts:!_is_node.isNodeJS&&!E,k="boolean"==typeof e.useWorkerFetch?e.useWorkerFetch:v===_display_utils.DOMCMapReaderFactory&&x===_display_utils.DOMStandardFontDataFactory&&(0,_display_utils.isValidFetchUrl)(m,document.baseURI)&&(0,_display_utils.isValidFetchUrl)(y,document.baseURI),N=e.canvasFactory||new DefaultCanvasFactory({ownerDocument:C}),U=e.filterFactory||new DefaultFilterFactory({docId:r,ownerDocument:C});(0,_util.setVerbosityLevel)(p);let F={canvasFactory:N,filterFactory:U};if(k||(F.cMapReaderFactory=new v({baseUrl:m,isCompressed:g}),F.standardFontDataFactory=new x({baseUrl:y})),!d){let e={verbosity:p,port:_worker_options.GlobalWorkerOptions.workerPort};d=e.port?PDFWorker.fromPort(e):new PDFWorker(e),n._worker=d}let B={docId:r,apiVersion:"3.8.162",data:s,password:h,disableAutoFetch:D,rangeChunkSize:u,length:I,docBaseUrl:f,enableXfa:A,evaluatorOptions:{maxImageSize:_,disableFontFace:E,ignoreErrors:b,isEvalSupported:w,isOffscreenCanvasSupported:S,canvasMaxAreaInBytes:M,fontExtraProperties:T,useSystemFonts:O,cMapUrl:k?m:null,standardFontDataUrl:k?y:null}},z={ignoreErrors:b,isEvalSupported:w,disableFontFace:E,fontExtraProperties:T,enableXfa:A,ownerDocument:C,disableAutoFetch:D,pdfBug:L,styleElement:null};return d.promise.then((function(){if(n.destroyed)throw new Error("Loading aborted");let e=_fetchDocument(d,B),t=new Promise((function(e){let t;c?t=new _transport_stream.PDFDataTransportStream({length:I,initialData:c.initialData,progressiveDone:c.progressiveDone,contentDispositionFilename:c.contentDispositionFilename,disableRange:P,disableStream:R},c):s||(t=createPDFNetworkStream({url:a,length:I,httpHeaders:o,withCredentials:l,rangeChunkSize:u,disableRange:P,disableStream:R})),e(t)}));return Promise.all([e,t]).then((function([e,t]){if(n.destroyed)throw new Error("Loading aborted");let i=new _message_handler.MessageHandler(r,e,d.port),a=new WorkerTransport(i,n,t,z,F);n._transport=a,i.send("Ready",null)}))})).catch(n._capability.reject),n}function _fetchDocument(e,t){return ft(this,null,(function*(){if(e.destroyed)throw new Error("Worker was destroyed");let i=yield e.messageHandler.sendWithPromise("GetDocRequest",t,t.data?[t.data.buffer]:null);if(e.destroyed)throw new Error("Worker was destroyed");return i}))}function getUrlProp(e){if(e instanceof URL)return e.href;try{return new URL(e,window.location).href}catch(t){if(_is_node.isNodeJS&&"string"==typeof e)return e}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}function getDataProp(e){if(_is_node.isNodeJS&&"undefined"!=typeof Buffer&&e instanceof Buffer)throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");if(e instanceof Uint8Array&&e.byteLength===e.buffer.byteLength)return e;if("string"==typeof e)return(0,_util.stringToBytes)(e);if("object"==typeof e&&!isNaN(null==e?void 0:e.length)||(0,_util.isArrayBuffer)(e))return new Uint8Array(e);throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.")}let t=class{constructor(){this._capability=new _util.PromiseCapability,this._transport=null,this._worker=null,this.docId="d"+GT(t,i)._++,this.destroyed=!1,this.onPassword=null,this.onProgress=null}get promise(){return this._capability.promise}destroy(){return ft(this,null,(function*(){var e;this.destroyed=!0,yield null==(e=this._transport)?void 0:e.destroy(),this._transport=null,this._worker&&(this._worker.destroy(),this._worker=null)}))}},PDFDocumentLoadingTask=t;i=new WeakMap,Je(PDFDocumentLoadingTask,i,0),exports.PDFDocumentLoadingTask=PDFDocumentLoadingTask;class PDFDataRangeTransport{constructor(e,t,i=!1,n=null){this.length=e,this.initialData=t,this.progressiveDone=i,this.contentDispositionFilename=n,this._rangeListeners=[],this._progressListeners=[],this._progressiveReadListeners=[],this._progressiveDoneListeners=[],this._readyCapability=new _util.PromiseCapability}addRangeListener(e){this._rangeListeners.push(e)}addProgressListener(e){this._progressListeners.push(e)}addProgressiveReadListener(e){this._progressiveReadListeners.push(e)}addProgressiveDoneListener(e){this._progressiveDoneListeners.push(e)}onDataRange(e,t){for(let i of this._rangeListeners)i(e,t)}onDataProgress(e,t){this._readyCapability.promise.then((()=>{for(let i of this._progressListeners)i(e,t)}))}onDataProgressiveRead(e){this._readyCapability.promise.then((()=>{for(let t of this._progressiveReadListeners)t(e)}))}onDataProgressiveDone(){this._readyCapability.promise.then((()=>{for(let e of this._progressiveDoneListeners)e()}))}transportReady(){this._readyCapability.resolve()}requestDataRange(e,t){(0,_util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}}exports.PDFDataRangeTransport=PDFDataRangeTransport;class PDFDocumentProxy{constructor(e,t){this._pdfInfo=e,this._transport=t}get annotationStorage(){return this._transport.annotationStorage}get filterFactory(){return this._transport.filterFactory}get numPages(){return this._pdfInfo.numPages}get fingerprints(){return this._pdfInfo.fingerprints}get isPureXfa(){return(0,_util.shadow)(this,"isPureXfa",!!this._transport._htmlForXfa)}get allXfaHtml(){return this._transport._htmlForXfa}getPage(e){return this._transport.getPage(e)}getPageIndex(e){return this._transport.getPageIndex(e)}getDestinations(){return this._transport.getDestinations()}getDestination(e){return this._transport.getDestination(e)}getPageLabels(){return this._transport.getPageLabels()}getPageLayout(){return this._transport.getPageLayout()}getPageMode(){return this._transport.getPageMode()}getViewerPreferences(){return this._transport.getViewerPreferences()}getOpenAction(){return this._transport.getOpenAction()}getAttachments(){return this._transport.getAttachments()}getJavaScript(){return this._transport.getJavaScript()}getJSActions(){return this._transport.getDocJSActions()}getOutline(){return this._transport.getOutline()}getOptionalContentConfig(){return this._transport.getOptionalContentConfig()}getPermissions(){return this._transport.getPermissions()}getMetadata(){return this._transport.getMetadata()}getMarkInfo(){return this._transport.getMarkInfo()}getData(){return this._transport.getData()}saveDocument(){return this._transport.saveDocument()}getDownloadInfo(){return this._transport.downloadInfoCapability.promise}cleanup(e=!1){return this._transport.startCleanup(e||this.isPureXfa)}destroy(){return this.loadingTask.destroy()}get loadingParams(){return this._transport.loadingParams}get loadingTask(){return this._transport.loadingTask}getFieldObjects(){return this._transport.getFieldObjects()}hasJSActions(){return this._transport.hasJSActions()}getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}exports.PDFDocumentProxy=PDFDocumentProxy;class PDFPageProxy{constructor(t,i,s,o=!1){Je(this,r),Je(this,a),Je(this,e,null),Je(this,n,!1),this._pageIndex=t,this._pageInfo=i,this._transport=s,this._stats=o?new _display_utils.StatTimer:null,this._pdfBug=o,this.commonObjs=s.commonObjs,this.objs=new PDFObjects,this._maybeCleanupAfterRender=!1,this._intentStates=new Map,this.destroyed=!1}get pageNumber(){return this._pageIndex+1}get rotate(){return this._pageInfo.rotate}get ref(){return this._pageInfo.ref}get userUnit(){return this._pageInfo.userUnit}get view(){return this._pageInfo.view}getViewport({scale:e,rotation:t=this.rotate,offsetX:i=0,offsetY:n=0,dontFlip:r=!1}={}){return new _display_utils.PageViewport({viewBox:this.view,scale:e,rotation:t,offsetX:i,offsetY:n,dontFlip:r})}getAnnotations({intent:e="display"}={}){let t=this._transport.getRenderingIntent(e);return this._transport.getAnnotations(this._pageIndex,t.renderingIntent)}getJSActions(){return this._transport.getPageJSActions(this._pageIndex)}get filterFactory(){return this._transport.filterFactory}get isPureXfa(){return(0,_util.shadow)(this,"isPureXfa",!!this._transport._htmlForXfa)}getXfa(){return ft(this,null,(function*(){var e;return(null==(e=this._transport._htmlForXfa)?void 0:e.children[this._pageIndex])||null}))}render({canvasContext:e,viewport:t,intent:i="display",annotationMode:s=_util.AnnotationMode.ENABLE,transform:o=null,background:l=null,optionalContentConfigPromise:h=null,annotationCanvasMap:c=null,pageColors:u=null,printAnnotationStorage:d=null}){var p,f;null==(p=this._stats)||p.time("Overall");let m=this._transport.getRenderingIntent(i,s,d);Mt(this,n,!1),dt(this,a,U2).call(this),h||(h=this._transport.getOptionalContentConfig());let g=this._intentStates.get(m.cacheKey);g||(g=Object.create(null),this._intentStates.set(m.cacheKey,g)),g.streamReaderCancelTimeout&&(clearTimeout(g.streamReaderCancelTimeout),g.streamReaderCancelTimeout=null);let v=!!(m.renderingIntent&_util.RenderingIntentFlag.PRINT);g.displayReadyCapability||(g.displayReadyCapability=new _util.PromiseCapability,g.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},null==(f=this._stats)||f.time("Page Request"),this._pumpOperatorList(m));let y=e=>{var t,i;g.renderTasks.delete(x),(this._maybeCleanupAfterRender||v)&&Mt(this,n,!0),dt(this,r,Jy).call(this,!v),e?(x.capability.reject(e),this._abortOperatorList({intentState:g,reason:e instanceof Error?e:new Error(e)})):x.capability.resolve(),null==(t=this._stats)||t.timeEnd("Rendering"),null==(i=this._stats)||i.timeEnd("Overall")},x=new InternalRenderTask({callback:y,params:{canvasContext:e,viewport:t,transform:o,background:l},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:c,operatorList:g.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!v,pdfBug:this._pdfBug,pageColors:u});(g.renderTasks||(g.renderTasks=new Set)).add(x);let b=x.task;return Promise.all([g.displayReadyCapability.promise,h]).then((([e,t])=>{var i;this.destroyed?y():(null==(i=this._stats)||i.time("Rendering"),x.initializeGraphics({transparency:e,optionalContentConfig:t}),x.operatorListChanged())})).catch(y),b}getOperatorList({intent:e="display",annotationMode:t=_util.AnnotationMode.ENABLE,printAnnotationStorage:i=null}={}){var n;let r,a=this._transport.getRenderingIntent(e,t,i,!0),s=this._intentStates.get(a.cacheKey);return s||(s=Object.create(null),this._intentStates.set(a.cacheKey,s)),s.opListReadCapability||(r=Object.create(null),r.operatorListChanged=function(){s.operatorList.lastChunk&&(s.opListReadCapability.resolve(s.operatorList),s.renderTasks.delete(r))},s.opListReadCapability=new _util.PromiseCapability,(s.renderTasks||(s.renderTasks=new Set)).add(r),s.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},null==(n=this._stats)||n.time("Page Request"),this._pumpOperatorList(a)),s.opListReadCapability.promise}streamTextContent({includeMarkedContent:e=!1,disableNormalization:t=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,includeMarkedContent:!0===e,disableNormalization:!0===t},{highWaterMark:100,size:e=>e.items.length})}getTextContent(e={}){if(this._transport._htmlForXfa)return this.getXfa().then((e=>_xfa_text.XfaText.textContent(e)));let t=this.streamTextContent(e);return new Promise((function(e,i){let n=t.getReader(),r={items:[],styles:Object.create(null)};!function t(){n.read().then((function({value:i,done:n}){n?e(r):(Object.assign(r.styles,i.styles),r.items.push(...i.items),t())}),i)}()}))}getStructTree(){return this._transport.getStructTree(this._pageIndex)}_destroy(){this.destroyed=!0;let e=[];for(let t of this._intentStates.values())if(this._abortOperatorList({intentState:t,reason:new Error("Page was destroyed."),force:!0}),!t.opListReadCapability)for(let i of t.renderTasks)e.push(i.completed),i.cancel();return this.objs.clear(),Mt(this,n,!1),dt(this,a,U2).call(this),Promise.all(e)}cleanup(e=!1){Mt(this,n,!0);let t=dt(this,r,Jy).call(this,!1);return e&&t&&this._stats&&(this._stats=new _display_utils.StatTimer),t}_startRenderPage(e,t){var i,n;let r=this._intentStates.get(t);r&&(null==(i=this._stats)||i.timeEnd("Page Request"),null==(n=r.displayReadyCapability)||n.resolve(e))}_renderPageChunk(e,t){for(let i=0,n=e.length;i{s.read().then((({value:e,done:t})=>{t?o.streamReader=null:this._transport.destroyed||(this._renderPageChunk(e,o),l())}),(e=>{if(o.streamReader=null,!this._transport.destroyed){if(o.operatorList){o.operatorList.lastChunk=!0;for(let e of o.renderTasks)e.operatorListChanged();dt(this,r,Jy).call(this,!0)}if(o.displayReadyCapability)o.displayReadyCapability.reject(e);else{if(!o.opListReadCapability)throw e;o.opListReadCapability.reject(e)}}}))};l()}_abortOperatorList({intentState:e,reason:t,force:i=!1}){if(e.streamReader){if(e.streamReaderCancelTimeout&&(clearTimeout(e.streamReaderCancelTimeout),e.streamReaderCancelTimeout=null),!i){if(e.renderTasks.size>0)return;if(t instanceof _display_utils.RenderingCancelledException){let i=RENDERING_CANCELLED_TIMEOUT;return t.extraDelay>0&&t.extraDelay<1e3&&(i+=t.extraDelay),void(e.streamReaderCancelTimeout=setTimeout((()=>{e.streamReaderCancelTimeout=null,this._abortOperatorList({intentState:e,reason:t,force:!0})}),i))}}if(e.streamReader.cancel(new _util.AbortException(t.message)).catch((()=>{})),e.streamReader=null,!this._transport.destroyed){for(let[t,i]of this._intentStates)if(i===e){this._intentStates.delete(t);break}this.cleanup()}}}get stats(){return this._stats}}e=new WeakMap,n=new WeakMap,r=new WeakSet,Jy=function(t=!1){if(dt(this,a,U2).call(this),!ce(this,n)||this.destroyed)return!1;if(t)return Mt(this,e,setTimeout((()=>{Mt(this,e,null),dt(this,r,Jy).call(this,!1)}),DELAYED_CLEANUP_TIMEOUT)),!1;for(let{renderTasks:e,operatorList:i}of this._intentStates.values())if(e.size>0||!i.lastChunk)return!1;return this._intentStates.clear(),this.objs.clear(),Mt(this,n,!1),!0},a=new WeakSet,U2=function(){ce(this,e)&&(clearTimeout(ce(this,e)),Mt(this,e,null))},exports.PDFPageProxy=PDFPageProxy;class LoopbackPort{constructor(){Je(this,l,new Set),Je(this,c,Promise.resolve())}postMessage(e,t){let i={data:structuredClone(e,t?{transfer:t}:null)};ce(this,c).then((()=>{for(let e of ce(this,l))e.call(this,i)}))}addEventListener(e,t){ce(this,l).add(t)}removeEventListener(e,t){ce(this,l).delete(t)}terminate(){ce(this,l).clear()}}l=new WeakMap,c=new WeakMap,exports.LoopbackPort=LoopbackPort;let PDFWorkerUtil={isWorkerDisabled:!1,fallbackWorkerSrc:null,fakeWorkerId:0};if(exports.PDFWorkerUtil=PDFWorkerUtil,_is_node.isNodeJS&&"function"==typeof a3)PDFWorkerUtil.isWorkerDisabled=!0,PDFWorkerUtil.fallbackWorkerSrc="./pdf.worker.js";else if("object"==typeof document){let e=null==(u=null==document?void 0:document.currentScript)?void 0:u.src;e&&(PDFWorkerUtil.fallbackWorkerSrc=e.replace(/(\.(?:min\.)?js)(\?.*)?$/i,".worker$1$2"))}PDFWorkerUtil.isSameOrigin=function(e,t){let i;try{if(i=new URL(e),!i.origin||"null"===i.origin)return!1}catch(e){return!1}let n=new URL(t,i);return i.origin===n.origin},PDFWorkerUtil.createCDNWrapper=function(e){let t=`importScripts("${e}");`;return URL.createObjectURL(new Blob([t]))};let _PDFWorker=class{constructor({name:e=null,port:t=null,verbosity:i=(0,_util.getVerbosityLevel)()}={}){if(t&&ce(_PDFWorker,h).has(t))throw new Error("Cannot use more than one PDFWorker per port.");if(this.name=e,this.destroyed=!1,this.verbosity=i,this._readyCapability=new _util.PromiseCapability,this._port=null,this._webWorker=null,this._messageHandler=null,t)return ce(_PDFWorker,h).set(t,this),void this._initializeFromPort(t);this._initialize()}get promise(){return this._readyCapability.promise}get port(){return this._port}get messageHandler(){return this._messageHandler}_initializeFromPort(e){this._port=e,this._messageHandler=new _message_handler.MessageHandler("main","worker",e),this._messageHandler.on("ready",(function(){})),this._readyCapability.resolve(),this._messageHandler.send("configure",{verbosity:this.verbosity})}_initialize(){if(!PDFWorkerUtil.isWorkerDisabled&&!_PDFWorker._mainThreadWorkerMessageHandler){let{workerSrc:t}=_PDFWorker;try{PDFWorkerUtil.isSameOrigin(window.location.href,t)||(t=PDFWorkerUtil.createCDNWrapper(new URL(t,window.location).href));let e=new Worker(t),i=new _message_handler.MessageHandler("main","worker",e),n=()=>{e.removeEventListener("error",r),i.destroy(),e.terminate(),this.destroyed?this._readyCapability.reject(new Error("Worker was destroyed")):this._setupFakeWorker()},r=()=>{this._webWorker||n()};e.addEventListener("error",r),i.on("test",(t=>{e.removeEventListener("error",r),this.destroyed?n():t?(this._messageHandler=i,this._port=e,this._webWorker=e,this._readyCapability.resolve(),i.send("configure",{verbosity:this.verbosity})):(this._setupFakeWorker(),i.destroy(),e.terminate())})),i.on("ready",(t=>{if(e.removeEventListener("error",r),this.destroyed)n();else try{a()}catch(t){this._setupFakeWorker()}}));let a=()=>{let e=new Uint8Array;i.send("test",e,[e.buffer])};return void a()}catch(e){(0,_util.info)("The worker has been disabled.")}}this._setupFakeWorker()}_setupFakeWorker(){PDFWorkerUtil.isWorkerDisabled||((0,_util.warn)("Setting up fake worker."),PDFWorkerUtil.isWorkerDisabled=!0),_PDFWorker._setupFakeWorkerGlobal.then((e=>{if(this.destroyed)return void this._readyCapability.reject(new Error("Worker was destroyed"));let t=new LoopbackPort;this._port=t;let i="fake"+PDFWorkerUtil.fakeWorkerId++,n=new _message_handler.MessageHandler(i+"_worker",i,t);e.setup(n,t);let r=new _message_handler.MessageHandler(i,i+"_worker",t);this._messageHandler=r,this._readyCapability.resolve(),r.send("configure",{verbosity:this.verbosity})})).catch((e=>{this._readyCapability.reject(new Error(`Setting up fake worker failed: "${e.message}".`))}))}destroy(){this.destroyed=!0,this._webWorker&&(this._webWorker.terminate(),this._webWorker=null),ce(_PDFWorker,h).delete(this._port),this._port=null,this._messageHandler&&(this._messageHandler.destroy(),this._messageHandler=null)}static fromPort(e){if(null==e||!e.port)throw new Error("PDFWorker.fromPort - invalid method signature.");return ce(this,h).has(e.port)?ce(this,h).get(e.port):new _PDFWorker(e)}static get workerSrc(){if(_worker_options.GlobalWorkerOptions.workerSrc)return _worker_options.GlobalWorkerOptions.workerSrc;if(null!==PDFWorkerUtil.fallbackWorkerSrc)return _is_node.isNodeJS||(0,_display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.'),PDFWorkerUtil.fallbackWorkerSrc;throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get _mainThreadWorkerMessageHandler(){var e;try{return(null==(e=globalThis.pdfjsWorker)?void 0:e.WorkerMessageHandler)||null}catch(e){return null}}static get _setupFakeWorkerGlobal(){let loader=()=>ft(this,null,(function*(){let mainWorkerMessageHandler=this._mainThreadWorkerMessageHandler;if(mainWorkerMessageHandler)return mainWorkerMessageHandler;if(_is_node.isNodeJS&&"function"==typeof a3){let worker=eval("require")(this.workerSrc);return worker.WorkerMessageHandler}return yield(0,_display_utils.loadScript)(this.workerSrc),window.pdfjsWorker.WorkerMessageHandler}));return(0,_util.shadow)(this,"_setupFakeWorkerGlobal",loader())}},PDFWorker=_PDFWorker;h=new WeakMap,Je(PDFWorker,h,new WeakMap),exports.PDFWorker=PDFWorker;class WorkerTransport{constructor(e,t,i,n,r){Je(this,g),Je(this,d,new Map),Je(this,f,new Map),Je(this,p,new Map),this.messageHandler=e,this.loadingTask=t,this.commonObjs=new PDFObjects,this.fontLoader=new _font_loader.FontLoader({ownerDocument:n.ownerDocument,styleElement:n.styleElement}),this._params=n,this.canvasFactory=r.canvasFactory,this.filterFactory=r.filterFactory,this.cMapReaderFactory=r.cMapReaderFactory,this.standardFontDataFactory=r.standardFontDataFactory,this.destroyed=!1,this.destroyCapability=null,this._passwordCapability=null,this._networkStream=i,this._fullReader=null,this._lastProgress=null,this.downloadInfoCapability=new _util.PromiseCapability,this.setupMessageHandler()}get annotationStorage(){return(0,_util.shadow)(this,"annotationStorage",new _annotation_storage.AnnotationStorage)}getRenderingIntent(e,t=_util.AnnotationMode.ENABLE,i=null,n=!1){let r=_util.RenderingIntentFlag.DISPLAY,a=_annotation_storage.SerializableEmpty;switch(e){case"any":r=_util.RenderingIntentFlag.ANY;break;case"display":break;case"print":r=_util.RenderingIntentFlag.PRINT;break;default:(0,_util.warn)(`getRenderingIntent - invalid intent: ${e}`)}switch(t){case _util.AnnotationMode.DISABLE:r+=_util.RenderingIntentFlag.ANNOTATIONS_DISABLE;break;case _util.AnnotationMode.ENABLE:break;case _util.AnnotationMode.ENABLE_FORMS:r+=_util.RenderingIntentFlag.ANNOTATIONS_FORMS;break;case _util.AnnotationMode.ENABLE_STORAGE:r+=_util.RenderingIntentFlag.ANNOTATIONS_STORAGE,a=(r&_util.RenderingIntentFlag.PRINT&&i instanceof _annotation_storage.PrintAnnotationStorage?i:this.annotationStorage).serializable;break;default:(0,_util.warn)(`getRenderingIntent - invalid annotationMode: ${t}`)}return n&&(r+=_util.RenderingIntentFlag.OPLIST),{renderingIntent:r,cacheKey:`${r}_${a.hash}`,annotationStorageSerializable:a}}destroy(){if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=new _util.PromiseCapability,this._passwordCapability&&this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback"));let e=[];for(let i of ce(this,f).values())e.push(i._destroy());ce(this,f).clear(),ce(this,p).clear(),this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();let t=this.messageHandler.sendWithPromise("Terminate",null);return e.push(t),Promise.all(e).then((()=>{this.commonObjs.clear(),this.fontLoader.clear(),ce(this,d).clear(),this.filterFactory.destroy(),this._networkStream&&this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated.")),this.messageHandler&&(this.messageHandler.destroy(),this.messageHandler=null),this.destroyCapability.resolve()}),this.destroyCapability.reject),this.destroyCapability.promise}setupMessageHandler(){let{messageHandler:e,loadingTask:t}=this;e.on("GetReader",((e,t)=>{(0,_util.assert)(this._networkStream,"GetReader - no `IPDFStream` instance available."),this._fullReader=this._networkStream.getFullReader(),this._fullReader.onProgress=e=>{this._lastProgress={loaded:e.loaded,total:e.total}},t.onPull=()=>{this._fullReader.read().then((function({value:e,done:i}){i?t.close():((0,_util.assert)(e instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer."),t.enqueue(new Uint8Array(e),1,[e]))})).catch((e=>{t.error(e)}))},t.onCancel=e=>{this._fullReader.cancel(e),t.ready.catch((e=>{if(!this.destroyed)throw e}))}})),e.on("ReaderHeadersReady",(e=>{let i=new _util.PromiseCapability,n=this._fullReader;return n.headersReady.then((()=>{var e;(!n.isStreamingSupported||!n.isRangeSupported)&&(this._lastProgress&&(null==(e=t.onProgress)||e.call(t,this._lastProgress)),n.onProgress=e=>{var i;null==(i=t.onProgress)||i.call(t,{loaded:e.loaded,total:e.total})}),i.resolve({isStreamingSupported:n.isStreamingSupported,isRangeSupported:n.isRangeSupported,contentLength:n.contentLength})}),i.reject),i.promise})),e.on("GetRangeReader",((e,t)=>{(0,_util.assert)(this._networkStream,"GetRangeReader - no `IPDFStream` instance available.");let i=this._networkStream.getRangeReader(e.begin,e.end);i?(t.onPull=()=>{i.read().then((function({value:e,done:i}){i?t.close():((0,_util.assert)(e instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer."),t.enqueue(new Uint8Array(e),1,[e]))})).catch((e=>{t.error(e)}))},t.onCancel=e=>{i.cancel(e),t.ready.catch((e=>{if(!this.destroyed)throw e}))}):t.close()})),e.on("GetDoc",(({pdfInfo:e})=>{this._numPages=e.numPages,this._htmlForXfa=e.htmlForXfa,delete e.htmlForXfa,t._capability.resolve(new PDFDocumentProxy(e,this))})),e.on("DocException",(function(e){let i;switch(e.name){case"PasswordException":i=new _util.PasswordException(e.message,e.code);break;case"InvalidPDFException":i=new _util.InvalidPDFException(e.message);break;case"MissingPDFException":i=new _util.MissingPDFException(e.message);break;case"UnexpectedResponseException":i=new _util.UnexpectedResponseException(e.message,e.status);break;case"UnknownErrorException":i=new _util.UnknownErrorException(e.message,e.details);break;default:(0,_util.unreachable)("DocException - expected a valid Error.")}t._capability.reject(i)})),e.on("PasswordRequest",(e=>{if(this._passwordCapability=new _util.PromiseCapability,t.onPassword){let i=e=>{e instanceof Error?this._passwordCapability.reject(e):this._passwordCapability.resolve({password:e})};try{t.onPassword(i,e.code)}catch(e){this._passwordCapability.reject(e)}}else this._passwordCapability.reject(new _util.PasswordException(e.message,e.code));return this._passwordCapability.promise})),e.on("DataLoaded",(e=>{var i;null==(i=t.onProgress)||i.call(t,{loaded:e.length,total:e.length}),this.downloadInfoCapability.resolve(e)})),e.on("StartRenderPage",(e=>{this.destroyed||ce(this,f).get(e.pageIndex)._startRenderPage(e.transparency,e.cacheKey)})),e.on("commonobj",(([t,i,n])=>{var r;if(!this.destroyed&&!this.commonObjs.has(t))switch(i){case"Font":let a=this._params;if("error"in n){let e=n.error;(0,_util.warn)(`Error during font loading: ${e}`),this.commonObjs.resolve(t,e);break}let s=a.pdfBug&&null!=(r=globalThis.FontInspector)&&r.enabled?(e,t)=>globalThis.FontInspector.fontAdded(e,t):null,o=new _font_loader.FontFaceObject(n,{isEvalSupported:a.isEvalSupported,disableFontFace:a.disableFontFace,ignoreErrors:a.ignoreErrors,inspectFont:s});this.fontLoader.bind(o).catch((i=>e.sendWithPromise("FontFallback",{id:t}))).finally((()=>{!a.fontExtraProperties&&o.data&&(o.data=null),this.commonObjs.resolve(t,o)}));break;case"FontPath":case"Image":case"Pattern":this.commonObjs.resolve(t,n);break;default:throw new Error(`Got unknown common object type ${i}`)}})),e.on("obj",(([e,t,i,n])=>{var r;if(this.destroyed)return;let a=ce(this,f).get(t);if(!a.objs.has(e))switch(i){case"Image":if(a.objs.resolve(e,n),n){let e;if(n.bitmap){let{width:t,height:i}=n;e=t*i*4}else e=(null==(r=n.data)?void 0:r.length)||0;e>_util.MAX_IMAGE_SIZE_TO_CACHE&&(a._maybeCleanupAfterRender=!0)}break;case"Pattern":a.objs.resolve(e,n);break;default:throw new Error(`Got unknown object type ${i}`)}})),e.on("DocProgress",(e=>{var i;this.destroyed||null==(i=t.onProgress)||i.call(t,{loaded:e.loaded,total:e.total})})),e.on("FetchBuiltInCMap",(e=>this.destroyed?Promise.reject(new Error("Worker was destroyed.")):this.cMapReaderFactory?this.cMapReaderFactory.fetch(e):Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.")))),e.on("FetchStandardFontData",(e=>this.destroyed?Promise.reject(new Error("Worker was destroyed.")):this.standardFontDataFactory?this.standardFontDataFactory.fetch(e):Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter."))))}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(){var e,t;this.annotationStorage.size<=0&&(0,_util.warn)("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");let{map:i,transfers:n}=this.annotationStorage.serializable;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:i,filename:null!=(t=null==(e=this._fullReader)?void 0:e.filename)?t:null},n).finally((()=>{this.annotationStorage.resetModified()}))}getPage(e){if(!Number.isInteger(e)||e<=0||e>this._numPages)return Promise.reject(new Error("Invalid page request."));let t=e-1,i=ce(this,p).get(t);if(i)return i;let n=this.messageHandler.sendWithPromise("GetPage",{pageIndex:t}).then((e=>{if(this.destroyed)throw new Error("Transport destroyed");let i=new PDFPageProxy(t,e,this,this._params.pdfBug);return ce(this,f).set(t,i),i}));return ce(this,p).set(t,n),n}getPageIndex(e){return"object"!=typeof e||null===e||!Number.isInteger(e.num)||e.num<0||!Number.isInteger(e.gen)||e.gen<0?Promise.reject(new Error("Invalid pageIndex request.")):this.messageHandler.sendWithPromise("GetPageIndex",{num:e.num,gen:e.gen})}getAnnotations(e,t){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:e,intent:t})}getFieldObjects(){return dt(this,g,IV).call(this,"GetFieldObjects")}hasJSActions(){return dt(this,g,IV).call(this,"HasJSActions")}getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}getDestination(e){return"string"!=typeof e?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:e})}getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}getJavaScript(){return this.messageHandler.sendWithPromise("GetJavaScript",null)}getDocJSActions(){return this.messageHandler.sendWithPromise("GetDocJSActions",null)}getPageJSActions(e){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:e})}getStructTree(e){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:e})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(){return this.messageHandler.sendWithPromise("GetOptionalContentConfig",null).then((e=>new _optional_content_config.OptionalContentConfig(e)))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){let e="GetMetadata",t=ce(this,d).get(e);if(t)return t;let i=this.messageHandler.sendWithPromise(e,null).then((e=>{var t,i,n,r;return{info:e[0],metadata:e[1]?new _metadata.Metadata(e[1]):null,contentDispositionFilename:null!=(i=null==(t=this._fullReader)?void 0:t.filename)?i:null,contentLength:null!=(r=null==(n=this._fullReader)?void 0:n.contentLength)?r:null}}));return ce(this,d).set(e,i),i}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}startCleanup(e=!1){return ft(this,null,(function*(){if(!this.destroyed){yield this.messageHandler.sendWithPromise("Cleanup",null);for(let e of ce(this,f).values())if(!e.cleanup())throw new Error(`startCleanup: Page ${e.pageNumber} is currently rendering.`);this.commonObjs.clear(),e||this.fontLoader.clear(),ce(this,d).clear(),this.filterFactory.destroy(!0)}}))}get loadingParams(){let{disableAutoFetch:e,enableXfa:t}=this._params;return(0,_util.shadow)(this,"loadingParams",{disableAutoFetch:e,enableXfa:t})}}d=new WeakMap,f=new WeakMap,p=new WeakMap,g=new WeakSet,IV=function(e,t=null){let i=ce(this,d).get(e);if(i)return i;let n=this.messageHandler.sendWithPromise(e,t);return ce(this,d).set(e,n),n};class PDFObjects{constructor(){Je(this,E),Je(this,v,Object.create(null))}get(e,t=null){if(t){let i=dt(this,E,LV).call(this,e);return i.capability.promise.then((()=>t(i.data))),null}let i=ce(this,v)[e];if(null==i||!i.capability.settled)throw new Error(`Requesting object that isn't resolved yet ${e}.`);return i.data}has(e){let t=ce(this,v)[e];return(null==t?void 0:t.capability.settled)||!1}resolve(e,t=null){let i=dt(this,E,LV).call(this,e);i.data=t,i.capability.resolve()}clear(){var e;for(let t in ce(this,v)){let{data:i}=ce(this,v)[t];null==(e=null==i?void 0:i.bitmap)||e.close()}Mt(this,v,Object.create(null))}}v=new WeakMap,E=new WeakSet,LV=function(e){return ce(this,v)[e]||(ce(this,v)[e]={capability:new _util.PromiseCapability,data:null})};class RenderTask{constructor(e){Je(this,_,null),Mt(this,_,e),this.onContinue=null}get promise(){return ce(this,_).capability.promise}cancel(e=0){ce(this,_).cancel(null,e)}get separateAnnots(){let{separateAnnots:e}=ce(this,_).operatorList;if(!e)return!1;let{annotationCanvasMap:t}=ce(this,_);return e.form||e.canvas&&(null==t?void 0:t.size)>0}}_=new WeakMap,exports.RenderTask=RenderTask;let M=class{constructor({callback:e,params:t,objs:i,commonObjs:n,annotationCanvasMap:r,operatorList:a,pageIndex:s,canvasFactory:o,filterFactory:l,useRequestAnimationFrame:h=!1,pdfBug:c=!1,pageColors:u=null}){this.callback=e,this.params=t,this.objs=i,this.commonObjs=n,this.annotationCanvasMap=r,this.operatorListIdx=null,this.operatorList=a,this._pageIndex=s,this.canvasFactory=o,this.filterFactory=l,this._pdfBug=c,this.pageColors=u,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this._useRequestAnimationFrame=!0===h&&"undefined"!=typeof window,this.cancelled=!1,this.capability=new _util.PromiseCapability,this.task=new RenderTask(this),this._cancelBound=this.cancel.bind(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this),this._canvas=t.canvasContext.canvas}get completed(){return this.capability.promise.catch((function(){}))}initializeGraphics({transparency:e=!1,optionalContentConfig:t}){var i,n;if(this.cancelled)return;if(this._canvas){if(ce(M,R).has(this._canvas))throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");ce(M,R).add(this._canvas)}this._pdfBug&&null!=(i=globalThis.StepperManager)&&i.enabled&&(this.stepper=globalThis.StepperManager.create(this._pageIndex),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());let{canvasContext:r,viewport:a,transform:s,background:o}=this.params;this.gfx=new _canvas.CanvasGraphics(r,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:t},this.annotationCanvasMap,this.pageColors),this.gfx.beginDrawing({transform:s,viewport:a,transparency:e,background:o}),this.operatorListIdx=0,this.graphicsReady=!0,null==(n=this.graphicsReadyCallback)||n.call(this)}cancel(e=null,t=0){var i;this.running=!1,this.cancelled=!0,null==(i=this.gfx)||i.endDrawing(),this._canvas&&ce(M,R).delete(this._canvas),this.callback(e||new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex+1}`,t))}operatorListChanged(){var e;this.graphicsReady?(null==(e=this.stepper)||e.updateOperatorList(this.operatorList),!this.running&&this._continue()):this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound)}_continue(){this.running=!0,!this.cancelled&&(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}_scheduleNext(){this._useRequestAnimationFrame?window.requestAnimationFrame((()=>{this._nextBound().catch(this._cancelBound)})):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}_next(){return ft(this,null,(function*(){this.cancelled||(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(this.pageColors),this._canvas&&ce(M,R).delete(this._canvas),this.callback())))}))}},InternalRenderTask=M;R=new WeakMap,Je(InternalRenderTask,R,new WeakSet);let version="3.8.162";exports.version=version;let build="2c74323e3";exports.build=build},(e,t,i)=>{var n,r,a,s,o;Object.defineProperty(t,"__esModule",{value:!0}),t.SerializableEmpty=t.PrintAnnotationStorage=t.AnnotationStorage=void 0;var l=i(1),h=i(4),c=i(8);let u=Object.freeze({map:null,hash:"",transfers:void 0});t.SerializableEmpty=u;class d{constructor(){Je(this,a),Je(this,n,!1),Je(this,r,new Map),this.onSetModified=null,this.onResetModified=null,this.onAnnotationEditor=null}getValue(e,t){let i=ce(this,r).get(e);return void 0===i?t:Object.assign(t,i)}getRawValue(e){return ce(this,r).get(e)}remove(e){if(ce(this,r).delete(e),0===ce(this,r).size&&this.resetModified(),"function"==typeof this.onAnnotationEditor){for(let e of ce(this,r).values())if(e instanceof h.AnnotationEditor)return;this.onAnnotationEditor(null)}}setValue(e,t){let i=ce(this,r).get(e),n=!1;if(void 0!==i)for(let[r,a]of Object.entries(t))i[r]!==a&&(n=!0,i[r]=a);else n=!0,ce(this,r).set(e,t);n&&dt(this,a,s).call(this),t instanceof h.AnnotationEditor&&"function"==typeof this.onAnnotationEditor&&this.onAnnotationEditor(t.constructor._type)}has(e){return ce(this,r).has(e)}getAll(){return ce(this,r).size>0?(0,l.objectFromMap)(ce(this,r)):null}setAll(e){for(let[t,i]of Object.entries(e))this.setValue(t,i)}get size(){return ce(this,r).size}resetModified(){ce(this,n)&&(Mt(this,n,!1),"function"==typeof this.onResetModified&&this.onResetModified())}get print(){return new p(this)}get serializable(){if(0===ce(this,r).size)return u;let e=new Map,t=new c.MurmurHash3_64,i=[];for(let[n,a]of ce(this,r)){let r=a instanceof h.AnnotationEditor?a.serialize():a;r&&(e.set(n,r),t.update(`${n}:${JSON.stringify(r)}`),r.bitmap&&i.push(r.bitmap))}return e.size>0?{map:e,hash:t.hexdigest(),transfers:i}:u}}n=new WeakMap,r=new WeakMap,a=new WeakSet,s=function(){ce(this,n)||(Mt(this,n,!0),"function"==typeof this.onSetModified&&this.onSetModified())},t.AnnotationStorage=d;class p extends d{constructor(e){super(),Je(this,o,void 0);let{map:t,hash:i,transfers:n}=e.serializable,r=structuredClone(t,n?{transfer:n}:null);Mt(this,o,{map:r,hash:i,transfers:n})}get print(){(0,l.unreachable)("Should not call PrintAnnotationStorage.print")}get serializable(){return ce(this,o)}}o=new WeakMap,t.PrintAnnotationStorage=p},(e,t,i)=>{var n,r,a,s,o,l;Object.defineProperty(t,"__esModule",{value:!0}),t.AnnotationEditor=void 0;var h=i(5),c=i(1);let u=class{constructor(e){Je(this,n,this.focusin.bind(this)),Je(this,r,this.focusout.bind(this)),Je(this,a,!1),Je(this,s,!1),Je(this,o,!1),Yi(this,"_uiManager",null),Je(this,l,u._zIndex++),this.constructor===u&&(0,c.unreachable)("Cannot initialize AnnotationEditor."),this.parent=e.parent,this.id=e.id,this.width=this.height=null,this.pageIndex=e.parent.pageIndex,this.name=e.name,this.div=null,this._uiManager=e.uiManager,this.annotationElementId=null;let{rotation:t,rawDims:{pageWidth:i,pageHeight:h,pageX:d,pageY:p}}=this.parent.viewport;this.rotation=t,this.pageRotation=(360+t-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[i,h],this.pageTranslation=[d,p];let[f,m]=this.parentDimensions;this.x=e.x/f,this.y=e.y/m,this.isAttachedToDOM=!1,this.deleted=!1}static get _defaultLineColor(){return(0,c.shadow)(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}static deleteAnnotationElement(e){let t=new p({id:e.parent.getNextId(),parent:e.parent,uiManager:e._uiManager});t.annotationElementId=e.annotationElementId,t.deleted=!0,t._uiManager.addToAnnotationStorage(t)}addCommands(e){this._uiManager.addCommands(e)}get currentLayer(){return this._uiManager.currentLayer}setInBackground(){this.div.style.zIndex=0}setInForeground(){this.div.style.zIndex=ce(this,l)}setParent(e){null!==e&&(this.pageIndex=e.pageIndex,this.pageDimensions=e.pageDimensions),this.parent=e}focusin(e){ce(this,a)?Mt(this,a,!1):this.parent.setSelected(this)}focusout(e){var t;if(!this.isAttachedToDOM)return;let i=e.relatedTarget;null!=i&&i.closest(`#${this.id}`)||(e.preventDefault(),null!=(t=this.parent)&&t.isMultipleSelection||this.commitOrRemove())}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}dragstart(e){let t=this.parent.div.getBoundingClientRect();this.startX=e.clientX-t.x,this.startY=e.clientY-t.y,e.dataTransfer.setData("text/plain",this.id),e.dataTransfer.effectAllowed="move"}setAt(e,t,i,n){let[r,a]=this.parentDimensions;[i,n]=this.screenToPageTranslation(i,n),this.x=(e+i)/r,this.y=(t+n)/a,this.div.style.left=100*this.x+"%",this.div.style.top=100*this.y+"%"}translate(e,t){let[i,n]=this.parentDimensions;[e,t]=this.screenToPageTranslation(e,t),this.x+=e/i,this.y+=t/n,this.div.style.left=100*this.x+"%",this.div.style.top=100*this.y+"%"}screenToPageTranslation(e,t){switch(this.parentRotation){case 90:return[t,-e];case 180:return[-e,-t];case 270:return[-t,e];default:return[e,t]}}get parentScale(){return this._uiManager.viewParameters.realScale}get parentRotation(){return(this._uiManager.viewParameters.rotation+this.pageRotation)%360}get parentDimensions(){let{realScale:e}=this._uiManager.viewParameters,[t,i]=this.pageDimensions;return[t*e,i*e]}setDims(e,t){let[i,n]=this.parentDimensions;this.div.style.width=100*e/i+"%",this.div.style.height=100*t/n+"%"}fixDims(){let{style:e}=this.div,{height:t,width:i}=e,n=i.endsWith("%"),r=t.endsWith("%");if(n&&r)return;let[a,s]=this.parentDimensions;n||(e.width=100*parseFloat(i)/a+"%"),r||(e.height=100*parseFloat(t)/s+"%")}getInitialTranslation(){return[0,0]}render(){this.div=document.createElement("div"),this.div.setAttribute("data-editor-rotation",(360-this.rotation)%360),this.div.className=this.name,this.div.setAttribute("id",this.id),this.div.setAttribute("tabIndex",0),this.setInForeground(),this.div.addEventListener("focusin",ce(this,n)),this.div.addEventListener("focusout",ce(this,r));let[e,t]=this.getInitialTranslation();return this.translate(e,t),(0,h.bindEvents)(this,this.div,["dragstart","pointerdown"]),this.div}pointerdown(e){let{isMac:t}=c.FeatureTest.platform;0!==e.button||e.ctrlKey&&t?e.preventDefault():(e.ctrlKey&&!t||e.shiftKey||e.metaKey&&t?this.parent.toggleSelected(this):this.parent.setSelected(this),Mt(this,a,!0))}getRect(e,t){let i=this.parentScale,[n,r]=this.pageDimensions,[a,s]=this.pageTranslation,o=e/i,l=t/i,h=this.x*n,c=this.y*r,u=this.width*n,d=this.height*r;switch(this.rotation){case 0:return[h+o+a,r-c-l-d+s,h+o+u+a,r-c-l+s];case 90:return[h+l+a,r-c+o+s,h+l+d+a,r-c+o+u+s];case 180:return[h-o-u+a,r-c+l+s,h-o+a,r-c+l+d+s];case 270:return[h-l-d+a,r-c-o-u+s,h-l+a,r-c-o+s];default:throw new Error("Invalid rotation")}}getRectInCurrentCoords(e,t){let[i,n,r,a]=e,s=r-i,o=a-n;switch(this.rotation){case 0:return[i,t-a,s,o];case 90:return[i,t-n,o,s];case 180:return[r,t-n,s,o];case 270:return[r,t-a,o,s];default:throw new Error("Invalid rotation")}}onceAdded(){}isEmpty(){return!1}enableEditMode(){Mt(this,o,!0)}disableEditMode(){Mt(this,o,!1)}isInEditMode(){return ce(this,o)}shouldGetKeyboardEvents(){return!1}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}rebuild(){var e,t;null==(e=this.div)||e.addEventListener("focusin",ce(this,n)),null==(t=this.div)||t.addEventListener("focusout",ce(this,r))}serialize(e=!1){(0,c.unreachable)("An editor must be serializable")}static deserialize(e,t,i){let n=new this.prototype.constructor({parent:t,id:t.getNextId(),uiManager:i});n.rotation=e.rotation;let[r,a]=n.pageDimensions,[s,o,l,h]=n.getRectInCurrentCoords(e.rect,a);return n.x=s/r,n.y=o/a,n.width=l/r,n.height=h/a,n}remove(){this.div.removeEventListener("focusin",ce(this,n)),this.div.removeEventListener("focusout",ce(this,r)),this.isEmpty()||this.commit(),this.parent.remove(this)}select(){var e;null==(e=this.div)||e.classList.add("selectedEditor")}unselect(){var e;null==(e=this.div)||e.classList.remove("selectedEditor")}updateParams(e,t){}disableEditing(){}enableEditing(){}get propertiesToUpdate(){return{}}get contentDiv(){return this.div}get isEditing(){return ce(this,s)}set isEditing(e){Mt(this,s,e),e?(this.parent.setSelected(this),this.parent.setActiveEditor(this)):this.parent.setActiveEditor(null)}},d=u;n=new WeakMap,r=new WeakMap,a=new WeakMap,s=new WeakMap,o=new WeakMap,l=new WeakMap,Yi(d,"_colorManager",new h.ColorManager),Yi(d,"_zIndex",1),t.AnnotationEditor=d;class p extends d{constructor(e){super(e),this.annotationElementId=e.annotationElementId,this.deleted=!0}serialize(){return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex}}}},(e,t,i)=>{var n,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b,_,w,S,M,E,T,A,C,P,R,D,L,I,O,k,N,U,F,B,z,H,V,j,G,W,X,Y,q,Z,Q,J,K,$,ee,te;Object.defineProperty(t,"__esModule",{value:!0}),t.KeyboardManager=t.CommandManager=t.ColorManager=t.AnnotationEditorUIManager=void 0,t.bindEvents=function(e,t,i){for(let n of i)t.addEventListener(n,e[n].bind(e))},t.opacityToHex=function(e){return Math.round(Math.min(255,Math.max(1,255*e))).toString(16).padStart(2,"0")};var ie=i(1),ne=i(6);class re{constructor(){Je(this,n,0)}getId(){return`${ie.AnnotationEditorPrefix}${GT(this,n)._++}`}}n=new WeakMap;class ae{constructor(e=128){Je(this,r,[]),Je(this,a,!1),Je(this,s,void 0),Je(this,o,-1),Mt(this,s,e)}add({cmd:e,undo:t,mustExec:i,type:n=NaN,overwriteIfSameType:l=!1,keepUndo:h=!1}){if(i&&e(),ce(this,a))return;let c={cmd:e,undo:t,type:n};if(-1===ce(this,o))return ce(this,r).length>0&&(ce(this,r).length=0),Mt(this,o,0),void ce(this,r).push(c);if(l&&ce(this,r)[ce(this,o)].type===n)return h&&(c.undo=ce(this,r)[ce(this,o)].undo),void(ce(this,r)[ce(this,o)]=c);let u=ce(this,o)+1;u===ce(this,s)?ce(this,r).splice(0,1):(Mt(this,o,u),ue===t[i])))return oe._colorsMapping.get(i);return t}getHexCode(e){let t=this._colors.get(e);return t?ie.Util.makeHexColor(...t):e}},le=oe;Yi(le,"_colorsMapping",new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]])),t.ColorManager=le;let he=class{constructor(e,t,i){Je(this,O),Je(this,N),Je(this,F),Je(this,z),Je(this,V),Je(this,G),Je(this,X),Je(this,q),Je(this,Q),Je(this,K),Je(this,ee),Je(this,c,null),Je(this,u,new Map),Je(this,d,new Map),Je(this,p,null),Je(this,f,new ae),Je(this,m,0),Je(this,g,new Set),Je(this,v,null),Je(this,y,new Set),Je(this,x,null),Je(this,b,new re),Je(this,_,!1),Je(this,w,ie.AnnotationEditorType.NONE),Je(this,S,new Set),Je(this,M,this.copy.bind(this)),Je(this,E,this.cut.bind(this)),Je(this,T,this.paste.bind(this)),Je(this,A,this.keydown.bind(this)),Je(this,C,this.onEditingAction.bind(this)),Je(this,P,this.onPageChanging.bind(this)),Je(this,R,this.onScaleChanging.bind(this)),Je(this,D,this.onRotationChanging.bind(this)),Je(this,L,{isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1}),Je(this,I,null),Mt(this,I,e),Mt(this,x,t),ce(this,x)._on("editingaction",ce(this,C)),ce(this,x)._on("pagechanging",ce(this,P)),ce(this,x)._on("scalechanging",ce(this,R)),ce(this,x)._on("rotationchanging",ce(this,D)),Mt(this,p,i),this.viewParameters={realScale:ne.PixelsPerInch.PDF_TO_CSS_UNITS,rotation:0}}static get _keyboardManager(){return(0,ie.shadow)(this,"_keyboardManager",new se([[["ctrl+a","mac+meta+a"],he.prototype.selectAll],[["ctrl+z","mac+meta+z"],he.prototype.undo],[["ctrl+y","ctrl+shift+Z","mac+meta+shift+Z"],he.prototype.redo],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete"],he.prototype.delete],[["Escape","mac+Escape"],he.prototype.unselectAll]]))}destroy(){dt(this,N,U).call(this),ce(this,x)._off("editingaction",ce(this,C)),ce(this,x)._off("pagechanging",ce(this,P)),ce(this,x)._off("scalechanging",ce(this,R)),ce(this,x)._off("rotationchanging",ce(this,D));for(let e of ce(this,d).values())e.destroy();ce(this,d).clear(),ce(this,u).clear(),ce(this,y).clear(),Mt(this,c,null),ce(this,S).clear(),ce(this,f).destroy()}onPageChanging({pageNumber:e}){Mt(this,m,e-1)}focusMainContainer(){ce(this,I).focus()}addShouldRescale(e){ce(this,y).add(e)}removeShouldRescale(e){ce(this,y).delete(e)}onScaleChanging({scale:e}){this.commitOrRemove(),this.viewParameters.realScale=e*ne.PixelsPerInch.PDF_TO_CSS_UNITS;for(let t of ce(this,y))t.onScaleChanging()}onRotationChanging({pagesRotation:e}){this.commitOrRemove(),this.viewParameters.rotation=e}addToAnnotationStorage(e){!e.isEmpty()&&ce(this,p)&&!ce(this,p).has(e.id)&&ce(this,p).setValue(e.id,e)}copy(e){if(e.preventDefault(),ce(this,c)&&ce(this,c).commitOrRemove(),!this.hasSelection)return;let t=[];for(let i of ce(this,S)){let e=i.serialize(!0);e&&t.push(e)}0!==t.length&&e.clipboardData.setData("application/pdfjs",JSON.stringify(t))}cut(e){this.copy(e),this.delete()}paste(e){e.preventDefault();let t=e.clipboardData.getData("application/pdfjs");if(!t)return;try{t=JSON.parse(t)}catch(e){return void(0,ie.warn)(`paste: "${e.message}".`)}if(!Array.isArray(t))return;this.unselectAll();let i=ce(this,d).get(ce(this,m));try{let e=[];for(let a of t){let t=i.deserialize(a);if(!t)return;e.push(t)}let n=()=>{for(let t of e)dt(this,Q,J).call(this,t);dt(this,ee,te).call(this,e)},r=()=>{for(let t of e)t.remove()};this.addCommands({cmd:n,undo:r,mustExec:!0})}catch(e){(0,ie.warn)(`paste: "${e.message}".`)}}keydown(e){var t;null!=(t=this.getActive())&&t.shouldGetKeyboardEvents()||he._keyboardManager.exec(this,e)}onEditingAction(e){["undo","redo","delete","selectAll"].includes(e.name)&&this[e.name]()}setEditingState(e){e?(dt(this,O,k).call(this),dt(this,F,B).call(this),dt(this,V,j).call(this,{isEditing:ce(this,w)!==ie.AnnotationEditorType.NONE,isEmpty:dt(this,K,$).call(this),hasSomethingToUndo:ce(this,f).hasSomethingToUndo(),hasSomethingToRedo:ce(this,f).hasSomethingToRedo(),hasSelectedEditor:!1})):(dt(this,N,U).call(this),dt(this,z,H).call(this),dt(this,V,j).call(this,{isEditing:!1}))}registerEditorTypes(e){if(!ce(this,v)){Mt(this,v,e);for(let e of ce(this,v))dt(this,G,W).call(this,e.defaultPropertiesToUpdate)}}getId(){return ce(this,b).getId()}get currentLayer(){return ce(this,d).get(ce(this,m))}get currentPageIndex(){return ce(this,m)}addLayer(e){ce(this,d).set(e.pageIndex,e),ce(this,_)?e.enable():e.disable()}removeLayer(e){ce(this,d).delete(e.pageIndex)}updateMode(e){if(Mt(this,w,e),e===ie.AnnotationEditorType.NONE)this.setEditingState(!1),dt(this,q,Z).call(this);else{this.setEditingState(!0),dt(this,X,Y).call(this);for(let t of ce(this,d).values())t.updateMode(e)}}updateToolbar(e){e!==ce(this,w)&&ce(this,x).dispatch("switchannotationeditormode",{source:this,mode:e})}updateParams(e,t){if(ce(this,v)){for(let i of ce(this,S))i.updateParams(e,t);for(let i of ce(this,v))i.updateDefaultParams(e,t)}}getEditors(e){let t=[];for(let i of ce(this,u).values())i.pageIndex===e&&t.push(i);return t}getEditor(e){return ce(this,u).get(e)}addEditor(e){ce(this,u).set(e.id,e)}removeEditor(e){var t;ce(this,u).delete(e.id),this.unselect(e),(!e.annotationElementId||!ce(this,g).has(e.annotationElementId))&&(null==(t=ce(this,p))||t.remove(e.id))}addDeletedAnnotationElement(e){ce(this,g).add(e.annotationElementId),e.deleted=!0}isDeletedAnnotationElement(e){return ce(this,g).has(e)}removeDeletedAnnotationElement(e){ce(this,g).delete(e.annotationElementId),e.deleted=!1}setActiveEditor(e){ce(this,c)!==e&&(Mt(this,c,e),e&&dt(this,G,W).call(this,e.propertiesToUpdate))}toggleSelected(e){if(ce(this,S).has(e))return ce(this,S).delete(e),e.unselect(),void dt(this,V,j).call(this,{hasSelectedEditor:this.hasSelection});ce(this,S).add(e),e.select(),dt(this,G,W).call(this,e.propertiesToUpdate),dt(this,V,j).call(this,{hasSelectedEditor:!0})}setSelected(e){for(let t of ce(this,S))t!==e&&t.unselect();ce(this,S).clear(),ce(this,S).add(e),e.select(),dt(this,G,W).call(this,e.propertiesToUpdate),dt(this,V,j).call(this,{hasSelectedEditor:!0})}isSelected(e){return ce(this,S).has(e)}unselect(e){e.unselect(),ce(this,S).delete(e),dt(this,V,j).call(this,{hasSelectedEditor:this.hasSelection})}get hasSelection(){return 0!==ce(this,S).size}undo(){ce(this,f).undo(),dt(this,V,j).call(this,{hasSomethingToUndo:ce(this,f).hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:dt(this,K,$).call(this)})}redo(){ce(this,f).redo(),dt(this,V,j).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:ce(this,f).hasSomethingToRedo(),isEmpty:dt(this,K,$).call(this)})}addCommands(e){ce(this,f).add(e),dt(this,V,j).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:dt(this,K,$).call(this)})}delete(){if(this.commitOrRemove(),!this.hasSelection)return;let e=[...ce(this,S)];this.addCommands({cmd:()=>{for(let t of e)t.remove()},undo:()=>{for(let t of e)dt(this,Q,J).call(this,t)},mustExec:!0})}commitOrRemove(){var e;null==(e=ce(this,c))||e.commitOrRemove()}selectAll(){for(let e of ce(this,S))e.commit();dt(this,ee,te).call(this,ce(this,u).values())}unselectAll(){if(ce(this,c))ce(this,c).commitOrRemove();else if(0!==ce(this,S).size){for(let e of ce(this,S))e.unselect();ce(this,S).clear(),dt(this,V,j).call(this,{hasSelectedEditor:!1})}}isActive(e){return ce(this,c)===e}getActive(){return ce(this,c)}getMode(){return ce(this,w)}},ue=he;c=new WeakMap,u=new WeakMap,d=new WeakMap,p=new WeakMap,f=new WeakMap,m=new WeakMap,g=new WeakMap,v=new WeakMap,y=new WeakMap,x=new WeakMap,b=new WeakMap,_=new WeakMap,w=new WeakMap,S=new WeakMap,M=new WeakMap,E=new WeakMap,T=new WeakMap,A=new WeakMap,C=new WeakMap,P=new WeakMap,R=new WeakMap,D=new WeakMap,L=new WeakMap,I=new WeakMap,O=new WeakSet,k=function(){ce(this,I).addEventListener("keydown",ce(this,A))},N=new WeakSet,U=function(){ce(this,I).removeEventListener("keydown",ce(this,A))},F=new WeakSet,B=function(){document.addEventListener("copy",ce(this,M)),document.addEventListener("cut",ce(this,E)),document.addEventListener("paste",ce(this,T))},z=new WeakSet,H=function(){document.removeEventListener("copy",ce(this,M)),document.removeEventListener("cut",ce(this,E)),document.removeEventListener("paste",ce(this,T))},V=new WeakSet,j=function(e){Object.entries(e).some((([e,t])=>ce(this,L)[e]!==t))&&ce(this,x).dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(ce(this,L),e)})},G=new WeakSet,W=function(e){ce(this,x).dispatch("annotationeditorparamschanged",{source:this,details:e})},X=new WeakSet,Y=function(){if(!ce(this,_)){Mt(this,_,!0);for(let e of ce(this,d).values())e.enable()}},q=new WeakSet,Z=function(){if(this.unselectAll(),ce(this,_)){Mt(this,_,!1);for(let e of ce(this,d).values())e.disable()}},Q=new WeakSet,J=function(e){let t=ce(this,d).get(e.pageIndex);t?t.addOrRebuild(e):this.addEditor(e)},K=new WeakSet,$=function(){if(0===ce(this,u).size)return!0;if(1===ce(this,u).size)for(let e of ce(this,u).values())return e.isEmpty();return!1},ee=new WeakSet,te=function(e){ce(this,S).clear();for(let t of e)t.isEmpty()||(ce(this,S).add(t),t.select());dt(this,V,j).call(this,{hasSelectedEditor:!0})},t.AnnotationEditorUIManager=ue},(e,t,i)=>{var n,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b,_,w,S,M,E,T,A;Object.defineProperty(t,"__esModule",{value:!0}),t.StatTimer=t.RenderingCancelledException=t.PixelsPerInch=t.PageViewport=t.PDFDateString=t.DOMStandardFontDataFactory=t.DOMSVGFactory=t.DOMFilterFactory=t.DOMCanvasFactory=t.DOMCMapReaderFactory=t.AnnotationPrefix=void 0,t.deprecated=function(e){console.log("Deprecated API usage: "+e)},t.getColorValues=function(e){let t=document.createElement("span");t.style.visibility="hidden",document.body.append(t);for(let i of e.keys()){t.style.color=i;let n=window.getComputedStyle(t).color;e.set(i,G(n))}t.remove()},t.getCurrentTransform=function(e){let{a:t,b:i,c:n,d:r,e:a,f:s}=e.getTransform();return[t,i,n,r,a,s]},t.getCurrentTransformInverse=function(e){let{a:t,b:i,c:n,d:r,e:a,f:s}=e.getTransform().invertSelf();return[t,i,n,r,a,s]},t.getFilenameFromUrl=function(e,t=!1){return t||([e]=e.split(/[#?]/,1)),e.substring(e.lastIndexOf("/")+1)},t.getPdfFilenameFromUrl=function(e,t="document.pdf"){if("string"!=typeof e)return t;if(V(e))return(0,P.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'),t;let i=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i,n=/^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/.exec(e),r=i.exec(n[1])||i.exec(n[2])||i.exec(n[3]);if(r&&(r=r[0],r.includes("%")))try{r=i.exec(decodeURIComponent(r))[0]}catch(e){}return r||t},t.getRGB=G,t.getXfaPageViewport=function(e,{scale:t=1,rotation:i=0}){let{width:n,height:r}=e.attributes.style,a=[0,0,parseInt(n),parseInt(r)];return new z({viewBox:a,scale:t,rotation:i})},t.isDataScheme=V,t.isPdfFile=function(e){return"string"==typeof e&&/\.pdf$/i.test(e)},t.isValidFetchUrl=j,t.loadScript=function(e,t=!1){return new Promise(((i,n)=>{let r=document.createElement("script");r.src=e,r.onload=function(e){t&&r.remove(),i(e)},r.onerror=function(){n(new Error(`Cannot load script at: ${r.src}`))},(document.head||document.documentElement).append(r)}))},t.setLayerDimensions=function(e,t,i=!1,n=!0){if(t instanceof z){let{pageWidth:n,pageHeight:r}=t.rawDims,{style:a}=e,s=`calc(var(--scale-factor) * ${n}px)`,o=`calc(var(--scale-factor) * ${r}px)`;i&&t.rotation%180!=0?(a.width=o,a.height=s):(a.width=s,a.height=o)}n&&e.setAttribute("data-main-rotation",t.rotation)};var C=i(7),P=i(1);let R="http://www.w3.org/2000/svg";t.AnnotationPrefix="pdfjs_internal_id_";let D,L=class{},I=L;Yi(I,"CSS",96),Yi(I,"PDF",72),Yi(I,"PDF_TO_CSS_UNITS",L.CSS/L.PDF),t.PixelsPerInch=I;class O extends C.BaseFilterFactory{constructor({docId:e,ownerDocument:t=globalThis.document}={}){super(),Je(this,f),Je(this,g),Je(this,y),Je(this,b),Je(this,w),Je(this,M),Je(this,T),Je(this,n,void 0),Je(this,r,void 0),Je(this,a,void 0),Je(this,s,void 0),Je(this,o,void 0),Je(this,l,void 0),Je(this,h,void 0),Je(this,c,void 0),Je(this,u,void 0),Je(this,d,void 0),Je(this,p,0),Mt(this,a,e),Mt(this,s,t)}addFilter(e){if(!e)return"none";let t,i,n,r,s=ce(this,f,m).get(e);if(s)return s;if(1===e.length){let a=e[0],s=new Array(256);for(let e=0;e<256;e++)s[e]=a[e]/255;r=t=i=n=s.join(",")}else{let[a,s,o]=e,l=new Array(256),h=new Array(256),c=new Array(256);for(let e=0;e<256;e++)l[e]=a[e]/255,h[e]=s[e]/255,c[e]=o[e]/255;t=l.join(","),i=h.join(","),n=c.join(","),r=`${t}${i}${n}`}if(s=ce(this,f,m).get(r),s)return ce(this,f,m).set(e,s),s;let o=`g_${ce(this,a)}_transfer_map_${GT(this,p)._++}`,l=`url(#${o})`;ce(this,f,m).set(e,l),ce(this,f,m).set(r,l);let h=dt(this,b,_).call(this,o);return dt(this,M,E).call(this,t,i,n,h),l}addHCMFilter(e,t){var i;let n=`${e}-${t}`;if(ce(this,l)===n)return ce(this,h);if(Mt(this,l,n),Mt(this,h,"none"),null==(i=ce(this,o))||i.remove(),!e||!t)return ce(this,h);let r=dt(this,T,A).call(this,e);e=P.Util.makeHexColor(...r);let s=dt(this,T,A).call(this,t);if(t=P.Util.makeHexColor(...s),ce(this,g,v).style.color="","#000000"===e&&"#ffffff"===t||e===t)return ce(this,h);let u=new Array(256);for(let a=0;a<=255;a++){let e=a/255;u[a]=e<=.03928?e/12.92:Do((e+.055)/1.055,2.4)}let d=u.join(","),p=`g_${ce(this,a)}_hcm_filter`,f=Mt(this,c,dt(this,b,_).call(this,p));dt(this,M,E).call(this,d,d,d,f),dt(this,y,x).call(this,f);let m=(e,t)=>{let i=r[e]/255,n=s[e]/255,a=new Array(t+1);for(let r=0;r<=t;r++)a[r]=i+r/t*(n-i);return a.join(",")};return dt(this,M,E).call(this,m(0,5),m(1,5),m(2,5),f),Mt(this,h,`url(#${p})`),ce(this,h)}addHighlightHCMFilter(e,t,i,n){var r;let s=`${e}-${t}-${i}-${n}`;if(ce(this,u)===s)return ce(this,d);if(Mt(this,u,s),Mt(this,d,"none"),null==(r=ce(this,c))||r.remove(),!e||!t)return ce(this,d);let[o,l]=[e,t].map(dt(this,T,A).bind(this)),h=Math.round(.2126*o[0]+.7152*o[1]+.0722*o[2]),p=Math.round(.2126*l[0]+.7152*l[1]+.0722*l[2]),[f,m]=[i,n].map(dt(this,T,A).bind(this));p{let n=new Array(256),r=(p-h)/i,a=e/255,s=(t-e)/(255*i),o=0;for(let l=0;l<=i;l++){let e=Math.round(h+l*r),t=a+l*s;for(let i=o;i<=e;i++)n[i]=t;o=e+1}for(let l=o;l<256;l++)n[l]=n[o-1];return n.join(",")},S=`g_${ce(this,a)}_hcm_highlight_filter`,C=Mt(this,c,dt(this,b,_).call(this,S));return dt(this,y,x).call(this,C),dt(this,M,E).call(this,w(f[0],m[0],5),w(f[1],m[1],5),w(f[2],m[2],5),C),Mt(this,d,`url(#${S})`),ce(this,d)}destroy(e=!1){e&&(ce(this,h)||ce(this,d))||(ce(this,r)&&(ce(this,r).parentNode.parentNode.remove(),Mt(this,r,null)),ce(this,n)&&(ce(this,n).clear(),Mt(this,n,null)),Mt(this,p,0))}}n=new WeakMap,r=new WeakMap,a=new WeakMap,s=new WeakMap,o=new WeakMap,l=new WeakMap,h=new WeakMap,c=new WeakMap,u=new WeakMap,d=new WeakMap,p=new WeakMap,f=new WeakSet,m=function(){return ce(this,n)||Mt(this,n,new Map)},g=new WeakSet,v=function(){if(!ce(this,r)){let e=ce(this,s).createElement("div"),{style:t}=e;t.visibility="hidden",t.contain="strict",t.width=t.height=0,t.position="absolute",t.top=t.left=0,t.zIndex=-1;let i=ce(this,s).createElementNS(R,"svg");i.setAttribute("width",0),i.setAttribute("height",0),Mt(this,r,ce(this,s).createElementNS(R,"defs")),e.append(i),i.append(ce(this,r)),ce(this,s).body.append(e)}return ce(this,r)},y=new WeakSet,x=function(e){let t=ce(this,s).createElementNS(R,"feColorMatrix");t.setAttribute("type","matrix"),t.setAttribute("values","0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0"),e.append(t)},b=new WeakSet,_=function(e){let t=ce(this,s).createElementNS(R,"filter");return t.setAttribute("color-interpolation-filters","sRGB"),t.setAttribute("id",e),ce(this,g,v).append(t),t},w=new WeakSet,S=function(e,t,i){let n=ce(this,s).createElementNS(R,t);n.setAttribute("type","discrete"),n.setAttribute("tableValues",i),e.append(n)},M=new WeakSet,E=function(e,t,i,n){let r=ce(this,s).createElementNS(R,"feComponentTransfer");n.append(r),dt(this,w,S).call(this,r,"feFuncR",e),dt(this,w,S).call(this,r,"feFuncG",t),dt(this,w,S).call(this,r,"feFuncB",i)},T=new WeakSet,A=function(e){return ce(this,g,v).style.color=e,G(getComputedStyle(ce(this,g,v)).getPropertyValue("color"))},t.DOMFilterFactory=O;class k extends C.BaseCanvasFactory{constructor({ownerDocument:e=globalThis.document}={}){super(),this._document=e}_createCanvas(e,t){let i=this._document.createElement("canvas");return i.width=e,i.height=t,i}}function N(e,t=!1){return ft(this,null,(function*(){if(j(e,document.baseURI)){let i=yield fetch(e);if(!i.ok)throw new Error(i.statusText);return t?new Uint8Array(yield i.arrayBuffer()):(0,P.stringToBytes)(yield i.text())}return new Promise(((i,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),t&&(r.responseType="arraybuffer"),r.onreadystatechange=()=>{if(r.readyState===XMLHttpRequest.DONE){if(200===r.status||0===r.status){let e;if(t&&r.response?e=new Uint8Array(r.response):!t&&r.responseText&&(e=(0,P.stringToBytes)(r.responseText)),e)return void i(e)}n(new Error(r.statusText))}},r.send(null)}))}))}t.DOMCanvasFactory=k;class U extends C.BaseCMapReaderFactory{_fetchData(e,t){return N(e,this.isCompressed).then((e=>({cMapData:e,compressionType:t})))}}t.DOMCMapReaderFactory=U;class F extends C.BaseStandardFontDataFactory{_fetchData(e){return N(e,!0)}}t.DOMStandardFontDataFactory=F;class B extends C.BaseSVGFactory{_createSVG(e){return document.createElementNS(R,e)}}t.DOMSVGFactory=B;class z{constructor({viewBox:e,scale:t,rotation:i,offsetX:n=0,offsetY:r=0,dontFlip:a=!1}){this.viewBox=e,this.scale=t,this.rotation=i,this.offsetX=n,this.offsetY=r;let s,o,l,h,c,u,d,p,f=(e[2]+e[0])/2,m=(e[3]+e[1])/2;switch((i%=360)<0&&(i+=360),i){case 180:s=-1,o=0,l=0,h=1;break;case 90:s=0,o=1,l=1,h=0;break;case 270:s=0,o=-1,l=-1,h=0;break;case 0:s=1,o=0,l=0,h=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}a&&(l=-l,h=-h),0===s?(c=Math.abs(m-e[1])*t+n,u=Math.abs(f-e[0])*t+r,d=(e[3]-e[1])*t,p=(e[2]-e[0])*t):(c=Math.abs(f-e[0])*t+n,u=Math.abs(m-e[1])*t+r,d=(e[2]-e[0])*t,p=(e[3]-e[1])*t),this.transform=[s*t,o*t,l*t,h*t,c-s*t*f-l*t*m,u-o*t*f-h*t*m],this.width=d,this.height=p}get rawDims(){let{viewBox:e}=this;return(0,P.shadow)(this,"rawDims",{pageWidth:e[2]-e[0],pageHeight:e[3]-e[1],pageX:e[0],pageY:e[1]})}clone({scale:e=this.scale,rotation:t=this.rotation,offsetX:i=this.offsetX,offsetY:n=this.offsetY,dontFlip:r=!1}={}){return new z({viewBox:this.viewBox.slice(),scale:e,rotation:t,offsetX:i,offsetY:n,dontFlip:r})}convertToViewportPoint(e,t){return P.Util.applyTransform([e,t],this.transform)}convertToViewportRectangle(e){let t=P.Util.applyTransform([e[0],e[1]],this.transform),i=P.Util.applyTransform([e[2],e[3]],this.transform);return[t[0],t[1],i[0],i[1]]}convertToPdfPoint(e,t){return P.Util.applyInverseTransform([e,t],this.transform)}}t.PageViewport=z;class H extends P.BaseException{constructor(e,t=0){super(e,"RenderingCancelledException"),this.extraDelay=t}}function V(e){let t=e.length,i=0;for(;i>16,(65280&t)>>8,255&t]}return e.startsWith("rgb(")?e.slice(4,-1).split(",").map((e=>parseInt(e))):e.startsWith("rgba(")?e.slice(5,-1).split(",").map((e=>parseInt(e))).slice(0,3):((0,P.warn)(`Not a valid color format: "${e}"`),[0,0,0])}t.RenderingCancelledException=H,t.StatTimer=class{constructor(){Yi(this,"started",Object.create(null)),Yi(this,"times",[])}time(e){e in this.started&&(0,P.warn)(`Timer is already running for ${e}`),this.started[e]=Date.now()}timeEnd(e){e in this.started||(0,P.warn)(`Timer has not been started for ${e}`),this.times.push({name:e,start:this.started[e],end:Date.now()}),delete this.started[e]}toString(){let e=[],t=0;for(let{name:i}of this.times)t=Math.max(i.length,t);for(let{name:i,start:n,end:r}of this.times)e.push(`${i.padEnd(t)} ${r-n}ms\n`);return e.join("")}},t.PDFDateString=class{static toDateObject(e){if(!e||"string"!=typeof e)return null;D||(D=new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?"));let t=D.exec(e);if(!t)return null;let i=parseInt(t[1],10),n=parseInt(t[2],10);n=n>=1&&n<=12?n-1:0;let r=parseInt(t[3],10);r=r>=1&&r<=31?r:1;let a=parseInt(t[4],10);a=a>=0&&a<=23?a:0;let s=parseInt(t[5],10);s=s>=0&&s<=59?s:0;let o=parseInt(t[6],10);o=o>=0&&o<=59?o:0;let l=t[7]||"Z",h=parseInt(t[8],10);h=h>=0&&h<=23?h:0;let c=parseInt(t[9],10)||0;return c=c>=0&&c<=59?c:0,"-"===l?(a+=h,s+=c):"+"===l&&(a-=h,s-=c),new Date(Date.UTC(i,n,r,a,s,o))}}},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseStandardFontDataFactory=t.BaseSVGFactory=t.BaseFilterFactory=t.BaseCanvasFactory=t.BaseCMapReaderFactory=void 0;var n=i(1);class r{constructor(){this.constructor===r&&(0,n.unreachable)("Cannot initialize BaseFilterFactory.")}addFilter(e){return"none"}addHCMFilter(e,t){return"none"}addHighlightHCMFilter(e,t,i,n){return"none"}destroy(e=!1){}}t.BaseFilterFactory=r;class a{constructor(){this.constructor===a&&(0,n.unreachable)("Cannot initialize BaseCanvasFactory.")}create(e,t){if(e<=0||t<=0)throw new Error("Invalid canvas size");let i=this._createCanvas(e,t);return{canvas:i,context:i.getContext("2d")}}reset(e,t,i){if(!e.canvas)throw new Error("Canvas is not specified");if(t<=0||i<=0)throw new Error("Invalid canvas size");e.canvas.width=t,e.canvas.height=i}destroy(e){if(!e.canvas)throw new Error("Canvas is not specified");e.canvas.width=0,e.canvas.height=0,e.canvas=null,e.context=null}_createCanvas(e,t){(0,n.unreachable)("Abstract method `_createCanvas` called.")}}t.BaseCanvasFactory=a;class s{constructor({baseUrl:e=null,isCompressed:t=!0}){this.constructor===s&&(0,n.unreachable)("Cannot initialize BaseCMapReaderFactory."),this.baseUrl=e,this.isCompressed=t}fetch(e){return ft(this,arguments,(function*({name:e}){if(!this.baseUrl)throw new Error('The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.');if(!e)throw new Error("CMap name must be specified.");let t=this.baseUrl+e+(this.isCompressed?".bcmap":""),i=this.isCompressed?n.CMapCompressionType.BINARY:n.CMapCompressionType.NONE;return this._fetchData(t,i).catch((e=>{throw new Error(`Unable to load ${this.isCompressed?"binary ":""}CMap at: ${t}`)}))}))}_fetchData(e,t){(0,n.unreachable)("Abstract method `_fetchData` called.")}}t.BaseCMapReaderFactory=s;class o{constructor({baseUrl:e=null}){this.constructor===o&&(0,n.unreachable)("Cannot initialize BaseStandardFontDataFactory."),this.baseUrl=e}fetch(e){return ft(this,arguments,(function*({filename:e}){if(!this.baseUrl)throw new Error('The standard font "baseUrl" parameter must be specified, ensure that the "standardFontDataUrl" API parameter is provided.');if(!e)throw new Error("Font filename must be specified.");let t=`${this.baseUrl}${e}`;return this._fetchData(t).catch((e=>{throw new Error(`Unable to load font data at: ${t}`)}))}))}_fetchData(e){(0,n.unreachable)("Abstract method `_fetchData` called.")}}t.BaseStandardFontDataFactory=o;class l{constructor(){this.constructor===l&&(0,n.unreachable)("Cannot initialize BaseSVGFactory.")}create(e,t,i=!1){if(e<=0||t<=0)throw new Error("Invalid SVG dimensions");let n=this._createSVG("svg:svg");return n.setAttribute("version","1.1"),i||(n.setAttribute("width",`${e}px`),n.setAttribute("height",`${t}px`)),n.setAttribute("preserveAspectRatio","none"),n.setAttribute("viewBox",`0 0 ${e} ${t}`),n}createElement(e){if("string"!=typeof e)throw new Error("Invalid SVG element type");return this._createSVG(e)}_createSVG(e){(0,n.unreachable)("Abstract method `_createSVG` called.")}}t.BaseSVGFactory=l},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MurmurHash3_64=void 0;var n=i(1);let r=3285377520,a=4294901760,s=65535;t.MurmurHash3_64=class{constructor(e){this.h1=e?4294967295&e:r,this.h2=e?4294967295&e:r}update(e){let t,i;if("string"==typeof e){t=new Uint8Array(2*e.length),i=0;for(let n=0,r=e.length;n>>8,t[i++]=255&r)}}else{if(!(0,n.isArrayBuffer)(e))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");t=e.slice(),i=t.byteLength}let r=i>>2,o=i-4*r,l=new Uint32Array(t.buffer,0,r),h=0,c=0,u=this.h1,d=this.h2,p=3432918353,f=461845907,m=p&s,g=f&s;for(let n=0;n>>17,h=h*f&a|h*g&s,u^=h,u=u<<13|u>>>19,u=5*u+3864292196):(c=l[n],c=c*p&a|c*m&s,c=c<<15|c>>>17,c=c*f&a|c*g&s,d^=c,d=d<<13|d>>>19,d=5*d+3864292196);switch(h=0,o){case 3:h^=t[4*r+2]<<16;case 2:h^=t[4*r+1]<<8;case 1:h^=t[4*r],h=h*p&a|h*m&s,h=h<<15|h>>>17,h=h*f&a|h*g&s,1&r?u^=h:d^=h}this.h1=u,this.h2=d}hexdigest(){let e=this.h1,t=this.h2;return e^=t>>>1,e=3981806797*e&a|36045*e&s,t=4283543511*t&a|(2950163797*(t<<16|e>>>16)&a)>>>16,e^=t>>>1,e=444984403*e&a|60499*e&s,t=3301882366*t&a|(3120437893*(t<<16|e>>>16)&a)>>>16,e^=t>>>1,(e>>>0).toString(16).padStart(8,"0")+(t>>>0).toString(16).padStart(8,"0")}}},(e,t,i)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.FontLoader=t.FontFaceObject=void 0;var r=i(1),a=i(10);n=new WeakMap,t.FontLoader=class{constructor({ownerDocument:e=globalThis.document,styleElement:t=null}){Je(this,n,new Set),this._document=e,this.nativeFontFaces=new Set,this.styleElement=null,this.loadingRequests=[],this.loadTestFontId=0}addNativeFontFace(e){this.nativeFontFaces.add(e),this._document.fonts.add(e)}removeNativeFontFace(e){this.nativeFontFaces.delete(e),this._document.fonts.delete(e)}insertRule(e){this.styleElement||(this.styleElement=this._document.createElement("style"),this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement));let t=this.styleElement.sheet;t.insertRule(e,t.cssRules.length)}clear(){for(let e of this.nativeFontFaces)this._document.fonts.delete(e);this.nativeFontFaces.clear(),ce(this,n).clear(),this.styleElement&&(this.styleElement.remove(),this.styleElement=null)}loadSystemFont(e){return ft(this,null,(function*(){if(e&&!ce(this,n).has(e.loadedName)){if((0,r.assert)(!this.disableFontFace,"loadSystemFont shouldn't be called when `disableFontFace` is set."),this.isFontLoadingAPISupported){let{loadedName:i,src:a,style:s}=e,o=new FontFace(i,a,s);this.addNativeFontFace(o);try{yield o.load(),ce(this,n).add(i)}catch(t){(0,r.warn)(`Cannot load system font: ${e.baseFontName}, installing it could help to improve PDF rendering.`),this.removeNativeFontFace(o)}return}(0,r.unreachable)("Not implemented: loadSystemFont without the Font Loading API.")}}))}bind(e){return ft(this,null,(function*(){if(e.attached||e.missingFile&&!e.systemFontInfo)return;if(e.attached=!0,e.systemFontInfo)return void(yield this.loadSystemFont(e.systemFontInfo));if(this.isFontLoadingAPISupported){let t=e.createNativeFontFace();if(t){this.addNativeFontFace(t);try{yield t.loaded}catch(i){throw(0,r.warn)(`Failed to load font '${t.family}': '${i}'.`),e.disableFontFace=!0,i}}return}let t=e.createFontFaceRule();if(t){if(this.insertRule(t),this.isSyncFontLoadingSupported)return;yield new Promise((t=>{let i=this._queueLoadingCallback(t);this._prepareFontLoadEvent(e,i)}))}}))}get isFontLoadingAPISupported(){var e;let t=!(null==(e=this._document)||!e.fonts);return(0,r.shadow)(this,"isFontLoadingAPISupported",t)}get isSyncFontLoadingSupported(){let e=!1;return(a.isNodeJS||"undefined"!=typeof navigator&&/Mozilla\/5.0.*?rv:\d+.*? Gecko/.test(navigator.userAgent))&&(e=!0),(0,r.shadow)(this,"isSyncFontLoadingSupported",e)}_queueLoadingCallback(e){let{loadingRequests:t}=this,i={done:!1,complete:function(){for((0,r.assert)(!i.done,"completeRequest() cannot be called twice."),i.done=!0;t.length>0&&t[0].done;){let e=t.shift();setTimeout(e.callback,0)}},callback:e};return t.push(i),i}get _loadTestFont(){let e=atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");return(0,r.shadow)(this,"_loadTestFont",e)}_prepareFontLoadEvent(e,t){function i(e,t){return e.charCodeAt(t)<<24|e.charCodeAt(t+1)<<16|e.charCodeAt(t+2)<<8|255&e.charCodeAt(t+3)}function n(e,t,i,n){return e.substring(0,t)+n+e.substring(t+i)}let a,s,o=this._document.createElement("canvas");o.width=1,o.height=1;let l=o.getContext("2d"),h=0,c=`lt${Date.now()}${this.loadTestFontId++}`,u=this._loadTestFont;u=n(u,976,c.length,c);let d=1482184792,p=i(u,16);for(a=0,s=c.length-3;a30)return(0,r.warn)("Load test font never loaded."),void i();l.font="30px "+t,l.fillText(".",0,20),l.getImageData(0,0,1,1).data[3]>0?i():setTimeout(e.bind(null,t,i))}(c,(()=>{m.remove(),t.complete()}))}},t.FontFaceObject=class{constructor(e,{isEvalSupported:t=!0,disableFontFace:i=!1,ignoreErrors:n=!1,inspectFont:r=null}){this.compiledGlyphs=Object.create(null);for(let a in e)this[a]=e[a];this.isEvalSupported=!1!==t,this.disableFontFace=!0===i,this.ignoreErrors=!0===n,this._inspectFont=r}createNativeFontFace(){var e;if(!this.data||this.disableFontFace)return null;let t;if(this.cssFontInfo){let e={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(e.style=`oblique ${this.cssFontInfo.italicAngle}deg`),t=new FontFace(this.cssFontInfo.fontFamily,this.data,e)}else t=new FontFace(this.loadedName,this.data,{});return null==(e=this._inspectFont)||e.call(this,this),t}createFontFaceRule(){var e;if(!this.data||this.disableFontFace)return null;let t,i=(0,r.bytesToString)(this.data),n=`url(data:${this.mimetype};base64,${btoa(i)});`;if(this.cssFontInfo){let e=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(e+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`),t=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${e}src:${n}}`}else t=`@font-face {font-family:"${this.loadedName}";src:${n}}`;return null==(e=this._inspectFont)||e.call(this,this,n),t}getPathGenerator(e,t){if(void 0!==this.compiledGlyphs[t])return this.compiledGlyphs[t];let i;try{i=e.get(this.loadedName+"_path_"+t)}catch(e){if(!this.ignoreErrors)throw e;return(0,r.warn)(`getPathGenerator - ignoring character: "${e}".`),this.compiledGlyphs[t]=function(e,t){}}if(this.isEvalSupported&&r.FeatureTest.isEvalSupported){let e=[];for(let t of i){let i=void 0!==t.args?t.args.join(","):"";e.push("c.",t.cmd,"(",i,");\n")}return this.compiledGlyphs[t]=new Function("c","size",e.join(""))}return this.compiledGlyphs[t]=function(e,t){for(let n of i)"scale"===n.cmd&&(n.args=[t,-t]),e[n.cmd].apply(e,n.args)}}}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isNodeJS=void 0;let i=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);t.isNodeJS=i},(e,t,i)=>{var n,r,a,s;Object.defineProperty(t,"__esModule",{value:!0}),t.CanvasGraphics=void 0;var o=i(1),l=i(6),h=i(12),c=i(13),u=i(10);let d=4096,p=16;class f{constructor(e){this.canvasFactory=e,this.cache=Object.create(null)}getCanvas(e,t,i){let n;return void 0!==this.cache[e]?(n=this.cache[e],this.canvasFactory.reset(n,t,i)):(n=this.canvasFactory.create(t,i),this.cache[e]=n),n}delete(e){delete this.cache[e]}clear(){for(let e in this.cache){let t=this.cache[e];this.canvasFactory.destroy(t),delete this.cache[e]}}}function m(e,t,i,n,r,a,s,o,h,c){let[u,d,p,f,m,g]=(0,l.getCurrentTransform)(e);if(0===d&&0===p){let l=s*u+m,v=Math.round(l),y=o*f+g,x=Math.round(y),b=(s+h)*u+m,_=Math.abs(Math.round(b)-v)||1,w=(o+c)*f+g,S=Math.abs(Math.round(w)-x)||1;return e.setTransform(Math.sign(u),0,0,Math.sign(f),v,x),e.drawImage(t,i,n,r,a,0,0,_,S),e.setTransform(u,d,p,f,m,g),[_,S]}if(0===u&&0===f){let l=o*p+m,v=Math.round(l),y=s*d+g,x=Math.round(y),b=(o+c)*p+m,_=Math.abs(Math.round(b)-v)||1,w=(s+h)*d+g,S=Math.abs(Math.round(w)-x)||1;return e.setTransform(0,Math.sign(d),Math.sign(p),0,v,x),e.drawImage(t,i,n,r,a,0,0,S,_),e.setTransform(u,d,p,f,m,g),[S,_]}return e.drawImage(t,i,n,r,a,s,o,h,c),[Math.hypot(u,d)*h,Math.hypot(p,f)*c]}class g{constructor(e,t){this.alphaIsShape=!1,this.fontSize=0,this.fontSizeScale=1,this.textMatrix=o.IDENTITY_MATRIX,this.textMatrixScale=1,this.fontMatrix=o.FONT_IDENTITY_MATRIX,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRenderingMode=o.TextRenderingMode.FILL,this.textRise=0,this.fillColor="#000000",this.strokeColor="#000000",this.patternFill=!1,this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.activeSMask=null,this.transferMaps="none",this.startNewPathAndClipBox([0,0,e,t])}clone(){let e=Object.create(this);return e.clipBox=this.clipBox.slice(),e}setCurrentPoint(e,t){this.x=e,this.y=t}updatePathMinMax(e,t,i){[t,i]=o.Util.applyTransform([t,i],e),this.minX=Math.min(this.minX,t),this.minY=Math.min(this.minY,i),this.maxX=Math.max(this.maxX,t),this.maxY=Math.max(this.maxY,i)}updateRectMinMax(e,t){let i=o.Util.applyTransform(t,e),n=o.Util.applyTransform(t.slice(2),e);this.minX=Math.min(this.minX,i[0],n[0]),this.minY=Math.min(this.minY,i[1],n[1]),this.maxX=Math.max(this.maxX,i[0],n[0]),this.maxY=Math.max(this.maxY,i[1],n[1])}updateScalingPathMinMax(e,t){o.Util.scaleMinMax(e,t),this.minX=Math.min(this.minX,t[0]),this.maxX=Math.max(this.maxX,t[1]),this.minY=Math.min(this.minY,t[2]),this.maxY=Math.max(this.maxY,t[3])}updateCurvePathMinMax(e,t,i,n,r,a,s,l,h,c){let u=o.Util.bezierBoundingBox(t,i,n,r,a,s,l,h);if(c)return c[0]=Math.min(c[0],u[0],u[2]),c[1]=Math.max(c[1],u[0],u[2]),c[2]=Math.min(c[2],u[1],u[3]),void(c[3]=Math.max(c[3],u[1],u[3]));this.updateRectMinMax(e,u)}getPathBoundingBox(e=h.PathType.FILL,t=null){let i=[this.minX,this.minY,this.maxX,this.maxY];if(e===h.PathType.STROKE){t||(0,o.unreachable)("Stroke bounding box must include transform.");let e=o.Util.singularValueDecompose2dScale(t),n=e[0]*this.lineWidth/2,r=e[1]*this.lineWidth/2;i[0]-=n,i[1]-=r,i[2]+=n,i[3]+=r}return i}updateClipFromPath(){let e=o.Util.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(e||[0,0,0,0])}isEmptyClip(){return this.minX===1/0}startNewPathAndClipBox(e){this.clipBox=e,this.minX=1/0,this.minY=1/0,this.maxX=0,this.maxY=0}getClippedPathBoundingBox(e=h.PathType.FILL,t=null){return o.Util.intersect(this.clipBox,this.getPathBoundingBox(e,t))}}function v(e,t){if("undefined"!=typeof ImageData&&t instanceof ImageData)return void e.putImageData(t,0,0);let i,n,r,a,s,l=t.height,h=t.width,c=l%p,u=(l-c)/p,d=0===c?u:u+1,f=e.createImageData(h,p),m=0,g=t.data,v=f.data;if(t.kind===o.ImageKind.GRAYSCALE_1BPP){let t=g.byteLength,s=new Uint32Array(v.buffer,0,v.byteLength>>2),l=s.length,y=h+7>>3,x=4294967295,b=o.FeatureTest.isLittleEndian?4278190080:255;for(n=0;ny?h:8*e-7,a=-8&r,o=0,l=0;for(;n>=1}for(;i=u&&(a=c,s=h*a),i=0,r=s;r--;)v[i++]=g[m++],v[i++]=g[m++],v[i++]=g[m++],v[i++]=255;e.putImageData(f,0,n*p)}}}function y(e,t){if(t.bitmap)return void e.drawImage(t.bitmap,0,0);let i=t.height,n=t.width,r=i%p,a=(i-r)/p,s=0===r?a:a+1,o=e.createImageData(n,p),l=0,h=t.data,u=o.data;for(let d=0;d>8,e[a-2]=e[a-2]*r+i*s>>8,e[a-1]=e[a-1]*r+n*s>>8}}}function w(e,t,i){let n=e.length;for(let r=3;r>8]>>8:t[r]*n>>16}}function M(e,t){let i=o.Util.singularValueDecompose2dScale(e);i[0]=Math.fround(i[0]),i[1]=Math.fround(i[1]);let n=Math.fround((globalThis.devicePixelRatio||1)*l.PixelsPerInch.PDF_TO_CSS_UNITS);return void 0!==t?t:i[0]<=n||i[1]<=n}let E=["butt","round","square"],T=["miter","round","bevel"],A={},C={},P=class{constructor(e,t,i,r,s,{optionalContentConfig:o,markedContentStack:l=null},h,c){Je(this,n),Je(this,a),this.ctx=e,this.current=new g(this.ctx.canvas.width,this.ctx.canvas.height),this.stateStack=[],this.pendingClip=null,this.pendingEOFill=!1,this.res=null,this.xobjs=null,this.commonObjs=t,this.objs=i,this.canvasFactory=r,this.filterFactory=s,this.groupStack=[],this.processingType3=null,this.baseTransform=null,this.baseTransformStack=[],this.groupLevel=0,this.smaskStack=[],this.smaskCounter=0,this.tempSMask=null,this.suspendedCtx=null,this.contentVisible=!0,this.markedContentStack=l||[],this.optionalContentConfig=o,this.cachedCanvases=new f(this.canvasFactory),this.cachedPatterns=new Map,this.annotationCanvasMap=h,this.viewportScale=1,this.outputScaleX=1,this.outputScaleY=1,this.pageColors=c,this._cachedScaleForStroking=[-1,0],this._cachedGetSinglePixelWidth=null,this._cachedBitmapsMap=new Map}getObject(e,t=null){return"string"==typeof e?e.startsWith("g_")?this.commonObjs.get(e):this.objs.get(e):t}beginDrawing({transform:e,viewport:t,transparency:i=!1,background:n=null}){let r=this.ctx.canvas.width,a=this.ctx.canvas.height,s=this.ctx.fillStyle;if(this.ctx.fillStyle=n||"#ffffff",this.ctx.fillRect(0,0,r,a),this.ctx.fillStyle=s,i){let e=this.cachedCanvases.getCanvas("transparent",r,a);this.compositeCtx=this.ctx,this.transparentCanvas=e.canvas,this.ctx=e.context,this.ctx.save(),this.ctx.transform(...(0,l.getCurrentTransform)(this.compositeCtx))}this.ctx.save(),b(this.ctx),e&&(this.ctx.transform(...e),this.outputScaleX=e[0],this.outputScaleY=e[0]),this.ctx.transform(...t.transform),this.viewportScale=t.scale,this.baseTransform=(0,l.getCurrentTransform)(this.ctx)}executeOperatorList(e,t,i,n){let r=e.argsArray,a=e.fnArray,s=t||0,l=r.length;if(l===s)return s;let h,c=l-s>10&&"function"==typeof i,u=c?Date.now()+15:0,d=0,p=this.commonObjs,f=this.objs;for(;;){if(void 0!==n&&s===n.nextBreakPoint)return n.breakIt(s,i),s;if(h=a[s],h!==o.OPS.dependency)this[h].apply(this,r[s]);else for(let e of r[s]){let t=e.startsWith("g_")?p:f;if(!t.has(e))return t.get(e,i),s}if(s++,s===l)return s;if(c&&++d>10){if(Date.now()>u)return i(),s;d=0}}}endDrawing(){dt(this,n,r).call(this),this.cachedCanvases.clear(),this.cachedPatterns.clear();for(let e of this._cachedBitmapsMap.values()){for(let t of e.values())"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement&&(t.width=t.height=0);e.clear()}this._cachedBitmapsMap.clear(),dt(this,a,s).call(this)}_scaleImage(e,t){let i,n,r=e.width,a=e.height,s=Math.max(Math.hypot(t[0],t[1]),1),o=Math.max(Math.hypot(t[2],t[3]),1),l=r,h=a,c="prescale1";for(;s>2&&l>1||o>2&&h>1;){let t=l,r=h;s>2&&l>1&&(t=l>=16384?Math.floor(l/2)-1||1:Math.ceil(l/2),s/=l/t),o>2&&h>1&&(r=h>=16384?Math.floor(h/2)-1||1:Math.ceil(h)/2,o/=h/r),i=this.cachedCanvases.getCanvas(c,t,r),n=i.context,n.clearRect(0,0,t,r),n.drawImage(e,0,0,l,h,0,0,t,r),e=i.canvas,l=t,h=r,c="prescale1"===c?"prescale2":"prescale1"}return{img:e,paintWidth:l,paintHeight:h}}_createMaskCanvas(e){let t,i,n,r,a=this.ctx,{width:s,height:c}=e,u=this.current.fillColor,d=this.current.patternFill,p=(0,l.getCurrentTransform)(a);if((e.bitmap||e.data)&&e.count>1){let r=e.bitmap||e.data.buffer;i=JSON.stringify(d?p:[p.slice(0,4),u]),t=this._cachedBitmapsMap.get(r),t||(t=new Map,this._cachedBitmapsMap.set(r,t));let a=t.get(i);if(a&&!d)return{canvas:a,offsetX:Math.round(Math.min(p[0],p[2])+p[4]),offsetY:Math.round(Math.min(p[1],p[3])+p[5])};n=a}n||(r=this.cachedCanvases.getCanvas("maskCanvas",s,c),y(r.context,e));let f=o.Util.transform(p,[1/s,0,0,-1/c,0,0]);f=o.Util.transform(f,[1,0,0,1,0,-c]);let g=o.Util.applyTransform([0,0],f),v=o.Util.applyTransform([s,c],f),x=o.Util.normalizeRect([g[0],g[1],v[0],v[1]]),b=Math.round(x[2]-x[0])||1,_=Math.round(x[3]-x[1])||1,w=this.cachedCanvases.getCanvas("fillCanvas",b,_),S=w.context,E=Math.min(g[0],v[0]),T=Math.min(g[1],v[1]);S.translate(-E,-T),S.transform(...f),n||(n=this._scaleImage(r.canvas,(0,l.getCurrentTransformInverse)(S)),n=n.img,t&&d&&t.set(i,n)),S.imageSmoothingEnabled=M((0,l.getCurrentTransform)(S),e.interpolate),m(S,n,0,0,n.width,n.height,0,0,s,c),S.globalCompositeOperation="source-in";let A=o.Util.transform((0,l.getCurrentTransformInverse)(S),[1,0,0,1,-E,-T]);return S.fillStyle=d?u.getPattern(a,this,A,h.PathType.FILL):u,S.fillRect(0,0,s,c),t&&!d&&(this.cachedCanvases.delete("fillCanvas"),t.set(i,w.canvas)),{canvas:w.canvas,offsetX:Math.round(E),offsetY:Math.round(T)}}setLineWidth(e){e!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1),this.current.lineWidth=e,this.ctx.lineWidth=e}setLineCap(e){this.ctx.lineCap=E[e]}setLineJoin(e){this.ctx.lineJoin=T[e]}setMiterLimit(e){this.ctx.miterLimit=e}setDash(e,t){let i=this.ctx;void 0!==i.setLineDash&&(i.setLineDash(e),i.lineDashOffset=t)}setRenderingIntent(e){}setFlatness(e){}setGState(e){for(let[t,i]of e)switch(t){case"LW":this.setLineWidth(i);break;case"LC":this.setLineCap(i);break;case"LJ":this.setLineJoin(i);break;case"ML":this.setMiterLimit(i);break;case"D":this.setDash(i[0],i[1]);break;case"RI":this.setRenderingIntent(i);break;case"FL":this.setFlatness(i);break;case"Font":this.setFont(i[0],i[1]);break;case"CA":this.current.strokeAlpha=i;break;case"ca":this.current.fillAlpha=i,this.ctx.globalAlpha=i;break;case"BM":this.ctx.globalCompositeOperation=i;break;case"SMask":this.current.activeSMask=i?this.tempSMask:null,this.tempSMask=null,this.checkSMaskState();break;case"TR":this.ctx.filter=this.current.transferMaps=this.filterFactory.addFilter(i)}}get inSMaskMode(){return!!this.suspendedCtx}checkSMaskState(){let e=this.inSMaskMode;this.current.activeSMask&&!e?this.beginSMaskMode():!this.current.activeSMask&&e&&this.endSMaskMode()}beginSMaskMode(){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");let e=this.ctx.canvas.width,t=this.ctx.canvas.height,i="smaskGroupAt"+this.groupLevel,n=this.cachedCanvases.getCanvas(i,e,t);this.suspendedCtx=this.ctx,this.ctx=n.context;let r=this.ctx;r.setTransform(...(0,l.getCurrentTransform)(this.suspendedCtx)),x(this.suspendedCtx,r),function(e,t){if(e._removeMirroring)throw new Error("Context is already forwarding operations.");e.__originalSave=e.save,e.__originalRestore=e.restore,e.__originalRotate=e.rotate,e.__originalScale=e.scale,e.__originalTranslate=e.translate,e.__originalTransform=e.transform,e.__originalSetTransform=e.setTransform,e.__originalResetTransform=e.resetTransform,e.__originalClip=e.clip,e.__originalMoveTo=e.moveTo,e.__originalLineTo=e.lineTo,e.__originalBezierCurveTo=e.bezierCurveTo,e.__originalRect=e.rect,e.__originalClosePath=e.closePath,e.__originalBeginPath=e.beginPath,e._removeMirroring=()=>{e.save=e.__originalSave,e.restore=e.__originalRestore,e.rotate=e.__originalRotate,e.scale=e.__originalScale,e.translate=e.__originalTranslate,e.transform=e.__originalTransform,e.setTransform=e.__originalSetTransform,e.resetTransform=e.__originalResetTransform,e.clip=e.__originalClip,e.moveTo=e.__originalMoveTo,e.lineTo=e.__originalLineTo,e.bezierCurveTo=e.__originalBezierCurveTo,e.rect=e.__originalRect,e.closePath=e.__originalClosePath,e.beginPath=e.__originalBeginPath,delete e._removeMirroring},e.save=function(){t.save(),this.__originalSave()},e.restore=function(){t.restore(),this.__originalRestore()},e.translate=function(e,i){t.translate(e,i),this.__originalTranslate(e,i)},e.scale=function(e,i){t.scale(e,i),this.__originalScale(e,i)},e.transform=function(e,i,n,r,a,s){t.transform(e,i,n,r,a,s),this.__originalTransform(e,i,n,r,a,s)},e.setTransform=function(e,i,n,r,a,s){t.setTransform(e,i,n,r,a,s),this.__originalSetTransform(e,i,n,r,a,s)},e.resetTransform=function(){t.resetTransform(),this.__originalResetTransform()},e.rotate=function(e){t.rotate(e),this.__originalRotate(e)},e.clip=function(e){t.clip(e),this.__originalClip(e)},e.moveTo=function(e,i){t.moveTo(e,i),this.__originalMoveTo(e,i)},e.lineTo=function(e,i){t.lineTo(e,i),this.__originalLineTo(e,i)},e.bezierCurveTo=function(e,i,n,r,a,s){t.bezierCurveTo(e,i,n,r,a,s),this.__originalBezierCurveTo(e,i,n,r,a,s)},e.rect=function(e,i,n,r){t.rect(e,i,n,r),this.__originalRect(e,i,n,r)},e.closePath=function(){t.closePath(),this.__originalClosePath()},e.beginPath=function(){t.beginPath(),this.__originalBeginPath()}}(r,this.suspendedCtx),this.setGState([["BM","source-over"],["ca",1],["CA",1]])}endSMaskMode(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring(),x(this.ctx,this.suspendedCtx),this.ctx=this.suspendedCtx,this.suspendedCtx=null}compose(e){if(!this.current.activeSMask)return;e?(e[0]=Math.floor(e[0]),e[1]=Math.floor(e[1]),e[2]=Math.ceil(e[2]),e[3]=Math.ceil(e[3])):e=[0,0,this.ctx.canvas.width,this.ctx.canvas.height];let t=this.current.activeSMask;(function(e,t,i,n){let r=n[0],a=n[1],s=n[2]-r,o=n[3]-a;0===s||0===o||(function(e,t,i,n,r,a,s,o,l,h,c){let u,d=!!a,p=d?a[0]:0,f=d?a[1]:0,m=d?a[2]:0;u="Luminosity"===r?S:w;let g=Math.min(n,Math.ceil(1048576/i));for(let v=0;v100&&(c=100),this.current.fontSizeScale=t/c,this.ctx.font=`${h} ${l} ${c}px ${s}`}setTextRenderingMode(e){this.current.textRenderingMode=e}setTextRise(e){this.current.textRise=e}moveText(e,t){this.current.x=this.current.lineX+=e,this.current.y=this.current.lineY+=t}setLeadingMoveText(e,t){this.setLeading(-t),this.moveText(e,t)}setTextMatrix(e,t,i,n,r,a){this.current.textMatrix=[e,t,i,n,r,a],this.current.textMatrixScale=Math.hypot(e,t),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}nextLine(){this.moveText(0,this.current.leading)}paintChar(e,t,i,n){let r,a=this.ctx,s=this.current,h=s.font,c=s.textRenderingMode,u=s.fontSize/s.fontSizeScale,d=c&o.TextRenderingMode.FILL_STROKE_MASK,p=!!(c&o.TextRenderingMode.ADD_TO_PATH_FLAG),f=s.patternFill&&!h.missingFile;(h.disableFontFace||p||f)&&(r=h.getPathGenerator(this.commonObjs,e)),h.disableFontFace||f?(a.save(),a.translate(t,i),a.beginPath(),r(a,u),n&&a.setTransform(...n),(d===o.TextRenderingMode.FILL||d===o.TextRenderingMode.FILL_STROKE)&&a.fill(),(d===o.TextRenderingMode.STROKE||d===o.TextRenderingMode.FILL_STROKE)&&a.stroke(),a.restore()):((d===o.TextRenderingMode.FILL||d===o.TextRenderingMode.FILL_STROKE)&&a.fillText(e,t,i),(d===o.TextRenderingMode.STROKE||d===o.TextRenderingMode.FILL_STROKE)&&a.strokeText(e,t,i)),p&&(this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:(0,l.getCurrentTransform)(a),x:t,y:i,fontSize:u,addToPath:r})}get isFontSubpixelAAEnabled(){let{context:e}=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10);e.scale(1.5,1),e.fillText("I",0,10);let t=e.getImageData(0,0,10,10).data,i=!1;for(let n=3;n0&&t[n]<255){i=!0;break}return(0,o.shadow)(this,"isFontSubpixelAAEnabled",i)}showText(e){let t=this.current,i=t.font;if(i.isType3Font)return this.showType3Text(e);let n=t.fontSize;if(0===n)return;let r,a=this.ctx,s=t.fontSizeScale,c=t.charSpacing,u=t.wordSpacing,d=t.fontDirection,p=t.textHScale*d,f=e.length,m=i.vertical,g=m?1:-1,v=i.defaultVMetrics,y=n*t.fontMatrix[0],x=t.textRenderingMode===o.TextRenderingMode.FILL&&!i.disableFontFace&&!t.patternFill;if(a.save(),a.transform(...t.textMatrix),a.translate(t.x,t.y+t.textRise),d>0?a.scale(p,-1):a.scale(p,1),t.patternFill){a.save();let e=t.fillColor.getPattern(a,this,(0,l.getCurrentTransformInverse)(a),h.PathType.FILL);r=(0,l.getCurrentTransform)(a),a.restore(),a.fillStyle=e}let b=t.lineWidth,_=t.textMatrixScale;if(0===_||0===b){let e=t.textRenderingMode&o.TextRenderingMode.FILL_STROKE_MASK;(e===o.TextRenderingMode.STROKE||e===o.TextRenderingMode.FILL_STROKE)&&(b=this.getSinglePixelWidth())}else b/=_;if(1!==s&&(a.scale(s,s),b/=s),a.lineWidth=b,i.isInvalidPDFjsFont){let i=[],n=0;for(let t of e)i.push(t.unicode),n+=t.width;return a.fillText(i.join(""),0,0),t.x+=n*y*p,a.restore(),void this.compose()}let w,S=0;for(w=0;w0){let e=1e3*a.measureText(b).width/n*s;if(Mnew P(e,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack})};t=new h.TilingPattern(e,i,this.ctx,r,n)}else t=this._getPattern(e[1],e[2]);return t}setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments)}setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments),this.current.patternFill=!0}setStrokeRGBColor(e,t,i){let n=o.Util.makeHexColor(e,t,i);this.ctx.strokeStyle=n,this.current.strokeColor=n}setFillRGBColor(e,t,i){let n=o.Util.makeHexColor(e,t,i);this.ctx.fillStyle=n,this.current.fillColor=n,this.current.patternFill=!1}_getPattern(e,t=null){let i;return this.cachedPatterns.has(e)?i=this.cachedPatterns.get(e):(i=(0,h.getShadingPattern)(this.getObject(e)),this.cachedPatterns.set(e,i)),t&&(i.matrix=t),i}shadingFill(e){if(!this.contentVisible)return;let t=this.ctx;this.save();let i=this._getPattern(e);t.fillStyle=i.getPattern(t,this,(0,l.getCurrentTransformInverse)(t),h.PathType.SHADING);let n=(0,l.getCurrentTransformInverse)(t);if(n){let{width:e,height:i}=t.canvas,[r,a,s,l]=o.Util.getAxialAlignedBoundingBox([0,0,e,i],n);this.ctx.fillRect(r,a,s-r,l-a)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.compose(this.current.getClippedPathBoundingBox()),this.restore()}beginInlineImage(){(0,o.unreachable)("Should not call beginInlineImage")}beginImageData(){(0,o.unreachable)("Should not call beginImageData")}paintFormXObjectBegin(e,t){if(this.contentVisible&&(this.save(),this.baseTransformStack.push(this.baseTransform),Array.isArray(e)&&6===e.length&&this.transform(...e),this.baseTransform=(0,l.getCurrentTransform)(this.ctx),t)){let e=t[2]-t[0],i=t[3]-t[1];this.ctx.rect(t[0],t[1],e,i),this.current.updateRectMinMax((0,l.getCurrentTransform)(this.ctx),t),this.clip(),this.endPath()}}paintFormXObjectEnd(){this.contentVisible&&(this.restore(),this.baseTransform=this.baseTransformStack.pop())}beginGroup(e){if(!this.contentVisible)return;this.save(),this.inSMaskMode&&(this.endSMaskMode(),this.current.activeSMask=null);let t=this.ctx;e.isolated||(0,o.info)("TODO: Support non-isolated groups."),e.knockout&&(0,o.warn)("Knockout groups not supported.");let i=(0,l.getCurrentTransform)(t);if(e.matrix&&t.transform(...e.matrix),!e.bbox)throw new Error("Bounding box is required.");let n=o.Util.getAxialAlignedBoundingBox(e.bbox,(0,l.getCurrentTransform)(t)),r=[0,0,t.canvas.width,t.canvas.height];n=o.Util.intersect(n,r)||[0,0,0,0];let a=Math.floor(n[0]),s=Math.floor(n[1]),h=Math.max(Math.ceil(n[2])-a,1),c=Math.max(Math.ceil(n[3])-s,1),u=1,p=1;h>d&&(u=h/d,h=d),c>d&&(p=c/d,c=d),this.current.startNewPathAndClipBox([0,0,h,c]);let f="groupAt"+this.groupLevel;e.smask&&(f+="_smask_"+this.smaskCounter++%2);let m=this.cachedCanvases.getCanvas(f,h,c),g=m.context;g.scale(1/u,1/p),g.translate(-a,-s),g.transform(...i),e.smask?this.smaskStack.push({canvas:m.canvas,context:g,offsetX:a,offsetY:s,scaleX:u,scaleY:p,subtype:e.smask.subtype,backdrop:e.smask.backdrop,transferMap:e.smask.transferMap||null,startTransformInverse:null}):(t.setTransform(1,0,0,1,0,0),t.translate(a,s),t.scale(u,p),t.save()),x(t,g),this.ctx=g,this.setGState([["BM","source-over"],["ca",1],["CA",1]]),this.groupStack.push(t),this.groupLevel++}endGroup(e){if(!this.contentVisible)return;this.groupLevel--;let t=this.ctx,i=this.groupStack.pop();if(this.ctx=i,this.ctx.imageSmoothingEnabled=!1,e.smask)this.tempSMask=this.smaskStack.pop(),this.restore();else{this.ctx.restore();let e=(0,l.getCurrentTransform)(this.ctx);this.restore(),this.ctx.save(),this.ctx.setTransform(...e);let i=o.Util.getAxialAlignedBoundingBox([0,0,t.canvas.width,t.canvas.height],e);this.ctx.drawImage(t.canvas,0,0),this.ctx.restore(),this.compose(i)}}beginAnnotation(e,t,i,a,s){if(dt(this,n,r).call(this),b(this.ctx),this.ctx.save(),this.save(),this.baseTransform&&this.ctx.setTransform(...this.baseTransform),Array.isArray(t)&&4===t.length){let n=t[2]-t[0],r=t[3]-t[1];if(s&&this.annotationCanvasMap){(i=i.slice())[4]-=t[0],i[5]-=t[1],(t=t.slice())[0]=t[1]=0,t[2]=n,t[3]=r;let[a,s]=o.Util.singularValueDecompose2dScale((0,l.getCurrentTransform)(this.ctx)),{viewportScale:h}=this,c=Math.ceil(n*this.outputScaleX*h),u=Math.ceil(r*this.outputScaleY*h);this.annotationCanvas=this.canvasFactory.create(c,u);let{canvas:d,context:p}=this.annotationCanvas;this.annotationCanvasMap.set(e,d),this.annotationCanvas.savedCtx=this.ctx,this.ctx=p,this.ctx.save(),this.ctx.setTransform(a,0,0,-s,0,r*s),b(this.ctx)}else b(this.ctx),this.ctx.rect(t[0],t[1],n,r),this.ctx.clip(),this.endPath()}this.current=new g(this.ctx.canvas.width,this.ctx.canvas.height),this.transform(...i),this.transform(...a)}endAnnotation(){this.annotationCanvas&&(this.ctx.restore(),dt(this,a,s).call(this),this.ctx=this.annotationCanvas.savedCtx,delete this.annotationCanvas.savedCtx,delete this.annotationCanvas)}paintImageMaskXObject(e){if(!this.contentVisible)return;let t=e.count;(e=this.getObject(e.data,e)).count=t;let i=this.ctx,n=this.processingType3;if(n&&(void 0===n.compiled&&(n.compiled=function(e){let{width:t,height:i}=e;if(t>1e3||i>1e3)return null;let n,r,a,s=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),o=t+1,l=new Uint8Array(o*(i+1)),h=t+7&-8,c=new Uint8Array(h*i),u=0;for(let m of e.data){let e=128;for(;e>0;)c[u++]=m&e?0:255,e>>=1}let d=0;for(u=0,0!==c[u]&&(l[0]=1,++d),r=1;r>2)+(c[u+1]?4:0)+(c[u-h+1]?8:0),s[e]&&(l[a+r]=s[e],++d),u++;if(c[u-h]!==c[u]&&(l[a+r]=c[u]?2:4,++d),d>1e3)return null}for(u=h*(i-1),a=n*o,0!==c[u]&&(l[a]=8,++d),r=1;r1e3)return null;let p=new Int32Array([0,o,-1,0,-o,0,0,0,1]),f=new Path2D;for(n=0;d&&n<=i;n++){let e=n*o,i=e+t;for(;e>4,l[e]&=a>>2|a<<2),f.lineTo(e%o,e/o|0),l[e]||--d}while(r!==e);--n}return c=null,l=null,function(e){e.save(),e.scale(1/t,-1/i),e.translate(0,-i),e.fill(f),e.beginPath(),e.restore()}}(e)),n.compiled))return void n.compiled(i);let r=this._createMaskCanvas(e),a=r.canvas;i.save(),i.setTransform(1,0,0,1,0,0),i.drawImage(a,r.offsetX,r.offsetY),i.restore(),this.compose()}paintImageMaskXObjectRepeat(e,t,i=0,n=0,r,a){if(!this.contentVisible)return;e=this.getObject(e.data,e);let s=this.ctx;s.save();let h=(0,l.getCurrentTransform)(s);s.transform(t,i,n,r,0,0);let c=this._createMaskCanvas(e);s.setTransform(1,0,0,1,c.offsetX-h[4],c.offsetY-h[5]);for(let l=0,u=a.length;ln?h/n:1,t=l>n?l/n:1}}this._cachedScaleForStroking[0]=e,this._cachedScaleForStroking[1]=t}return this._cachedScaleForStroking}rescaleAndStroke(e){let{ctx:t}=this,{lineWidth:i}=this.current,[n,r]=this.getScaleForStroking();if(t.lineWidth=i||1,1===n&&1===r)return void t.stroke();let a=t.getLineDash();if(e&&t.save(),t.scale(n,r),a.length>0){let e=Math.max(n,r);t.setLineDash(a.map((t=>t/e))),t.lineDashOffset/=e}t.stroke(),e&&t.restore()}isContentVisible(){for(let e=this.markedContentStack.length-1;e>=0;e--)if(!this.markedContentStack[e].visible)return!1;return!0}},R=P;n=new WeakSet,r=function(){for(;this.stateStack.length||this.inSMaskMode;)this.restore();this.ctx.restore(),this.transparentCanvas&&(this.ctx=this.compositeCtx,this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.drawImage(this.transparentCanvas,0,0),this.ctx.restore(),this.transparentCanvas=null)},a=new WeakSet,s=function(){if(this.pageColors){let e=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if("none"!==e){let t=this.ctx.filter;this.ctx.filter=e,this.ctx.drawImage(this.ctx.canvas,0,0),this.ctx.filter=t}}},t.CanvasGraphics=R;for(let D in o.OPS)void 0!==R.prototype[D]&&(R.prototype[o.OPS[D]]=R.prototype[D])},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TilingPattern=t.PathType=void 0,t.getShadingPattern=function(e){switch(e[0]){case"RadialAxial":return new l(e);case"Mesh":return new u(e);case"Dummy":return new d}throw new Error(`Unknown IR type: ${e[0]}`)};var n=i(1),r=i(6);let a={FILL:"Fill",STROKE:"Stroke",SHADING:"Shading"};function s(e,t){if(!t)return;let i=t[2]-t[0],n=t[3]-t[1],r=new Path2D;r.rect(t[0],t[1],i,n),e.clip(r)}t.PathType=a;class o{constructor(){this.constructor===o&&(0,n.unreachable)("Cannot initialize BaseShadingPattern.")}getPattern(){(0,n.unreachable)("Abstract method `getPattern` called.")}}class l extends o{constructor(e){super(),this._type=e[1],this._bbox=e[2],this._colorStops=e[3],this._p0=e[4],this._p1=e[5],this._r0=e[6],this._r1=e[7],this.matrix=null}_createGradient(e){let t;"axial"===this._type?t=e.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]):"radial"===this._type&&(t=e.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1));for(let i of this._colorStops)t.addColorStop(i[0],i[1]);return t}getPattern(e,t,i,o){let l;if(o===a.STROKE||o===a.FILL){let a=t.current.getClippedPathBoundingBox(o,(0,r.getCurrentTransform)(e))||[0,0,0,0],h=Math.ceil(a[2]-a[0])||1,c=Math.ceil(a[3]-a[1])||1,u=t.cachedCanvases.getCanvas("pattern",h,c,!0),d=u.context;d.clearRect(0,0,d.canvas.width,d.canvas.height),d.beginPath(),d.rect(0,0,d.canvas.width,d.canvas.height),d.translate(-a[0],-a[1]),i=n.Util.transform(i,[1,0,0,1,a[0],a[1]]),d.transform(...t.baseTransform),this.matrix&&d.transform(...this.matrix),s(d,this._bbox),d.fillStyle=this._createGradient(d),d.fill(),l=e.createPattern(u.canvas,"no-repeat");let p=new DOMMatrix(i);l.setTransform(p)}else s(e,this._bbox),l=this._createGradient(e);return l}}function h(e,t,i,n,r,a,s,o){let l,h=t.coords,c=t.colors,u=e.data,d=4*e.width;h[i+1]>h[n+1]&&(l=i,i=n,n=l,l=a,a=s,s=l),h[n+1]>h[r+1]&&(l=n,n=r,r=l,l=s,s=o,o=l),h[i+1]>h[n+1]&&(l=i,i=n,n=l,l=a,a=s,s=l);let p=(h[i]+t.offsetX)*t.scaleX,f=(h[i+1]+t.offsetY)*t.scaleY,m=(h[n]+t.offsetX)*t.scaleX,g=(h[n+1]+t.offsetY)*t.scaleY,v=(h[r]+t.offsetX)*t.scaleX,y=(h[r+1]+t.offsetY)*t.scaleY;if(f>=y)return;let x,b,_,w,S,M,E,T,A=c[a],C=c[a+1],P=c[a+2],R=c[s],D=c[s+1],L=c[s+2],I=c[o],O=c[o+1],k=c[o+2],N=Math.round(f),U=Math.round(y);for(let F=N;F<=U;F++){if(Fy?1:g===y?0:(g-F)/(g-y),x=m-(m-v)*e,b=R-(R-I)*e,_=D-(D-O)*e,w=L-(L-k)*e}let e;e=Fy?1:(f-F)/(f-y),S=p-(p-v)*e,M=A-(A-I)*e,E=C-(C-O)*e,T=P-(P-k)*e;let t=Math.round(Math.min(x,S)),i=Math.round(Math.max(x,S)),n=d*F+4*t;for(let r=t;r<=i;r++)e=(x-r)/(x-S),e<0?e=0:e>1&&(e=1),u[n++]=b-(b-M)*e|0,u[n++]=_-(_-E)*e|0,u[n++]=w-(w-T)*e|0,u[n++]=255}}function c(e,t,i){let n,r,a=t.coords,s=t.colors;switch(t.type){case"lattice":let o=t.verticesPerRow,l=Math.floor(a.length/o)-1,c=o-1;for(n=0;n=n?r=n:i=r/e,{scale:i,size:r}}clipBbox(e,t,i,n,a){let s=n-t,o=a-i;e.ctx.rect(t,i,s,o),e.current.updateRectMinMax((0,r.getCurrentTransform)(e.ctx),[t,i,n,a]),e.clip(),e.endPath()}setFillAndStrokeStyleToContext(e,t,i){let r=e.ctx,a=e.current;switch(t){case 1:let e=this.ctx;r.fillStyle=e.fillStyle,r.strokeStyle=e.strokeStyle,a.fillColor=e.fillStyle,a.strokeColor=e.strokeStyle;break;case 2:let s=n.Util.makeHexColor(i[0],i[1],i[2]);r.fillStyle=s,r.strokeStyle=s,a.fillColor=s,a.strokeColor=s;break;default:throw new n.FormatError(`Unsupported paint type: ${t}`)}}getPattern(e,t,i,r){let s=i;r!==a.SHADING&&(s=n.Util.transform(s,t.baseTransform),this.matrix&&(s=n.Util.transform(s,this.matrix)));let o=this.createPatternCanvas(t),l=new DOMMatrix(s);l=l.translate(o.offsetX,o.offsetY),l=l.scale(1/o.scaleX,1/o.scaleY);let h=e.createPattern(o.canvas,"repeat");return h.setTransform(l),h}},f=p;Yi(f,"MAX_PATTERN_SIZE",3e3),t.TilingPattern=f},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.convertBlackAndWhiteToRGBA=r,t.convertToRGBA=function(e){switch(e.kind){case n.ImageKind.GRAYSCALE_1BPP:return r(e);case n.ImageKind.RGB_24BPP:return function({src:e,srcPos:t=0,dest:i,destPos:r=0,width:a,height:s}){let o=0,l=e.length>>2,h=new Uint32Array(e.buffer,t,l);if(n.FeatureTest.isLittleEndian){for(;o>>24|t<<8|4278190080,i[r+2]=t>>>16|n<<16|4278190080,i[r+3]=n>>>8|4278190080}for(let t=4*o,n=e.length;t>>8|255,i[r+2]=t<<16|n>>>16|255,i[r+3]=n<<8|255}for(let t=4*o,n=e.length;t>3,d=7&r,p=e.length;i=new Uint32Array(i.buffer);let f=0;for(let n=0;n{Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalWorkerOptions=void 0;let i=Object.create(null);t.GlobalWorkerOptions=i,i.workerPort=null,i.workerSrc=""},(e,t,i)=>{var n,r,a,s,o,l;Object.defineProperty(t,"__esModule",{value:!0}),t.MessageHandler=void 0;var h=i(1);function c(e){switch(e instanceof Error||"object"==typeof e&&null!==e||(0,h.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),e.name){case"AbortException":return new h.AbortException(e.message);case"MissingPDFException":return new h.MissingPDFException(e.message);case"PasswordException":return new h.PasswordException(e.message,e.code);case"UnexpectedResponseException":return new h.UnexpectedResponseException(e.message,e.status);case"UnknownErrorException":return new h.UnknownErrorException(e.message,e.details);default:return new h.UnknownErrorException(e.message,e.toString())}}n=new WeakSet,r=function(e){let t=e.streamId,i=this.sourceName,n=e.sourceName,r=this.comObj,a=this,s=this.actionHandler[e.action],o={enqueue(e,a=1,s){if(this.isCancelled)return;let o=this.desiredSize;this.desiredSize-=a,o>0&&this.desiredSize<=0&&(this.sinkCapability=new h.PromiseCapability,this.ready=this.sinkCapability.promise),r.postMessage({sourceName:i,targetName:n,stream:4,streamId:t,chunk:e},s)},close(){this.isCancelled||(this.isCancelled=!0,r.postMessage({sourceName:i,targetName:n,stream:3,streamId:t}),delete a.streamSinks[t])},error(e){(0,h.assert)(e instanceof Error,"error must have a valid reason"),!this.isCancelled&&(this.isCancelled=!0,r.postMessage({sourceName:i,targetName:n,stream:5,streamId:t,reason:c(e)}))},sinkCapability:new h.PromiseCapability,onPull:null,onCancel:null,isCancelled:!1,desiredSize:e.desiredSize,ready:null};o.sinkCapability.resolve(),o.ready=o.sinkCapability.promise,this.streamSinks[t]=o,new Promise((function(t){t(s(e.data,o))})).then((function(){r.postMessage({sourceName:i,targetName:n,stream:8,streamId:t,success:!0})}),(function(e){r.postMessage({sourceName:i,targetName:n,stream:8,streamId:t,reason:c(e)})}))},a=new WeakSet,s=function(e){let t=e.streamId,i=this.sourceName,n=e.sourceName,r=this.comObj,a=this.streamControllers[t],s=this.streamSinks[t];switch(e.stream){case 8:e.success?a.startCall.resolve():a.startCall.reject(c(e.reason));break;case 7:e.success?a.pullCall.resolve():a.pullCall.reject(c(e.reason));break;case 6:if(!s){r.postMessage({sourceName:i,targetName:n,stream:7,streamId:t,success:!0});break}s.desiredSize<=0&&e.desiredSize>0&&s.sinkCapability.resolve(),s.desiredSize=e.desiredSize,new Promise((function(e){var t;e(null==(t=s.onPull)?void 0:t.call(s))})).then((function(){r.postMessage({sourceName:i,targetName:n,stream:7,streamId:t,success:!0})}),(function(e){r.postMessage({sourceName:i,targetName:n,stream:7,streamId:t,reason:c(e)})}));break;case 4:if((0,h.assert)(a,"enqueue should have stream controller"),a.isClosed)break;a.controller.enqueue(e.chunk);break;case 3:if((0,h.assert)(a,"close should have stream controller"),a.isClosed)break;a.isClosed=!0,a.controller.close(),dt(this,o,l).call(this,a,t);break;case 5:(0,h.assert)(a,"error should have stream controller"),a.controller.error(c(e.reason)),dt(this,o,l).call(this,a,t);break;case 2:e.success?a.cancelCall.resolve():a.cancelCall.reject(c(e.reason)),dt(this,o,l).call(this,a,t);break;case 1:if(!s)break;new Promise((function(t){var i;t(null==(i=s.onCancel)?void 0:i.call(s,c(e.reason)))})).then((function(){r.postMessage({sourceName:i,targetName:n,stream:2,streamId:t,success:!0})}),(function(e){r.postMessage({sourceName:i,targetName:n,stream:2,streamId:t,reason:c(e)})})),s.sinkCapability.reject(c(e.reason)),s.isCancelled=!0,delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}},o=new WeakSet,l=function(e,t){return ft(this,null,(function*(){var i,n,r;yield Promise.allSettled([null==(i=e.startCall)?void 0:i.promise,null==(n=e.pullCall)?void 0:n.promise,null==(r=e.cancelCall)?void 0:r.promise]),delete this.streamControllers[t]}))},t.MessageHandler=class{constructor(e,t,i){Je(this,n),Je(this,a),Je(this,o),this.sourceName=e,this.targetName=t,this.comObj=i,this.callbackId=1,this.streamId=1,this.streamSinks=Object.create(null),this.streamControllers=Object.create(null),this.callbackCapabilities=Object.create(null),this.actionHandler=Object.create(null),this._onComObjOnMessage=e=>{let t=e.data;if(t.targetName!==this.sourceName)return;if(t.stream)return void dt(this,a,s).call(this,t);if(t.callback){let e=t.callbackId,i=this.callbackCapabilities[e];if(!i)throw new Error(`Cannot resolve callback ${e}`);if(delete this.callbackCapabilities[e],1===t.callback)i.resolve(t.data);else{if(2!==t.callback)throw new Error("Unexpected callback case");i.reject(c(t.reason))}return}let o=this.actionHandler[t.action];if(!o)throw new Error(`Unknown action from worker: ${t.action}`);if(t.callbackId){let e=this.sourceName,n=t.sourceName;new Promise((function(e){e(o(t.data))})).then((function(r){i.postMessage({sourceName:e,targetName:n,callback:1,callbackId:t.callbackId,data:r})}),(function(r){i.postMessage({sourceName:e,targetName:n,callback:2,callbackId:t.callbackId,reason:c(r)})}))}else t.streamId?dt(this,n,r).call(this,t):o(t.data)},i.addEventListener("message",this._onComObjOnMessage)}on(e,t){let i=this.actionHandler;if(i[e])throw new Error(`There is already an actionName called "${e}"`);i[e]=t}send(e,t,i){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,data:t},i)}sendWithPromise(e,t,i){let n=this.callbackId++,r=new h.PromiseCapability;this.callbackCapabilities[n]=r;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,callbackId:n,data:t},i)}catch(e){r.reject(e)}return r.promise}sendWithStream(e,t,i,n){let r=this.streamId++,a=this.sourceName,s=this.targetName,o=this.comObj;return new ReadableStream({start:i=>{let l=new h.PromiseCapability;return this.streamControllers[r]={controller:i,startCall:l,pullCall:null,cancelCall:null,isClosed:!1},o.postMessage({sourceName:a,targetName:s,action:e,streamId:r,data:t,desiredSize:i.desiredSize},n),l.promise},pull:e=>{let t=new h.PromiseCapability;return this.streamControllers[r].pullCall=t,o.postMessage({sourceName:a,targetName:s,stream:6,streamId:r,desiredSize:e.desiredSize}),t.promise},cancel:e=>{(0,h.assert)(e instanceof Error,"cancel must have a valid reason");let t=new h.PromiseCapability;return this.streamControllers[r].cancelCall=t,this.streamControllers[r].isClosed=!0,o.postMessage({sourceName:a,targetName:s,stream:1,streamId:r,reason:c(e)}),t.promise}},i)}destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}},(e,t,i)=>{var n,r;Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=void 0;var a=i(1);n=new WeakMap,r=new WeakMap,t.Metadata=class{constructor({parsedData:e,rawData:t}){Je(this,n,void 0),Je(this,r,void 0),Mt(this,n,e),Mt(this,r,t)}getRaw(){return ce(this,r)}get(e){var t;return null!=(t=ce(this,n).get(e))?t:null}getAll(){return(0,a.objectFromMap)(ce(this,n))}has(e){return ce(this,n).has(e)}}},(e,t,i)=>{var n,r,a,s,o,l,h;Object.defineProperty(t,"__esModule",{value:!0}),t.OptionalContentConfig=void 0;var c=i(1),u=i(8);let d=Symbol("INTERNAL");class p{constructor(e,t){Je(this,n,!0),this.name=e,this.intent=t}get visible(){return ce(this,n)}_setVisible(e,t){e!==d&&(0,c.unreachable)("Internal method `_setVisible` called."),Mt(this,n,t)}}n=new WeakMap,r=new WeakMap,a=new WeakMap,s=new WeakMap,o=new WeakMap,l=new WeakSet,h=function(e){let t=e.length;if(t<2)return!0;let i=e[0];for(let n=1;n0?(0,c.objectFromMap)(ce(this,a)):null}getGroup(e){return ce(this,a).get(e)||null}getHash(){if(null!==ce(this,r))return ce(this,r);let e=new u.MurmurHash3_64;for(let[t,i]of ce(this,a))e.update(`${t}:${i.visible}`);return Mt(this,r,e.hexdigest())}}},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PDFDataTransportStream=void 0;var n=i(1),r=i(6);t.PDFDataTransportStream=class{constructor({length:e,initialData:t,progressiveDone:i=!1,contentDispositionFilename:r=null,disableRange:a=!1,disableStream:s=!1},o){if((0,n.assert)(o,'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.'),this._queuedChunks=[],this._progressiveDone=i,this._contentDispositionFilename=r,(null==t?void 0:t.length)>0){let e=t instanceof Uint8Array&&t.byteLength===t.buffer.byteLength?t.buffer:new Uint8Array(t).buffer;this._queuedChunks.push(e)}this._pdfDataRangeTransport=o,this._isStreamingSupported=!s,this._isRangeSupported=!a,this._contentLength=e,this._fullRequestReader=null,this._rangeReaders=[],this._pdfDataRangeTransport.addRangeListener(((e,t)=>{this._onReceiveData({begin:e,chunk:t})})),this._pdfDataRangeTransport.addProgressListener(((e,t)=>{this._onProgress({loaded:e,total:t})})),this._pdfDataRangeTransport.addProgressiveReadListener((e=>{this._onReceiveData({chunk:e})})),this._pdfDataRangeTransport.addProgressiveDoneListener((()=>{this._onProgressiveDone()})),this._pdfDataRangeTransport.transportReady()}_onReceiveData({begin:e,chunk:t}){let i=t instanceof Uint8Array&&t.byteLength===t.buffer.byteLength?t.buffer:new Uint8Array(t).buffer;if(void 0===e)this._fullRequestReader?this._fullRequestReader._enqueue(i):this._queuedChunks.push(i);else{let t=this._rangeReaders.some((function(t){return t._begin===e&&(t._enqueue(i),!0)}));(0,n.assert)(t,"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.")}}get _progressiveDataLength(){var e,t;return null!=(t=null==(e=this._fullRequestReader)?void 0:e._loaded)?t:0}_onProgress(e){var t,i,n,r;void 0===e.total?null==(i=null==(t=this._rangeReaders[0])?void 0:t.onProgress)||i.call(t,{loaded:e.loaded}):null==(r=null==(n=this._fullRequestReader)?void 0:n.onProgress)||r.call(n,{loaded:e.loaded,total:e.total})}_onProgressiveDone(){var e;null==(e=this._fullRequestReader)||e.progressiveDone(),this._progressiveDone=!0}_removeRangeReader(e){let t=this._rangeReaders.indexOf(e);t>=0&&this._rangeReaders.splice(t,1)}getFullReader(){(0,n.assert)(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");let e=this._queuedChunks;return this._queuedChunks=null,new a(this,e,this._progressiveDone,this._contentDispositionFilename)}getRangeReader(e,t){if(t<=this._progressiveDataLength)return null;let i=new s(this,e,t);return this._pdfDataRangeTransport.requestDataRange(e,t),this._rangeReaders.push(i),i}cancelAllRequests(e){var t;null==(t=this._fullRequestReader)||t.cancel(e);for(let i of this._rangeReaders.slice(0))i.cancel(e);this._pdfDataRangeTransport.abort()}};class a{constructor(e,t,i=!1,n=null){this._stream=e,this._done=i||!1,this._filename=(0,r.isPdfFile)(n)?n:null,this._queuedChunks=t||[],this._loaded=0;for(let r of this._queuedChunks)this._loaded+=r.byteLength;this._requests=[],this._headersReady=Promise.resolve(),e._fullRequestReader=this,this.onProgress=null}_enqueue(e){this._done||(this._requests.length>0?this._requests.shift().resolve({value:e,done:!1}):this._queuedChunks.push(e),this._loaded+=e.byteLength)}get headersReady(){return this._headersReady}get filename(){return this._filename}get isRangeSupported(){return this._stream._isRangeSupported}get isStreamingSupported(){return this._stream._isStreamingSupported}get contentLength(){return this._stream._contentLength}read(){return ft(this,null,(function*(){if(this._queuedChunks.length>0)return{value:this._queuedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};let e=new n.PromiseCapability;return this._requests.push(e),e.promise}))}cancel(e){this._done=!0;for(let t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0}progressiveDone(){this._done||(this._done=!0)}}class s{constructor(e,t,i){this._stream=e,this._begin=t,this._end=i,this._queuedChunk=null,this._requests=[],this._done=!1,this.onProgress=null}_enqueue(e){if(!this._done){if(0===this._requests.length)this._queuedChunk=e;else{this._requests.shift().resolve({value:e,done:!1});for(let e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0}this._done=!0,this._stream._removeRangeReader(this)}}get isStreamingSupported(){return!1}read(){return ft(this,null,(function*(){if(this._queuedChunk){let e=this._queuedChunk;return this._queuedChunk=null,{value:e,done:!1}}if(this._done)return{value:void 0,done:!0};let e=new n.PromiseCapability;return this._requests.push(e),e.promise}))}cancel(e){this._done=!0;for(let t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0,this._stream._removeRangeReader(this)}}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.XfaText=void 0;class i{static textContent(e){let t=[],n={items:t,styles:Object.create(null)};return function e(n){var r;if(!n)return;let a=null,s=n.name;if("#text"===s)a=n.value;else{if(!i.shouldBuildText(s))return;null!=(r=null==n?void 0:n.attributes)&&r.textContent?a=n.attributes.textContent:n.value&&(a=n.value)}if(null!==a&&t.push({str:a}),n.children)for(let t of n.children)e(t)}(e),n}static shouldBuildText(e){return!("textarea"===e||"input"===e||"option"===e||"select"===e)}}t.XfaText=i},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeStandardFontDataFactory=t.NodeFilterFactory=t.NodeCanvasFactory=t.NodeCMapReaderFactory=void 0;var n=i(7);let r=function(e){return new Promise(((t,i)=>{PC().readFile(e,((e,n)=>{!e&&n?t(new Uint8Array(n)):i(new Error(e))}))}))};class a extends n.BaseFilterFactory{}t.NodeFilterFactory=a;class s extends n.BaseCanvasFactory{_createCanvas(e,t){return wye().createCanvas(e,t)}}t.NodeCanvasFactory=s;class o extends n.BaseCMapReaderFactory{_fetchData(e,t){return r(e).then((e=>({cMapData:e,compressionType:t})))}}t.NodeCMapReaderFactory=o;class l extends n.BaseStandardFontDataFactory{_fetchData(e){return r(e)}}t.NodeStandardFontDataFactory=l},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PDFNodeStream=void 0;var n=i(1),r=i(22);let a=PC(),s=Sye(),o=Mye(),l=Rye(),h=/^file:\/\/\/[a-zA-Z]:\//;t.PDFNodeStream=class{constructor(e){this.source=e,this.url=function(e){let t=l.parse(e);return"file:"===t.protocol||t.host?t:/^[a-z]:[/\\]/i.test(e)?l.parse(`file:///${e}`):(t.host||(t.protocol="file:"),t)}(e.url),this.isHttp="http:"===this.url.protocol||"https:"===this.url.protocol,this.isFsUrl="file:"===this.url.protocol,this.httpHeaders=this.isHttp&&e.httpHeaders||{},this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){var e,t;return null!=(t=null==(e=this._fullRequestReader)?void 0:e._loaded)?t:0}getFullReader(){return(0,n.assert)(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once."),this._fullRequestReader=this.isFsUrl?new m(this):new p(this),this._fullRequestReader}getRangeReader(e,t){if(t<=this._progressiveDataLength)return null;let i=this.isFsUrl?new g(this,e,t):new f(this,e,t);return this._rangeRequestReaders.push(i),i}cancelAllRequests(e){var t;null==(t=this._fullRequestReader)||t.cancel(e);for(let i of this._rangeRequestReaders.slice(0))i.cancel(e)}};class c{constructor(e){this._url=e.url,this._done=!1,this._storedError=null,this.onProgress=null;let t=e.source;this._contentLength=t.length,this._loaded=0,this._filename=null,this._disableRange=t.disableRange||!1,this._rangeChunkSize=t.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!t.disableStream,this._isRangeSupported=!t.disableRange,this._readableStream=null,this._readCapability=new n.PromiseCapability,this._headersCapability=new n.PromiseCapability}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}read(){return ft(this,null,(function*(){var e;if(yield this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;let t=this._readableStream.read();return null===t?(this._readCapability=new n.PromiseCapability,this.read()):(this._loaded+=t.length,null==(e=this.onProgress)||e.call(this,{loaded:this._loaded,total:this._contentLength}),{value:new Uint8Array(t).buffer,done:!1})}))}cancel(e){this._readableStream?this._readableStream.destroy(e):this._error(e)}_error(e){this._storedError=e,this._readCapability.resolve()}_setReadableStream(e){this._readableStream=e,e.on("readable",(()=>{this._readCapability.resolve()})),e.on("end",(()=>{e.destroy(),this._done=!0,this._readCapability.resolve()})),e.on("error",(e=>{this._error(e)})),!this._isStreamingSupported&&this._isRangeSupported&&this._error(new n.AbortException("streaming is disabled")),this._storedError&&this._readableStream.destroy(this._storedError)}}class u{constructor(e){this._url=e.url,this._done=!1,this._storedError=null,this.onProgress=null,this._loaded=0,this._readableStream=null,this._readCapability=new n.PromiseCapability;let t=e.source;this._isStreamingSupported=!t.disableStream}get isStreamingSupported(){return this._isStreamingSupported}read(){return ft(this,null,(function*(){var e;if(yield this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;let t=this._readableStream.read();return null===t?(this._readCapability=new n.PromiseCapability,this.read()):(this._loaded+=t.length,null==(e=this.onProgress)||e.call(this,{loaded:this._loaded}),{value:new Uint8Array(t).buffer,done:!1})}))}cancel(e){this._readableStream?this._readableStream.destroy(e):this._error(e)}_error(e){this._storedError=e,this._readCapability.resolve()}_setReadableStream(e){this._readableStream=e,e.on("readable",(()=>{this._readCapability.resolve()})),e.on("end",(()=>{e.destroy(),this._done=!0,this._readCapability.resolve()})),e.on("error",(e=>{this._error(e)})),this._storedError&&this._readableStream.destroy(this._storedError)}}function d(e,t){return{protocol:e.protocol,auth:e.auth,host:e.hostname,port:e.port,path:e.path,method:"GET",headers:t}}class p extends c{constructor(e){super(e);let t=t=>{if(404===t.statusCode){let e=new n.MissingPDFException(`Missing PDF "${this._url}".`);return this._storedError=e,void this._headersCapability.reject(e)}this._headersCapability.resolve(),this._setReadableStream(t);let i=e=>this._readableStream.headers[e.toLowerCase()],{allowRangeRequests:a,suggestedLength:s}=(0,r.validateRangeRequestCapabilities)({getResponseHeader:i,isHttp:e.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=a,this._contentLength=s||this._contentLength,this._filename=(0,r.extractFilenameFromHeader)(i)};this._request=null,"http:"===this._url.protocol?this._request=s.request(d(this._url,e.httpHeaders),t):this._request=o.request(d(this._url,e.httpHeaders),t),this._request.on("error",(e=>{this._storedError=e,this._headersCapability.reject(e)})),this._request.end()}}class f extends u{constructor(e,t,i){super(e),this._httpHeaders={};for(let n in e.httpHeaders){let t=e.httpHeaders[n];void 0!==t&&(this._httpHeaders[n]=t)}this._httpHeaders.Range=`bytes=${t}-${i-1}`;let r=e=>{if(404!==e.statusCode)this._setReadableStream(e);else{let e=new n.MissingPDFException(`Missing PDF "${this._url}".`);this._storedError=e}};this._request=null,"http:"===this._url.protocol?this._request=s.request(d(this._url,this._httpHeaders),r):this._request=o.request(d(this._url,this._httpHeaders),r),this._request.on("error",(e=>{this._storedError=e})),this._request.end()}}class m extends c{constructor(e){super(e);let t=decodeURIComponent(this._url.path);h.test(this._url.href)&&(t=t.replace(/^\//,"")),a.lstat(t,((e,i)=>{if(e)return"ENOENT"===e.code&&(e=new n.MissingPDFException(`Missing PDF "${t}".`)),this._storedError=e,void this._headersCapability.reject(e);this._contentLength=i.size,this._setReadableStream(a.createReadStream(t)),this._headersCapability.resolve()}))}}class g extends u{constructor(e,t,i){super(e);let n=decodeURIComponent(this._url.path);h.test(this._url.href)&&(n=n.replace(/^\//,"")),this._setReadableStream(a.createReadStream(n,{start:t,end:i-1}))}}},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createResponseStatusError=function(e,t){return 404===e||0===e&&t.startsWith("file:")?new n.MissingPDFException('Missing PDF "'+t+'".'):new n.UnexpectedResponseException(`Unexpected server response (${e}) while retrieving PDF "${t}".`,e)},t.extractFilenameFromHeader=function(e){let t=e("Content-Disposition");if(t){let i=(0,r.getFilenameFromContentDispositionHeader)(t);if(i.includes("%"))try{i=decodeURIComponent(i)}catch(e){}if((0,a.isPdfFile)(i))return i}return null},t.validateRangeRequestCapabilities=function({getResponseHeader:e,isHttp:t,rangeChunkSize:i,disableRange:n}){let r={allowRangeRequests:!1,suggestedLength:void 0},a=parseInt(e("Content-Length"),10);return!Number.isInteger(a)||(r.suggestedLength=a,a<=2*i)||n||!t||"bytes"!==e("Accept-Ranges")||"identity"!==(e("Content-Encoding")||"identity")||(r.allowRangeRequests=!0),r},t.validateResponseStatus=function(e){return 200===e||206===e};var n=i(1),r=i(23),a=i(6)},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getFilenameFromContentDispositionHeader=function(e){let t=!0,i=r("filename\\*","i").exec(e);if(i){i=i[1];let e=o(i);return e=unescape(e),e=l(e),e=h(e),s(e)}if(i=function(e){let t,i=[],n=r("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;null!==(t=n.exec(e));){let[,e,n,r]=t;if(e=parseInt(e,10),e in i){if(0===e)break}else i[e]=[n,r]}let a=[];for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0}),t.PDFNetworkStream=void 0;var n=i(1),r=i(22);class a{constructor(e,t={}){this.url=e,this.isHttp=/^https?:/i.test(e),this.httpHeaders=this.isHttp&&t.httpHeaders||Object.create(null),this.withCredentials=t.withCredentials||!1,this.currXhrId=0,this.pendingRequests=Object.create(null)}requestRange(e,t,i){let n={begin:e,end:t};for(let r in i)n[r]=i[r];return this.request(n)}requestFull(e){return this.request(e)}request(e){let t=new XMLHttpRequest,i=this.currXhrId++,n=this.pendingRequests[i]={xhr:t};t.open("GET",this.url),t.withCredentials=this.withCredentials;for(let r in this.httpHeaders){let e=this.httpHeaders[r];void 0!==e&&t.setRequestHeader(r,e)}return this.isHttp&&"begin"in e&&"end"in e?(t.setRequestHeader("Range",`bytes=${e.begin}-${e.end-1}`),n.expectedStatus=206):n.expectedStatus=200,t.responseType="arraybuffer",e.onError&&(t.onerror=function(i){e.onError(t.status)}),t.onreadystatechange=this.onStateChange.bind(this,i),t.onprogress=this.onProgress.bind(this,i),n.onHeadersReceived=e.onHeadersReceived,n.onDone=e.onDone,n.onError=e.onError,n.onProgress=e.onProgress,t.send(null),i}onProgress(e,t){var i;let n=this.pendingRequests[e];n&&(null==(i=n.onProgress)||i.call(n,t))}onStateChange(e,t){var i,r,a;let s=this.pendingRequests[e];if(!s)return;let o=s.xhr;if(o.readyState>=2&&s.onHeadersReceived&&(s.onHeadersReceived(),delete s.onHeadersReceived),4!==o.readyState||!(e in this.pendingRequests))return;if(delete this.pendingRequests[e],0===o.status&&this.isHttp)return void(null==(i=s.onError)||i.call(s,o.status));let l=o.status||200;if((200!==l||206!==s.expectedStatus)&&l!==s.expectedStatus)return void(null==(r=s.onError)||r.call(s,o.status));let h=function(e){let t=e.response;return"string"!=typeof t?t:(0,n.stringToBytes)(t).buffer}(o);if(206===l){let e=o.getResponseHeader("Content-Range"),t=/bytes (\d+)-(\d+)\/(\d+)/.exec(e);s.onDone({begin:parseInt(t[1],10),chunk:h})}else h?s.onDone({begin:0,chunk:h}):null==(a=s.onError)||a.call(s,o.status)}getRequestXhr(e){return this.pendingRequests[e].xhr}isPendingRequest(e){return e in this.pendingRequests}abortRequest(e){let t=this.pendingRequests[e].xhr;delete this.pendingRequests[e],t.abort()}}t.PDFNetworkStream=class{constructor(e){this._source=e,this._manager=new a(e.url,{httpHeaders:e.httpHeaders,withCredentials:e.withCredentials}),this._rangeChunkSize=e.rangeChunkSize,this._fullRequestReader=null,this._rangeRequestReaders=[]}_onRangeRequestReaderClosed(e){let t=this._rangeRequestReaders.indexOf(e);t>=0&&this._rangeRequestReaders.splice(t,1)}getFullReader(){return(0,n.assert)(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once."),this._fullRequestReader=new s(this._manager,this._source),this._fullRequestReader}getRangeReader(e,t){let i=new o(this._manager,e,t);return i.onClosed=this._onRangeRequestReaderClosed.bind(this),this._rangeRequestReaders.push(i),i}cancelAllRequests(e){var t;null==(t=this._fullRequestReader)||t.cancel(e);for(let i of this._rangeRequestReaders.slice(0))i.cancel(e)}};class s{constructor(e,t){this._manager=e;let i={onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=t.url,this._fullRequestId=e.requestFull(i),this._headersReceivedCapability=new n.PromiseCapability,this._disableRange=t.disableRange||!1,this._contentLength=t.length,this._rangeChunkSize=t.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!1,this._isRangeSupported=!1,this._cachedChunks=[],this._requests=[],this._done=!1,this._storedError=void 0,this._filename=null,this.onProgress=null}_onHeadersReceived(){let e=this._fullRequestId,t=this._manager.getRequestXhr(e),i=e=>t.getResponseHeader(e),{allowRangeRequests:n,suggestedLength:a}=(0,r.validateRangeRequestCapabilities)({getResponseHeader:i,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});n&&(this._isRangeSupported=!0),this._contentLength=a||this._contentLength,this._filename=(0,r.extractFilenameFromHeader)(i),this._isRangeSupported&&this._manager.abortRequest(e),this._headersReceivedCapability.resolve()}_onDone(e){if(e&&(this._requests.length>0?this._requests.shift().resolve({value:e.chunk,done:!1}):this._cachedChunks.push(e.chunk)),this._done=!0,!(this._cachedChunks.length>0)){for(let e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0}}_onError(e){this._storedError=(0,r.createResponseStatusError)(e,this._url),this._headersReceivedCapability.reject(this._storedError);for(let t of this._requests)t.reject(this._storedError);this._requests.length=0,this._cachedChunks.length=0}_onProgress(e){var t;null==(t=this.onProgress)||t.call(this,{loaded:e.loaded,total:e.lengthComputable?e.total:this._contentLength})}get filename(){return this._filename}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}get contentLength(){return this._contentLength}get headersReady(){return this._headersReceivedCapability.promise}read(){return ft(this,null,(function*(){if(this._storedError)throw this._storedError;if(this._cachedChunks.length>0)return{value:this._cachedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};let e=new n.PromiseCapability;return this._requests.push(e),e.promise}))}cancel(e){this._done=!0,this._headersReceivedCapability.reject(e);for(let t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId),this._fullRequestReader=null}}class o{constructor(e,t,i){this._manager=e;let n={onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=e.url,this._requestId=e.requestRange(t,i,n),this._requests=[],this._queuedChunk=null,this._done=!1,this._storedError=void 0,this.onProgress=null,this.onClosed=null}_close(){var e;null==(e=this.onClosed)||e.call(this,this)}_onDone(e){let t=e.chunk;this._requests.length>0?this._requests.shift().resolve({value:t,done:!1}):this._queuedChunk=t,this._done=!0;for(let i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0,this._close()}_onError(e){this._storedError=(0,r.createResponseStatusError)(e,this._url);for(let t of this._requests)t.reject(this._storedError);this._requests.length=0,this._queuedChunk=null}_onProgress(e){var t;this.isStreamingSupported||null==(t=this.onProgress)||t.call(this,{loaded:e.loaded})}get isStreamingSupported(){return!1}read(){return ft(this,null,(function*(){if(this._storedError)throw this._storedError;if(null!==this._queuedChunk){let e=this._queuedChunk;return this._queuedChunk=null,{value:e,done:!1}}if(this._done)return{value:void 0,done:!0};let e=new n.PromiseCapability;return this._requests.push(e),e.promise}))}cancel(e){this._done=!0;for(let t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId),this._close()}}},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PDFFetchStream=void 0;var n=i(1),r=i(22);function a(e,t,i){return{method:"GET",headers:e,signal:i.signal,mode:"cors",credentials:t?"include":"same-origin",redirect:"follow"}}function s(e){let t=new Headers;for(let i in e){let n=e[i];void 0!==n&&t.append(i,n)}return t}function o(e){return e instanceof Uint8Array?e.buffer:e instanceof ArrayBuffer?e:((0,n.warn)(`getArrayBuffer - unexpected data format: ${e}`),new Uint8Array(e).buffer)}t.PDFFetchStream=class{constructor(e){this.source=e,this.isHttp=/^https?:/i.test(e.url),this.httpHeaders=this.isHttp&&e.httpHeaders||{},this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){var e,t;return null!=(t=null==(e=this._fullRequestReader)?void 0:e._loaded)?t:0}getFullReader(){return(0,n.assert)(!this._fullRequestReader,"PDFFetchStream.getFullReader can only be called once."),this._fullRequestReader=new l(this),this._fullRequestReader}getRangeReader(e,t){if(t<=this._progressiveDataLength)return null;let i=new h(this,e,t);return this._rangeRequestReaders.push(i),i}cancelAllRequests(e){var t;null==(t=this._fullRequestReader)||t.cancel(e);for(let i of this._rangeRequestReaders.slice(0))i.cancel(e)}};class l{constructor(e){this._stream=e,this._reader=null,this._loaded=0,this._filename=null;let t=e.source;this._withCredentials=t.withCredentials||!1,this._contentLength=t.length,this._headersCapability=new n.PromiseCapability,this._disableRange=t.disableRange||!1,this._rangeChunkSize=t.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._abortController=new AbortController,this._isStreamingSupported=!t.disableStream,this._isRangeSupported=!t.disableRange,this._headers=s(this._stream.httpHeaders);let i=t.url;fetch(i,a(this._headers,this._withCredentials,this._abortController)).then((e=>{if(!(0,r.validateResponseStatus)(e.status))throw(0,r.createResponseStatusError)(e.status,i);this._reader=e.body.getReader(),this._headersCapability.resolve();let t=t=>e.headers.get(t),{allowRangeRequests:a,suggestedLength:s}=(0,r.validateRangeRequestCapabilities)({getResponseHeader:t,isHttp:this._stream.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=a,this._contentLength=s||this._contentLength,this._filename=(0,r.extractFilenameFromHeader)(t),!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new n.AbortException("Streaming is disabled."))})).catch(this._headersCapability.reject),this.onProgress=null}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}read(){return ft(this,null,(function*(){var e;yield this._headersCapability.promise;let{value:t,done:i}=yield this._reader.read();return i?{value:t,done:i}:(this._loaded+=t.byteLength,null==(e=this.onProgress)||e.call(this,{loaded:this._loaded,total:this._contentLength}),{value:o(t),done:!1})}))}cancel(e){var t;null==(t=this._reader)||t.cancel(e),this._abortController.abort()}}class h{constructor(e,t,i){this._stream=e,this._reader=null,this._loaded=0;let o=e.source;this._withCredentials=o.withCredentials||!1,this._readCapability=new n.PromiseCapability,this._isStreamingSupported=!o.disableStream,this._abortController=new AbortController,this._headers=s(this._stream.httpHeaders),this._headers.append("Range",`bytes=${t}-${i-1}`);let l=o.url;fetch(l,a(this._headers,this._withCredentials,this._abortController)).then((e=>{if(!(0,r.validateResponseStatus)(e.status))throw(0,r.createResponseStatusError)(e.status,l);this._readCapability.resolve(),this._reader=e.body.getReader()})).catch(this._readCapability.reject),this.onProgress=null}get isStreamingSupported(){return this._isStreamingSupported}read(){return ft(this,null,(function*(){var e;yield this._readCapability.promise;let{value:t,done:i}=yield this._reader.read();return i?{value:t,done:i}:(this._loaded+=t.byteLength,null==(e=this.onProgress)||e.call(this,{loaded:this._loaded}),{value:o(t),done:!1})}))}cancel(e){var t;null==(t=this._reader)||t.cancel(e),this._abortController.abort()}}},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextLayerRenderTask=void 0,t.renderTextLayer=function(e){!e.textContentSource&&(e.textContent||e.textContentStream)&&((0,r.deprecated)("The TextLayerRender `textContent`/`textContentStream` parameters will be removed in the future, please use `textContentSource` instead."),e.textContentSource=e.textContent||e.textContentStream);let{container:t,viewport:i}=e,n=getComputedStyle(t),a=n.getPropertyValue("visibility"),s=parseFloat(n.getPropertyValue("--scale-factor"));"visible"===a&&(!s||Math.abs(s-i.scale)>1e-5)&&console.error("The `--scale-factor` CSS-variable must be set, to the same value as `viewport.scale`, either on the `container`-element itself or higher up in the DOM.");let o=new c(e);return o._render(),o},t.updateTextLayer=function({container:e,viewport:t,textDivs:i,textDivProperties:n,isOffscreenCanvasSupported:a,mustRotate:s=!0,mustRescale:l=!0}){if(s&&(0,r.setLayerDimensions)(e,{rotation:t.rotation}),l){let e=o(0,a),r={prevFontSize:null,prevFontFamily:null,div:null,scale:t.scale*(globalThis.devicePixelRatio||1),properties:null,ctx:e};for(let t of i)r.properties=n.get(t),r.div=t,h(r)}};var n=i(1),r=i(6);let a=30,s=new Map;function o(e,t){let i;if(t&&n.FeatureTest.isOffscreenCanvasSupported)i=new OffscreenCanvas(e,e).getContext("2d",{alpha:!1});else{let t=document.createElement("canvas");t.width=t.height=e,i=t.getContext("2d",{alpha:!1})}return i}function l(e,t,i){let r=document.createElement("span"),l={angle:0,canvasWidth:0,hasText:""!==t.str,hasEOL:t.hasEOL,fontSize:0};e._textDivs.push(r);let h=n.Util.transform(e._transform,t.transform),c=Math.atan2(h[1],h[0]),u=i[t.fontName];u.vertical&&(c+=Math.PI/2);let d,p,f=Math.hypot(h[2],h[3]),m=f*function(e,t){let i=s.get(e);if(i)return i;let n=o(a,t);n.font=`30px ${e}`;let r=n.measureText(""),l=r.fontBoundingBoxAscent,h=Math.abs(r.fontBoundingBoxDescent);if(l){let t=l/(l+h);return s.set(e,t),n.canvas.width=n.canvas.height=0,t}n.strokeStyle="red",n.clearRect(0,0,a,a),n.strokeText("g",0,0);let c=n.getImageData(0,0,a,a).data;h=0;for(let s=c.length-1-3;s>=0;s-=4)if(c[s]>0){h=Math.ceil(s/4/a);break}n.clearRect(0,0,a,a),n.strokeText("A",0,a),c=n.getImageData(0,0,a,a).data,l=0;for(let s=0,o=c.length;s0){l=a-Math.floor(s/4/a);break}if(n.canvas.width=n.canvas.height=0,l){let t=l/(l+h);return s.set(e,t),t}return s.set(e,.8),.8}(u.fontFamily,e._isOffscreenCanvasSupported);0===c?(d=h[4],p=h[5]-m):(d=h[4]+m*Math.sin(c),p=h[5]-m*Math.cos(c));let g="calc(var(--scale-factor)*",v=r.style;e._container===e._rootContainer?(v.left=`${(100*d/e._pageWidth).toFixed(2)}%`,v.top=`${(100*p/e._pageHeight).toFixed(2)}%`):(v.left=`${g}${d.toFixed(2)}px)`,v.top=`${g}${p.toFixed(2)}px)`),v.fontSize=`${g}${f.toFixed(2)}px)`,v.fontFamily=u.fontFamily,l.fontSize=f,r.setAttribute("role","presentation"),r.textContent=t.str,r.dir=t.dir,e._fontInspectorEnabled&&(r.dataset.fontName=t.fontName),0!==c&&(l.angle=c*(180/Math.PI));let y=!1;if(t.str.length>1)y=!0;else if(" "!==t.str&&t.transform[0]!==t.transform[3]){let e=Math.abs(t.transform[0]),i=Math.abs(t.transform[3]);e!==i&&Math.max(e,i)/Math.min(e,i)>1.5&&(y=!0)}y&&(l.canvasWidth=u.vertical?t.height:t.width),e._textDivProperties.set(r,l),e._isReadableStream&&e._layoutText(r)}function h(e){let{div:t,scale:i,properties:n,ctx:r,prevFontSize:a,prevFontFamily:s}=e,{style:o}=t,l="";if(0!==n.canvasWidth&&n.hasText){let{fontFamily:h}=o,{canvasWidth:c,fontSize:u}=n;(a!==u||s!==h)&&(r.font=`${u*i}px ${h}`,e.prevFontSize=u,e.prevFontFamily=h);let{width:d}=r.measureText(t.textContent);d>0&&(l=`scaleX(${c*i/d})`)}0!==n.angle&&(l=`rotate(${n.angle}deg) ${l}`),l.length>0&&(o.transform=l)}class c{constructor({textContentSource:e,container:t,viewport:i,textDivs:a,textDivProperties:s,textContentItemsStr:l,isOffscreenCanvasSupported:h}){var c;this._textContentSource=e,this._isReadableStream=e instanceof ReadableStream,this._container=this._rootContainer=t,this._textDivs=a||[],this._textContentItemsStr=l||[],this._isOffscreenCanvasSupported=h,this._fontInspectorEnabled=!(null==(c=globalThis.FontInspector)||!c.enabled),this._reader=null,this._textDivProperties=s||new WeakMap,this._canceled=!1,this._capability=new n.PromiseCapability,this._layoutTextParams={prevFontSize:null,prevFontFamily:null,div:null,scale:i.scale*(globalThis.devicePixelRatio||1),properties:null,ctx:o(0,h)};let{pageWidth:u,pageHeight:d,pageX:p,pageY:f}=i.rawDims;this._transform=[1,0,0,-1,-p,f+d],this._pageWidth=u,this._pageHeight=d,(0,r.setLayerDimensions)(t,i),this._capability.promise.finally((()=>{this._layoutTextParams=null})).catch((()=>{}))}get promise(){return this._capability.promise}cancel(){this._canceled=!0,this._reader&&(this._reader.cancel(new n.AbortException("TextLayer task cancelled.")).catch((()=>{})),this._reader=null),this._capability.reject(new n.AbortException("TextLayer task cancelled."))}_processItems(e,t){for(let i of e)if(void 0!==i.str)this._textContentItemsStr.push(i.str),l(this,i,t);else if("beginMarkedContentProps"===i.type||"beginMarkedContent"===i.type){let e=this._container;this._container=document.createElement("span"),this._container.classList.add("markedContent"),null!==i.id&&this._container.setAttribute("id",`${i.id}`),e.append(this._container)}else"endMarkedContent"===i.type&&(this._container=this._container.parentNode)}_layoutText(e){let t=this._layoutTextParams.properties=this._textDivProperties.get(e);if(this._layoutTextParams.div=e,h(this._layoutTextParams),t.hasText&&this._container.append(e),t.hasEOL){let e=document.createElement("br");e.setAttribute("role","presentation"),this._container.append(e)}}_render(){let e=new n.PromiseCapability,t=Object.create(null);if(this._isReadableStream){let i=()=>{this._reader.read().then((({value:n,done:r})=>{r?e.resolve():(Object.assign(t,n.styles),this._processItems(n.items,t),i())}),e.reject)};this._reader=this._textContentSource.getReader(),i()}else{if(!this._textContentSource)throw new Error('No "textContentSource" parameter specified.');{let{items:t,styles:i}=this._textContentSource;this._processItems(t,i),e.resolve()}}e.promise.then((()=>{t=null,function(e){if(e._canceled)return;let t=e._textDivs,i=e._capability;if(t.length>1e5)i.resolve();else{if(!e._isReadableStream)for(let i of t)e._layoutText(i);i.resolve()}}(this)}),this._capability.reject)}}t.TextLayerRenderTask=c},(e,t,i)=>{var n,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b;Object.defineProperty(t,"__esModule",{value:!0}),t.AnnotationEditorLayer=void 0;var _=i(1),w=i(4),S=i(5),M=i(28),E=i(33),T=i(6);let A=class{constructor(e){Je(this,p),Je(this,m),Je(this,v),Je(this,x),Je(this,n,void 0),Je(this,r,!1),Je(this,a,null),Je(this,s,this.pointerup.bind(this)),Je(this,o,this.pointerdown.bind(this)),Je(this,l,new Map),Je(this,h,!1),Je(this,c,!1),Je(this,u,!1),Je(this,d,void 0),A._initialized||(A._initialized=!0,M.FreeTextEditor.initialize(e.l10n),E.InkEditor.initialize(e.l10n)),e.uiManager.registerEditorTypes([M.FreeTextEditor,E.InkEditor]),Mt(this,d,e.uiManager),this.pageIndex=e.pageIndex,this.div=e.div,Mt(this,n,e.accessibilityManager),Mt(this,a,e.annotationLayer),this.viewport=e.viewport,ce(this,d).addLayer(this)}get isEmpty(){return 0===ce(this,l).size}updateToolbar(e){ce(this,d).updateToolbar(e)}updateMode(e=ce(this,d).getMode()){dt(this,x,b).call(this),e===_.AnnotationEditorType.INK?(this.addInkEditorIfNeeded(!1),this.disableClick()):this.enableClick(),ce(this,d).unselectAll(),e!==_.AnnotationEditorType.NONE&&(this.div.classList.toggle("freeTextEditing",e===_.AnnotationEditorType.FREETEXT),this.div.classList.toggle("inkEditing",e===_.AnnotationEditorType.INK),this.div.hidden=!1)}addInkEditorIfNeeded(e){if(e||ce(this,d).getMode()===_.AnnotationEditorType.INK){if(!e)for(let e of ce(this,l).values())if(e.isEmpty())return void e.setInBackground();dt(this,v,y).call(this,{offsetX:0,offsetY:0}).setInBackground()}}setEditingState(e){ce(this,d).setEditingState(e)}addCommands(e){ce(this,d).addCommands(e)}enable(){this.div.style.pointerEvents="auto";let e=new Set;for(let i of ce(this,l).values())i.enableEditing(),i.annotationElementId&&e.add(i.annotationElementId);if(!ce(this,a))return;let t=ce(this,a).getEditableAnnotations();for(let i of t){if(i.hide(),ce(this,d).isDeletedAnnotationElement(i.data.id)||e.has(i.data.id))continue;let t=this.deserialize(i);t&&(this.addOrRebuild(t),t.enableEditing())}}disable(){var e;Mt(this,u,!0),this.div.style.pointerEvents="none";let t=new Set;for(let i of ce(this,l).values())i.disableEditing(),i.annotationElementId&&null===i.serialize()?(null==(e=this.getEditableAnnotation(i.annotationElementId))||e.show(),i.remove()):t.add(i.annotationElementId);if(ce(this,a)){let e=ce(this,a).getEditableAnnotations();for(let i of e){let{id:e}=i.data;t.has(e)||ce(this,d).isDeletedAnnotationElement(e)||i.show()}}dt(this,x,b).call(this),this.isEmpty&&(this.div.hidden=!0),Mt(this,u,!1)}getEditableAnnotation(e){var t;return(null==(t=ce(this,a))?void 0:t.getEditableAnnotation(e))||null}setActiveEditor(e){ce(this,d).getActive()!==e&&ce(this,d).setActiveEditor(e)}enableClick(){this.div.addEventListener("pointerdown",ce(this,o)),this.div.addEventListener("pointerup",ce(this,s))}disableClick(){this.div.removeEventListener("pointerdown",ce(this,o)),this.div.removeEventListener("pointerup",ce(this,s))}attach(e){ce(this,l).set(e.id,e);let{annotationElementId:t}=e;t&&ce(this,d).isDeletedAnnotationElement(t)&&ce(this,d).removeDeletedAnnotationElement(e)}detach(e){var t;ce(this,l).delete(e.id),null==(t=ce(this,n))||t.removePointerInTextLayer(e.contentDiv),!ce(this,u)&&e.annotationElementId&&ce(this,d).addDeletedAnnotationElement(e)}remove(e){this.detach(e),ce(this,d).removeEditor(e),e.div.style.display="none",setTimeout((()=>{e.div.style.display="",e.div.remove(),e.isAttachedToDOM=!1,document.activeElement===document.body&&ce(this,d).focusMainContainer()}),0),ce(this,c)||this.addInkEditorIfNeeded(!1)}add(e){if(dt(this,p,f).call(this,e),ce(this,d).addEditor(e),this.attach(e),!e.isAttachedToDOM){let t=e.render();this.div.append(t),e.isAttachedToDOM=!0}this.moveEditorInDOM(e),e.onceAdded(),ce(this,d).addToAnnotationStorage(e)}moveEditorInDOM(e){var t;null==(t=ce(this,n))||t.moveElementInDOM(this.div,e.div,e.contentDiv,!0)}addOrRebuild(e){e.needsToBeRebuilt()?e.rebuild():this.add(e)}getNextId(){return ce(this,d).getId()}deserialize(e){var t;switch(null!=(t=e.annotationType)?t:e.annotationEditorType){case _.AnnotationEditorType.FREETEXT:return M.FreeTextEditor.deserialize(e,this,ce(this,d));case _.AnnotationEditorType.INK:return E.InkEditor.deserialize(e,this,ce(this,d))}return null}setSelected(e){ce(this,d).setSelected(e)}toggleSelected(e){ce(this,d).toggleSelected(e)}isSelected(e){return ce(this,d).isSelected(e)}unselect(e){ce(this,d).unselect(e)}pointerup(e){let{isMac:t}=_.FeatureTest.platform;if(!(0!==e.button||e.ctrlKey&&t)&&e.target===this.div&&ce(this,h)){if(Mt(this,h,!1),!ce(this,r))return void Mt(this,r,!0);dt(this,v,y).call(this,e)}}pointerdown(e){let{isMac:t}=_.FeatureTest.platform;if(0!==e.button||e.ctrlKey&&t||e.target!==this.div)return;Mt(this,h,!0);let i=ce(this,d).getActive();Mt(this,r,!i||i.isEmpty())}drop(e){let t=e.dataTransfer.getData("text/plain"),i=ce(this,d).getEditor(t);if(!i)return;e.preventDefault(),e.dataTransfer.dropEffect="move",dt(this,p,f).call(this,i);let n=this.div.getBoundingClientRect(),r=e.clientX-n.x,a=e.clientY-n.y;i.translate(r-i.startX,a-i.startY),this.moveEditorInDOM(i),i.div.focus()}dragover(e){e.preventDefault()}destroy(){var e,t;(null==(e=ce(this,d).getActive())?void 0:e.parent)===this&&ce(this,d).setActiveEditor(null);for(let i of ce(this,l).values())null==(t=ce(this,n))||t.removePointerInTextLayer(i.contentDiv),i.setParent(null),i.isAttachedToDOM=!1,i.div.remove();this.div=null,ce(this,l).clear(),ce(this,d).removeLayer(this)}render({viewport:e}){this.viewport=e,(0,T.setLayerDimensions)(this.div,e),(0,S.bindEvents)(this,this.div,["dragover","drop"]);for(let t of ce(this,d).getEditors(this.pageIndex))this.add(t);this.updateMode()}update({viewport:e}){ce(this,d).commitOrRemove(),this.viewport=e,(0,T.setLayerDimensions)(this.div,{rotation:e.rotation}),this.updateMode()}get pageDimensions(){let{pageWidth:e,pageHeight:t}=this.viewport.rawDims;return[e,t]}},C=A;n=new WeakMap,r=new WeakMap,a=new WeakMap,s=new WeakMap,o=new WeakMap,l=new WeakMap,h=new WeakMap,c=new WeakMap,u=new WeakMap,d=new WeakMap,p=new WeakSet,f=function(e){var t;e.parent!==this&&(e.annotationElementId&&(ce(this,d).addDeletedAnnotationElement(e.annotationElementId),w.AnnotationEditor.deleteAnnotationElement(e),e.annotationElementId=null),this.attach(e),null==(t=e.parent)||t.detach(e),e.setParent(this),e.div&&e.isAttachedToDOM&&(e.div.remove(),this.div.append(e.div)))},m=new WeakSet,g=function(e){switch(ce(this,d).getMode()){case _.AnnotationEditorType.FREETEXT:return new M.FreeTextEditor(e);case _.AnnotationEditorType.INK:return new E.InkEditor(e)}return null},v=new WeakSet,y=function(e){let t=this.getNextId(),i=dt(this,m,g).call(this,{parent:this,id:t,x:e.offsetX,y:e.offsetY,uiManager:ce(this,d)});return i&&this.add(i),i},x=new WeakSet,b=function(){Mt(this,c,!0);for(let e of ce(this,l).values())e.isEmpty()&&e.remove();Mt(this,c,!1)},Yi(C,"_initialized",!1),t.AnnotationEditorLayer=C},(e,t,i)=>{var n,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b,_,w,S,M,E;Object.defineProperty(t,"__esModule",{value:!0}),t.FreeTextEditor=void 0;var T=i(1),A=i(5),C=i(4),P=i(29);let R=class extends C.AnnotationEditor{constructor(e){super(Ii(Tr({},e),{name:"freeTextEditor"})),Je(this,d),Je(this,f),Je(this,g),Je(this,y),Je(this,b),Je(this,w),Je(this,M),Je(this,n,this.editorDivBlur.bind(this)),Je(this,r,this.editorDivFocus.bind(this)),Je(this,a,this.editorDivInput.bind(this)),Je(this,s,this.editorDivKeydown.bind(this)),Je(this,o,void 0),Je(this,l,""),Je(this,h,`${this.id}-editor`),Je(this,c,void 0),Je(this,u,null),Mt(this,o,e.color||R._defaultColor||C.AnnotationEditor._defaultLineColor),Mt(this,c,e.fontSize||R._defaultFontSize)}static get _keyboardManager(){return(0,T.shadow)(this,"_keyboardManager",new A.KeyboardManager([[["ctrl+s","mac+meta+s","ctrl+p","mac+meta+p"],R.prototype.commitOrRemove,!0],[["ctrl+Enter","mac+meta+Enter","Escape","mac+Escape"],R.prototype.commitOrRemove]]))}static initialize(e){this._l10nPromise=new Map(["free_text2_default_content","editor_free_text2_aria_label"].map((t=>[t,e.get(t)])));let t=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(t.getPropertyValue("--freetext-padding"))}static updateDefaultParams(e,t){switch(e){case T.AnnotationEditorParamsType.FREETEXT_SIZE:R._defaultFontSize=t;break;case T.AnnotationEditorParamsType.FREETEXT_COLOR:R._defaultColor=t}}updateParams(e,t){switch(e){case T.AnnotationEditorParamsType.FREETEXT_SIZE:dt(this,d,p).call(this,t);break;case T.AnnotationEditorParamsType.FREETEXT_COLOR:dt(this,f,m).call(this,t)}}static get defaultPropertiesToUpdate(){return[[T.AnnotationEditorParamsType.FREETEXT_SIZE,R._defaultFontSize],[T.AnnotationEditorParamsType.FREETEXT_COLOR,R._defaultColor||C.AnnotationEditor._defaultLineColor]]}get propertiesToUpdate(){return[[T.AnnotationEditorParamsType.FREETEXT_SIZE,ce(this,c)],[T.AnnotationEditorParamsType.FREETEXT_COLOR,ce(this,o)]]}getInitialTranslation(){let e=this.parentScale;return[-R._internalPadding*e,-(R._internalPadding+ce(this,c))*e]}rebuild(){super.rebuild(),null!==this.div&&(this.isAttachedToDOM||this.parent.add(this))}enableEditMode(){this.isInEditMode()||(this.parent.setEditingState(!1),this.parent.updateToolbar(T.AnnotationEditorType.FREETEXT),super.enableEditMode(),this.overlayDiv.classList.remove("enabled"),this.editorDiv.contentEditable=!0,this.div.draggable=!1,this.div.removeAttribute("aria-activedescendant"),this.editorDiv.addEventListener("keydown",ce(this,s)),this.editorDiv.addEventListener("focus",ce(this,r)),this.editorDiv.addEventListener("blur",ce(this,n)),this.editorDiv.addEventListener("input",ce(this,a)))}disableEditMode(){this.isInEditMode()&&(this.parent.setEditingState(!0),super.disableEditMode(),this.overlayDiv.classList.add("enabled"),this.editorDiv.contentEditable=!1,this.div.setAttribute("aria-activedescendant",ce(this,h)),this.div.draggable=!0,this.editorDiv.removeEventListener("keydown",ce(this,s)),this.editorDiv.removeEventListener("focus",ce(this,r)),this.editorDiv.removeEventListener("blur",ce(this,n)),this.editorDiv.removeEventListener("input",ce(this,a)),this.div.focus({preventScroll:!0}),this.isEditing=!1,this.parent.div.classList.add("freeTextEditing"))}focusin(e){super.focusin(e),e.target!==this.editorDiv&&this.editorDiv.focus()}onceAdded(){this.width?dt(this,M,E).call(this):(this.enableEditMode(),this.editorDiv.focus())}isEmpty(){return!this.editorDiv||""===this.editorDiv.innerText.trim()}remove(){this.isEditing=!1,this.parent.setEditingState(!0),this.parent.div.classList.add("freeTextEditing"),super.remove()}commit(){if(!this.isInEditMode())return;super.commit(),this.disableEditMode();let e=ce(this,l),t=Mt(this,l,dt(this,g,v).call(this).trimEnd());if(e===t)return;let i=e=>{Mt(this,l,e),e?(dt(this,b,_).call(this),this.rebuild(),dt(this,y,x).call(this)):this.remove()};this.addCommands({cmd:()=>{i(t)},undo:()=>{i(e)},mustExec:!1}),dt(this,y,x).call(this)}shouldGetKeyboardEvents(){return this.isInEditMode()}dblclick(e){this.enableEditMode(),this.editorDiv.focus()}keydown(e){e.target===this.div&&"Enter"===e.key&&(this.enableEditMode(),this.editorDiv.focus())}editorDivKeydown(e){R._keyboardManager.exec(this,e)}editorDivFocus(e){this.isEditing=!0}editorDivBlur(e){this.isEditing=!1}editorDivInput(e){this.parent.div.classList.toggle("freeTextEditing",this.isEmpty())}disableEditing(){this.editorDiv.setAttribute("role","comment"),this.editorDiv.removeAttribute("aria-multiline")}enableEditing(){this.editorDiv.setAttribute("role","textbox"),this.editorDiv.setAttribute("aria-multiline",!0)}render(){if(this.div)return this.div;let e,t;this.width&&(e=this.x,t=this.y),super.render(),this.editorDiv=document.createElement("div"),this.editorDiv.className="internal",this.editorDiv.setAttribute("id",ce(this,h)),this.enableEditing(),R._l10nPromise.get("editor_free_text2_aria_label").then((e=>{var t;return null==(t=this.editorDiv)?void 0:t.setAttribute("aria-label",e)})),R._l10nPromise.get("free_text2_default_content").then((e=>{var t;return null==(t=this.editorDiv)?void 0:t.setAttribute("default-content",e)})),this.editorDiv.contentEditable=!0;let{style:i}=this.editorDiv;if(i.fontSize=`calc(${ce(this,c)}px * var(--scale-factor))`,i.color=ce(this,o),this.div.append(this.editorDiv),this.overlayDiv=document.createElement("div"),this.overlayDiv.classList.add("overlay","enabled"),this.div.append(this.overlayDiv),(0,A.bindEvents)(this,this.div,["dblclick","keydown"]),this.width){let[i,n]=this.parentDimensions;if(this.annotationElementId){let[r]=this.getInitialTranslation();this.setAt(e*i,t*n,r,r)}else this.setAt(e*i,t*n,this.width*i,this.height*n);dt(this,b,_).call(this),this.div.draggable=!0,this.editorDiv.contentEditable=!1}else this.div.draggable=!1,this.editorDiv.contentEditable=!0;return this.div}get contentDiv(){return this.editorDiv}static deserialize(e,t,i){let n=null;if(e instanceof P.FreeTextAnnotationElement){let{data:{defaultAppearanceData:{fontSize:t,fontColor:i},rect:r,rotation:a,id:s},textContent:o,parent:{page:{pageNumber:l}}}=e;if(!o||0===o.length)return null;n=e={annotationType:T.AnnotationEditorType.FREETEXT,color:Array.from(i),fontSize:t,value:o.join("\n"),pageIndex:l-1,rect:r,rotation:a,id:s,deleted:!1}}let r=super.deserialize(e,t,i);return Mt(r,c,e.fontSize),Mt(r,o,T.Util.makeHexColor(...e.color)),Mt(r,l,e.value),r.annotationElementId=e.id||null,Mt(r,u,n),r}serialize(e=!1){if(this.isEmpty())return null;if(this.deleted)return{pageIndex:this.pageIndex,id:this.annotationElementId,deleted:!0};let t=R._internalPadding*this.parentScale,i=this.getRect(t,t),n=C.AnnotationEditor._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:ce(this,o)),r={annotationType:T.AnnotationEditorType.FREETEXT,color:n,fontSize:ce(this,c),value:ce(this,l),pageIndex:this.pageIndex,rect:i,rotation:this.rotation};return e?r:this.annotationElementId&&!dt(this,w,S).call(this,r)?null:(r.id=this.annotationElementId,r)}},D=R;n=new WeakMap,r=new WeakMap,a=new WeakMap,s=new WeakMap,o=new WeakMap,l=new WeakMap,h=new WeakMap,c=new WeakMap,u=new WeakMap,d=new WeakSet,p=function(e){let t=e=>{this.editorDiv.style.fontSize=`calc(${e}px * var(--scale-factor))`,this.translate(0,-(e-ce(this,c))*this.parentScale),Mt(this,c,e),dt(this,y,x).call(this)},i=ce(this,c);this.addCommands({cmd:()=>{t(e)},undo:()=>{t(i)},mustExec:!0,type:T.AnnotationEditorParamsType.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})},f=new WeakSet,m=function(e){let t=ce(this,o);this.addCommands({cmd:()=>{Mt(this,o,this.editorDiv.style.color=e)},undo:()=>{Mt(this,o,this.editorDiv.style.color=t)},mustExec:!0,type:T.AnnotationEditorParamsType.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})},g=new WeakSet,v=function(){let e=this.editorDiv.getElementsByTagName("div");if(0===e.length)return this.editorDiv.innerText;let t=[];for(let i of e)t.push(i.innerText.replace(/\r\n?|\n/,""));return t.join("\n")},y=new WeakSet,x=function(){let e,[t,i]=this.parentDimensions;if(this.isAttachedToDOM)e=this.div.getBoundingClientRect();else{let{currentLayer:t,div:i}=this,n=i.style.display;i.style.display="hidden",t.div.append(this.div),e=i.getBoundingClientRect(),i.remove(),i.style.display=n}this.width=e.width/t,this.height=e.height/i},b=new WeakSet,_=function(){if(this.editorDiv.replaceChildren(),ce(this,l))for(let e of ce(this,l).split("\n")){let t=document.createElement("div");t.append(e?document.createTextNode(e):document.createElement("br")),this.editorDiv.append(t)}},w=new WeakSet,S=function(e){let{value:t,fontSize:i,color:n,rect:r,pageIndex:a}=ce(this,u);return e.value!==t||e.fontSize!==i||e.rect.some(((e,t)=>Math.abs(e-r[t])>=1))||e.color.some(((e,t)=>e!==n[t]))||e.pageIndex!==a},M=new WeakSet,E=function(e=!1){if(!this.annotationElementId)return;if(dt(this,y,x).call(this),!e&&(0===this.width||0===this.height))return void setTimeout((()=>dt(this,M,E).call(this,!0)),0);let t=R._internalPadding*this.parentScale;ce(this,u).rect=this.getRect(t,t)},Yi(D,"_freeTextDefaultContent",""),Yi(D,"_l10nPromise"),Yi(D,"_internalPadding",0),Yi(D,"_defaultColor",null),Yi(D,"_defaultFontSize",10),Yi(D,"_type","freetext"),t.FreeTextEditor=D},(e,t,i)=>{var n,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b,_,w,S,M,E,T,A,C,P,R,D,L,I,O,k,N,U,F,B,z,H;Object.defineProperty(t,"__esModule",{value:!0}),t.InkAnnotationElement=t.FreeTextAnnotationElement=t.AnnotationLayer=void 0;var V=i(1),j=i(6),G=i(3),W=i(30),X=i(31);let Y=1e3,q=new WeakSet;function Z(e){return{width:e[2]-e[0],height:e[3]-e[1]}}class Q{static create(e){switch(e.data.annotationType){case V.AnnotationType.LINK:return new K(e);case V.AnnotationType.TEXT:return new $(e);case V.AnnotationType.WIDGET:switch(e.data.fieldType){case"Tx":return new te(e);case"Btn":return e.data.radioButton?new re(e):e.data.checkBox?new ne(e):new ae(e);case"Ch":return new se(e);case"Sig":return new ie(e)}return new ee(e);case V.AnnotationType.POPUP:return new oe(e);case V.AnnotationType.FREETEXT:return new he(e);case V.AnnotationType.LINE:return new ue(e);case V.AnnotationType.SQUARE:return new de(e);case V.AnnotationType.CIRCLE:return new pe(e);case V.AnnotationType.POLYLINE:return new fe(e);case V.AnnotationType.CARET:return new ge(e);case V.AnnotationType.INK:return new ve(e);case V.AnnotationType.POLYGON:return new me(e);case V.AnnotationType.HIGHLIGHT:return new ye(e);case V.AnnotationType.UNDERLINE:return new xe(e);case V.AnnotationType.SQUIGGLY:return new be(e);case V.AnnotationType.STRIKEOUT:return new _e(e);case V.AnnotationType.STAMP:return new we(e);case V.AnnotationType.FILEATTACHMENT:return new Se(e);default:return new J(e)}}}class J{constructor(e,{isRenderable:t=!1,ignoreBorder:i=!1,createQuadrilaterals:n=!1}={}){this.isRenderable=t,this.data=e.data,this.layer=e.layer,this.linkService=e.linkService,this.downloadManager=e.downloadManager,this.imageResourcesPath=e.imageResourcesPath,this.renderForms=e.renderForms,this.svgFactory=e.svgFactory,this.annotationStorage=e.annotationStorage,this.enableScripting=e.enableScripting,this.hasJSActions=e.hasJSActions,this._fieldObjects=e.fieldObjects,this.parent=e.parent,t&&(this.container=this._createContainer(i)),n&&(this.quadrilaterals=this._createQuadrilaterals(i))}_createContainer(e){let{data:t,parent:{page:i,viewport:n}}=this,r=document.createElement("section");r.setAttribute("data-annotation-id",t.id),r.style.zIndex=this.parent.zIndex++,this.data.popupRef&&r.setAttribute("aria-haspopup","dialog"),t.noRotate&&r.classList.add("norotate");let{pageWidth:a,pageHeight:s,pageX:o,pageY:l}=n.rawDims;if(!t.rect||this instanceof oe){let{rotation:e}=t;return!t.hasOwnCanvas&&0!==e&&this.setRotation(e,r),r}let{width:h,height:c}=Z(t.rect),u=V.Util.normalizeRect([t.rect[0],i.view[3]-t.rect[1]+i.view[1],t.rect[2],i.view[3]-t.rect[3]+i.view[1]]);if(!e&&t.borderStyle.width>0){r.style.borderWidth=`${t.borderStyle.width}px`;let e=t.borderStyle.horizontalCornerRadius,i=t.borderStyle.verticalCornerRadius;if(e>0||i>0){let t=`calc(${e}px * var(--scale-factor)) / calc(${i}px * var(--scale-factor))`;r.style.borderRadius=t}else if(this instanceof re){let e=`calc(${h}px * var(--scale-factor)) / calc(${c}px * var(--scale-factor))`;r.style.borderRadius=e}switch(t.borderStyle.style){case V.AnnotationBorderStyleType.SOLID:r.style.borderStyle="solid";break;case V.AnnotationBorderStyleType.DASHED:r.style.borderStyle="dashed";break;case V.AnnotationBorderStyleType.BEVELED:(0,V.warn)("Unimplemented border style: beveled");break;case V.AnnotationBorderStyleType.INSET:(0,V.warn)("Unimplemented border style: inset");break;case V.AnnotationBorderStyleType.UNDERLINE:r.style.borderBottomStyle="solid"}let n=t.borderColor||null;n?r.style.borderColor=V.Util.makeHexColor(0|n[0],0|n[1],0|n[2]):r.style.borderWidth=0}r.style.left=100*(u[0]-o)/a+"%",r.style.top=100*(u[1]-l)/s+"%";let{rotation:d}=t;return t.hasOwnCanvas||0===d?(r.style.width=100*h/a+"%",r.style.height=100*c/s+"%"):this.setRotation(d,r),r}setRotation(e,t=this.container){let i,n,{pageWidth:r,pageHeight:a}=this.parent.viewport.rawDims,{width:s,height:o}=Z(this.data.rect);e%180==0?(i=100*s/r,n=100*o/a):(i=100*o/r,n=100*s/a),t.style.width=`${i}%`,t.style.height=`${n}%`,t.setAttribute("data-main-rotation",(360-e)%360)}get _commonActions(){let e=(e,t,i)=>{let n=i.detail[e];i.target.style[t]=W.ColorConverters[`${n[0]}_HTML`](n.slice(1))};return(0,V.shadow)(this,"_commonActions",{display:e=>{let t=e.detail.display%2==1;this.container.style.visibility=t?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{hidden:t,print:0===e.detail.display||3===e.detail.display})},print:e=>{this.annotationStorage.setValue(this.data.id,{print:e.detail.print})},hidden:e=>{this.container.style.visibility=e.detail.hidden?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{hidden:e.detail.hidden})},focus:e=>{setTimeout((()=>e.target.focus({preventScroll:!1})),0)},userName:e=>{e.target.title=e.detail.userName},readonly:e=>{e.detail.readonly?e.target.setAttribute("readonly",""):e.target.removeAttribute("readonly")},required:e=>{this._setRequired(e.target,e.detail.required)},bgColor:t=>{e("bgColor","backgroundColor",t)},fillColor:t=>{e("fillColor","backgroundColor",t)},fgColor:t=>{e("fgColor","color",t)},textColor:t=>{e("textColor","color",t)},borderColor:t=>{e("borderColor","borderColor",t)},strokeColor:t=>{e("strokeColor","borderColor",t)},rotation:e=>{let t=e.detail.rotation;this.setRotation(t),this.annotationStorage.setValue(this.data.id,{rotation:t})}})}_dispatchEventFromSandbox(e,t){let i=this._commonActions;for(let n of Object.keys(t.detail)){let r=e[n]||i[n];null==r||r(t)}}_setDefaultPropertiesFromJS(e){if(!this.enableScripting)return;let t=this.annotationStorage.getRawValue(this.data.id);if(!t)return;let i=this._commonActions;for(let[n,r]of Object.entries(t)){let a=i[n];a&&(a({detail:{[n]:r},target:e}),delete t[n])}}_createQuadrilaterals(e=!1){if(!this.data.quadPoints)return null;let t=[],i=this.data.rect,n=null;for(let r of this.data.quadPoints)this.data.rect=[r[2].x,r[2].y,r[1].x,r[1].y],t.push(this._createContainer(e)),n||(n=this.data.rect);return this.data.rect=i,this.firstQuadRect=n,t}_createPopup(){let{container:e,data:t}=this;e.setAttribute("aria-haspopup","dialog");let i=new oe({data:{color:t.color,titleObj:t.titleObj,modificationDate:t.modificationDate,contentsObj:t.contentsObj,richText:t.richText,parentRect:this.firstQuadRect||t.rect,borderStyle:0,id:`popup_${t.id}`,rotation:t.rotation},parent:this.parent,elements:[this]});this.parent.div.append(i.render())}_renderQuadrilaterals(e){for(let t of this.quadrilaterals)t.classList.add(e);return this.quadrilaterals}render(){(0,V.unreachable)("Abstract method `AnnotationElement.render` called")}_getElementsByName(e,t=null){let i=[];if(this._fieldObjects){let n=this._fieldObjects[e];if(n)for(let{page:e,id:r,exportValues:a}of n){if(-1===e||r===t)continue;let n="string"==typeof a?a:null,s=document.querySelector(`[data-element-id="${r}"]`);!s||q.has(s)?i.push({id:r,exportValue:n,domElement:s}):(0,V.warn)(`_getElementsByName - element not allowed: ${r}`)}return i}for(let n of document.getElementsByName(e)){let{exportValue:e}=n,r=n.getAttribute("data-element-id");r!==t&&q.has(n)&&i.push({id:r,exportValue:e,domElement:n})}return i}show(){var e;this.container&&(this.container.hidden=!1),null==(e=this.popup)||e.maybeShow()}hide(){var e;this.container&&(this.container.hidden=!0),null==(e=this.popup)||e.forceHide()}getElementsToTriggerPopup(){return this.quadrilaterals||this.container}addHighlightArea(){let e=this.getElementsToTriggerPopup();if(Array.isArray(e))for(let t of e)t.classList.add("highlightArea");else e.classList.add("highlightArea")}}class K extends J{constructor(e,t=null){super(e,{isRenderable:!0,ignoreBorder:!(null==t||!t.ignoreBorder),createQuadrilaterals:!0}),Je(this,n),Je(this,a),this.isTooltipOnly=e.data.isTooltipOnly}render(){let{data:e,linkService:t}=this,i=document.createElement("a");i.setAttribute("data-element-id",e.id);let n=!1;return e.url?(t.addLinkAttributes(i,e.url,e.newWindow),n=!0):e.action?(this._bindNamedAction(i,e.action),n=!0):e.attachment?(this._bindAttachment(i,e.attachment),n=!0):e.setOCGState?(dt(this,a,s).call(this,i,e.setOCGState),n=!0):e.dest?(this._bindLink(i,e.dest),n=!0):(e.actions&&(e.actions.Action||e.actions["Mouse Up"]||e.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions&&(this._bindJSAction(i,e),n=!0),e.resetForm?(this._bindResetFormAction(i,e.resetForm),n=!0):this.isTooltipOnly&&!n&&(this._bindLink(i,""),n=!0)),this.quadrilaterals?this._renderQuadrilaterals("linkAnnotation").map(((e,t)=>{let n=0===t?i:i.cloneNode();return e.append(n),e})):(this.container.classList.add("linkAnnotation"),n&&this.container.append(i),this.container)}_bindLink(e,t){e.href=this.linkService.getDestinationHash(t),e.onclick=()=>(t&&this.linkService.goToDestination(t),!1),(t||""===t)&&dt(this,n,r).call(this)}_bindNamedAction(e,t){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>(this.linkService.executeNamedAction(t),!1),dt(this,n,r).call(this)}_bindAttachment(e,t){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>{var e;return null==(e=this.downloadManager)||e.openOrDownloadData(this.container,t.content,t.filename),!1},dt(this,n,r).call(this)}_bindJSAction(e,t){e.href=this.linkService.getAnchorUrl("");let i=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(let n of Object.keys(t.actions)){let r=i.get(n);r&&(e[r]=()=>{var e;return null==(e=this.linkService.eventBus)||e.dispatch("dispatcheventinsandbox",{source:this,detail:{id:t.id,name:n}}),!1})}e.onclick||(e.onclick=()=>!1),dt(this,n,r).call(this)}_bindResetFormAction(e,t){let i=e.onclick;if(i||(e.href=this.linkService.getAnchorUrl("")),dt(this,n,r).call(this),!this._fieldObjects)return(0,V.warn)('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.'),void(i||(e.onclick=()=>!1));e.onclick=()=>{var e;null==i||i();let{fields:n,refs:r,include:a}=t,s=[];if(0!==n.length||0!==r.length){let e=new Set(r);for(let t of n){let i=this._fieldObjects[t]||[];for(let{id:t}of i)e.add(t)}for(let t of Object.values(this._fieldObjects))for(let i of t)e.has(i.id)===a&&s.push(i)}else for(let t of Object.values(this._fieldObjects))s.push(...t);let o=this.annotationStorage,l=[];for(let t of s){let{id:e}=t;switch(l.push(e),t.type){case"text":{let i=t.defaultValue||"";o.setValue(e,{value:i});break}case"checkbox":case"radiobutton":{let i=t.defaultValue===t.exportValues;o.setValue(e,{value:i});break}case"combobox":case"listbox":{let i=t.defaultValue||"";o.setValue(e,{value:i});break}default:continue}let i=document.querySelector(`[data-element-id="${e}"]`);i&&(q.has(i)?i.dispatchEvent(new Event("resetform")):(0,V.warn)(`_bindResetFormAction - element not allowed: ${e}`))}return this.enableScripting&&(null==(e=this.linkService.eventBus)||e.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:l,name:"ResetForm"}})),!1}}}n=new WeakSet,r=function(){this.container.setAttribute("data-internal-link","")},a=new WeakSet,s=function(e,t){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>(this.linkService.executeSetOCGState(t),!1),dt(this,n,r).call(this)};class $ extends J{constructor(e){var t,i,n;super(e,{isRenderable:!!(e.data.popupRef||null!=(t=e.data.titleObj)&&t.str||null!=(i=e.data.contentsObj)&&i.str||null!=(n=e.data.richText)&&n.str)})}render(){this.container.classList.add("textAnnotation");let e=document.createElement("img");return e.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg",e.alt="[{{type}} Annotation]",e.dataset.l10nId="text_annotation_type",e.dataset.l10nArgs=JSON.stringify({type:this.data.name}),this.data.popupRef||this._createPopup(),this.container.append(e),this.container}}class ee extends J{render(){return this.data.alternativeText&&(this.container.title=this.data.alternativeText),this.container}showElementAndHideCanvas(e){var t;this.data.hasOwnCanvas&&("CANVAS"===(null==(t=e.previousSibling)?void 0:t.nodeName)&&(e.previousSibling.hidden=!0),e.hidden=!1)}_getKeyModifier(e){let{isWin:t,isMac:i}=V.FeatureTest.platform;return t&&e.ctrlKey||i&&e.metaKey}_setEventListener(e,t,i,n){t.includes("mouse")?e.addEventListener(t,(e=>{var t;null==(t=this.linkService.eventBus)||t.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:i,value:n(e),shift:e.shiftKey,modifier:this._getKeyModifier(e)}})})):e.addEventListener(t,(e=>{var t;null==(t=this.linkService.eventBus)||t.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:i,value:n(e)}})}))}_setEventListeners(e,t,i){var n;for(let[r,a]of t)("Action"===a||null!=(n=this.data.actions)&&n[a])&&this._setEventListener(e,r,a,i)}_setBackgroundColor(e){let t=this.data.backgroundColor||null;e.style.backgroundColor=null===t?"transparent":V.Util.makeHexColor(t[0],t[1],t[2])}_setTextStyle(e){let t,{fontColor:i}=this.data.defaultAppearanceData,n=this.data.defaultAppearanceData.fontSize||9,r=e.style,a=e=>Math.round(10*e)/10;if(this.data.multiLine){let e=Math.abs(this.data.rect[3]-this.data.rect[1]-2),i=e/(Math.round(e/(V.LINE_FACTOR*n))||1);t=Math.min(n,a(i/V.LINE_FACTOR))}else{let e=Math.abs(this.data.rect[3]-this.data.rect[1]-2);t=Math.min(n,a(e/V.LINE_FACTOR))}r.fontSize=`calc(${t}px * var(--scale-factor))`,r.color=V.Util.makeHexColor(i[0],i[1],i[2]),null!==this.data.textAlignment&&(r.textAlign=["left","center","right"][this.data.textAlignment])}_setRequired(e,t){t?e.setAttribute("required",!0):e.removeAttribute("required"),e.setAttribute("aria-required",t)}}class te extends ee{constructor(e){super(e,{isRenderable:e.renderForms||!e.data.hasAppearance&&!!e.data.fieldValue})}setPropertyOnSiblings(e,t,i,n){let r=this.annotationStorage;for(let a of this._getElementsByName(e.name,e.id))a.domElement&&(a.domElement[t]=i),r.setValue(a.id,{[n]:i})}render(){var e,t;let i=this.annotationStorage,n=this.data.id;this.container.classList.add("textWidgetAnnotation");let r=null;if(this.renderForms){let a=i.getValue(n,{value:this.data.fieldValue}),s=a.value||"",o=i.getValue(n,{charLimit:this.data.maxLen}).charLimit;o&&s.length>o&&(s=s.slice(0,o));let l=a.formattedValue||(null==(e=this.data.textContent)?void 0:e.join("\n"))||null;l&&this.data.comb&&(l=l.replaceAll(/\s+/g,""));let h={userValue:s,formattedValue:l,lastCommittedValue:null,commitKey:1};this.data.multiLine?(r=document.createElement("textarea"),r.textContent=null!=l?l:s,this.data.doNotScroll&&(r.style.overflowY="hidden")):(r=document.createElement("input"),r.type="text",r.setAttribute("value",null!=l?l:s),this.data.doNotScroll&&(r.style.overflowX="hidden")),this.data.hasOwnCanvas&&(r.hidden=!0),q.add(r),r.setAttribute("data-element-id",n),r.disabled=this.data.readOnly,r.name=this.data.baseFieldName||this.data.fieldName,r.tabIndex=Y,this._setRequired(r,this.data.required),o&&(r.maxLength=o),r.addEventListener("input",(e=>{i.setValue(n,{value:e.target.value}),this.setPropertyOnSiblings(r,"value",e.target.value,"value"),h.formattedValue=null})),r.addEventListener("resetform",(e=>{var t;let i=null!=(t=this.data.defaultFieldValue)?t:"";r.value=h.userValue=i,h.formattedValue=null}));let c=e=>{let{formattedValue:t}=h;null!=t&&(e.target.value=t),e.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){r.addEventListener("focus",(e=>{let{target:t}=e;h.userValue&&(t.value=h.userValue),h.lastCommittedValue=t.value,h.commitKey=1})),r.addEventListener("updatefromsandbox",(e=>{this.showElementAndHideCanvas(e.target);let t={value(e){var t;h.userValue=null!=(t=e.detail.value)?t:"",i.setValue(n,{value:h.userValue.toString()}),e.target.value=h.userValue},formattedValue(e){let{formattedValue:t}=e.detail;h.formattedValue=t,null!=t&&e.target!==document.activeElement&&(e.target.value=t),i.setValue(n,{formattedValue:t})},selRange(e){e.target.setSelectionRange(...e.detail.selRange)},charLimit:e=>{var t;let{charLimit:r}=e.detail,{target:a}=e;if(0===r)return void a.removeAttribute("maxLength");a.setAttribute("maxLength",r);let s=h.userValue;!s||s.length<=r||(s=s.slice(0,r),a.value=h.userValue=s,i.setValue(n,{value:s}),null==(t=this.linkService.eventBus)||t.dispatch("dispatcheventinsandbox",{source:this,detail:{id:n,name:"Keystroke",value:s,willCommit:!0,commitKey:1,selStart:a.selectionStart,selEnd:a.selectionEnd}}))}};this._dispatchEventFromSandbox(t,e)})),r.addEventListener("keydown",(e=>{var t;h.commitKey=1;let i=-1;if("Escape"===e.key?i=0:"Enter"!==e.key||this.data.multiLine?"Tab"===e.key&&(h.commitKey=3):i=2,-1===i)return;let{value:r}=e.target;h.lastCommittedValue!==r&&(h.lastCommittedValue=r,h.userValue=r,null==(t=this.linkService.eventBus)||t.dispatch("dispatcheventinsandbox",{source:this,detail:{id:n,name:"Keystroke",value:r,willCommit:!0,commitKey:i,selStart:e.target.selectionStart,selEnd:e.target.selectionEnd}}))}));let e=c;c=null,r.addEventListener("blur",(t=>{var i;if(!t.relatedTarget)return;let{value:r}=t.target;h.userValue=r,h.lastCommittedValue!==r&&(null==(i=this.linkService.eventBus)||i.dispatch("dispatcheventinsandbox",{source:this,detail:{id:n,name:"Keystroke",value:r,willCommit:!0,commitKey:h.commitKey,selStart:t.target.selectionStart,selEnd:t.target.selectionEnd}})),e(t)})),null!=(t=this.data.actions)&&t.Keystroke&&r.addEventListener("beforeinput",(e=>{var t;h.lastCommittedValue=null;let{data:i,target:r}=e,{value:a,selectionStart:s,selectionEnd:o}=r,l=s,c=o;switch(e.inputType){case"deleteWordBackward":{let e=a.substring(0,s).match(/\w*[^\w]*$/);e&&(l-=e[0].length);break}case"deleteWordForward":{let e=a.substring(s).match(/^[^\w]*\w*/);e&&(c+=e[0].length);break}case"deleteContentBackward":s===o&&(l-=1);break;case"deleteContentForward":s===o&&(c+=1)}e.preventDefault(),null==(t=this.linkService.eventBus)||t.dispatch("dispatcheventinsandbox",{source:this,detail:{id:n,name:"Keystroke",value:a,change:i||"",willCommit:!1,selStart:l,selEnd:c}})})),this._setEventListeners(r,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(e=>e.target.value))}if(c&&r.addEventListener("blur",c),this.data.comb){let e=(this.data.rect[2]-this.data.rect[0])/o;r.classList.add("comb"),r.style.letterSpacing=`calc(${e}px * var(--scale-factor) - 1ch)`}}else r=document.createElement("div"),r.textContent=this.data.fieldValue,r.style.verticalAlign="middle",r.style.display="table-cell";return this._setTextStyle(r),this._setBackgroundColor(r),this._setDefaultPropertiesFromJS(r),this.container.append(r),this.container}}class ie extends ee{constructor(e){super(e,{isRenderable:!!e.data.hasOwnCanvas})}}class ne extends ee{constructor(e){super(e,{isRenderable:e.renderForms})}render(){let e=this.annotationStorage,t=this.data,i=t.id,n=e.getValue(i,{value:t.exportValue===t.fieldValue}).value;"string"==typeof n&&(n="Off"!==n,e.setValue(i,{value:n})),this.container.classList.add("buttonWidgetAnnotation","checkBox");let r=document.createElement("input");return q.add(r),r.setAttribute("data-element-id",i),r.disabled=t.readOnly,this._setRequired(r,this.data.required),r.type="checkbox",r.name=t.baseFieldName||t.fieldName,n&&r.setAttribute("checked",!0),r.setAttribute("exportValue",t.exportValue),r.tabIndex=Y,r.addEventListener("change",(n=>{let{name:r,checked:a}=n.target;for(let s of this._getElementsByName(r,i)){let i=a&&s.exportValue===t.exportValue;s.domElement&&(s.domElement.checked=i),e.setValue(s.id,{value:i})}e.setValue(i,{value:a})})),r.addEventListener("resetform",(e=>{let i=t.defaultFieldValue||"Off";e.target.checked=i===t.exportValue})),this.enableScripting&&this.hasJSActions&&(r.addEventListener("updatefromsandbox",(t=>{let n={value(t){t.target.checked="Off"!==t.detail.value,e.setValue(i,{value:t.target.checked})}};this._dispatchEventFromSandbox(n,t)})),this._setEventListeners(r,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(e=>e.target.checked))),this._setBackgroundColor(r),this._setDefaultPropertiesFromJS(r),this.container.append(r),this.container}}class re extends ee{constructor(e){super(e,{isRenderable:e.renderForms})}render(){this.container.classList.add("buttonWidgetAnnotation","radioButton");let e=this.annotationStorage,t=this.data,i=t.id,n=e.getValue(i,{value:t.fieldValue===t.buttonValue}).value;"string"==typeof n&&(n=n!==t.buttonValue,e.setValue(i,{value:n}));let r=document.createElement("input");if(q.add(r),r.setAttribute("data-element-id",i),r.disabled=t.readOnly,this._setRequired(r,this.data.required),r.type="radio",r.name=t.baseFieldName||t.fieldName,n&&r.setAttribute("checked",!0),r.tabIndex=Y,r.addEventListener("change",(t=>{let{name:n,checked:r}=t.target;for(let a of this._getElementsByName(n,i))e.setValue(a.id,{value:!1});e.setValue(i,{value:r})})),r.addEventListener("resetform",(e=>{let i=t.defaultFieldValue;e.target.checked=null!=i&&i===t.buttonValue})),this.enableScripting&&this.hasJSActions){let n=t.buttonValue;r.addEventListener("updatefromsandbox",(t=>{let r={value:t=>{let r=n===t.detail.value;for(let n of this._getElementsByName(t.target.name)){let t=r&&n.id===i;n.domElement&&(n.domElement.checked=t),e.setValue(n.id,{value:t})}}};this._dispatchEventFromSandbox(r,t)})),this._setEventListeners(r,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(e=>e.target.checked))}return this._setBackgroundColor(r),this._setDefaultPropertiesFromJS(r),this.container.append(r),this.container}}class ae extends K{constructor(e){super(e,{ignoreBorder:e.data.hasAppearance})}render(){let e=super.render();e.classList.add("buttonWidgetAnnotation","pushButton"),this.data.alternativeText&&(e.title=this.data.alternativeText);let t=e.lastChild;return this.enableScripting&&this.hasJSActions&&t&&(this._setDefaultPropertiesFromJS(t),t.addEventListener("updatefromsandbox",(e=>{this._dispatchEventFromSandbox({},e)}))),e}}class se extends ee{constructor(e){super(e,{isRenderable:e.renderForms})}render(){this.container.classList.add("choiceWidgetAnnotation");let e=this.annotationStorage,t=this.data.id,i=e.getValue(t,{value:this.data.fieldValue}),n=document.createElement("select");q.add(n),n.setAttribute("data-element-id",t),n.disabled=this.data.readOnly,this._setRequired(n,this.data.required),n.name=this.data.baseFieldName||this.data.fieldName,n.tabIndex=Y;let r=this.data.combo&&this.data.options.length>0;this.data.combo||(n.size=this.data.options.length,this.data.multiSelect&&(n.multiple=!0)),n.addEventListener("resetform",(e=>{let t=this.data.defaultFieldValue;for(let i of n.options)i.selected=i.value===t}));for(let h of this.data.options){let e=document.createElement("option");e.textContent=h.displayValue,e.value=h.exportValue,i.value.includes(h.exportValue)&&(e.setAttribute("selected",!0),r=!1),n.append(e)}let a=null;if(r){let e=document.createElement("option");e.value=" ",e.setAttribute("hidden",!0),e.setAttribute("selected",!0),n.prepend(e),a=()=>{e.remove(),n.removeEventListener("input",a),a=null},n.addEventListener("input",a)}let s=e=>{let t=e?"value":"textContent",{options:i,multiple:r}=n;return r?Array.prototype.filter.call(i,(e=>e.selected)).map((e=>e[t])):-1===i.selectedIndex?null:i[i.selectedIndex][t]},o=s(!1),l=e=>{let t=e.target.options;return Array.prototype.map.call(t,(e=>({displayValue:e.textContent,exportValue:e.value})))};return this.enableScripting&&this.hasJSActions?(n.addEventListener("updatefromsandbox",(i=>{let r={value(i){null==a||a();let r=i.detail.value,l=new Set(Array.isArray(r)?r:[r]);for(let e of n.options)e.selected=l.has(e.value);e.setValue(t,{value:s(!0)}),o=s(!1)},multipleSelection(e){n.multiple=!0},remove(i){let r=n.options,a=i.detail.remove;r[a].selected=!1,n.remove(a),r.length>0&&-1===Array.prototype.findIndex.call(r,(e=>e.selected))&&(r[0].selected=!0),e.setValue(t,{value:s(!0),items:l(i)}),o=s(!1)},clear(i){for(;0!==n.length;)n.remove(0);e.setValue(t,{value:null,items:[]}),o=s(!1)},insert(i){let{index:r,displayValue:a,exportValue:h}=i.detail.insert,c=n.children[r],u=document.createElement("option");u.textContent=a,u.value=h,c?c.before(u):n.append(u),e.setValue(t,{value:s(!0),items:l(i)}),o=s(!1)},items(i){let{items:r}=i.detail;for(;0!==n.length;)n.remove(0);for(let e of r){let{displayValue:t,exportValue:i}=e,r=document.createElement("option");r.textContent=t,r.value=i,n.append(r)}n.options.length>0&&(n.options[0].selected=!0),e.setValue(t,{value:s(!0),items:l(i)}),o=s(!1)},indices(i){let n=new Set(i.detail.indices);for(let e of i.target.options)e.selected=n.has(e.index);e.setValue(t,{value:s(!0)}),o=s(!1)},editable(e){e.target.disabled=!e.detail.editable}};this._dispatchEventFromSandbox(r,i)})),n.addEventListener("input",(i=>{var n;let r=s(!0);e.setValue(t,{value:r}),i.preventDefault(),null==(n=this.linkService.eventBus)||n.dispatch("dispatcheventinsandbox",{source:this,detail:{id:t,name:"Keystroke",value:o,changeEx:r,willCommit:!1,commitKey:1,keyDown:!1}})})),this._setEventListeners(n,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"],["input","Validate"]],(e=>e.target.value))):n.addEventListener("input",(function(i){e.setValue(t,{value:s(!0)})})),this.data.combo&&this._setTextStyle(n),this._setBackgroundColor(n),this._setDefaultPropertiesFromJS(n),this.container.append(n),this.container}}class oe extends J{constructor(e){var t,i,n;let{data:r,elements:a}=e;super(e,{isRenderable:!!(null!=(t=r.titleObj)&&t.str||null!=(i=r.contentsObj)&&i.str||null!=(n=r.richText)&&n.str)}),this.elements=a}render(){this.container.classList.add("popupAnnotation");let e=new le({container:this.container,color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate,contentsObj:this.data.contentsObj,richText:this.data.richText,rect:this.data.rect,parentRect:this.data.parentRect||null,parent:this.parent,elements:this.elements,open:this.data.open}),t=[];for(let i of this.elements)i.popup=e,t.push(i.data.id),i.addHighlightArea();return this.container.setAttribute("aria-controls",t.join(",")),this.container}}class le{constructor({container:e,color:t,elements:i,titleObj:n,modificationDate:r,contentsObj:a,richText:s,parent:P,rect:R,parentRect:D,open:L}){Je(this,S),Je(this,E),Je(this,A),Je(this,o,null),Je(this,l,dt(this,A,C).bind(this)),Je(this,h,dt(this,E,T).bind(this)),Je(this,c,dt(this,S,M).bind(this)),Je(this,u,null),Je(this,d,null),Je(this,p,null),Je(this,f,null),Je(this,m,null),Je(this,g,null),Je(this,v,!1),Je(this,y,null),Je(this,x,null),Je(this,b,null),Je(this,_,null),Je(this,w,!1),Mt(this,d,e),Mt(this,_,n),Mt(this,p,a),Mt(this,b,s),Mt(this,m,P),Mt(this,u,t),Mt(this,x,R),Mt(this,g,D),Mt(this,f,i);let I=j.PDFDateString.toDateObject(r);I&&Mt(this,o,P.l10n.get("annotation_date_string",{date:I.toLocaleDateString(),time:I.toLocaleTimeString()})),this.trigger=i.flatMap((e=>e.getElementsToTriggerPopup()));for(let o of this.trigger)o.addEventListener("click",ce(this,c)),o.addEventListener("mouseenter",ce(this,h)),o.addEventListener("mouseleave",ce(this,l));ce(this,d).hidden=!0,L&&dt(this,S,M).call(this)}render(){if(ce(this,y))return;let{page:{view:e},viewport:{rawDims:{pageWidth:t,pageHeight:i,pageX:n,pageY:r}}}=ce(this,m),a=Mt(this,y,document.createElement("div"));if(a.className="popup",ce(this,u)){let e=a.style.outlineColor=V.Util.makeHexColor(...ce(this,u));CSS.supports("background-color","color-mix(in srgb, red 30%, white)")?a.style.backgroundColor=`color-mix(in srgb, ${e} 30%, white)`:a.style.backgroundColor=V.Util.makeHexColor(...ce(this,u).map((e=>Math.floor(.7*(255-e)+e))))}let s=document.createElement("span");s.className="header";let l=document.createElement("h1");if(s.append(l),({dir:l.dir,str:l.textContent}=ce(this,_)),a.append(s),ce(this,o)){let e=document.createElement("span");e.classList.add("popupDate"),ce(this,o).then((t=>{e.textContent=t})),s.append(e)}let h=ce(this,p),c=ce(this,b);if(null==c||!c.str||null!=h&&h.str&&h.str!==c.str){let e=this._formatContents(h);a.append(e)}else X.XfaLayer.render({xfaHtml:c.html,intent:"richText",div:a}),a.lastChild.classList.add("richText","popupContent");let v=!!ce(this,g),w=ce(this,v?g:x);for(let o of ce(this,f))if(!w||null!==V.Util.intersect(o.data.rect,w)){w=o.data.rect,v=!0;break}let S=V.Util.normalizeRect([w[0],e[3]-w[1]+e[1],w[2],e[3]-w[3]+e[1]]),M=v?w[2]-w[0]+5:0,E=S[0]+M,T=S[1],{style:A}=ce(this,d);A.left=100*(E-n)/t+"%",A.top=100*(T-r)/i+"%",ce(this,d).append(a)}_formatContents({str:e,dir:t}){let i=document.createElement("p");i.classList.add("popupContent"),i.dir=t;let n=e.split(/(?:\r\n?|\n)/);for(let r=0,a=n.length;r0&&ce(this,U).set(i.data.id,i);let a=i.render();if(e.hidden&&(a.style.visibility="hidden"),Array.isArray(a))for(let n of a)dt(this,F,B).call(this,n,e.id);else dt(this,F,B).call(this,a,e.id)}dt(this,z,H).call(this),yield this.l10n.translate(i)}))}update({viewport:e}){let t=this.div;this.viewport=e,(0,j.setLayerDimensions)(t,{rotation:e.rotation}),dt(this,z,H).call(this),t.hidden=!1}getEditableAnnotations(){return Array.from(ce(this,U).values())}getEditableAnnotation(e){return ce(this,U).get(e)}}},(e,t)=>{function i(e){return Math.floor(255*Math.max(0,Math.min(1,e))).toString(16).padStart(2,"0")}Object.defineProperty(t,"__esModule",{value:!0}),t.ColorConverters=void 0,t.ColorConverters=class{static CMYK_G([e,t,i,n]){return["G",1-Math.min(1,.3*e+.59*i+.11*t+n)]}static G_CMYK([e]){return["CMYK",0,0,0,1-e]}static G_RGB([e]){return["RGB",e,e,e]}static G_HTML([e]){let t=i(e);return`#${t}${t}${t}`}static RGB_G([e,t,i]){return["G",.3*e+.59*t+.11*i]}static RGB_HTML([e,t,n]){return`#${i(e)}${i(t)}${i(n)}`}static T_HTML(){return"#00000000"}static CMYK_RGB([e,t,i,n]){return["RGB",1-Math.min(1,e+n),1-Math.min(1,i+n),1-Math.min(1,t+n)]}static CMYK_HTML(e){let t=this.CMYK_RGB(e).slice(1);return this.RGB_HTML(t)}static RGB_CMYK([e,t,i]){let n=1-e,r=1-t,a=1-i;return["CMYK",n,r,a,Math.min(n,r,a)]}}},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.XfaLayer=void 0;var n=i(19);t.XfaLayer=class{static setupStorage(e,t,i,n,r){let a=n.getValue(t,{value:null});switch(i.name){case"textarea":if(null!==a.value&&(e.textContent=a.value),"print"===r)break;e.addEventListener("input",(e=>{n.setValue(t,{value:e.target.value})}));break;case"input":if("radio"===i.attributes.type||"checkbox"===i.attributes.type){if(a.value===i.attributes.xfaOn?e.setAttribute("checked",!0):a.value===i.attributes.xfaOff&&e.removeAttribute("checked"),"print"===r)break;e.addEventListener("change",(e=>{n.setValue(t,{value:e.target.checked?e.target.getAttribute("xfaOn"):e.target.getAttribute("xfaOff")})}))}else{if(null!==a.value&&e.setAttribute("value",a.value),"print"===r)break;e.addEventListener("input",(e=>{n.setValue(t,{value:e.target.value})}))}break;case"select":if(null!==a.value)for(let e of i.children)e.attributes.value===a.value&&(e.attributes.selected=!0);e.addEventListener("input",(e=>{let i=e.target.options,r=-1===i.selectedIndex?"":i[i.selectedIndex].value;n.setValue(t,{value:r})}))}}static setAttributes({html:e,element:t,storage:i=null,intent:n,linkService:r}){let{attributes:a}=t,s=e instanceof HTMLAnchorElement;"radio"===a.type&&(a.name=`${a.name}-${n}`);for(let[o,l]of Object.entries(a))if(null!=l)switch(o){case"class":l.length&&e.setAttribute(o,l.join(" "));break;case"dataId":break;case"id":e.setAttribute("data-element-id",l);break;case"style":Object.assign(e.style,l);break;case"textContent":e.textContent=l;break;default:(!s||"href"!==o&&"newWindow"!==o)&&e.setAttribute(o,l)}s&&r.addLinkAttributes(e,a.href,a.newWindow),i&&a.dataId&&this.setupStorage(e,a.dataId,t,i)}static render(e){var t;let i=e.annotationStorage,r=e.linkService,a=e.xfaHtml,s=e.intent||"display",o=document.createElement(a.name);a.attributes&&this.setAttributes({html:o,element:a,intent:s,linkService:r});let l=[[a,-1,o]],h=e.div;if(h.append(o),e.viewport){let t=`matrix(${e.viewport.transform.join(",")})`;h.style.transform=t}"richText"!==s&&h.setAttribute("class","xfaLayer xfaFont");let c=[];for(;l.length>0;){let[e,a,o]=l.at(-1);if(a+1===e.children.length){l.pop();continue}let h=e.children[++l.at(-1)[1]];if(null===h)continue;let u,{name:d}=h;if("#text"!==d){if(u=null!=(t=null==h?void 0:h.attributes)&&t.xmlns?document.createElementNS(h.attributes.xmlns,d):document.createElement(d),o.append(u),h.attributes&&this.setAttributes({html:u,element:h,storage:i,intent:s,linkService:r}),h.children&&h.children.length>0)l.push([h,-1,u]);else if(h.value){let e=document.createTextNode(h.value);n.XfaText.shouldBuildText(d)&&c.push(e),u.append(e)}}else{let e=document.createTextNode(h.value);c.push(e),o.append(e)}}for(let n of h.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))n.setAttribute("readOnly",!0);return{textDivs:c}}static update(e){let t=`matrix(${e.viewport.transform.join(",")})`;e.div.style.transform=t,e.div.hidden=!1}}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NullL10n=void 0,t.getL10nFallback=n;let i={of_pages:"of {{pagesCount}}",page_of_pages:"({{pageNumber}} of {{pagesCount}})",document_properties_kb:"{{size_kb}} KB ({{size_b}} bytes)",document_properties_mb:"{{size_mb}} MB ({{size_b}} bytes)",document_properties_date_string:"{{date}}, {{time}}",document_properties_page_size_unit_inches:"in",document_properties_page_size_unit_millimeters:"mm",document_properties_page_size_orientation_portrait:"portrait",document_properties_page_size_orientation_landscape:"landscape",document_properties_page_size_name_a3:"A3",document_properties_page_size_name_a4:"A4",document_properties_page_size_name_letter:"Letter",document_properties_page_size_name_legal:"Legal",document_properties_page_size_dimension_string:"{{width}} \xd7 {{height}} {{unit}} ({{orientation}})",document_properties_page_size_dimension_name_string:"{{width}} \xd7 {{height}} {{unit}} ({{name}}, {{orientation}})",document_properties_linearized_yes:"Yes",document_properties_linearized_no:"No",additional_layers:"Additional Layers",page_landmark:"Page {{page}}",thumb_page_title:"Page {{page}}",thumb_page_canvas:"Thumbnail of Page {{page}}",find_reached_top:"Reached top of document, continued from bottom",find_reached_bottom:"Reached end of document, continued from top","find_match_count[one]":"{{current}} of {{total}} match","find_match_count[other]":"{{current}} of {{total}} matches","find_match_count_limit[one]":"More than {{limit}} match","find_match_count_limit[other]":"More than {{limit}} matches",find_not_found:"Phrase not found",page_scale_width:"Page Width",page_scale_fit:"Page Fit",page_scale_auto:"Automatic Zoom",page_scale_actual:"Actual Size",page_scale_percent:"{{scale}}%",loading_error:"An error occurred while loading the PDF.",invalid_file_error:"Invalid or corrupted PDF file.",missing_file_error:"Missing PDF file.",unexpected_response_error:"Unexpected server response.",rendering_error:"An error occurred while rendering the page.",annotation_date_string:"{{date}}, {{time}}",printing_not_supported:"Warning: Printing is not fully supported by this browser.",printing_not_ready:"Warning: The PDF is not fully loaded for printing.",web_fonts_disabled:"Web fonts are disabled: unable to use embedded PDF fonts.",free_text2_default_content:"Start typing\u2026",editor_free_text2_aria_label:"Text Editor",editor_ink2_aria_label:"Draw Editor",editor_ink_canvas_aria_label:"User-created image"};function n(e,t){switch(e){case"find_match_count":e=`find_match_count[${1===t.total?"one":"other"}]`;break;case"find_match_count_limit":e=`find_match_count_limit[${1===t.limit?"one":"other"}]`}return i[e]||""}i.print_progress_percent="{{progress}}%";let r={getLanguage(){return ft(this,null,(function*(){return"en-us"}))},getDirection(){return ft(this,null,(function*(){return"ltr"}))},get(e){return ft(this,arguments,(function*(e,t=null,i=n(e,t)){return function(e,t){return t?e.replaceAll(/\{\{\s*(\w+)\s*\}\}/g,((e,i)=>i in t?t[i]:"{{"+i+"}}")):e}(i,t)}))},translate(e){return ft(this,null,(function*(){}))}};t.NullL10n=r},(e,t,i)=>{var n,r,a,s,o,l,h,c,u,d,p,f,m,g,v,y,x,b,_,w,S,M,E,T,A,C,P,R,D,L,I,O,k,N,U,F,B,z,H,V,j,G,W,X,Y,q,Z,Q,J,K,$,ee,te,ie,ne,re,ae,se,oe,le,he,ue,de,pe,fe,me,ge,ve,ye,xe;Object.defineProperty(t,"__esModule",{value:!0}),t.InkEditor=void 0;var be=i(1),_e=i(4),we=i(29),Se=i(5);let Me=16,Ee=class extends _e.AnnotationEditor{constructor(e){super(Ii(Tr({},e),{name:"inkEditor"})),Je(this,x),Je(this,_),Je(this,S),Je(this,E),Je(this,A),Je(this,P),Je(this,D),Je(this,I),Je(this,k),Je(this,U),Je(this,B),Je(this,H),Je(this,j),Je(this,W),Je(this,Y),Je(this,Z),Je(this,J),Je(this,$),Je(this,te),Je(this,he),Je(this,de),Je(this,fe),Je(this,ge),Je(this,ye),Je(this,n,0),Je(this,r,0),Je(this,a,0),Je(this,s,this.canvasContextMenu.bind(this)),Je(this,o,this.canvasPointermove.bind(this)),Je(this,l,this.canvasPointerleave.bind(this)),Je(this,h,this.canvasPointerup.bind(this)),Je(this,c,this.canvasPointerdown.bind(this)),Je(this,u,new Path2D),Je(this,d,!1),Je(this,p,!1),Je(this,f,!1),Je(this,m,null),Je(this,g,0),Je(this,v,0),Je(this,y,null),this.color=e.color||null,this.thickness=e.thickness||null,this.opacity=e.opacity||null,this.paths=[],this.bezierPath2D=[],this.allRawPaths=[],this.currentPath=[],this.scaleFactor=1,this.translationX=this.translationY=0,this.x=0,this.y=0}static initialize(e){this._l10nPromise=new Map(["editor_ink_canvas_aria_label","editor_ink2_aria_label"].map((t=>[t,e.get(t)])))}static updateDefaultParams(e,t){switch(e){case be.AnnotationEditorParamsType.INK_THICKNESS:Ee._defaultThickness=t;break;case be.AnnotationEditorParamsType.INK_COLOR:Ee._defaultColor=t;break;case be.AnnotationEditorParamsType.INK_OPACITY:Ee._defaultOpacity=t/100}}updateParams(e,t){switch(e){case be.AnnotationEditorParamsType.INK_THICKNESS:dt(this,x,b).call(this,t);break;case be.AnnotationEditorParamsType.INK_COLOR:dt(this,_,w).call(this,t);break;case be.AnnotationEditorParamsType.INK_OPACITY:dt(this,S,M).call(this,t)}}static get defaultPropertiesToUpdate(){return[[be.AnnotationEditorParamsType.INK_THICKNESS,Ee._defaultThickness],[be.AnnotationEditorParamsType.INK_COLOR,Ee._defaultColor||_e.AnnotationEditor._defaultLineColor],[be.AnnotationEditorParamsType.INK_OPACITY,Math.round(100*Ee._defaultOpacity)]]}get propertiesToUpdate(){var e;return[[be.AnnotationEditorParamsType.INK_THICKNESS,this.thickness||Ee._defaultThickness],[be.AnnotationEditorParamsType.INK_COLOR,this.color||Ee._defaultColor||_e.AnnotationEditor._defaultLineColor],[be.AnnotationEditorParamsType.INK_OPACITY,Math.round(100*(null!=(e=this.opacity)?e:Ee._defaultOpacity))]]}rebuild(){super.rebuild(),null!==this.div&&(this.canvas||(dt(this,Y,q).call(this),dt(this,Z,Q).call(this)),this.isAttachedToDOM||(this.parent.add(this),dt(this,J,K).call(this)),dt(this,ge,ve).call(this))}remove(){null!==this.canvas&&(this.isEmpty()||this.commit(),this.canvas.width=this.canvas.height=0,this.canvas.remove(),this.canvas=null,ce(this,m).disconnect(),Mt(this,m,null),super.remove())}setParent(e){!this.parent&&e?this._uiManager.removeShouldRescale(this):this.parent&&null===e&&this._uiManager.addShouldRescale(this),super.setParent(e)}onScaleChanging(){let[e,t]=this.parentDimensions,i=this.width*e,n=this.height*t;this.setDimensions(i,n)}enableEditMode(){ce(this,d)||null===this.canvas||(super.enableEditMode(),this.div.draggable=!1,this.canvas.addEventListener("pointerdown",ce(this,c)))}disableEditMode(){!this.isInEditMode()||null===this.canvas||(super.disableEditMode(),this.div.draggable=!this.isEmpty(),this.div.classList.remove("editing"),this.canvas.removeEventListener("pointerdown",ce(this,c)))}onceAdded(){this.div.draggable=!this.isEmpty()}isEmpty(){return 0===this.paths.length||1===this.paths.length&&0===this.paths[0].length}commit(){ce(this,d)||(super.commit(),this.isEditing=!1,this.disableEditMode(),this.setInForeground(),Mt(this,d,!0),this.div.classList.add("disabled"),dt(this,ge,ve).call(this,!0),this.parent.addInkEditorIfNeeded(!0),this.parent.moveEditorInDOM(this),this.div.focus({preventScroll:!0}))}focusin(e){super.focusin(e),this.enableEditMode()}canvasPointerdown(e){0!==e.button||!this.isInEditMode()||ce(this,d)||(this.setInForeground(),e.preventDefault(),"mouse"!==e.type&&this.div.focus(),dt(this,P,R).call(this,e.offsetX,e.offsetY))}canvasContextMenu(e){e.preventDefault()}canvasPointermove(e){e.preventDefault(),dt(this,D,L).call(this,e.offsetX,e.offsetY)}canvasPointerup(e){e.preventDefault(),dt(this,W,X).call(this,e)}canvasPointerleave(e){dt(this,W,X).call(this,e)}render(){if(this.div)return this.div;let e,t;this.width&&(e=this.x,t=this.y),super.render(),Ee._l10nPromise.get("editor_ink2_aria_label").then((e=>{var t;return null==(t=this.div)?void 0:t.setAttribute("aria-label",e)}));let[i,n,r,a]=dt(this,E,T).call(this);if(this.setAt(i,n,0,0),this.setDims(r,a),dt(this,Y,q).call(this),this.width){let[i,n]=this.parentDimensions;this.setAt(e*i,t*n,this.width*i,this.height*n),Mt(this,f,!0),dt(this,J,K).call(this),this.setDims(this.width*i,this.height*n),dt(this,j,G).call(this),dt(this,ye,xe).call(this),this.div.classList.add("disabled")}else this.div.classList.add("editing"),this.enableEditMode();return dt(this,Z,Q).call(this),this.div}setDimensions(e,t){let i=Math.round(e),r=Math.round(t);if(ce(this,g)===i&&ce(this,v)===r)return;Mt(this,g,i),Mt(this,v,r),this.canvas.style.visibility="hidden",ce(this,n)&&Math.abs(ce(this,n)-e/t)>.01&&(t=Math.ceil(e/ce(this,n)),this.setDims(e,t));let[a,s]=this.parentDimensions;this.width=e/a,this.height=t/s,ce(this,d)&&dt(this,$,ee).call(this,e,t),dt(this,J,K).call(this),dt(this,j,G).call(this),this.canvas.style.visibility="visible",this.fixDims()}static deserialize(e,t,i){var s,o,l;if(e instanceof we.InkAnnotationElement)return null;let h=super.deserialize(e,t,i);h.thickness=e.thickness,h.color=be.Util.makeHexColor(...e.color),h.opacity=e.opacity;let[c,u]=h.pageDimensions,p=h.width*c,f=h.height*u,m=h.parentScale,y=e.thickness/2;Mt(h,n,p/f),Mt(h,d,!0),Mt(h,g,Math.round(p)),Mt(h,v,Math.round(f));let{paths:x,rect:b,rotation:_}=e;for(let{bezier:n}of x){n=dt(s=Ee,oe,le).call(s,n,b,_);let e=[];h.paths.push(e);let t=m*(n[0]-y),i=m*(n[1]-y);for(let a=2,s=n.length;a{this.thickness=e,dt(this,ge,ve).call(this)},undo:()=>{this.thickness=t,dt(this,ge,ve).call(this)},mustExec:!0,type:be.AnnotationEditorParamsType.INK_THICKNESS,overwriteIfSameType:!0,keepUndo:!0})},_=new WeakSet,w=function(e){let t=this.color;this.addCommands({cmd:()=>{this.color=e,dt(this,j,G).call(this)},undo:()=>{this.color=t,dt(this,j,G).call(this)},mustExec:!0,type:be.AnnotationEditorParamsType.INK_COLOR,overwriteIfSameType:!0,keepUndo:!0})},S=new WeakSet,M=function(e){e/=100;let t=this.opacity;this.addCommands({cmd:()=>{this.opacity=e,dt(this,j,G).call(this)},undo:()=>{this.opacity=t,dt(this,j,G).call(this)},mustExec:!0,type:be.AnnotationEditorParamsType.INK_OPACITY,overwriteIfSameType:!0,keepUndo:!0})},E=new WeakSet,T=function(){let{parentRotation:e,parentDimensions:[t,i]}=this;switch(e){case 90:return[0,i,i,t];case 180:return[t,i,t,i];case 270:return[t,0,i,t];default:return[0,0,t,i]}},A=new WeakSet,C=function(){let{ctx:e,color:t,opacity:i,thickness:n,parentScale:r,scaleFactor:a}=this;e.lineWidth=n*r/a,e.lineCap="round",e.lineJoin="round",e.miterLimit=10,e.strokeStyle=`${t}${(0,Se.opacityToHex)(i)}`},P=new WeakSet,R=function(e,t){this.canvas.addEventListener("contextmenu",ce(this,s)),this.canvas.addEventListener("pointerleave",ce(this,l)),this.canvas.addEventListener("pointermove",ce(this,o)),this.canvas.addEventListener("pointerup",ce(this,h)),this.canvas.removeEventListener("pointerdown",ce(this,c)),this.isEditing=!0,ce(this,f)||(Mt(this,f,!0),dt(this,J,K).call(this),this.thickness||(this.thickness=Ee._defaultThickness),this.color||(this.color=Ee._defaultColor||_e.AnnotationEditor._defaultLineColor),null!=this.opacity||(this.opacity=Ee._defaultOpacity)),this.currentPath.push([e,t]),Mt(this,p,!1),dt(this,A,C).call(this),Mt(this,y,(()=>{dt(this,U,F).call(this),ce(this,y)&&window.requestAnimationFrame(ce(this,y))})),window.requestAnimationFrame(ce(this,y))},D=new WeakSet,L=function(e,t){let[i,n]=this.currentPath.at(-1);if(this.currentPath.length>1&&e===i&&t===n)return;let r=this.currentPath,a=ce(this,u);if(r.push([e,t]),Mt(this,p,!0),r.length<=2)return a.moveTo(...r[0]),void a.lineTo(e,t);3===r.length&&(Mt(this,u,a=new Path2D),a.moveTo(...r[0])),dt(this,B,z).call(this,a,...r.at(-3),...r.at(-2),e,t)},I=new WeakSet,O=function(){if(0===this.currentPath.length)return;let e=this.currentPath.at(-1);ce(this,u).lineTo(...e)},k=new WeakSet,N=function(e,t){let i;if(Mt(this,y,null),e=Math.min(Math.max(e,0),this.canvas.width),t=Math.min(Math.max(t,0),this.canvas.height),dt(this,D,L).call(this,e,t),dt(this,I,O).call(this),1!==this.currentPath.length)i=dt(this,H,V).call(this);else{let n=[e,t];i=[[n,n.slice(),n.slice(),n]]}let n=ce(this,u),r=this.currentPath;this.currentPath=[],Mt(this,u,new Path2D),this.addCommands({cmd:()=>{this.allRawPaths.push(r),this.paths.push(i),this.bezierPath2D.push(n),this.rebuild()},undo:()=>{this.allRawPaths.pop(),this.paths.pop(),this.bezierPath2D.pop(),0===this.paths.length?this.remove():(this.canvas||(dt(this,Y,q).call(this),dt(this,Z,Q).call(this)),dt(this,ge,ve).call(this))},mustExec:!0})},U=new WeakSet,F=function(){if(!ce(this,p))return;Mt(this,p,!1),Math.ceil(this.thickness*this.parentScale);let e=this.currentPath.slice(-3),t=e.map((e=>e[0])),i=e.map((e=>e[1])),{ctx:n}=(Math.min(...t),Math.max(...t),Math.min(...i),Math.max(...i),this);n.save(),n.clearRect(0,0,this.canvas.width,this.canvas.height);for(let r of this.bezierPath2D)n.stroke(r);n.stroke(ce(this,u)),n.restore()},B=new WeakSet,z=function(e,t,i,n,r,a,s){let o=(t+n)/2,l=(i+r)/2,h=(n+a)/2,c=(r+s)/2;e.bezierCurveTo(o+2*(n-o)/3,l+2*(r-l)/3,h+2*(n-h)/3,c+2*(r-c)/3,h,c)},H=new WeakSet,V=function(){let e=this.currentPath;if(e.length<=2)return[[e[0],e[0],e.at(-1),e.at(-1)]];let t,i=[],[n,r]=e[0];for(t=1;t{this.canvas.removeEventListener("contextmenu",ce(this,s))}),10),dt(this,k,N).call(this,e.offsetX,e.offsetY),this.addToAnnotationStorage(),this.setInBackground()},Y=new WeakSet,q=function(){this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=0,this.canvas.className="inkEditorCanvas",Ee._l10nPromise.get("editor_ink_canvas_aria_label").then((e=>{var t;return null==(t=this.canvas)?void 0:t.setAttribute("aria-label",e)})),this.div.append(this.canvas),this.ctx=this.canvas.getContext("2d")},Z=new WeakSet,Q=function(){Mt(this,m,new ResizeObserver((e=>{let t=e[0].contentRect;t.width&&t.height&&this.setDimensions(t.width,t.height)}))),ce(this,m).observe(this.div)},J=new WeakSet,K=function(){if(!ce(this,f))return;let[e,t]=this.parentDimensions;this.canvas.width=Math.ceil(this.width*e),this.canvas.height=Math.ceil(this.height*t),dt(this,te,ie).call(this)},$=new WeakSet,ee=function(e,t){let i=dt(this,fe,me).call(this),n=(e-i)/ce(this,a),s=(t-i)/ce(this,r);this.scaleFactor=Math.min(n,s)},te=new WeakSet,ie=function(){let e=dt(this,fe,me).call(this)/2;this.ctx.setTransform(this.scaleFactor,0,0,this.scaleFactor,this.translationX*this.scaleFactor+e,this.translationY*this.scaleFactor+e)},ne=new WeakSet,re=function(e){let t=new Path2D;for(let i=0,n=e.length;i=1?(e.minHeight="16px",e.minWidth=`${Math.round(ce(this,n)*Me)}px`):(e.minWidth="16px",e.minHeight=`${Math.round(Me/ce(this,n))}px`)},Je(Te,ne),Je(Te,ae),Je(Te,oe),Yi(Te,"_defaultColor",null),Yi(Te,"_defaultOpacity",1),Yi(Te,"_defaultThickness",1),Yi(Te,"_l10nPromise"),Yi(Te,"_type","ink"),t.InkEditor=Te},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SVGGraphics=void 0;var n=i(6),r=i(1),a=i(10);let s="normal",o="#000000",l=["butt","round","square"],h=["miter","round","bevel"],c=function(e,t="",i=!1){if(URL.createObjectURL&&"undefined"!=typeof Blob&&!i)return URL.createObjectURL(new Blob([e],{type:t}));let n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r=`data:${t};base64,`;for(let a=0,s=e.length;a>2]+n[(3&t)<<4|i>>4]+n[a+1>6:64]+n[a+2>1&2147483647:e>>1&2147483647;t[r]=e}function i(e,i,n,r){let a=r,s=i.length;n[a]=s>>24&255,n[a+1]=s>>16&255,n[a+2]=s>>8&255,n[a+3]=255&s,a+=4,n[a]=255&e.charCodeAt(0),n[a+1]=255&e.charCodeAt(1),n[a+2]=255&e.charCodeAt(2),n[a+3]=255&e.charCodeAt(3),a+=4,n.set(i,a),a+=i.length;let o=function(e,i,n){let r=-1;for(let a=i;a>>8^t[i]}return-1^r}(n,r+4,a);n[a]=o>>24&255,n[a+1]=o>>16&255,n[a+2]=o>>8&255,n[a+3]=255&o}function n(e){let t=e.length,i=65535,n=Math.ceil(t/i),r=new Uint8Array(2+t+5*n+4),a=0;r[a++]=120,r[a++]=156;let s=0;for(;t>i;)r[a++]=0,r[a++]=255,r[a++]=255,r[a++]=0,r[a++]=0,r.set(e.subarray(s,s+i),a),a+=i,s+=i,t-=i;r[a++]=1,r[a++]=255&t,r[a++]=t>>8&255,r[a++]=255&~t,r[a++]=(65535&~t)>>8&255,r.set(e.subarray(s),a),a+=e.length-s;let o=function(e,t,i){let n=1,r=0;for(let a=0;a>24&255,r[a++]=o>>16&255,r[a++]=o>>8&255,r[a++]=255&o,r}function s(t,s,o,l){let h,u,d,p=t.width,f=t.height,m=t.data;switch(s){case r.ImageKind.GRAYSCALE_1BPP:u=0,h=1,d=p+7>>3;break;case r.ImageKind.RGB_24BPP:u=2,h=8,d=3*p;break;case r.ImageKind.RGBA_32BPP:u=6,h=8,d=4*p;break;default:throw new Error("invalid format")}let g=new Uint8Array((1+d)*f),v=0,y=0;for(let e=0;e>24&255,p>>16&255,p>>8&255,255&p,f>>24&255,f>>16&255,f>>8&255,255&f,h,u,0,0,0]),b=function(e){if(!a.isNodeJS)return n(e);try{let t;t=parseInt(process.versions.node)>=8?e:Buffer.from(e);let i=Aye().deflateSync(t,{level:9});return i instanceof Uint8Array?i:new Uint8Array(i)}catch(e){(0,r.warn)("Not compressing PNG because zlib.deflateSync is unavailable: "+e)}return n(e)}(g),_=e.length+36+x.length+b.length,w=new Uint8Array(_),S=0;return w.set(e,S),S+=e.length,i("IHDR",x,w,S),S+=12+x.length,i("IDATA",b,w,S),S+=12+b.length,i("IEND",new Uint8Array(0),w,S),c(w,"image/png",o)}return function(e,t,i){return s(e,void 0===e.kind?r.ImageKind.GRAYSCALE_1BPP:e.kind,t,i)}}();class d{constructor(){this.fontSizeScale=1,this.fontWeight=s,this.fontSize=0,this.textMatrix=r.IDENTITY_MATRIX,this.fontMatrix=r.FONT_IDENTITY_MATRIX,this.leading=0,this.textRenderingMode=r.TextRenderingMode.FILL,this.textMatrixScale=1,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRise=0,this.fillColor=o,this.strokeColor="#000000",this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.lineJoin="",this.lineCap="",this.miterLimit=0,this.dashArray=[],this.dashPhase=0,this.dependencies=[],this.activeClipUrl=null,this.clipGroup=null,this.maskId=""}clone(){return Object.create(this)}setCurrentPoint(e,t){this.x=e,this.y=t}}function p(e){if(Number.isInteger(e))return e.toString();let t=e.toFixed(10),i=t.length-1;if("0"!==t[i])return t;do{i--}while("0"===t[i]);return t.substring(0,"."===t[i]?i:i+1)}function f(e){if(0===e[4]&&0===e[5]){if(0===e[1]&&0===e[2])return 1===e[0]&&1===e[3]?"":`scale(${p(e[0])} ${p(e[3])})`;if(e[0]===e[3]&&e[1]===-e[2])return`rotate(${p(180*Math.acos(e[0])/Math.PI)})`}else if(1===e[0]&&0===e[1]&&0===e[2]&&1===e[3])return`translate(${p(e[4])} ${p(e[5])})`;return`matrix(${p(e[0])} ${p(e[1])} ${p(e[2])} ${p(e[3])} ${p(e[4])} ${p(e[5])})`}let m=0,g=0,v=0;t.SVGGraphics=class{constructor(e,t,i=!1){(0,n.deprecated)("The SVG back-end is no longer maintained and *may* be removed in the future."),this.svgFactory=new n.DOMSVGFactory,this.current=new d,this.transformMatrix=r.IDENTITY_MATRIX,this.transformStack=[],this.extraStack=[],this.commonObjs=e,this.objs=t,this.pendingClip=null,this.pendingEOFill=!1,this.embedFonts=!1,this.embeddedFonts=Object.create(null),this.cssStyle=null,this.forceDataSchema=!!i,this._operatorIdMapping=[];for(let n in r.OPS)this._operatorIdMapping[r.OPS[n]]=n}getObject(e,t=null){return"string"==typeof e?e.startsWith("g_")?this.commonObjs.get(e):this.objs.get(e):t}save(){this.transformStack.push(this.transformMatrix);let e=this.current;this.extraStack.push(e),this.current=e.clone()}restore(){this.transformMatrix=this.transformStack.pop(),this.current=this.extraStack.pop(),this.pendingClip=null,this.tgrp=null}group(e){this.save(),this.executeOpTree(e),this.restore()}loadDependencies(e){let t=e.fnArray,i=e.argsArray;for(let n=0,a=t.length;n{t.get(e,i)}));this.current.dependencies.push(i)}return Promise.all(this.current.dependencies)}transform(e,t,i,n,a,s){let o=[e,t,i,n,a,s];this.transformMatrix=r.Util.transform(this.transformMatrix,o),this.tgrp=null}getSVG(e,t){this.viewport=t;let i=this._initialize(t);return this.loadDependencies(e).then((()=>(this.transformMatrix=r.IDENTITY_MATRIX,this.executeOpTree(this.convertOpList(e)),i)))}convertOpList(e){let t=this._operatorIdMapping,i=e.argsArray,n=e.fnArray,r=[];for(let a=0,s=n.length;a0&&(this.current.lineWidth=e)}setLineCap(e){this.current.lineCap=l[e]}setLineJoin(e){this.current.lineJoin=h[e]}setMiterLimit(e){this.current.miterLimit=e}setStrokeAlpha(e){this.current.strokeAlpha=e}setStrokeRGBColor(e,t,i){this.current.strokeColor=r.Util.makeHexColor(e,t,i)}setFillAlpha(e){this.current.fillAlpha=e}setFillRGBColor(e,t,i){this.current.fillColor=r.Util.makeHexColor(e,t,i),this.current.tspan=this.svgFactory.createElement("svg:tspan"),this.current.xcoords=[],this.current.ycoords=[]}setStrokeColorN(e){this.current.strokeColor=this._makeColorN_Pattern(e)}setFillColorN(e){this.current.fillColor=this._makeColorN_Pattern(e)}shadingFill(e){let{width:t,height:i}=this.viewport,n=r.Util.inverseTransform(this.transformMatrix),[a,s,o,l]=r.Util.getAxialAlignedBoundingBox([0,0,t,i],n),h=this.svgFactory.createElement("svg:rect");h.setAttributeNS(null,"x",a),h.setAttributeNS(null,"y",s),h.setAttributeNS(null,"width",o-a),h.setAttributeNS(null,"height",l-s),h.setAttributeNS(null,"fill",this._makeShadingPattern(e)),this.current.fillAlpha<1&&h.setAttributeNS(null,"fill-opacity",this.current.fillAlpha),this._ensureTransformGroup().append(h)}_makeColorN_Pattern(e){return"TilingPattern"===e[0]?this._makeTilingPattern(e):this._makeShadingPattern(e)}_makeTilingPattern(e){let t=e[1],i=e[2],n=e[3]||r.IDENTITY_MATRIX,[a,s,o,l]=e[4],h=e[5],c=e[6],u=e[7],d="shading"+v++,[p,f,m,g]=r.Util.normalizeRect([...r.Util.applyTransform([a,s],n),...r.Util.applyTransform([o,l],n)]),[y,x]=r.Util.singularValueDecompose2dScale(n),b=h*y,_=c*x,w=this.svgFactory.createElement("svg:pattern");w.setAttributeNS(null,"id",d),w.setAttributeNS(null,"patternUnits","userSpaceOnUse"),w.setAttributeNS(null,"width",b),w.setAttributeNS(null,"height",_),w.setAttributeNS(null,"x",`${p}`),w.setAttributeNS(null,"y",`${f}`);let S=this.svg,M=this.transformMatrix,E=this.current.fillColor,T=this.current.strokeColor,A=this.svgFactory.create(m-p,g-f);if(this.svg=A,this.transformMatrix=n,2===u){let e=r.Util.makeHexColor(...t);this.current.fillColor=e,this.current.strokeColor=e}return this.executeOpTree(this.convertOpList(i)),this.svg=S,this.transformMatrix=M,this.current.fillColor=E,this.current.strokeColor=T,w.append(A.childNodes[0]),this.defs.append(w),`url(#${d})`}_makeShadingPattern(e){switch("string"==typeof e&&(e=this.objs.get(e)),e[0]){case"RadialAxial":let t,i="shading"+v++,n=e[3];switch(e[1]){case"axial":let n=e[4],r=e[5];t=this.svgFactory.createElement("svg:linearGradient"),t.setAttributeNS(null,"id",i),t.setAttributeNS(null,"gradientUnits","userSpaceOnUse"),t.setAttributeNS(null,"x1",n[0]),t.setAttributeNS(null,"y1",n[1]),t.setAttributeNS(null,"x2",r[0]),t.setAttributeNS(null,"y2",r[1]);break;case"radial":let a=e[4],s=e[5],o=e[6],l=e[7];t=this.svgFactory.createElement("svg:radialGradient"),t.setAttributeNS(null,"id",i),t.setAttributeNS(null,"gradientUnits","userSpaceOnUse"),t.setAttributeNS(null,"cx",s[0]),t.setAttributeNS(null,"cy",s[1]),t.setAttributeNS(null,"r",l),t.setAttributeNS(null,"fx",a[0]),t.setAttributeNS(null,"fy",a[1]),t.setAttributeNS(null,"fr",o);break;default:throw new Error(`Unknown RadialAxial type: ${e[1]}`)}for(let e of n){let i=this.svgFactory.createElement("svg:stop");i.setAttributeNS(null,"offset",e[0]),i.setAttributeNS(null,"stop-color",e[1]),t.append(i)}return this.defs.append(t),`url(#${i})`;case"Mesh":return(0,r.warn)("Unimplemented pattern Mesh"),null;case"Dummy":return"hotpink";default:throw new Error(`Unknown IR type: ${e[0]}`)}}setDash(e,t){this.current.dashArray=e,this.current.dashPhase=t}constructPath(e,t){let i=this.current,n=i.x,a=i.y,s=[],o=0;for(let l of e)switch(0|l){case r.OPS.rectangle:n=t[o++],a=t[o++];let e=n+t[o++],i=a+t[o++];s.push("M",p(n),p(a),"L",p(e),p(a),"L",p(e),p(i),"L",p(n),p(i),"Z");break;case r.OPS.moveTo:n=t[o++],a=t[o++],s.push("M",p(n),p(a));break;case r.OPS.lineTo:n=t[o++],a=t[o++],s.push("L",p(n),p(a));break;case r.OPS.curveTo:n=t[o+4],a=t[o+5],s.push("C",p(t[o]),p(t[o+1]),p(t[o+2]),p(t[o+3]),p(n),p(a)),o+=6;break;case r.OPS.curveTo2:s.push("C",p(n),p(a),p(t[o]),p(t[o+1]),p(t[o+2]),p(t[o+3])),n=t[o+2],a=t[o+3],o+=4;break;case r.OPS.curveTo3:n=t[o+2],a=t[o+3],s.push("C",p(t[o]),p(t[o+1]),p(n),p(a),p(n),p(a)),o+=4;break;case r.OPS.closePath:s.push("Z")}s=s.join(" "),i.path&&e.length>0&&e[0]!==r.OPS.rectangle&&e[0]!==r.OPS.moveTo?s=i.path.getAttributeNS(null,"d")+s:(i.path=this.svgFactory.createElement("svg:path"),this._ensureTransformGroup().append(i.path)),i.path.setAttributeNS(null,"d",s),i.path.setAttributeNS(null,"fill","none"),i.element=i.path,i.setCurrentPoint(n,a)}endPath(){let e=this.current;if(e.path=null,!this.pendingClip)return;if(!e.element)return void(this.pendingClip=null);let t="clippath"+m++,i=this.svgFactory.createElement("svg:clipPath");i.setAttributeNS(null,"id",t),i.setAttributeNS(null,"transform",f(this.transformMatrix));let n=e.element.cloneNode(!0);if("evenodd"===this.pendingClip?n.setAttributeNS(null,"clip-rule","evenodd"):n.setAttributeNS(null,"clip-rule","nonzero"),this.pendingClip=null,i.append(n),this.defs.append(i),e.activeClipUrl){e.clipGroup=null;for(let e of this.extraStack)e.clipGroup=null;i.setAttributeNS(null,"clip-path",e.activeClipUrl)}e.activeClipUrl=`url(#${t})`,this.tgrp=null}clip(e){this.pendingClip=e}closePath(){let e=this.current;if(e.path){let t=`${e.path.getAttributeNS(null,"d")}Z`;e.path.setAttributeNS(null,"d",t)}}setLeading(e){this.current.leading=-e}setTextRise(e){this.current.textRise=e}setTextRenderingMode(e){this.current.textRenderingMode=e}setHScale(e){this.current.textHScale=e/100}setRenderingIntent(e){}setFlatness(e){}setGState(e){for(let[t,i]of e)switch(t){case"LW":this.setLineWidth(i);break;case"LC":this.setLineCap(i);break;case"LJ":this.setLineJoin(i);break;case"ML":this.setMiterLimit(i);break;case"D":this.setDash(i[0],i[1]);break;case"RI":this.setRenderingIntent(i);break;case"FL":this.setFlatness(i);break;case"Font":this.setFont(i);break;case"CA":this.setStrokeAlpha(i);break;case"ca":this.setFillAlpha(i);break;default:(0,r.warn)(`Unimplemented graphic state operator ${t}`)}}fill(){let e=this.current;e.element&&(e.element.setAttributeNS(null,"fill",e.fillColor),e.element.setAttributeNS(null,"fill-opacity",e.fillAlpha),this.endPath())}stroke(){let e=this.current;e.element&&(this._setStrokeAttributes(e.element),e.element.setAttributeNS(null,"fill","none"),this.endPath())}_setStrokeAttributes(e,t=1){let i=this.current,n=i.dashArray;1!==t&&n.length>0&&(n=n.map((function(e){return t*e}))),e.setAttributeNS(null,"stroke",i.strokeColor),e.setAttributeNS(null,"stroke-opacity",i.strokeAlpha),e.setAttributeNS(null,"stroke-miterlimit",p(i.miterLimit)),e.setAttributeNS(null,"stroke-linecap",i.lineCap),e.setAttributeNS(null,"stroke-linejoin",i.lineJoin),e.setAttributeNS(null,"stroke-width",p(t*i.lineWidth)+"px"),e.setAttributeNS(null,"stroke-dasharray",n.map(p).join(" ")),e.setAttributeNS(null,"stroke-dashoffset",p(t*i.dashPhase)+"px")}eoFill(){var e;null==(e=this.current.element)||e.setAttributeNS(null,"fill-rule","evenodd"),this.fill()}fillStroke(){this.stroke(),this.fill()}eoFillStroke(){var e;null==(e=this.current.element)||e.setAttributeNS(null,"fill-rule","evenodd"),this.fillStroke()}closeStroke(){this.closePath(),this.stroke()}closeFillStroke(){this.closePath(),this.fillStroke()}closeEOFillStroke(){this.closePath(),this.eoFillStroke()}paintSolidColorImageMask(){let e=this.svgFactory.createElement("svg:rect");e.setAttributeNS(null,"x","0"),e.setAttributeNS(null,"y","0"),e.setAttributeNS(null,"width","1px"),e.setAttributeNS(null,"height","1px"),e.setAttributeNS(null,"fill",this.current.fillColor),this._ensureTransformGroup().append(e)}paintImageXObject(e){let t=this.getObject(e);t?this.paintInlineImageXObject(t):(0,r.warn)(`Dependent image with object ID ${e} is not ready yet`)}paintInlineImageXObject(e,t){let i=e.width,n=e.height,r=u(e,this.forceDataSchema,!!t),a=this.svgFactory.createElement("svg:rect");a.setAttributeNS(null,"x","0"),a.setAttributeNS(null,"y","0"),a.setAttributeNS(null,"width",p(i)),a.setAttributeNS(null,"height",p(n)),this.current.element=a,this.clip("nonzero");let s=this.svgFactory.createElement("svg:image");s.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r),s.setAttributeNS(null,"x","0"),s.setAttributeNS(null,"y",p(-n)),s.setAttributeNS(null,"width",p(i)+"px"),s.setAttributeNS(null,"height",p(n)+"px"),s.setAttributeNS(null,"transform",`scale(${p(1/i)} ${p(-1/n)})`),t?t.append(s):this._ensureTransformGroup().append(s)}paintImageMaskXObject(e){let t=this.getObject(e.data,e);if(t.bitmap)return void(0,r.warn)("paintImageMaskXObject: ImageBitmap support is not implemented, ensure that the `isOffscreenCanvasSupported` API parameter is disabled.");let i=this.current,n=t.width,a=t.height,s=i.fillColor;i.maskId="mask"+g++;let o=this.svgFactory.createElement("svg:mask");o.setAttributeNS(null,"id",i.maskId);let l=this.svgFactory.createElement("svg:rect");l.setAttributeNS(null,"x","0"),l.setAttributeNS(null,"y","0"),l.setAttributeNS(null,"width",p(n)),l.setAttributeNS(null,"height",p(a)),l.setAttributeNS(null,"fill",s),l.setAttributeNS(null,"mask",`url(#${i.maskId})`),this.defs.append(o),this._ensureTransformGroup().append(l),this.paintInlineImageXObject(t,o)}paintFormXObjectBegin(e,t){if(Array.isArray(e)&&6===e.length&&this.transform(e[0],e[1],e[2],e[3],e[4],e[5]),t){let e=t[2]-t[0],i=t[3]-t[1],n=this.svgFactory.createElement("svg:rect");n.setAttributeNS(null,"x",t[0]),n.setAttributeNS(null,"y",t[1]),n.setAttributeNS(null,"width",p(e)),n.setAttributeNS(null,"height",p(i)),this.current.element=n,this.clip("nonzero"),this.endPath()}}paintFormXObjectEnd(){}_initialize(e){let t=this.svgFactory.create(e.width,e.height),i=this.svgFactory.createElement("svg:defs");t.append(i),this.defs=i;let n=this.svgFactory.createElement("svg:g");return n.setAttributeNS(null,"transform",f(e.transform)),t.append(n),this.svg=n,t}_ensureClipGroup(){if(!this.current.clipGroup){let e=this.svgFactory.createElement("svg:g");e.setAttributeNS(null,"clip-path",this.current.activeClipUrl),this.svg.append(e),this.current.clipGroup=e}return this.current.clipGroup}_ensureTransformGroup(){return this.tgrp||(this.tgrp=this.svgFactory.createElement("svg:g"),this.tgrp.setAttributeNS(null,"transform",f(this.transformMatrix)),this.current.activeClipUrl?this._ensureClipGroup().append(this.tgrp):this.svg.append(this.tgrp)),this.tgrp}}}],__webpack_module_cache__={};function __w_pdfjs_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var i=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](i,i.exports,__w_pdfjs_require__),i.exports}var __webpack_exports__={};return(()=>{var e=__webpack_exports__;Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"AbortException",{enumerable:!0,get:function(){return t.AbortException}}),Object.defineProperty(e,"AnnotationEditorLayer",{enumerable:!0,get:function(){return a.AnnotationEditorLayer}}),Object.defineProperty(e,"AnnotationEditorParamsType",{enumerable:!0,get:function(){return t.AnnotationEditorParamsType}}),Object.defineProperty(e,"AnnotationEditorType",{enumerable:!0,get:function(){return t.AnnotationEditorType}}),Object.defineProperty(e,"AnnotationEditorUIManager",{enumerable:!0,get:function(){return s.AnnotationEditorUIManager}}),Object.defineProperty(e,"AnnotationLayer",{enumerable:!0,get:function(){return o.AnnotationLayer}}),Object.defineProperty(e,"AnnotationMode",{enumerable:!0,get:function(){return t.AnnotationMode}}),Object.defineProperty(e,"CMapCompressionType",{enumerable:!0,get:function(){return t.CMapCompressionType}}),Object.defineProperty(e,"FeatureTest",{enumerable:!0,get:function(){return t.FeatureTest}}),Object.defineProperty(e,"GlobalWorkerOptions",{enumerable:!0,get:function(){return l.GlobalWorkerOptions}}),Object.defineProperty(e,"ImageKind",{enumerable:!0,get:function(){return t.ImageKind}}),Object.defineProperty(e,"InvalidPDFException",{enumerable:!0,get:function(){return t.InvalidPDFException}}),Object.defineProperty(e,"MissingPDFException",{enumerable:!0,get:function(){return t.MissingPDFException}}),Object.defineProperty(e,"OPS",{enumerable:!0,get:function(){return t.OPS}}),Object.defineProperty(e,"PDFDataRangeTransport",{enumerable:!0,get:function(){return i.PDFDataRangeTransport}}),Object.defineProperty(e,"PDFDateString",{enumerable:!0,get:function(){return n.PDFDateString}}),Object.defineProperty(e,"PDFWorker",{enumerable:!0,get:function(){return i.PDFWorker}}),Object.defineProperty(e,"PasswordResponses",{enumerable:!0,get:function(){return t.PasswordResponses}}),Object.defineProperty(e,"PermissionFlag",{enumerable:!0,get:function(){return t.PermissionFlag}}),Object.defineProperty(e,"PixelsPerInch",{enumerable:!0,get:function(){return n.PixelsPerInch}}),Object.defineProperty(e,"PromiseCapability",{enumerable:!0,get:function(){return t.PromiseCapability}}),Object.defineProperty(e,"RenderingCancelledException",{enumerable:!0,get:function(){return n.RenderingCancelledException}}),e.SVGGraphics=void 0,Object.defineProperty(e,"UnexpectedResponseException",{enumerable:!0,get:function(){return t.UnexpectedResponseException}}),Object.defineProperty(e,"Util",{enumerable:!0,get:function(){return t.Util}}),Object.defineProperty(e,"VerbosityLevel",{enumerable:!0,get:function(){return t.VerbosityLevel}}),Object.defineProperty(e,"XfaLayer",{enumerable:!0,get:function(){return h.XfaLayer}}),Object.defineProperty(e,"build",{enumerable:!0,get:function(){return i.build}}),Object.defineProperty(e,"createValidAbsoluteUrl",{enumerable:!0,get:function(){return t.createValidAbsoluteUrl}}),Object.defineProperty(e,"getDocument",{enumerable:!0,get:function(){return i.getDocument}}),Object.defineProperty(e,"getFilenameFromUrl",{enumerable:!0,get:function(){return n.getFilenameFromUrl}}),Object.defineProperty(e,"getPdfFilenameFromUrl",{enumerable:!0,get:function(){return n.getPdfFilenameFromUrl}}),Object.defineProperty(e,"getXfaPageViewport",{enumerable:!0,get:function(){return n.getXfaPageViewport}}),Object.defineProperty(e,"isDataScheme",{enumerable:!0,get:function(){return n.isDataScheme}}),Object.defineProperty(e,"isPdfFile",{enumerable:!0,get:function(){return n.isPdfFile}}),Object.defineProperty(e,"loadScript",{enumerable:!0,get:function(){return n.loadScript}}),Object.defineProperty(e,"normalizeUnicode",{enumerable:!0,get:function(){return t.normalizeUnicode}}),Object.defineProperty(e,"renderTextLayer",{enumerable:!0,get:function(){return r.renderTextLayer}}),Object.defineProperty(e,"setLayerDimensions",{enumerable:!0,get:function(){return n.setLayerDimensions}}),Object.defineProperty(e,"shadow",{enumerable:!0,get:function(){return t.shadow}}),Object.defineProperty(e,"updateTextLayer",{enumerable:!0,get:function(){return r.updateTextLayer}}),Object.defineProperty(e,"version",{enumerable:!0,get:function(){return i.version}});var t=__w_pdfjs_require__(1),i=__w_pdfjs_require__(2),n=__w_pdfjs_require__(6),r=__w_pdfjs_require__(26),a=__w_pdfjs_require__(27),s=__w_pdfjs_require__(5),o=__w_pdfjs_require__(29),l=__w_pdfjs_require__(14),h=__w_pdfjs_require__(31);let c=__w_pdfjs_require__(34).SVGGraphics;e.SVGGraphics=c})(),__webpack_exports__})(),"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf",[],e):"object"==typeof exports?exports["pdfjs-dist/build/pdf"]=e():t["pdfjs-dist/build/pdf"]=t.pdfjsLib=e()}));!function(){if("undefined"!=typeof document&&!document.getElementById("f23e8d9905d90cb99a552605be098e1250909936ef3567ea1c2d73a5b06d4620")){var e=document.createElement("style");e.id="f23e8d9905d90cb99a552605be098e1250909936ef3567ea1c2d73a5b06d4620",e.textContent='@import"https://at.alicdn.com/t/c/font_2809422_kipm6ycaet.css";@import"https://at.alicdn.com/t/c/font_2802048_dc945363jlf.css";.model-layout-switch-bar{position:absolute;bottom:0;width:100%;height:24px;background:#ffffff;opacity:.7;display:flex;font-size:14px;line-height:1;overflow-x:scroll;overflow-y:hidden;z-index:1}.model-layout-switch-bar .model-layout-switch-bar-content{white-space:nowrap}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item{position:relative;display:inline-block;padding:3px 10px 0;color:#000;height:22px;cursor:pointer;transform:translate(0)}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:before{content:"";position:absolute;inset:0;z-index:-1;background:#fff;border:1px solid #000;border-top:0px}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:hover{color:#8080f0}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:nth-child(n+2){margin-left:-1px}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item.activate{color:#fff!important}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item.activate:before{background:#212830!important}.model-layout-switch-bar.hidden{display:none}.model-layout-switch-bar::-webkit-scrollbar{display:none}.pop-panel{z-index:99999999;top:calc(70% - 100px);left:calc(90% - 160px);position:absolute;background:#ffffff;color:#333;border-radius:4px;width:160px;box-shadow:0 12px 48px 16px #00000008,0 9px 28px #0000000d,0 6px 16px -8px #00000014}.pop-panel .pop-panel-header{font-size:16px;font-weight:bolder;padding:16px 24px 8px;color:#333;border-bottom:1px solid #EFEFEF;cursor:move;user-select:none}.pop-panel .pop-panel-body{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 24px}.pop-panel .pop-panel-body .pop-panel-item{display:inline-block;cursor:pointer;margin-right:16px;font-size:16px}.pop-panel .pop-panel-body .pop-panel-item .gemini-viewer-icon{font-size:24px}.pop-panel .pop-panel-body .pop-panel-item:last-child{margin-right:0}.pop-panel .pop-panel-body .pop-panel-item:hover,.pop-panel .pop-panel-body .pop-panel-item.active{color:#2c7be5}.pop-panel .pop-panel-body .pop-panel-item.disable{color:#999;cursor:not-allowed}.progress-bar{z-index:3;bottom:20%;left:25%;position:absolute;color:#ffffffa0;width:50%;user-select:none;font-size:14px}.progress-bar.hidden{display:none}.progress-bar .progress-bar-item{width:100%;text-align:center;padding:2px}.follow-tooltip{z-index:99999999;position:absolute;left:-500px;padding:6px;background:rgba(25,25,25,.3);color:#fffc;font-size:12px;border-radius:2px}.layer-manager{position:absolute;top:30px;left:20px;width:330px;height:600px;max-height:90%;border-radius:4px;box-shadow:1px 3px 10px #0006;background-color:#ffffffe6;color:#000;z-index:2;overflow:hidden;user-select:none}.layer-manager:hover{background-color:#fffffff2}.layer-manager input[type=checkbox]{width:16px;height:16px;cursor:pointer}.layer-manager input[type=color]{width:30px;height:16px;border:0;padding:0;background-color:#0000;overflow:hidden}.layer-manager ::-webkit-color-swatch{position:relative;margin-top:-5px;width:40px;height:16px}.layer-manager .header{display:flex;align-items:center;padding-left:6px;width:100%;height:40px;border-bottom:1px solid #ccc;cursor:move;font-size:16px}.layer-manager .header .close{position:absolute;right:8px;cursor:pointer;padding:10px}.layer-manager .header .close:hover{font-weight:700}.layer-manager .layer-list{width:100%;height:calc(100% - 40px);padding:0;margin:0;border-bottom:1px solid #ccc;overflow-y:scroll}.layer-manager .layer-list-item{display:flex;align-items:center;padding:6px;border-bottom:1px solid #ccc;white-space:nowrap}.layer-manager .layer-list-item:hover{background-color:#f0f8ff}.layer-manager .popup-layer-color{display:inline-block;margin-left:5px;width:20px;font-size:12px}.layer-manager .item-color{margin-left:8px;font-size:12px;border:1px solid black;width:18px;height:16px;min-width:18px}.layer-manager .item-layer-name{display:inline-block;margin-left:10px;padding:1px 0;width:280px;font-size:12px;text-overflow:ellipsis;overflow:hidden}.layer-manager .popup-freeze{margin-right:5px;color:#ccc;font-size:12px;width:50px}#axisGizmo{width:100px;height:100px;position:absolute;display:block;bottom:1px;left:10px;background:#ffffff00}.bottom-bar{position:absolute;bottom:0;right:0;display:flex;color:#666;z-index:3;overflow:hidden;user-select:none}.bottom-bar i{font-size:18px;padding:3px;align-self:center;opacity:.4;cursor:pointer;line-height:1}.bottom-bar i:hover,.bottom-bar i.active{color:#2c7be5;opacity:1}.bottom-bar .fps{width:4rem}.bottom-bar span{align-self:center;padding:4px;font-size:14px}#gemini-viewer-threejs-statistics-tooltip,#gemini-viewer-threejs-tips-tooltip,#gemini-viewer-threejs-cameraInfo-tooltip{position:absolute;right:5px;bottom:30px;background:#666666;color:#fff;padding:8px 8px 5px;font-size:.8rem;border-radius:4px;z-index:3;opacity:.9;user-select:none}#gemini-viewer-threejs-statistics-tooltip p,#gemini-viewer-threejs-tips-tooltip p,#gemini-viewer-threejs-cameraInfo-tooltip p{padding-bottom:3px;margin:3px}#gemini-viewer-threejs-statistics-tooltip p span,#gemini-viewer-threejs-tips-tooltip p span,#gemini-viewer-threejs-cameraInfo-tooltip p span{float:left;margin-right:10px}.context-menu{position:absolute;box-sizing:border-box;background-color:#fff;width:200px;padding:2px;border-radius:2px;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;cursor:pointer;z-index:2}.context-menu ul{list-style:none;padding:0}.context-menu ul:last-child li{border-bottom:0px}.context-menu li{height:2rem;padding:.5rem;box-sizing:border-box}.context-menu li:hover{background-color:#d3d3d3}.context-menu li.disabled{color:#ccc;cursor:not-allowed}.context-menu li:last-child{border-bottom:1px solid #000}#navCube{width:135px;height:135px;position:absolute;bottom:10px;right:10px;z-index:1;pointer-events:none;cursor:pointer}#navCube:hover{opacity:1}.css3d-navcube .navcube-plane{backface-visibility:hidden;z-index:1;transition:all .2s}.css3d-navcube .navcube-plane.outer{opacity:.7;background:linear-gradient(-45deg,transparent 15px,#efefef 0) bottom right,linear-gradient(-135deg,transparent 15px,#efefef 0) top right,linear-gradient(135deg,transparent 15px,#efefef 0) top left,linear-gradient(45deg,transparent 15px,#efefef 0) bottom left;background-size:70% 70%;background-repeat:no-repeat}.css3d-navcube .navcube-plane.inner{margin:2px;font-size:30px;text-align:center;line-height:100px;background:linear-gradient(-45deg,transparent 14px,#2c7be5 0) bottom right,linear-gradient(-135deg,transparent 14px,#2c7be5 0) top right,linear-gradient(135deg,transparent 14px,#2c7be5 0) top left,linear-gradient(45deg,transparent 14px,#2c7be5 0) bottom left;background-size:70% 70%;background-repeat:no-repeat}.css3d-navcube .navcube-plane:hover{opacity:1!important}.css3d-navcube .navcube-edge{opacity:0;z-index:2;transition:all .2s}.css3d-navcube .navcube-edge:hover{opacity:1!important}.css3d-navcube .navcube-corner{opacity:.7;backface-visibility:hidden;box-sizing:content-box;transform-origin:50% 33%;top:4px;z-index:3;transition:all .2s}.css3d-navcube .navcube-corner-plane{opacity:0;backface-visibility:hidden;transform-origin:bottom;top:-6.5px;z-index:3;transition:all .2s}.css3d-navcube .highlight{opacity:1}#gemini-viewer-threejs-overview-map{width:200px;height:200px;top:10px;left:10px;position:absolute;z-index:1;border:1px #50505090 solid;background-color:#80808030}.gemini-spinner{display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;width:2em;position:absolute;pointer-events:none;top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px}.gemini-spinner.hidden{display:none}.gemini-spinner span{width:.3em;height:1em;background-color:#3cefff}.gemini-spinner span:nth-of-type(1){animation:grow 1s -.45s ease-in-out infinite}.gemini-spinner span:nth-of-type(2){animation:grow 1s -.3s ease-in-out infinite}.gemini-spinner span:nth-of-type(3){animation:grow 1s -.15s ease-in-out infinite}.gemini-spinner span:nth-of-type(4){animation:grow 1s ease-in-out infinite}@keyframes grow{0%,to{transform:scaleY(1)}50%{transform:scaleY(2)}}.statsOutput{position:absolute;opacity:.6;top:1px;left:1px}.toolbar{position:absolute;display:flex;box-sizing:border-box;height:68px;left:50%;bottom:40px;padding:8px 20px;box-shadow:1px 3px 10px #0006;border-radius:4px;background:rgba(255,255,255,.8);transform:translate(-50%);align-items:center;z-index:10;user-select:none}.toolbar .toolbar-group{display:flex;padding:0 2px;box-sizing:border-box}.toolbar .toolbar-group-division{width:1px;background-color:#999c;height:60%}.toolbar .toolbar-menu{display:flex;box-sizing:border-box;flex-direction:column;word-break:break-word;width:50px;height:50px;padding:3px 1px;margin:0 2px;transition:all .3s;cursor:pointer;color:#666;border-radius:4px}.toolbar .toolbar-menu.active{color:#2c7be5}.toolbar .toolbar-menu .icon{width:24px;height:24px;margin:auto;font-size:24px;line-height:normal}.toolbar .toolbar-menu span{display:block;width:100%;margin:auto;font-size:12px;text-align:center;user-select:none}.toolbar .toolbar-menu-active{color:#2c7be5;background-color:#fffc}.toolbar .toolbar-parent-menu{position:relative}.toolbar .toolbar-parent-menu-active .toolbar-sub-menu{display:block}.toolbar .toolbar-parent-menu-active .toolbar-sub-menu-list{background:rgba(255,255,255,.8)}.toolbar .toolbar-parent-menu:after{content:"";position:absolute;box-sizing:border-box;width:0;height:0;right:2px;top:2px;border-width:4px;border-style:solid;border-top-color:#666;border-right-color:#666;border-bottom-color:transparent;border-left-color:transparent;border-radius:1px}.toolbar .toolbar-sub-menu{display:none;position:absolute;min-width:50px;bottom:100%;box-shadow:1px 3px 10px #0006}.toolbar .toolbar-sub-menu .toolbar-sub-menu-list{margin-bottom:2px;border-radius:4px}.toolbar .toolbar-sub-menu .toolbar-sub-menu-list .toolbar-menu{margin:0}@media screen and (max-width:768px){.toolbar .toolbar-menu{width:30px;height:30px;margin:0}.toolbar .toolbar-menu .icon+span{display:none}.toolbar .toolbar-parent-menu:after{top:1px;right:0}.toolbar .toolbar-sub-menu{min-width:30px}}#gemini-viewer-threejs-viewCube{width:150px;height:150px;position:absolute;bottom:10px;right:10px;z-index:1}.anchor{position:absolute;top:0;left:0;opacity:0;width:20px;height:20px;transform:translate(-50%,-50%);pointer-events:none;user-select:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAADjRJREFUeF7tXQnQttUYvq4Zxr5MqBgaihRlKakUU7SYSBQljUhaxijtso2MTCrRn8YoldKIUlIIJRplSyKyqzGyJDSDLGHmMtfvvOb19n7fe7Zn+/7nnnnn+/7/O8t9zrne+5xzn3sh1hCS9GUA20UO9xqS20eWHXQxDpr7BOZHAMyfrBEA8+dllAAJX65BFB0lwCgBxjPAHAyMW8C4BQxCghczOW4B4xYwbgHjFjDqAWYxMJ4BxjNA8fY6iAbGM8B4BhjPAGvKGUDSYwA8FcAmAJ4EYOPw8/6R4upvAH4I4Efh580AbiJ5W2T9wRRbEWcASTuFBX/a1KLfq/Iq/HsKDN8NgLiych+tNzdYAEh6JoAXAdgtLHrrkwfAkuEyAJeTvL4LBkr7HBQAJK0fFtwLH/u0WzpHsfWvMRAMCJK3xlbqutwgACDplVMLf++uJ21B//+aAsL5PecVvQaApB0BHA3AP4dIVwE4maR/9pJ6CYBwij8GwOt7OWvpTJ0O4KQ+3iJ6BwBJXnQvvq9yK4l8hTQIDIbeUG8AsALEfeyi9mpb6AUAJL0bwBtjZ3CFlDuR5LFdj6VzAEi6EMCeXU9ER/1fRHKvjvpe3W1nAJC0NoDPAnhGwxNwF4DbZz6/m/q3u183fNaZ+n3yfw9smL8bALyA5B0N9zO3+U4AIMmL/gUAazU0aKtor/CH5M9K+pD0BAC7hI9Vzk3QnQB2JmkwtEqtA0DS7gAuqTxKn7C96F8EcBXJP1Zuf3Vzkh4WdBI7ADAYat9U9iD5ySZ4X6rNVgEg6TAA76s4wKsBnBa+6X6saY0k+bHJkuFQAM+r2PHhJE+t2N6yTbUGAEkHADiz0sBu8sKTPKdSe0XNSHpNAIKfoGvQgSQ/VKOhRW20AoDwcvfNRcxE/P034Rvvxf97RPnWiki6XwCBJcKjKnS8ZRsvjI0DILzg3VI4IX5gsahf1Ud16vTYghr7DQEMpQ9XGzT9stgoACQ9BMD3Cw9LlhyvI3ljIYharS5pMwAfALBlQcc+3G5K8k8FbXR3BpDkE+1LCpj3+/o+JH2XHxxJsg7ho8FwJZf/S0n65tQINSYBJH0QwEEFXJ9F0gfHwZMkH+heWzCQM0geXFB/yaqNAEDS8QDeUsDwsSRPLKjfu6qS/NbhN49cehfJt+ZWXqpedQCEV70SY8ltSX619kD70J6kbQBcV8DLTrWNS5oAgBc/y4KHZHV+Cia7saqSlNm4tZxV1dFVJzwYc7w/c3BPJPnTzLqDqiZpQwA/yWT6kJpGJdUAEO6/Ft05+vFdSX4mc0IGWU3SCwF8OoN5Xw23qaUPqQkAf/NzbPiOJPnejIkYfBVJRwA4JWMgp5M8JKPePapUAUDBwa+x602NyWmjjYLrcpUDYS0A5Bz87Ky5C8l/tDHRs31IesTUdnUbyd93xMd9g+1CalzCKgfCYgAEp42PJE6edftbtaXeDWrZ59ryJiz6owHcZ4bnuwH8CoD3WFsqfall/r4BIPXtYF+SRc4nNQBwMYA9EgFwCsmjEuskFZe0c7A1tAuZXcpyyC5edvmy7Z4tmBojSe8BcGRiB5eQfGlinf8rXgSA8NL340Tk+knX3/5GXK0l+U3ehievLpmYOXXPBXAqSdsiVKdwi7IUSHlKtiTdqOTFsBQAhwNIPcE3ouaVZN9/q0q9+H6bb4Jsg2BrneNJOoZAVcpUFx9BMtvKqhQAKVE3PFn+9mxd25hD0tMB+PHJLuNtkF3BDyb5nZqdBaOSr4dYB7FNF4W1zQZAppXP/rXNuCS9HMDHYmercrm9SX68ZpvBvOzsxDazrYdKAJD64nc1SVvTViNJbwdwXLUG8xo6juQ78qrOryXJ1s0phqbZL4UlALClj2PwxNJuJG3gUYXCKf/zVRorb+RZJC26q5AkB8Bw5JFYupnkprGFp8tlASBD8/dbAOuRrGK6XeFZNWeuFtV5HMlfLCoU8/dgcv5LAI+MKR/KZGkGcwHg+6rvrbF0Acl9YgsvVy5c8+z1k3JdqtH1ojasDfWj1j8XFYz5uySbkr0ipmwocxTJ5HeFXAD4TvyqBOaq2blL8jaya0LfbRY9geSba3SY4UdxHslk3UcuAL4NwFavsbRODefHgifUWD5Ly1lP4GtusbIoOM/aiTWWbiS5eWzhSblkAEiy6PVeF6u3vpbkc1IZm1e+59/+Ccvnktyv0ni/AuDZkW1ZK/hYkta0RlMOAGySlKIXr6L5G8C3f3rSn1/j7SBDM2gP4yR7zBwApKp/Nybp94IiknQBgL2LGmmvctZ+PMuepI1CuNpYzpPVwjkAsJbKzpAxdBfJB8UUXK6MJLfxawDFbZXyElnf9gXrRZZdtpikvwCIDVJxDsn9U/rNAYBdtWJ17j8n6QALRSRpXwDnFTXSfuUqyiFJDnDx+Ej2ryeZ5IrGEEc/sv3VxbYA8IDICteRjD3ELNlkBRezSHarFnsbSavLi0jStQC2jWzkrwC+FVl2dTEDINdGPaafi0m+LKbggi2gSR5L2VuqftEr3aRRSZ8AUGT0sdwAmwZAsfWqpAcDaMw7tqnVB3ALyVjRvZz0y7W2jhpa0wAoFoOSbL/XiPVQ1AzlF7qbpA0+i0iSjVzeWdTIMpWbBsABJM8qYV6SM378oKSNDuuuXWptLMlexY2Fi2kaAMUeP5K2BvC1DhexpOvNSy2Lm1aAjQAoWd7Fddd4AIxbQKHDydC3gPEQuFhKLFti6IfA8RpYDoBBXwNHRVA5ABpXBNm2P4X8DhCbgLGWKjjVPCplPE2VPZpkitncXD4SVcF2VklKX5fzGGRdc2yI91qPQQ4112oQ5QqoKL4BmIfEx6AbSPqtJppyAGBPYKdxi6Faz8F+DrXnrgNPDoFuJblBDUYTn4PPJ+mX02jKAYDTnJwQ3QOwYWnM/vBNSAFeAnuNFE1+l5/HRchVkBI36U0kk0LR5QAgNbbNYSRXlU5z0xqxUv5m6tcyCXPM4ZTQ8cma1xwAOAiU/eZjkzNfSdK++sW0BhqF2vYyNiycnW7WT3W7TwZAEMc2e35Kwoo+vEYWjwFIgZpm4c5O8oeEOf4eyeR8BbkASL2WVfOi7bkUqOkYkur1nOV9lQsA5/M9KQGdZ5MsCZb8v64kbQXgcwAemtB/G0V9/96+VuAISX5GTzHwPIbkyakDzQVAqm+ADTq8P9VyDrXPnKVQn2izWgEjgnOoz1kpQTeTfQI8eVkACOeArt3DHSjRWUT6QNW2uDC3/XYPD0yOASL+C701NkCE3wRSE0E1ESLGV8yuAkVUue9Pi7DBhIgJUqAvQaIch/+iFmMG2AFzz9p5DQYVJCoAINVP0NWqOIvObvwhcIStZ5uOHeAI3zZ0KXYBnzOGnKwiyf6A0/1mHwIDAByBs2+BIq2qPrABIHjhz2wqrP0gA0UGEPQ1VKyB4Ouif+Y6ldox03kMrGRpNJ/BIEPFBgD4abi3waKDZ7HtCV6ckMLuUgCfAuCUbQZBoxSCWQ8zWHQAQU64eN8gdmg7J2BwNbO7mT8T+wK7nv3ZH5L+2RqF3IKOC5jk1RuypMc+FC05nqIzwKTVjLBxk6qXk9yttdnuYUeSHA/Qip9UygoLN9tJFQAEKZBrvbpiEkSmrmBBQslia+sJrzUBYL11btKoRq6GqQvSZvmM+D8T9vqZNCpIASeNyk0bt2ITRs6575ckkOxn2rip80DOgXB19TFx5EIZVCVP0HQv1baACgfCSRMrNoFkYcJIz0+Vg1+jAAhbgS1TrdbMpWTjxtyO2qpXwZztRJK2yK5K1SXAlCS4MCRtymV4xSSULEgQOZk7J63aK3cil6vXGACCJEjxIprH5xnOAdRVbsHSCZfkEDE26z6ooK1kb5+UvpoGwNoh0uVaKUzNlPWTs0Oh31jQRutVg3rXvoGpCSGneb0TgCOt3tHUABoFQJAC9iNMil03Z7AOhGzzr1Wpdu9NTdxS7YZXPTt0HJoQUHup5rYgeUOTY2gcAAEEuwO4pMJAbIhhIJxWO/NYKW/BmMOL7k+NZBZ7kGzcIbYVAAQQOJ9fdn67mQWyMYZBcE7pwtWoH8y4vPDJjhlL9H84yRSXsOxhtAaAAIIDbFSRze09K14dJMIVtUzOY3kLptu7hG98SoavRV1Uy66yqCP/vVUABBDkGJMuGouTUvmw6Dy/lzV1aApZPPx66XzEPtylJHVaNAb/PTv/X0zj88q0DoAAApuSebFSHB9SxugAy84AbjAU5SoIMfu96M48Xhz4eolB+IFnu5IcwCmTM122EwAEENgY48MJVjq5Y7wLwO0zH+fimfyf2103fNaZ+n3yf7Gx+nP5s/XRfiQ7iYfcGQAmsyXJOX9LFCW5E9+HemeQPLhLRjoHQJAGqV5GXc5Zrb6z073WYqCTQ+BSzAezMnsd71hzgD1s6yoAJ5P0z86pFxJgehYk2ajkmAYPiF1Nug96J5E8vSsGenMLWDQBQZ1qEBgMK4G86F783uU96J0EmJEG3g6GvC30StwPRgLMMirJzie+i9t8OjZjaVeSww9Xzm9sHcT5XTER22+vJcAcIFiBNAGCtXF9Iiu2Jgvv6B6DoEEBYGZ7sErZEsGA2KSj2b7Z33QvPMmkGL0d8XuPbgcLgDlnBYet23TqU3ursGh3WJzJx2HZenGVKwHTigDAnK3C7/GWCk8OPye/xya8dAJGJ6ryN9yf1b+nZuYuWZi26q5IAMybvJAhNfbcUCXpY1uLWNLPCID5szcCoARVfaw7SoD5qzJKgFEC9PH7Wp+nUQKMEiAlpN14Bqj/Hey2xVECjBJglABzMDAeAsdDYLeiua3exy1g3ALGLWDcAlY7dMTQGnML+A8qtnUcTFYqYAAAAABJRU5ErkJggg==) no-repeat center center;background-size:100% 100%;background-blend-mode:lighten;filter:invert(61%) sepia(87%) saturate(845%) hue-rotate(120deg) brightness(94%) contrast(101%);transition:opacity .5s ease-in-out}.anchor.active{opacity:1}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}\n',document.head.appendChild(e)}}();var lSe=fetch;window.fetch=(...e)=>Promise.resolve(lSe(...e));var Pon=Xi(XG(),1),Ion=Xi(Kle(),1),Lon=Xi(Jle(),1),Wt={};zT(Wt,{ACESFilmicToneMapping:()=>Xue,AddEquation:()=>Go,AddOperation:()=>Gue,AdditiveAnimationBlendMode:()=>kU,AdditiveBlending:()=>Ec,AlphaFormat:()=>Kue,AlwaysCompare:()=>mhe,AlwaysDepth:()=>Fue,AlwaysStencilFunc:()=>ohe,AmbientLight:()=>Cl,AmbientLightProbe:()=>iU,AnimationAction:()=>WR,AnimationClip:()=>uo,AnimationLoader:()=>ZB,AnimationMixer:()=>hU,AnimationObjectGroup:()=>uU,AnimationUtils:()=>tot,ArcCurve:()=>bm,ArrayCamera:()=>TR,ArrowHelper:()=>Sc,Audio:()=>GR,AudioAnalyser:()=>lU,AudioContext:()=>Fb,AudioListener:()=>aU,AudioLoader:()=>nU,AxesHelper:()=>SU,BackSide:()=>Ji,BasicDepthPacking:()=>she,BasicShadowMap:()=>Get,Bone:()=>Sl,BooleanKeyframeTrack:()=>Qh,Box2:()=>Mi,Box3:()=>Nt,Box3Helper:()=>TU,BoxGeometry:()=>pa,BoxHelper:()=>_U,BufferAttribute:()=>mn,BufferGeometry:()=>Dt,BufferGeometryLoader:()=>zR,ByteType:()=>$ue,Cache:()=>Sm,Camera:()=>Xh,CameraHelper:()=>Ub,CanvasTexture:()=>wb,CapsuleGeometry:()=>dv,CatmullRomCurve3:()=>RR,CineonToneMapping:()=>jue,CircleGeometry:()=>fv,ClampToEdgeWrapping:()=>Li,Clock:()=>ho,Color:()=>ct,ColorKeyframeTrack:()=>Lb,ColorManagement:()=>_l,CompressedArrayTexture:()=>qB,CompressedCubeTexture:()=>WB,CompressedTexture:()=>Su,CompressedTextureLoader:()=>KB,ConeGeometry:()=>pv,CubeCamera:()=>ER,CubeReflectionMapping:()=>Gh,CubeRefractionMapping:()=>uf,CubeTexture:()=>xm,CubeTextureLoader:()=>Db,CubeUVReflectionMapping:()=>Mv,CubicBezierCurve:()=>Sb,CubicBezierCurve3:()=>AR,CubicInterpolant:()=>FR,CullFaceBack:()=>$N,CullFaceFront:()=>Mue,CullFaceFrontBack:()=>zet,CullFaceNone:()=>Sue,Curve:()=>Ba,CurvePath:()=>PR,CustomBlending:()=>Pm,CustomToneMapping:()=>Yue,CylinderGeometry:()=>Tc,Cylindrical:()=>gU,Data3DTexture:()=>xb,DataArrayTexture:()=>ov,DataTexture:()=>wl,DataTextureLoader:()=>Rm,DataUtils:()=>Pv,DecrementStencilOp:()=>Jet,DecrementWrapStencilOp:()=>ett,DefaultLoadingManager:()=>fo,DepthFormat:()=>cf,DepthStencilFormat:()=>Wh,DepthTexture:()=>ff,DirectionalLight:()=>qs,DirectionalLightHelper:()=>Bb,DiscreteInterpolant:()=>NR,DisplayP3ColorSpace:()=>BU,DodecahedronGeometry:()=>mv,DoubleSide:()=>Sr,DstAlphaFactor:()=>wv,DstColorFactor:()=>Sv,DynamicCopyUsage:()=>mtt,DynamicDrawUsage:()=>ctt,DynamicReadUsage:()=>dtt,EdgesGeometry:()=>Au,EllipseCurve:()=>Kh,EqualCompare:()=>uhe,EqualDepth:()=>Bue,EqualStencilFunc:()=>itt,EquirectangularReflectionMapping:()=>vm,EquirectangularRefractionMapping:()=>fb,Euler:()=>Xn,EventDispatcher:()=>Wo,ExtrudeGeometry:()=>Qs,FileLoader:()=>Kr,Float16BufferAttribute:()=>LB,Float32BufferAttribute:()=>Bt,Float64BufferAttribute:()=>DB,FloatType:()=>fa,Fog:()=>Tu,FogExp2:()=>cv,FramebufferTexture:()=>GB,FrontSide:()=>pi,Frustum:()=>ma,GLBufferAttribute:()=>pU,GLSL1:()=>vtt,GLSL3:()=>TB,GreaterCompare:()=>dhe,GreaterDepth:()=>Hue,GreaterEqualCompare:()=>phe,GreaterEqualDepth:()=>Uue,GreaterEqualStencilFunc:()=>ltt,GreaterStencilFunc:()=>att,GridHelper:()=>Nb,Group:()=>er,HalfFloatType:()=>Mr,HemisphereLight:()=>Du,HemisphereLightHelper:()=>bU,HemisphereLightProbe:()=>rU,IcosahedronGeometry:()=>gv,ImageBitmapLoader:()=>kb,ImageLoader:()=>Mm,ImageUtils:()=>yb,IncrementStencilOp:()=>Ket,IncrementWrapStencilOp:()=>Qet,InstancedBufferAttribute:()=>Zh,InstancedBufferGeometry:()=>VR,InstancedInterleavedBuffer:()=>fU,InstancedMesh:()=>Oi,Int16BufferAttribute:()=>PB,Int32BufferAttribute:()=>IB,Int8BufferAttribute:()=>AB,IntType:()=>CU,InterleavedBuffer:()=>$h,InterleavedBufferAttribute:()=>co,Interpolant:()=>Jh,InterpolateDiscrete:()=>jh,InterpolateLinear:()=>_u,InterpolateSmooth:()=>mR,InvertStencilOp:()=>ttt,KeepStencilOp:()=>gR,KeyframeTrack:()=>Xo,LOD:()=>MR,LatheGeometry:()=>_m,Layers:()=>df,LessCompare:()=>che,LessDepth:()=>Nue,LessEqualCompare:()=>hhe,LessEqualDepth:()=>vR,LessEqualStencilFunc:()=>stt,LessStencilFunc:()=>rtt,Light:()=>Gs,LightProbe:()=>Ev,Line:()=>fr,Line3:()=>ra,LineBasicMaterial:()=>Gn,LineCurve:()=>hv,LineCurve3:()=>CR,LineDashedMaterial:()=>Iu,LineLoop:()=>uv,LineSegments:()=>qr,LinearEncoding:()=>NU,LinearFilter:()=>Pr,LinearInterpolant:()=>Ib,LinearMipMapLinearFilter:()=>Yet,LinearMipMapNearestFilter:()=>Xet,LinearMipmapLinearFilter:()=>Fa,LinearMipmapNearestFilter:()=>Im,LinearSRGBColorSpace:()=>Na,LinearToneMapping:()=>que,Loader:()=>Er,LoaderUtils:()=>ta,LoadingManager:()=>Lu,LoopOnce:()=>nhe,LoopPingPong:()=>ihe,LoopRepeat:()=>rhe,LuminanceAlphaFormat:()=>Jue,LuminanceFormat:()=>$R,MOUSE:()=>XR,Material:()=>yr,MaterialLoader:()=>_v,MathUtils:()=>Rn,Matrix3:()=>Ln,Matrix4:()=>et,MaxEquation:()=>QN,Mesh:()=>xt,MeshBasicMaterial:()=>ln,MeshDepthMaterial:()=>_c,MeshDistanceMaterial:()=>_b,MeshLambertMaterial:()=>Pu,MeshMatcapMaterial:()=>kR,MeshNormalMaterial:()=>mf,MeshPhongMaterial:()=>ea,MeshPhysicalMaterial:()=>jo,MeshStandardMaterial:()=>Cu,MeshToonMaterial:()=>OR,MinEquation:()=>JN,MirroredRepeatWrapping:()=>qh,MixOperation:()=>zue,MultiplyBlending:()=>KN,MultiplyOperation:()=>Hb,NearestFilter:()=>Jr,NearestMipMapLinearFilter:()=>jet,NearestMipMapNearestFilter:()=>Wet,NearestMipmapLinearFilter:()=>zh,NearestMipmapNearestFilter:()=>hf,NeverCompare:()=>lhe,NeverDepth:()=>kue,NeverStencilFunc:()=>ntt,NoBlending:()=>Qr,NoColorSpace:()=>Eu,NoToneMapping:()=>Vh,NormalAnimationBlendMode:()=>KR,NormalBlending:()=>mm,NotEqualCompare:()=>fhe,NotEqualDepth:()=>Vue,NotEqualStencilFunc:()=>ott,NumberKeyframeTrack:()=>Al,Object3D:()=>on,ObjectLoader:()=>tU,ObjectSpaceNormalMap:()=>ahe,OctahedronGeometry:()=>wm,OneFactor:()=>Cue,OneMinusDstAlphaFactor:()=>Lue,OneMinusDstColorFactor:()=>Due,OneMinusSrcAlphaFactor:()=>AU,OneMinusSrcColorFactor:()=>Iue,OrthographicCamera:()=>Nr,PCFShadowMap:()=>MU,PCFSoftShadowMap:()=>Tv,PMREMGenerator:()=>Yh,Path:()=>Mu,PerspectiveCamera:()=>hr,Plane:()=>zr,PlaneGeometry:()=>ui,PlaneHelper:()=>wU,PointLight:()=>wc,PointLightHelper:()=>xU,Points:()=>ii,PointsMaterial:()=>bi,PolarGridHelper:()=>EU,PolyhedronGeometry:()=>Ru,PositionalAudio:()=>oU,PropertyBinding:()=>Jn,PropertyMixer:()=>qR,QuadraticBezierCurve:()=>Mb,QuadraticBezierCurve3:()=>Rb,Quaternion:()=>dr,QuaternionKeyframeTrack:()=>Ha,QuaternionLinearInterpolant:()=>BR,RED_GREEN_RGTC2_Format:()=>EB,RED_RGTC1_Format:()=>the,REVISION:()=>jR,RGBADepthPacking:()=>Cv,RGBAFormat:()=>Js,RGBAIntegerFormat:()=>OU,RGBA_ASTC_10x10_Format:()=>vB,RGBA_ASTC_10x5_Format:()=>pB,RGBA_ASTC_10x6_Format:()=>mB,RGBA_ASTC_10x8_Format:()=>gB,RGBA_ASTC_12x10_Format:()=>yB,RGBA_ASTC_12x12_Format:()=>xB,RGBA_ASTC_4x4_Format:()=>aB,RGBA_ASTC_5x4_Format:()=>oB,RGBA_ASTC_5x5_Format:()=>lB,RGBA_ASTC_6x5_Format:()=>cB,RGBA_ASTC_6x6_Format:()=>uB,RGBA_ASTC_8x5_Format:()=>hB,RGBA_ASTC_8x6_Format:()=>dB,RGBA_ASTC_8x8_Format:()=>fB,RGBA_BPTC_Format:()=>pR,RGBA_ETC2_EAC_Format:()=>sB,RGBA_PVRTC_2BPPV1_Format:()=>rB,RGBA_PVRTC_4BPPV1_Format:()=>nB,RGBA_S3TC_DXT1_Format:()=>hR,RGBA_S3TC_DXT3_Format:()=>dR,RGBA_S3TC_DXT5_Format:()=>fR,RGB_ETC1_Format:()=>ehe,RGB_ETC2_Format:()=>iB,RGB_PVRTC_2BPPV1_Format:()=>tB,RGB_PVRTC_4BPPV1_Format:()=>eB,RGB_S3TC_DXT1_Format:()=>uR,RGFormat:()=>Que,RGIntegerFormat:()=>DU,RawShaderMaterial:()=>DR,Ray:()=>lo,Raycaster:()=>na,RectAreaLight:()=>UR,RedFormat:()=>ZR,RedIntegerFormat:()=>LU,ReinhardToneMapping:()=>Wue,RenderTarget:()=>bR,RepeatWrapping:()=>Di,ReplaceStencilOp:()=>Zet,ReverseSubtractEquation:()=>Aue,RingGeometry:()=>vv,SIGNED_RED_GREEN_RGTC2_Format:()=>_B,SIGNED_RED_RGTC1_Format:()=>bB,SRGBColorSpace:()=>en,Scene:()=>Si,ShaderChunk:()=>$n,ShaderLib:()=>yc,ShaderMaterial:()=>cn,ShadowMaterial:()=>LR,Shape:()=>_s,ShapeGeometry:()=>Rl,ShapePath:()=>Cm,ShapeUtils:()=>zs,ShortType:()=>Zue,Skeleton:()=>Ml,SkeletonHelper:()=>yU,SkinnedMesh:()=>wu,Source:()=>xc,Sphere:()=>vr,SphereGeometry:()=>Ua,Spherical:()=>gf,SphericalHarmonics3:()=>HR,SplineCurve:()=>Em,SpotLight:()=>Ou,SpotLightHelper:()=>vU,Sprite:()=>SR,SpriteMaterial:()=>Tb,SrcAlphaFactor:()=>RU,SrcAlphaSaturateFactor:()=>Oue,SrcColorFactor:()=>Pue,StaticCopyUsage:()=>ptt,StaticDrawUsage:()=>mb,StaticReadUsage:()=>htt,StereoCamera:()=>sU,StreamCopyUsage:()=>gtt,StreamDrawUsage:()=>utt,StreamReadUsage:()=>ftt,StringKeyframeTrack:()=>ed,SubtractEquation:()=>Rue,SubtractiveBlending:()=>ZN,TOUCH:()=>Vet,TangentSpaceNormalMap:()=>yf,TetrahedronGeometry:()=>yv,Texture:()=>Gr,TextureLoader:()=>ws,TorusGeometry:()=>pf,TorusKnotGeometry:()=>xv,Triangle:()=>Zr,TriangleFanDrawMode:()=>Av,TriangleStripDrawMode:()=>Vb,TrianglesDrawMode:()=>FU,TubeGeometry:()=>bv,TwoPassDoubleSide:()=>qet,UVMapping:()=>YR,Uint16BufferAttribute:()=>ym,Uint32BufferAttribute:()=>Eb,Uint8BufferAttribute:()=>bb,Uint8ClampedBufferAttribute:()=>CB,Uniform:()=>Am,UniformsGroup:()=>dU,UniformsLib:()=>Jt,UniformsUtils:()=>Ri,UnsignedByteType:()=>bc,UnsignedInt248Type:()=>xu,UnsignedIntType:()=>Hh,UnsignedShort4444Type:()=>PU,UnsignedShort5551Type:()=>IU,UnsignedShortType:()=>Rv,VSMShadowMap:()=>vu,Vector2:()=>xe,Vector3:()=>D,Vector4:()=>gr,VectorKeyframeTrack:()=>Va,VideoTexture:()=>zB,WebGL1Renderer:()=>wR,WebGL3DRenderTarget:()=>MB,WebGLArrayRenderTarget:()=>SB,WebGLCoordinateSystem:()=>yu,WebGLCubeRenderTarget:()=>_R,WebGLMultipleRenderTargets:()=>RB,WebGLRenderTarget:()=>sr,WebGLRenderer:()=>Ts,WebGLUtils:()=>She,WebGPUCoordinateSystem:()=>gb,WireframeGeometry:()=>IR,WrapAroundEnding:()=>pb,ZeroCurvatureEnding:()=>dm,ZeroFactor:()=>vf,ZeroSlopeEnding:()=>fm,ZeroStencilOp:()=>$et,_SRGBAFormat:()=>yR,sRGBEncoding:()=>bu});var jR="155",XR={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},Vet={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Sue=0,$N=1,Mue=2,zet=3,Get=0,MU=1,Tv=2,vu=3,pi=0,Ji=1,Sr=2,qet=2,Qr=0,mm=1,Ec=2,ZN=3,KN=4,Pm=5,Go=100,Rue=101,Aue=102,JN=103,QN=104,vf=200,Cue=201,Pue=202,Iue=203,RU=204,AU=205,wv=206,Lue=207,Sv=208,Due=209,Oue=210,kue=0,Fue=1,Nue=2,vR=3,Bue=4,Uue=5,Hue=6,Vue=7,Hb=0,zue=1,Gue=2,Vh=0,que=1,Wue=2,jue=3,Xue=4,Yue=5,YR=300,Gh=301,uf=302,vm=303,fb=304,Mv=306,Di=1e3,Li=1001,qh=1002,Jr=1003,hf=1004,Wet=1004,zh=1005,jet=1005,Pr=1006,Im=1007,Xet=1007,Fa=1008,Yet=1008,bc=1009,$ue=1010,Zue=1011,Rv=1012,CU=1013,Hh=1014,fa=1015,Mr=1016,PU=1017,IU=1018,xu=1020,Kue=1021,Js=1023,$R=1024,Jue=1025,cf=1026,Wh=1027,ZR=1028,LU=1029,Que=1030,DU=1031,OU=1033,uR=33776,hR=33777,dR=33778,fR=33779,eB=35840,tB=35841,nB=35842,rB=35843,ehe=36196,iB=37492,sB=37496,aB=37808,oB=37809,lB=37810,cB=37811,uB=37812,hB=37813,dB=37814,fB=37815,pB=37816,mB=37817,gB=37818,vB=37819,yB=37820,xB=37821,pR=36492,the=36283,bB=36284,EB=36285,_B=36286,nhe=2200,rhe=2201,ihe=2202,jh=2300,_u=2301,mR=2302,dm=2400,fm=2401,pb=2402,KR=2500,kU=2501,FU=0,Vb=1,Av=2,NU=3e3,bu=3001,she=3200,Cv=3201,yf=0,ahe=1,Eu="",en="srgb",Na="srgb-linear",BU="display-p3",$et=0,gR=7680,Zet=7681,Ket=7682,Jet=7683,Qet=34055,ett=34056,ttt=5386,ntt=512,rtt=513,itt=514,stt=515,att=516,ott=517,ltt=518,ohe=519,lhe=512,che=513,uhe=514,hhe=515,dhe=516,fhe=517,phe=518,mhe=519,mb=35044,ctt=35048,utt=35040,htt=35045,dtt=35049,ftt=35041,ptt=35046,mtt=35050,gtt=35042,vtt="100",TB="300 es",yR=1035,yu=2e3,gb=2001,Wo=class{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});let i=this._listeners;void 0===i[e]&&(i[e]=[]),-1===i[e].indexOf(t)&&i[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;let i=this._listeners;return void 0!==i[e]&&-1!==i[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;let i=this._listeners[e];if(void 0!==i){let e=i.indexOf(t);-1!==e&&i.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;let t=this._listeners[e.type];if(void 0!==t){e.target=this;let i=t.slice(0);for(let t=0,n=i.length;t>8&255]+ha[e>>16&255]+ha[e>>24&255]+"-"+ha[255&t]+ha[t>>8&255]+"-"+ha[t>>16&15|64]+ha[t>>24&255]+"-"+ha[63&i|128]+ha[i>>8&255]+"-"+ha[i>>16&255]+ha[i>>24&255]+ha[255&n]+ha[n>>8&255]+ha[n>>16&255]+ha[n>>24&255]).toLowerCase()}function os(e,t,i){return Math.max(t,Math.min(i,e))}function UU(e,t){return(e%t+t)%t}function ytt(e,t,i,n,r){return n+(e-t)*(r-n)/(i-t)}function xtt(e,t,i){return e!==t?(i-e)/(t-e):0}function lb(e,t,i){return(1-i)*e+i*t}function btt(e,t,i,n){return lb(e,t,1-Math.exp(-i*n))}function Ett(e,t=1){return t-Math.abs(UU(e,2*t)-t)}function _tt(e,t,i){return e<=t?0:e>=i?1:(e=(e-t)/(i-t))*e*(3-2*e)}function Ttt(e,t,i){return e<=t?0:e>=i?1:(e=(e-t)/(i-t))*e*e*(e*(6*e-15)+10)}function wtt(e,t){return e+Math.floor(Math.random()*(t-e+1))}function Stt(e,t){return e+Math.random()*(t-e)}function Mtt(e){return e*(.5-Math.random())}function Rtt(e){void 0!==e&&(Qle=e);let t=Qle+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296}function Att(e){return e*gm}function Ctt(e){return e*av}function wB(e){return 0==(e&e-1)&&0!==e}function ghe(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function xR(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}function Ptt(e,t,i,n,r){let a=Math.cos,s=Math.sin,o=a(i/2),l=s(i/2),h=a((t+n)/2),c=s((t+n)/2),u=a((t-n)/2),d=s((t-n)/2),p=a((n-t)/2),f=s((n-t)/2);switch(r){case"XYX":e.set(o*c,l*u,l*d,o*h);break;case"YZY":e.set(l*d,o*c,l*u,o*h);break;case"ZXZ":e.set(l*u,l*d,o*c,o*h);break;case"XZX":e.set(o*c,l*f,l*p,o*h);break;case"YXY":e.set(l*p,o*c,l*f,o*h);break;case"ZYZ":e.set(l*f,l*p,o*c,o*h);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function oo(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return e/4294967295;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int32Array:return Math.max(e/2147483647,-1);case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("Invalid component type.")}}function mr(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return Math.round(4294967295*e);case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int32Array:return Math.round(2147483647*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw new Error("Invalid component type.")}}var Rn={DEG2RAD:gm,RAD2DEG:av,generateUUID:qo,clamp:os,euclideanModulo:UU,mapLinear:ytt,inverseLerp:xtt,lerp:lb,damp:btt,pingpong:Ett,smoothstep:_tt,smootherstep:Ttt,randInt:wtt,randFloat:Stt,randFloatSpread:Mtt,seededRandom:Rtt,degToRad:Att,radToDeg:Ctt,isPowerOfTwo:wB,ceilPowerOfTwo:ghe,floorPowerOfTwo:xR,setQuaternionFromProperEuler:Ptt,normalize:mr,denormalize:oo},xe=class{constructor(e=0,t=0){xe.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,i=this.y,n=e.elements;return this.x=n[0]*t+n[3]*i+n[6],this.y=n[1]*t+n[4]*i+n[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;let i=this.dot(e)/t;return Math.acos(os(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let i=Math.cos(t),n=Math.sin(t),r=this.x-e.x,a=this.y-e.y;return this.x=r*i-a*n+e.x,this.y=r*n+a*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Ln=class{constructor(e,t,i,n,r,a,s,o,l){Ln.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==e&&this.set(e,t,i,n,r,a,s,o,l)}set(e,t,i,n,r,a,s,o,l){let h=this.elements;return h[0]=e,h[1]=n,h[2]=s,h[3]=t,h[4]=r,h[5]=o,h[6]=i,h[7]=a,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let i=e.elements,n=t.elements,r=this.elements,a=i[0],s=i[3],o=i[6],l=i[1],h=i[4],c=i[7],u=i[2],d=i[5],p=i[8],f=n[0],m=n[3],g=n[6],v=n[1],y=n[4],x=n[7],b=n[2],_=n[5],w=n[8];return r[0]=a*f+s*v+o*b,r[3]=a*m+s*y+o*_,r[6]=a*g+s*x+o*w,r[1]=l*f+h*v+c*b,r[4]=l*m+h*y+c*_,r[7]=l*g+h*x+c*w,r[2]=u*f+d*v+p*b,r[5]=u*m+d*y+p*_,r[8]=u*g+d*x+p*w,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],i=e[1],n=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],h=e[8];return t*a*h-t*s*l-i*r*h+i*s*o+n*r*l-n*a*o}invert(){let e=this.elements,t=e[0],i=e[1],n=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],h=e[8],c=h*a-s*l,u=s*o-h*r,d=l*r-a*o,p=t*c+i*u+n*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);let f=1/p;return e[0]=c*f,e[1]=(n*l-h*i)*f,e[2]=(s*i-n*a)*f,e[3]=u*f,e[4]=(h*t-n*o)*f,e[5]=(n*r-s*t)*f,e[6]=d*f,e[7]=(i*o-l*t)*f,e[8]=(a*t-i*r)*f,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,n,r,a,s){let o=Math.cos(r),l=Math.sin(r);return this.set(i*o,i*l,-i*(o*a+l*s)+a+e,-n*l,n*o,-n*(-l*a+o*s)+s+t,0,0,1),this}scale(e,t){return this.premultiply(vN.makeScale(e,t)),this}rotate(e){return this.premultiply(vN.makeRotation(-e)),this}translate(e,t){return this.premultiply(vN.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,i=e.elements;for(let n=0;n<9;n++)if(t[n]!==i[n])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return(new this.constructor).fromArray(this.elements)}},vN=new Ln;function vhe(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}var Itt={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function tv(e,t){return new Itt[e](t)}function vb(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}var ece={};function cb(e){e in ece||(ece[e]=!0,console.warn(e))}function iv(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function yN(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}var Ltt=(new Ln).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),Dtt=(new Ln).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);function Ott(e){return e.convertSRGBToLinear().applyMatrix3(Dtt)}function ktt(e){return e.applyMatrix3(Ltt).convertLinearToSRGB()}var Ftt={[Na]:e=>e,[en]:e=>e.convertSRGBToLinear(),[BU]:Ott},Ntt={[Na]:e=>e,[en]:e=>e.convertLinearToSRGB(),[BU]:ktt},_l={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(e){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!e},get workingColorSpace(){return Na},set workingColorSpace(e){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(e,t,i){if(!1===this.enabled||t===i||!t||!i)return e;let n=Ftt[t],r=Ntt[i];if(void 0===n||void 0===r)throw new Error(`Unsupported color space conversion, "${t}" to "${i}".`);return r(n(e))},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)}},D0,yb=class{static getDataURL(e){if(/^data:/i.test(e.src)||"undefined"==typeof HTMLCanvasElement)return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{void 0===D0&&(D0=vb("canvas")),D0.width=e.width,D0.height=e.height;let i=D0.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=D0}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){let t=vb("canvas");t.width=e.width,t.height=e.height;let i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);let n=i.getImageData(0,0,e.width,e.height),r=n.data;for(let e=0;e0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==YR)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case Di:e.x=e.x-Math.floor(e.x);break;case Li:e.x=e.x<0?0:1;break;case qh:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case Di:e.y=e.y-Math.floor(e.y);break;case Li:e.y=e.y<0?0:1;break;case qh:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return cb("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===en?bu:NU}set encoding(e){cb("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===bu?en:Eu}};Gr.DEFAULT_IMAGE=null,Gr.DEFAULT_MAPPING=YR,Gr.DEFAULT_ANISOTROPY=1;var gr=class{constructor(e=0,t=0,i=0,n=1){gr.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=n}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,n){return this.x=e,this.y=t,this.z=i,this.w=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,i=this.y,n=this.z,r=this.w,a=e.elements;return this.x=a[0]*t+a[4]*i+a[8]*n+a[12]*r,this.y=a[1]*t+a[5]*i+a[9]*n+a[13]*r,this.z=a[2]*t+a[6]*i+a[10]*n+a[14]*r,this.w=a[3]*t+a[7]*i+a[11]*n+a[15]*r,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,n,r,a=e.elements,s=a[0],o=a[4],l=a[8],h=a[1],c=a[5],u=a[9],d=a[2],p=a[6],f=a[10];if(Math.abs(o-h)<.01&&Math.abs(l-d)<.01&&Math.abs(u-p)<.01){if(Math.abs(o+h)<.1&&Math.abs(l+d)<.1&&Math.abs(u+p)<.1&&Math.abs(s+c+f-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;let e=(s+1)/2,a=(c+1)/2,m=(f+1)/2,g=(o+h)/4,v=(l+d)/4,y=(u+p)/4;return e>a&&e>m?e<.01?(i=0,n=.707106781,r=.707106781):(i=Math.sqrt(e),n=g/i,r=v/i):a>m?a<.01?(i=.707106781,n=0,r=.707106781):(n=Math.sqrt(a),i=g/n,r=y/n):m<.01?(i=.707106781,n=.707106781,r=0):(r=Math.sqrt(m),i=v/r,n=y/r),this.set(i,n,r,t),this}let m=Math.sqrt((p-u)*(p-u)+(l-d)*(l-d)+(h-o)*(h-o));return Math.abs(m)<.001&&(m=1),this.x=(p-u)/m,this.y=(l-d)/m,this.z=(h-o)/m,this.w=Math.acos((s+c+f-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},bR=class extends Wo{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new gr(0,0,e,t),this.scissorTest=!1,this.viewport=new gr(0,0,e,t);let n={width:e,height:t,depth:1};void 0!==i.encoding&&(cb("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===bu?en:Eu),this.texture=new Gr(n,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=void 0!==i.generateMipmaps&&i.generateMipmaps,this.texture.internalFormat=void 0!==i.internalFormat?i.internalFormat:null,this.texture.minFilter=void 0!==i.minFilter?i.minFilter:Pr,this.depthBuffer=void 0===i.depthBuffer||i.depthBuffer,this.stencilBuffer=void 0!==i.stencilBuffer&&i.stencilBuffer,this.depthTexture=void 0!==i.depthTexture?i.depthTexture:null,this.samples=void 0!==i.samples?i.samples:0}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return(new this.constructor).copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;let t=Object.assign({},e.texture.image);return this.texture.source=new xc(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,null!==e.depthTexture&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},sr=class extends bR{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}},ov=class extends Gr{constructor(e=null,t=1,i=1,n=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:n},this.magFilter=Jr,this.minFilter=Jr,this.wrapR=Li,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},SB=class extends sr{constructor(e=1,t=1,i=1){super(e,t),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new ov(null,e,t,i),this.texture.isRenderTargetTexture=!0}},xb=class extends Gr{constructor(e=null,t=1,i=1,n=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:n},this.magFilter=Jr,this.minFilter=Jr,this.wrapR=Li,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},MB=class extends sr{constructor(e=1,t=1,i=1){super(e,t),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new xb(null,e,t,i),this.texture.isRenderTargetTexture=!0}},RB=class extends sr{constructor(e=1,t=1,i=1,n={}){super(e,t,n),this.isWebGLMultipleRenderTargets=!0;let r=this.texture;this.texture=[];for(let a=0;a=0?1:-1,n=1-t*t;if(n>Number.EPSILON){let r=Math.sqrt(n),a=Math.atan2(r,t*i);e=Math.sin(e*a)/r,s=Math.sin(s*a)/r}let r=s*i;if(o=o*e+u*r,l=l*e+d*r,h=h*e+p*r,c=c*e+f*r,e===1-s){let e=1/Math.sqrt(o*o+l*l+h*h+c*c);o*=e,l*=e,h*=e,c*=e}}e[t]=o,e[t+1]=l,e[t+2]=h,e[t+3]=c}static multiplyQuaternionsFlat(e,t,i,n,r,a){let s=i[n],o=i[n+1],l=i[n+2],h=i[n+3],c=r[a],u=r[a+1],d=r[a+2],p=r[a+3];return e[t]=s*p+h*c+o*d-l*u,e[t+1]=o*p+h*u+l*c-s*d,e[t+2]=l*p+h*d+s*u-o*c,e[t+3]=h*p-s*c-o*u-l*d,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,n){return this._x=e,this._y=t,this._z=i,this._w=n,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){let i=e._x,n=e._y,r=e._z,a=e._order,s=Math.cos,o=Math.sin,l=s(i/2),h=s(n/2),c=s(r/2),u=o(i/2),d=o(n/2),p=o(r/2);switch(a){case"XYZ":this._x=u*h*c+l*d*p,this._y=l*d*c-u*h*p,this._z=l*h*p+u*d*c,this._w=l*h*c-u*d*p;break;case"YXZ":this._x=u*h*c+l*d*p,this._y=l*d*c-u*h*p,this._z=l*h*p-u*d*c,this._w=l*h*c+u*d*p;break;case"ZXY":this._x=u*h*c-l*d*p,this._y=l*d*c+u*h*p,this._z=l*h*p+u*d*c,this._w=l*h*c-u*d*p;break;case"ZYX":this._x=u*h*c-l*d*p,this._y=l*d*c+u*h*p,this._z=l*h*p-u*d*c,this._w=l*h*c+u*d*p;break;case"YZX":this._x=u*h*c+l*d*p,this._y=l*d*c+u*h*p,this._z=l*h*p-u*d*c,this._w=l*h*c-u*d*p;break;case"XZY":this._x=u*h*c-l*d*p,this._y=l*d*c-u*h*p,this._z=l*h*p+u*d*c,this._w=l*h*c+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return!1!==t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let i=t/2,n=Math.sin(i);return this._x=e.x*n,this._y=e.y*n,this._z=e.z*n,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,i=t[0],n=t[4],r=t[8],a=t[1],s=t[5],o=t[9],l=t[2],h=t[6],c=t[10],u=i+s+c;if(u>0){let e=.5/Math.sqrt(u+1);this._w=.25/e,this._x=(h-o)*e,this._y=(r-l)*e,this._z=(a-n)*e}else if(i>s&&i>c){let e=2*Math.sqrt(1+i-s-c);this._w=(h-o)/e,this._x=.25*e,this._y=(n+a)/e,this._z=(r+l)/e}else if(s>c){let e=2*Math.sqrt(1+s-i-c);this._w=(r-l)/e,this._x=(n+a)/e,this._y=.25*e,this._z=(o+h)/e}else{let e=2*Math.sqrt(1+c-i-s);this._w=(a-n)/e,this._x=(r+l)/e,this._y=(o+h)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(os(this.dot(e),-1,1)))}rotateTowards(e,t){let i=this.angleTo(e);if(0===i)return this;let n=Math.min(1,t/i);return this.slerp(e,n),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let i=e._x,n=e._y,r=e._z,a=e._w,s=t._x,o=t._y,l=t._z,h=t._w;return this._x=i*h+a*s+n*l-r*o,this._y=n*h+a*o+r*s-i*l,this._z=r*h+a*l+i*o-n*s,this._w=a*h-i*s-n*o-r*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);let i=this._x,n=this._y,r=this._z,a=this._w,s=a*e._w+i*e._x+n*e._y+r*e._z;if(s<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,s=-s):this.copy(e),s>=1)return this._w=a,this._x=i,this._y=n,this._z=r,this;let o=1-s*s;if(o<=Number.EPSILON){let e=1-t;return this._w=e*a+t*this._w,this._x=e*i+t*this._x,this._y=e*n+t*this._y,this._z=e*r+t*this._z,this.normalize(),this._onChangeCallback(),this}let l=Math.sqrt(o),h=Math.atan2(l,s),c=Math.sin((1-t)*h)/l,u=Math.sin(t*h)/l;return this._w=a*c+this._w*u,this._x=i*c+this._x*u,this._y=n*c+this._y*u,this._z=r*c+this._z*u,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){let e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),n=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(t*Math.cos(n),i*Math.sin(r),i*Math.cos(r),t*Math.sin(n))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},D=class{constructor(e=0,t=0,i=0){D.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return void 0===i&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(tce.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(tce.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,i=this.y,n=this.z,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6]*n,this.y=r[1]*t+r[4]*i+r[7]*n,this.z=r[2]*t+r[5]*i+r[8]*n,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,i=this.y,n=this.z,r=e.elements,a=1/(r[3]*t+r[7]*i+r[11]*n+r[15]);return this.x=(r[0]*t+r[4]*i+r[8]*n+r[12])*a,this.y=(r[1]*t+r[5]*i+r[9]*n+r[13])*a,this.z=(r[2]*t+r[6]*i+r[10]*n+r[14])*a,this}applyQuaternion(e){let t=this.x,i=this.y,n=this.z,r=e.x,a=e.y,s=e.z,o=e.w,l=o*t+a*n-s*i,h=o*i+s*t-r*n,c=o*n+r*i-a*t,u=-r*t-a*i-s*n;return this.x=l*o+u*-r+h*-s-c*-a,this.y=h*o+u*-a+c*-r-l*-s,this.z=c*o+u*-s+l*-a-h*-r,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,i=this.y,n=this.z,r=e.elements;return this.x=r[0]*t+r[4]*i+r[8]*n,this.y=r[1]*t+r[5]*i+r[9]*n,this.z=r[2]*t+r[6]*i+r[10]*n,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let i=e.x,n=e.y,r=e.z,a=t.x,s=t.y,o=t.z;return this.x=n*o-r*s,this.y=r*a-i*o,this.z=i*s-n*a,this}projectOnVector(e){let t=e.lengthSq();if(0===t)return this.set(0,0,0);let i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return bN.copy(this).projectOnVector(e),this.sub(bN)}reflect(e){return this.sub(bN.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;let i=this.dot(e)/t;return Math.acos(os(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y,n=this.z-e.z;return t*t+i*i+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){let n=Math.sin(t)*e;return this.x=n*Math.sin(i),this.y=Math.cos(t)*e,this.z=n*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),n=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=n,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=2*(Math.random()-.5),t=Math.random()*Math.PI*2,i=Math.sqrt(1-Do(e,2));return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},bN=new D,tce=new dr,Nt=class{constructor(e=new D(1/0,1/0,1/0),t=new D(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,Dh),Dh.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Zx),TM.subVectors(this.max,Zx),k0.subVectors(e.a,Zx),F0.subVectors(e.b,Zx),N0.subVectors(e.c,Zx),rf.subVectors(F0,k0),sf.subVectors(N0,F0),tm.subVectors(k0,N0);let t=[0,-rf.z,rf.y,0,-sf.z,sf.y,0,-tm.z,tm.y,rf.z,0,-rf.x,sf.z,0,-sf.x,tm.z,0,-tm.x,-rf.y,rf.x,0,-sf.y,sf.x,0,-tm.y,tm.x,0];return!(!EN(t,k0,F0,N0,TM)||(t=[1,0,0,0,1,0,0,0,1],!EN(t,k0,F0,N0,TM)))&&(wM.crossVectors(rf,sf),t=[wM.x,wM.y,wM.z],EN(t,k0,F0,N0,TM))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Dh).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=.5*this.getSize(Dh).length()),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()||(Lh[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Lh[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Lh[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Lh[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Lh[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Lh[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Lh[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Lh[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Lh)),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},Lh=[new D,new D,new D,new D,new D,new D,new D,new D],Dh=new D,O0=new Nt,k0=new D,F0=new D,N0=new D,rf=new D,sf=new D,tm=new D,Zx=new D,TM=new D,wM=new D,nm=new D;function EN(e,t,i,n,r){for(let a=0,s=e.length-3;a<=s;a+=3){nm.fromArray(e,a);let s=r.x*Math.abs(nm.x)+r.y*Math.abs(nm.y)+r.z*Math.abs(nm.z),o=t.dot(nm),l=i.dot(nm),h=n.dot(nm);if(Math.max(-Math.max(o,l,h),Math.min(o,l,h))>s)return!1}return!0}var Htt=new Nt,Kx=new D,_N=new D,vr=class{constructor(e=new D,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let i=this.center;void 0!==t?i.copy(t):Htt.setFromPoints(e).getCenter(i);let n=0;for(let r=0,a=e.length;rthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;Kx.subVectors(e,this.center);let t=Kx.lengthSq();if(t>this.radius*this.radius){let e=Math.sqrt(t),i=.5*(e-this.radius);this.center.addScaledVector(Kx,i/e),this.radius+=i}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(_N.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Kx.copy(e.center).add(_N)),this.expandByPoint(Kx.copy(e.center).sub(_N))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}},Oh=new D,TN=new D,SM=new D,af=new D,wN=new D,MM=new D,SN=new D,lo=class{constructor(e=new D,t=new D(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Oh)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=Oh.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Oh.copy(this.origin).addScaledVector(this.direction,t),Oh.distanceToSquared(e))}distanceSqToSegment(e,t,i,n){TN.copy(e).add(t).multiplyScalar(.5),SM.copy(t).sub(e).normalize(),af.copy(this.origin).sub(TN);let r,a,s,o,l=.5*e.distanceTo(t),h=-this.direction.dot(SM),c=af.dot(this.direction),u=-af.dot(SM),d=af.lengthSq(),p=Math.abs(1-h*h);if(p>0)if(r=h*u-c,a=h*c-u,o=l*p,r>=0)if(a>=-o)if(a<=o){let e=1/p;r*=e,a*=e,s=r*(r+h*a+2*c)+a*(h*r+a+2*u)+d}else a=l,r=Math.max(0,-(h*a+c)),s=-r*r+a*(a+2*u)+d;else a=-l,r=Math.max(0,-(h*a+c)),s=-r*r+a*(a+2*u)+d;else a<=-o?(r=Math.max(0,-(-h*l+c)),a=r>0?-l:Math.min(Math.max(-l,-u),l),s=-r*r+a*(a+2*u)+d):a<=o?(r=0,a=Math.min(Math.max(-l,-u),l),s=a*(a+2*u)+d):(r=Math.max(0,-(h*l+c)),a=r>0?l:Math.min(Math.max(-l,-u),l),s=-r*r+a*(a+2*u)+d);else a=h>0?-l:l,r=Math.max(0,-(h*a+c)),s=-r*r+a*(a+2*u)+d;return i&&i.copy(this.origin).addScaledVector(this.direction,r),n&&n.copy(TN).addScaledVector(SM,a),s}intersectSphere(e,t){Oh.subVectors(e.center,this.origin);let i=Oh.dot(this.direction),n=Oh.dot(Oh)-i*i,r=e.radius*e.radius;if(n>r)return null;let a=Math.sqrt(r-n),s=i-a,o=i+a;return o<0?null:s<0?this.at(o,t):this.at(s,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;let i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){let i=this.distanceToPlane(e);return null===i?null:this.at(i,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return 0===t||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,n,r,a,s,o,l=1/this.direction.x,h=1/this.direction.y,c=1/this.direction.z,u=this.origin;return l>=0?(i=(e.min.x-u.x)*l,n=(e.max.x-u.x)*l):(i=(e.max.x-u.x)*l,n=(e.min.x-u.x)*l),h>=0?(r=(e.min.y-u.y)*h,a=(e.max.y-u.y)*h):(r=(e.max.y-u.y)*h,a=(e.min.y-u.y)*h),i>a||r>n||((r>i||isNaN(i))&&(i=r),(a=0?(s=(e.min.z-u.z)*c,o=(e.max.z-u.z)*c):(s=(e.max.z-u.z)*c,o=(e.min.z-u.z)*c),i>o||s>n)||((s>i||i!=i)&&(i=s),(o=0?i:n,t)}intersectsBox(e){return null!==this.intersectBox(e,Oh)}intersectTriangle(e,t,i,n,r){wN.subVectors(t,e),MM.subVectors(i,e),SN.crossVectors(wN,MM);let a,s=this.direction.dot(SN);if(s>0){if(n)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}af.subVectors(this.origin,e);let o=a*this.direction.dot(MM.crossVectors(af,MM));if(o<0)return null;let l=a*this.direction.dot(wN.cross(af));if(l<0||o+l>s)return null;let h=-a*af.dot(SN);return h<0?null:this.at(h/s,r)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}},et=class{constructor(e,t,i,n,r,a,s,o,l,h,c,u,d,p,f,m){et.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==e&&this.set(e,t,i,n,r,a,s,o,l,h,c,u,d,p,f,m)}set(e,t,i,n,r,a,s,o,l,h,c,u,d,p,f,m){let g=this.elements;return g[0]=e,g[4]=t,g[8]=i,g[12]=n,g[1]=r,g[5]=a,g[9]=s,g[13]=o,g[2]=l,g[6]=h,g[10]=c,g[14]=u,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new et).fromArray(this.elements)}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){let t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){let t=this.elements,i=e.elements,n=1/B0.setFromMatrixColumn(e,0).length(),r=1/B0.setFromMatrixColumn(e,1).length(),a=1/B0.setFromMatrixColumn(e,2).length();return t[0]=i[0]*n,t[1]=i[1]*n,t[2]=i[2]*n,t[3]=0,t[4]=i[4]*r,t[5]=i[5]*r,t[6]=i[6]*r,t[7]=0,t[8]=i[8]*a,t[9]=i[9]*a,t[10]=i[10]*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,i=e.x,n=e.y,r=e.z,a=Math.cos(i),s=Math.sin(i),o=Math.cos(n),l=Math.sin(n),h=Math.cos(r),c=Math.sin(r);if("XYZ"===e.order){let e=a*h,i=a*c,n=s*h,r=s*c;t[0]=o*h,t[4]=-o*c,t[8]=l,t[1]=i+n*l,t[5]=e-r*l,t[9]=-s*o,t[2]=r-e*l,t[6]=n+i*l,t[10]=a*o}else if("YXZ"===e.order){let e=o*h,i=o*c,n=l*h,r=l*c;t[0]=e+r*s,t[4]=n*s-i,t[8]=a*l,t[1]=a*c,t[5]=a*h,t[9]=-s,t[2]=i*s-n,t[6]=r+e*s,t[10]=a*o}else if("ZXY"===e.order){let e=o*h,i=o*c,n=l*h,r=l*c;t[0]=e-r*s,t[4]=-a*c,t[8]=n+i*s,t[1]=i+n*s,t[5]=a*h,t[9]=r-e*s,t[2]=-a*l,t[6]=s,t[10]=a*o}else if("ZYX"===e.order){let e=a*h,i=a*c,n=s*h,r=s*c;t[0]=o*h,t[4]=n*l-i,t[8]=e*l+r,t[1]=o*c,t[5]=r*l+e,t[9]=i*l-n,t[2]=-l,t[6]=s*o,t[10]=a*o}else if("YZX"===e.order){let e=a*o,i=a*l,n=s*o,r=s*l;t[0]=o*h,t[4]=r-e*c,t[8]=n*c+i,t[1]=c,t[5]=a*h,t[9]=-s*h,t[2]=-l*h,t[6]=i*c+n,t[10]=e-r*c}else if("XZY"===e.order){let e=a*o,i=a*l,n=s*o,r=s*l;t[0]=o*h,t[4]=-c,t[8]=l*h,t[1]=e*c+r,t[5]=a*h,t[9]=i*c-n,t[2]=n*c-i,t[6]=s*h,t[10]=r*c+e}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(Vtt,e,ztt)}lookAt(e,t,i){let n=this.elements;return Vo.subVectors(e,t),0===Vo.lengthSq()&&(Vo.z=1),Vo.normalize(),of.crossVectors(i,Vo),0===of.lengthSq()&&(1===Math.abs(i.z)?Vo.x+=1e-4:Vo.z+=1e-4,Vo.normalize(),of.crossVectors(i,Vo)),of.normalize(),RM.crossVectors(Vo,of),n[0]=of.x,n[4]=RM.x,n[8]=Vo.x,n[1]=of.y,n[5]=RM.y,n[9]=Vo.y,n[2]=of.z,n[6]=RM.z,n[10]=Vo.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let i=e.elements,n=t.elements,r=this.elements,a=i[0],s=i[4],o=i[8],l=i[12],h=i[1],c=i[5],u=i[9],d=i[13],p=i[2],f=i[6],m=i[10],g=i[14],v=i[3],y=i[7],x=i[11],b=i[15],_=n[0],w=n[4],S=n[8],M=n[12],E=n[1],T=n[5],A=n[9],C=n[13],P=n[2],R=n[6],D=n[10],L=n[14],I=n[3],O=n[7],k=n[11],N=n[15];return r[0]=a*_+s*E+o*P+l*I,r[4]=a*w+s*T+o*R+l*O,r[8]=a*S+s*A+o*D+l*k,r[12]=a*M+s*C+o*L+l*N,r[1]=h*_+c*E+u*P+d*I,r[5]=h*w+c*T+u*R+d*O,r[9]=h*S+c*A+u*D+d*k,r[13]=h*M+c*C+u*L+d*N,r[2]=p*_+f*E+m*P+g*I,r[6]=p*w+f*T+m*R+g*O,r[10]=p*S+f*A+m*D+g*k,r[14]=p*M+f*C+m*L+g*N,r[3]=v*_+y*E+x*P+b*I,r[7]=v*w+y*T+x*R+b*O,r[11]=v*S+y*A+x*D+b*k,r[15]=v*M+y*C+x*L+b*N,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],i=e[4],n=e[8],r=e[12],a=e[1],s=e[5],o=e[9],l=e[13],h=e[2],c=e[6],u=e[10],d=e[14];return e[3]*(+r*o*c-n*l*c-r*s*u+i*l*u+n*s*d-i*o*d)+e[7]*(+t*o*d-t*l*u+r*a*u-n*a*d+n*l*h-r*o*h)+e[11]*(+t*l*c-t*s*d-r*a*c+i*a*d+r*s*h-i*l*h)+e[15]*(-n*s*h-t*o*c+t*s*u+n*a*c-i*a*u+i*o*h)}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(e,t,i){let n=this.elements;return e.isVector3?(n[12]=e.x,n[13]=e.y,n[14]=e.z):(n[12]=e,n[13]=t,n[14]=i),this}invert(){let e=this.elements,t=e[0],i=e[1],n=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],h=e[8],c=e[9],u=e[10],d=e[11],p=e[12],f=e[13],m=e[14],g=e[15],v=c*m*l-f*u*l+f*o*d-s*m*d-c*o*g+s*u*g,y=p*u*l-h*m*l-p*o*d+a*m*d+h*o*g-a*u*g,x=h*f*l-p*c*l+p*s*d-a*f*d-h*s*g+a*c*g,b=p*c*o-h*f*o-p*s*u+a*f*u+h*s*m-a*c*m,_=t*v+i*y+n*x+r*b;if(0===_)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let w=1/_;return e[0]=v*w,e[1]=(f*u*r-c*m*r-f*n*d+i*m*d+c*n*g-i*u*g)*w,e[2]=(s*m*r-f*o*r+f*n*l-i*m*l-s*n*g+i*o*g)*w,e[3]=(c*o*r-s*u*r-c*n*l+i*u*l+s*n*d-i*o*d)*w,e[4]=y*w,e[5]=(h*m*r-p*u*r+p*n*d-t*m*d-h*n*g+t*u*g)*w,e[6]=(p*o*r-a*m*r-p*n*l+t*m*l+a*n*g-t*o*g)*w,e[7]=(a*u*r-h*o*r+h*n*l-t*u*l-a*n*d+t*o*d)*w,e[8]=x*w,e[9]=(p*c*r-h*f*r-p*i*d+t*f*d+h*i*g-t*c*g)*w,e[10]=(a*f*r-p*s*r+p*i*l-t*f*l-a*i*g+t*s*g)*w,e[11]=(h*s*r-a*c*r-h*i*l+t*c*l+a*i*d-t*s*d)*w,e[12]=b*w,e[13]=(h*f*n-p*c*n+p*i*u-t*f*u-h*i*m+t*c*m)*w,e[14]=(p*s*n-a*f*n-p*i*o+t*f*o+a*i*m-t*s*m)*w,e[15]=(a*c*n-h*s*n+h*i*o-t*c*o-a*i*u+t*s*u)*w,this}scale(e){let t=this.elements,i=e.x,n=e.y,r=e.z;return t[0]*=i,t[4]*=n,t[8]*=r,t[1]*=i,t[5]*=n,t[9]*=r,t[2]*=i,t[6]*=n,t[10]*=r,t[3]*=i,t[7]*=n,t[11]*=r,this}getMaxScaleOnAxis(){let e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],n=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,n))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let i=Math.cos(t),n=Math.sin(t),r=1-i,a=e.x,s=e.y,o=e.z,l=r*a,h=r*s;return this.set(l*a+i,l*s-n*o,l*o+n*s,0,l*s+n*o,h*s+i,h*o-n*a,0,l*o-n*s,h*o+n*a,r*o*o+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,n,r,a){return this.set(1,i,r,0,e,1,a,0,t,n,1,0,0,0,0,1),this}compose(e,t,i){let n=this.elements,r=t._x,a=t._y,s=t._z,o=t._w,l=r+r,h=a+a,c=s+s,u=r*l,d=r*h,p=r*c,f=a*h,m=a*c,g=s*c,v=o*l,y=o*h,x=o*c,b=i.x,_=i.y,w=i.z;return n[0]=(1-(f+g))*b,n[1]=(d+x)*b,n[2]=(p-y)*b,n[3]=0,n[4]=(d-x)*_,n[5]=(1-(u+g))*_,n[6]=(m+v)*_,n[7]=0,n[8]=(p+y)*w,n[9]=(m-v)*w,n[10]=(1-(u+f))*w,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,this}decompose(e,t,i){let n=this.elements,r=B0.set(n[0],n[1],n[2]).length(),a=B0.set(n[4],n[5],n[6]).length(),s=B0.set(n[8],n[9],n[10]).length();this.determinant()<0&&(r=-r),e.x=n[12],e.y=n[13],e.z=n[14],mc.copy(this);let o=1/r,l=1/a,h=1/s;return mc.elements[0]*=o,mc.elements[1]*=o,mc.elements[2]*=o,mc.elements[4]*=l,mc.elements[5]*=l,mc.elements[6]*=l,mc.elements[8]*=h,mc.elements[9]*=h,mc.elements[10]*=h,t.setFromRotationMatrix(mc),i.x=r,i.y=a,i.z=s,this}makePerspective(e,t,i,n,r,a,s=yu){let o,l,h=this.elements,c=2*r/(t-e),u=2*r/(i-n),d=(t+e)/(t-e),p=(i+n)/(i-n);if(s===yu)o=-(a+r)/(a-r),l=-2*a*r/(a-r);else{if(s!==gb)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+s);o=-a/(a-r),l=-a*r/(a-r)}return h[0]=c,h[4]=0,h[8]=d,h[12]=0,h[1]=0,h[5]=u,h[9]=p,h[13]=0,h[2]=0,h[6]=0,h[10]=o,h[14]=l,h[3]=0,h[7]=0,h[11]=-1,h[15]=0,this}makeOrthographic(e,t,i,n,r,a,s=yu){let o,l,h=this.elements,c=1/(t-e),u=1/(i-n),d=1/(a-r),p=(t+e)*c,f=(i+n)*u;if(s===yu)o=(a+r)*d,l=-2*d;else{if(s!==gb)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+s);o=r*d,l=-1*d}return h[0]=2*c,h[4]=0,h[8]=0,h[12]=-p,h[1]=0,h[5]=2*u,h[9]=0,h[13]=-f,h[2]=0,h[6]=0,h[10]=l,h[14]=-o,h[3]=0,h[7]=0,h[11]=0,h[15]=1,this}equals(e){let t=this.elements,i=e.elements;for(let n=0;n<16;n++)if(t[n]!==i[n])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}},B0=new D,mc=new et,Vtt=new D(0,0,0),ztt=new D(1,1,1),of=new D,RM=new D,Vo=new D,nce=new et,rce=new dr,Xn=class{constructor(e=0,t=0,i=0,n=Xn.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=n}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,n=this._order){return this._x=e,this._y=t,this._z=i,this._order=n,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){let n=e.elements,r=n[0],a=n[4],s=n[8],o=n[1],l=n[5],h=n[9],c=n[2],u=n[6],d=n[10];switch(t){case"XYZ":this._y=Math.asin(os(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-h,d),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-os(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(s,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-c,r),this._z=0);break;case"ZXY":this._x=Math.asin(os(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-c,d),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-os(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(os(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-c,r)):(this._x=0,this._y=Math.atan2(s,d));break;case"XZY":this._z=Math.asin(-os(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(s,r)):(this._x=Math.atan2(-h,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===i&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return nce.makeRotationFromQuaternion(e),this.setFromRotationMatrix(nce,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return rce.setFromEuler(this),this.setFromQuaternion(rce,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};Xn.DEFAULT_ORDER="XYZ";var df=class{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(i=i.concat(r))}return i}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Jx,e,qtt),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Jx,Wtt,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);let t=this.children;for(let i=0,n=t.length;i0&&(n.userData=this.userData),n.layers=this.layers.mask,n.matrix=this.matrix.toArray(),n.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(n.matrixAutoUpdate=!1),this.isInstancedMesh&&(n.type="InstancedMesh",n.count=this.count,n.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(n.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?n.background=this.background.toJSON():this.background.isTexture&&(n.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(n.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){n.geometry=r(e.geometries,this.geometry);let t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){let i=t.shapes;if(Array.isArray(i))for(let t=0,n=i.length;t0){n.children=[];for(let t=0;t0){n.animations=[];for(let t=0;t0&&(i.geometries=t),n.length>0&&(i.materials=n),r.length>0&&(i.textures=r),s.length>0&&(i.images=s),o.length>0&&(i.shapes=o),l.length>0&&(i.skeletons=l),h.length>0&&(i.animations=h),c.length>0&&(i.nodes=c)}return i.object=n,i;function a(e){let t=[];for(let i in e){let n=e[i];delete n.metadata,t.push(n)}return t}}clone(e){return(new this.constructor).copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let i=0;i0?n.multiplyScalar(1/Math.sqrt(r)):n.set(0,0,0)}static getBarycoord(e,t,i,n,r){gc.subVectors(n,t),Fh.subVectors(i,t),MN.subVectors(e,t);let a=gc.dot(gc),s=gc.dot(Fh),o=gc.dot(MN),l=Fh.dot(Fh),h=Fh.dot(MN),c=a*l-s*s;if(0===c)return r.set(-2,-1,-1);let u=1/c,d=(l*o-s*h)*u,p=(a*h-s*o)*u;return r.set(1-d-p,p,d)}static containsPoint(e,t,i,n){return this.getBarycoord(e,t,i,n,Nh),Nh.x>=0&&Nh.y>=0&&Nh.x+Nh.y<=1}static getUV(e,t,i,n,r,a,s,o){return!1===CM&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),CM=!0),this.getInterpolation(e,t,i,n,r,a,s,o)}static getInterpolation(e,t,i,n,r,a,s,o){return this.getBarycoord(e,t,i,n,Nh),o.setScalar(0),o.addScaledVector(r,Nh.x),o.addScaledVector(a,Nh.y),o.addScaledVector(s,Nh.z),o}static isFrontFacing(e,t,i,n){return gc.subVectors(i,t),Fh.subVectors(e,t),gc.cross(Fh).dot(n)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,n){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[n]),this}setFromAttributeAndIndices(e,t,i,n){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,n),this}clone(){return(new this.constructor).copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return gc.subVectors(this.c,this.b),Fh.subVectors(this.a,this.b),.5*gc.cross(Fh).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Zr.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Zr.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,i,n,r){return!1===CM&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),CM=!0),Zr.getInterpolation(e,this.a,this.b,this.c,t,i,n,r)}getInterpolation(e,t,i,n,r){return Zr.getInterpolation(e,this.a,this.b,this.c,t,i,n,r)}containsPoint(e){return Zr.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Zr.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let i,n,r=this.a,a=this.b,s=this.c;H0.subVectors(a,r),V0.subVectors(s,r),RN.subVectors(e,r);let o=H0.dot(RN),l=V0.dot(RN);if(o<=0&&l<=0)return t.copy(r);AN.subVectors(e,a);let h=H0.dot(AN),c=V0.dot(AN);if(h>=0&&c<=h)return t.copy(a);let u=o*c-h*l;if(u<=0&&o>=0&&h<=0)return i=o/(o-h),t.copy(r).addScaledVector(H0,i);CN.subVectors(e,s);let d=H0.dot(CN),p=V0.dot(CN);if(p>=0&&d<=p)return t.copy(s);let f=d*l-o*p;if(f<=0&&l>=0&&p<=0)return n=l/(l-p),t.copy(r).addScaledVector(V0,n);let m=h*p-d*c;if(m<=0&&c-h>=0&&d-p>=0)return cce.subVectors(s,a),n=(c-h)/(c-h+(d-p)),t.copy(a).addScaledVector(cce,n);let g=1/(m+f+u);return i=f*g,n=u*g,t.copy(r).addScaledVector(H0,i).addScaledVector(V0,n)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},Xtt=0,yr=class extends Wo{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Xtt++}),this.uuid=qo(),this.name="",this.type="Material",this.blending=mm,this.side=pi,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=RU,this.blendDst=AU,this.blendEquation=Go,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=vR,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=ohe,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=gR,this.stencilZFail=gR,this.stencilZPass=gR,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(let t in e){let i=e[t];if(void 0===i){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}let n=this[t];void 0!==n?n&&n.isColor?n.set(i):n&&n.isVector3&&i&&i.isVector3?n.copy(i):this[t]=i:console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`)}}toJSON(e){let t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});let i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function n(e){let t=[];for(let i in e){let n=e[i];delete n.metadata,t.push(n)}return t}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),void 0!==this.roughness&&(i.roughness=this.roughness),void 0!==this.metalness&&(i.metalness=this.metalness),void 0!==this.sheen&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(i.shininess=this.shininess),void 0!==this.clearcoat&&(i.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(i.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(i.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),void 0!==this.anisotropy&&(i.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(i.combine=this.combine)),void 0!==this.envMapIntensity&&(i.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(i.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(i.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(i.size=this.size),null!==this.shadowSide&&(i.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==mm&&(i.blending=this.blending),this.side!==pi&&(i.side=this.side),this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),!0===this.transparent&&(i.transparent=this.transparent),i.depthFunc=this.depthFunc,i.depthTest=this.depthTest,i.depthWrite=this.depthWrite,i.colorWrite=this.colorWrite,i.stencilWrite=this.stencilWrite,i.stencilWriteMask=this.stencilWriteMask,i.stencilFunc=this.stencilFunc,i.stencilRef=this.stencilRef,i.stencilFuncMask=this.stencilFuncMask,i.stencilFail=this.stencilFail,i.stencilZFail=this.stencilZFail,i.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(i.rotation=this.rotation),!0===this.polygonOffset&&(i.polygonOffset=!0),0!==this.polygonOffsetFactor&&(i.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(i.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(i.linewidth=this.linewidth),void 0!==this.dashSize&&(i.dashSize=this.dashSize),void 0!==this.gapSize&&(i.gapSize=this.gapSize),void 0!==this.scale&&(i.scale=this.scale),!0===this.dithering&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),!0===this.alphaHash&&(i.alphaHash=this.alphaHash),!0===this.alphaToCoverage&&(i.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(i.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(i.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(i.wireframe=this.wireframe),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(i.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(i.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(i.flatShading=this.flatShading),!1===this.visible&&(i.visible=!1),!1===this.toneMapped&&(i.toneMapped=!1),!1===this.fog&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData),t){let t=n(e.textures),r=n(e.images);t.length>0&&(i.textures=t),r.length>0&&(i.images=r)}return i}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,i=null;if(null!==t){let e=t.length;i=new Array(e);for(let n=0;n!==e;++n)i[n]=t[n].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){!0===e&&this.version++}},yhe={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},vc={h:0,s:0,l:0},PM={h:0,s:0,l:0};function PN(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+6*(t-e)*i:i<.5?t:i<2/3?e+6*(t-e)*(2/3-i):e}var ct=class{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(void 0===t&&void 0===i){let t=e;t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=en){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,_l.toWorkingColorSpace(this,t),this}setRGB(e,t,i,n=_l.workingColorSpace){return this.r=e,this.g=t,this.b=i,_l.toWorkingColorSpace(this,n),this}setHSL(e,t,i,n=_l.workingColorSpace){if(e=UU(e,1),t=os(t,0,1),i=os(i,0,1),0===t)this.r=this.g=this.b=i;else{let n=i<=.5?i*(1+t):i+t-i*t,r=2*i-n;this.r=PN(r,n,e+1/3),this.g=PN(r,n,e),this.b=PN(r,n,e-1/3)}return _l.toWorkingColorSpace(this,n),this}setStyle(e,t=en){function i(t){void 0!==t&&parseFloat(t)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let n;if(n=/^(\w+)\(([^\)]*)\)/.exec(e)){let r,a=n[1],s=n[2];switch(a){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,t);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,t);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(e)){let i=n[1],r=i.length;if(3===r)return this.setRGB(parseInt(i.charAt(0),16)/15,parseInt(i.charAt(1),16)/15,parseInt(i.charAt(2),16)/15,t);if(6===r)return this.setHex(parseInt(i,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=en){let i=yhe[e.toLowerCase()];return void 0!==i?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=iv(e.r),this.g=iv(e.g),this.b=iv(e.b),this}copyLinearToSRGB(e){return this.r=yN(e.r),this.g=yN(e.g),this.b=yN(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=en){return _l.fromWorkingColorSpace(da.copy(this),e),65536*Math.round(os(255*da.r,0,255))+256*Math.round(os(255*da.g,0,255))+Math.round(os(255*da.b,0,255))}getHexString(e=en){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=_l.workingColorSpace){_l.fromWorkingColorSpace(da.copy(this),t);let i,n,r=da.r,a=da.g,s=da.b,o=Math.max(r,a,s),l=Math.min(r,a,s),h=(l+o)/2;if(l===o)i=0,n=0;else{let e=o-l;switch(n=h<=.5?e/(o+l):e/(2-o-l),o){case r:i=(a-s)/e+(a>-e-14,n[256|l]=1024>>-e-14|32768,r[l]=-e-1,r[256|l]=-e-1):e<=15?(n[l]=e+15<<10,n[256|l]=e+15<<10|32768,r[l]=13,r[256|l]=13):e<128?(n[l]=31744,n[256|l]=64512,r[l]=24,r[256|l]=24):(n[l]=31744,n[256|l]=64512,r[l]=13,r[256|l]=13)}let a=new Uint32Array(2048),s=new Uint32Array(64),o=new Uint32Array(64);for(let l=1;l<1024;++l){let e=l<<13,t=0;for(;!(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,a[l]=e|t}for(let l=1024;l<2048;++l)a[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)s[l]=l<<23;s[31]=1199570944,s[32]=2147483648;for(let l=33;l<63;++l)s[l]=2147483648+(l-32<<23);s[63]=3347054592;for(let l=1;l<64;++l)32!==l&&(o[l]=1024);return{floatView:t,uint32View:i,baseTable:n,shiftTable:r,mantissaTable:a,exponentTable:s,offsetTable:o}}function ao(e){Math.abs(e)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=os(e,-65504,65504),Uh.floatView[0]=e;let t=Uh.uint32View[0],i=t>>23&511;return Uh.baseTable[i]+((8388607&t)>>Uh.shiftTable[i])}function ab(e){let t=e>>10;return Uh.uint32View[0]=Uh.mantissaTable[Uh.offsetTable[t]+(1023&e)]+Uh.exponentTable[t],Uh.floatView[0]}var Pv={toHalfFloat:ao,fromHalfFloat:ab},Es=new D,IM=new xe,mn=class{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=i,this.usage=mb,this.updateRange={offset:0,count:-1},this.gpuType=fa,this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let n=0,r=this.itemSize;n0&&(e.userData=this.userData),void 0!==this.parameters){let t=this.parameters;for(let i in t)void 0!==t[i]&&(e[i]=t[i]);return e}e.data={attributes:{}};let t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let i=this.attributes;for(let o in i){let t=i[o];e.data.attributes[o]=t.toJSON(e.data)}let n={},r=!1;for(let o in this.morphAttributes){let t=this.morphAttributes[o],i=[];for(let n=0,r=t.length;n0&&(n[o]=i,r=!0)}r&&(e.data.morphAttributes=n,e.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));let s=this.boundingSphere;return null!==s&&(e.data.boundingSphere={center:s.center.toArray(),radius:s.radius}),e}clone(){return(new this.constructor).copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let i=e.index;null!==i&&this.setIndex(i.clone(t));let n=e.attributes;for(let l in n){let e=n[l];this.setAttribute(l,e.clone(t))}let r=e.morphAttributes;for(let l in r){let e=[],i=r[l];for(let n=0,r=i.length;n0){let i=e[t[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=i.length;eDo(e.far-e.near,2)))&&(uce.copy(r).invert(),rm.copy(e.ray).applyMatrix4(uce),(null===i.boundingBox||!1!==rm.intersectsBox(i.boundingBox))&&this._computeIntersections(e,t,rm)))}_computeIntersections(e,t,i){let n,r=this.geometry,a=this.material,s=r.index,o=r.attributes.position,l=r.attributes.uv,h=r.attributes.uv1,c=r.attributes.normal,u=r.groups,d=r.drawRange;if(null!==s)if(Array.isArray(a))for(let p=0,f=u.length;pi.far?null:{distance:h,point:BM.clone(),object:e}}function UM(e,t,i,n,r,a,s,o,l,h){e.getVertexPosition(o,G0),e.getVertexPosition(l,q0),e.getVertexPosition(h,W0);let c=Ztt(e,t,i,n,G0,q0,W0,NM);if(c){r&&(OM.fromBufferAttribute(r,o),kM.fromBufferAttribute(r,l),FM.fromBufferAttribute(r,h),c.uv=Zr.getInterpolation(NM,G0,q0,W0,OM,kM,FM,new xe)),a&&(OM.fromBufferAttribute(a,o),kM.fromBufferAttribute(a,l),FM.fromBufferAttribute(a,h),c.uv1=Zr.getInterpolation(NM,G0,q0,W0,OM,kM,FM,new xe),c.uv2=c.uv1),s&&(dce.fromBufferAttribute(s,o),fce.fromBufferAttribute(s,l),pce.fromBufferAttribute(s,h),c.normal=Zr.getInterpolation(NM,G0,q0,W0,dce,fce,pce,new D),c.normal.dot(n.direction)>0&&c.normal.multiplyScalar(-1));let e={a:o,b:l,c:h,normal:new D,materialIndex:0};Zr.getNormal(G0,q0,W0,e.normal),c.face=e}return c}var pa=class extends Dt{constructor(e=1,t=1,i=1,n=1,r=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:n,heightSegments:r,depthSegments:a};let s=this;n=Math.floor(n),r=Math.floor(r),a=Math.floor(a);let o=[],l=[],h=[],c=[],u=0,d=0;function p(e,t,i,n,r,a,p,f,m,g,v){let y=a/m,x=p/g,b=a/2,_=p/2,w=f/2,S=m+1,M=g+1,E=0,T=0,A=new D;for(let s=0;s0?1:-1,h.push(A.x,A.y,A.z),c.push(o/m),c.push(1-s/g),E+=1}}for(let s=0;s0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let i={};for(let n in this.extensions)!0===this.extensions[n]&&(i[n]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}},Xh=class extends on{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new et,this.projectionMatrix=new et,this.projectionMatrixInverse=new et,this.coordinateSystem=yu}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}},hr=class extends Xh{constructor(e=50,t=1,i=.1,n=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=n,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=2*av*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(.5*gm*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*av*Math.atan(Math.tan(.5*gm*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,i,n,r,a){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=n,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(.5*gm*this.fov)/this.zoom,i=2*t,n=this.aspect*i,r=-.5*n,a=this.view;if(null!==this.view&&this.view.enabled){let e=a.fullWidth,s=a.fullHeight;r+=a.offsetX*n/e,t-=a.offsetY*i/s,n*=a.width/e,i*=a.height/s}let s=this.filmOffset;0!==s&&(r+=e*s/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+n,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}},j0=-90,X0=1,ER=class extends on{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null;let n=new hr(j0,X0,e,t);n.layers=this.layers,this.add(n);let r=new hr(j0,X0,e,t);r.layers=this.layers,this.add(r);let a=new hr(j0,X0,e,t);a.layers=this.layers,this.add(a);let s=new hr(j0,X0,e,t);s.layers=this.layers,this.add(s);let o=new hr(j0,X0,e,t);o.layers=this.layers,this.add(o);let l=new hr(j0,X0,e,t);l.layers=this.layers,this.add(l)}updateCoordinateSystem(){let e=this.coordinateSystem,t=this.children.concat(),[i,n,r,a,s,o]=t;for(let l of t)this.remove(l);if(e===yu)i.up.set(0,1,0),i.lookAt(1,0,0),n.up.set(0,1,0),n.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),a.up.set(0,0,1),a.lookAt(0,-1,0),s.up.set(0,1,0),s.lookAt(0,0,1),o.up.set(0,1,0),o.lookAt(0,0,-1);else{if(e!==gb)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);i.up.set(0,-1,0),i.lookAt(-1,0,0),n.up.set(0,-1,0),n.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),a.up.set(0,0,-1),a.lookAt(0,-1,0),s.up.set(0,-1,0),s.lookAt(0,0,1),o.up.set(0,-1,0),o.lookAt(0,0,-1)}for(let l of t)this.add(l),l.updateMatrixWorld()}update(e,t){null===this.parent&&this.updateMatrixWorld();let i=this.renderTarget;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());let[n,r,a,s,o,l]=this.children,h=e.getRenderTarget(),c=e.xr.enabled;e.xr.enabled=!1;let u=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0),e.render(t,n),e.setRenderTarget(i,1),e.render(t,r),e.setRenderTarget(i,2),e.render(t,a),e.setRenderTarget(i,3),e.render(t,s),e.setRenderTarget(i,4),e.render(t,o),i.texture.generateMipmaps=u,e.setRenderTarget(i,5),e.render(t,l),e.setRenderTarget(h),e.xr.enabled=c,i.texture.needsPMREMUpdate=!0}},xm=class extends Gr{constructor(e,t,i,n,r,a,s,o,l,h){super(e=void 0!==e?e:[],t=void 0!==t?t:Gh,i,n,r,a,s,o,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},_R=class extends sr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;let i={width:e,height:e,depth:1},n=[i,i,i,i,i,i];void 0!==t.encoding&&(cb("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===bu?en:Eu),this.texture=new xm(n,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:Pr}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let i={tEquirect:{value:null}},n="\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",r="\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t",a=new pa(5,5,5),s=new cn({name:"CubemapFromEquirect",uniforms:lv(i),vertexShader:n,fragmentShader:r,side:Ji,blending:Qr});s.uniforms.tEquirect.value=t;let o=new xt(a,s),l=t.minFilter;return t.minFilter===Fa&&(t.minFilter=Pr),new ER(1,10,this).update(e,o),t.minFilter=l,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,i,n){let r=e.getRenderTarget();for(let a=0;a<6;a++)e.setRenderTarget(this,a),e.clear(t,i,n);e.setRenderTarget(r)}},DN=new D,ent=new D,tnt=new Ln,zr=class{constructor(e=new D(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,n){return this.normal.set(e,t,i),this.constant=n,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){let n=DN.subVectors(i,t).cross(ent.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(n,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){let e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){let i=e.delta(DN),n=this.normal.dot(i);if(0===n)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;let r=-(e.start.dot(this.normal)+this.constant)/n;return r<0||r>1?null:t.copy(e.start).addScaledVector(i,r)}intersectsLine(e){let t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){let i=t||tnt.getNormalMatrix(e),n=this.coplanarPoint(DN).applyMatrix4(e),r=this.normal.applyMatrix3(i).normalize();return this.constant=-n.dot(r),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return(new this.constructor).copy(this)}},im=new vr,HM=new D,ma=class{constructor(e=new zr,t=new zr,i=new zr,n=new zr,r=new zr,a=new zr){this.planes=[e,t,i,n,r,a]}set(e,t,i,n,r,a){let s=this.planes;return s[0].copy(e),s[1].copy(t),s[2].copy(i),s[3].copy(n),s[4].copy(r),s[5].copy(a),this}copy(e){let t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=yu){let i=this.planes,n=e.elements,r=n[0],a=n[1],s=n[2],o=n[3],l=n[4],h=n[5],c=n[6],u=n[7],d=n[8],p=n[9],f=n[10],m=n[11],g=n[12],v=n[13],y=n[14],x=n[15];if(i[0].setComponents(o-r,u-l,m-d,x-g).normalize(),i[1].setComponents(o+r,u+l,m+d,x+g).normalize(),i[2].setComponents(o+a,u+h,m+p,x+v).normalize(),i[3].setComponents(o-a,u-h,m-p,x-v).normalize(),i[4].setComponents(o-s,u-c,m-f,x-y).normalize(),t===yu)i[5].setComponents(o+s,u+c,m+f,x+y).normalize();else{if(t!==gb)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);i[5].setComponents(s,c,f,y).normalize()}return this}intersectsObject(e){if(void 0!==e.boundingSphere)null===e.boundingSphere&&e.computeBoundingSphere(),im.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{let t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere(),im.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(im)}intersectsSprite(e){return im.center.set(0,0,0),im.radius=.7071067811865476,im.applyMatrix4(e.matrixWorld),this.intersectsSphere(im)}intersectsSphere(e){let t=this.planes,i=e.center,n=-e.radius;for(let r=0;r<6;r++)if(t[r].distanceToPoint(i)0?e.max.x:e.min.x,HM.y=n.normal.y>0?e.max.y:e.min.y,HM.z=n.normal.z>0?e.max.z:e.min.z,n.distanceToPoint(HM)<0)return!1}return!0}containsPoint(e){let t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}};function bhe(){let e=null,t=!1,i=null,n=null;function r(t,a){i(t,a),n=e.requestAnimationFrame(r)}return{start:function(){!0!==t&&null!==i&&(n=e.requestAnimationFrame(r),t=!0)},stop:function(){e.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(e){i=e},setContext:function(t){e=t}}}function nnt(e,t){let i=t.isWebGL2,n=new WeakMap;return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),n.get(e)},remove:function(t){t.isInterleavedBufferAttribute&&(t=t.data);let i=n.get(t);i&&(e.deleteBuffer(i.buffer),n.delete(t))},update:function(t,r){if(t.isGLBufferAttribute){let e=n.get(t);return void((!e||e.version0?i:t).get(v)),null===v?f(h,c):v&&v.isColor&&(f(v,1),g=!0),e.xr.getEnvironmentBlendMode()){case"opaque":g=!0;break;case"additive":n.buffers.color.setClear(0,0,0,1,s),g=!0;break;case"alpha-blend":n.buffers.color.setClear(0,0,0,0,s),g=!0}(e.autoClear||g)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),v&&(v.isCubeTexture||v.mapping===Mv)?(void 0===l&&(l=new xt(new pa(1,1,1),new cn({name:"BackgroundCubeMaterial",uniforms:lv(yc.backgroundCube.uniforms),vertexShader:yc.backgroundCube.vertexShader,fragmentShader:yc.backgroundCube.fragmentShader,side:Ji,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(e,t,i){this.matrixWorld.copyPosition(i.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(l)),l.material.uniforms.envMap.value=v,l.material.uniforms.flipEnvMap.value=v.isCubeTexture&&!1===v.isRenderTargetTexture?-1:1,l.material.uniforms.backgroundBlurriness.value=m.backgroundBlurriness,l.material.uniforms.backgroundIntensity.value=m.backgroundIntensity,l.material.toneMapped=v.colorSpace!==en,(u!==v||d!==v.version||p!==e.toneMapping)&&(l.material.needsUpdate=!0,u=v,d=v.version,p=e.toneMapping),l.layers.enableAll(),a.unshift(l,l.geometry,l.material,0,0,null)):v&&v.isTexture&&(void 0===o&&(o=new xt(new ui(2,2),new cn({name:"BackgroundMaterial",uniforms:lv(yc.background.uniforms),vertexShader:yc.background.vertexShader,fragmentShader:yc.background.fragmentShader,side:pi,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute("normal"),Object.defineProperty(o.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(o)),o.material.uniforms.t2D.value=v,o.material.uniforms.backgroundIntensity.value=m.backgroundIntensity,o.material.toneMapped=v.colorSpace!==en,!0===v.matrixAutoUpdate&&v.updateMatrix(),o.material.uniforms.uvTransform.value.copy(v.matrix),(u!==v||d!==v.version||p!==e.toneMapping)&&(o.material.needsUpdate=!0,u=v,d=v.version,p=e.toneMapping),o.layers.enableAll(),a.unshift(o,o.geometry,o.material,0,0,null))}}}function kit(e,t,i,n){let r=e.getParameter(e.MAX_VERTEX_ATTRIBS),a=n.isWebGL2?null:t.get("OES_vertex_array_object"),s=n.isWebGL2||null!==a,o={},l=p(null),h=l,c=!1;function u(t){return n.isWebGL2?e.bindVertexArray(t):a.bindVertexArrayOES(t)}function d(t){return n.isWebGL2?e.deleteVertexArray(t):a.deleteVertexArrayOES(t)}function p(e){let t=[],i=[],n=[];for(let a=0;a=0){let t=r[l],i=a[l];if(void 0===i&&("instanceMatrix"===l&&e.instanceMatrix&&(i=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(i=e.instanceColor)),void 0===t||t.attribute!==i||i&&t.data!==i.data)return!0;s++}return h.attributesNum!==s||h.index!==n}(r,x,d,b),_&&function(e,t,i,n){let r={},a=t.attributes,s=0,o=i.getAttributes();for(let l in o)if(o[l].location>=0){let t=a[l];void 0===t&&("instanceMatrix"===l&&e.instanceMatrix&&(t=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(t=e.instanceColor));let i={};i.attribute=t,t&&t.data&&(i.data=t.data),r[l]=i,s++}h.attributes=r,h.attributesNum=s,h.index=n}(r,x,d,b)}else{let e=!0===l.wireframe;(h.geometry!==x.id||h.program!==d.id||h.wireframe!==e)&&(h.geometry=x.id,h.program=d.id,h.wireframe=e,_=!0)}null!==b&&i.update(b,e.ELEMENT_ARRAY_BUFFER),(_||c)&&(c=!1,function(r,a,s,o){if(!1===n.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===t.get("ANGLE_instanced_arrays"))return;f();let l=o.attributes,h=s.getAttributes(),c=a.defaultAttributeValues;for(let t in h){let a=h[t];if(a.location>=0){let s=l[t];if(void 0===s&&("instanceMatrix"===t&&r.instanceMatrix&&(s=r.instanceMatrix),"instanceColor"===t&&r.instanceColor&&(s=r.instanceColor)),void 0!==s){let t=s.normalized,l=s.itemSize,h=i.get(s);if(void 0===h)continue;let c=h.buffer,u=h.type,d=h.bytesPerElement,p=!0===n.isWebGL2&&(u===e.INT||u===e.UNSIGNED_INT||s.gpuType===CU);if(s.isInterleavedBufferAttribute){let i=s.data,n=i.stride,h=s.offset;if(i.isInstancedInterleavedBuffer){for(let e=0;e0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let a="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===e.constructor.name,s=void 0!==i.precision?i.precision:"highp",o=r(s);o!==s&&(console.warn("THREE.WebGLRenderer:",s,"not supported, using",o,"instead."),s=o);let l=a||t.has("WEBGL_draw_buffers"),h=!0===i.logarithmicDepthBuffer,c=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),u=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=e.getParameter(e.MAX_TEXTURE_SIZE),p=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),f=e.getParameter(e.MAX_VERTEX_ATTRIBS),m=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),g=e.getParameter(e.MAX_VARYING_VECTORS),v=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),y=u>0,x=a||t.has("OES_texture_float");return{isWebGL2:a,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==n)return n;if(!0===t.has("EXT_texture_filter_anisotropic")){let i=t.get("EXT_texture_filter_anisotropic");n=e.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else n=0;return n},getMaxPrecision:r,precision:s,logarithmicDepthBuffer:h,maxTextures:c,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:f,maxVertexUniforms:m,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:x,floatVertexTextures:y&&x,maxSamples:a?e.getParameter(e.MAX_SAMPLES):0}}function Bit(e){let t=this,i=null,n=0,r=!1,a=!1,s=new zr,o=new Ln,l={value:null,needsUpdate:!1};function h(e,i,n,r){let a=null!==e?e.length:0,h=null;if(0!==a){if(h=l.value,!0!==r||null===h){let t=n+4*a,r=i.matrixWorldInverse;o.getNormalMatrix(r),(null===h||h.length0),t.numPlanes=n,t.numIntersection=0);else{let e=a?0:n,t=4*e,r=f.clippingState||null;l.value=r,r=h(u,o,t,c);for(let n=0;n!==t;++n)r[n]=i[n];f.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=e}}}function Uit(e){let t=new WeakMap;function i(e,t){return t===vm?e.mapping=Gh:t===fb&&(e.mapping=uf),e}function n(e){let i=e.target;i.removeEventListener("dispose",n);let r=t.get(i);void 0!==r&&(t.delete(i),r.dispose())}return{get:function(r){if(r&&r.isTexture&&!1===r.isRenderTargetTexture){let a=r.mapping;if(a===vm||a===fb){if(t.has(r))return i(t.get(r).texture,r.mapping);{let a=r.image;if(a&&a.height>0){let s=new _R(a.height/2);return s.fromEquirectangularTexture(e,r),t.set(r,s),r.addEventListener("dispose",n),i(s.texture,r.mapping)}return null}}}return r},dispose:function(){t=new WeakMap}}}var Nr=class extends Xh{constructor(e=-1,t=1,i=1,n=-1,r=.1,a=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=n,this.near=r,this.far=a,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=null===e.view?null:Object.assign({},e.view),this}setViewOffset(e,t,i,n,r,a){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=n,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,n=(this.top+this.bottom)/2,r=i-e,a=i+e,s=n+t,o=n-t;if(null!==this.view&&this.view.enabled){let e=(this.right-this.left)/this.view.fullWidth/this.zoom,t=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=e*this.view.offsetX,a=r+e*this.view.width,s-=t*this.view.offsetY,o=s-t*this.view.height}this.projectionMatrix.makeOrthographic(r,a,s,o,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}},nv=4,mce=[.125,.215,.35,.446,.526,.582],hm=20,ON=new Nr,gce=new ct,kN=null,um=(1+Math.sqrt(5))/2,Y0=1/um,vce=[new D(1,1,1),new D(-1,1,1),new D(1,1,-1),new D(-1,1,-1),new D(0,um,Y0),new D(0,um,-Y0),new D(Y0,0,um),new D(-Y0,0,um),new D(um,Y0,0),new D(-um,Y0,0)],Yh=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,n=100){kN=this._renderer.getRenderTarget(),this._setSize(256);let r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(e,i,n,r),t>0&&this._blur(r,0,0,t),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=bce(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=xce(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;e2?i:0,i,i),o.setRenderTarget(n),d&&o.render(u,r),o.render(e,r)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=h,o.autoClear=l,e.background=p}_textureToCubeUV(e,t){let i=this._renderer,n=e.mapping===Gh||e.mapping===uf;n?(null===this._cubemapMaterial&&(this._cubemapMaterial=bce()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=xce());let r=n?this._cubemapMaterial:this._equirectMaterial,a=new xt(this._lodPlanes[0],r);r.uniforms.envMap.value=e;let s=this._cubeSize;zM(t,0,0,3*s,2*s),i.setRenderTarget(t),i.render(a,ON)}_applyPMREM(e){let t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let n=1;nhm&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${f} samples when the maximum is set to ${hm}`);let m=[],g=0;for(let x=0;xv-nv?n-v+nv:0),4*(this._cubeSize-y),3*y,2*y),o.setRenderTarget(t),o.render(h,ON)}};function Hit(e){let t=[],i=[],n=[],r=e,a=e-nv+1+mce.length;for(let s=0;se-nv?o=mce[s-e+nv-1]:0===s&&(o=0),n.push(o);let l=1/(a-2),h=-l,c=1+l,u=[h,h,c,h,c,c,h,h,c,c,h,c],d=6,p=6,f=3,m=2,g=1,v=new Float32Array(f*p*d),y=new Float32Array(m*p*d),x=new Float32Array(g*p*d);for(let e=0;e2?0:-1,n=[t,i,0,t+2/3,i,0,t+2/3,i+1,0,t,i,0,t+2/3,i+1,0,t,i+1,0];v.set(n,f*p*e),y.set(u,m*p*e);let r=[e,e,e,e,e,e];x.set(r,g*p*e)}let b=new Dt;b.setAttribute("position",new mn(v,f)),b.setAttribute("uv",new mn(y,m)),b.setAttribute("faceIndex",new mn(x,g)),t.push(b),r>nv&&r--}return{lodPlanes:t,sizeLods:i,sigmas:n}}function yce(e,t,i){let n=new sr(e,t,i);return n.texture.mapping=Mv,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function zM(e,t,i,n,r){e.viewport.set(t,i,n,r),e.scissor.set(t,i,n,r)}function Vit(e,t,i){let n=new Float32Array(hm),r=new D(0,1,0);return new cn({name:"SphericalGaussianBlur",defines:{n:hm,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/i,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:HU(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:Qr,depthTest:!1,depthWrite:!1})}function xce(){return new cn({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:HU(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:Qr,depthTest:!1,depthWrite:!1})}function bce(){return new cn({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:HU(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:Qr,depthTest:!1,depthWrite:!1})}function HU(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function zit(e){let t=new WeakMap,i=null;function n(e){let i=e.target;i.removeEventListener("dispose",n);let r=t.get(i);void 0!==r&&(t.delete(i),r.dispose())}return{get:function(r){if(r&&r.isTexture){let a=r.mapping,s=a===vm||a===fb,o=a===Gh||a===uf;if(s||o){if(r.isRenderTargetTexture&&!0===r.needsPMREMUpdate){r.needsPMREMUpdate=!1;let n=t.get(r);return null===i&&(i=new Yh(e)),n=s?i.fromEquirectangular(r,n):i.fromCubemap(r,n),t.set(r,n),n.texture}if(t.has(r))return t.get(r).texture;{let a=r.image;if(s&&a&&a.height>0||o&&a&&function(e){let t=0;for(let i=0;i<6;i++)void 0!==e[i]&&t++;return 6===t}(a)){null===i&&(i=new Yh(e));let a=s?i.fromEquirectangular(r):i.fromCubemap(r);return t.set(r,a),r.addEventListener("dispose",n),a.texture}return null}}}return r},dispose:function(){t=new WeakMap,null!==i&&(i.dispose(),i=null)}}}function Git(e){let t={};function i(i){if(void 0!==t[i])return t[i];let n;switch(i){case"WEBGL_depth_texture":n=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":n=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":n=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":n=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:n=e.getExtension(i)}return t[i]=n,n}return{has:function(e){return null!==i(e)},init:function(e){e.isWebGL2?i("EXT_color_buffer_float"):(i("WEBGL_depth_texture"),i("OES_texture_float"),i("OES_texture_half_float"),i("OES_texture_half_float_linear"),i("OES_standard_derivatives"),i("OES_element_index_uint"),i("OES_vertex_array_object"),i("ANGLE_instanced_arrays")),i("OES_texture_float_linear"),i("EXT_color_buffer_half_float"),i("WEBGL_multisampled_render_to_texture")},get:function(e){let t=i(e);return null===t&&console.warn("THREE.WebGLRenderer: "+e+" extension not supported."),t}}}function qit(e,t,i,n){let r={},a=new WeakMap;function s(e){let o=e.target;null!==o.index&&t.remove(o.index);for(let i in o.attributes)t.remove(o.attributes[i]);for(let i in o.morphAttributes){let e=o.morphAttributes[i];for(let i=0,n=e.length;it.maxTextureSize&&(m=Math.ceil(f/t.maxTextureSize),f=t.maxTextureSize);let g=new Float32Array(f*m*4*r),v=new ov(g,f,m,r);v.type=fa,v.needsUpdate=!0;let y=4*p;for(let t=0;t0)return e;let r=t*i,a=Ece[r];if(void 0===a&&(a=new Float32Array(r),Ece[r]=a),0!==t){n.toArray(a,0);for(let n=1,r=0;n!==t;++n)r+=i,e[n].toArray(a,r)}return a}function Ls(e,t){if(e.length!==t.length)return!1;for(let i=0,n=e.length;i":" "} ${e}: ${i[s]}`)}return n.join("\n")}function Hst(e){switch(e){case Na:return["Linear","( value )"];case en:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",e),["Linear","( value )"]}}function Ace(e,t,i){let n=e.getShaderParameter(t,e.COMPILE_STATUS),r=e.getShaderInfoLog(t).trim();if(n&&""===r)return"";let a=/ERROR: 0:(\d+)/.exec(r);if(a){let n=parseInt(a[1]);return i.toUpperCase()+"\n\n"+r+"\n\n"+Ust(e.getShaderSource(t),n)}return r}function Vst(e,t){let i=Hst(t);return"vec4 "+e+"( vec4 value ) { return LinearTo"+i[0]+i[1]+"; }"}function zst(e,t){let i;switch(t){case que:i="Linear";break;case Wue:i="Reinhard";break;case jue:i="OptimizedCineon";break;case Xue:i="ACESFilmic";break;case Yue:i="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),i="Linear"}return"vec3 "+e+"( vec3 color ) { return "+i+"ToneMapping( color ); }"}function Gst(e){return[e.extensionDerivatives||e.envMapCubeUVHeight||e.bumpMap||e.normalMapTangentSpace||e.clearcoatNormalMap||e.flatShading||"physical"===e.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(e.extensionFragDepth||e.logarithmicDepthBuffer)&&e.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",e.extensionDrawBuffers&&e.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(e.extensionShaderTextureLOD||e.envMap||e.transmission)&&e.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(ob).join("\n")}function qst(e){let t=[];for(let i in e){let n=e[i];!1!==n&&t.push("#define "+i+" "+n)}return t.join("\n")}function Wst(e,t){let i={},n=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function NB(e){return e.replace(jst,Yst)}var Xst=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function Yst(e,t){let i=$n[t];if(void 0===i){let e=Xst.get(t);if(void 0===e)throw new Error("Can not resolve #include <"+t+">");i=$n[e],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,e)}return NB(i)}var $st=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Ice(e){return e.replace($st,Zst)}function Zst(e,t,i,n){let r="";for(let a=parseInt(t);a0&&(r+="\n"),a=[m,"#define SHADER_TYPE "+i.shaderType,"#define SHADER_NAME "+i.shaderName,g].filter(ob).join("\n"),a.length>0&&(a+="\n")):(r=[Lce(i),"#define SHADER_TYPE "+i.shaderType,"#define SHADER_NAME "+i.shaderName,g,i.instancing?"#define USE_INSTANCING":"",i.instancingColor?"#define USE_INSTANCING_COLOR":"",i.useFog&&i.fog?"#define USE_FOG":"",i.useFog&&i.fogExp2?"#define FOG_EXP2":"",i.map?"#define USE_MAP":"",i.envMap?"#define USE_ENVMAP":"",i.envMap?"#define "+d:"",i.lightMap?"#define USE_LIGHTMAP":"",i.aoMap?"#define USE_AOMAP":"",i.bumpMap?"#define USE_BUMPMAP":"",i.normalMap?"#define USE_NORMALMAP":"",i.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",i.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",i.displacementMap?"#define USE_DISPLACEMENTMAP":"",i.emissiveMap?"#define USE_EMISSIVEMAP":"",i.anisotropyMap?"#define USE_ANISOTROPYMAP":"",i.clearcoatMap?"#define USE_CLEARCOATMAP":"",i.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",i.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",i.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",i.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",i.specularMap?"#define USE_SPECULARMAP":"",i.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",i.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",i.roughnessMap?"#define USE_ROUGHNESSMAP":"",i.metalnessMap?"#define USE_METALNESSMAP":"",i.alphaMap?"#define USE_ALPHAMAP":"",i.alphaHash?"#define USE_ALPHAHASH":"",i.transmission?"#define USE_TRANSMISSION":"",i.transmissionMap?"#define USE_TRANSMISSIONMAP":"",i.thicknessMap?"#define USE_THICKNESSMAP":"",i.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",i.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",i.mapUv?"#define MAP_UV "+i.mapUv:"",i.alphaMapUv?"#define ALPHAMAP_UV "+i.alphaMapUv:"",i.lightMapUv?"#define LIGHTMAP_UV "+i.lightMapUv:"",i.aoMapUv?"#define AOMAP_UV "+i.aoMapUv:"",i.emissiveMapUv?"#define EMISSIVEMAP_UV "+i.emissiveMapUv:"",i.bumpMapUv?"#define BUMPMAP_UV "+i.bumpMapUv:"",i.normalMapUv?"#define NORMALMAP_UV "+i.normalMapUv:"",i.displacementMapUv?"#define DISPLACEMENTMAP_UV "+i.displacementMapUv:"",i.metalnessMapUv?"#define METALNESSMAP_UV "+i.metalnessMapUv:"",i.roughnessMapUv?"#define ROUGHNESSMAP_UV "+i.roughnessMapUv:"",i.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+i.anisotropyMapUv:"",i.clearcoatMapUv?"#define CLEARCOATMAP_UV "+i.clearcoatMapUv:"",i.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+i.clearcoatNormalMapUv:"",i.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+i.clearcoatRoughnessMapUv:"",i.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+i.iridescenceMapUv:"",i.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+i.iridescenceThicknessMapUv:"",i.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+i.sheenColorMapUv:"",i.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+i.sheenRoughnessMapUv:"",i.specularMapUv?"#define SPECULARMAP_UV "+i.specularMapUv:"",i.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+i.specularColorMapUv:"",i.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+i.specularIntensityMapUv:"",i.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+i.transmissionMapUv:"",i.thicknessMapUv?"#define THICKNESSMAP_UV "+i.thicknessMapUv:"",i.vertexTangents&&!1===i.flatShading?"#define USE_TANGENT":"",i.vertexColors?"#define USE_COLOR":"",i.vertexAlphas?"#define USE_COLOR_ALPHA":"",i.vertexUv1s?"#define USE_UV1":"",i.vertexUv2s?"#define USE_UV2":"",i.vertexUv3s?"#define USE_UV3":"",i.pointsUvs?"#define USE_POINTS_UV":"",i.flatShading?"#define FLAT_SHADED":"",i.skinning?"#define USE_SKINNING":"",i.morphTargets?"#define USE_MORPHTARGETS":"",i.morphNormals&&!1===i.flatShading?"#define USE_MORPHNORMALS":"",i.morphColors&&i.isWebGL2?"#define USE_MORPHCOLORS":"",i.morphTargetsCount>0&&i.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",i.morphTargetsCount>0&&i.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+i.morphTextureStride:"",i.morphTargetsCount>0&&i.isWebGL2?"#define MORPHTARGETS_COUNT "+i.morphTargetsCount:"",i.doubleSided?"#define DOUBLE_SIDED":"",i.flipSided?"#define FLIP_SIDED":"",i.shadowMapEnabled?"#define USE_SHADOWMAP":"",i.shadowMapEnabled?"#define "+c:"",i.sizeAttenuation?"#define USE_SIZEATTENUATION":"",i.useLegacyLights?"#define LEGACY_LIGHTS":"",i.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",i.logarithmicDepthBuffer&&i.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(ob).join("\n"),a=[m,Lce(i),"#define SHADER_TYPE "+i.shaderType,"#define SHADER_NAME "+i.shaderName,g,i.useFog&&i.fog?"#define USE_FOG":"",i.useFog&&i.fogExp2?"#define FOG_EXP2":"",i.map?"#define USE_MAP":"",i.matcap?"#define USE_MATCAP":"",i.envMap?"#define USE_ENVMAP":"",i.envMap?"#define "+u:"",i.envMap?"#define "+d:"",i.envMap?"#define "+p:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",i.lightMap?"#define USE_LIGHTMAP":"",i.aoMap?"#define USE_AOMAP":"",i.bumpMap?"#define USE_BUMPMAP":"",i.normalMap?"#define USE_NORMALMAP":"",i.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",i.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",i.emissiveMap?"#define USE_EMISSIVEMAP":"",i.anisotropy?"#define USE_ANISOTROPY":"",i.anisotropyMap?"#define USE_ANISOTROPYMAP":"",i.clearcoat?"#define USE_CLEARCOAT":"",i.clearcoatMap?"#define USE_CLEARCOATMAP":"",i.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",i.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",i.iridescence?"#define USE_IRIDESCENCE":"",i.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",i.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",i.specularMap?"#define USE_SPECULARMAP":"",i.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",i.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",i.roughnessMap?"#define USE_ROUGHNESSMAP":"",i.metalnessMap?"#define USE_METALNESSMAP":"",i.alphaMap?"#define USE_ALPHAMAP":"",i.alphaTest?"#define USE_ALPHATEST":"",i.alphaHash?"#define USE_ALPHAHASH":"",i.sheen?"#define USE_SHEEN":"",i.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",i.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",i.transmission?"#define USE_TRANSMISSION":"",i.transmissionMap?"#define USE_TRANSMISSIONMAP":"",i.thicknessMap?"#define USE_THICKNESSMAP":"",i.vertexTangents&&!1===i.flatShading?"#define USE_TANGENT":"",i.vertexColors||i.instancingColor?"#define USE_COLOR":"",i.vertexAlphas?"#define USE_COLOR_ALPHA":"",i.vertexUv1s?"#define USE_UV1":"",i.vertexUv2s?"#define USE_UV2":"",i.vertexUv3s?"#define USE_UV3":"",i.pointsUvs?"#define USE_POINTS_UV":"",i.gradientMap?"#define USE_GRADIENTMAP":"",i.flatShading?"#define FLAT_SHADED":"",i.doubleSided?"#define DOUBLE_SIDED":"",i.flipSided?"#define FLIP_SIDED":"",i.shadowMapEnabled?"#define USE_SHADOWMAP":"",i.shadowMapEnabled?"#define "+c:"",i.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",i.useLegacyLights?"#define LEGACY_LIGHTS":"",i.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",i.logarithmicDepthBuffer&&i.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",i.toneMapping!==Vh?"#define TONE_MAPPING":"",i.toneMapping!==Vh?$n.tonemapping_pars_fragment:"",i.toneMapping!==Vh?zst("toneMapping",i.toneMapping):"",i.dithering?"#define DITHERING":"",i.opaque?"#define OPAQUE":"",$n.colorspace_pars_fragment,Vst("linearToOutputTexel",i.outputColorSpace),i.useDepthPacking?"#define DEPTH_PACKING "+i.depthPacking:"","\n"].filter(ob).join("\n")),l=NB(l),l=Cce(l,i),l=Pce(l,i),h=NB(h),h=Cce(h,i),h=Pce(h,i),l=Ice(l),h=Ice(h),i.isWebGL2&&!0!==i.isRawShaderMaterial&&(y="#version 300 es\n",r=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+r,a=["#define varying in",i.glslVersion===TB?"":"layout(location = 0) out highp vec4 pc_fragColor;",i.glslVersion===TB?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+a);let x,b,_=y+r+l,w=y+a+h,S=Rce(s,s.VERTEX_SHADER,_),M=Rce(s,s.FRAGMENT_SHADER,w);if(s.attachShader(v,S),s.attachShader(v,M),void 0!==i.index0AttributeName?s.bindAttribLocation(v,0,i.index0AttributeName):!0===i.morphTargets&&s.bindAttribLocation(v,0,"position"),s.linkProgram(v),e.debug.checkShaderErrors){let t=s.getProgramInfoLog(v).trim(),i=s.getShaderInfoLog(S).trim(),n=s.getShaderInfoLog(M).trim(),o=!0,l=!0;if(!1===s.getProgramParameter(v,s.LINK_STATUS))if(o=!1,"function"==typeof e.debug.onShaderError)e.debug.onShaderError(s,v,S,M);else{let e=Ace(s,S,"vertex"),i=Ace(s,M,"fragment");console.error("THREE.WebGLProgram: Shader Error "+s.getError()+" - VALIDATE_STATUS "+s.getProgramParameter(v,s.VALIDATE_STATUS)+"\n\nProgram Info Log: "+t+"\n"+e+"\n"+i)}else""!==t?console.warn("THREE.WebGLProgram: Program Info Log:",t):(""===i||""===n)&&(l=!1);l&&(this.diagnostics={runnable:o,programLog:t,vertexShader:{log:i,prefix:r},fragmentShader:{log:n,prefix:a}})}return s.deleteShader(S),s.deleteShader(M),this.getUniforms=function(){return void 0===x&&(x=new sv(s,v)),x},this.getAttributes=function(){return void 0===b&&(b=Wst(s,v)),b},this.destroy=function(){n.releaseStatesOfProgram(this),s.deleteProgram(v),this.program=void 0},this.type=i.shaderType,this.name=i.shaderName,this.id=Bst++,this.cacheKey=t,this.usedTimes=1,this.program=v,this.vertexShader=S,this.fragmentShader=M,this}var rat=0,BB=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){let t=e.vertexShader,i=e.fragmentShader,n=this._getShaderStage(t),r=this._getShaderStage(i),a=this._getShaderCacheForMaterial(e);return!1===a.has(n)&&(a.add(n),n.usedTimes++),!1===a.has(r)&&(a.add(r),r.usedTimes++),this}remove(e){let t=this.materialCache.get(e);for(let i of t)i.usedTimes--,0===i.usedTimes&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){let t=this.materialCache,i=t.get(e);return void 0===i&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){let t=this.shaderCache,i=t.get(e);return void 0===i&&(i=new UB(e),t.set(e,i)),i}},UB=class{constructor(e){this.id=rat++,this.code=e,this.usedTimes=0}};function iat(e,t,i,n,r,a,s){let o=new df,l=new BB,h=[],c=r.isWebGL2,u=r.logarithmicDepthBuffer,d=r.vertexTextures,p=r.precision,f={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function m(e){return 0===e?"uv":`uv${e}`}return{getParameters:function(a,o,h,g,v){let y=g.fog,x=v.geometry,b=a.isMeshStandardMaterial?g.environment:null,_=(a.isMeshStandardMaterial?i:t).get(a.envMap||b),w=_&&_.mapping===Mv?_.image.height:null,S=f[a.type];null!==a.precision&&(p=r.getMaxPrecision(a.precision),p!==a.precision&&console.warn("THREE.WebGLProgram.getParameters:",a.precision,"not supported, using",p,"instead."));let M,E,T,A,C=x.morphAttributes.position||x.morphAttributes.normal||x.morphAttributes.color,P=void 0!==C?C.length:0,R=0;if(void 0!==x.morphAttributes.position&&(R=1),void 0!==x.morphAttributes.normal&&(R=2),void 0!==x.morphAttributes.color&&(R=3),S){let e=yc[S];M=e.vertexShader,E=e.fragmentShader}else M=a.vertexShader,E=a.fragmentShader,l.update(a),T=l.getVertexShaderID(a),A=l.getFragmentShaderID(a);let D=e.getRenderTarget(),L=!0===v.isInstancedMesh,I=!!a.map,O=!!a.matcap,k=!!_,N=!!a.aoMap,U=!!a.lightMap,F=!!a.bumpMap,B=!!a.normalMap,z=!!a.displacementMap,H=!!a.emissiveMap,V=!!a.metalnessMap,j=!!a.roughnessMap,G=a.anisotropy>0,W=a.clearcoat>0,X=a.iridescence>0,Y=a.sheen>0,q=a.transmission>0,Z=G&&!!a.anisotropyMap,Q=W&&!!a.clearcoatMap,J=W&&!!a.clearcoatNormalMap,K=W&&!!a.clearcoatRoughnessMap,$=X&&!!a.iridescenceMap,ee=X&&!!a.iridescenceThicknessMap,te=Y&&!!a.sheenColorMap,ie=Y&&!!a.sheenRoughnessMap,ne=!!a.specularMap,re=!!a.specularColorMap,ae=!!a.specularIntensityMap,se=q&&!!a.transmissionMap,oe=q&&!!a.thicknessMap,le=!!a.gradientMap,he=!!a.alphaMap,ce=a.alphaTest>0,ue=!!a.alphaHash,de=!!a.extensions,pe=!!x.attributes.uv1,fe=!!x.attributes.uv2,me=!!x.attributes.uv3,ge=Vh;return a.toneMapped&&(null===D||!0===D.isXRRenderTarget)&&(ge=e.toneMapping),{isWebGL2:c,shaderID:S,shaderType:a.type,shaderName:a.name,vertexShader:M,fragmentShader:E,defines:a.defines,customVertexShaderID:T,customFragmentShaderID:A,isRawShaderMaterial:!0===a.isRawShaderMaterial,glslVersion:a.glslVersion,precision:p,instancing:L,instancingColor:L&&null!==v.instanceColor,supportsVertexTextures:d,outputColorSpace:null===D?e.outputColorSpace:!0===D.isXRRenderTarget?D.texture.colorSpace:Na,map:I,matcap:O,envMap:k,envMapMode:k&&_.mapping,envMapCubeUVHeight:w,aoMap:N,lightMap:U,bumpMap:F,normalMap:B,displacementMap:d&&z,emissiveMap:H,normalMapObjectSpace:B&&a.normalMapType===ahe,normalMapTangentSpace:B&&a.normalMapType===yf,metalnessMap:V,roughnessMap:j,anisotropy:G,anisotropyMap:Z,clearcoat:W,clearcoatMap:Q,clearcoatNormalMap:J,clearcoatRoughnessMap:K,iridescence:X,iridescenceMap:$,iridescenceThicknessMap:ee,sheen:Y,sheenColorMap:te,sheenRoughnessMap:ie,specularMap:ne,specularColorMap:re,specularIntensityMap:ae,transmission:q,transmissionMap:se,thicknessMap:oe,gradientMap:le,opaque:!1===a.transparent&&a.blending===mm,alphaMap:he,alphaTest:ce,alphaHash:ue,combine:a.combine,mapUv:I&&m(a.map.channel),aoMapUv:N&&m(a.aoMap.channel),lightMapUv:U&&m(a.lightMap.channel),bumpMapUv:F&&m(a.bumpMap.channel),normalMapUv:B&&m(a.normalMap.channel),displacementMapUv:z&&m(a.displacementMap.channel),emissiveMapUv:H&&m(a.emissiveMap.channel),metalnessMapUv:V&&m(a.metalnessMap.channel),roughnessMapUv:j&&m(a.roughnessMap.channel),anisotropyMapUv:Z&&m(a.anisotropyMap.channel),clearcoatMapUv:Q&&m(a.clearcoatMap.channel),clearcoatNormalMapUv:J&&m(a.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:K&&m(a.clearcoatRoughnessMap.channel),iridescenceMapUv:$&&m(a.iridescenceMap.channel),iridescenceThicknessMapUv:ee&&m(a.iridescenceThicknessMap.channel),sheenColorMapUv:te&&m(a.sheenColorMap.channel),sheenRoughnessMapUv:ie&&m(a.sheenRoughnessMap.channel),specularMapUv:ne&&m(a.specularMap.channel),specularColorMapUv:re&&m(a.specularColorMap.channel),specularIntensityMapUv:ae&&m(a.specularIntensityMap.channel),transmissionMapUv:se&&m(a.transmissionMap.channel),thicknessMapUv:oe&&m(a.thicknessMap.channel),alphaMapUv:he&&m(a.alphaMap.channel),vertexTangents:!!x.attributes.tangent&&(B||G),vertexColors:a.vertexColors,vertexAlphas:!0===a.vertexColors&&!!x.attributes.color&&4===x.attributes.color.itemSize,vertexUv1s:pe,vertexUv2s:fe,vertexUv3s:me,pointsUvs:!0===v.isPoints&&!!x.attributes.uv&&(I||he),fog:!!y,useFog:!0===a.fog,fogExp2:y&&y.isFogExp2,flatShading:!0===a.flatShading,sizeAttenuation:!0===a.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===v.isSkinnedMesh,morphTargets:void 0!==x.morphAttributes.position,morphNormals:void 0!==x.morphAttributes.normal,morphColors:void 0!==x.morphAttributes.color,morphTargetsCount:P,morphTextureStride:R,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:a.dithering,shadowMapEnabled:e.shadowMap.enabled&&h.length>0,shadowMapType:e.shadowMap.type,toneMapping:ge,useLegacyLights:e._useLegacyLights,premultipliedAlpha:a.premultipliedAlpha,doubleSided:a.side===Sr,flipSided:a.side===Ji,useDepthPacking:a.depthPacking>=0,depthPacking:a.depthPacking||0,index0AttributeName:a.index0AttributeName,extensionDerivatives:de&&!0===a.extensions.derivatives,extensionFragDepth:de&&!0===a.extensions.fragDepth,extensionDrawBuffers:de&&!0===a.extensions.drawBuffers,extensionShaderTextureLOD:de&&!0===a.extensions.shaderTextureLOD,rendererExtensionFragDepth:c||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:c||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:c||n.has("EXT_shader_texture_lod"),customProgramCacheKey:a.customProgramCacheKey()}},getProgramCacheKey:function(t){let i=[];if(t.shaderID?i.push(t.shaderID):(i.push(t.customVertexShaderID),i.push(t.customFragmentShaderID)),void 0!==t.defines)for(let e in t.defines)i.push(e),i.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(function(e,t){e.push(t.precision),e.push(t.outputColorSpace),e.push(t.envMapMode),e.push(t.envMapCubeUVHeight),e.push(t.mapUv),e.push(t.alphaMapUv),e.push(t.lightMapUv),e.push(t.aoMapUv),e.push(t.bumpMapUv),e.push(t.normalMapUv),e.push(t.displacementMapUv),e.push(t.emissiveMapUv),e.push(t.metalnessMapUv),e.push(t.roughnessMapUv),e.push(t.anisotropyMapUv),e.push(t.clearcoatMapUv),e.push(t.clearcoatNormalMapUv),e.push(t.clearcoatRoughnessMapUv),e.push(t.iridescenceMapUv),e.push(t.iridescenceThicknessMapUv),e.push(t.sheenColorMapUv),e.push(t.sheenRoughnessMapUv),e.push(t.specularMapUv),e.push(t.specularColorMapUv),e.push(t.specularIntensityMapUv),e.push(t.transmissionMapUv),e.push(t.thicknessMapUv),e.push(t.combine),e.push(t.fogExp2),e.push(t.sizeAttenuation),e.push(t.morphTargetsCount),e.push(t.morphAttributeCount),e.push(t.numDirLights),e.push(t.numPointLights),e.push(t.numSpotLights),e.push(t.numSpotLightMaps),e.push(t.numHemiLights),e.push(t.numRectAreaLights),e.push(t.numDirLightShadows),e.push(t.numPointLightShadows),e.push(t.numSpotLightShadows),e.push(t.numSpotLightShadowsWithMaps),e.push(t.shadowMapType),e.push(t.toneMapping),e.push(t.numClippingPlanes),e.push(t.numClipIntersection),e.push(t.depthPacking)}(i,t),function(e,t){o.disableAll(),t.isWebGL2&&o.enable(0),t.supportsVertexTextures&&o.enable(1),t.instancing&&o.enable(2),t.instancingColor&&o.enable(3),t.matcap&&o.enable(4),t.envMap&&o.enable(5),t.normalMapObjectSpace&&o.enable(6),t.normalMapTangentSpace&&o.enable(7),t.clearcoat&&o.enable(8),t.iridescence&&o.enable(9),t.alphaTest&&o.enable(10),t.vertexColors&&o.enable(11),t.vertexAlphas&&o.enable(12),t.vertexUv1s&&o.enable(13),t.vertexUv2s&&o.enable(14),t.vertexUv3s&&o.enable(15),t.vertexTangents&&o.enable(16),t.anisotropy&&o.enable(17),e.push(o.mask),o.disableAll(),t.fog&&o.enable(0),t.useFog&&o.enable(1),t.flatShading&&o.enable(2),t.logarithmicDepthBuffer&&o.enable(3),t.skinning&&o.enable(4),t.morphTargets&&o.enable(5),t.morphNormals&&o.enable(6),t.morphColors&&o.enable(7),t.premultipliedAlpha&&o.enable(8),t.shadowMapEnabled&&o.enable(9),t.useLegacyLights&&o.enable(10),t.doubleSided&&o.enable(11),t.flipSided&&o.enable(12),t.useDepthPacking&&o.enable(13),t.dithering&&o.enable(14),t.transmission&&o.enable(15),t.sheen&&o.enable(16),t.opaque&&o.enable(17),t.pointsUvs&&o.enable(18),e.push(o.mask)}(i,t),i.push(e.outputColorSpace)),i.push(t.customProgramCacheKey),i.join()},getUniforms:function(e){let t,i=f[e.type];if(i){let e=yc[i];t=Ri.clone(e.uniforms)}else t=e.uniforms;return t},acquireProgram:function(t,i){let n;for(let e=0,r=h.length;e0?n.push(c):!0===s.transparent?r.push(c):i.push(c)},unshift:function(e,t,s,o,l,h){let c=a(e,t,s,o,l,h);s.transmission>0?n.unshift(c):!0===s.transparent?r.unshift(c):i.unshift(c)},finish:function(){for(let i=t,n=e.length;i1&&i.sort(e||aat),n.length>1&&n.sort(t||Dce),r.length>1&&r.sort(t||Dce)}}}function oat(){let e=new WeakMap;return{get:function(t,i){let n,r=e.get(t);return void 0===r?(n=new Oce,e.set(t,[n])):i>=r.length?(n=new Oce,r.push(n)):n=r[i],n},dispose:function(){e=new WeakMap}}}function lat(){let e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let i;switch(t.type){case"DirectionalLight":i={direction:new D,color:new ct};break;case"SpotLight":i={position:new D,direction:new D,color:new ct,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":i={position:new D,color:new ct,distance:0,decay:0};break;case"HemisphereLight":i={direction:new D,skyColor:new ct,groundColor:new ct};break;case"RectAreaLight":i={color:new ct,position:new D,halfWidth:new D,halfHeight:new D}}return e[t.id]=i,i}}}function cat(){let e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let i;switch(t.type){case"DirectionalLight":case"SpotLight":i={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new xe};break;case"PointLight":i={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new xe,shadowCameraNear:1,shadowCameraFar:1e3}}return e[t.id]=i,i}}}var uat=0;function hat(e,t){return(t.castShadow?2:0)-(e.castShadow?2:0)+(t.map?1:0)-(e.map?1:0)}function dat(e,t){let i=new lat,n=cat(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let l=0;l<9;l++)r.probe.push(new D);let a=new D,s=new et,o=new et;return{setup:function(a,s){let o=0,l=0,h=0;for(let e=0;e<9;e++)r.probe[e].set(0,0,0);let c=0,u=0,d=0,p=0,f=0,m=0,g=0,v=0,y=0,x=0;a.sort(hat);let b=!0===s?Math.PI:1;for(let e=0,t=a.length;e0&&(t.isWebGL2||!0===e.has("OES_texture_float_linear")?(r.rectAreaLTC1=Jt.LTC_FLOAT_1,r.rectAreaLTC2=Jt.LTC_FLOAT_2):!0===e.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Jt.LTC_HALF_1,r.rectAreaLTC2=Jt.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=h;let _=r.hash;(_.directionalLength!==c||_.pointLength!==u||_.spotLength!==d||_.rectAreaLength!==p||_.hemiLength!==f||_.numDirectionalShadows!==m||_.numPointShadows!==g||_.numSpotShadows!==v||_.numSpotMaps!==y)&&(r.directional.length=c,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=f,r.directionalShadow.length=m,r.directionalShadowMap.length=m,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=m,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=v+y-x,r.spotLightMap.length=y,r.numSpotLightShadowsWithMaps=x,_.directionalLength=c,_.pointLength=u,_.spotLength=d,_.rectAreaLength=p,_.hemiLength=f,_.numDirectionalShadows=m,_.numPointShadows=g,_.numSpotShadows=v,_.numSpotMaps=y,r.version=uat++)},setupView:function(e,t){let i=0,n=0,l=0,h=0,c=0,u=t.matrixWorldInverse;for(let d=0,p=e.length;d=s.length?(a=new kce(e,t),s.push(a)):a=s[r],a},dispose:function(){i=new WeakMap}}}var _c=class extends yr{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=she,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},_b=class extends yr{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},pat="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",mat="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function gat(e,t,i){let n=new ma,r=new xe,a=new xe,s=new gr,o=new _c({depthPacking:Cv}),l=new _b,h={},c=i.maxTextureSize,u={[pi]:Ji,[Ji]:pi,[Sr]:Sr},d=new cn({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new xe},radius:{value:4}},vertexShader:pat,fragmentShader:mat}),p=d.clone();p.defines.HORIZONTAL_PASS=1;let f=new Dt;f.setAttribute("position",new mn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let m=new xt(f,d),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=MU;let v=this.type;function y(i,n){let a=t.update(m);d.defines.VSM_SAMPLES!==i.blurSamples&&(d.defines.VSM_SAMPLES=i.blurSamples,p.defines.VSM_SAMPLES=i.blurSamples,d.needsUpdate=!0,p.needsUpdate=!0),null===i.mapPass&&(i.mapPass=new sr(r.x,r.y)),d.uniforms.shadow_pass.value=i.map.texture,d.uniforms.resolution.value=i.mapSize,d.uniforms.radius.value=i.radius,e.setRenderTarget(i.mapPass),e.clear(),e.renderBufferDirect(n,null,a,d,m,null),p.uniforms.shadow_pass.value=i.mapPass.texture,p.uniforms.resolution.value=i.mapSize,p.uniforms.radius.value=i.radius,e.setRenderTarget(i.map),e.clear(),e.renderBufferDirect(n,null,a,p,m,null)}function x(t,i,n,r){let a=null,s=!0===n.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(void 0!==s)a=s;else if(a=!0===n.isPointLight?l:o,e.localClippingEnabled&&!0===i.clipShadows&&Array.isArray(i.clippingPlanes)&&0!==i.clippingPlanes.length||i.displacementMap&&0!==i.displacementScale||i.alphaMap&&i.alphaTest>0||i.map&&i.alphaTest>0){let e=a.uuid,t=i.uuid,n=h[e];void 0===n&&(n={},h[e]=n);let r=n[t];void 0===r&&(r=a.clone(),n[t]=r),a=r}return a.visible=i.visible,a.wireframe=i.wireframe,a.side=r===vu?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:u[i.side],a.alphaMap=i.alphaMap,a.alphaTest=i.alphaTest,a.map=i.map,a.clipShadows=i.clipShadows,a.clippingPlanes=i.clippingPlanes,a.clipIntersection=i.clipIntersection,a.displacementMap=i.displacementMap,a.displacementScale=i.displacementScale,a.displacementBias=i.displacementBias,a.wireframeLinewidth=i.wireframeLinewidth,a.linewidth=i.linewidth,!0===n.isPointLight&&!0===a.isMeshDistanceMaterial&&(e.properties.get(a).light=n),a}function b(i,r,a,s,o){if(!1===i.visible)return;if(i.layers.test(r.layers)&&(i.isMesh||i.isLine||i.isPoints)&&(i.castShadow||i.receiveShadow&&o===vu)&&(!i.frustumCulled||n.intersectsObject(i))){i.modelViewMatrix.multiplyMatrices(a.matrixWorldInverse,i.matrixWorld);let n=t.update(i),r=i.material;if(Array.isArray(r)){let t=n.groups;for(let l=0,h=t.length;lc||r.y>c)&&(r.x>c&&(a.x=Math.floor(c/u.x),r.x=a.x*u.x,h.mapSize.x=a.x),r.y>c&&(a.y=Math.floor(c/u.y),r.y=a.y*u.y,h.mapSize.y=a.y)),null===h.map||!0===p||!0===f){let e=this.type!==vu?{minFilter:Jr,magFilter:Jr}:{};null!==h.map&&h.map.dispose(),h.map=new sr(r.x,r.y,e),h.map.texture.name=l.name+".shadowMap",h.camera.updateProjectionMatrix()}e.setRenderTarget(h.map),e.clear();let g=h.getViewportCount();for(let e=0;e=1):-1!==D.indexOf("OpenGL ES")&&(R=parseFloat(/^OpenGL ES (\d)/.exec(D)[1]),P=R>=2);let L=null,I={},O=e.getParameter(e.SCISSOR_BOX),k=e.getParameter(e.VIEWPORT),N=(new gr).fromArray(O),U=(new gr).fromArray(k);function F(t,i,r,a){let s=new Uint8Array(4),o=e.createTexture();e.bindTexture(t,o),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST);for(let l=0;ln||e.height>n)&&(r=n/Math.max(e.width,e.height)),r<1||!0===t){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){let n=t?xR:Math.floor,a=n(r*e.width),s=n(r*e.height);void 0===o&&(o=y(a,s));let l=i?y(a,s):o;return l.width=a,l.height=s,l.getContext("2d").drawImage(e,0,0,a,s),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+e.width+"x"+e.height+") to ("+a+"x"+s+")."),l}return"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+e.width+"x"+e.height+")."),e}return e}function b(e){return wB(e.width)&&wB(e.height)}function _(e,t){return e.generateMipmaps&&t&&e.minFilter!==Jr&&e.minFilter!==Pr}function w(t){e.generateMipmap(t)}function S(i,n,r,a,s=!1){if(!1===l)return n;if(null!==i){if(void 0!==e[i])return e[i];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+i+"'")}let o=n;return n===e.RED&&(r===e.FLOAT&&(o=e.R32F),r===e.HALF_FLOAT&&(o=e.R16F),r===e.UNSIGNED_BYTE&&(o=e.R8)),n===e.RED_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.R8UI),r===e.UNSIGNED_SHORT&&(o=e.R16UI),r===e.UNSIGNED_INT&&(o=e.R32UI),r===e.BYTE&&(o=e.R8I),r===e.SHORT&&(o=e.R16I),r===e.INT&&(o=e.R32I)),n===e.RG&&(r===e.FLOAT&&(o=e.RG32F),r===e.HALF_FLOAT&&(o=e.RG16F),r===e.UNSIGNED_BYTE&&(o=e.RG8)),n===e.RGBA&&(r===e.FLOAT&&(o=e.RGBA32F),r===e.HALF_FLOAT&&(o=e.RGBA16F),r===e.UNSIGNED_BYTE&&(o=a===en&&!1===s?e.SRGB8_ALPHA8:e.RGBA8),r===e.UNSIGNED_SHORT_4_4_4_4&&(o=e.RGBA4),r===e.UNSIGNED_SHORT_5_5_5_1&&(o=e.RGB5_A1)),(o===e.R16F||o===e.R32F||o===e.RG16F||o===e.RG32F||o===e.RGBA16F||o===e.RGBA32F)&&t.get("EXT_color_buffer_float"),o}function M(e,t,i){return!0===_(e,i)||e.isFramebufferTexture&&e.minFilter!==Jr&&e.minFilter!==Pr?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function E(t){return t===Jr||t===hf||t===zh?e.NEAREST:e.LINEAR}function T(e){let t=e.target;t.removeEventListener("dispose",T),function(e){let t=n.get(e);if(void 0===t.__webglInit)return;let i=e.source,r=g.get(i);if(r){let n=r[t.__cacheKey];n.usedTimes--,0===n.usedTimes&&C(e),0===Object.keys(r).length&&g.delete(i)}n.remove(e)}(t),t.isVideoTexture&&m.delete(t)}function A(t){let i=t.target;i.removeEventListener("dispose",A),function(t){let i=t.texture,r=n.get(t),a=n.get(i);if(void 0!==a.__webglTexture&&(e.deleteTexture(a.__webglTexture),s.memory.textures--),t.depthTexture&&t.depthTexture.dispose(),t.isWebGLCubeRenderTarget)for(let n=0;n<6;n++){if(Array.isArray(r.__webglFramebuffer[n]))for(let t=0;t0&&a.__version!==t.version){let e=t.image;if(null===e)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==e.complete)return void N(a,t,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}i.bindTexture(e.TEXTURE_2D,a.__webglTexture,e.TEXTURE0+r)}let D={[Di]:e.REPEAT,[Li]:e.CLAMP_TO_EDGE,[qh]:e.MIRRORED_REPEAT},L={[Jr]:e.NEAREST,[hf]:e.NEAREST_MIPMAP_NEAREST,[zh]:e.NEAREST_MIPMAP_LINEAR,[Pr]:e.LINEAR,[Im]:e.LINEAR_MIPMAP_NEAREST,[Fa]:e.LINEAR_MIPMAP_LINEAR},I={[lhe]:e.NEVER,[mhe]:e.ALWAYS,[che]:e.LESS,[hhe]:e.LEQUAL,[uhe]:e.EQUAL,[phe]:e.GEQUAL,[dhe]:e.GREATER,[fhe]:e.NOTEQUAL};function O(i,a,s){if(s?(e.texParameteri(i,e.TEXTURE_WRAP_S,D[a.wrapS]),e.texParameteri(i,e.TEXTURE_WRAP_T,D[a.wrapT]),(i===e.TEXTURE_3D||i===e.TEXTURE_2D_ARRAY)&&e.texParameteri(i,e.TEXTURE_WRAP_R,D[a.wrapR]),e.texParameteri(i,e.TEXTURE_MAG_FILTER,L[a.magFilter]),e.texParameteri(i,e.TEXTURE_MIN_FILTER,L[a.minFilter])):(e.texParameteri(i,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(i,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),(i===e.TEXTURE_3D||i===e.TEXTURE_2D_ARRAY)&&e.texParameteri(i,e.TEXTURE_WRAP_R,e.CLAMP_TO_EDGE),(a.wrapS!==Li||a.wrapT!==Li)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),e.texParameteri(i,e.TEXTURE_MAG_FILTER,E(a.magFilter)),e.texParameteri(i,e.TEXTURE_MIN_FILTER,E(a.minFilter)),a.minFilter!==Jr&&a.minFilter!==Pr&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),a.compareFunction&&(e.texParameteri(i,e.TEXTURE_COMPARE_MODE,e.COMPARE_REF_TO_TEXTURE),e.texParameteri(i,e.TEXTURE_COMPARE_FUNC,I[a.compareFunction])),!0===t.has("EXT_texture_filter_anisotropic")){let s=t.get("EXT_texture_filter_anisotropic");if(a.magFilter===Jr||a.minFilter!==zh&&a.minFilter!==Fa||a.type===fa&&!1===t.has("OES_texture_float_linear")||!1===l&&a.type===Mr&&!1===t.has("OES_texture_half_float_linear"))return;(a.anisotropy>1||n.get(a).__currentAnisotropy)&&(e.texParameterf(i,s.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(a.anisotropy,r.getMaxAnisotropy())),n.get(a).__currentAnisotropy=a.anisotropy)}}function k(t,i){let n=!1;void 0===t.__webglInit&&(t.__webglInit=!0,i.addEventListener("dispose",T));let r=i.source,a=g.get(r);void 0===a&&(a={},g.set(r,a));let o=function(e){let t=[];return t.push(e.wrapS),t.push(e.wrapT),t.push(e.wrapR||0),t.push(e.magFilter),t.push(e.minFilter),t.push(e.anisotropy),t.push(e.internalFormat),t.push(e.format),t.push(e.type),t.push(e.generateMipmaps),t.push(e.premultiplyAlpha),t.push(e.flipY),t.push(e.unpackAlignment),t.push(e.colorSpace),t.join()}(i);if(o!==t.__cacheKey){void 0===a[o]&&(a[o]={texture:e.createTexture(),usedTimes:0},s.memory.textures++,n=!0),a[o].usedTimes++;let r=a[t.__cacheKey];void 0!==r&&(a[t.__cacheKey].usedTimes--,0===r.usedTimes&&C(i)),t.__cacheKey=o,t.__webglTexture=a[o].texture}return n}function N(t,r,s){let o=e.TEXTURE_2D;(r.isDataArrayTexture||r.isCompressedArrayTexture)&&(o=e.TEXTURE_2D_ARRAY),r.isData3DTexture&&(o=e.TEXTURE_3D);let h=k(t,r),c=r.source;i.bindTexture(o,t.__webglTexture,e.TEXTURE0+s);let d=n.get(c);if(c.version!==d.__version||!0===h){i.activeTexture(e.TEXTURE0+s),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,r.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,r.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);let t=function(e){return!l&&(e.wrapS!==Li||e.wrapT!==Li||e.minFilter!==Jr&&e.minFilter!==Pr)}(r)&&!1===b(r.image),n=x(r.image,t,!1,u);n=V(r,n);let p=b(n)||l,f=a.convert(r.format,r.colorSpace),m=a.convert(r.type),g=S(r.internalFormat,f,m,r.colorSpace);O(o,r,p);let v,y=r.mipmaps,E=l&&!0!==r.isVideoTexture,T=void 0===d.__version||!0===h,A=M(r,n,p);if(r.isDepthTexture)g=e.DEPTH_COMPONENT,l?g=r.type===fa?e.DEPTH_COMPONENT32F:r.type===Hh?e.DEPTH_COMPONENT24:r.type===xu?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT16:r.type===fa&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===cf&&g===e.DEPTH_COMPONENT&&r.type!==Rv&&r.type!==Hh&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=Hh,m=a.convert(r.type)),r.format===Wh&&g===e.DEPTH_COMPONENT&&(g=e.DEPTH_STENCIL,r.type!==xu&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=xu,m=a.convert(r.type))),T&&(E?i.texStorage2D(e.TEXTURE_2D,1,g,n.width,n.height):i.texImage2D(e.TEXTURE_2D,0,g,n.width,n.height,0,f,m,null));else if(r.isDataTexture)if(y.length>0&&p){E&&T&&i.texStorage2D(e.TEXTURE_2D,A,g,y[0].width,y[0].height);for(let t=0,n=y.length;t>=1,r>>=1}}else if(y.length>0&&p){E&&T&&i.texStorage2D(e.TEXTURE_2D,A,g,y[0].width,y[0].height);for(let t=0,n=y.length;t>h),n=Math.max(1,r.height>>h);l===e.TEXTURE_3D||l===e.TEXTURE_2D_ARRAY?i.texImage3D(l,h,d,t,n,r.depth,0,c,u,null):i.texImage2D(l,h,d,t,n,0,c,u,null)}i.bindFramebuffer(e.FRAMEBUFFER,t),H(r)?p.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,o,l,n.get(s).__webglTexture,0,z(r)):(l===e.TEXTURE_2D||l>=e.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=e.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&e.framebufferTexture2D(e.FRAMEBUFFER,o,l,n.get(s).__webglTexture,h),i.bindFramebuffer(e.FRAMEBUFFER,null)}function F(t,i,n){if(e.bindRenderbuffer(e.RENDERBUFFER,t),i.depthBuffer&&!i.stencilBuffer){let r=e.DEPTH_COMPONENT16;if(n||H(i)){let t=i.depthTexture;t&&t.isDepthTexture&&(t.type===fa?r=e.DEPTH_COMPONENT32F:t.type===Hh&&(r=e.DEPTH_COMPONENT24));let n=z(i);H(i)?p.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,n,r,i.width,i.height):e.renderbufferStorageMultisample(e.RENDERBUFFER,n,r,i.width,i.height)}else e.renderbufferStorage(e.RENDERBUFFER,r,i.width,i.height);e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t)}else if(i.depthBuffer&&i.stencilBuffer){let r=z(i);n&&!1===H(i)?e.renderbufferStorageMultisample(e.RENDERBUFFER,r,e.DEPTH24_STENCIL8,i.width,i.height):H(i)?p.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,r,e.DEPTH24_STENCIL8,i.width,i.height):e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,i.width,i.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t)}else{let t=!0===i.isWebGLMultipleRenderTargets?i.texture:[i.texture];for(let r=0;r0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==i.__useRenderToTexture}function V(e,i){let n=e.colorSpace,r=e.format,a=e.type;return!0===e.isCompressedTexture||e.format===yR||n!==Na&&n!==Eu&&(n===en?!1===l?!0===t.has("EXT_sRGB")&&r===Js?(e.format=yR,e.minFilter=Pr,e.generateMipmaps=!1):i=yb.sRGBToLinear(i):(r!==Js||a!==bc)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",n)),i}this.allocateTextureUnit=function(){let e=P;return e>=h&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+h),P+=1,e},this.resetTextureUnits=function(){P=0},this.setTexture2D=R,this.setTexture2DArray=function(t,r){let a=n.get(t);t.version>0&&a.__version!==t.version?N(a,t,r):i.bindTexture(e.TEXTURE_2D_ARRAY,a.__webglTexture,e.TEXTURE0+r)},this.setTexture3D=function(t,r){let a=n.get(t);t.version>0&&a.__version!==t.version?N(a,t,r):i.bindTexture(e.TEXTURE_3D,a.__webglTexture,e.TEXTURE0+r)},this.setTextureCube=function(t,r){let s=n.get(t);t.version>0&&s.__version!==t.version?function(t,r,s){if(6!==r.image.length)return;let o=k(t,r),h=r.source;i.bindTexture(e.TEXTURE_CUBE_MAP,t.__webglTexture,e.TEXTURE0+s);let u=n.get(h);if(h.version!==u.__version||!0===o){i.activeTexture(e.TEXTURE0+s),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,r.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,r.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);let t=r.isCompressedTexture||r.image[0].isCompressedTexture,n=r.image[0]&&r.image[0].isDataTexture,d=[];for(let e=0;e<6;e++)d[e]=t||n?n?r.image[e].image:r.image[e]:x(r.image[e],!1,!0,c),d[e]=V(r,d[e]);let p,f=d[0],m=b(f)||l,g=a.convert(r.format,r.colorSpace),v=a.convert(r.type),y=S(r.internalFormat,g,v,r.colorSpace),E=l&&!0!==r.isVideoTexture,T=void 0===u.__version||!0===o,A=M(r,f,m);if(O(e.TEXTURE_CUBE_MAP,r,m),t){E&&T&&i.texStorage2D(e.TEXTURE_CUBE_MAP,A,y,f.width,f.height);for(let t=0;t<6;t++){p=d[t].mipmaps;for(let n=0;n0&&A++,i.texStorage2D(e.TEXTURE_CUBE_MAP,A,y,d[0].width,d[0].height));for(let t=0;t<6;t++)if(n){E?i.texSubImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,0,0,d[t].width,d[t].height,g,v,d[t].data):i.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,y,d[t].width,d[t].height,0,g,v,d[t].data);for(let n=0;n0){h.__webglFramebuffer[t]=[];for(let i=0;i0){h.__webglFramebuffer=[];for(let t=0;t0&&!1===H(t)){let n=d?o:[o];h.__webglMultisampledFramebuffer=e.createFramebuffer(),h.__webglColorRenderbuffer=[],i.bindFramebuffer(e.FRAMEBUFFER,h.__webglMultisampledFramebuffer);for(let i=0;i0)for(let n=0;n0)for(let i=0;i0&&!1===H(t)){let r=t.isWebGLMultipleRenderTargets?t.texture:[t.texture],a=t.width,s=t.height,o=e.COLOR_BUFFER_BIT,l=[],h=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,c=n.get(t),u=!0===t.isWebGLMultipleRenderTargets;if(u)for(let t=0;to+h?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&s<=o-h&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==o&&e.gripSpace&&(r=t.getPose(e.gripSpace,i),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==s&&(n=t.getPose(e.targetRaySpace,i),null===n&&null!==r&&(n=r),null!==n&&(s.matrix.fromArray(n.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),s.matrixWorldNeedsUpdate=!0,n.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(n.linearVelocity)):s.hasLinearVelocity=!1,n.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(n.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(xat)))}return null!==s&&(s.visible=null!==n),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==a),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){let i=new er;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}},ff=class extends Gr{constructor(e,t,i,n,r,a,s,o,l,h){if((h=void 0!==h?h:cf)!==cf&&h!==Wh)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===i&&h===cf&&(i=Hh),void 0===i&&h===Wh&&(i=xu),super(null,n,r,a,s,o,h,i,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=void 0!==s?s:Jr,this.minFilter=void 0!==o?o:Jr,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.compareFunction=e.compareFunction,this}toJSON(e){let t=super.toJSON(e);return null!==this.compareFunction&&(t.compareFunction=this.compareFunction),t}},HB=class extends Wo{constructor(e,t){super();let i=this,n=null,r=1,a=null,s="local-floor",o=1,l=null,h=null,c=null,u=null,d=null,p=null,f=t.getContextAttributes(),m=null,g=null,v=[],y=[],x=new hr;x.layers.enable(1),x.viewport=new gr;let b=new hr;b.layers.enable(2),b.viewport=new gr;let _=[x,b],w=new TR;w.layers.enable(1),w.layers.enable(2);let S=null,M=null;function E(e){let t=y.indexOf(e.inputSource);if(-1===t)return;let i=v[t];void 0!==i&&(i.update(e.inputSource,e.frame,l||a),i.dispatchEvent({type:e.type,data:e.inputSource}))}function T(){n.removeEventListener("select",E),n.removeEventListener("selectstart",E),n.removeEventListener("selectend",E),n.removeEventListener("squeeze",E),n.removeEventListener("squeezestart",E),n.removeEventListener("squeezeend",E),n.removeEventListener("end",T),n.removeEventListener("inputsourceschange",A);for(let e=0;e=0&&(y[n]=null,v[n].disconnect(i))}for(let t=0;t=y.length){y.push(i),n=e;break}if(null===y[e]){y[e]=i,n=e;break}}if(-1===n)break}let r=v[n];r&&r.connect(i)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(e){let t=v[e];return void 0===t&&(t=new ub,v[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){let t=v[e];return void 0===t&&(t=new ub,v[e]=t),t.getGripSpace()},this.getHand=function(e){let t=v[e];return void 0===t&&(t=new ub,v[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){r=e,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){s=e,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||a},this.setReferenceSpace=function(e){l=e},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return c},this.getFrame=function(){return p},this.getSession=function(){return n},this.setSession=function(h){return ft(this,null,(function*(){if(n=h,null!==n){if(m=e.getRenderTarget(),n.addEventListener("select",E),n.addEventListener("selectstart",E),n.addEventListener("selectend",E),n.addEventListener("squeeze",E),n.addEventListener("squeezestart",E),n.addEventListener("squeezeend",E),n.addEventListener("end",T),n.addEventListener("inputsourceschange",A),!0!==f.xrCompatible&&(yield t.makeXRCompatible()),void 0===n.renderState.layers||!1===e.capabilities.isWebGL2){let i={antialias:void 0!==n.renderState.layers||f.antialias,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(n,t,i),n.updateRenderState({baseLayer:d}),g=new sr(d.framebufferWidth,d.framebufferHeight,{format:Js,type:bc,colorSpace:e.outputColorSpace,stencilBuffer:f.stencil})}else{let i=null,a=null,s=null;f.depth&&(s=f.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,i=f.stencil?Wh:cf,a=f.stencil?xu:Hh);let o={colorFormat:t.RGBA8,depthFormat:s,scaleFactor:r};c=new XRWebGLBinding(n,t),u=c.createProjectionLayer(o),n.updateRenderState({layers:[u]}),g=new sr(u.textureWidth,u.textureHeight,{format:Js,type:bc,depthTexture:new ff(u.textureWidth,u.textureHeight,a,void 0,void 0,void 0,void 0,void 0,void 0,i),stencilBuffer:f.stencil,colorSpace:e.outputColorSpace,samples:f.antialias?4:0}),e.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,a=yield n.requestReferenceSpace(s),I.setContext(n),I.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}}))},this.getEnvironmentBlendMode=function(){if(null!==n)return n.environmentBlendMode};let C=new D,P=new D;function R(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){if(null===n)return;w.near=b.near=x.near=e.near,w.far=b.far=x.far=e.far,(S!==w.near||M!==w.far)&&(n.updateRenderState({depthNear:w.near,depthFar:w.far}),S=w.near,M=w.far);let t=e.parent,i=w.cameras;R(w,t);for(let n=0;n0&&(n.alphaTest.value=r.alphaTest);let a=t.get(r).envMap;if(a&&(n.envMap.value=a,n.flipEnvMap.value=a.isCubeTexture&&!1===a.isRenderTargetTexture?-1:1,n.reflectivity.value=r.reflectivity,n.ior.value=r.ior,n.refractionRatio.value=r.refractionRatio),r.lightMap){n.lightMap.value=r.lightMap;let t=!0===e._useLegacyLights?Math.PI:1;n.lightMapIntensity.value=r.lightMapIntensity*t,i(r.lightMap,n.lightMapTransform)}r.aoMap&&(n.aoMap.value=r.aoMap,n.aoMapIntensity.value=r.aoMapIntensity,i(r.aoMap,n.aoMapTransform))}return{refreshFogUniforms:function(t,i){i.color.getRGB(t.fogColor.value,xhe(e)),i.isFog?(t.fogNear.value=i.near,t.fogFar.value=i.far):i.isFogExp2&&(t.fogDensity.value=i.density)},refreshMaterialUniforms:function(e,r,a,s,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?n(e,r):r.isMeshToonMaterial?(n(e,r),function(e,t){t.gradientMap&&(e.gradientMap.value=t.gradientMap)}(e,r)):r.isMeshPhongMaterial?(n(e,r),function(e,t){e.specular.value.copy(t.specular),e.shininess.value=Math.max(t.shininess,1e-4)}(e,r)):r.isMeshStandardMaterial?(n(e,r),function(e,n){e.metalness.value=n.metalness,n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap,i(n.metalnessMap,e.metalnessMapTransform)),e.roughness.value=n.roughness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap,i(n.roughnessMap,e.roughnessMapTransform)),t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}(e,r),r.isMeshPhysicalMaterial&&function(e,t,n){e.ior.value=t.ior,t.sheen>0&&(e.sheenColor.value.copy(t.sheenColor).multiplyScalar(t.sheen),e.sheenRoughness.value=t.sheenRoughness,t.sheenColorMap&&(e.sheenColorMap.value=t.sheenColorMap,i(t.sheenColorMap,e.sheenColorMapTransform)),t.sheenRoughnessMap&&(e.sheenRoughnessMap.value=t.sheenRoughnessMap,i(t.sheenRoughnessMap,e.sheenRoughnessMapTransform))),t.clearcoat>0&&(e.clearcoat.value=t.clearcoat,e.clearcoatRoughness.value=t.clearcoatRoughness,t.clearcoatMap&&(e.clearcoatMap.value=t.clearcoatMap,i(t.clearcoatMap,e.clearcoatMapTransform)),t.clearcoatRoughnessMap&&(e.clearcoatRoughnessMap.value=t.clearcoatRoughnessMap,i(t.clearcoatRoughnessMap,e.clearcoatRoughnessMapTransform)),t.clearcoatNormalMap&&(e.clearcoatNormalMap.value=t.clearcoatNormalMap,i(t.clearcoatNormalMap,e.clearcoatNormalMapTransform),e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),t.side===Ji&&e.clearcoatNormalScale.value.negate())),t.iridescence>0&&(e.iridescence.value=t.iridescence,e.iridescenceIOR.value=t.iridescenceIOR,e.iridescenceThicknessMinimum.value=t.iridescenceThicknessRange[0],e.iridescenceThicknessMaximum.value=t.iridescenceThicknessRange[1],t.iridescenceMap&&(e.iridescenceMap.value=t.iridescenceMap,i(t.iridescenceMap,e.iridescenceMapTransform)),t.iridescenceThicknessMap&&(e.iridescenceThicknessMap.value=t.iridescenceThicknessMap,i(t.iridescenceThicknessMap,e.iridescenceThicknessMapTransform))),t.transmission>0&&(e.transmission.value=t.transmission,e.transmissionSamplerMap.value=n.texture,e.transmissionSamplerSize.value.set(n.width,n.height),t.transmissionMap&&(e.transmissionMap.value=t.transmissionMap,i(t.transmissionMap,e.transmissionMapTransform)),e.thickness.value=t.thickness,t.thicknessMap&&(e.thicknessMap.value=t.thicknessMap,i(t.thicknessMap,e.thicknessMapTransform)),e.attenuationDistance.value=t.attenuationDistance,e.attenuationColor.value.copy(t.attenuationColor)),t.anisotropy>0&&(e.anisotropyVector.value.set(t.anisotropy*Math.cos(t.anisotropyRotation),t.anisotropy*Math.sin(t.anisotropyRotation)),t.anisotropyMap&&(e.anisotropyMap.value=t.anisotropyMap,i(t.anisotropyMap,e.anisotropyMapTransform))),e.specularIntensity.value=t.specularIntensity,e.specularColor.value.copy(t.specularColor),t.specularColorMap&&(e.specularColorMap.value=t.specularColorMap,i(t.specularColorMap,e.specularColorMapTransform)),t.specularIntensityMap&&(e.specularIntensityMap.value=t.specularIntensityMap,i(t.specularIntensityMap,e.specularIntensityMapTransform))}(e,r,o)):r.isMeshMatcapMaterial?(n(e,r),function(e,t){t.matcap&&(e.matcap.value=t.matcap)}(e,r)):r.isMeshDepthMaterial?n(e,r):r.isMeshDistanceMaterial?(n(e,r),function(e,i){let n=t.get(i).light;e.referencePosition.value.setFromMatrixPosition(n.matrixWorld),e.nearDistance.value=n.shadow.camera.near,e.farDistance.value=n.shadow.camera.far}(e,r)):r.isMeshNormalMaterial?n(e,r):r.isLineBasicMaterial?(function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,t.map&&(e.map.value=t.map,i(t.map,e.mapTransform))}(e,r),r.isLineDashedMaterial&&function(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}(e,r)):r.isPointsMaterial?function(e,t,n,r){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.size.value=t.size*n,e.scale.value=.5*r,t.map&&(e.map.value=t.map,i(t.map,e.uvTransform)),t.alphaMap&&(e.alphaMap.value=t.alphaMap,i(t.alphaMap,e.alphaMapTransform)),t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,r,a,s):r.isSpriteMaterial?function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.rotation.value=t.rotation,t.map&&(e.map.value=t.map,i(t.map,e.mapTransform)),t.alphaMap&&(e.alphaMap.value=t.alphaMap,i(t.alphaMap,e.alphaMapTransform)),t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,r):r.isShadowMaterial?(e.color.value.copy(r.color),e.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function Eat(e,t,i,n){let r={},a={},s=[],o=i.isWebGL2?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(e,t,i){let n=e.value;if(void 0===i[t]){if("number"==typeof n)i[t]=n;else{let e=Array.isArray(n)?n:[n],r=[];for(let t=0;t0&&(n=i%16,0!==n&&16-n-a.boundary<0&&(i+=16-n,e.__offset=i)),i+=a.storage}n=i%16,n>0&&(i+=16-n),e.__size=i,e.__cache={}}(i),d=function(t){let i=function(){for(let e=0;e0),u=!!i.morphAttributes.position,d=!!i.morphAttributes.normal,p=!!i.morphAttributes.color,f=Vh;n.toneMapped&&(null===w||!0===w.isXRRenderTarget)&&(f=y.toneMapping);let g=i.morphAttributes.position||i.morphAttributes.normal||i.morphAttributes.color,v=void 0!==g?g.length:0,x=K.get(n),b=m.state.lights;if(!0===z&&(!0===H||e!==M)){let t=e===M&&n.id===S;he.setState(n,e,t)}let _=!1;n.version===x.__version?(x.needsLights&&x.lightsStateVersion!==b.state.version||x.outputColorSpace!==o||r.isInstancedMesh&&!1===x.instancing||!r.isInstancedMesh&&!0===x.instancing||r.isSkinnedMesh&&!1===x.skinning||!r.isSkinnedMesh&&!0===x.skinning||r.isInstancedMesh&&!0===x.instancingColor&&null===r.instanceColor||r.isInstancedMesh&&!1===x.instancingColor&&null!==r.instanceColor||x.envMap!==l||!0===n.fog&&x.fog!==a||void 0!==x.numClippingPlanes&&(x.numClippingPlanes!==he.numPlanes||x.numIntersection!==he.numIntersection)||x.vertexAlphas!==h||x.vertexTangents!==c||x.morphTargets!==u||x.morphNormals!==d||x.morphColors!==p||x.toneMapping!==f||!0===Z.isWebGL2&&x.morphTargetsCount!==v)&&(_=!0):(_=!0,x.__version=n.version);let E=x.currentProgram;!0===_&&(E=ke(n,t,r));let T=!1,A=!1,C=!1,P=E.getUniforms(),R=x.uniforms;if(Q.useProgram(E.program)&&(T=!0,A=!0,C=!0),n.id!==S&&(S=n.id,A=!0),T||M!==e){if(P.setValue(ye,"projectionMatrix",e.projectionMatrix),Z.logarithmicDepthBuffer&&P.setValue(ye,"logDepthBufFC",2/(Math.log(e.far+1)/Math.LN2)),M!==e&&(M=e,A=!0,C=!0),n.isShaderMaterial||n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshStandardMaterial||n.envMap){let t=P.map.cameraPosition;void 0!==t&&t.setValue(ye,W.setFromMatrixPosition(e.matrixWorld))}(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial)&&P.setValue(ye,"isOrthographic",!0===e.isOrthographicCamera),(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial||n.isShadowMaterial||r.isSkinnedMesh)&&P.setValue(ye,"viewMatrix",e.matrixWorldInverse)}if(r.isSkinnedMesh){P.setOptional(ye,r,"bindMatrix"),P.setOptional(ye,r,"bindMatrixInverse");let e=r.skeleton;e&&(Z.floatVertexTextures?(null===e.boneTexture&&e.computeBoneTexture(),P.setValue(ye,"boneTexture",e.boneTexture,$),P.setValue(ye,"boneTextureSize",e.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}let D=i.morphAttributes;if((void 0!==D.position||void 0!==D.normal||void 0!==D.color&&!0===Z.isWebGL2)&&de.update(r,i,E),(A||x.receiveShadow!==r.receiveShadow)&&(x.receiveShadow=r.receiveShadow,P.setValue(ye,"receiveShadow",r.receiveShadow)),n.isMeshGouraudMaterial&&null!==n.envMap&&(R.envMap.value=l,R.flipEnvMap.value=l.isCubeTexture&&!1===l.isRenderTargetTexture?-1:1),A&&(P.setValue(ye,"toneMappingExposure",y.toneMappingExposure),x.needsLights&&function(e,t){e.ambientLightColor.needsUpdate=t,e.lightProbe.needsUpdate=t,e.directionalLights.needsUpdate=t,e.directionalLightShadows.needsUpdate=t,e.pointLights.needsUpdate=t,e.pointLightShadows.needsUpdate=t,e.spotLights.needsUpdate=t,e.spotLightShadows.needsUpdate=t,e.rectAreaLights.needsUpdate=t,e.hemisphereLights.needsUpdate=t}(R,C),a&&!0===n.fog&&se.refreshFogUniforms(R,a),se.refreshMaterialUniforms(R,n,I,L,V),sv.upload(ye,x.uniformsList,R,$)),n.isShaderMaterial&&!0===n.uniformsNeedUpdate&&(sv.upload(ye,x.uniformsList,R,$),n.uniformsNeedUpdate=!1),n.isSpriteMaterial&&P.setValue(ye,"center",r.center),P.setValue(ye,"modelViewMatrix",r.modelViewMatrix),P.setValue(ye,"normalMatrix",r.normalMatrix),P.setValue(ye,"modelMatrix",r.matrixWorld),n.isShaderMaterial||n.isRawShaderMaterial){let e=n.uniformsGroups;for(let t=0,i=e.length;t0&&function(e,t,i,n){let r=Z.isWebGL2;null===V&&(V=new sr(1,1,{generateMipmaps:!0,type:q.has("EXT_color_buffer_half_float")?Mr:bc,minFilter:Fa,samples:r?4:0})),y.getDrawingBufferSize(G),r?V.setSize(G.x,G.y):V.setSize(xR(G.x),xR(G.y));let a=y.getRenderTarget();y.setRenderTarget(V),y.getClearColor(C),P=y.getClearAlpha(),P<1&&y.setClearColor(16777215,.5),y.clear();let s=y.toneMapping;y.toneMapping=Vh,Ie(e,i,n),$.updateMultisampleRenderTarget(V),$.updateRenderTargetMipmap(V);let o=!1;for(let l=0,h=t.length;l0&&Ie(r,t,i),a.length>0&&Ie(a,t,i),s.length>0&&Ie(s,t,i),Q.buffers.depth.setTest(!0),Q.buffers.depth.setMask(!0),Q.buffers.color.setMask(!0),Q.setPolygonOffset(!1)}function Ie(e,t,i){let n=!0===t.isScene?t.overrideMaterial:null;for(let r=0,a=e.length;r0?v[v.length-1]:null,g.pop(),f=g.length>0?g[g.length-1]:null},this.getActiveCubeFace=function(){return b},this.getActiveMipmapLevel=function(){return _},this.getRenderTarget=function(){return w},this.setRenderTargetTextures=function(e,t,i){K.get(e.texture).__webglTexture=t,K.get(e.depthTexture).__webglTexture=i;let n=K.get(e);n.__hasExternalTextures=!0,n.__hasExternalTextures&&(n.__autoAllocateDepthBuffer=void 0===i,n.__autoAllocateDepthBuffer||!0===q.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),n.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(e,t){let i=K.get(e);i.__webglFramebuffer=t,i.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,i=0){w=e,b=t,_=i;let n=!0,r=null,a=!1,s=!1;if(e){let o=K.get(e);void 0!==o.__useDefaultFramebuffer?(Q.bindFramebuffer(ye.FRAMEBUFFER,null),n=!1):void 0===o.__webglFramebuffer?$.setupRenderTarget(e):o.__hasExternalTextures&&$.rebindTextures(e,K.get(e.texture).__webglTexture,K.get(e.depthTexture).__webglTexture);let l=e.texture;(l.isData3DTexture||l.isDataArrayTexture||l.isCompressedArrayTexture)&&(s=!0);let h=K.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(r=Array.isArray(h[t])?h[t][i]:h[t],a=!0):r=Z.isWebGL2&&e.samples>0&&!1===$.useMultisampledRTT(e)?K.get(e).__webglMultisampledFramebuffer:Array.isArray(h)?h[i]:h,E.copy(e.viewport),T.copy(e.scissor),A=e.scissorTest}else E.copy(N).multiplyScalar(I).floor(),T.copy(U).multiplyScalar(I).floor(),A=F;if(Q.bindFramebuffer(ye.FRAMEBUFFER,r)&&Z.drawBuffers&&n&&Q.drawBuffers(e,r),Q.viewport(E),Q.scissor(T),Q.setScissorTest(A),a){let n=K.get(e.texture);ye.framebufferTexture2D(ye.FRAMEBUFFER,ye.COLOR_ATTACHMENT0,ye.TEXTURE_CUBE_MAP_POSITIVE_X+t,n.__webglTexture,i)}else if(s){let n=K.get(e.texture),r=t||0;ye.framebufferTextureLayer(ye.FRAMEBUFFER,ye.COLOR_ATTACHMENT0,n.__webglTexture,i||0,r)}S=-1},this.readRenderTargetPixels=function(e,t,i,n,r,a,s){if(!e||!e.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=K.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==s&&(o=o[s]),o){Q.bindFramebuffer(ye.FRAMEBUFFER,o);try{let s=e.texture,o=s.format,l=s.type;if(o!==Js&&me.convert(o)!==ye.getParameter(ye.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");let h=l===Mr&&(q.has("EXT_color_buffer_half_float")||Z.isWebGL2&&q.has("EXT_color_buffer_float"));if(!(l===bc||me.convert(l)===ye.getParameter(ye.IMPLEMENTATION_COLOR_READ_TYPE)||l===fa&&(Z.isWebGL2||q.has("OES_texture_float")||q.has("WEBGL_color_buffer_float"))||h))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-n&&i>=0&&i<=e.height-r&&ye.readPixels(t,i,n,r,me.convert(o),me.convert(l),a)}finally{let e=null!==w?K.get(w).__webglFramebuffer:null;Q.bindFramebuffer(ye.FRAMEBUFFER,e)}}},this.copyFramebufferToTexture=function(e,t,i=0){let n=Math.pow(2,-i),r=Math.floor(t.image.width*n),a=Math.floor(t.image.height*n);$.setTexture2D(t,0),ye.copyTexSubImage2D(ye.TEXTURE_2D,i,0,0,e.x,e.y,r,a),Q.unbindTexture()},this.copyTextureToTexture=function(e,t,i,n=0){let r=t.image.width,a=t.image.height,s=me.convert(i.format),o=me.convert(i.type);$.setTexture2D(i,0),ye.pixelStorei(ye.UNPACK_FLIP_Y_WEBGL,i.flipY),ye.pixelStorei(ye.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),ye.pixelStorei(ye.UNPACK_ALIGNMENT,i.unpackAlignment),t.isDataTexture?ye.texSubImage2D(ye.TEXTURE_2D,n,e.x,e.y,r,a,s,o,t.image.data):t.isCompressedTexture?ye.compressedTexSubImage2D(ye.TEXTURE_2D,n,e.x,e.y,t.mipmaps[0].width,t.mipmaps[0].height,s,t.mipmaps[0].data):ye.texSubImage2D(ye.TEXTURE_2D,n,e.x,e.y,s,o,t.image),0===n&&i.generateMipmaps&&ye.generateMipmap(ye.TEXTURE_2D),Q.unbindTexture()},this.copyTextureToTexture3D=function(e,t,i,n,r=0){if(y.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");let a,s=e.max.x-e.min.x+1,o=e.max.y-e.min.y+1,l=e.max.z-e.min.z+1,h=me.convert(n.format),c=me.convert(n.type);if(n.isData3DTexture)$.setTexture3D(n,0),a=ye.TEXTURE_3D;else{if(!n.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");$.setTexture2DArray(n,0),a=ye.TEXTURE_2D_ARRAY}ye.pixelStorei(ye.UNPACK_FLIP_Y_WEBGL,n.flipY),ye.pixelStorei(ye.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),ye.pixelStorei(ye.UNPACK_ALIGNMENT,n.unpackAlignment);let u=ye.getParameter(ye.UNPACK_ROW_LENGTH),d=ye.getParameter(ye.UNPACK_IMAGE_HEIGHT),p=ye.getParameter(ye.UNPACK_SKIP_PIXELS),f=ye.getParameter(ye.UNPACK_SKIP_ROWS),m=ye.getParameter(ye.UNPACK_SKIP_IMAGES),g=i.isCompressedTexture?i.mipmaps[0]:i.image;ye.pixelStorei(ye.UNPACK_ROW_LENGTH,g.width),ye.pixelStorei(ye.UNPACK_IMAGE_HEIGHT,g.height),ye.pixelStorei(ye.UNPACK_SKIP_PIXELS,e.min.x),ye.pixelStorei(ye.UNPACK_SKIP_ROWS,e.min.y),ye.pixelStorei(ye.UNPACK_SKIP_IMAGES,e.min.z),i.isDataTexture||i.isData3DTexture?ye.texSubImage3D(a,r,t.x,t.y,t.z,s,o,l,h,c,g.data):i.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),ye.compressedTexSubImage3D(a,r,t.x,t.y,t.z,s,o,l,h,g.data)):ye.texSubImage3D(a,r,t.x,t.y,t.z,s,o,l,h,c,g),ye.pixelStorei(ye.UNPACK_ROW_LENGTH,u),ye.pixelStorei(ye.UNPACK_IMAGE_HEIGHT,d),ye.pixelStorei(ye.UNPACK_SKIP_PIXELS,p),ye.pixelStorei(ye.UNPACK_SKIP_ROWS,f),ye.pixelStorei(ye.UNPACK_SKIP_IMAGES,m),0===r&&n.generateMipmaps&&ye.generateMipmap(a),Q.unbindTexture()},this.initTexture=function(e){e.isCubeTexture?$.setTextureCube(e,0):e.isData3DTexture?$.setTexture3D(e,0):e.isDataArrayTexture||e.isCompressedArrayTexture?$.setTexture2DArray(e,0):$.setTexture2D(e,0),Q.unbindTexture()},this.resetState=function(){b=0,_=0,w=null,Q.reset(),ge.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return yu}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(e){console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!e}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===en?bu:NU}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===bu?en:Na}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}},wR=class extends Ts{};wR.prototype.isWebGL1Renderer=!0;var cv=class{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new ct(e),this.density=t}clone(){return new cv(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}},Tu=class{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new ct(e),this.near=t,this.far=i}clone(){return new Tu(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}},Si=class extends on{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t}},$h=class{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=mb,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=qo()}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let n=0,r=this.stride;ne.far||t.push({distance:o,point:eb.clone(),uv:Zr.getInterpolation(eb,GM,nb,qM,Fce,NN,Nce,new xe),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}};function WM(e,t,i,n,r,a){J0.subVectors(e,i).addScalar(.5).multiply(n),void 0!==r?(tb.x=a*J0.x-r*J0.y,tb.y=r*J0.x+a*J0.y):tb.copy(J0),e.copy(t),e.x+=tb.x,e.y+=tb.y,e.applyMatrix4(Mhe)}var jM=new D,Bce=new D,MR=class extends on{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);let t=e.levels;for(let i=0,n=t.length;i0){let i,n;for(i=1,n=t.length;i0){jM.setFromMatrixPosition(this.matrixWorld);let i=e.ray.origin.distanceTo(jM);this.getObjectForDistance(i).raycast(e,t)}}update(e){let t=this.levels;if(t.length>1){jM.setFromMatrixPosition(e.matrixWorld),Bce.setFromMatrixPosition(this.matrixWorld);let i,n,r=jM.distanceTo(Bce)/e.zoom;for(t[0].object.visible=!0,i=1,n=t.length;i=e))break;t[i-1].object.visible=!1,t[i].object.visible=!0}for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);let r=e.ray.origin.distanceTo(u);re.far||t.push({distance:r,point:c.clone().applyMatrix4(this.matrixWorld),index:m,face:null,faceIndex:null,object:this})}else for(let m=Math.max(0,a.start),g=Math.min(f.count,a.start+a.count)-1;mo)continue;u.applyMatrix4(this.matrixWorld);let i=e.ray.origin.distanceTo(u);ie.far||t.push({distance:i,point:c.clone().applyMatrix4(this.matrixWorld),index:m,face:null,faceIndex:null,object:this})}}updateMorphTargets(){let e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){let i=e[t[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=i.length;e0){let i=e[t[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=i.length;er.far)return;a.push({distance:l,distanceToRay:Math.sqrt(o),point:i,index:t,face:null,object:s})}}var zB=class extends Gr{constructor(e,t,i,n,r,a,s,o,l){super(e,t,i,n,r,a,s,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==a?a:Pr,this.magFilter=void 0!==r?r:Pr,this.generateMipmaps=!1;let h=this;"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback((function t(){h.needsUpdate=!0,e.requestVideoFrameCallback(t)}))}clone(){return new this.constructor(this.image).copy(this)}update(){let e=this.image;"requestVideoFrameCallback"in e==0&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}},GB=class extends Gr{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=Jr,this.minFilter=Jr,this.generateMipmaps=!1,this.needsUpdate=!0}},Su=class extends Gr{constructor(e,t,i,n,r,a,s,o,l,h,c,u){super(null,a,s,o,l,h,n,r,c,u),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}},qB=class extends Su{constructor(e,t,i,n,r,a){super(e,t,i,r,a),this.isCompressedArrayTexture=!0,this.image.depth=n,this.wrapR=Li}},WB=class extends Su{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,Gh),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}},wb=class extends Gr{constructor(e,t,i,n,r,a,s,o,l){super(e,t,i,n,r,a,s,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}},Ba=class{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){let i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){let t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){let t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){let e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let t,i=[],n=this.getPoint(0),r=0;i.push(0);for(let a=1;a<=e;a++)t=this.getPoint(a/e),r+=t.distanceTo(n),i.push(r),n=t;return this.cacheArcLengths=i,i}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){let i,n=this.getLengths(),r=0,a=n.length;i=t||e*n[a-1];let s,o=0,l=a-1;for(;o<=l;)if(r=Math.floor(o+(l-o)/2),s=n[r]-i,s<0)o=r+1;else{if(!(s>0)){l=r;break}l=r-1}if(r=l,n[r]===i)return r/(a-1);let h=n[r];return(r+(i-h)/(n[r+1]-h))/(a-1)}getTangent(e,t){let i=e-1e-4,n=e+1e-4;i<0&&(i=0),n>1&&(n=1);let r=this.getPoint(i),a=this.getPoint(n),s=t||(r.isVector2?new xe:new D);return s.copy(a).sub(r).normalize(),s}getTangentAt(e,t){let i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){let i=new D,n=[],r=[],a=[],s=new D,o=new et;for(let d=0;d<=e;d++){let t=d/e;n[d]=this.getTangentAt(t,new D)}r[0]=new D,a[0]=new D;let l=Number.MAX_VALUE,h=Math.abs(n[0].x),c=Math.abs(n[0].y),u=Math.abs(n[0].z);h<=l&&(l=h,i.set(1,0,0)),c<=l&&(l=c,i.set(0,1,0)),u<=l&&i.set(0,0,1),s.crossVectors(n[0],i).normalize(),r[0].crossVectors(n[0],s),a[0].crossVectors(n[0],r[0]);for(let d=1;d<=e;d++){if(r[d]=r[d-1].clone(),a[d]=a[d-1].clone(),s.crossVectors(n[d-1],n[d]),s.length()>Number.EPSILON){s.normalize();let e=Math.acos(os(n[d-1].dot(n[d]),-1,1));r[d].applyMatrix4(o.makeRotationAxis(s,e))}a[d].crossVectors(n[d],r[d])}if(!0===t){let t=Math.acos(os(r[0].dot(r[e]),-1,1));t/=e,n[0].dot(s.crossVectors(r[0],r[e]))>0&&(t=-t);for(let i=1;i<=e;i++)r[i].applyMatrix4(o.makeRotationAxis(n[i],t*i)),a[i].crossVectors(n[i],r[i])}return{tangents:n,normals:r,binormals:a}}clone(){return(new this.constructor).copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},Kh=class extends Ba{constructor(e=0,t=0,i=1,n=1,r=0,a=2*Math.PI,s=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=n,this.aStartAngle=r,this.aEndAngle=a,this.aClockwise=s,this.aRotation=o}getPoint(e,t){let i=t||new xe,n=2*Math.PI,r=this.aEndAngle-this.aStartAngle,a=Math.abs(r)n;)r-=n;r0?0:(Math.floor(Math.abs(l)/s)+1)*s:0===h&&l===s-1&&(l=s-2,h=1),this.closed||l>0?i=a[(l-1)%s]:(KM.subVectors(a[0],a[1]).add(a[0]),i=KM);let c=a[l%s],u=a[(l+1)%s];if(this.closed||l+2n.length-2?n.length-1:a+1],c=n[a>n.length-3?n.length-1:a+2];return i.set(eue(s,o.x,l.x,h.x,c.x),eue(s,o.y,l.y,h.y,c.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){let e=n[r]-i,a=this.curves[r],s=a.getLength(),o=0===s?0:1-e/s;return a.getPointAt(o,t)}r++}return null}getLength(){let e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let e=[],t=0;for(let i=0,n=this.curves.length;i1&&!i[i.length-1].equals(i[0])&&i.push(i[0]),i}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){let e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);let h=l.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){let e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}},_m=class extends Dt{constructor(e=[new xe(0,-.5),new xe(.5,0),new xe(0,.5)],t=12,i=0,n=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:n},t=Math.floor(t),n=os(n,0,2*Math.PI);let r=[],a=[],s=[],o=[],l=[],h=1/t,c=new D,u=new xe,d=new D,p=new D,f=new D,m=0,g=0;for(let v=0;v<=e.length-1;v++)switch(v){case 0:m=e[v+1].x-e[v].x,g=e[v+1].y-e[v].y,d.x=1*g,d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case e.length-1:o.push(f.x,f.y,f.z);break;default:m=e[v+1].x-e[v].x,g=e[v+1].y-e[v].y,d.x=1*g,d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let v=0;v<=t;v++){let r=i+v*h*n,d=Math.sin(r),p=Math.cos(r);for(let i=0;i<=e.length-1;i++){c.x=e[i].x*d,c.y=e[i].y,c.z=e[i].x*p,a.push(c.x,c.y,c.z),u.x=v/t,u.y=i/(e.length-1),s.push(u.x,u.y);let n=o[3*i+0]*d,r=o[3*i+1],h=o[3*i+0]*p;l.push(n,r,h)}}for(let v=0;v0&&v(!0),t>0&&v(!1)),this.setIndex(h),this.setAttribute("position",new Bt(c,3)),this.setAttribute("normal",new Bt(u,3)),this.setAttribute("uv",new Bt(d,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new Tc(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},pv=class extends Tc{constructor(e=1,t=1,i=32,n=1,r=!1,a=0,s=2*Math.PI){super(0,e,t,i,n,r,a,s),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:i,heightSegments:n,openEnded:r,thetaStart:a,thetaLength:s}}static fromJSON(e){return new pv(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},Ru=class extends Dt{constructor(e=[],t=[],i=1,n=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:i,detail:n};let r=[],a=[];function s(e,t,i,n){let r=n+1,a=[];for(let s=0;s<=r;s++){a[s]=[];let n=e.clone().lerp(i,s/r),o=t.clone().lerp(i,s/r),l=r-s;for(let e=0;e<=l;e++)a[s][e]=0===e&&s===r?n:n.clone().lerp(o,e/l)}for(let s=0;s.9&&s<.1&&(t<.2&&(a[e+0]+=1),i<.2&&(a[e+2]+=1),n<.2&&(a[e+4]+=1))}}()}(),this.setAttribute("position",new Bt(r,3)),this.setAttribute("normal",new Bt(r.slice(),3)),this.setAttribute("uv",new Bt(a,2)),0===n?this.computeVertexNormals():this.normalizeNormals()}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new Ru(e.vertices,e.indices,e.radius,e.details)}},mv=class extends Ru{constructor(e=1,t=0){let i=(1+Math.sqrt(5))/2,n=1/i;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-n,-i,0,-n,i,0,n,-i,0,n,i,-n,-i,0,-n,i,0,n,-i,0,n,i,0,-i,0,-n,i,0,-n,-i,0,n,i,0,n],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new mv(e.radius,e.detail)}},JM=new D,QM=new D,qN=new D,eR=new Zr,Au=class extends Dt{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){let i=Math.pow(10,4),n=Math.cos(gm*t),r=e.getIndex(),a=e.getAttribute("position"),s=r?r.count:a.count,o=[0,0,0],l=["a","b","c"],h=new Array(3),c={},u=[];for(let e=0;e80*i){n=a=e[0],r=s=e[1];for(let t=i;ta&&(a=o),l>s&&(s=l);h=Math.max(a-n,s-r),h=0!==h?32767/h:0}return Ab(d,p,i,n,r,h,0),p}};function Rhe(e,t,i,n,r){let a,s;if(r===$at(e,t,i,n)>0)for(a=t;a=t;a-=n)s=tue(a,e[a],e[a+1],s);return s&&QR(s,s.next)&&(Pb(s),s=s.next),s}function Tm(e,t){if(!e)return e;t||(t=e);let i,n=e;do{if(i=!1,n.steiner||!QR(n,n.next)&&0!==Ki(n.prev,n,n.next))n=n.next;else{if(Pb(n),n=t=n.prev,n===n.next)break;i=!0}}while(i||n!==t);return t}function Ab(e,t,i,n,r,a,s){if(!e)return;!s&&a&&Gat(e,n,r,a);let o,l,h=e;for(;e.prev!==e.next;)if(o=e.prev,l=e.next,a?kat(e,n,r,a):Oat(e))t.push(o.i/i|0),t.push(e.i/i|0),t.push(l.i/i|0),Pb(e),e=l.next,h=l.next;else if((e=l)===h){s?1===s?Ab(e=Fat(Tm(e),t,i),t,i,n,r,a,2):2===s&&Nat(e,t,i,n,r,a):Ab(Tm(e),t,i,n,r,a,1);break}}function Oat(e){let t=e.prev,i=e,n=e.next;if(Ki(t,i,n)>=0)return!1;let r=t.x,a=i.x,s=n.x,o=t.y,l=i.y,h=n.y,c=ra?r>s?r:s:a>s?a:s,p=o>l?o>h?o:h:l>h?l:h,f=n.next;for(;f!==t;){if(f.x>=c&&f.x<=d&&f.y>=u&&f.y<=p&&rv(r,o,a,l,s,h,f.x,f.y)&&Ki(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function kat(e,t,i,n){let r=e.prev,a=e,s=e.next;if(Ki(r,a,s)>=0)return!1;let o=r.x,l=a.x,h=s.x,c=r.y,u=a.y,d=s.y,p=ol?o>h?o:h:l>h?l:h,g=c>u?c>d?c:d:u>d?u:d,v=jB(p,f,t,i,n),y=jB(m,g,t,i,n),x=e.prevZ,b=e.nextZ;for(;x&&x.z>=v&&b&&b.z<=y;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&rv(o,c,l,u,h,d,x.x,x.y)&&Ki(x.prev,x,x.next)>=0||(x=x.prevZ,b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&rv(o,c,l,u,h,d,b.x,b.y)&&Ki(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;x&&x.z>=v;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&rv(o,c,l,u,h,d,x.x,x.y)&&Ki(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;b&&b.z<=y;){if(b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&rv(o,c,l,u,h,d,b.x,b.y)&&Ki(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function Fat(e,t,i){let n=e;do{let r=n.prev,a=n.next.next;!QR(r,a)&&Ahe(r,n,n.next,a)&&Cb(r,a)&&Cb(a,r)&&(t.push(r.i/i|0),t.push(n.i/i|0),t.push(a.i/i|0),Pb(n),Pb(n.next),n=e=a),n=n.next}while(n!==e);return Tm(n)}function Nat(e,t,i,n,r,a){let s=e;do{let e=s.next.next;for(;e!==s.prev;){if(s.i!==e.i&&jat(s,e)){let o=Che(s,e);return s=Tm(s,s.next),o=Tm(o,o.next),Ab(s,t,i,n,r,a,0),void Ab(o,t,i,n,r,a,0)}e=e.next}s=s.next}while(s!==e)}function Bat(e,t,i,n){let r,a,s,o,l,h=[];for(r=0,a=t.length;r=n.next.y&&n.next.y!==n.y){let e=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=a&&e>r&&(r=e,i=n.x=n.x&&n.x>=h&&a!==n.x&&rv(si.x||n.x===i.x&&zat(i,n)))&&(i=n,u=o)),n=n.next}while(n!==l);return i}function zat(e,t){return Ki(e.prev,e,t.prev)<0&&Ki(t.next,e,e.next)<0}function Gat(e,t,i,n){let r=e;do{0===r.z&&(r.z=jB(r.x,r.y,t,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,qat(r)}function qat(e){let t,i,n,r,a,s,o,l,h=1;do{for(i=e,e=null,a=null,s=0;i;){for(s++,n=i,o=0,t=0;t0||l>0&&n;)0!==o&&(0===l||!n||i.z<=n.z)?(r=i,i=i.nextZ,o--):(r=n,n=n.nextZ,l--),a?a.nextZ=r:e=r,r.prevZ=a,a=r;i=n}a.nextZ=null,h*=2}while(s>1);return e}function jB(e,t,i,n,r){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function Wat(e){let t=e,i=e;do{(t.x=(e-s)*(a-o)&&(e-s)*(n-o)>=(i-s)*(t-o)&&(i-s)*(a-o)>=(r-s)*(n-o)}function jat(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!Xat(e,t)&&(Cb(e,t)&&Cb(t,e)&&Yat(e,t)&&(Ki(e.prev,e,t.prev)||Ki(e,t.prev,t))||QR(e,t)&&Ki(e.prev,e,e.next)>0&&Ki(t.prev,t,t.next)>0)}function Ki(e,t,i){return(t.y-e.y)*(i.x-t.x)-(t.x-e.x)*(i.y-t.y)}function QR(e,t){return e.x===t.x&&e.y===t.y}function Ahe(e,t,i,n){let r=nR(Ki(e,t,i)),a=nR(Ki(e,t,n)),s=nR(Ki(i,n,e)),o=nR(Ki(i,n,t));return!!(r!==a&&s!==o||0===r&&tR(e,i,t)||0===a&&tR(e,n,t)||0===s&&tR(i,e,n)||0===o&&tR(i,t,n))}function tR(e,t,i){return t.x<=Math.max(e.x,i.x)&&t.x>=Math.min(e.x,i.x)&&t.y<=Math.max(e.y,i.y)&&t.y>=Math.min(e.y,i.y)}function nR(e){return e>0?1:e<0?-1:0}function Xat(e,t){let i=e;do{if(i.i!==e.i&&i.next.i!==e.i&&i.i!==t.i&&i.next.i!==t.i&&Ahe(i,i.next,e,t))return!0;i=i.next}while(i!==e);return!1}function Cb(e,t){return Ki(e.prev,e,e.next)<0?Ki(e,t,e.next)>=0&&Ki(e,e.prev,t)>=0:Ki(e,t,e.prev)<0||Ki(e,e.next,t)<0}function Yat(e,t){let i=e,n=!1,r=(e.x+t.x)/2,a=(e.y+t.y)/2;do{i.y>a!=i.next.y>a&&i.next.y!==i.y&&r<(i.next.x-i.x)*(a-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==e);return n}function Che(e,t){let i=new XB(e.i,e.x,e.y),n=new XB(t.i,t.x,t.y),r=e.next,a=t.prev;return e.next=t,t.prev=e,i.next=r,r.prev=i,n.next=i,i.prev=n,a.next=n,n.prev=a,n}function tue(e,t,i,n){let r=new XB(e,t,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function Pb(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function XB(e,t,i){this.i=e,this.x=t,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function $at(e,t,i,n){let r=0;for(let a=t,s=i-n;a2&&e[t-1].equals(e[0])&&e.pop()}function rue(e,t){for(let i=0;iNumber.EPSILON){let u=Math.sqrt(c),d=Math.sqrt(l*l+h*h),p=t.x-o/u,f=t.y+s/u,m=((i.x-h/d-p)*h-(i.y+l/d-f)*l)/(s*h-o*l);n=p+s*m-e.x,r=f+o*m-e.y;let g=n*n+r*r;if(g<=2)return new xe(n,r);a=Math.sqrt(g/2)}else{let e=!1;s>Number.EPSILON?l>Number.EPSILON&&(e=!0):s<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(h)&&(e=!0),e?(n=-o,r=s,a=Math.sqrt(c)):(n=s,r=o,a=Math.sqrt(c/2))}return new xe(n/a,r/a)}let L=[];for(let t=0,i=T.length,n=i-1,r=t+1;t=0;t--){let e=t/y,i=m*Math.cos(e*Math.PI/2),n=g*Math.sin(e*Math.PI/2)+v;for(let t=0,r=T.length;t=0;){let n=i,r=i-1;r<0&&(r=e.length-1);for(let e=0,i=d+2*y;e0)&&d.push(t,n,s),(g!==i-1||o0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}},ea=class extends yr{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new ct(16777215),this.specular=new ct(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ct(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=yf,this.normalScale=new xe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Hb,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},OR=class extends yr{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new ct(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ct(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=yf,this.normalScale=new xe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},mf=class extends yr{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=yf,this.normalScale=new xe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}},Pu=class extends yr{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new ct(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ct(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=yf,this.normalScale=new xe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Hb,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},kR=class extends yr{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new ct(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=yf,this.normalScale=new xe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}},Iu=class extends Gn{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}};function Tl(e,t,i){return GU(e)?new e.constructor(e.subarray(t,void 0!==i?i:e.length)):e.slice(t,i)}function pm(e,t,i){return!e||!i&&e.constructor===t?e:"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)}function GU(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Phe(e){let t=e.length,i=new Array(t);for(let n=0;n!==t;++n)i[n]=n;return i.sort((function(t,i){return e[t]-e[i]})),i}function YB(e,t,i){let n=e.length,r=new e.constructor(n);for(let a=0,s=0;s!==n;++a){let n=i[a]*t;for(let i=0;i!==t;++i)r[s++]=e[n+i]}return r}function qU(e,t,i,n){let r=1,a=e[0];for(;void 0!==a&&void 0===a[n];)a=e[r++];if(void 0===a)return;let s=a[n];if(void 0!==s)if(Array.isArray(s))do{s=a[n],void 0!==s&&(t.push(a.time),i.push.apply(i,s)),a=e[r++]}while(void 0!==a);else if(void 0!==s.toArray)do{s=a[n],void 0!==s&&(t.push(a.time),s.toArray(i,i.length)),a=e[r++]}while(void 0!==a);else do{s=a[n],void 0!==s&&(t.push(a.time),i.push(s)),a=e[r++]}while(void 0!==a)}function Qat(e,t,i,n,r=30){let a=e.clone();a.name=t;let s=[];for(let l=0;l=n)){o.push(e.times[a]);for(let i=0;ia.tracks[l].times[0]&&(o=a.tracks[l].times[0]);for(let l=0;l=t.times[d]){let e=d*l+o,i=e+l-o;u=Tl(t.values,e,i)}else{let e=t.createInterpolant(),i=o,n=l-o;e.evaluate(a),u=Tl(e.resultBuffer,i,n)}"quaternion"===n&&(new dr).fromArray(u).normalize().conjugate().toArray(u);let p=r.times.length;for(let e=0;e=r)break e;{let s=t[1];e=r)break t}a=i,i=0}}for(;i>>1;et;)--a;if(++a,0!==r||a!==n){r>=a&&(a=Math.max(a,1),r=a-1);let e=this.getValueSize();this.times=Tl(i,r,a),this.values=Tl(this.values,r*e,a*e)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let i=this.times,n=this.values,r=i.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let a=null;for(let s=0;s!==r;s++){let t=i[s];if("number"==typeof t&&isNaN(t)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,s,t),e=!1;break}if(null!==a&&a>t){console.error("THREE.KeyframeTrack: Out of order keys.",this,s,t,a),e=!1;break}a=t}if(void 0!==n&&GU(n))for(let s=0,o=n.length;s!==o;++s){let t=n[s];if(isNaN(t)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,s,t),e=!1;break}}return e}optimize(){let e=Tl(this.times),t=Tl(this.values),i=this.getValueSize(),n=this.getInterpolation()===mR,r=e.length-1,a=1;for(let s=1;s0){e[a]=e[r];for(let e=r*i,n=a*i,s=0;s!==i;++s)t[n+s]=t[e+s];++a}return a!==e.length?(this.times=Tl(e,0,a),this.values=Tl(t,0,a*i)):(this.times=e,this.values=t),this}clone(){let e=Tl(this.times,0),t=Tl(this.values,0),i=new(0,this.constructor)(this.name,e,t);return i.createInterpolant=this.createInterpolant,i}};Xo.prototype.TimeBufferType=Float32Array,Xo.prototype.ValueBufferType=Float32Array,Xo.prototype.DefaultInterpolation=_u;var Qh=class extends Xo{};Qh.prototype.ValueTypeName="bool",Qh.prototype.ValueBufferType=Array,Qh.prototype.DefaultInterpolation=jh,Qh.prototype.InterpolantFactoryMethodLinear=void 0,Qh.prototype.InterpolantFactoryMethodSmooth=void 0;var Lb=class extends Xo{};Lb.prototype.ValueTypeName="color";var Al=class extends Xo{};Al.prototype.ValueTypeName="number";var BR=class extends Jh{constructor(e,t,i,n){super(e,t,i,n)}interpolate_(e,t,i,n){let r=this.resultBuffer,a=this.sampleValues,s=this.valueSize,o=(i-t)/(n-t),l=e*s;for(let h=l+s;l!==h;l+=4)dr.slerpFlat(r,0,a,l-s,a,l,o);return r}},Ha=class extends Xo{InterpolantFactoryMethodLinear(e){return new BR(this.times,this.values,this.getValueSize(),e)}};Ha.prototype.ValueTypeName="quaternion",Ha.prototype.DefaultInterpolation=_u,Ha.prototype.InterpolantFactoryMethodSmooth=void 0;var ed=class extends Xo{};ed.prototype.ValueTypeName="string",ed.prototype.ValueBufferType=Array,ed.prototype.DefaultInterpolation=jh,ed.prototype.InterpolantFactoryMethodLinear=void 0,ed.prototype.InterpolantFactoryMethodSmooth=void 0;var Va=class extends Xo{};Va.prototype.ValueTypeName="vector";var uo=class{constructor(e,t=-1,i,n=KR){this.name=e,this.tracks=i,this.duration=t,this.blendMode=n,this.uuid=qo(),this.duration<0&&this.resetDuration()}static parse(e){let t=[],i=e.tracks,n=1/(e.fps||1);for(let a=0,s=i.length;a!==s;++a)t.push(rot(i[a]).scale(n));let r=new this(e.name,e.duration,t,e.blendMode);return r.uuid=e.uuid,r}static toJSON(e){let t=[],i=e.tracks,n={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let r=0,a=i.length;r!==a;++r)t.push(Xo.toJSON(i[r]));return n}static CreateFromMorphTargetSequence(e,t,i,n){let r=t.length,a=[];for(let s=0;s1){let e=i[1],r=n[e];r||(n[e]=r=[]),r.push(t)}}let a=[];for(let s in n)a.push(this.CreateFromMorphTargetSequence(s,n[s],t,i));return a}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;let i=function(e,t,i,n,r){if(0!==i.length){let a=[],s=[];qU(i,a,s,n),0!==a.length&&r.push(new e(t,a,s))}},n=[],r=e.name||"default",a=e.fps||30,s=e.blendMode,o=e.length||-1,l=e.hierarchy||[];for(let h=0;h{t&&t(r),this.manager.itemEnd(e)}),0),r;if(void 0!==Bh[e])return void Bh[e].push({onLoad:t,onProgress:i,onError:n});Bh[e]=[],Bh[e].push({onLoad:t,onProgress:i,onError:n});let a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),s=this.mimeType,o=this.responseType;fetch(a).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body||void 0===t.body.getReader)return t;let i=Bh[e],n=t.body.getReader(),r=t.headers.get("Content-Length")||t.headers.get("X-File-Size"),a=r?parseInt(r):0,s=0!==a,o=0,l=new ReadableStream({start(e){!function t(){n.read().then((({done:n,value:r})=>{if(n)e.close();else{o+=r.byteLength;let n=new ProgressEvent("progress",{lengthComputable:s,loaded:o,total:a});for(let e=0,t=i.length;e{switch(o){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,s)));case"json":return e.json();default:if(void 0===s)return e.text();{let t=/charset="?([^;"\s]*)"?/i.exec(s),i=t&&t[1]?t[1].toLowerCase():void 0,n=new TextDecoder(i);return e.arrayBuffer().then((e=>n.decode(e)))}}})).then((t=>{Sm.add(e,t);let i=Bh[e];delete Bh[e];for(let e=0,n=i.length;e{let i=Bh[e];if(void 0===i)throw this.manager.itemError(e),t;delete Bh[e];for(let e=0,n=i.length;e{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}},ZB=class extends Er{constructor(e){super(e)}load(e,t,i,n){let r=this,a=new Kr(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(i){try{t(r.parse(JSON.parse(i)))}catch(t){n?n(t):console.error(t),r.manager.itemError(e)}}),i,n)}parse(e){let t=[];for(let i=0;i0:n.vertexColors=e.vertexColors),void 0!==e.uniforms)for(let r in e.uniforms){let t=e.uniforms[r];switch(n.uniforms[r]={},t.type){case"t":n.uniforms[r].value=i(t.value);break;case"c":n.uniforms[r].value=(new ct).setHex(t.value);break;case"v2":n.uniforms[r].value=(new xe).fromArray(t.value);break;case"v3":n.uniforms[r].value=(new D).fromArray(t.value);break;case"v4":n.uniforms[r].value=(new gr).fromArray(t.value);break;case"m3":n.uniforms[r].value=(new Ln).fromArray(t.value);break;case"m4":n.uniforms[r].value=(new et).fromArray(t.value);break;default:n.uniforms[r].value=t.value}}if(void 0!==e.defines&&(n.defines=e.defines),void 0!==e.vertexShader&&(n.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(n.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(n.glslVersion=e.glslVersion),void 0!==e.extensions)for(let r in e.extensions)n.extensions[r]=e.extensions[r];if(void 0!==e.lights&&(n.lights=e.lights),void 0!==e.clipping&&(n.clipping=e.clipping),void 0!==e.size&&(n.size=e.size),void 0!==e.sizeAttenuation&&(n.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(n.map=i(e.map)),void 0!==e.matcap&&(n.matcap=i(e.matcap)),void 0!==e.alphaMap&&(n.alphaMap=i(e.alphaMap)),void 0!==e.bumpMap&&(n.bumpMap=i(e.bumpMap)),void 0!==e.bumpScale&&(n.bumpScale=e.bumpScale),void 0!==e.normalMap&&(n.normalMap=i(e.normalMap)),void 0!==e.normalMapType&&(n.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),n.normalScale=(new xe).fromArray(t)}return void 0!==e.displacementMap&&(n.displacementMap=i(e.displacementMap)),void 0!==e.displacementScale&&(n.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(n.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(n.roughnessMap=i(e.roughnessMap)),void 0!==e.metalnessMap&&(n.metalnessMap=i(e.metalnessMap)),void 0!==e.emissiveMap&&(n.emissiveMap=i(e.emissiveMap)),void 0!==e.emissiveIntensity&&(n.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(n.specularMap=i(e.specularMap)),void 0!==e.specularIntensityMap&&(n.specularIntensityMap=i(e.specularIntensityMap)),void 0!==e.specularColorMap&&(n.specularColorMap=i(e.specularColorMap)),void 0!==e.envMap&&(n.envMap=i(e.envMap)),void 0!==e.envMapIntensity&&(n.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(n.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(n.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(n.lightMap=i(e.lightMap)),void 0!==e.lightMapIntensity&&(n.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(n.aoMap=i(e.aoMap)),void 0!==e.aoMapIntensity&&(n.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(n.gradientMap=i(e.gradientMap)),void 0!==e.clearcoatMap&&(n.clearcoatMap=i(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(n.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(n.clearcoatNormalMap=i(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(n.clearcoatNormalScale=(new xe).fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(n.iridescenceMap=i(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(n.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(n.transmissionMap=i(e.transmissionMap)),void 0!==e.thicknessMap&&(n.thicknessMap=i(e.thicknessMap)),void 0!==e.anisotropyMap&&(n.anisotropyMap=i(e.anisotropyMap)),void 0!==e.sheenColorMap&&(n.sheenColorMap=i(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(n.sheenRoughnessMap=i(e.sheenRoughnessMap)),n}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){return new{ShadowMaterial:LR,SpriteMaterial:Tb,RawShaderMaterial:DR,ShaderMaterial:cn,PointsMaterial:bi,MeshPhysicalMaterial:jo,MeshStandardMaterial:Cu,MeshPhongMaterial:ea,MeshToonMaterial:OR,MeshNormalMaterial:mf,MeshLambertMaterial:Pu,MeshDepthMaterial:_c,MeshDistanceMaterial:_b,MeshBasicMaterial:ln,MeshMatcapMaterial:kR,LineDashedMaterial:Iu,LineBasicMaterial:Gn,Material:yr}[e]}},ta=class{static decodeText(e){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let i=0,n=e.length;i0){let n=new Lu(t);i=new Mm(n),i.setCrossOrigin(this.crossOrigin);for(let t=0,i=e.length;t0){t=new Mm(this.manager),t.setCrossOrigin(this.crossOrigin);for(let t=0,i=e.length;t0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,n,this._addIndex*t,1,t);for(let o=t,l=t+t;o!==l;++o)if(i[o]!==i[o+t]){s.setValue(i,n);break}}saveOriginalState(){let e=this.binding,t=this.buffer,i=this.valueSize,n=i*this._origIndex;e.getValue(t,n);for(let r=i,a=n;r!==a;++r)t[r]=t[n+r%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){let e=3*this.valueSize;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){let e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let a=0;a!==r;++a)e[t+a]=e[i+a]}_slerp(e,t,i,n){dr.slerpFlat(e,t,e,t,e,i,n)}_slerpAdditive(e,t,i,n,r){let a=this._workIndex*r;dr.multiplyQuaternionsFlat(e,a,e,t,e,i),dr.slerpFlat(e,t,e,t,e,a,n)}_lerp(e,t,i,n,r){let a=1-n;for(let s=0;s!==r;++s){let r=t+s;e[r]=e[r]*a+e[i+s]*n}}_lerpAdditive(e,t,i,n,r){for(let a=0;a!==r;++a){let r=t+a;e[r]=e[r]+e[i+a]*n}}},WU="\\[\\]\\.:\\/",oot=new RegExp("["+WU+"]","g"),jU="[^"+WU+"]",lot="[^"+WU.replace("\\.","")+"]",cot=/((?:WC+[\/:])*)/.source.replace("WC",jU),uot=/(WCOD+)?/.source.replace("WCOD",lot),hot=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",jU),dot=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",jU),fot=new RegExp("^"+cot+uot+hot+dot+"$"),pot=["material","materials","bones","map"],cU=class{constructor(e,t,i){let n=i||Jn.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,n)}getValue(e,t){this.bind();let i=this._targetGroup.nCachedObjects_,n=this._bindings[i];void 0!==n&&n.getValue(e,t)}setValue(e,t){let i=this._bindings;for(let n=this._targetGroup.nCachedObjects_,r=i.length;n!==r;++n)i[n].setValue(e,t)}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}},Jn=class{constructor(e,t,i){this.path=t,this.parsedPath=i||Jn.parseTrackName(t),this.node=Jn.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new Jn.Composite(e,t,i):new Jn(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(oot,"")}static parseTrackName(e){let t=fot.exec(e);if(null===t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);let i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},n=i.nodeName&&i.nodeName.lastIndexOf(".");if(void 0!==n&&-1!==n){let e=i.nodeName.substring(n+1);-1!==pot.indexOf(e)&&(i.nodeName=i.nodeName.substring(0,n),i.objectName=e)}if(null===i.propertyName||0===i.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){let i=e.skeleton.getBoneByName(t);if(void 0!==i)return i}if(e.children){let i=function(e){for(let n=0;n=r){let a=r++,h=e[a];t[h.uuid]=l,e[l]=h,t[o]=a,e[a]=s;for(let e=0,t=n;e!==t;++e){let t=i[e],n=t[a],r=t[l];t[l]=n,t[a]=r}}}this.nCachedObjects_=r}uncache(){let e=this._objects,t=this._indicesByUUID,i=this._bindings,n=i.length,r=this.nCachedObjects_,a=e.length;for(let s=0,o=arguments.length;s!==o;++s){let o=arguments[s].uuid,l=t[o];if(void 0!==l)if(delete t[o],l0&&(t[s.uuid]=l),e[l]=s,e.pop();for(let e=0,t=n;e!==t;++e){let t=i[e];t[l]=t[r],t.pop()}}}this.nCachedObjects_=r}subscribe_(e,t){let i=this._bindingsIndicesByPath,n=i[e],r=this._bindings;if(void 0!==n)return r[n];let a=this._paths,s=this._parsedPaths,o=this._objects,l=o.length,h=this.nCachedObjects_,c=new Array(l);n=r.length,i[e]=n,a.push(e),s.push(t),r.push(c);for(let u=h,d=o.length;u!==d;++u){let i=o[u];c[u]=new Jn(i,e,t)}return c}unsubscribe_(e){let t=this._bindingsIndicesByPath,i=t[e];if(void 0!==i){let n=this._paths,r=this._parsedPaths,a=this._bindings,s=a.length-1,o=a[s];t[e[s]]=i,a[i]=o,a.pop(),r[i]=r[s],r.pop(),n[i]=n[s],n.pop()}}},WR=class{constructor(e,t,i=null,n=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=n;let r=t.tracks,a=r.length,s=new Array(a),o={endingStart:dm,endingEnd:dm};for(let l=0;l!==a;++l){let e=r[l].createInterpolant(null);s[l]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=s,this._propertyBindings=new Array(a),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=rhe,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){let i=this._clip.duration,n=e._clip.duration,r=n/i,a=i/n;e.warp(1,r,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){let e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){let n=this._mixer,r=n.time,a=this.timeScale,s=this._timeScaleInterpolant;null===s&&(s=n._lendControlInterpolant(),this._timeScaleInterpolant=s);let o=s.parameterPositions,l=s.sampleValues;return o[0]=r,o[1]=r+i,l[0]=e/a,l[1]=t/a,this}stopWarping(){let e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,n){if(!this.enabled)return void this._updateWeight(e);let r=this._startTime;if(null!==r){let n=(e-r)*i;n<0||0===i?t=0:(this._startTime=null,t=i*n)}t*=this._updateTimeScale(e);let a=this._updateTime(t),s=this._updateWeight(e);if(s>0){let e=this._interpolants,t=this._propertyBindings;if(this.blendMode===kU)for(let i=0,n=e.length;i!==n;++i)e[i].evaluate(a),t[i].accumulateAdditive(s);else for(let i=0,r=e.length;i!==r;++i)e[i].evaluate(a),t[i].accumulate(n,s)}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;let i=this._weightInterpolant;if(null!==i){let n=i.evaluate(e)[0];t*=n,e>i.parameterPositions[1]&&(this.stopFading(),0===n&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;let i=this._timeScaleInterpolant;null!==i&&(t*=i.evaluate(e)[0],e>i.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t))}return this._effectiveTimeScale=t,t}_updateTime(e){let t=this._clip.duration,i=this.loop,n=this.time+e,r=this._loopCount,a=i===ihe;if(0===e)return-1===r?n:a&&1==(1&r)?t-n:n;if(i===nhe){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(n>=t)n=t;else{if(!(n<0)){this.time=n;break e}n=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=n,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===r&&(e>=0?(r=0,this._setEndings(!0,0===this.repetitions,a)):this._setEndings(0===this.repetitions,!0,a)),n>=t||n<0){let i=Math.floor(n/t);n-=t*i,r+=Math.abs(i);let s=this.repetitions-r;if(s<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,n=e>0?t:0,this.time=n,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===s){let t=e<0;this._setEndings(t,!t,a)}else this._setEndings(!1,!1,a);this._loopCount=r,this.time=n,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:i})}}else this.time=n;if(a&&1==(1&r))return t-n}return n}_setEndings(e,t,i){let n=this._interpolantSettings;i?(n.endingStart=fm,n.endingEnd=fm):(n.endingStart=e?this.zeroSlopeAtStart?fm:dm:pb,n.endingEnd=t?this.zeroSlopeAtEnd?fm:dm:pb)}_scheduleFading(e,t,i){let n=this._mixer,r=n.time,a=this._weightInterpolant;null===a&&(a=n._lendControlInterpolant(),this._weightInterpolant=a);let s=a.parameterPositions,o=a.sampleValues;return s[0]=r,o[0]=t,s[1]=r+e,o[1]=i,this}},mot=new Float32Array(1),hU=class extends Wo{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){let i=e._localRoot||this._root,n=e._clip.tracks,r=n.length,a=e._propertyBindings,s=e._interpolants,o=i.uuid,l=this._bindingsByRootAndName,h=l[o];void 0===h&&(h={},l[o]=h);for(let c=0;c!==r;++c){let e=n[c],r=e.name,l=h[r];if(void 0!==l)++l.referenceCount,a[c]=l;else{if(l=a[c],void 0!==l){null===l._cacheIndex&&(++l.referenceCount,this._addInactiveBinding(l,o,r));continue}let n=t&&t._propertyBindings[c].binding.parsedPath;l=new qR(Jn.create(i,r,n),e.ValueTypeName,e.getValueSize()),++l.referenceCount,this._addInactiveBinding(l,o,r),a[c]=l}s[c].resultBuffer=l.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){let t=(e._localRoot||this._root).uuid,i=e._clip.uuid,n=this._actionsByClip[i];this._bindAction(e,n&&n.knownActions[0]),this._addInactiveAction(e,i,t)}let t=e._propertyBindings;for(let e=0,i=t.length;e!==i;++e){let i=t[e];0==i.useCount++&&(this._lendBinding(i),i.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){let t=e._propertyBindings;for(let e=0,i=t.length;e!==i;++e){let i=t[e];0==--i.useCount&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;let e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){let t=e._cacheIndex;return null!==t&&t=0;--t)e[t].stop();return this}update(e){e*=this.timeScale;let t=this._actions,i=this._nActiveActions,n=this.time+=e,r=Math.sign(e),a=this._accuIndex^=1;for(let l=0;l!==i;++l)t[l]._update(n,e,r,a);let s=this._bindings,o=this._nActiveBindings;for(let l=0;l!==o;++l)s[l].apply(a);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,vue).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},yue=new D,iR=new D,ra=class{constructor(e=new D,t=new D){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){yue.subVectors(e,this.start),iR.subVectors(this.end,this.start);let i=iR.dot(iR),n=iR.dot(yue)/i;return t&&(n=os(n,0,1)),n}closestPointToPoint(e,t,i){let n=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(n).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}},xue=new D,vU=class extends on{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";let i=new Dt,n=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let a=0,s=1,o=32;a1)for(let h=0;h.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{wue.set(e.z,0,-e.x).normalize();let t=Math.acos(e.y);this.quaternion.setFromAxisAngle(wue,t)}}setLength(e,t=.2*e,i=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},SU=class extends qr{constructor(e=1){let t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=new Dt;i.setAttribute("position",new Bt(t,3)),i.setAttribute("color",new Bt([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(i,new Gn({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(e,t,i){let n=new ct,r=this.geometry.attributes.color.array;return n.set(e),n.toArray(r,0),n.toArray(r,3),n.set(t),n.toArray(r,6),n.toArray(r,9),n.set(i),n.toArray(r,12),n.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}},Cm=class{constructor(){this.type="ShapePath",this.color=new ct,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new Mu,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,n){return this.currentPath.quadraticCurveTo(e,t,i,n),this}bezierCurveTo(e,t,i,n,r,a){return this.currentPath.bezierCurveTo(e,t,i,n,r,a),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(e,t){let i=t.length,n=!1;for(let r=i-1,a=0;aNumber.EPSILON){if(l<0&&(i=t[a],o=-o,s=t[r],l=-l),e.ys.y)continue;if(e.y===i.y){if(e.x===i.x)return!0}else{let t=l*(e.x-i.x)-o*(e.y-i.y);if(0===t)return!0;if(t<0)continue;n=!n}}else{if(e.y!==i.y)continue;if(s.x<=e.x&&e.x<=i.x||i.x<=e.x&&e.x<=s.x)return!0}}return n}let i=zs.isClockWise,n=this.subPaths;if(0===n.length)return[];let r,a,s,o=[];if(1===n.length)return a=n[0],s=new _s,s.curves=a.curves,o.push(s),o;let l=!i(n[0].getPoints());l=e?!l:l;let h,c,u=[],d=[],p=[],f=0;d[f]=void 0,p[f]=[];for(let m=0,g=n.length;m1){let e=!1,i=0;for(let t=0,n=d.length;t0&&!1===e&&(p=u)}for(let m=0,g=d.length;ma)return!1;let o=i.ray.origin.distanceTo(khe);return!(oi.far)&&(s.push({distance:o,point:Ohe.clone(),index:n,object:e}),!0)}fr.prototype.raycast=function(e,t){let i=this.geometry,n=this.matrixWorld,r=e.params.Line.threshold,a=i.drawRange;if(null===i.boundingSphere&&i.computeBoundingSphere(),ku.copy(i.boundingSphere),ku.applyMatrix4(n),ku.radius+=r,!1===e.ray.intersectsSphere(ku))return;let s=r*r,o=this.isLineSegments?2:1,l=i.index,h=i.attributes.position,c=t.length;if(null!==l){let i=this.userData.batches;if(i&&i.length>0&&i[0].boundingSphere)for(let r=0;r=1))return}else for(let n=Math.max(0,a.start),r=Math.min(l.count,a.start+a.count)-1;n=1))return}else{let i=this.userData.batches;if(i&&i.length>0&&i[0].boundingSphere)for(let r=0;r=1)return}else for(let n=Math.max(0,a.start),r=Math.min(h.count,a.start+a.count)-1;n=1)return}};var Fhe=Math.pow(2,-24),Dm=class{constructor(){}};function Pl(e,t,i){return i.min.x=t[e],i.min.y=t[e+1],i.min.z=t[e+2],i.max.x=t[e+3],i.max.y=t[e+4],i.max.z=t[e+5],i}function XU(e){let t=-1,i=-1/0;for(let n=0;n<3;n++){let r=e[n+3]-e[n];r>i&&(i=r,t=n)}return t}function YU(e,t){t.set(e)}function $U(e,t,i){let n,r;for(let a=0;a<3;a++){let s=a+3;n=e[a],r=t[a],i[a]=nr?n:r}}function zb(e,t,i){for(let n=0;n<3;n++){let r=t[e+2*n],a=t[e+2*n+1],s=r-a,o=r+a;si[n+3]&&(i[n+3]=o)}}function Lv(e){let t=e[3]-e[0],i=e[4]-e[1],n=e[5]-e[2];return 2*(t*i+i*n+n*t)}function bot(e,t){if(!e.index){let i,n=e.attributes.position.count,r=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;i=n>65535?new Uint32Array(new r(4*n)):new Uint16Array(new r(2*n)),e.setIndex(new mn(i,1));for(let e=0;ee-t));for(let r=0;rl&&(l=r),v&&tf&&(f=t);let x=e[y+2],b=e[y+3],_=x-b,w=x+b;_h&&(h=w),v&&xm&&(m=x);let S=e[y+4],M=e[y+5],E=S-M,T=S+M;Ec&&(c=T),v&&Sg&&(g=S)}n[0]=a,n[1]=s,n[2]=o,n[3]=l,n[4]=h,n[5]=c,v&&(r[0]=u,r[1]=d,r[2]=p,r[3]=f,r[4]=m,r[5]=g)}function _ot(e,t,i,n){let r=1/0,a=1/0,s=1/0,o=-1/0,l=-1/0,h=-1/0;for(let c=6*t,u=6*(t+i);co&&(o=t);let i=e[c+2];il&&(l=i);let n=e[c+4];nh&&(h=n)}n[0]=r,n[1]=a,n[2]=s,n[3]=o,n[4]=l,n[5]=h}function Tot(e,t,i,n,r){let a=i,s=i+n-1,o=r.pos,l=2*r.axis;for(;;){for(;a<=s&&t[6*a+l]=o;)s--;if(!(ae.candidate-t.candidate,xf=new Array(td).fill().map((()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0}))),tA=new Float32Array(6);function Sot(e,t,i,n,r,a){let s=-1,o=0;if(0===a)s=XU(t),-1!==s&&(o=(t[s]+t[s+3])/2);else if(1===a)s=XU(e),-1!==s&&(o=Mot(i,n,r,s));else if(2===a){let a=Lv(e),l=1.25*r,h=6*n,c=6*(n+r);for(let e=0;e<3;e++){let n=t[e],u=(t[e+3]-n)/td;if(r=a.candidate?zb(r,i,a.rightCacheBounds):(zb(r,i,a.leftCacheBounds),a.count++)}}for(let i=0;i=td&&(t=td-1);let a=xf[t];a.count++,zb(r,i,a.bounds)}let t=xf[td-1];YU(t.bounds,t.rightCacheBounds);for(let e=td-2;e>=0;e--){let t=xf[e],i=xf[e+1];$U(t.bounds,i.rightCacheBounds,t.rightCacheBounds)}let d=0;for(let i=0;im&&(m=h),u>m&&(m=u);let g=(m-p)/2,v=2*n;a[f+v+0]=p+g,a[f+v+1]=g+(Math.abs(p)+g)*Fhe,pt[n+3]&&(t[n+3]=m)}}return a}function Aot(e,t){function i(e){d&&d(e/p)}function n(t,r,d,p=null,m=0){if(!f&&m>=l&&(f=!0,h&&(console.warn(`MeshBVH: Max depth of ${l} reached when generating BVH. Consider increasing maxDepth.`),console.warn(e))),d<=c||m>=l)return i(r+d),t.offset=r,t.count=d,t;let g=Sot(t.boundingData,p,s,r,d,u);if(-1===g.axis)return i(r+d),t.offset=r,t.count=d,t;let v=Tot(o,s,r,d,g);if(v===r||v===r+d)i(r+d),t.offset=r,t.count=d;else{t.splitAxis=g.axis;let e=new Dm,i=r,o=v-r;t.left=e,e.boundingData=new Float32Array(6),KU(s,i,o,e.boundingData,a),n(e,i,o,a,m+1);let l=new Dm,h=v,c=d-o;t.right=l,l.boundingData=new Float32Array(6),KU(s,h,c,l.boundingData,a),n(l,h,c,a,m+1)}return t}bot(e,t);let r=new Float32Array(6),a=new Float32Array(6),s=Rot(e,r),o=e.index.array,l=t.maxDepth,h=t.verbose,c=t.maxLeafTris,u=t.strategy,d=t.onProgress,p=e.index.count/3,f=!1,m=[],g=Eot(e);if(1===g.length){let e=g[0],t=new Dm;t.boundingData=r,_ot(s,e.offset,e.count,a),n(t,e.offset,e.count,a),m.push(t)}else for(let v of g){let e=new Dm;e.boundingData=new Float32Array(6),KU(s,v.offset,v.count,e.boundingData,a),n(e,v.offset,v.count,a),m.push(e)}return m}function Uhe(e,t){let i,n,r,a=Aot(e,t),s=[],o=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let c=0;cMath.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return n[a+6]=i/4,i=h(i,s),n[a+7]=o,i}}}var po=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(e,t){let i=1/0,n=-1/0;for(let r=0,a=e.length;rn?a:n}this.min=i,this.max=n}setFromPoints(e,t){let i=1/0,n=-1/0;for(let r=0,a=t.length;rn?s:n}this.min=i,this.max=n}isSeparated(e){return this.min>e.max||e.min>this.max}};po.prototype.setFromBox=function(){let e=new D;return function(t,i){let n=i.min,r=i.max,a=1/0,s=-1/0;for(let o=0;o<=1;o++)for(let i=0;i<=1;i++)for(let l=0;l<=1;l++){e.x=n.x*o+r.x*(1-o),e.y=n.y*i+r.y*(1-i),e.z=n.z*l+r.z*(1-l);let h=t.dot(e);a=Math.min(h,a),s=Math.max(h,s)}this.min=a,this.max=s}}();var jPt=function(){let e=new po;return function(t,i){let n=t.points,r=t.satAxes,a=t.satBounds,s=i.points,o=i.satAxes,l=i.satBounds;for(let h=0;h<3;h++){let t=a[h],i=r[h];if(e.setFromPoints(i,s),t.isSeparated(e))return!1}for(let h=0;h<3;h++){let t=l[h],i=o[h];if(e.setFromPoints(i,n),t.isSeparated(e))return!1}}}(),Cot=function(){let e=new D,t=new D,i=new D;return function(n,r,a){let s=n.start,o=e,l=r.start,h=t;i.subVectors(s,l),e.subVectors(n.end,n.start),t.subVectors(r.end,r.start);let c,u,d=i.dot(h),p=h.dot(o),f=h.dot(h),m=i.dot(o),g=o.dot(o)*f-p*p;c=0!==g?(d*p-m*f)/g:0,u=(d+c*p)/f,a.x=c,a.y=u}}(),Gb=function(){let e=new xe,t=new D,i=new D;return function(n,r,a,s){Cot(n,r,e);let o=e.x,l=e.y;if(o>=0&&o<=1&&l>=0&&l<=1)return n.at(o,a),void r.at(l,s);if(o>=0&&o<=1)return l<0?r.at(0,s):r.at(1,s),void n.closestPointToPoint(s,!0,a);if(l>=0&&l<=1)return o<0?n.at(0,a):n.at(1,a),void r.closestPointToPoint(a,!0,s);{let e,h;e=o<0?n.start:n.end,h=l<0?r.start:r.end;let c=t,u=i;return n.closestPointToPoint(h,!0,t),r.closestPointToPoint(e,!0,i),c.distanceToSquared(h)<=u.distanceToSquared(e)?(a.copy(c),void s.copy(h)):(a.copy(e),void s.copy(u))}}}(),Hhe=function(){let e=new D,t=new D,i=new zr,n=new ra;return function(r,a){let{radius:s,center:o}=r,{a:l,b:h,c:c}=a;if(n.start=l,n.end=h,n.closestPointToPoint(o,!0,e).distanceTo(o)<=s||(n.start=l,n.end=c,n.closestPointToPoint(o,!0,e).distanceTo(o)<=s)||(n.start=h,n.end=c,n.closestPointToPoint(o,!0,e).distanceTo(o)<=s))return!0;let u=a.getPlane(i);if(Math.abs(u.distanceToPoint(o))<=s){let e=u.projectPoint(o,t);if(a.containsPoint(e))return!0}return!1}}(),Pot=1e-15;function Dv(e){return Math.abs(e)new D)),this.satBounds=new Array(4).fill().map((()=>new po)),this.points=[this.a,this.b,this.c],this.sphere=new vr,this.plane=new zr,this.needsUpdate=!0}intersectsSphere(e){return Hhe(e,this)}update(){let e=this.a,t=this.b,i=this.c,n=this.points,r=this.satAxes,a=this.satBounds,s=r[0],o=a[0];this.getNormal(s),o.setFromPoints(s,n);let l=r[1],h=a[1];l.subVectors(e,t),h.setFromPoints(l,n);let c=r[2],u=a[2];c.subVectors(t,i),u.setFromPoints(c,n);let d=r[3],p=a[3];d.subVectors(i,e),p.setFromPoints(d,n),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(s,e),this.needsUpdate=!1}};mo.prototype.closestPointToSegment=function(){let e=new D,t=new D,i=new ra;return function(n,r=null,a=null){let s,{start:o,end:l}=n,h=this.points,c=1/0;for(let u=0;u<3;u++){let o=(u+1)%3;i.start.copy(h[u]),i.end.copy(h[o]),Gb(i,n,e,t),s=e.distanceToSquared(t),s1-1e-10){let e=this.satBounds,s=this.satAxes;i[0]=d.a,i[1]=d.b,i[2]=d.c;for(let t=0;t<4;t++){let r=e[t],a=s[t];if(n.setFromPoints(a,i),r.isSeparated(n))return!1}let o=d.satBounds,l=d.satAxes;t[0]=this.a,t[1]=this.b,t[2]=this.c;for(let i=0;i<4;i++){let e=o[i],r=l[i];if(n.setFromPoints(r,t),e.isSeparated(n))return!1}for(let h=0;h<4;h++){let e=s[h];for(let s=0;s<4;s++){let o=l[s];if(a.crossVectors(e,o),n.setFromPoints(a,t),r.setFromPoints(a,i),n.isSeparated(r))return!1}}return p&&(f||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),p.start.set(0,0,0),p.end.set(0,0,0)),!0}{let e=this.points,t=!1,i=0;for(let o=0;o<3;o++){let n=e[o],r=e[(o+1)%3];h.start.copy(n),h.end.copy(r),h.delta(s);let a=t?c.start:c.end,l=Dv(g.distanceToPoint(n));if(Dv(g.normal.dot(s))&&l){c.copy(h),i=2;break}if((g.intersectLine(h,a)||l)&&!Dv(a.distanceTo(r))){if(i++,t)break;t=!0}}if(1===i&&d.containsPoint(c.end))return p&&(p.start.copy(c.end),p.end.copy(c.end)),!0;if(2!==i)return!1;let n=d.points,r=!1,a=0;for(let s=0;s<3;s++){let e=n[s],t=n[(s+1)%3];h.start.copy(e),h.end.copy(t),h.delta(o);let i=r?u.start:u.end,l=Dv(m.distanceToPoint(e));if(Dv(m.normal.dot(o))&&l){u.copy(h),a=2;break}if((m.intersectLine(h,i)||l)&&!Dv(i.distanceTo(t))){if(a++,r)break;r=!0}}if(1===a&&this.containsPoint(u.end))return p&&(p.start.copy(u.end),p.end.copy(u.end)),!0;if(2!==a)return!1;if(c.delta(s),u.delta(o),s.dot(o)<0){let e=u.start;u.start=u.end,u.end=e}let f=c.start.dot(s),v=c.end.dot(s),y=u.start.dot(s),x=u.end.dot(s);return(f===x||y===v||v0?p.start.copy(c.start):p.start.copy(u.start),l.subVectors(c.end,u.end),l.dot(s)<0?p.end.copy(c.end):p.end.copy(u.end)),!0)}}}(),mo.prototype.distanceToPoint=function(){let e=new D;return function(t){return this.closestPointToPoint(t,e),t.distanceTo(e)}}(),mo.prototype.distanceToTriangle=function(){let e=new D,t=new D,i=["a","b","c"],n=new ra,r=new ra;return function(a,s=null,o=null){let l=s||o?n:null;if(this.intersectsTriangle(a,l))return(s||o)&&(s&&l.getCenter(s),o&&l.getCenter(o)),0;let h=1/0;for(let t=0;t<3;t++){let n,r=i[t],l=a[r];this.closestPointToPoint(l,e),n=l.distanceToSquared(e),nnew D)),this.satAxes=new Array(3).fill().map((()=>new D)),this.satBounds=new Array(3).fill().map((()=>new po)),this.alignedSatBounds=new Array(3).fill().map((()=>new po)),this.needsUpdate=!1,e&&this.min.copy(e),t&&this.max.copy(t),i&&this.matrix.copy(i)}set(e,t,i){this.min.copy(e),this.max.copy(t),this.matrix.copy(i),this.needsUpdate=!0}copy(e){this.min.copy(e.min),this.max.copy(e.max),this.matrix.copy(e.matrix),this.needsUpdate=!0}};go.prototype.update=function(){let e=this.matrix,t=this.min,i=this.max,n=this.points;for(let l=0;l<=1;l++)for(let r=0;r<=1;r++)for(let a=0;a<=1;a++){let s=n[1*l|2*r|4*a];s.x=l?i.x:t.x,s.y=r?i.y:t.y,s.z=a?i.z:t.z,s.applyMatrix4(e)}let r=this.satBounds,a=this.satAxes,s=n[0];for(let l=0;l<3;l++){let e=a[l],t=r[l],i=n[1<new ra)),i=new Array(12).fill().map((()=>new ra)),n=new D,r=new D;return function(a,s=0,o=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(a))return(o||l)&&(a.getCenter(r),this.closestPointToPoint(r,n),a.closestPointToPoint(n,r),o&&o.copy(n),l&&l.copy(r)),0;let h=s*s,c=a.min,u=a.max,d=this.points,p=1/0;for(let e=0;e<8;e++){let t=d[e];r.copy(t).clamp(c,u);let i=t.distanceToSquared(r);if(ii.far)?null:e}function Il(e,t,i,n){let r=e.a,a=e.b,s=e.c,o=t,l=t+1,h=t+2;i&&(o=i.getX(t),l=i.getX(t+1),h=i.getX(t+2)),r.x=n.getX(o),r.y=n.getY(o),r.z=n.getZ(o),a.x=n.getX(l),a.y=n.getY(l),a.z=n.getZ(l),s.x=n.getX(h),s.y=n.getY(h),s.z=n.getZ(h)}function tH(e,t,i,n,r,a,s){let o=i.index,l=i.attributes.position;for(let h=e,c=t+e;h=0;c?(r=Fv(e),s=Nv(e,o)):(r=Nv(e,o),s=Fv(e));let u=uA(r,a,n,oA)?cA(r,t,i,n):null;if(u){let e=u.point[h];if(c?e<=a[s+l]:e>=a[s+l+3])return u}let d=uA(s,a,n,oA)?cA(s,t,i,n):null;return u&&d?u.distance<=d.distance?u:d:u||d||null}}var Yhe=function(){let e,t,i=[],n=new Ov((()=>new Nt));return function(...a){e=n.getPrimitive(),t=n.getPrimitive(),i.push(e,t);let s=r(...a);n.releasePrimitive(e),n.releasePrimitive(t),i.pop(),i.pop();let o=i.length;return o>0&&(t=i[o-1],e=i[o-2]),s};function r(i,n,a,s,o=null,l=0,h=0){function c(e){let t=2*e,i=bf,n=Ef;for(;!nd(t,i);)t=2*(e=Fv(e));return Om(e,n)}function u(e){let t=2*e,i=bf,n=Ef;for(;!nd(t,i);)t=2*(e=Nv(e,n));return Om(e,n)+kv(t,i)}let d=2*i,p=Uv,f=bf,m=Ef;if(nd(d,f)){let t=Om(i,m),n=kv(d,f);return Pl(i,p,e),s(t,n,!1,h,l+i,e)}{let d,g,v,y,x=Fv(i),b=Nv(i,m),_=x,w=b;if(o&&(v=e,y=t,Pl(_,p,v),Pl(w,p,y),d=o(v),g=o(y),gr.intersectsBox(e),intersectsTriangle:e=>{e.a.applyMatrix4(h),e.b.applyMatrix4(h),e.c.applyMatrix4(h),e.needsUpdate=!0;for(let i=3*v,n=3*(y+v);inew mo)),Mc=class{static serialize(e,t={}){if(t.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),Mc.serialize(arguments[0],{cloneBuffers:void 0===arguments[2]||arguments[2]});t=Tr({cloneBuffers:!0},t);let i,n=e.geometry,r=e._roots,a=n.getIndex();return i=t.cloneBuffers?{roots:r.map((e=>e.slice())),index:a.array.slice()}:{roots:r,index:a.array},i}static deserialize(e,t,i={}){if("boolean"==typeof i)return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),Mc.deserialize(arguments[0],arguments[1],{setIndex:void 0===arguments[2]||arguments[2]});i=Tr({setIndex:!0},i);let{index:n,roots:r}=e,a=new Mc(t,Ii(Tr({},i),{[rH]:!0}));if(a._roots=r,i.setIndex){let i=t.getIndex();if(null===i){let i=new mn(e.index,1,!1);t.setIndex(i)}else i.array!==n&&(i.array.set(n),i.needsUpdate=!0)}return a}constructor(e,t={}){if(!e.isBufferGeometry)throw new Error("MeshBVH: Only BufferGeometries are supported.");if(e.index&&e.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.");if((t=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[rH]:!1},t)).useSharedArrayBuffer&&"undefined"==typeof SharedArrayBuffer)throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,t[rH]||(this._roots=Uhe(e,t),!e.boundingBox&&t.setBoundingBox&&(e.boundingBox=this.getBoundingBox(new Nt))),this.geometry=e}refit(e=null){e&&Array.isArray(e)&&(e=new Set(e));let t,i,n,r,a=this.geometry,s=a.index.array,o=a.attributes.position,l=0,h=this._roots;for(let u=0,d=h.length;uu&&(u=i),nd&&(d=n),rp&&(p=r)}return(r[t+0]!==a||r[t+1]!==l||r[t+2]!==c||r[t+3]!==u||r[t+4]!==d||r[t+5]!==p)&&(r[t+0]=a,r[t+1]=l,r[t+2]=c,r[t+3]=u,r[t+4]=d,r[t+5]=p,!0)}{let n=t+8,s=i[t+6],o=n+a,h=s+a,u=l,d=!1,p=!1;e?u||(d=e.has(o),p=e.has(h),u=!d&&!p):(d=!0,p=!0);let f=u||p,m=!1;(u||d)&&(m=c(n,a,u));let g=!1;f&&(g=c(s,a,u));let v=m||g;if(v)for(let e=0;e<3;e++){let i=n+e,a=s+e,o=r[i],l=r[i+3],h=r[a],c=r[a+3];r[t+e]=oc?l:c}return v}}}traverse(e,t=0){let i=this._roots[t],n=new Uint32Array(i),r=new Uint16Array(i);!function t(a,s=0){let o=2*a,l=65535===r[o+15];if(l){let t=n[a+6],h=r[o+14];e(s,l,new Float32Array(i,4*a,6),t,h)}else{let r=a+8,o=n[a+6],h=n[a+7];e(s,l,new Float32Array(i,4*a,6),h)||(t(r,s+1),t(o,s+1))}}(0)}raycast(e,t=pi){let i=this._roots,n=this.geometry,r=[],a=t.isMaterial,s=Array.isArray(t),o=n.groups,l=a?t.side:t;for(let h=0,c=i.length;h{let a=3*i;return e(t,a,a+1,a+2,n,r)}}e={boundsTraverseOrder:i,intersectsBounds:e,intersectsTriangle:t,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let r=Fu.getPrimitive(),{boundsTraverseOrder:a,intersectsBounds:s,intersectsRange:o,intersectsTriangle:l}=e;if(o&&l){let e=o;o=(t,i,a,s,o)=>!!e(t,i,a,s,o)||tH(t,i,n,l,a,s,r)}else o||(o=l?(e,t,i,a)=>tH(e,t,n,l,i,a,r):(e,t,i)=>i);let h=!1,c=0;for(let u of this._roots){if(Hv(u),h=Yhe(0,n,s,o,a,c),qb(),h)break;c+=u.byteLength}return Fu.releasePrimitive(r),h}bvhcast(e,t,i){let{intersectsRanges:n,intersectsTriangles:r}=i,a=this.geometry.index,s=this.geometry.attributes.position,o=e.geometry.index,l=e.geometry.attributes.position;Vv.copy(t).invert();let h=Fu.getPrimitive(),c=Fu.getPrimitive();if(r){let e=function(e,i,n,u,d,p,f,m){for(let g=n,v=n+u;gsH.intersectsBox(e),intersectsRange:(t,i,r,a,s,o)=>(iH.copy(o),iH.applyMatrix4(Vv),e.shapecast({intersectsBounds:e=>iH.intersectsBox(e),intersectsRange:(e,r,o,l,h)=>n(t,i,e,r,a,s,l,h)}))});return Fu.releasePrimitive(h),Fu.releasePrimitive(c),u}intersectsBox(e,t){return km.set(e.min,e.max,t),km.needsUpdate=!0,this.shapecast({intersectsBounds:e=>km.intersectsBox(e),intersectsTriangle:e=>km.intersectsTriangle(e)})}intersectsSphere(e){return this.shapecast({intersectsBounds:t=>e.intersectsBox(t),intersectsTriangle:t=>t.intersectsSphere(e)})}closestPointToGeometry(e,t,i={},n={},r=0,a=1/0){e.boundingBox||e.computeBoundingBox(),km.set(e.boundingBox.min,e.boundingBox.max,t),km.needsUpdate=!0;let s=this.geometry,o=s.attributes.position,l=s.index,h=e.attributes.position,c=e.index,u=Fu.getPrimitive(),d=Fu.getPrimitive(),p=hA,f=kot,m=null,g=null;n&&(m=Fot,g=Not);let v=1/0,y=null,x=null;return Vv.copy(t).invert(),Wb.matrix.copy(Vv),this.shapecast({boundsTraverseOrder:e=>km.distanceToBox(e),intersectsBounds:(e,t,i)=>i{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:e=>Wb.distanceToBox(e),intersectsBounds:(e,t,i)=>i{for(let s=3*e,b=3*(e+a);s(jb.copy(e).clamp(t.min,t.max),jb.distanceToSquared(e)),intersectsBounds:(e,t,i)=>i{t.closestPointToPoint(e,jb);let n=e.distanceToSquared(jb);return n{Pl(0,new Float32Array(t),Zhe),e.union(Zhe)})),e}},aH=new lo,Khe=new et,Bot=xt.prototype.raycast;function oH(e,t){if(this.geometry.boundsTree){if(void 0===this.material)return;Khe.copy(this.matrixWorld).invert(),aH.copy(e.ray).applyMatrix4(Khe);let i=this.geometry.boundsTree;if(!0===e.firstHitOnly){let n=eH(i.raycastFirst(aH,this.material),this,e);n&&t.push(n)}else{let n=i.raycast(aH,this.material);for(let i=0,r=n.length;ii.far?null:{distance:h,point:yA.clone(),object:e}}function xA(e,t,i,n,r,a,s,o,l,h,c,u){_f.fromBufferAttribute(r,h),Tf.fromBufferAttribute(r,c),wf.fromBufferAttribute(r,u);let d=e.morphTargetInfluences;if(a&&d){dA.set(0,0,0),fA.set(0,0,0),pA.set(0,0,0);for(let e=0,t=a.length;en.far)return;r.push({distance:o,distanceToRay:Math.sqrt(s),point:i,index:t,face:null,object:a})}}ii.prototype.raycast=function(e,t){let i=this.geometry,n=this.matrixWorld,r=e.params.Points.threshold,a=i.drawRange;if(null===i.boundingSphere&&i.computeBoundingSphere(),bA.copy(i.boundingSphere),bA.applyMatrix4(n),bA.radius+=r,!1===e.ray.intersectsSphere(bA))return;let s=r*r,o=i.index,l=i.attributes.position,h=t.length;if(null!==o)for(let c=Math.max(0,a.start),u=Math.min(o.count,a.start+a.count);c=1)return}else for(let c=Math.max(0,a.start),u=Math.min(l.count,a.start+a.count);c=1)return};var fH=class{constructor(){this.id=0,this.object=null,this.z=0,this.renderOrder=0}},Xb=class{constructor(){this.id=0,this.v1=new Sf,this.v2=new Sf,this.v3=new Sf,this.normalModel=new D,this.vertexNormalsModel=[new D,new D,new D],this.vertexNormalsLength=0,this.color=new ct,this.material=null,this.uvs=[new xe,new xe,new xe],this.z=0,this.renderOrder=0}},Sf=class{constructor(){this.position=new D,this.positionWorld=new D,this.positionScreen=new gr,this.visible=!0}copy(e){this.positionWorld.copy(e.positionWorld),this.positionScreen.copy(e.positionScreen)}},Yb=class{constructor(){this.id=0,this.v1=new Sf,this.v2=new Sf,this.vertexColors=[new ct,new ct],this.material=null,this.z=0,this.renderOrder=0}},$b=class{constructor(){this.id=0,this.object=null,this.x=0,this.y=0,this.z=0,this.rotation=0,this.scale=new xe,this.material=null,this.renderOrder=0}},_A=class{constructor(){let e,t,i,n,r,a,s,o,l,h,c,u=0,d=0,p=0,f=0,m=0,g={objects:[],lights:[],elements:[]},v=new D,y=new gr,x=new Nt(new D(-1,-1,-1),new D(1,1,1)),b=new Nt,_=new Array(3),w=new et,S=new et,M=new et,E=new ma,T=[],A=[],C=[],P=[],R=[],L=new function(){let e=[],t=[],a=[],l=null,h=new Ln;function u(e){let t=e.position,i=e.positionWorld,n=e.positionScreen;i.copy(t).applyMatrix4(c),n.copy(i).applyMatrix4(S);let r=1/n.w;n.x*=r,n.y*=r,n.z*=r,e.visible=n.x>=-1&&n.x<=1&&n.y>=-1&&n.y<=1&&n.z>=-1&&n.z<=1}function p(e,t,i){return!0===e.visible||!0===t.visible||!0===i.visible||(_[0]=e.positionScreen,_[1]=t.positionScreen,_[2]=i.positionScreen,x.intersectsBox(b.setFromPoints(_)))}function m(e,t,i){return(i.positionScreen.x-e.positionScreen.x)*(t.positionScreen.y-e.positionScreen.y)-(i.positionScreen.y-e.positionScreen.y)*(t.positionScreen.x-e.positionScreen.x)<0}return{setObject:function(i){l=i,h.getNormalMatrix(l.matrixWorld),e.length=0,t.length=0,a.length=0},projectVertex:u,checkTriangleVisibility:p,checkBackfaceCulling:m,pushVertex:function(e,t,r){i=function(){if(n===d){let e=new Sf;return A.push(e),d++,n++,e}return A[n++]}(),i.position.set(e,t,r),u(i)},pushNormal:function(t,i,n){e.push(t,i,n)},pushColor:function(e,i,n){t.push(e,i,n)},pushUv:function(e,t){a.push(e,t)},pushLine:function(e,i){let n=A[e],r=A[i];n.positionScreen.copy(n.position).applyMatrix4(M),r.positionScreen.copy(r.position).applyMatrix4(M),!0===function(e,t){let i=0,n=1,r=e.z+e.w,a=t.z+t.w,s=-e.z+e.w,o=-t.z+t.w;return r>=0&&a>=0&&s>=0&&o>=0||!(r<0&&a<0||s<0&&o<0)&&(r<0?i=Math.max(i,r/(r-a)):a<0&&(n=Math.min(n,r/(r-a))),s<0?i=Math.max(i,s/(s-o)):o<0&&(n=Math.min(n,s/(s-o))),!(n=-1&&e.z<=1&&(l=function(){if(h===m){let e=new $b;return R.push(e),m++,h++,e}return R[h++]}(),l.id=t.id,l.x=e.x*n,l.y=e.y*n,l.z=e.z,l.renderOrder=t.renderOrder,l.object=t,l.rotation=t.rotation,l.scale.x=t.scale.x*Math.abs(l.x-(e.x+i.projectionMatrix.elements[0])/(e.w+i.projectionMatrix.elements[12])),l.scale.y=t.scale.y*Math.abs(l.y-(e.y+i.projectionMatrix.elements[5])/(e.w+i.projectionMatrix.elements[13])),l.material=t.material,g.elements.push(l))}function N(){if(a===p){let e=new Xb;return C.push(e),p++,a++,e}return C[a++]}function U(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id!==t.id?e.id-t.id:0}this.projectScene=function(e,i,r,s){a=0,o=0,h=0,g.elements.length=0,!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),null===i.parent&&!0===i.matrixWorldAutoUpdate&&i.updateMatrixWorld(),w.copy(i.matrixWorldInverse),S.multiplyMatrices(i.projectionMatrix,w),E.setFromProjectionMatrix(S),t=0,g.objects.length=0,g.lights.length=0,I(e),!0===r&&g.objects.sort(U);let l=g.objects;for(let t=0,a=l.length;t0)for(let r=0;r0)for(let r=0;r0;)k.removeChild(k.childNodes[0])}function U(e){return null!==g?e.toFixed(g):e}function F(e,t,i){let n=t.scale.x*a,r=t.scale.y*s;i.isPointsMaterial&&(n*=i.size,r*=i.size);let o="M"+U(e.x-.5*n)+","+U(e.y-.5*r)+"h"+U(n)+"v"+U(r)+"h"+U(-n)+"z",l="";(i.isSpriteMaterial||i.isPointsMaterial)&&(l="fill:"+i.color.getStyle()+";fill-opacity:"+i.opacity),V(l,o)}function B(e,t,i){let n="M"+U(e.positionScreen.x)+","+U(e.positionScreen.y)+"L"+U(t.positionScreen.x)+","+U(t.positionScreen.y);if(i.isLineBasicMaterial){let e="fill:none;stroke:"+i.color.getStyle()+";stroke-opacity:"+i.opacity+";stroke-width:"+i.linewidth+";stroke-linecap:"+i.linecap;i.isLineDashedMaterial&&(e=e+";stroke-dasharray:"+i.dashSize+","+i.gapSize),V(e,n)}}function z(e,t,n,r,a){y.info.render.vertices+=3,y.info.render.faces++;let s="M"+U(e.positionScreen.x)+","+U(e.positionScreen.y)+"L"+U(t.positionScreen.x)+","+U(t.positionScreen.y)+"L"+U(n.positionScreen.x)+","+U(n.positionScreen.y)+"z",o="";a.isMeshBasicMaterial?(_.copy(a.color),a.vertexColors&&_.multiply(r.color)):a.isMeshLambertMaterial||a.isMeshPhongMaterial||a.isMeshStandardMaterial?(w.copy(a.color),a.vertexColors&&w.multiply(r.color),_.copy(S),A.copy(e.positionWorld).add(t.positionWorld).add(n.positionWorld).divideScalar(3),function(e,t,i,n){for(let r=0,a=e.length;r1||l.positionScreen.z<-1||l.positionScreen.z>1||h.positionScreen.z<-1||h.positionScreen.z>1)continue;o.positionScreen.x*=a,o.positionScreen.y*=-s,l.positionScreen.x*=a,l.positionScreen.y*=-s,h.positionScreen.x*=a,h.positionScreen.y*=-s,this.overdraw>0&&(H(o.positionScreen,l.positionScreen,this.overdraw),H(l.positionScreen,h.positionScreen,this.overdraw),H(h.positionScreen,o.positionScreen,this.overdraw)),b.setFromPoints([o.positionScreen,l.positionScreen,h.positionScreen]),!0===x.intersectsBox(b)&&z(o,l,h,i,n)}}j(),n.traverseVisible((function(e){if(e.isSVGObject){if(T.setFromMatrixPosition(e.matrixWorld),T.applyMatrix4(L),T.z<-1||T.z>1)return;let t=T.x*a,i=-T.y*s,n=e.node;n.setAttribute("transform",`translate(${t}, ${i}) rotate(${e.rotation.z})`),k.appendChild(n)}}))}}};function Hot(e){let t={};return t.r=(e>>16&255)/255,t.g=(e>>8&255)/255,t.b=(255&e)/255,t}var nde="\n #if defined(USE_BC_OUTLINE)\n // Restore barycentric coordinates\n int barycentricX = int(barycentric) & 0x1;\n int barycentricY = int(barycentric) & 0x2;\n int barycentricZ = int(barycentric) & 0x4;\n vBarycentric = vec3(float(barycentricX), float(barycentricY), float(barycentricZ));\n #endif\n",rde="\n #if defined(USE_BC_OUTLINE)\n vec3 finWireFrameColor = outLineColor;\n vec3 _tempColor = gl_FragColor.rgb;\n\n gl_FragColor.rgb = mix(finWireFrameColor, _tempColor, edgeFactor3());\n #endif\n",ide="\n #if defined(USE_BC_OUTLINE)\n varying vec3 vBarycentric;\n uniform vec3 outLineColor;\n\n float edgeFactor3(){\n vec3 d = fwidth(vBarycentric);\n float minValue = 0.0000001;\n // make sure d is not 0\n d = clamp(d, vec3(minValue), vec3(10.0));\n vec3 a3 = smoothstep(vec3(0.0), d*0.8, vBarycentric);\n return min(min(a3.x, a3.y), a3.z);\n }\n #endif\n",sde="\n #ifdef USE_BC_OUTLINE \n attribute float barycentric;\n varying vec3 vBarycentric;\n #endif\n",ade="\n#define STANDARD\n\nvarying vec3 vViewPosition;\n\n#ifdef USE_TRANSMISSION\n\n\tvarying vec3 vWorldPosition;\n\n#endif\n\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n#include \n\nvoid main() {\n\n\t#include \n\t#include \n\t#include \n\n #include \n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\tvViewPosition = - mvPosition.xyz;\n\n\t#include \n\t#include \n\t#include \n\n#ifdef USE_TRANSMISSION\n\n\tvWorldPosition = worldPosition.xyz;\n\n#endif\n}\n",ode="\n#define STANDARD\n\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef IOR\n\tuniform float ior;\n#endif\n\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\n\nvarying vec3 vViewPosition;\n\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n#include \n\nvoid main() {\n\n\t#include \n\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\t// accumulation\n\t#include \n\t#include \n\t#include \n\t#include \n\n\t// modulation\n\t#include \n\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\n\t#include \n\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\n\t#ifdef USE_SHEEN\n\n\t\t// Sheen energy compensation approximation calculation can be found at the end of\n\t\t// https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\n\t#endif\n\n\t#ifdef USE_CLEARCOAT\n\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\n\t#endif\n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n #include \n}\n";$n.outline_bc_vertex=nde,$n.outline_bc_fragment=rde,$n.outline_bc_pars_fragment=ide,$n.outline_bc_pars_vertex=sde,$n.gemini_standard_vertex=ade,$n.gemini_standard_fragment=ode;var TA=class{constructor(e){this.isCanceled=!1;let t=new Promise(((e,t)=>{this.cancelReject=t}));this.promise=Promise.race([t,e])}cancel(){this.cancelReject&&this.cancelReject({type:"cancel"})}},lde={enableSpinner:!0,containerId:"myCanvas",units:"meters"},zot=Xi(ude(),1),se=zot;se.setLevel("warn");var hde=e=>{try{se.setLevel(e)}catch(e){se.setLevel("error"),se.error(e)}},pH=class{static isTouchScreenDevice(){return"ontouchstart"in window}static printDeviceInfo(){let e=navigator.userAgent,t=/(?:Android)/.test(e),i=/(?:Firefox)/.test(e),n=/(?:Chrome|CriOS)/.test(e),r=/(?:iPad|PlayBook)/.test(e)||t&&!/(?:Mobile)/.test(e)||i&&/(?:Tablet)/.test(e),a=/(?:iPhone)/.test(e)&&!r,s=!a&&!t,o=pH.isTouchScreenDevice();t&&se.debug("[DI] is android"),i&&se.debug("[DI] is fireFox"),n&&se.debug("[DI] is chrome"),r&&se.debug("[DI] is tablet"),a&&se.debug("[DI] is iPhone"),s&&se.debug("[DI] is PC"),o&&se.debug("[DI] is touch device")}static creatReactNativeCanvas(e){let t=e.drawingBufferWidth||e.width||0,i=e.drawingBufferHeight||e.height||0;return{style:{},width:t,height:i,clientWidth:Math.ceil(t/(window.devicePixelRatio||1)),clientHeight:Math.ceil(i/(window.devicePixelRatio||1)),addEventListener:()=>{},removeEventListener:()=>{}}}},Fn=pH;Fn.isMobile=/mobile/i.test(navigator.userAgent),Fn.isBrowser="undefined"!=typeof document,Fn.isNode="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process);var SA=class{static isFullScreen(){return!(!document.fullscreenElement&&!document.mozFullScreenElement)}static fullScreen(e=document.documentElement){(e.requestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen||e.msRequestFullscreen).call(e)}static exitFullscreen(){(document.exitFullscreen||document.mozCancelFullscreen||document.webkitExitFullscreen||document.msExitFullscreen).call(document)}static joinStrings(...e){return e.join("")}static numberToString(e){let t=2;return Math.abs(e)<1e-6?t=2:Math.abs(e)<1e-5?t=7:Math.abs(e)<1e-4?t=6:Math.abs(e)<.001?t=5:Math.abs(e)<.01?t=4:Math.abs(e)<.1&&(t=3),e.toFixed(t)}static hexToBase64(e){return btoa((e.match(/\w{2}/g)||[]).map((function(e){return String.fromCharCode(parseInt(e,16))})).join(""))}static vectorToString(e){return e instanceof D?`(${this.numberToString(e.x)}, ${this.numberToString(e.y)}, ${this.numberToString(e.z)})`:`(${this.numberToString(e.x)}, ${this.numberToString(e.y)})`}static arrayToVector2(e){return e?e instanceof xe?e:Array.isArray(e)&&e.length>=2?new xe(e[0],e[1]):void 0:e}static arrayToVector3(e){return e?e instanceof D?e:Array.isArray(e)&&e.length>=2?new D(e[0],e[1],e.length>2?e[2]:0):void 0:e}static arrayToEuler(e){return e?e instanceof Xn?e:Array.isArray(e)&&e.length>=3?new Xn(e[0],e[1],e[2]):void 0:e}static arrayOrObjectToVector3(e){if(!e)return e;if(e instanceof D)return e;if(e instanceof xe)return new D(e.x,e.y,0);if(Array.isArray(e)&&e.length>=2)return new D(e[0],e[1],e[2]||0);let t=e;return null!=t.x&&null!=t.y?new D(t.x,t.y,t.z||0):void 0}static isVectorValid(e){let t=e&&!isNaN(e.x)&&!isNaN(e.y)&&isFinite(e.x)&&isFinite(e.y);return t&&e instanceof D&&(t=!isNaN(e.z)&&isFinite(e.z)),t}static isBoxValid(e){return e&&!e.isEmpty()&&this.isVectorValid(e.min)&&this.isVectorValid(e.max)}static isMatrixValid(e){let t=e&&e.elements;if(!t||t.length<16)return!1;for(let i=0;i<16;++i){let e=t[i];if(Number.isNaN(e))return!1}return!0}static guid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{let t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}static expandBoxByScale(e,t){let i=new D;e.getCenter(i);let n=(e.max.x-e.min.x)*t,r=(e.max.y-e.min.y)*t,a=(e.max.z-e.min.z)*t,s=new D(i.x-n/2,i.y-r/2,i.z-a/2),o=new D(i.x+n/2,i.y+r/2,i.z+a/2);e.set(s,o)}static expandBoxByMinSize(e,t){let i=new D;e.getCenter(i);let n=e.max.x-e.min.x,r=e.max.y-e.min.y,a=e.max.z-e.min.z;n{i.onload=function(){e(i)}}))}static renderingContextToImage(e,t,i="image/png",n=.8){if(t){let r=Math.max(t.min.x,0),a=Math.max(t.min.y,0),s=Math.max(t.max.x-r,0),o=Math.max(t.max.y-a,0),l=e.getImageData(r,a,s,o),h=document.createElement("canvas");return h.width=s,h.height=o,h.getContext("2d").putImageData(l,0,0),h.toDataURL(i,n)}return e.canvas.toDataURL(i,n)}static printMemory(e){if(Fn.isBrowser){let t=performance.memory;if(!t)return void se.warn("[CommonUtils] performance.memory is not available in this browser");let i=(t.jsHeapSizeLimit/1048576).toFixed(2),n=(t.totalJSHeapSize/1048576).toFixed(2),r=(t.usedJSHeapSize/1048576).toFixed(2);se.info(`[CommonUtils] ${e}. jsHeapSizeLimit: ${i}M , totalJSHeapSize: ${n}M , usedJSHeapSize: ${r}M `)}}static printGpuInfo(e){if(Fn.isBrowser){let t=e.getExtension("webgl_debug_renderer_info"),i=e.getParameter(t.UNMASKED_RENDERER_WEBGL);se.info("[CommonUtils] gpu:",i)}}static sleep(e){return ft(this,null,(function*(){let t;return new Promise((i=>{t=setTimeout((()=>{i("")}),e)})).then((()=>{clearTimeout(t)}))}))}static twinkle(e,t=500){return ft(this,null,(function*(){let i=this.twinklingObjectIds;i[e.id]||(i[e.id]=!0,e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,yield this.sleep(t),e.visible=!e.visible,delete i[e.id])}))}static getUpdateProgressFunc(e){return t=>{e&&e(new ProgressEvent("",{loaded:t,total:100}))}}static getUpdateProgressFuncAsync(e){let t=Date.now();return i=>ft(this,null,(function*(){if(e){e(new ProgressEvent("",{loaded:i,total:100}));let n=500,r=Date.now();r-t>n&&(yield SA.sleep(0),t=r)}}))}static getUpdateProgressFuncForLoop(e,t){let i=Math.round(Math.pow(e,.5)),n=Date.now();return r=>ft(this,null,(function*(){if(t&&(r%i==0||r===e-1)){t(new ProgressEvent("",{loaded:r+1,total:e}));let i=500,a=Date.now();(a-n>i||r===e-1)&&(yield SA.sleep(0),n=a)}}))}static getUpdateSubProgressFunc(e,t,i){let n=!1;return r=>{let a=100*r.loaded/r.total;a=a*(t-e)/100+e,a>t&&(n||(se.warn("[Progress] Invalid ProgressEvent:",r),n=!0),a=t),i&&i(new ProgressEvent(r.type,{loaded:a,total:100}))}}},St=SA;St.twinklingObjectIds={};var MA=(e,t,i)=>{let{default:n,active:r}=t;i?(e.remove(n),e.add(r||n)):(r&&e.remove(r),e.add(n))},An=class{static color2rgba(e){let t,i=[0,0,0,1];if(t=/^(\w+)\(([^)]*)\)/.exec(e)){let n,r=t[1],a=t[2];switch(r){case"rgb":case"rgba":(n=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))&&(i=[Math.min(255,parseInt(n[1],10))/255,Math.min(255,parseInt(n[2],10))/255,Math.min(255,parseInt(n[3],10))/255,Number(n[4]||1)]),(n=/^\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))&&(i=[Math.min(100,parseInt(n[1],10))/100,Math.min(100,parseInt(n[2],10))/100,Math.min(100,parseInt(n[3],10))/100,Number(n[4]||1)]);break;case"hsl":case"hsla":(n=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)%\s*,\s*(\d*\.?\d+)%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))&&(i=[parseFloat(n[1])/360,parseFloat(n[2])/100,parseFloat(n[3])/100,Number(n[4]||1)]);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(t=/^#([A-Fa-f\d]+)$/.exec(e)){let n=t[1],r=n.length;if(3===r)i=[parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,1];else if(6===r){let e=parseInt(n,16);i=[(e>>16&255)/255,(e>>8&255)/255,(255&e)/255,1]}else console.warn("THREE.Color: Invalid hex color "+e)}return i}static rgba2Color(e){return`rgba(${this.to255(e[0])},${this.to255(e[1])},${this.to255(e[2])},${null!=e[3]?e[3]:1})`}static colorStr2Rgba(e){let t=e.replace("rgba(","");t=t.replace(")","");let i=t.split(","),n=[];return n.push(this.to1(parseInt(i[0]))),n.push(this.to1(parseInt(i[1]))),n.push(this.to1(parseInt(i[2]))),null!=i[3]&&n.push(parseFloat(i[3])),n}static rgb2Hex(e){return(this.to255(e[0])<<16)+(this.to255(e[1])<<8)+this.to255(e[2])}static to255(e){let t=Math.max(e,0);return t=Math.min(e,1),255*t}static to1(e){let t=Math.max(e,0);return t=Math.min(e,255),t/255}},an=class{static getScreenCoordinateByEvent(e,t){let i=new xe,{left:n,top:r}=t.getBoundingClientRect();return i.x=e.clientX-n,i.y=e.clientY-r,i}static getScreenCoordinateByTouchEvent(e,t){let i=new xe,{left:n,top:r}=t.getBoundingClientRect();return i.x=e.touches[0].clientX-n,i.y=e.touches[0].clientY-r,i}static world2Screen(e,t,i){let{clientWidth:n,clientHeight:r}=i,a=e.clone(),s=new xe;return a.project(t),s.x=Math.round((.5+a.x/2)*n),s.y=Math.round((.5-a.y/2)*r),s}static worldBBox2Screen(e,t,i){let n=new Mi,r=e.min,a=e.max,s=(e,r,a)=>{let s=new D(e,r,a),o=this.world2Screen(s,t,i);n.expandByPoint(o)};return s(r.x,r.y,r.z),s(r.x,r.y,a.z),s(r.x,a.y,r.z),s(r.x,a.y,a.z),s(a.x,r.y,r.z),s(a.x,r.y,a.z),s(a.x,a.y,r.z),s(a.x,a.y,a.z),n}static screen2World(e,t,i){let n=an.screen2Ndc(e,t,i);return new D(n.x,n.y,1).unproject(t)}static screen2Ndc(e,t,i){let{clientWidth:n,clientHeight:r}=i,a=new xe;return a.x=e.x/n*2-1,a.y=-e.y/r*2+1,a}static world2NormalizedScreen(e,t,i){let n=new D,r=e instanceof xe?0:e.z;n.set(e.x,e.y,r);let a=an.world2Screen(n,t,i);return a.x/=i.clientWidth,a.y/=i.clientHeight,a}},qv=class extends on{constructor(e=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.center=new xe(.5,.5),this.addEventListener("removed",(function(){this.traverse((function(e){e.element instanceof Element&&null!==e.element.parentNode&&e.element.parentNode.removeChild(e.element)}))}))}copy(e,t){return super.copy(e,t),this.element=e.element.cloneNode(!0),this.center=e.center,this}},Gv=new D,dde=new et,fde=new et,pde=new D,mde=new D,Nu=class{constructor(e={}){let t,i,n,r,a=this,s={objects:new WeakMap},o=void 0!==e.element?e.element:document.createElement("div");function l(e,t,i){if(e.isCSS2DObject){Gv.setFromMatrixPosition(e.matrixWorld),Gv.applyMatrix4(fde);let l=!0===e.visible&&Gv.z>=-1&&Gv.z<=1&&!0===e.layers.test(i.layers);if(e.element.style.display=!0===l?"":"none",!0===l){e.onBeforeRender(a,t,i);let s=e.element;s.style.transform="translate("+-100*e.center.x+"%,"+-100*e.center.y+"%)translate("+(Gv.x*n+n)+"px,"+(-Gv.y*r+r)+"px)",s.parentNode!==o&&o.appendChild(s),e.onAfterRender(a,t,i)}let c={distanceToCameraSquared:h(i,e)};s.objects.set(e,c)}for(let n=0,r=e.children.length;ne.toFixed(t===gde["Precision from file"]?2:t),si=!1,VIt=!1,Uu=10,ps=11,ei=12,jv="gemini-viewer-iconfont",zIt="keydown",GIt="keyup",Rf="mousemove",mH="mouseup",gH="mousedown",qIt="Escape",WIt="Enter",jIt="axis-section-plane",XIt="axis-section-plane-control",YIt="section-plane",$It="section-plane-control",ZIt="section-box",vH="plane-section-boxface",vde=-1e3,RA=10,Xv=(e=>(e.ObjectsBoxSection="ObjectsBoxSection",e.PickPlaneSection="PickPlaneSection",e.AxisPlaneSection="AxisPlaneSection",e))(Xv||{}),yde=(e=>(e.Default="Default",e.BoxSelection="BoxSelection",e.PickMarkup="PickMarkup",e))(yde||{}),xde=new D,bde=new D,Ede=new D,Zb=new D,rd=new D,_de=new Zr;function Got(e,t,i,n,r){let a,s,o,l,h,c,u=[],d={},p=Math.pow(10,4),f=0;for(h=0,c=e.length;hy))&&(m=r[d.index1],g=r[d.index2],(!b&&m>65535||g>65535)&&(b=!0),v.push(m),v.push(g));return b?new Uint32Array(v):new Uint16Array(v)}static buildBarycentrics(e){let t=e.getAttribute("position");if(!t||0===t.count)return console.warn(" no positions in geometry !"),!1;let i=Math.pow(10,4),n=Math.cos(20*Rn.DEG2RAD),r=e.getIndex(),a=r?r.count:t.count,s=[0,0,0],o=new Array(3),l=yH.length,h=[];for(let S=0;S0))break;g=new Set;for(let e of m[v])g.add(e.a),g.add(e.b),g.add(e.c);m.splice(v,1),v=0}}let y=new Set;for(let S=0;S{y.has(e)?se.warn(`${e} is already in positionIndexSet !`):y.add(e)}));let x=(e,t)=>{let i=!1,n=d[e];if(!n)return console.warn(`${e} is not in positionIndexHash !`),i;let r=d[t];if(!r)return console.warn(`${t} is not in positionIndexHash !`),i;let a=`${n}_${r}`;if(p[a])i=p[a].outer;else{let e=`${r}_${n}`;p[e]&&(i=p[e].outer)}return i},b=(e,t,i)=>{let n=[];return n.push(x(e,t)),n.push(x(t,i)),n.push(x(i,e)),n.filter((e=>!0===e)).length>=2},_=(e,t)=>{if(!c[e])return se.warn(`${e} position isn't used !`),!0;let i=c[e];for(let r of i){let i=x(e,r),n=h[r];if(!n.inited)continue;let a=Wot(t,n.point);if(i&&!a||!i&&a)return!1}let n=u[e];for(let r of n){let i=t,n=h[r.b],a=h[r.c];if(r.b===e?n=h[r.a]:r.c===e&&(a=h[r.a]),b(r.a,r.b,r.c)&&(n.inited&&i.equals(n.point)||a.inited&&i.equals(a.point)))return!1;if(n.inited&&a.inited&&(rd.addVectors(i,n.point),rd.add(a.point),rd.x+rd.y+rd.z<2))return!1}return!0},w=!1;for(let S=0;S=0;){t=e[i];let n=h[t].inited?h[t].barycentricIndex+1:0;for(;ne(t)))}hasEventListener(e){return!!this.map.get(e)}removeEventListener(e,t){if(!e)return void this.map.clear();if(!t)return void this.map.delete(e);let i=this.map.get(e);i&&i.delete(t)}},ga=class{parse(e,t={}){if(t=Object.assign({decodeSpeed:5,encodeSpeed:5,encoderMethod:ga.MESH_EDGEBREAKER_ENCODING,quantization:[16,8,8,8,8],exportUvs:!0,exportNormals:!0,exportColor:!1},t),void 0===DracoEncoderModule)throw new Error("THREE.DRACOExporter: required the draco_encoder to work.");let i,n,r=e.geometry,a=DracoEncoderModule(),s=new a.Encoder;if(!0===e.isMesh){i=new a.MeshBuilder,n=new a.Mesh;let e=r.getAttribute("position");i.AddFloatAttributeToMesh(n,a.POSITION,e.count,e.itemSize,e.array);let s=r.getIndex();if(null!==s)i.AddFacesToMesh(n,s.count/3,s.array);else{let t=new(e.count>65535?Uint32Array:Uint16Array)(e.count);for(let e=0;e4?i=e.array[r*e.itemSize+t]:(0===t?i=e.getX(r):1===t?i=e.getY(r):2===t?i=e.getZ(r):3===t&&(i=e.getW(r)),!0===e.normalized&&(i=Rn.normalize(i,e.array))),n.min[t]=Math.min(n.min[t],i),n.max[t]=Math.max(n.max[t],i)}return n}function Pde(e){return 4*Math.ceil(e/4)}function EH(e,t=0){let i=Pde(e.byteLength);if(i!==e.byteLength){let n=new Uint8Array(i);if(n.set(new Uint8Array(e)),0!==t)for(let r=e.byteLength;re.toBlob(i,t)));let i;return"image/jpeg"===t?i=.92:"image/webp"===t&&(i=.8),e.convertToBlob({type:t,quality:i})}var _H=class{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.extensionsRequired={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(e){this.plugins=e}write(e,t){return ft(this,arguments,(function*(e,t,i={}){this.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},i),this.options.animations.length>0&&(this.options.trs=!0),this.processInput(e),yield Promise.all(this.pending);let n=this,r=n.buffers,a=n.json;i=n.options;let s=n.extensionsUsed,o=n.extensionsRequired,l=new Blob(r,{type:"application/octet-stream"}),h=Object.keys(s),c=Object.keys(o);if(h.length>0&&(a.extensionsUsed=h),c.length>0&&(a.extensionsRequired=c),a.buffers&&a.buffers.length>0&&(a.buffers[0].byteLength=l.size),!0===i.binary){let e=new FileReader;e.readAsArrayBuffer(l),e.onloadend=function(){let i=EH(e.result),n=new DataView(new ArrayBuffer(Rde));n.setUint32(0,i.byteLength,!0),n.setUint32(4,Zot,!0);let r=EH(Kot(JSON.stringify(a)),32),s=new DataView(new ArrayBuffer(Rde));s.setUint32(0,r.byteLength,!0),s.setUint32(4,$ot,!0);let o=new ArrayBuffer(Mde),l=new DataView(o);l.setUint32(0,Xot,!0),l.setUint32(4,Yot,!0);let h=Mde+s.byteLength+r.byteLength+n.byteLength+i.byteLength;l.setUint32(8,h,!0);let c=new Blob([o,s,r,n,i],{type:"application/octet-stream"}),u=new FileReader;u.readAsArrayBuffer(c),u.onloadend=function(){t(u.result)}}}else if(a.buffers&&a.buffers.length>0){let e=new FileReader;e.readAsDataURL(l),e.onloadend=function(){let i=e.result;a.buffers[0].uri=i,t(a)}}else t(a)}))}serializeUserData(e,t){if(0===Object.keys(e.userData).length)return;let i=this.options,n=this.extensionsUsed;try{let r=JSON.parse(JSON.stringify(e.userData));if(i.includeCustomExtensions&&r.gltfExtensions){void 0===t.extensions&&(t.extensions={});for(let e in r.gltfExtensions)t.extensions[e]=r.gltfExtensions[e],n[e]=!0;delete r.gltfExtensions}Object.keys(r).length>0&&(t.extras=r)}catch(t){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+t.message)}}getUID(e,t=!1){if(!1===this.uids.has(e)){let t=new Map;t.set(!0,this.uid++),t.set(!1,this.uid++),this.uids.set(e,t)}return this.uids.get(e).get(t)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;let t=new D;for(let i=0,n=e.count;i5e-4)return!1;return!0}createNormalizedNormalAttribute(e){let t=this.cache;if(t.attributesNormalized.has(e))return t.attributesNormalized.get(e);let i=e.clone(),n=new D;for(let r=0,a=i.count;r4?n=e.array[u*e.itemSize+i]:(0===i?n=e.getX(u):1===i?n=e.getY(u):2===i?n=e.getZ(u):3===i&&(n=e.getW(u)),!0===e.normalized&&(n=Rn.normalize(n,e.array))),t===Br.FLOAT?l.setFloat32(h,n,!0):t===Br.INT?l.setInt32(h,n,!0):t===Br.UNSIGNED_INT?l.setUint32(h,n,!0):t===Br.SHORT?l.setInt16(h,n,!0):t===Br.UNSIGNED_SHORT?l.setUint16(h,n,!0):t===Br.BYTE?l.setInt8(h,n):t===Br.UNSIGNED_BYTE&&l.setUint8(h,n),h+=a}let c={buffer:this.processBuffer(l.buffer),byteOffset:this.byteOffset,byteLength:o};return void 0!==r&&(c.target=r),r===Br.ARRAY_BUFFER&&(c.byteStride=e.itemSize*a),this.byteOffset+=o,s.bufferViews.push(c),{id:s.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){let t=this,i=t.json;return i.bufferViews||(i.bufferViews=[]),new Promise((function(n){let r=new FileReader;r.readAsArrayBuffer(e),r.onloadend=function(){let e=EH(r.result),a={buffer:t.processBuffer(e),byteOffset:t.byteOffset,byteLength:e.byteLength};t.byteOffset+=e.byteLength,n(i.bufferViews.push(a)-1)}}))}processAccessor(e,t,i,n){let r,a=this.json;if(e.array.constructor===Float32Array)r=Br.FLOAT;else if(e.array.constructor===Int32Array)r=Br.INT;else if(e.array.constructor===Uint32Array)r=Br.UNSIGNED_INT;else if(e.array.constructor===Int16Array)r=Br.SHORT;else if(e.array.constructor===Uint16Array)r=Br.UNSIGNED_SHORT;else if(e.array.constructor===Int8Array)r=Br.BYTE;else{if(e.array.constructor!==Uint8Array)throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: "+e.array.constructor.name);r=Br.UNSIGNED_BYTE}if(void 0===i&&(i=0),void 0===n&&(n=e.count),0===n)return null;let s,o=Qot(e,i,n);void 0!==t&&(s=e===t.index?Br.ELEMENT_ARRAY_BUFFER:Br.ARRAY_BUFFER);let l=this.processBufferView(e,r,i,n,s),h={bufferView:l.id,byteOffset:l.byteOffset,componentType:r,count:n,max:o.max,min:o.min,type:{1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",9:"MAT3",16:"MAT4"}[e.itemSize]};return!0===e.normalized&&(h.normalized=!0),a.accessors||(a.accessors=[]),a.accessors.push(h)-1}processImage(e,t,i,n="image/png"){if(null!==e){let r=this,a=r.cache,s=r.json,o=r.options,l=r.pending;a.images.has(e)||a.images.set(e,{});let h=a.images.get(e),c=n+":flipY/"+i.toString();if(void 0!==h[c])return h[c];s.images||(s.images=[]);let u={mimeType:n},d=Ade();d.width=Math.min(e.width,o.maxTextureSize),d.height=Math.min(e.height,o.maxTextureSize);let p=d.getContext("2d");if(!0===i&&(p.translate(0,d.height),p.scale(1,-1)),void 0!==e.data){t!==Js&&console.error("GLTFExporter: Only RGBAFormat is supported.",t),(e.width>o.maxTextureSize||e.height>o.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);let i=new Uint8ClampedArray(e.height*e.width*4);for(let t=0;tr.processBufferViewImage(e))).then((e=>{u.bufferView=e}))):void 0!==d.toDataURL?u.uri=d.toDataURL(n):l.push(Cde(d,n).then((e=>(new FileReader).readAsDataURL(e))).then((e=>{u.uri=e})));let f=s.images.push(u)-1;return h[c]=f,f}throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(e){let t=this.json;t.samplers||(t.samplers=[]);let i={magFilter:Yo[e.magFilter],minFilter:Yo[e.minFilter],wrapS:Yo[e.wrapS],wrapT:Yo[e.wrapT]};return t.samplers.push(i)-1}processTexture(e){let t=this.options,i=this.cache,n=this.json;if(i.textures.has(e))return i.textures.get(e);n.textures||(n.textures=[]),e instanceof Su&&(e=IA(e,t.maxTextureSize));let r=e.userData.mimeType;"image/webp"===r&&(r="image/png");let a={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,r)};e.name&&(a.name=e.name),this._invokeAll((function(t){t.writeTexture&&t.writeTexture(e,a)}));let s=n.textures.push(a)-1;return i.textures.set(e,s),s}processMaterial(e){let t=this.cache,i=this.json;if(t.materials.has(e))return t.materials.get(e);if(e.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;i.materials||(i.materials=[]);let n={pbrMetallicRoughness:{}};!0!==e.isMeshStandardMaterial&&!0!==e.isMeshBasicMaterial&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");let r=e.color.toArray().concat([e.opacity]);if(Kb(r,[1,1,1,1])||(n.pbrMetallicRoughness.baseColorFactor=r),e.isMeshStandardMaterial?(n.pbrMetallicRoughness.metallicFactor=e.metalness,n.pbrMetallicRoughness.roughnessFactor=e.roughness):(n.pbrMetallicRoughness.metallicFactor=.5,n.pbrMetallicRoughness.roughnessFactor=.5),e.metalnessMap||e.roughnessMap){let t=this.buildMetalRoughTexture(e.metalnessMap,e.roughnessMap),i={index:this.processTexture(t),channel:t.channel};this.applyTextureTransform(i,t),n.pbrMetallicRoughness.metallicRoughnessTexture=i}if(e.map){let t={index:this.processTexture(e.map),texCoord:e.map.channel};this.applyTextureTransform(t,e.map),n.pbrMetallicRoughness.baseColorTexture=t}if(e.emissive){let t=e.emissive;if(Math.max(t.r,t.g,t.b)>0&&(n.emissiveFactor=e.emissive.toArray()),e.emissiveMap){let t={index:this.processTexture(e.emissiveMap),texCoord:e.emissiveMap.channel};this.applyTextureTransform(t,e.emissiveMap),n.emissiveTexture=t}}if(e.normalMap){let t={index:this.processTexture(e.normalMap),texCoord:e.normalMap.channel};e.normalScale&&1!==e.normalScale.x&&(t.scale=e.normalScale.x),this.applyTextureTransform(t,e.normalMap),n.normalTexture=t}if(e.aoMap){let t={index:this.processTexture(e.aoMap),texCoord:e.aoMap.channel};1!==e.aoMapIntensity&&(t.strength=e.aoMapIntensity),this.applyTextureTransform(t,e.aoMap),n.occlusionTexture=t}e.transparent?n.alphaMode="BLEND":e.alphaTest>0&&(n.alphaMode="MASK",n.alphaCutoff=e.alphaTest),e.side===Sr&&(n.doubleSided=!0),""!==e.name&&(n.name=e.name),this.serializeUserData(e,n),this._invokeAll((function(t){t.writeMaterial&&t.writeMaterial(e,n)}));let a=i.materials.push(n)-1;return t.materials.set(e,a),a}processMesh(e){let t=this.cache,i=this.json,n=[e.geometry.uuid];if(Array.isArray(e.material))for(let y=0,x=e.material.length;y0){let i=[],n=[],r={};if(void 0!==e.morphTargetDictionary)for(let t in e.morphTargetDictionary)r[e.morphTargetDictionary[t]]=t;for(let a=0;a0&&(o.extras={},o.extras.targetNames=n)}let f=Array.isArray(e.material);if(f&&0===s.groups.length)return null;let m=f?e.material:[e.material],g=f?s.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let y=0,x=g.length;y0&&(e.targets=c),null!==s.index){let i=this.getUID(s.index);(void 0!==g[y].start||void 0!==g[y].count)&&(i+=":"+g[y].start+":"+g[y].count),t.attributes.has(i)?e.indices=t.attributes.get(i):(e.indices=this.processAccessor(s.index,s,g[y].start,g[y].count),t.attributes.set(i,e.indices)),null===e.indices&&delete e.indices}let i=this.processMaterial(m[g[y].materialIndex]);null!==i&&(e.material=i),h.push(e)}o.primitives=h,i.meshes||(i.meshes=[]),this._invokeAll((function(t){t.writeMesh&&t.writeMesh(e,o)}));let v=i.meshes.push(o)-1;return t.meshes.set(r,v),v}detectMeshQuantization(e,t){if(this.extensionsUsed[bH])return;let i;switch(t.array.constructor){case Int8Array:i="byte";break;case Uint8Array:i="unsigned byte";break;case Int16Array:i="short";break;case Uint16Array:i="unsigned short";break;default:return}t.normalized&&(i+=" normalized");let n=e.split("_",1)[0];wde[n]&&wde[n].includes(i)&&(this.extensionsUsed[bH]=!0,this.extensionsRequired[bH]=!0)}processCamera(e){let t=this.json;t.cameras||(t.cameras=[]);let i=e.isOrthographicCamera,n={type:i?"orthographic":"perspective"};return i?n.orthographic={xmag:2*e.right,ymag:2*e.top,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:n.perspective={aspectRatio:e.aspect,yfov:Rn.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},""!==e.name&&(n.name=e.type),t.cameras.push(n)-1}processAnimation(e,t){let i=this.json,n=this.nodeMap;i.animations||(i.animations=[]);let r=(e=$v.Utils.mergeMorphTargetTracks(e.clone(),t)).tracks,a=[],s=[];for(let o=0;o0){let t=[];for(let n=0,r=e.children.length;n0&&(r.children=t)}this._invokeAll((function(t){t.writeNode&&t.writeNode(e,r)}));let a=t.nodes.push(r)-1;return n.set(e,a),a}processScene(e){let t=this.json,i=this.options;t.scenes||(t.scenes=[],t.scene=0);let n={};""!==e.name&&(n.name=e.name),t.scenes.push(n);let r=[];for(let a=0,s=e.children.length;a0&&(n.nodes=r),this.serializeUserData(e,n)}processObjects(e){let t=new Si;t.name="AuxScene";for(let i=0;i0&&this.processObjects(i);for(let n=0;n0&&(a.range=e.distance)):e.isSpotLight&&(a.type="spot",e.distance>0&&(a.range=e.distance),a.spot={},a.spot.innerConeAngle=(e.penumbra-1)*e.angle*-1,a.spot.outerConeAngle=e.angle),void 0!==e.decay&&2!==e.decay&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),e.target&&(e.target.parent!==e||0!==e.target.position.x||0!==e.target.position.y||-1!==e.target.position.z)&&console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),r[this.name]||(n.extensions=n.extensions||{},n.extensions[this.name]={lights:[]},r[this.name]=!0);let s=n.extensions[this.name].lights;s.push(a),t.extensions=t.extensions||{},t.extensions[this.name]={light:s.length-1}}},wH=class{constructor(e){this.writer=e,this.name="KHR_materials_unlit"}writeMaterial(e,t){if(!e.isMeshBasicMaterial)return;let i=this.writer.extensionsUsed;t.extensions=t.extensions||{},t.extensions[this.name]={},i[this.name]=!0,t.pbrMetallicRoughness.metallicFactor=0,t.pbrMetallicRoughness.roughnessFactor=.9}},SH=class{constructor(e){this.writer=e,this.name="KHR_materials_clearcoat"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.clearcoat)return;let i=this.writer,n=i.extensionsUsed,r={};if(r.clearcoatFactor=e.clearcoat,e.clearcoatMap){let t={index:i.processTexture(e.clearcoatMap),texCoord:e.clearcoatMap.channel};i.applyTextureTransform(t,e.clearcoatMap),r.clearcoatTexture=t}if(r.clearcoatRoughnessFactor=e.clearcoatRoughness,e.clearcoatRoughnessMap){let t={index:i.processTexture(e.clearcoatRoughnessMap),texCoord:e.clearcoatRoughnessMap.channel};i.applyTextureTransform(t,e.clearcoatRoughnessMap),r.clearcoatRoughnessTexture=t}if(e.clearcoatNormalMap){let t={index:i.processTexture(e.clearcoatNormalMap),texCoord:e.clearcoatNormalMap.channel};i.applyTextureTransform(t,e.clearcoatNormalMap),r.clearcoatNormalTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=r,n[this.name]=!0}},MH=class{constructor(e){this.writer=e,this.name="KHR_materials_iridescence"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.iridescence)return;let i=this.writer,n=i.extensionsUsed,r={};if(r.iridescenceFactor=e.iridescence,e.iridescenceMap){let t={index:i.processTexture(e.iridescenceMap),texCoord:e.iridescenceMap.channel};i.applyTextureTransform(t,e.iridescenceMap),r.iridescenceTexture=t}if(r.iridescenceIor=e.iridescenceIOR,r.iridescenceThicknessMinimum=e.iridescenceThicknessRange[0],r.iridescenceThicknessMaximum=e.iridescenceThicknessRange[1],e.iridescenceThicknessMap){let t={index:i.processTexture(e.iridescenceThicknessMap),texCoord:e.iridescenceThicknessMap.channel};i.applyTextureTransform(t,e.iridescenceThicknessMap),r.iridescenceThicknessTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=r,n[this.name]=!0}},RH=class{constructor(e){this.writer=e,this.name="KHR_materials_transmission"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;let i=this.writer,n=i.extensionsUsed,r={};if(r.transmissionFactor=e.transmission,e.transmissionMap){let t={index:i.processTexture(e.transmissionMap),texCoord:e.transmissionMap.channel};i.applyTextureTransform(t,e.transmissionMap),r.transmissionTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=r,n[this.name]=!0}},AH=class{constructor(e){this.writer=e,this.name="KHR_materials_volume"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;let i=this.writer,n=i.extensionsUsed,r={};if(r.thicknessFactor=e.thickness,e.thicknessMap){let t={index:i.processTexture(e.thicknessMap),texCoord:e.thicknessMap.channel};i.applyTextureTransform(t,e.thicknessMap),r.thicknessTexture=t}r.attenuationDistance=e.attenuationDistance,r.attenuationColor=e.attenuationColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=r,n[this.name]=!0}},CH=class{constructor(e){this.writer=e,this.name="KHR_materials_ior"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1.5===e.ior)return;let i=this.writer.extensionsUsed,n={};n.ior=e.ior,t.extensions=t.extensions||{},t.extensions[this.name]=n,i[this.name]=!0}},PH=class{constructor(e){this.writer=e,this.name="KHR_materials_specular"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1===e.specularIntensity&&e.specularColor.equals(jot)&&!e.specularIntensityMap&&!e.specularColorTexture)return;let i=this.writer,n=i.extensionsUsed,r={};if(e.specularIntensityMap){let t={index:i.processTexture(e.specularIntensityMap),texCoord:e.specularIntensityMap.channel};i.applyTextureTransform(t,e.specularIntensityMap),r.specularTexture=t}if(e.specularColorMap){let t={index:i.processTexture(e.specularColorMap),texCoord:e.specularColorMap.channel};i.applyTextureTransform(t,e.specularColorMap),r.specularColorTexture=t}r.specularFactor=e.specularIntensity,r.specularColorFactor=e.specularColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=r,n[this.name]=!0}},IH=class{constructor(e){this.writer=e,this.name="KHR_materials_sheen"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.sheen)return;let i=this.writer,n=i.extensionsUsed,r={};if(e.sheenRoughnessMap){let t={index:i.processTexture(e.sheenRoughnessMap),texCoord:e.sheenRoughnessMap.channel};i.applyTextureTransform(t,e.sheenRoughnessMap),r.sheenRoughnessTexture=t}if(e.sheenColorMap){let t={index:i.processTexture(e.sheenColorMap),texCoord:e.sheenColorMap.channel};i.applyTextureTransform(t,e.sheenColorMap),r.sheenColorTexture=t}r.sheenRoughnessFactor=e.sheenRoughness,r.sheenColorFactor=e.sheenColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=r,n[this.name]=!0}},LH=class{constructor(e){this.writer=e,this.name="KHR_materials_anisotropy"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.anisotropy)return;let i=this.writer,n=i.extensionsUsed,r={};if(e.anisotropyMap){let t={index:i.processTexture(e.anisotropyMap)};i.applyTextureTransform(t,e.anisotropyMap),r.anisotropyTexture=t}r.anisotropyStrength=e.anisotropy,r.anisotropyRotation=e.anisotropyRotation,t.extensions=t.extensions||{},t.extensions[this.name]=r,n[this.name]=!0}},DH=class{constructor(e){this.writer=e,this.name="KHR_materials_emissive_strength"}writeMaterial(e,t){if(!e.isMeshStandardMaterial||1===e.emissiveIntensity)return;let i=this.writer.extensionsUsed,n={};n.emissiveStrength=e.emissiveIntensity,t.extensions=t.extensions||{},t.extensions[this.name]=n,i[this.name]=!0}};$v.Utils={insertKeyframe:function(e,t){let i,n=e.getValueSize(),r=new e.TimeBufferType(e.times.length+1),a=new e.ValueBufferType(e.values.length+n),s=e.createInterpolant(new e.ValueBufferType(n));if(0===e.times.length){r[0]=t;for(let e=0;ee.times[e.times.length-1]){if(Math.abs(e.times[e.times.length-1]-t)<.001)return e.times.length-1;r[r.length-1]=t,r.set(e.times,0),a.set(e.values,0),a.set(s.evaluate(t),e.values.length),i=r.length-1}else for(let o=0;ot){r.set(e.times.slice(0,o+1),0),r[o+1]=t,r.set(e.times.slice(o+1),o+2),a.set(e.values.slice(0,(o+1)*n),0),a.set(s.evaluate(t),(o+1)*n),a.set(e.values.slice((o+1)*n),(o+2)*n),i=o+1;break}}return e.times=r,e.values=a,i},mergeMorphTargetTracks:function(e,t){let i=[],n={},r=e.tracks;for(let a=0;a{if(i.binary){t=mi.addExtention(t,mi.EXTENSION_GLB);let i=e;mi.saveArrayBuffer(i,t)}else t=mi.addExtention(t,mi.EXTENSION_GLTF),mi.saveJson(e,t)}),(e=>console.log(e)),i)}static exportToObj(e,t){if(!e||!t)throw new Error("Invalid input or filename!");t=mi.addExtention(t,mi.EXTENSION_OBJ);let i=(new LA).parse(e);mi.saveString(i,t)}static exportToDraco(e,t,i={}){if(!e||!t)throw new Error("Invalid input or filename!");t=mi.addExtention(t,mi.EXTENSION_DRACO);let n=new ga;i=Object.assign({},{encodeSpeed:5},i);let r=n.parse(e,i);mi.saveArrayBuffer(r,t)}static exportToStl(e,t,i=!1){if(!e||!t)throw new Error("Invalid input or filename!");t=mi.addExtention(t,mi.EXTENSION_STL);let n=new DA;if(i){let i={binary:!0},r=n.parse(e,i);mi.saveDataView(r,t)}else{let i=n.parse(e);mi.saveString(i,t)}}static exportToThreeJsJson(e,t){let i=e.toJSON();t.toLowerCase().endsWith(mi.EXTENSION_JSON)||(t+=mi.EXTENSION_JSON),mi.saveJson(i,t)}static save(e,t){let i=mi.downloadLink;i||(i=document.createElement("a"),i.style.display="none",document.body.appendChild(i),mi.downloadLink=i),i.href=URL.createObjectURL(e),i.download=t,i.click()}static saveArrayBuffer(e,t){mi.save(new Blob([e],{type:"application/octet-stream"}),t)}static saveJson(e,t){mi.saveJsonString(JSON.stringify(e),t)}static saveJsonString(e,t){mi.save(new Blob([e],{type:"application/json"}),t)}static saveString(e,t){mi.save(new Blob([e],{type:"text/plain"}),t)}static saveDataView(e,t){mi.save(new Blob([e],{type:"application/octet-stream"}),t)}static addExtention(e,t){return e.toLowerCase().endsWith(t.toLowerCase())||(e+=t),e}},Af=mi;Af.EXTENSION_GLTF=".gltf",Af.EXTENSION_GLB=".glb",Af.EXTENSION_OBJ=".obj",Af.EXTENSION_DRACO=".drc",Af.EXTENSION_JSON=".json",Af.EXTENSION_STL=".stl";var OA=class{constructor(){this.prevTime=(performance||Date).now(),this.beginTime=(performance||Date).now(),this.frames=0,this.fps=Number.NaN}begin(){this.beginTime=(performance||Date).now()}end(){this.frames++;let e=(performance||Date).now();return e>=this.prevTime+1e3&&(this.fps=Math.round(1e3*this.frames/(e-this.prevTime)),this.frames=0,this.prevTime=e),e}update(){this.beginTime=this.end()}},UH={exports:{}};function NA(e,t,i){i=i||2;var n,r,a,s,o,l,h,c=t&&t.length,u=c?t[0]*i:e.length,d=Fde(e,0,u,i,!0),p=[];if(!d||d.next===d.prev)return p;if(c&&(d=ilt(e,t,d,i)),e.length>80*i){n=a=e[0],r=s=e[1];for(var f=i;fa&&(a=o),l>s&&(s=l);h=0!==(h=Math.max(a-n,s-r))?32767/h:0}return Jb(d,p,i,n,r,h,0),p}function Fde(e,t,i,n,r){var a,s;if(r===BH(e,t,i,n)>0)for(a=t;a=t;a-=n)s=Ide(a,e[a],e[a+1],s);return s&&BA(s,s.next)&&(eE(s),s=s.next),s}function Fm(e,t){if(!e)return e;t||(t=e);var i,n=e;do{if(i=!1,n.steiner||!BA(n,n.next)&&0!==Qi(n.prev,n,n.next))n=n.next;else{if(eE(n),(n=t=n.prev)===n.next)break;i=!0}}while(i||n!==t);return t}function Jb(e,t,i,n,r,a,s){if(e){!s&&a&&clt(e,n,r,a);for(var o,l,h=e;e.prev!==e.next;)if(o=e.prev,l=e.next,a?tlt(e,n,r,a):elt(e))t.push(o.i/i|0),t.push(e.i/i|0),t.push(l.i/i|0),eE(e),e=l.next,h=l.next;else if((e=l)===h){s?1===s?Jb(e=nlt(Fm(e),t,i),t,i,n,r,a,2):2===s&&rlt(e,t,i,n,r,a):Jb(Fm(e),t,i,n,r,a,1);break}}}function elt(e){var t=e.prev,i=e,n=e.next;if(Qi(t,i,n)>=0)return!1;for(var r=t.x,a=i.x,s=n.x,o=t.y,l=i.y,h=n.y,c=ra?r>s?r:s:a>s?a:s,p=o>l?o>h?o:h:l>h?l:h,f=n.next;f!==t;){if(f.x>=c&&f.x<=d&&f.y>=u&&f.y<=p&&Zv(r,o,a,l,s,h,f.x,f.y)&&Qi(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function tlt(e,t,i,n){var r=e.prev,a=e,s=e.next;if(Qi(r,a,s)>=0)return!1;for(var o=r.x,l=a.x,h=s.x,c=r.y,u=a.y,d=s.y,p=ol?o>h?o:h:l>h?l:h,g=c>u?c>d?c:d:u>d?u:d,v=FH(p,f,t,i,n),y=FH(m,g,t,i,n),x=e.prevZ,b=e.nextZ;x&&x.z>=v&&b&&b.z<=y;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&Zv(o,c,l,u,h,d,x.x,x.y)&&Qi(x.prev,x,x.next)>=0||(x=x.prevZ,b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&Zv(o,c,l,u,h,d,b.x,b.y)&&Qi(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;x&&x.z>=v;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&Zv(o,c,l,u,h,d,x.x,x.y)&&Qi(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;b&&b.z<=y;){if(b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&Zv(o,c,l,u,h,d,b.x,b.y)&&Qi(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function nlt(e,t,i){var n=e;do{var r=n.prev,a=n.next.next;!BA(r,a)&&Nde(r,n,n.next,a)&&Qb(r,a)&&Qb(a,r)&&(t.push(r.i/i|0),t.push(n.i/i|0),t.push(a.i/i|0),eE(n),eE(n.next),n=e=a),n=n.next}while(n!==e);return Fm(n)}function rlt(e,t,i,n,r,a){var s=e;do{for(var o=s.next.next;o!==s.prev;){if(s.i!==o.i&&dlt(s,o)){var l=Bde(s,o);return s=Fm(s,s.next),l=Fm(l,l.next),Jb(s,t,i,n,r,a,0),void Jb(l,t,i,n,r,a,0)}o=o.next}s=s.next}while(s!==e)}function ilt(e,t,i,n){var r,a,s,o=[];for(r=0,a=t.length;r=n.next.y&&n.next.y!==n.y){var o=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(o<=r&&o>s&&(s=o,i=n.x=n.x&&n.x>=c&&r!==n.x&&Zv(ai.x||n.x===i.x&&llt(i,n)))&&(i=n,d=l)),n=n.next}while(n!==h);return i}function llt(e,t){return Qi(e.prev,e,t.prev)<0&&Qi(t.next,e,e.next)<0}function clt(e,t,i,n){var r=e;do{0===r.z&&(r.z=FH(r.x,r.y,t,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,ult(r)}function ult(e){var t,i,n,r,a,s,o,l,h=1;do{for(i=e,e=null,a=null,s=0;i;){for(s++,n=i,o=0,t=0;t0||l>0&&n;)0!==o&&(0===l||!n||i.z<=n.z)?(r=i,i=i.nextZ,o--):(r=n,n=n.nextZ,l--),a?a.nextZ=r:e=r,r.prevZ=a,a=r;i=n}a.nextZ=null,h*=2}while(s>1);return e}function FH(e,t,i,n,r){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function hlt(e){var t=e,i=e;do{(t.x=(e-s)*(a-o)&&(e-s)*(n-o)>=(i-s)*(t-o)&&(i-s)*(a-o)>=(r-s)*(n-o)}function dlt(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!flt(e,t)&&(Qb(e,t)&&Qb(t,e)&&plt(e,t)&&(Qi(e.prev,e,t.prev)||Qi(e,t.prev,t))||BA(e,t)&&Qi(e.prev,e,e.next)>0&&Qi(t.prev,t,t.next)>0)}function Qi(e,t,i){return(t.y-e.y)*(i.x-t.x)-(t.x-e.x)*(i.y-t.y)}function BA(e,t){return e.x===t.x&&e.y===t.y}function Nde(e,t,i,n){var r=FA(Qi(e,t,i)),a=FA(Qi(e,t,n)),s=FA(Qi(i,n,e)),o=FA(Qi(i,n,t));return!!(r!==a&&s!==o||0===r&&kA(e,i,t)||0===a&&kA(e,n,t)||0===s&&kA(i,e,n)||0===o&&kA(i,t,n))}function kA(e,t,i){return t.x<=Math.max(e.x,i.x)&&t.x>=Math.min(e.x,i.x)&&t.y<=Math.max(e.y,i.y)&&t.y>=Math.min(e.y,i.y)}function FA(e){return e>0?1:e<0?-1:0}function flt(e,t){var i=e;do{if(i.i!==e.i&&i.next.i!==e.i&&i.i!==t.i&&i.next.i!==t.i&&Nde(i,i.next,e,t))return!0;i=i.next}while(i!==e);return!1}function Qb(e,t){return Qi(e.prev,e,e.next)<0?Qi(e,t,e.next)>=0&&Qi(e,e.prev,t)>=0:Qi(e,t,e.prev)<0||Qi(e,e.next,t)<0}function plt(e,t){var i=e,n=!1,r=(e.x+t.x)/2,a=(e.y+t.y)/2;do{i.y>a!=i.next.y>a&&i.next.y!==i.y&&r<(i.next.x-i.x)*(a-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==e);return n}function Bde(e,t){var i=new NH(e.i,e.x,e.y),n=new NH(t.i,t.x,t.y),r=e.next,a=t.prev;return e.next=t,t.prev=e,i.next=r,r.prev=i,n.next=i,i.prev=n,a.next=n,n.prev=a,n}function Ide(e,t,i,n){var r=new NH(e,t,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function eE(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function NH(e,t,i){this.i=e,this.x=t,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function BH(e,t,i,n){for(var r=0,a=t,s=i-n;a0&&(n+=e[r-1].length,i.holes.push(n))}return i};var E3t=UH.exports;function Lde(e,t,i){return e[0]=t[0]-i[0],e[1]=t[1]-i[1],e[2]=t[2]-i[2],e}function mlt(e,t){var i=t[0],n=t[1],r=t[2],a=Math.sqrt(i*i+n*n+r*r)||1;return e[0]=i/a,e[1]=n/a,e[2]=r/a,e}function glt(e,t,i){var n=t[0],r=t[1],a=t[2],s=i[0],o=i[1],l=i[2];return e[0]=r*l-a*o,e[1]=a*s-n*l,e[2]=n*o-r*s,e}function vlt(e,t){function i(e,t,i,n){e[0]=t,e[1]=i,e[2]=n}for(var n=[],r=[],a=[],s=[],o=[],l=[],h=e.length,c=new Float32Array(t.length),u=0;u0&&(d=(d=d.map((function(e){return e}))).reverse());for(var p=0,f=d.length-1;p0}var HH=1e-15,Hde=(new et).set(0,0,-1,0,1,0,0,0,0,1,0,0,0,0,0,1),Vde=(new et).set(0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1),Zt=class{static roundNumber(e,t){return Math.round(e*Math.pow(10,t))/Math.pow(10,t)}static floorNumber(e,t){return Math.floor(e*Math.pow(10,t))/Math.pow(10,t)}static areNumbersEqual(e,t,i=1e-7){return Math.abs(e-t){let i=e.attributes[t];if(i instanceof co){let n=i.clone();e.attributes[t]=n}}))}static isPointInPolygon(e,t,i=!1){let n=e.x,r=e.y,a=!1,s=t.length;for(let o=0,l=s-1;or!=c>r;i&&(u=s>=r!=c>=r),u&&n<(h-e)*(r-s)/(c-s)+e&&(a=!a)}return a}static caculateGeometryCenter(e){if(!e.hasAttribute("position"))return null;let t=e.getAttribute("position");if(0===t.count)return null;let i=new D,n=t.itemSize,r=t.array,a=[0,0,0];for(let s=0;s0&&i<0||n<0&&i>0)return!1;i=n}}return!0}static areLineSegmentsIntersecting(e,t){let{start:i,end:n}=e,{start:r,end:a}=t,s=r.clone().sub(i),o=n.clone().sub(i),l=a.clone().sub(i),h=s.cross(o).dot(l.cross(o)),c=i.clone().sub(r),u=a.clone().sub(r),d=n.clone().sub(r),p=c.cross(u).dot(d.cross(u));return h<0&&p<0}static getLineSegmentsIntersectingPoint(e,t){let{start:i,end:n}=e,{start:r,end:a}=t,s=qde.subVectors(n,i).normalize(),o=Wde.subVectors(a,r).normalize();if(1===s.dot(o))return null;let l=jde.subVectors(r,i),h=s.clone().cross(o),c=l.clone().cross(o),u=l.clone().dot(h);if(u>=1e-5||u<=-1e-5)return null;let d=h.lengthSq();if(Zt.areNumbersEqual(0,d))return;let p=c.clone().dot(h)/d,f=i.clone().add(s.multiplyScalar(p));return f.equals(i)||f.equals(n)?null:f}static isPointOnLineSegment(e,t,i=.001){let{start:n,end:r}=t,a=qde.subVectors(n,r).length(),s=Wde.subVectors(e,n).length(),o=jde.subVectors(e,r).length();return Math.abs(a-(s+o))<=i}static isPointOnLineSegments(e,t,i=.001){let n=!1;for(let r=0;r{i?t.add(e):(t.x+=e.x,t.y+=e.y)})),t.divideScalar(e.length);let n=!1;if(Qt.shouldRebasePositionOnRTC(t)){n=!0;for(let n=0;nVH||Math.abs(e.y)>VH||e instanceof D&&Math.abs(e.z)>VH}static calculateSurfaceArea(e){let t=0,i=e.getAttribute("position"),n=e.index;if(n)for(let r=0;r2&&(a=t?2*r:2*r-2);let s=new n(a),o=0;for(let l=0;l0&&l{let i=e.geometry.attributes.position.array;return e.localToWorld(new D(i[3*t],i[3*t+1],i[3*t+2]))};e.updateWorldMatrix(!0,!1);let s=(null==(i=e.geometry.getIndex())?void 0:i.array)||[],o=null!=(n=s[t])?n:t,l=null!=(r=s[t+1])?r:t+1;return[a(o),a(l)]}static arePolygonsIntersect(e,t){if(0===e.length||0===t.length||(zde.setFromPoints(e),Gde.setFromPoints(t),!zde.intersectsBox(Gde)))return!1;for(let i=0;i1-r)return;let o=t.y-e.y,l=e.x-t.x,h=o*e.x+l*e.y,c=n.y-i.y,u=i.x-n.x,d=c*i.x+u*i.y,p=o*u-c*l;return Math.abs(p){i.push([e.x,e.y])}));try{let{indices:e,position:n}=Ude([i],{lineWidth:t,depth:1}),r=new Dt;return r.setAttribute("position",new Bt(n,3)),r.setIndex(Array.from(e)),r}catch(e){return}}static releaseGeometryManually(e){e.index=null,e.attributes={}}static getAdjacentNonRepeatPoints(e,t=1e-7){let i=[],n=e.length;for(let r=0;r0){let e=[];return i.forEach((i=>{e.push(this.clonedHighlightMaterial(i,t))})),e}if(i instanceof yr)return this.clonedHighlightMaterial(i,t);console.warn(`[MaterialUtils] Invalid material: ${i}`)}static clonedHighlightMaterial(e,t={}){let{depthTest:i,highlightColor:n=new ct(583902),opacity:r=.7}=t,a=e.clone();return this.setMaterialColor(a,n),a.opacity=r,a.transparent=!0,void 0!==i&&(a.depthTest=i,a.side=Sr),a}static cloneMaterial(e){if(!e)return e;if(Array.isArray(e)){let t=[];return e.forEach((e=>{t.push(e.clone())})),t}return e.clone()}static getMaterialColor(e){let t=new ct(16777215);return e instanceof bi||e instanceof Gn||e instanceof ln?t=e.color:e instanceof cn&&e.uniforms.u_color&&(t=e.uniforms.u_color.value),t}static setMaterialColor(e,t){var i,n,r;let a=e;null==(i=a.color)||i.set(t),null==(n=a.emissive)||n.set(t),null!=(r=a.uniforms)&&r.u_color&&a.uniforms.u_color.value.set(t)}static cloneMaterials(e){let t=new Map;e.traverse((e=>{e.material&&(e.material=(e=>{let i;return Array.isArray(e)?(i=[],e.forEach((e=>{if(t.has(e))i.push(t.get(e));else{let n=e.clone();t.set(e,n),i.push(n)}}))):e&&(t.has(e)?i=t.get(e):(i=e.clone(),t.set(e,i))),i})(e.material))}))}};function Ui(e,t=!1){let i=null!==e[0].index,n=new Set(Object.keys(e[0].attributes)),r=new Set(Object.keys(e[0].morphAttributes)),a={},s={},o=e[0].morphTargetsRelative,l=new Dt,h=0;for(let c=0;c0){e.matrixWorld||(e.matrixWorld=new et),e.matrixWorld.copy(e.matrix),i&&e.matrixWorld.premultiply(i);let n=e.children;for(let i=0,r=n.length;i{r.find((t=>t.id===e.id))||(r.push({id:e.id,opacity:e.opacity,transparent:e.transparent,side:e.side}),e.opacity*=t,e.transparent=!0,e.side=Sr)},s=e=>{let i=r.find((t=>t.id===e.id));if(!i){let i=e.clone();return r.push({id:e.id,opacity:e.opacity,transparent:e.transparent,side:e.side,material:e,clonedMaterial:i}),i.opacity*=t,i.transparent=!0,i}return i.clonedMaterial};return e.traverse((e=>{if((!n||-1===n.indexOf(e.id))&&(!i||-1!==i.indexOf(e.id))&&e instanceof xt){let t=e;if(i||n){if(Array.isArray(t.material)){let e=[];t.material.forEach((t=>{let i=s(t);i&&e.push(i)})),t.material=e}else if(t.material){let e=s(t.material);e&&(t.material=e)}}else if(Array.isArray(t.material))t.material.forEach((e=>{a(e)}));else if(t.material){let e=t.material;a(e)}}})),r}static revertObjectOpacity(e,t,i,n){let r=new Set,a=e=>{if(!e||null==e.id||r.has(e.id))return;r.add(e.id);let i=t.find((t=>t.id===e.id));i&&(e.opacity=i.opacity,e.transparent=i.transparent,e.side=i.side,0===e.opacity&&se.warn(`[ObjectUtils] Material '${e.name}'s opacity is 0, you may not be able to see your objects!`))},s=e=>{let i=t.find((t=>t.clonedMaterial&&t.clonedMaterial.id===e.id));if(i)return i.material};e.traverse((e=>{if((!n||-1===n.indexOf(e.id))&&(!i||-1!==i.indexOf(e.id))&&e instanceof xt)if(Array.isArray(e.material)){let t=[];e.material.forEach((e=>{let i=s(e);i?t.push(i):a(e)})),e.material=t}else if(e.material){let t=s(e.material);t?e.material=t:a(e.material)}}))}static setObjectOpacityById(e,t,i=.3,n,r){let a=e.getObjectById(t);if(!a)throw new Error(`Failed to find object by id: ${t}`);return Rc.setObjectOpacity(a,i,n,r)}static revertObjectOpacityById(e,t,i,n,r){let a=e.getObjectById(t);if(!a)throw new Error(`Failed to find object by id: ${t}`);Rc.revertObjectOpacity(a,i,n,r)}static applyMaterialToObject(e,t,i,n){e.traverse((e=>{n&&-1!==n.indexOf(e.id)||i&&-1===i.indexOf(e.id)||e instanceof xt&&(e.userData.originalMaterial||(e.userData.originalMaterial=e.material),e.material=t)}))}static revertAppliedMaterialToObject(e,t,i){e.traverse((e=>{i&&-1!==i.indexOf(e.id)||t&&-1===t.indexOf(e.id)||e.userData.originalMaterial&&(e.material=e.userData.originalMaterial,e.userData.originalMaterial=void 0)}))}static applyMaterialToObjectById(e,t,i,n,r){let a=e.getObjectById(t);if(!a)throw new Error(`Failed to find object by id: ${t}`);this.applyMaterialToObject(a,i,n,r)}static revertAppliedMaterialToObjectById(e,t,i,n){let r=e.getObjectById(t);if(!r)throw new Error(`Failed to find object by id: ${t}`);this.revertAppliedMaterialToObject(r,i,n)}static applyOpacityMaterialToObject(e,t,i){let n=new ln({color:0,transparent:!0,opacity:.05});this.applyMaterialToObject(e,n,t,i)}static setWireframeMode(e){let t=new ln({color:16732160,wireframe:!0,transparent:!0,opacity:.8});e.traverseVisible((e=>{if(e instanceof xt){let i=e;i.userData.materialForWireframe=i.material,i.material=t}}))}static setWireframeModeById(e,t){let i=e.getObjectById(t);if(!i)throw new Error(`Failed to find object by id: ${t}`);Rc.setWireframeMode(i)}static revertWireframeMode(e){e.traverseVisible((e=>{e instanceof xt&&e.userData.materialForWireframe&&(e.material=e.userData.materialForWireframe,e.userData.materialForWireframe=void 0)}))}static revertWireframeModeById(e,t){let i=e.getObjectById(t);if(!i)throw new Error(`Failed to find object by id: ${t}`);Rc.revertWireframeMode(i)}static findInner(e,t,i=[],n=!1){let r=t.toLowerCase(),a=[],s=e=>-1!==e.toLowerCase().indexOf(r),o=e=>-1!==e.toString().indexOf(r),l=e=>{if(e.name&&-1!==e.name.toLowerCase().indexOf(r))return!0;if(e.gltfExtensions){let t=e.gltfExtensions,i=t.objectId&&t.objectId.Value||t.elementId&&t.elementId.Value;if(i&&-1!==i.toLowerCase().indexOf(r))return!0}return!1};if(i.length>0)for(let h=0;h{(s(e.name)||o(e.id)||l(e.userData))&&a.push(e)})),n&&a.length>0)return[a[0]]}else if(e.traverse((e=>{(s(e.name)||o(e.id)||l(e.userData))&&a.push(e)})),n&&a.length>0)return[a[0]];return a}static find(e,t,i=[],n=!1){return this.findInner(e,t,i,n)}static findFirst(e,t,i=[],n=!1){let r=this.findInner(e,t,i,n);if(r.length>0)return r[0]}static getFloorsFromString(e){let t=[],i=new RegExp(/(?:-?(?:\d+(?:\.5)?)F)(?=\W|$)/,"g").exec(e);return i&&i.length>0&&i.forEach((e=>{if(e){let i=e.replace("F",""),n=Number(i);n?t.push(n):console.log(`[OU] invalid floor: ${e}`)}})),t}static matchFloor(e,t){return-1!==this.getFloorsFromString(e).findIndex((e=>e===t))}static matchFloors(e,t){return-1!==this.getFloorsFromString(e).findIndex((e=>-1!==t.findIndex((t=>t===e))))}static distinctFloors(e,t){let i=[],n=e=>{this.getFloorsFromString(e).forEach((e=>{i[e]=!0}))};return t.forEach((t=>{let i=e.getObjectById(t);i&&i.traverse((e=>{if(n(e.name),e.userData.gltfExtensions){let t=e.userData.gltfExtensions;t.level&&t.level.Value&&n(t.level.Value)}}))})),Object.keys(i).sort()}static traverseObjectByFloors(e,t,i,n,r){let a=e.getObjectById(t);if(!a)return[];a.traverse((e=>{let t=this.matchFloors(e.name,i);if(!t&&e.userData&&e.userData.gltfExtensions){let n=e.userData.gltfExtensions;n.level&&n.level.Value&&(t=this.matchFloors(n.level.Value,i))}t&&n&&n(e),!t&&r&&r(e)}))}static setVisibleForFloors(e,t,i,n=!0){this.traverseObjectByFloors(e,t,i,(e=>{let t=e;for(;t;)t.visible=!0,t=t.parent||void 0}),(e=>{n&&(e.visible=!1)}))}static revertVisibleForFloors(e){e.traverse((e=>{e.visible=!0}))}static revertVisibleForFloorsById(e,t){let i=this.getObjectById(e,t);this.revertVisibleForFloors(i)}static getObjectById(e,t){let i=e.getObjectById(t);if(!i)throw new Error(`Failed to find object by id: ${t}`);return i}static createOutlines(e){return ft(this,arguments,(function*(e,t={onlyVisible:!0,meshOnly:!0},i){if(!e)return[];if(0===e.children.length&&(t.onlyVisible&&!e.visible||t.meshOnly&&!(e instanceof xt)))return[];let n=[],r=e,a=r.children.length,s=Math.round(Math.pow(a,.5)),o=St.getUpdateProgressFuncAsync(i);for(let l=a-1;l>=0;--l){let e,o=a-l-1;if(i&&(o%s==0||0===o||o===a-1)){let t=90*o/a,n=90*(o+1)/a;e=St.getUpdateSubProgressFunc(t,n,i)}let h=r.children[l],c=yield this.createOutlines(h,t,e);n.push(...c)}if(!r.geometry)return yield o(100),n;if(r instanceof xt&&!this.hasOutline(r,!1)){yield o(50);let e=this.createOutline(r.geometry);r.add(e),e.updateWorldMatrix(!0,!1),n.push(e)}return yield o(100),n}))}static removeOutlines(e){if(e&&Array.isArray(e.children))for(let t=e.children.length-1;t>=0;--t){let i=e.children[t];i.children.length>0&&this.removeOutlines(i),i.userData.isOutline&&e.remove(i)}}static hasOutline(e,t=!0){let i=!1;for(let n=0;n0&&(i=this.hasOutline(r),i))break}return i}static setOutlinesVisibility(e,t){e.traverse((e=>{e.userData.isOutline&&(e.visible=t)}))}static createOutline(e,t=this.OUTLINE_MATERIAL,i){let n=new Au(e,10),r=new qr(n,t);return r.layers.enableAll(),Rc.disableLayerChannels(r,[12,11]),r.userData.isOutline=!0,r.matrixAutoUpdate=!1,i&&r.applyMatrix4(i),r}static cloneObject(e,t=!0){let i=e.clone();return t&&i.traverse((e=>{(e instanceof xt||e instanceof fr)&&(e.material=es.cloneMaterial(e.material))})),i}static createBox(e,t,i,n=Rc.BOX_FACE_MATERIAL,r=!0){let a=[],s=(e,t,i)=>{a.push(new D(e,t,i))};s(0,0,0),s(e,0,0),s(e,t,0),s(0,t,0),s(0,0,i),s(e,0,i),s(e,t,i),s(0,t,i);let o=new Dt;o.setFromPoints(a);let l=[0,3,2,0,2,1,4,6,7,4,5,6,0,7,3,0,4,7,3,6,2,3,7,6,1,6,5,1,2,6];return r&&l.push(0,5,4,0,1,5),o.setIndex(l),o.computeVertexNormals(),new xt(o,n)}static rebaseObjectOnRTC(e){let t=e;if(!((t.isMesh||t.isLine||t.isPoints)&&t.geometry&&t.geometry instanceof Dt))return e;let i=t.geometry;if(!i.hasAttribute("position"))return e;let n=i.getAttribute("position");if(0===n.count)return e;let r=n.itemSize,a=n.array,s=[];for(let h=0;h2?s[2]:0);let l=e.matrixAutoUpdate;return e.matrixAutoUpdate=!1,e.applyMatrix4(o),e.matrixAutoUpdate=l,e}static isEmptyObject(e){if(0===e.children.length){let t=e.geometry;if(!t||!t.hasAttribute("position")||0===t.getAttribute("position").count)return!0}return!1}static removeEmptyObjects(e){for(let t=0;t{e.removeFromParent()})),this.removeEmptyObjects(t))}static setSharedVariablesOfObject(e){e.uuid="",e.up=Mlt;let t=e;t.material&&(Array.isArray(t.material)?t.material.forEach((e=>{e.uuid&&(e.uuid="")})):t.material.uuid&&(t.material.uuid=""))}static isLeafObject(e){return(e instanceof xt||e instanceof fr||e instanceof ii)&&!!e.geometry}static enableLayerChannels(e,t,i=!0){for(let n=0,r=t.length;n0){this.mergeInner(i,t);continue}if(i.isInstancedMesh||!i.geometry||!(i.geometry instanceof Dt))continue;let a=!1,s=Object.values(n);for(let t=s.length-1;t>=0;--t){let i=s[t].indexes[0];if(a=this.tryHandleMergeableObjects(e,h,i,n,r),a)break}for(let t=r.length-1;!a&&t>=0;--t){let i=r[t];if(a=this.tryHandleMergeableObjects(e,h,i,n,r),a)break}a||r.push(h)}if(Object.keys(n).length<=0)return;let a=[],s=[],o=[],l=[];Object.values(n).forEach((i=>{let n,r=i.indexes,h=e.children[r[0]],c=[],u=0,d=0,p=0,f=[];if(r.forEach((i=>{var n,r,a;let s=e.children[i],o=s.geometry.clone();if(o.applyMatrix4(s.matrix),Qt.tryConvertInterleavedBufferAttributes(o),o.userData.isLineSegments=!0===s.isLineSegments,c.push(o),t){let e=s.name,t=null==(r=null==(n=o.attributes)?void 0:n.position)?void 0:r.count,i=(null==(a=o.index)?void 0:a.count)||0,l={batchId:u,name:e,positionStart:d,positionCount:t,indexStart:p,indexCount:i};0!==Object.keys(s.userData).length&&(l.userData=s.userData),f.push(l),d+=t,p+=i,u++}})),0!==c.length){if(h.isMesh){let e=Ui(c);if(!e)return;e.userData={},n=new xt(e,h.material),a.push(n)}else if(h.isLine){let e=this.mergeLineGeometries(c,t,h.material instanceof Iu||h.material instanceof cn,f);if(!e)return;n=new qr(e,h.material),s.push(n)}else if(h.isPoints){let e=Ui(c);if(!e)return;e.userData={},n=new ii(e,h.material),o.push(n)}n&&(t?n.userData.batches=f:(n.userData=h.userData,n.userData.batches=void 0),n.userData.layerName=h.userData.layerName,n.name=`[Merged] ${h.name}`,n.matrixAutoUpdate=!1,n.renderOrder=h.renderOrder,n.layers.mask=h.layers.mask,n.visible=h.visible,l.push(...r)),c.forEach((e=>{e.dispose(),Qt.releaseGeometryManually(e)})),c=[]}})),l.sort(((e,t)=>t-e)),l.forEach((t=>{let i=e.children[t];e.remove(i)})),[...a,...s,...o].forEach((t=>{e.add(t)})),e.updateMatrix(),this.mergeInfo.removedObjects+=l.length,this.mergeInfo.mergedMeshes+=a.length,this.mergeInfo.mergedLines+=s.length,this.mergeInfo.mergedPoints+=o.length}static tryHandleMergeableObjects(e,t,i,n,r){let a=!1,s=Array.isArray(e),o=s?e.length:e.children.length;if(t===i||t>=o||i>=o)return a;let l=s?e[t]:e.children[t],h=s?e[i]:e.children[i];return this.areObjectsMergeable(l,h)&&this.areGeometriesMergeable(l.geometry,h.geometry)&&es.materialsEquals(l.material,h.material)&&(n[i]||(n[i]={indexes:[i]},this.removeFromArray(r,i)),n[i].indexes.push(t),a=!0),a}static deepMerge(e,t,i=!0,n=!0,r=!0){let a={added:[],removed:[]};if(e.length<=1)return a;let s=Date.now(),o={},l=[];for(let m=0;m=0;--r){let t=n[r].indexes[0];if(i=this.tryHandleMergeableObjects(e,m,t,o,l),i)break}for(let r=l.length-1;!i&&r>=0;--r){let t=l[r];if(i=this.tryHandleMergeableObjects(e,m,t,o,l),i)break}i||l.push(m)}if(Object.keys(o).length<=0)return a;se.debug(`[Merge] Built merged indexes for ${e.length} objects in ${(Date.now()-s)/1e3}s`),s=Date.now();let h=[],c=[],u=[],d=[];Object.values(o).forEach((i=>{let n=i.indexes;if(n.length<2)return;let a,s=e[n[0]],o=[],l=0,p=0,f=0,m=[];if(n.forEach((i=>{var n,a,h;let c=e[i],u=c.geometry.clone();if(s.material instanceof Gn&&u.deleteAttribute("lineDistance"),this.applyMatrix(u,c,t),u.userData.isLineSegments=!0===c.isLineSegments,o.push(u),r){let e,t=c.name,i=null==(a=null==(n=u.attributes)?void 0:n.position)?void 0:a.count,r=(null==(h=u.index)?void 0:h.count)||0;s.isLine&&(u.boundingSphere||u.computeBoundingSphere(),e=u.boundingSphere.clone());let o={batchId:l,name:t,positionStart:p,positionCount:i,indexStart:f,indexCount:r,boundingSphere:e};0!==Object.keys(c.userData).length&&(o.userData=c.userData),m.push(o),p+=i,f+=r,l++}})),0!==o.length){if(s.isMesh){let e=Ui(o);if(!e)return;e.userData={},a=new xt(e,s.material),h.push(a)}else if(s.isLine){let e=this.mergeLineGeometries(o,r,s.material instanceof Iu||s.material instanceof cn,m);if(!e)return;a=new qr(e,s.material),c.push(a)}else if(s.isPoints){let e=Ui(o);if(!e)return;e.userData={},a=new ii(e,s.material),u.push(a)}a&&(r?a.userData.batches=m:(a.userData=s.userData,a.userData.batches=void 0),a.userData.layerName=s.userData.layerName,a.name=`[Merged] ${s.name}`,a.matrixAutoUpdate=!1,a.renderOrder=s.renderOrder,a.layers.mask=s.layers.mask,a.visible=s.visible,n.forEach((e=>d.push(e)))),o.forEach((e=>{e.dispose(),Qt.releaseGeometryManually(e)})),o=[]}})),se.debug(`[Merge] Ran deepMerge() in ${(Date.now()-s)/1e3}s`);let p=a.removed;d.forEach((t=>{let n=e[t];p.push(n),i&&n.removeFromParent()}));let f=a.added;return[...h,...c,...u].forEach((e=>{f.push(e),i&&t&&(t.add(e),e.updateWorldMatrix(!1,!1))})),this.mergeInfo.removedObjects+=d.length,this.mergeInfo.mergedMeshes+=h.length,this.mergeInfo.mergedLines+=c.length,this.mergeInfo.mergedPoints+=u.length,n&&t&&Hn.removeEmptyObjects(t),a}static applyMatrix(e,t,i){let n=t;for(UA.identity();n&&n!==i&&(UA.premultiply(n.matrix),n.parent);)n=n.parent;return UA.equals(Rlt)?e:e.applyMatrix4(UA)}static mergeLineGeometries(e,t,i,n){let r;if(i)r=HA.mergeBufferGeometriesWithLinesToLineSegments(e,t,n);else{if(r=Ui(e),!r)return;r.userData={};let i=[],a=0;e.forEach(((e,r)=>{let s=e.attributes.position;if(!s)return;let o=e.index,l=!0===e.userData.isLineSegments,h=i.length;if(o)for(let t=0;t0&&i.push(a+o.array[t-1],a+e)}else for(let t=0;t0&&(l?t%2==1&&i.push(a+t-1,a+t):i.push(a+t-1,a+t));a+=s.count,t&&n&&(n[r].indexStart=h,n[r].indexCount=i.length-h)})),r.setIndex(i)}return r}static mergeBufferGeometriesWithLinesToLineSegments(e,t,i){let n=new Set(Object.keys(e[0].attributes)),r={},a=new Dt,s=[],o=0;for(let l=0;l=0;--i)if(e[i]===t)return void e.splice(i,1)}static removeObjectFromArray(e,t){for(let i=e.length-1;i>=0;--i)if(e[i]===t)return void e.splice(i,1)}static areGeometriesMergeable(e,t){if(!e||!t||"InstancedBufferGeometry"===e.type||"InstancedBufferGeometry"===t.type||!!e.index!=!!t.index)return!1;let i=Object.keys(e.attributes);if(i.length!==Object.keys(t.attributes).length)return!1;for(let n of i)if(!t.attributes[n])return!1;return!0}static areObjectsMergeable(e,t){if(e.layers.mask!==t.layers.mask||e.renderOrder!==t.renderOrder||e.visible!==t.visible||e.userData.layerName!==t.userData.layerName)return!1;if(e.type===t.type)return!0;let i=e,n=t;return i.isMesh&&n.isMesh||i.isLine&&n.isLine||i.isPoints&&n.isPoints}static isMergedMesh(e){return!(!e||!e.userData.batches)}static isFaceIndexInBatch(e,t,i){if(e.boundsTree){let n=e.index.getX(3*i);if(n>=t.positionStart&&n=e&&i<=n)return!0}else{let e=3*i;if(e>=t.positionStart&&e=e.indexStart&&t=e.positionStart&&t80*i){n=a=e[0],r=s=e[1];for(let t=i;ta&&(a=o),l>s&&(s=l);h=Math.max(a-n,s-r),h=0!==h?32767/h:0}return sE(d,p,i,n,r,h,0),p}};function xfe(e,t,i,n,r){let a,s;if(r===xct(e,t,i,n)>0)for(a=t;a=t;a-=n)s=vfe(a,e[a],e[a+1],s);return s&&$A(s,s.next)&&(oE(s),s=s.next),s}function Bm(e,t){if(!e)return e;t||(t=e);let i,n=e;do{if(i=!1,n.steiner||!$A(n,n.next)&&0!==ts(n.prev,n,n.next))n=n.next;else{if(oE(n),n=t=n.prev,n===n.next)break;i=!0}}while(i||n!==t);return t}function sE(e,t,i,n,r,a,s){if(!e)return;!s&&a&&fct(e,n,r,a);let o,l,h=e;for(;e.prev!==e.next;)if(o=e.prev,l=e.next,a?sct(e,n,r,a):ict(e))t.push(o.i/i|0),t.push(e.i/i|0),t.push(l.i/i|0),oE(e),e=l.next,h=l.next;else if((e=l)===h){s?1===s?sE(e=act(Bm(e),t,i),t,i,n,r,a,2):2===s&&oct(e,t,i,n,r,a):sE(Bm(e),t,i,n,r,a,1);break}}function ict(e){let t=e.prev,i=e,n=e.next;if(ts(t,i,n)>=0)return!1;let r=t.x,a=i.x,s=n.x,o=t.y,l=i.y,h=n.y,c=ra?r>s?r:s:a>s?a:s,p=o>l?o>h?o:h:l>h?l:h,f=n.next;for(;f!==t;){if(f.x>=c&&f.x<=d&&f.y>=u&&f.y<=p&&Kv(r,o,a,l,s,h,f.x,f.y)&&ts(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function sct(e,t,i,n){let r=e.prev,a=e,s=e.next;if(ts(r,a,s)>=0)return!1;let o=r.x,l=a.x,h=s.x,c=r.y,u=a.y,d=s.y,p=ol?o>h?o:h:l>h?l:h,g=c>u?c>d?c:d:u>d?u:d,v=KH(p,f,t,i,n),y=KH(m,g,t,i,n),x=e.prevZ,b=e.nextZ;for(;x&&x.z>=v&&b&&b.z<=y;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&Kv(o,c,l,u,h,d,x.x,x.y)&&ts(x.prev,x,x.next)>=0||(x=x.prevZ,b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&Kv(o,c,l,u,h,d,b.x,b.y)&&ts(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;x&&x.z>=v;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==s&&Kv(o,c,l,u,h,d,x.x,x.y)&&ts(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;b&&b.z<=y;){if(b.x>=p&&b.x<=m&&b.y>=f&&b.y<=g&&b!==r&&b!==s&&Kv(o,c,l,u,h,d,b.x,b.y)&&ts(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function act(e,t,i){let n=e;do{let r=n.prev,a=n.next.next;!$A(r,a)&&bfe(r,n,n.next,a)&&aE(r,a)&&aE(a,r)&&(t.push(r.i/i|0),t.push(n.i/i|0),t.push(a.i/i|0),oE(n),oE(n.next),n=e=a),n=n.next}while(n!==e);return Bm(n)}function oct(e,t,i,n,r,a){let s=e;do{let e=s.next.next;for(;e!==s.prev;){if(s.i!==e.i&&gct(s,e)){let o=Efe(s,e);return s=Bm(s,s.next),o=Bm(o,o.next),sE(s,t,i,n,r,a,0),void sE(o,t,i,n,r,a,0)}e=e.next}s=s.next}while(s!==e)}function lct(e,t,i,n){let r,a,s,o,l,h=[];for(r=0,a=t.length;r=n.next.y&&n.next.y!==n.y){let e=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=a&&e>r&&(r=e,i=n.x=n.x&&n.x>=h&&a!==n.x&&Kv(si.x||n.x===i.x&&dct(i,n)))&&(i=n,u=o)),n=n.next}while(n!==l);return i}function dct(e,t){return ts(e.prev,e,t.prev)<0&&ts(t.next,e,e.next)<0}function fct(e,t,i,n){let r=e;do{0===r.z&&(r.z=KH(r.x,r.y,t,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,pct(r)}function pct(e){let t,i,n,r,a,s,o,l,h=1;do{for(i=e,e=null,a=null,s=0;i;){for(s++,n=i,o=0,t=0;t0||l>0&&n;)0!==o&&(0===l||!n||i.z<=n.z)?(r=i,i=i.nextZ,o--):(r=n,n=n.nextZ,l--),a?a.nextZ=r:e=r,r.prevZ=a,a=r;i=n}a.nextZ=null,h*=2}while(s>1);return e}function KH(e,t,i,n,r){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function mct(e){let t=e,i=e;do{(t.x=(e-s)*(a-o)&&(e-s)*(n-o)>=(i-s)*(t-o)&&(i-s)*(a-o)>=(r-s)*(n-o)}function gct(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!vct(e,t)&&(aE(e,t)&&aE(t,e)&&yct(e,t)&&(ts(e.prev,e,t.prev)||ts(e,t.prev,t))||$A(e,t)&&ts(e.prev,e,e.next)>0&&ts(t.prev,t,t.next)>0)}function ts(e,t,i){return(t.y-e.y)*(i.x-t.x)-(t.x-e.x)*(i.y-t.y)}function $A(e,t){return e.x===t.x&&e.y===t.y}function bfe(e,t,i,n){let r=YA(ts(e,t,i)),a=YA(ts(e,t,n)),s=YA(ts(i,n,e)),o=YA(ts(i,n,t));return!!(r!==a&&s!==o||0===r&&XA(e,i,t)||0===a&&XA(e,n,t)||0===s&&XA(i,e,n)||0===o&&XA(i,t,n))}function XA(e,t,i){return t.x<=Math.max(e.x,i.x)&&t.x>=Math.min(e.x,i.x)&&t.y<=Math.max(e.y,i.y)&&t.y>=Math.min(e.y,i.y)}function YA(e){return e>0?1:e<0?-1:0}function vct(e,t){let i=e;do{if(i.i!==e.i&&i.next.i!==e.i&&i.i!==t.i&&i.next.i!==t.i&&bfe(i,i.next,e,t))return!0;i=i.next}while(i!==e);return!1}function aE(e,t){return ts(e.prev,e,e.next)<0?ts(e,t,e.next)>=0&&ts(e,e.prev,t)>=0:ts(e,t,e.prev)<0||ts(e,e.next,t)<0}function yct(e,t){let i=e,n=!1,r=(e.x+t.x)/2,a=(e.y+t.y)/2;do{i.y>a!=i.next.y>a&&i.next.y!==i.y&&r<(i.next.x-i.x)*(a-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==e);return n}function Efe(e,t){let i=new JH(e.i,e.x,e.y),n=new JH(t.i,t.x,t.y),r=e.next,a=t.prev;return e.next=t,t.prev=e,i.next=r,r.prev=i,n.next=i,i.prev=n,a.next=n,n.prev=a,n}function vfe(e,t,i,n){let r=new JH(e,t,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function oE(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function JH(e,t,i){this.i=e,this.x=t,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function xct(e,t,i,n){let r=0;for(let a=t,s=i-n;ae.toArray())).reduce(((e,t)=>(e.push(...t),e)),[]),i=[];return yfe.triangulate(t,[],3).forEach((e=>i.push(e))),i}static arePointsCoplanar(e){if(e.length<4)return!0;let t=e[1].clone().sub(e[0]),i=e[2].clone().sub(e[0]).cross(t).normalize();for(let n=3;nbct)return!1;return!0}static isSelfIntersecting(e){let t=e.map((e=>e.toArray().slice(0,-1)));return(0,_fe.default)(t).length>0}},Os=class{static getVisibleObjectBoundingBox(e){let t=new Nt;return e.traverse((e=>{e.visible&&(e instanceof xt||e instanceof fr)&&Hn.isObjectSelectable(e)&&t.expandByObject(e)})),t}static getObjectsBoundingBox(e,t,i){let n=new Nt;return t.forEach((t=>{let r=e.getObjectById(t);if(r){let e=Os.getBoundingBox(r,i);e.isEmpty()||n.union(e)}})),n}static getBoundingBox(e,t=!0){let i=new Nt;if(e instanceof Oi)return Os.getInstancedMeshBoundingBox(e);if(0===e.children.length)return i.expandByObject(e),i;let n=e.children.length,r=1;n>20&&(r=3),n>100&&(r=5),n>200&&(r=10),n>1e3&&(r=100),e.updateMatrixWorld(!1);for(let a=0;a{let t=e.material;Array.isArray(t)?t.forEach((e=>{e.clippingPlanes=[]})):t&&(t.clippingPlanes=[])}))}static addSection(e,t,i=!1,n=!1){e&&e.traverse((e=>{let r=e.material;Array.isArray(r)?r.forEach((e=>{Hu.setMaterialSection(e,t,i,n)})):r&&Hu.setMaterialSection(r,t,i,n)}))}static generateSectionPlanesByBox(e){let t=e.min,i=e.max;return[new zr(new D(0,-1,0),i.y),new zr(new D(0,1,0),-t.y),new zr(new D(1,0,0),-t.x),new zr(new D(-1,0,0),i.x)]}static generateSectionPlanesByPoints(e,t=!0){let i=e.length;if(i<2)return;let n=[];for(let r=0;r-1&&e.splice(i,1)}function _ct(e,t){let i=t.position.distanceTo(e.position),n=0,r=[];for(let a=0,s=e.faces.length;a=0;a--)i.faces[a]&&i.faces[a].hasVertex(n)&&Tct(i.faces[a],t);for(let a=i.faces.length-1;a>=0;a--)i.faces[a].replaceVertex(i,n);wfe(i,e);for(let a=0;a0?(new ZA).modify(e,i):e}static getNumberOfVerticesToRemove(e,t){let i=0;e instanceof Dt&&e.index&&(i=e.attributes.position.count);let n=Math.floor(i*t);return i<20?0:n}},JA=class extends on{constructor(e){super(),this.isSVGObject=!0,this.node=e}},SLt=10,Afe=(e=>(e.TripleCross="TripleCross",e.Square="Square",e.Triangle="Triangle",e.CircleWithCross="CircleWithCross",e.Cross="Cross",e.Perpendicular="Perpendicular",e))(Afe||{}),Rfe=class{static createSVGObject(e){return new JA(e)}},QA=class extends Rm{constructor(e){super(e),this.type=Mr}parse(e){let t=function(e,t){switch(e){case 1:console.error("THREE.RGBELoader Read Error: "+(t||""));break;case 2:console.error("THREE.RGBELoader Write Error: "+(t||""));break;case 3:console.error("THREE.RGBELoader Bad File Format: "+(t||""));break;default:console.error("THREE.RGBELoader: Error: "+(t||""))}return-1},i=function(e,t,i){t=t||1024;let n=e.pos,r=-1,a=0,s="",o=String.fromCharCode.apply(null,new Uint16Array(e.subarray(n,n+128)));for(;0>(r=o.indexOf("\n"))&&a=e.byteLength||!(n=i(e)))return t(1,"no header found");if(!(r=n.match(/^#\?(\S+)/)))return t(3,"bad initial token");for(h.valid|=1,h.programtype=r[1],h.string+=n+"\n";n=i(e),!1!==n;)if(h.string+=n+"\n","#"!==n.charAt(0)){if((r=n.match(a))&&(h.gamma=parseFloat(r[1])),(r=n.match(s))&&(h.exposure=parseFloat(r[1])),(r=n.match(o))&&(h.valid|=2,h.format=r[1]),(r=n.match(l))&&(h.valid|=4,h.height=parseInt(r[1],10),h.width=parseInt(r[2],10)),2&h.valid&&4&h.valid)break}else h.comments+=n+"\n";return 2&h.valid?4&h.valid?h:t(3,"missing image size specifier"):t(3,"missing format specifier")}(a);if(-1!==s){let e=s.width,i=s.height,o=function(e,i,n){let r=i;if(r<8||r>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);if(r!==(e[2]<<8|e[3]))return t(3,"wrong scanline width");let a=new Uint8Array(4*i*n);if(!a.length)return t(4,"unable to allocate buffer space");let s=0,o=0,l=4*r,h=new Uint8Array(4),c=new Uint8Array(l),u=n;for(;u>0&&oe.byteLength)return t(1);if(h[0]=e[o++],h[1]=e[o++],h[2]=e[o++],h[3]=e[o++],2!=h[0]||2!=h[1]||(h[2]<<8|h[3])!=r)return t(3,"bad rgbe scanline format");let i,n=0;for(;n128;if(r&&(i-=128),0===i||n+i>l)return t(3,"bad scanline data");if(r){let t=e[o++];for(let e=0;e{i.load(t,(t=>{if(e){let i=e.fromEquirectangular(t).texture;e.dispose(),n(i)}}))}))}))}static createEnvTextureFromDataArray(e){return ft(this,arguments,(function*(e,t=this.HDR_CITY_STREET_64x32,i=64,n=32){if(e){let r=new wl(t,i,n);r.flipY=!0,r.magFilter=Pr,r.minFilter=Pr,r.type=Mr,r.version=1;let a=e.fromEquirectangular(r).texture;return e.dispose(),Promise.resolve(a)}return Promise.reject("Invalid pmremGenerator!")}))}};function Mct(){if(Fn.isBrowser){let e=document.createElement("div");return e.setAttribute("style","height: 1in; visibility: hidden; position: absolute; margin: 0; padding: 0;"),document.body.appendChild(e),.0254/e.clientHeight}return.0254/96}Ac.HDR_CITY_STREET_64x32=Uint16Array.from([11910,12340,12797,15360,11926,12348,12806,15360,11958,12364,12814,15360,11974,12380,12830,15360,11958,12364,12822,15360,11926,12348,12797,15360,11878,12324,12773,15360,11830,12308,12749,15360,11798,12292,12733,15360,11782,12279,12725,15360,11765,12263,12709,15360,11749,12247,12701,15360,11733,12231,12701,15360,11701,12215,12693,15360,11685,12199,12685,15360,11685,12199,12685,15360,11701,12215,12693,15360,11717,12231,12701,15360,11733,12247,12709,15360,11749,12263,12717,15360,11749,12279,12717,15360,11765,12279,12725,15360,11765,12279,12725,15360,11765,12292,12725,15360,11798,12300,12733,15360,11830,12316,12749,15360,11846,12324,12757,15360,11894,12340,12781,15360,11926,12356,12797,15360,11942,12356,12797,15360,11926,12348,12789,15360,11926,12348,12789,15360,11942,12356,12797,15360,11942,12356,12797,15360,11942,12348,12806,15360,11942,12356,12806,15360,11942,12356,12814,15360,11958,12372,12830,15360,11974,12372,12830,15360,11974,12372,12838,15360,11990,12388,12854,15360,12055,12420,12886,15360,12119,12452,12918,15360,12167,12476,12950,15360,12231,12500,12982,15360,12263,12516,12998,15360,12231,12500,12974,15360,12199,12484,12958,15360,12199,12484,12958,15360,12199,12492,12966,15360,12247,12508,12982,15360,12247,12508,12990,15360,12231,12500,12982,15360,12199,12484,12966,15360,12167,12468,12942,15360,12119,12444,12918,15360,12087,12436,12902,15360,12055,12420,12886,15360,12055,12412,12878,15360,12039,12412,12878,15360,12022,12396,12862,15360,12006,12388,12846,15360,11958,12364,12830,15360,11910,12340,12806,15360,12119,12508,13103,15360,12087,12484,13071,15360,12055,12468,13046,15360,12006,12436,13006,15360,11926,12396,12958,15360,11878,12364,12926,15360,11846,12348,12894,15360,11782,12308,12854,15360,11749,12292,12830,15360,11717,12263,12814,15360,11685,12247,12806,15360,11669,12215,12789,15360,11685,12231,12789,15360,11701,12247,12797,15360,11701,12247,12806,15360,11717,12263,12814,15360,11749,12292,12822,15360,11782,12308,12838,15360,11798,12316,12846,15360,11814,12332,12862,15360,11846,12340,12870,15360,11862,12348,12878,15360,11846,12340,12870,15360,11846,12340,12862,15360,11878,12356,12886,15360,11910,12372,12910,15360,11942,12396,12934,15360,11958,12412,12958,15360,12039,12452,12998,15360,12071,12468,13022,15360,12039,12452,12998,15360,12039,12452,12998,15360,12006,12444,13006,15360,11974,12436,12998,15360,11942,12412,12982,15360,11926,12396,12974,15360,11926,12404,12974,15360,11958,12420,12998,15360,12006,12452,13038,15360,12055,12476,13071,15360,12039,12476,13079,15360,12087,12508,13127,15360,12247,12597,13231,15360,12388,12693,13332,15360,12420,12741,13364,15360,12436,12757,13372,15360,12468,12773,13380,15360,12500,12806,13388,15360,12516,12822,13404,15360,12629,12934,13452,15360,12741,13046,13508,15360,12806,13095,13532,15360,12757,13046,13516,15360,12645,12950,13460,15360,12565,12870,13428,15360,12532,12838,13412,15360,12549,12854,13412,15360,12516,12838,13396,15360,12452,12757,13356,15360,12420,12725,13340,15360,12404,12709,13332,15360,12372,12677,13316,15360,12279,12589,13207,15360,12135,12516,13119,15360,12388,12709,13348,15360,12247,12581,13223,15360,12055,12476,13087,15360,11910,12388,12982,15360,11733,12308,12886,15360,11669,12247,12846,15360,11621,12199,12814,15360,11541,12103,12765,15360,11492,12055,12733,15360,11508,12055,12733,15360,11476,12022,12717,15360,11525,12055,12725,15360,11589,12135,12757,15360,11669,12199,12765,15360,11765,12292,12814,15360,11862,12348,12886,15360,11910,12372,12910,15360,12006,12420,12966,15360,12071,12452,12998,15360,12119,12476,13022,15360,12167,12492,13046,15360,12183,12500,13063,15360,12199,12524,13079,15360,12308,12589,13151,15360,12300,12581,13151,15360,12167,12516,13087,15360,12087,12468,13030,15360,12022,12444,13014,15360,11990,12420,12990,15360,11974,12420,12990,15360,11974,12420,12990,15360,11990,12436,13014,15360,11990,12444,13030,15360,12103,12500,13103,15360,12087,12508,13111,15360,12039,12484,13103,15360,12039,12476,13103,15360,11942,12436,13054,15360,11974,12452,13087,15360,12039,12492,13135,15360,12103,12532,13199,15360,12183,12581,13263,15360,12308,12661,13340,15360,12484,12822,13436,15360,12613,12918,13484,15360,12725,13046,13540,15360,13046,13332,13677,15360,13143,13380,13717,15360,13223,13420,13741,15360,13396,13540,13862,15360,13436,13589,13902,15360,13484,13629,13942,15360,13468,13621,13934,15360,13412,13564,13878,15360,13372,13524,13846,15360,13287,13452,13781,15360,13223,13428,13749,15360,13340,13492,13805,15360,13239,13428,13749,15360,13095,13364,13685,15360,12918,13223,13597,15360,12822,13111,13556,15360,12613,12934,13468,15360,12532,12854,13428,15360,12565,12870,13444,15360,12468,12789,13396,15360,12372,12693,13340,15360,12087,12492,13111,15360,11846,12364,12958,15360,11717,12300,12878,15360,11557,12135,12781,15360,11476,12055,12741,15360,11460,12022,12725,15360,11476,12022,12725,15360,11476,12022,12709,15360,11476,11958,12605,15360,11364,11733,12332,15360,11111,11412,11661,15360,11223,11476,11773,15360,11388,11669,12095,15360,11765,12119,12492,15360,12388,12613,13079,15360,12661,12902,13356,15360,12998,13255,13564,15360,13372,13508,13797,15360,13412,13548,13846,15360,13287,13436,13725,15360,13271,13428,13709,15360,13287,13428,13717,15360,13014,13287,13597,15360,12709,12998,13460,15360,12452,12741,13332,15360,12364,12653,13271,15360,12404,12693,13316,15360,12420,12709,13316,15360,12420,12709,13332,15360,12263,12589,13231,15360,12332,12661,13312,15360,12300,12629,13295,15360,12263,12605,13287,15360,12231,12597,13279,15360,12247,12613,13303,15360,12231,12597,13295,15360,12231,12605,13312,15360,12199,12597,13324,15360,12231,12613,13340,15360,12516,12870,13468,15360,12725,13063,13564,15360,12741,13079,13573,15360,12854,13175,13613,15360,12902,13223,13629,15360,13046,13348,13693,15360,13356,13516,13846,15360,13605,13765,14078,15360,13717,13870,14191,15360,13765,13918,14255,15360,13765,13910,14247,15360,13701,13854,14191,15360,13573,13733,14070,15360,13508,13677,14006,15360,13380,13548,13886,15360,13111,13380,13741,15360,13063,13348,13709,15360,12886,13207,13629,15360,12725,13046,13548,15360,12645,12966,13508,15360,12677,12982,13508,15360,12629,12950,13492,15360,12452,12789,13412,15360,12324,12661,13332,15360,12356,12677,13340,15360,12388,12693,13348,15360,12279,12597,13247,15360,11894,12396,12998,15360,11637,12231,12846,15360,11573,12135,12789,15360,11589,12151,12797,15360,11621,12167,12797,15360,11637,12119,12677,15360,11079,11404,11693,15360,10517,10701,10653,15360,10252,10348,10007,15360,9902,9999,9428,15360,9846,9886,9047,15360,10135,10260,9685,15360,10412,10533,10412,15360,11268,11436,11549,15360,12364,12605,13087,15360,12444,12709,13255,15360,12549,12822,13348,15360,12613,12886,13396,15360,12597,12886,13412,15360,12581,12870,13404,15360,12661,12950,13460,15360,12725,13014,13492,15360,13079,13332,13645,15360,12757,13046,13500,15360,12677,12982,13476,15360,12854,13143,13556,15360,12693,12982,13492,15360,12581,12886,13452,15360,12709,13030,13508,15360,12372,12709,13364,15360,12324,12661,13348,15360,12292,12645,13340,15360,12292,12645,13348,15360,12468,12806,13436,15360,12532,12854,13460,15360,12500,12854,13468,15360,12500,12854,13484,15360,12725,13063,13589,15360,12982,13324,13701,15360,13111,13388,13741,15360,13014,13340,13709,15360,13014,13332,13717,15360,13287,13476,13862,15360,13436,13621,13974,15360,13532,13717,14095,15360,13725,13902,14295,15360,13942,14103,14420,15360,13974,14135,14436,15360,13862,14022,14388,15360,13725,13894,14295,15360,13789,13958,14336,15360,13830,13990,14348,15360,13372,13548,13942,15360,13014,13332,13733,15360,12886,13239,13661,15360,12854,13207,13637,15360,12757,13095,13589,15360,12757,13079,13573,15360,12645,12982,13516,15360,12629,12966,13532,15360,12549,12870,13468,15360,12356,12693,13372,15360,12151,12549,13231,15360,12215,12573,13247,15360,12199,12565,13231,15360,12071,12492,13135,15360,12055,12468,13087,15360,11878,12372,12958,15360,11685,12199,12781,15360,10774,11159,11412,15360,9533,9621,8870,15360,9308,9340,8071,15360,9276,9300,7878,15360,9324,9332,8420,15360,9191,9216,7991,15360,8950,8983,7766,15360,9493,9525,8677,15360,10252,10332,10007,15360,10661,10846,10894,15360,10701,10926,10998,15360,10950,11276,11428,15360,11364,11637,12063,15360,11958,12388,12926,15360,12183,12540,13175,15360,12340,12645,13295,15360,12420,12693,13316,15360,12757,13030,13460,15360,13046,13324,13645,15360,13095,13348,13677,15360,13303,13460,13781,15360,13207,13404,13741,15360,13127,13372,13717,15360,13372,13524,13862,15360,12693,13030,13540,15360,12725,13046,13548,15360,12468,12822,13436,15360,12263,12629,13348,15360,12436,12773,13428,15360,12693,12998,13524,15360,12725,13046,13564,15360,12645,12982,13556,15360,12613,12966,13556,15360,12886,13255,13685,15360,13436,13629,14022,15360,13637,13813,14231,15360,13621,13789,14215,15360,13878,14038,14412,15360,14022,14183,14468,15360,13926,14119,14452,15360,14054,14231,14508,15360,14135,14311,14540,15360,14348,14436,14669,15360,14460,14540,14749,15360,14404,14484,14709,15360,14420,14500,14709,15360,14653,14717,14894,15360,14119,14279,14508,15360,13484,13669,14078,15360,13063,13380,13773,15360,12677,13079,13613,15360,12484,12886,13516,15360,12436,12822,13476,15360,12468,12838,13476,15360,12039,12532,13316,15360,12231,12613,13340,15360,12468,12789,13436,15360,12388,12725,13396,15360,12135,12557,13287,15360,12151,12557,13271,15360,12039,12484,13175,15360,11878,12396,13038,15360,11814,12348,12950,15360,11492,11894,12460,15360,9950,10103,9621,15360,8830,8838,7220,15360,8565,8533,7015,15360,8541,8501,6919,15360,8332,8300,6822,15360,8412,8372,7220,15360,8710,8701,7686,15360,9372,9404,8549,15360,9533,9621,9079,15360,9268,9292,8196,15360,9452,9460,8167,15360,9533,9581,8533,15360,9742,9870,9316,15360,11460,11814,12348,15360,11942,12388,12902,15360,11749,12167,12573,15360,11300,11492,11621,15360,11974,12332,12669,15360,12436,12741,13364,15360,12597,12886,13460,15360,12966,13271,13653,15360,12998,13303,13669,15360,13476,13629,13974,15360,13733,13886,14239,15360,13364,13524,13894,15360,13063,13356,13725,15360,12982,13287,13669,15360,12484,12806,13444,15360,12565,12902,13500,15360,12950,13287,13693,15360,12934,13271,13677,15360,12693,13046,13589,15360,12661,13030,13605,15360,12870,13271,13717,15360,13348,13548,13966,15360,13621,13813,14271,15360,13797,13974,14412,15360,13942,14119,14484,15360,14263,14388,14629,15360,14420,14508,14733,15360,14460,14548,14773,15360,14982,15046,15231,15360,15564,15580,15669,15360,15974,15982,16078,15360,15805,15821,15926,15360,15460,15476,15572,15360,15436,15460,15556,15360,14781,14862,15127,15360,13621,13813,14348,15360,12789,13207,13757,15360,12452,12886,13581,15360,12263,12709,13476,15360,12039,12597,13396,15360,11942,12516,13340,15360,11846,12468,13271,15360,11733,12380,13127,15360,11926,12460,13191,15360,12055,12524,13263,15360,11878,12428,13159,15360,11605,12231,12886,15360,11412,11990,12709,15360,11508,12103,12789,15360,11637,12231,12854,15360,10661,11079,11380,15360,9541,9685,9252,15360,8573,8605,7493,15360,8404,8388,7348,15360,8830,8822,8212,15360,9308,9324,9095,15360,9324,9364,9220,15360,9047,9119,8653,15360,9023,9055,8404,15360,9055,9063,8167,15360,8870,8846,7541,15360,8862,8806,7380,15360,8950,8910,7252,15360,9268,9284,7557,15360,10316,10468,10380,15360,11239,11476,11677,15360,10653,10942,11047,15360,9661,9814,9324,15360,10693,10958,11047,15360,11396,11653,11990,15360,11878,12292,12597,15360,12468,12789,13396,15360,12773,13095,13589,15360,13364,13516,13894,15360,13894,14054,14380,15360,13717,13870,14247,15360,13420,13589,13958,15360,13255,13452,13830,15360,12806,13143,13637,15360,13159,13412,13830,15360,13629,13813,14215,15360,13303,13500,13910,15360,13079,13396,13805,15360,13191,13452,13878,15360,13412,13621,14062,15360,14103,14279,14540,15360,14773,14854,15086,15360,14717,14805,15046,15360,14295,14420,14685,15360,14380,14476,14733,15360,14572,14661,14902,15360,15596,15612,15701,15360,16351,16335,16384,15360,16484,16476,16492,15360,16516,16500,16516,15360,16388,16375,16404,15360,16054,16054,16118,15360,15918,15926,16006,15360,15556,15572,15669,15360,14653,14725,14982,15360,13637,13838,14319,15360,13412,13613,14054,15360,12870,13287,13789,15360,12404,12838,13524,15360,12199,12677,13428,15360,12324,12741,13452,15360,11942,12516,13324,15360,11765,12380,13111,15360,11428,11942,12589,15360,10886,11388,11902,15360,10372,10717,11006,15360,9846,10240,10191,15360,10252,10549,10766,15360,10613,11079,11484,15360,10581,10998,11388,15360,9613,9846,9629,15360,8525,8557,7541,15360,8605,8613,7814,15360,9292,9324,9079,15360,9388,9396,9220,15360,10709,10846,11031,15360,9894,9966,9854,15360,9252,9236,8774,15360,8822,8790,8183,15360,8292,8260,6533,15360,8111,8007,6324,15360,8228,8183,6405,15360,8501,8501,6565,15360,8814,8878,7172,15360,9260,9364,8244,15360,8902,9095,8252,15360,9444,9581,9047,15360,9509,9637,8790,15360,9477,9613,8806,15360,10725,11063,11079,15360,11508,11910,12356,15360,12484,12789,13380,15360,12838,13159,13629,15360,13428,13589,13974,15360,14135,14279,14484,15360,13942,14087,14396,15360,13677,13846,14247,15360,13436,13613,14006,15360,13597,13781,14183,15360,14183,14340,14540,15360,14022,14215,14484,15360,13637,13838,14271,15360,14038,14231,14508,15360,14380,14476,14701,15360,14757,14854,15078,15360,15030,15111,15343,15360,15420,15452,15556,15360,15476,15500,15588,15360,15351,15388,15492,15360,15572,15596,15677,15360,15653,15669,15717,15360,15821,15821,15853,15360,15845,15845,15869,15360,15998,15990,16022,15360,15926,15926,15974,15360,15653,15669,15733,15360,15661,15677,15749,15360,15612,15629,15717,15360,15271,15335,15452,15360,14484,14572,14821,15360,14215,14372,14588,15360,13468,13677,14167,15360,12773,13175,13653,15360,12725,13143,13637,15360,12452,12886,13532,15360,12263,12709,13444,15360,11894,12436,13103,15360,10252,10533,10661,15360,8613,8693,7445,15360,8742,8782,7047,15360,8420,8412,6565,15360,7926,7910,6405,15360,8806,8854,7300,15360,9127,9228,8007,15360,8685,8750,7300,15360,8348,8356,6758,15360,8380,8340,7300,15360,8991,8918,8388,15360,9838,9790,9549,15360,10055,10127,10047,15360,9501,9493,9268,15360,9332,9292,8902,15360,9079,9007,8509,15360,8300,8260,7252,15360,8693,8701,8196,15360,8228,8212,7111,15360,8469,8501,7380,15360,8420,8501,6919,15360,8549,8645,6983,15360,8581,8661,6951,15360,9268,9332,7718,15360,9063,9207,7445,15360,9284,9380,7718,15360,9412,9557,8693,15360,10276,10517,10103,15360,11830,12279,12589,15360,12725,13079,13589,15360,13127,13396,13773,15360,14087,14231,14460,15360,13974,14119,14412,15360,13677,13854,14247,15360,14119,14279,14500,15360,13990,14167,14460,15360,14364,14452,14653,15360,14564,14653,14837,15360,14404,14492,14701,15360,14870,14942,15135,15360,15388,15420,15500,15360,15207,15287,15420,15360,14797,14894,15127,15360,15271,15335,15452,15360,15926,15942,15990,15360,16207,16207,16231,15360,16118,16110,16126,15360,15741,15733,15741,15360,16239,16207,16175,15360,16444,16460,16484,15360,16046,16022,16006,15360,15942,15950,15966,15360,15773,15789,15829,15360,15789,15797,15845,15360,15693,15709,15757,15360,15540,15564,15653,15360,15303,15364,15468,15360,14733,14813,15014,15360,13862,14054,14420,15360,12838,13255,13725,15360,12789,13207,13693,15360,12468,12918,13564,15360,12404,12838,13500,15360,11428,11862,12412,15360,9143,9276,8388,15360,8541,8533,6726,15360,8444,8428,6629,15360,8212,8183,6597,15360,8388,8380,7015,15360,8726,8710,6758,15360,8332,8316,6437,15360,8453,8428,6565,15360,8597,8605,7814,15360,8701,8661,8151,15360,9452,9396,9015,15360,10581,10557,10380,15360,10950,10974,10846,15360,10380,10356,10252,15360,10749,10741,10685,15360,9870,9854,9693,15360,9023,9039,8669,15360,8790,8854,8509,15360,8196,8167,7332,15360,7975,8015,7079,15360,8589,8750,7445,15360,9095,9260,7111,15360,8983,9135,7188,15360,8902,8991,7252,15360,8862,9007,7015,15360,8967,9111,7300,15360,8742,8878,7493,15360,9557,9999,9549,15360,11292,11613,11862,15360,12135,12468,12982,15360,12215,12460,12878,15360,13356,13468,13685,15360,13821,13934,14199,15360,13548,13701,14022,15360,14103,14263,14468,15360,14279,14388,14572,15360,14364,14452,14645,15360,14709,14789,14950,15360,15143,15199,15327,15360,15388,15412,15468,15360,15476,15500,15548,15360,15420,15444,15492,15360,15436,15460,15516,15360,15612,15637,15685,15360,16086,16086,16110,15360,16396,16388,16396,15360,16094,16094,16110,15360,15869,15861,15861,15360,16135,16110,16070,15360,16428,16420,16404,15360,15588,15556,15524,15360,15484,15500,15508,15360,15335,15364,15396,15360,15677,15685,15717,15360,15604,15621,15661,15360,15420,15444,15500,15360,15303,15372,15452,15360,14717,14805,14998,15360,14412,14508,14701,15360,13548,13765,14199,15360,13271,13508,13942,15360,12661,13159,13709,15360,12468,12854,13436,15360,10260,10484,10509,15360,8613,8669,6951,15360,8151,8143,6469,15360,8653,8629,7814,15360,8469,8444,7541,15360,8718,8693,7814,15360,8372,8332,6597,15360,8356,8308,7111,15360,9047,8983,8396,15360,8822,8798,8308,15360,9372,9348,8967,15360,10364,10364,10183,15360,10268,10260,9894,15360,10541,10533,10468,15360,10380,10364,10276,15360,10621,10613,10549,15360,9910,9942,9758,15360,8364,8380,7621,15360,8581,8637,8135,15360,8252,8300,7573,15360,8119,8175,7300,15360,8372,8453,7493,15360,8420,8501,6983,15360,8742,8822,7573,15360,8782,8854,8151,15360,8581,8661,7079,15360,9220,9268,8340,15360,9549,9645,8854,15360,11717,11950,12127,15360,12468,12741,13207,15360,12709,12966,13388,15360,12300,12508,12886,15360,12492,12709,13063,15360,13239,13372,13548,15360,12476,12597,12814,15360,13581,13685,13878,15360,14476,14548,14685,15360,14556,14629,14773,15360,14765,14829,14966,15360,15159,15207,15303,15360,15372,15396,15444,15360,15516,15532,15572,15360,15653,15661,15693,15360,15829,15837,15853,15360,16022,16014,16022,15360,16311,16295,16279,15360,16343,16319,16303,15360,16412,16388,16359,15360,15813,15797,15773,15360,13063,13151,13183,15360,11484,11701,11798,15360,12300,12412,12468,15360,14613,14637,14653,15360,11974,12215,12316,15360,14135,14215,14303,15360,15604,15629,15677,15360,15524,15548,15596,15360,15351,15380,15428,15360,14797,14894,15054,15360,13990,14231,14500,15360,13492,13709,14070,15360,12886,13316,13701,15360,12613,13207,13749,15360,11525,11974,12428,15360,9284,9412,8629,15360,8597,8653,6951,15360,7806,7790,6292,15360,7589,7541,6437,15360,7485,7437,6597,15360,7453,7404,6180,15360,7774,7686,6565,15360,8300,8260,7332,15360,9918,9942,9862,15360,10348,10372,10231,15360,9725,9709,9228,15360,10613,10621,10509,15360,10199,10175,9838,15360,10380,10388,10340,15360,11207,11255,11284,15360,10661,10717,10725,15360,10103,10135,9950,15360,8444,8436,7669,15360,8469,8501,7445,15360,8950,9111,8854,15360,9485,9798,10071,15360,8364,8501,8039,15360,7959,7951,6806,15360,8597,8605,8039,15360,8501,8533,7557,15360,8758,8830,7509,15360,10758,10830,10693,15360,11508,11605,11621,15360,13524,13669,13886,15360,13830,14022,14327,15360,13926,14103,14364,15360,13460,13621,13886,15360,12854,13191,13420,15360,13597,13733,13926,15360,13846,13990,14223,15360,13773,13942,14199,15360,13910,14087,14356,15360,13813,14022,14319,15360,14247,14396,14540,15360,14693,14765,14878,15360,15223,15279,15343,15360,15508,15524,15540,15360,15540,15548,15564,15360,15327,15335,15319,15360,15303,15311,15303,15360,15918,15910,15886,15360,16247,16207,16151,15360,16175,16143,16086,15360,14436,14452,14436,15360,12263,12380,12404,15360,11476,11701,11773,15360,12380,12492,12532,15360,14797,14797,14757,15360,11372,11589,11677,15360,12597,12934,13356,15360,13990,14364,14725,15360,14183,14444,14773,15360,14231,14444,14717,15360,14412,14532,14709,15360,14054,14199,14380,15360,12372,12500,12605,15360,12199,12565,13006,15360,12581,13175,13653,15360,10055,10380,10324,15360,8557,8573,6726,15360,8167,8196,6533,15360,7517,7485,6119,15360,7244,7172,5798,15360,7071,6959,5718,15360,7669,7581,6260,15360,8661,8605,7975,15360,10942,11079,11151,15360,12573,12741,13014,15360,11902,12030,12191,15360,10308,10332,10135,15360,11255,11300,11284,15360,11276,11348,11396,15360,10055,10215,10292,15360,12183,12332,12468,15360,9918,9966,9798,15360,8734,8742,8196,15360,8967,8950,8469,15360,10260,10276,10039,15360,9734,9758,9605,15360,9388,9404,9308,15360,7943,7878,7095,15360,7726,7637,6645,15360,8047,7983,7204,15360,9284,9236,8693,15360,9621,9565,9143,15360,11255,11268,11047,15360,13175,13332,13420,15360,13773,13934,14175,15360,13854,14022,14271,15360,13870,14038,14279,15360,13388,13516,13677,15360,12279,12629,12966,15360,13348,13452,13564,15360,13821,13918,14054,15360,13701,13846,14022,15360,13460,13605,13781,15360,13492,13637,13821,15360,13709,13821,13950,15360,14372,14428,14476,15360,14516,14572,14613,15360,14741,14789,14813,15360,14725,14749,14749,15360,13452,13484,13468,15360,13476,13500,13492,15360,14990,15022,15022,15360,14556,14572,14564,15360,15094,15111,15094,15360,13231,13287,13215,15360,11255,11380,11175,15360,10677,10886,10492,15360,11846,12006,11934,15360,14327,14340,14279,15360,10766,11039,10862,15360,12918,13255,13452,15360,14231,14548,14886,15360,13878,14380,14765,15360,13444,13862,14412,15360,12151,12404,12621,15360,12637,12902,13215,15360,11549,11749,11870,15360,12279,12653,13119,15360,13223,13404,13516,15360,9228,9260,8276,15360,8087,7991,6308,15360,7918,7814,6919,15360,7469,7364,6148,15360,7485,7380,6212,15360,8228,7991,7204,15360,9276,8967,8212,15360,9806,9573,8742,15360,10135,10087,9621,15360,11452,11452,11452,15360,10629,10637,10509,15360,10693,10733,10637,15360,11095,11111,10982,15360,11292,11348,11372,15360,10199,10244,10167,15360,10814,10926,10846,15360,8669,8774,7493,15360,7870,7910,6244,15360,8204,8183,6919,15360,9806,9758,9159,15360,9460,9436,8629,15360,9159,9087,8260,15360,7637,7509,6790,15360,7758,7629,6838,15360,7967,7918,6774,15360,10854,10749,10501,15360,11508,11412,11316,15360,12372,12300,12151,15360,12030,12119,12063,15360,12781,12910,12982,15360,13476,13581,13661,15360,13484,13589,13677,15360,12404,12428,12380,15360,11605,11765,11798,15360,11492,11533,11452,15360,11838,11886,11798,15360,12263,12372,12380,15360,12151,12231,12175,15360,11492,11508,11412,15360,11119,11111,10838,15360,12508,12581,12573,15360,12621,12693,12677,15360,12573,12629,12589,15360,12292,12324,12231,15360,12476,12565,12573,15360,11998,12159,12215,15360,12950,13071,13159,15360,12263,12372,12428,15360,12380,12428,12444,15360,11300,11308,11143,15360,10199,10244,9734,15360,9709,9701,9252,15360,10492,10581,10404,15360,11476,11516,11388,15360,9477,9517,8790,15360,11717,11854,11838,15360,14247,14420,14524,15360,14054,14311,14436,15360,13597,13805,13982,15360,11364,11533,11597,15360,12263,12428,12549,15360,11436,11605,11653,15360,13079,13324,13444,15360,12516,12613,12605,15360,10039,10015,9605,15360,8693,8621,7878,15360,7951,7862,6902,15360,8196,8204,7015,15360,8677,8589,7637,15360,9284,9031,8340,15360,9814,9605,8902,15360,10685,10428,9910,15360,10492,10260,9685,15360,9404,9252,7943,15360,8830,8766,7220,15360,9220,9047,7943,15360,9693,9669,9015,15360,11412,11468,11372,15360,11135,11159,11023,15360,10087,10055,9428,15360,9910,10007,9621,15360,9236,9300,8934,15360,9597,9557,8902,15360,10669,10549,9782,15360,9926,9870,9127,15360,9894,9918,9047,15360,8685,8742,7910,15360,9958,10167,10284,15360,10215,10332,10396,15360,11396,11428,11452,15360,11223,11255,11300,15360,11814,11862,11958,15360,10685,10846,10870,15360,10340,10380,10007,15360,11175,11207,10894,15360,12103,12207,12215,15360,11143,11103,10902,15360,9910,9966,9613,15360,10015,10079,9493,15360,10806,10846,10517,15360,10862,10934,10637,15360,10838,10942,10661,15360,10958,11087,10878,15360,10709,10838,10701,15360,10669,10741,10589,15360,10581,10669,10525,15360,10252,10348,9974,15360,11396,11500,11525,15360,11207,11255,11264,15360,10878,10910,10934,15360,11031,11063,11159,15360,11292,11324,11396,15360,11223,11255,11300,15360,10693,10685,10645,15360,10428,10420,10324,15360,10300,10252,9991,15360,10838,10846,10798,15360,10428,10428,10364,15360,9669,9605,9380,15360,10167,10244,10087,15360,11709,11854,11910,15360,11223,11284,11268,15360,10231,10244,9878,15360,10199,10244,9862,15360,10183,10260,9942,15360,10525,10653,10541,15360,12500,12597,12621,15360,11814,11741,11597,15360,11533,11460,11175,15360,11103,11006,10557,15360,10444,10396,9846,15360,10007,10023,9228,15360,9653,9790,8469,15360,9316,9372,8039,15360,9557,9830,8071,15360,9621,9918,8071,15360,9677,10015,8167,15360,9991,10284,8420,15360,10215,10436,8581,15360,10260,10484,8645,15360,10292,10476,8902,15360,10324,10468,9252,15360,9910,9894,8886,15360,10525,10573,9701,15360,9782,10039,8581,15360,9565,9814,8167,15360,9950,10039,8934,15360,10749,10758,10199,15360,10669,10685,10244,15360,10838,10838,10460,15360,11215,10910,10087,15360,11492,11364,10806,15360,11095,11159,11055,15360,11364,11388,11356,15360,11023,11039,10990,15360,11653,11653,11613,15360,11798,11725,11557,15360,11974,11862,11637,15360,12039,11942,11765,15360,12119,12047,11934,15360,12151,12071,11950,15360,12087,12006,11886,15360,12047,11966,11838,15360,11990,11926,11790,15360,11974,11910,11798,15360,11998,11934,11814,15360,12111,12039,11886,15360,12231,12143,11998,15360,12292,12199,12039,15360,12039,11974,11846,15360,11822,11782,11653,15360,11862,11838,11765,15360,11798,11765,11701,15360,11782,11733,11669,15360,11798,11749,11685,15360,11838,11790,11725,15360,11870,11822,11749,15360,11741,11701,11621,15360,11565,11541,11452,15360,11533,11500,11412,15360,11621,11581,11484,15360,11605,11557,11460,15360,11516,11468,11372,15360,11565,11533,11444,15360,11677,11637,11541,15360,11725,11661,11557,15360,11725,11661,11557,15360,11733,11669,11573,15360,11838,11773,11677,15360,11998,11926,11814,15360,12014,11926,11798,15360,11460,11404,11332,15360,11637,11557,11428,15360,12014,11894,11693,15360,12167,12022,11765,15360,12119,11982,11709,15360,11926,11806,11516,15360,11685,11589,11300,15360,11476,11404,10886,15360,11239,11151,10468,15360,10766,10733,9894,15360,10565,10565,9589,15360,10436,10444,9332,15360,10308,10308,9031,15360,10308,10316,8999,15360,10199,10244,8774,15360,9725,9645,8549,15360,10244,10276,8967,15360,10878,10838,10183,15360,11055,10966,10348,15360,11119,11006,10404,15360,11264,11135,10565,15360,11404,11316,10822,15360,11492,11388,10982,15360,11798,11613,11223,15360,12047,11830,11412,15360,12039,11894,11597,15360,12127,11990,11693,15360,12127,11990,11725,15360,12191,12055,11806,15360,12191,12055,11830,15360,11870,11773,11613,15360,11573,11516,11428,15360,11533,11484,11412,15360,11541,11492,11420,15360,11565,11516,11452,15360,11589,11541,11476,15360,11605,11557,11500,15360,11637,11589,11533,15360,11669,11621,11557,15360,11701,11645,11573,15360,11733,11669,11589,15360,11798,11717,11605,15360,11838,11749,11621,15360,11878,11782,11661,15360,11894,11798,11661,15360,11926,11806,11653,15360,11958,11822,11661,15360,11982,11846,11677,15360,12006,11870,11685,15360,12095,11950,11765,15360,12047,11910,11741,15360,11886,11765,11605,15360,11838,11733,11589,15360,11814,11717,11589,15360,11814,11709,11573,15360,11790,11693,11565,15360,11741,11677,11589,15360,11733,11677,11613,15360,11733,11685,11629,15360,11717,11669,11621,15360,11685,11645,11589,15360,11629,11589,11533,15360,11573,11525,11468,15360,11492,11444,11380,15360,11316,11255,11111,15360,11348,11292,11143,15360,11516,11436,11316,15360,11854,11749,11589,15360,12127,11990,11765,15360,12199,12055,11782,15360,12340,12231,11910,15360,12372,12292,11958,15360,12380,12300,11974,15360,12348,12247,11910,15360,12324,12215,11878,15360,12247,12103,11773,15360,12095,11958,11637,15360,12055,11926,11613,15360,11974,11854,11541,15360,11870,11765,11468,15360,11966,11854,11541,15360,12300,12151,11846,15360,12396,12316,12006,15360,12388,12308,11990,15360,12388,12308,12006,15360,12396,12316,12022,15360,12396,12308,12022,15360,12396,12308,12022,15360,12364,12279,11974,15360,12340,12247,11942,15360,12340,12231,11926,15360,12215,12071,11806,15360,12095,11966,11749,15360,11741,11645,11500,15360,11420,11356,11255,15360,11364,11308,11207,15360,11356,11300,11175,15360,11348,11292,11191,15360,11372,11324,11255,15360,11412,11364,11308,15360,11420,11372,11316,15360,11428,11380,11324,15360,11444,11388,11332,15360,11484,11428,11364,15360,11508,11460,11396,15360,11557,11500,11436,15360,11589,11533,11460,15360,11613,11557,11484,15360,11621,11557,11492,15360,11613,11557,11500,15360,11621,11557,11500,15360,11629,11573,11508,15360,11629,11573,11508,15360,11605,11557,11484,15360,11589,11533,11468,15360,11557,11508,11436,15360,11549,11500,11428,15360,11557,11500,11436,15360,11549,11492,11436,15360,11533,11484,11428,15360,11525,11476,11428,15360,11516,11476,11428,15360,11525,11484,11444,15360,11516,11476,11428,15360,11468,11428,11380,15360,11428,11388,11332,15360,11356,11308,11239,15360,11308,11255,11127,15360,11167,11071,10926,15360,11223,11119,10966,15360,11276,11175,10998,15360,11404,11332,11191,15360,11773,11693,11557,15360,11926,11798,11613,15360,12207,12039,11773,15360,12348,12231,11894,15360,12308,12151,11846,15360,12332,12215,11894,15360,12364,12279,11958,15360,12380,12292,11974,15360,12396,12316,12022,15360,12404,12316,12039,15360,12412,12332,12087,15360,12412,12332,12103,15360,12436,12356,12135,15360,12372,12292,12039,15360,12420,12332,12087,15360,12396,12316,12055,15360,12356,12263,11990,15360,12340,12231,11942,15360,12271,12127,11854,15360,12215,12071,11814,15360,12292,12135,11878,15360,12288,12135,11870,15360,12111,11982,11765,15360,11990,11886,11717,15360,11637,11557,11428,15360,11364,11300,11143,15360,11316,11239,11079,15360,11300,11207,11047,15360,11268,11159,11015,15360,11268,11159,11015,15360,11268,11159,11031,15360,11300,11223,11095,15360,11340,11292,11191,15360,11348,11300,11223,15360,11372,11324,11255,15360,11380,11332,11255,15360,11372,11316,11239,15360,11396,11340,11268,15360,11468,11404,11300,15360,11460,11404,11324,15360,11484,11428,11356,15360,11492,11436,11372,15360,11500,11444,11388,15360,11508,11460,11404,15360,11500,11452,11396,15360,11492,11436,11380,15360,11468,11412,11356,15360,11444,11388,11324,15360,11444,11388,11324,15360,11428,11380,11316,15360,11412,11356,11300,15360,11404,11348,11300,15360,11404,11356,11308,15360,11396,11356,11308,15360,11388,11348,11308,15360,11372,11340,11292,15360,11348,11308,11255,15360,11284,11223,11111,15360,11231,11143,11023,15360,11199,11111,10974,15360,11047,10958,10814,15360,11127,11023,10870,15360,11119,11006,10846,15360,11175,11055,10886,15360,11292,11191,10998,15360,11525,11404,11284,15360,11822,11637,11476,15360,11878,11733,11549,15360,11918,11790,11573,15360,12063,11918,11653,15360,12223,12063,11765,15360,12300,12151,11846,15360,12255,12103,11814,15360,12271,12127,11846,15360,12271,12127,11862,15360,12271,12127,11886,15360,12308,12183,11942,15360,12175,12039,11814,15360,12063,11934,11709,15360,12159,12014,11765,15360,12215,12063,11798,15360,12143,11998,11757,15360,12071,11934,11693,15360,11998,11870,11661,15360,11974,11870,11685,15360,11998,11910,11757,15360,11846,11765,11629,15360,11468,11396,11284,15360,11308,11223,11031,15360,11215,11103,10934,15360,11207,11095,10942,15360,11215,11103,10950,15360,11191,11087,10942,15360,11175,11079,10942,15360,11167,11063,10934,15360,11143,11031,10902,15360,11247,11143,11015,15360,11284,11191,11079,15360,11300,11223,11095,15360,11316,11268,11127,15360,11340,11284,11143,15360,11340,11284,11159,15360,11356,11300,11191,15360,11372,11316,11239,15360,11380,11324,11255,15360,11372,11316,11255,15360,11380,11324,11276,15360,11380,11324,11268,15360,11372,11316,11255,15360,11364,11316,11255,15360,11364,11308,11239,15360,11348,11292,11207,15360,11340,11284,11191,15360,11348,11292,11191,15360,11348,11292,11207,15360,11340,11292,11207,15360,11340,11292,11207,15360,11324,11276,11207,15360,11308,11255,11175,15360,11264,11175,11079,15360,11119,11039,10934,15360,11103,11015,10902,15360,11095,11006,10878,15360,11031,10942,10806,15360,10990,10902,10766,15360,11047,10942,10814,15360,11031,10926,10790,15360,11055,10942,10806,15360,11119,10998,10846,15360,11151,11015,10830,15360,11268,11095,10886,15360,11484,11396,11268,15360,11790,11701,11549,15360,11886,11790,11637,15360,11838,11741,11581,15360,11838,11725,11541,15360,11902,11782,11581,15360,11966,11838,11629,15360,11974,11846,11629,15360,11958,11838,11629,15360,11950,11838,11637,15360,11814,11701,11525,15360,11581,11492,11332,15360,11645,11541,11380,15360,11806,11701,11533,15360,11902,11806,11637,15360,11950,11862,11717,15360,12014,11934,11790,15360,11942,11862,11725,15360,11565,11492,11388,15360,11292,11191,11015,15360,11231,11111,10950,15360,11159,11047,10894,15360,11119,11006,10854,15360,11127,11023,10878,15360,11159,11055,10902,15360,11135,11031,10894,15360,11111,11006,10878,15360,11095,10990,10870,15360,11095,10998,10886,15360,11071,10966,10846,15360,11111,11006,10902,15360,11191,11095,10974,15360,11268,11159,11031,15360,11284,11191,11063,15360,11292,11207,11063,15360,11300,11223,11079,15360,11332,11268,11143,15360,11316,11255,11127,15360,11316,11255,11143,15360,11308,11239,11127,15360,11316,11255,11159,15360,11300,11223,11127,15360,11292,11207,11095,15360,11300,11223,11111,15360,11300,11223,11095,15360,11300,11223,11095,15360,11308,11239,11111,15360,11300,11223,11111,15360,11292,11207,11111,15360,11264,11167,11071,15360,11215,11127,11047,15360,11135,11055,10966,15360,11015,10934,10846,15360,10918,10838,10733,15360,10982,10894,10782,15360,10974,10886,10766,15360,10982,10894,10766,15360,10958,10862,10749,15360,10982,10886,10774,15360,10958,10862,10758,15360,10958,10862,10749,15360,11015,10910,10790,15360,11023,10910,10774,15360,11079,10958,10806,15360,11103,10974,10798,15360,11191,11047,10846,15360,11468,11388,11276,15360,11846,11765,11637,15360,12006,11918,11782,15360,11998,11910,11782,15360,11902,11822,11693,15360,11838,11749,11637,15360,11782,11709,11605,15360,11806,11741,11645,15360,11782,11717,11629,15360,11773,11717,11621,15360,11870,11806,11701,15360,11942,11862,11757,15360,12183,12103,11974,15360,11974,11894,11765,15360,11476,11404,11308,15360,11268,11143,10966,15360,11183,11063,10902,15360,11111,10998,10854,15360,11055,10942,10806,15360,11023,10910,10766,15360,11047,10934,10782,15360,11039,10926,10782,15360,11079,10966,10830,15360,11031,10918,10782,15360,11031,10926,10806,15360,10990,10894,10782,15360,10974,10886,10790,15360,10966,10870,10774,15360,11006,10902,10806,15360,11039,10942,10838,15360,11127,11023,10910,15360,11175,11079,10958,15360,11191,11087,10958,15360,11207,11095,10958,15360,11268,11143,11015,15360,11276,11175,11047,15360,11284,11191,11079,15360,11292,11191,11079,15360,11276,11175,11079,15360,11239,11135,11031,15360,11268,11159,11047,15360,11215,11111,11006,15360,11239,11127,11015,15360,11255,11143,11031,15360,11223,11119,11015,15360,11199,11103,10998,15360,11175,11087,10982,15360,11143,11047,10958,15360,11031,10942,10854,15360,10958,10878,10790,15360,10910,10830,10741,15360,10942,10862,10758,15360,10926,10838,10733,15360,10854,10758,10637,15360,10918,10830,10709,15360,10910,10822,10717,15360,10942,10846,10749,15360,10942,10854,10741,15360,10942,10854,10749,15360,10966,10870,10758,15360,10966,10870,10758,15360,10958,10854,10733,15360,10998,10886,10741,15360,10942,10830,10677,15360,11039,10918,10749,15360,11095,10974,10806,15360,11308,11223,11031,15360,11468,11396,11292,15360,11605,11533,11428,15360,11701,11621,11525,15360,11693,11629,11541,15360,11685,11621,11549,15360,11685,11629,11549,15360,11629,11565,11484,15360,11589,11533,11444,15360,11364,11308,11191,15360,11191,11087,10958,15360,11135,11031,10902,15360,11135,11031,10894,15360,11055,10950,10830,15360,11015,10910,10782,15360,10958,10854,10733,15360,10942,10838,10717,15360,10974,10870,10733,15360,10982,10878,10749,15360,10990,10886,10758,15360,11015,10910,10798,15360,10966,10862,10758,15360,10950,10854,10758,15360,10910,10822,10733,15360,10894,10798,10709,15360,10902,10814,10725,15360,10934,10846,10758,15360,10910,10822,10733,15360,10950,10854,10749,15360,10974,10878,10766,15360,11047,10942,10830,15360,11095,10990,10878,15360,11167,11055,10942,15360,11199,11103,10990,15360,11191,11087,10982,15360,11151,11047,10950,15360,11135,11031,10934,15360,11095,10998,10902,15360,11143,11047,10950,15360,11079,10990,10894,15360,11079,10990,10902,15360,11103,11006,10910,15360,11079,10982,10886,15360,11023,10926,10822,15360,10982,10894,10798,15360,10958,10870,10782,15360,10910,10814,10725,15360,10926,10838,10741,15360,10934,10838,10733,15360,10950,10854,10749,15360,10886,10798,10709,15360,10910,10814,10709,15360,10926,10830,10725,15360,10910,10814,10701,15360,10862,10774,10677,15360,10950,10854,10733,15360,10926,10830,10717,15360,10926,10838,10725,15360,10926,10830,10725,15360,10894,10798,10685,15360,10926,10830,10701,15360,10958,10854,10717,15360,10934,10830,10685,15360,10950,10846,10709,15360,10974,10862,10717,15360,10942,10830,10685,15360,10958,10846,10701,15360,11006,10894,10749,15360,10950,10846,10725,15360,10958,10862,10741,15360,10894,10806,10701,15360,10854,10774,10669,15360,10886,10806,10701,15360,10862,10790,10693,15360,10878,10806,10717,15360,10982,10902,10798,15360,10990,10902,10798,15360,10950,10862,10758,15360,10942,10846,10733,15360,10870,10774,10669,15360,10894,10798,10693,15360,10918,10830,10725,15360,10894,10806,10701,15360,10926,10830,10733,15360,10902,10830,10725,15360,10870,10790,10693,15360,10886,10814,10725,15360,10814,10741,10661,15360,10838,10766,10677,15360,10822,10741,10661,15360,10822,10741,10669,15360,10862,10790,10709,15360,10846,10758,10669,15360,10894,10798,10693,15360,10974,10878,10766,15360,10966,10870,10766,15360,11023,10926,10814,15360,11079,10974,10862,15360,11006,10910,10814,15360,10950,10862,10766,15360,10982,10894,10798,15360,10958,10862,10774,15360,10958,10870,10782,15360,10910,10830,10741,15360,10950,10862,10766,15360,10982,10886,10790,15360,10918,10822,10725,15360,10886,10798,10701,15360,10854,10766,10669,15360,10894,10806,10709,15360,10926,10830,10725,15360,10926,10830,10725,15360,10958,10862,10749,15360,10958,10862,10749,15360,10894,10806,10717,15360,10902,10814,10717,15360,10878,10790,10677,15360,10942,10838,10717,15360,10918,10814,10701,15360,10886,10790,10661,15360,10942,10838,10717,15360,10950,10854,10725,15360,10950,10854,10725,15360,10910,10814,10693,15360,10910,10814,10685,15360,10942,10838,10709,15360,10894,10790,10661,15360,10910,10806,10669,15360,10822,10725,10597,15360,10749,10661,10541,15360,10830,10733,10613,15360,10838,10741,10629,15360,10806,10709,10597,15360,10854,10766,10653,15360,10862,10774,10669,15360,10798,10725,10629,15360,10822,10749,10653,15360,10854,10782,10693,15360,10806,10741,10661,15360,10862,10790,10701,15360,10870,10790,10685,15360,10870,10790,10693,15360,10878,10790,10677,15360,10862,10782,10677,15360,10870,10790,10693,15360,10870,10782,10685,15360,10894,10814,10709,15360,10886,10814,10709,15360,10846,10782,10685,15360,10741,10669,10573,15360,10766,10693,10589,15360,10709,10637,10541,15360,10741,10669,10589,15360,10741,10677,10589,15360,10709,10637,10557,15360,10774,10701,10613,15360,10862,10774,10677,15360,11006,10918,10806,15360,11006,10902,10782,15360,10974,10870,10749,15360,10958,10854,10733,15360,10934,10838,10725,15360,10934,10838,10733,15360,10934,10838,10725,15360,10886,10790,10685,15360,10854,10766,10661,15360,10886,10798,10701,15360,10838,10749,10645,15360,10878,10782,10661,15360,10822,10725,10613,15360,10822,10717,10605,15360,10846,10749,10629,15360,10854,10749,10637,15360,10950,10854,10733,15360,10958,10854,10741,15360,10910,10806,10693,15360,10926,10822,10693,15360,10934,10838,10725,15360,10910,10822,10709,15360,10910,10822,10709,15360,10886,10782,10661,15360,10910,10814,10677,15360,10910,10806,10677,15360,10926,10822,10685,15360,10958,10854,10717,15360,10974,10870,10725,15360,10926,10830,10693,15360,10926,10830,10693,15360,10918,10822,10693,15360,10934,10838,10701,15360,10918,10814,10685,15360,10878,10782,10653,15360,10870,10774,10645,15360,10838,10749,10629,15360,10806,10717,10605,15360,10822,10733,10621,15360,10822,10733,10621,15360,10846,10758,10653,15360,10846,10766,10653,15360,10822,10741,10629,15360,10806,10733,10629,15360,10806,10725,10621,15360,10790,10709,10605,15360,10766,10693,10589,15360,10814,10741,10629,15360,10846,10766,10653,15360,10838,10758,10653,15360,10878,10790,10677,15360,10894,10798,10685,15360,10830,10741,10629,15360,10830,10758,10653,15360,10798,10725,10629,15360,10806,10733,10629,15360,10717,10637,10525,15360,10661,10581,10476,15360,10701,10621,10517,15360,10733,10661,10565,15360,10782,10685,10557,15360,10862,10758,10613,15360,10974,10862,10725,15360,10958,10846,10709,15360,11006,10902,10766,15360,11006,10902,10774,15360,11039,10934,10814,15360,11006,10902,10790,15360,11006,10910,10790,15360,10950,10854,10741,15360,10934,10830,10709,15360,10918,10814,10701,15360,10854,10758,10653,15360,10918,10814,10701,15360,10870,10766,10645,15360,10830,10733,10621,15360,10934,10830,10709,15360,10990,10886,10758,15360,10950,10838,10717,15360,10910,10814,10701,15360,10926,10822,10693,15360,10934,10830,10709,15360,10878,10774,10653,15360,10934,10830,10701,15360,10926,10822,10693,15360,10878,10782,10661,15360,10878,10782,10661,15360,10862,10766,10621,15360,10886,10782,10645,15360,10886,10782,10653,15360,10926,10822,10701,15360,10902,10806,10685,15360,10926,10822,10701,15360,10918,10814,10685,15360,10878,10782,10645,15360,10910,10806,10669,15360,10854,10758,10621,15360,10886,10790,10645,15360,10854,10758,10629,15360,10830,10741,10613,15360,10918,10814,10685,15360,10862,10766,10645,15360,10830,10741,10613,15360,10806,10717,10597,15360,10741,10661,10557,15360,10774,10693,10581,15360,10749,10669,10557,15360,10774,10693,10581,15360,10766,10685,10573,15360,10790,10709,10597,15360,10782,10701,10589,15360,10790,10709,10597,15360,10838,10749,10621,15360,10870,10774,10645,15360,10894,10790,10661,15360,10878,10782,10653,15360,10846,10741,10613,15360,10790,10693,10557,15360,10814,10717,10597,15360,10790,10701,10581,15360,10741,10645,10525,15360,10717,10629,10509,15360,10774,10685,10573,15360,10725,10637,10525,15360,10854,10749,10621,15360,10950,10846,10701,15360,10966,10854,10709,15360,10934,10814,10677,15360,10926,10822,10701,15360,10982,10878,10766,15360,10998,10894,10782,15360,10990,10878,10766,15360,10998,10894,10782,15360,10998,10886,10774,15360,10998,10886,10758,15360,11006,10894,10774,15360,10942,10838,10733,15360,10958,10854,10741,15360,10958,10854,10749,15360,11006,10902,10790,15360,11015,10902,10798,15360,10982,10870,10758,15360,10998,10894,10782,15360,10974,10870,10758,15360,11006,10902,10790,15360,10998,10894,10774,15360,10974,10870,10758,15360,10950,10854,10741,15360,10878,10790,10693,15360,10902,10814,10701,15360,10918,10822,10709,15360,10838,10733,10613,15360,10878,10782,10661,15360,10934,10838,10717,15360,10902,10806,10693,15360,10918,10822,10709,15360,10926,10830,10709,15360,10838,10733,10605,15360,10910,10806,10661,15360,10942,10838,10693,15360,10886,10782,10645,15360,10886,10782,10637,15360,10854,10749,10621,15360,10926,10830,10709,15360,10966,10862,10741,15360,10846,10749,10629,15360,10830,10733,10605,15360,10854,10758,10637,15360,10822,10725,10605,15360,10886,10790,10661,15360,10902,10806,10669,15360,10918,10814,10677,15360,10830,10733,10605,15360,10806,10717,10589,15360,10870,10774,10645,15360,10934,10838,10709,15360,10958,10862,10733,15360,10886,10790,10661,15360,10894,10798,10661,15360,10958,10854,10709,15360,10934,10830,10709,15360,10814,10717,10581,15360,10862,10758,10613,15360,10854,10741,10589,15360,10814,10717,10573,15360,10886,10782,10645,15360,10814,10725,10597,15360,10862,10766,10637,15360,10910,10806,10669,15360,10942,10838,10709,15360,10966,10862,10733,15360,10974,10870,10741,15360,10974,10870,10749,15360,10958,10862,10749,15360,11031,10934,10822,15360,10998,10894,10782,15360,10974,10870,10766,15360,11023,10918,10814,15360,11039,10926,10822,15360,10958,10846,10741,15360,10918,10814,10693,15360,10966,10870,10741,15360,10982,10886,10766,15360,10982,10878,10766,15360,10942,10846,10733,15360,10958,10862,10758,15360,10950,10854,10758,15360,10934,10830,10717,15360,10966,10862,10733,15360,10942,10846,10725,15360,10934,10846,10733,15360,10934,10846,10733,15360,10878,10798,10693,15360,10886,10798,10693,15360,10910,10814,10709,15360,10942,10846,10733,15360,10838,10733,10597,15360,10878,10774,10645,15360,10918,10822,10701,15360,10878,10782,10653,15360,10894,10790,10661,15360,10934,10838,10725,15360,10958,10854,10725,15360,10966,10862,10733,15360,10910,10806,10685,15360,10982,10878,10758,15360,10942,10854,10749,15360,10934,10838,10733,15360,10918,10814,10701,15360,10894,10798,10669,15360,10894,10798,10669,15360,10814,10725,10605,15360,10902,10798,10669,15360,10814,10725,10605,15360,10894,10798,10685,15360,10958,10862,10749,15360,10910,10814,10701,15360,10910,10806,10685,15360,10918,10814,10693,15360,10926,10822,10709,15360,10894,10790,10661,15360,10902,10806,10677,15360,10902,10806,10685,15360,10934,10838,10717,15360,10934,10838,10701,15360,10934,10838,10717,15360,10950,10854,10725,15360,10894,10798,10661,15360,10862,10749,10597,15360,10894,10798,10677,15360,10878,10782,10661,15360,10926,10838,10717,15360,10926,10838,10717,15360,10918,10822,10709,15360,10934,10838,10733,15360,10926,10838,10733,15360,10958,10870,10766,15360,10942,10854,10749,15360,10958,10870,10774,15360,10974,10878,10774,15360,10958,10854,10741,15360,10950,10846,10741,15360,10950,10854,10758,15360,10934,10838,10733,15360,10942,10846,10725,15360,10966,10862,10741,15360,10926,10838,10733,15360,10958,10862,10749,15360,10910,10822,10709,15360,10942,10854,10758,15360,10926,10838,10733,15360,10910,10822,10717,15360,10934,10838,10733,15360,10934,10846,10733,15360,10902,10814,10709,15360,10926,10830,10717,15360,10918,10822,10709,15360,10838,10749,10637,15360,10878,10790,10677,15360,10942,10846,10733,15360,10926,10822,10701,15360,10958,10862,10749,15360,10886,10790,10685,15360,10918,10814,10693,15360,10910,10814,10693,15360,10902,10806,10701,15360,10878,10774,10637,15360,10798,10693,10565,15360,10822,10725,10597,15360,10934,10838,10709,15360,10958,10854,10725,15360,10886,10790,10669,15360,10910,10806,10677,15360,10886,10782,10645,15360,10830,10725,10597,15360,10822,10717,10581,15360,10862,10758,10637,15360,10878,10782,10669,15360,10926,10822,10709,15360,10974,10878,10774,15360,10966,10870,10758,15360,10918,10822,10709,15360,10846,10749,10645,15360,10894,10798,10693,15360,10918,10822,10709,15360,10974,10878,10774,15360,10918,10822,10717,15360,10982,10886,10774,15360,10974,10878,10758,15360,10950,10854,10741,15360,10958,10854,10725,15360,10982,10886,10766,15360,10918,10822,10701,15360,10878,10782,10669,15360,10886,10790,10669,15360,10934,10838,10717,15360,10950,10854,10741,15360,10934,10838,10733,15360,10982,10886,10782,15360,10886,10798,10701,15360,10870,10782,10685,15360,10894,10814,10717,15360,10910,10822,10725,15360,10934,10838,10733,15360,10950,10846,10741,15360,10934,10838,10725,15360,10934,10846,10749,15360,10902,10814,10717,15360,10878,10790,10677,15360,10878,10782,10669,15360,10854,10766,10645,15360,10838,10749,10629,15360,10902,10814,10701,15360,10910,10814,10693,15360,10902,10798,10669,15360,10910,10806,10677,15360,10886,10782,10653,15360,10854,10749,10629,15360,10870,10774,10653,15360,10974,10870,10758,15360,10990,10878,10758,15360,10918,10822,10709,15360,10926,10838,10725,15360,10958,10854,10733,15360,10894,10790,10653,15360,10822,10725,10605,15360,10878,10782,10661,15360,10974,10870,10749,15360,10902,10806,10677,15360,10934,10838,10725,15360,10870,10774,10653,15360,10798,10701,10581,15360,10854,10749,10621,15360,10894,10798,10669,15360,10934,10822,10685,15360,10942,10830,10701,15360,10910,10806,10669,15360,10870,10758,10629,15360,10886,10774,10645,15360,10950,10838,10701,15360,10966,10870,10749,15360,10886,10790,10685,15360,10870,10782,10677,15360,10934,10838,10733,15360,10934,10838,10725,15360,10822,10725,10621,15360,10878,10790,10677,15360,10894,10798,10693,15360,10822,10733,10629,15360,10894,10798,10685,15360,10998,10902,10790,15360,11015,10918,10806,15360,10950,10854,10741,15360,10950,10846,10741,15360,10934,10838,10733,15360,10942,10846,10749,15360,10910,10822,10725,15360,10846,10758,10653,15360,10878,10790,10685,15360,10894,10798,10701,15360,10862,10774,10669,15360,10814,10725,10621,15360,10846,10758,10645,15360,10870,10774,10661,15360,10870,10774,10677,15360,10878,10790,10693,15360,10878,10782,10677,15360,10830,10741,10637,15360,10870,10782,10677,15360,10966,10870,10766,15360,11015,10918,10814,15360,10910,10814,10701,15360,10942,10846,10725,15360,10950,10846,10725,15360,10942,10838,10725,15360,10934,10830,10701,15360,10910,10798,10677,15360,10886,10782,10653,15360,10838,10733,10597,15360,10902,10806,10669,15360,10830,10733,10613,15360,10838,10741,10621,15360,10838,10741,10621,15360,10894,10798,10669,15360,10934,10830,10685,15360,10886,10790,10669,15360,10902,10806,10685,15360,10854,10749,10637,15360]);var Cfe={file:1,m:1,mm:.001,cm:.01,ft:.3048,in:.0254,pt:Mct()},Rct={file:"m",m:"m",mm:"mm",cm:"cm",ft:"ft",in:"in",pt:"pt"},Pfe=e=>2===e?"\xb2":3===e?"\xb3":"",lE=(e,t=1)=>Rct[e]+Pfe(t),DLt=(e,t,i,n=1)=>(null==i&&(i=t),i===t?{value:e,unit:lE(i)}:{value:e*Math.pow(Cfe[t]/Cfe[i],n),unit:lE(i)+Pfe(n)}),t5=(e=>(e.Top="Top",e.Bottom="Bottom",e.Front="Front",e.Back="Back",e.Left="Left",e.Right="Right",e))(t5||{}),cE=class{static getCameraPositionByBBoxAndDirection(e,t,i,n,r){if(e.isEmpty()||!n)return;let a=new D,s=new D,o=new D(0,1,0);e.getSize(s),e.getCenter(a);let l,h,c=(s.x+s.y+s.z)/3*1.5;if(!r||null!=r&&r.equals(new D))l=new D(a.x+c,a.y+c/1.5,a.z+c),h=l.clone().sub(a);else{let e=new D(c,c/1.5,c).length();h=new D(-r.x,-r.y,-r.z).normalize().multiplyScalar(e),l=h.clone().add(a)}c=h.length(),h=h.normalize();let u=new et;u.lookAt(l,a,o);let d=new et;d.makeTranslation(-l.x,-l.y,-l.z);let p=e.clone().applyMatrix4(d).applyMatrix4(u.invert()).applyMatrix4(n),f=Math.max(Math.abs(p.max.x),Math.abs(p.min.x)),m=Math.max(Math.abs(p.max.y),Math.abs(p.min.y));c*=1.1*Math.sqrt(Math.pow(f,2)+Math.pow(m,2)),l=h.multiplyScalar(c).add(a),i.set(a.x,a.y,a.z),t.set(l.x,l.y,l.z)}static getCameraDirectionByView(e){let t=new D(1,0,0);return"Top"===e?t.set(0,-1,0):"Bottom"===e?t.set(0,1,0):"Front"===e?t.set(0,0,-1):"Back"===e?t.set(0,0,1):"Left"===e?t.set(1,0,0):"Right"===e&&t.set(-1,0,0),t}},Act=!1,Hi=class extends Ss{constructor(e){super(),this.DEFAULT_LINE_WIDTH=1,this.DEFAULT_STROKE_STYLE=[0,0,0,1],this.DEFAULT_FILL_STYLE=[0,0,0,1],this.lineWidth=this.DEFAULT_LINE_WIDTH,this.lineColor=this.DEFAULT_STROKE_STYLE,this.fillColor=this.DEFAULT_FILL_STYLE,this.x=0,this.y=0,this.width=0,this.height=0,this.points=[],this.userData={},this.tolerance=1,this.visible=!0,this.selected=!1,this.renderOrder=1,this.needsFrustumCulled=!0,this.editPointSize=3,this.editPointFillColor="#ffffff",this.editPointStrokeColor="#939ea4",this.matrix=new et,this.id=e||St.guid()}setTolerance(e){this.tolerance=e}render(e,t){this.ctx=e,this.draw(e,t),this.selected&&this.drawSelect(e,t),Act&&(this.drawBounds(e,t),this.drawCenter(e,t))}getData(){return{id:this.id,points:this.points.map((e=>[e.x,e.y])),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.getClassType()}}setData(e){this.id=e.id,this.setLineWidth(e.lineWidth),this.setLineColor(e.lineColor),this.setFillColor(e.fillColor)}getVertexes(){return[new D(this.x,this.y,0),new D(this.x+this.width,this.y,0),new D(this.x+this.width,this.y-this.height,0),new D(this.x,this.y-this.height,0)]}setLineWidth(e){this.lineWidth=e||this.DEFAULT_LINE_WIDTH}setLineColor(e){this.lineColor=e||this.DEFAULT_STROKE_STYLE}setFillColor(e){this.fillColor=e||this.DEFAULT_FILL_STYLE}isSelected(){return this.selected}getCenter(){return this.getBounds().getCenter(new D)}transToScreenCoord(e,t){return this.ctx?an.world2Screen(e,t,this.ctx.canvas):new xe}drawBounds(e,t){let{min:i,max:n}=this.getBounds(),r=[],a=(e,t,i)=>r.push(new D(e,t,i));a(n.x,n.y,n.z),a(i.x,n.y,n.z),a(i.x,i.y,n.z),a(n.x,i.y,n.z),a(n.x,n.y,i.z),a(i.x,n.y,i.z),a(i.x,i.y,i.z),a(n.x,i.y,i.z),a(i.x,n.y,n.z),a(i.x,i.y,n.z),a(n.x,n.y,n.z),a(n.x,i.y,n.z),a(n.x,n.y,i.z),a(n.x,i.y,i.z),a(i.x,n.y,i.z),a(i.x,i.y,i.z),a(i.x,n.y,n.z),a(i.x,n.y,i.z),a(n.x,n.y,n.z),a(n.x,n.y,i.z),a(i.x,i.y,n.z),a(i.x,i.y,i.z),a(n.x,i.y,n.z),a(n.x,i.y,i.z),e.save(),e.strokeStyle="yellow",e.beginPath(),r.forEach(((i,n)=>{let r=this.transToScreenCoord(i,t);n%2==0?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),e.closePath(),e.stroke(),e.restore()}drawCenter(e,t){let i=this.transToScreenCoord(this.getCenter(),t);e.save(),e.fillStyle="yellow",e.beginPath(),e.arc(i.x,i.y,5,0,2*Math.PI),e.closePath(),e.fill(),e.restore()}getBounds(){let e=this.getVertexes();return(new Nt).setFromPoints(e)}},ki=(e=>(e.MouseClicked="MouseClicked",e.LayoutChanged="LayoutChanged",e.ModelLoaded="ModelLoaded",e.BeforeRender="BeforeRender",e.AfterRender="AfterRender",e.OnAnimate="OnAnimate",e.CameraChanged="CameraChanged",e.BoxSelectActivated="BoxSelectActivated",e.BoxSelectDeactivated="BoxSelectDeactivated",e.PickMarkupActivated="PickMarkupActivated",e.PickMarkupDeactivated="PickMarkupDeactivated",e.MarkupActivated="MarkupActivated",e.MarkupDeactivated="MarkupDeactivated",e.MarkupAdded="MarkupAdded",e.MarkupUpdated="MarkupUpdated",e.MarkupRemoved="MarkupRemoved",e.BeforeRemoveMarkup="BeforeRemoveMarkup",e.MeasurementActivated="MeasurementActivated",e.MeasurementDeactivated="MeasurementDeactivated",e.MeasurementAdded="MeasurementAdded",e.MeasurementRemoved="MeasurementRemoved",e))(ki||{}),Ife={},Un=class extends Ss{constructor(e){super(),this.drawableLists=[],this.frustum=new ma,this.projScreenMatrix=new et,this.viewer=e,this.init()}static _registerDrawableClass(e){Ife[e.prototype.getClassType()]=e}static createDrawable(e){let t=Ife[e.type];if(!t)throw new Error(`Invalid drawable type: ${t}`);let i=e.points.map((e=>new D(e[0],e[1],e[2]||0))),n=new t(e.id,i);return n.setData(e),n}get is3d(){return this.viewer.is3d()}get container(){return this.viewer.viewerContainer}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}init(){this.initCanvas(),this.viewer.addEventListener("AfterRender",(()=>{this.projScreenMatrix.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),this.frustum.setFromProjectionMatrix(this.projScreenMatrix),this.render()}))}initCanvas(){let e=this.viewer.getViewConfig();if(Fn.isBrowser&&!e.context2d){let e=this.canvas=document.createElement("canvas"),t=this.viewer.viewerContainer;t.appendChild(e),e.classList.add("overlay-renderer"),e.style.pointerEvents="none",e.style.position="absolute",e.style.left="0px",e.style.top="0px",e.style.userSelect="none",this.context=e.getContext("2d",{willReadFrequently:!0});let{clientWidth:i,clientHeight:n}=t;this.setSize(i,n)}else e.context2d&&(this.context=e.context2d,this.canvas=Fn.creatReactNativeCanvas(this.context),this.context.canvas||(this.context.canvas=this.canvas))}toHighDpr(e,t,i){let n=Math.max(window.devicePixelRatio||1,1),r=this.canvas;return r.width=t*n,r.height=i*n,e.scale(n,n),r.style.width=`${t}px`,r.style.height=`${i}px`,e}clearCanvas(){var e,t,i;null==(i=this.context)||i.clearRect(0,0,null==(e=this.canvas)?void 0:e.width,null==(t=this.canvas)?void 0:t.height)}addDrawableList(e){this.drawableLists.push(e)}render(){if(!this.canvas||!this.context||this.drawableLists.length<1)return;this.clearCanvas();let e=this.getSortedDrawables(!1);if(0===e.length)return;let t=new vr,i=this.viewer.getPixelSizeInWorldCoord();for(let n=0;n{let n=Array.from(i.getDrawables().values());e&&(n=n.filter((e=>e.visible))),n.length>0&&t.push(...n)})),t.sort(((e,t)=>e.renderOrder===t.renderOrder?t.getCenter().distanceTo(this.camera.position)-e.getCenter().distanceTo(this.camera.position):e.renderOrder-t.renderOrder)),t}getDrawablesByPosition(e,t){this.is3d||(e.z=0);let i=this.getSortedDrawables(),n=[];for(let r=0;rt.id===e))}measureTextLength(e,t){let i=this.context,n=e.split("\n"),r=0;for(let a=0;ae.clear())),this.drawableLists=[],this.canvas&&(null==(e=this.viewer.viewerContainer)||e.removeChild(this.canvas),this.canvas=void 0)}},Zo=class extends Ss{constructor(e){super(),this.drawableMap=new Map,this.category=e}addDrawable(e){this.drawableMap.set(e.id,e),this.dispatchEvent("addDrawable",e.getData())}updateDrawable(e,t){e.setData(t),this.dispatchEvent("updateDrawable",e.getData())}removeDrawable(e){this.drawableMap.delete(e.id),this.dispatchEvent("removeDrawable",e.getData())}getDrawableById(e){return this.drawableMap.get(e)}clear(){this.drawableMap.forEach((e=>this.removeDrawable(e)))}getDrawables(){return this.drawableMap}getDrawableDatas(){return Array.from(this.drawableMap).map((([e,t])=>t.getData()))}setDrawableDatas(e){for(let t=0;t{let n=this.transToScreenCoord(i,t);e.moveTo(n.x,n.y),e.arc(n.x,n.y,this.editPointSize,0,2*Math.PI)})),e.closePath(),e.stroke(),e.fill(),e.restore()}setEditPointSize(e){this.editPointSize=e}setEditPointFillColor(e){this.editPointFillColor=e}setEditPointStrokeColor(e){this.editPointStrokeColor=e}getCenter(){return this.getBounds().getCenter(new D)}isPointInPath(e){let t=this.getVertexes().map((e=>new xe(e.x,e.y)));return Qt.isPointInPolygon(new xe(e.x,e.y),t,!0)}setData(e){super.setData(e),this.update(e.points.map((e=>new D(e[0],e[1],0))))}setParent(e){this.parent=e}setLeaderText(e){this.leaderText=e,e.setParent(this)}update(e){let{min:t,max:i}=Cct.setFromPoints(e);return this.x=t.x,this.y=i.y,this.width=Math.abs(i.x-t.x),this.height=Math.abs(i.y-t.y),this.points=e,this}translate(e,t){let i=new D(e,t,0);return this.points.forEach((e=>e.add(i))),this.update(this.points),this}rotate(){return this}scale(){return this}},za=(e=>(e.Arrow="ArrowMarkup",e.Circle="CircleMarkup",e.CloudLine="CloudLineMarkup",e.CloudLineRectangle="CloudRectMarkup",e.CloudRectWithText="CloudRectWithTextMarkup",e.Dot="DotMarkup",e.Ellipse="EllipseMarkup",e.LeaderLine="LeaderLineMarkup",e.PolyLine="PolylineMarkup",e.Rectangle="RectMarkup",e.Text="TextMarkup",e.X="XMarkup",e))(za||{}),n5=class extends Ai{constructor(e,t){super(e),this.type="ArrowMarkup",this.update(t)}draw(e,t){let i=this.points.map((e=>this.transToScreenCoord(e,t))),[n,r]=this.points,a=(new D).subVectors(n,r).length()/10/this.tolerance;this.drawArrowLine(e,i,a),this.drawArrowHead(e,i[0],i[1],10,a)}drawArrowLine(e,t,i){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=An.rgba2Color(this.lineColor);let[n,r]=t,a=(new xe).subVectors(r,n).normalize();e.beginPath(),e.moveTo(n.x,n.y);let s=r.clone().sub(a.multiplyScalar(i));e.lineTo(s.x,s.y),e.closePath(),e.stroke(),e.restore()}drawArrowHead(e,t,i,n,r){let a=180*Math.atan2(t.y-i.y,t.x-i.x)/Math.PI,s=(a+n)*Math.PI/180,o=(a-n)*Math.PI/180,l=r*Math.cos(s),h=r*Math.sin(s),c=r*Math.cos(o),u=r*Math.sin(o),d=new xe(i.x+l,i.y+h),p=new xe(i.x+c,i.y+u);e.save(),e.fillStyle=An.rgba2Color(this.lineColor),e.beginPath(),e.moveTo(i.x,i.y),e.lineTo(d.x,d.y),e.lineTo(p.x,p.y),e.closePath(),e.fill(),e.restore()}getVertexes(){return this.points}update(e){let[t,i]=e;return this.points=e,this.x=Math.min(t.x,i.x),this.y=Math.max(t.y,i.y),this.width=Math.abs(i.x-t.x),this.height=Math.abs(i.y-t.y),this}isPointInPath(e){return Qt.isPointOnLineSegments(e,this.points,this.tolerance)}getClassType(){return"ArrowMarkup"}};Un._registerDrawableClass(n5);var Pct=new xe,Lfe=new D,r5=class extends Ai{constructor(e,t){super(e),this.radius=1,this.type="CircleMarkup",this.update(t)}draw(e,t){let[i,n]=this.points.map((e=>this.transToScreenCoord(e,t)));this.radius=Pct.subVectors(n,i).length(),e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=An.rgba2Color(this.lineColor),e.fillStyle=An.rgba2Color(this.fillColor),e.beginPath(),e.arc(i.x,i.y,this.radius,0,2*Math.PI),e.closePath(),e.stroke(),e.restore()}update(e){let[t,i]=e,n=Lfe.subVectors(i,t).length();return this.width=2*n,this.height=2*n,this.x=t.x-this.width/2,this.y=t.y+this.height/2,this.points=e,this}isPointInPath(e){let[t,i]=this.points,n=Lfe.subVectors(t,i).length();return Math.abs(e.distanceTo(t)-n)<=2*this.tolerance}getClassType(){return"CircleMarkup"}};Un._registerDrawableClass(r5);var Dfe=new Nt,Cc=class extends Ai{constructor(e,t){super(e),this.type="CloudLineMarkup",this.update(t)}draw(e,t){let i=this.points,n=[];e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=An.rgba2Color(this.lineColor),e.fillStyle=An.rgba2Color(this.fillColor),e.beginPath();for(let s=0;sthis.transToScreenCoord(e,t))),r=(new xe).lerpVectors(i,n,.5);this.radiusX=Math.abs(n.x-i.x)/2,this.radiusY=Math.abs(n.y-i.y)/2,e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=An.rgba2Color(this.lineColor),e.fillStyle=An.rgba2Color(this.fillColor),e.beginPath(),e.ellipse(r.x,r.y,this.radiusX,this.radiusY,0,0,2*Math.PI),e.closePath(),e.stroke(),e.restore()}isPointInPath(e){let[t,i]=this.points,n=(new D).lerpVectors(t,i,.5),r=Math.pow(e.x-n.x,2),a=Math.pow(e.y-n.y,2),s=2*this.tolerance,o=Math.abs(i.x-t.x)/2-s,l=Math.abs(i.y-t.y)/2-s,h=r/(o*o),c=a/(l*l),u=Math.abs(i.x-t.x)/2+s,d=Math.abs(i.y-t.y)/2+s;return h+c>=1&&r/(u*u)+a/(d*d)<=1}getClassType(){return"EllipseMarkup"}};Un._registerDrawableClass(a5);var uE=class extends Ai{constructor(e,t,i){super(e),this.text="",this.fontSize=12,this.type="TextMarkup",this.padding=300,this.inputStatus="CHAR_TYPING",this.isEditing=!1,this.handleClick=()=>{},this.handleKeydown=e=>{if(this.textInput)if("Enter"===e.key){let e=parseInt(this.textInput.style.height);this.textInput.style.height=`${Math.round(e+this.fontSize/this.tolerance)}px`}else"Escape"===e.code&&this.exitEditing()},this.handleInput=()=>{var e;if(!this.textInput||!this.manager||"CHINESE_TYPING"===this.inputStatus)return;let t=this.textInput.value,i=(null==(e=this.manager.overlayRender)?void 0:e.measureTextLength(t,this.fontSize/this.tolerance+"px Arial"))||0;i>uE.DEFAULT_INPUT_WIDTH&&(this.textInput.style.width=`${Math.round(i+this.padding/this.tolerance*2)}px`),this.inputStatus="CHAR_TYPING",this.text=t},this.handleCompositionStart=()=>{this.inputStatus="CHINESE_TYPING"},this.handleCompositionEnd=()=>{var e;if(!this.textInput||!this.manager||"CHINESE_TYPING"!==this.inputStatus)return;let t=this.textInput.value,i=(null==(e=this.manager.overlayRender)?void 0:e.measureTextLength(t,this.fontSize/this.tolerance+"px Arial"))||0;i>uE.DEFAULT_INPUT_WIDTH&&(this.textInput.style.width=`${Math.round(i+this.padding/this.tolerance*2)}px`),this.text=t,this.inputStatus="CHAR_TYPING"},this.handleBlur=()=>{this.exitEditing()},this.handleFoucs=()=>{},this.update(t),this.text=i}draw(e,t){this.isEditing||this.drawText(e,t,this.text)}drawText(e,t,i){let n=this.transToScreenCoord(new D(this.x,this.y,0),t),r=i.split("\n"),a=this.fontSize/this.tolerance,s=0;e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=An.rgba2Color(this.lineColor),e.fillStyle=An.rgba2Color(this.lineColor),e.textAlign="left",e.textBaseline="top",e.font=`${a}px Arial`;for(let h=0;hs&&(s=i)}let o=this.padding/this.tolerance,l=new xe(n.x,n.y);for(let h=0;h[e.x,e.y])),text:this.text,lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize,type:this.getClassType()}}getClassType(){return"TextMarkup"}addInput(e,t,i){var n;this.textInput||(this.textInput=document.createElement("textarea"),this.textInput.style.cssText=`\n position: absolute;\n border: ${this.lineWidth}px solid ${An.rgba2Color(this.lineColor)};\n background: transparent;\n outline: none;\n resize: none;\n overflow: hidden;\n z-index: 1000;\n box-sizing: content-box;\n display: inline-block;\n padding: ${this.padding/this.tolerance}px;\n whiteSpace: 'nowrap';\n color: ${this.lineColor}`,this.textInput.style.display="inline-block",null==(n=e.viewerCanvas.parentElement)||n.appendChild(this.textInput),this.addInputEvents()),this.manager=e,this.enterEditing(),this.textInput.style.left=`${t}px`,this.textInput.style.top=`${i}px`,this.textInput.style.width=`${uE.DEFAULT_INPUT_WIDTH}px`,this.textInput.style.height=this.fontSize/this.tolerance+"px",this.textInput.style.lineHeight=this.fontSize/this.tolerance+"px",this.textInput.style.fontSize=this.fontSize/this.tolerance+"px",this.textInput.style.color=An.rgba2Color(this.lineColor)}addInputEvents(){var e,t,i,n,r,a,s;null==(e=this.textInput)||e.addEventListener("click",this.handleClick),null==(t=this.textInput)||t.addEventListener("blur",this.handleBlur),null==(i=this.textInput)||i.addEventListener("foucs",this.handleFoucs),null==(n=this.textInput)||n.addEventListener("keydown",this.handleKeydown),null==(r=this.textInput)||r.addEventListener("input",this.handleInput),null==(a=this.textInput)||a.addEventListener("compositionstart",this.handleCompositionStart),null==(s=this.textInput)||s.addEventListener("compositionend",this.handleCompositionEnd)}enterEditing(){this.textInput&&(this.textInput.value=this.text,this.textInput.focus(),this.isEditing=!0,this.dispatchEvent("EnterEditing"))}exitEditing(){var e,t,i,n,r,a,s,o;null==(e=this.textInput)||e.removeEventListener("click",this.handleClick),null==(t=this.textInput)||t.removeEventListener("blur",this.handleBlur),null==(i=this.textInput)||i.removeEventListener("foucs",this.handleFoucs),null==(n=this.textInput)||n.removeEventListener("keydown",this.handleKeydown),null==(r=this.textInput)||r.removeEventListener("input",this.handleInput),null==(a=this.textInput)||a.removeEventListener("compositionstart",this.handleCompositionStart),null==(s=this.textInput)||s.removeEventListener("compositionend",this.handleCompositionEnd),null==(o=this.textInput)||o.remove(),this.textInput=void 0,this.isEditing=!1,this.dispatchEvent("ExitEditing")}},Dl=uE;Dl.DEFAULT_INPUT_WIDTH=50,Un._registerDrawableClass(Dl);var Ofe=new xe,kfe=new xe(1,0),Ffe=new xe(0,-1),o5=class extends Dl{constructor(e,t,i){super(e,t,i),this.type="LeaderLineMarkup",this.text="LeaderLine",this.fontSize=12,this.textBounds=new Nt,this.handleInput=()=>{!this.textInput||!this.manager||"CHINESE_TYPING"===this.inputStatus||(this.text=this.textInput.value,this.calcuTextInputPositionByText(this.text),this.inputStatus="CHAR_TYPING")},this.handleCompositionEnd=()=>{!this.textInput||!this.manager||"CHINESE_TYPING"!==this.inputStatus||(this.text=this.textInput.value,this.calcuTextInputPositionByText(this.text),this.inputStatus="CHAR_TYPING")}}draw(e,t){if(this.points.length<2)return;let i=this.points.map((e=>this.transToScreenCoord(e,t))),[n,r]=this.points,a=(new D).subVectors(n,r).length()/10/this.tolerance;this.drawArrowLine(e,i,a),this.drawArrowHead(e,i[1],i[0],10,a),!this.isEditing&&this.text.length>0&&this.drawText(e,t,this.text)}drawArrowHead(e,t,i,n,r){let a=180*Math.atan2(t.y-i.y,t.x-i.x)/Math.PI,s=(a+n)*Math.PI/180,o=(a-n)*Math.PI/180,l=r*Math.cos(s),h=r*Math.sin(s),c=r*Math.cos(o),u=r*Math.sin(o),d=new xe(i.x+l,i.y+h),p=new xe(i.x+c,i.y+u);e.save(),e.fillStyle=An.rgba2Color(this.lineColor),e.beginPath(),e.moveTo(i.x,i.y),e.lineTo(d.x,d.y),e.lineTo(p.x,p.y),e.closePath(),e.fill(),e.restore()}drawArrowLine(e,t,i){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=An.rgba2Color(this.lineColor);let[n,r]=t,a=(new xe).subVectors(n,r).normalize();e.beginPath(),e.moveTo(r.x,r.y);let s=n.clone().sub(a.multiplyScalar(i));e.lineTo(s.x,s.y),e.closePath(),e.stroke(),e.restore()}drawText(e,t,i){let[n,r]=this.points.map((e=>this.transToScreenCoord(e,t))),a=(new xe).subVectors(r,n).normalize(),s=a.cross(Ffe)<0,o=a.cross(kfe)<0,l=i.split("\n"),h=this.fontSize/this.tolerance,c=0;e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=An.rgba2Color(this.lineColor),e.fillStyle=An.rgba2Color(this.lineColor),e.textAlign="left",e.textBaseline="top",e.font=`${h}px Arial`;for(let v=0;vc&&(c=i)}let u=this.padding/this.tolerance,d=u+h/2,p=l.length*h+2*u,f=new xe(s?r.x:r.x-c-2*u,o?r.y-d:r.y-p+(p-d));for(let v=0;v[e.x,e.y])),text:this.text,lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize,type:this.getClassType()}}isPointInPath(e){return Qt.isPointOnLineSegments(e,this.points,this.tolerance)||this.textBounds.containsPoint(e)}updateText(e){this.text=e}getClassType(){return"LeaderLineMarkup"}addInput(e,t,i){let[n,r]=this.points.map((t=>an.world2Screen(t,e.camera,e.viewerCanvas))),a=(new xe).subVectors(r,n).normalize(),s=a.cross(Ffe)<0,o=a.cross(kfe)<0,l=this.fontSize/this.tolerance,h=this.padding/this.tolerance,c=h+l/2,u=Dl.DEFAULT_INPUT_WIDTH,d=l;super.addInput(e,s?t:t-u-2*h,o?i-c:i-d+(d-c))}calcuTextInputPositionByText(e){var t;if(!this.textInput||!this.manager)return;let i=(null==(t=this.manager.overlayRender)?void 0:t.measureTextLength(e,this.fontSize/this.tolerance+"px Arial"))||0;if(i>Dl.DEFAULT_INPUT_WIDTH){let e=this.points[1],t=an.world2Screen(this.points[0],this.manager.camera,this.manager.viewerCanvas),n=an.world2Screen(e,this.manager.camera,this.manager.viewerCanvas).clone().sub(t).normalize().cross(new xe(0,-1))<0,r=an.world2Screen(e,this.manager.camera,this.manager.viewerCanvas);n||(this.textInput.style.left=r.x-i-this.padding/this.tolerance*2+"px"),this.textInput.style.width=`${Math.round(i)}px`}}};Un._registerDrawableClass(o5);var l5=class extends Ai{constructor(e,t){super(e),this.type="PolylineMarkup",this.update(t)}draw(e,t){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=An.rgba2Color(this.lineColor),e.fillStyle=An.rgba2Color(this.fillColor);let i=this.points;e.beginPath(),i.forEach(((i,n)=>{let r=this.transToScreenCoord(i,t);0===n?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),e.stroke(),e.restore()}isPointInPath(e){let t=this.points,i=[];for(let n=0;n{let r=this.transToScreenCoord(i,t);0===n?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),e.closePath(),e.stroke(),e.restore()}isPointInPath(e){let t=this.getVertexes(),i=[];for(let n=0;nthis.transToScreenCoord(e,t)));e.moveTo(i.x,i.y),e.lineTo(r.x,r.y),e.moveTo(n.x,n.y),e.lineTo(a.x,a.y),e.closePath(),e.stroke(),e.restore()}isPointInPath(e){let[t,i,n,r]=this.getVertexes();return Qt.isPointOnLineSegments(e,[t,n,i,r],.1)}getClassType(){return"XMarkup"}};Un._registerDrawableClass(u5);var Nfe=new Nt,h5=new D,d5=new xe,Ict=new xe(1,0),Lct=new xe(0,-1),f5=class extends Dl{constructor(e,t,i=""){super(e,t,i),this.type="CloudRectWithTextMarkup",this.textPosition=new D,this.textBounds=new Nt,this.text="CloudRectWithText",this.fontSize=12,this.handleClick=()=>{var e;null==(e=this.textInput)||e.blur()},this.handleInput=()=>{!this.textInput||!this.manager||"CHINESE_TYPING"===this.inputStatus||(this.text=this.textInput.value,this.calcInputPositionByText(this.text),this.inputStatus="CHAR_TYPING")},this.handleCompositionEnd=()=>{!this.textInput||!this.manager||"CHINESE_TYPING"!==this.inputStatus||(this.text=this.textInput.value,this.calcInputPositionByText(this.text),this.inputStatus="CHAR_TYPING")}}draw(e,t){this.drawCloudRect(e,t),(this.isEditing||this.text.length>0)&&this.drawLeaderLine(e,t),!this.isEditing&&this.text.length>0&&this.drawText(e,t,this.text)}drawCloudRect(e,t){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=An.rgba2Color(this.lineColor),e.fillStyle=An.rgba2Color(this.fillColor),e.beginPath();let i=this.getCloudPoints();i.push(i[0]);let n,r=[];for(let a=0;ai.distanceTo(e)-i.distanceTo(t)));let n=this.controlPoints[0];e.save(),e.lineWidth=f5.LEADER_LINE_WIDTH,e.strokeStyle=An.rgba2Color(this.lineColor),e.beginPath(),e.moveTo(n.x,n.y),e.lineTo(i.x,i.y),e.closePath(),e.stroke(),e.restore()}drawText(e,t,i){let n=this.transToScreenCoord(this.points[0],t),r=this.transToScreenCoord(this.textPosition,t),a=d5.subVectors(r,n).normalize(),s=a.cross(Ict)<0,o=a.cross(Lct)<0,l=i.split("\n"),h=this.fontSize/this.tolerance,c=0;e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=An.rgba2Color(this.lineColor),e.fillStyle=An.rgba2Color(this.lineColor),e.textAlign="left",e.textBaseline="top",e.font=`${h}px Arial`;for(let v=0;vc&&(c=i)}let u=this.padding/this.tolerance,d=u+h/2,p=l.length*h+2*u,f=new xe(o?r.x:r.x-c-2*u,s?r.y-d:r.y-p+(p-d));for(let v=0;ve.add(i))),this.textPosition.add(i);let[n,r]=this.points;return this.x=Math.min(n.x,r.x),this.y=Math.max(n.y,r.y),this.width=Math.abs(r.x-n.x),this.height=Math.abs(r.y-n.y),this}update(e){let[t,i]=e;return this.points=e,this.x=Math.min(t.x,i.x),this.y=Math.max(t.y,i.y),this.width=Math.abs(i.x-t.x),this.height=Math.abs(i.y-t.y),this.textPosition||(this.textPosition=new D),this.textPosition.set(Math.max(t.x,i.x),Math.max(t.y,i.y),0),this}getCloudPoints(){return[new D(this.x,this.y,0),new D(this.x+this.width,this.y,0),new D(this.x+this.width,this.y-this.height,0),new D(this.x,this.y-this.height,0)]}getBounds(){return Nfe.setFromPoints([...this.points,...this.vertexes||[]]),Nfe.union(this.textBounds)}getVertexes(){let e=this.getBounds(),t=e.min,i=e.getSize(h5);return[new D(t.x,t.y,0),new D(t.x+i.x,t.y,0),new D(t.x+i.x,t.y+i.y,0),new D(t.x,t.y+i.y,0)]}isLeaderTextSelected(e){return this.textBounds.containsPoint(e)}translateLeaderText(e,t){let i=new D(e,t,0);return this.textPosition.add(i),this}isPointInPath(e){let t=this.getCloudPoints(),i=[];for(let n=0;n[e.x,e.y])),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize,text:this.text,textPosition:[this.textPosition.x,this.textPosition.y],type:this.getClassType()}}getClassType(){return"CloudRectWithTextMarkup"}addInput(e,t,i){let n=this.padding/this.tolerance+this.fontSize/this.tolerance/2;super.addInput(e,t,i-n)}updateInputPosition(e,t){var i;if(!this.manager||!this.textInput)return;let n=t.clone().sub(e).normalize().cross(new xe(0,-1))<0,r=this.textInput.value,a=(null==(i=this.manager.overlayRender)?void 0:i.measureTextLength(r,this.fontSize/this.tolerance+"px Arial"))||Dl.DEFAULT_INPUT_WIDTH,s=this.padding/this.tolerance+this.fontSize/this.tolerance/2;this.textInput.style.left=`${n?t.x:t.x-this.padding/this.tolerance*2-a}px`,this.textInput.style.top=t.y-s+"px",this.textPosition.copy(an.screen2World(t,this.manager.camera,this.manager.viewerCanvas))}calcInputPositionByText(e){var t;if(!this.textInput||!this.manager)return;let i=(null==(t=this.manager.overlayRender)?void 0:t.measureTextLength(e,this.fontSize/this.tolerance+"px Arial"))||0;if(i>Dl.DEFAULT_INPUT_WIDTH){let e=an.world2Screen(this.points[0],this.manager.camera,this.manager.viewerCanvas),t=an.world2Screen(this.textPosition,this.manager.camera,this.manager.viewerCanvas).clone().sub(e).normalize().cross(new xe(0,-1))<0,n=an.world2Screen(this.textPosition,this.manager.camera,this.manager.viewerCanvas);t||(this.textInput.style.left=n.x-i-this.padding/this.tolerance*2+"px"),this.textInput.style.width=`${Math.round(i)}px`}}},Vm=f5;Vm.LEADER_LINE_WIDTH=1,Un._registerDrawableClass(Vm);var tr={LEFT:1,RIGHT:2,MIDDLE:4},yt=Object.freeze({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768});function If(e){return e.isPerspectiveCamera}function Vu(e){return e.isOrthographicCamera}var Dct=(e=>(e[e.NONE=-1]="NONE",e[e.ROTATE=0]="ROTATE",e[e.DOLLY=1]="DOLLY",e[e.PAN=2]="PAN",e[e.TOUCH_ROTATE=3]="TOUCH_ROTATE",e[e.TOUCH_DOLLY=4]="TOUCH_DOLLY",e))(Dct||{}),Oct=(e=>(e.LEFT="ArrowLeft",e.UP="ArrowUp",e.RIGHT="ArrowRight",e.BOTTOM="ArrowDown",e))(Oct||{});function Jv(e){return{type:e}}var zu={movable:!1,startDistBetweenFingers:0,scale:1},Qv=2*Math.PI,Bfe=1e-6,eC=class extends Wo{constructor(e,t,i=!1){super(),this.enabled=!0,this.target=new D,this.enableZoom=!1,this.enablePan=!1,this.enableRotate=!0,this.state=-1,this.rotateSpeed=1,this.zoomSpeed=1,this.panSpeed=1,this.scale=1,this.minZoom=0,this.maxZoom=1/0,this.screenSpacePanning=!0,this.autoRotate=!0,this.autoRotateSpeed=2,this.enableDamping=!1,this.dampingFactor=.05,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minDistance=0,this.maxDistance=1/0,this.keyPanSpeed=7,this.minFov=50,this.maxFov=95,this.zoomChanged=!1,this.panOffset=new D,this.pointerPositions={},this.rotateStart=new xe,this.rotateEnd=new xe,this.rotateDelta=new xe,this.dollyStart=new xe,this.dollyEnd=new xe,this.dollyDelta=new xe,this.panStart=new xe,this.panEnd=new xe,this.panDelta=new xe,this.pointers=[],this.spherical=new gf,this.sphericalDelta=new gf,this.update=function(e){let t=new D,i=new D,n=new dr;return function(){let r=e.quat,a=r.clone().invert(),s=e.object.position;t.copy(s).sub(e.target),t.applyQuaternion(r),e.spherical.setFromVector3(t),e.autoRotate&&-1===e.state&&(e.isVRMode?e.sphericalDelta.theta+=Qv/60/60*e.autoRotateSpeed:e.sphericalDelta.theta-=Qv/60/60*e.autoRotateSpeed),e.enableDamping?(e.spherical.theta+=e.sphericalDelta.theta*e.dampingFactor,e.spherical.phi+=e.sphericalDelta.phi*e.dampingFactor):(e.spherical.theta+=e.sphericalDelta.theta,e.spherical.phi+=e.sphericalDelta.phi);let o=e.minAzimuthAngle,l=e.maxAzimuthAngle;return isFinite(o)&&isFinite(l)&&(o<-Math.PI?o+=Qv:o>Math.PI&&(o-=Qv),l<-Math.PI?l+=Qv:l>Math.PI&&(l-=Qv),e.spherical.theta=o<=l?Math.max(o,Math.min(l,e.spherical.theta)):e.spherical.theta>(o+l)/2?Math.max(o,e.spherical.theta):Math.min(l,e.spherical.theta)),e.spherical.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,e.spherical.phi)),e.spherical.makeSafe(),e.spherical.radius*=e.scale,e.spherical.radius=Math.max(e.minDistance,Math.min(e.maxDistance,e.spherical.radius)),!0===e.enableDamping?e.target.addScaledVector(e.panOffset,e.dampingFactor):e.target.add(e.panOffset),t.setFromSpherical(e.spherical),t.applyQuaternion(a),s.copy(e.target).add(t),e.object.lookAt(e.target),!0===e.enableDamping?(e.sphericalDelta.theta*=1-e.dampingFactor,e.sphericalDelta.phi*=1-e.dampingFactor,e.panOffset.multiplyScalar(1-e.dampingFactor)):(e.sphericalDelta.set(0,0,0),e.panOffset.set(0,0,0)),e.scale=1,!!(e.zoomChanged||i.distanceToSquared(e.object.position)>Bfe||8*(1-n.dot(e.object.quaternion))>Bfe)&&(e.dispatchEvent(Jv("change")),i.copy(e.object.position),n.copy(e.object.quaternion),e.zoomChanged=!1,!0)}}(this),this.onContextMenu=function(e){return t=>{!1!==e.enabled&&t.preventDefault()}}(this),this.onPointerDown=function(e){return t=>{!1!==e.enabled&&(0===e.pointers.length&&(e.domElement.setPointerCapture(t.pointerId),e.domElement.addEventListener("pointermove",e.onPointerMove),e.domElement.addEventListener("pointerup",e.onPointerUp)),e.addPointer(t),"touch"===t.pointerType?e.onTouchStart(t):e.onMouseDown(t))}}(this),this.onPointerMove=function(e){return t=>{!1!==e.enabled&&("touch"===t.pointerType?e.onTouchMove(t):e.onMouseMove(t))}}(this),this.onPointerUp=function(e){return t=>{e.removePointer(t),0===e.pointers.length&&(e.domElement.releasePointerCapture(t.pointerId),e.domElement.removeEventListener("pointermove",e.onPointerMove),e.domElement.removeEventListener("pointerup",e.onPointerUp)),"touch"===t.pointerType&&e.handlerTouchEnd(t),e.dispatchEvent(Jv("end")),e.state=-1}}(this),this.onPointerCancel=function(e){return t=>{e.removePointer(t),e.handlerTouchEnd(t)}}(this),this.onMouseWheel=function(e){return t=>{!1===e.enabled||!1===e.enableZoom||-1!==e.state||(t.preventDefault(),t.stopPropagation(),e.dispatchEvent(Jv("start")),e.handleMouseWheel(t),e.dispatchEvent(Jv("end")))}}(this),this.pan=function(e){let t=new D;return function(i,n){let r=e.domElement;if(e.object instanceof hr){let a=e.object.position;t.copy(a).sub(e.target);let s=t.length();s*=Math.tan(e.object.fov/2*Math.PI/180),e.panLeft(2*i*s/r.clientHeight,e.object.matrix),e.panUp(2*n*s/r.clientHeight,e.object.matrix)}else console.warn("WARNING: VRControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1}}(this),this.panLeft=function(e){let t=new D;return function(i,n){t.setFromMatrixColumn(n,0),t.multiplyScalar(-i),e.panOffset.add(t)}}(this),this.panUp=function(e){let t=new D;return function(i,n){!0===e.screenSpacePanning?t.setFromMatrixColumn(n,1):(t.setFromMatrixColumn(n,0),t.crossVectors(e.object.up,t)),t.multiplyScalar(i),e.panOffset.add(t)}}(this),this.onKeyDown=e=>{!1===this.enabled||!1===this.enablePan||this.handleKeyDown(e)},this.object=e,this.domElement=t,this.isVRMode=i,this.quat=(new dr).setFromUnitVectors(this.object.up,new D(0,1,0)),this.domElement&&this.domElement.style&&(this.domElement.style.touchAction="none"),this.domElement.addEventListener("contextmenu",this.onContextMenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointercancel",this.onPointerCancel),this.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerCancel),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this.domElementKeyEvents&&this.domElementKeyEvents.removeEventListener("keydown",this.onKeyDown)}addPointer(e){this.pointers.push(e)}removePointer(e){delete this.pointerPositions[e.pointerId];for(let t=0;t0&&this.dollyOut(t),this.update()}handleMouseDownRotate(e){this.rotateStart.set(e.clientX,e.clientY)}handleMouseDownDolly(e){this.dollyStart.set(e.clientX,e.clientY)}handleMouseDownPan(e){this.panStart.set(e.clientX,e.clientY)}handleTouchStartRotate(){if(1===this.pointers.length)this.rotateStart.set(this.pointers[0].pageX,this.pointers[0].pageY);else{let e=.5*(this.pointers[0].pageX+this.pointers[1].pageX),t=.5*(this.pointers[0].pageY+this.pointers[1].pageY);this.rotateStart.set(e,t)}}handleTouchStartDolly(e){if(e.length<2)return;let t=e[0],i=e[1];zu.startDistBetweenFingers=this.getDist([t.pageX,t.pageY],[i.pageX,i.pageY]),zu.movable=!0,zu.scale=1}updateRotate(){let e=this.isVRMode,t=this.sphericalDelta;this.rotateDelta.subVectors(this.rotateEnd,this.rotateStart).multiplyScalar(this.rotateSpeed);let i=this.domElement;e?(t.theta+=2*Math.PI*this.rotateDelta.x/i.clientHeight,t.phi+=2*Math.PI*this.rotateDelta.y/i.clientHeight):(t.theta-=2*Math.PI*this.rotateDelta.x/i.clientHeight,t.phi-=2*Math.PI*this.rotateDelta.y/i.clientHeight),this.rotateStart.copy(this.rotateEnd)}handleMouseMoveRotate(e){this.rotateEnd.set(e.clientX,e.clientY),this.updateRotate()}dollyOut(e){this.object instanceof hr?this.scale/=e:(console.warn("WARNING: VRControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}dollyIn(e){this.object instanceof hr?this.scale*=e:(console.warn("WARNING: VRControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}handleMouseMoveDolly(e){this.dollyEnd.set(e.clientX,e.clientY),this.dollyDelta.subVectors(this.dollyEnd,this.dollyStart);let t=Math.pow(.95,this.zoomSpeed);this.dollyDelta.y>0?this.dollyOut(t):this.dollyIn(t),this.dollyStart.copy(this.dollyEnd)}handleMouseMovePan(e){this.panEnd.set(e.clientX,e.clientY),this.panDelta.subVectors(this.panEnd,this.panStart).multiplyScalar(this.panSpeed),this.pan(this.panDelta.x,this.panDelta.y),this.panStart.copy(this.panEnd)}getSecondPointerPosition(e){let t=e.pointerId===this.pointers[0].pointerId?this.pointers[1]:this.pointers[0];return this.pointerPositions[t.pointerId]}handleTouchMoveRotate(e){if(1==this.pointers.length)this.rotateEnd.set(e.pageX,e.pageY);else{let t=this.getSecondPointerPosition(e),i=.5*(e.pageX+t.x),n=.5*(e.pageY+t.y);this.rotateEnd.set(i,n)}this.updateRotate()}updateFov(e){var t;let i=this.object;if(!(i&&i instanceof hr))return void console.warn("WARNING: VRControls.js encountered an unknown camera type - updateFov disabled.");let n=this.minFov,r=this.maxFov,a=e=>{let t=i.fov+e;t=Math.min(t,r),t=Math.max(t,n),i.fov!==t&&(i.fov=t,i.updateProjectionMatrix(),this.dispatchEvent({type:"change"}))},s=e/20;for(let o=0;o<20;++o)setTimeout((()=>a(s)),5*o);this.autoRotate&&(null==(t=this.controlsHelper)||t.delayAutoRotate())}handleTouchMoveDolly(e){if(!zu.movable||this.pointers.length<2)return;let t=this.getSecondPointerPosition(e),i=[e.pageX,e.pageY],n=[t.x,t.y],r=zu.startDistBetweenFingers,a=this.getDist(i,n);if(!r||!a||Math.abs(r-a)<10)return;let s=a/r;console.log(s),s=Math.min(s,3),s=Math.max(s,1/3);let o=s-zu.scale;if(Math.abs(o)<.05)return;let l=0;l=o>0?10*-o:10*(zu.scale/s-1),this.updateFov(l),zu.scale=s}handleKeyDown(e){let t=!1;switch(e.code){case"ArrowUp":this.pan(0,this.keyPanSpeed),t=!0;break;case"ArrowDown":this.pan(0,-this.keyPanSpeed),t=!0;break;case"ArrowLeft":this.pan(this.keyPanSpeed,0),t=!0;break;case"ArrowRight":this.pan(-this.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),this.update())}listenToKeyEvents(e){e.addEventListener("keydown",this.onKeyDown),this.domElementKeyEvents=e}},Ko=class extends Ss{constructor(e){super(),this.enabled=!0,this.keyboardEnabled=!0,this.mouseDownPositionX=0,this.mouseDownPositionY=0,this.lastLeftPointerUpTime=0,this.pointers=[],this.handleClick=e=>{if(!this.enabled)return;let t=this.getBaseEvent(e);this.dispatchEvent("click",t)},this.handlePointerDown=e=>{if(!this.enabled)return;this.stop(e);let t=this.getBaseEvent(e);this.isDoubleClick(t)?(this.lastLeftPointerUpTime=0,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1,this.dispatchEvent("dblclick",t)):(this.mouseDownPositionX=t.x,this.mouseDownPositionY=t.y),this.dispatchEvent("pointerdown",t),"touch"===e.pointerType?(this.pointers.push(t),t.pointers=this.pointers,this.dispatchEvent("touchstart",t)):this.dispatchEvent("mousedown",t)},this.handlePointerMove=e=>{if(!this.enabled)return;this.stop(e);let t=this.getBaseEvent(e);this.isCloseToLastPosition(t)||(this.dispatchEvent("pointermove",t),"touch"===e.pointerType?(this.updatePointers(t),t.pointers=this.pointers,this.dispatchEvent("touchmove",t)):this.dispatchEvent("mousemove",t))},this.handlePointerUp=e=>{if(!this.enabled)return;this.stop(e);let t=this.getBaseEvent(e);0===t.button&&(this.lastLeftPointerUpTime=t.timestamp),this.dispatchEvent("pointerup",t),"touch"===e.pointerType?(this.removePointers(t),t.pointers=this.pointers,this.dispatchEvent("touchend",t)):this.dispatchEvent("mouseup",t)},this.handlePointerCancel=e=>{this.enabled&&(this.stop(e),this.dispatchEvent("pointercancel",this.getBaseEvent(e)))},this.handleMouseWheel=e=>{this.enabled&&(this.stop(e),this.dispatchEvent("wheel",this.getBaseEvent(e)))},this.handleContextMenu=e=>{if(this.enabled)return this.stop(e),this.dispatchEvent("contextmenu",this.getBaseEvent(e)),!1},this.handlePointerEnter=e=>{this.enabled&&(this.stop(e),this.dispatchEvent("pointerenter",this.getBaseEvent(e)))},this.handlePointerLeave=e=>{this.enabled&&(this.stop(e),this.dispatchEvent("pointerleave",this.getBaseEvent(e)))},this.handleResize=e=>{this.enabled&&(this.stop(e),this.dispatchEvent("resize",this.getBaseEvent(e)))},this.handleKeydown=e=>{!this.enabled||!this.keyboardEnabled||this.dispatchEvent("keydown",this.getBaseEvent(e))},this.handleKeyup=e=>{!this.enabled||!this.keyboardEnabled||this.dispatchEvent("keyup",this.getBaseEvent(e))},this.style={},this.element=e,this.bindEvents()}getEnabled(){return this.enabled}setEnabled(e){this.enabled=e}getkKeyboardEnabled(){return this.keyboardEnabled}setkKeyboardEnabled(e){this.keyboardEnabled=e}setCursor(e){this.element.style&&(this.element.style.cursor=e||"default")}bindEvents(){this.element.style.touchAction="none",this.element.style.userSelect="none",this.element.style.webkitUserSelect="none",this.element.addEventListener("click",this.handleClick),this.element.addEventListener("pointerdown",this.handlePointerDown),this.element.addEventListener("pointermove",this.handlePointerMove),this.element.addEventListener("pointerup",this.handlePointerUp),this.element.addEventListener("pointercancel",this.handlePointerCancel),this.element.addEventListener("pointerenter",this.handlePointerEnter),this.element.addEventListener("pointerleave",this.handlePointerLeave),this.element.addEventListener("contextmenu",this.handleContextMenu),this.element.addEventListener("wheel",this.handleMouseWheel),window.addEventListener("resize",this.handleResize),window.addEventListener("keydown",this.handleKeydown),window.addEventListener("keyup",this.handleKeyup)}unBindEvents(){this.element.removeEventListener("pointerdown",this.handlePointerDown),this.element.removeEventListener("pointermove",this.handlePointerMove),this.element.removeEventListener("pointerup",this.handlePointerUp),this.element.removeEventListener("pointerenter",this.handlePointerEnter),this.element.removeEventListener("pointerleave",this.handlePointerLeave),this.element.removeEventListener("contextmenu",this.handleContextMenu),this.element.removeEventListener("wheel",this.handleMouseWheel),window.removeEventListener("resize",this.handleResize),window.removeEventListener("keydown",this.handleKeydown),window.removeEventListener("keyup",this.handleKeyup),this.element.style.touchAction="",this.element.style.userSelect="",this.element.style.webkitUserSelect=""}getBaseEvent(e){let t={x:0,y:0,pageX:0,pageY:0,clientX:0,clientY:0,deltaX:0,deltaY:0,movementX:0,movementY:0,deltaMode:0,pointerId:0,timestamp:0,buttons:0,pointerType:"mouse",altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,originalEvent:e};if(t.timestamp=e.timeStamp,tC(e,"clientX"))if(t.altKey=e.altKey,t.ctrlKey=e.ctrlKey,t.shiftKey=e.shiftKey,t.clientX=e.clientX,t.clientY=e.clientY,t.button=e.button,tC(e,"pointerId")){t.pointerType=e.pointerType,t.buttons=e.buttons,t.pageX=e.pageX,t.pageY=e.pageY,t.pointerId=e.pointerId;let i=an.getScreenCoordinateByEvent(e,this.element);t.x=i.x,t.y=i.y,t.movementX=e.movementX,t.movementY=e.movementY}else tC(e,"deltaX")&&(t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY);else tC(e,"code")&&(t.altKey=e.altKey,t.ctrlKey=e.ctrlKey,t.shiftKey=e.shiftKey,t.metaKey=e.metaKey,t.code=e.code);return t}stop(e){e.preventDefault()}updatePointers(e){for(let t=0;t0==p>c&&(p=c,i.value=(p-c)/a),p}function g5(e,t,i,n,r=1/0,a,s){let o=2/(n=Math.max(1e-4,n)),l=o*a,h=1/(1+l+.48*l*l+.235*l*l*l),c=t.x,u=t.y,d=t.z,p=e.x-c,f=e.y-u,m=e.z-d,g=c,v=u,y=d,x=r*n,b=p*p+f*f+m*m;if(b>x*x){let e=Math.sqrt(b);p=p/e*x,f=f/e*x,m=m/e*x}c=e.x-p,u=e.y-f,d=e.z-m;let _=(i.x+o*p)*a,w=(i.y+o*f)*a,S=(i.z+o*m)*a;i.x=(i.x-o*_)*h,i.y=(i.y-o*w)*h,i.z=(i.z-o*S)*h,s.x=c+(p+_)*h,s.y=u+(f+w)*h,s.z=d+(m+S)*h;let M=g-e.x,E=v-e.y,T=y-e.z;return M*(s.x-g)+E*(s.y-v)+T*(s.z-y)>0&&(s.x=g,s.y=v,s.z=y,i.x=(s.x-g)/a,i.y=(s.y-v)/a,i.z=(s.z-y)/a),s}function nC(e,t){t.set(0,0),e.forEach((e=>{t.x+=e.clientX,t.y+=e.clientY})),t.x/=e.length,t.y/=e.length}function rC(e,t){return!!Vu(e)&&(console.warn(`${t} is not supported in OrthographicCamera`),!0)}var iC=class{constructor(){this._listeners={}}addEventListener(e,t){let i=this._listeners;void 0===i[e]&&(i[e]=[]),-1===i[e].indexOf(t)&&i[e].push(t)}hasEventListener(e,t){let i=this._listeners;return void 0!==i[e]&&-1!==i[e].indexOf(t)}removeEventListener(e,t){let i=this._listeners[e];if(void 0!==i){let e=i.indexOf(t);-1!==e&&i.splice(e,1)}}removeAllEventListeners(e){e?Array.isArray(this._listeners[e])&&(this._listeners[e].length=0):this._listeners={}}dispatchEvent(e){let t=this._listeners[e.type];if(void 0!==t){e.target=this;let i=t.slice(0);for(let t=0,n=i.length;t{},this._enabled=!0,this._state=yt.NONE,this._viewport=null,this._dollyControlAmount=0,this._hasRested=!0,this._boundaryEnclosesCamera=!1,this._needsUpdate=!0,this._updatedLastTime=!1,this._elementRect=Fn.isBrowser?new DOMRect:{x:0,y:0,width:0,height:0,left:0,right:0,top:0,bottom:0},this._activePointers=[],this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._isUserControllingOffset=!1,this._isUserControllingZoom=!1,this._thetaVelocity={value:0},this._phiVelocity={value:0},this._radiusVelocity={value:0},this._targetVelocity=new nr.Vector3,this._focalOffsetVelocity=new nr.Vector3,this._zoomVelocity={value:0},this._truckInternal=(e,t,i)=>{if(If(this._camera)){let n=ar.copy(this._camera.position).sub(this._target),r=this._camera.getEffectiveFOV()*ey,a=n.length()*Math.tan(.5*r),s=this.truckSpeed*e*a/this._elementRect.height,o=this.truckSpeed*t*a/this._elementRect.height;this.verticalDragToForward?(i?this.setFocalOffset(this._focalOffsetEnd.x+s,this._focalOffsetEnd.y,this._focalOffsetEnd.z,!0):this.truck(s,0,!0),this.forward(-o,!0)):i?this.setFocalOffset(this._focalOffsetEnd.x+s,this._focalOffsetEnd.y+o,this._focalOffsetEnd.z,!0):this.truck(s,o,!0)}else if(Vu(this._camera)){let n=this._camera,r=e*(n.right-n.left)/n.zoom/this._elementRect.width,a=t*(n.top-n.bottom)/n.zoom/this._elementRect.height;i?this.setFocalOffset(this._focalOffsetEnd.x+r,this._focalOffsetEnd.y+a,this._focalOffsetEnd.z,!0):this.truck(r,a,!0)}},this._rotateInternal=(e,t)=>{let i=zm*this.azimuthRotateSpeed*e/this._elementRect.height,n=zm*this.polarRotateSpeed*t/this._elementRect.height;this.rotate(i,n,!0)},this._dollyInternal=(e,t,i)=>{let n=Math.pow(.95,-e*this.dollySpeed),r=this._sphericalEnd.radius*n,a=this._sphericalEnd.radius,s=a*(e>=0?-1:1);this.dollyTo(r),this.infinityDolly&&(r{let n=Math.pow(.95,e*this.dollySpeed),r=this._zoomEnd;this.zoomTo(this._zoom*n),this.dollyToCursor&&(this._dollyControlAmount+=this._zoomEnd-r,this._dollyControlCoord.set(t,i))},void 0===nr&&console.error("camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."),this._camera=e,this._yAxisUpSpace=(new nr.Quaternion).setFromUnitVectors(this._camera.up,aC),this._yAxisUpSpaceInverse=this._yAxisUpSpace.clone().invert(),this._state=yt.NONE,this._target=new nr.Vector3,this._targetEnd=this._target.clone(),this._focalOffset=new nr.Vector3,this._focalOffsetEnd=this._focalOffset.clone(),this._spherical=(new nr.Spherical).setFromVector3(ar.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)),this._sphericalEnd=this._spherical.clone(),this._zoom=this._camera.zoom,this._zoomEnd=this._zoom,this._nearPlaneCorners=[new nr.Vector3,new nr.Vector3,new nr.Vector3,new nr.Vector3],this._updateNearPlaneCorners(),this._boundary=new nr.Box3(new nr.Vector3(-1/0,-1/0,-1/0),new nr.Vector3(1/0,1/0,1/0)),this._target0=this._target.clone(),this._position0=this._camera.position.clone(),this._zoom0=this._zoom,this._focalOffset0=this._focalOffset.clone(),this._dollyControlAmount=0,this._dollyControlCoord=new nr.Vector2,this.mouseButtons={left:yt.ROTATE,middle:yt.DOLLY,right:yt.TRUCK,wheel:If(this._camera)?yt.DOLLY:Vu(this._camera)?yt.ZOOM:yt.NONE},this.touches={one:yt.TOUCH_ROTATE,two:If(this._camera)?yt.TOUCH_DOLLY_TRUCK:Vu(this._camera)?yt.TOUCH_ZOOM_TRUCK:yt.NONE,three:yt.TOUCH_TRUCK};let i=new nr.Vector2,n=new nr.Vector2,r=new nr.Vector2,a=e=>{if(!this._enabled||!this._domElement)return;let t="mouse"!==e.pointerType?null:(e.buttons&tr.LEFT)===tr.LEFT?tr.LEFT:(e.buttons&tr.MIDDLE)===tr.MIDDLE?tr.MIDDLE:(e.buttons&tr.RIGHT)===tr.RIGHT?tr.RIGHT:null;if(null!==t){let e=this._findPointerByMouseButton(t);e&&this._activePointers.splice(this._activePointers.indexOf(e),1)}let i={pointerId:e.pointerId,clientX:e.clientX,clientY:e.clientY,deltaX:0,deltaY:0,mouseButton:t};this._activePointers.push(i),this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("pointerup",h),this._domElement.addEventListener("pointermove",o),this._domElement.addEventListener("pointerup",h),f(e)},s=e=>{if(!this._enabled||!this._domElement)return;let t=(e.buttons&tr.LEFT)===tr.LEFT?tr.LEFT:(e.buttons&tr.MIDDLE)===tr.MIDDLE?tr.MIDDLE:(e.buttons&tr.RIGHT)===tr.RIGHT?tr.RIGHT:null;if(null!==t){let e=this._findPointerByMouseButton(t);e&&this._activePointers.splice(this._activePointers.indexOf(e),1)}let i={pointerId:0,clientX:e.clientX,clientY:e.clientY,deltaX:0,deltaY:0,mouseButton:(e.buttons&tr.LEFT)===tr.LEFT?tr.LEFT:(e.buttons&tr.MIDDLE)===tr.LEFT?tr.MIDDLE:(e.buttons&tr.RIGHT)===tr.LEFT?tr.RIGHT:null};this._activePointers.push(i),this._domElement.removeEventListener("mousemove",l),this._domElement.removeEventListener("mouseup",c),this._domElement.addEventListener("mousemove",l),this._domElement.addEventListener("mouseup",c),f(e)},o=e=>{let t=e.pointerId,i=this._findPointerById(t);if(i){if(i.clientX=e.clientX,i.clientY=e.clientY,i.deltaX=e.movementX,i.deltaY=e.movementY,"touch"===e.pointerType)switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three}else this._state=0,(e.buttons&tr.LEFT)===tr.LEFT&&(this._state=this._state|this.mouseButtons.left),(e.buttons&tr.MIDDLE)===tr.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(e.buttons&tr.RIGHT)===tr.RIGHT&&(this._state=this._state|this.mouseButtons.right);m()}},l=e=>{let t=this._findPointerById(0);t&&(t.clientX=e.clientX,t.clientY=e.clientY,t.deltaX=e.movementX,t.deltaY=e.movementY,this._state=0,(e.buttons&tr.LEFT)===tr.LEFT&&(this._state=this._state|this.mouseButtons.left),(e.buttons&tr.MIDDLE)===tr.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(e.buttons&tr.RIGHT)===tr.RIGHT&&(this._state=this._state|this.mouseButtons.right),m())},h=e=>{let t=e.pointerId,i=this._findPointerById(t);if(i&&this._activePointers.splice(this._activePointers.indexOf(i),1),"touch"===e.pointerType)switch(this._activePointers.length){case 0:this._state=yt.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three}else this._state=yt.NONE;g()},c=()=>{let e=this._findPointerById(0);e&&this._activePointers.splice(this._activePointers.indexOf(e),1),this._state=yt.NONE,g()},u=-1,d=e=>{if(!this._enabled||this.mouseButtons.wheel===yt.NONE)return;if(this.dollyToCursor||this.mouseButtons.wheel===yt.ROTATE||this.mouseButtons.wheel===yt.TRUCK){let e=performance.now();u-e<1e3&&this._getClientRect(this._elementRect),u=e}let t=kct?-1:-3,i=1===e.deltaMode?e.deltaY/t:e.deltaY/(10*t),n=this.dollyToCursor?(e.clientX-this._elementRect.x)/this._elementRect.width*2-1:0,r=this.dollyToCursor?(e.clientY-this._elementRect.y)/this._elementRect.height*-2+1:0;switch(this.mouseButtons.wheel){case yt.ROTATE:this._rotateInternal(e.deltaX,e.deltaY),this._isUserControllingRotate=!0;break;case yt.TRUCK:this._truckInternal(e.deltaX,e.deltaY,!1),this._isUserControllingTruck=!0;break;case yt.OFFSET:this._truckInternal(e.deltaX,e.deltaY,!0),this._isUserControllingOffset=!0;break;case yt.DOLLY:this._dollyInternal(-i,n,r),this._isUserControllingDolly=!0;break;case yt.ZOOM:this._zoomInternal(-i,n,r),this._isUserControllingZoom=!0}this.dispatchEvent({type:"control"})},p=e=>{if(this._domElement&&this._enabled&&this.mouseButtons.right===Lf.ACTION.NONE){let t=e instanceof PointerEvent?e.pointerId:(MouseEvent,0),i=this._findPointerById(t);return i&&this._activePointers.splice(this._activePointers.indexOf(i),1),this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("pointerup",h),this._domElement.removeEventListener("mousemove",l),void this._domElement.removeEventListener("mouseup",c)}},f=e=>{if(this._enabled){if(nC(this._activePointers,vo),this._getClientRect(this._elementRect),i.copy(vo),n.copy(vo),this._activePointers.length>=2){let e=vo.x-this._activePointers[1].clientX,t=vo.y-this._activePointers[1].clientY,i=Math.sqrt(e*e+t*t);r.set(0,i);let a=.5*(this._activePointers[0].clientX+this._activePointers[1].clientX),s=.5*(this._activePointers[0].clientY+this._activePointers[1].clientY);n.set(a,s)}if("pointerType"in e&&"touch"===e.pointerType)switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three}else this._state=0,(e.buttons&tr.LEFT)===tr.LEFT&&(this._state=this._state|this.mouseButtons.left),(e.buttons&tr.MIDDLE)===tr.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(e.buttons&tr.RIGHT)===tr.RIGHT&&(this._state=this._state|this.mouseButtons.right);((this._state&yt.ROTATE)===yt.ROTATE||(this._state&yt.TOUCH_ROTATE)===yt.TOUCH_ROTATE||(this._state&yt.TOUCH_DOLLY_ROTATE)===yt.TOUCH_DOLLY_ROTATE||(this._state&yt.TOUCH_ZOOM_ROTATE)===yt.TOUCH_ZOOM_ROTATE)&&(this._sphericalEnd.theta=this._spherical.theta,this._sphericalEnd.phi=this._spherical.phi,this._thetaVelocity.value=0,this._phiVelocity.value=0),((this._state&yt.TRUCK)===yt.TRUCK||(this._state&yt.TOUCH_TRUCK)===yt.TOUCH_TRUCK||(this._state&yt.TOUCH_DOLLY_TRUCK)===yt.TOUCH_DOLLY_TRUCK||(this._state&yt.TOUCH_ZOOM_TRUCK)===yt.TOUCH_ZOOM_TRUCK)&&(this._targetEnd.copy(this._target),this._targetVelocity.set(0,0,0)),((this._state&yt.DOLLY)===yt.DOLLY||(this._state&yt.TOUCH_DOLLY)===yt.TOUCH_DOLLY||(this._state&yt.TOUCH_DOLLY_TRUCK)===yt.TOUCH_DOLLY_TRUCK||(this._state&yt.TOUCH_DOLLY_OFFSET)===yt.TOUCH_DOLLY_OFFSET||(this._state&yt.TOUCH_DOLLY_ROTATE)===yt.TOUCH_DOLLY_ROTATE)&&(this._sphericalEnd.radius=this._spherical.radius,this._radiusVelocity.value=0),((this._state&yt.ZOOM)===yt.ZOOM||(this._state&yt.TOUCH_ZOOM)===yt.TOUCH_ZOOM||(this._state&yt.TOUCH_ZOOM_TRUCK)===yt.TOUCH_ZOOM_TRUCK||(this._state&yt.TOUCH_ZOOM_OFFSET)===yt.TOUCH_ZOOM_OFFSET||(this._state&yt.TOUCH_ZOOM_ROTATE)===yt.TOUCH_ZOOM_ROTATE)&&(this._zoomEnd=this._zoom,this._zoomVelocity.value=0),((this._state&yt.OFFSET)===yt.OFFSET||(this._state&yt.TOUCH_OFFSET)===yt.TOUCH_OFFSET||(this._state&yt.TOUCH_DOLLY_OFFSET)===yt.TOUCH_DOLLY_OFFSET||(this._state&yt.TOUCH_ZOOM_OFFSET)===yt.TOUCH_ZOOM_OFFSET)&&(this._focalOffsetEnd.copy(this._focalOffset),this._focalOffsetVelocity.set(0,0,0)),this.dispatchEvent({type:"controlstart"})}},m=()=>{if(!this._enabled)return;nC(this._activePointers,vo);let e=!!Fn.isBrowser&&this._domElement&&document.pointerLockElement===this._domElement,t=e?-this._activePointers[0].deltaX:n.x-vo.x,a=e?-this._activePointers[0].deltaY:n.y-vo.y;if(n.copy(vo),((this._state&yt.ROTATE)===yt.ROTATE||(this._state&yt.TOUCH_ROTATE)===yt.TOUCH_ROTATE||(this._state&yt.TOUCH_DOLLY_ROTATE)===yt.TOUCH_DOLLY_ROTATE||(this._state&yt.TOUCH_ZOOM_ROTATE)===yt.TOUCH_ZOOM_ROTATE)&&(this._rotateInternal(t,a),this._isUserControllingRotate=!0),(this._state&yt.DOLLY)===yt.DOLLY||(this._state&yt.ZOOM)===yt.ZOOM){let e=this.dollyToCursor?(i.x-this._elementRect.x)/this._elementRect.width*2-1:0,t=this.dollyToCursor?(i.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&yt.DOLLY)===yt.DOLLY?(this._dollyInternal(a*sC,e,t),this._isUserControllingDolly=!0):(this._zoomInternal(a*sC,e,t),this._isUserControllingZoom=!0)}if((this._state&yt.TOUCH_DOLLY)===yt.TOUCH_DOLLY||(this._state&yt.TOUCH_ZOOM)===yt.TOUCH_ZOOM||(this._state&yt.TOUCH_DOLLY_TRUCK)===yt.TOUCH_DOLLY_TRUCK||(this._state&yt.TOUCH_ZOOM_TRUCK)===yt.TOUCH_ZOOM_TRUCK||(this._state&yt.TOUCH_DOLLY_OFFSET)===yt.TOUCH_DOLLY_OFFSET||(this._state&yt.TOUCH_ZOOM_OFFSET)===yt.TOUCH_ZOOM_OFFSET||(this._state&yt.TOUCH_DOLLY_ROTATE)===yt.TOUCH_DOLLY_ROTATE||(this._state&yt.TOUCH_ZOOM_ROTATE)===yt.TOUCH_ZOOM_ROTATE){let e=vo.x-this._activePointers[1].clientX,t=vo.y-this._activePointers[1].clientY,i=Math.sqrt(e*e+t*t),a=r.y-i;r.set(0,i);let s=this.dollyToCursor?(n.x-this._elementRect.x)/this._elementRect.width*2-1:0,o=this.dollyToCursor?(n.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&yt.TOUCH_DOLLY)===yt.TOUCH_DOLLY||(this._state&yt.TOUCH_DOLLY_ROTATE)===yt.TOUCH_DOLLY_ROTATE||(this._state&yt.TOUCH_DOLLY_TRUCK)===yt.TOUCH_DOLLY_TRUCK||(this._state&yt.TOUCH_DOLLY_OFFSET)===yt.TOUCH_DOLLY_OFFSET?(this._dollyInternal(a*sC,s,o),this._isUserControllingDolly=!0):(this._zoomInternal(a*sC,s,o),this._isUserControllingZoom=!0)}((this._state&yt.TRUCK)===yt.TRUCK||(this._state&yt.TOUCH_TRUCK)===yt.TOUCH_TRUCK||(this._state&yt.TOUCH_DOLLY_TRUCK)===yt.TOUCH_DOLLY_TRUCK||(this._state&yt.TOUCH_ZOOM_TRUCK)===yt.TOUCH_ZOOM_TRUCK)&&(this._truckInternal(t,a,!1),this._isUserControllingTruck=!0),((this._state&yt.OFFSET)===yt.OFFSET||(this._state&yt.TOUCH_OFFSET)===yt.TOUCH_OFFSET||(this._state&yt.TOUCH_DOLLY_OFFSET)===yt.TOUCH_DOLLY_OFFSET||(this._state&yt.TOUCH_ZOOM_OFFSET)===yt.TOUCH_ZOOM_OFFSET)&&(this._truckInternal(t,a,!0),this._isUserControllingOffset=!0),this.dispatchEvent({type:"control"})},g=()=>{nC(this._activePointers,vo),n.copy(vo),0===this._activePointers.length&&this._domElement&&(this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("mousemove",l),this._domElement.removeEventListener("pointerup",h),this._domElement.removeEventListener("mouseup",c),this.dispatchEvent({type:"controlend"}))};this._addAllEventListeners=e=>{this._domElement=e,this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none",this._domElement.addEventListener("pointerdown",a),Fct&&this._domElement.addEventListener("mousedown",s),this._domElement.addEventListener("pointercancel",h),this._domElement.addEventListener("wheel",d),this._domElement.addEventListener("contextmenu",p)},this._removeAllEventListeners=()=>{this._domElement&&(this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect="",this._domElement.removeEventListener("pointerdown",a),this._domElement.removeEventListener("mousedown",s),this._domElement.removeEventListener("pointercancel",h),this._domElement.removeEventListener("wheel",d),this._domElement.removeEventListener("contextmenu",p),this._domElement.removeEventListener("pointermove",o),this._domElement.removeEventListener("mousemove",l),this._domElement.removeEventListener("pointerup",h),this._domElement.removeEventListener("mouseup",c))},this.cancel=()=>{this._state!==yt.NONE&&(this._state=yt.NONE,this._activePointers.length=0,g())},t&&this.connect(t),this.update(0)}static install(e){nr=e.THREE,Ufe=Object.freeze(new nr.Vector3(0,0,0)),aC=Object.freeze(new nr.Vector3(0,1,0)),v5=Object.freeze(new nr.Vector3(0,0,1)),vo=new nr.Vector2,ar=new nr.Vector3,Ei=new nr.Vector3,ry=new nr.Vector3,Gu=new nr.Vector3,qu=new nr.Vector3,qm=new nr.Vector3,Hfe=new nr.Vector3,Vfe=new nr.Vector3,Pc=new nr.Spherical,dE=new nr.Spherical,iy=new nr.Box3,zfe=new nr.Box3,y5=new nr.Sphere,Gfe=new nr.Quaternion,x5=new nr.Quaternion,b5=new nr.Matrix4,oC=new nr.Raycaster}static get ACTION(){return yt}get camera(){return this._camera}set camera(e){this._camera=e,this.updateCameraUp(),this._camera.updateProjectionMatrix(),this._updateNearPlaneCorners(),this._needsUpdate=!0}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._domElement&&(e?(this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none"):(this.cancel(),this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect=""))}get active(){return!this._hasRested}get currentAction(){return this._state}get distance(){return this._spherical.radius}set distance(e){this._spherical.radius===e&&this._sphericalEnd.radius===e||(this._spherical.radius=e,this._sphericalEnd.radius=e,this._needsUpdate=!0)}get azimuthAngle(){return this._spherical.theta}set azimuthAngle(e){this._spherical.theta===e&&this._sphericalEnd.theta===e||(this._spherical.theta=e,this._sphericalEnd.theta=e,this._needsUpdate=!0)}get polarAngle(){return this._spherical.phi}set polarAngle(e){this._spherical.phi===e&&this._sphericalEnd.phi===e||(this._spherical.phi=e,this._sphericalEnd.phi=e,this._needsUpdate=!0)}get boundaryEnclosesCamera(){return this._boundaryEnclosesCamera}set boundaryEnclosesCamera(e){this._boundaryEnclosesCamera=e,this._needsUpdate=!0}addEventListener(e,t){super.addEventListener(e,t)}removeEventListener(e,t){super.removeEventListener(e,t)}rotate(e,t,i=!1){return this.rotateTo(this._sphericalEnd.theta+e,this._sphericalEnd.phi+t,i)}rotateAzimuthTo(e,t=!1){return this.rotateTo(e,this._sphericalEnd.phi,t)}rotatePolarTo(e,t=!1){return this.rotateTo(this._sphericalEnd.theta,e,t)}rotateTo(e,t,i=!1){this._isUserControllingRotate=!1;let n=Gm(e,this.minAzimuthAngle,this.maxAzimuthAngle),r=Gm(t,this.minPolarAngle,this.maxPolarAngle);this._sphericalEnd.theta=n,this._sphericalEnd.phi=r,this._sphericalEnd.makeSafe(),this._needsUpdate=!0,i||(this._spherical.theta=this._sphericalEnd.theta,this._spherical.phi=this._sphericalEnd.phi);let a=!i||zi(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&zi(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold);return this._createOnRestPromise(a)}dolly(e,t=!1){return this.dollyTo(this._sphericalEnd.radius-e,t)}dollyTo(e,t=!1){this._isUserControllingDolly=!1;let i=this._sphericalEnd.radius,n=Gm(e,this.minDistance,this.maxDistance);if(this.colliderMeshes.length>=1){let e=this._collisionTest(),t=zi(e,this._spherical.radius);if(!(i>n)&&t)return Promise.resolve();this._sphericalEnd.radius=Math.min(n,e)}else this._sphericalEnd.radius=n;this._needsUpdate=!0,t||(this._spherical.radius=this._sphericalEnd.radius);let r=!t||zi(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(r)}zoom(e,t=!1){return this.zoomTo(this._zoomEnd+e,t)}zoomTo(e,t=!1){this._isUserControllingZoom=!1,this._zoomEnd=Gm(e,this.minZoom,this.maxZoom),this._needsUpdate=!0,t||(this._zoom=this._zoomEnd);let i=!t||zi(this._zoom,this._zoomEnd,this.restThreshold);return this._createOnRestPromise(i)}pan(e,t,i=!1){return console.warn("`pan` has been renamed to `truck`"),this.truck(e,t,i)}truck(e,t,i=!1){this._camera.updateMatrix(),Gu.setFromMatrixColumn(this._camera.matrix,0),qu.setFromMatrixColumn(this._camera.matrix,1),Gu.multiplyScalar(e),qu.multiplyScalar(-t);let n=ar.copy(Gu).add(qu),r=Ei.copy(this._targetEnd).add(n);return this.moveTo(r.x,r.y,r.z,i)}forward(e,t=!1){ar.setFromMatrixColumn(this._camera.matrix,0),ar.crossVectors(this._camera.up,ar),ar.multiplyScalar(e);let i=Ei.copy(this._targetEnd).add(ar);return this.moveTo(i.x,i.y,i.z,t)}elevate(e,t=!1){return ar.copy(this._camera.up).multiplyScalar(e),this.moveTo(this._targetEnd.x+ar.x,this._targetEnd.y+ar.y,this._targetEnd.z+ar.z,t)}moveTo(e,t,i,n=!1){this._isUserControllingTruck=!1;let r=ar.set(e,t,i).sub(this._targetEnd);this._encloseToBoundary(this._targetEnd,r,this.boundaryFriction),this._needsUpdate=!0,n||this._target.copy(this._targetEnd);let a=!n||zi(this._target.x,this._targetEnd.x,this.restThreshold)&&zi(this._target.y,this._targetEnd.y,this.restThreshold)&&zi(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(a)}lookInDirectionOf(e,t,i,n=!1){let r=ar.set(e,t,i).sub(this._targetEnd).normalize().multiplyScalar(-this._sphericalEnd.radius);return this.setPosition(r.x,r.y,r.z,n)}fitToBox(e,t,{cover:i=!1,paddingLeft:n=0,paddingRight:r=0,paddingBottom:a=0,paddingTop:s=0}={}){let o=[],l=e.isBox3?iy.copy(e):iy.setFromObject(e);l.isEmpty()&&(console.warn("camera-controls: fitTo() cannot be used with an empty box. Aborting"),Promise.resolve());let h=m5(this._sphericalEnd.theta,p5),c=m5(this._sphericalEnd.phi,p5);o.push(this.rotateTo(h,c,t));let u=ar.setFromSpherical(this._sphericalEnd).normalize(),d=Gfe.setFromUnitVectors(u,v5),p=zi(Math.abs(u.y),1);p&&d.multiply(x5.setFromAxisAngle(aC,h)),d.multiply(this._yAxisUpSpaceInverse);let f=zfe.makeEmpty();Ei.copy(l.min).applyQuaternion(d),f.expandByPoint(Ei),Ei.copy(l.min).setX(l.max.x).applyQuaternion(d),f.expandByPoint(Ei),Ei.copy(l.min).setY(l.max.y).applyQuaternion(d),f.expandByPoint(Ei),Ei.copy(l.max).setZ(l.min.z).applyQuaternion(d),f.expandByPoint(Ei),Ei.copy(l.min).setZ(l.max.z).applyQuaternion(d),f.expandByPoint(Ei),Ei.copy(l.max).setY(l.min.y).applyQuaternion(d),f.expandByPoint(Ei),Ei.copy(l.max).setX(l.min.x).applyQuaternion(d),f.expandByPoint(Ei),Ei.copy(l.max).applyQuaternion(d),f.expandByPoint(Ei),f.min.x-=n,f.min.y-=a,f.max.x+=r,f.max.y+=s,d.setFromUnitVectors(v5,u),p&&d.premultiply(x5.invert()),d.premultiply(this._yAxisUpSpace);let m=f.getSize(ar),g=f.getCenter(Ei).applyQuaternion(d);if(If(this._camera)){let e=this.getDistanceToFitBox(m.x,m.y,m.z,i);o.push(this.moveTo(g.x,g.y,g.z,t)),o.push(this.dollyTo(e,t)),o.push(this.setFocalOffset(0,0,0,t))}else if(Vu(this._camera)){let e=this._camera,n=e.right-e.left,r=e.top-e.bottom,a=i?Math.max(n/m.x,r/m.y):Math.min(n/m.x,r/m.y);o.push(this.moveTo(g.x,g.y,g.z,t)),o.push(this.zoomTo(a,t)),o.push(this.setFocalOffset(0,0,0,t))}return Promise.all(o)}fitToSphere(e,t){let i=[],n=e instanceof nr.Sphere?y5.copy(e):Lf.createBoundingSphere(e,y5);if(i.push(this.moveTo(n.center.x,n.center.y,n.center.z,t)),If(this._camera)){let e=this.getDistanceToFitSphere(n.radius);i.push(this.dollyTo(e,t))}else if(Vu(this._camera)){let e=this._camera.right-this._camera.left,r=this._camera.top-this._camera.bottom,a=2*n.radius,s=Math.min(e/a,r/a);i.push(this.zoomTo(s,t))}return i.push(this.setFocalOffset(0,0,0,t)),Promise.all(i)}setLookAt(e,t,i,n,r,a,s=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1;let o=Ei.set(n,r,a),l=ar.set(e,t,i);this._targetEnd.copy(o),this._sphericalEnd.setFromVector3(l.sub(o).applyQuaternion(this._yAxisUpSpace)),this.normalizeRotations(),this._needsUpdate=!0,s||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));let h=!s||zi(this._target.x,this._targetEnd.x,this.restThreshold)&&zi(this._target.y,this._targetEnd.y,this.restThreshold)&&zi(this._target.z,this._targetEnd.z,this.restThreshold)&&zi(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&zi(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&zi(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(h)}lerpLookAt(e,t,i,n,r,a,s,o,l,h,c,u,d,p=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1;let f=ar.set(n,r,a),m=Ei.set(e,t,i);Pc.setFromVector3(m.sub(f).applyQuaternion(this._yAxisUpSpace));let g=ry.set(h,c,u),v=Ei.set(s,o,l);dE.setFromVector3(v.sub(g).applyQuaternion(this._yAxisUpSpace)),this._targetEnd.copy(f.lerp(g,d));let y=dE.theta-Pc.theta,x=dE.phi-Pc.phi,b=dE.radius-Pc.radius;this._sphericalEnd.set(Pc.radius+b*d,Pc.phi+x*d,Pc.theta+y*d),this.normalizeRotations(),this._needsUpdate=!0,p||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));let _=!p||zi(this._target.x,this._targetEnd.x,this.restThreshold)&&zi(this._target.y,this._targetEnd.y,this.restThreshold)&&zi(this._target.z,this._targetEnd.z,this.restThreshold)&&zi(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&zi(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&zi(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(_)}setPosition(e,t,i,n=!1){return this.setLookAt(e,t,i,this._targetEnd.x,this._targetEnd.y,this._targetEnd.z,n)}setTarget(e,t,i,n=!1){let r=this.getPosition(ar),a=this.setLookAt(r.x,r.y,r.z,e,t,i,n);return this._sphericalEnd.phi=Gm(this.polarAngle,this.minPolarAngle,this.maxPolarAngle),a}setFocalOffset(e,t,i,n=!1){this._isUserControllingOffset=!1,this._focalOffsetEnd.set(e,t,i),this._needsUpdate=!0,n||this._focalOffset.copy(this._focalOffsetEnd);let r=!n||zi(this._focalOffset.x,this._focalOffsetEnd.x,this.restThreshold)&&zi(this._focalOffset.y,this._focalOffsetEnd.y,this.restThreshold)&&zi(this._focalOffset.z,this._focalOffsetEnd.z,this.restThreshold);return this._createOnRestPromise(r)}setOrbitPoint(e,t,i){this._camera.updateMatrixWorld(),Gu.setFromMatrixColumn(this._camera.matrixWorldInverse,0),qu.setFromMatrixColumn(this._camera.matrixWorldInverse,1),qm.setFromMatrixColumn(this._camera.matrixWorldInverse,2);let n=ar.set(e,t,i),r=n.distanceTo(this._camera.position),a=n.sub(this._camera.position);Gu.multiplyScalar(a.x),qu.multiplyScalar(a.y),qm.multiplyScalar(a.z),ar.copy(Gu).add(qu).add(qm),ar.z=ar.z+r,this.dollyTo(r,!1),this.setFocalOffset(-ar.x,ar.y,-ar.z,!1),this.moveTo(e,t,i,!1)}setBoundary(e){if(!e)return this._boundary.min.set(-1/0,-1/0,-1/0),this._boundary.max.set(1/0,1/0,1/0),void(this._needsUpdate=!0);this._boundary.copy(e),this._boundary.clampPoint(this._targetEnd,this._targetEnd),this._needsUpdate=!0}setViewport(e,t,i,n){null!==e?(this._viewport=this._viewport||new nr.Vector4,"number"==typeof e?this._viewport.set(e,t,i,n):this._viewport.copy(e)):this._viewport=null}getDistanceToFitBox(e,t,i,n=!1){if(rC(this._camera,"getDistanceToFitBox"))return this._spherical.radius;let r=e/t,a=this._camera.getEffectiveFOV()*ey,s=this._camera.aspect;return.5*((n?r>s:rt.pointerId===e))}_findPointerByMouseButton(e){return this._activePointers.find((t=>t.mouseButton===e))}_encloseToBoundary(e,t,i){let n=t.lengthSq();if(0===n)return e;let r=Ei.copy(t).add(e),a=this._boundary.clampPoint(r,ry).sub(r),s=a.lengthSq();if(0===s)return e.add(t);if(s===n)return e;if(0===i)return e.add(t).add(a);{let n=1+i*s/t.dot(a);return e.add(Ei.copy(t).multiplyScalar(n)).add(a.multiplyScalar(1-i))}}_updateNearPlaneCorners(){if(If(this._camera)){let e=this._camera,t=e.near,i=e.getEffectiveFOV()*ey,n=Math.tan(.5*i)*t,r=n*e.aspect;this._nearPlaneCorners[0].set(-r,-n,0),this._nearPlaneCorners[1].set(r,-n,0),this._nearPlaneCorners[2].set(r,n,0),this._nearPlaneCorners[3].set(-r,n,0)}else if(Vu(this._camera)){let e=this._camera,t=1/e.zoom,i=e.left*t,n=e.right*t,r=e.top*t,a=e.bottom*t;this._nearPlaneCorners[0].set(i,r,0),this._nearPlaneCorners[1].set(n,r,0),this._nearPlaneCorners[2].set(n,a,0),this._nearPlaneCorners[3].set(i,a,0)}}_collisionTest(){let e=1/0;if(!(this.colliderMeshes.length>=1)||rC(this._camera,"_collisionTest"))return e;let t=ar.setFromSpherical(this._spherical).divideScalar(this._spherical.radius);b5.lookAt(Ufe,t,this._camera.up);for(let i=0;i<4;i++){let n=Ei.copy(this._nearPlaneCorners[i]);n.applyMatrix4(b5);let r=ry.addVectors(this._target,n);oC.set(r,t),oC.far=this._spherical.radius+1;let a=oC.intersectObjects(this.colliderMeshes);0!==a.length&&a[0].distance{let t=()=>{this.removeEventListener("rest",t),e()};this.addEventListener("rest",t)})))}_addAllEventListeners(e){}_removeAllEventListeners(){}get dampingFactor(){return console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead."),0}set dampingFactor(e){console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead.")}get draggingDampingFactor(){return console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead."),0}set draggingDampingFactor(e){console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.")}static createBoundingSphere(e,t=new nr.Sphere){let i=t,n=i.center;iy.makeEmpty(),e.traverseVisible((e=>{e.isMesh&&iy.expandByObject(e)})),iy.getCenter(n);let r=0;return e.traverseVisible((e=>{if(!e.isMesh)return;let t=e,i=t.geometry.clone();if(i.applyMatrix4(t.matrixWorld),i.isBufferGeometry){let e=i.attributes.position;for(let t=0,i=e.count;t{if(this.enabled){switch(e.code){case this.keys.up:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(0,1),this._isUserControllingRotate=!0):(this._truckInternal(0,this.keyTruckSpeed,!1),this._isUserControllingTruck=!0);break;case this.keys.bottom:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(0,-1),this._isUserControllingRotate=!0):(this._truckInternal(0,-this.keyTruckSpeed,!1),this._isUserControllingTruck=!0);break;case this.keys.left:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(1,0),this._isUserControllingRotate=!0):(this._truckInternal(this.keyTruckSpeed,0,!1),this._isUserControllingTruck=!0);break;case this.keys.right:e.ctrlKey||e.metaKey||e.shiftKey?(this._rotateInternal(-1,0),this._isUserControllingRotate=!0):(this._truckInternal(-this.keyTruckSpeed,0,!1),this._isUserControllingTruck=!0)}this.dispatchEvent({type:"control"})}},this.onKeyUp=e=>{this.dispatchEvent({type:"controlend"})},this._getClientRect(this._elementRect),this.dollySpeedBackup=this.dollySpeed,this.azimuthRotateSpeedBackup=this.azimuthRotateSpeed,this.polarRotateSpeedBackup=this.polarRotateSpeed,this.truckSpeedBackup=this.truckSpeed}get enableZoom(){return!!this.dollySpeed}set enableZoom(e){e?this.dollySpeed=this.dollySpeedBackup:(this.dollySpeedBackup=this.dollySpeed,this.dollySpeed=0)}get enableRotate(){return!!this.azimuthRotateSpeed||!!this.polarRotateSpeed}set enableRotate(e){e?(this.azimuthRotateSpeed=this.azimuthRotateSpeedBackup,this.polarRotateSpeed=this.polarRotateSpeedBackup):(this.azimuthRotateSpeedBackup=this.azimuthRotateSpeed,this.polarRotateSpeedBackup=this.polarRotateSpeed,this.azimuthRotateSpeed=0,this.polarRotateSpeed=0)}get enableTruck(){return!!this.truckSpeed}set enableTruck(e){e?this.truckSpeed=this.truckSpeedBackup:(this.truckSpeedBackup=this.truckSpeed,this.truckSpeed=0)}listenToKeyEvents(){var e,t;null==(e=this._domElement)||e.addEventListener("keydown",this.onKeyDown),null==(t=this._domElement)||t.addEventListener("keyup",this.onKeyUp)}stopListenToKeyEvents(){var e,t;null==(e=this._domElement)||e.removeEventListener("keydown",this.onKeyDown),null==(t=this._domElement)||t.removeEventListener("keyup",this.onKeyUp)}dispose(){super.dispose(),this.stopListenToKeyEvents()}},Ol=class{constructor(e){this.name=e}},lC=class{constructor(e){this.history=[],this.step=0,this.maxCount=50,this.isBatchCommand=!1,this.batchCommands=[],this.maxCount=e||this.maxCount}addCommand(e){this.isBatchCommand?this.batchCommands.push(e):(this.history.length===this.maxCount&&this.history.shift(),this.step!==this.history.length&&this.history.splice(this.step),this.history.push(e),this.step++)}startTransaction(){this.isBatchCommand=!0}endTransaction(){this.history.length===this.maxCount&&this.history.shift(),this.step!==this.history.length&&this.history.splice(this.step),this.batchCommands.length>0&&(this.history.push(this.batchCommands.slice()),this.step++),this.isBatchCommand=!1,this.batchCommands=[]}undo(){if(this.canUndo())return!1;this.step--;let e=this.history[this.step];return e&&(Array.isArray(e)?e.forEach((e=>e.undo())):e.undo()),!0}redo(){if(this.canRedo())return!1;this.step++;let e=this.history[this.step-1];return e&&(Array.isArray(e)?e.forEach((e=>e.redo())):e.redo()),!0}getCommands(){return this.history}canUndo(){return this.step<=0}canRedo(){return this.step>=this.history.length}clear(){this.history=[],this.step=0}destroy(){this.clear(),this.maxCount=0}},fE=class extends Ol{constructor(e,t){super("AddMarkup"),this.manager=e,this.data=t}undo(){let e=this.manager.getMarkupById(this.data.id);return!!e&&(this.manager.removeMarkup(e),!0)}redo(){let e=this.manager.createMarkup(this.data);return!!e&&(this.manager.addMarkup(e),!0)}},cC=class extends Ol{constructor(e,t,i){super("UpdateMarkup"),this.manager=e,this.oldData=t,this.newData=i}undo(){let e=this.manager.getMarkupById(this.oldData.id);return!!e&&(this.manager.updateMarkup(e,this.oldData),!0)}redo(){let e=this.manager.getMarkupById(this.newData.id);return!!e&&(this.manager.updateMarkup(e,this.newData),!0)}},Wm=class extends Ol{constructor(e,t){super("RemoveMarkup"),this.manager=e,this.data=t}undo(){let e=this.manager.createMarkup(this.data);return!!e&&(this.manager.addMarkup(e),!0)}redo(){let e=this.manager.getMarkupById(this.data.id);return!!e&&(this.manager.removeMarkup(e),!0)}},pE=class extends Ol{constructor(e,t){super("AddMeasurement"),this.manager=e,this.data=t}undo(){let e=this.manager.getById(this.data.id);return!!e&&(this.manager.remove(e),!0)}redo(){let e=this.manager.create(this.data);return!!e&&(this.manager.add(e),!0)}},sy=class extends Ol{constructor(e,t){super("RemoveMeasurement"),this.manager=e,this.data=t}undo(){let e=this.manager.create(this.data);return!!e&&(this.manager.add(e),!0)}redo(){let e=this.manager.getById(this.data.id);return!!e&&(this.manager.remove(e),!0)}},qfe=new D,mE=class extends Ss{constructor(e,t){var i;super(),this.drawableList=new Zo("markup"),this.lineWidth=2,this.lineColor=[1,0,0,1],this.fillColor=[1,0,0,.3],this.fontSize=20,this.mouseDown=!1,this.mouseDownPositionX=void 0,this.mouseDownPositionY=void 0,this.isSelectLeaderText=!1,this.isDrawing=!1,this.tempPoints=[],this.activated=!1,this.handleDbClick=()=>{},this.handleInputMousemove=e=>{if(!this.mouseDown&&"CloudRectWithTextMarkup"===this.type&&this.isDrawing&&this.creatingShape){let t=an.getScreenCoordinateByEvent(e,this.viewerCanvas);this.creatingShape.updateInputPosition(this.mousedownPoint,t),this.render()}},this.mousedown=e=>{var t;if(e.pointers&&e.pointers.length>1)return;let i=this.pickThreejsPositionByMouse(e);if(i){if(i.z=0,this.mouseDownPositionX=i.x,this.mouseDownPositionY=i.y,this.mousedownPoint=new xe(e.x,e.y),0===e.button&&(this.mouseDown=!0),2===e.button)return void(this.isDrawing&&this.endDraw(this.creatingShape));if(this.selectedShape&&(this.selectedShape.selected=!1,this.selectedShape=void 0,this.render()),!this.isDrawing){let e=this.drawableList.getDrawableByPosition(i);e&&(this.selectedShape=e,e.selected=!0,e instanceof Vm&&(this.isSelectLeaderText=e.isLeaderTextSelected(i)),this.render())}if(this.isCreateTextMode()&&this.mouseDown&&!this.selectedShape){this.creatingShape||(this.creatingShape=this.drawText(i,""));let t=this.creatingShape;0===t.text.length?(t.setTolerance(this.viewer.getPixelSizeInWorldCoord()),t.update([i]),t.addInput(this,e.x,e.y)):(t.exitEditing(),this.addMarkup(t,!1),this.endDraw(t)),this.render()}if(this.isCreateLineMode()&&this.mouseDown&&!this.selectedShape){if(this.tempPoints.length>0){let e=this.tempPoints[0];if(qfe.subVectors(e,i).length()<5*this.viewer.getPixelSizeInWorldCoord())return i=this.tempPoints[0].clone(),this.tempPoints.push(i),void this.endDraw(this.creatingShape)}if(this.isDrawing=!0,this.tempPoints.push(i),!this.creatingShape){let e=this.creatingShape=this.drawLine([...this.tempPoints,i]);e&&this.addMarkup(e,!1)}this.creatingShape&&(this.creatingShape.update([...this.tempPoints,i]),this.render()),this.dispatchEvent("StartDraw",this.creatingShape)}if(this.isCreateDotMode()&&this.mouseDown&&!this.selectedShape){if(!this.creatingShape){let e=this.creatingShape=this.drawShape(i);e&&this.addMarkup(e,!1)}this.isDrawing=!0,this.render()}null==(t=this.creatingShape)||t.setTolerance(this.viewer.getPixelSizeInWorldCoord())}},this.mousemove=e=>{if(e.pointers&&e.pointers.length>1)return;let t=this.pickThreejsPositionByMouse(e);if(t)if(this.selectedShape){if(this.mouseDown&&void 0!==this.mouseDownPositionX&&void 0!==this.mouseDownPositionY){this.isEditing()||(this.initialDataForEditing=this.selectedShape.getData());let e=t.x-this.mouseDownPositionX,i=t.y-this.mouseDownPositionY;this.selectedShape instanceof Vm&&this.isSelectLeaderText?this.selectedShape.translateLeaderText(e,i):this.selectedShape.translate(e,i),this.render(),this.mouseDownPositionX=t.x,this.mouseDownPositionY=t.y}}else{if(this.isCreateDotMode())return;if(this.mouseDown&&this.isCreateShapeMode()&&void 0!==this.mouseDownPositionX&&void 0!==this.mouseDownPositionY){let e=new D(this.mouseDownPositionX,this.mouseDownPositionY,0);if(!this.creatingShape){let i=this.creatingShape=this.drawShape(e,t);i&&this.addMarkup(i,!1)}this.creatingShape.update([e,t]),this.isDrawing=!0,this.render()}if(this.isCreateLineMode()&&this.tempPoints.length>0&&this.isDrawing){let e=this.tempPoints[0];qfe.subVectors(e,t).length()<5*this.viewer.getPixelSizeInWorldCoord()&&(t=this.tempPoints[0].clone()),this.creatingShape.update([...this.tempPoints,t]),this.render()}}},this.mouseup=e=>{if(this.mouseDown=!1,this.selectedShape&&this.isEditing()&&this.endEdit(this.selectedShape),this.isCreateShapeMode()&&this.isDrawing&&this.creatingShape)if("LeaderLineMarkup"===this.type){let t=this.creatingShape;t.isEditing?t.exitEditing():(t.setFontSize(this.fontSize*this.viewer.getPixelSizeInWorldCoord()),t.addInput(this,e.x,e.y)),t.addEventListener("ExitEditing",(()=>{this.isDrawing=!1,this.endDraw(this.creatingShape)}))}else if("CloudRectWithTextMarkup"===this.type){let t=this.creatingShape;t.setFontSize(this.fontSize*this.viewer.getPixelSizeInWorldCoord()),t.addInput(this,e.x,e.y),t.addEventListener("ExitEditing",(()=>{this.isDrawing=!1,this.endDraw(this.creatingShape)}))}else this.endDraw(this.creatingShape)},this.keydown=e=>{var t;"Delete"===e.code?this.selectedShape&&(this.viewer.hasEventListener("BeforeRemoveMarkup")?this.viewer.dispatchEvent("BeforeRemoveMarkup",this.confirmToRemove.bind(this)):(this.removeMarkup(this.selectedShape),null==(t=this.viewer.undoRedoManager)||t.addCommand(new Wm(this,this.selectedShape.getData())),this.selectedShape=void 0)):"Escape"===e.code&&this.cancelDraw(this.creatingShape)},this.viewer=e,this.inputManager=t,this.overlayRender=this.viewer.overlayRender,null==(i=this.overlayRender)||i.addDrawableList(this.drawableList)}get viewerCanvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}setMarkupVisibility(e,t){let i=this.drawableList.getDrawables().get(e);return!!i&&(i.visible!==t&&(i.visible=t,this.render()),!0)}setMarkupsVisibility(e){let t=!1;this.drawableList.getDrawables().forEach((i=>{i.visible!==e&&(i.visible=e,t=!0)})),t&&this.render()}clearAll(){this.drawableList.clear(),this.isDrawing&&this.reset(),this.render()}isMarkupActive(){return this.activated}createMobileExitButton(){let e=this.viewer.widgetContainer,t=document.createElement("button");return t.innerText="X",t.style.cssText="position: absolute;right: 5%; top: 5%;background-color: #000000;color: #ffffff;padding: 3px 10px;font-weight: bolder;",null==e||e.appendChild(t),this.exitButton=t,this.exitButton.style.display="none",t.addEventListener("touchstart",(()=>{this.isDrawing&&this.endDraw(this.creatingShape),this.exitButton&&(this.exitButton.style.display="none")})),this.addEventListener("StartDraw",(()=>{this.exitButton&&(this.exitButton.style.display="inline")})),this.addEventListener("EndDraw",(()=>{this.exitButton&&(this.exitButton.style.display="none")})),this.exitButton}activate(){this.activated=!0,Fn.isMobile?(this.inputManager.addEventListener("touchstart",this.mousedown),this.inputManager.addEventListener("touchmove",this.mousemove),this.inputManager.addEventListener("touchend",this.mouseup)):(this.inputManager.addEventListener("mousedown",this.mousedown),this.inputManager.addEventListener("mousemove",this.mousemove),this.inputManager.addEventListener("mouseup",this.mouseup),this.inputManager.addEventListener("dblclick",this.handleDbClick)),this.inputManager.addEventListener("keydown",this.keydown),window.addEventListener("mousemove",this.handleInputMousemove);let e=this.viewer.controls;this.tempKey=e.mouseButtons.left,e.mouseButtons.left=yt.NONE,this.tempTouch=e.touches.one,e.touches.one=yt.NONE,this.tempArrowKeys=e.keys,e.keys={},this.render()}deactivate(){this.activated=!1,Fn.isMobile?(this.inputManager.removeEventListener("touchstart",this.mousedown),this.inputManager.removeEventListener("touchmove",this.mousemove),this.inputManager.removeEventListener("touchend",this.mouseup)):(this.inputManager.removeEventListener("mousedown",this.mousedown),this.inputManager.removeEventListener("mousemove",this.mousemove),this.inputManager.removeEventListener("mouseup",this.mouseup),this.inputManager.removeEventListener("dblclick",this.handleDbClick)),this.inputManager.removeEventListener("keydown",this.keydown),window.removeEventListener("mousemove",this.handleInputMousemove),this.viewer.controls.mouseButtons.left=this.tempKey,this.viewer.controls.keys=this.tempArrowKeys,this.viewer.controls.touches.one=this.tempTouch,this.mouseDown=!1,this.tempPoints=[],this.isDrawing=!1,this.creatingShape=void 0,this.selectedShape&&(this.selectedShape.selected=!1,this.selectedShape=void 0),this.render()}getActiveMarkupType(){return this.type}setDrawType(e){this.type=e,this.reset()}setLineWidth(e){this.lineWidth=e}getLineWidth(){return this.lineWidth}setLineColor(e){this.lineColor=e}getLineColor(){return this.lineColor}setFillColor(e){this.fillColor=e}getFillColor(){return this.fillColor}setFontSize(e){this.fontSize=e}getFontSize(){return this.fontSize}pickPositionByScreenPoint(e){let t,i=an.screen2Ndc(e,this.camera,this.viewerCanvas);this.raycaster.layers.set(10),this.raycaster.setFromCamera(i,this.camera);let n=this.viewer.scene,r=this.raycaster.intersectObject(this.viewer.groundPlane||n)||[];return r.length>0&&(t=r[0].point,t.z=0),t}pickThreejsPositionByMouse(e){return this.pickPositionByScreenPoint(new xe(e.x,e.y))}confirmToRemove(e){var t;this.selectedShape&&e&&(this.removeMarkup(this.selectedShape),null==(t=this.viewer.undoRedoManager)||t.addCommand(new Wm(this,this.selectedShape.getData())),this.selectedShape=void 0)}isEditing(){return!!this.initialDataForEditing}endEdit(e){var t;if(!this.initialDataForEditing)return;let i=e.getData();this.viewer.dispatchEvent("MarkupUpdated",{oldData:this.initialDataForEditing,newData:i}),this.dispatchEvent("EndEdit",e),null==(t=this.viewer.undoRedoManager)||t.addCommand(new cC(this,this.initialDataForEditing,i)),this.initialDataForEditing=void 0,this.isSelectLeaderText=!1}endDraw(e){var t;if("PolylineMarkup"===this.type&&this.creatingShape&&(this.tempPoints.length<2?(this.removeMarkup(this.creatingShape,!1),this.creatingShape=void 0):this.creatingShape.update(this.tempPoints)),e){let i=e.getData();this.viewer.dispatchEvent("MarkupAdded",i),null==(t=this.viewer.undoRedoManager)||t.addCommand(new fE(this,i))}this.dispatchEvent("EndDraw",e),this.reset()}cancelDraw(e){e&&this.removeMarkup(e,!1),this.reset()}reset(){this.tempPoints=[],this.isDrawing=!1,this.creatingShape=void 0,this.mouseDownPositionX=void 0,this.mouseDownPositionY=void 0,this.mousedownPoint=void 0,this.isSelectLeaderText=!1,this.selectedShape&&(this.selectedShape.selected=!1,this.selectedShape=void 0),this.render()}render(){var e;null==(e=this.overlayRender)||e.render()}addMarkup(e,t=!0){this.drawableList.addDrawable(e),this.render(),t&&this.viewer.dispatchEvent("MarkupAdded",e.getData())}updateMarkup(e,t,i=!0){this.drawableList.updateDrawable(e,t),this.render(),i&&this.viewer.dispatchEvent("MarkupUpdated",{oldData:e.getData(),newData:t})}removeMarkup(e,t=!0){this.drawableList.removeDrawable(e),this.render(),t&&this.viewer.dispatchEvent("MarkupRemoved",e.getData())}removeMarkupById(e){let t=this.getMarkupById(e);return!!t&&(this.removeMarkup(t,!1),!0)}createMarkup(e){return Un.createDrawable(e)}getMarkupById(e){return this.drawableList.getDrawableById(e)}getMarkupData(){return this.drawableList.getDrawableDatas()}setMarkupData(e){var t,i;null==(t=this.viewer.undoRedoManager)||t.startTransaction(),e.forEach((e=>{var t;this.addMarkup(this.createMarkup(e)),null==(t=this.viewer.undoRedoManager)||t.addCommand(new fE(this,e))})),null==(i=this.viewer.undoRedoManager)||i.endTransaction(),this.render()}isCreateLineMode(){return["PolylineMarkup","CloudLineMarkup"].includes(this.type)}isCreateDotMode(){return["DotMarkup"].includes(this.type)}isCreateTextMode(){return["TextMarkup"].includes(this.type)}isCreateShapeMode(){return["XMarkup","RectMarkup","CloudRectMarkup","CircleMarkup","EllipseMarkup","ArrowMarkup","LeaderLineMarkup","CloudRectWithTextMarkup","DotMarkup"].includes(this.type)}drawShape(e,t){let i=[[e.x,e.y]];return t&&i.push([t.x,t.y]),Un.createDrawable({id:St.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.type,points:i})}drawLine(e){return Un.createDrawable({id:St.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.type,points:e.map((e=>[e.x,e.y]))})}drawText(e,t){return Un.createDrawable({id:St.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize*this.viewer.getPixelSizeInWorldCoord(),type:this.type,text:t,points:[[e.x,e.y]]})}destroy(){this.deactivate(),this.clearAll()}},Wfe=new D,jm=class extends Hi{constructor(e,t){super(e),this.lineSegments=[],this.boxes=t,this.lineColor=[1,0,0,1],this.lineWidth=2,this.calculateCloudLineSegments(t)}calculateCloudLineSegments(e){var t;for(let i=0;i(e[e.Mesh=-1]="Mesh",e[e.MeshWithPattern=0]="MeshWithPattern",e[e.LineWithWidth=1]="LineWithWidth",e[e.Line=2]="Line",e[e.LineWithPattern=3]="LineWithPattern",e[e.Point=4]="Point",e[e.Text=5]="Text",e))(jfe||{}),Xm=["INSERT","DIMENSION"],r6t=Xi(Kfe(),1),uC=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215],ly=class{constructor(){this.pointer=0,this.eof=!1}},T5=Xi(Jfe(),1),Df=class{constructor(e,t){this.endian=t&&"big"===t?"big":"little",this.position=0,this.data=new DataView(e)}readAsciiString(e){if(this.data.byteLength=0&&e<=9)return this.readNullTerminatedString();if(e>=10&&e<=59)return this.reader.readFloat64();if(e>=60&&e<=79)return this.reader.readInt16();if(e>=90&&e<=99)return this.reader.readInt32();if(e>=100&&e<=109)return this.readNullTerminatedString();if(e>=110&&e<=149)return this.reader.readFloat64();if(e>=160&&e<=169)return this.reader.readInt64();if(e>=170&&e<=179)return this.reader.readInt16();if(e>=210&&e<=239)return this.reader.readFloat64();if(e>=270&&e<=289)return this.reader.readInt16();if(e>=290&&e<=299)return this.reader.readInt8()>0;if(e>=300&&e<=309)return this.readNullTerminatedString();if(e>=310&&e<=319)return epe(this.ReadBinaryData());if(e>=320&&e<=369)return this.readNullTerminatedString();if(e>=370&&e<=389)return this.reader.readInt16();if(e>=390&&e<=399)return this.readNullTerminatedString();if(e>=400&&e<=409)return this.reader.readInt16();if(e>=410&&e<=419)return this.readNullTerminatedString();if(e>=420&&e<=429)return this.reader.readInt32();if(e>=430&&e<=439)return this.readNullTerminatedString();if(e>=440&&e<=459)return this.reader.readInt32();if(e>=460&&e<=469)return this.reader.readFloat64();if(e>=470&&e<=481)return this.readNullTerminatedString();if(999===e)throw new Error("The comment group 999, is not used in binary DXF files at byte address!");return 1004===e?epe(this.ReadBinaryData()):e>=1e3&&e<=1009?this.readNullTerminatedString():e>=1010&&e<=1059?this.reader.readFloat64():e>=1060&&e<=1070?this.reader.readInt16():1071===e?this.reader.readInt32():void se.warn(`[DxfBinReader] Invalid code '${e}' at byte address ${this.reader.getPosition()}`)}readNullTerminatedString(){var e;this.decoder||(this.decoder=new TextDecoder("utf-8"));let t=0,i=this.reader.readInt8();for(;0!==i;)this.int8Array[t++]=i,i=this.reader.readInt8();if(0===t)return"";if(t>Qfe)return se.warn(`[DxfBinReader] Failed to read string! The number of bytes is ${t} !`),"";let n=this.int8Array.subarray(0,t),r=n.toString();if(this.caches.get(r))return this.caches.get(r);let a=null==(e=this.decoder)?void 0:e.decode(n);return this.caches.set(r,a),a}ReadBinaryData(){let e=this.reader.readUint8();return this.reader.readBytes(e)}};function epe(e){return Array.prototype.map.call(e,(e=>("00"+e.toString(16)).slice(-2))).join("")}var cy=class extends ly{constructor(e){super(),this.data=e}next(){if(!this.hasNext())throw this.eof?new Error("Cannot call 'next' after EOF group has been read"):new Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this.data[this.pointer]);let e={code:parseInt(this.data[this.pointer])};return this.pointer++,e.value=Bct(e.code,this.data[this.pointer].trim()),this.pointer++,0===e.code&&"EOF"===e.value&&(this.eof=!0),this.lastReadGroup=e,e}hasNext(){return!(this.eof||this.pointer>this.data.length-2)}isEOF(){return this.eof}};function Bct(e,t){return e>=0&&e<=9?t:e>=10&&e<=59?parseFloat(t):e>=60&&e<=99?parseInt(t):e>=100&&e<=109?t:e>=110&&e<=149?parseFloat(t):e>=160&&e<=179?parseInt(t):e>=210&&e<=239?parseFloat(t):e>=270&&e<=289?parseInt(t):e>=290&&e<=299?Uct(t):e>=300&&e<=369?t:e>=370&&e<=389?parseInt(t):e>=390&&e<=399?t:e>=400&&e<=409?parseInt(t):e>=410&&e<=419?t:e>=420&&e<=429?parseInt(t):e>=430&&e<=439?t:e>=440&&e<=459?parseInt(t):e>=460&&e<=469?parseFloat(t):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?t:e>=1010&&e<=1059?parseFloat(t):e>=1060&&e<=1071?parseInt(t):(se.info("WARNING: Group code does not have a defined type: %j",{code:e,value:t}),t)}function Uct(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}var rpe=Xi(kl(),1),Hct="OriginalHandle",Vct="OriginalType",zct="Outlines",tpe=["PROXY","REGION","INSERT","HATCH"];function Ym(e){return uC[e]}function kt(e){let t={},i=e.lastReadGroup,n=i.code;if(t.x=i.value,n+=10,i=e.next(),i.code!=n)throw new Error(`Expected code for point value to be ${n} but got ${i.code}`);return t.y=i.value,n+=10,i=e.next(),i.code!=n||(t.z=i.value,e.next()),t}function npe(e,t){let i=e.lastReadGroup,n=[];for(let r=0;r<16;r++){if(i.code!==t)throw new Error(`Expected code for matrix value to be ${t} but got ${i.code}`);n.push(i.value),i=e.next()}return n}function Nn(e,t){switch(t.code){case 0:e.type=t.value;break;case 5:e.handle=t.value;break;case 6:e.lineType=t.value.toUpperCase();break;case 8:e.layer=t.value;break;case 48:e.lineTypeScale=t.value,e.lineTypeScale<=0&&(e.lineTypeScale=1);break;case 60:e.visible=0===t.value;break;case 62:e.isTrueColor||(e.colorIndex=t.value,e.colorIndex<0&&se.warn("[DxfParser] a negative value of colorIndex indicates that the layer is turned off"),e.color=Ym(Math.abs(t.value)));break;case 67:e.inPaperSpace=0!==t.value;break;case 100:case 1001:break;case 330:e.ownerHandle=t.value;break;case 347:e.materialObjectHandle=t.value;break;case 370:e.lineweight=t.value;break;case 410:e.layoutName=t.value;break;case 420:e.isTrueColor=!0,e.color=t.value;break;case 1e3:if(t.value&&t.value.includes(Hct)){let i=t.value.split(":").map((e=>e.trim()));e.extendedData||(e.extendedData={}),e.extendedData.originalHandle=i[1]}if(e.extendedData&&e.extendedData.outlines)try{e.extendedData.outlines=JSON.parse(t.value||"[]")}catch(t){e.extendedData.outlines=void 0}if(t.value&&t.value.includes(zct)&&(e.extendedData||(e.extendedData={}),e.extendedData.outlines=[]),t.value&&t.value.includes(Vct)){let i=t.value.split(":").map((e=>e.trim()));e.extendedData||(e.extendedData={}),e.extendedData.originalType=i[1]}break;default:return!1}return!0}function Fl(e,t){switch(t.code){case 0:e.type=t.value;break;case 5:e.handle=t.value;break;case 330:e.ownerHandle=t.value;break;case 1e3:case 1001:break;default:return!1}return!0}var xE=class{constructor(){this.ForEntityName="3DFACE"}parseEntity(e,t){let i={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 70:if(0!==t.value){let e=Math.log2(t.value)-1;i.vertices.splice(e,1)}t=e.next();break;case 10:i.vertices=Gct(e,t),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}};function Gct(e,t){let i=[],n=!1,r=!1;for(let a=0;a<=4;a++){let a={};for(;!e.isEOF()&&0!==t.code&&!r;){switch(t.code){case 10:case 11:case 12:case 13:if(n){r=!0;continue}a.x=t.value,n=!0;break;case 20:case 21:case 22:case 23:a.y=t.value;break;case 30:case 31:case 32:case 33:a.z=t.value;break;default:return i}t=e.next()}(0,rpe.isEmpty)(a)||i.push(a),n=!1,r=!1}return i}var bE=class{constructor(){this.ForEntityName="ARC"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.center=kt(e),t=e.lastReadGroup;break;case 40:i.radius=t.value,t=e.next();break;case 50:i.startAngle=Math.PI/180*t.value,t=e.next();break;case 51:i.endAngle=Math.PI/180*t.value,i.angleLength=i.endAngle-i.startAngle,t=e.next();break;case 210:i.extrusionDirectionX=t.value,t=e.next();break;case 220:i.extrusionDirectionY=t.value,t=e.next();break;case 230:i.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},EE=class{constructor(){this.ForEntityName="ATTDEF"}parseEntity(e,t){let i={type:t.value,xScale:1,textStyle:"STANDARD"};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 1:i.text=t.value,t=e.next();break;case 2:i.tag=t.value,t=e.next();break;case 3:i.prompt=t.value,t=e.next();break;case 7:i.textStyle=t.value,t=e.next();break;case 10:i.startPoint=kt(e),t=e.lastReadGroup;break;case 11:i.endPoint=kt(e),t=e.lastReadGroup;break;case 39:i.thickness=t.value,t=e.next();break;case 40:i.textHeight=t.value,t=e.next();break;case 41:i.xScale=t.value,t=e.next();break;case 50:i.rotation=t.value,t=e.next();break;case 51:i.obliqueAngle=t.value,t=e.next();break;case 70:i.invisible=!!(1&t.value),i.constant=!!(2&t.value),i.verificationRequired=!!(4&t.value),i.preset=!!(8&t.value),t=e.next();break;case 71:i.backwards=!!(2&t.value),i.mirrored=!!(4&t.value),t=e.next();break;case 72:i.horizontalJustification=t.value,t=e.next();break;case 73:i.fieldLength=t.value,t=e.next();break;case 74:i.verticalJustification=t.value,t=e.next();break;case 100:t=e.next();break;case 210:i.extrusionDirectionX=t.value,t=e.next();break;case 220:i.extrusionDirectionY=t.value,t=e.next();break;case 230:i.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},_E=class{constructor(){this.ForEntityName="ATTRIB"}parseEntity(e,t){let i={type:t.value,xScale:1,textStyle:"STANDARD"};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 1:i.text=t.value,t=e.next();break;case 2:i.tag=t.value,t=e.next();break;case 3:i.prompt=t.value,t=e.next();break;case 7:i.textStyle=t.value,t=e.next();break;case 10:i.startPoint=kt(e),t=e.lastReadGroup;break;case 11:i.endPoint=kt(e),t=e.lastReadGroup;break;case 39:i.thickness=t.value,t=e.next();break;case 40:i.textHeight=t.value,t=e.next();break;case 41:i.xScale=t.value,t=e.next();break;case 50:i.rotation=t.value,t=e.next();break;case 51:i.obliqueAngle=t.value,t=e.next();break;case 70:i.invisible=!!(1&t.value),i.constant=!!(2&t.value),i.verificationRequired=!!(4&t.value),i.preset=!!(8&t.value),t=e.next();break;case 71:i.backwards=!!(2&t.value),i.mirrored=!!(4&t.value),t=e.next();break;case 72:i.horizontalJustification=t.value,t=e.next();break;case 73:i.fieldLength=t.value,t=e.next();break;case 74:i.verticalJustification=t.value,t=e.next();break;case 100:t=e.next();break;case 210:i.extrusionDirectionX=t.value,t=e.next();break;case 220:i.extrusionDirectionY=t.value,t=e.next();break;case 230:i.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},TE=class{constructor(){this.ForEntityName="CIRCLE"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.center=kt(e),t=e.lastReadGroup;break;case 40:i.radius=t.value,t=e.next();break;case 50:i.startAngle=Math.PI/180*t.value,t=e.next();break;case 51:let n=Math.PI/180*t.value;n=0&&i.push({angle:e,origin:r,delta:a,dashPattern:o})}return i}function Yct(e,t){let i=[],n=t.next();for(;i.length0&&(i.colorIndex=t.value,i.color=Ym(Math.abs(t.value))))}t=e.next();break;default:Nn(i,t),t=e.next()}return i}};function $ct(e){switch(e){case 40:return"DIMSCALE";case 41:return"DIMASZ";case 42:return"DIMEXO";case 44:return"DIMEXE";case 75:return"DIMSE1";case 76:return"DIMSE2";case 77:return"DIMTAD";case 140:return"DIMTXT";case 144:return"DIMLFAC";case 147:return"DIMGAP";case 176:return"DIMCLRD";case 178:return"DIMCLRT";case 271:return"DIMDEC";case 341:return"DIMLDRBLK";default:return null}}var PE=class{constructor(){this.ForEntityName="LINE"}parseEntity(e,t){let i={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.vertices.unshift(kt(e)),t=e.lastReadGroup;break;case 11:i.vertices.push(kt(e)),t=e.lastReadGroup;break;case 210:i.extrusionDirection=kt(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},IE=class{constructor(){this.ForEntityName="LWPOLYLINE"}parseEntity(e,t){let i={type:t.value,vertices:[]},n=0;for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 38:i.elevation=t.value,t=e.next();break;case 39:i.thickness=t.value,t=e.next();break;case 70:i.shape=1==(1&t.value),i.hasContinuousLinetypePattern=128==(128&t.value),t=e.next();break;case 90:n=t.value,t=e.next();break;case 10:i.vertices.push(...Zct(n,e)),t=e.lastReadGroup;break;case 43:0!==t.value&&(i.constantWidth=t.value),t=e.next();break;case 210:i.extrusionDirectionX=t.value,t=e.next();break;case 220:i.extrusionDirectionY=t.value,t=e.next();break;case 230:i.extrusionDirectionZ=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}};function Zct(e,t){if(!e||e<=0)throw Error("n must be greater than 0 verticies");let i=[],n=!1,r=!1,a=t.lastReadGroup,s={};for(;!t.isEOF()&&0!==a.code&&!r;)switch(a.code){case 10:if(n){r=!0;continue}s.x=a.value,n=!0,a=t.next();break;case 20:s.y=a.value,a=t.next();break;case 30:s.z=a.value,a=t.next();break;case 40:s.startWidth=a.value,a=t.next();break;case 41:s.endWidth=a.value,a=t.next();break;case 42:0!=a.value&&(s.bulge=a.value),a=t.next();break;default:return n&&i.push(s),i}return i.push(s),n=!1,r=!1,i}var LE=class{constructor(){this.ForEntityName="MULTILEADER"}parseEntity(e,t){let i={type:t.value};function n(){for(;!e.isEOF();)switch(t.code){case 40:i.contextData.contentScale=t.value,t=e.next();break;case 10:i.contextData.contentBasePosition=kt(e),t=e.lastReadGroup;break;case 145:i.contextData.landingGap=t.value,t=e.next();break;case 290:i.contextData.hasMText=t.value,t=e.next();break;case 304:i.contextData.defaultTextContents=t.value,t=e.next();break;case 11:i.contextData.textNormalDirection=kt(e),t=e.lastReadGroup;break;case 12:i.contextData.textLocation=kt(e),t=e.lastReadGroup;break;case 13:i.contextData.textDirection=kt(e),t=e.lastReadGroup;break;case 140:i.contextData.arrowHeadSize=t.value,t=e.next();break;case 41:i.contextData.textHeight=t.value,t=e.next();break;case 42:i.contextData.textRotation=t.value,t=e.next();break;case 43:i.contextData.textWidth=t.value,t=e.next();break;case 44:default:t=e.next();break;case 45:i.contextData.textLineSpacingFactor=t.value,t=e.next();break;case 90:i.contextData.textColor=t.value,t=e.next();break;case 170:i.contextData.textLineSpacingStyle=t.value,t=e.next();break;case 171:i.contextData.textAttachment=t.value,t=e.next();break;case 172:i.contextData.textFlowDirection=t.value,t=e.next();break;case 141:i.contextData.textBackgroundScaleFactor=t.value,t=e.next();break;case 92:i.contextData.textBackgroundTransparency=t.value,t=e.next();break;case 291:i.contextData.textBackgroundColorOn=t.value,t=e.next();break;case 292:i.contextData.textBackgroundFillOn=t.value,t=e.next();break;case 293:i.contextData.textUseAutoHeight=t.value,t=e.next();break;case 173:i.contextData.textColumnType=t.value,t=e.next();break;case 142:i.contextData.textColumnWidth=t.value,t=e.next();break;case 143:i.contextData.textColumnGutterWidth=t.value,t=e.next();break;case 144:i.contextData.textColumnHeight=t.value,t=e.next();break;case 295:i.contextData.textUseWordBreak=t.value,t=e.next();break;case 296:i.contextData.hasBlock=t.value,t=e.next();break;case 341:i.contextData.blockContentId=t.value,t=e.next();break;case 14:i.contextData.blockContentNormalDirection=kt(e),t=e.lastReadGroup;break;case 15:i.contextData.blockContentPosition=kt(e),t=e.lastReadGroup;break;case 16:i.contextData.blockContentScale=t.value,t=e.next();break;case 46:i.contextData.blockContentRotation=t.value,t=e.next();break;case 93:i.contextData.blockContentColor=t.value,t=e.next();break;case 47:i.contextData.blockTransformationMatrix=npe(e,47),t=e.lastReadGroup;break;case 110:i.contextData.planeOriginPoint=kt(e),t=e.lastReadGroup;break;case 111:i.contextData.planeXAxisDirection=kt(e),t=e.lastReadGroup;break;case 112:i.contextData.planeYAxisDirection=kt(e),t=e.lastReadGroup;break;case 297:i.contextData.planeNormalReversed=t.value,t=e.next();break;case 301:return;case 302:r(),t=e.lastReadGroup}}function r(){let n={leaderLines:[]};for(i.contextData.leaders.push(n);!e.isEOF();)switch(t.code){case 290:n.hasSetLastLeaderLinePoint=t.value,t=e.next();break;case 291:n.hasSetDoglegVector=t.value,t=e.next();break;case 10:n.lastLeaderLinePoint=kt(e),t=e.lastReadGroup;break;case 11:n.doglegVector=kt(e),t=e.lastReadGroup;break;case 90:n.leaderBranchIndex=t.value,t=e.next();break;case 40:n.doglegLength=t.value,t=e.next();break;case 303:return;case 304:a(),t=e.lastReadGroup;break;default:t=e.next()}}function a(){let n={vertices:[[]]};for(i.contextData.leaders[i.contextData.leaders.length-1].leaderLines.push(n);!e.isEOF();)switch(t.code){case 10:n.vertices[0].push(kt(e)),t=e.lastReadGroup;break;case 305:return;default:t=e.next()}}return i.contextData={leaders:[]},t=e.next(),function(){for(;!e.isEOF();)switch(t.code){case 0:return;case 340:i.leaderStyleId=t.value,t=e.next();break;case 170:i.leaderLineType=t.value,t=e.next();break;case 91:i.leaderLineColor=t.value,t=e.next();break;case 341:i.leaderLineTypeId=t.value,t=e.next();break;case 171:i.leaderLineWeight=t.value,t=e.next();break;case 41:i.doglegLength=t.value,t=e.next();break;case 290:i.enableLanding=t.value,t=e.next();break;case 291:i.enableDogLeg=t.value,t=e.next();break;case 342:i.arrowHeadId=t.value,t=e.next();break;case 42:i.arrowHeadSize=t.value,t=e.next();break;case 172:i.contentType=t.value,t=e.next();break;case 173:case 95:i.textLeftAttachmentType=t.value,t=e.next();break;case 174:i.textAngleType=t.value,t=e.next();break;case 175:i.textAlignmentType=t.value,t=e.next();break;case 343:i.textStyleId=t.value,t=e.next();break;case 92:i.textColor=t.value,t=e.next();break;case 292:i.enableFrameText=t.value,t=e.next();break;case 344:i.blockContentId=t.value,t=e.next();break;case 93:i.blockContentColor=t.value,t=e.next();break;case 10:i.blockContentScale=kt(e),t=e.lastReadGroup;break;case 43:i.blockContentRotation=t.value,t=e.next();break;case 176:i.blockContentConnectionType=t.value,t=e.next();break;case 293:i.enableAnotationScale=t.value,t=e.next();break;case 94:i.arrowHeadIndex=t.value,t=e.next();break;case 177:i.blockAttributeIndex=t.value,t=e.next();break;case 44:i.blockAttributeWidth=t.value,t=e.next();break;case 302:i.blockAttributeTextString=t.value,t=e.next();break;case 294:i.textDirectionNegative=t.value,t=e.next();break;case 178:i.textAlignInIPE=t.value,t=e.next();break;case 179:i.textAttachmentPoint=t.value,t=e.next();break;case 271:i.textAttachmentDirectionMText=t.value,t=e.next();break;case 272:i.textAttachmentDirectionBottom=t.value,t=e.next();break;case 273:i.textAttachmentDirectionTop=t.value,t=e.next();break;case 300:n(),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}}(),i}},DE=class{constructor(){this.ForEntityName="MTEXT"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 3:case 1:i.text?i.text+=t.value:i.text=t.value,t=e.next();break;case 10:i.position=kt(e),t=e.lastReadGroup;break;case 7:i.textStyle=t.value,t=e.next();break;case 44:i.lineSpaceFactor=t.value,t=e.next();break;case 11:i.directionVector=kt(e),i.rotation=void 0,t=e.lastReadGroup;break;case 40:i.height=t.value,t=e.next();break;case 41:i.width=t.value,t=e.next();break;case 50:i.rotation=t.value,i.directionVector=void 0,t=e.next();break;case 71:i.attachmentPoint=t.value,t=e.next();break;case 72:i.drawingDirection=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},OE=class{constructor(){this.ForEntityName="OLE2FRAME"}parseEntity(e,t){let i={type:t.value,binaryData:""};for(t=e.next();"OLE"!==t.value&&0!==t.code;)switch(t.code){case 3:i.documentType=t.value,t=e.next();break;case 70:i.version=t.value,t=e.next();break;case 10:i.leftUpX=t.value,t=e.next();break;case 20:i.leftUpY=t.value,t=e.next();break;case 30:i.leftUpZ=t.value,t=e.next();break;case 11:i.rightDownX=t.value,t=e.next();break;case 21:i.rightDownY=t.value,t=e.next();break;case 31:i.rightDownZ=t.value,t=e.next();break;case 90:i.lengthOfBinaryData=t.value,t=e.next();break;case 310:i.binaryData+=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},kE=class{constructor(){this.ForEntityName="POINT"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.position=kt(e),t=e.lastReadGroup;break;case 39:i.thickness=t.value,t=e.next();break;case 210:i.extrusionDirection=kt(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},FE=class{constructor(){this.ForEntityName="VERTEX"}parseEntity(e,t){var i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.x=t.value,t=e.next();break;case 20:i.y=t.value,t=e.next();break;case 30:i.z=t.value,t=e.next();break;case 40:case 41:case 50:t=e.next();break;case 42:0!=t.value&&(i.bulge=t.value),t=e.next();break;case 70:i.curveFittingVertex=0!=(1&t.value),i.curveFitTangent=0!=(2&t.value),i.splineVertex=0!=(8&t.value),i.splineControlPoint=0!=(16&t.value),i.threeDPolylineVertex=0!=(32&t.value),i.threeDPolylineMesh=0!=(64&t.value),i.polyfaceMeshVertex=0!=(128&t.value),t=e.next();break;case 71:i.faceA=t.value,t=e.next();break;case 72:i.faceB=t.value,t=e.next();break;case 73:i.faceC=t.value,t=e.next();break;case 74:i.faceD=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},NE=class{constructor(){this.ForEntityName="POLYLINE"}parseEntity(e,t){var i={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:case 20:case 30:case 40:case 41:case 71:case 72:case 73:case 74:case 75:t=e.next();break;case 39:t=e.next(),i.thickness=t.value;break;case 70:i.shape=0!=(1&t.value),i.includesCurveFitVertices=0!=(2&t.value),i.includesSplineFitVertices=0!=(4&t.value),i.is3dPolyline=0!=(8&t.value),i.is3dPolygonMesh=0!=(16&t.value),i.is3dPolygonMeshClosed=0!=(32&t.value),i.isPolyfaceMesh=0!=(64&t.value),i.hasContinuousLinetypePattern=0!=(128&t.value),t=e.next();break;case 210:i.extrusionDirection=kt(e),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i.vertices=Kct(e,t),i}};function Kct(e,t){let i=new FE,n=[];for(;!e.isEOF();)if(0===t.code)if("VERTEX"===t.value)n.push(i.parseEntity(e,t)),t=e.lastReadGroup;else if("SEQEND"===t.value){Jct(e,t);break}return n}function Jct(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)if(101===t.code)for(;0!=t.code;)t=e.next();else Nn(i,t),t=e.next();return i}var BE=class{constructor(){this.ForEntityName="RAY"}parseEntity(e,t){let i={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.vertices.unshift(kt(e)),t=e.lastReadGroup;break;case 11:i.directionVector=kt(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},UE=class{constructor(){this.ForEntityName="REGION"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 70:i.modelerVersion=t.value,t=e.next();break;case 1:i.proprietaryData=t.value,t=e.next();break;case 3:i.proprietaryData+=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},HE=class{constructor(){this.ForEntityName="SEQEND"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)-2===t.code||(Nn(i,t),t=e.next());return i}},VE=class{constructor(){this.ForEntityName="SOLID"}parseEntity(e,t){let i={type:t.value,points:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.points[0]=kt(e),t=e.lastReadGroup;break;case 11:i.points[1]=kt(e),t=e.lastReadGroup;break;case 12:i.points[2]=kt(e),t=e.lastReadGroup;break;case 13:i.points[3]=kt(e),t=e.lastReadGroup;break;case 210:i.extrusionDirection=kt(e),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},zE=class{constructor(){this.ForEntityName="SPLINE"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.controlPoints||(i.controlPoints=[]),i.controlPoints.push(kt(e)),t=e.lastReadGroup;break;case 11:i.fitPoints||(i.fitPoints=[]),i.fitPoints.push(kt(e)),t=e.lastReadGroup;break;case 12:i.startTangent=kt(e),t=e.lastReadGroup;break;case 13:i.endTangent=kt(e),t=e.lastReadGroup;break;case 40:i.knotValues||(i.knotValues=[]),i.knotValues.push(t.value),t=e.next();break;case 70:1&t.value&&(i.closed=!0),2&t.value&&(i.periodic=!0),4&t.value&&(i.rational=!0),8&t.value&&(i.planar=!0),16&t.value&&(i.planar=!0,i.linear=!0),t=e.next();break;case 71:i.degreeOfSplineCurve=t.value,t=e.next();break;case 72:i.numberOfKnots=t.value,t=e.next();break;case 73:i.numberOfControlPoints=t.value,t=e.next();break;case 74:i.numberOfFitPoints=t.value,t=e.next();break;case 210:i.normalVector=kt(e),t=e.lastReadGroup;break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},GE=class{constructor(){this.ForEntityName="TEXT"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.startPoint=kt(e),t=e.lastReadGroup;break;case 11:i.endPoint=kt(e),t=e.lastReadGroup;break;case 40:i.textHeight=t.value,t=e.next();break;case 41:i.xScale=t.value,t=e.next();break;case 50:i.rotation=t.value,t=e.next();break;case 1:i.text=t.value,t=e.next();break;case 72:i.halign=t.value,t=e.next();break;case 73:i.valign=t.value,t=e.next();break;case 7:i.textStyle=t.value,t=e.next();break;case 71:i.mirrored=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},qE=class{constructor(){this.ForEntityName="VIEWPORT"}parseEntity(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 68:i.viewportStatus=t.value,t=e.next();break;case 40:i.width_paperSpace=t.value,t=e.next();break;case 41:i.height_paperSpace=t.value,t=e.next();break;case 69:i.viewportId=t.value,t=e.next();break;case 10:i.centerPoint=kt(e),t=e.lastReadGroup;break;case 12:i.centerPoint_dcs=kt(e),t=e.lastReadGroup;break;case 13:i.snapBasePoint_dcs=kt(e),t=e.lastReadGroup;break;case 14:i.snapSpacing_dcs=kt(e),t=e.lastReadGroup;break;case 15:i.gridSpacing_dcs=kt(e),t=e.lastReadGroup;break;case 16:i.viewDirection=kt(e),t=e.lastReadGroup;break;case 17:i.viewTarget=kt(e),t=e.lastReadGroup;break;case 42:i.perspectiveLens=t.value,t=e.next();break;case 43:i.frontClippingPlaneZ=t.value,t=e.next();break;case 44:i.backClippingPlaneZ=t.value,t=e.next();break;case 45:i.viewHeight=t.value,t=e.next();break;case 50:i.snapAngle=t.value,t=e.next();break;case 51:i.viewTwistAngle=t.value,t=e.next();break;case 72:i.circleZoomPercent=t.value,t=e.next();break;case 331:i.frozenLayerHandles=i.frozenLayerHandles||[],i.frozenLayerHandles.push(t.value),t=e.next();break;case 90:i.viewportStatusFlags=t.value,t=e.next();break;case 340:i.viewportClippingBoundaryhandleId=t.value,t=e.next();break;case 1:i.plotStyleSheetName=t.value,t=e.next();break;case 281:i.renderMode=t.value,t=e.next();break;case 71:i.viewportFlag_ucs=t.value,t=e.next();break;case 74:i.ucsIcon=t.value,t=e.next();break;case 110:i.ucsOrigin=kt(e),t=e.lastReadGroup;break;case 111:i.ucsXAxis=kt(e),t=e.lastReadGroup;break;case 112:i.ucsYAxis=kt(e),t=e.lastReadGroup;break;case 345:i.ucsTableRecordHandle=t.value,t=e.next();break;case 346:i.baseUcsTableRecordHandle=t.value,t=e.next();break;case 79:i.orthographicType=t.value,t=e.next();break;case 146:i.elevation=t.value,t=e.next();break;case 170:i.shadePlotMode=t.value,t=e.next();break;case 61:i.frequency=t.value,t=e.next();break;case 292:i.lightingFlag=t.value,t=e.next();break;case 282:i.lightingType=t.value,t=e.next();break;case 141:i.viewBrightness=t.value,t=e.next();break;case 142:i.viewContrast=t.value,t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},WE=class{constructor(){this.ForEntityName="XLINE"}parseEntity(e,t){let i={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 10:i.vertices.unshift(kt(e)),t=e.lastReadGroup;break;case 11:i.directionVector=kt(e),t=e.lastReadGroup;break;case 100:t=e.next();break;case 101:for(;0!=t.code;)t=e.next();break;default:Nn(i,t),t=e.next()}return i}},hC=class{constructor(){this.ForObjectName="DICTIONARY"}parseObject(e,t){let i={type:t.value},n=[],r=[];for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 280:i.isHardOwner=1===t.value,t=e.next();break;case 281:i.cloningFlag=t.value,t=e.next();break;case 3:n.push(t.value),t=e.next();break;case 350:case 360:r.push(t.value),t=e.next();break;case 100:case 102:t=e.next();break;default:Fl(i,t),t=e.next()}if(n.length!==r.length)throw new Error("The number of Dictionary entries does not match !");return i.entries={},n.forEach(((e,t)=>{i.entries[r[t]]=e})),i}},dC=class{constructor(){this.ForObjectName="IMAGEDEF"}parseObject(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 90:i.classVersion=t.value,t=e.next();break;case 1:i.filename=t.value,t=e.next();break;case 10:i.imageSize=kt(e),t=e.next();break;case 11:i.pixelSize=kt(e),t=e.next();break;case 280:i.loaded=t.value,t=e.next();break;case 281:i.resolutionUnits=t.value,t=e.next();break;default:Fl(i,t),t=e.next()}return i}},fC=class{constructor(){this.ForObjectName="LAYOUT"}parseObject(e,t){let i={type:t.value};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 100:t=e.next();break;case 1:i.layoutName=t.value,t=e.next();break;case 70:i.flag=t.value,t=e.next();break;case 71:i.tabOrder=t.value,t=e.next();break;case 76:i.orthographicType=t.value,t=e.next();break;case 10:i.minLimit=kt(e),t=e.lastReadGroup;break;case 11:i.maxLimit=kt(e),t=e.lastReadGroup;break;case 12:i.basePoint=kt(e),t=e.lastReadGroup;break;case 13:i.origin=kt(e),t=e.lastReadGroup;break;case 14:i.minExtent=kt(e),t=e.lastReadGroup;break;case 15:i.maxExtent=kt(e),t=e.lastReadGroup;break;case 16:i.XAxis=kt(e),t=e.lastReadGroup;break;case 17:i.YAxis=kt(e),t=e.lastReadGroup;break;case 146:i.elevation=t.value,t=e.next();break;case 331:i.viewportHandle=t.value,t=e.next();break;default:Fl(i,t),t=e.next()}return i.blockTableHandle=i.ownerHandle,i}},pC=class{constructor(){this.ForObjectName="SORTENTSTABLE"}parseObject(e,t){let i={type:t.value},n=!1;i.sortEntsObject={},i.sortEntsObject.entityHandles=[];let r=[];for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 5:n?(r.push(t.value),i.sortEntsObject.entityHandles.push(r),r=[]):i.handle=t.value,t=e.next();break;case 100:t=e.next(),n=!0;break;case 102:t=e.next();break;case 330:n?i.sortEntsObject.ownerHandle=t.value:i.ownerHandle=t.value,t=e.next();break;case 331:r.push(t.value),t=e.next();break;default:Fl(i,t),t=e.next()}return i}},mC=class{constructor(){this.ForObjectName="SPATIAL_FILTER"}parseObject(e,t){let i,n,r={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&0!==t.code;)switch(t.code){case 11:r.origin=kt(e),t=e.lastReadGroup;break;case 70:r.numberOfPointsOnClipBoundary=t.value,2===r.numberOfPointsOnClipBoundary?(t=e.next(),i=kt(e),t=e.lastReadGroup,n=kt(e),t=e.lastReadGroup,r.vertices.push(i,{x:n.x,y:i.y},n,{x:i.x,y:n.y},i)):r.numberOfPointsOnClipBoundary>2?(r.vertices=Qct(r.numberOfPointsOnClipBoundary,e),t=e.lastReadGroup):t=e.next();break;case 71:r.clipBoundaryVisible=1===t.value,t=e.next();break;case 72:r.frontClippingPlaneFlag=1===t.value,t=e.next(),r.frontClippingPlaneFlag&&40===t.code&&(r.frontClippingPlaneDistance=t.value,t=e.next());break;case 73:r.backClippingPlaneFlag=1===t.value,t=e.next(),r.backClippingPlaneFlag&&41===t.code&&(r.backClippingPlaneDistance=t.value,t=e.next());break;case 100:case 102:t=e.next();break;case 210:r.extrusionDirectionX=t.value,t=e.next();break;case 220:r.extrusionDirectionY=t.value,t=e.next();break;case 230:r.extrusionDirectionZ=t.value,t=e.next();break;case 40:r.invertBlockMatrix=ipe(e,40),r.matrix=ipe(e,40),t=e.lastReadGroup;break;default:Fl(r,t),t=e.next()}return r}};function Qct(e,t){t.next();let i=[];for(;i.length{e.on("data",(e=>{t+=e})),e.on("end",(()=>{try{n(i.parse(t))}catch(e){r(e)}})),e.on("error",(e=>{r(e)}))}))}_parse(e){let t={},i=0;if(!e.hasNext())throw Error("Empty file");let n,r=this;function a(){let t=null,i=null,r={};for(n=e.next();;){if(Qo(n,0,"ENDSEC")){t&&(r[t]=i);break}9===n.code?(t&&(r[t]=i),t=n.value):10===n.code?i={x:n.value}:20===n.code?i.y=n.value:30===n.code?i.z=n.value:i=n.value,n=e.next()}return n=e.next(),r}function s(){let t={};for(n=e.next();"EOF"!==n.value&&!Qo(n,0,"ENDSEC");)if(Qo(n,0,"BLOCK")){se.trace("block {");let e=o();se.trace("}"),m(e),e.name?t[e.name]=e:se.error(`[DxfParser] Block with handle '${e.handle}' is missing a name, ignored!`)}else id(n),n=e.next();return t}function o(){let t={};for(n=e.next();"EOF"!==n.value;){switch(n.code){case 1:t.xrefPath=n.value,n=e.next();break;case 2:t.name=n.value,n=e.next();break;case 3:t.name2=n.value,n=e.next();break;case 4:t.description=n.value,n=e.next();break;case 5:t.handle=n.value,n=e.next();break;case 8:t.layer=n.value,n=e.next();break;case 10:t.position=f(n),n=e.lastReadGroup;break;case 67:t.paperSpace=!(!n.value||1!==n.value),n=e.next();break;case 70:t.blockType=n.value,n=e.next();break;case 100:n=e.next();break;case 330:t.ownerHandle=n.value,n=e.next();break;case 0:if("ENDBLK"==n.value)break;t.entities=d(!0);break;default:id(n),n=e.next()}if(Qo(n,0,"ENDBLK")){n=e.next();break}}return t}function l(){let t={};for(n=e.next();"EOF"!==n.value&&!Qo(n,0,"ENDSEC");)Qo(n,0,"TABLE")?(n=e.next(),u[n.value]?(se.trace(n.value+" Table {"),t[u[n.value].tableName]=c(n),se.trace("}")):se.trace("Unhandled Table "+n.value)):n=e.next();return n=e.next(),t}let h="ENDTAB";function c(t){let i=u[t.value],r={},a=0;for(n=e.next();!Qo(n,0,h);)switch(n.code){case 5:r.handle=n.value,n=e.next();break;case 330:r.ownerHandle=n.value,n=e.next();break;case 100:"AcDbSymbolTable"===n.value||id(n),n=e.next();break;case 70:a=n.value,n=e.next();break;case 0:n.value===i.dxfSymbolName?r[i.tableRecordsProperty]=i.parseTableRecords():(id(n),n=e.next());break;default:id(n),n=e.next()}let s=r[i.tableRecordsProperty];if(s){let e=s.constructor===Array?s.length:"object"==typeof s?Object.keys(s).length:void 0;a!==e&&se.warn(`[DxfParser] Parsed ${e} ${i.dxfSymbolName}s but expected ${a}`)}return n=e.next(),r}let u={VPORT:{tableRecordsProperty:"viewports",tableName:"viewport",dxfSymbolName:"VPORT",parseTableRecords:function(){let t=[],i={};for(se.trace("Viewport {"),n=e.next();!Qo(n,0,h);)switch(n.code){case 2:i.name=n.value,n=e.next();break;case 10:i.lowerLeftCorner=f(n),n=e.lastReadGroup;break;case 11:i.upperRightCorner=f(n),n=e.lastReadGroup;break;case 12:i.center=f(n),n=e.lastReadGroup;break;case 13:i.snapBasePoint=f(n),n=e.lastReadGroup;break;case 14:i.snapSpacing=f(n),n=e.lastReadGroup;break;case 15:i.gridSpacing=f(n),n=e.lastReadGroup;break;case 16:i.viewDirectionFromTarget=f(n),n=e.lastReadGroup;break;case 17:i.viewTarget=f(n),n=e.lastReadGroup;break;case 40:case 45:i.viewHeight=n.value,n=e.next();break;case 41:i.aspectRatio=n.value,n=e.next();break;case 42:i.lensLength=n.value,n=e.next();break;case 43:i.frontClippingPlane=n.value,n=e.next();break;case 44:i.backClippingPlane=n.value,n=e.next();break;case 50:i.snapRotationAngle=n.value,n=e.next();break;case 51:i.viewTwistAngle=n.value,n=e.next();break;case 79:i.orthographicType=n.value,n=e.next();break;case 110:i.ucsOrigin=f(n),n=e.lastReadGroup;break;case 111:i.ucsXAxis=f(n),n=e.lastReadGroup;break;case 112:i.ucsYAxis=f(n),n=e.lastReadGroup;break;case 281:i.renderMode=n.value,n=e.next();break;case 282:i.defaultLightingType=n.value,n=e.next();break;case 292:i.defaultLightingOn=n.value,n=e.next();break;case 330:i.ownerHandle=n.value,n=e.next();break;case 63:case 421:case 431:i.ambientColor=n.value,n=e.next();break;case 0:"VPORT"===n.value&&(se.trace("}"),t.push(i),se.trace("Viewport {"),i={},n=e.next());break;default:id(n),n=e.next()}return se.trace("}"),t.push(i),t}},LTYPE:{tableRecordsProperty:"lineTypes",tableName:"lineType",dxfSymbolName:"LTYPE",parseTableRecords:function(){let t={},i={},a=0,s="",o=!1;for(se.trace("LType {"),n=e.next();!Qo(n,0,"ENDTAB");)switch(n.code){case 2:i.name=n.value.toUpperCase(),s=i.name,n=e.next();break;case 3:i.description=n.value,n=e.next();break;case 9:case 44:case 45:case 46:case 70:case 75:default:n=e.next();break;case 40:i.patternLength=n.value,n=e.next();break;case 49:let l=n.value;o&&(l=Math.abs(l),o=!1),i.pattern.push(l),n=e.next();break;case 73:a=n.value,a>0&&(i.pattern=[]),n=e.next();break;case 74:0!==n.value&&(o=!0,r.unsupportedLineTypes[i.name]?r.unsupportedLineTypes[i.name]++:r.unsupportedLineTypes[i.name]=1),n=e.next();break;case 0:se.trace("}"),a>0&&a!==i.pattern.length&&se.warn("[DxfParser] lengths do not match on LTYPE pattern"),t[s]=i,i={},se.trace("LType {"),n=e.next()}return se.trace("}"),t[s]=i,t}},LAYER:{tableRecordsProperty:"layers",tableName:"layer",dxfSymbolName:"LAYER",parseTableRecords:function(){let t,i={},r={};for(se.trace("Layer {"),n=e.next();!Qo(n,0,"ENDTAB");)switch(n.code){case 2:r.name=n.value,t=n.value,n=e.next();break;case 5:r.handle=n.value,n=e.next();break;case 62:r.visible=n.value>=0,r.colorIndex=Math.abs(n.value),r.color=rut(r.colorIndex),n=e.next();break;case 70:r.flag=n.value,r.frozen=(1&r.flag)>0,n=e.next();break;case 420:r.color=Math.abs(n.value),n=e.next();break;case 6:r.lineType=n.value.toUpperCase(),n=e.next();break;case 370:r.lineweight=n.value,n=e.next();break;case 0:"LAYER"===n.value&&(se.trace("}"),t&&(i[t]=r),se.trace("Layer {"),r={},t=void 0,n=e.next());break;default:id(n),n=e.next()}return se.trace("}"),t&&(i[t]=r),i}},BLOCK_RECORD:{tableRecordsProperty:"blockRecords",tableName:"blockRecord",dxfSymbolName:"BLOCK_RECORD",parseTableRecords:function(){let t,i={},a={};for(se.trace("BlockRecord {"),n=e.next();!Qo(n,0,"ENDTAB");)switch(n.code){case 5:a.handle=n.value,n=e.next();break;case 330:a.ownerHandle=n.value,n=e.next();break;case 2:a.blockName=n.value,t=a.blockName,n=e.next();break;case 340:a.layoutHandle=n.value,n=e.next();break;case 70:a.blockInsertUnits=n.value,n=e.next();break;case 280:a.blockExplodability=n.value,n=e.next();break;case 281:a.blockScalability=n.value,n=e.next();break;case 310:a.bitmap=n.value,n=e.next();break;case 0:if("BLOCK_RECORD"===n.value){se.trace("}"),t&&(i[t]=a);let s=a.layoutHandle;t&&s&&s.length>0&&"0"!==s&&(r._layoutBlocks[s]=a),se.trace("BlockRecord {"),a={},t=void 0,n=e.next()}else id(n),n=e.next();break;default:id(n),n=e.next()}se.trace("}"),t&&(i[t]=a);let s=a.layoutHandle;return t&&s&&s.length>0&&"0"!==s&&(r._layoutBlocks[s]=a),i}},STYLE:{tableRecordsProperty:"styles",tableName:"style",dxfSymbolName:"STYLE",parseTableRecords:function(){let t,i={},r={};for(se.trace("Style {"),n=e.next();!Qo(n,0,"ENDTAB");)switch(n.code){case 2:r.styleName=n.value,t=n.value,n=e.next();break;case 3:r.fontFile=n.value,n=e.next();break;case 4:r.bigFontFile=n.value,n=e.next();break;case 5:r.handle=n.value,n=e.next();break;case 40:r.textHeight=n.value,n=e.next();break;case 41:r.xScale=n.value,n=e.next();break;case 42:r.priorTextHeight=n.value,n=e.next();break;case 50:r.rotation=n.value,n=e.next();break;case 70:default:n=e.next();break;case 71:r.mirrorType=n.value,n=e.next();break;case 330:r.ownerHandle=n.value,n=e.next();break;case 0:"STYLE"===n.value&&(se.trace("}"),t&&(i[t]=r),se.trace("Style {"),r={},t=void 0,n=e.next())}return se.trace("}"),t&&(i[t]=r),i}},DIMSTYLE:{tableRecordsProperty:"dimStyles",tableName:"dimStyle",dxfSymbolName:"DIMSTYLE",parseTableRecords:function(){let t,i={},r={};for(se.trace("DimStyle {"),n=e.next();!Qo(n,0,"ENDTAB");)switch(n.code){case 2:r.styleName=n.value,t=n.value,n=e.next();break;case 40:r.DIMSCALE=n.value,n=e.next();break;case 41:r.DIMASZ=n.value,n=e.next();break;case 42:r.DIMEXO=n.value,n=e.next();break;case 44:r.DIMEXE=n.value,n=e.next();break;case 75:r.DIMSE1=n.value,n=e.next();break;case 76:r.DIMSE2=n.value,n=e.next();break;case 77:r.DIMTAD=n.value,n=e.next();break;case 140:r.DIMTXT=n.value,n=e.next();break;case 144:r.DIMLFAC=n.value,n=e.next();break;case 147:r.DIMGAP=n.value,n=e.next();break;case 176:r.DIMCLRD=n.value,n=e.next();break;case 178:r.DIMCLRT=n.value,n=e.next();break;case 271:r.DIMDEC=n.value,n=e.next();break;case 341:r.DIMLDRBLK=n.value,n=e.next();break;case 70:default:n=e.next();break;case 0:"DIMSTYLE"===n.value&&(se.trace("}"),t&&(i[t]=r),se.trace("DimStyle {"),r={},t=void 0,n=e.next())}return se.trace("}"),t&&(i[t]=r),i}}};function d(t){let i=[],a=t?"ENDBLK":"ENDSEC";for(t||(n=e.next());;)if(0===n.code){if(n.value===a)break;let t=r._entityHandlers[n.value];if(null==t){let t=n.value;r.unhandledEntities[t]||(r.unhandledEntities[t]=0),r.unhandledEntities[t]++,n=e.next();continue}{se.trace(n.value+" {");let r=t.parseEntity(e,n);r&&(r.layer||(r.layer="0"),void 0===r.colorIndex&&(r.colorIndex=256),r.lineType||(r.lineType=ay)),n=e.lastReadGroup,se.trace("}"),m(r),i.push(r)}}else n=e.next();return"ENDSEC"==a&&(n=e.next()),i}function p(){let t={};for(n=e.next();"EOF"!==n.value;)if(0===n.code){if("ENDSEC"===n.value)break;let i=r._objectHandlers[n.value];if(null==i){let t=n.value;r.unhandledObjects[t]||(r.unhandledObjects[t]=0),r.unhandledObjects[t]++,n=e.next();continue}{se.trace(n.value+" {");let r=i.parseObject(e,n),a=n.value;n=e.lastReadGroup,se.trace("}"),m(r),t[a]||(t[a]=[]),t[a].push(r)}}else n=e.next();return n=e.next(),t.LAYOUT&&(Object.keys(r._layoutBlocks).length!==t.LAYOUT.length&&se.warn("[DxfParser] The number of layout and block associations does not match!"),t.LAYOUT.forEach((e=>{r._layoutBlocks[e.handle]&&(e.associatedBlockName=r._layoutBlocks[e.handle].blockName)})),t.LAYOUT.sort(((e,t)=>e.tabOrder-t.tabOrder))),t}function f(t){let i={},n=t.code;if(i.x=t.value,n+=10,(t=e.next()).code!=n)throw new Error(`Expected code for point value to be ${n} but got ${t.code}.`);return i.y=t.value,n+=10,(t=e.next()).code!=n||(i.z=t.value,t=e.next()),i}function m(e){if(!e)throw new TypeError("entity cannot be undefined or null");e.handle||(e.handle=(i++).toString())}return function(){for(n=e.next();999===n.code;)n=e.next();for(;!e.isEOF();)if(0===n.code&&"SECTION"===n.value){if(n=e.next(),2!==n.code){se.error("Unexpected code %s after 0:SECTION",spe(n)),n=e.next();continue}if("HEADER"===n.value)se.trace("> HEADER"),t.header=a(),se.trace("<");else if("TABLES"===n.value)se.trace("> TABLES"),t.tables=l(),se.trace("<");else if("BLOCKS"===n.value)se.trace("> BLOCKS"),t.blocks=s(),se.trace("<");else if("ENTITIES"===n.value)se.trace("> ENTITIES"),t.entities=d(!1),se.trace("<");else if("OBJECTS"===n.value)se.trace("> OBJECTS"),t.objects=p(),se.trace("<");else if("EOF"===n.value)se.trace("EOF");else{let e=n.value;r.unhandledSections[e]?r.unhandledSections[e]++:r.unhandledSections[e]=1}}else n=e.next();r.unhandledSections={},r.unhandledEntities={},r.unhandledObjects={},r.unsupportedLineTypes={}}(),t}splitByLineSeparator(e){let t=[],i=0;for(let n=0,r=e.length;n(e.Added="Added",e.Removed="Removed",e.Modified="Modified",e.NoChange="NoChange",e))(C5||{}),Ga=1,vC=class{constructor(e,t,i){if(this.changes={},this.comparedBlocks=new Map,this.isComparingBlock=!1,this.isComparingDimension=!1,this.enableDetailComparision=!0,this.dxf1=e,this.dxf2=t,this.enableDetailComparision=!i||(null==i?void 0:i.enableDetailComparision),!e||!t)throw new Error("Invalid dxf data to compare!")}getLayerFrozen(e,t){var i,n,r;let a=null==(n=null==(i=e.tables)?void 0:i.layer)?void 0:n.layers;return a&&(null==(r=a[t.layer])?void 0:r.frozen)}compare(e){return ft(this,null,(function*(){this.changes={};let t=[],i=new Map;return this.dxf1.entities.forEach((e=>{if(!0!==e.inPaperSpace){let i=!0===this.getLayerFrozen(this.dxf1,e);!vC.ignoreEntityTypes.includes(e.type)&&!i&&t.push(e)}})),this.dxf2.entities.forEach((e=>{if(!0!==e.inPaperSpace){let t=!0===this.getLayerFrozen(this.dxf2,e);!vC.ignoreEntityTypes.includes(e.type)&&!t&&i.set(e.handle,e)}})),yield this.compareEntities(t,i,e),Promise.resolve(this.changes)}))}isDimensionBlock(e){return e.includes("*D")}compareInsertOrDemensionEntities(e,t,i,n){if(!e.block||!t.block)return;let r,a=e.block;if(this.isComparingBlock=!0,this.isDimensionBlock(a)){let i=this.dxf1.blocks[e.block],n=this.dxf2.blocks[t.block],s=Date.now();this.isComparingDimension=!0,r=this.compareBlock(e,t,i,n),this.isComparingDimension=!1,se.debug(`[DxfCompare] compare block: ${a} cost ${(Date.now()-s)/1e3}s`)}else{if(!this.comparedBlocks.has(a)){let i=this.dxf1.blocks[a],n=this.dxf2.blocks[a],r=Date.now(),s=this.compareBlock(e,t,i,n);this.comparedBlocks.set(a,s),se.debug(`[DxfCompare] compare block: ${a} cost ${(Date.now()-r)/1e3}s`)}r=this.comparedBlocks.get(a)}return null==r||r.forEach((t=>{if(t.parentHandles||(t.parentHandles=[]),i&&n)"Added"===t.type?t.parentHandles.push(n):"Removed"===t.type&&t.parentHandles.push(i);else{let i=[...t.parentHandles,e.handle];("Added"===t.type||"Removed"===t.type)&&(this.changes[Ga]=Ii(Tr({id:Ga},t),{parentHandles:i})),Ga++}})),!i&&!n&&(this.isComparingBlock=!1),r}compareBlock(e,t,i,n){var r,a;let s=[],o=[];null==(r=null==i?void 0:i.entities)||r.forEach((e=>{"ATTDEF"!==e.type&&!this.bIgnoreChildEntitiesOriginalType(e)&&s.push(e)})),null==(a=null==n?void 0:n.entities)||a.forEach((e=>{"ATTDEF"!==e.type&&!this.bIgnoreChildEntitiesOriginalType(e)&&o.push(e)}));let l=[],h=[];for(let c=0;c0&&l.push(...e),n=!1,o.splice(r--,1);break}n=!1,o.splice(r--,1);break}n=!0}n&&(l.push({type:"Removed",handle:i.handle}),h.push(i.handle))}return o.forEach((e=>{h.includes(e.handle)||l.push({type:"Added",handle:e.handle})})),l}compareEntities(e,t,i){return ft(this,null,(function*(){var n,r;let a=St.getUpdateProgressFuncForLoop(e.length,i);for(let i=0;i0&&(this.changes[Ga].detailChanges=l),Ga++}t.delete(s)}else this.changes[Ga]={id:Ga,type:"Removed",handle:s},Ga++;yield a(i)}for(let e of t){let t=e[0];this.changes[Ga]={id:Ga,type:"Added",handle:t},Ga++}}))}bIgnoreChildEntitiesOriginalType(e){var t;return tpe.includes(null==(t=e.extendedData)?void 0:t.originalType)}entitiesEqual(e,t,i,n,r){if(!this.baseEntitiesEqual(e,t,i,n,r))return!1;let a=e.type,s=!0;return"CIRCLE"===a||"ARC"===a?s=this.arcsEqual(e,t):"LWPOLYLINE"===a||"LINE"===a?s=this.linesEqual(e,t,r):"POLYLINE"===a?s=this.polylinesEqual(e,t):"TEXT"===a?s=this.textsEqual(e,t):"SOLID"===a?s=this.solidsEqual(e,t):"POINT"===a?s=this.pointEntitiesEqual(e,t):"INSERT"===a?s=this.insertsEqual(e,t):"SPLINE"===a?s=this.splinesEqual(e,t):"MTEXT"===a?s=this.mtextsEqual(e,t):"ELLIPSE"===a?s=this.ellipsesEqual(e,t):"DIMENSION"===a?s=this.dimensionsEqual(e,t):"REGION"===a?s=this.regionsEqual(e,t):"ATTDEF"===a?s=this.attDefsEqual(e,t):"ATTRIB"===a?s=this.attribsEqual(e,t):"HATCH"===a?s=this.hatchesEqual(e,t):"VIEWPORT"===a?s=this.viewportsEqual(e,t):"LEADER"===a?s=this.leadersEqual(e,t):"MULTILEADER"===a?s=this.mleadersEqual(e,t):"OLE2FRAME"===a&&(s=this.ole2framesEqual(e,t)),s}getColor(e,t,i){var n,r,a,s,o,l;if(e.isTrueColor||e.colorIndex>0&&e.colorIndex<256)return e.color;if(0===e.colorIndex)return i?this.getColor(i,t):null==(r=null==(n=t.tables)?void 0:n.layer)?void 0:r.layers[0].color;let h=0;if(256===e.colorIndex){let n=null==(s=null==(a=t.tables)?void 0:a.layer)?void 0:s.layers,r=n&&n[e.layer],c=n&&i&&n[i.layer];h=r&&"0"!==r.name?r.color:c?c.color:r?r.color:null==(l=null==(o=t.tables)?void 0:o.layer)?void 0:l.layers[0].color}return h}getLineType(e,t,i){var n,r;if(i&&"DIMENSION"===i.type)return this.getLineType(i,t);if(e.lineType!==ay&&e.lineType!==oy)return e.lineType;if(e.lineType===oy)return i?this.getLineType(i,t):e.lineType;let a=null==(r=null==(n=t.tables)?void 0:n.layer)?void 0:r.layers;if("0"!==e.layer){let t=a&&a[e.layer];if(t)return t.lineType}else if(i){let e=a&&a[i.layer];if(e)return e.lineType}return"CONTINUOUS"}addModificationItem(e,t,i,n){n&&(n[i]={old:e,new:t})}baseEntitiesEqual(e,t,i,n,r){var a,s;let o=!0,l=this.getColor(e,this.dxf1,i),h=this.getColor(t,this.dxf2,n);if(l!==h){if(o=!1,!this.enableDetailComparision)return o;this.addModificationItem(l,h,"color",r)}let c=this.getLineType(e,this.dxf1,i),u=this.getLineType(t,this.dxf2,n);return c!==u?(o=!1,this.enableDetailComparision?(this.addModificationItem(c,u,"lineType",r),!1):o):!((null==(a=e.extendedData)?void 0:a.originalType)!==(null==(s=t.extendedData)?void 0:s.originalType)||!this.isComparingBlock&&!this.isComparingDimension&&e.handle!==t.handle||!this.isComparingDimension&&e.ownerHandle!==t.ownerHandle||e.type!==t.type)&&o}arcsEqual(e,t){return!!(this.vectorsEqual(e.center,t.center)&&this.numberEqual(e.radius,t.radius)&&this.numberEqual(e.startAngle,t.startAngle)&&this.numberEqual(e.endAngle,t.endAngle))}linesEqual(e,t,i){let n=!0,r=e.constantWidth,a=t.constantWidth;if(r!==a){if(n=!1,!this.enableDetailComparision)return!1;this.addModificationItem(r||0,a||0,"constantWidth",i)}return!(!this.verticesEqual(e.vertices,t.vertices)||e.shape!==t.shape)&&n}polylinesEqual(e,t){return!(!this.vertexEntitiesEqual(e.vertices,t.vertices)||e.shape!==t.shape||e.isPolyfaceMesh!==t.isPolyfaceMesh)}textsEqual(e,t){if(e.halign!==t.halign)return!1;if(3===e.halign||5===e.halign){if(!this.pointsEqual(e.startPoint,t.startPoint))return!1}else if(!this.pointsEqual(e.endPoint,t.endPoint))return!1;return e.text===t.text}solidsEqual(e,t){return!!this.verticesEqual(e.points,t.points)}pointEntitiesEqual(e,t){return!!this.pointsEqual(e.position,t.position)}splinesEqual(e,t){return!(!this.verticesEqual(e.controlPoints,t.controlPoints)||!this.numbersEqual(e.knotValues,t.knotValues)||!this.numberEqual(e.degreeOfSplineCurve,t.degreeOfSplineCurve))}mtextsEqual(e,t){return!(!this.pointsEqual(e.position,t.position)||e.text!==t.text||!this.numberEqual(e.rotation,t.rotation))}ellipsesEqual(e,t){return!!(this.pointsEqual(e.center,t.center)&&this.pointsEqual(e.majorAxisEndPoint,t.majorAxisEndPoint)&&this.numberEqual(e.axisRatio,t.axisRatio)&&this.numberEqual(e.startAngle,t.startAngle)&&this.numberEqual(e.endAngle,t.endAngle))}attDefsEqual(e,t){return!(!this.pointsEqual(e.startPoint,t.startPoint)||!this.pointsEqual(e.endPoint,t.endPoint)||!this.numberEqual(e.xScale,t.xScale)||e.text!==t.text||e.tag!==t.tag||e.prompt!==t.prompt)}attribsEqual(e,t){return this.attDefsEqual(e,t)}hatchesEqual(e,t){let i=e,n=t;return!!(this.numberEqual(i.elevationX,n.elevationX)&&this.numberEqual(i.elevationY,n.elevationY)&&this.numberEqual(i.elevationZ,n.elevationZ)&&this.hatchBoundaryPathArraysEqual(i.boundaryPaths,n.boundaryPaths))}viewportsEqual(e,t){let i=e,n=t;return!!(this.pointsEqual(i.centerPoint,n.centerPoint)&&this.pointsEqual(i.centerPoint_dcs,n.centerPoint_dcs)&&this.pointsEqual(i.viewDirection,n.viewDirection)&&this.numberEqual(i.viewHeight,n.viewHeight)&&i.width_paperSpace===n.width_paperSpace&&i.height_paperSpace===n.height_paperSpace)}leadersEqual(e,t){return!!(this.pointsEqual(e.position,t.position)&&this.verticesEqual(e.vertices,t.vertices)&&e.arrowHeadBlockHandle===t.arrowHeadBlockHandle&&this.numberEqual(e.arrowHeadSize,t.arrowHeadSize)&&this.numberEqual(e.rotation,t.rotation)&&e.block===t.block)}mleadersEqual(e,t){return!(e.arrowHeadId!==t.arrowHeadId||!this.numberEqual(e.arrowHeadSize,t.arrowHeadSize))&&this.mleaderContextEqual(e.contextData,t.contextData)}ole2framesEqual(e,t){return!(e.leftUpX!==t.leftUpX||e.leftUpY!==t.leftUpY||e.leftUpZ!==t.leftUpZ||e.rightDownX!==t.rightDownX||e.rightDownY!==t.rightDownY||e.rightDownZ!==t.rightDownZ)}insertsEqual(e,t){var i,n,r,a;return"INSERT"===(null==(i=e.extendedData)?void 0:i.originalType)&&"INSERT"===(null==(n=t.extendedData)?void 0:n.originalType)?(se.warn(`[DxfCompare] We cannot compare insert (handle '${e.handle}') yet, ignored!`),!0):!!(this.pointsEqual(e.position,t.position)&&this.numberEqual(void 0===e.xScale?1:e.xScale,void 0===t.xScale?1:t.xScale)&&this.numberEqual(void 0===e.yScale?1:e.yScale,void 0===t.yScale?1:t.yScale)&&this.numberEqual(void 0===e.zScale?1:e.zScale,void 0===t.zScale?1:t.zScale)&&e.block===t.block&&(null==(r=e.entities)?void 0:r.length)===(null==(a=t.entities)?void 0:a.length))}dimensionsEqual(e,t){return!!this.pointsEqual(e.anchorPoint,t.anchorPoint)}regionsEqual(e,t){return se.warn("Cannot compare region yet!"),!0}vectorsEqual(e,t){return!e&&!t||!(!e||!t)&&this.numberEqual(e.x,t.x)&&this.numberEqual(e.y,t.y)&&this.numberEqual(e.z,t.z)}pointsEqual(e,t){return!e&&!t||!(!e||!t)&&this.numberEqual(e.x,t.x)&&this.numberEqual(e.y,t.y)&&this.numberEqual(e.z,t.z)&&this.numberEqual(e.bulge,t.bulge)}vertexEntityEqual(e,t){return!e&&!t||!(!e||!t)&&!(!this.pointsEqual(e,t)||e.polyfaceMeshVertex!==t.polyfaceMeshVertex||e.threeDPolylineMesh!==t.threeDPolylineMesh)}numbersEqual(e,t){if(!e&&!t)return!0;if(e&&t){if(e.length!==t.length)return!1;for(let i=0;i{let t={};return jE.forEach(((e,i)=>t[e]=i)),t})(),vut=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,ia=String.fromCharCode.bind(String),Spe="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):(e,t=(e=>e))=>new Uint8Array(Array.prototype.slice.call(e,0).map(t)),Cpe=e=>e.replace(/=/g,"").replace(/[+\/]/g,(e=>"+"==e?"-":"_")),Ppe=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),Ipe=e=>{let t,i,n,r,a="",s=e.length%3;for(let o=0;o255||(n=e.charCodeAt(o++))>255||(r=e.charCodeAt(o++))>255)throw new TypeError("invalid character found");t=i<<16|n<<8|r,a+=jE[t>>18&63]+jE[t>>12&63]+jE[t>>6&63]+jE[63&t]}return s?a.slice(0,s-3)+"===".substring(s):a},H5=mut?e=>btoa(e):fy?e=>Buffer.from(e,"binary").toString("base64"):Ipe,B5=fy?e=>Buffer.from(e).toString("base64"):e=>{let t=[];for(let i=0,n=e.length;it?Cpe(B5(e)):B5(e),yut=e=>{if(e.length<2)return(t=e.charCodeAt(0))<128?e:t<2048?ia(192|t>>>6)+ia(128|63&t):ia(224|t>>>12&15)+ia(128|t>>>6&63)+ia(128|63&t);var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return ia(240|t>>>18&7)+ia(128|t>>>12&63)+ia(128|t>>>6&63)+ia(128|63&t)},xut=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Lpe=e=>e.replace(xut,yut),Mpe=fy?e=>Buffer.from(e,"utf8").toString("base64"):wpe?e=>B5(wpe.encode(e)):e=>H5(Lpe(e)),dy=(e,t=!1)=>t?Cpe(Mpe(e)):Mpe(e),Rpe=e=>dy(e,!0),but=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,Eut=e=>{switch(e.length){case 4:var t=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return ia(55296+(t>>>10))+ia(56320+(1023&t));case 3:return ia((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return ia((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},Dpe=e=>e.replace(but,Eut),Ope=e=>{if(e=e.replace(/\s+/g,""),!vut.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(3&e.length));let t,i,n,r="";for(let a=0;a>16&255):64===n?ia(t>>16&255,t>>8&255):ia(t>>16&255,t>>8&255,255&t);return r},V5=put?e=>atob(Ppe(e)):fy?e=>Buffer.from(e,"base64").toString("binary"):Ope,kpe=fy?e=>Spe(Buffer.from(e,"base64")):e=>Spe(V5(e),(e=>e.charCodeAt(0))),Fpe=e=>kpe(Npe(e)),_ut=fy?e=>Buffer.from(e,"base64").toString("utf8"):Tpe?e=>Tpe.decode(kpe(e)):e=>Dpe(V5(e)),Npe=e=>Ppe(e.replace(/[-_]/g,(e=>"-"==e?"+":"/"))),U5=e=>_ut(Npe(e)),Tut=e=>{if("string"!=typeof e)return!1;let t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},Bpe=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),Upe=function(){let e=(e,t)=>Object.defineProperty(String.prototype,e,Bpe(t));e("fromBase64",(function(){return U5(this)})),e("toBase64",(function(e){return dy(this,e)})),e("toBase64URI",(function(){return dy(this,!0)})),e("toBase64URL",(function(){return dy(this,!0)})),e("toUint8Array",(function(){return Fpe(this)}))},Hpe=function(){let e=(e,t)=>Object.defineProperty(Uint8Array.prototype,e,Bpe(t));e("toBase64",(function(e){return TC(this,e)})),e("toBase64URI",(function(){return TC(this,!0)})),e("toBase64URL",(function(){return TC(this,!0)}))},wut=()=>{Upe(),Hpe()},Vpe={version:Ape,VERSION:fut,atob:V5,atobPolyfill:Ope,btoa:H5,btoaPolyfill:Ipe,fromBase64:U5,toBase64:dy,encode:dy,encodeURI:Rpe,encodeURL:Rpe,utob:Lpe,btou:Dpe,decode:U5,isValid:Tut,fromUint8Array:TC,toUint8Array:Fpe,extendString:Upe,extendUint8Array:Hpe,extendBuiltins:wut},Hl=Xi(sme(),1),wC=new et,Fut=new et,Ic=class{static resetMergeInfo(){this.mergeInfo.removedObjects=0,this.mergeInfo.mergedMeshes=0,this.mergeInfo.mergedLines=0,this.mergeInfo.mergedPoints=0,this.mergeInfo.mergedUnknownTypeObjects=0,this.mergeInfo.elapsedTime=0}static merge(e,t=!0){let i=Date.now();this.mergeInner(e,t),this.mergeInfo.elapsedTime+=Date.now()-i}static mergeInner(e,t=!0){if(!e.children||e.children.length<1)return;let i=e.children.length,n={},r=[];for(let h=0;h0){this.mergeInner(i,t);continue}if(i.userData.relativeToCenter||!i.geometry)continue;let a=!1,s=Object.values(n);for(let t=s.length-1;t>=0;--t){let i=s[t].indexes[0];if(a=this.tryHandleMergeableObjects(e,h,i,n,r),a)break}for(let t=r.length-1;!a&&t>=0;--t){let i=r[t];if(a=this.tryHandleMergeableObjects(e,h,i,n,r),a)break}a||r.push(h)}if(Object.keys(n).length<=0)return;let a=[],s=[],o=[],l=[];Object.values(n).forEach((i=>{let n,r=i.indexes,h=e.children[r[0]],c=[],u=0,d=0,p=0,f=[];if(r.forEach((i=>{var n,r,a,s;let o=e.children[i],l=null==(n=o.geometry)?void 0:n.clone();if(l.applyMatrix4(o.matrix),l.userData.isLineSegments=3===o.type,c.push(l),t){let e=null==(a=null==(r=l.attributes)?void 0:r.position)?void 0:a.count,t=(null==(s=l.index)?void 0:s.count)||0;f.push({batchId:u,positionStart:d,positionCount:e,indexStart:p,indexCount:t}),d+=e,p+=t,u++}})),0!==c.length){if(4===h.type){let e=Ui(c);if(!e)return;e.userData={},n=new bn(h.type),n.geometry=e,n.material=h.material,a.push(n)}else if(2===h.type||3===h.type){let e=Rr.mergeLineGeometries(c,t,h.material instanceof Iu||h.material instanceof cn,f);if(!e)return;n=new bn(3),n.geometry=e,n.material=h.material,s.push(n)}else if(1===h.type){let e=Ui(c);if(!e)return;e.userData={},n=new bn(h.type),n.geometry=e,n.material=h.material,o.push(n)}n&&(t?n.userData.batches=f:(n.userData=h.userData,n.userData.batches=void 0),n.userData.layerName=h.userData.layerName,n.name=`[Merged] ${h.name}`,n.renderOrder=h.renderOrder,n.layers.mask=h.layers.mask,l.push(...r)),c.forEach((e=>{e.dispose(),Qt.releaseGeometryManually(e)})),c=[]}})),l.sort(((e,t)=>t-e)),l.forEach((t=>{let i=e.children[t];e.remove(i)})),[...a,...s,...o].forEach((t=>{e.add(t)})),this.mergeInfo.removedObjects+=l.length,this.mergeInfo.mergedMeshes+=a.length,this.mergeInfo.mergedLines+=s.length,this.mergeInfo.mergedPoints+=o.length}static tryHandleMergeableObjects(e,t,i,n,r){let a=!1,s=Array.isArray(e),o=s?e.length:e.children.length;if(t===i||t>=o||i>=o)return a;let l=s?e[t]:e.children[t],h=s?e[i]:e.children[i];return this.areObjectsMergeable(l,h)&&Rr.areGeometriesMergeable(l.geometry,h.geometry)&&es.materialsEquals(l.material,h.material)&&(n[i]||(n[i]={indexes:[i]},this.removeFromArray(r,i)),n[i].indexes.push(t),a=!0),a}static isFilteredByOtherFactors(e,t){let i=e;if(4===i.type&&i.material&&i.material.isShaderMaterial)return!0;let n=!1,r=e;for(;r&&r!==t;){let e=r.userData;if(e.relativeToCenter||e.spatialFilterHandle){n=!0;break}r=r.parent}return n}static deepMerge(e,t,i=!0,n=!0,r=!0){let a={added:[],removed:[]};if(e.length<=1)return a;let s=Date.now(),o={},l=[];for(let m=0;m=0;--t){let r=n[t].indexes[0];if(i=this.tryHandleMergeableObjects(e,m,r,o,l),i)break}for(let t=l.length-1;!i&&t>=0;--t){let n=l[t];if(i=this.tryHandleMergeableObjects(e,m,n,o,l),i)break}i||l.push(m)}if(Object.keys(o).length<=0)return a;se.debug(`[Merge] Built merged indexes for ${e.length} objects in ${(Date.now()-s)/1e3}s`),s=Date.now();let h=[],c=[],u=[],d=[];Object.values(o).forEach((i=>{let n=i.indexes;if(n.length<2)return;let a,s=e[n[0]],o=[],l=0,p=0,f=0,m=[];if(n.forEach((i=>{var n,a,h,c,u;let d=e[i],g=null==(n=d.geometry)?void 0:n.clone();if(s.material instanceof Gn&&g.deleteAttribute("lineDistance"),this.applyMatrix(g,d,t),g.userData.isLineSegments=3===d.type,o.push(g),r){let e,t=null==(h=null==(a=g.attributes)?void 0:a.position)?void 0:h.count,i=(null==(c=g.index)?void 0:c.count)||0;(2===s.type||3===s.type)&&(g.boundingSphere||g.computeBoundingSphere(),e=null==(u=g.boundingSphere)?void 0:u.clone()),m.push({batchId:l,positionStart:p,positionCount:t,indexStart:f,indexCount:i,boundingSphere:e}),p+=t,f+=i,l++}})),0!==o.length){if(4===s.type){let e=Ui(o);if(!e)return;e.userData={},a=new bn(s.type),a.geometry=e,a.material=s.material,h.push(a)}else if(2===s.type||3===s.type){let e=Rr.mergeLineGeometries(o,r,s.material instanceof Iu||s.material instanceof cn,m);if(!e)return;a=new bn(3),a.geometry=e,a.material=s.material,c.push(a)}else if(1===s.type){let e=Ui(o);if(!e)return;e.userData={},a=new bn(s.type),a.geometry=e,a.material=s.material,u.push(a)}a&&(r?a.userData.batches=m:(a.userData=s.userData,a.userData.batches=void 0),a.userData.layerName=s.userData.layerName,a.name=`[Merged] ${s.name}`,a.renderOrder=s.renderOrder,a.layers.mask=s.layers.mask,n.forEach((e=>d.push(e)))),o.forEach((e=>{e.dispose(),Qt.releaseGeometryManually(e)})),o=[]}})),se.debug(`[Merge] Ran deepMerge() in ${(Date.now()-s)/1e3}s`);let p=a.removed;d.forEach((t=>{let n=e[t];p.push(n),i&&n.removeFromParent()}));let f=a.added;return[...h,...c,...u].forEach((e=>{f.push(e),i&&t&&t.add(e)})),this.mergeInfo.removedObjects+=d.length,this.mergeInfo.mergedMeshes+=h.length,this.mergeInfo.mergedLines+=c.length,this.mergeInfo.mergedPoints+=u.length,n&&t&&Hn.removeEmptyObjects(t),a}static applyMatrix(e,t,i){let n=t;for(wC.identity();n&&n!==i&&(wC.premultiply(n.matrix),n.parent);)n=n.parent;return wC.equals(Fut)?e:e.applyMatrix4(wC)}static removeFromArray(e,t){for(let i=e.length-1;i>=0;--i)if(e[i]===t)return void e.splice(i,1)}static areObjectsMergeable(e,t){return e.layers.mask===t.layers.mask&&e.renderOrder===t.renderOrder&&e.userData.layerName===t.userData.layerName&&(e.type===t.type||!(2!==e.type&&3!==e.type||2!==t.type&&3!==t.type))}};function ame(e,t,i,n){let r={u_cameraZoom:i,u_patternLines:{value:e},u_patternAngle:{value:t},u_color:{value:n}},a=`\n uniform mat4 modelMatrix;\n uniform float u_cameraZoom;\n uniform vec3 u_color;\n varying vec3 v_pos;\n\n struct PatternLine {\n vec2 origin;\n vec2 delta;\n float angle;\n float pattern[MAX_PATTERN_SEGMENT_COUNT];\n float patternSum[MAX_PATTERN_SEGMENT_COUNT+1];\n float patternLength;\n };\n\n uniform PatternLine u_patternLines[${e.length}];\n uniform float u_patternAngle;\n\n #include \n\n // Clamp [0..1] range\n #define saturate(a) clamp(a, 0.0, 1.0)\n\n const float EPS = 1000.0;\n\n vec2 getWorldScale() {\n return vec2(length(modelMatrix[0].xyz), length(modelMatrix[1].xyz));\n }\n\n vec2 rotate(vec2 st, float rotation) {\n const float PI = 3.1415926;\n float angle = rotation * PI/180.0;\n float sine = sin(angle), cosine = cos(angle);\n return vec2(cosine * st.x - sine * st.y, cosine * st.y + sine * st.x);\n }\n\n vec2 translate(vec2 samplePosition, vec2 offset) {\n //move sample point in the opposite direction that we want to move shapes in\n return samplePosition - offset;\n }\n\n vec2 scale(vec2 samplePosition, float scale) {\n return samplePosition / scale;\n }\n\n float sdfLine(vec2 st, vec2 a, vec2 b) {\n vec2 ap = st - a;\n vec2 ab = b - a;\n return abs(((ap.x * ab.y) - (ab.x * ap.y))) / length(ab);\n }\n\n float drawSpaceLine(vec2 st, float distanceBetweenLines, float thick) {\n float dist = sdfLine(st , vec2(0.0, 0.0) , vec2(1.0, 0.0));\n \n //vec2 tt = dFdy(st);\n //float scale = (abs(tt.x)+abs(tt.y))/2.0;\n //float scale = length(fwidth(st)) * 0.5;\n // close to a pixel\n //float thick = 2.0;\n //thick = (thick * 0.5 - 0.5) * scale;\n\n float lineDistance = abs(fract(dist / distanceBetweenLines + 0.5) - 0.5) * distanceBetweenLines;\n //float lineDistance = fract(dist / distanceBetweenLines);\n //float distanceChange = fwidth(dist) * 0.5;\n //float threshold = smoothstep(thick - distanceChange, thick + distanceChange, lineDistance);\n //float threshold = step(thick,lineDistance);\n // remove gradient\n //float threshold = step(0.001,lineDistance);\n float threshold = step(thick,lineDistance);\n\n return threshold;\n }\n\n float drawSolidLine(PatternLine patternLine, float thick) {\n vec2 origin = patternLine.origin;\n vec2 delta = patternLine.delta;\n float distanceBetweenLines = length(delta);\n\n origin = rotate(origin,u_patternAngle);\n vec2 st = rotate(v_pos.xy - origin, -(patternLine.angle + u_patternAngle));\n\n return drawSpaceLine(st, distanceBetweenLines , thick);\n }\n\n int getPatternIndex(PatternLine patternLine, float u, out float distance ) {\n //u = mod(u, patternLine.patternLength);\n float y = floor(u/patternLine.patternLength);\n u = u - patternLine.patternLength * y;\n //float distance = 0.0;\n\n #pragma unroll_loop_start\n for(int i = 1; i < patternLine.patternSum.length(); i++){\n if(u <= patternLine.patternSum[i]) {\n distance = u - patternLine.patternSum[i-1];\n return i - 1;\n }\n }\n #pragma unroll_loop_end\n\n return -1;\n }\n\n float drawDashedLine(PatternLine patternLine, float thick){\n float threshold = 1.0;\n vec2 origin = patternLine.origin;\n vec2 delta = patternLine.delta; \n float distanceBetweenLines = abs(delta.y);\n\n origin = rotate(origin, u_patternAngle);\n vec2 st = rotate(v_pos.xy - origin, -(patternLine.angle + u_patternAngle));\n\n float offsetX = st.y * delta.x/delta.y;\n float u = st.x - offsetX;\n float distance = 0.0;\n int index = getPatternIndex(patternLine, u, distance);\n if(index < 0) {\n return threshold;\n }\n\n float size = patternLine.pattern[index];\n if(size >= 0.0) {\n threshold = drawSpaceLine(st, distanceBetweenLines , thick);\n // Try to solve the problem caused by the precision after zooming out by drawing a part of the dashed line\n } else if (distance < thick) {\n //threshold = 0.8;\n threshold = drawSpaceLine(st, distanceBetweenLines , thick);\n }\n \n return threshold;\n }\n\n float drawLine(PatternLine patternLine, float thick) {\n float t = 0.0;\n if(patternLine.patternLength > 0.0) {\n t = drawDashedLine(patternLine, thick);\n } else {\n t = drawSolidLine(patternLine, thick);\n }\n return t;\n }\n\n void main() {\n #include \n \n vec2 worldScale = getWorldScale();\n float averageScale = (abs(worldScale.x) + abs(worldScale.y))/2.0;\n // possible size of a pixel \n float thick = (0.7 / averageScale) / u_cameraZoom;\n\n if(thick > EPS) {\n gl_FragColor = vec4(u_color, 1.0);\n #include \n return;\n }\n\n float total = 0.0;\n\n#if ${e.length} > 1\n #pragma unroll_loop_start\n for (int i = 0; i < u_patternLines.length(); i++) {\n PatternLine pl = u_patternLines[i];\n float t = drawLine(pl, thick);\n total += (1.0 - t);\n }\n #pragma unroll_loop_end\n#else\n float t = drawLine(u_patternLines[0], thick);\n total += (1.0 - t);\n#endif\n\n total = saturate(total);\n if (total < 0.001) {\n discard;\n }\n\n gl_FragColor = vec4(u_color * total, 1.0);\n #include \n }\n `;return new cn({uniforms:r,vertexShader:"\n varying vec3 v_pos;\n\n #include \n void main() {\n //vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n v_pos = position;\n\n #include \n #include \n #include \n }",fragmentShader:a,clipping:!0})}Ic.mergeInfo={removedObjects:0,mergedMeshes:0,mergedLines:0,mergedPoints:0,mergedUnknownTypeObjects:0,elapsedTime:0};var SC=class{static createLineShaderMaterial(e,t,i,n,r){let a=0,s=[];for(let h=0;h\n\n vec2 getWorldScale() {\n return vec2(length(modelMatrix[0].xyz), length(modelMatrix[1].xyz));\n }\n\n void main() {\n\n #include \n\n // vec2 worldScale = getWorldScale();\n // float averageScale = (abs(worldScale.x) + abs(worldScale.y))/2.0;\n // When zoomed out to a certain extent, it is displayed as a solid line.\n if(patternLength * u_viewportScale * u_cameraZoom/1.5 < 1.0){\n gl_FragColor = vec4(u_color, opacity);\n #include \n return;\n }\n\n float pos = mod(vLineDistance, patternLength * u_viewportScale);\n\n for ( int i = 0; i < ${e.length}; i++ ) {\n pos = pos - abs(pattern[i] * u_viewportScale);\n if ( pos < 0.0 ) {\n if ( pattern[i] > 0.0 ) {\n gl_FragColor = vec4(u_color, opacity);\n break;\n }\n discard;\n }\n }\n #include \n }`;return new cn({uniforms:o,vertexShader:"\n attribute float lineDistance;\n varying float vLineDistance;\n\n #include \n\n void main() {\n vLineDistance = lineDistance;\n\n #include \n #include \n #include \n }",fragmentShader:l,clipping:!0})}},W5={};zT(W5,{default:()=>q5});var G5={};zT(G5,{default:()=>z5});var z5=(e,t)=>void 0===t||0==+t?Math.round(e):(e=+e,t=+t,isNaN(e)||"number"!=typeof t||t%1!=0?NaN:(e=e.toString().split("e"),+((e=(e=Math.round(+(e[0]+"e"+(e[1]?+e[1]-t:-t)))).toString().split("e"))[0]+"e"+(e[1]?+e[1]+t:t)))),q5=(e,t,i,n,r)=>{let a=i.length,s=i[0].length;if(e<0||e>1)throw new Error("t out of bounds [0,1]: "+e);if(t<1)throw new Error("degree must be at least 1 (linear)");if(t>a-1)throw new Error("degree must be less than or equal to point count - 1");if(n){if(n.length!==a+t+1)throw new Error("bad knot vector length")}else{n=[];for(let e=0;e=n[o]&&e<=n[o+1]);o++);let u,d=[];for(let f=0;fo-t-1+f;i--){u=(e-n[i])/(n[i+t+1-f]-n[i]);for(let e=0;e{if(!e)return[];e=e.replace(/%%(.)/g,((e,t)=>Nut[t]||t)).replace(/\^I/g," ");let i,n=null==t?void 0:t.encoding,r=n instanceof TextDecoder?n:void 0,a="",s=[],o=e=>{a&&(s.push(a),a=""),s.push(e)};for(let l=0;l(e=Hut(e),t?Vut(e,t):e),Hut=e=>e.replace(/\\[uU]\+([0-9a-fA-F]{4})/g,((e,t)=>String.fromCodePoint(parseInt(t,16)))),Vut=(e,t)=>{let i=t instanceof TextDecoder?t:new TextDecoder(t);return e.replace(/\\[mM]\+[0|1]([0-9a-fA-F]{2})([0-9a-fA-F]{2})/g,((e,n,r)=>(i=i||new TextDecoder(t)).decode(new Uint8Array([parseInt(n,16),parseInt(r,16)]))))},RC=(e,t)=>{let i=0,n={text:""},r=[n],a=(e=Uut(e,null==t?void 0:t.encoding)).matchAll(/%%(\d\d\d|.)/g);for(let s of a){n.text+=e.slice(i,s.index);let t=s[1].toLowerCase(),a=But[t];a?n.text+=a:3===t.length?n.text+=String.fromCodePoint(+t):"k"===t||"o"===t||"u"===t?(n=Ii(Tr({},n),{text:""}),n[t]?delete n[t]:n[t]=1,r.push(n)):n.text+=t,i=s.index+s[0].length}return n.text+=e.slice(i),r.filter((e=>e.text))},j5=(e=>(e.Unitless="Unitless",e.Inches="Inches",e.Feet="Feet",e.Millimeters="Millimeters",e.Centimeters="Centimeters",e.Meters="Meters",e))(j5||{}),ome=e=>"Unitless"===e?1:"Inches"===e?.0254:"Feet"===e?.3048:"Millimeters"===e?.001:"Centimeters"===e?.01:("Meters"===e||console.warn(`[Units] Unsupported unit '${e}', will return 1 for unit scale.`),1),lme=(e,t)=>ome(e)/ome(t),AC=class extends Qs{constructor(e,t={}){let i=t.font;if(void 0===i)super();else{let n=i.generateShapes(e,t.size);t.depth=void 0!==t.height?t.height:50,void 0===t.bevelThickness&&(t.bevelThickness=10),void 0===t.bevelSize&&(t.bevelSize=8),void 0===t.bevelEnabled&&(t.bevelEnabled=!1),super(n,t)}this.type="TextGeometry"}},CC=class{constructor(e){this.isFont=!0,this.type="Font",this.data=e}generateShapes(e,t=100){let i=[],n=zut(e,t,this.data);for(let r=0,a=n.length;rwindow.localStorage.getItem(cme),Wut=()=>{window.localStorage.setItem(cme,JE)},ume=()=>qut()!==JE&&(Wut(),!0),py=class{constructor(){this.DATABASE_NAME="gemini_viewer_db",this.TABLES=[{name:"viewpoint",options:{keyPath:"id",autoIncrement:!0},indexArray:[]},{name:"annotation",options:{keyPath:"id",autoIncrement:!0},indexArray:[]},{name:"dxfdata",options:{keyPath:"dxfDataId",autoIncrement:!1},indexArray:[]},{name:"fontdata",options:{keyPath:"fileName",autoIncrement:!0},indexArray:[]}],this.db=void 0}static instance(){return py._instance||(py._instance=new py),py._instance}getDatabase(){return ft(this,null,(function*(){let e=yield this.getDB(this.DATABASE_NAME);return this.db||(e.close(),ume()&&(yield this.deleteDataBase(this.DATABASE_NAME)),e=yield this.getUpgradedDB(e)),e.onclose=()=>{this.db=void 0,se.debug(`[DB] Db ${e.name} is closed.`)},e.onerror=t=>{this.db=void 0,se.debug(`[DB] Db ${e.name} encountered error.`,t)},e.onabort=t=>{this.db=void 0,se.debug(`[DB] Db ${e.name} aborted.`,t)},e.onversionchange=e=>{se.debug("onversionchange",e)},this.db=e,Promise.resolve(this.db)}))}closeDatabase(){this.db&&this.db.close()}deleteDataBase(e){return new Promise(((t,i)=>{let n=window.indexedDB.deleteDatabase(e);n.onerror=e=>{se.debug(e),i(e)},n.onsuccess=i=>{let n=i.target;se.debug(`[DB] Db ${e} delete old version ${i.oldVersion}.`),t(n)}}))}getDB(e){return ft(this,null,(function*(){return new Promise(((t,i)=>{let n=window.indexedDB.open(e);n.onerror=i,n.onsuccess=e=>{let i=e.target.result;se.debug(`[DB] Db ${i.name} opened (version ${i.version}).`),t(i)}}))}))}getUpgradedDB(e){return ft(this,null,(function*(){return new Promise(((t,i)=>{se.debug(`[DB] Upgrading db ${e.name} (version ${e.version})`);let n=window.indexedDB.open(e.name,e.version+1);n.onerror=i,n.onblocked=e=>{se.debug("onblocked",e)},n.onupgradeneeded=e=>{e.target.transaction.oncomplete=()=>{se.debug(`[DB] Upgrade is done (new version: ${t.version}).`)};let t=e.target.result,i=[];for(let n=0;n0&&Promise.all(i).then((()=>{se.debug(`[DB] All(${i.length}) tables created.`)}))},n.onsuccess=e=>{let i=e.target.result;se.debug(`[DB] Db ${i.name} opened (version ${i.version}).`),t(i)}}))}))}createTable(e,t,i,n){return ft(this,null,(function*(){return new Promise((r=>{let a=e.createObjectStore(t,i);n&&n.forEach((e=>{a.createIndex(e.name,e.fields,{unique:e.unique})})),se.debug(`[DB] Table ${t} created.`),r(e)}))}))}},ns=py;ns._instance=void 0;var Wu=class{constructor(){if(this.db=void 0,this.isCreatingTable=!1,-1===ns.instance().TABLES.findIndex((e=>e.name===this.tableName())))throw new Error(`Make sure to add table '${this.tableName()}' to IndexedDbManager.TABLES!`)}tableName(){throw new Error("Derived class have to override 'tableName', and set a proper table name!")}add(e,t,i){let n=this.tableName();ns.instance().getDatabase().then((r=>{let a=r.transaction([n],"readwrite").objectStore(n).add(e);a.onsuccess=t,a.onerror=i})).finally((()=>{ns.instance().closeDatabase()})).catch((e=>{i&&i(e)}))}save(e,t,i){let n=this.tableName();ns.instance().getDatabase().then((r=>{let a=r.transaction([n],"readwrite").objectStore(n).put(e);a.onsuccess=t,a.onerror=i})).finally((()=>{ns.instance().closeDatabase()}))}delete(e,t,i){let n=this.tableName();ns.instance().getDatabase().then((r=>{let a=r.transaction([n],"readwrite").objectStore(n).delete(e);a.onsuccess=t,a.onerror=i})).finally((()=>{ns.instance().closeDatabase()}))}update(){ns.instance().getDatabase().then((()=>{}))}query(e,t){let i=this.tableName();ns.instance().getDatabase().then((n=>{let r=n.transaction([i],"readonly").objectStore(i).openCursor();r.onsuccess=t=>{let i=t.target.result;i&&i.continue(),e&&e(i)},r.onerror=t})).finally((()=>{ns.instance().closeDatabase()}))}queryByIndex(e,t,i,n){let r=this.tableName();ns.instance().getDatabase().then((a=>{let s=a.transaction([r],"readonly").objectStore(r).index(e).get(t);s.onerror=n,s.onsuccess=function(e){var t;let n=null==(t=e.target)?void 0:t.result;i&&i(n)}})).finally((()=>{ns.instance().closeDatabase()}))}queryAll(e,t){let i=this.tableName();ns.instance().getDatabase().then((n=>{let r=n.transaction([i],"readonly").objectStore(i).getAll();r.onsuccess=t=>{e&&e(r.result)},r.onerror=t})).finally((()=>{ns.instance().closeDatabase()}))}clearAll(e,t){let i=this.tableName();ns.instance().getDatabase().then((n=>{let r=n.transaction([i],"readwrite").objectStore(i).clear();r.onsuccess=t=>{e&&e(t)},r.onerror=e=>{t&&t(e)}})).finally((()=>{ns.instance().closeDatabase()}))}},my=class extends Wu{tableName(){return"annotation"}static instance(){return my._instance||(my._instance=new my),my._instance}query(e,t,i){let n=[];super.query((i=>{i?!i.value||i.value.projectId!==e||n.push(i.value):t&&t(n)}),(e=>{console.log(e)}))}},X5=my;X5._instance=void 0;var gy=class extends Wu{tableName(){return"viewpoint"}static instance(){return gy._instance||(gy._instance=new gy),gy._instance}query(e,t,i){let n=[];super.query((i=>{i?!i.value||i.value.projectId!==e||n.push(i.value):t&&t(n)}),(e=>{i&&i(),console.log(e)}))}},Y5=gy;Y5._instance=void 0;var vy=class extends Wu{tableName(){return"dxfdata"}static instance(){return vy._instance||(vy._instance=new vy),vy._instance}query(e,t,i){let n=[],r=this.tableName();ns.instance().getDatabase().then((a=>{let s=a.transaction([r],"readonly").objectStore(r).get(e);s.onerror=e=>{i&&i(e),se.info("[DxfDataTable] Failed to query !",e)},s.onsuccess=()=>{s.result&&n.push(s.result),t&&t(n)}})).finally((()=>{ns.instance().closeDatabase()}))}},yy=vy;yy._instance=void 0;var Km=class extends Wu{tableName(){return"fontdata"}static instance(){return Km._instance||(Km._instance=new Km),Km._instance}query(e){let t;return new Promise(((i,n)=>{super.query((n=>{n?!n.value||n.value.fileName!==e||(t=n.value):i(t)}),(e=>{n(e)}))}))}queryAll(){return ft(this,null,(function*(){return new Promise(((e,t)=>{CG(Km.prototype,this,"queryAll").call(this,(t=>{e(t)}),(e=>{t(e)}))}))}))}},sd=Km;sd._instance=void 0;var xy=class extends CC{constructor(e,t){super(t),this.info="",this.orientation=0,this.baseUp=0,this.baseDown=0,this.fileHeader="",this.fileVersion="",this.order=0,this.unsupportedChars={},this.fileName=e}addUnsupportedChar(e){this.unsupportedChars[e]||(this.unsupportedChars[e]=0),this.unsupportedChars[e]++}getFontFile(){return{order:this.order,data:this.data,info:this.info,orientation:this.orientation,baseUp:this.baseUp,baseDown:this.baseDown,fileName:this.fileName,fileHeader:this.fileHeader,fileVersion:this.fileVersion}}setFontFile(e){this.fileName=e.fileName,this.data=e.data,this.info=e.info,this.order=e.order,this.orientation=e.orientation,this.baseUp=e.baseUp,this.baseDown=e.baseDown,this.fileHeader=e.fileHeader,this.fileVersion=e.fileVersion}setFontDataToIndexedDb(){return ft(this,null,(function*(){let e=this.getFontFile();return new Promise(((t,i)=>{sd.instance().save(e,(()=>{console.log(`[FontFile] Saved '${this.fileName}' (${this.fileHeader}) to indexedDb`),t()}),(e=>i(`[FontFile] Failed to save '${this.fileName}' (${this.fileHeader}) to indexedDb! ${e}`)))}))}))}getFontDataByIndexedDb(){return ft(this,null,(function*(){return sd.instance().query(this.fileName)}))}releaseFontData(){this.data={}}};String.prototype.codePointAt||function(){var e=function(){try{var e={},t=Object.defineProperty,i=t(e,e,e)&&t}catch(e){}return i}(),t=function(e){if(null==this)throw TypeError();var t=String(this),i=t.length,n=e?Number(e):0;if(n!=n&&(n=0),!(n<0||n>=i)){var r,a=t.charCodeAt(n);return a>=55296&&a<=56319&&i>n+1&&(r=t.charCodeAt(n+1))>=56320&&r<=57343?1024*(a-55296)+r-56320+65536:a}};e?e(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t}();var f6=0,Zme=-3;function t_(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function jut(e,t){this.source=e,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new t_,this.dtree=new t_}var Kme=new t_,Jme=new t_,p6=new Uint8Array(30),m6=new Uint16Array(30),Qme=new Uint8Array(30),ege=new Uint16Array(30),Xut=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),hme=new t_,ju=new Uint8Array(320);function tge(e,t,i,n){var r,a;for(r=0;r>>=1,t}function Xu(e,t,i){if(!t)return i;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>16-t;return e.tag>>>=t,e.bitcount-=t,n+i}function i6(e,t){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>=1,++r,i+=t.table[r],n-=t.table[r]}while(n>=0);return e.tag=a,e.bitcount-=r,t.trans[i+n]}function Zut(e,t,i){var n,r,a,s,o,l;for(n=Xu(e,5,257),r=Xu(e,5,1),a=Xu(e,4,4),s=0;s<19;++s)ju[s]=0;for(s=0;s8;)e.sourceIndex--,e.bitcount-=8;if((t=256*(t=e.source[e.sourceIndex+1])+e.source[e.sourceIndex])!==(65535&~(256*e.source[e.sourceIndex+3]+e.source[e.sourceIndex+2])))return Zme;for(e.sourceIndex+=4,i=t;i;--i)e.dest[e.destLen++]=e.source[e.sourceIndex++];return e.bitcount=0,f6}function Jut(e,t){var i,n,r=new jut(e,t);do{switch(i=$ut(r),Xu(r,2,0)){case 0:n=Kut(r);break;case 1:n=fme(r,Kme,Jme);break;case 2:Zut(r,r.ltree,r.dtree),n=fme(r,r.ltree,r.dtree);break;default:n=Zme}if(n!==f6)throw new Error("Data error")}while(!i);return r.destLenthis.x2&&(this.x2=e)),"number"==typeof t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))},Hf.prototype.addX=function(e){this.addPoint(e,null)},Hf.prototype.addY=function(e){this.addPoint(null,e)},Hf.prototype.addBezier=function(e,t,i,n,r,a,s,o){var l=[e,t],h=[i,n],c=[r,a],u=[s,o];this.addPoint(e,t),this.addPoint(s,o);for(var d=0;d<=1;d++){var p=6*l[d]-12*h[d]+6*c[d],f=-3*l[d]+9*h[d]-9*c[d]+3*u[d],m=3*h[d]-3*l[d];if(0!==f){var g=Math.pow(p,2)-4*m*f;if(!(g<0)){var v=(-p+Math.sqrt(g))/(2*f);0=0&&n>0&&(i+=" "),i+=t(r)}return i}e=void 0!==e?e:2;for(var n="",r=0;r"},ks.prototype.toDOMElement=function(e){var t=this.toPathData(e),i=document.createElementNS("http://www.w3.org/2000/svg","path");return i.setAttribute("d",t),i};var Yn={fail:nge,argument:pme,assert:pme},mme=32768,gme=2147483648,_y={},tn={},Qn={};function kc(e){return function(){return e}}tn.BYTE=function(e){return Yn.argument(e>=0&&e<=255,"Byte value should be between 0 and 255."),[e]},Qn.BYTE=kc(1),tn.CHAR=function(e){return[e.charCodeAt(0)]},Qn.CHAR=kc(1),tn.CHARARRAY=function(e){void 0===e&&(e="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var t=[],i=0;i>8&255,255&e]},Qn.USHORT=kc(2),tn.SHORT=function(e){return e>=mme&&(e=-(2*mme-e)),[e>>8&255,255&e]},Qn.SHORT=kc(2),tn.UINT24=function(e){return[e>>16&255,e>>8&255,255&e]},Qn.UINT24=kc(3),tn.ULONG=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},Qn.ULONG=kc(4),tn.LONG=function(e){return e>=gme&&(e=-(2*gme-e)),[e>>24&255,e>>16&255,e>>8&255,255&e]},Qn.LONG=kc(4),tn.FIXED=tn.ULONG,Qn.FIXED=Qn.ULONG,tn.FWORD=tn.SHORT,Qn.FWORD=Qn.SHORT,tn.UFWORD=tn.USHORT,Qn.UFWORD=Qn.USHORT,tn.LONGDATETIME=function(e){return[0,0,0,0,e>>24&255,e>>16&255,e>>8&255,255&e]},Qn.LONGDATETIME=kc(8),tn.TAG=function(e){return Yn.argument(4===e.length,"Tag should be exactly 4 ASCII characters."),[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]},Qn.TAG=kc(4),tn.Card8=tn.BYTE,Qn.Card8=Qn.BYTE,tn.Card16=tn.USHORT,Qn.Card16=Qn.USHORT,tn.OffSize=tn.BYTE,Qn.OffSize=Qn.BYTE,tn.SID=tn.USHORT,Qn.SID=Qn.USHORT,tn.NUMBER=function(e){return e>=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?tn.NUMBER16(e):tn.NUMBER32(e)},Qn.NUMBER=function(e){return tn.NUMBER(e).length},tn.NUMBER16=function(e){return[28,e>>8&255,255&e]},Qn.NUMBER16=kc(3),tn.NUMBER32=function(e){return[29,e>>24&255,e>>16&255,e>>8&255,255&e]},Qn.NUMBER32=kc(5),tn.REAL=function(e){var t=e.toString(),i=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(i){var n=parseFloat("1e"+((i[2]?+i[2]:0)+i[1].length));t=(Math.round(e*n)/n).toString()}for(var r="",a=0,s=t.length;a>8&255,t[t.length]=255&n}return t},Qn.UTF16=function(e){return 2*e.length};var s6={"x-mac-croatian":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\u0160\u2122\xb4\xa8\u2260\u017d\xd8\u221e\xb1\u2264\u2265\u2206\xb5\u2202\u2211\u220f\u0161\u222b\xaa\xba\u03a9\u017e\xf8\xbf\xa1\xac\u221a\u0192\u2248\u0106\xab\u010c\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u0110\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\uf8ff\xa9\u2044\u20ac\u2039\u203a\xc6\xbb\u2013\xb7\u201a\u201e\u2030\xc2\u0107\xc1\u010d\xc8\xcd\xce\xcf\xcc\xd3\xd4\u0111\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u03c0\xcb\u02da\xb8\xca\xe6\u02c7","x-mac-cyrillic":"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\u0490\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e","x-mac-gaelic":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u1e02\xb1\u2264\u2265\u1e03\u010a\u010b\u1e0a\u1e0b\u1e1e\u1e1f\u0120\u0121\u1e40\xe6\xf8\u1e41\u1e56\u1e57\u027c\u0192\u017f\u1e60\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\u1e61\u1e9b\xff\u0178\u1e6a\u20ac\u2039\u203a\u0176\u0177\u1e6b\xb7\u1ef2\u1ef3\u204a\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\u2663\xd2\xda\xdb\xd9\u0131\xdd\xfd\u0174\u0175\u1e84\u1e85\u1e80\u1e81\u1e82\u1e83","x-mac-greek":"\xc4\xb9\xb2\xc9\xb3\xd6\xdc\u0385\xe0\xe2\xe4\u0384\xa8\xe7\xe9\xe8\xea\xeb\xa3\u2122\xee\xef\u2022\xbd\u2030\xf4\xf6\xa6\u20ac\xf9\xfb\xfc\u2020\u0393\u0394\u0398\u039b\u039e\u03a0\xdf\xae\xa9\u03a3\u03aa\xa7\u2260\xb0\xb7\u0391\xb1\u2264\u2265\xa5\u0392\u0395\u0396\u0397\u0399\u039a\u039c\u03a6\u03ab\u03a8\u03a9\u03ac\u039d\xac\u039f\u03a1\u2248\u03a4\xab\xbb\u2026\xa0\u03a5\u03a7\u0386\u0388\u0153\u2013\u2015\u201c\u201d\u2018\u2019\xf7\u0389\u038a\u038c\u038e\u03ad\u03ae\u03af\u03cc\u038f\u03cd\u03b1\u03b2\u03c8\u03b4\u03b5\u03c6\u03b3\u03b7\u03b9\u03be\u03ba\u03bb\u03bc\u03bd\u03bf\u03c0\u03ce\u03c1\u03c3\u03c4\u03b8\u03c9\u03c2\u03c7\u03c5\u03b6\u03ca\u03cb\u0390\u03b0\xad","x-mac-icelandic":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\xdd\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\xd0\xf0\xde\xfe\xfd\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-inuit":"\u1403\u1404\u1405\u1406\u140a\u140b\u1431\u1432\u1433\u1434\u1438\u1439\u1449\u144e\u144f\u1450\u1451\u1455\u1456\u1466\u146d\u146e\u146f\u1470\u1472\u1473\u1483\u148b\u148c\u148d\u148e\u1490\u1491\xb0\u14a1\u14a5\u14a6\u2022\xb6\u14a7\xae\xa9\u2122\u14a8\u14aa\u14ab\u14bb\u14c2\u14c3\u14c4\u14c5\u14c7\u14c8\u14d0\u14ef\u14f0\u14f1\u14f2\u14f4\u14f5\u1505\u14d5\u14d6\u14d7\u14d8\u14da\u14db\u14ea\u1528\u1529\u152a\u152b\u152d\u2026\xa0\u152e\u153e\u1555\u1556\u1557\u2013\u2014\u201c\u201d\u2018\u2019\u1558\u1559\u155a\u155d\u1546\u1547\u1548\u1549\u154b\u154c\u1550\u157f\u1580\u1581\u1582\u1583\u1584\u1585\u158f\u1590\u1591\u1592\u1593\u1594\u1595\u1671\u1672\u1673\u1674\u1675\u1676\u1596\u15a0\u15a1\u15a2\u15a3\u15a4\u15a5\u15a6\u157c\u0141\u0142","x-mac-ce":"\xc4\u0100\u0101\xc9\u0104\xd6\xdc\xe1\u0105\u010c\xe4\u010d\u0106\u0107\xe9\u0179\u017a\u010e\xed\u010f\u0112\u0113\u0116\xf3\u0117\xf4\xf6\xf5\xfa\u011a\u011b\xfc\u2020\xb0\u0118\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\u0119\xa8\u2260\u0123\u012e\u012f\u012a\u2264\u2265\u012b\u0136\u2202\u2211\u0142\u013b\u013c\u013d\u013e\u0139\u013a\u0145\u0146\u0143\xac\u221a\u0144\u0147\u2206\xab\xbb\u2026\xa0\u0148\u0150\xd5\u0151\u014c\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\u014d\u0154\u0155\u0158\u2039\u203a\u0159\u0156\u0157\u0160\u201a\u201e\u0161\u015a\u015b\xc1\u0164\u0165\xcd\u017d\u017e\u016a\xd3\xd4\u016b\u016e\xda\u016f\u0170\u0171\u0172\u0173\xdd\xfd\u0137\u017b\u0141\u017c\u0122\u02c7",macintosh:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-romanian":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\u0102\u0218\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\u0103\u0219\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\u2039\u203a\u021a\u021b\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-turkish":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u011e\u011f\u0130\u0131\u015e\u015f\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\uf8a0\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"};_y.MACSTRING=function(e,t,i,n){var r=s6[n];if(void 0!==r){for(var a="",s=0;s=-128&&e<=127}function tht(e,t,i){for(var n=0,r=e.length;t>8&255,l+256&255)}return a}tn.MACSTRING=function(e,t){var i=eht(t);if(void 0!==i){for(var n=[],r=0;r=128&&void 0===(a=i[a]))return;n[r]=a}return n}},Qn.MACSTRING=function(e,t){var i=tn.MACSTRING(e,t);return void 0!==i?i.length:0},tn.VARDELTAS=function(e){for(var t=0,i=[];t=-128&&n<=127?nht(e,t,i):rht(e,t,i)}return i},tn.INDEX=function(e){for(var t=1,i=[t],n=[],r=0;r>8,t[u+1]=255&d,t=t.concat(n[c])}return t},Qn.TABLE=function(e){for(var t=0,i=e.fields.length,n=0;n0)return new Tt(this.data,this.offset+t).parseStruct(e)},Tt.prototype.parsePointer32=function(e){var t=this.parseOffset32();if(t>0)return new Tt(this.data,this.offset+t).parseStruct(e)},Tt.prototype.parseListOfLists=function(e){for(var t=this.parseOffset16List(),i=t.length,n=this.relativeOffset,r=new Array(i),a=0;a>1,t.skip("uShort",3),e.glyphIndexMap={};for(var s=new wn.Parser(i,n+r+14),o=new wn.Parser(i,n+r+16+2*a),l=new wn.Parser(i,n+r+16+4*a),h=new wn.Parser(i,n+r+16+6*a),c=n+r+16+8*a,u=0;u=0;r-=1){var a=wn.getUShort(e,t+4+8*r),s=wn.getUShort(e,t+4+8*r+2);if(3===a&&(0===s||1===s||10===s)||0===a&&(0===s||1===s||2===s||3===s||4===s)){n=wn.getULong(e,t+4+8*r+4);break}}if(-1===n)throw new Error("No valid cmap sub-tables found.");var o=new wn.Parser(e,t+n);if(i.format=o.parseUShort(),12===i.format)uht(i,o);else{if(4!==i.format)throw new Error("Only format 4 and 12 cmap tables are supported (found format "+i.format+").");hht(i,o,e,t,n)}return i}function fht(e,t,i){e.segments.push({end:t,start:t,delta:-(t-i),offset:0,glyphIndex:i})}function pht(e){e.segments.push({end:65535,start:65535,delta:1,offset:0})}function mht(e){var t,i=!0;for(t=e.length-1;t>0;t-=1)if(e.get(t).unicode>65535){console.log("Adding CMAP format 12 (needed!)"),i=!1;break}var n=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:i?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:i?12:20}];i||(n=n.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),n=n.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var r=new fn.Table("cmap",n);for(r.segments=[],t=0;t>4,a=15&n;if(15===r||(t+=i[r],15===a))break;t+=i[a]}return parseFloat(t)}function Cht(e,t){if(28===t)return e.parseByte()<<8|e.parseByte();if(29===t)return e.parseByte()<<24|e.parseByte()<<16|e.parseByte()<<8|e.parseByte();if(30===t)return Aht(e);if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return 256*(t-247)+e.parseByte()+108;if(t>=251&&t<=254)return 256*-(t-251)-e.parseByte()-108;throw new Error("Invalid b0 "+t)}function Pht(e){for(var t={},i=0;i>1,d.length=0,f=!0}return function i(h){for(var y,x,S,M,E,T,A,C,P,R,D,L,I=0;I1&&!f&&(b=d.shift()+c,f=!0),v+=d.pop(),_(g,v);break;case 5:for(;d.length>0;)g+=d.shift(),v+=d.shift(),u.lineTo(g,v);break;case 6:for(;d.length>0&&(g+=d.shift(),u.lineTo(g,v),0!==d.length);)v+=d.shift(),u.lineTo(g,v);break;case 7:for(;d.length>0&&(v+=d.shift(),u.lineTo(g,v),0!==d.length);)g+=d.shift(),u.lineTo(g,v);break;case 8:for(;d.length>0;)n=g+d.shift(),r=v+d.shift(),a=n+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s+d.shift(),u.curveTo(n,r,a,s,g,v);break;case 10:E=d.pop()+l,(T=o[E])&&i(T);break;case 11:return;case 12:switch(O=h[I],I+=1,O){case 35:n=g+d.shift(),r=v+d.shift(),a=n+d.shift(),s=r+d.shift(),A=a+d.shift(),C=s+d.shift(),P=A+d.shift(),R=C+d.shift(),D=P+d.shift(),L=R+d.shift(),g=D+d.shift(),v=L+d.shift(),d.shift(),u.curveTo(n,r,a,s,A,C),u.curveTo(P,R,D,L,g,v);break;case 34:n=g+d.shift(),r=v,a=n+d.shift(),s=r+d.shift(),A=a+d.shift(),C=s,P=A+d.shift(),R=s,D=P+d.shift(),L=v,g=D+d.shift(),u.curveTo(n,r,a,s,A,C),u.curveTo(P,R,D,L,g,v);break;case 36:n=g+d.shift(),r=v+d.shift(),a=n+d.shift(),s=r+d.shift(),A=a+d.shift(),C=s,P=A+d.shift(),R=s,D=P+d.shift(),L=R+d.shift(),g=D+d.shift(),u.curveTo(n,r,a,s,A,C),u.curveTo(P,R,D,L,g,v);break;case 37:n=g+d.shift(),r=v+d.shift(),a=n+d.shift(),s=r+d.shift(),A=a+d.shift(),C=s+d.shift(),P=A+d.shift(),R=C+d.shift(),D=P+d.shift(),L=R+d.shift(),Math.abs(D-g)>Math.abs(L-v)?g=D+d.shift():v=L+d.shift(),u.curveTo(n,r,a,s,A,C),u.curveTo(P,R,D,L,g,v);break;default:console.log("Glyph "+t.index+": unknown operator 1200"+O),d.length=0}break;case 14:d.length>0&&!f&&(b=d.shift()+c,f=!0),m&&(u.closePath(),m=!1);break;case 19:case 20:w(),I+=p+7>>3;break;case 21:d.length>2&&!f&&(b=d.shift()+c,f=!0),v+=d.pop(),_(g+=d.pop(),v);break;case 22:d.length>1&&!f&&(b=d.shift()+c,f=!0),_(g+=d.pop(),v);break;case 24:for(;d.length>2;)n=g+d.shift(),r=v+d.shift(),a=n+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s+d.shift(),u.curveTo(n,r,a,s,g,v);g+=d.shift(),v+=d.shift(),u.lineTo(g,v);break;case 25:for(;d.length>6;)g+=d.shift(),v+=d.shift(),u.lineTo(g,v);n=g+d.shift(),r=v+d.shift(),a=n+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s+d.shift(),u.curveTo(n,r,a,s,g,v);break;case 26:for(d.length%2&&(g+=d.shift());d.length>0;)n=g,r=v+d.shift(),a=n+d.shift(),s=r+d.shift(),g=a,v=s+d.shift(),u.curveTo(n,r,a,s,g,v);break;case 27:for(d.length%2&&(v+=d.shift());d.length>0;)n=g+d.shift(),r=v,a=n+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s,u.curveTo(n,r,a,s,g,v);break;case 28:y=h[I],x=h[I+1],d.push((y<<24|x<<16)>>16),I+=2;break;case 29:E=d.pop()+e.gsubrsBias,(T=e.gsubrs[E])&&i(T);break;case 30:for(;d.length>0&&(n=g,r=v+d.shift(),a=n+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s+(1===d.length?d.shift():0),u.curveTo(n,r,a,s,g,v),0!==d.length);)n=g+d.shift(),r=v,a=n+d.shift(),s=r+d.shift(),v=s+d.shift(),g=a+(1===d.length?d.shift():0),u.curveTo(n,r,a,s,g,v);break;case 31:for(;d.length>0&&(n=g+d.shift(),r=v,a=n+d.shift(),s=r+d.shift(),v=s+d.shift(),g=a+(1===d.length?d.shift():0),u.curveTo(n,r,a,s,g,v),0!==d.length);)n=g,r=v+d.shift(),a=n+d.shift(),s=r+d.shift(),g=a+d.shift(),v=s+(1===d.length?d.shift():0),u.curveTo(n,r,a,s,g,v);break;default:O<32?console.log("Glyph "+t.index+": unknown operator "+O):O<247?d.push(O-139):O<251?(y=h[I],I+=1,d.push(256*(O-247)+y+108)):O<255?(y=h[I],I+=1,d.push(256*-(O-251)-y-108)):(y=h[I],x=h[I+1],S=h[I+2],M=h[I+3],I+=4,d.push((y<<24|x<<16|S<<8|M)/65536))}}}(i),t.advanceWidth=b,u}function kht(e,t,i,n){var r,a=[],s=new wn.Parser(e,t),o=s.parseCard8();if(0===o)for(var l=0;l=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+r+" (FD count "+n+")");a.push(r)}else{if(3!==o)throw new Error("CFF Table CID Font FDSelect table has unsupported format "+o);var h=s.parseCard16(),c=s.parseCard16();if(0!==c)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+c);for(var u,d=0;d=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+r+" (FD count "+n+")");if(u>i)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+u);for(;c=0&&(i=n),(n=t.indexOf(e))>=0?i=n+FC.length:(i=FC.length+t.length,t.push(e)),i}function Nht(){return new fn.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}])}function Bht(e){var t=new fn.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);t.names=[];for(var i=0;i=i.begin&&e=1&&(i.ulCodePageRange1=n.parseULong(),i.ulCodePageRange2=n.parseULong()),i.version>=2&&(i.sxHeight=n.parseShort(),i.sCapHeight=n.parseShort(),i.usDefaultChar=n.parseUShort(),i.usBreakChar=n.parseUShort(),i.usMaxContent=n.parseUShort()),i}function fdt(e){return new fn.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],e)}var h6={parse:ddt,make:fdt,unicodeRanges:u6,getUnicodeRange:hdt};function pdt(e,t){var i={},n=new wn.Parser(e,t);switch(i.version=n.parseVersion(),i.italicAngle=n.parseFixed(),i.underlinePosition=n.parseShort(),i.underlineThickness=n.parseShort(),i.isFixedPitch=n.parseULong(),i.minMemType42=n.parseULong(),i.maxMemType42=n.parseULong(),i.minMemType1=n.parseULong(),i.maxMemType1=n.parseULong(),i.version){case 1:i.names=Qm.slice();break;case 2:i.numberOfGlyphs=n.parseUShort(),i.glyphNameIndex=new Array(i.numberOfGlyphs);for(var r=0;r=Qm.length){var s=n.parseChar();i.names.push(n.parseString(s))}break;case 2.5:i.numberOfGlyphs=n.parseUShort(),i.offset=new Array(i.numberOfGlyphs);for(var o=0;ot.value.tag?1:-1})),t.fields=t.fields.concat(n),t.fields=t.fields.concat(r),t}function Rme(e,t,i){for(var n=0;n0)return e.glyphs.get(r).getMetrics()}return i}function bdt(e){for(var t=0,i=0;ig||void 0===t)&&g>0&&(t=g),h 123 are reserved for internal usage");p|=1<0?xge.make(L):void 0,k=Mge.make(),N=mge.make(e.glyphs,{version:e.getEnglishName("version"),fullName:C,familyName:T,weightName:A,postScriptName:P,unitsPerEm:e.unitsPerEm,fontBBox:[0,x.yMin,x.ascender,x.advanceWidthMax]}),U=e.metas&&Object.keys(e.metas).length>0?Age.make(e.metas):void 0,F=[b,_,w,S,I,E,k,N,M];O&&F.push(O),e.tables.gsub&&F.push(Rge.make(e.tables.gsub)),U&&F.push(U);for(var B=Cge(F),z=x6(B.encode()),H=B.fields,V=!1,j=0;j>>1,a=e[r].tag;if(a===t)return r;a>>1,a=e[r];if(a===t)return r;a>>1,s=(i=e[a]).start;if(s===t)return i;s0)return t>(i=e[n-1]).end?0:i}function s_(e,t){this.font=e,this.tableName=t}function a_(e){s_.call(this,e,"gpos")}function el(e){s_.call(this,e,"gsub")}function Tdt(e,t){var i=e.length;if(i!==t.length)return!1;for(var n=0;n0?(a=e.parseByte(),t&r||(a=-a),a=i+a):a=(t&r)>0?i:i+e.parseShort(),a}function Pge(e,t,i){var n,r,a=new wn.Parser(t,i);if(e.numberOfContours=a.parseShort(),e._xMin=a.parseShort(),e._yMin=a.parseShort(),e._xMax=a.parseShort(),e._yMax=a.parseShort(),e.numberOfContours>0){for(var s=e.endPointIndices=[],o=0;o0)for(var u=a.parseByte(),d=0;d0){var p,f=[];if(h>0){for(var m=0;m=0,f.push(p);for(var g=0,v=0;v0?(2&n)>0?(_.dx=a.parseShort(),_.dy=a.parseShort()):_.matchedPoints=[a.parseUShort(),a.parseUShort()]:(2&n)>0?(_.dx=a.parseChar(),_.dy=a.parseChar()):_.matchedPoints=[a.parseByte(),a.parseByte()],(8&n)>0?_.xScale=_.yScale=a.parseF2Dot14():(64&n)>0?(_.xScale=a.parseF2Dot14(),_.yScale=a.parseF2Dot14()):(128&n)>0&&(_.xScale=a.parseF2Dot14(),_.scale01=a.parseF2Dot14(),_.scale10=a.parseF2Dot14(),_.yScale=a.parseF2Dot14()),e.components.push(_),b=!!(32&n)}if(256&n){e.instructionLength=a.parseUShort(),e.instructions=[];for(var w=0;wt.points.length-1||n.matchedPoints[1]>r.points.length-1)throw Error("Matched points out of range in "+t.name);var s=t.points[n.matchedPoints[0]],o=r.points[n.matchedPoints[1]],l={xScale:n.xScale,scale01:n.scale01,scale10:n.scale10,yScale:n.yScale,dx:0,dy:0};o=J5([o],l)[0],l.dx=s.x-o.x,l.dy=s.y-o.y,a=J5(r.points,l)}t.points=t.points.concat(a)}}return Ige(t.points)}function Rdt(e,t,i,n){for(var r=new $u.GlyphSet(n),a=0;a=0)return n[r].script;if(t){var a={tag:e,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return n.splice(-1-r,0,a),a.script}}},getLangSysTable:function(e,t,i){var n=this.getScriptTable(e,i);if(n){if(!t||"dflt"===t||"DFLT"===t)return n.defaultLangSys;var r=K5(n.langSysRecords,t);if(r>=0)return n.langSysRecords[r].langSys;if(i){var a={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return n.langSysRecords.splice(-1-r,0,a),a.langSys}}},getFeatureTable:function(e,t,i,n){var r=this.getLangSysTable(e,t,n);if(r){for(var a,s=r.featureIndexes,o=this.font.tables[this.tableName].features,l=0;l=o[h-1].tag,"Features must be added in alphabetical order."),a={tag:i,feature:{params:0,lookupListIndexes:[]}},o.push(a),s.push(h),a.feature}}},getLookupTables:function(e,t,i,n,r){var a=this.getFeatureTable(e,t,i,r),s=[];if(a){for(var o,l=a.lookupListIndexes,h=this.font.tables[this.tableName].lookups,c=0;c=0?i:-1;case 2:var n=Cme(e.ranges,t);return n?n.index+t-n.start:-1}},expandCoverage:function(e){if(1===e.format)return e.glyphs;for(var t=[],i=e.ranges,n=0;n1,'Multiple: "by" must be an array of two or more ids');var r=b6(this.getLookupTables(i,n,e,2,!0)[0],1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});Yn.assert(1===r.coverage.format,"Multiple: unable to modify coverage table format "+r.coverage.format);var a=t.sub,s=this.binSearch(r.coverage.glyphs,a);s<0&&(s=-1-s,r.coverage.glyphs.splice(s,0,a),r.sequences.splice(s,0,0)),r.sequences[s]=t.by},el.prototype.addAlternate=function(e,t,i,n){var r=b6(this.getLookupTables(i,n,e,3,!0)[0],1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});Yn.assert(1===r.coverage.format,"Alternate: unable to modify coverage table format "+r.coverage.format);var a=t.sub,s=this.binSearch(r.coverage.glyphs,a);s<0&&(s=-1-s,r.coverage.glyphs.splice(s,0,a),r.alternateSets.splice(s,0,0)),r.alternateSets[s]=t.by},el.prototype.addLigature=function(e,t,i,n){var r=this.getLookupTables(i,n,e,4,!0)[0],a=r.subtables[0];a||(a={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},r.subtables[0]=a),Yn.assert(1===a.coverage.format,"Ligature: unable to modify coverage table format "+a.coverage.format);var s=t.sub[0],o=t.sub.slice(1),l={ligGlyph:t.by,components:o},h=this.binSearch(a.coverage.glyphs,s);if(h>=0){for(var c=a.ligatureSets[h],u=0;u=176&&i<=183)r+=i-176+1;else if(i>=184&&i<=191)r+=2*(i-184+1);else if(t&&1===a&&27===i)break}while(a>0);e.ip=r}function Ime(e,t){exports.DEBUG&&console.log(t.step,"SVTCA["+e.axis+"]"),t.fv=t.pv=t.dpv=e}function Lme(e,t){exports.DEBUG&&console.log(t.step,"SPVTCA["+e.axis+"]"),t.pv=t.dpv=e}function Dme(e,t){exports.DEBUG&&console.log(t.step,"SFVTCA["+e.axis+"]"),t.fv=e}function Ome(e,t){var i,n,r=t.stack,a=r.pop(),s=r.pop(),o=t.z2[a],l=t.z1[s];exports.DEBUG&&console.log("SPVTL["+e+"]",a,s),e?(i=o.y-l.y,n=l.x-o.x):(i=l.x-o.x,n=l.y-o.y),t.pv=t.dpv=l_(i,n)}function kme(e,t){var i,n,r=t.stack,a=r.pop(),s=r.pop(),o=t.z2[a],l=t.z1[s];exports.DEBUG&&console.log("SFVTL["+e+"]",a,s),e?(i=o.y-l.y,n=l.x-o.x):(i=l.x-o.x,n=l.y-o.y),t.fv=l_(i,n)}function Fdt(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",i,n),e.pv=e.dpv=l_(n,i)}function Ndt(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",i,n),e.fv=l_(n,i)}function Bdt(e){var t=e.stack,i=e.pv;exports.DEBUG&&console.log(e.step,"GPV[]"),t.push(16384*i.x),t.push(16384*i.y)}function Udt(e){var t=e.stack,i=e.fv;exports.DEBUG&&console.log(e.step,"GFV[]"),t.push(16384*i.x),t.push(16384*i.y)}function Hdt(e){e.fv=e.pv,exports.DEBUG&&console.log(e.step,"SFVTPV[]")}function Vdt(e){var t=e.stack,i=t.pop(),n=t.pop(),r=t.pop(),a=t.pop(),s=t.pop(),o=e.z0,l=e.z1,h=o[i],c=o[n],u=l[r],d=l[a],p=e.z2[s];exports.DEBUG&&console.log("ISECT[], ",i,n,r,a,s);var f=h.x,m=h.y,g=c.x,v=c.y,y=u.x,x=u.y,b=d.x,_=d.y,w=(f-g)*(x-_)-(m-v)*(y-b),S=f*v-m*g,M=y*_-x*b;p.x=(S*(y-b)-M*(f-g))/w,p.y=(S*(x-_)-M*(m-v))/w}function zdt(e){e.rp0=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP0[]",e.rp0)}function Gdt(e){e.rp1=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP1[]",e.rp1)}function qdt(e){e.rp2=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP2[]",e.rp2)}function Wdt(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP0[]",t),e.zp0=t,t){case 0:e.tZone||qC(e),e.z0=e.tZone;break;case 1:e.z0=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function jdt(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP1[]",t),e.zp1=t,t){case 0:e.tZone||qC(e),e.z1=e.tZone;break;case 1:e.z1=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Xdt(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP2[]",t),e.zp2=t,t){case 0:e.tZone||qC(e),e.z2=e.tZone;break;case 1:e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Ydt(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZPS[]",t),e.zp0=e.zp1=e.zp2=t,t){case 0:e.tZone||qC(e),e.z0=e.z1=e.z2=e.tZone;break;case 1:e.z0=e.z1=e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function $dt(e){e.loop=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SLOOP[]",e.loop)}function Zdt(e){exports.DEBUG&&console.log(e.step,"RTG[]"),e.round=Nge}function Kdt(e){exports.DEBUG&&console.log(e.step,"RTHG[]"),e.round=Ldt}function Jdt(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SMD[]",t),e.minDis=t/64}function Qdt(e){exports.DEBUG&&console.log(e.step,"ELSE[]"),Uge(e,!1)}function eft(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"JMPR[]",t),e.ip+=t-1}function tft(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCVTCI[]",t),e.cvCutIn=t/64}function nft(e){var t=e.stack;exports.DEBUG&&console.log(e.step,"DUP[]"),t.push(t[t.length-1])}function Q5(e){exports.DEBUG&&console.log(e.step,"POP[]"),e.stack.pop()}function rft(e){exports.DEBUG&&console.log(e.step,"CLEAR[]"),e.stack.length=0}function ift(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SWAP[]"),t.push(i),t.push(n)}function sft(e){var t=e.stack;exports.DEBUG&&console.log(e.step,"DEPTH[]"),t.push(t.length)}function aft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"LOOPCALL[]",i,n);var r=e.ip,a=e.prog;e.prog=e.funcs[i];for(var s=0;s1?"loop "+(t.loop-o)+": ":"")+"SHP["+(e?"rp1":"rp2")+"]",h)}t.loop=1}function Ume(e,t){var i=t.stack,n=e?t.rp1:t.rp2,r=(e?t.z0:t.z1)[n],a=t.fv,s=t.pv,o=i.pop(),l=t.z2[t.contours[o]],h=l;exports.DEBUG&&console.log(t.step,"SHC["+e+"]",o);var c=s.distance(r,r,!1,!0);do{h!==r&&a.setRelative(h,h,c,s),h=h.nextPointOnContour}while(h!==l)}function Hme(e,t){var i,n=t.stack,r=e?t.rp1:t.rp2,a=(e?t.z0:t.z1)[r],s=t.fv,o=t.pv,l=n.pop();switch(exports.DEBUG&&console.log(t.step,"SHZ["+e+"]",l),l){case 0:i=t.tZone;break;case 1:i=t.gZone;break;default:throw new Error("Invalid zone")}for(var h,c=o.distance(a,a,!1,!0),u=i.length-2,d=0;d1?"loop "+(e.loop-i)+": ":"")+"SHPIX[]",s,r),n.setRelative(o,o,r),n.touch(o)}e.loop=1}function dft(e){for(var t=e.stack,i=e.rp1,n=e.rp2,r=e.loop,a=e.z0[i],s=e.z1[n],o=e.fv,l=e.dpv,h=e.z2;r--;){var c=t.pop(),u=h[c];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-r)+": ":"")+"IP[]",c,i,"<->",n),o.interpolate(u,a,s,l),o.touch(u)}e.loop=1}function Vme(e,t){var i=t.stack,n=i.pop()/64,r=i.pop(),a=t.z1[r],s=t.z0[t.rp0],o=t.fv,l=t.pv;o.setRelative(a,s,n,l),o.touch(a),exports.DEBUG&&console.log(t.step,"MSIRP["+e+"]",n,r),t.rp1=t.rp0,t.rp2=r,e&&(t.rp0=r)}function fft(e){for(var t=e.stack,i=e.rp0,n=e.z0[i],r=e.loop,a=e.fv,s=e.pv,o=e.z1;r--;){var l=t.pop(),h=o[l];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-r)+": ":"")+"ALIGNRP[]",l),a.setRelative(h,n,0,s),a.touch(h)}e.loop=1}function pft(e){exports.DEBUG&&console.log(e.step,"RTDG[]"),e.round=Idt}function zme(e,t){var i=t.stack,n=i.pop(),r=i.pop(),a=t.z0[r],s=t.fv,o=t.pv,l=t.cvt[n];exports.DEBUG&&console.log(t.step,"MIAP["+e+"]",n,"(",l,")",r);var h=o.distance(a,i_);e&&(Math.abs(h-l)",o),t.stack.push(Math.round(64*o))}function Eft(e){exports.DEBUG&&console.log(e.step,"MPPEM[]"),e.stack.push(e.ppem)}function _ft(e){exports.DEBUG&&console.log(e.step,"FLIPON[]"),e.autoFlip=!0}function Tft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"LT[]",i,n),t.push(ni?1:0)}function Mft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"GTEQ[]",i,n),t.push(n>=i?1:0)}function Rft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"EQ[]",i,n),t.push(i===n?1:0)}function Aft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"NEQ[]",i,n),t.push(i!==n?1:0)}function Cft(e){var t=e.stack,i=t.pop();exports.DEBUG&&console.log(e.step,"ODD[]",i),t.push(Math.trunc(i)%2?1:0)}function Pft(e){var t=e.stack,i=t.pop();exports.DEBUG&&console.log(e.step,"EVEN[]",i),t.push(Math.trunc(i)%2?0:1)}function Ift(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"IF[]",t),t||(Uge(e,!0),exports.DEBUG&&console.log(e.step,"EIF[]"))}function Lft(e){exports.DEBUG&&console.log(e.step,"EIF[]")}function Dft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"AND[]",i,n),t.push(i&&n?1:0)}function Oft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"OR[]",i,n),t.push(i||n?1:0)}function kft(e){var t=e.stack,i=t.pop();exports.DEBUG&&console.log(e.step,"NOT[]",i),t.push(i?0:1)}function e6(e,t){var i=t.stack,n=i.pop(),r=t.fv,a=t.pv,s=t.ppem,o=t.deltaBase+16*(e-1),l=t.deltaShift,h=t.z0;exports.DEBUG&&console.log(t.step,"DELTAP["+e+"]",n,i);for(var c=0;c>4)===s){var p=(15&d)-8;p>=0&&p++,exports.DEBUG&&console.log(t.step,"DELTAPFIX",u,"by",p*l);var f=h[u];r.setRelative(f,f,p*l,a)}}}function Fft(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SDB[]",t),e.deltaBase=t}function Nft(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SDS[]",t),e.deltaShift=Math.pow(.5,t)}function Bft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"ADD[]",i,n),t.push(n+i)}function Uft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SUB[]",i,n),t.push(n-i)}function Hft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"DIV[]",i,n),t.push(64*n/i)}function Vft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"MUL[]",i,n),t.push(n*i/64)}function zft(e){var t=e.stack,i=t.pop();exports.DEBUG&&console.log(e.step,"ABS[]",i),t.push(Math.abs(i))}function Gft(e){var t=e.stack,i=t.pop();exports.DEBUG&&console.log(e.step,"NEG[]",i),t.push(-i)}function qft(e){var t=e.stack,i=t.pop();exports.DEBUG&&console.log(e.step,"FLOOR[]",i),t.push(64*Math.floor(i/64))}function Wft(e){var t=e.stack,i=t.pop();exports.DEBUG&&console.log(e.step,"CEILING[]",i),t.push(64*Math.ceil(i/64))}function kC(e,t){var i=t.stack,n=i.pop();exports.DEBUG&&console.log(t.step,"ROUND[]"),i.push(64*t.round(n/64))}function jft(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"WCVTF[]",i,n),e.cvt[n]=i*e.ppem/e.font.unitsPerEm}function t6(e,t){var i=t.stack,n=i.pop(),r=t.ppem,a=t.deltaBase+16*(e-1),s=t.deltaShift;exports.DEBUG&&console.log(t.step,"DELTAC["+e+"]",n,i);for(var o=0;o>4)===r){var c=(15&h)-8;c>=0&&c++;var u=c*s;exports.DEBUG&&console.log(t.step,"DELTACFIX",l,"by",u),t.cvt[l]+=u}}}function Xft(e){var t,i=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SROUND[]",i),e.round=Bge,192&i){case 0:t=.5;break;case 64:t=1;break;case 128:t=2;break;default:throw new Error("invalid SROUND value")}switch(e.srPeriod=t,48&i){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*t;break;case 32:e.srPhase=.5*t;break;case 48:e.srPhase=.75*t;break;default:throw new Error("invalid SROUND value")}i&=15,e.srThreshold=0===i?0:(i/8-.5)*t}function Yft(e){var t,i=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"S45ROUND[]",i),e.round=Bge,192&i){case 0:t=Math.sqrt(2)/2;break;case 64:t=Math.sqrt(2);break;case 128:t=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(e.srPeriod=t,48&i){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*t;break;case 32:e.srPhase=.5*t;break;case 48:e.srPhase=.75*t;break;default:throw new Error("invalid S45ROUND value")}i&=15,e.srThreshold=0===i?0:(i/8-.5)*t}function $ft(e){exports.DEBUG&&console.log(e.step,"ROFF[]"),e.round=Pdt}function Zft(e){exports.DEBUG&&console.log(e.step,"RUTG[]"),e.round=Ddt}function Kft(e){exports.DEBUG&&console.log(e.step,"RDTG[]"),e.round=Odt}function Jft(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANCTRL[]",t)}function Wme(e,t){var i,n,r=t.stack,a=r.pop(),s=r.pop(),o=t.z2[a],l=t.z1[s];exports.DEBUG&&console.log(t.step,"SDPVTL["+e+"]",a,s),e?(i=o.y-l.y,n=l.x-o.x):(i=l.x-o.x,n=l.y-o.y),t.dpv=l_(i,n)}function Qft(e){var t=e.stack,i=t.pop(),n=0;exports.DEBUG&&console.log(e.step,"GETINFO[]",i),1&i&&(n=35),32&i&&(n|=4096),t.push(n)}function ept(e){var t=e.stack,i=t.pop(),n=t.pop(),r=t.pop();exports.DEBUG&&console.log(e.step,"ROLL[]"),t.push(n),t.push(i),t.push(r)}function tpt(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"MAX[]",i,n),t.push(Math.max(n,i))}function npt(e){var t=e.stack,i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"MIN[]",i,n),t.push(Math.min(n,i))}function rpt(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANTYPE[]",t)}function ipt(e){var t=e.stack.pop(),i=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"INSTCTRL[]",t,i),t){case 1:return void(e.inhibitGridFit=!!i);case 2:return void(e.ignoreCvt=!!i);default:throw new Error("invalid INSTCTRL[] selector")}}function Of(e,t){var i=t.stack,n=t.prog,r=t.ip;exports.DEBUG&&console.log(t.step,"PUSHB["+e+"]");for(var a=0;a=0?1:-1,o=Math.abs(o),e&&(h=a.cvt[u],n&&Math.abs(o-h)":"_")+(n?"R":"_")+(0===r?"Gr":1===r?"Bl":2===r?"Wh":"")+"]",e?u+"("+a.cvt[u]+","+h+")":"",d,"(d =",s,"->",l*o,")"),a.rp1=a.rp0,a.rp2=d,t&&(a.rp0=d)}function wy(e){this.char=e,this.state={},this.activeState=null}function E6(e,t,i){this.contextName=i,this.startIndex=e,this.endOffset=t}function spt(e,t,i){this.contextName=e,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=i}function Dc(e,t){this.context=e,this.index=t,this.length=e.length,this.current=e[t],this.backtrack=e.slice(0,t),this.lookahead=e.slice(t+1)}function WC(e){this.eventId=e,this.subscribers=[]}function apt(e){var t=this,i=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];i.forEach((function(e){Object.defineProperty(t.events,e,{value:new WC(e)})})),e&&i.forEach((function(i){var n=e[i];"function"==typeof n&&t.events[i].subscribe(n)})),["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"].forEach((function(e){t.events[e].subscribe(t.updateContextsRanges)}))}function cs(e){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],apt.call(this,e)}function Bf(e){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(e)}function Hge(e){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(e)}function Uf(e){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(e)}function NC(e){return/[A-z]/.test(e)}function opt(e){return/\s/.test(e)}function tl(e){this.font=e,this.features={}}function eg(e){this.id=e.id,this.tag=e.tag,this.substitution=e.substitution}function c_(e,t){if(!e)return-1;switch(t.format){case 1:return t.glyphs.indexOf(e);case 2:for(var i=t.ranges,n=0;n=r.start&&e<=r.end){var a=e-r.start;return r.index+a}}break;default:return-1}return-1}function lpt(e,t){return-1===c_(e,t.coverage)?null:e+t.deltaGlyphId}function cpt(e,t){var i=c_(e,t.coverage);return-1===i?null:t.substitute[i]}function n6(e,t){for(var i=[],n=0;n2)){var i=this.font,n=this._prepState;if(!n||n.ppem!==t){var r=this._fpgmState;if(!r){Nf.prototype=kdt,(r=this._fpgmState=new Nf("fpgm",i.tables.fpgm)).funcs=[],r.font=i,exports.DEBUG&&(console.log("---EXEC FPGM---"),r.step=-1);try{tg(r)}catch(e){return console.log("Hinting error in FPGM:"+e),void(this._errorState=3)}}Nf.prototype=r,(n=this._prepState=new Nf("prep",i.tables.prep)).ppem=t;var a=i.tables.cvt;if(a)for(var s=n.cvt=new Array(a.length),o=t/i.unitsPerEm,l=0;l1))try{return kge(e,n)}catch(e){return this._errorState<1&&(console.log("Hinting error:"+e),console.log("Note: further hinting errors are silenced")),void(this._errorState=1)}}},kge=function(e,t){var i,n,r,a=t.ppem/t.font.unitsPerEm,s=a,o=e.components;if(Nf.prototype=t,o){var l=t.font;n=[],i=[];for(var h=0;h=0&&e0&&e<=this.lookahead.length:return this.lookahead[e-1];default:return null}},cs.prototype.rangeToText=function(e){if(e instanceof E6)return this.getRangeTokens(e).map((function(e){return e.char})).join("")},cs.prototype.getText=function(){return this.tokens.map((function(e){return e.char})).join("")},cs.prototype.getContext=function(e){return this.registeredContexts[e]||null},cs.prototype.on=function(e,t){var i=this.events[e];return i?i.subscribe(t):null},cs.prototype.dispatch=function(e,t){var i=this,n=this.events[e];n instanceof WC&&n.subscribers.forEach((function(e){e.apply(i,t||[])}))},cs.prototype.registerContextChecker=function(e,t,i){if(this.getContext(e))return{FAIL:"context name '"+e+"' is already registered."};if("function"!=typeof t)return{FAIL:"missing context start check."};if("function"!=typeof i)return{FAIL:"missing context end check."};var n=new spt(e,t,i);return this.registeredContexts[e]=n,this.contextCheckers.push(n),n},cs.prototype.getRangeTokens=function(e){var t=e.startIndex+e.endOffset;return[].concat(this.tokens.slice(e.startIndex,t))},cs.prototype.getContextRanges=function(e){var t=this.getContext(e);return t?t.ranges:{FAIL:"context checker '"+e+"' is not registered."}},cs.prototype.resetContextsRanges=function(){var e=this.registeredContexts;for(var t in e)e.hasOwnProperty(t)&&(e[t].ranges=[])},cs.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var e=this.tokens.map((function(e){return e.char})),t=0;t=0;i--){var n=t[i],r=Hge(n),a=Uf(n);if(!r&&!a)return!0;if(r)return!1}return!1}function wpt(e){if(Hge(e.current))return!1;for(var t=0;t=1.2&&(r.markGlyphSets=i.parsePointer(Xpt)),r}var $pt={parse:Ypt},Oc=new Array(10);function Zpt(e,t){var i=new Tt(e,t=t||0),n=i.parseVersion(1);return Yn.argument(1===n||1.1===n,"Unsupported GPOS table version "+n),1===n?{version:n,scripts:i.parseScriptList(),features:i.parseFeatureList(),lookups:i.parseLookupList(Oc)}:{version:n,scripts:i.parseScriptList(),features:i.parseFeatureList(),lookups:i.parseLookupList(Oc),variations:i.parseFeatureVariationsList()}}Oc[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();return 1===t?{posFormat:1,coverage:this.parsePointer(Tt.coverage),value:this.parseValueRecord()}:2===t?{posFormat:2,coverage:this.parsePointer(Tt.coverage),values:this.parseValueRecordList()}:void Yn.assert(!1,"0x"+e.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")},Oc[2]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();Yn.assert(1===t||2===t,"0x"+e.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var i=this.parsePointer(Tt.coverage),n=this.parseUShort(),r=this.parseUShort();if(1===t)return{posFormat:t,coverage:i,valueFormat1:n,valueFormat2:r,pairSets:this.parseList(Tt.pointer(Tt.list((function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(n),value2:this.parseValueRecord(r)}}))))};if(2===t){var a=this.parsePointer(Tt.classDef),s=this.parsePointer(Tt.classDef),o=this.parseUShort(),l=this.parseUShort();return{posFormat:t,coverage:i,valueFormat1:n,valueFormat2:r,classDef1:a,classDef2:s,class1Count:o,class2Count:l,classRecords:this.parseList(o,Tt.list(l,(function(){return{value1:this.parseValueRecord(n),value2:this.parseValueRecord(r)}})))}}},Oc[3]=function(){return{error:"GPOS Lookup 3 not supported"}},Oc[4]=function(){return{error:"GPOS Lookup 4 not supported"}},Oc[5]=function(){return{error:"GPOS Lookup 5 not supported"}},Oc[6]=function(){return{error:"GPOS Lookup 6 not supported"}},Oc[7]=function(){return{error:"GPOS Lookup 7 not supported"}},Oc[8]=function(){return{error:"GPOS Lookup 8 not supported"}},Oc[9]=function(){return{error:"GPOS Lookup 9 not supported"}};var Kpt=new Array(10);function Jpt(e){return new fn.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new fn.ScriptList(e.scripts)},{name:"features",type:"TABLE",value:new fn.FeatureList(e.features)},{name:"lookups",type:"TABLE",value:new fn.LookupList(e.lookups,Kpt)}])}var Qpt={parse:Zpt,make:Jpt};function emt(e){var t={};e.skip("uShort");var i=e.parseUShort();Yn.argument(0===i,"Unsupported kern sub-table version."),e.skip("uShort",2);var n=e.parseUShort();e.skip("uShort",3);for(var r=0;r1&&console.warn("Only the first kern subtable is supported."),e.skip("uLong");var i=255&e.parseUShort();if(e.skip("uShort"),0===i){var n=e.parseUShort();e.skip("uShort",3);for(var r=0;r0;i--){let t=e[i],r={type:t.type};void 0!==t.x2&&void 0!==t.y2?(r.x1=t.x2,r.y1=t.y2,r.x2=t.x1,r.y2=t.y1):void 0!==t.x1&&void 0!==t.y1&&(r.x1=t.x1,r.y1=t.y1),r.x=e[i-1].x,r.y=e[i-1].y,n.push(r)}})),n}return function(e,i){let n=Math.round,r={},a=1e5/(72*(e.unitsPerEm||2048)),s=e.encoding.cmap.glyphIndexMap,o=Object.keys(s);for(let l=0;l0){let t=this.bounds.min,i=this.bounds.getSize(lmt),n=new xe(t.x,t.y),r=new xe(t.x+i.width,t.y),a=new xe(t.x+i.width,t.y+i.height),s=new xe(t.x,t.y+i.height);e.push([n,r],[r,a],[a,s],[s,n])}let t=[],i=[],n=0,r=new Dt;for(let a=0;a>8}}return t.subarray(0,i)}var umt="\u554a\u963f\u57c3\u6328\u54ce\u5509\u54c0\u7691\u764c\u853c\u77ee\u827e\u788d\u7231\u9698\u978d\u6c28\u5b89\u4ffa\u6309\u6697\u5cb8\u80fa\u6848\u80ae\u6602\u76ce\u51f9\u6556\u71ac\u7ff1\u8884\u50b2\u5965\u61ca\u6fb3\u82ad\u634c\u6252\u53ed\u5427\u7b06\u516b\u75a4\u5df4\u62d4\u8dcb\u9776\u628a\u8019\u575d\u9738\u7f62\u7238\u767d\u67cf\u767e\u6446\u4f70\u8d25\u62dc\u7a17\u6591\u73ed\u642c\u6273\u822c\u9881\u677f\u7248\u626e\u62cc\u4f34\u74e3\u534a\u529e\u7eca\u90a6\u5e2e\u6886\u699c\u8180\u7ed1\u68d2\u78c5\u868c\u9551\u508d\u8c24\u82de\u80de\u5305\u8912\u5265\u8584\u96f9\u4fdd\u5821\u9971\u5b9d\u62b1\u62a5\u66b4\u8c79\u9c8d\u7206\u676f\u7891\u60b2\u5351\u5317\u8f88\u80cc\u8d1d\u94a1\u500d\u72c8\u5907\u60eb\u7119\u88ab\u5954\u82ef\u672c\u7b28\u5d29\u7ef7\u752d\u6cf5\u8e66\u8ff8\u903c\u9f3b\u6bd4\u9119\u7b14\u5f7c\u78a7\u84d6\u853d\u6bd5\u6bd9\u6bd6\u5e01\u5e87\u75f9\u95ed\u655d\u5f0a\u5fc5\u8f9f\u58c1\u81c2\u907f\u965b\u97ad\u8fb9\u7f16\u8d2c\u6241\u4fbf\u53d8\u535e\u8fa8\u8fa9\u8fab\u904d\u6807\u5f6a\u8198\u8868\u9cd6\u618b\u522b\u762a\u5f6c\u658c\u6fd2\u6ee8\u5bbe\u6448\u5175\u51b0\u67c4\u4e19\u79c9\u997c\u70b3\u75c5\u5e76\u73bb\u83e0\u64ad\u62e8\u94b5\u6ce2\u535a\u52c3\u640f\u94c2\u7b94\u4f2f\u5e1b\u8236\u8116\u818a\u6e24\u6cca\u9a73\u6355\u535c\u54fa\u8865\u57e0\u4e0d\u5e03\u6b65\u7c3f\u90e8\u6016\u64e6\u731c\u88c1\u6750\u624d\u8d22\u776c\u8e29\u91c7\u5f69\u83dc\u8521\u9910\u53c2\u8695\u6b8b\u60ed\u60e8\u707f\u82cd\u8231\u4ed3\u6ca7\u85cf\u64cd\u7cd9\u69fd\u66f9\u8349\u5395\u7b56\u4fa7\u518c\u6d4b\u5c42\u8e6d\u63d2\u53c9\u832c\u8336\u67e5\u78b4\u643d\u5bdf\u5c94\u5dee\u8be7\u62c6\u67f4\u8c7a\u6400\u63ba\u8749\u998b\u8c17\u7f20\u94f2\u4ea7\u9610\u98a4\u660c\u7316\u573a\u5c1d\u5e38\u957f\u507f\u80a0\u5382\u655e\u7545\u5531\u5021\u8d85\u6284\u949e\u671d\u5632\u6f6e\u5de2\u5435\u7092\u8f66\u626f\u64a4\u63a3\u5f7b\u6f88\u90f4\u81e3\u8fb0\u5c18\u6668\u5ff1\u6c89\u9648\u8d81\u886c\u6491\u79f0\u57ce\u6a59\u6210\u5448\u4e58\u7a0b\u60e9\u6f84\u8bda\u627f\u901e\u9a8b\u79e4\u5403\u75f4\u6301\u5319\u6c60\u8fdf\u5f1b\u9a70\u803b\u9f7f\u4f88\u5c3a\u8d64\u7fc5\u65a5\u70bd\u5145\u51b2\u866b\u5d07\u5ba0\u62bd\u916c\u7574\u8e0c\u7a20\u6101\u7b79\u4ec7\u7ef8\u7785\u4e11\u81ed\u521d\u51fa\u6a71\u53a8\u8e87\u9504\u96cf\u6ec1\u9664\u695a\u7840\u50a8\u77d7\u6410\u89e6\u5904\u63e3\u5ddd\u7a7f\u693d\u4f20\u8239\u5598\u4e32\u75ae\u7a97\u5e62\u5e8a\u95ef\u521b\u5439\u708a\u6376\u9524\u5782\u6625\u693f\u9187\u5507\u6df3\u7eaf\u8822\u6233\u7ef0\u75b5\u8328\u78c1\u96cc\u8f9e\u6148\u74f7\u8bcd\u6b64\u523a\u8d50\u6b21\u806a\u8471\u56f1\u5306\u4ece\u4e1b\u51d1\u7c97\u918b\u7c07\u4fc3\u8e7f\u7be1\u7a9c\u6467\u5d14\u50ac\u8106\u7601\u7cb9\u6dec\u7fe0\u6751\u5b58\u5bf8\u78cb\u64ae\u6413\u63aa\u632b\u9519\u642d\u8fbe\u7b54\u7629\u6253\u5927\u5446\u6b79\u50a3\u6234\u5e26\u6b86\u4ee3\u8d37\u888b\u5f85\u902e\u6020\u803d\u62c5\u4e39\u5355\u90f8\u63b8\u80c6\u65e6\u6c2e\u4f46\u60ee\u6de1\u8bde\u5f39\u86cb\u5f53\u6321\u515a\u8361\u6863\u5200\u6363\u8e48\u5012\u5c9b\u7977\u5bfc\u5230\u7a3b\u60bc\u9053\u76d7\u5fb7\u5f97\u7684\u8e6c\u706f\u767b\u7b49\u77aa\u51f3\u9093\u5824\u4f4e\u6ef4\u8fea\u654c\u7b1b\u72c4\u6da4\u7fdf\u5ae1\u62b5\u5e95\u5730\u8482\u7b2c\u5e1d\u5f1f\u9012\u7f14\u98a0\u6382\u6ec7\u7898\u70b9\u5178\u975b\u57ab\u7535\u4f43\u7538\u5e97\u60e6\u5960\u6dc0\u6bbf\u7889\u53fc\u96d5\u51cb\u5201\u6389\u540a\u9493\u8c03\u8dcc\u7239\u789f\u8776\u8fed\u8c0d\u53e0\u4e01\u76ef\u53ee\u9489\u9876\u9f0e\u952d\u5b9a\u8ba2\u4e22\u4e1c\u51ac\u8463\u61c2\u52a8\u680b\u4f97\u606b\u51bb\u6d1e\u515c\u6296\u6597\u9661\u8c46\u9017\u75d8\u90fd\u7763\u6bd2\u728a\u72ec\u8bfb\u5835\u7779\u8d4c\u675c\u9540\u809a\u5ea6\u6e21\u5992\u7aef\u77ed\u953b\u6bb5\u65ad\u7f0e\u5806\u5151\u961f\u5bf9\u58a9\u5428\u8e72\u6566\u987f\u56e4\u949d\u76fe\u9041\u6387\u54c6\u591a\u593a\u579b\u8eb2\u6735\u8dfa\u8235\u5241\u60f0\u5815\u86fe\u5ce8\u9e45\u4fc4\u989d\u8bb9\u5a25\u6076\u5384\u627c\u904f\u9102\u997f\u6069\u800c\u513f\u8033\u5c14\u9975\u6d31\u4e8c\u8d30\u53d1\u7f5a\u7b4f\u4f10\u4e4f\u9600\u6cd5\u73d0\u85e9\u5e06\u756a\u7ffb\u6a0a\u77fe\u9492\u7e41\u51e1\u70e6\u53cd\u8fd4\u8303\u8d29\u72af\u996d\u6cdb\u574a\u82b3\u65b9\u80aa\u623f\u9632\u59a8\u4eff\u8bbf\u7eba\u653e\u83f2\u975e\u5561\u98de\u80a5\u532a\u8bfd\u5420\u80ba\u5e9f\u6cb8\u8d39\u82ac\u915a\u5429\u6c1b\u5206\u7eb7\u575f\u711a\u6c7e\u7c89\u594b\u4efd\u5fff\u6124\u7caa\u4e30\u5c01\u67ab\u8702\u5cf0\u950b\u98ce\u75af\u70fd\u9022\u51af\u7f1d\u8bbd\u5949\u51e4\u4f5b\u5426\u592b\u6577\u80a4\u5b75\u6276\u62c2\u8f90\u5e45\u6c1f\u7b26\u4f0f\u4fd8\u670d\u6d6e\u6daa\u798f\u88b1\u5f17\u752b\u629a\u8f85\u4fef\u91dc\u65a7\u812f\u8151\u5e9c\u8150\u8d74\u526f\u8986\u8d4b\u590d\u5085\u4ed8\u961c\u7236\u8179\u8d1f\u5bcc\u8ba3\u9644\u5987\u7f1a\u5490\u5676\u560e\u8be5\u6539\u6982\u9499\u76d6\u6e89\u5e72\u7518\u6746\u67d1\u7aff\u809d\u8d76\u611f\u79c6\u6562\u8d63\u5188\u521a\u94a2\u7f38\u809b\u7eb2\u5c97\u6e2f\u6760\u7bd9\u768b\u9ad8\u818f\u7f94\u7cd5\u641e\u9550\u7a3f\u544a\u54e5\u6b4c\u6401\u6208\u9e3d\u80f3\u7599\u5272\u9769\u845b\u683c\u86e4\u9601\u9694\u94ec\u4e2a\u5404\u7ed9\u6839\u8ddf\u8015\u66f4\u5e9a\u7fb9\u57c2\u803f\u6897\u5de5\u653b\u529f\u606d\u9f9a\u4f9b\u8eac\u516c\u5bab\u5f13\u5de9\u6c5e\u62f1\u8d21\u5171\u94a9\u52fe\u6c9f\u82df\u72d7\u57a2\u6784\u8d2d\u591f\u8f9c\u83c7\u5495\u7b8d\u4f30\u6cbd\u5b64\u59d1\u9f13\u53e4\u86ca\u9aa8\u8c37\u80a1\u6545\u987e\u56fa\u96c7\u522e\u74dc\u5250\u5be1\u6302\u8902\u4e56\u62d0\u602a\u68fa\u5173\u5b98\u51a0\u89c2\u7ba1\u9986\u7f50\u60ef\u704c\u8d2f\u5149\u5e7f\u901b\u7470\u89c4\u572d\u7845\u5f52\u9f9f\u95fa\u8f68\u9b3c\u8be1\u7678\u6842\u67dc\u8dea\u8d35\u523d\u8f8a\u6eda\u68cd\u9505\u90ed\u56fd\u679c\u88f9\u8fc7\u54c8\u9ab8\u5b69\u6d77\u6c26\u4ea5\u5bb3\u9a87\u9163\u61a8\u90af\u97e9\u542b\u6db5\u5bd2\u51fd\u558a\u7f55\u7ff0\u64bc\u634d\u65f1\u61be\u608d\u710a\u6c57\u6c49\u592f\u676d\u822a\u58d5\u568e\u8c6a\u6beb\u90dd\u597d\u8017\u53f7\u6d69\u5475\u559d\u8377\u83cf\u6838\u79be\u548c\u4f55\u5408\u76d2\u8c89\u9602\u6cb3\u6db8\u8d6b\u8910\u9e64\u8d3a\u563f\u9ed1\u75d5\u5f88\u72e0\u6068\u54fc\u4ea8\u6a2a\u8861\u6052\u8f70\u54c4\u70d8\u8679\u9e3f\u6d2a\u5b8f\u5f18\u7ea2\u5589\u4faf\u7334\u543c\u539a\u5019\u540e\u547c\u4e4e\u5ffd\u745a\u58f6\u846b\u80e1\u8774\u72d0\u7cca\u6e56\u5f27\u864e\u552c\u62a4\u4e92\u6caa\u6237\u82b1\u54d7\u534e\u733e\u6ed1\u753b\u5212\u5316\u8bdd\u69d0\u5f8a\u6000\u6dee\u574f\u6b22\u73af\u6853\u8fd8\u7f13\u6362\u60a3\u5524\u75ea\u8c62\u7115\u6da3\u5ba6\u5e7b\u8352\u614c\u9ec4\u78fa\u8757\u7c27\u7687\u51f0\u60f6\u714c\u6643\u5e4c\u604d\u8c0e\u7070\u6325\u8f89\u5fbd\u6062\u86d4\u56de\u6bc1\u6094\u6167\u5349\u60e0\u6666\u8d3f\u79fd\u4f1a\u70e9\u6c47\u8bb3\u8bf2\u7ed8\u8364\u660f\u5a5a\u9b42\u6d51\u6df7\u8c41\u6d3b\u4f19\u706b\u83b7\u6216\u60d1\u970d\u8d27\u7978\u51fb\u573e\u57fa\u673a\u7578\u7a3d\u79ef\u7b95\u808c\u9965\u8ff9\u6fc0\u8ba5\u9e21\u59ec\u7ee9\u7f09\u5409\u6781\u68d8\u8f91\u7c4d\u96c6\u53ca\u6025\u75be\u6c72\u5373\u5ac9\u7ea7\u6324\u51e0\u810a\u5df1\u84df\u6280\u5180\u5b63\u4f0e\u796d\u5242\u60b8\u6d4e\u5bc4\u5bc2\u8ba1\u8bb0\u65e2\u5fcc\u9645\u7ee7\u7eaa\u5609\u67b7\u5939\u4f73\u5bb6\u52a0\u835a\u988a\u8d3e\u7532\u94be\u5047\u7a3c\u4ef7\u67b6\u9a7e\u5ac1\u6b7c\u76d1\u575a\u5c16\u7b3a\u95f4\u714e\u517c\u80a9\u8270\u5978\u7f04\u8327\u68c0\u67ec\u78b1\u7877\u62e3\u6361\u7b80\u4fed\u526a\u51cf\u8350\u69db\u9274\u8df5\u8d31\u89c1\u952e\u7bad\u4ef6\u5065\u8230\u5251\u996f\u6e10\u6e85\u6da7\u5efa\u50f5\u59dc\u5c06\u6d46\u6c5f\u7586\u848b\u6868\u5956\u8bb2\u5320\u9171\u964d\u8549\u6912\u7901\u7126\u80f6\u4ea4\u90ca\u6d47\u9a84\u5a07\u56bc\u6405\u94f0\u77eb\u4fa5\u811a\u72e1\u89d2\u997a\u7f34\u7ede\u527f\u6559\u9175\u8f7f\u8f83\u53eb\u7a96\u63ed\u63a5\u7686\u79f8\u8857\u9636\u622a\u52ab\u8282\u830e\u775b\u6676\u9cb8\u4eac\u60ca\u7cbe\u7cb3\u7ecf\u4e95\u8b66\u666f\u9888\u9759\u5883\u656c\u955c\u5f84\u75c9\u9756\u7adf\u7ade\u51c0\u70af\u7a98\u63ea\u7a76\u7ea0\u7396\u97ed\u4e45\u7078\u4e5d\u9152\u53a9\u6551\u65e7\u81fc\u8205\u548e\u5c31\u759a\u97a0\u62d8\u72d9\u75bd\u5c45\u9a79\u83ca\u5c40\u5480\u77e9\u4e3e\u6cae\u805a\u62d2\u636e\u5de8\u5177\u8ddd\u8e1e\u952f\u4ff1\u53e5\u60e7\u70ac\u5267\u6350\u9e43\u5a1f\u5026\u7737\u5377\u7ee2\u6485\u652b\u6289\u6398\u5014\u7235\u6854\u6770\u6377\u776b\u7aed\u6d01\u7ed3\u89e3\u59d0\u6212\u85c9\u82a5\u754c\u501f\u4ecb\u75a5\u8beb\u5c4a\u5dfe\u7b4b\u65a4\u91d1\u4eca\u6d25\u895f\u7d27\u9526\u4ec5\u8c28\u8fdb\u9773\u664b\u7981\u8fd1\u70ec\u6d78\u5c3d\u52b2\u8346\u5162\u89c9\u51b3\u8bc0\u7edd\u5747\u83cc\u94a7\u519b\u541b\u5cfb\u4fca\u7ae3\u6d5a\u90e1\u9a8f\u5580\u5496\u5361\u54af\u5f00\u63e9\u6977\u51ef\u6168\u520a\u582a\u52d8\u574e\u780d\u770b\u5eb7\u6177\u7ce0\u625b\u6297\u4ea2\u7095\u8003\u62f7\u70e4\u9760\u5777\u82db\u67ef\u68f5\u78d5\u9897\u79d1\u58f3\u54b3\u53ef\u6e34\u514b\u523b\u5ba2\u8bfe\u80af\u5543\u57a6\u6073\u5751\u542d\u7a7a\u6050\u5b54\u63a7\u62a0\u53e3\u6263\u5bc7\u67af\u54ed\u7a9f\u82e6\u9177\u5e93\u88e4\u5938\u57ae\u630e\u8de8\u80ef\u5757\u7b77\u4fa9\u5feb\u5bbd\u6b3e\u5321\u7b50\u72c2\u6846\u77ff\u7736\u65f7\u51b5\u4e8f\u76d4\u5cbf\u7aa5\u8475\u594e\u9b41\u5080\u9988\u6127\u6e83\u5764\u6606\u6346\u56f0\u62ec\u6269\u5ed3\u9614\u5783\u62c9\u5587\u8721\u814a\u8fa3\u5566\u83b1\u6765\u8d56\u84dd\u5a6a\u680f\u62e6\u7bee\u9611\u5170\u6f9c\u8c30\u63fd\u89c8\u61d2\u7f06\u70c2\u6ee5\u7405\u6994\u72fc\u5eca\u90ce\u6717\u6d6a\u635e\u52b3\u7262\u8001\u4f6c\u59e5\u916a\u70d9\u6d9d\u52d2\u4e50\u96f7\u956d\u857e\u78ca\u7d2f\u5121\u5792\u64c2\u808b\u7c7b\u6cea\u68f1\u695e\u51b7\u5398\u68a8\u7281\u9ece\u7bf1\u72f8\u79bb\u6f13\u7406\u674e\u91cc\u9ca4\u793c\u8389\u8354\u540f\u6817\u4e3d\u5389\u52b1\u783e\u5386\u5229\u5088\u4f8b\u4fd0\u75e2\u7acb\u7c92\u6ca5\u96b6\u529b\u7483\u54e9\u4fe9\u8054\u83b2\u8fde\u9570\u5ec9\u601c\u6d9f\u5e18\u655b\u8138\u94fe\u604b\u70bc\u7ec3\u7cae\u51c9\u6881\u7cb1\u826f\u4e24\u8f86\u91cf\u667e\u4eae\u8c05\u64a9\u804a\u50da\u7597\u71ce\u5be5\u8fbd\u6f66\u4e86\u6482\u9563\u5ed6\u6599\u5217\u88c2\u70c8\u52a3\u730e\u7433\u6797\u78f7\u9716\u4e34\u90bb\u9cde\u6dcb\u51db\u8d41\u541d\u62ce\u73b2\u83f1\u96f6\u9f84\u94c3\u4f36\u7f9a\u51cc\u7075\u9675\u5cad\u9886\u53e6\u4ee4\u6e9c\u7409\u69b4\u786b\u998f\u7559\u5218\u7624\u6d41\u67f3\u516d\u9f99\u804b\u5499\u7b3c\u7abf\u9686\u5784\u62e2\u9647\u697c\u5a04\u6402\u7bd3\u6f0f\u964b\u82a6\u5362\u9885\u5e90\u7089\u63b3\u5364\u864f\u9c81\u9e93\u788c\u9732\u8def\u8d42\u9e7f\u6f5e\u7984\u5f55\u9646\u622e\u9a74\u5415\u94dd\u4fa3\u65c5\u5c65\u5c61\u7f15\u8651\u6c2f\u5f8b\u7387\u6ee4\u7eff\u5ce6\u631b\u5b6a\u6ee6\u5375\u4e71\u63a0\u7565\u62a1\u8f6e\u4f26\u4ed1\u6ca6\u7eb6\u8bba\u841d\u87ba\u7f57\u903b\u9523\u7ba9\u9aa1\u88f8\u843d\u6d1b\u9a86\u7edc\u5988\u9ebb\u739b\u7801\u8682\u9a6c\u9a82\u561b\u5417\u57cb\u4e70\u9ea6\u5356\u8fc8\u8109\u7792\u9992\u86ee\u6ee1\u8513\u66fc\u6162\u6f2b\u8c29\u8292\u832b\u76f2\u6c13\u5fd9\u83bd\u732b\u8305\u951a\u6bdb\u77db\u94c6\u536f\u8302\u5192\u5e3d\u8c8c\u8d38\u4e48\u73ab\u679a\u6885\u9176\u9709\u7164\u6ca1\u7709\u5a92\u9541\u6bcf\u7f8e\u6627\u5bd0\u59b9\u5a9a\u95e8\u95f7\u4eec\u840c\u8499\u6aac\u76df\u9530\u731b\u68a6\u5b5f\u772f\u919a\u9761\u7cdc\u8ff7\u8c1c\u5f25\u7c73\u79d8\u89c5\u6ccc\u871c\u5bc6\u5e42\u68c9\u7720\u7ef5\u5195\u514d\u52c9\u5a29\u7f05\u9762\u82d7\u63cf\u7784\u85d0\u79d2\u6e3a\u5e99\u5999\u8511\u706d\u6c11\u62bf\u76bf\u654f\u60af\u95fd\u660e\u879f\u9e23\u94ed\u540d\u547d\u8c2c\u6478\u6479\u8611\u6a21\u819c\u78e8\u6469\u9b54\u62b9\u672b\u83ab\u58a8\u9ed8\u6cab\u6f20\u5bde\u964c\u8c0b\u725f\u67d0\u62c7\u7261\u4ea9\u59c6\u6bcd\u5893\u66ae\u5e55\u52df\u6155\u6728\u76ee\u7766\u7267\u7a46\u62ff\u54ea\u5450\u94a0\u90a3\u5a1c\u7eb3\u6c16\u4e43\u5976\u8010\u5948\u5357\u7537\u96be\u56ca\u6320\u8111\u607c\u95f9\u6dd6\u5462\u9981\u5185\u5ae9\u80fd\u59ae\u9713\u502a\u6ce5\u5c3c\u62df\u4f60\u533f\u817b\u9006\u6eba\u852b\u62c8\u5e74\u78be\u64b5\u637b\u5ff5\u5a18\u917f\u9e1f\u5c3f\u634f\u8042\u5b7d\u556e\u954a\u954d\u6d85\u60a8\u67e0\u72de\u51dd\u5b81\u62e7\u6cde\u725b\u626d\u94ae\u7ebd\u8113\u6d53\u519c\u5f04\u5974\u52aa\u6012\u5973\u6696\u8650\u759f\u632a\u61e6\u7cef\u8bfa\u54e6\u6b27\u9e25\u6bb4\u85d5\u5455\u5076\u6ca4\u556a\u8db4\u722c\u5e15\u6015\u7436\u62cd\u6392\u724c\u5f98\u6e43\u6d3e\u6500\u6f58\u76d8\u78d0\u76fc\u7554\u5224\u53db\u4e53\u5e9e\u65c1\u802a\u80d6\u629b\u5486\u5228\u70ae\u888d\u8dd1\u6ce1\u5478\u80da\u57f9\u88f4\u8d54\u966a\u914d\u4f69\u6c9b\u55b7\u76c6\u7830\u62a8\u70f9\u6f8e\u5f6d\u84ec\u68da\u787c\u7bf7\u81a8\u670b\u9e4f\u6367\u78b0\u576f\u7812\u9739\u6279\u62ab\u5288\u7435\u6bd7\u5564\u813e\u75b2\u76ae\u5339\u75de\u50fb\u5c41\u8b6c\u7bc7\u504f\u7247\u9a97\u98d8\u6f02\u74e2\u7968\u6487\u77a5\u62fc\u9891\u8d2b\u54c1\u8058\u4e52\u576a\u82f9\u840d\u5e73\u51ed\u74f6\u8bc4\u5c4f\u5761\u6cfc\u9887\u5a46\u7834\u9b44\u8feb\u7c95\u5256\u6251\u94fa\u4ec6\u8386\u8461\u83e9\u84b2\u57d4\u6734\u5703\u666e\u6d66\u8c31\u66dd\u7011\u671f\u6b3a\u6816\u621a\u59bb\u4e03\u51c4\u6f06\u67d2\u6c8f\u5176\u68cb\u5947\u6b67\u7566\u5d0e\u8110\u9f50\u65d7\u7948\u7941\u9a91\u8d77\u5c82\u4e5e\u4f01\u542f\u5951\u780c\u5668\u6c14\u8fc4\u5f03\u6c7d\u6ce3\u8bab\u6390\u6d3d\u7275\u6266\u948e\u94c5\u5343\u8fc1\u7b7e\u4edf\u8c26\u4e7e\u9ed4\u94b1\u94b3\u524d\u6f5c\u9063\u6d45\u8c34\u5811\u5d4c\u6b20\u6b49\u67aa\u545b\u8154\u7f8c\u5899\u8537\u5f3a\u62a2\u6a47\u9539\u6572\u6084\u6865\u77a7\u4e54\u4fa8\u5de7\u9798\u64ac\u7fd8\u5ced\u4fcf\u7a8d\u5207\u8304\u4e14\u602f\u7a83\u94a6\u4fb5\u4eb2\u79e6\u7434\u52e4\u82b9\u64d2\u79bd\u5bdd\u6c81\u9752\u8f7b\u6c22\u503e\u537f\u6e05\u64ce\u6674\u6c30\u60c5\u9877\u8bf7\u5e86\u743c\u7a77\u79cb\u4e18\u90b1\u7403\u6c42\u56da\u914b\u6cc5\u8d8b\u533a\u86c6\u66f2\u8eaf\u5c48\u9a71\u6e20\u53d6\u5a36\u9f8b\u8da3\u53bb\u5708\u98a7\u6743\u919b\u6cc9\u5168\u75ca\u62f3\u72ac\u5238\u529d\u7f3a\u7094\u7638\u5374\u9e4a\u69b7\u786e\u96c0\u88d9\u7fa4\u7136\u71c3\u5189\u67d3\u74e4\u58e4\u6518\u56b7\u8ba9\u9976\u6270\u7ed5\u60f9\u70ed\u58ec\u4ec1\u4eba\u5fcd\u97e7\u4efb\u8ba4\u5203\u598a\u7eab\u6254\u4ecd\u65e5\u620e\u8338\u84c9\u8363\u878d\u7194\u6eb6\u5bb9\u7ed2\u5197\u63c9\u67d4\u8089\u8339\u8815\u5112\u5b7a\u5982\u8fb1\u4e73\u6c5d\u5165\u8925\u8f6f\u962e\u854a\u745e\u9510\u95f0\u6da6\u82e5\u5f31\u6492\u6d12\u8428\u816e\u9cc3\u585e\u8d5b\u4e09\u53c1\u4f1e\u6563\u6851\u55d3\u4e27\u6414\u9a9a\u626b\u5ac2\u745f\u8272\u6da9\u68ee\u50e7\u838e\u7802\u6740\u5239\u6c99\u7eb1\u50bb\u5565\u715e\u7b5b\u6652\u73ca\u82eb\u6749\u5c71\u5220\u717d\u886b\u95ea\u9655\u64c5\u8d61\u81b3\u5584\u6c55\u6247\u7f2e\u5892\u4f24\u5546\u8d4f\u664c\u4e0a\u5c1a\u88f3\u68a2\u634e\u7a0d\u70e7\u828d\u52fa\u97f6\u5c11\u54e8\u90b5\u7ecd\u5962\u8d4a\u86c7\u820c\u820d\u8d66\u6444\u5c04\u6151\u6d89\u793e\u8bbe\u7837\u7533\u547b\u4f38\u8eab\u6df1\u5a20\u7ec5\u795e\u6c88\u5ba1\u5a76\u751a\u80be\u614e\u6e17\u58f0\u751f\u7525\u7272\u5347\u7ef3\u7701\u76db\u5269\u80dc\u5723\u5e08\u5931\u72ee\u65bd\u6e7f\u8bd7\u5c38\u8671\u5341\u77f3\u62fe\u65f6\u4ec0\u98df\u8680\u5b9e\u8bc6\u53f2\u77e2\u4f7f\u5c4e\u9a76\u59cb\u5f0f\u793a\u58eb\u4e16\u67ff\u4e8b\u62ed\u8a93\u901d\u52bf\u662f\u55dc\u566c\u9002\u4ed5\u4f8d\u91ca\u9970\u6c0f\u5e02\u6043\u5ba4\u89c6\u8bd5\u6536\u624b\u9996\u5b88\u5bff\u6388\u552e\u53d7\u7626\u517d\u852c\u67a2\u68b3\u6b8a\u6292\u8f93\u53d4\u8212\u6dd1\u758f\u4e66\u8d4e\u5b70\u719f\u85af\u6691\u66d9\u7f72\u8700\u9ecd\u9f20\u5c5e\u672f\u8ff0\u6811\u675f\u620d\u7ad6\u5885\u5eb6\u6570\u6f31\u6055\u5237\u800d\u6454\u8870\u7529\u5e05\u6813\u62f4\u971c\u53cc\u723d\u8c01\u6c34\u7761\u7a0e\u542e\u77ac\u987a\u821c\u8bf4\u7855\u6714\u70c1\u65af\u6495\u5636\u601d\u79c1\u53f8\u4e1d\u6b7b\u8086\u5bfa\u55e3\u56db\u4f3a\u4f3c\u9972\u5df3\u677e\u8038\u6002\u9882\u9001\u5b8b\u8bbc\u8bf5\u641c\u8258\u64de\u55fd\u82cf\u9165\u4fd7\u7d20\u901f\u7c9f\u50f3\u5851\u6eaf\u5bbf\u8bc9\u8083\u9178\u849c\u7b97\u867d\u968b\u968f\u7ee5\u9ad3\u788e\u5c81\u7a57\u9042\u96a7\u795f\u5b59\u635f\u7b0b\u84d1\u68ad\u5506\u7f29\u7410\u7d22\u9501\u6240\u584c\u4ed6\u5b83\u5979\u5854\u736d\u631e\u8e4b\u8e0f\u80ce\u82d4\u62ac\u53f0\u6cf0\u915e\u592a\u6001\u6c70\u574d\u644a\u8d2a\u762b\u6ee9\u575b\u6a80\u75f0\u6f6d\u8c2d\u8c08\u5766\u6bef\u8892\u78b3\u63a2\u53f9\u70ad\u6c64\u5858\u642a\u5802\u68e0\u819b\u5510\u7cd6\u5018\u8eba\u6dcc\u8d9f\u70eb\u638f\u6d9b\u6ed4\u7ee6\u8404\u6843\u9003\u6dd8\u9676\u8ba8\u5957\u7279\u85e4\u817e\u75bc\u8a8a\u68af\u5254\u8e22\u9511\u63d0\u9898\u8e44\u557c\u4f53\u66ff\u568f\u60d5\u6d95\u5243\u5c49\u5929\u6dfb\u586b\u7530\u751c\u606c\u8214\u8146\u6311\u6761\u8fe2\u773a\u8df3\u8d34\u94c1\u5e16\u5385\u542c\u70c3\u6c40\u5ef7\u505c\u4ead\u5ead\u633a\u8247\u901a\u6850\u916e\u77b3\u540c\u94dc\u5f64\u7ae5\u6876\u6345\u7b52\u7edf\u75db\u5077\u6295\u5934\u900f\u51f8\u79c3\u7a81\u56fe\u5f92\u9014\u6d82\u5c60\u571f\u5410\u5154\u6e4d\u56e2\u63a8\u9893\u817f\u8715\u892a\u9000\u541e\u5c6f\u81c0\u62d6\u6258\u8131\u9e35\u9640\u9a6e\u9a7c\u692d\u59a5\u62d3\u553e\u6316\u54c7\u86d9\u6d3c\u5a03\u74e6\u889c\u6b6a\u5916\u8c4c\u5f2f\u6e7e\u73a9\u987d\u4e38\u70f7\u5b8c\u7897\u633d\u665a\u7696\u60cb\u5b9b\u5a49\u4e07\u8155\u6c6a\u738b\u4ea1\u6789\u7f51\u5f80\u65fa\u671b\u5fd8\u5984\u5a01\u5dcd\u5fae\u5371\u97e6\u8fdd\u6845\u56f4\u552f\u60df\u4e3a\u6f4d\u7ef4\u82c7\u840e\u59d4\u4f1f\u4f2a\u5c3e\u7eac\u672a\u851a\u5473\u754f\u80c3\u5582\u9b4f\u4f4d\u6e2d\u8c13\u5c09\u6170\u536b\u761f\u6e29\u868a\u6587\u95fb\u7eb9\u543b\u7a33\u7d0a\u95ee\u55e1\u7fc1\u74ee\u631d\u8717\u6da1\u7a9d\u6211\u65a1\u5367\u63e1\u6c83\u5deb\u545c\u94a8\u4e4c\u6c61\u8bec\u5c4b\u65e0\u829c\u68a7\u543e\u5434\u6bcb\u6b66\u4e94\u6342\u5348\u821e\u4f0d\u4fae\u575e\u620a\u96fe\u6664\u7269\u52ff\u52a1\u609f\u8bef\u6614\u7199\u6790\u897f\u7852\u77fd\u6670\u563b\u5438\u9521\u727a\u7a00\u606f\u5e0c\u6089\u819d\u5915\u60dc\u7184\u70ef\u6eaa\u6c50\u7280\u6a84\u88ad\u5e2d\u4e60\u5ab3\u559c\u94e3\u6d17\u7cfb\u9699\u620f\u7ec6\u778e\u867e\u5323\u971e\u8f96\u6687\u5ce1\u4fa0\u72ed\u4e0b\u53a6\u590f\u5413\u6380\u9528\u5148\u4ed9\u9c9c\u7ea4\u54b8\u8d24\u8854\u8237\u95f2\u6d8e\u5f26\u5acc\u663e\u9669\u73b0\u732e\u53bf\u817a\u9985\u7fa1\u5baa\u9677\u9650\u7ebf\u76f8\u53a2\u9576\u9999\u7bb1\u8944\u6e58\u4e61\u7fd4\u7965\u8be6\u60f3\u54cd\u4eab\u9879\u5df7\u6a61\u50cf\u5411\u8c61\u8427\u785d\u9704\u524a\u54ee\u56a3\u9500\u6d88\u5bb5\u6dc6\u6653\u5c0f\u5b5d\u6821\u8096\u5578\u7b11\u6548\u6954\u4e9b\u6b47\u874e\u978b\u534f\u631f\u643a\u90aa\u659c\u80c1\u8c10\u5199\u68b0\u5378\u87f9\u61c8\u6cc4\u6cfb\u8c22\u5c51\u85aa\u82af\u950c\u6b23\u8f9b\u65b0\u5ffb\u5fc3\u4fe1\u8845\u661f\u8165\u7329\u60fa\u5174\u5211\u578b\u5f62\u90a2\u884c\u9192\u5e78\u674f\u6027\u59d3\u5144\u51f6\u80f8\u5308\u6c79\u96c4\u718a\u4f11\u4fee\u7f9e\u673d\u55c5\u9508\u79c0\u8896\u7ee3\u589f\u620c\u9700\u865a\u5618\u987b\u5f90\u8bb8\u84c4\u9157\u53d9\u65ed\u5e8f\u755c\u6064\u7d6e\u5a7f\u7eea\u7eed\u8f69\u55a7\u5ba3\u60ac\u65cb\u7384\u9009\u7663\u7729\u7eda\u9774\u859b\u5b66\u7a74\u96ea\u8840\u52cb\u718f\u5faa\u65ec\u8be2\u5bfb\u9a6f\u5de1\u6b89\u6c5b\u8bad\u8baf\u900a\u8fc5\u538b\u62bc\u9e26\u9e2d\u5440\u4e2b\u82bd\u7259\u869c\u5d16\u8859\u6daf\u96c5\u54d1\u4e9a\u8bb6\u7109\u54bd\u9609\u70df\u6df9\u76d0\u4e25\u7814\u8712\u5ca9\u5ef6\u8a00\u989c\u960e\u708e\u6cbf\u5944\u63a9\u773c\u884d\u6f14\u8273\u5830\u71d5\u538c\u781a\u96c1\u5501\u5f66\u7130\u5bb4\u8c1a\u9a8c\u6b83\u592e\u9e2f\u79e7\u6768\u626c\u4f6f\u75a1\u7f8a\u6d0b\u9633\u6c27\u4ef0\u75d2\u517b\u6837\u6f3e\u9080\u8170\u5996\u7476\u6447\u5c27\u9065\u7a91\u8c23\u59da\u54ac\u8200\u836f\u8981\u8000\u6930\u564e\u8036\u7237\u91ce\u51b6\u4e5f\u9875\u6396\u4e1a\u53f6\u66f3\u814b\u591c\u6db2\u4e00\u58f9\u533b\u63d6\u94f1\u4f9d\u4f0a\u8863\u9890\u5937\u9057\u79fb\u4eea\u80f0\u7591\u6c82\u5b9c\u59e8\u5f5d\u6905\u8681\u501a\u5df2\u4e59\u77e3\u4ee5\u827a\u6291\u6613\u9091\u5c79\u4ebf\u5f79\u81c6\u9038\u8084\u75ab\u4ea6\u88d4\u610f\u6bc5\u5fc6\u4e49\u76ca\u6ea2\u8be3\u8bae\u8c0a\u8bd1\u5f02\u7ffc\u7fcc\u7ece\u8335\u836b\u56e0\u6bb7\u97f3\u9634\u59fb\u541f\u94f6\u6deb\u5bc5\u996e\u5c39\u5f15\u9690\u5370\u82f1\u6a31\u5a74\u9e70\u5e94\u7f28\u83b9\u8424\u8425\u8367\u8747\u8fce\u8d62\u76c8\u5f71\u9896\u786c\u6620\u54df\u62e5\u4f63\u81c3\u75c8\u5eb8\u96cd\u8e0a\u86f9\u548f\u6cf3\u6d8c\u6c38\u607f\u52c7\u7528\u5e7d\u4f18\u60a0\u5fe7\u5c24\u7531\u90ae\u94c0\u72b9\u6cb9\u6e38\u9149\u6709\u53cb\u53f3\u4f51\u91c9\u8bf1\u53c8\u5e7c\u8fc2\u6de4\u4e8e\u76c2\u6986\u865e\u611a\u8206\u4f59\u4fde\u903e\u9c7c\u6109\u6e1d\u6e14\u9685\u4e88\u5a31\u96e8\u4e0e\u5c7f\u79b9\u5b87\u8bed\u7fbd\u7389\u57df\u828b\u90c1\u5401\u9047\u55bb\u5cea\u5fa1\u6108\u6b32\u72f1\u80b2\u8a89\u6d74\u5bd3\u88d5\u9884\u8c6b\u9a6d\u9e33\u6e0a\u51a4\u5143\u57a3\u8881\u539f\u63f4\u8f95\u56ed\u5458\u5706\u733f\u6e90\u7f18\u8fdc\u82d1\u613f\u6028\u9662\u66f0\u7ea6\u8d8a\u8dc3\u94a5\u5cb3\u7ca4\u6708\u60a6\u9605\u8018\u4e91\u90e7\u5300\u9668\u5141\u8fd0\u8574\u915d\u6655\u97f5\u5b55\u531d\u7838\u6742\u683d\u54c9\u707e\u5bb0\u8f7d\u518d\u5728\u54b1\u6512\u6682\u8d5e\u8d43\u810f\u846c\u906d\u7cdf\u51ff\u85fb\u67a3\u65e9\u6fa1\u86a4\u8e81\u566a\u9020\u7682\u7076\u71e5\u8d23\u62e9\u5219\u6cfd\u8d3c\u600e\u589e\u618e\u66fe\u8d60\u624e\u55b3\u6e23\u672d\u8f67\u94e1\u95f8\u7728\u6805\u69a8\u548b\u4e4d\u70b8\u8bc8\u6458\u658b\u5b85\u7a84\u503a\u5be8\u77bb\u6be1\u8a79\u7c98\u6cbe\u76cf\u65a9\u8f97\u5d2d\u5c55\u8638\u6808\u5360\u6218\u7ad9\u6e5b\u7efd\u6a1f\u7ae0\u5f70\u6f33\u5f20\u638c\u6da8\u6756\u4e08\u5e10\u8d26\u4ed7\u80c0\u7634\u969c\u62db\u662d\u627e\u6cbc\u8d75\u7167\u7f69\u5146\u8087\u53ec\u906e\u6298\u54f2\u86f0\u8f99\u8005\u9517\u8517\u8fd9\u6d59\u73cd\u659f\u771f\u7504\u7827\u81fb\u8d1e\u9488\u4fa6\u6795\u75b9\u8bca\u9707\u632f\u9547\u9635\u84b8\u6323\u7741\u5f81\u72f0\u4e89\u6014\u6574\u62ef\u6b63\u653f\u5e27\u75c7\u90d1\u8bc1\u829d\u679d\u652f\u5431\u8718\u77e5\u80a2\u8102\u6c41\u4e4b\u7ec7\u804c\u76f4\u690d\u6b96\u6267\u503c\u4f84\u5740\u6307\u6b62\u8dbe\u53ea\u65e8\u7eb8\u5fd7\u631a\u63b7\u81f3\u81f4\u7f6e\u5e1c\u5cd9\u5236\u667a\u79e9\u7a1a\u8d28\u7099\u75d4\u6ede\u6cbb\u7a92\u4e2d\u76c5\u5fe0\u949f\u8877\u7ec8\u79cd\u80bf\u91cd\u4ef2\u4f17\u821f\u5468\u5dde\u6d32\u8bcc\u7ca5\u8f74\u8098\u5e1a\u5492\u76b1\u5b99\u663c\u9aa4\u73e0\u682a\u86db\u6731\u732a\u8bf8\u8bdb\u9010\u7af9\u70db\u716e\u62c4\u77a9\u5631\u4e3b\u8457\u67f1\u52a9\u86c0\u8d2e\u94f8\u7b51\u4f4f\u6ce8\u795d\u9a7b\u6293\u722a\u62fd\u4e13\u7816\u8f6c\u64b0\u8d5a\u7bc6\u6869\u5e84\u88c5\u5986\u649e\u58ee\u72b6\u690e\u9525\u8ffd\u8d58\u5760\u7f00\u8c06\u51c6\u6349\u62d9\u5353\u684c\u7422\u8301\u914c\u5544\u7740\u707c\u6d4a\u5179\u54a8\u8d44\u59ff\u6ecb\u6dc4\u5b5c\u7d2b\u4ed4\u7c7d\u6ed3\u5b50\u81ea\u6e0d\u5b57\u9b03\u68d5\u8e2a\u5b97\u7efc\u603b\u7eb5\u90b9\u8d70\u594f\u63cd\u79df\u8db3\u5352\u65cf\u7956\u8bc5\u963b\u7ec4\u94bb\u7e82\u5634\u9189\u6700\u7f6a\u5c0a\u9075\u6628\u5de6\u4f50\u67de\u505a\u4f5c\u5750\u5ea7\u9515\u55f3\u5ad2\u7477\u66a7\u972d\u8c19\u94f5\u9e4c\u5aaa\u9a9c\u9ccc\u94af\u5457\u94a3\u9e28\u9f85\u9e4e\u8d32\u951b\u835c\u54d4\u6ed7\u94cb\u7b5a\u8df8\u82c4\u7f0f\u7b3e\u9aa0\u98d1\u98d9\u9556\u9573\u9cd4\u50a7\u7f24\u69df\u6ba1\u8191\u9554\u9acc\u9b13\u7980\u997d\u94b9\u9e41\u94b8\u9a96\u9eea\u607b\u9538\u4faa\u9497\u5181\u8c04\u8c36\u8487\u5fcf\u5a75\u9aa3\u89c7\u7985\u9561\u4f25\u82cc\u6005\u960a\u9cb3\u7817\u4f27\u8c0c\u6987\u789c\u9f80\u67a8\u67fd\u94d6\u94db\u996c\u9e31\u94f3\u4fe6\u5e31\u96e0\u520d\u7ecc\u8e70\u948f\u6006\u7f0d\u9e51\u8f8d\u9f8a\u9e5a\u82c1\u9aa2\u679e\u8f8f\u64ba\u9509\u9e7e\u54d2\u9791\u9a80\u7ed0\u6b9a\u8d55\u7605\u7baa\u8c20\u7800\u88c6\u7118\u956b\u7c74\u8bcb\u8c1b\u7ee8\u89cc\u955d\u5dc5\u94bf\u766b\u94eb\u9cb7\u9cbd\u94e4\u94e5\u5cbd\u9e2b\u7aa6\u6e0e\u691f\u724d\u7b03\u9ee9\u7c16\u603c\u9566\u7096\u8db8\u94ce\u8c14\u57a9\u960f\u8f6d\u9507\u9537\u9e57\u989a\u989b\u9cc4\u8bf6\u8fe9\u94d2\u9e38\u9c95\u94ab\u9c82\u7eef\u9544\u9cb1\u507e\u6ca3\u51eb\u9a78\u7ec2\u7ecb\u8d59\u9eb8\u9c8b\u9cc6\u9486\u8d45\u5c34\u64c0\u7ec0\u6206\u777e\u8bf0\u7f1f\u9506\u7ea5\u9549\u988d\u4e98\u8d53\u7ee0\u9ca0\u8bdf\u7f11\u89cf\u8bc2\u6bc2\u94b4\u9522\u9e2a\u9e44\u9e58\u9e39\u63b4\u8bd6\u63bc\u9e73\u9ccf\u72b7\u5326\u523f\u59ab\u6867\u9c91\u9cdc\u886e\u7ef2\u9ca7\u57da\u5459\u5e3c\u6901\u8748\u94ea\u961a\u7ed7\u9889\u704f\u98a2\u8bc3\u9616\u86ce\u9ec9\u8ba7\u836d\u95f3\u9c8e\u6d52\u9e55\u9a85\u6866\u94e7\u5942\u7f33\u953e\u9ca9\u9cc7\u8bd9\u835f\u54d5\u6d4d\u7f0b\u73f2\u6656\u8be8\u9984\u960d\u94ac\u956c\u8ba6\u8bd8\u8360\u53fd\u54dc\u9aa5\u7391\u89ca\u9f51\u77f6\u7f81\u867f\u8dfb\u9701\u9c9a\u9cab\u90cf\u6d43\u94d7\u9553\u86f2\u8c0f\u7f23\u620b\u622c\u7751\u9e63\u7b15\u9ca3\u97af\u7edb\u7f30\u6322\u5ce4\u9e6a\u9c9b\u7596\u988c\u9c92\u537a\u8369\u9991\u7f19\u8d46\u89d0\u522d\u6cfe\u8ff3\u5f2a\u80eb\u9753\u9604\u9e20\u9e6b\u8bb5\u5c66\u6989\u98d3\u949c\u9514\u7aad\u9f83\u9529\u954c\u96bd\u8c32\u73cf\u76b2\u5240\u57b2\u5ffe\u607a\u94e0\u9534\u9f9b\u95f6\u94aa\u94d0\u9a92\u7f02\u8f72\u94b6\u951e\u9894\u9f88\u94ff\u55be\u90d0\u54d9\u810d\u72ef\u9acb\u8bd3\u8bf3\u909d\u5739\u7ea9\u8d36\u532e\u8489\u6126\u8069\u7bd1\u9603\u951f\u9cb2\u86f4\u5d03\u5f95\u6d9e\u6fd1\u8d49\u7750\u94fc\u765e\u7c41\u5c9a\u6984\u6593\u9567\u8934\u9606\u9512\u5520\u5d02\u94d1\u94f9\u75e8\u9cd3\u8bd4\u7f27\u4fea\u90e6\u575c\u82c8\u8385\u84e0\u5456\u9026\u9a8a\u7f21\u67a5\u680e\u8f79\u783a\u9502\u9e42\u75a0\u7c9d\u8dde\u96f3\u9ca1\u9ce2\u8539\u5941\u6f4b\u740f\u6b93\u88e2\u88e3\u9ca2\u9b49\u7f2d\u948c\u9e69\u853a\u5eea\u6aa9\u8f9a\u8e8f\u7eeb\u68c2\u86cf\u9cae\u6d4f\u9a9d\u7efa\u954f\u9e68\u830f\u6cf7\u73d1\u680a\u80e7\u783b\u507b\u848c\u55bd\u5d5d\u9542\u7618\u8027\u877c\u9ac5\u5786\u64b8\u565c\u95fe\u6cf8\u6e0c\u680c\u6a79\u8f73\u8f82\u8f98\u6c07\u80ea\u9e2c\u9e6d\u823b\u9c88\u8114\u5a08\u683e\u9e3e\u92ae\u56f5\u8366\u7321\u6cfa\u6924\u8136\u9559\u6988\u891b\u950a\u5452\u551b\u5b37\u6769\u52a2\u7f26\u9558\u98a1\u9cd7\u9ebd\u626a\u7116\u61d1\u9494\u8288\u8c27\u7315\u7962\u6e11\u817c\u9efe\u7f08\u7f2a\u95f5\u7f17\u8c1f\u84e6\u998d\u6b81\u9546\u94bc\u94d9\u8bb7\u94cc\u9cb5\u8f87\u9cb6\u8311\u8885\u9667\u8616\u55eb\u989f\u8e51\u82ce\u549b\u804d\u4fac\u54dd\u9a7d\u9495\u50a9\u8bb4\u6004\u74ef\u8e52\u75b1\u8f94\u7eb0\u7f74\u94cd\u8c1d\u9a88\u7f25\u5ad4\u948b\u9564\u9568\u8572\u9a90\u7eee\u6864\u789b\u9880\u9883\u9ccd\u4f65\u8368\u60ad\u9a9e\u7f31\u6920\u94a4\u5af1\u6a2f\u6217\u709d\u9516\u9535\u956a\u7f9f\u8dc4\u8bee\u8c2f\u835e\u7f32\u7857\u8df7\u60ec\u9532\u7ba7\u9513\u63ff\u9cad\u8315\u86f1\u5def\u8d47\u866e\u9cc5\u8bce\u5c96\u9612\u89d1\u9e32\u8be0\u7efb\u8f81\u94e8\u9615\u9619\u60ab\u835b\u5a06\u6861\u996a\u8f6b\u5d58\u877e\u7f1b\u94f7\u98a6\u86ac\u98d2\u6bf5\u7cc1\u7f2b\u556c\u94ef\u7a51\u94e9\u9ca8\u917e\u8baa\u59d7\u9a9f\u9490\u9cdd\u57a7\u6b87\u89de\u538d\u6ee0\u7572\u8bdc\u8c02\u6e16\u8c25\u57d8\u83b3\u5f11\u8f7c\u8d33\u94c8\u9ca5\u7ef6\u6445\u7ebe\u95e9\u94c4\u53ae\u9a77\u7f0c\u9536\u9e36\u85ae\u998a\u98d5\u953c\u8c21\u7a23\u8c07\u836a\u72f2\u5522\u7743\u95fc\u94ca\u9cce\u949b\u9c90\u6619\u94bd\u952c\u9878\u50a5\u9967\u94f4\u9557\u97ec\u94fd\u7f07\u9e48\u9617\u7c9c\u9f86\u9ca6\u6078\u94ad\u948d\u629f\u9968\u7ba8\u9f0d\u5a32\u817d\u7ea8\u7efe\u8f8b\u8bff\u5e0f\u95f1\u6ca9\u6da0\u73ae\u97ea\u709c\u9c94\u960c\u83b4\u9f8c\u90ac\u5e91\u6003\u59a9\u9a9b\u9e49\u9e5c\u9969\u960b\u73ba\u89cb\u7856\u82cb\u83b6\u85d3\u5c98\u7303\u5a34\u9e47\u75eb\u869d\u7c7c\u8df9\u8297\u9977\u9aa7\u7f03\u98e8\u54d3\u6f47\u9a81\u7ee1\u67ad\u7bab\u4eb5\u64b7\u7ec1\u7f2c\u9649\u8365\u9990\u9e3a\u8be9\u987c\u8c16\u94c9\u955f\u8c11\u6cf6\u9cd5\u57d9\u6d54\u9c9f\u57ad\u5a05\u6860\u6c29\u53a3\u8d5d\u4fe8\u5156\u8c33\u6079\u95eb\u917d\u9b47\u990d\u9f39\u7080\u8f7a\u9e5e\u9cd0\u9765\u8c12\u90ba\u6654\u70e8\u8bd2\u5453\u5cc4\u9974\u603f\u9a7f\u7f22\u8f76\u8d3b\u9487\u9552\u9571\u7617\u8223\u94df\u763e\u8314\u83ba\u8426\u84e5\u6484\u5624\u6ee2\u6f46\u748e\u9e66\u763f\u988f\u7f42\u955b\u83b8\u94d5\u9c7f\u4f1b\u4fe3\u8c00\u8c15\u84e3\u5d5b\u996b\u9608\u59aa\u7ea1\u89ce\u6b24\u94b0\u9e46\u9e6c\u9f89\u6a7c\u9e22\u9f0b\u94ba\u90d3\u82b8\u607d\u6120\u7ead\u97eb\u6b92\u6c32\u74d2\u8db1\u933e\u9a75\u8d5c\u5567\u5e3b\u7ba6\u8c2e\u7f2f\u8c35\u8bcf\u948a\u8c2a\u8f84\u9e67\u6d48\u7f1c\u6862\u8f78\u8d48\u796f\u9e29\u8be4\u5ce5\u94b2\u94ee\u7b5d\u9a98\u6809\u6800\u8f75\u8f7e\u8d3d\u9e37\u86f3\u7d77\u8e2c\u8e2f\u89ef\u953a\u7ea3\u7ec9\u4f2b\u69e0\u94e2\u556d\u9994\u989e\u9a93\u7f12\u8bfc\u956f\u8c18\u7f01\u8f8e\u8d40\u7726\u9531\u9f87\u9cbb\u506c\u8bf9\u9a7a\u9cb0\u955e\u7f35\u8e9c\u9cdf\u8ba0\u8c2b\u90c4\u52d0\u51fc\u5742\u5785\u57b4\u57ef\u57dd\u82d8\u836c\u836e\u839c\u83bc\u83f0\u85c1\u63f8\u5412\u5423\u5494\u549d\u54b4\u5658\u567c\u56af\u5e5e\u5c99\u5d74\u5f77\u5fbc\u72b8\u72cd\u9980\u9987\u9993\u9995\u6123\u61b7\u61d4\u4e2c\u6e86\u6edf\u6eb7\u6f24\u6f74\u6fb9\u752f\u7e9f\u7ed4\u7ef1\u73c9\u67a7\u684a\u6849\u69d4\u6a65\u8f71\u8f77\u8d4d\u80b7\u80e8\u98da\u7173\u7145\u7198\u610d\u6dfc\u781c\u78d9\u770d\u949a\u94b7\u94d8\u94de\u9503\u950d\u950e\u950f\u9518\u951d\u952a\u952b\u953f\u9545\u954e\u9562\u9565\u9569\u9572\u7a06\u9e4b\u9e5b\u9e71\u75ac\u75b4\u75d6\u766f\u88e5\u8941\u8022\u98a5\u87a8\u9eb4\u9c85\u9c86\u9c87\u9c9e\u9cb4\u9cba\u9cbc\u9cca\u9ccb\u9cd8\u9cd9\u9792\u97b4\u9f44",Wge="\u554a\u963f\u57c3\u6328\u54ce\u5509\u54c0\u769a\u764c\u85f9\u77ee\u827e\u7919\u611b\u9698\u978d\u6c28\u5b89\u4ffa\u6309\u6697\u5cb8\u80fa\u6848\u9aaf\u6602\u76ce\u51f9\u6556\u71ac\u7ffa\u8956\u50b2\u5967\u61ca\u6fb3\u82ad\u634c\u6252\u53ed\u5427\u7b06\u516b\u75a4\u5df4\u62d4\u8dcb\u9776\u628a\u8019\u58e9\u9738\u7f77\u7238\u767d\u67cf\u767e\u64fa\u4f70\u6557\u62dc\u7a17\u6591\u73ed\u642c\u6273\u822c\u9812\u677f\u7248\u626e\u62cc\u4f34\u74e3\u534a\u8fa6\u7d46\u90a6\u5e6b\u6886\u699c\u8180\u7d81\u68d2\u78c5\u868c\u938a\u508d\u8b17\u82de\u80de\u5305\u8912\u525d\u8584\u96f9\u4fdd\u5821\u98fd\u5bf6\u62b1\u5831\u66b4\u8c79\u9b91\u7206\u676f\u7891\u60b2\u5351\u5317\u8f29\u80cc\u8c9d\u92c7\u500d\u72fd\u5099\u618a\u7119\u88ab\u5954\u82ef\u672c\u7b28\u5d29\u7e43\u752d\u6cf5\u8e66\u8ff8\u903c\u9f3b\u6bd4\u9119\u7b46\u5f7c\u78a7\u84d6\u853d\u7562\u6583\u6bd6\u5e63\u5e87\u75f9\u9589\u655d\u5f0a\u5fc5\u8f9f\u58c1\u81c2\u907f\u965b\u97ad\u908a\u7de8\u8cb6\u6241\u4fbf\u8b8a\u535e\u8fa8\u8faf\u8fae\u904d\u6a19\u5f6a\u8198\u8868\u9c49\u618b\u5225\u765f\u5f6c\u658c\u7015\u6ff1\u8cd3\u64ef\u5175\u51b0\u67c4\u4e19\u79c9\u9905\u70b3\u75c5\u4e26\u73bb\u83e0\u64ad\u64a5\u7f3d\u6ce2\u535a\u52c3\u640f\u9251\u7b94\u4f2f\u5e1b\u8236\u8116\u818a\u6e24\u6cca\u99c1\u6355\u8514\u54fa\u88dc\u57e0\u4e0d\u5e03\u6b65\u7c3f\u90e8\u6016\u64e6\u731c\u88c1\u6750\u624d\u8ca1\u776c\u8e29\u91c7\u5f69\u83dc\u8521\u9910\u53c3\u8836\u6b98\u615a\u6158\u71e6\u84bc\u8259\u5009\u6ec4\u85cf\u64cd\u7cd9\u69fd\u66f9\u8349\u5ec1\u7b56\u5074\u518a\u6e2c\u5c64\u8e6d\u63d2\u53c9\u832c\u8336\u67e5\u78b4\u643d\u5bdf\u5c94\u5dee\u8a6b\u62c6\u67f4\u8c7a\u6519\u647b\u87ec\u995e\u8b92\u7e8f\u93df\u7522\u95e1\u986b\u660c\u7316\u5834\u5617\u5e38\u9577\u511f\u8178\u5ee0\u655e\u66a2\u5531\u5021\u8d85\u6284\u9214\u671d\u5632\u6f6e\u5de2\u5435\u7092\u8eca\u626f\u64a4\u63a3\u5fb9\u6f88\u90f4\u81e3\u8fb0\u5875\u6668\u5ff1\u6c88\u9673\u8d81\u896f\u6490\u7a31\u57ce\u6a59\u6210\u5448\u4e58\u7a0b\u61f2\u6f84\u8aa0\u627f\u901e\u9a01\u79e4\u5403\u7661\u6301\u5319\u6c60\u9072\u5f1b\u99b3\u6065\u9f52\u4f88\u5c3a\u8d64\u7fc5\u65a5\u71be\u5145\u6c96\u87f2\u5d07\u5bf5\u62bd\u916c\u7587\u8e8a\u7a20\u6101\u7c4c\u4ec7\u7da2\u7785\u919c\u81ed\u521d\u51fa\u6ae5\u5eda\u8e87\u92e4\u96db\u6ec1\u9664\u695a\u790e\u5132\u77d7\u6410\u89f8\u8655\u63e3\u5ddd\u7a7f\u693d\u50b3\u8239\u5598\u4e32\u7621\u7a97\u5e62\u5e8a\u95d6\u5275\u5439\u708a\u6376\u9318\u5782\u6625\u693f\u9187\u5507\u6df3\u7d14\u8822\u6233\u7dbd\u75b5\u8328\u78c1\u96cc\u8fad\u6148\u74f7\u8a5e\u6b64\u523a\u8cdc\u6b21\u8070\u8525\u56ea\u5306\u5f9e\u53e2\u6e4a\u7c97\u918b\u7c07\u4fc3\u8ea5\u7be1\u7ac4\u6467\u5d14\u50ac\u8106\u7601\u7cb9\u6dec\u7fe0\u6751\u5b58\u5bf8\u78cb\u64ae\u6413\u63aa\u632b\u932f\u642d\u9054\u7b54\u7629\u6253\u5927\u5446\u6b79\u50a3\u6234\u5e36\u6b86\u4ee3\u8cb8\u888b\u5f85\u902e\u6020\u803d\u64d4\u4e39\u55ae\u9132\u64a3\u81bd\u65e6\u6c2e\u4f46\u619a\u6de1\u8a95\u5f48\u86cb\u7576\u64cb\u9ee8\u8569\u6a94\u5200\u6417\u8e48\u5012\u5cf6\u79b1\u5c0e\u5230\u7a3b\u60bc\u9053\u76dc\u5fb7\u5f97\u7684\u8e6c\u71c8\u767b\u7b49\u77aa\u51f3\u9127\u5824\u4f4e\u6ef4\u8fea\u6575\u7b1b\u72c4\u6ecc\u7fdf\u5ae1\u62b5\u5e95\u5730\u8482\u7b2c\u5e1d\u5f1f\u905e\u7de0\u985b\u6382\u6ec7\u7898\u9ede\u5178\u975b\u588a\u96fb\u4f43\u7538\u5e97\u60e6\u5960\u6fb1\u6bbf\u7889\u53fc\u96d5\u96d5\u5201\u6389\u540a\u91e3\u8abf\u8dcc\u7239\u789f\u8776\u53e0\u8adc\u758a\u4e01\u76ef\u53ee\u91d8\u9802\u9f0e\u9320\u5b9a\u8a02\u4e1f\u6771\u51ac\u8463\u61c2\u52d5\u68df\u4f97\u606b\u51cd\u6d1e\u515c\u6296\u9b25\u9661\u8c46\u9017\u75d8\u90fd\u7763\u6bd2\u72a2\u7368\u8b80\u5835\u7779\u8ced\u675c\u934d\u809a\u5ea6\u6e21\u5992\u7aef\u77ed\u935b\u6bb5\u65b7\u7dde\u5806\u514c\u968a\u5c0d\u58a9\u5678\u8e72\u6566\u9813\u56e4\u920d\u76fe\u9041\u6387\u54c6\u591a\u596a\u579b\u8eb2\u6735\u8dfa\u8235\u5241\u60f0\u58ae\u86fe\u5ce8\u9d5d\u4fc4\u984d\u8a1b\u5a25\u60e1\u5384\u627c\u904f\u9102\u9913\u6069\u800c\u5152\u8033\u723e\u990c\u6d31\u4e8c\u8cb3\u767c\u7f70\u7b4f\u4f10\u4e4f\u95a5\u6cd5\u743a\u85e9\u5e06\u756a\u7ffb\u6a0a\u792c\u91e9\u7e41\u51e1\u7169\u53cd\u8fd4\u7bc4\u8ca9\u72af\u98ef\u6cdb\u574a\u82b3\u65b9\u80aa\u623f\u9632\u59a8\u4eff\u8a2a\u7d21\u653e\u83f2\u975e\u5561\u98db\u80a5\u532a\u8ab9\u5420\u80ba\u5ee2\u6cb8\u8cbb\u82ac\u915a\u5429\u6c1b\u5206\u7d1b\u58b3\u711a\u6c7e\u7c89\u596e\u4efd\u5fff\u61a4\u7cde\u8c50\u5c01\u6953\u8702\u5cf0\u92d2\u98a8\u760b\u70fd\u9022\u99ae\u7e2b\u8af7\u5949\u9cf3\u4f5b\u5426\u592b\u6577\u819a\u5b75\u6276\u62c2\u8f3b\u5e45\u6c1f\u7b26\u4f0f\u4fd8\u670d\u6d6e\u6daa\u798f\u88b1\u5f17\u752b\u64ab\u8f14\u4fef\u91dc\u65a7\u812f\u8151\u5e9c\u8150\u8d74\u526f\u8986\u8ce6\u5fa9\u5085\u4ed8\u961c\u7236\u8179\u8ca0\u5bcc\u8a03\u9644\u5a66\u7e1b\u5490\u5676\u560e\u8a72\u6539\u6982\u9223\u84cb\u6e89\u5e79\u7518\u687f\u67d1\u7aff\u809d\u8d95\u611f\u7a08\u6562\u8d1b\u5ca1\u525b\u92fc\u7f38\u809b\u7db1\u5d17\u6e2f\u6760\u7bd9\u81ef\u9ad8\u818f\u7f94\u7cd5\u641e\u93ac\u7a3f\u544a\u54e5\u6b4c\u64f1\u6208\u9d3f\u80f3\u7599\u5272\u9769\u845b\u683c\u86e4\u95a3\u9694\u927b\u500b\u5404\u7d66\u6839\u8ddf\u8015\u66f4\u5e9a\u7fb9\u57c2\u803f\u6897\u5de5\u653b\u529f\u606d\u9f94\u4f9b\u8eac\u516c\u5bae\u5f13\u978f\u6c5e\u62f1\u8ca2\u5171\u9264\u52fe\u6e9d\u830d\u72d7\u57a2\u69cb\u8cfc\u5920\u8f9c\u83c7\u5495\u7b8d\u4f30\u6cbd\u5b64\u59d1\u9f13\u53e4\u8831\u9aa8\u8c37\u80a1\u6545\u9867\u56fa\u96c7\u522e\u74dc\u526e\u5be1\u639b\u8902\u4e56\u62d0\u602a\u68fa\u95dc\u5b98\u51a0\u89c0\u7ba1\u9928\u7f50\u6163\u704c\u8cab\u5149\u5ee3\u901b\u7470\u898f\u572d\u77fd\u6b78\u9f9c\u95a8\u8ecc\u9b3c\u8a6d\u7678\u6842\u6ac3\u8dea\u8cb4\u528a\u8f25\u6efe\u68cd\u934b\u90ed\u570b\u679c\u88f9\u904e\u54c8\u9ab8\u5b69\u6d77\u6c26\u4ea5\u5bb3\u99ed\u9163\u61a8\u90af\u97d3\u542b\u6db5\u5bd2\u51fd\u558a\u7f55\u7ff0\u64bc\u634d\u65f1\u61be\u608d\u710a\u6c57\u6f22\u592f\u676d\u822a\u58d5\u568e\u8c6a\u6beb\u90dd\u597d\u8017\u865f\u6d69\u5475\u559d\u8377\u83cf\u6838\u79be\u548c\u4f55\u5408\u76d2\u8c89\u95a1\u6cb3\u6db8\u8d6b\u8910\u9db4\u8cc0\u563f\u9ed1\u75d5\u5f88\u72e0\u6068\u54fc\u4ea8\u6a6b\u8861\u6052\u8f5f\u54c4\u70d8\u8679\u9d3b\u6d2a\u5b8f\u5f18\u7d05\u5589\u4faf\u7334\u543c\u539a\u5019\u5f8c\u547c\u4e4e\u5ffd\u745a\u58fa\u846b\u80e1\u8774\u72d0\u7cca\u6e56\u5f27\u864e\u552c\u8b77\u4e92\u6eec\u6236\u82b1\u5629\u83ef\u733e\u6ed1\u756b\u5283\u5316\u8a71\u69d0\u5f8a\u61f7\u6dee\u58de\u6b61\u74b0\u6853\u9084\u7de9\u63db\u60a3\u559a\u7613\u8c62\u7165\u6e19\u5ba6\u5e7b\u8352\u614c\u9ec3\u78fa\u8757\u7c27\u7687\u51f0\u60f6\u714c\u6643\u5e4c\u604d\u8b0a\u7070\u63ee\u8f1d\u5fbd\u6062\u86d4\u56de\u6bc0\u6094\u6167\u5349\u60e0\u6666\u8cc4\u7a62\u6703\u71f4\u532f\u8af1\u8aa8\u7e6a\u8477\u660f\u5a5a\u9b42\u6e3e\u6df7\u8c41\u6d3b\u5925\u706b\u7372\u6216\u60d1\u970d\u8ca8\u798d\u64ca\u573e\u57fa\u6a5f\u7578\u7a3d\u7a4d\u7b95\u808c\u9951\u8de1\u6fc0\u8b4f\u96de\u59ec\u7e3e\u7ddd\u5409\u6975\u68d8\u8f2f\u7c4d\u96c6\u53ca\u6025\u75be\u6c72\u5373\u5ac9\u7d1a\u64e0\u5e7e\u810a\u5df1\u858a\u6280\u5180\u5b63\u4f0e\u796d\u5291\u60b8\u6fdf\u5bc4\u5bc2\u8a08\u8a18\u65e2\u5fcc\u969b\u7e7c\u7d00\u5609\u67b7\u593e\u4f73\u5bb6\u52a0\u83a2\u9830\u8cc8\u7532\u9240\u5047\u7a3c\u50f9\u67b6\u99d5\u5ac1\u6bb2\u76e3\u5805\u5c16\u7b8b\u9593\u714e\u517c\u80a9\u8271\u5978\u7dd8\u7e6d\u6aa2\u67ec\u583f\u9e7c\u63c0\u64bf\u7c21\u5109\u526a\u6e1b\u85a6\u6abb\u9452\u8e10\u8ce4\u898b\u9375\u7bad\u4ef6\u5065\u8266\u528d\u991e\u6f38\u6ffa\u6f97\u5efa\u50f5\u59dc\u5c07\u6f3f\u6c5f\u7586\u8523\u69f3\u734e\u8b1b\u5320\u91ac\u964d\u8549\u6912\u7901\u7126\u81a0\u4ea4\u90ca\u6f86\u9a55\u5b0c\u56bc\u652a\u9278\u77ef\u50e5\u8173\u72e1\u89d2\u9903\u7e73\u7d5e\u527f\u6559\u9175\u8f4e\u8f03\u53eb\u7a96\u63ed\u63a5\u7686\u7a2d\u8857\u968e\u622a\u52ab\u7bc0\u8396\u775b\u6676\u9be8\u4eac\u9a5a\u7cbe\u7cb3\u7d93\u4e95\u8b66\u666f\u9838\u975c\u5883\u656c\u93e1\u5f91\u75d9\u9756\u7adf\u7af6\u51c8\u70af\u7a98\u63ea\u7a76\u7cfe\u7396\u97ed\u4e45\u7078\u4e5d\u9152\u5ec4\u6551\u820a\u81fc\u8205\u548e\u5c31\u759a\u97a0\u62d8\u72d9\u75bd\u5c45\u99d2\u83ca\u5c40\u5480\u77e9\u8209\u6cae\u805a\u62d2\u64da\u5de8\u5177\u8ddd\u8e1e\u92f8\u4ff1\u53e5\u61fc\u70ac\u5287\u6350\u9d51\u5a1f\u5026\u7737\u5377\u7d79\u6485\u652b\u6289\u6398\u5014\u7235\u6854\u5091\u6377\u776b\u7aed\u6f54\u7d50\u89e3\u59d0\u6212\u85c9\u82a5\u754c\u501f\u4ecb\u75a5\u8aa1\u5c46\u5dfe\u7b4b\u65a4\u91d1\u4eca\u6d25\u895f\u7dca\u9326\u50c5\u8b39\u9032\u9773\u6649\u7981\u8fd1\u71fc\u6d78\u76e1\u52c1\u834a\u5162\u89ba\u6c7a\u8a23\u7d55\u5747\u83cc\u921e\u8ecd\u541b\u5cfb\u4fca\u7ae3\u6d5a\u90e1\u99ff\u5580\u5496\u5361\u54af\u958b\u63e9\u6977\u51f1\u6168\u520a\u582a\u52d8\u574e\u780d\u770b\u5eb7\u6177\u7ce0\u625b\u6297\u4ea2\u7095\u8003\u62f7\u70e4\u9760\u5777\u82db\u67ef\u68f5\u78d5\u9846\u79d1\u6bbc\u54b3\u53ef\u6e34\u514b\u523b\u5ba2\u8ab2\u80af\u5543\u58be\u61c7\u5751\u542d\u7a7a\u6050\u5b54\u63a7\u6473\u53e3\u6263\u5bc7\u67af\u54ed\u7a9f\u82e6\u9177\u5eab\u8932\u8a87\u57ae\u630e\u8de8\u80ef\u584a\u7b77\u5108\u5feb\u5bec\u6b3e\u5321\u7b50\u72c2\u6846\u7926\u7736\u66e0\u6cc1\u8667\u76d4\u5dcb\u7aba\u8475\u594e\u9b41\u5080\u994b\u6127\u6f70\u5764\u6606\u6346\u56f0\u62ec\u64f4\u5ed3\u95ca\u5783\u62c9\u5587\u881f\u81d8\u8fa3\u5566\u840a\u4f86\u8cf4\u85cd\u5a6a\u6b04\u6514\u7c43\u95cc\u862d\u703e\u8b95\u652c\u89bd\u61f6\u7e9c\u721b\u6feb\u746f\u6994\u72fc\u5eca\u90ce\u6717\u6d6a\u6488\u52de\u7262\u8001\u4f6c\u59e5\u916a\u70d9\u6f87\u52d2\u6a02\u96f7\u9433\u857e\u78ca\u7d2f\u5121\u58d8\u64c2\u808b\u985e\u6dda\u68f1\u695e\u51b7\u5398\u68a8\u7281\u9ece\u7c6c\u8c8d\u96e2\u6f13\u7406\u674e\u88cf\u9bc9\u79ae\u8389\u8354\u540f\u6817\u9e97\u53b2\u52f5\u792b\u6b77\u5229\u5088\u4f8b\u4fd0\u75e2\u7acb\u7c92\u701d\u96b8\u529b\u7483\u54e9\u5006\u806f\u84ee\u9023\u942e\u5ec9\u6190\u6f23\u7c3e\u6582\u81c9\u93c8\u6200\u7149\u7df4\u7ce7\u6dbc\u6881\u7cb1\u826f\u5169\u8f1b\u91cf\u667e\u4eae\u8ad2\u64a9\u804a\u50da\u7642\u71ce\u5be5\u907c\u6f66\u4e86\u6482\u9410\u5ed6\u6599\u5217\u88c2\u70c8\u52a3\u7375\u7433\u6797\u78f7\u9716\u81e8\u9130\u9c57\u6dcb\u51dc\u8cc3\u541d\u62ce\u73b2\u83f1\u96f6\u9f61\u9234\u4f36\u7f9a\u6de9\u9748\u9675\u5dba\u9818\u53e6\u4ee4\u6e9c\u7409\u69b4\u786b\u993e\u7559\u5289\u7624\u6d41\u67f3\u516d\u9f8d\u807e\u56a8\u7c60\u7abf\u9686\u58df\u650f\u96b4\u6a13\u5a41\u645f\u7c0d\u6f0f\u964b\u8606\u76e7\u9871\u5eec\u7210\u64c4\u9e75\u865c\u9b6f\u9e93\u788c\u9732\u8def\u8cc2\u9e7f\u6f5e\u797f\u9304\u9678\u622e\u9a62\u5442\u92c1\u4fb6\u65c5\u5c65\u5c62\u7e37\u616e\u6c2f\u5f8b\u7387\u6ffe\u7da0\u5dd2\u6523\u5b7f\u7064\u5375\u4e82\u63a0\u7565\u6384\u8f2a\u502b\u4f96\u6dea\u7db8\u8ad6\u863f\u87ba\u7f85\u908f\u947c\u7c6e\u9a3e\u88f8\u843d\u6d1b\u99f1\u7d61\u5abd\u9ebb\u746a\u78bc\u879e\u99ac\u7f75\u561b\u55ce\u57cb\u8cb7\u9ea5\u8ce3\u9081\u8108\u779e\u9945\u883b\u6eff\u8513\u66fc\u6162\u6f2b\u8b3e\u8292\u832b\u76f2\u6c13\u5fd9\u83bd\u8c93\u8305\u9328\u6bdb\u77db\u925a\u536f\u8302\u5192\u5e3d\u8c8c\u8cbf\u9ebd\u73ab\u679a\u6885\u9176\u9ef4\u7164\u6c92\u7709\u5a92\u9382\u6bcf\u7f8e\u6627\u5bd0\u59b9\u5a9a\u9580\u60b6\u5011\u840c\u8499\u6aac\u76df\u9333\u731b\u5922\u5b5f\u7787\u919a\u9761\u7cdc\u8ff7\u8b0e\u5f4c\u7c73\u79d8\u8993\u6ccc\u871c\u5bc6\u51aa\u68c9\u7720\u7dbf\u5195\u514d\u52c9\u5a29\u7dec\u9762\u82d7\u63cf\u7784\u85d0\u79d2\u6e3a\u5edf\u5999\u8511\u6ec5\u6c11\u62bf\u76bf\u654f\u61ab\u95a9\u660e\u879f\u9cf4\u9298\u540d\u547d\u8b2c\u6478\u6479\u8611\u6a21\u819c\u78e8\u6469\u9b54\u62b9\u672b\u83ab\u58a8\u9ed8\u6cab\u6f20\u5bde\u964c\u8b00\u725f\u67d0\u62c7\u7261\u755d\u59c6\u6bcd\u5893\u66ae\u5e55\u52df\u6155\u6728\u76ee\u7766\u7267\u7a46\u62ff\u54ea\u5436\u9209\u90a3\u5a1c\u7d0d\u6c16\u4e43\u5976\u8010\u5948\u5357\u7537\u96e3\u56ca\u6493\u8166\u60f1\u9b27\u6dd6\u5462\u9912\u5167\u5ae9\u80fd\u59ae\u9713\u502a\u6ce5\u5c3c\u64ec\u59b3\u533f\u81a9\u9006\u6eba\u852b\u62c8\u5e74\u78be\u6506\u649a\u5ff5\u5a18\u91c0\u9ce5\u5c3f\u634f\u8076\u5b7d\u5699\u9477\u93b3\u6d85\u60a8\u6ab8\u7370\u51dd\u5be7\u64f0\u6fd8\u725b\u626d\u9215\u7d10\u81bf\u6fc3\u8fb2\u5f04\u5974\u52aa\u6012\u5973\u6696\u8650\u7627\u632a\u61e6\u7cef\u8afe\u54e6\u6b50\u9dd7\u6bc6\u85d5\u5614\u5076\u6f1a\u556a\u8db4\u722c\u5e15\u6015\u7436\u62cd\u6392\u724c\u5f98\u6e43\u6d3e\u6500\u6f58\u76e4\u78d0\u76fc\u7554\u5224\u53db\u4e53\u9f90\u65c1\u802a\u80d6\u62cb\u5486\u5228\u70ae\u888d\u8dd1\u6ce1\u5478\u80da\u57f9\u88f4\u8ce0\u966a\u914d\u4f69\u6c9b\u5674\u76c6\u7830\u62a8\u70f9\u6f8e\u5f6d\u84ec\u68da\u787c\u7bf7\u81a8\u670b\u9d6c\u6367\u78b0\u576f\u7812\u9739\u6279\u62ab\u5288\u7435\u6bd7\u5564\u813e\u75b2\u76ae\u5339\u75de\u50fb\u5c41\u8b6c\u7bc7\u504f\u7247\u9a19\u98c4\u6f02\u74e2\u7968\u6487\u77a5\u62fc\u983b\u8ca7\u54c1\u8058\u4e52\u576a\u860b\u840d\u5e73\u6191\u74f6\u8a55\u5c4f\u5761\u6f51\u9817\u5a46\u7834\u9b44\u8feb\u7c95\u5256\u64b2\u92ea\u4ec6\u8386\u8461\u83e9\u84b2\u57d4\u6a38\u5703\u666e\u6d66\u8b5c\u66dd\u7011\u671f\u6b3a\u68f2\u621a\u59bb\u4e03\u6dd2\u6f06\u67d2\u6c8f\u5176\u68cb\u5947\u6b67\u7566\u5d0e\u81cd\u9f4a\u65d7\u7948\u7941\u9a0e\u8d77\u8c48\u4e5e\u4f01\u555f\u5951\u780c\u5668\u6c23\u8fc4\u68c4\u6c7d\u6ce3\u8a16\u6390\u6d3d\u727d\u6261\u91ec\u925b\u5343\u9077\u7c3d\u4edf\u8b19\u4e7e\u9ed4\u9322\u9257\u524d\u6f5b\u9063\u6dfa\u8b74\u5879\u5d4c\u6b20\u6b49\u69cd\u55c6\u8154\u7f8c\u58bb\u8594\u5f37\u6436\u6a47\u936c\u6572\u6084\u6a4b\u77a7\u55ac\u50d1\u5de7\u9798\u64ac\u7ff9\u5ced\u4fcf\u7ac5\u5207\u8304\u4e14\u602f\u7aca\u6b3d\u4fb5\u89aa\u79e6\u7434\u52e4\u82b9\u64d2\u79bd\u5be2\u6c81\u9752\u8f15\u6c2b\u50be\u537f\u6e05\u64ce\u6674\u6c30\u60c5\u9803\u8acb\u6176\u74ca\u7aae\u79cb\u4e18\u90b1\u7403\u6c42\u56da\u914b\u6cc5\u8da8\u5340\u86c6\u66f2\u8ec0\u5c48\u9a45\u6e20\u53d6\u5a36\u9f72\u8da3\u53bb\u5708\u9874\u6b0a\u919b\u6cc9\u5168\u75ca\u62f3\u72ac\u5238\u52f8\u7f3a\u7094\u7638\u537b\u9d72\u69b7\u78ba\u96c0\u88d9\u7fa4\u7136\u71c3\u5189\u67d3\u74e4\u58e4\u6518\u56b7\u8b93\u9952\u64fe\u7e5e\u60f9\u71b1\u58ec\u4ec1\u4eba\u5fcd\u97cc\u4efb\u8a8d\u5203\u598a\u7d09\u6254\u4ecd\u65e5\u620e\u8338\u84c9\u69ae\u878d\u7194\u6eb6\u5bb9\u7d68\u5197\u63c9\u67d4\u8089\u8339\u8815\u5112\u5b7a\u5982\u8fb1\u4e73\u6c5d\u5165\u8925\u8edf\u962e\u854a\u745e\u92b3\u958f\u6f64\u82e5\u5f31\u6492\u7051\u85a9\u816e\u9c13\u585e\u8cfd\u4e09\u4e09\u5098\u6563\u6851\u55d3\u55aa\u6414\u9a37\u6383\u5ac2\u745f\u8272\u6f80\u68ee\u50e7\u838e\u7802\u6bba\u524e\u6c99\u7d17\u50bb\u5565\u715e\u7be9\u66ec\u73ca\u82eb\u6749\u5c71\u522a\u717d\u886b\u9583\u965c\u64c5\u8d0d\u81b3\u5584\u6c55\u6247\u7e55\u5891\u50b7\u5546\u8cde\u664c\u4e0a\u5c1a\u88f3\u68a2\u634e\u7a0d\u71d2\u828d\u52fa\u97f6\u5c11\u54e8\u90b5\u7d39\u5962\u8cd2\u86c7\u820c\u820d\u8d66\u651d\u5c04\u61fe\u6d89\u793e\u8a2d\u7837\u7533\u547b\u4f38\u8eab\u6df1\u5a20\u7d33\u795e\u6c88\u5be9\u5b38\u751a\u814e\u614e\u6ef2\u8072\u751f\u7525\u7272\u5347\u7e69\u7701\u76db\u5269\u52dd\u8056\u5e2b\u5931\u7345\u65bd\u6fd5\u8a69\u5c4d\u8671\u5341\u77f3\u62fe\u6642\u4ec0\u98df\u8755\u5be6\u8b58\u53f2\u77e2\u4f7f\u5c4e\u99db\u59cb\u5f0f\u793a\u58eb\u4e16\u67ff\u4e8b\u62ed\u8a93\u901d\u52e2\u662f\u55dc\u566c\u9069\u4ed5\u4f8d\u91cb\u98fe\u6c0f\u5e02\u6043\u5ba4\u8996\u8a66\u6536\u624b\u9996\u5b88\u58fd\u6388\u552e\u53d7\u7626\u7378\u852c\u6a1e\u68b3\u6b8a\u6292\u8f38\u53d4\u8212\u6dd1\u758f\u66f8\u8d16\u5b70\u719f\u85af\u6691\u66d9\u7f72\u8700\u9ecd\u9f20\u5c6c\u8853\u8ff0\u6a39\u675f\u620d\u8c4e\u5885\u5eb6\u6578\u6f31\u6055\u5237\u800d\u6454\u8870\u7529\u5e25\u6813\u62f4\u971c\u96d9\u723d\u8ab0\u6c34\u7761\u7a05\u542e\u77ac\u9806\u821c\u8aaa\u78a9\u6714\u720d\u65af\u6495\u5636\u601d\u79c1\u53f8\u7d72\u6b7b\u8086\u5bfa\u55e3\u56db\u4f3a\u4f3c\u98fc\u5df3\u677e\u8073\u616b\u980c\u9001\u5b8b\u8a1f\u8aa6\u641c\u8258\u64fb\u55fd\u8607\u9165\u4fd7\u7d20\u901f\u7c9f\u50f3\u5851\u6eaf\u5bbf\u8a34\u8085\u9178\u849c\u7b97\u96d6\u968b\u96a8\u7d8f\u9ad3\u788e\u6b72\u7a57\u9042\u96a7\u795f\u5b6b\u640d\u7b4d\u84d1\u68ad\u5506\u7e2e\u7463\u7d22\u9396\u6240\u584c\u4ed6\u5b83\u5979\u5854\u737a\u64bb\u8e4b\u8e0f\u80ce\u82d4\u64e1\u81fa\u6cf0\u915e\u592a\u614b\u6c70\u574d\u6524\u8caa\u7671\u7058\u58c7\u6a80\u75f0\u6f6d\u8b5a\u8ac7\u5766\u6bef\u8892\u78b3\u63a2\u5606\u70ad\u6e6f\u5858\u642a\u5802\u68e0\u819b\u5510\u7cd6\u5018\u8eba\u6dcc\u8d9f\u71d9\u638f\u6fe4\u6ed4\u7d73\u8404\u6843\u9003\u6dd8\u9676\u8a0e\u5957\u7279\u85e4\u9a30\u75bc\u8b04\u68af\u5254\u8e22\u92bb\u63d0\u984c\u8e44\u557c\u9ad4\u66ff\u568f\u60d5\u6d95\u5243\u5c5c\u5929\u6dfb\u586b\u7530\u751c\u606c\u8214\u8146\u6311\u689d\u8fe2\u773a\u8df3\u8cbc\u9435\u5e16\u5ef3\u807d\u70f4\u6c40\u5ef7\u505c\u4ead\u5ead\u633a\u8247\u901a\u6850\u916e\u77b3\u540c\u9285\u5f64\u7ae5\u6876\u6345\u7b52\u7d71\u75db\u5077\u6295\u982d\u900f\u51f8\u79bf\u7a81\u5716\u5f92\u9014\u5857\u5c60\u571f\u5410\u5154\u6e4d\u5718\u63a8\u9839\u817f\u86fb\u892a\u9000\u541e\u5c6f\u81c0\u62d6\u6258\u812b\u9d15\u9640\u99b1\u99dd\u6a62\u59a5\u62d3\u553e\u6316\u54c7\u86d9\u7aaa\u5a03\u74e6\u896a\u6b6a\u5916\u8c4c\u5f4e\u7063\u73a9\u9811\u4e38\u70f7\u5b8c\u7897\u633d\u665a\u7696\u60cb\u5b9b\u5a49\u842c\u8155\u6c6a\u738b\u4ea1\u6789\u7db2\u5f80\u65fa\u671b\u5fd8\u5984\u5a01\u5dcd\u5fae\u5371\u97cb\u9055\u6845\u570d\u552f\u60df\u70ba\u6ff0\u7dad\u8466\u840e\u59d4\u5049\u507d\u5c3e\u7def\u672a\u851a\u5473\u754f\u80c3\u9935\u9b4f\u4f4d\u6e2d\u8b02\u5c09\u6170\u885b\u761f\u6eab\u868a\u6587\u805e\u7d0b\u543b\u7a69\u7d0a\u554f\u55e1\u7fc1\u7515\u64be\u8778\u6e26\u7aa9\u6211\u65a1\u81e5\u63e1\u6c83\u5deb\u55da\u93a2\u70cf\u6c59\u8aa3\u5c4b\u7121\u856a\u68a7\u543e\u5433\u6bcb\u6b66\u4e94\u6342\u5348\u821e\u4f0d\u4fae\u5862\u620a\u9727\u6664\u7269\u52ff\u52d9\u609f\u8aa4\u6614\u7199\u6790\u897f\u7852\u77fd\u6670\u563b\u5438\u932b\u72a7\u7a00\u606f\u5e0c\u6089\u819d\u5915\u60dc\u7184\u70ef\u6eaa\u6c50\u7280\u6a84\u8972\u5e2d\u7fd2\u5ab3\u559c\u9291\u6d17\u7cfb\u9699\u6232\u7d30\u778e\u8766\u5323\u971e\u8f44\u6687\u5cfd\u4fe0\u72f9\u4e0b\u5ec8\u590f\u5687\u6380\u9341\u5148\u4ed9\u9bae\u7e96\u9e79\u8ce2\u929c\u8237\u9591\u6d8e\u5f26\u5acc\u986f\u96aa\u73fe\u737b\u7e23\u817a\u9921\u7fa8\u61b2\u9677\u9650\u7dda\u76f8\u5ec2\u9472\u9999\u7bb1\u8944\u6e58\u9109\u7fd4\u7965\u8a73\u60f3\u97ff\u4eab\u9805\u5df7\u6a61\u50cf\u5411\u8c61\u856d\u785d\u9704\u524a\u54ee\u56c2\u92b7\u6d88\u5bb5\u6dc6\u66c9\u5c0f\u5b5d\u6821\u8096\u562f\u7b11\u6548\u6954\u4e9b\u6b47\u880d\u978b\u5354\u633e\u651c\u90aa\u659c\u8105\u8ae7\u5beb\u68b0\u5378\u87f9\u61c8\u6cc4\u7009\u8b1d\u5c51\u85aa\u82af\u92c5\u6b23\u8f9b\u65b0\u5ffb\u5fc3\u4fe1\u91c1\u661f\u8165\u7329\u60fa\u8208\u5211\u578b\u5f62\u90a2\u884c\u9192\u5e78\u674f\u6027\u59d3\u5144\u5147\u80f8\u5308\u6d36\u96c4\u718a\u4f11\u4fee\u7f9e\u673d\u55c5\u92b9\u79c0\u8896\u7e61\u589f\u620c\u9700\u865b\u5653\u9808\u5f90\u8a31\u84c4\u9157\u6558\u65ed\u5e8f\u755c\u6064\u7d6e\u5a7f\u7dd2\u7e8c\u8ed2\u55a7\u5ba3\u61f8\u65cb\u7384\u9078\u766c\u7729\u7d62\u9774\u859b\u5b78\u7a74\u96ea\u8840\u52db\u718f\u5faa\u65ec\u8a62\u5c0b\u99b4\u5de1\u6b89\u6c5b\u8a13\u8a0a\u905c\u8fc5\u58d3\u62bc\u9d09\u9d28\u5440\u4e2b\u82bd\u7259\u869c\u5d16\u8859\u6daf\u96c5\u555e\u4e9e\u8a1d\u7109\u54bd\u95b9\u7159\u6df9\u9e7d\u56b4\u7814\u8712\u5dd6\u5ef6\u8a00\u984f\u95bb\u708e\u6cbf\u5944\u63a9\u773c\u884d\u6f14\u8277\u5830\u71d5\u53ad\u786f\u96c1\u5501\u5f65\u7130\u5bb4\u8afa\u9a57\u6b83\u592e\u9d26\u79e7\u694a\u63da\u4f6f\u760d\u7f8a\u6d0b\u967d\u6c27\u4ef0\u7662\u990a\u6a23\u6f3e\u9080\u8170\u5996\u7464\u6416\u582f\u9059\u7aaf\u8b20\u59da\u54ac\u8200\u85e5\u8981\u8000\u6930\u564e\u8036\u723a\u91ce\u51b6\u4e5f\u9801\u6396\u696d\u8449\u66f3\u814b\u591c\u6db2\u58f9\u58f9\u91ab\u63d6\u92a5\u4f9d\u4f0a\u8863\u9824\u5937\u907a\u79fb\u5100\u80f0\u7591\u6c82\u5b9c\u59e8\u5f5c\u6905\u87fb\u501a\u5df2\u4e59\u77e3\u4ee5\u85dd\u6291\u6613\u9091\u5c79\u5104\u5f79\u81c6\u9038\u8084\u75ab\u4ea6\u88d4\u610f\u6bc5\u61b6\u7fa9\u76ca\u6ea2\u8a63\u8b70\u8abc\u8b6f\u7570\u7ffc\u7fcc\u7e79\u8335\u852d\u56e0\u6bb7\u97f3\u9670\u59fb\u541f\u9280\u6deb\u5bc5\u98f2\u5c39\u5f15\u96b1\u5370\u82f1\u6afb\u5b30\u9df9\u61c9\u7e93\u7469\u87a2\u71df\u7192\u8805\u8fce\u8d0f\u76c8\u5f71\u7a4e\u786c\u6620\u55b2\u64c1\u50ad\u81c3\u7670\u5eb8\u96cd\u8e34\u86f9\u8a60\u6cf3\u6e67\u6c38\u607f\u52c7\u7528\u5e7d\u512a\u60a0\u6182\u5c24\u7531\u90f5\u923e\u7336\u6cb9\u904a\u9149\u6709\u53cb\u53f3\u4f51\u91c9\u8a98\u53c8\u5e7c\u8fc2\u6de4\u65bc\u76c2\u6986\u865e\u611a\u8f3f\u4f59\u4fde\u903e\u9b5a\u6109\u6e1d\u6f01\u9685\u4e88\u5a1b\u96e8\u8207\u5dbc\u79b9\u5b87\u8a9e\u7fbd\u7389\u57df\u828b\u90c1\u7c72\u9047\u55bb\u5cea\u79a6\u6108\u6b32\u7344\u80b2\u8b7d\u6d74\u5bd3\u88d5\u9810\u8c6b\u99ad\u9d1b\u6df5\u51a4\u5143\u57a3\u8881\u539f\u63f4\u8f45\u5712\u54e1\u5713\u733f\u6e90\u7de3\u9060\u82d1\u9858\u6028\u9662\u66f0\u7d04\u8d8a\u8e8d\u9470\u5dbd\u7cb5\u6708\u6085\u95b1\u8018\u96f2\u9116\u52fb\u9695\u5141\u904b\u860a\u919e\u6688\u97fb\u5b55\u531d\u7838\u96dc\u683d\u54c9\u707d\u5bb0\u8f09\u518d\u5728\u54b1\u6522\u66ab\u8d0a\u8d13\u81df\u846c\u906d\u7cdf\u947f\u85fb\u68d7\u65e9\u6fa1\u86a4\u8e81\u566a\u9020\u7682\u7ac8\u71e5\u8cac\u64c7\u5247\u6fa4\u8cca\u600e\u589e\u618e\u66fe\u8d08\u7d2e\u55b3\u6e23\u5284\u8ecb\u9358\u9598\u7728\u67f5\u69a8\u548b\u4e4d\u70b8\u8a50\u6458\u9f4b\u5b85\u7a84\u50b5\u5be8\u77bb\u6c08\u8a79\u7c98\u6cbe\u76de\u65ac\u8f3e\u5d84\u5c55\u8638\u68e7\u5360\u6230\u7ad9\u6e5b\u7dbb\u6a1f\u7ae0\u5f70\u6f33\u5f35\u638c\u6f32\u6756\u4e08\u5e33\u8cec\u4ed7\u8139\u7634\u969c\u62db\u662d\u627e\u6cbc\u8d99\u7167\u7f69\u5146\u8087\u53ec\u906e\u6298\u54f2\u87c4\u8f4d\u8005\u937a\u8517\u9019\u6d59\u73cd\u659f\u771f\u7504\u7827\u81fb\u8c9e\u91dd\u5075\u6795\u75b9\u8a3a\u9707\u632f\u93ae\u9663\u84b8\u6399\u775c\u5f81\u7319\u722d\u6014\u6574\u62ef\u6b63\u653f\u5e40\u7665\u912d\u8b49\u829d\u679d\u652f\u5431\u8718\u77e5\u80a2\u8102\u6c41\u4e4b\u7e54\u8077\u76f4\u690d\u6b96\u57f7\u503c\u4f84\u5740\u6307\u6b62\u8dbe\u53ea\u65e8\u7d19\u8a8c\u646f\u64f2\u81f3\u81f4\u7f6e\u5e5f\u5cd9\u5236\u667a\u79e9\u7a1a\u8cea\u7099\u75d4\u6eef\u6cbb\u7a92\u4e2d\u76c5\u5fe0\u9418\u8877\u7d42\u7a2e\u816b\u91cd\u4ef2\u773e\u821f\u5468\u5dde\u6d32\u8b05\u7ca5\u8ef8\u8098\u5e1a\u5492\u76ba\u5b99\u665d\u9a5f\u73e0\u682a\u86db\u6731\u8c6c\u8af8\u8a85\u9010\u7af9\u71ed\u716e\u62c4\u77da\u56d1\u4e3b\u8457\u67f1\u52a9\u86c0\u8caf\u9444\u7bc9\u4f4f\u8a3b\u795d\u99d0\u6293\u722a\u62fd\u5c08\u78da\u8f49\u64b0\u8cfa\u7bc6\u6a01\u838a\u88dd\u599d\u649e\u58ef\u72c0\u690e\u9310\u8ffd\u8d05\u589c\u7db4\u8ac4\u6e96\u6349\u62d9\u5353\u684c\u7422\u8301\u914c\u5544\u8457\u707c\u6fc1\u8332\u54a8\u8cc7\u59ff\u6ecb\u6dc4\u5b5c\u7d2b\u4ed4\u7c7d\u6ed3\u5b50\u81ea\u6f2c\u5b57\u9b03\u68d5\u8e64\u5b97\u7d9c\u7e3d\u7e31\u9112\u8d70\u594f\u63cd\u79df\u8db3\u5352\u65cf\u7956\u8a5b\u963b\u7d44\u9246\u7e82\u5634\u9189\u6700\u7f6a\u5c0a\u9075\u6628\u5de6\u4f50\u67de\u505a\u4f5c\u5750\u5ea7\u9312\u566f\u5b21\u74a6\u66d6\u9744\u8af3\u92a8\u9d6a\u5abc\u9a41\u9c32\u9200\u5504\u9211\u9d07\u9f59\u9d6f\u8cc1\u931b\u84fd\u55f6\u6f77\u924d\u7bf3\u8e55\u8290\u7df6\u7c69\u9a43\u98ae\u98c6\u93e2\u9463\u9c3e\u5110\u7e7d\u6ab3\u6baf\u81cf\u944c\u9ad5\u9b22\u7a1f\u9911\u9238\u9d53\u923d\u9a42\u9ef2\u60fb\u9364\u5115\u91f5\u56c5\u8ac2\u8b96\u8546\u61fa\u5b0b\u9a4f\u8998\u79aa\u9414\u5000\u8407\u60b5\u95b6\u9be7\u7868\u5096\u8af6\u6aec\u78e3\u9f54\u68d6\u6a89\u92ee\u943a\u98ed\u9d1f\u9283\u5114\u5e6c\u8b8e\u82bb\u7d40\u8e95\u91e7\u6134\u7d9e\u9d89\u8f1f\u9f6a\u9dbf\u84ef\u9a44\u6a05\u8f33\u651b\u92bc\u9e7a\u5660\u97c3\u99d8\u7d3f\u6bab\u8ce7\u7649\u7c1e\u8b9c\u78ad\u8960\u71fe\u9419\u7cf4\u8a46\u8ae6\u7d88\u89bf\u93d1\u5dd4\u923f\u7672\u929a\u9bdb\u9c08\u92cc\u92a9\u5d20\u9d87\u7ac7\u7006\u6add\u7258\u7be4\u9ef7\u7c6a\u61df\u9413\u71c9\u8e89\u9438\u8ae4\u580a\u95bc\u8edb\u92e8\u9354\u9d9a\u984e\u9853\u9c77\u8a92\u9087\u927a\u9d2f\u9b9e\u9201\u9b74\u7dcb\u9428\u9be1\u50e8\u7043\u9ce7\u99d9\u7d31\u7d3c\u8cfb\u9ea9\u9b92\u9c12\u91d3\u8cc5\u5c37\u641f\u7d3a\u6207\u776a\u8aa5\u7e1e\u92ef\u7d07\u9398\u6f41\u4e99\u8ce1\u7d86\u9bc1\u8a6c\u7df1\u89af\u8a41\u8f42\u9237\u932e\u9d23\u9d60\u9dbb\u9d30\u6451\u8a7f\u645c\u9e1b\u9c25\u7377\u532d\u528c\u5aaf\u6a9c\u9bad\u9c56\u889e\u7dc4\u9bc0\u581d\u54bc\u5e57\u69e8\u87c8\u927f\u95de\u7d4e\u9821\u705d\u9865\u8a36\u95d4\u8823\u9ecc\u8a0c\u8452\u958e\u9c5f\u6ef8\u9d98\u9a4a\u6a3a\u93f5\u5950\u7e6f\u9370\u9bc7\u9c09\u8a7c\u8588\u5666\u6fae\u7e62\u743f\u6689\u8ae2\u991b\u95bd\u9225\u944a\u8a10\u8a70\u85ba\u5630\u568c\u9a65\u74a3\u89ac\u9f4f\u78ef\u7f88\u8806\u8e8b\u973d\u9c6d\u9bfd\u90df\u6d79\u92cf\u93b5\u87ef\u8aeb\u7e11\u6214\u6229\u77bc\u9dbc\u7b67\u9c39\u97c9\u7d73\u97c1\u649f\u5da0\u9de6\u9bab\u7664\u981c\u9b9a\u5df9\u85ce\u9949\u7e09\u8d10\u89b2\u5244\u6d87\u9015\u5f33\u811b\u975a\u9b2e\u9ce9\u9df2\u8a4e\u5c68\u6af8\u98b6\u9245\u92e6\u7ab6\u9f5f\u9308\u942b\u96cb\u8b4e\u73a8\u76b8\u5274\u584f\u613e\u6137\u93a7\u9347\u9f95\u958c\u9227\u92ac\u9a0d\u7dd9\u8efb\u9233\u9301\u9837\u9f66\u93d7\u56b3\u9136\u5672\u81be\u736a\u9ad6\u8a86\u8a91\u913a\u58d9\u7e8a\u8cba\u5331\u8562\u6192\u8075\u7c23\u95ab\u9315\u9be4\u8810\u5d0d\u5fa0\u6df6\u7028\u8cda\u775e\u9338\u7669\u7c5f\u5d50\u6b16\u6595\u946d\u8964\u95ac\u92c3\u562e\u5d97\u92a0\u9412\u7646\u9c33\u8a84\u7e32\u5137\u9148\u58e2\u85f6\u849e\u863a\u56a6\u9090\u9a6a\u7e2d\u6aea\u6adf\u8f62\u792a\u92f0\u9e1d\u7658\u7cf2\u8e92\u9742\u9c7a\u9c67\u861e\u5969\u7032\u7489\u6bae\u8933\u895d\u9c31\u9b4e\u7e5a\u91d5\u9def\u85fa\u5ee9\u6a81\u8f54\u8eaa\u7dbe\u6b1e\u87f6\u9bea\u700f\u9a2e\u7db9\u93a6\u9dda\u8622\u7027\u74cf\u6af3\u6727\u7931\u50c2\u851e\u560d\u5d81\u93e4\u763a\u802c\u87bb\u9acf\u58da\u64fc\u5695\u95ad\u7018\u6de5\u6ae8\u6ad3\u8f64\u8f05\u8f46\u6c0c\u81da\u9e15\u9dfa\u826b\u9c78\u81e0\u5b4c\u6b12\u9e1e\u947e\u5707\u7296\u7380\u6ffc\u6b0f\u8161\u93cd\u6ada\u8938\u92dd\u5638\u561c\u5b24\u69aa\u52f1\u7e35\u93dd\u9859\u9c3b\u9ebc\u636b\u71dc\u61e3\u9346\u7f8b\u8b10\u737c\u79b0\u6fa0\u9766\u9efd\u7df2\u7e46\u9594\u7de1\u8b28\u9a40\u9943\u6b7f\u93cc\u926c\u9403\u8a25\u922e\u9be2\u8f26\u9bf0\u8526\u88ca\u9689\u8617\u56c1\u9862\u8ea1\u82e7\u5680\u8079\u5102\u5665\u99d1\u91f9\u513a\u8b33\u616a\u750c\u8e63\u76b0\u8f61\u7d15\u7f86\u9239\u8ade\u99e2\u7e39\u5b2a\u91d9\u93f7\u9420\u8604\u9a0f\u7dba\u69bf\u78e7\u980e\u980f\u9c2d\u50c9\u8541\u6173\u9a2b\u7e7e\u69e7\u9210\u5b19\u6aa3\u6227\u7197\u9306\u93d8\u93f9\u7fa5\u8e4c\u8a9a\u8b59\u854e\u7e70\u78fd\u8e7a\u611c\u9365\u7bcb\u92df\u64b3\u9bd6\u7162\u86fa\u5df0\u8cd5\u87e3\u9c0d\u8a58\u5d87\u95c3\u89b7\u9d1d\u8a6e\u7da3\u8f07\u9293\u95cb\u95d5\u6128\u8558\u5b08\u6a48\u98ea\u8ed4\u5db8\u8811\u7e1f\u92a3\u9870\u8706\u98af\u6bff\u7cdd\u7e45\u55c7\u92ab\u7a61\u93a9\u9bca\u91c3\u8a15\u59cd\u9a38\u91e4\u9c54\u5770\u6ba4\u89f4\u5399\u7044\u756c\u8a75\u8ad7\u700b\u8b1a\u5852\u8494\u5f12\u8efe\u8cb0\u9230\u9c23\u7dac\u6504\u7d13\u9582\u9460\u5edd\u99df\u7de6\u9376\u9de5\u85ea\u993f\u98bc\u93aa\u8b16\u7a4c\u8ab6\u84c0\u733b\u55e9\u8127\u95e5\u9248\u9c28\u9226\u9b90\u66c7\u926d\u931f\u9807\u513b\u9933\u940b\u93dc\u97dc\u92f1\u7df9\u9d5c\u95d0\u7cf6\u9f60\u9c37\u615f\u9204\u91f7\u6476\u98e9\u7c5c\u9f09\u5aa7\u8183\u7d08\u7db0\u8f1e\u8ac9\u5e43\u95c8\u6e88\u6f7f\u744b\u97d9\u7152\u9baa\u95bf\u8435\u9f77\u9114\u5ee1\u61ae\u5af5\u9a16\u9d61\u9da9\u993c\u9b29\u74bd\u89a1\u7864\u83a7\u859f\u861a\u5cf4\u736b\u5afb\u9df4\u7647\u8814\u79c8\u8e9a\u858c\u9909\u9a64\u7dd7\u9957\u5635\u701f\u9a4d\u7d83\u689f\u7c2b\u893b\u64f7\u7d32\u7e88\u9658\u6ece\u9948\u9d42\u8a61\u980a\u8afc\u9249\u93c7\u8b14\u6fa9\u9c48\u5864\u6f6f\u9c58\u57e1\u5a6d\u690f\u6c2c\u53b4\u8d17\u513c\u5157\u8b9e\u61e8\u9586\u91c5\u9b58\u995c\u9f34\u716c\u8efa\u9dc2\u9c29\u9768\u8b01\u9134\u66c4\u71c1\u8a52\u56c8\u5da7\u98f4\u61cc\u9a5b\u7e0a\u8efc\u8cbd\u91d4\u93b0\u943f\u761e\u8264\u92a6\u766e\u584b\u9daf\u7e08\u93a3\u6516\u56b6\u7005\u7020\u74d4\u9e1a\u766d\u9826\u7f4c\u93de\u8555\u92aa\u9b77\u50b4\u4fc1\u8adb\u8aed\u8577\u5d33\u98eb\u95be\u5ad7\u7d06\u89a6\u6b5f\u923a\u9d52\u9df8\u9f6c\u6ade\u9cf6\u9eff\u925e\u9106\u8553\u60f2\u614d\u7d1c\u97de\u6b9e\u6c33\u74da\u8db2\u93e8\u99d4\u8cfe\u5616\u5e58\u7c00\u8b56\u7e52\u8b6b\u8a54\u91d7\u8b2b\u8f12\u9dd3\u6e5e\u7e1d\u6968\u8eeb\u8cd1\u798e\u9d06\u8acd\u5d22\u9266\u931a\u7b8f\u9a2d\u6adb\u6894\u8ef9\u8f0a\u8d04\u9dd9\u8784\u7e36\u8e93\u8e91\u89f6\u937e\u7d02\u7e10\u4f47\u6ae7\u9296\u56c0\u994c\u9873\u9a05\u7e0b\u8ad1\u9432\u8aee\u7dc7\u8f1c\u8cb2\u7725\u9319\u9f5c\u9bd4\u50af\u8acf\u9a36\u9beb\u93c3\u7e98\u8ea6\u9c52\u8a01\u8b7e\u90e4\u731b\u6c39\u962a\u58df\u5816\u57b5\u588a\u6abe\u8552\u8464\u84e7\u8493\u83c7\u69c1\u6463\u54a4\u551a\u54e2\u565d\u5645\u6485\u5288\u8b14\u8946\u5db4\u810a\u4eff\u50e5\u7341\u9e85\u9918\u9937\u994a\u9962\u695e\u6035\u61cd\u723f\u6f35\u7069\u6df7\u6feb\u7026\u6de1\u5be7\u7cf8\u7d5d\u7dd4\u7449\u6898\u68ec\u6848\u6a70\u6aeb\u8ef2\u8ee4\u8ceb\u8181\u8156\u98c8\u7cca\u7146\u6e9c\u6e63\u6e3a\u78b8\u6efe\u7798\u9208\u9255\u92e3\u92b1\u92e5\u92f6\u9426\u9427\u9369\u9340\u9343\u9307\u9384\u9387\u93bf\u941d\u9465\u9479\u9454\u7a6d\u9d93\u9da5\u9e0c\u7667\u5c59\u7602\u81d2\u8947\u7e48\u802e\u986c\u87ce\u9eaf\u9b81\u9b83\u9b8e\u9bd7\u9bdd\u9bf4\u9c5d\u9bff\u9c20\u9c35\u9c45\u97bd\u97dd\u9f47";function jge(e){return umt.charAt(Wge.indexOf(e.charAt(0)))}var KVt=new RegExp("[\u4e00-\u9fa5]+");function Xge(e){return Wge.includes(e)}var Wr=class{static GetBytes(e){switch(typeof e){case"string":{let t=new Uint16Array(e.length);for(let i=0;i4294967295?((t=new Float64Array(1))[0]=e,new Uint8Array(t.buffer)):function(t){return t[0]=e,new Uint8Array(t.buffer)}(new Int32Array(1)):function(t){return t[0]=e,new Uint8Array(t.buffer)}(new Float64Array(1));case"boolean":return function(t){return t[0]=Number(e),t}(new Uint8Array(1));default:if(e instanceof Array){let t=[];for(let a=0;ae.length&&(i-=t);let n="";for(let r=0;re.length&&(i-=t);let n=new Uint8Array(i);for(let r=0;r1?(r.push(a.slice()),a=[]):n.set(0,0);break;case 3:l++,i/=t[l];break;case 4:l++,i*=t[l];break;case 5:if(4===s.length)throw"The position stack is only four locations deep";s.push(n);break;case 6:n=s.pop(),a.length>1&&(r.push(a.slice()),a=[]),o&&a.push(n.clone());break;case 7:{let s,o=0,h=i*e.baseUp,c=n.clone();switch(a.length>1&&(r.push(a.slice()),a=[]),e.fontType){case 0:l++,o=t[l];break;case 1:l++,o=t[l],0==o&&(l++,o=Wr.ToUInt16(new Uint8Array([t[l++],t[l++]]),0),c.x=t[l++]*i,c.y=t[l++]*i,h=t[l]*i);break;case 2:l+=2,o=Wr.ToUInt16(new Uint8Array([t[l-1],t[l]]),0)}0!==o&&(s=e.getGraphicDataByCodeWithOffset(o,h,c),s&&(r.push(...s.polylines.slice()),n=s.lastPoint.clone()))}break;case 8:{let e=new xe;e.x=Wr.byteTosbyte(t[++l]),e.y=Wr.byteTosbyte(t[++l]),n.add(e.multiplyScalar(i)),o&&a.push(n.clone())}break;case 9:for(;;){let e=new xe;if(e.x=Wr.byteTosbyte(t[++l]),e.y=Wr.byteTosbyte(t[++l]),0==e.x&&0==e.y)break;n.add(e.multiplyScalar(i)),o&&a.push(n.clone())}break;case 10:{let e=t[++l]*i,r=Wr.byteTosbyte(t[++l]),s=(112&r)>>4,h=7&r;0==h&&(h=8);let c=Math.PI/4,u=c*h,d=zf.CIRCLE_SPAN;r<0&&(d=-d,u=-u);let p=c*s,f=p+u,m=n.clone().sub(new xe(Math.cos(p)*e,Math.sin(p)*e));if(n=m.clone().add(new xe(Math.cos(f)*e,Math.sin(f)*e)),o){let t=p,i=!0;for(;i&&(t+=d,r>=0&&tf);)a.push(m.clone().add(new xe(e*Math.cos(t),e*Math.sin(t))));a.push(n.clone())}}break;case 11:{let e=t[++l],r=t[++l],s=(255*t[++l]+t[++l])*i,h=Wr.byteTosbyte(t[++l]),c=(112&h)>>4,u=7&h;0==u&&(u=8),0!=r&&u--;let d=Math.PI/4,p=d*u,f=zf.CIRCLE_SPAN,m=1;h<0&&(f=-f,p=-p,m=-1);let g=d*c,v=g+p;g+=d*e/256*m,v+=d*r/256*m;let y=n.clone().sub(new xe(s*Math.cos(g),s*Math.sin(g)));if(n=y.clone().add(new xe(s*Math.cos(v),s*Math.sin(v))),o){let e=g,t=!0;for(;t&&(e+=f,h>0&&ev);)a.push(y.clone().add(new xe(s*Math.cos(e),s*Math.sin(e))));a.push(n.clone())}}break;case 12:{let e=new xe;e.x=Wr.byteTosbyte(t[++l])*i,e.y=Wr.byteTosbyte(t[++l])*i;let r=Wr.byteTosbyte(t[++l]);r<-127&&(r=-127),o&&(0==r?a.push(n.clone().add(e)):a.push(zf.generateArcPoints(n,e,r/127))),n.add(e)}break;case 13:for(;;){let e=new xe;if(e.x=Wr.byteTosbyte(t[++l])*i,e.y=Wr.byteTosbyte(t[++l])*i,0==e.x&&0==e.y)break;let r=Wr.byteTosbyte(t[++l]);r<-127&&(r=-127),o&&(0==r?a.push(n.clone().add(e)):a.push(zf.generateArcPoints(n.clone(),e,r/127))),n.add(e)}break;case 14:l=zf.skipCode(e,t,++l);break;default:if(h>15){let e=(240&h)>>4,t=15&h,r=new xe;switch(t){case 0:r.x=1;break;case 1:r.x=1,r.y=.5;break;case 2:r.x=1,r.y=1;break;case 3:r.x=.5,r.y=1;break;case 4:r.y=1;break;case 5:r.x=-.5,r.y=1;break;case 6:r.x=-1,r.y=1;break;case 7:r.x=-1,r.y=.5;break;case 8:r.x=-1;break;case 9:r.x=-1,r.y=-.5;break;case 10:r.x=-1,r.y=-1;break;case 11:r.x=-.5,r.y=-1;break;case 12:r.y=-1;break;case 13:r.x=.5,r.y=-1;break;case 14:r.x=1,r.y=-1;break;case 15:r.x=1,r.y=-.5}n.add(r.multiplyScalar(e*i)),o&&a.push(n.clone())}}}return new ld(n,r)}static skipCode(e,t,i){switch(t[i]){case 0:case 1:case 2:case 5:case 6:case 14:default:break;case 3:case 4:i++;break;case 7:switch(e.fontType){case 0:i++;break;case 1:0==t[++i]&&(i+=6);break;case 2:i+=2}break;case 8:case 10:i+=2;break;case 9:for(;;){let e=t[++i],n=t[++i];if(0==e&&0==n)break}break;case 11:i+=5;break;case 12:i+=3;break;case 13:for(;;){let e=t[++i],n=t[++i];if(0==e&&0==n)break;t[++i]}}return i}static generateArcPoints(e,t,i){let n=e.clone().add(t),r=i<0;i=Math.abs(i);let a=t.length()/2,s=a*i,o=2*Math.atan(1/i),l=new xe(t.y,-t.x);l.normalize(),l.multiplyScalar(s);let h=Math.abs(a/Math.sin(o/2)),c=e.add(t.divideScalar(2));!1!==r?c.add(l):c.sub(l);let u=e.sub(c),d=n.sub(c),p=Math.atan2(u.y,u.x),f=Math.atan2(d.y,d.x),m=zf.CIRCLE_SPAN;r?(m=-m,pf&&(p-=2*Math.PI);let g=p;for(;;){if(g+=m,!r&&gf)return c.add(new xe(h*Math.cos(g),h*Math.sin(g)));break}return n}},Nc=zf;Nc.FILE_STOP_FLAG=["\r","\n","\x1a"],Nc.CIRCLE_SPAN=Math.PI/18;var Yge=new Ln,YC=class extends xy{constructor(e,t){if(super(e,t),this.isExtend=!1,this.isUniCode=!0,this.isEmbedded=!1,this.fontType=2,this.textShapesCache=new Map,this.graphicData=new Map,t instanceof ArrayBuffer){let e=new Df(t),i=Nc.parserHeader(e,Nc.FILE_STOP_FLAG).split(" ");switch(i[1]){case"shapes":this.parseShapeFont(e),this.fontType=0;break;case"bigfont":this.parseBigFont(e),this.fontType=1;break;case"unifont":this.parseUniFont(e),this.fontType=2}this.fileHeader=i[0],this.fileVersion=i[2]}else this.setFontFile(t)}generateShapes(e,t){let i=[],n=0;for(let r=0;rnew xe(e[0],e[1]))));n=new ld(new xe,t),this.graphicData.set(e,n)}if(this.graphicData.has(e)){let i=t/YC.DEFAULT_SIZE;Yge.identity().scale(i,i),n=this.graphicData.get(e).transform(Yge)}return n}getGraphicDataByCodeWithOffset(e,t,i){var n;return null==(n=this.getGraphicDataByCode(e,t))?void 0:n.offset(i)}parseBigFont(e){Wr.ToInt16(e.readBytes(2),0);let t=Wr.ToInt16(e.readBytes(2),0),i=Wr.ToInt16(e.readBytes(2),0);for(let o=0;o>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:t+=String.fromCharCode(n);break;case 12:case 13:r=e[i++],t+=String.fromCharCode((31&n)<<6|63&r);break;case 14:r=e[i++],a=e[i++],t+=String.fromCharCode((15&n)<<12|(63&r)<<6|(63&a)<<0)}return t}cd.DEFAULT_SIZE=12;var Ul=class{constructor(){this.fontMap=new Map,this.unsupportedChars={},this.missingFonts={},this.loader=new Kr}loadFonts(e){return ft(this,null,(function*(){if(e=Array.isArray(e)?e:[e],this.fileNames=e.map((e=>Ul.getFileName(e.toLowerCase()))),!(yield this.checkAllFontsLoaded(e))){for(let t=0;tft(this,null,(function*(){yield e.setFontDataToIndexedDb()})))),this.releaseFontData())}}))}getTextShape(e,t,i){if(0===this.fontMap.size)return void se.warn("[FontManager] no font loaded.");let n=this.fontMap.get(t.toLowerCase());return n||(n=this.fontMap.get(this.fontMap.keys().next().value),this.missingFonts[t]||(this.missingFonts[t]=0),this.missingFonts[t]++),null==n?void 0:n.generateShapes(e,i)}getCharShape(e,t,i){if(0===this.fontMap.size)return void se.warn("[FontManager] no font loaded.");null==t&&(t="");let n=this.fontMap.get(t.toLowerCase());if(!n){this.missingFonts[t]||(this.missingFonts[t]=0),this.missingFonts[t]++;for(let[t,r]of this.fontMap)if(r.getCharShape(e,i)){n=r;break}}let r=null==n?void 0:n.getCharShape(e,i);if(r){if(n instanceof cd)return r.toThreeGeometry();if(n instanceof Vf)return new AC(e,{font:n,height:0,size:i||12,curveSegments:3,bevelSegments:3})}}getNotFoundTextShape(e){let t,i;for(let[n,r]of this.fontMap){let n=r.getNotFoundTextShape(e);if(n){t=n,i=r;break}}return i instanceof cd?t.toThreeGeometry():i instanceof Vf?new Qs(t.toShapes(!1),{curveSegments:3,bevelSegments:3}):void 0}checkAllFontsLoaded(e){return ft(this,null,(function*(){if(!Fn.isBrowser)return!1;let t=!1;for(let i=0;ie.order-t.order));for(let t=0;t{Object.assign(this.unsupportedChars,e.unsupportedChars)})),this.unsupportedChars}releaseFontData(){this.fontMap.forEach((e=>{e.releaseFontData()})),this.fontMap.clear()}destroy(){this.releaseFontData(),this.fontMap.clear()}static isShxFile(e){return"shx"===Ul.getExtension(e)}static isTtfFile(e){return["WOFF","OTF","TTF"].includes(Ul.getExtension(e).toUpperCase())}static isJsonFile(e){return"json"===Ul.getExtension(e)}static getFileName(e){let t=e.lastIndexOf("/");return e.substring(t+1)}static getExtension(e){return e.substring(e.lastIndexOf(".")+1)}},ud=Ul;ud.enableFontCache=!0;var Bc=new D(1,0,0),w6=new D(0,1,0),Sy=new D(0,0,1),$ge=new D(0,0,0),Wf=16777215,fmt="CONTINUOUS",$C=new bi({color:Wf}),ya=new Gn({color:Wf}),My=new ln({color:Wf}),Zge=(new Dt).setFromPoints([new D]),Kge=new et,Gf=new et,js=new et,Zn=new D,_i=new D,Ry=new D,u_=new xe,xo=new dr,ZC=new on,qf=new Nt,Jge=new bi({color:65280,size:5,depthTest:!1}),Qge=new bi({color:65280,depthTest:!1}),e0e=new bi({color:65280,depthTest:!1}),pmt=e=>void 0!==e.viewDirectionFromTarget,mmt=e=>{if(e){let t=e.match(/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/);if(t&&t.length>0){let i=t[1],n=e.replace("data:"+i+";","").split(",");if(n&&2===n.length&&"base64"===n[0]){let e=n[1];return Vpe.decode(e)}}}return null},t0e=(e,t)=>{let i=new xe(e.x,e.y),n=new xe(t.x,t.y);return n.sub(i),n.normalize(),n.y<0?-Math.acos(n.x):Math.acos(n.x)},n0e=(e,t,i)=>({x:e.x+t*Math.cos(i),y:e.y+t*Math.sin(i)}),gmt=(e,t,i,n)=>{let r=e?new xe(e.x,e.y):new xe(0,0),a=t?new xe(t.x,t.y):new xe(1,0);i=i||1;let s=4*Math.atan(i),o=r.distanceTo(a)/2/Math.sin(s/2),l=n0e(e,o,t0e(r,a)+(Math.PI/2-s/2));n=n||Math.max(Math.abs(Math.ceil(s/(Math.PI/18))),6);let h=t0e(l,r),c=s/n,u=[];u.push(new D(r.x,r.y,0));for(let d=1;d<=n-1;d++){let e=n0e(l,Math.abs(o),h+c*d);u.push(new D(e.x,e.y,0))}return u},vmt=(e,t,i,n=2*e.length,r)=>{let a=[],s=e.map((e=>[e.x,e.y]));for(let o=0;o<1;o+=1/n){let e=q5(o,t,s,i,r);a.push(new D(e[0],e[1],0))}return a},S6=(e,t=!1)=>{let i=[],n=e.length;for(let r=0;r{let t=[];return e.faceA&&t.push(e.faceA),e.faceB&&t.push(e.faceB),e.faceC&&t.push(e.faceC),e.faceD&&t.push(e.faceD),t},xmt=e=>{let t=[],i=[];e.forEach((e=>{e.polyfaceMeshVertex&&(e.threeDPolylineMesh?t.push(new D(e.x,e.y,e.z)):i.push(ymt(e)))}));let n=[];for(let r=0;r=t.length||n<0){s=!1;break}a.push(t[n])}!s||0===a.length||(a.push(a[0]),n.push(a))}return n},Kn=class extends Er{constructor(e,t){super(e),this.timer=Date.now(),this.ignorePaperSpace=!1,this.encoding="UTF-8",this.angBase=0,this.angDir=0,this.header=void 0,this.pointsMaterials={},this.lineBasicMaterials={},this.lineShaderMaterials={},this.meshBasicMaterials={},this.meshTextureMaterials={},this.hatchShaderMaterials=[],this.entityCount=0,this.curveCount=0,this.averageCurveSize=0,this.enableRenderOrder=!1,this.enableLocalCache=!0,this.enableReleaseData=!0,this.enableMerge=!0,this.enableRTC=!0,this.enablePlineWidth=!0,this.dxfDataId=void 0,this.compareContext=void 0,this.statsInfo={unsupportedEntity:{},unsupportedEntityTypes:{},unsupportedTextStyles:{},unsupportedHatchPatterns:{},unsupportedPolylineCount:0,invisibleEntities:{},ignoredFrozenLayersAndEntityCount:{},ignoredInserts:{},entityTypesAndMeshCount:{},ignoredPaperSpaceEntityTypesAndCount:{},rebasedEntityCount:0},this.blockReferencesCache={},this.blockRecordsCache=void 0,this.entitiesCache=void 0,this.blocksCache=void 0,this.dictionaryOwnerHandleAndSpatialFilterHandlesCache=void 0,this.spatialFiltersCache=void 0,this.entityThreejsCache=void 0,this.entityTypesAndTimes=void 0,this.nonSnapableTypes=new Set(["ATTDEF","ATTRIB","LEADER","MTEXT","MULTILEADER","OLE2FRAME","TEXT"]),this.layoutsSnapObjectsMap={},this.entityHandlesWithRenderOrder={},this.addViewport=(e,t)=>{if("VIEWPORT"===e.type){t[e.ownerHandle]||(t[e.ownerHandle]=[]);let i=e;t[e.ownerHandle].push(i)}},Kn.abortJobs=!1,t&&(this.ignorePaperSpace=!0===t.ignorePaperSpace,this.enableLocalCache=!1!==t.enableLocalCache,this.enableMerge=!1!==t.enableMerge,this.encoding=t.encoding||"UTF-8",null!=t.overrideColor&&(this.overrideColor=An.rgb2Hex(t.overrideColor))),this.pointsMaterials[Wf]=$C,this.lineBasicMaterials[Wf]=ya,this.meshBasicMaterials[Wf]=My}setFont(e){this.font=e}download(e,t){return ft(this,null,(function*(){let i=mmt(e);if(!i){let n=Date.now(),r=new Kr(this.manager);r.setResponseType("arraybuffer"),r.setPath(this.path),i=yield r.loadAsync(e,t),se.info(`[DxfLoader] ${e} dxf file downloaded in ${(Date.now()-n)/1e3}s`)}return i}))}load(e,t,i){return ft(this,null,(function*(){return this.enableLocalCache&&t&&(t=t.trim()).length>0&&(this.dxfDataId=t),this.loadAsync(e,i)}))}loadAsync(e,t){return ft(this,null,(function*(){let i=St.getUpdateSubProgressFunc(0,50,t),n=St.getUpdateSubProgressFunc(50,100,t),r=St.getUpdateSubProgressFunc(10,100,t);if(Fn.isBrowser&&this.enableLocalCache&&this.dxfDataId){let t;try{if(this.timer=Date.now(),t=yield this.getDxfDataFromIndexedDb(this.dxfDataId),t){this.tryFixDxfData(t),se.info(`[DxfLoader] Loaded DxfData from indexedDb in ${(Date.now()-this.timer)/1e3}s`);let e=yield this.loadEntities(t,r);return Promise.resolve(e)}}catch(e){se.warn("[DxfLoader] Failed to parse data from indexedDb",e)}}let a=yield this.parse(e,i);return this.tryFixDxfData(a),yield this.loadEntities(a,n)}))}parse(e,t){return ft(this,null,(function*(){let i=St.getUpdateProgressFunc(t),n=St.getUpdateSubProgressFunc(0,40,t),r=yield this.download(e,n);if(!r)return Promise.reject(`[DxfLoader] Failed to download ${e}`);if(Kn.abortJobs)return Promise.reject("[DxfLoader] Job aborted");this.timer=Date.now(),se.info("[DxfLoader] Start parsing...");let a=new Zm(this.encoding).parseSync(r);if(this.tryFixDxfData(a),i(80),se.info(`[DxfLoader] Parsed in ${(Date.now()-this.timer)/1e3}s, creating entities...`),Kn.abortJobs)return Promise.reject("[DxfLoader] Job aborted");if(a&&Fn.isBrowser&&this.enableLocalCache&&this.dxfDataId){let t=Date.now();try{yield this.setDxfDataToIndexedDb(this.dxfDataId,a),se.info(`[DxfLoader] Saved to indexedDb in ${(Date.now()-t)/1e3}s`)}catch(e){se.warn(`[DxfLoader] Failed to save '${this.dxfDataId}' to indexedDb!`,e)}}return i(100),a}))}parseHeader(e){if(!e)return void se.error("[DxfLoader]: Invalid header!");this.header=e;let t=e.$ACADVER.toString();"AC1032"!==t&&se.warn(`[DxfLoader] Unexpected version: ${t}. But we'll try to continue.`),this.angBase=e.$ANGBASE||0,this.angDir=e.$ANGDIR||0}tryFixDxfData(e){e&&(e.objects||(se.warn("[DxfLoader] No objects found, Will add one."),e.objects={}),e.objects.LAYOUT||(se.warn("[DxfLoader] No layout defined! Will add a default 'Model' layout!"),e.objects.LAYOUT=[{layoutName:Kn.MODEL_LAYOUT_NAME}]),e.tables||(se.warn("[DxfLoader] No tables found, Will add one."),e.tables={}),e.tables.layer||(e.tables.layer={}),e.tables.layer.layers||(e.tables.layer.layers={}))}loadEntities(e,t){return ft(this,null,(function*(){let i=Date.now();this.parseHeader(e.header),this.enableRenderOrder&&(this.initRenderOrderInfo(e),this.enableMerge=!1),this.getFontFilesFromDxf(e);let n=0,r=e.entities.length;this.entityCount=r,Object.keys(e.blocks).forEach((t=>{var i;this.entityCount+=(null==(i=e.blocks[t].entities)?void 0:i.length)||0}));let a=St.getUpdateProgressFuncForLoop(r,t),s={},o=e=>{let t=e.userData.layerName,i=s[t];i||(i=[],s[t]=i),i.push(e)},l={},h={},c=new bn;for(let t=0;te.name===s));if(u||(u=new bn,u.name=s,u.userData.isLayoutLevelObject=!0,c.add(u)),r.traverse((e=>{e.userData.isSnapObject&&(this.layoutsSnapObjectsMap[s]||(this.layoutsSnapObjectsMap[s]=[]),this.layoutsSnapObjectsMap[s].push(e))})),this.enableMerge){Ic.merge(r,!1),h[s]||(h[s]={object:u,layerObjects:{}});let e=h[s];if(r.geometry){let t=r.userData.layerName;e.layerObjects[t]||(e.layerObjects[t]=[]),e.layerObjects[t].push(r),r.children.forEach((e=>{e.userData.isSnapObject&&o(e)}))}else r.children.length>0&&(u.add(r),r.traverse((e=>{e.geometry&&o(e)})))}else u.add(r),r.traverse((e=>{e.geometry&&o(e)}));n++,yield a(t)}e.objects.LAYOUT.forEach((t=>{let i=t,n=i.layoutName;if(this.ignorePaperSpace&&n!==Kn.MODEL_LAYOUT_NAME)return;let r=i.associatedBlockName,a=e.blocks[r];a&&this.drawLayout(a,e,i,c,s,l)})),se.debug(`[DxfLoader] Drew entities in ${(Date.now()-i)/1e3}s`);for(let t in this.layoutsSnapObjectsMap){let i=c.children.find((e=>e.name===t)),n=new bn;n.name=Kn.SNAP_GROUP_NAME,n.userData.isSnapGroup=!0,i.add(n);let r=this.layoutsSnapObjectsMap[t];for(let t=0;t=100&&(e=new Set(s));let t=t=>Array.isArray(e)?e.indexOf(t)>=0:e.has(t);for(let r=0,a=n.length;r{let t=e;d[t.layoutName]=t}));let p={};u.children.forEach((t=>{if(Hn.setSharedVariablesOfObject(t),!t.userData.isLayoutLevelObject)return;let i,n=t.name;if(n!==Kn.MODEL_LAYOUT_NAME){let e=d[n];e.directAssociatedLeafObjectSet||(e.directAssociatedLeafObjectSet=new Set),i=e.directAssociatedLeafObjectSet}t.traverse((t=>{if(Hn.setSharedVariablesOfObject(t),t.userData.isSnapGroup&&(t.visible=Kn.SHOW_SNAP_OBJECT),t.geometry){let n=t.userData.layerName;!1===this.getLayerVisible(e,n)&&(t.visible=!1,t.userData.layerVisible=!1),(e=>{let t=e.userData.layerName,i=p[t];i||(i=[],p[t]=i),i.push(e)})(t),i&&i.add(t)}}))})),se.info(`[DxfLoader] loadEntities() done in ${(Date.now()-i)/1e3}s`);let f=Ii(Tr({},e),{threejsObject:u,layersAndThreejsObjects:p,loadedEntityCount:n,layoutViewportsMap:l});return Promise.resolve(f)}))}getFontFilesFromDxf(e){let t=new Set;if(e.tables.style.styles){let i=e.tables.style.styles;for(let e in i){let n=i[e],r=n.fontFile,a=n.bigFontFile;r&&t.add(r),a&&t.add(a)}}se.info(`[DxfLoader] These are fonts used by dxf: ${Array.from(t).join()}`)}loadEntitiesForCompare(e,t,i,n=!0,r){return ft(this,null,(function*(){let a=e.entities.length,s=t.entities.length,o=()=>ft(this,null,(function*(){var o;let l=this.compareContext,h=l.isTheFirstFile,c=h?e:t,u=new bn,d=h?a:s,p=c.entities.length;this.entityCount=p,Object.keys(c.blocks).forEach((e=>{var t;this.entityCount+=(null==(t=c.blocks[e].entities)?void 0:t.length)||0}));let f=Math.round(Math.pow(d,.5)),m=Date.now(),g=e=>ft(this,null,(function*(){if(r&&(e%f==0||e===d-1)){let t=e+1;h||(t+=a),r(new ProgressEvent("parseProgress",{loaded:t,total:a+s}));let i=500,n=Date.now();(n-m>i||e===d-1)&&(yield St.sleep(0),m=n)}}));this.parseHeader(c.header);let v={};for(let e=0;ee.name===Kn.MODEL_LAYOUT_NAME));r||(r=new bn,r.name=Kn.MODEL_LAYOUT_NAME,r.userData.isLayoutLevelObject=!0,u.add(r)),r.add(n),n.traverse((e=>{if(e.geometry){let t=e.userData.layerName,r=this.getLayerVisible(c,t);e.userData.isSnapObject&&(this.layoutsSnapObjectsMap[i.layoutName]||(this.layoutsSnapObjectsMap[i.layoutName]=[]),this.layoutsSnapObjectsMap[i.layoutName].push(e),!1===r&&n.layers.disable(11));let a=v[t];a||(a=[],v[t]=a),a.push(e)}})),yield g(e)}n&&h&&(l.preservedHandles||(l.preservedHandles=new Set));for(let e in i){let t=i[e];h&&("Added"===t.type||"Modified"===t.type)&&(null==(o=l.preservedHandles)||o.add(t.handle),t.parentHandles&&t.parentHandles.forEach((e=>{var t;return null==(t=l.preservedHandles)?void 0:t.add(e)})));let n=this.entityThreejsCache&&this.entityThreejsCache[t.handle];if(t.parentHandles&&(n=this.entityThreejsCache&&this.entityThreejsCache[t.parentHandles[t.parentHandles.length-1]]),n){if(n.parent&&n.parent.userData.originalType){this.setObjectColorByChange(n,{type:"NoChange"});continue}n=this.setObjectColorByChange(n,t)}if("NoChange"!==t.type&&n){let e=n.parent,i=js.identity();for(;e&&!0!==e.userData.isLayoutLevelObject;)i.premultiply(e.matrix),e=e.parent;qf.makeEmpty();let r=bn.getBox(n,qf);r.applyMatrix4(i),"Added"===t.type?!h&&(t.box=(new Nt).copy(r)):"Removed"===t.type?h&&(t.box=(new Nt).copy(r)):"Modified"===t.type&&(t.box?t.box.union(r):t.box=(new Nt).copy(r))}}for(let e in this.layoutsSnapObjectsMap){let t=u.children.find((t=>t.name===e)),i=new bn;i.name=Kn.SNAP_GROUP_NAME,t.add(i);let n=this.layoutsSnapObjectsMap[e];for(let e=0;e{Hn.setSharedVariablesOfObject(e),e.userData.isLayoutLevelObject&&e.traverse((e=>{if(Hn.setSharedVariablesOfObject(e),e.userData.isSnapGroup&&(e.visible=Kn.SHOW_SNAP_OBJECT),e.geometry){let t=e.userData.layerName;!1===this.getLayerVisible(c,t)&&(e.visible=!1,e.userData.layerVisible=!1),(e=>{let t=e.userData.layerName,i=x[t];i||(i=[],x[t]=i),i.push(e)})(e)}}))}));let b=c;b.threejsObject=y,b.layersAndThreejsObjects=x,b.layoutViewportsMap={}})),l=Date.now();this.compareContext={changes:i,isTheFirstFile:!0},St.printMemory("Before loading entities for first dxf"),yield o(),se.info(`[DxfLoader] loadEntities for first dxf in ${(Date.now()-l)/1e3}s`),St.printMemory("After loading entities for first dxf"),this.releaseCachedData(!1),this.releaseDxfData(e),St.printMemory("Before loading entities for second dxf"),l=Date.now(),this.compareContext.isTheFirstFile=!1,yield o(),se.info(`[DxfLoader] loadEntities for second dxf in ${(Date.now()-l)/1e3}s`),this.printStatsInfo();for(let e of Object.values(i))e.box||delete i[e.id];this.compareContext.preservedHandles=void 0,this.enableReleaseData&&(this.releaseCachedData(),this.releaseDxfData(t)),St.printMemory("After loading entities for second dxf")}))}setObjectColorByChange(e,t){let i=(e,t)=>{e.traverse((e=>{if(e.material)if(e.material instanceof Gn)e.material=this.getLineBasicMaterial(t);else if(e.material instanceof ln)e.material=this.getMeshBasicMaterial(t);else if(e.material instanceof bi)e.material=this.getPointsMaterial(t);else if(e.material instanceof cn){let i=e.material.clone();Kn.updateMaterialUniforms(i),i.uniforms.u_color.value.set(t),e.material=i}}))},n=(e=>{var t;let i=ls.ENTITY_COLOR_NO_CHANGE;return"Added"===e.type?i=ls.ENTITY_COLOR_ADDED:"Removed"===e.type?i=ls.ENTITY_COLOR_REMOVED:"Modified"===e.type&&(i=null!=(t=this.compareContext)&&t.isTheFirstFile?ls.ENTITY_COLOR_REMOVED:ls.ENTITY_COLOR_ADDED),i})(t);return e.traverse((r=>{t.parentHandles?r.userData&&r.userData.handle&&r.userData.handle===t.handle&&(i(r,n),e=r):i(r,n)})),e}releaseCachedData(e=!0){e&&(this.pointsMaterials={},this.lineBasicMaterials={},this.lineShaderMaterials={},this.meshBasicMaterials={},this.meshTextureMaterials={},this.hatchShaderMaterials=[]),this.header=void 0,this.blockReferencesCache={},this.blockRecordsCache=void 0,this.blocksCache=void 0,this.entitiesCache=void 0,this.dictionaryOwnerHandleAndSpatialFilterHandlesCache=void 0,this.spatialFiltersCache=void 0,this.entityThreejsCache=void 0,this.entityTypesAndTimes=void 0,this.entityHandlesWithRenderOrder={},this.layoutsSnapObjectsMap={},this.statsInfo={unsupportedEntity:{},unsupportedEntityTypes:{},unsupportedTextStyles:{},unsupportedHatchPatterns:{},unsupportedPolylineCount:0,invisibleEntities:{},ignoredFrozenLayersAndEntityCount:{},ignoredInserts:{},entityTypesAndMeshCount:{},ignoredPaperSpaceEntityTypesAndCount:{},rebasedEntityCount:0}}releaseEntity(e){e.vertices&&(e.vertices=void 0),e.knotValues&&(e.knotValues=void 0),e.controlPoints&&(e.controlPoints=void 0),e.binaryData&&(e.binaryData=void 0),e.text&&(e.text=void 0),e.extendedData&&(e.extendedData=void 0),e.contextData&&(e.contextData=void 0);let t=e;t.boundaryPaths&&(t.boundaryPaths=[]),t.patternLines&&(t.patternLines=void 0)}releaseDxfData(e){delete e.objects.DICTIONARY,delete e.objects.SORTENTSTABLE,delete e.objects.XRECORD,e.tables&&(delete e.tables.dimStyle,delete e.tables.lineType,delete e.tables.style,delete e.tables.blockRecord),e.entities=[],e.blocks={}}drawEntity(e,t,i,n=!1){if(this.compareContext&&this.compareContext.preservedHandles&&this.compareContext.preservedHandles.has(e.handle)&&Xm.includes(e.type)&&(n=!0),!n&&this.compareContext&&this.compareContext.preservedHandles&&!Xm.includes(e.type)&&!this.compareContext.preservedHandles.has(e.handle)&&(!i||i&&!this.compareContext.preservedHandles.has(i.handle)))return;if(!0===this.getLayerFrozen(t,e)){let t=e.layer;return this.statsInfo.ignoredFrozenLayersAndEntityCount[t]||(this.statsInfo.ignoredFrozenLayersAndEntityCount[t]=0),void this.statsInfo.ignoredFrozenLayersAndEntityCount[t]++}if(!1===e.visible||e.invisible)return this.statsInfo.invisibleEntities[e.type]||(this.statsInfo.invisibleEntities[e.type]=0),void this.statsInfo.invisibleEntities[e.type]++;if(this.ignorePaperSpace&&e.inPaperSpace)return this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]||(this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]=0),void this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]++;this.entityThreejsCache||(this.entityThreejsCache={});let r,a=Date.now(),s=!1;if(!this.compareContext&&this.entityThreejsCache[e.handle])r=this.entityThreejsCache[e.handle].clone(),s=!0;else if(!this.statsInfo.unsupportedEntity[e.handle]){if("CIRCLE"===e.type||"ARC"===e.type)r=this.drawArc(e,t,i);else if("LINE"===e.type||"POLYLINE"===e.type)r=this.drawLine(e);else if("XLINE"===e.type)r=this.drawXLine(e);else if("SEQEND"!==e.type)if("RAY"===e.type)r=this.drawRay(e);else if("LWPOLYLINE"===e.type)r=this.drawLWPolyline(e,t,i);else if("3DFACE"===e.type)r=this.draw3DFace(e);else if("TEXT"===e.type)r=this.drawText(e,t,i);else if("SOLID"===e.type)r=this.drawSolid(e,t,i);else if("POINT"===e.type)r=this.drawPoint(e,t,i);else if("IMAGE"===e.type)r=this.drawImage(e,t,i);else if("INSERT"===e.type)r=this.drawInsert(e,t,n);else if("SPLINE"===e.type)r=this.drawSpline(e,i);else if("MTEXT"===e.type)r=this.drawMText(e,t,i);else if("ELLIPSE"===e.type)r=this.drawEllipse(e,t,i);else if("DIMENSION"===e.type)r=this.drawDimension(e,t);else if("REGION"!==e.type)if("ATTDEF"===e.type)r=this.drawAttDef(e,t,i);else if("ATTRIB"===e.type){if(!i)for(let n=0;n{r.geometry&&(r.userData.layerName=n,this.setMaterial(r,e,t,i))})),s||(this.nonSnapableTypes.has(e.type)&&r.traverse((e=>{e.layers.disable(11)})),this.enableRenderOrder&&(this.entityHandlesWithRenderOrder[e.handle]?r.renderOrder=parseInt(this.entityHandlesWithRenderOrder[e.handle],16)+.1:r.renderOrder=parseInt(e.handle,16)))}return Xm.includes(e.type)||(this.entityTypesAndTimes||(this.entityTypesAndTimes={}),this.entityTypesAndTimes[e.type]||(this.entityTypesAndTimes[e.type]={createCount:0,totalTime:0,averageTime:0}),this.entityTypesAndTimes[e.type].createCount++,this.entityTypesAndTimes[e.type].totalTime+=Date.now()-a),r?this.statsInfo.entityTypesAndMeshCount[e.type]?this.statsInfo.entityTypesAndMeshCount[e.type]++:this.statsInfo.entityTypesAndMeshCount[e.type]=1:(this.statsInfo.unsupportedEntityTypes[e.type]?this.statsInfo.unsupportedEntityTypes[e.type]++:this.statsInfo.unsupportedEntityTypes[e.type]=1,Xm.includes(e.type)||(this.statsInfo.unsupportedEntity[e.handle]?this.statsInfo.unsupportedEntity[e.handle]++:this.statsInfo.unsupportedEntity[e.handle]=1)),r}drawEllipse(e,t,i){if(!e.majorAxisEndPoint||!e.center||void 0===e.axisRatio||void 0===e.startAngle||void 0===e.endAngle)return;let n=e.startAngle,r=e.endAngle;if(e.extrusionDirection&&e.extrusionDirection.z<0&&(n=2*Math.PI-e.endAngle,r=2*Math.PI-e.startAngle),Zt.areNumbersEqual(n,r,1e-5))return void se.warn("[DxfLoader] Ellipse entity (handle '%s') contains the same start and end angle, ignored!",e.handle);let a=r-n;for(;a>2*Math.PI;)a-=2*Math.PI;Math.abs(a)<=1e-5&&(r=Zt.floorNumber(n+2*Math.PI,5));let s=Math.sqrt(Math.pow(e.majorAxisEndPoint.x,2)+Math.pow(e.majorAxisEndPoint.y,2)),o=s*e.axisRatio,l=Math.atan2(e.majorAxisEndPoint.y,e.majorAxisEndPoint.x),h=new Kh(e.center.x,e.center.y,s,o,n,r,!1,l),c=1,u=i;null!=u&&u.xScale&&null!=u&&u.yScale&&(c=Math.max(Math.abs(u.xScale),Math.abs(u.yScale)));let d=this.getDivision(n,r,Math.max(s,o)*c),p=h.getPoints(d),f=[],m=p.length;for(let _=0;_{e.geometry&&e.geometry.translate(c,u,0),e.layers.enableAll()}));let d=0;if(e.rotation&&(d=e.rotation*Math.PI/180),e.directionVector){let t=e.directionVector,i=new D(t.x,t.y,t.z),n=i.clone().cross(Bc),r=Bc.angleTo(i);d=n.z>0?-r:r}Qt.shouldRebasePositionOnRTC(_i)&&this.setRTCUserData(s),s.matrix.compose(_i,xo,Ry);let p=e.position?_i.clone().sub(e.position):_i;return Gf.makeTranslation(-p.x,-p.y,0),js.makeRotationZ(d),s.matrix.multiply(Gf),s.matrix.multiply(js),s.matrix.multiply(Gf.invert()),s}getMTextGroup(e,t,i,n,r,a=0,s=0,o=[]){var l,h,c,u;if(0===e.length)return;let d=t.height||t.contextData&&t.contextData.textHeight||0;if(t.textStyle){if(i&&i.fontFile&&i.fontFile.endsWith(".shx")){let e=`${i.fontFile}_${i.styleName}`;this.statsInfo.unsupportedTextStyles[e]||(this.statsInfo.unsupportedTextStyles[e]=0),this.statsInfo.unsupportedTextStyles[e]++}d=d||i.textHeight}let p=t.lineSpaceFactor||1,f="Left";t.width&&t.attachmentPoint&&([1,4,7].includes(t.attachmentPoint)?f="Left":[2,5,8].includes(t.attachmentPoint)?f="Center":[3,6,9].includes(t.attachmentPoint)&&(f="Right"));let m,g=t.width||0,v=new bn,y=i.fontFile,x=1,b=1,_=256,w=p*d*.3,S=w+d;for(let M=0;M{let t;if(e.forEach(((e,i)=>{e.boundingBox||e.computeBoundingBox(),0===i?t=e.boundingBox:t.union(e.boundingBox)})),t){let i=t.getSize(Zn);switch(f){case"Left":default:break;case"Center":e.forEach((e=>e.translate((g-i.x)/2,0,0)));break;case"Right":e.forEach((e=>e.translate(g-i.x,0,0)))}}M.push(...e)};for(let t=0;t(g||1/0))a=0,s-=S,o.length>0&&T(o),o=[];else{e.boundingBox||e.computeBoundingBox();let t=e.boundingBox.getSize(Zn).x;" "===n&&(t=d/2),a+=t+b*(d/6),o.push(e)}else a+=d+b*(d/6);else a=0,s-=S,o.length>0&&T(o),o=[]}o.length>0&&(T(o),o=[]);let A=new bn;if(M.length>0){m||(m=t.colorIndex),void 0!==_&&256!==_?(t.color=Ym(_),t.colorIndex=_):t.colorIndex=m;let e=this.getColor(t,n,r),i=M.filter((e=>e instanceof Qs)),a=M.filter((e=>!(e instanceof Qs)));if(i.length>0){let t=new bn(4);t.geometry=Ui(i),t.material=this.getMeshBasicMaterial(e),A.add(t)}if(a.length>0){let t=new bn(3);t.geometry=Ui(a),t.material=this.getLineBasicMaterial(e),A.add(t)}}A.matrix.makeTranslation(0,-d,0),v.add(A),x=1,b=1,_=256,p=t.lineSpaceFactor||1}else if(Array.isArray(E)){let e=this.getMTextGroup(E,t,i,n,r,a,s,o);e&&(v.add(e.object),a=e.hOffset,s=e.vOffset)}else"object"==typeof E&&(E.f&&(y=E.f,y&&y.includes(".shx")&&se.info(`[DxfLoader] Doesn't support custom fonts: ${y}`)),E.C&&(_=E.C),E.W&&(x="x"===E.W[1]?E.W[0]*t.width:E.W[0]),E.H&&(d="x"===E.H[1]?E.H[0]*t.height:E.H[0]),E.T&&(b=E.T))}return 0!==v.children.length?(Ic.merge(v,!1),m&&(t.colorIndex=m),1===v.children.length?{object:v.children[0],hOffset:a,vOffset:s}:{object:v,hOffset:a,vOffset:s}):void 0}mtextContentAndFormattingToTextAndStyle(e,t){let i={horizontalAlignment:"",textHeight:t.height||t.contextData&&t.contextData.textHeight},n={},r=1,a=[];for(let s=0;s{a.push(e)})),r=e.lineLength}else if("object"==typeof o)if(o.S&&3===o.S.length){let e=o.S[0]+"/"+o.S[2],t=this.getTextLineNum(e);a.push({text:o.S[0]+"/"+o.S[2],lineNum:r}),r+=t}else void 0!==o.C?n.C=o.C:void 0!==o.W?n.W=o.W:void 0!==o.H?n.H=o.H:void 0!==o.f&&(n.f=o.f)}return{text:a,lineLength:r,style:i}}getTextLineNum(e){let t=e.match(new RegExp("\\n","g"));return t?t.length:0}draw3DFace(e){if(!e.vertices||0===e.vertices.length)return void se.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=e.vertices.map((e=>new D(e.x,e.y,e.z)));if(0===t.length)return;Zt.areVector3sEqual(t[0],t[t.length-1])||t.push(t[0]);let i=new D,n=!1;this.enableRTC&&(n=Qt.checkAndRebasePositionsOnRTC(t,i));let r=(new Dt).setFromPoints(t),a=new bn(2);return a.geometry=r,a.material=ya,n&&(this.setRTCUserData(a),a.matrix.setPosition(i.x,i.y,0)),a.layers.enableAll(),a}drawSpline(e,t){if(!e.controlPoints||!e.degreeOfSplineCurve||!e.knotValues)return;let i=1/0,n=1/0,r=-1/0,a=-1/0;for(let g of e.controlPoints)g.xr&&(r=g.x),g.y>a&&(a=g.y);let s=1,o=t;null!=o&&o.xScale&&null!=o&&o.yScale&&(s=Math.max(Math.abs(o.xScale),Math.abs(o.yScale)));let l=Math.max(r-i,a-n),h=this.getBSplineInterpolationsPerSplineSegment(e.controlPoints.length,l*s),c=vmt(e.controlPoints,e.degreeOfSplineCurve,e.knotValues,h),u=new D,d=!1;this.enableRTC&&(d=Qt.checkAndRebasePositionsOnRTC(c,u));let p=Qt.getAdjacentNonRepeatPoints(c);if(p.length<2)return void se.warn("[DxfLoader] Spline entity (handle '%s') contains less than 2 points, ignored!",e.handle);let f=(new Dt).setFromPoints(p),m=new bn(2);return m.geometry=f,m.material=ya,d&&(this.setRTCUserData(m),m.matrix.setPosition(u.x,u.y,0)),m.layers.enableAll(),m}drawXLine(e){if(!e.vertices||0===e.vertices.length)return void se.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=St.arrayOrObjectToVector3(e.directionVector),i=new D(e.vertices[0].x,e.vertices[0].y,0),n=[];if(n.push(t.clone().multiplyScalar(-1e6).add(i)),n.push(t.clone().multiplyScalar(1e6).add(i)),0===n.length)return;let r=new D,a=!1;this.enableRTC&&(a=Qt.checkAndRebasePositionsOnRTC(n,r));let s=(new Dt).setFromPoints(n),o=new bn(2);return o.geometry=s,o.material=ya,a&&(this.setRTCUserData(o),o.matrix.setPosition(r.x,r.y,0)),o.layers.enableAll(),o}drawRay(e){if(!e.vertices||0===e.vertices.length)return void se.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=St.arrayOrObjectToVector3(e.directionVector),i=e.vertices.map((e=>new D(e.x,e.y,0)));if(i.push(t.multiplyScalar(1e6).add(i[0])),0===i.length)return;let n=new D,r=!1;this.enableRTC&&(r=Qt.checkAndRebasePositionsOnRTC(i,n));let a=(new Dt).setFromPoints(i),s=new bn(2);return s.geometry=a,s.material=ya,r&&(this.setRTCUserData(s),s.matrix.setPosition(n.x,n.y,0)),s.layers.enableAll(),s}drawLine(e){if(!e.vertices||0===e.vertices.length)return void se.warn("[DxfLoader] Entity is missing vertices:",e.handle);let t=[];if(e.isPolyfaceMesh)t=xmt(e.vertices);else{let i=S6(e.vertices,e.shape);e.shape&&i.length>0&&i.push(i[0]),i.length>0&&(t=[i])}if(0===t.length)return;let i=[];for(let s=0;s0){if(this.enableRTC){let e=0;t.forEach((t=>{t.forEach((t=>{r.add(t),e++}))})),r.divideScalar(e),a=Qt.shouldRebasePositionOnRTC(r)}let e=[],i=[],s=0,o=0,l=0,h=0;t.forEach((t=>{for(let n=0;n0&&i.push(s+n-1,s+n);s=t.length}));let c=(new Dt).setFromPoints(e);c.setIndex(i),n=new bn(3),n.geometry=c,n.material=ya}if(i.length>0){this.enableRTC&&(a=Qt.checkAndRebasePositionsOnRTC(i,r));let e=(new Dt).setFromPoints(i);n=new bn(1),n.geometry=e,n.material=$C}return n?(a&&(this.setRTCUserData(n),n.matrix.setPosition(r.x,r.y,0)),n.layers.enableAll(),n):void 0}drawLWPolyline(e,t,i){var n,r,a;if(!e.vertices||e.vertices.length<2)return void se.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle);let s=e;if(void 0!==s.extrusionDirectionX&&void 0!==s.extrusionDirectionY&&void 0!==s.extrusionDirectionZ){Zn.set(s.extrusionDirectionX,s.extrusionDirectionY,s.extrusionDirectionZ);let e=Kn.getOcsMatrix(Zn).invert(),t=0;void 0!==s.elevation&&s.elevation>0&&(t=s.elevation),s.vertices.forEach((i=>{let n=Zn.set(i.x,i.y,t).applyMatrix4(e);i.x=n.x,i.y=n.y}))}let o=S6(e.vertices,e.shape);if(e.shape&&o.length>0&&!Zt.areVector3sEqual(o[0],o[o.length-1])&&o.push(o[0]),o.length<2)return void se.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle);let l=new bn;if(null!=(n=e.extendedData)&&n.outlines){let t=e.extendedData.outlines,i=[];t.forEach((e=>{let t=new _s;e.forEach(((e,i)=>{0===i?t.moveTo(e[0],e[1]):t.lineTo(e[0],e[1])})),t.closePath(),i.push(new Rl(t))}));let n=Ui(i),r=new bn(4);r.geometry=n,r.material=My,r.layers.enableAll(),l.add(r)}let h=new D,c=!1;this.enableRTC&&(c=Qt.checkAndRebasePositionsOnRTC(o,h));let u=Qt.getAdjacentNonRepeatPoints(o);if(u.length<2)return void se.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle);if(this.enablePlineWidth&&void 0!==s.constantWidth&&s.constantWidth>0){let n=null==(a=null==(r=t.tables)?void 0:r.lineType)?void 0:a.lineTypes,o=n&&n[this.getLineType(e,t,i)];if(!o||!o.pattern||0===o.pattern.length){this.statsInfo.unsupportedPolylineCount++;let t=Qt.convertWidthLineToMeshGeometry(u,s.constantWidth);if(t){let e=new bn(4);e.geometry=t,e.material=My,e.layers.enableAll(),e.layers.disable(11),l.add(e);let i=Hn.createOutline(t,ya,e.matrix),n=new bn(3);n.geometry=i.geometry,n.material=i.material,n.matrix=i.matrix,n.layers.enableAll(),n.layers.disable(11),l.add(n)}else se.warn("[DxfLoader] Failed to convert line with width to mesh geometry: %s",e.handle)}}let d=new bn(2);return d.geometry=(new Dt).setFromPoints(u),d.material=ya,d.layers.enableAll(),l.children.length>0?l.add(d):l=d,c&&(this.setRTCUserData(l),l.matrix.setPosition(h)),l}drawMLeader(e,t,i){var n,r,a,s,o,l,h;let c=t.tables.dimStyle.dimStyles[e.dimensionStyle]||this.getDefaultDimensionStyle(t),u=null==(n=e.contextData)?void 0:n.defaultTextContents;if(!u)return;let d=new bn,p=MC(u),f=this.getTextStyle(t,e),m=this.getMTextGroup(p,e,f,t,i),g=m&&m.object;if(g){g.matrix.decompose(_i,xo,Ry),null!=(r=e.contextData)&&r.textLocation&&(_i.x+=e.contextData.textLocation.x,_i.y+=e.contextData.textLocation.y,g.matrix.compose(_i,xo,Ry)),qf.makeEmpty();let t=bn.getBox(g,qf).getSize(Zn),i=t.x,n=t.y,l=0,h=0;switch(null==(a=e.contextData)?void 0:a.textAttachment){case 1:l=0,h=0;break;case 2:l-=i/2,h=0;break;case 3:l-=i,h=0;break;case 4:l=0,h+=n/2;break;case 5:l-=i/2,h+=n/2;break;case 6:l-=i,h+=n/2;break;case 7:l=0,h+=n;break;case 8:l-=i/2,h+=n;break;case 9:l-=i,h+=n;break;default:return}g.traverse((e=>{e.geometry&&e.geometry.translate(l,h,0)}));let c=0;if(null!=(s=e.contextData)&&s.textRotation&&(c=e.contextData.textRotation*Math.PI/180),null!=(o=e.contextData)&&o.textDirection){let t=e.contextData.textDirection,i=new D(t.x,t.y,t.z),n=i.clone().cross(Bc),r=Bc.angleTo(i);c+=n.z>0?-r:r}Qt.shouldRebasePositionOnRTC(_i)&&this.setRTCUserData(g),g.matrix.compose(_i,xo,Ry),e.contextData.textLocation?Zn.set(e.contextData.textLocation.x,e.contextData.textLocation.y,0):Zn.set(0,0,0);let u=_i.clone().sub(Zn);Gf.makeTranslation(-u.x,-u.y,0),js.makeRotationZ(c),g.matrix.multiply(Gf),g.matrix.multiply(js),g.matrix.multiply(Gf.invert()),g.renderOrder=5,d.add(g)}if(0===e.leaderLineType)return null==g||g.traverse((e=>{e.layers.enableAll()})),g;{let i=[],n=null==(l=e.contextData)?void 0:l.leaders[0];if(!n)return d;let r=n.lastLeaderLinePoint;if(e.enableDogLeg){let e=new D(r.x,r.y,r.z),t=n.doglegLength,a=new D(n.doglegVector.x,n.doglegVector.y,n.doglegVector.z).multiplyScalar(t),s=e.clone().add(a);i.push(s,e)}let a=(null==(h=e.contextData)?void 0:h.leaders[0].leaderLines)||[];for(let l=0;lnew D(e.x,e.y,e.z))),s=new D(r.x,r.y,r.z);for(let e=0;e{e.layers.enableAll()})),1===d.children.length?d.children[0]:d}drawLeader(e,t,i){let n=[];if(!e.vertices)return void se.warn("[DxfLoader] Entity is missing vertices:",e.handle);if(e.vertices.length<2)return void se.warn("leader's vertices number must be greater than 2");let r=t.tables.dimStyle.dimStyles[e.dimensionStyle]||this.getDefaultDimensionStyle(t),a=e.vertices;if(1===e.pathType&&(a=new Em(e.vertices).getPoints(50)),e.textWidth){let t=e.textWidth,i=new D(a[a.length-1].x,a[a.length-1].y,a[a.length-1].z);if(0===e.direction){let e=new D(1,0,0).multiplyScalar(t);a.push(e.add(i))}else{let e=new D(-1,0,0).multiplyScalar(t);a.push(e.add(i))}}for(let p=0;p0?(l.add(d),Ic.merge(l,!1),l.traverse((e=>{e.layers.enableAll()})),1===l.children.length?l.children[0]:l):(d.layers.enableAll(),d)}drawDefaultLeadArrow(e,t,i,n){let r=i*(e.x-t.x),a=i*(e.y-t.y),s=a,o=-r,l=new D(t.x+r+s/6,t.y+a+o/6,0),h=new D(t.x+r-s/6,t.y+a-o/6,0);n.push(t,l),n.push(t,h),n.push(l,h)}getBlockByHandle(e,t){if(!this.blocksCache){this.blocksCache={};for(let t in e){let i=e[t];this.blocksCache[i.ownerHandle]||(this.blocksCache[i.ownerHandle]=i)}}return this.blocksCache[t]}static updateMaterialUniforms(e){e instanceof cn&&(e.uniforms.u_cameraZoom&&(e.uniforms.u_cameraZoom=Kn.cameraZoomUniform),e.uniforms.u_viewportScale&&(e.uniforms.u_viewportScale=Kn.viewportScaleUniform))}static transformAngleByOcsMatrix(e,t){let i=Zn.set(1*Math.cos(t),1*Math.sin(t),0).applyMatrix4(e);return Math.atan2(i.y,i.x)}static getArcAnglesByOcsMatrix(e,t,i){let n,r=Zt.getArcAngleSpanInRadian(t,i),a=Kn.transformAngleByOcsMatrix(e,t),s=Kn.transformAngleByOcsMatrix(e,i);if(Zt.areNumbersClose(r,Math.PI)){r=1;let i=Kn.transformAngleByOcsMatrix(e,t+r);n=Zt.getArcAngleSpanInRadian(a,i)}else{if(Zt.areNumbersClose(r,2*Math.PI))return[a,a+2*Math.PI];n=Zt.getArcAngleSpanInRadian(a,s)}return Zt.areNumbersClose(r,n,1e-5)?[a,s]:[s,a]}drawArc(e,t,i){var n,r,a;if(!e.radius||e.radius<.001)return void se.warn(`[DxfLoader] The radius of arc (handle '${e.handle}') is undefined, ignored!`);if(!e.radius||e.radius<.001)return void se.warn(`[DxfLoader] The radius of arc (handle '${e.handle}') is too small, ignored!`);let s=new D(0,0,1);void 0!==e.extrusionDirectionX&&void 0!==e.extrusionDirectionY&&void 0!==e.extrusionDirectionZ&&s.set(e.extrusionDirectionX,e.extrusionDirectionY,e.extrusionDirectionZ);let o,l,h=Kn.getOcsMatrix(s);if("CIRCLE"===e.type)o=e.startAngle||0,l=o+2*Math.PI;else{if(null==e.startAngle||null==e.endAngle||(o=e.startAngle,l=e.endAngle,Zt.areNumbersEqual(o,l,1e-6)))return;if(!Zt.areNumbersClose(Zt.getArcAngleSpanInRadian(o,l),2*Math.PI)){let e=Kn.getArcAnglesByOcsMatrix(h,o,l);o=e[0],l=e[1]}}let c=new bm(0,0,e.radius,o,l,0!==this.angBase),u=1,d=i;null!=d&&d.xScale&&null!=d&&d.yScale&&(u=Math.max(Math.abs(d.xScale),Math.abs(d.yScale)));let p=this.getDivision(o,l,e.radius*u),f=c.getPoints(p),m=new D,g=!1;this.enableRTC&&(g=Qt.checkAndRebasePositionsOnRTC(f,m));let v=(new Dt).setFromPoints(f),y=new bn(2);y.geometry=v,y.material=ya;let x=new D;e.center&&(x.x=e.center.x,x.y=e.center.y);let b=new D(null==(n=e.center)?void 0:n.x,null==(r=e.center)?void 0:r.y,null==(a=e.center)?void 0:a.z).applyMatrix4(h.invert());x.x=b.x,x.y=b.y;let _=x,w=new bn(1);return w.geometry=Zge,w.material=$C,w.userData.handle=e.handle,w.userData.isSnapObject=!0,w.userData.type="CircleCenter",w.layers.set(11),y.add(w),g?(this.setRTCUserData(y),_.x+=m.x,_.y+=m.y):Qt.shouldRebasePositionOnRTC(_)&&this.setRTCUserData(y),y.matrix.setPosition(_),y.layers.enableAll(),y}addTriangleFacingCamera(e,t,i,n){let r=new D,a=new D;r.subVectors(i,t),a.subVectors(n,t),r.cross(a);let s=new D(t.x,t.y,t.z),o=new D(i.x,i.y,i.z),l=new D(n.x,n.y,n.z);r.z<0?e.push(l,o,s):e.push(s,o,l)}drawSolid(e,t,i){let n=e.points;if(!n||n.length<4)return;if(e.extrusionDirection&&e.extrusionDirection.z){Zn.set(0,0,e.extrusionDirection.z);let t=Kn.getOcsMatrix(Zn).invert();n.forEach((e=>{let i=Zn.set(e.x,e.y,0).applyMatrix4(t);e.x=i.x,e.y=i.y}))}let r=[],a=[];this.addTriangleFacingCamera(r,n[0],n[1],n[2]),a.push(0,1,2),this.addTriangleFacingCamera(r,n[1],n[2],n[3]),a.push(3,4,5);let s=new D,o=!1;this.enableRTC&&(o=Qt.checkAndRebasePositionsOnRTC(r,s));let l=(new Dt).setFromPoints(r);l.setIndex(a);let h=new bn(4);return h.geometry=l,h.material=My,o&&(this.setRTCUserData(h),h.matrix.setPosition(s.x,s.y,0)),h.layers.enableAll(),h}getTextStyle(e,t){var i,n;let r=null==(n=null==(i=e.tables)?void 0:i.style)?void 0:n.styles;return r&&(r[t.textStyle]||r.STANDARD||r.Standard)||{}}getDefaultDimensionStyle(e){return e.tables.dimStyle.dimStyles.STANDARD||e.tables.dimStyle.dimStyles.Standard||{}}getTextEncoding(e){return(null==e?void 0:e.bigFontFile)&&e.bigFontFile.toUpperCase().startsWith("GB")?"gbk":"utf8"}getTextMesh(e,t,i,n){if(!e)return;let r=(null==i?void 0:i.styleName)||"";if(i&&i.fontFile&&i.fontFile.endsWith(".shx")){let e=`${i.fontFile}_${i.styleName}`;this.statsInfo.unsupportedTextStyles[e]||(this.statsInfo.unsupportedTextStyles[e]=0),this.statsInfo.unsupportedTextStyles[e]++}let a=.67,s={_TCH_DIM:1.45,ROMANS:1};r&&s[r]&&(a=s[r]),n.xScale&&(a*=n.xScale),r&&(a*=(null==i?void 0:i.xScale)||1,t=t||(null==i?void 0:i.textHeight)||0),0===t&&(t=r?1:.2);let o=this.createTextMeshByText(e,i,t,0,t/8);return o.traverse((e=>{e.geometry&&e.geometry.scale(a,1,1)})),o}createTextMeshByText(e,t,i=12,n=0,r=0,a=1,s=1/0){var o,l,h;let c=new bn,u=[],d=0,p=0,f=n+i;for(let m=0;ms?(d=0,p-=f):(c.boundingBox||c.computeBoundingBox(),d+=c.boundingBox.getSize(Zn).x+r),u.push(c))}if(u.length>0){let e=u.filter((e=>e instanceof Qs)),t=u.filter((e=>!(e instanceof Qs)));if(e.length>0){let t=new bn(4);t.geometry=Ui(e),t.material=My,c.add(t)}if(t.length>0){let e=new bn(3);e.geometry=Ui(t),e.material=ya,c.add(e)}}return c}transformTextMesh(e,t){qf.makeEmpty();let i=bn.getBox(t,qf).getSize(Zn),{halign:n,valign:r}=e;t.matrix.decompose(ZC.position,ZC.quaternion,ZC.scale);let a=ZC,s=e.width||e.textWidth||i.x,o=e.height||e.textHeight||i.y;if(void 0===n&&void 0===r&&e.startPoint||[3,5].includes(n)&&e.startPoint?(a.position.x+=e.startPoint.x,a.position.y+=e.startPoint.y,a.position.z+=e.startPoint.z):e.endPoint&&(a.position.x+=e.endPoint.x,a.position.y+=e.endPoint.y,a.position.z+=e.endPoint.z),3!==n&&5!==n){if(e.rotation){let t=e.rotation*Math.PI/180;a.rotateZ(t)}2===e.mirrored?a.rotateY(Math.PI):4===e.mirrored&&a.rotateX(Math.PI)}switch(n){case 0:default:break;case 1:a.translateX(-s/2);break;case 2:a.translateX(-s);break;case 3:if(e.startPoint&&e.endPoint){let t=new D(e.startPoint.x,e.startPoint.y,e.startPoint.z),i=new D(e.endPoint.x,e.endPoint.y,e.endPoint.z),n=(new D).subVectors(t,i),r=n.length()/s;a.scale.multiplyScalar(r);let o=n.clone().cross(Bc),l=n.angleTo(Bc);a.rotateZ(o.z>0?Math.PI-l:l-Math.PI),(2===e.mirrored||4===e.mirrored)&&a.rotateX(Math.PI)}break;case 4:a.translateX(-s/2),a.translateY(-o/2);break;case 5:if(e.startPoint&&e.endPoint){let t=new D(e.startPoint.x,e.startPoint.y,e.startPoint.z),i=new D(e.endPoint.x,e.endPoint.y,e.endPoint.z),n=(new D).subVectors(t,i),r=n.length()/s;a.scale.setX(r);let o=n.clone().cross(Bc),l=n.angleTo(Bc);a.rotateZ(o.z>0?Math.PI-l:l-Math.PI),(2===e.mirrored||4===e.mirrored)&&a.rotateX(Math.PI)}}switch(r){case 0:case 1:default:break;case 2:a.translateY(-o/2);break;case 3:a.translateY(-o)}return a.position.z=0,a.updateMatrix(),t.matrix.copy(a.matrix),t}drawText(e,t,i){let n=e.text;if(!n)return;if(!this.font)return void se.info("[DxfLoader] Font file not set, ignoring text entity.");let r=this.getTextStyle(t,e);n=RC(n,{encoding:this.getTextEncoding(r)}).map((e=>e.text)).join("");let a=this.getTextMesh(n,e.textHeight,r,e);if(!a||0===a.children.length)return;this.transformTextMesh(e,a),Zn.set(a.matrix.elements[12],a.matrix.elements[13],a.matrix.elements[14]);let s=Qt.shouldRebasePositionOnRTC(Zn);return s&&this.setRTCUserData(a),a.traverse((e=>{let t=e.geometry;if(t){if(e instanceof xt&&!t.getIndex()){let e=t.getAttribute("position"),i=[];for(let t=0;te.text)).join();let a=this.getTextMesh(n,e.textHeight,r,e);if(!a||0===a.children.length)return;this.transformTextMesh(e,a),Zn.set(a.matrix.elements[12],a.matrix.elements[13],a.matrix.elements[14]);let s=Qt.shouldRebasePositionOnRTC(Zn);return s&&this.setRTCUserData(a),a.traverse((e=>{let t=e.geometry;if(t){if(e instanceof xt&&!t.getIndex()){let e=t.getAttribute("position"),i=[];for(let t=0;te.text)).join();let a=this.getTextMesh(n,e.textHeight,r,e);if(!a||0===a.children.length)return;this.transformTextMesh(e,a),Zn.set(a.matrix.elements[12],a.matrix.elements[13],a.matrix.elements[14]);let s=Qt.shouldRebasePositionOnRTC(Zn);return s&&this.setRTCUserData(a),a.traverse((e=>{let t=e.geometry;if(t){if(e instanceof xt&&!t.getIndex()){let e=t.getAttribute("position"),i=[];for(let t=0;t0&&(e.colorIndex=n.DIMCLRD,e.color=Ym(e.colorIndex));let r=new bn;for(let s=0;s`,r.userData.entityType=e.type;let a=null==e?void 0:e.insertionPoint;return Zn.set(0,0,0),a&&Zn.set(a.x,a.y,0),Qt.shouldRebasePositionOnRTC(Zn)&&this.setRTCUserData(r),r.matrix.setPosition(Zn),r}drawImage(e,t,i){var n;if(!e.imageSize||null==(n=t.objects.IMAGEDEF)||!n.length)return;let r=t.objects.IMAGEDEF.filter((t=>t.handle===e.imageDefHandle))[0];if(!r)return;console.log(e,r);let a=e.imageSize.x,s=e.imageSize.y,o=new bn,l=!1;2===e.flags||4===e.flags||8===e.flags||(l=!0);let h=new ui(a,s);if(l){let e=new ws(this.manager).load(r.filename,void 0,void 0,(()=>{console.warn("Please upload the pictures in the same folder, or use url link in the dxf file.")}));e.colorSpace=en;let t=new ln({transparent:!0,side:pi,map:e}),i=new bn(4);i.geometry=h,i.material=t,o.add(i)}let c=new Au(h),u=this.getColor(e,t,i),d=new bn(2);d.geometry=c,d.material=this.getLineBasicMaterial(u);let p=e.uPixel?new D(e.uPixel.x,e.uPixel.y,e.uPixel.z):new D(r.pixelSize.x,0,0),f=e.vPixel?new D(e.vPixel.x,e.vPixel.y,e.vPixel.z):new D(r.pixelSize.y,0,0);if(o.add(d),_i.set(p.x,f.y,1),Zn.set(0,0,0),e.position){let t=new D(e.position.x,e.position.y,e.position.z);t.add(p.multiplyScalar(a/2)).add(f.multiplyScalar(s/2)),Zn.copy(t)}return Qt.shouldRebasePositionOnRTC(Zn)&&this.setRTCUserData(o),xo.identity(),o.matrix.compose(Zn,xo,_i),o}drawInsert(e,t,i=!1){var n,r;if(!e.block)return;let a=t.blocks[e.block];if(!a.entities)return;e.blockPosition=a.position;let s=new bn;for(let u=0;u`,s.userData.entityType=e.type,null!=(n=e.extendedData)&&n.originalType&&(s.userData.originalType=null==(r=e.extendedData)?void 0:r.originalType),null!=e&&e.blockPosition&&s.matrix.setPosition(-e.blockPosition.x,-e.blockPosition.y,0);let o=Zn.set(1,1,1);e.xScale&&(o.x=e.xScale),e.yScale&&(o.y=e.yScale);let l=new Xn;e.rotation&&(l.z=e.rotation*Math.PI/180),xo.setFromEuler(l,!1);let h=_i.set(0,0,0);e.position&&(h.x=e.position.x,h.y=e.position.y),js.compose(h,xo,o),e.extrusionDirection&&e.extrusionDirection.z<0&&js.premultiply(Kge.identity().makeScale(-1,1,1)),Gf.copy(s.matrix),s.matrix.premultiply(js),_i.set(s.matrix.elements[12],s.matrix.elements[13],s.matrix.elements[14]),Qt.shouldRebasePositionOnRTC(_i)&&this.setRTCUserData(s);let c=this.findSpatialFilterByHandle(e.handle,t);if(c){this.drawSpatialFilter(c);let t=c;t&&t.clipPolylines&&t.clipPolylines.length>0&&(s.userData.spatialFilterHandle=c.handle,this.cloneMaterialsForSpatialFilter(s),se.debug("[DxfLoader] Spatial filter:",e.associatedSpatialFilter))}return s}drawSpatialFilter(e){let t=e;if(t.threejsObject)return t.threejsObject.clone();let i=e.invertBlockMatrix;js.set(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8],i[9],i[10],i[11],0,0,0,1);let n=[];e.vertices.forEach((e=>{n.push(new D(e.x,e.y,0))}));let r={polyline:[],bConcave:!1,bReversed:!1};if(2===e.numberOfPointsOnClipBoundary)r.polyline=n;else{let t=e.numberOfPointsOnClipBoundary,i=3;if(te;r--){let o=n[r];if(Zt.areVector3sEqual(i,o)&&e+10)break;a.push(i)}if(s>0)for(let e=s+1;e{o.push(new xe(e.x,e.y)),l.push([e.x,e.y])})),!Qt.isConvex(o)){se.warn(`[DxfLoader] Concave polygon is not supported for spatial filter (handle '${e.handle}'), converting to convex polygon!`);let t=(0,r0e.default)(l,1/0);a=[],t.forEach((e=>{a.push(new D(e[0],e[1],0))}))}Zt.areVector3sEqual(a[0],a[a.length-1])||a.push(a[0]),r.polyline=a,r.bReversed=s>0}return this.enableReleaseData&&(e.vertices=[],e.matrix=[],e.invertBlockMatrix=[]),t.localMatrix=js.clone(),t.clipPolylines=[],void t.clipPolylines.push(r)}drawLayout(e,t,i,n,r,a){if(!e.entities)return;let s=new bn;for(let h=0;h{if(e.geometry){let t=e.userData.layerName,n=r[t];n||(n=[],r[t]=n),n.push(e),e.userData.isSnapObject&&(this.layoutsSnapObjectsMap[i.layoutName]||(this.layoutsSnapObjectsMap[i.layoutName]=[]),this.layoutsSnapObjectsMap[i.layoutName].push(e))}})))}if(0===s.children.length)return;s.userData.layerName=e.layer;let o=i.layoutName,l=n.children.find((e=>e.name===o));l||(l=new bn,l.name=o,l.userData.isLayoutLevelObject=!0,n.add(l)),l.add(s),e.position&&s.matrix.setPosition(e.position.x,e.position.y,e.position.z||0)}convertEdgeToPoints(e){let t=[];switch(e.type){case 1:{let i=e;t.push(new xe(i.startPoint.x,i.startPoint.y)),t.push(new xe(i.endPoint.x,i.endPoint.y));break}case 2:{let i=e,n=i.startAngle*Rn.DEG2RAD,r=i.endAngle*Rn.DEG2RAD;i.bCounterclockwise||(n=2*Math.PI-n,r=2*Math.PI-r);let a=new bm(i.center.x,i.center.y,i.radius,n,r,!i.bCounterclockwise),s=this.getDivision(n,r,i.radius);t.push(...a.getPoints(s));break}case 3:{let i=e,n=Math.sqrt(Math.pow(i.majorAxisEndPoint.x,2)+Math.pow(i.majorAxisEndPoint.y,2)),r=n*i.minorRatio,a=Math.atan2(i.majorAxisEndPoint.y,i.majorAxisEndPoint.x),s=i.startAngle*Rn.DEG2RAD,o=i.endAngle*Rn.DEG2RAD;i.bCounterclockwise||(s=2*Math.PI-s,o=2*Math.PI-o);let l=new Kh(i.center.x,i.center.y,n,r,s,o,!i.bCounterclockwise,a),h=this.getDivision(s,o,Math.max(n,r));t.push(...l.getPoints(h));break}case 4:{let i=e;t.push(...i.controlPoints);break}case 0:{let i=e;t.push(...S6(i.points,i.isClosed));break}}return t}drawHatch(e,t,i){var n,r;let a=e;if(0==a.boundaryPaths.length)return;if(!(a.solidFill||null!=(n=a.patternLines)&&n.length))return void se.warn(`[DxfLoader] Hatch entity(handle: '${a.handle}') doesn't have solid fill, nor patternLines, ignored!`);let s=[],o=[],l=[],h=e=>{let t=[],i=[];i.push(...this.convertEdgeToPoints(e[0]));for(let n=1;n2){let a=this.convertEdgeToPoints(e[n-1]);Zt.areVector2sEqual(a[a.length-1],r[0])?Zt.areVector2sEqual(i[0],r[r.length-1],1e-5)&&(t.push(i),i=[]):Zt.areVector2sEqual(a[0],r[r.length-1])?Zt.areVector2sEqual(i[1],r[0],1e-5)&&(t.push(i),i=[]):i=[]}}return t};if(a.boundaryPaths.forEach(((e,t)=>{let i=[];if(this.IsfilteredByPathTypeFlag(e.pathTypeFlag)){let i="[DxfLoader] The %d path type flag is filtered at the %dth boundrayPath (hatch handle '%s')";return void se.info(i,e.pathTypeFlag,t,a.handle)}let n=e.edges;if(0===n.length)return;let r=[];for(let s=0;s31&&(!(e=>{for(let t=1;t{Zt.areVector2sEqual(e[0],e[e.length-1])||e.push(e[0]);let t=e.map((e=>new xe(St.roundNumber(e.x,7),St.roundNumber(e.y,7))));if((null==t?void 0:t.length)>0){s.push(t);let e=(new Mi).setFromPoints(t);o.push(e);let i=e.getSize(u_),n=i.x*i.y;l.push({area:n,index:s.length-1})}}))})),0===s.length)return;let c=new xe,u=this.checkAndRebasePolygonsOnRTC(s,c);l.sort(((e,t)=>e.area-t.area));let d=[];l.forEach((e=>{d.push(e.index)}));let p,f=this.buildContainHierarchyTree(s,o,d),m=[];if(this.buildHatchGeometry(s,f,m),m.length>0&&(p=Ui(m)),!p||!p.getIndex()||0===(null==(r=p.getIndex())?void 0:r.count))return void se.warn("[DxfLoader] Failed to convert hatch boundaries!");let g=new bn(4);g.geometry=p,g.material=My,this.setHatchMaterial(g,a,t,c,i);let v=g;return u&&(this.setRTCUserData(v),v.matrix.setPosition(c.x,c.y,0)),v.traverse((e=>{e.layers.enableAll(),e.layers.disable(11)})),v}drawOle2frame(e,t){let{leftUpX:i,leftUpY:n,rightDownX:r,rightDownY:a}=e;if(!(i&&n&&r&&a))return;let s=[new xe(i,n),new xe(i,a),new xe(r,a),new xe(r,n),new xe(i,n)],o=new D,l=!1;this.enableRTC&&(l=Qt.checkAndRebasePositionsOnRTC(s,o));let h=(new Dt).setFromPoints(s),c=this.getLineBasicMaterial(16777215),u=new bn(2);u.geometry=h,u.material=c,u.layers.enableAll(),l&&(this.setRTCUserData(u),u.matrix.setPosition(o.x,o.y,0));let d=new bn;d.add(u);let p,f,m=t.objects.DICTIONARY;for(let g of m){let t=g;for(let i in t.entries)if(t.entries[i]===e.handle){p=i;break}}if(p)if(this.meshTextureMaterials[p])f=this.meshTextureMaterials[p];else for(let g=0;g1?d:u}static getOcsMatrix(e){let t=Bc,i=w6,n=Sy,r=new D(0,1,0),a=new D(0,0,1);return Zt.areVectorsClose(e,a)?js.identity():(n=e.clone().normalize(),Zt.areVectorsClose(n,a)||(t=Math.abs(n.x)<1/64&&Math.abs(n.y)<1/64?r.cross(n).normalize():a.cross(n).normalize(),i=n.clone().cross(t).normalize()),js.set(t.x,t.y,t.z,0,i.x,i.y,i.z,0,n.x,n.y,n.z,0,0,0,0,1))}static getDcs2WcsMatrix(e,t){let i;i=pmt(e)?e.viewDirectionFromTarget:e.viewDirection;let n,r,a,s=new D(Zt.roundNumber(i.x,7),Zt.roundNumber(i.y,7),i.z),o=new D(e.viewTarget.x,e.viewTarget.y,e.viewTarget.z),l=e.viewTwistAngle||0;a=s.clone().normalize(),n=Sy.clone().cross(s),n.length()>0?(n.normalize(),r=a.clone().cross(n)):a.z<0?(n=Bc.clone().negate(),r=w6,a=Sy.clone().negate()):(n=Bc,r=w6,a=Sy);let h=new et,c=js.identity();return c.makeBasis(n,r,a),h.premultiply(c),h.premultiply(js.identity().compose(o.clone(),(new dr).setFromAxisAngle(new D(0,0,1),Rn.degToRad(t?l:-l)),new D(1,1,1))),h}getViewportMsToPsMatrix(e){let t=new D(e.centerPoint_dcs.x,e.centerPoint_dcs.y,0),i=new D(e.centerPoint.x,e.centerPoint.y,e.centerPoint.z),n=e.viewHeight/e.height_paperSpace,r=Kn.getDcs2WcsMatrix(e,this.angDir),a=new et;a.setPosition($ge.clone().sub(i));let s=Kge.identity();s.scale(Zn.set(n,n,n));let o=Gf.identity().setPosition($ge.clone().sub(i));s.premultiply(o.clone().invert()).multiply(o),a.multiply(s);let l=js.identity();l.setPosition(t),r.multiply(l);let h=js.identity();return a.invert().multiply(h).multiply(r.invert())}drawViewport(e,t,i){let n=e;if("1"==n.viewportId)return e.psBBox=new Nt,void(e.msToPsMatrix=new et);let r=[],a=n.centerPoint,s=n.width_paperSpace/2,o=n.height_paperSpace/2;r.push(new D(a.x-s,a.y-o,0)),r.push(new D(a.x-s,a.y+o,0)),r.push(new D(a.x+s,a.y+o,0)),r.push(new D(a.x+s,a.y-o,0)),r.push(r[0]),e.psBBox=new Nt(r[0],r[2]),e.msToPsMatrix=this.getViewportMsToPsMatrix(n);let l=new D,h=!1;this.enableRTC&&(h=Qt.checkAndRebasePositionsOnRTC(r,l));let c=(new Dt).setFromPoints(r),u=new bn(2);u.geometry=c,u.material=ya,h&&(this.setRTCUserData(u),u.matrix.setPosition(l.x,l.y,0)),u.userData.entityType=e.type,u.layers.enableAll();let d=new bn;d.add(u);let p=e.psBBox.clone();p.applyMatrix4(e.msToPsMatrix.clone().invert()),p.min.z=0,p.max.z=0;let f=[];f.push(p.min),f.push(new D(p.min.x,p.max.y,0)),f.push(p.max),f.push(new D(p.max.x,p.min.y,0)),f.push(f[0]);let m=new D,g=!1;this.enableRTC&&(g=Qt.checkAndRebasePositionsOnRTC(f,m));let v=(new Dt).setFromPoints(f),y=new bn(2);return y.geometry=v,y.material=ya,g&&(this.setRTCUserData(y),y.matrix.setPosition(m.x,m.y,0)),y.userData.entityType=e.type,y.userData.inPaperSpace=!0,y.layers.enableAll(),d.add(y),u}getColor(e,t,i){var n,r,a,s;if(this.compareContext)return ls.ENTITY_COLOR_NO_CHANGE;if(null!=this.overrideColor)return this.overrideColor;let o=e;if(o&&o.isGradientColor){let t=o.gradientColors;if(t&&t.length>=2){if(t[0]!==t[1]){let t=`[DxfLoader] Gradient colors are not supported for hatch '${e.handle}', will use the first color!`;se.warn(t)}return t[0]}}if(e.isTrueColor||e.colorIndex>0&&e.colorIndex<256)return e.color;if(0===e.colorIndex)return i?this.getColor(i,t):null==(r=null==(n=t.tables)?void 0:n.layer)?void 0:r.layers[0].color;if(256===e.colorIndex){let n=null==(s=null==(a=t.tables)?void 0:a.layer)?void 0:s.layers,r=n&&n[e.layer],o=n&&i&&n[i.layer],l=Wf;return r&&"0"!==r.name?l=r.color:o?l=o.color:r?l=r.color:n&&n[0].color&&(l=n[0].color),l}return se.warn("[DxfLoader] Unknown colorIndex"),Wf}getLineType(e,t,i){var n,r;if(i&&"DIMENSION"===i.type)return this.getLineType(i,t);if(e.lineType!==ay&&e.lineType!==oy)return e.lineType;if(e.lineType===oy)return i?this.getLineType(i,t):e.lineType;let a=null==(r=null==(n=t.tables)?void 0:n.layer)?void 0:r.layers,s=fmt;if("0"!==e.layer){let t=a&&a[e.layer];if(t)return t.lineType}else if(i){let e=a&&a[i.layer];if(e)return e.lineType}return s}getLayerName(e,t,i){var n,r;let a=t=>{s&&t&&!s[e.layer]&&(console.warn(`[DxfLoader] Failed to find layer object for '${t}', adding a default one.`),s[t]={name:t,handle:"",colorIndex:256,lineType:"",visible:!0})},s=null==(r=null==(n=t.tables)?void 0:n.layer)?void 0:r.layers;a(e.layer);let o=s&&s[e.layer];a(null==i?void 0:i.layer);let l=s&&i&&s[i.layer],h=(null==o?void 0:o.name)||"";return o&&"0"===o.name&&l&&(h=l.name),h}setMaterial(e,t,i,n){var r,a;let s=e;if(!s.geometry||(this.setRenderOrderByObjectType(e),"OLE2FRAME"===t.type))return;if("MTEXT"===t.type)return void(e.renderOrder=5);if("HATCH"===t.type)return u_.set(0,0),void this.setHatchMaterial(e,t,i,u_,n);if("IMAGE"===t.type)return;let o,l=this.getColor(t,i,n);if("LWPOLYLINE"===t.type&&(s.isMesh?(o=this.getMeshBasicMaterial(l),e.renderOrder=1):e.userData.isOutline&&(o=this.getLineBasicMaterial(l),e.renderOrder=3),o))s.material=o;else{if("SOLID"===t.type)o=this.getMeshBasicMaterial(l);else if("TEXT"===t.type||"ATTDEF"===t.type||"ATTRIB"===t.type)o=this.getLineBasicMaterial(l),e.renderOrder=5;else if("LEADER"===t.type||"MULTILEADER"===t.type||"VIEWPORT"===t.type)o=this.getLineBasicMaterial(l);else if("POINT"===t.type)o=this.getPointsMaterial(l);else{if(e.material instanceof bi)return o=this.getPointsMaterial(l),void(s.material=o);let h=null==(a=null==(r=i.tables)?void 0:r.lineType)?void 0:a.lineTypes,c=h&&h[this.getLineType(t,i,n)];if(c&&c.pattern&&0!==c.pattern.length){let i=t.lineTypeScale||1;o=this.getLineShaderMaterial(c,l,i),e.renderOrder=3}else o=this.getLineBasicMaterial(l)}s.material=o}}setHatchMaterial(e,t,i,n,r){let a=e;if(!a.geometry)return;let s=this.getColor(t,i,r);if(2===a.type||3===a.type)return void(a.material=this.getLineBasicMaterial(s));let o,l=-1;if(t.solidFill)o=this.getMeshBasicMaterial(s);else{if(a.material instanceof cn){o=a.material;let e=new ct(s);a.material.uniforms.u_color.value.equals(e)||(o=a.material.clone(),Kn.updateMaterialUniforms(o),o.uniforms.u_color.value.set(s))}else o=this.getHatchShaderMaterial(t,s,n);l=0}o||(o=this.getMeshBasicMaterial(s),l=-1),a.material=o,a.renderOrder=l}setRenderOrderByObjectType(e){let t=e,i=0;t.isMesh?i=-1:t.isLine?i=2:t.isPoints&&(i=4),e.renderOrder=i}getPointsMaterial(e){return this.pointsMaterials[e]||(this.pointsMaterials[e]=new bi({size:.2,color:e})),this.pointsMaterials[e]}getLineBasicMaterial(e){return this.lineBasicMaterials[e]||(this.lineBasicMaterials[e]=new Gn({color:e})),this.lineBasicMaterials[e]}getLineShaderMaterial(e,t,i){let n=`${e.name}_${t}_${i}`;if(!this.lineShaderMaterials[n]){let r=this.getLineTypeScales(),a=r.ltScale*r.celtScale*i;this.lineShaderMaterials[n]=SC.createLineShaderMaterial(e.pattern,t,a,Kn.viewportScaleUniform,Kn.cameraZoomUniform)}return this.lineShaderMaterials[n]}getMeshBasicMaterial(e){return this.meshBasicMaterials[e]||(this.meshBasicMaterials[e]=new ln({color:e})),this.meshBasicMaterials[e]}getHatchShaderMaterial(e,t,i){if(!e.patternLines||e.patternLines.length<1)return;let n=this.findMatchedHatchShaderMaterial(e,t);if(n)return n;let r=2;e.patternLines.forEach((e=>{r=Math.max(e.dashPattern.length,r)}));let a=0,s=[],o=new xe;for(let h of e.patternLines){let t=new xe(h.origin.x,h.origin.y).sub(i).rotateAround(o,-Rn.degToRad(e.patternAngle)),n=new xe(h.delta.x,h.delta.y).rotateAround(o,-Rn.degToRad(h.angle));if(0===n.y)return void se.warn("[DxfLoader] delta.y is equal to zero !");let l=h.dashPattern.length,c=!0,u=0;for(let e=0;e0&&(c=!1),u+=Math.abs(t)}let d=c?.05:.005,p=[],f=[],m=0;f[0]=m;for(let e=0;eKn.maxFragmentUniforms){se.warn("[DxfLoader] There will be warning in fragment shader when number of uniforms exceeds 1024, so extra hatch line patterns are ignored here!");break}s.push(g)}let l=ame(s,e.patternAngle,Kn.cameraZoomUniform,new ct(t));return l.defines={MAX_PATTERN_SEGMENT_COUNT:r},this.hatchShaderMaterials.push({patternLines:e.patternLines,patternAngle:e.patternAngle,color:t,material:l}),l}getDivision(e,t,i){let n=Math.round(5e4/this.entityCount);n=Math.max(n,2),n=Math.min(n,10);let r=5*n,a=2*n;this.averageCurveSize&&(a*=Math.pow(i/this.averageCurveSize,.5),a=Math.max(a,n),a=Math.min(a,r));let s=t-e;s<0&&(s+=2*Math.PI),a=Math.ceil(a*(s/Math.PI));let o=8;return s<.087?o=2:s<.174?o=3:s<.52?o=4:s<1.57?o=5:s<3.14?o=6:s<4.71&&(o=7),a=Math.max(a,o),this.averageCurveSize=(this.averageCurveSize*this.curveCount+i)/(this.curveCount+1),this.curveCount++,Math.max(a,12)}getBSplineInterpolationsPerSplineSegment(e,t){let i=1;this.averageCurveSize&&(i=Math.pow(t/this.averageCurveSize,.5),i=Math.max(i,.5),i=Math.min(i,2)),this.averageCurveSize=(this.averageCurveSize*this.curveCount+t)/(this.curveCount+1),this.curveCount++;let n=2*e*i;return e>20&&(n/=Math.log10(e)),n}setDxfDataToIndexedDb(e,t){return ft(this,null,(function*(){let i={dxfDataId:e,dxf:t};return new Promise(((t,n)=>{yy.instance().add(i,(()=>{se.info(`[DxfLoader] Saved '${e}' to indexedDb`),t()}),(e=>{n(e)}))}))}))}getDxfDataFromIndexedDb(e){return ft(this,null,(function*(){return new Promise(((t,i)=>{yy.instance().query(e,(e=>{e&&e.length>0&&t(e[0].dxf),t(void 0)}),(()=>i()))}))}))}buildContainHierarchyTree(e,t,i){var n;let r=new Map,a=i.length;for(let o=0;o{0===e.children.length?n.push(e.index):r.set(e.index,e.children.map((e=>e.index)))}));let a=e=>{try{let t=new Rl(e);t.hasAttribute("uv")&&t.deleteAttribute("uv"),t.hasAttribute("normal")&&t.deleteAttribute("normal"),i.push(t)}catch(t){se.warn(`[DxfLoader] triangulate shape error: ${e.getPoints().map((e=>e.toArray())).toString()}`)}};n.forEach((t=>{let i=e[t];if(0===i.length)return;let n=new _s(i);a(n)}));let s=e=>e.map((e=>e.toArray()));for(let o of r){let t=new _s(e[o[0]]),i={regions:[],inverted:!1},n=this.findIntersectHole(e,o[1]);n.forEach((n=>{let r={regions:[],inverted:!1};try{n.forEach(((n,a)=>{if(Hl.epsilon(Zt.getVector2RelativeEps(e[n][0]),1e-6),0===a)r=Hl.segments({regions:[s(e[n])],inverted:!1});else{let a=Hl.segments({regions:[s(e[n])],inverted:!1}),o=Hl.combine(r,a);i=Hl.polygon(Hl.selectUnion(o)),i.regions.length>0?i.regions.forEach((e=>{if(0===e.length)return;let i=e.map((e=>new xe(e[0],e[1])));t.holes.push(new Mu(i))})):se.warn("[DxfLoader] mergedHoles.regions is empty")}}))}catch(e){se.warn(`[DxfLoader] polybooljs has error: ${e}, epsilon is ${Hl.epsilon()}`)}}));let r=n.flat(2);for(let a=0;a{t.children.forEach((t=>{this.buildHatchGeometry(e,t,i)}))}))}findIntersectHole(e,t){let i=t.length,n=[];for(let r=0;r{e.forEach((e=>{t.add(e),i++}))})),t.divideScalar(i);let n=!1;if(this.enableRTC&&Qt.shouldRebasePositionOnRTC(t)){n=!0;for(let i=0;i{e.entries[i]&&"ACAD_SORTENTS"===e.entries[i]&&t.add(i)}))}if(0===t.size)return;let n=e.objects.SORTENTSTABLE;if(n)for(let r=0;rMath.abs(e-t)<1e-5,r=(e,t)=>n(e.angle,t.angle)&&n(e.delta.x,t.delta.x)&&n(e.delta.y,t.delta.y)&&n(e.origin.x,t.origin.x)&&n(e.origin.y,t.origin.y)&&((e,t)=>{if(e.length!==t.length)return!1;for(let i=0;in.color===t&&n.patternAngle===e.patternAngle&&((e,t)=>{if(e.length!==t.length)return!1;for(let i=0;i{t[e.handle]=e.layoutHandle}))}let r=this.blockRecordsCache[t.ownerHandle];if(r){let t=e.objects.LAYOUT.find((e=>e.handle===r));if(t)return t}if(!this.entitiesCache){this.entitiesCache={};let t=this.entitiesCache;Object.values(e.entities).forEach((e=>{t[e.handle]=e}))}let a=this.entitiesCache[t.ownerHandle];return a?this.getLayout(e,a):(se.warn("[DxfLoader] Failed to find layout name for entity:",t),e.objects.LAYOUT.find((e=>e.layoutName===Kn.MODEL_LAYOUT_NAME)))}getLayerVisible(e,t){var i,n,r;let a=null==(n=null==(i=e.tables)?void 0:i.layer)?void 0:n.layers;return a&&(null==(r=a[t])?void 0:r.visible)}getLayerFrozen(e,t){var i,n,r;let a=null==(n=null==(i=e.tables)?void 0:i.layer)?void 0:n.layers;return a&&(null==(r=a[t.layer])?void 0:r.frozen)}cloneMaterialsForSpatialFilter(e){let t=new Map;e.traverse((e=>{e.material&&(e.material=(e=>{let i;return Array.isArray(e)?(i=[],e.forEach((e=>{if(t.has(e.id))i.push(t.get(e.id));else{let n=e.clone();Kn.updateMaterialUniforms(n),t.set(e.id,n),i.push(n)}}))):e&&(t.has(e.id)?i=t.get(e.id):(i=e.clone(),Kn.updateMaterialUniforms(i),t.set(e.id,i))),i})(e.material))}))}getLineTypeScales(){let e={ltScale:1,celtScale:1};return this.header&&(e.ltScale=this.header.$LTSCALE||1,e.celtScale=this.header.$CELTSCALE||1),e}static getDxfUnits(e){switch(e||0){case 0:return"Unitless";case 1:return"Inches";case 2:return"Feet";case 4:return"Millimeters";case 5:return"Centimeters";case 6:return"Meters";default:se.warn(`[DxfLoader] Unsupported $INSUNITS '${e}'`)}return"Unitless"}static computeLineDistance(e){let t=!0===e.isLineSegments,i=e.geometry,n=e.matrixWorld;if(i.index&&(se.debug(`[DxfLoader] Line with id '${e.id}' contains index buffer, going to convert it to non-indexed.`),i=Qt.convertGeometryWithIndexedToNonIndexed(i),e.userData.batches&&e.userData.batches.length>0)){se.debug("[DxfLoader] This line has been merged!");let t=0;e.userData.batches.forEach((e=>{e.positionStart=t,e.positionCount=e.indexCount,e.indexStart=0,e.indexCount=0,t+=e.positionCount}))}if(null===i.index){let r=i.attributes.position;if(!r||0===r.count)return;let a=[];if(t)for(let e=0,t=r.count;e{let t=e;t.isLine&&t.material instanceof cn&&Kn.computeLineDistance(t)})),se.debug(`[DxfLoader] Computed line distances in ${(Date.now()-t)/1e3}s`)}static mergeDxfObjects(e){let t=Date.now(),i={},n={},r=0,a=0,s=()=>{let e=Date.now();for(let t in i){let e=i[t];Kn.removeEmptyObjectsFromRemovingMarkedObjects2(e.children,e.object),e.children=[]}r=0,a+=Date.now()-e};for(let l in e.layersAndObjects){let t=e.layersAndObjects[l];if(t.length<=1)continue;let o=Date.now(),h={},c=[];for(let e of t){if(e.userData.isSnapObject){c.push(e);continue}let t,i=e;for(;i;){if(i.userData.isLayoutLevelObject){t=i;break}i=i.parent}if(!t)continue;let n=t.name;h[n]||(h[n]={object:t,children:[]}),h[n].children.push(e)}for(let e in h){let t=h[e],o=Ic.deepMerge(t.children,t.object,!1,!1,!0),l=o.added,u=o.removed;i[e]||(i[e]={object:t.object,children:[]}),n[e]||(n[e]={object:t.object,children:[]});let d=u.length>15e3;if(d){let e=Date.now();Kn.removeEmptyObjectsFromRemovingMarkedObjects2(u,t.object),a+=Date.now()-e}else r+=u.length;if(u.length===t.children.length)d||u.forEach((t=>{i[e].children.push(t)}));else{let n=u;u.length>=100&&(n=new Set(u));let r=e=>Array.isArray(n)?n.indexOf(e)>=0:n.has(e);for(let a=0;a15e3&&s()}e.layersAndObjects[l]=c,se.debug(`[DxfLoader] Merged layer '${l}' in ${(Date.now()-o)/1e3}s`)}r>0&&s();for(let l in n){let t=n[l];e.root.children.find((e=>e.name===l))||e.root.add(t.object),t.children.forEach((e=>{t.object.add(e)})),t.children=[]}se.debug(`[DxfLoader] MergeUtils.deepMerge costed ${Rr.mergeInfo.elapsedTime/1e3}s`),se.debug(`[DxfLoader] The remove operation of deep merge costed ${a/1e3}s`),se.debug(`[DxfLoader] Deep merge totally costed ${(Date.now()-t)/1e3}s`);let o=Rr.mergeInfo;se.debug(`[DxfLoader] Totally merged ${o.removedObjects} objects to ${o.mergedMeshes} meshes, ${o.mergedLines} lines, ${o.mergedPoints} points, ${o.mergedUnknownTypeObjects?o.mergedUnknownTypeObjects+" unknown type,":""} `)}static merge(e,t){return ft(this,null,(function*(){let i=St.getUpdateProgressFuncAsync(t),n={};e.objects.LAYOUT.forEach((e=>{var t;let i=e;n[i.layoutName]=i,null==(t=i.directAssociatedLeafObjectSet)||t.clear()}));let r=Date.now(),a={},s={},o=0,l=0,h=()=>{let e=Date.now();for(let t in a){let e=a[t];Kn.removeEmptyObjectsFromRemovingMarkedObjects(e.children,e.object),e.children=[]}o=0,l+=Date.now()-e},c=Object.keys(e.layersAndThreejsObjects).length,u=0;for(let t in e.layersAndThreejsObjects){let r=e.layersAndThreejsObjects[t];if(r.length<=1){yield i(++u/c*100);continue}let d=Date.now(),p={},f=[];for(let e of r){if(e.userData.isSnapObject){f.push(e);continue}let t,i=e;for(;i;){if(i.userData.isLayoutLevelObject){t=i;break}i=i.parent}if(!t)continue;let n=t.name;p[n]||(p[n]={object:t,children:[]}),p[n].children.push(e)}let m=Object.keys(p).length,g=0;for(let e in p){let t;if(e!==Kn.MODEL_LAYOUT_NAME){let i=n[e];i.directAssociatedLeafObjectSet||(i.directAssociatedLeafObjectSet=new Set),t=i.directAssociatedLeafObjectSet}let r=p[e],d=Rr.deepMerge(r.children,r.object,!1,!1,!0),v=d.added,y=d.removed;a[e]||(a[e]={object:r.object,children:[]}),s[e]||(s[e]={object:r.object,children:[]});let x=y.length>15e3;if(x){let e=Date.now();Kn.removeEmptyObjectsFromRemovingMarkedObjects(y,r.object),l+=Date.now()-e}else o+=y.length;if(y.length===r.children.length)x||y.forEach((t=>{a[e].children.push(t)}));else{let i=y;y.length>=100&&(i=new Set(y));let n=e=>Array.isArray(i)?i.indexOf(e)>=0:i.has(e);for(let s=0;s15e3&&h(),yield i((u+ ++g/m)/c*100)}yield i(++u/c*100),e.layersAndThreejsObjects[t]=f,se.debug(`[DxfLoader] Merged layer '${t}' in ${(Date.now()-d)/1e3}s`)}o>0&&h();for(let t in s){let i=s[t],r=e.threejsObject.children.find((e=>e.name===t));if(r){let e=r.children.find((e=>e.name===Kn.SNAP_GROUP_NAME));if(e&&t!==Kn.MODEL_LAYOUT_NAME){let i=n[t];i.directAssociatedLeafObjectSet||(i.directAssociatedLeafObjectSet=new Set),e.children.forEach((e=>{var t;return null==(t=i.directAssociatedLeafObjectSet)?void 0:t.add(e)}))}}r||e.threejsObject.add(i.object),i.children.forEach((e=>{e.visible||(e.userData.layerVisible=!1),i.object.add(e),e.updateWorldMatrix(!1,!1)})),i.children=[]}se.debug(`[DxfLoader] MergeUtils.deepMerge costed ${Rr.mergeInfo.elapsedTime/1e3}s`),se.debug(`[DxfLoader] The remove operation of deep merge costed ${l/1e3}s`),se.debug(`[DxfLoader] Deep merge totally costed ${(Date.now()-r)/1e3}s`);let d=Rr.mergeInfo;se.debug(`[DxfLoader] Totally merged ${d.removedObjects} objects to ${d.mergedMeshes} meshes, ${d.mergedLines} lines, ${d.mergedPoints} points, ${d.mergedUnknownTypeObjects?d.mergedUnknownTypeObjects+" unknown type,":""} `),i(100)}))}printStatsInfo(){for(let i in this.entityTypesAndTimes)this.entityTypesAndTimes[i].averageTime=this.entityTypesAndTimes[i].totalTime/this.entityTypesAndTimes[i].createCount;se.debug("[DxfLoader] Entity types and cost times in ms:",this.entityTypesAndTimes),se.debug("[DxfLoader] Entity types and mesh count:",this.statsInfo.entityTypesAndMeshCount);let e=0;if(Object.values(this.statsInfo.entityTypesAndMeshCount).forEach((t=>{e+=t})),this.enableRTC&&se.debug(`[DxfLoader] Totally rebased ${this.statsInfo.rebasedEntityCount}(out of ${e}) entities`),this.enableMerge){let e=Rr.mergeInfo;se.debug(`[DxfLoader] Inner merged ${e.removedObjects} objects to ${e.mergedMeshes} meshes, ${e.mergedLines} lines, ${e.mergedPoints} points, ${e.mergedUnknownTypeObjects?e.mergedUnknownTypeObjects+" unknown type,":""} in ${e.elapsedTime/1e3}s`)}let t=(e,t,...i)=>{Object.keys(t).length};t(0,this.statsInfo.unsupportedEntityTypes),t(0,this.statsInfo.unsupportedTextStyles),t(0,this.statsInfo.unsupportedHatchPatterns),this.statsInfo.unsupportedPolylineCount&&se.warn(`[DxfLoader] Unsupported polyline (with both width and linetype) count: ${this.statsInfo.unsupportedPolylineCount}, linetype will be ignored.`),t(0,this.statsInfo.invisibleEntities),t(0,this.statsInfo.ignoredFrozenLayersAndEntityCount),t(0,this.statsInfo.ignoredInserts),this.ignorePaperSpace&&t(0,this.statsInfo.ignoredPaperSpaceEntityTypesAndCount),this.font&&t(0,this.font.getUnsupportedChar())}static statLayoutAndLayerObjects(e){let t=new WeakSet,i=0;for(let a in e.layersAndThreejsObjects)e.layersAndThreejsObjects[a].forEach((e=>{e.geometry&&(i++,t.has(e)?console.warn(e):t.add(e))}));let n=new WeakSet,r=0;if(e.threejsObject.traverse((e=>{e.geometry&&(r++,n.has(e)?console.warn(e):n.add(e))})),i!=r)for(let a in e.layersAndThreejsObjects)e.layersAndThreejsObjects[a].forEach((e=>{e.geometry&&(n.has(e)||console.warn(e))}));se.info(`[DxfLoader] The count of layer objects is ${i},The count of layout objects is ${r} `)}static removeEmptyObjectsFromRemovingMarkedObjects(e,t){if(0===e.length)return;let i=e=>{let n=[];for(let i of e){i.userData.validCount=0;let e=i.parent;e&&e!==t&&(void 0===e.userData.validCount&&(e.userData.validCount=e.children.length),0==--e.userData.validCount&&n.push(e))}n.length>0&&i(n)};i(e),this.removeEmptyObjectsFromMark(t)}static removeEmptyObjectsFromMark(e){if(0===e.userData.validCount||Hn.isEmptyObject(e))return e.removeFromParent(),!0;for(let t=0;t{let n=[];for(let i of e){i.userData.validCount=0;let e=i.parent;e&&e!==t&&(void 0===e.userData.validCount&&(e.userData.validCount=e.children.length),0==--e.userData.validCount&&n.push(e))}n.length>0&&i(n)};i(e),this.removeEmptyObjectsFromMark2(t)}static removeEmptyObjectsFromMark2(e){if(0===e.userData.validCount||0===e.type&&0===e.children.length)return e.removeFromParent(),!0;for(let t=0;tt.visible=e)),this.viewer.enableRender()}};function Uc(e){return(Uc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vl(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s0e(e,t){for(var i=0;ie.length)&&(t=e.length);for(var i=0,n=new Array(t);i1&&void 0!==arguments[1]?arguments[1]:{};Vl(this,e),this.init(t,i)}return zl(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||bmt,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),i=0;i1?t-1:0),n=1;n-1?e.replace(/###/g,"."):e}function r(){return!e||"string"==typeof e}for(var a="string"!=typeof t?[].concat(t):t.split(".");a.length>1;){if(r())return{};var s=n(a.shift());!e[s]&&i&&(e[s]=new i),e=Object.prototype.hasOwnProperty.call(e,s)?e[s]:{}}return r()?{}:{obj:e,k:n(a.shift())}}function c0e(e,t,i){var n=L6(e,t,Object);n.obj[n.k]=i}function Tmt(e,t,i,n){var r=L6(e,t,Object),a=r.obj,s=r.k;a[s]=a[s]||[],n&&(a[s]=a[s].concat(i)),n||a[s].push(i)}function eP(e,t){var i=L6(e,t),n=i.obj,r=i.k;if(n)return n[r]}function u0e(e,t,i){var n=eP(e,i);return void 0!==n?n:eP(t,i)}function _0e(e,t,i){for(var n in t)"__proto__"!==n&&"constructor"!==n&&(n in e?"string"==typeof e[n]||e[n]instanceof String||"string"==typeof t[n]||t[n]instanceof String?i&&(e[n]=t[n]):_0e(e[n],t[n],i):e[n]=t[n]);return e}function Cy(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var wmt={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function Smt(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return wmt[e]})):e}var nP="undefined"!=typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,Mmt=[" ",",","?","!",";"];function Rmt(e,t,i){t=t||"",i=i||"";var n=Mmt.filter((function(e){return t.indexOf(e)<0&&i.indexOf(e)<0}));if(0===n.length)return!0;var r=new RegExp("(".concat(n.map((function(e){return"?"===e?"\\?":e})).join("|"),")")),a=!r.test(e);if(!a){var s=e.indexOf(i);s>0&&!r.test(e.substring(0,s))&&(a=!0)}return a}function h0e(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function JC(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var n=t.split(i),r=e,a=0;aa+s;)s++,l=r[o=n.slice(a,a+s).join(i)];if(void 0===l)return;if(t.endsWith(o)){if("string"==typeof l)return l;if(o&&"string"==typeof l[o])return l[o]}var h=n.slice(a+s).join(i);return h?T0e(l,h,i):void 0}r=r[n[a]]}return r}}var Pmt=function(e){Ay(i,Xf);var t=Amt(i);function i(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return Vl(this,i),n=t.call(this),nP&&Xf.call(Hc(n)),n.data=e||{},n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),void 0===n.options.ignoreJSONStructure&&(n.options.ignoreJSONStructure=!0),n}return zl(i,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,a=void 0!==n.ignoreJSONStructure?n.ignoreJSONStructure:this.options.ignoreJSONStructure,s=[e,t];i&&"string"!=typeof i&&(s=s.concat(i)),i&&"string"==typeof i&&(s=s.concat(r?i.split(r):i)),e.indexOf(".")>-1&&(s=e.split("."));var o=eP(this.data,s);return o||!a||"string"!=typeof i?o:T0e(this.data&&this.data[e]&&this.data[e][t],i,r)}},{key:"addResource",value:function(e,t,i,n){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var s=[e,t];i&&(s=s.concat(a?i.split(a):i)),e.indexOf(".")>-1&&(n=t,t=(s=e.split("."))[1]),this.addNamespaces(t),c0e(this.data,s,n),r.silent||this.emit("added",e,t,i,n)}},{key:"addResources",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var r in i)("string"==typeof i[r]||"[object Array]"===Object.prototype.toString.apply(i[r]))&&this.addResource(e,t,r,i[r],{silent:!0});n.silent||this.emit("added",e,t,i)}},{key:"addResourceBundle",value:function(e,t,i,n,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},s=[e,t];e.indexOf(".")>-1&&(n=i,i=t,t=(s=e.split("."))[1]),this.addNamespaces(t);var o=eP(this.data,s)||{};n?_0e(o,i,r):o=JC(JC({},o),i),c0e(this.data,s,o),a.silent||this.emit("added",e,t,i)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?JC(JC({},{}),this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"hasLanguageSomeTranslations",value:function(e){var t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find((function(e){return t[e]&&Object.keys(t[e]).length>0}))}},{key:"toJSON",value:function(){return this.data}}]),i}(),w0e={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,i,n,r){var a=this;return e.forEach((function(e){a.processors[e]&&(t=a.processors[e].process(t,i,n,r))})),t}};function d0e(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function qa(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return Vl(this,i),n=t.call(this),nP&&Xf.call(Hc(n)),_mt(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,Hc(n)),n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n.logger=Ju.create("translator"),n}return zl(i,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;var i=this.resolve(e,t);return i&&void 0!==i.res}},{key:"extractFromKey",value:function(e,t){var i=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===i&&(i=":");var n=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,r=t.ns||this.options.defaultNS||[],a=i&&e.indexOf(i)>-1,s=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||Rmt(e,i,n));if(a&&!s){var o=e.match(this.interpolator.nestingRegexp);if(o&&o.length>0)return{key:e,namespaces:r};var l=e.split(i);(i!==n||i===n&&this.options.ns.indexOf(l[0])>-1)&&(r=l.shift()),e=l.join(n)}return"string"==typeof r&&(r=[r]),{key:e,namespaces:r}}},{key:"translate",value:function(e,t,n){var r=this;if("object"!==Uc(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var a=void 0!==t.returnDetails?t.returnDetails:this.options.returnDetails,s=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,o=this.extractFromKey(e[e.length-1],t),l=o.key,h=o.namespaces,c=h[h.length-1],u=t.lng||this.language,d=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&"cimode"===u.toLowerCase()){if(d){var p=t.nsSeparator||this.options.nsSeparator;return a?(f.res="".concat(c).concat(p).concat(l),f):"".concat(c).concat(p).concat(l)}return a?(f.res=l,f):l}var f=this.resolve(e,t),m=f&&f.res,g=f&&f.usedKey||l,v=f&&f.exactUsedKey||l,y=Object.prototype.toString.apply(m),x=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject;if(b&&m&&("string"!=typeof m&&"boolean"!=typeof m&&"number"!=typeof m)&&["[object Number]","[object Function]","[object RegExp]"].indexOf(y)<0&&("string"!=typeof x||"[object Array]"!==y)){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var _=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,m,qa(qa({},t),{},{ns:h})):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");return a?(f.res=_,f):_}if(s){var w="[object Array]"===y,S=w?[]:{},M=w?v:g;for(var E in m)if(Object.prototype.hasOwnProperty.call(m,E)){var T="".concat(M).concat(s).concat(E);S[E]=this.translate(T,qa(qa({},t),{joinArrays:!1,ns:h})),S[E]===T&&(S[E]=m[E])}m=S}}else if(b&&"string"==typeof x&&"[object Array]"===y)(m=m.join(x))&&(m=this.extendTranslation(m,e,t,n));else{var A=!1,C=!1,P=void 0!==t.count&&"string"!=typeof t.count,R=i.hasDefaultValue(t),D=P?this.pluralResolver.getSuffix(u,t.count,t):"",L=t["defaultValue".concat(D)]||t.defaultValue;!this.isValidLookup(m)&&R&&(A=!0,m=L),this.isValidLookup(m)||(C=!0,m=l);var I=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&C?void 0:m,O=R&&L!==m&&this.options.updateMissing;if(C||A||O){if(this.logger.log(O?"updateKey":"missingKey",u,c,l,O?L:m),s){var k=this.resolve(l,qa(qa({},t),{},{keySeparator:!1}));k&&k.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var N=[],U=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&U&&U[0])for(var F=0;F1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach((function(e){if(!s.isValidLookup(t)){var l=s.extractFromKey(e,o),h=l.key;i=h;var c=l.namespaces;s.options.fallbackNS&&(c=c.concat(s.options.fallbackNS));var u=void 0!==o.count&&"string"!=typeof o.count,d=u&&!o.ordinal&&0===o.count&&s.pluralResolver.shouldUseIntlApi(),p=void 0!==o.context&&("string"==typeof o.context||"number"==typeof o.context)&&""!==o.context,f=o.lngs?o.lngs:s.languageUtils.toResolveHierarchy(o.lng||s.language,o.fallbackLng);c.forEach((function(e){s.isValidLookup(t)||(a=e,!f0e["".concat(f[0],"-").concat(e)]&&s.utils&&s.utils.hasLoadedNamespace&&!s.utils.hasLoadedNamespace(a)&&(f0e["".concat(f[0],"-").concat(e)]=!0,s.logger.warn('key "'.concat(i,'" for languages "').concat(f.join(", "),'" won\'t get resolved as namespace "').concat(a,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach((function(i){if(!s.isValidLookup(t)){r=i;var a,l=[h];if(s.i18nFormat&&s.i18nFormat.addLookupKeys)s.i18nFormat.addLookupKeys(l,h,i,e,o);else{var c;u&&(c=s.pluralResolver.getSuffix(i,o.count,o));var f="_zero";if(u&&(l.push(h+c),d&&l.push(h+f)),p){var m="".concat(h).concat(s.options.contextSeparator).concat(o.context);l.push(m),u&&(l.push(m+c),d&&l.push(m+f))}}for(;a=l.pop();)s.isValidLookup(t)||(n=a,t=s.getResource(i,e,a,o))}})))}))}})),{res:t,usedKey:i,exactUsedKey:n,usedLng:r,usedNS:a}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,i,n):this.resourceStore.getResource(e,t,i,n)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&t===i.substring(0,12)&&void 0!==e[i])return!0;return!1}}]),i}();function I6(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Dmt=function(){function e(t){Vl(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ju.create("languageUtils")}return zl(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length||(t.pop(),"x"===t[t.length-1].toLowerCase())?null:this.formatLanguageCode(t.join("-"))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],i=e.split("-");return this.options.lowerCaseLng?i=i.map((function(e){return e.toLowerCase()})):2===i.length?(i[0]=i[0].toLowerCase(),i[1]=i[1].toUpperCase(),t.indexOf(i[1].toLowerCase())>-1&&(i[1]=I6(i[1].toLowerCase()))):3===i.length&&(i[0]=i[0].toLowerCase(),2===i[1].length&&(i[1]=i[1].toUpperCase()),"sgn"!==i[0]&&2===i[2].length&&(i[2]=i[2].toUpperCase()),t.indexOf(i[1].toLowerCase())>-1&&(i[1]=I6(i[1].toLowerCase())),t.indexOf(i[2].toLowerCase())>-1&&(i[2]=I6(i[2].toLowerCase()))),i.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,i=this;return e?(e.forEach((function(e){if(!t){var n=i.formatLanguageCode(e);(!i.options.supportedLngs||i.isSupportedCode(n))&&(t=n)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var n=i.getLanguagePartFromCode(e);if(i.isSupportedCode(n))return t=n;t=i.options.supportedLngs.find((function(e){if(0===e.indexOf(n))return e}))}})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var i=e[t];return i||(i=e[this.getScriptPartFromCode(t)]),i||(i=e[this.formatLanguageCode(t)]),i||(i=e[this.getLanguagePartFromCode(t)]),i||(i=e.default),i||[]}},{key:"toResolveHierarchy",value:function(e,t){var i=this,n=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],a=function(e){e&&(i.isSupportedCode(e)?r.push(e):i.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&a(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&a(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&a(this.getLanguagePartFromCode(e))):"string"==typeof e&&a(this.formatLanguageCode(e)),n.forEach((function(e){r.indexOf(e)<0&&a(i.formatLanguageCode(e))})),r}}]),e}(),Omt=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],kmt={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}},Fmt=["v1","v2","v3"],m0e={zero:0,one:1,two:2,few:3,many:4,other:5};function Nmt(){var e={};return Omt.forEach((function(t){t.lngs.forEach((function(i){e[i]={numbers:t.nr,plurals:kmt[t.fc]}}))})),e}var Bmt=function(){function e(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Vl(this,e),this.languageUtils=t,this.options=i,this.logger=Ju.create("pluralResolver"),(!this.options.compatibilityJSON||"v4"===this.options.compatibilityJSON)&&("undefined"==typeof Intl||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=Nmt()}return zl(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(e,{type:t.ordinal?"ordinal":"cardinal"})}catch(e){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.getRule(e,t);return this.shouldUseIntlApi()?i&&i.resolvedOptions().pluralCategories.length>1:i&&i.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,i).map((function(e){return"".concat(t).concat(e)}))}},{key:"getSuffixes",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,i);return n?this.shouldUseIntlApi()?n.resolvedOptions().pluralCategories.sort((function(e,t){return m0e[e]-m0e[t]})).map((function(e){return"".concat(t.options.prepend).concat(e)})):n.numbers.map((function(n){return t.getSuffix(e,n,i)})):[]}},{key:"getSuffix",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this.getRule(e,i);return n?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(n.select(t)):this.getSuffixRetroCompatible(n,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var i=this,n=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),r=e.numbers[n];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var a=function(){return i.options.prepend&&r.toString()?i.options.prepend+r.toString():r.toString()};return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?"_plural_".concat(r.toString()):a():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?a():this.options.prepend&&n.toString()?this.options.prepend+n.toString():n.toString()}},{key:"shouldUseIntlApi",value:function(){return!Fmt.includes(this.options.compatibilityJSON)}}]),e}();function g0e(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function Vc(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};Vl(this,e),this.logger=Ju.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return zl(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:Smt,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?Cy(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?Cy(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?Cy(t.nestingPrefix):t.nestingPrefixEscaped||Cy("$t("),this.nestingSuffix=t.nestingSuffix?Cy(t.nestingSuffix):t.nestingSuffixEscaped||Cy(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var i="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(i,"g")}},{key:"interpolate",value:function(e,t,i,n){var r,a,s,o=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function h(e){return e.replace(/\$/g,"$$$$")}var c=function(e){if(e.indexOf(o.formatSeparator)<0){var r=u0e(t,l,e);return o.alwaysFormat?o.format(r,void 0,i,Vc(Vc(Vc({},n),t),{},{interpolationkey:e})):r}var a=e.split(o.formatSeparator),s=a.shift().trim(),h=a.join(o.formatSeparator).trim();return o.format(u0e(t,l,s),h,i,Vc(Vc(Vc({},n),t),{},{interpolationkey:s}))};this.resetRegExp();var u=n&&n.missingInterpolationHandler||this.options.missingInterpolationHandler,d=n&&n.interpolation&&void 0!==n.interpolation.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return h(e)}},{regex:this.regexp,safeValue:function(e){return o.escapeValue?h(o.escape(e)):h(e)}}].forEach((function(t){for(s=0;r=t.regex.exec(e);){var i=r[1].trim();if(void 0===(a=c(i)))if("function"==typeof u){var l=u(e,r,n);a="string"==typeof l?l:""}else if(n&&n.hasOwnProperty(i))a="";else{if(d){a=r[0];continue}o.logger.warn("missed to pass in variable ".concat(i," for interpolating ").concat(e)),a=""}else"string"!=typeof a&&!o.useRawValueToEscape&&(a=l0e(a));var h=t.safeValue(a);if(e=e.replace(r[0],h),d?(t.regex.lastIndex+=h.length,t.regex.lastIndex-=r[0].length):t.regex.lastIndex=0,++s>=o.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var i,n,r=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=Vc({},a);function o(e,t){var i=this.nestingOptionsSeparator;if(e.indexOf(i)<0)return e;var n=e.split(new RegExp("".concat(i,"[ ]*{"))),r="{".concat(n[1]);e=n[0],r=(r=this.interpolate(r,s)).replace(/'/g,'"');try{s=JSON.parse(r),t&&(s=Vc(Vc({},t),s))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(i).concat(r)}return delete s.defaultValue,e}for(s.applyPostProcessor=!1,delete s.defaultValue;i=this.nestingRegexp.exec(e);){var l=[],h=!1;if(-1!==i[0].indexOf(this.formatSeparator)&&!/{.*}/.test(i[1])){var c=i[1].split(this.formatSeparator).map((function(e){return e.trim()}));i[1]=c.shift(),l=c,h=!0}if((n=t(o.call(this,i[1].trim(),s),s))&&i[0]===e&&"string"!=typeof n)return n;"string"!=typeof n&&(n=l0e(n)),n||(this.logger.warn("missed to resolve ".concat(i[1]," for nesting ").concat(e)),n=""),h&&(n=l.reduce((function(e,t){return r.format(e,t,a.lng,Vc(Vc({},a),{},{interpolationkey:i[1].trim()}))}),n.trim())),e=e.replace(i[0],n),this.regexp.lastIndex=0}return e}}]),e}();function v0e(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function jf(e){for(var t=1;t-1){var n=e.split("(");t=n[0].toLowerCase().trim();var r=n[1].substring(0,n[1].length-1);"currency"===t&&r.indexOf(":")<0?i.currency||(i.currency=r.trim()):"relativetime"===t&&r.indexOf(":")<0?i.range||(i.range=r.trim()):r.split(";").forEach((function(e){if(e){var t=P6(e.split(":")),n=t[0],r=t.slice(1).join(":");i[n.trim()]||(i[n.trim()]=r.trim()),"false"===r.trim()&&(i[n.trim()]=!1),"true"===r.trim()&&(i[n.trim()]=!0),isNaN(r.trim())||(i[n.trim()]=parseInt(r.trim(),10))}}))}return{formatName:t,formatOptions:i}}var Vmt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Vl(this,e),this.logger=Ju.create("formatter"),this.options=t,this.formats={number:function(e,t,i){return new Intl.NumberFormat(t,i).format(e)},currency:function(e,t,i){return new Intl.NumberFormat(t,jf(jf({},i),{},{style:"currency"})).format(e)},datetime:function(e,t,i){return new Intl.DateTimeFormat(t,jf({},i)).format(e)},relativetime:function(e,t,i){return new Intl.RelativeTimeFormat(t,jf({},i)).format(e,i.range||"day")},list:function(e,t,i){return new Intl.ListFormat(t,jf({},i)).format(e)}},this.init(t)}return zl(e,[{key:"init",value:function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||","}},{key:"add",value:function(e,t){this.formats[e.toLowerCase().trim()]=t}},{key:"format",value:function(e,t,i,n){var r=this;return t.split(this.formatSeparator).reduce((function(e,t){var a=Hmt(t),s=a.formatName,o=a.formatOptions;if(r.formats[s]){var l=e;try{var h=n&&n.formatParams&&n.formatParams[n.interpolationkey]||{},c=h.locale||h.lng||n.locale||n.lng||i;l=r.formats[s](e,c,jf(jf(jf({},o),n),h))}catch(e){r.logger.warn(e)}return l}return r.logger.warn("there was no format function for ".concat(s)),e}),e)}}]),e}();function y0e(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function x0e(e){for(var t=1;t3&&void 0!==arguments[3]?arguments[3]:{};return Vl(this,i),a=t.call(this),nP&&Xf.call(Hc(a)),a.backend=e,a.store=n,a.services=r,a.languageUtils=r.languageUtils,a.options=s,a.logger=Ju.create("backendConnector"),a.waitingReads=[],a.maxParallelReads=s.maxParallelReads||10,a.readingCalls=0,a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(r,s.backend,s),a}return zl(i,[{key:"queueLoad",value:function(e,t,i,n){var r=this,a={},s={},o={},l={};return e.forEach((function(e){var n=!0;t.forEach((function(t){var o="".concat(e,"|").concat(t);!i.reload&&r.store.hasResourceBundle(e,t)?r.state[o]=2:r.state[o]<0||(1===r.state[o]?void 0===s[o]&&(s[o]=!0):(r.state[o]=1,n=!1,void 0===s[o]&&(s[o]=!0),void 0===a[o]&&(a[o]=!0),void 0===l[t]&&(l[t]=!0)))})),n||(o[e]=!0)})),(Object.keys(a).length||Object.keys(s).length)&&this.queue.push({pending:s,pendingCount:Object.keys(s).length,loaded:{},errors:[],callback:n}),{toLoad:Object.keys(a),pending:Object.keys(s),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(l)}}},{key:"loaded",value:function(e,t,i){var n=e.split("|"),r=n[0],a=n[1];t&&this.emit("failedLoading",r,a,t),i&&this.store.addResourceBundle(r,a,i),this.state[e]=t?-1:2;var s={};this.queue.forEach((function(i){Tmt(i.loaded,[r],a),qmt(i,e),t&&i.errors.push(t),0===i.pendingCount&&!i.done&&(Object.keys(i.loaded).forEach((function(e){s[e]||(s[e]={});var t=Object.keys(s[e]);t.length&&t.forEach((function(i){void 0!==t[i]&&(s[e][i]=!0)}))})),i.done=!0,i.errors.length?i.callback(i.errors):i.callback())})),this.emit("loaded",s),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function(e,t,i){var n=this,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,s=arguments.length>5?arguments[5]:void 0;return e.length?this.readingCalls>=this.maxParallelReads?void this.waitingReads.push({lng:e,ns:t,fcName:i,tried:r,wait:a,callback:s}):(this.readingCalls++,this.backend[i](e,t,(function(o,l){if(o&&l&&r<5)setTimeout((function(){n.read.call(n,e,t,i,r+1,2*a,s)}),a);else{if(n.readingCalls--,n.waitingReads.length>0){var h=n.waitingReads.shift();n.read(h.lng,h.ns,h.fcName,h.tried,h.wait,h.callback)}s(o,l)}}))):s(null,{})}},{key:"prepareLoading",value:function(e,t){var i=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var a=this.queueLoad(e,t,n,r);if(!a.toLoad.length)return a.pending.length||r(),null;a.toLoad.forEach((function(e){i.loadOne(e)}))}},{key:"load",value:function(e,t,i){this.prepareLoading(e,t,{},i)}},{key:"reload",value:function(e,t,i){this.prepareLoading(e,t,{reload:!0},i)}},{key:"loadOne",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=e.split("|"),r=n[0],a=n[1];this.read(r,a,"read",void 0,void 0,(function(n,s){n&&t.logger.warn("".concat(i,"loading namespace ").concat(a," for language ").concat(r," failed"),n),!n&&s&&t.logger.log("".concat(i,"loaded namespace ").concat(a," for language ").concat(r),s),t.loaded(e,n,s)}))}},{key:"saveMissing",value:function(e,t,i,n,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)?this.logger.warn('did not save key "'.concat(i,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null==i||""===i||(this.backend&&this.backend.create&&this.backend.create(e,t,i,n,null,x0e(x0e({},a),{},{isUpdate:r})),e&&e[0]&&this.store.addResource(e[0],t,i,n))}}]),i}();function jmt(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===Uc(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===Uc(e[2])||"object"===Uc(e[3])){var i=e[3]||e[2];Object.keys(i).forEach((function(e){t[e]=i[e]}))}return t},interpolation:{escapeValue:!0,format:function(e,t,i,n){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function b0e(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function E0e(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function Ku(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(Vl(this,i),e=t.call(this),nP&&Xf.call(Hc(e)),e.options=b0e(n),e.services={},e.logger=Ju,e.modules={external:[]},$mt(Hc(e)),r&&!e.isInitialized&&!n.isClone){if(!e.options.initImmediate)return e.init(n,r),ng(e,Hc(e));setTimeout((function(){e.init(n,r)}),0)}return e}return zl(i,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0;"function"==typeof t&&(i=t,t={}),!t.defaultNS&&t.ns&&("string"==typeof t.ns?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));var n=jmt();function r(e){return e?"function"==typeof e?new e:e:null}if(this.options=Ku(Ku(Ku({},n),this.options),b0e(t)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=Ku(Ku({},n.interpolation),this.options.interpolation)),void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator),!this.options.isClone){var a;this.modules.logger?Ju.init(r(this.modules.logger),this.options):Ju.init(null,this.options),this.modules.formatter?a=this.modules.formatter:"undefined"!=typeof Intl&&(a=Vmt);var s=new Dmt(this.options);this.store=new Pmt(this.options.resources,this.options);var o=this.services;o.logger=Ju,o.resourceStore=this.store,o.languageUtils=s,o.pluralResolver=new Bmt(s,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a&&(!this.options.interpolation.format||this.options.interpolation.format===n.interpolation.format)&&(o.formatter=r(a),o.formatter.init(o,this.options),this.options.interpolation.format=o.formatter.format.bind(o.formatter)),o.interpolator=new Umt(this.options),o.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},o.backendConnector=new Wmt(r(this.modules.backend),o.resourceStore,o,this.options),o.backendConnector.on("*",(function(t){for(var i=arguments.length,n=new Array(i>1?i-1:0),r=1;r1?i-1:0),r=1;r0&&"dev"!==l[0]&&(this.options.lng=l[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach((function(t){e[t]=function(){var i;return(i=e.store)[t].apply(i,arguments)}}));["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach((function(t){e[t]=function(){var i;return(i=e.store)[t].apply(i,arguments),e}}));var h=d_(),c=function(){var t=function(t,n){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),h.resolve(n),i(t,n)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?c():setTimeout(c,0),h}},{key:"loadResources",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:QC,n="string"==typeof e?e:this.language;if("function"==typeof e&&(i=e),!this.options.resources||this.options.partialBundledLanguages){if(n&&"cimode"===n.toLowerCase())return i();var r=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){r.indexOf(e)<0&&r.push(e)}))};if(n)a(n);else this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((function(e){return a(e)}));this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(r,this.options.ns,(function(e){!e&&!t.resolvedLanguage&&t.language&&t.setResolvedLanguage(t.language),i(e)}))}else i(null)}},{key:"reloadResources",value:function(e,t,i){var n=d_();return e||(e=this.languages),t||(t=this.options.ns),i||(i=QC),this.services.backendConnector.reload(e,t,(function(e){n.resolve(),i(e)})),n}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&w0e.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"setResolvedLanguage",value:function(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(var t=0;t-1)&&this.store.hasLanguageSomeTranslations(i)){this.resolvedLanguage=i;break}}}},{key:"changeLanguage",value:function(e,t){var i=this;this.isLanguageChangingTo=e;var n=d_();this.emit("languageChanging",e);var r=function(e){i.language=e,i.languages=i.services.languageUtils.toResolveHierarchy(e),i.resolvedLanguage=void 0,i.setResolvedLanguage(e)},a=function(a){!e&&!a&&i.services.languageDetector&&(a=[]);var s="string"==typeof a?a:i.services.languageUtils.getBestMatchFromCodes(a);s&&(i.language||r(s),i.translator.language||i.translator.changeLanguage(s),i.services.languageDetector&&i.services.languageDetector.cacheUserLanguage(s)),i.loadResources(s,(function(e){!function(e,a){a?(r(a),i.translator.changeLanguage(a),i.isLanguageChangingTo=void 0,i.emit("languageChanged",a),i.logger.log("languageChanged",a)):i.isLanguageChangingTo=void 0,n.resolve((function(){return i.t.apply(i,arguments)})),t&&t(e,(function(){return i.t.apply(i,arguments)}))}(e,s)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(a):a(e):a(this.services.languageDetector.detect()),n}},{key:"getFixedT",value:function(e,t,i){var n=this,r=function e(t,r){var a;if("object"!==Uc(r)){for(var s=arguments.length,o=new Array(s>2?s-2:0),l=2;l1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var n=this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===n.toLowerCase())return!0;var s=function(e,i){var n=t.services.backendConnector.state["".concat(e,"|").concat(i)];return-1===n||2===n};if(i.precheck){var o=i.precheck(this,s);if(void 0!==o)return o}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||s(n,e)&&(!r||s(a,e)))}},{key:"loadNamespaces",value:function(e,t){var i=this,n=d_();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach((function(e){i.options.ns.indexOf(e)<0&&i.options.ns.push(e)})),this.loadResources((function(e){n.resolve(),t&&t(e)})),n):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var i=d_();"string"==typeof e&&(e=[e]);var n=this.options.preload||[],r=e.filter((function(e){return n.indexOf(e)<0}));return r.length?(this.options.preload=n.concat(r),this.loadResources((function(e){i.resolve(),t&&t(e)})),i):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){return e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),e?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr":"rtl"}},{key:"cloneInstance",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:QC,r=Ku(Ku(Ku({},this.options),t),{isClone:!0}),a=new i(r);return["store","services","language"].forEach((function(t){a[t]=e[t]})),a.services=Ku({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new p0e(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}));var Wa=tP.createInstance();Wa.createInstance=tP.createInstance;var NGt=Wa.createInstance,BGt=Wa.init,UGt=Wa.loadResources,HGt=Wa.reloadResources,VGt=Wa.use,zGt=Wa.changeLanguage,GGt=Wa.getFixedT,Qu=Wa.t,qGt=Wa.exists,WGt=Wa.setDefaultNamespace,jGt=Wa.hasLoadedNamespace,XGt=Wa.loadNamespaces,YGt=Wa.loadLanguages,rg=Wa,Yf=class{constructor(e){this.progresseItems=[],this.element=document.createElement("div"),this.element.classList.add("progress-bar"),e.appendChild(this.element)}setVisibility(e){this.element&&(e?this.element.classList.remove("hidden"):this.element.classList.add("hidden"))}addProgressItem(e,t){let i=this.progresseItems.find((t=>t.id===e));if(!i){let n=document.createElement("div");n.classList.add("progress-bar-item"),n.innerHTML=t||"",this.element.append(n),i={id:e,div:n},this.progresseItems.push(i)}this.setVisibility(!0)}updateProgress(e,t,i){let n=this.progresseItems.find((t=>t.id===e));if(!n)return;let r=t?`${t}`:"";t&&null!=i&&(r+=": "),null!=i&&(i<0||i>100?(console.warn(`[ProgressBar] Invalid progress value: ${i}`),r+="--%"):r+=`${i.toFixed(2)}%`),n.div.innerHTML=r}removeProgressItem(e){let t=this.progresseItems.find((t=>t.id===e));t&&t.div.remove(),0===this.progresseItems.length&&this.setVisibility(!1)}delayRemoveProgressItem(e,t=3e3){setTimeout((()=>{this.removeProgressItem(e)}),t)}};function Py(e){return{all:e=e||new Map,on:function(t,i){var n=e.get(t);n?n.push(i):e.set(t,[i])},off:function(t,i){var n=e.get(t);n&&(i?n.splice(n.indexOf(i)>>>0,1):e.set(t,[]))},emit:function(t,i){var n=e.get(t);n&&n.slice().map((function(e){e(i)})),(n=e.get("*"))&&n.slice().map((function(e){e(t,i)}))}}}var rP=class{constructor(e){this.viewer=e,this.itemList={},this.handleMouseWheel=e=>{e.preventDefault(),this.element&&(this.element.scrollLeft+=e.deltaY)},e.addEventListener("ModelLoaded",(()=>{this.init()}))}init(){var e;let t=document.createElement("div");t.classList.add("model-layout-switch-bar");let i=document.createElement("div");i.classList.add("model-layout-switch-bar-content"),i.addEventListener("wheel",this.handleMouseWheel),this.viewer.getLayoutNames().forEach(((e,t)=>{let n=this.createItem(e,t);this.itemList[e]=n,n.resetActivate=()=>{for(let e in this.itemList)this.itemList[e].resetActive()},null==i||i.appendChild(n.element)})),this.element=t,this.content=i,this.element.appendChild(this.content),null==(e=this.viewer.widgetContainer)||e.appendChild(this.element)}createItem(e,t){let i=new D6(this.viewer,e);return 0===t&&i.setActive(!0),i}destroy(){var e,t;for(let i in this.itemList){let t=this.itemList[i];t.destroy(),null==(e=this.content)||e.removeChild(t.element)}this.itemList={},this.element&&this.content&&(this.element.removeChild(this.content),this.element.removeEventListener("wheel",this.handleMouseWheel),null==(t=this.viewer.widgetContainer)||t.removeChild(this.element),this.element=void 0)}show(){this.element&&(this.element.style.display="block")}hide(){this.element&&(this.element.style.display="none")}},D6=class{constructor(e,t){this.viewer=e,this.eventBus=Py(),this.active=!1,this.element=this.createItem(t),this.eventBus.on("activechange",(e=>{this.resetActivate&&this.resetActivate(),e?(this.element.classList.add("activate"),this.viewer.activateLayout(t)):this.element.classList.remove("activate")}))}createItem(e){let t=document.createElement("div"),i=document.createElement("span");return t.classList.add("model-layout-switch-item"),t.onclick=()=>{this.active=!this.active,this.eventBus.emit("activechange",this.active)},i.innerText=e,t.appendChild(i),t}setActive(e){this.active!==e&&(this.active=e,this.eventBus.emit("activechange",e))}resetActive(){this.active=!1,this.element.classList.remove("activate")}destroy(){this.eventBus.off("activechange")}},iP=class{constructor(e,t){this.flyDuration=500,this.autoRotateRemainingTime=0,this.automaticallyAdjustCameraPosition=!0,this.rotateIntervalStartTime=0,this.camera=e,this.controls=t}flyTo(e,t,i){let n=this.camera,r=this.controls;if(!n||!r)return;if(e.equals(t))return void console.error("[Controls] camera position and lookAt cannot be the same!");if(isNaN(e.x)||isNaN(e.y)||isNaN(e.z)||isNaN(t.x)||isNaN(t.y)||isNaN(t.z))return void console.error("[Controls] invalid position or lookAt!");if(this.automaticallyAdjustCameraPosition){let i=e.distanceTo(t);in.far&&(e=e.clone().sub(t).normalize().multiplyScalar(.9*n.far),console.warn("[Controls] camera could be too far to see the object!"))}let a=n.position.clone(),s=r.target.clone(),o=this.flyDuration,l=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval((()=>{let h=Date.now()-l;h>o&&(h=o);let c=(e,t,i)=>{let n=e.x+(t.x-e.x)*i,r=e.y+(t.y-e.y)*i,a=e.z+(t.z-e.z)*i;return new D(n,r,a)};((e,t)=>{n.lookAt(t),n.position.set(e.x,e.y,e.z),r.target.set(t.x,t.y,t.z),r.update()})(c(a,e,h/o),c(s,t,h/o)),h>=o&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0,i&&i())}),10)}lookTo(e){let t=this.camera,i=this.controls;if(!t||!i)return;let n=t.position,r=i.target.distanceTo(n),a=e.normalize().multiplyScalar(r),s=new D(n.x+a.x,n.y+a.y,n.z+a.z);this.flyTo(n,s)}startAutoRotate(){let e=this.camera,t=this.controls;if(!e||!t)return;t.autoRotate=!0;let i=new D;e.getWorldPosition(i);let n=t.target;if(n.y===i.y)return;let r=(n.y-i.y)/50;for(let a=0;a<50;++a)setTimeout((()=>{let e=t.target.y-r;t.target.setY(e),t.update()}),30*a)}delayAutoRotate(){this.autoRotateRemainingTime=5e3,this.controls&&(this.controls.autoRotate=!1)}startToRotate(e){let t=Date.now()-this.rotateIntervalStartTime;this.rotateIntervalStartTime=Date.now(),!(this.rotateInterval&&t<100)&&(this.rotateInterval&&clearInterval(this.rotateInterval),this.rotateInterval=setInterval((()=>{if(Date.now()-this.rotateIntervalStartTime>=100)return clearInterval(this.rotateInterval),void(this.rotateInterval=void 0);"ArrowLeft"===e.code||"ArrowRight"===e.code?this.rotateLeftOrRight(.3,"ArrowLeft"===e.code):("ArrowUp"===e.code||"ArrowDown"===e.code)&&this.rotateUpOrDown(.3,"ArrowUp"===e.code)}),1))}rotateLeftOrRight(e,t=!0){let i=this.controls;if(!this.camera||!i)return;let n=this.camera.position,r=i.target,a=r.clone(),s=Math.PI*e/180;t&&(s=-s),a.x=(r.x-n.x)*Math.cos(s)-(r.z-n.z)*Math.sin(s)+n.x,a.z=(r.z-n.z)*Math.cos(s)+(r.x-n.x)*Math.sin(s)+n.z,this.camera.lookAt(a),i.target=a,i.update()}rotateUpOrDown(e,t=!0){let i=this.controls;if(!this.camera||!i)return;let n=this.camera.position,r=i.target,a=r.clone(),s=Math.PI*e/180,o=new D(r.x-n.x,r.y-n.y,r.z-n.z).length(),l=r.y-n.y;t||(s=-s);let h=Math.asin(l/o)+s;if(h<-Math.PI/2||h>Math.PI/2)return;let c=Math.sin(h)*o;a.y=r.y+(c-l),i.target=a,i.update()}},S0e=class{constructor(e){this.object=e}instantiate(){let e=Date.now();this.instantiateInner(this.object),console.log(`[Inst] instantiate() costed ${(Date.now()-e)/1e3}s`)}instantiateInner(e){if(!e.children||0===e.children.length)return;let t=e.children.length,i={},n=[];for(let s=0;s0||!t.geometry)continue;let r=!1,a=Object.values(i);for(let o=a.length-1;o>=0;--o){let l=a[o].indexes[0],h=e.children[l];if(this.geometryEquals(t.geometry,h.geometry)&&es.materialsEquals(t.material,h.material)){i[l]||(i[l]={indexes:[l]},this.removeFromArray(n,l)),i[l].indexes.push(s),r=!0;break}}for(let o=n.length-1;!r&&o>=0;--o){let a=n[o],l=e.children[a];if(this.geometryEquals(t.geometry,l.geometry)&&es.materialsEquals(t.material,l.material)){i[a]||(i[a]={indexes:[a]},this.removeFromArray(n,a)),i[a].indexes.push(s),r=!0;break}}r||n.push(s)}if(Object.keys(i).length<=0)return;let r=[],a=[];Object.values(i).forEach((t=>{let i=t.indexes;a.push(...i);let n=e.children[i[0]],s=n.material;if(s instanceof yr)s=s.clone();else if(Array.isArray(s)){let e=[];s.forEach((t=>e.push(t.clone()))),s=e}let o=new Oi(n.geometry,s,i.length);o.name=`[Instanced] ${n.name}`;for(let r=0;rt-e)),a.forEach((t=>e.remove(e.children[t]))),r.forEach((t=>{t.parent=e,e.children.push(t)})),e.updateMatrix(),console.log(`[Inst] ${a.length}(out of ${t}) objects instanced to ${r.length} InstancedMesh`)}removeFromArray(e,t){for(let i=e.length-1;i>=0;--i)if(e[i]===t)return void e.splice(i,1)}geometryEquals(e,t){return Qt.geometryEquals(e,t)}},$f=class{constructor(){this.TIMEOUT="timeout",this.INTERVAL="interval",this.timeoutMap={},this.intervalMap={}}run(e=this.INTERVAL,t,i=16.7){let n=Date.now,r=n(),a=r,s=Symbol(""),o=()=>{this.setIdMap(s,e,o),a=n(),a-r>=i&&(e===this.intervalMap&&(r=n(),a=r),t(),e===this.TIMEOUT&&this.clearTimeout(s))};return this.setIdMap(s,e,o),s}setIdMap(e,t,i){let n=requestAnimationFrame(i);t===this.INTERVAL?this.intervalMap[e]=n:t===this.TIMEOUT&&(this.timeoutMap[e]=n)}setTimeout(e,t){return this.run(this.TIMEOUT,e,t)}clearTimeout(e){cancelAnimationFrame(this.timeoutMap[e])}setInterval(e,t){return this.run(this.INTERVAL,e,t)}clearInterval(e){cancelAnimationFrame(this.intervalMap[e])}},f_=class extends Rm{constructor(e){super(e)}parse(e){if(e.length<19)throw new Error("THREE.TGALoader: Not enough data to contain header.");let t=0,i=new Uint8Array(e),n={id_length:i[t++],colormap_type:i[t++],image_type:i[t++],colormap_index:i[t++]|i[t++]<<8,colormap_length:i[t++]|i[t++]<<8,colormap_size:i[t++],origin:[i[t++]|i[t++]<<8,i[t++]|i[t++]<<8],width:i[t++]|i[t++]<<8,height:i[t++]|i[t++]<<8,pixel_size:i[t++],flags:i[t++]};if(function(e){switch(e.image_type){case 1:case 9:if(e.colormap_length>256||24!==e.colormap_size||1!==e.colormap_type)throw new Error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case 2:case 3:case 10:case 11:if(e.colormap_type)throw new Error("THREE.TGALoader: Invalid type colormap data for colormap type.");break;case 0:throw new Error("THREE.TGALoader: No data.");default:throw new Error("THREE.TGALoader: Invalid type "+e.image_type)}if(e.width<=0||e.height<=0)throw new Error("THREE.TGALoader: Invalid image size.");if(8!==e.pixel_size&&16!==e.pixel_size&&24!==e.pixel_size&&32!==e.pixel_size)throw new Error("THREE.TGALoader: Invalid pixel size "+e.pixel_size)}(n),n.id_length+t>e.length)throw new Error("THREE.TGALoader: No data.");t+=n.id_length;let r=!1,a=!1,s=!1;switch(n.image_type){case 9:r=!0,a=!0;break;case 1:a=!0;break;case 10:r=!0;break;case 2:break;case 11:r=!0,s=!0;break;case 3:s=!0}let o=new Uint8Array(n.width*n.height*4),l=function(e,t,i,n,r){let a,s,o=i.pixel_size>>3,l=i.width*i.height*o;if(t&&(s=r.subarray(n,n+=i.colormap_length*(i.colormap_size>>3))),e){a=new Uint8Array(l);let e,t,i,s=0,h=new Uint8Array(o);for(;s>4){default:case 2:o=0,h=1,u=t,l=0,c=1,d=i;break;case 0:o=0,h=1,u=t,l=i-1,c=-1,d=-1;break;case 3:o=t-1,h=-1,u=-1,l=0,c=1,d=i;break;case 1:o=t-1,h=-1,u=-1,l=i-1,c=-1,d=-1}if(s)switch(n.pixel_size){case 8:!function(e,t,i,r,a,s,o,l){let h,c,u,d=0,p=n.width;for(u=t;u!==r;u+=i)for(c=a;c!==o;c+=s,d++)h=l[d],e[4*(c+p*u)+0]=h,e[4*(c+p*u)+1]=h,e[4*(c+p*u)+2]=h,e[4*(c+p*u)+3]=255}(e,l,c,d,o,h,u,r);break;case 16:!function(e,t,i,r,a,s,o,l){let h,c,u=0,d=n.width;for(c=t;c!==r;c+=i)for(h=a;h!==o;h+=s,u+=2)e[4*(h+d*c)+0]=l[u+0],e[4*(h+d*c)+1]=l[u+0],e[4*(h+d*c)+2]=l[u+0],e[4*(h+d*c)+3]=l[u+1]}(e,l,c,d,o,h,u,r);break;default:throw new Error("THREE.TGALoader: Format not supported.")}else switch(n.pixel_size){case 8:!function(e,t,i,r,a,s,o,l,h){let c,u,d,p=h,f=0,m=n.width;for(d=t;d!==r;d+=i)for(u=a;u!==o;u+=s,f++)c=l[f],e[4*(u+m*d)+3]=255,e[4*(u+m*d)+2]=p[3*c+0],e[4*(u+m*d)+1]=p[3*c+1],e[4*(u+m*d)+0]=p[3*c+2]}(e,l,c,d,o,h,u,r,a);break;case 16:!function(e,t,i,r,a,s,o,l){let h,c,u,d=0,p=n.width;for(u=t;u!==r;u+=i)for(c=a;c!==o;c+=s,d+=2)h=l[d+0]+(l[d+1]<<8),e[4*(c+p*u)+0]=(31744&h)>>7,e[4*(c+p*u)+1]=(992&h)>>2,e[4*(c+p*u)+2]=(31&h)<<3,e[4*(c+p*u)+3]=32768&h?0:255}(e,l,c,d,o,h,u,r);break;case 24:!function(e,t,i,r,a,s,o,l){let h,c,u=0,d=n.width;for(c=t;c!==r;c+=i)for(h=a;h!==o;h+=s,u+=3)e[4*(h+d*c)+3]=255,e[4*(h+d*c)+2]=l[u+0],e[4*(h+d*c)+1]=l[u+1],e[4*(h+d*c)+0]=l[u+2]}(e,l,c,d,o,h,u,r);break;case 32:!function(e,t,i,r,a,s,o,l){let h,c,u=0,d=n.width;for(c=t;c!==r;c+=i)for(h=a;h!==o;h+=s,u+=4)e[4*(h+d*c)+2]=l[u+0],e[4*(h+d*c)+1]=l[u+1],e[4*(h+d*c)+0]=l[u+2],e[4*(h+d*c)+3]=l[u+3]}(e,l,c,d,o,h,u,r);break;default:throw new Error("THREE.TGALoader: Format not supported.")}}(o,n.width,n.height,l.pixel_data,l.palettes),{data:o,width:n.width,height:n.height,flipY:!0,generateMipmaps:!0,minFilter:Fa}}},sP=class extends Er{constructor(e){super(e)}load(e,t,i,n){let r=this,a=""===r.path?ta.extractUrlBase(e):r.path,s=new Kr(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(e,(function(i){try{t(r.parse(i,a))}catch(t){n?n(t):console.error(t),r.manager.itemError(e)}}),i,n)}parse(e,t){function i(e,t){let i=[],n=e.childNodes;for(let r=0,a=n.length;r0&&t.push(new Va(n+".position",r,a)),s.length>0&&t.push(new Ha(n+".quaternion",r,s)),o.length>0&&t.push(new Va(n+".scale",r,o)),t}function b(e,t,i){let n,r,a,s=!0;for(r=0,a=e.length;r=0;){let n=e[t];if(null!==n.value[i])return n;t--}return null}function w(e,t,i){for(;t>>0));return t="tga"===(i=i.toLowerCase(),i)?qe:Xe,t}(r);if(void 0!==i){let n=i.load(r),a=e.extra;if(void 0!==a&&void 0!==a.technique&&!1===o(a.technique)){let e=a.technique;n.wrapS=e.wrapU?Di:Li,n.wrapT=e.wrapV?Di:Li,n.offset.set(e.offsetU||0,e.offsetV||0),n.repeat.set(e.repeatU||1,e.repeatV||1)}else n.wrapS=Di,n.wrapT=Di;return null!==t&&(n.colorSpace=t),n}return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",r),null}return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",e.id),null}t.name=e.name||"";let a=n.parameters;for(let o in a){let e=a[o];switch(o){case"diffuse":e.color&&t.color.fromArray(e.color),e.texture&&(t.map=r(e.texture,en));break;case"specular":e.color&&t.specular&&t.specular.fromArray(e.color),e.texture&&(t.specularMap=r(e.texture));break;case"bump":e.texture&&(t.normalMap=r(e.texture));break;case"ambient":e.texture&&(t.lightMap=r(e.texture,en));break;case"shininess":e.float&&t.shininess&&(t.shininess=e.float);break;case"emission":e.color&&t.emissive&&t.emissive.fromArray(e.color),e.texture&&(t.emissiveMap=r(e.texture,en))}}t.color.convertSRGBToLinear(),t.specular&&t.specular.convertSRGBToLinear(),t.emissive&&t.emissive.convertSRGBToLinear();let s=a.transparent,l=a.transparency;if(void 0===l&&s&&(l={float:1}),void 0===s&&l&&(s={opaque:"A_ONE",data:{color:[1,1,1,1]}}),s&&l)if(s.data.texture)t.transparent=!0;else{let e=s.data.color;switch(s.opaque){case"A_ONE":t.opacity=e[3]*l.float;break;case"RGB_ZERO":t.opacity=1-e[0]*l.float;break;case"A_ZERO":t.opacity=1-e[3]*l.float;break;case"RGB_ONE":t.opacity=e[0]*l.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',s.opaque)}t.opacity<1&&(t.transparent=!0)}if(void 0!==n.extra&&void 0!==n.extra.technique){let e=n.extra.technique;for(let i in e){let n=e[i];switch(i){case"double_sided":t.side=1===n?Sr:pi;break;case"bump":t.normalMap=r(n.texture),t.normalScale=new xe(1,1)}}}return t}function Z(e){return c($e.materials[e],q)}function Q(e){for(let t=0;t0?i+o:i;t.inputs[l]={id:e,offset:r},t.stride=Math.max(t.stride,r+1),"TEXCOORD"===i&&(t.hasUV=!0);break;case"vcount":t.vcount=a(n.textContent);break;case"p":t.p=a(n.textContent)}}return t}function le(e){let t=0;for(let i=0,n=e.length;i0&&t0&&u.setAttribute("position",new Bt(r.array,r.stride)),a.array.length>0&&u.setAttribute("normal",new Bt(a.array,a.stride)),l.array.length>0&&u.setAttribute("color",new Bt(l.array,l.stride)),s.array.length>0&&u.setAttribute("uv",new Bt(s.array,s.stride)),o.array.length>0&&u.setAttribute("uv1",new Bt(o.array,o.stride)),h.length>0&&u.setAttribute("skinIndex",new Bt(h,4)),c.length>0&&u.setAttribute("skinWeight",new Bt(c,4)),n.data=u,n.type=e[0].type,n.materialKeys=d,n}function ue(e,t,i,n,r=!1){let a=e.p,s=e.stride,o=e.vcount;function l(e){let t=a[e+i]*c,s=t+c;for(;t4)for(let t=1,n=i-2;t<=n;t++){let i=e+s*t,n=e+s*(t+1);l(e+0*s),l(i),l(n)}e+=s*i}}else for(let u=0,d=a.length;u=t.limits.max&&(t.static=!0),t.middlePosition=(t.limits.min+t.limits.max)/2,t}function ve(e){let t={sid:e.getAttribute("sid"),name:e.getAttribute("name")||"",attachments:[],transforms:[]};for(let i=0;in.limits.max||t{this.parse(e,t,n)}),i,n)}parse(e,t,i){this.decodeDracoFile(e,t,null,null,en).catch(i)}decodeDracoFile(e,t,i,n,r=Na){let a={attributeIDs:i||this.defaultAttributeIDs,attributeTypes:n||this.defaultAttributeTypes,useUniqueIDs:!!i,vertexColorSpace:r};return this.decodeGeometry(e,a).then(t)}decodeGeometry(e,t){let i=JSON.stringify(t);if(O6.has(e)){let t=O6.get(e);if(t.key===i)return t.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let n,r=this.workerNextTaskID++,a=e.byteLength,s=this._getWorker(r,a).then((i=>(n=i,new Promise(((i,a)=>{n._callbacks[r]={resolve:i,reject:a},n.postMessage({type:"decode",id:r,taskConfig:t,buffer:e},[e])}))))).then((e=>this._createGeometry(e.geometry)));return s.catch((()=>!0)).then((()=>{n&&r&&this._releaseTask(n,r)})),O6.set(e,{key:i,promise:s}),s}_createGeometry(e){let t=new Dt;e.index&&t.setIndex(new mn(e.index.array,1));for(let i=0;i{i.load(e,t,void 0,n)}))}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then((t=>{let i=t[0];e||(this.decoderConfig.wasmBinary=t[1]);let n=Zmt.toString(),r=["/* draco decoder */",i,"","/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([r]))})),this.decoderPending}_getWorker(e,t){return this._initDecoder().then((()=>{if(this.workerPool.lengtht._taskLoad?-1:1}));let i=this.workerPool[this.workerPool.length-1];return i._taskCosts[e]=t,i._taskLoad+=t,i}))}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))}dispose(){for(let e=0;e{let t=e.draco,s=new t.Decoder;try{let e=function(e,t,n,r){let a,s,o=r.attributeIDs,l=r.attributeTypes,h=t.GetEncodedGeometryType(n);if(h===e.TRIANGULAR_MESH)a=new e.Mesh,s=t.DecodeArrayToMesh(n,n.byteLength,a);else{if(h!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");a=new e.PointCloud,s=t.DecodeArrayToPointCloud(n,n.byteLength,a)}if(!s.ok()||0===a.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+s.error_msg());let c={index:null,attributes:[]};for(let u in o){let n,s,h=self[l[u]];if(r.useUniqueIDs)s=o[u],n=t.GetAttributeByUniqueId(a,s);else{if(s=t.GetAttributeId(a,e[o[u]]),-1===s)continue;n=t.GetAttribute(a,s)}let d=i(e,t,a,u,h,n);"color"===u&&(d.vertexColorSpace=r.vertexColorSpace),c.attributes.push(d)}return h===e.TRIANGULAR_MESH&&(c.index=function(e,t,i){let n=3*i.num_faces(),r=4*n,a=e._malloc(r);t.GetTrianglesUInt32Array(i,r,a);let s=new Uint32Array(e.HEAPF32.buffer,a,n).slice();return e._free(a),{array:s,itemSize:1}}(e,t,a)),e.destroy(a),c}(t,s,new Int8Array(n),a),o=e.attributes.map((e=>e.array.buffer));e.index&&o.push(e.index.array.buffer),self.postMessage({type:"decode",id:r.id,geometry:e},o)}catch(e){console.error(e),self.postMessage({type:"error",id:r.id,error:e.message})}finally{t.destroy(s)}}))}}}var M0e=function(e){return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))},Kmt=function(e){return new Worker(e)};try{URL.revokeObjectURL(M0e(""))}catch(e){M0e=function(e){return"data:application/javascript;charset=UTF-8,"+encodeURI(e)},Kmt=function(e){return new Worker(e,{type:"module"})}}var ql=Uint8Array,Zf=Uint16Array,N6=Uint32Array,R0e=new ql([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),A0e=new ql([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Jmt=new ql([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),C0e=function(e,t){for(var i=new Zf(31),n=0;n<31;++n)i[n]=t+=1<>>1|(21845&hi)<<1,hd=(52428&hd)>>>2|(13107&hd)<<2,hd=(61680&hd)>>>4|(3855&hd)<<4,B6[hi]=((65280&hd)>>>8|(255&hd)<<8)>>>1;var hd,hi,p_=function(e,t,i){for(var n=e.length,r=0,a=new Zf(t);r>>l]=h}else for(s=new Zf(n),r=0;r>>15-e[r]);return s},m_=new ql(288),hi,hi,hi;for(hi=0;hi<144;++hi)m_[hi]=8;for(hi=144;hi<256;++hi)m_[hi]=9;for(hi=256;hi<280;++hi)m_[hi]=7;for(hi=280;hi<288;++hi)m_[hi]=8;var hi,D0e=new ql(32),hi;for(hi=0;hi<32;++hi)D0e[hi]=5;var tgt=p_(m_,9,1),ngt=p_(D0e,5,1),k6=function(e){for(var t=e[0],i=1;it&&(t=e[i]);return t},zc=function(e,t,i){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&i},F6=function(e,t){var i=t/8|0;return(e[i]|e[i+1]<<8|e[i+2]<<16)>>(7&t)},rgt=function(e){return(e/8|0)+(7&e&&1)},igt=function(e,t,i){(null==t||t<0)&&(t=0),(null==i||i>e.length)&&(i=e.length);var n=new(e instanceof Zf?Zf:e instanceof N6?N6:ql)(i-t);return n.set(e.subarray(t,i)),n},sgt=function(e,t,i){var n=e.length;if(!n||i&&!i.l&&n<5)return t||new ql(0);var r=!t||i,a=!i||i.i;i||(i={}),t||(t=new ql(3*n));var s=function(e){var i=t.length;if(e>i){var n=new ql(Math.max(2*i,e));n.set(t),t=n}},o=i.f||0,l=i.p||0,h=i.b||0,c=i.l,u=i.d,d=i.m,p=i.n,f=8*n;do{if(!c){i.f=o=zc(e,l,1);var m=zc(e,l+1,3);if(l+=3,!m){var g=e[(A=rgt(l)+4)-4]|e[A-3]<<8,v=A+g;if(v>n){if(a)throw"unexpected EOF";break}r&&s(h+g),t.set(e.subarray(A,v),h),i.b=h+=g,i.p=l=8*v;continue}if(1==m)c=tgt,u=ngt,d=9,p=5;else{if(2!=m)throw"invalid block type";var y=zc(e,l,31)+257,x=zc(e,l+10,15)+4,b=y+zc(e,l+5,31)+1;l+=14;for(var _=new ql(b),w=new ql(19),S=0;S>>4)<16)_[S++]=A;else{var P=0,R=0;for(16==A?(R=3+zc(e,l,3),l+=2,P=_[S-1]):17==A?(R=3+zc(e,l,7),l+=3):18==A&&(R=11+zc(e,l,127),l+=7);R--;)_[S++]=P}}var D=_.subarray(0,y),L=_.subarray(y);d=k6(D),p=k6(L),c=p_(D,d,1),u=p_(L,p,1)}if(l>f){if(a)throw"unexpected EOF";break}}r&&s(h+131072);for(var I=(1<>>4;if((l+=15&P)>f){if(a)throw"unexpected EOF";break}if(!P)throw"invalid length/literal";if(N<256)t[h++]=N;else{if(256==N){k=l,c=null;break}var U=N-254;if(N>264){var F=R0e[S=N-257];U=zc(e,l,(1<>>4;if(!B)throw"invalid distance";if(l+=15&B,L=egt[z],z>3&&(F=A0e[z],L+=F6(e,l)&(1<f){if(a)throw"unexpected EOF";break}r&&s(h+131072);for(var H=h+U;h>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function O0e(e,t){return sgt((ogt(e),e.subarray(2,-4)),t)}var lgt="undefined"!=typeof TextDecoder&&new TextDecoder,cgt=0;try{lgt.decode(agt,{stream:!0}),cgt=1}catch(e){}function k0e(e,t,i){let n=i.length-e-1;if(t>=i[n])return n-1;if(t<=i[e])return e;let r=e,a=n,s=Math.floor((r+a)/2);for(;t=i[s+1];)t=a&&(r[t][0]=r[e][0]/o[h+1][l],n=r[t][0]*o[l][h]);let c=u-1<=h?a-1:i-u;for(let i=l>=-1?1:-l;i<=c;++i)r[t][i]=(r[e][i]-r[e][i-1])/o[h+1][l+i],n+=r[t][i]*o[l+i][h];u<=h&&(r[t][a]=-r[e][a-1]/o[h+1][u],n+=r[t][a]*o[u][h]),s[a][u]=n;let d=e;e=t,t=d}}let c=i;for(let u=1;u<=n;++u){for(let e=0;e<=i;++e)s[u][e]*=c;c*=i-u}return s}function fgt(e,t,i,n,r){let a=r0,a="string"==typeof r.Content&&""!==r.Content;if(e||a){let e=this.parseImage(i[n]);t[r.RelativeFilename||r.Filename]=e}}}}for(let i in e){let n=e[i];void 0!==t[n]?e[i]=t[n]:e[i]=e[i].split("\\").pop()}return e}parseImage(e){let t,i=e.Content,n=e.RelativeFilename||e.Filename,r=n.slice(n.lastIndexOf(".")+1).toLowerCase();switch(r){case"bmp":t="image/bmp";break;case"jpg":case"jpeg":t="image/jpeg";break;case"png":t="image/png";break;case"tif":t="image/tiff";break;case"tga":null===this.manager.getHandler(".tga")&&console.warn("FBXLoader: TGA loader not found, skipping ",n),t="image/tga";break;default:return void console.warn('FBXLoader: Image type "'+r+'" is not supported.')}if("string"==typeof i)return"data:"+t+";base64,"+i;{let e=new Uint8Array(i);return window.URL.createObjectURL(new Blob([e],{type:t}))}}parseTextures(e){let t=new Map;if("Texture"in Ir.Objects){let i=Ir.Objects.Texture;for(let n in i){let r=this.parseTexture(i[n],e);t.set(parseInt(n),r)}}return t}parseTexture(e,t){let i=this.loadTexture(e,t);i.ID=e.id,i.name=e.attrName;let n=e.WrapModeU,r=e.WrapModeV,a=void 0!==n?n.value:0,s=void 0!==r?r.value:0;if(i.wrapS=0===a?Di:Li,i.wrapT=0===s?Di:Li,"Scaling"in e){let t=e.Scaling.value;i.repeat.x=t[0],i.repeat.y=t[1]}if("Translation"in e){let t=e.Translation.value;i.offset.x=t[0],i.offset.y=t[1]}return i}loadTexture(e,t){let i,n=this.textureLoader.path,r=gs.get(e.id).children;void 0!==r&&r.length>0&&void 0!==t[r[0].ID]&&(i=t[r[0].ID],(0===i.indexOf("blob:")||0===i.indexOf("data:"))&&this.textureLoader.setPath(void 0));let a,s=e.FileName.slice(-3).toLowerCase();if("tga"===s){let t=this.manager.getHandler(".tga");null===t?(console.warn("FBXLoader: TGA loader not found, creating placeholder texture for",e.RelativeFilename),a=new Gr):(t.setPath(this.textureLoader.path),a=t.load(i))}else"psd"===s?(console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for",e.RelativeFilename),a=new Gr):a=this.textureLoader.load(i);return this.textureLoader.setPath(n),a}parseMaterials(e){let t=new Map;if("Material"in Ir.Objects){let i=Ir.Objects.Material;for(let n in i){let r=this.parseMaterial(i[n],e);null!==r&&t.set(parseInt(n),r)}}return t}parseMaterial(e,t){let i=e.id,n=e.attrName,r=e.ShadingModel;if("object"==typeof r&&(r=r.value),!gs.has(i))return null;let a,s=this.parseParameters(e,t,i);switch(r.toLowerCase()){case"phong":a=new ea;break;case"lambert":a=new Pu;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',r),a=new ea}return a.setValues(s),a.name=n,a}parseParameters(e,t,i){let n={};e.BumpFactor&&(n.bumpScale=e.BumpFactor.value),e.Diffuse?n.color=(new ct).fromArray(e.Diffuse.value).convertSRGBToLinear():e.DiffuseColor&&("Color"===e.DiffuseColor.type||"ColorRGB"===e.DiffuseColor.type)&&(n.color=(new ct).fromArray(e.DiffuseColor.value).convertSRGBToLinear()),e.DisplacementFactor&&(n.displacementScale=e.DisplacementFactor.value),e.Emissive?n.emissive=(new ct).fromArray(e.Emissive.value).convertSRGBToLinear():e.EmissiveColor&&("Color"===e.EmissiveColor.type||"ColorRGB"===e.EmissiveColor.type)&&(n.emissive=(new ct).fromArray(e.EmissiveColor.value).convertSRGBToLinear()),e.EmissiveFactor&&(n.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),e.Opacity&&(n.opacity=parseFloat(e.Opacity.value)),n.opacity<1&&(n.transparent=!0),e.ReflectionFactor&&(n.reflectivity=e.ReflectionFactor.value),e.Shininess&&(n.shininess=e.Shininess.value),e.Specular?n.specular=(new ct).fromArray(e.Specular.value).convertSRGBToLinear():e.SpecularColor&&"Color"===e.SpecularColor.type&&(n.specular=(new ct).fromArray(e.SpecularColor.value).convertSRGBToLinear());let r=this;return gs.get(i).children.forEach((function(e){let i=e.relationship;switch(i){case"Bump":n.bumpMap=r.getTexture(t,e.ID);break;case"Maya|TEX_ao_map":n.aoMap=r.getTexture(t,e.ID);break;case"DiffuseColor":case"Maya|TEX_color_map":n.map=r.getTexture(t,e.ID),void 0!==n.map&&(n.map.colorSpace=en);break;case"DisplacementColor":n.displacementMap=r.getTexture(t,e.ID);break;case"EmissiveColor":n.emissiveMap=r.getTexture(t,e.ID),void 0!==n.emissiveMap&&(n.emissiveMap.colorSpace=en);break;case"NormalMap":case"Maya|TEX_normal_map":n.normalMap=r.getTexture(t,e.ID);break;case"ReflectionColor":n.envMap=r.getTexture(t,e.ID),void 0!==n.envMap&&(n.envMap.mapping=vm,n.envMap.colorSpace=en);break;case"SpecularColor":n.specularMap=r.getTexture(t,e.ID),void 0!==n.specularMap&&(n.specularMap.colorSpace=en);break;case"TransparentColor":case"TransparencyFactor":n.alphaMap=r.getTexture(t,e.ID),n.transparent=!0;break;default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",i)}})),n}getTexture(e,t){return"LayeredTexture"in Ir.Objects&&t in Ir.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),t=gs.get(t).children[0].ID),e.get(t)}parseDeformers(){let e={},t={};if("Deformer"in Ir.Objects){let i=Ir.Objects.Deformer;for(let n in i){let r=i[n],a=gs.get(parseInt(n));if("Skin"===r.attrType){let t=this.parseSkeleton(a,i);t.ID=n,a.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),t.geometryID=a.parents[0].ID,e[n]=t}else if("BlendShape"===r.attrType){let e={id:n};e.rawTargets=this.parseMorphTargets(a,i),e.id=n,a.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),t[n]=e}}}return{skeletons:e,morphTargets:t}}parseSkeleton(e,t){let i=[];return e.children.forEach((function(e){let n=t[e.ID];if("Cluster"!==n.attrType)return;let r={ID:e.ID,indices:[],weights:[],transformLink:(new et).fromArray(n.TransformLink.a)};"Indexes"in n&&(r.indices=n.Indexes.a,r.weights=n.Weights.a),i.push(r)})),{rawBones:i,bones:[]}}parseMorphTargets(e,t){let i=[];for(let n=0;n1?a=s:s.length>0?a=s[0]:(a=new ea({name:Er.DEFAULT_MATERIAL_NAME,color:13421772}),s.push(a)),"color"in r.attributes&&s.forEach((function(e){e.vertexColors=!0})),r.FBX_Deformer?(n=new wu(r,a),n.normalizeSkinWeights()):n=new xt(r,a),n}createCurve(e,t){let i=e.children.reduce((function(e,i){return t.has(i.ID)&&(e=t.get(i.ID)),e}),null),n=new Gn({name:Er.DEFAULT_MATERIAL_NAME,color:3342591,linewidth:1});return new fr(i,n)}getTransformData(e,t){let i={};"InheritType"in t&&(i.inheritType=parseInt(t.InheritType.value)),i.eulerOrder="RotationOrder"in t?V0e(t.RotationOrder.value):"ZYX","Lcl_Translation"in t&&(i.translation=t.Lcl_Translation.value),"PreRotation"in t&&(i.preRotation=t.PreRotation.value),"Lcl_Rotation"in t&&(i.rotation=t.Lcl_Rotation.value),"PostRotation"in t&&(i.postRotation=t.PostRotation.value),"Lcl_Scaling"in t&&(i.scale=t.Lcl_Scaling.value),"ScalingOffset"in t&&(i.scalingOffset=t.ScalingOffset.value),"ScalingPivot"in t&&(i.scalingPivot=t.ScalingPivot.value),"RotationOffset"in t&&(i.rotationOffset=t.RotationOffset.value),"RotationPivot"in t&&(i.rotationPivot=t.RotationPivot.value),e.userData.transformData=i}setLookAtProperties(e,t){"LookAtProperty"in t&&gs.get(e.ID).children.forEach((function(t){if("LookAtProperty"===t.relationship){let i=Ir.Objects.Model[t.ID];if("Lcl_Translation"in i){let t=i.Lcl_Translation.value;void 0!==e.target?(e.target.position.fromArray(t),bo.add(e.target)):e.lookAt((new D).fromArray(t))}}}))}bindSkeleton(e,t,i){let n=this.parsePoseNodes();for(let r in e){let a=e[r];gs.get(parseInt(a.ID)).parents.forEach((function(e){if(t.has(e.ID)){let t=e.ID;gs.get(t).parents.forEach((function(e){i.has(e.ID)&&i.get(e.ID).bind(new Ml(a.bones),n[e.ID])}))}}))}}parsePoseNodes(){let e={};if("Pose"in Ir.Objects){let t=Ir.Objects.Pose;for(let i in t)if("BindPose"===t[i].attrType&&t[i].NbPoseNodes>0){let n=t[i].PoseNode;Array.isArray(n)?n.forEach((function(t){e[t.Node]=(new et).fromArray(t.Matrix.a)})):e[n.Node]=(new et).fromArray(n.Matrix.a)}}return e}createAmbientLight(){if("GlobalSettings"in Ir&&"AmbientColor"in Ir.GlobalSettings){let e=Ir.GlobalSettings.AmbientColor.value,t=e[0],i=e[1],n=e[2];if(0!==t||0!==i||0!==n){let e=new ct(t,i,n).convertSRGBToLinear();bo.add(new Cl(e,1))}}}},z6=class{constructor(){this.negativeMaterialIndices=!1}parse(e){let t=new Map;if("Geometry"in Ir.Objects){let i=Ir.Objects.Geometry;for(let n in i){let r=gs.get(parseInt(n)),a=this.parseGeometry(r,i[n],e);t.set(parseInt(n),a)}}return!0===this.negativeMaterialIndices&&console.warn("THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected."),t}parseGeometry(e,t,i){switch(t.attrType){case"Mesh":return this.parseMeshGeometry(e,t,i);case"NurbsCurve":return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,i){let n=i.skeletons,r=[],a=e.parents.map((function(e){return Ir.Objects.Model[e.ID]}));if(0===a.length)return;let s=e.children.reduce((function(e,t){return void 0!==n[t.ID]&&(e=n[t.ID]),e}),null);e.children.forEach((function(e){void 0!==i.morphTargets[e.ID]&&r.push(i.morphTargets[e.ID])}));let o=a[0],l={};"RotationOrder"in o&&(l.eulerOrder=V0e(o.RotationOrder.value)),"InheritType"in o&&(l.inheritType=parseInt(o.InheritType.value)),"GeometricTranslation"in o&&(l.translation=o.GeometricTranslation.value),"GeometricRotation"in o&&(l.rotation=o.GeometricRotation.value),"GeometricScaling"in o&&(l.scale=o.GeometricScaling.value);let h=H0e(l);return this.genGeometry(t,s,r,h)}genGeometry(e,t,i,n){let r=new Dt;e.attrName&&(r.name=e.attrName);let a=this.parseGeoNode(e,t),s=this.genBuffers(a),o=new Bt(s.vertex,3);if(o.applyMatrix4(n),r.setAttribute("position",o),s.colors.length>0&&r.setAttribute("color",new Bt(s.colors,3)),t&&(r.setAttribute("skinIndex",new ym(s.weightsIndices,4)),r.setAttribute("skinWeight",new Bt(s.vertexWeights,4)),r.FBX_Deformer=t),s.normal.length>0){let e=(new Ln).getNormalMatrix(n),t=new Bt(s.normal,3);t.applyNormalMatrix(e),r.setAttribute("normal",t)}if(s.uvs.forEach((function(e,t){let i=0===t?"uv":`uv${t}`;r.setAttribute(i,new Bt(s.uvs[t],2))})),a.material&&"AllSame"!==a.material.mappingType){let e=s.materialIndex[0],t=0;if(s.materialIndex.forEach((function(i,n){i!==e&&(r.addGroup(t,n-t,e),e=i,t=n)})),r.groups.length>0){let t=r.groups[r.groups.length-1],i=t.start+t.count;i!==s.materialIndex.length&&r.addGroup(i,s.materialIndex.length-i,e)}0===r.groups.length&&r.addGroup(0,s.materialIndex.length,s.materialIndex[0])}return this.addMorphTargets(r,e,i,n),r}parseGeoNode(e,t){let i={};if(i.vertexPositions=void 0!==e.Vertices?e.Vertices.a:[],i.vertexIndices=void 0!==e.PolygonVertexIndex?e.PolygonVertexIndex.a:[],e.LayerElementColor&&(i.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(i.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(i.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){i.uv=[];let t=0;for(;e.LayerElementUV[t];)e.LayerElementUV[t].UV&&i.uv.push(this.parseUVs(e.LayerElementUV[t])),t++}return i.weightTable={},null!==t&&(i.skeleton=t,t.rawBones.forEach((function(e,t){e.indices.forEach((function(n,r){void 0===i.weightTable[n]&&(i.weightTable[n]=[]),i.weightTable[n].push({id:t,weight:e.weights[r]})}))}))),i}genBuffers(e){let t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},i=0,n=0,r=!1,a=[],s=[],o=[],l=[],h=[],c=[],u=this;return e.vertexIndices.forEach((function(d,p){let f,m=!1;d<0&&(d^=-1,m=!0);let g=[],v=[];if(a.push(3*d,3*d+1,3*d+2),e.color){let t=lP(p,i,d,e.color);o.push(t[0],t[1],t[2])}if(e.skeleton){if(void 0!==e.weightTable[d]&&e.weightTable[d].forEach((function(e){v.push(e.weight),g.push(e.id)})),v.length>4){r||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),r=!0);let e=[0,0,0,0],t=[0,0,0,0];v.forEach((function(i,n){let r=i,a=g[n];t.forEach((function(t,i,n){if(r>t){n[i]=r,r=t;let s=e[i];e[i]=a,a=s}}))})),g=e,v=t}for(;v.length<4;)v.push(0),g.push(0);for(let e=0;e<4;++e)h.push(v[e]),c.push(g[e])}if(e.normal){let t=lP(p,i,d,e.normal);s.push(t[0],t[1],t[2])}e.material&&"AllSame"!==e.material.mappingType&&(f=lP(p,i,d,e.material)[0],f<0&&(u.negativeMaterialIndices=!0,f=0)),e.uv&&e.uv.forEach((function(e,t){let n=lP(p,i,d,e);void 0===l[t]&&(l[t]=[]),l[t].push(n[0]),l[t].push(n[1])})),n++,m&&(n>4&&console.warn("THREE.FBXLoader: Polygons with more than four sides are not supported. Make sure to triangulate the geometry during export."),u.genFace(t,e,a,f,s,o,l,h,c,n),i++,n=0,a=[],s=[],o=[],l=[],h=[],c=[])})),t}genFace(e,t,i,n,r,a,s,o,l,h){for(let c=2;c1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");let a=e.get(r[0].ID);i[n]={name:t[n].attrName,layer:a}}return i}addClip(e){let t=[],i=this;return e.layer.forEach((function(e){t=t.concat(i.generateTracks(e))})),new uo(e.name,-1,t)}generateTracks(e){let t=[],i=new D,n=new dr,r=new D;if(e.transform&&e.transform.decompose(i,n,r),i=i.toArray(),n=(new Xn).setFromQuaternion(n,e.eulerOrder).toArray(),r=r.toArray(),void 0!==e.T&&Object.keys(e.T.curves).length>0){let n=this.generateVectorTrack(e.modelName,e.T.curves,i,"position");void 0!==n&&t.push(n)}if(void 0!==e.R&&Object.keys(e.R.curves).length>0){let i=this.generateRotationTrack(e.modelName,e.R.curves,n,e.preRotation,e.postRotation,e.eulerOrder);void 0!==i&&t.push(i)}if(void 0!==e.S&&Object.keys(e.S.curves).length>0){let i=this.generateVectorTrack(e.modelName,e.S.curves,r,"scale");void 0!==i&&t.push(i)}if(void 0!==e.DeformPercent){let i=this.generateMorphTrack(e);void 0!==i&&t.push(i)}return t}generateVectorTrack(e,t,i,n){let r=this.getTimesForAllAxes(t),a=this.getKeyframeTrackValues(r,t,i);return new Va(e+"."+n,r,a)}generateRotationTrack(e,t,i,n,r,a){void 0!==t.x&&(this.interpolateRotations(t.x),t.x.values=t.x.values.map(Rn.degToRad)),void 0!==t.y&&(this.interpolateRotations(t.y),t.y.values=t.y.values.map(Rn.degToRad)),void 0!==t.z&&(this.interpolateRotations(t.z),t.z.values=t.z.values.map(Rn.degToRad));let s=this.getTimesForAllAxes(t),o=this.getKeyframeTrackValues(s,t,i);void 0!==n&&((n=n.map(Rn.degToRad)).push(a),n=(new Xn).fromArray(n),n=(new dr).setFromEuler(n)),void 0!==r&&((r=r.map(Rn.degToRad)).push(a),r=(new Xn).fromArray(r),r=(new dr).setFromEuler(r).invert());let l=new dr,h=new Xn,c=[];for(let u=0;u1){let e=1,i=t[0];for(let n=1;n=180){let a=r/180,s=n/a,o=i+s,l=e.times[t-1],h=(e.times[t]-l)/a,c=l+h,u=[],d=[];for(;c1&&(i=e[1].replace(/^(\w+)::/,""),n=e[2]),{id:t,name:i,type:n}}parseNodeProperty(e,t,i){let n=t[1].replace(/^"/,"").replace(/"$/,"").trim(),r=t[2].replace(/^"/,"").replace(/"$/,"").trim();"Content"===n&&","===r&&(r=i.replace(/"/g,"").replace(/,$/,"").trim());let a=this.getCurrentNode();if("Properties70"!==a.name){if("C"===n){let e=r.split(",").slice(1),t=parseInt(e[0]),i=parseInt(e[1]),s=r.split(",").slice(3);s=s.map((function(e){return e.trim().replace(/^"/,"")})),n="connections",r=[t,i],Egt(r,s),void 0===a[n]&&(a[n]=[])}"Node"===n&&(a.id=r),n in a&&Array.isArray(a[n])?a[n].push(r):"a"!==n?a[n]=r:a.a=r,this.setCurrentProp(a,n),"a"===n&&","!==r.slice(-1)&&(a.a=H6(r))}else this.parseNodeSpecialProperty(e,n,r)}parseNodePropertyContinued(e){let t=this.getCurrentNode();t.a+=e,","!==e.slice(-1)&&(t.a=H6(t.a))}parseNodeSpecialProperty(e,t,i){let n=i.split('",').map((function(e){return e.trim().replace(/^\"/,"").replace(/\s/,"_")})),r=n[0],a=n[1],s=n[2],o=n[3],l=n[4];switch(a){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":l=parseFloat(l);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":l=H6(l)}this.getPrevNode()[r]={type:a,type2:s,flag:o,value:l},this.setCurrentProp(this.getPrevNode(),r)}},W6=class{parse(e){let t=new uP(e);t.skip(23);let i=t.getUint32();if(i<6400)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+i);let n=new hP;for(;!this.endOfContent(t);){let e=this.parseNode(t,i);null!==e&&n.add(e.name,e)}return n}endOfContent(e){return e.size()%16==0?(e.getOffset()+160+16&-16)>=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){let i={},n=t>=7500?e.getUint64():e.getUint32(),r=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();let a=e.getUint8(),s=e.getString(a);if(0===n)return null;let o=[];for(let u=0;u0?o[0]:"",h=o.length>1?o[1]:"",c=o.length>2?o[2]:"";for(i.singleProperty=1===r&&e.getOffset()===n;n>e.getOffset();){let n=this.parseNode(e,t);null!==n&&this.parseSubNode(s,i,n)}return i.propertyList=o,"number"==typeof l&&(i.id=l),""!==h&&(i.attrName=h),""!==c&&(i.attrType=c),""!==s&&(i.name=s),i}parseSubNode(e,t,i){if(!0===i.singleProperty){let e=i.propertyList[0];Array.isArray(e)?(t[i.name]=i,i.a=e):t[i.name]=e}else if("Connections"===e&&"C"===i.name){let e=[];i.propertyList.forEach((function(t,i){0!==i&&e.push(t)})),void 0===t.connections&&(t.connections=[]),t.connections.push(e)}else if("Properties70"===i.name)Object.keys(i).forEach((function(e){t[e]=i[e]}));else if("Properties70"===e&&"P"===i.name){let e,n=i.propertyList[0],r=i.propertyList[1],a=i.propertyList[2],s=i.propertyList[3];0===n.indexOf("Lcl ")&&(n=n.replace("Lcl ","Lcl_")),0===r.indexOf("Lcl ")&&(r=r.replace("Lcl ","Lcl_")),e="Color"===r||"ColorRGB"===r||"Vector"===r||"Vector3D"===r||0===r.indexOf("Lcl_")?[i.propertyList[4],i.propertyList[5],i.propertyList[6]]:i.propertyList[4],t[n]={type:r,type2:a,flag:s,value:e}}else void 0===t[i.name]?"number"==typeof i.id?(t[i.name]={},t[i.name][i.id]=i):t[i.name]=i:"PoseNode"===i.name?(Array.isArray(t[i.name])||(t[i.name]=[t[i.name]]),t[i.name].push(i)):void 0===t[i.name][i.id]&&(t[i.name][i.id]=i)}parseProperty(e){let t,i=e.getString(1);switch(i){case"C":return e.getBoolean();case"D":return e.getFloat64();case"F":return e.getFloat32();case"I":return e.getInt32();case"L":return e.getInt64();case"R":return t=e.getUint32(),e.getArrayBuffer(t);case"S":return t=e.getUint32(),e.getString(t);case"Y":return e.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":let n=e.getUint32(),r=e.getUint32(),a=e.getUint32();if(0===r)switch(i){case"b":case"c":return e.getBooleanArray(n);case"d":return e.getFloat64Array(n);case"f":return e.getFloat32Array(n);case"i":return e.getInt32Array(n);case"l":return e.getInt64Array(n)}let s=O0e(new Uint8Array(e.getArrayBuffer(a))),o=new uP(s.buffer);switch(i){case"b":case"c":return o.getBooleanArray(n);case"d":return o.getFloat64Array(n);case"f":return o.getFloat32Array(n);case"i":return o.getInt32Array(n);case"l":return o.getInt64Array(n)}break;default:throw new Error("THREE.FBXLoader: Unknown property type "+i)}}},uP=class{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=void 0===t||t,this._textDecoder=new TextDecoder}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return 1==(1&this.getUint8())}getBooleanArray(e){let t=[];for(let i=0;i=0&&(i=new Uint8Array(this.dv.buffer,t,n)),this._textDecoder.decode(i)}},hP=class{add(e,t){this[e]=t}};function vgt(e){let t="Kaydara FBX Binary \0";return e.byteLength>=21&&t===z0e(e,0,21)}function ygt(e){let t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"],i=0;function n(t){let n=e[t-1];return e=e.slice(i+t),i++,n}for(let r=0;r=2.0 are supported.")));let l=new y4(r,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let h=0;h=0&&void 0===s[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}l.setExtensions(a),l.setPlugins(s),l.parse(i,n)}parseAsync(e,t){let i=this;return new Promise((function(n,r){i.parse(e,t,n,r)}))}};function Tgt(){let e={};return{get:function(t){return e[t]},add:function(t,i){e[t]=i},remove:function(t){delete e[t]},removeAll:function(){e={}}}}var jr={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"},$6=class{constructor(e){this.parser=e,this.name=jr.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let i=0,n=t.length;i=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,r.source,a)}},o4=class{constructor(e){this.parser=e,this.name=jr.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,i=this.parser,n=i.json,r=n.textures[e];if(!r.extensions||!r.extensions[t])return null;let a=r.extensions[t],s=n.images[a.source],o=i.textureLoader;if(s.uri){let e=i.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then((function(r){if(r)return i.loadTextureImage(e,a.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return i.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){let t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}},l4=class{constructor(e){this.parser=e,this.name=jr.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,i=this.parser,n=i.json,r=n.textures[e];if(!r.extensions||!r.extensions[t])return null;let a=r.extensions[t],s=n.images[a.source],o=i.textureLoader;if(s.uri){let e=i.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then((function(r){if(r)return i.loadTextureImage(e,a.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return i.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){let t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}},c4=class{constructor(e){this.name=jr.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,i=t.bufferViews[e];if(i.extensions&&i.extensions[this.name]){let e=i.extensions[this.name],n=this.parser.getDependency("buffer",e.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return n.then((function(t){let i=e.byteOffset||0,n=e.byteLength||0,a=e.count,s=e.byteStride,o=new Uint8Array(t,i,n);return r.decodeGltfBufferAsync?r.decodeGltfBufferAsync(a,s,o,e.mode,e.filter).then((function(e){return e.buffer})):r.ready.then((function(){let t=new ArrayBuffer(a*s);return r.decodeGltfBuffer(new Uint8Array(t),a,s,o,e.mode,e.filter),t}))}))}return null}},u4=class{constructor(e){this.name=jr.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,i=t.nodes[e];if(!i.extensions||!i.extensions[this.name]||void 0===i.mesh)return null;let n=t.meshes[i.mesh];for(let o of n.primitives)if(o.mode!==Wl.TRIANGLES&&o.mode!==Wl.TRIANGLE_STRIP&&o.mode!==Wl.TRIANGLE_FAN&&void 0!==o.mode)return null;let r=i.extensions[this.name].attributes,a=[],s={};for(let o in r)a.push(this.parser.getDependency("accessor",r[o]).then((e=>(s[o]=e,s[o]))));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then((e=>{let t=e.pop(),i=t.isGroup?t.children:[t],n=e[0].count,r=[];for(let a of i){let e=new et,t=new D,i=new dr,o=new D(1,1,1),l=new Oi(a.geometry,a.material,n);for(let r=0;r0||0===e.search(/^data\:image\/jpeg/)?"image/jpeg":e.search(/\.webp($|\?)/i)>0||0===e.search(/^data\:image\/webp/)?"image/webp":"image/png"}var Igt=new et,y4=class{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new Tgt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let i=!1,n=!1,r=-1;"undefined"!=typeof navigator&&(i=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),n=navigator.userAgent.indexOf("Firefox")>-1,r=n?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||i||n&&r<98?this.textureLoader=new ws(this.options.manager):this.textureLoader=new kb(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Kr(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let i=this,n=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll((function(e){return e._markDefs&&e._markDefs()})),Promise.all(this._invokeAll((function(e){return e.beforeRoot&&e.beforeRoot()}))).then((function(){return Promise.all([i.getDependencies("scene"),i.getDependencies("animation"),i.getDependencies("camera")])})).then((function(t){let a={scene:t[0][n.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:n.asset,parser:i,userData:{}};ig(r,a,n),Jf(a,n),Promise.all(i._invokeAll((function(e){return e.afterRoot&&e.afterRoot(a)}))).then((function(){e(a)}))})).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],i=this.json.meshes||[];for(let n=0,r=t.length;n{let i=this.associations.get(e);null!=i&&this.associations.set(t,i);for(let[n,a]of e.children.entries())r(a,t.children[n])};return r(i,n),n.name+="_instance_"+e.uses[t]++,n}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let i=0;i=2&&a.setY(t,u[e*o+1]),o>=3&&a.setZ(t,u[e*o+2]),o>=4&&a.setW(t,u[e*o+3]),o>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return a}))}loadTexture(e){let t=this.json,i=this.options,n=t.textures[e].source,r=t.images[n],a=this.textureLoader;if(r.uri){let e=i.manager.getHandler(r.uri);null!==e&&(a=e)}return this.loadTextureImage(e,n,a)}loadTextureImage(e,t,i){let n=this,r=this.json,a=r.textures[e],s=r.images[t],o=(s.uri||s.bufferView)+":"+a.sampler;if(this.textureCache[o])return this.textureCache[o];let l=this.loadImageSource(t,i).then((function(t){t.flipY=!1,t.name=a.name||s.name||"",""===t.name&&"string"==typeof s.uri&&!1===s.uri.startsWith("data:image/")&&(t.name=s.uri);let i=(r.samplers||{})[a.sampler]||{};return t.magFilter=q0e[i.magFilter]||Pr,t.minFilter=q0e[i.minFilter]||Fa,t.wrapS=W0e[i.wrapS]||Di,t.wrapT=W0e[i.wrapT]||Di,n.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[o]=l,l}loadImageSource(e,t){let i=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));let r=i.images[e],a=self.URL||self.webkitURL,s=r.uri||"",o=!1;if(void 0!==r.bufferView)s=this.getDependency("bufferView",r.bufferView).then((function(e){o=!0;let t=new Blob([e],{type:r.mimeType});return s=a.createObjectURL(t),s}));else if(void 0===r.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");let l=Promise.resolve(s).then((function(e){return new Promise((function(i,r){let a=i;!0===t.isImageBitmapLoader&&(a=function(e){let t=new Gr(e);t.needsUpdate=!0,i(t)}),t.load(ta.resolveURL(e,n.path),a,void 0,r)}))})).then((function(e){return!0===o&&a.revokeObjectURL(s),e.userData.mimeType=r.mimeType||Pgt(r.uri),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",s),e}));return this.sourceCache[e]=l,l}assignTexture(e,t,i,n){let r=this;return this.getDependency("texture",i.index).then((function(a){if(!a)return null;if(void 0!==i.texCoord&&i.texCoord>0&&((a=a.clone()).channel=i.texCoord),r.extensions[jr.KHR_TEXTURE_TRANSFORM]){let e=void 0!==i.extensions?i.extensions[jr.KHR_TEXTURE_TRANSFORM]:void 0;if(e){let t=r.associations.get(a);a=r.extensions[jr.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),r.associations.set(a,t)}}return void 0!==n&&(a.colorSpace=n),e[t]=a,a}))}assignFinalMaterial(e){let t=e.geometry,i=e.material,n=void 0===t.attributes.tangent,r=void 0!==t.attributes.color,a=void 0===t.attributes.normal;if(e.isPoints){let e="PointsMaterial:"+i.uuid,t=this.cache.get(e);t||(t=new bi,yr.prototype.copy.call(t,i),t.color.copy(i.color),t.map=i.map,t.sizeAttenuation=!1,this.cache.add(e,t)),i=t}else if(e.isLine){let e="LineBasicMaterial:"+i.uuid,t=this.cache.get(e);t||(t=new Gn,yr.prototype.copy.call(t,i),t.color.copy(i.color),t.map=i.map,this.cache.add(e,t)),i=t}if(n||r||a){let e="ClonedMaterial:"+i.uuid+":";n&&(e+="derivative-tangents:"),r&&(e+="vertex-colors:"),a&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=i.clone(),r&&(t.vertexColors=!0),a&&(t.flatShading=!0),n&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(i))),i=t}e.material=i}getMaterialType(){return Cu}loadMaterial(e){let t,i=this,n=this.json,r=this.extensions,a=n.materials[e],s={},o=[];if((a.extensions||{})[jr.KHR_MATERIALS_UNLIT]){let e=r[jr.KHR_MATERIALS_UNLIT];t=e.getMaterialType(),o.push(e.extendParams(s,a,i))}else{let n=a.pbrMetallicRoughness||{};if(s.color=new ct(1,1,1),s.opacity=1,Array.isArray(n.baseColorFactor)){let e=n.baseColorFactor;s.color.fromArray(e),s.opacity=e[3]}void 0!==n.baseColorTexture&&o.push(i.assignTexture(s,"map",n.baseColorTexture,en)),s.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,s.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(o.push(i.assignTexture(s,"metalnessMap",n.metallicRoughnessTexture)),o.push(i.assignTexture(s,"roughnessMap",n.metallicRoughnessTexture))),t=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),o.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,s)}))))}!0===a.doubleSided&&(s.side=Sr);let l=a.alphaMode||X6.OPAQUE;if(l===X6.BLEND?(s.transparent=!0,s.depthWrite=!1):(s.transparent=!1,l===X6.MASK&&(s.alphaTest=void 0!==a.alphaCutoff?a.alphaCutoff:.5)),void 0!==a.normalTexture&&t!==ln&&(o.push(i.assignTexture(s,"normalMap",a.normalTexture)),s.normalScale=new xe(1,1),void 0!==a.normalTexture.scale)){let e=a.normalTexture.scale;s.normalScale.set(e,e)}return void 0!==a.occlusionTexture&&t!==ln&&(o.push(i.assignTexture(s,"aoMap",a.occlusionTexture)),void 0!==a.occlusionTexture.strength&&(s.aoMapIntensity=a.occlusionTexture.strength)),void 0!==a.emissiveFactor&&t!==ln&&(s.emissive=(new ct).fromArray(a.emissiveFactor)),void 0!==a.emissiveTexture&&t!==ln&&o.push(i.assignTexture(s,"emissiveMap",a.emissiveTexture,en)),Promise.all(o).then((function(){let n=new t(s);return a.name&&(n.name=a.name),Jf(n,a),i.associations.set(n,{materials:e}),a.extensions&&ig(r,n,a),n}))}createUniqueName(e){let t=Jn.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,i=this.extensions,n=this.primitiveCache;function r(e){return i[jr.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(i){return j0e(i,e,t)}))}let a=[];for(let s=0,o=e.length;s0&&Agt(i,r),i.name=t.createUniqueName(r.name||"mesh_"+e),Jf(i,r),u.extensions&&ig(n,i,u),t.assignFinalMaterial(i),l.push(i)}for(let n=0,r=l.length;n1?new er:1===t.length?t[0]:new on,s!==t[0])for(let e=0,i=t.length;e{let t=new Map;for(let[i,r]of n.associations)(i instanceof yr||i instanceof Gr)&&t.set(i,r);return e.traverse((e=>{let i=n.associations.get(e);null!=i&&t.set(e,i)})),t})(r),r}))}_createAnimationTracks(e,t,i,n,r){let a,s=[],o=e.name?e.name:e.uuid,l=[];switch(Kf[r.path]===Kf.weights?e.traverse((function(e){e.morphTargetInfluences&&l.push(e.name?e.name:e.uuid)})):l.push(o),Kf[r.path]){case Kf.weights:a=Al;break;case Kf.rotation:a=Ha;break;case Kf.position:case Kf.scale:a=Va;break;default:a=1===i.itemSize?Al:Va}let h=void 0!==n.interpolation?Sgt[n.interpolation]:_u,c=this._getArrayFromAccessor(i);for(let u=0,d=l.length;u=0?e.substring(0,t):e;s=s.toLowerCase();let l=t>=0?e.substring(t+1):"";if(l=l.trim(),"newmtl"===s)n={name:l},a[l]=n;else if("ka"===s||"kd"===s||"ks"===s||"ke"===s){let e=l.split(r,3);n[s]=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])]}else n[s]=l}let s=new x4(this.resourcePath||t,this.materialOptions);return s.setCrossOrigin(this.crossOrigin),s.setManager(this.manager),s.setMaterials(a),s}},x4=class{constructor(e="",t={}){this.baseUrl=e,this.options=t,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.crossOrigin="anonymous",this.side=void 0!==this.options.side?this.options.side:pi,this.wrap=void 0!==this.options.wrap?this.options.wrap:Di}setCrossOrigin(e){return this.crossOrigin=e,this}setManager(e){this.manager=e}setMaterials(e){this.materialsInfo=this.convert(e),this.materials={},this.materialsArray=[],this.nameLookup={}}convert(e){if(!this.options)return e;let t={};for(let i in e){let n=e[i],r={};t[i]=r;for(let e in n){let t=!0,i=n[e],a=e.toLowerCase();switch(a){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(i=[i[0]/255,i[1]/255,i[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===i[0]&&0===i[1]&&0===i[2]&&(t=!1)}t&&(r[a]=i)}}return t}preload(){for(let e in this.materialsInfo)this.create(e)}getIndex(e){return this.nameLookup[e]}getAsArray(){let e=0;for(let t in this.materialsInfo)this.materialsArray[e]=this.create(t),this.nameLookup[t]=e,e++;return this.materialsArray}create(e){return void 0===this.materials[e]&&this.createMaterial_(e),this.materials[e]}createMaterial_(e){let t=this,i=this.materialsInfo[e],n={name:e,side:this.side};function r(e,i){if(n[e])return;let r=t.getTextureParams(i,n),a=t.loadTexture(function(e,t){return"string"!=typeof t||""===t?"":/^https?:\/\//i.test(t)?t:e+t}(t.baseUrl,r.url));a.repeat.copy(r.scale),a.offset.copy(r.offset),a.wrapS=t.wrap,a.wrapT=t.wrap,("map"===e||"emissiveMap"===e)&&(a.colorSpace=en),n[e]=a}for(let a in i){let e,t=i[a];if(""!==t)switch(a.toLowerCase()){case"kd":n.color=(new ct).fromArray(t).convertSRGBToLinear();break;case"ks":n.specular=(new ct).fromArray(t).convertSRGBToLinear();break;case"ke":n.emissive=(new ct).fromArray(t).convertSRGBToLinear();break;case"map_kd":r("map",t);break;case"map_ks":r("specularMap",t);break;case"map_ke":r("emissiveMap",t);break;case"norm":r("normalMap",t);break;case"map_bump":case"bump":r("bumpMap",t);break;case"map_d":r("alphaMap",t),n.transparent=!0;break;case"ns":n.shininess=parseFloat(t);break;case"d":e=parseFloat(t),e<1&&(n.opacity=e,n.transparent=!0);break;case"tr":e=parseFloat(t),this.options&&this.options.invertTrProperty&&(e=1-e),e>0&&(n.opacity=1-e,n.transparent=!0)}}return this.materials[e]=new ea(n),this.materials[e]}getTextureParams(e,t){let i,n={scale:new xe(1,1),offset:new xe(0,0)},r=e.split(/\s+/);return i=r.indexOf("-bm"),i>=0&&(t.bumpScale=parseFloat(r[i+1]),r.splice(i,2)),i=r.indexOf("-s"),i>=0&&(n.scale.set(parseFloat(r[i+1]),parseFloat(r[i+2])),r.splice(i,4)),i=r.indexOf("-o"),i>=0&&(n.offset.set(parseFloat(r[i+1]),parseFloat(r[i+2])),r.splice(i,4)),n.url=r.join(" ").trim(),n}loadTexture(e,t,i,n,r){let a=void 0!==this.manager?this.manager:fo,s=a.getHandler(e);null===s&&(s=new ws(a)),s.setCrossOrigin&&s.setCrossOrigin(this.crossOrigin);let o=s.load(e,i,n,r);return void 0!==t&&(o.mapping=t),o}},Dgt=/^[og]\s*(.+)?/,Ogt=/^mtllib /,kgt=/^usemtl /,Fgt=/^usemap /,Y0e=/\s+/,$0e=new D,b4=new D,Z0e=new D,K0e=new D,jl=new D,pP=new ct;function Ngt(){let e={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,t){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=e,void(this.object.fromDeclaration=!1!==t);let i=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:!1!==t,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(e,t){let i=this._finalize(!1);i&&(i.inherited||i.groupCount<=0)&&this.materials.splice(i.index,1);let n={index:this.materials.length,name:e||"",mtllib:Array.isArray(t)&&t.length>0?t[t.length-1]:"",smooth:void 0!==i?i.smooth:this.smooth,groupStart:void 0!==i?i.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(e){let t={index:"number"==typeof e?e:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return t.clone=this.clone.bind(t),t}};return this.materials.push(n),n},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(e){let t=this.currentMaterial();if(t&&-1===t.groupEnd&&(t.groupEnd=this.geometry.vertices.length/3,t.groupCount=t.groupEnd-t.groupStart,t.inherited=!1),e&&this.materials.length>1)for(let i=this.materials.length-1;i>=0;i--)this.materials[i].groupCount<=0&&this.materials.splice(i,1);return e&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),t}},i&&i.name&&"function"==typeof i.clone){let e=i.clone(0);e.inherited=!0,this.object.materials.push(e)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(e,t){let i=parseInt(e,10);return 3*(i>=0?i-1:i+t/3)},parseNormalIndex:function(e,t){let i=parseInt(e,10);return 3*(i>=0?i-1:i+t/3)},parseUVIndex:function(e,t){let i=parseInt(e,10);return 2*(i>=0?i-1:i+t/2)},addVertex:function(e,t,i){let n=this.vertices,r=this.object.geometry.vertices;r.push(n[e+0],n[e+1],n[e+2]),r.push(n[t+0],n[t+1],n[t+2]),r.push(n[i+0],n[i+1],n[i+2])},addVertexPoint:function(e){let t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addVertexLine:function(e){let t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addNormal:function(e,t,i){let n=this.normals,r=this.object.geometry.normals;r.push(n[e+0],n[e+1],n[e+2]),r.push(n[t+0],n[t+1],n[t+2]),r.push(n[i+0],n[i+1],n[i+2])},addFaceNormal:function(e,t,i){let n=this.vertices,r=this.object.geometry.normals;$0e.fromArray(n,e),b4.fromArray(n,t),Z0e.fromArray(n,i),jl.subVectors(Z0e,b4),K0e.subVectors($0e,b4),jl.cross(K0e),jl.normalize(),r.push(jl.x,jl.y,jl.z),r.push(jl.x,jl.y,jl.z),r.push(jl.x,jl.y,jl.z)},addColor:function(e,t,i){let n=this.colors,r=this.object.geometry.colors;void 0!==n[e]&&r.push(n[e+0],n[e+1],n[e+2]),void 0!==n[t]&&r.push(n[t+0],n[t+1],n[t+2]),void 0!==n[i]&&r.push(n[i+0],n[i+1],n[i+2])},addUV:function(e,t,i){let n=this.uvs,r=this.object.geometry.uvs;r.push(n[e+0],n[e+1]),r.push(n[t+0],n[t+1]),r.push(n[i+0],n[i+1])},addDefaultUV:function(){let e=this.object.geometry.uvs;e.push(0,0),e.push(0,0),e.push(0,0)},addUVLine:function(e){let t=this.uvs;this.object.geometry.uvs.push(t[e+0],t[e+1])},addFace:function(e,t,i,n,r,a,s,o,l){let h=this.vertices.length,c=this.parseVertexIndex(e,h),u=this.parseVertexIndex(t,h),d=this.parseVertexIndex(i,h);if(this.addVertex(c,u,d),this.addColor(c,u,d),void 0!==s&&""!==s){let e=this.normals.length;c=this.parseNormalIndex(s,e),u=this.parseNormalIndex(o,e),d=this.parseNormalIndex(l,e),this.addNormal(c,u,d)}else this.addFaceNormal(c,u,d);if(void 0!==n&&""!==n){let e=this.uvs.length;c=this.parseUVIndex(n,e),u=this.parseUVIndex(r,e),d=this.parseUVIndex(a,e),this.addUV(c,u,d),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type="Points";let t=this.vertices.length;for(let i=0,n=e.length;i=7?(pP.setRGB(parseFloat(i[4]),parseFloat(i[5]),parseFloat(i[6])).convertSRGBToLinear(),t.colors.push(pP.r,pP.g,pP.b)):t.colors.push(void 0,void 0,void 0);break;case"vn":t.normals.push(parseFloat(i[1]),parseFloat(i[2]),parseFloat(i[3]));break;case"vt":t.uvs.push(parseFloat(i[1]),parseFloat(i[2]))}}else if("f"===r){let i=e.slice(1).trim().split(Y0e),n=[];for(let e=0,t=i.length;e0){let e=t.split("/");n.push(e)}}let r=n[0];for(let e=1,a=n.length-1;e1){let e=n[1].trim().toLowerCase();t.object.smooth="0"!==e&&"off"!==e}else t.object.smooth=!0;let i=t.object.currentMaterial();i&&(i.smooth=t.object.smooth)}else{if("\0"===e)continue;console.warn('THREE.OBJLoader: Unexpected line: "'+e+'"')}}t.finalize();let r=new er;if(r.materialLibraries=[].concat(t.materialLibraries),1==!(1===t.objects.length&&0===t.objects[0].geometry.vertices.length))for(let a=0,s=t.objects.length;a0&&h.setAttribute("normal",new Bt(i.normals,3)),i.colors.length>0&&(l=!0,h.setAttribute("color",new Bt(i.colors,3))),!0===i.hasUVIndices&&h.setAttribute("uv",new Bt(i.uvs,2));let c,u=[];for(let r=0,a=n.length;r1){for(let e=0,t=n.length;e0){let e=new bi({size:1,sizeAttenuation:!1}),i=new Dt;i.setAttribute("position",new Bt(t.vertices,3)),t.colors.length>0&&void 0!==t.colors[0]&&(i.setAttribute("color",new Bt(t.colors,3)),e.vertexColors=!0);let n=new ii(i,e);r.add(n)}return r}},Eo=new ct,gP=class extends Er{constructor(e){super(e),this.propertyNameMapping={},this.customPropertyMapping={}}load(e,t,i,n){let r=this,a=new Kr(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(i){try{t(r.parse(i))}catch(t){n?n(t):console.error(t),r.manager.itemError(e)}}),i,n)}setPropertyNameMapping(e){this.propertyNameMapping=e}setCustomPropertyNameMapping(e){this.customPropertyMapping=e}parse(e){function t(e,t=0){let i="",n=/^ply([\s\S]*)end_header(\r\n|\r|\n)/.exec(e);null!==n&&(i=n[1]);let r,a={comments:[],elements:[],headerLength:t,objInfo:""},s=i.split(/\r\n|\r|\n/);function o(e,t){let i={type:e[0]};return"list"===i.type?(i.name=e[3],i.countType=e[1],i.itemType=e[2]):i.name=e[1],i.name in t&&(i.name=t[i.name]),i}for(let l=0;le.name));function i(e){for(let i=0,n=e.length;i0&&t.setIndex(e.indices),t.setAttribute("position",new Bt(e.vertices,3)),e.normals.length>0&&t.setAttribute("normal",new Bt(e.normals,3)),e.uvs.length>0&&t.setAttribute("uv",new Bt(e.uvs,2)),e.colors.length>0&&t.setAttribute("color",new Bt(e.colors,3)),(e.faceVertexUvs.length>0||e.faceVertexColors.length>0)&&(t=t.toNonIndexed(),e.faceVertexUvs.length>0&&t.setAttribute("uv",new Bt(e.faceVertexUvs,2)),e.faceVertexColors.length>0&&t.setAttribute("color",new Bt(e.faceVertexColors,3)));for(let i of Object.keys(d.customPropertyMapping))e[i].length>0&&t.setAttribute(i,new Bt(e[i],d.customPropertyMapping[i].length));return t.computeBoundingSphere(),t}function l(e,t,i,n){if("vertex"===t){e.vertices.push(i[n.attrX],i[n.attrY],i[n.attrZ]),null!==n.attrNX&&null!==n.attrNY&&null!==n.attrNZ&&e.normals.push(i[n.attrNX],i[n.attrNY],i[n.attrNZ]),null!==n.attrS&&null!==n.attrT&&e.uvs.push(i[n.attrS],i[n.attrT]),null!==n.attrR&&null!==n.attrG&&null!==n.attrB&&(Eo.setRGB(i[n.attrR]/255,i[n.attrG]/255,i[n.attrB]/255).convertSRGBToLinear(),e.colors.push(Eo.r,Eo.g,Eo.b));for(let t of Object.keys(d.customPropertyMapping))for(let n of d.customPropertyMapping[t])e[t].push(i[n])}else if("face"===t){let t=i.vertex_indices||i.vertex_index,r=i.texcoord;3===t.length?(e.indices.push(t[0],t[1],t[2]),r&&6===r.length&&(e.faceVertexUvs.push(r[0],r[1]),e.faceVertexUvs.push(r[2],r[3]),e.faceVertexUvs.push(r[4],r[5]))):4===t.length&&(e.indices.push(t[0],t[1],t[3]),e.indices.push(t[1],t[2],t[3])),null!==n.attrR&&null!==n.attrG&&null!==n.attrB&&(Eo.setRGB(i[n.attrR]/255,i[n.attrG]/255,i[n.attrB]/255).convertSRGBToLinear(),e.faceVertexColors.push(Eo.r,Eo.g,Eo.b),e.faceVertexColors.push(Eo.r,Eo.g,Eo.b),e.faceVertexColors.push(Eo.r,Eo.g,Eo.b))}}function h(e,t){let i={},n=0;for(let r=0;re.getInt8(t),size:1};case"uint8":case"uchar":return{read:t=>e.getUint8(t),size:1};case"int16":case"short":return{read:t=>e.getInt16(t,i),size:2};case"uint16":case"ushort":return{read:t=>e.getUint16(t,i),size:2};case"int32":case"int":return{read:t=>e.getInt32(t,i),size:4};case"uint32":case"uint":return{read:t=>e.getUint32(t,i),size:4};case"float32":case"float":return{read:t=>e.getFloat32(t,i),size:4};case"float64":case"double":return{read:t=>e.getFloat64(t,i),size:8}}}for(let r=0,a=e.length;r=this.arr.length}next(){return this.arr[this.i++]}},vP=class extends Er{constructor(e){super(e)}load(e,t,i,n){let r=this,a=new Kr(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(i){try{t(r.parse(i))}catch(t){n?n(t):console.error(t),r.manager.itemError(e)}}),i,n)}parse(e){function t(e,t,i){for(let n=0,r=e.length;n>5&31)/31,n=(r>>10&31)/31)}for(let a=1;a<=3;a++){let s=e+12*a,o=3*g*3+3*(a-1);p[o]=h.getFloat32(s,!0),p[o+1]=h.getFloat32(s+4,!0),p[o+2]=h.getFloat32(s+8,!0),f[o]=l,f[o+1]=c,f[o+2]=d,u&&(m.set(t,i,n).convertSRGBToLinear(),r[o]=m.r,r[o+1]=m.g,r[o+2]=m.b)}}return d.setAttribute("position",new mn(p,3)),d.setAttribute("normal",new mn(f,3)),u&&(d.setAttribute("color",new mn(r,3)),d.hasColors=!0,d.alpha=l),d}(i):function(e){let t,i=new Dt,n=/solid([\s\S]*?)endsolid/g,r=/facet([\s\S]*?)endfacet/g,a=0,s=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,o=new RegExp("vertex"+s+s+s,"g"),l=new RegExp("normal"+s+s+s,"g"),h=[],c=[],u=new D,d=0,p=0,f=0;for(;null!==(t=n.exec(e));){p=f;let e=t[0];for(;null!==(t=r.exec(e));){let e=0,i=0,n=t[0];for(;null!==(t=l.exec(n));)u.x=parseFloat(t[1]),u.y=parseFloat(t[2]),u.z=parseFloat(t[3]),i++;for(;null!==(t=o.exec(n));)h.push(parseFloat(t[1]),parseFloat(t[2]),parseFloat(t[3])),c.push(u.x,u.y,u.z),e++,f++;1!==i&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+a),3!==e&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+a),a++}let n=p,s=f-p;i.addGroup(n,s,d),d++}return i.setAttribute("position",new Bt(h,3)),i.setAttribute("normal",new Bt(c,3)),i}("string"!=typeof(n=e)?(new TextDecoder).decode(n):n);var n}},sg=class{constructor(e){this.buffer=e,this.u8=new Uint8Array(e)}getBit(e){var t=7&e;return(this.u8[e>>3]&128>>t)>>7-t}setBit(e,t){var i=e>>3,n=this.u8[i],r=7&e;this.u8[i]=t?n|128>>r:n&~(128>>r)}getInt12(e){var t=e/8|0,i=this.u8[t],n=this.u8[t+1],r=this.u8[t+2],a=e%8,s=8-a,o=Math.min(12-s,8);return(((i&=~(255<>12-a)-2048}setInt12(e,t){var i=e/8|0,n=e%8,r=(t+=2048)<<12-n,a=(16711680&r)>>16,s=(65280&r)>>8,o=255&r,l=8-n,h=Math.min(12-l,8),c=Math.max(12-l-h,0),u=255<>8-(2-r))))<<8)+(n&=255<<8-Math.max(6-a,0))>>10-r)-32}setInt6(e,t){var i=e/8|0,n=e%8,r=(t+=32)<<10-n,a=(65280&r)>>8,s=255&r,o=8-n,l=Math.max(6-o,0),h=(255<>8-(2-n));this.u8[i]=(this.u8[i]&h)+a;var c=~(255<<8-l);this.u8[i+1]=(this.u8[i+1]&c)+s}test(){var e,t,i=new ArrayBuffer(3),n=new sg(i);for(t=0;t<12;t++)for(e=-2048;e<2048;e++)if(n.setInt12(t,e),n.getInt12(t)!=e){console.log("12-bit prob at",t,e),console.log("expected",e,"got",n.getInt12(t));break}for(t=0;t<18;t++)for(e=-32;e<32;e++)if(n.setInt6(t,e),n.getInt6(t)!=e){console.log("6-bit prob at",t,e),console.log("expected",e,"got",n.getInt6(t));break}return n}},J0e=(e=>(e[e.NULL=0]="NULL",e[e.POINT=1]="POINT",e[e.POLYLINE=3]="POLYLINE",e[e.POLYGON=5]="POLYGON",e))(J0e||{}),yP=class{parse(e){var t={},i=new DataView(e),n=0;if(t.fileCode=i.getInt32(n,!1),9994!=t.fileCode)throw new Error("Unknown file code: "+t.fileCode);for(n+=24,t.wordLength=i.getInt32(n,!1),t.byteLength=2*t.wordLength,n+=4,t.version=i.getInt32(n,!0),n+=4,t.shapeType=i.getInt32(n,!0),n+=4,t.minX=i.getFloat64(n,!0),t.minY=i.getFloat64(n+8,!0),t.maxX=i.getFloat64(n+16,!0),t.maxY=i.getFloat64(n+24,!0),t.minZ=i.getFloat64(n+32,!0),t.maxZ=i.getFloat64(n+40,!0),t.minM=i.getFloat64(n+48,!0),t.maxM=i.getFloat64(n+56,!0),n+=64,t.records=[];nr.push(...e)));let a=new Dt;a.setFromPoints(e),a.setIndex(r),t.push(a);let s=new Dt;e.length>2&&!e[0].equals(e[e.length-1])&&e.push(e[0]),s.setFromPoints(e),i.push(s)}else{let t=new Dt;t.setFromPoints(e),i.push(t)}}}var d=new on;for(n=0;n1023||Math.abs(a-e[o+1])>1023?(i.push(n),s+=1,n=[],r=e[o],a=e[o+1],n.push(r,a),s+=4,o++):(n.push((e[o]-r)/8,(e[o+1]-a)/8),r+=8*((e[o]-r)/8|0),a+=8*((e[o+1]-a)/8|0),s+=2,o++):(i.push(n),t.push(i),i=[],n=[],s+=3);return this.storeDeltas(s,t)}deltaEncode6(e){var t=[],i=[],n=[],r=0,a=0,s=0,o=0;for(s=0;s31||Math.abs(a-e[s+1])>31?(i.push(n),o+=1,n=[],r=e[s],a=e[s+1],n.push(r,a),o+=4,s++):(n.push(e[s]-r,e[s+1]-a),r+=e[s]-r,a+=e[s+1]-a,o+=2,s++):(i.push(n),t.push(i),i=[],n=[],o+=3);return this.storeDeltas6(o,t)}storeDeltas(e,t){for(var i=new ArrayBuffer(e),n=new DataView(i),r=0,a=0;a{this.updateProgress(i,50);let e=(new yP).parse(r.response),n=(new xP).createModel(e);this.updateProgress(i,99),t(n)},r.onerror=n,r.open("GET",e),r.send(null)}))}updateProgress(e,t){e&&e(new ProgressEvent("progress",{lengthComputable:!0,loaded:t,total:100}))}},_4=class{constructor(e){this.manager=e}loadLocalModel(e,t,i){return ft(this,null,(function*(){let n=t.toLowerCase();return n.endsWith("fbx")?this.loadFbx(e,i):n.endsWith("obj")?this.loadObj(e,i):n.endsWith("stl")?this.loadStl(e,i):n.endsWith("ifc")?(se.warn("[LoadingHelper] IFC is not supported directly since three.js r150!"),Promise.reject("Not supported!")):n.endsWith("shp")?this.loadShp(e,i):n.endsWith("dae")?this.loadDae(e,i):n.endsWith("dxf")?this.loadDxf(e,i):n.endsWith("jpg")||n.endsWith("jpeg")||n.endsWith("png")?this.loadImage(e,i):this.loadGltf(e,i)}))}loadModel(e,t,i){return ft(this,null,(function*(){let n=e;if(!n)return Promise.resolve();let r=(null==t?void 0:t.toLowerCase())||"";if(!r){let e=n.split("?")[0].toLowerCase();if(e){let t=e.lastIndexOf(".");-1!==t&&(r=e.slice(t+1))}}return r.endsWith("fbx")?this.loadFbx(n,i):r.endsWith("obj")?this.loadObj(n,i):r.endsWith("stl")?this.loadStl(n,i):r.endsWith("ifc")?void se.warn("[LoadingHelper] IFC is not supported directly since three.js r150!"):r.endsWith("shp")?this.loadShp(n,i):r.endsWith("dae")?this.loadDae(n,i):r.endsWith("dxf")?this.loadDxf(n,i):r.endsWith("jpg")||r.endsWith("jpeg")||r.endsWith("png")?this.loadImage(n,i):this.loadGltf(n,i)}))}loadGltf(e,t){return ft(this,null,(function*(){let i=this.getGltfLoader();-1!==e.indexOf("#")&&console.warn(`[LoadingHelper] '#' is not allowed in filename ${e}`),e=e.replace(/#/g,encodeURIComponent("#"));let n=yield i.loadAsync(e,(e=>{0===e.total&&e.loaded>0||t&&t(e)}));return Promise.resolve(n.scene)}))}parseGltf(e,t,i,n){return this.getGltfLoader().parse(e,t,(e=>i(e.scene)),n)}loadFbx(e,t){return ft(this,null,(function*(){let i=yield new cP(this.manager).loadAsync(e,t);return Promise.resolve(i)}))}loadObj(e,t){return ft(this,null,(function*(){let i=new mP(this.manager),n=new fP(this.manager),r=e.replace(".obj",".mtl"),a=yield n.loadAsync(r,t);a.preload(),i.setMaterials(a);let s=yield i.loadAsync(e,t);return Promise.resolve(s)}))}loadStl(e,t){return ft(this,null,(function*(){let i=yield new vP(this.manager).loadAsync(e,t),n=new Cu({color:11184810,metalness:.1,roughness:.8}),r=new xt(i,n);return Promise.resolve(r)}))}loadShp(e,t){return ft(this,null,(function*(){let i=new bP;return new Promise(((n,r)=>{i.load(e,(e=>{n(e)}),t,(e=>{r(e)}))}))}))}loadDae(e,t){return ft(this,null,(function*(){let i=yield new sP(this.manager).loadAsync(e,t);return Promise.resolve(i.scene)}))}loadDxf(e,t){return ft(this,null,(function*(){var i;this.font||console.warn("[LoadingHelper] Should set font first!");let n=new gn(this.manager,{ignorePaperSpace:!0,enableLocalCache:!1});n.setFont(this.font),yield null==(i=this.font)?void 0:i.getFontFromIndexeddb();try{let i=yield n.loadAsync(e,t);return Promise.resolve(i.threejsObject)}catch(e){let i=new ErrorEvent("");return Promise.reject(i)}}))}loadPly(e,t){return ft(this,null,(function*(){let i=yield new gP(this.manager).loadAsync(e,t);return Promise.resolve(new xt(i))}))}loadImage(e,t){return ft(this,null,(function*(){let i=yield new ws(this.manager).loadAsync(e,t);if(!i)return Promise.reject("Failed to load image!");let n=i.image,r=n&&n.height||10,a=n&&n.width||10;r*=10/a,a=10;let s=new ln({map:i,side:Sr,transparent:!0}),o=new ui(a,r),l=new xt(o,s);return Promise.resolve(l)}))}loadDxfData(e,t,i,n,r){return ft(this,null,(function*(){var a;this.font||console.warn("[LoadingHelper] Should set font first!");let s=new gn(this.manager,r);return s.setFont(this.font),yield null==(a=this.font)?void 0:a.getFontFromIndexeddb(),s.manager.onLoad=()=>{n&&n()},s.load(e,t,i)}))}setFont(e){this.font=e}static setDracoDecoderPath(e){this.decoderPath=e}getGltfLoader(){if(!this.gltfLoader){this.gltfLoader=new eh(this.manager);let e=new aP(this.manager);e.setDecoderPath(_4.decoderPath),this.gltfLoader.setDRACOLoader(e)}return this.gltfLoader}},ja=_4;function T4(e){let t=new Blob([e],{type:"text/javascript"}),i=URL.createObjectURL(t),n=new Worker(i);return URL.revokeObjectURL(i),n}function w4(){return T4('var Jc=Object.defineProperty,$c=Object.defineProperties;var Kc=Object.getOwnPropertyDescriptors;var zo=Object.getOwnPropertySymbols;var Qc=Object.prototype.hasOwnProperty,jc=Object.prototype.propertyIsEnumerable;var Vo=(i,t,e)=>t in i?Jc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,ts=(i,t)=>{for(var e in t||(t={}))Qc.call(t,e)&&Vo(i,e,t[e]);if(zo)for(var e of zo(t))jc.call(t,e)&&Vo(i,e,t[e]);return i},ko=(i,t)=>$c(i,Kc(t));var mo="155";var tl=0,Ho=1,el=2;var ac=1,nl=2,rn=3,He=0,he=1,ze=2;var vn=0,fi=1,Go=2,Wo=3,Xo=4,il=5,li=100,sl=101,rl=102,qo=103,Yo=104,ol=200,al=201,cl=202,ll=203,cc=204,lc=205,hl=206,ul=207,fl=208,dl=209,pl=210,ml=0,gl=1,_l=2,Lr=3,xl=4,yl=5,vl=6,Ml=7,hc=0,Sl=1,bl=2,Mn=0,El=1,Tl=2,wl=3,Al=4,Rl=5,uc=300,mi=301,gi=302,Ir=303,Ur=304,Bs=306,Dr=1e3,Ve=1001,Nr=1002,pe=1003,Zo=1004;var er=1005;var Ie=1006,Cl=1007;var Hi=1008;var Sn=1009,Pl=1010,Ll=1011,go=1012,fc=1013,xn=1014,yn=1015,Gi=1016,dc=1017,pc=1018,Fn=1020,Il=1021,ke=1023,Ul=1024,Dl=1025,On=1026,_i=1027,Nl=1028,mc=1029,Fl=1030,gc=1031,_c=1033,nr=33776,ir=33777,sr=33778,rr=33779,Jo=35840,$o=35841,Ko=35842,Qo=35843,Ol=36196,jo=37492,ta=37496,ea=37808,na=37809,ia=37810,sa=37811,ra=37812,oa=37813,aa=37814,ca=37815,la=37816,ha=37817,ua=37818,fa=37819,da=37820,pa=37821,or=36492,Bl=36283,ma=36284,ga=36285,_a=36286;var bs=2300,Es=2301,ar=2302,xa=2400,ya=2401,va=2402;var xc=3e3,Bn=3001,zl=3200,Vl=3201,kl=0,Hl=1,zn="",Rt="srgb",Ze="srgb-linear",yc="display-p3";var cr=7680;var Gl=519,Wl=512,Xl=513,ql=514,Yl=515,Zl=516,Jl=517,$l=518,Kl=519,Ma=35044;var Sa="300 es",Fr=1035,on=2e3,Ts=2001,bn=class{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;let n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;let s=this._listeners[t];if(s!==void 0){let r=s.indexOf(e);r!==-1&&s.splice(r,1)}}dispatchEvent(t){if(this._listeners===void 0)return;let n=this._listeners[t.type];if(n!==void 0){t.target=this;let s=n.slice(0);for(let r=0,a=s.length;r>8&255]+ce[i>>16&255]+ce[i>>24&255]+"-"+ce[t&255]+ce[t>>8&255]+"-"+ce[t>>16&15|64]+ce[t>>24&255]+"-"+ce[e&63|128]+ce[e>>8&255]+"-"+ce[e>>16&255]+ce[e>>24&255]+ce[n&255]+ce[n>>8&255]+ce[n>>16&255]+ce[n>>24&255]).toLowerCase()}function me(i,t,e){return Math.max(t,Math.min(e,i))}function Ql(i,t){return(i%t+t)%t}function hr(i,t,e){return(1-e)*i+e*t}function ba(i){return(i&i-1)===0&&i!==0}function Br(i){return Math.pow(2,Math.floor(Math.log(i)/Math.LN2))}function Di(i,t){switch(t.constructor){case Float32Array:return i;case Uint32Array:return i/4294967295;case Uint16Array:return i/65535;case Uint8Array:return i/255;case Int32Array:return Math.max(i/2147483647,-1);case Int16Array:return Math.max(i/32767,-1);case Int8Array:return Math.max(i/127,-1);default:throw new Error("Invalid component type.")}}function ye(i,t){switch(t.constructor){case Float32Array:return i;case Uint32Array:return Math.round(i*4294967295);case Uint16Array:return Math.round(i*65535);case Uint8Array:return Math.round(i*255);case Int32Array:return Math.round(i*2147483647);case Int16Array:return Math.round(i*32767);case Int8Array:return Math.round(i*127);default:throw new Error("Invalid component type.")}}var Nt=class{constructor(t=0,e=0){Nt.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){let e=this.x,n=this.y,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6],this.y=s[1]*e+s[4]*n+s[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){let e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;let n=this.dot(t)/e;return Math.acos(me(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){let n=Math.cos(e),s=Math.sin(e),r=this.x-t.x,a=this.y-t.y;return this.x=r*n-a*s+t.x,this.y=r*s+a*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Ct=class{constructor(t,e,n,s,r,a,o,c,l){Ct.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,e,n,s,r,a,o,c,l)}set(t,e,n,s,r,a,o,c,l){let h=this.elements;return h[0]=t,h[1]=s,h[2]=o,h[3]=e,h[4]=r,h[5]=c,h[6]=n,h[7]=a,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){let e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){let e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,s=e.elements,r=this.elements,a=n[0],o=n[3],c=n[6],l=n[1],h=n[4],d=n[7],u=n[2],m=n[5],g=n[8],x=s[0],p=s[3],f=s[6],v=s[1],_=s[4],b=s[7],S=s[2],T=s[5],A=s[8];return r[0]=a*x+o*v+c*S,r[3]=a*p+o*_+c*T,r[6]=a*f+o*b+c*A,r[1]=l*x+h*v+d*S,r[4]=l*p+h*_+d*T,r[7]=l*f+h*b+d*A,r[2]=u*x+m*v+g*S,r[5]=u*p+m*_+g*T,r[8]=u*f+m*b+g*A,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){let t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8];return e*a*h-e*o*l-n*r*h+n*o*c+s*r*l-s*a*c}invert(){let t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8],d=h*a-o*l,u=o*c-h*r,m=l*r-a*c,g=e*d+n*u+s*m;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);let x=1/g;return t[0]=d*x,t[1]=(s*l-h*n)*x,t[2]=(o*n-s*a)*x,t[3]=u*x,t[4]=(h*e-s*c)*x,t[5]=(s*r-o*e)*x,t[6]=m*x,t[7]=(n*c-l*e)*x,t[8]=(a*e-n*r)*x,this}transpose(){let t,e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){let e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,s,r,a,o){let c=Math.cos(r),l=Math.sin(r);return this.set(n*c,n*l,-n*(c*a+l*o)+a+t,-s*l,s*c,-s*(-l*a+c*o)+o+e,0,0,1),this}scale(t,e){return this.premultiply(ur.makeScale(t,e)),this}rotate(t){return this.premultiply(ur.makeRotation(-t)),this}translate(t,e){return this.premultiply(ur.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){let e=this.elements,n=t.elements;for(let s=0;s<9;s++)if(e[s]!==n[s])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){let n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return new this.constructor().fromArray(this.elements)}},ur=new Ct;function vc(i){for(let t=i.length-1;t>=0;--t)if(i[t]>=65535)return!0;return!1}function ws(i){return document.createElementNS("http://www.w3.org/1999/xhtml",i)}var Ea={};function Vi(i){i in Ea||(Ea[i]=!0,console.warn(i))}function di(i){return i<.04045?i*.0773993808:Math.pow(i*.9478672986+.0521327014,2.4)}function fr(i){return i<.0031308?i*12.92:1.055*Math.pow(i,.41666)-.055}var jl=new Ct().fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),th=new Ct().fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);function eh(i){return i.convertSRGBToLinear().applyMatrix3(th)}function nh(i){return i.applyMatrix3(jl).convertLinearToSRGB()}var ih={[Ze]:i=>i,[Rt]:i=>i.convertSRGBToLinear(),[yc]:eh},sh={[Ze]:i=>i,[Rt]:i=>i.convertLinearToSRGB(),[yc]:nh},Ne={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(i){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!i},get workingColorSpace(){return Ze},set workingColorSpace(i){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(i,t,e){if(this.enabled===!1||t===e||!t||!e)return i;let n=ih[t],s=sh[e];if(n===void 0||s===void 0)throw new Error(`Unsupported color space conversion, "${t}" to "${e}".`);return s(n(i))},fromWorkingColorSpace:function(i,t){return this.convert(i,this.workingColorSpace,t)},toWorkingColorSpace:function(i,t){return this.convert(i,t,this.workingColorSpace)}},Yn,As=class{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement=="undefined")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{Yn===void 0&&(Yn=ws("canvas")),Yn.width=t.width,Yn.height=t.height;let n=Yn.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=Yn}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement!="undefined"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&t instanceof ImageBitmap){let e=ws("canvas");e.width=t.width,e.height=t.height;let n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);let s=n.getImageData(0,0,t.width,t.height),r=s.data;for(let a=0;a0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==uc)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Dr:t.x=t.x-Math.floor(t.x);break;case Ve:t.x=t.x<0?0:1;break;case Nr:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case Dr:t.y=t.y-Math.floor(t.y);break;case Ve:t.y=t.y<0?0:1;break;case Nr:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Vi("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===Rt?Bn:xc}set encoding(t){Vi("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=t===Bn?Rt:zn}};ge.DEFAULT_IMAGE=null;ge.DEFAULT_MAPPING=uc;ge.DEFAULT_ANISOTROPY=1;var jt=class{constructor(t=0,e=0,n=0,s=1){jt.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=s}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,s){return this.x=t,this.y=e,this.z=n,this.w=s,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){let e=this.x,n=this.y,s=this.z,r=this.w,a=t.elements;return this.x=a[0]*e+a[4]*n+a[8]*s+a[12]*r,this.y=a[1]*e+a[5]*n+a[9]*s+a[13]*r,this.z=a[2]*e+a[6]*n+a[10]*s+a[14]*r,this.w=a[3]*e+a[7]*n+a[11]*s+a[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);let e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,s,r,c=t.elements,l=c[0],h=c[4],d=c[8],u=c[1],m=c[5],g=c[9],x=c[2],p=c[6],f=c[10];if(Math.abs(h-u)<.01&&Math.abs(d-x)<.01&&Math.abs(g-p)<.01){if(Math.abs(h+u)<.1&&Math.abs(d+x)<.1&&Math.abs(g+p)<.1&&Math.abs(l+m+f-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;let _=(l+1)/2,b=(m+1)/2,S=(f+1)/2,T=(h+u)/4,A=(d+x)/4,L=(g+p)/4;return _>b&&_>S?_<.01?(n=0,s=.707106781,r=.707106781):(n=Math.sqrt(_),s=T/n,r=A/n):b>S?b<.01?(n=.707106781,s=0,r=.707106781):(s=Math.sqrt(b),n=T/s,r=L/s):S<.01?(n=.707106781,s=.707106781,r=0):(r=Math.sqrt(S),n=A/r,s=L/r),this.set(n,s,r,e),this}let v=Math.sqrt((p-g)*(p-g)+(d-x)*(d-x)+(u-h)*(u-h));return Math.abs(v)<.001&&(v=1),this.x=(p-g)/v,this.y=(d-x)/v,this.z=(u-h)/v,this.w=Math.acos((l+m+f-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},zr=class extends bn{constructor(t=1,e=1,n={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new jt(0,0,t,e),this.scissorTest=!1,this.viewport=new jt(0,0,t,e);let s={width:t,height:e,depth:1};n.encoding!==void 0&&(Vi("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),n.colorSpace=n.encoding===Bn?Rt:zn),this.texture=new ge(s,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.internalFormat=n.internalFormat!==void 0?n.internalFormat:null,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:Ie,this.depthBuffer=n.depthBuffer!==void 0?n.depthBuffer:!0,this.stencilBuffer=n.stencilBuffer!==void 0?n.stencilBuffer:!1,this.depthTexture=n.depthTexture!==void 0?n.depthTexture:null,this.samples=n.samples!==void 0?n.samples:0}setSize(t,e,n=1){(this.width!==t||this.height!==e||this.depth!==n)&&(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return new this.constructor().copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.scissor.copy(t.scissor),this.scissorTest=t.scissorTest,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.isRenderTargetTexture=!0;let e=Object.assign({},t.texture.image);return this.texture.source=new Rs(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,t.depthTexture!==null&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},cn=class extends zr{constructor(t=1,e=1,n={}){super(t,e,n),this.isWebGLRenderTarget=!0}},Cs=class extends ge{constructor(t=null,e=1,n=1,s=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:n,depth:s},this.magFilter=pe,this.minFilter=pe,this.wrapR=Ve,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var Vr=class extends ge{constructor(t=null,e=1,n=1,s=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:n,depth:s},this.magFilter=pe,this.minFilter=pe,this.wrapR=Ve,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var En=class{constructor(t=0,e=0,n=0,s=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=n,this._w=s}static slerpFlat(t,e,n,s,r,a,o){let c=n[s+0],l=n[s+1],h=n[s+2],d=n[s+3],u=r[a+0],m=r[a+1],g=r[a+2],x=r[a+3];if(o===0){t[e+0]=c,t[e+1]=l,t[e+2]=h,t[e+3]=d;return}if(o===1){t[e+0]=u,t[e+1]=m,t[e+2]=g,t[e+3]=x;return}if(d!==x||c!==u||l!==m||h!==g){let p=1-o,f=c*u+l*m+h*g+d*x,v=f>=0?1:-1,_=1-f*f;if(_>Number.EPSILON){let S=Math.sqrt(_),T=Math.atan2(S,f*v);p=Math.sin(p*T)/S,o=Math.sin(o*T)/S}let b=o*v;if(c=c*p+u*b,l=l*p+m*b,h=h*p+g*b,d=d*p+x*b,p===1-o){let S=1/Math.sqrt(c*c+l*l+h*h+d*d);c*=S,l*=S,h*=S,d*=S}}t[e]=c,t[e+1]=l,t[e+2]=h,t[e+3]=d}static multiplyQuaternionsFlat(t,e,n,s,r,a){let o=n[s],c=n[s+1],l=n[s+2],h=n[s+3],d=r[a],u=r[a+1],m=r[a+2],g=r[a+3];return t[e]=o*g+h*d+c*m-l*u,t[e+1]=c*g+h*u+l*d-o*m,t[e+2]=l*g+h*m+o*u-c*d,t[e+3]=h*g-o*d-c*u-l*m,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,s){return this._x=t,this._y=e,this._z=n,this._w=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){let n=t._x,s=t._y,r=t._z,a=t._order,o=Math.cos,c=Math.sin,l=o(n/2),h=o(s/2),d=o(r/2),u=c(n/2),m=c(s/2),g=c(r/2);switch(a){case"XYZ":this._x=u*h*d+l*m*g,this._y=l*m*d-u*h*g,this._z=l*h*g+u*m*d,this._w=l*h*d-u*m*g;break;case"YXZ":this._x=u*h*d+l*m*g,this._y=l*m*d-u*h*g,this._z=l*h*g-u*m*d,this._w=l*h*d+u*m*g;break;case"ZXY":this._x=u*h*d-l*m*g,this._y=l*m*d+u*h*g,this._z=l*h*g+u*m*d,this._w=l*h*d-u*m*g;break;case"ZYX":this._x=u*h*d-l*m*g,this._y=l*m*d+u*h*g,this._z=l*h*g-u*m*d,this._w=l*h*d+u*m*g;break;case"YZX":this._x=u*h*d+l*m*g,this._y=l*m*d+u*h*g,this._z=l*h*g-u*m*d,this._w=l*h*d-u*m*g;break;case"XZY":this._x=u*h*d-l*m*g,this._y=l*m*d-u*h*g,this._z=l*h*g+u*m*d,this._w=l*h*d+u*m*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return e!==!1&&this._onChangeCallback(),this}setFromAxisAngle(t,e){let n=e/2,s=Math.sin(n);return this._x=t.x*s,this._y=t.y*s,this._z=t.z*s,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){let e=t.elements,n=e[0],s=e[4],r=e[8],a=e[1],o=e[5],c=e[9],l=e[2],h=e[6],d=e[10],u=n+o+d;if(u>0){let m=.5/Math.sqrt(u+1);this._w=.25/m,this._x=(h-c)*m,this._y=(r-l)*m,this._z=(a-s)*m}else if(n>o&&n>d){let m=2*Math.sqrt(1+n-o-d);this._w=(h-c)/m,this._x=.25*m,this._y=(s+a)/m,this._z=(r+l)/m}else if(o>d){let m=2*Math.sqrt(1+o-n-d);this._w=(r-l)/m,this._x=(s+a)/m,this._y=.25*m,this._z=(c+h)/m}else{let m=2*Math.sqrt(1+d-n-o);this._w=(a-s)/m,this._x=(r+l)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(me(this.dot(t),-1,1)))}rotateTowards(t,e){let n=this.angleTo(t);if(n===0)return this;let s=Math.min(1,e/n);return this.slerp(t,s),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){let n=t._x,s=t._y,r=t._z,a=t._w,o=e._x,c=e._y,l=e._z,h=e._w;return this._x=n*h+a*o+s*l-r*c,this._y=s*h+a*c+r*o-n*l,this._z=r*h+a*l+n*c-s*o,this._w=a*h-n*o-s*c-r*l,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);let n=this._x,s=this._y,r=this._z,a=this._w,o=a*t._w+n*t._x+s*t._y+r*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=n,this._y=s,this._z=r,this;let c=1-o*o;if(c<=Number.EPSILON){let m=1-e;return this._w=m*a+e*this._w,this._x=m*n+e*this._x,this._y=m*s+e*this._y,this._z=m*r+e*this._z,this.normalize(),this._onChangeCallback(),this}let l=Math.sqrt(c),h=Math.atan2(l,o),d=Math.sin((1-e)*h)/l,u=Math.sin(e*h)/l;return this._w=a*d+this._w*u,this._x=n*d+this._x*u,this._y=s*d+this._y*u,this._z=r*d+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){let t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),s=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(s),n*Math.sin(r),n*Math.cos(r),e*Math.sin(s))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},P=class{constructor(t=0,e=0,n=0){P.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return n===void 0&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(Ta.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Ta.setFromAxisAngle(t,e))}applyMatrix3(t){let e=this.x,n=this.y,s=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*s,this.y=r[1]*e+r[4]*n+r[7]*s,this.z=r[2]*e+r[5]*n+r[8]*s,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){let e=this.x,n=this.y,s=this.z,r=t.elements,a=1/(r[3]*e+r[7]*n+r[11]*s+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*s+r[12])*a,this.y=(r[1]*e+r[5]*n+r[9]*s+r[13])*a,this.z=(r[2]*e+r[6]*n+r[10]*s+r[14])*a,this}applyQuaternion(t){let e=this.x,n=this.y,s=this.z,r=t.x,a=t.y,o=t.z,c=t.w,l=c*e+a*s-o*n,h=c*n+o*e-r*s,d=c*s+r*n-a*e,u=-r*e-a*n-o*s;return this.x=l*c+u*-r+h*-o-d*-a,this.y=h*c+u*-a+d*-r-l*-o,this.z=d*c+u*-o+l*-a-h*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){let e=this.x,n=this.y,s=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*s,this.y=r[1]*e+r[5]*n+r[9]*s,this.z=r[2]*e+r[6]*n+r[10]*s,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){let n=t.x,s=t.y,r=t.z,a=e.x,o=e.y,c=e.z;return this.x=s*c-r*o,this.y=r*a-n*c,this.z=n*o-s*a,this}projectOnVector(t){let e=t.lengthSq();if(e===0)return this.set(0,0,0);let n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return pr.copy(this).projectOnVector(t),this.sub(pr)}reflect(t){return this.sub(pr.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){let e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;let n=this.dot(t)/e;return Math.acos(me(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,n=this.y-t.y,s=this.z-t.z;return e*e+n*n+s*s}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){let s=Math.sin(e)*t;return this.x=s*Math.sin(n),this.y=Math.cos(e)*t,this.z=s*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){let e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){let e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),s=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=s,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let t=(Math.random()-.5)*2,e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},pr=new P,Ta=new En,_e=class{constructor(t=new P(1/0,1/0,1/0),e=new P(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,je),je.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ni),es.subVectors(this.max,Ni),Jn.subVectors(t.a,Ni),$n.subVectors(t.b,Ni),Kn.subVectors(t.c,Ni),dn.subVectors($n,Jn),pn.subVectors(Kn,$n),Pn.subVectors(Jn,Kn);let e=[0,-dn.z,dn.y,0,-pn.z,pn.y,0,-Pn.z,Pn.y,dn.z,0,-dn.x,pn.z,0,-pn.x,Pn.z,0,-Pn.x,-dn.y,dn.x,0,-pn.y,pn.x,0,-Pn.y,Pn.x,0];return!mr(e,Jn,$n,Kn,es)||(e=[1,0,0,0,1,0,0,0,1],!mr(e,Jn,$n,Kn,es))?!1:(ns.crossVectors(dn,pn),e=[ns.x,ns.y,ns.z],mr(e,Jn,$n,Kn,es))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,je).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=this.getSize(je).length()*.5),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()?this:(Qe[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Qe[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Qe[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Qe[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Qe[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Qe[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Qe[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Qe[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Qe),this)}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},Qe=[new P,new P,new P,new P,new P,new P,new P,new P],je=new P,Zn=new _e,Jn=new P,$n=new P,Kn=new P,dn=new P,pn=new P,Pn=new P,Ni=new P,es=new P,ns=new P,Ln=new P;function mr(i,t,e,n,s){for(let r=0,a=i.length-3;r<=a;r+=3){Ln.fromArray(i,r);let o=s.x*Math.abs(Ln.x)+s.y*Math.abs(Ln.y)+s.z*Math.abs(Ln.z),c=t.dot(Ln),l=e.dot(Ln),h=n.dot(Ln);if(Math.max(-Math.max(c,l,h),Math.min(c,l,h))>o)return!1}return!0}var ah=new _e,Fi=new P,gr=new P,Vn=class{constructor(t=new P,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){let n=this.center;e!==void 0?n.copy(e):ah.setFromPoints(t).getCenter(n);let s=0;for(let r=0,a=t.length;rthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;Fi.subVectors(t,this.center);let e=Fi.lengthSq();if(e>this.radius*this.radius){let n=Math.sqrt(e),s=(n-this.radius)*.5;this.center.addScaledVector(Fi,s/n),this.radius+=s}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(gr.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Fi.copy(t.center).add(gr)),this.expandByPoint(Fi.copy(t.center).sub(gr))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}},tn=new P,_r=new P,is=new P,mn=new P,xr=new P,ss=new P,yr=new P,kr=class{constructor(t=new P,e=new P(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,tn)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);let n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){let e=tn.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(tn.copy(this.origin).addScaledVector(this.direction,e),tn.distanceToSquared(t))}distanceSqToSegment(t,e,n,s){_r.copy(t).add(e).multiplyScalar(.5),is.copy(e).sub(t).normalize(),mn.copy(this.origin).sub(_r);let r=t.distanceTo(e)*.5,a=-this.direction.dot(is),o=mn.dot(this.direction),c=-mn.dot(is),l=mn.lengthSq(),h=Math.abs(1-a*a),d,u,m,g;if(h>0)if(d=a*c-o,u=a*o-c,g=r*h,d>=0)if(u>=-g)if(u<=g){let x=1/h;d*=x,u*=x,m=d*(d+a*u+2*o)+u*(a*d+u+2*c)+l}else u=r,d=Math.max(0,-(a*u+o)),m=-d*d+u*(u+2*c)+l;else u=-r,d=Math.max(0,-(a*u+o)),m=-d*d+u*(u+2*c)+l;else u<=-g?(d=Math.max(0,-(-a*r+o)),u=d>0?-r:Math.min(Math.max(-r,-c),r),m=-d*d+u*(u+2*c)+l):u<=g?(d=0,u=Math.min(Math.max(-r,-c),r),m=u*(u+2*c)+l):(d=Math.max(0,-(a*r+o)),u=d>0?r:Math.min(Math.max(-r,-c),r),m=-d*d+u*(u+2*c)+l);else u=a>0?-r:r,d=Math.max(0,-(a*u+o)),m=-d*d+u*(u+2*c)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,d),s&&s.copy(_r).addScaledVector(is,u),m}intersectSphere(t,e){tn.subVectors(t.center,this.origin);let n=tn.dot(this.direction),s=tn.dot(tn)-n*n,r=t.radius*t.radius;if(s>r)return null;let a=Math.sqrt(r-s),o=n-a,c=n+a;return c<0?null:o<0?this.at(c,e):this.at(o,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){let e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){let n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){let e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,s,r,a,o,c,l=1/this.direction.x,h=1/this.direction.y,d=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,s=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,s=(t.min.x-u.x)*l),h>=0?(r=(t.min.y-u.y)*h,a=(t.max.y-u.y)*h):(r=(t.max.y-u.y)*h,a=(t.min.y-u.y)*h),n>a||r>s||((r>n||isNaN(n))&&(n=r),(a=0?(o=(t.min.z-u.z)*d,c=(t.max.z-u.z)*d):(o=(t.max.z-u.z)*d,c=(t.min.z-u.z)*d),n>c||o>s)||((o>n||n!==n)&&(n=o),(c=0?n:s,e)}intersectsBox(t){return this.intersectBox(t,tn)!==null}intersectTriangle(t,e,n,s,r){xr.subVectors(e,t),ss.subVectors(n,t),yr.crossVectors(xr,ss);let a=this.direction.dot(yr),o;if(a>0){if(s)return null;o=1}else if(a<0)o=-1,a=-a;else return null;mn.subVectors(this.origin,t);let c=o*this.direction.dot(ss.crossVectors(mn,ss));if(c<0)return null;let l=o*this.direction.dot(xr.cross(mn));if(l<0||c+l>a)return null;let h=-o*mn.dot(yr);return h<0?null:this.at(h/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},Gt=class{constructor(t,e,n,s,r,a,o,c,l,h,d,u,m,g,x,p){Gt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!==void 0&&this.set(t,e,n,s,r,a,o,c,l,h,d,u,m,g,x,p)}set(t,e,n,s,r,a,o,c,l,h,d,u,m,g,x,p){let f=this.elements;return f[0]=t,f[4]=e,f[8]=n,f[12]=s,f[1]=r,f[5]=a,f[9]=o,f[13]=c,f[2]=l,f[6]=h,f[10]=d,f[14]=u,f[3]=m,f[7]=g,f[11]=x,f[15]=p,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Gt().fromArray(this.elements)}copy(t){let e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){let e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){let e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){let e=this.elements,n=t.elements,s=1/Qn.setFromMatrixColumn(t,0).length(),r=1/Qn.setFromMatrixColumn(t,1).length(),a=1/Qn.setFromMatrixColumn(t,2).length();return e[0]=n[0]*s,e[1]=n[1]*s,e[2]=n[2]*s,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*a,e[9]=n[9]*a,e[10]=n[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){let e=this.elements,n=t.x,s=t.y,r=t.z,a=Math.cos(n),o=Math.sin(n),c=Math.cos(s),l=Math.sin(s),h=Math.cos(r),d=Math.sin(r);if(t.order==="XYZ"){let u=a*h,m=a*d,g=o*h,x=o*d;e[0]=c*h,e[4]=-c*d,e[8]=l,e[1]=m+g*l,e[5]=u-x*l,e[9]=-o*c,e[2]=x-u*l,e[6]=g+m*l,e[10]=a*c}else if(t.order==="YXZ"){let u=c*h,m=c*d,g=l*h,x=l*d;e[0]=u+x*o,e[4]=g*o-m,e[8]=a*l,e[1]=a*d,e[5]=a*h,e[9]=-o,e[2]=m*o-g,e[6]=x+u*o,e[10]=a*c}else if(t.order==="ZXY"){let u=c*h,m=c*d,g=l*h,x=l*d;e[0]=u-x*o,e[4]=-a*d,e[8]=g+m*o,e[1]=m+g*o,e[5]=a*h,e[9]=x-u*o,e[2]=-a*l,e[6]=o,e[10]=a*c}else if(t.order==="ZYX"){let u=a*h,m=a*d,g=o*h,x=o*d;e[0]=c*h,e[4]=g*l-m,e[8]=u*l+x,e[1]=c*d,e[5]=x*l+u,e[9]=m*l-g,e[2]=-l,e[6]=o*c,e[10]=a*c}else if(t.order==="YZX"){let u=a*c,m=a*l,g=o*c,x=o*l;e[0]=c*h,e[4]=x-u*d,e[8]=g*d+m,e[1]=d,e[5]=a*h,e[9]=-o*h,e[2]=-l*h,e[6]=m*d+g,e[10]=u-x*d}else if(t.order==="XZY"){let u=a*c,m=a*l,g=o*c,x=o*l;e[0]=c*h,e[4]=-d,e[8]=l*h,e[1]=u*d+x,e[5]=a*h,e[9]=m*d-g,e[2]=g*d-m,e[6]=o*h,e[10]=x*d+u}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(ch,t,lh)}lookAt(t,e,n){let s=this.elements;return we.subVectors(t,e),we.lengthSq()===0&&(we.z=1),we.normalize(),gn.crossVectors(n,we),gn.lengthSq()===0&&(Math.abs(n.z)===1?we.x+=1e-4:we.z+=1e-4,we.normalize(),gn.crossVectors(n,we)),gn.normalize(),rs.crossVectors(we,gn),s[0]=gn.x,s[4]=rs.x,s[8]=we.x,s[1]=gn.y,s[5]=rs.y,s[9]=we.y,s[2]=gn.z,s[6]=rs.z,s[10]=we.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,s=e.elements,r=this.elements,a=n[0],o=n[4],c=n[8],l=n[12],h=n[1],d=n[5],u=n[9],m=n[13],g=n[2],x=n[6],p=n[10],f=n[14],v=n[3],_=n[7],b=n[11],S=n[15],T=s[0],A=s[4],L=s[8],y=s[12],w=s[1],z=s[5],Y=s[9],I=s[13],D=s[2],O=s[6],$=s[10],G=s[14],q=s[3],J=s[7],K=s[11],B=s[15];return r[0]=a*T+o*w+c*D+l*q,r[4]=a*A+o*z+c*O+l*J,r[8]=a*L+o*Y+c*$+l*K,r[12]=a*y+o*I+c*G+l*B,r[1]=h*T+d*w+u*D+m*q,r[5]=h*A+d*z+u*O+m*J,r[9]=h*L+d*Y+u*$+m*K,r[13]=h*y+d*I+u*G+m*B,r[2]=g*T+x*w+p*D+f*q,r[6]=g*A+x*z+p*O+f*J,r[10]=g*L+x*Y+p*$+f*K,r[14]=g*y+x*I+p*G+f*B,r[3]=v*T+_*w+b*D+S*q,r[7]=v*A+_*z+b*O+S*J,r[11]=v*L+_*Y+b*$+S*K,r[15]=v*y+_*I+b*G+S*B,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){let t=this.elements,e=t[0],n=t[4],s=t[8],r=t[12],a=t[1],o=t[5],c=t[9],l=t[13],h=t[2],d=t[6],u=t[10],m=t[14],g=t[3],x=t[7],p=t[11],f=t[15];return g*(+r*c*d-s*l*d-r*o*u+n*l*u+s*o*m-n*c*m)+x*(+e*c*m-e*l*u+r*a*u-s*a*m+s*l*h-r*c*h)+p*(+e*l*d-e*o*m-r*a*d+n*a*m+r*o*h-n*l*h)+f*(-s*o*h-e*c*d+e*o*u+s*a*d-n*a*u+n*c*h)}transpose(){let t=this.elements,e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){let s=this.elements;return t.isVector3?(s[12]=t.x,s[13]=t.y,s[14]=t.z):(s[12]=t,s[13]=e,s[14]=n),this}invert(){let t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8],d=t[9],u=t[10],m=t[11],g=t[12],x=t[13],p=t[14],f=t[15],v=d*p*l-x*u*l+x*c*m-o*p*m-d*c*f+o*u*f,_=g*u*l-h*p*l-g*c*m+a*p*m+h*c*f-a*u*f,b=h*x*l-g*d*l+g*o*m-a*x*m-h*o*f+a*d*f,S=g*d*c-h*x*c-g*o*u+a*x*u+h*o*p-a*d*p,T=e*v+n*_+s*b+r*S;if(T===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let A=1/T;return t[0]=v*A,t[1]=(x*u*r-d*p*r-x*s*m+n*p*m+d*s*f-n*u*f)*A,t[2]=(o*p*r-x*c*r+x*s*l-n*p*l-o*s*f+n*c*f)*A,t[3]=(d*c*r-o*u*r-d*s*l+n*u*l+o*s*m-n*c*m)*A,t[4]=_*A,t[5]=(h*p*r-g*u*r+g*s*m-e*p*m-h*s*f+e*u*f)*A,t[6]=(g*c*r-a*p*r-g*s*l+e*p*l+a*s*f-e*c*f)*A,t[7]=(a*u*r-h*c*r+h*s*l-e*u*l-a*s*m+e*c*m)*A,t[8]=b*A,t[9]=(g*d*r-h*x*r-g*n*m+e*x*m+h*n*f-e*d*f)*A,t[10]=(a*x*r-g*o*r+g*n*l-e*x*l-a*n*f+e*o*f)*A,t[11]=(h*o*r-a*d*r-h*n*l+e*d*l+a*n*m-e*o*m)*A,t[12]=S*A,t[13]=(h*x*s-g*d*s+g*n*u-e*x*u-h*n*p+e*d*p)*A,t[14]=(g*o*s-a*x*s-g*n*c+e*x*c+a*n*p-e*o*p)*A,t[15]=(a*d*s-h*o*s+h*n*c-e*d*c-a*n*u+e*o*u)*A,this}scale(t){let e=this.elements,n=t.x,s=t.y,r=t.z;return e[0]*=n,e[4]*=s,e[8]*=r,e[1]*=n,e[5]*=s,e[9]*=r,e[2]*=n,e[6]*=s,e[10]*=r,e[3]*=n,e[7]*=s,e[11]*=r,this}getMaxScaleOnAxis(){let t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],s=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,s))}makeTranslation(t,e,n){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){let e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){let n=Math.cos(e),s=Math.sin(e),r=1-n,a=t.x,o=t.y,c=t.z,l=r*a,h=r*o;return this.set(l*a+n,l*o-s*c,l*c+s*o,0,l*o+s*c,h*o+n,h*c-s*a,0,l*c-s*o,h*c+s*a,r*c*c+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,s,r,a){return this.set(1,n,r,0,t,1,a,0,e,s,1,0,0,0,0,1),this}compose(t,e,n){let s=this.elements,r=e._x,a=e._y,o=e._z,c=e._w,l=r+r,h=a+a,d=o+o,u=r*l,m=r*h,g=r*d,x=a*h,p=a*d,f=o*d,v=c*l,_=c*h,b=c*d,S=n.x,T=n.y,A=n.z;return s[0]=(1-(x+f))*S,s[1]=(m+b)*S,s[2]=(g-_)*S,s[3]=0,s[4]=(m-b)*T,s[5]=(1-(u+f))*T,s[6]=(p+v)*T,s[7]=0,s[8]=(g+_)*A,s[9]=(p-v)*A,s[10]=(1-(u+x))*A,s[11]=0,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=1,this}decompose(t,e,n){let s=this.elements,r=Qn.set(s[0],s[1],s[2]).length(),a=Qn.set(s[4],s[5],s[6]).length(),o=Qn.set(s[8],s[9],s[10]).length();this.determinant()<0&&(r=-r),t.x=s[12],t.y=s[13],t.z=s[14],Fe.copy(this);let l=1/r,h=1/a,d=1/o;return Fe.elements[0]*=l,Fe.elements[1]*=l,Fe.elements[2]*=l,Fe.elements[4]*=h,Fe.elements[5]*=h,Fe.elements[6]*=h,Fe.elements[8]*=d,Fe.elements[9]*=d,Fe.elements[10]*=d,e.setFromRotationMatrix(Fe),n.x=r,n.y=a,n.z=o,this}makePerspective(t,e,n,s,r,a,o=on){let c=this.elements,l=2*r/(e-t),h=2*r/(n-s),d=(e+t)/(e-t),u=(n+s)/(n-s),m,g;if(o===on)m=-(a+r)/(a-r),g=-2*a*r/(a-r);else if(o===Ts)m=-a/(a-r),g=-a*r/(a-r);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+o);return c[0]=l,c[4]=0,c[8]=d,c[12]=0,c[1]=0,c[5]=h,c[9]=u,c[13]=0,c[2]=0,c[6]=0,c[10]=m,c[14]=g,c[3]=0,c[7]=0,c[11]=-1,c[15]=0,this}makeOrthographic(t,e,n,s,r,a,o=on){let c=this.elements,l=1/(e-t),h=1/(n-s),d=1/(a-r),u=(e+t)*l,m=(n+s)*h,g,x;if(o===on)g=(a+r)*d,x=-2*d;else if(o===Ts)g=r*d,x=-1*d;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+o);return c[0]=2*l,c[4]=0,c[8]=0,c[12]=-u,c[1]=0,c[5]=2*h,c[9]=0,c[13]=-m,c[2]=0,c[6]=0,c[10]=x,c[14]=-g,c[3]=0,c[7]=0,c[11]=0,c[15]=1,this}equals(t){let e=this.elements,n=t.elements;for(let s=0;s<16;s++)if(e[s]!==n[s])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){let n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}},Qn=new P,Fe=new Gt,ch=new P(0,0,0),lh=new P(1,1,1),gn=new P,rs=new P,we=new P,wa=new Gt,Aa=new En,xi=class{constructor(t=0,e=0,n=0,s=xi.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=s}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,s=this._order){return this._x=t,this._y=e,this._z=n,this._order=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){let s=t.elements,r=s[0],a=s[4],o=s[8],c=s[1],l=s[5],h=s[9],d=s[2],u=s[6],m=s[10];switch(e){case"XYZ":this._y=Math.asin(me(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-me(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(o,m),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-d,r),this._z=0);break;case"ZXY":this._x=Math.asin(me(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-d,m),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(c,r));break;case"ZYX":this._y=Math.asin(-me(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(u,m),this._z=Math.atan2(c,r)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(me(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-d,r)):(this._x=0,this._y=Math.atan2(o,m));break;case"XZY":this._z=Math.asin(-me(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(o,r)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,n===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return wa.makeRotationFromQuaternion(t),this.setFromRotationMatrix(wa,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Aa.setFromEuler(this),this.setFromQuaternion(Aa,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};xi.DEFAULT_ORDER="XYZ";var Ps=class{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){for(let n=0;n0&&(n=n.concat(a))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Oi,t,uh),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Oi,fh,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);let e=this.children;for(let n=0,s=e.length;n0&&(s.userData=this.userData),s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(s.matrixAutoUpdate=!1),this.isInstancedMesh&&(s.type="InstancedMesh",s.count=this.count,s.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(s.instanceColor=this.instanceColor.toJSON()));function r(o,c){return o[c.uuid]===void 0&&(o[c.uuid]=c.toJSON(t)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(s.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=r(t.geometries,this.geometry);let o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){let c=o.shapes;if(Array.isArray(c))for(let l=0,h=c.length;l0){s.children=[];for(let o=0;o0){s.animations=[];for(let o=0;o0&&(n.geometries=o),c.length>0&&(n.materials=c),l.length>0&&(n.textures=l),h.length>0&&(n.images=h),d.length>0&&(n.shapes=d),u.length>0&&(n.skeletons=u),m.length>0&&(n.animations=m),g.length>0&&(n.nodes=g)}return n.object=s,n;function a(o){let c=[];for(let l in o){let h=o[l];delete h.metadata,c.push(h)}return c}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let n=0;n0?s.multiplyScalar(1/Math.sqrt(r)):s.set(0,0,0)}static getBarycoord(t,e,n,s,r){Oe.subVectors(s,e),nn.subVectors(n,e),vr.subVectors(t,e);let a=Oe.dot(Oe),o=Oe.dot(nn),c=Oe.dot(vr),l=nn.dot(nn),h=nn.dot(vr),d=a*l-o*o;if(d===0)return r.set(-2,-1,-1);let u=1/d,m=(l*c-o*h)*u,g=(a*h-o*c)*u;return r.set(1-m-g,g,m)}static containsPoint(t,e,n,s){return this.getBarycoord(t,e,n,s,sn),sn.x>=0&&sn.y>=0&&sn.x+sn.y<=1}static getUV(t,e,n,s,r,a,o,c){return as===!1&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),as=!0),this.getInterpolation(t,e,n,s,r,a,o,c)}static getInterpolation(t,e,n,s,r,a,o,c){return this.getBarycoord(t,e,n,s,sn),c.setScalar(0),c.addScaledVector(r,sn.x),c.addScaledVector(a,sn.y),c.addScaledVector(o,sn.z),c}static isFrontFacing(t,e,n,s){return Oe.subVectors(n,e),nn.subVectors(t,e),Oe.cross(nn).dot(s)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,s){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[s]),this}setFromAttributeAndIndices(t,e,n,s){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,s),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Oe.subVectors(this.c,this.b),nn.subVectors(this.a,this.b),Oe.cross(nn).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return se.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return se.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,s,r){return as===!1&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),as=!0),se.getInterpolation(t,this.a,this.b,this.c,e,n,s,r)}getInterpolation(t,e,n,s,r){return se.getInterpolation(t,this.a,this.b,this.c,e,n,s,r)}containsPoint(t){return se.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return se.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){let n=this.a,s=this.b,r=this.c,a,o;ti.subVectors(s,n),ei.subVectors(r,n),Mr.subVectors(t,n);let c=ti.dot(Mr),l=ei.dot(Mr);if(c<=0&&l<=0)return e.copy(n);Sr.subVectors(t,s);let h=ti.dot(Sr),d=ei.dot(Sr);if(h>=0&&d<=h)return e.copy(s);let u=c*d-h*l;if(u<=0&&c>=0&&h<=0)return a=c/(c-h),e.copy(n).addScaledVector(ti,a);br.subVectors(t,r);let m=ti.dot(br),g=ei.dot(br);if(g>=0&&m<=g)return e.copy(r);let x=m*l-c*g;if(x<=0&&l>=0&&g<=0)return o=l/(l-g),e.copy(n).addScaledVector(ei,o);let p=h*g-m*d;if(p<=0&&d-h>=0&&m-g>=0)return Ua.subVectors(r,s),o=(d-h)/(d-h+(m-g)),e.copy(s).addScaledVector(Ua,o);let f=1/(p+x+u);return a=x*f,o=u*f,e.copy(n).addScaledVector(ti,a).addScaledVector(ei,o)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}},ph=0,yi=class extends bn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:ph++}),this.uuid=qi(),this.name="",this.type="Material",this.blending=fi,this.side=He,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=cc,this.blendDst=lc,this.blendEquation=li,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Lr,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=Gl,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=cr,this.stencilZFail=cr,this.stencilZPass=cr,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(let e in t){let n=t[e];if(n===void 0){console.warn(`THREE.Material: parameter \'${e}\' has value of undefined.`);continue}let s=this[e];if(s===void 0){console.warn(`THREE.Material: \'${e}\' is not a property of THREE.${this.type}.`);continue}s&&s.isColor?s.set(n):s&&s.isVector3&&n&&n.isVector3?s.copy(n):this[e]=n}}toJSON(t){let e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});let n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==fi&&(n.blending=this.blending),this.side!==He&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=this.alphaHash),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.forceSinglePass===!0&&(n.forceSinglePass=this.forceSinglePass),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function s(r){let a=[];for(let o in r){let c=r[o];delete c.metadata,a.push(c)}return a}if(e){let r=s(t.textures),a=s(t.images);r.length>0&&(n.textures=r),a.length>0&&(n.images=a)}return n}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;let e=t.clippingPlanes,n=null;if(e!==null){let s=e.length;n=new Array(s);for(let r=0;r!==s;++r)n[r]=e[r].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){t===!0&&this.version++}},Mc={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Be={h:0,s:0,l:0},cs={h:0,s:0,l:0};function Er(i,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?i+(t-i)*6*e:e<1/2?t:e<2/3?i+(t-i)*6*(2/3-e):i}var kt=class{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(e===void 0&&n===void 0){let s=t;s&&s.isColor?this.copy(s):typeof s=="number"?this.setHex(s):typeof s=="string"&&this.setStyle(s)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Rt){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,Ne.toWorkingColorSpace(this,e),this}setRGB(t,e,n,s=Ne.workingColorSpace){return this.r=t,this.g=e,this.b=n,Ne.toWorkingColorSpace(this,s),this}setHSL(t,e,n,s=Ne.workingColorSpace){if(t=Ql(t,1),e=me(e,0,1),n=me(n,0,1),e===0)this.r=this.g=this.b=n;else{let r=n<=.5?n*(1+e):n+e-n*e,a=2*n-r;this.r=Er(a,r,t+1/3),this.g=Er(a,r,t),this.b=Er(a,r,t-1/3)}return Ne.toWorkingColorSpace(this,s),this}setStyle(t,e=Rt){function n(r){r!==void 0&&parseFloat(r)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let s;if(s=/^(\\w+)\\(([^\\)]*)\\)/.exec(t)){let r,a=s[1],o=s[2];switch(a){case"rgb":case"rgba":if(r=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,e);if(r=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,e);break;case"hsl":case"hsla":if(r=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(s=/^\\#([A-Fa-f\\d]+)$/.exec(t)){let r=s[1],a=r.length;if(a===3)return this.setRGB(parseInt(r.charAt(0),16)/15,parseInt(r.charAt(1),16)/15,parseInt(r.charAt(2),16)/15,e);if(a===6)return this.setHex(parseInt(r,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Rt){let n=Mc[t.toLowerCase()];return n!==void 0?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=di(t.r),this.g=di(t.g),this.b=di(t.b),this}copyLinearToSRGB(t){return this.r=fr(t.r),this.g=fr(t.g),this.b=fr(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Rt){return Ne.fromWorkingColorSpace(le.copy(this),t),Math.round(me(le.r*255,0,255))*65536+Math.round(me(le.g*255,0,255))*256+Math.round(me(le.b*255,0,255))}getHexString(t=Rt){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Ne.workingColorSpace){Ne.fromWorkingColorSpace(le.copy(this),e);let n=le.r,s=le.g,r=le.b,a=Math.max(n,s,r),o=Math.min(n,s,r),c,l,h=(o+a)/2;if(o===a)c=0,l=0;else{let d=a-o;switch(l=h<=.5?d/(a+o):d/(2-a-o),a){case n:c=(s-r)/d+(s0&&(t.userData=this.userData),this.parameters!==void 0){let c=this.parameters;for(let l in c)c[l]!==void 0&&(t[l]=c[l]);return t}t.data={attributes:{}};let e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});let n=this.attributes;for(let c in n){let l=n[c];t.data.attributes[c]=l.toJSON(t.data)}let s={},r=!1;for(let c in this.morphAttributes){let l=this.morphAttributes[c],h=[];for(let d=0,u=l.length;d0&&(s[c]=h,r=!0)}r&&(t.data.morphAttributes=s,t.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(t.data.groups=JSON.parse(JSON.stringify(a)));let o=this.boundingSphere;return o!==null&&(t.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let e={};this.name=t.name;let n=t.index;n!==null&&this.setIndex(n.clone(e));let s=t.attributes;for(let l in s){let h=s[l];this.setAttribute(l,h.clone(e))}let r=t.morphAttributes;for(let l in r){let h=[],d=r[l];for(let u=0,m=d.length;u0){let s=e[n[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=s.length;r(t.far-t.near)**2))&&(Da.copy(r).invert(),In.copy(t.ray).applyMatrix4(Da),!(n.boundingBox!==null&&In.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(t,e,In)))}_computeIntersections(t,e,n){let s,r=this.geometry,a=this.material,o=r.index,c=r.attributes.position,l=r.attributes.uv,h=r.attributes.uv1,d=r.attributes.normal,u=r.groups,m=r.drawRange;if(o!==null)if(Array.isArray(a))for(let g=0,x=u.length;ge.far?null:{distance:l,point:gs.clone(),object:i}}function _s(i,t,e,n,s,r,a,o,c,l){i.getVertexPosition(o,ii),i.getVertexPosition(c,si),i.getVertexPosition(l,ri);let h=gh(i,t,e,n,ii,si,ri,ms);if(h){s&&(fs.fromBufferAttribute(s,o),ds.fromBufferAttribute(s,c),ps.fromBufferAttribute(s,l),h.uv=se.getInterpolation(ms,ii,si,ri,fs,ds,ps,new Nt)),r&&(fs.fromBufferAttribute(r,o),ds.fromBufferAttribute(r,c),ps.fromBufferAttribute(r,l),h.uv1=se.getInterpolation(ms,ii,si,ri,fs,ds,ps,new Nt),h.uv2=h.uv1),a&&(Fa.fromBufferAttribute(a,o),Oa.fromBufferAttribute(a,c),Ba.fromBufferAttribute(a,l),h.normal=se.getInterpolation(ms,ii,si,ri,Fa,Oa,Ba,new P),h.normal.dot(n.direction)>0&&h.normal.multiplyScalar(-1));let d={a:o,b:c,c:l,normal:new P,materialIndex:0};se.getNormal(ii,si,ri,d.normal),h.face=d}return h}var kn=class extends Ge{constructor(t=1,e=1,n=1,s=1,r=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:s,heightSegments:r,depthSegments:a};let o=this;s=Math.floor(s),r=Math.floor(r),a=Math.floor(a);let c=[],l=[],h=[],d=[],u=0,m=0;g("z","y","x",-1,-1,n,e,t,a,r,0),g("z","y","x",1,-1,n,e,-t,a,r,1),g("x","z","y",1,1,t,n,e,s,a,2),g("x","z","y",1,-1,t,n,-e,s,a,3),g("x","y","z",1,-1,t,e,n,s,r,4),g("x","y","z",-1,-1,t,e,-n,s,r,5),this.setIndex(c),this.setAttribute("position",new an(l,3)),this.setAttribute("normal",new an(h,3)),this.setAttribute("uv",new an(d,2));function g(x,p,f,v,_,b,S,T,A,L,y){let w=b/A,z=S/L,Y=b/2,I=S/2,D=T/2,O=A+1,$=L+1,G=0,q=0,J=new P;for(let K=0;K<$;K++){let B=K*z-I;for(let Z=0;Z0?1:-1,h.push(J.x,J.y,J.z),d.push(Z/A),d.push(1-K/L),G+=1}}for(let K=0;K0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;let n={};for(let s in this.extensions)this.extensions[s]===!0&&(n[s]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}},Ds=class extends ve{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Gt,this.projectionMatrix=new Gt,this.projectionMatrixInverse=new Gt,this.coordinateSystem=on}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}},Re=class extends Ds{constructor(t=50,e=1,n=.1,s=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=s,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){let e=.5*this.getFilmHeight()/t;this.fov=Or*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){let t=Math.tan(lr*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return Or*2*Math.atan(Math.tan(lr*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,s,r,a){this.aspect=t/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=s,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=this.near,e=t*Math.tan(lr*.5*this.fov)/this.zoom,n=2*e,s=this.aspect*n,r=-.5*s,a=this.view;if(this.view!==null&&this.view.enabled){let c=a.fullWidth,l=a.fullHeight;r+=a.offsetX*s/c,e-=a.offsetY*n/l,s*=a.width/c,n*=a.height/l}let o=this.filmOffset;o!==0&&(r+=t*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+s,e,e-n,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}},oi=-90,ai=1,Hr=class extends ve{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null;let s=new Re(oi,ai,t,e);s.layers=this.layers,this.add(s);let r=new Re(oi,ai,t,e);r.layers=this.layers,this.add(r);let a=new Re(oi,ai,t,e);a.layers=this.layers,this.add(a);let o=new Re(oi,ai,t,e);o.layers=this.layers,this.add(o);let c=new Re(oi,ai,t,e);c.layers=this.layers,this.add(c);let l=new Re(oi,ai,t,e);l.layers=this.layers,this.add(l)}updateCoordinateSystem(){let t=this.coordinateSystem,e=this.children.concat(),[n,s,r,a,o,c]=e;for(let l of e)this.remove(l);if(t===on)n.up.set(0,1,0),n.lookAt(1,0,0),s.up.set(0,1,0),s.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),a.up.set(0,0,1),a.lookAt(0,-1,0),o.up.set(0,1,0),o.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(t===Ts)n.up.set(0,-1,0),n.lookAt(-1,0,0),s.up.set(0,-1,0),s.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),a.up.set(0,0,-1),a.lookAt(0,-1,0),o.up.set(0,-1,0),o.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);for(let l of e)this.add(l),l.updateMatrixWorld()}update(t,e){this.parent===null&&this.updateMatrixWorld();let n=this.renderTarget;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());let[s,r,a,o,c,l]=this.children,h=t.getRenderTarget(),d=t.xr.enabled;t.xr.enabled=!1;let u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,s),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,a),t.setRenderTarget(n,3),t.render(e,o),t.setRenderTarget(n,4),t.render(e,c),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=d,n.texture.needsPMREMUpdate=!0}},Ns=class extends ge{constructor(t,e,n,s,r,a,o,c,l,h){t=t!==void 0?t:[],e=e!==void 0?e:mi,super(t,e,n,s,r,a,o,c,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}},Gr=class extends cn{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;let n={width:t,height:t,depth:1},s=[n,n,n,n,n,n];e.encoding!==void 0&&(Vi("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),e.colorSpace=e.encoding===Bn?Rt:zn),this.texture=new Ns(s,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:Ie}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,fragmentShader:`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`},s=new kn(5,5,5),r=new ln({name:"CubemapFromEquirect",uniforms:vi(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:he,blending:vn});r.uniforms.tEquirect.value=e;let a=new Ye(s,r),o=e.minFilter;return e.minFilter===Hi&&(e.minFilter=Ie),new Hr(1,10,this).update(t,a),e.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(t,e,n,s){let r=t.getRenderTarget();for(let a=0;a<6;a++)t.setRenderTarget(this,a),t.clear(e,n,s);t.setRenderTarget(r)}},Ar=new P,Mh=new P,Sh=new Ct,Ce=class{constructor(t=new P(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,s){return this.normal.set(t,e,n),this.constant=s,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){let s=Ar.subVectors(n,e).cross(Mh.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(s,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){let t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){let n=t.delta(Ar),s=this.normal.dot(n);if(s===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;let r=-(t.start.dot(this.normal)+this.constant)/s;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){let e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){let n=e||Sh.getNormalMatrix(t),s=this.coplanarPoint(Ar).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-s.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return new this.constructor().copy(this)}},Un=new Vn,xs=new P,Fs=class{constructor(t=new Ce,e=new Ce,n=new Ce,s=new Ce,r=new Ce,a=new Ce){this.planes=[t,e,n,s,r,a]}set(t,e,n,s,r,a){let o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(n),o[3].copy(s),o[4].copy(r),o[5].copy(a),this}copy(t){let e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=on){let n=this.planes,s=t.elements,r=s[0],a=s[1],o=s[2],c=s[3],l=s[4],h=s[5],d=s[6],u=s[7],m=s[8],g=s[9],x=s[10],p=s[11],f=s[12],v=s[13],_=s[14],b=s[15];if(n[0].setComponents(c-r,u-l,p-m,b-f).normalize(),n[1].setComponents(c+r,u+l,p+m,b+f).normalize(),n[2].setComponents(c+a,u+h,p+g,b+v).normalize(),n[3].setComponents(c-a,u-h,p-g,b-v).normalize(),n[4].setComponents(c-o,u-d,p-x,b-_).normalize(),e===on)n[5].setComponents(c+o,u+d,p+x,b+_).normalize();else if(e===Ts)n[5].setComponents(o,d,x,_).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);return this}intersectsObject(t){if(t.boundingSphere!==void 0)t.boundingSphere===null&&t.computeBoundingSphere(),Un.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{let e=t.geometry;e.boundingSphere===null&&e.computeBoundingSphere(),Un.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Un)}intersectsSprite(t){return Un.center.set(0,0,0),Un.radius=.7071067811865476,Un.applyMatrix4(t.matrixWorld),this.intersectsSphere(Un)}intersectsSphere(t){let e=this.planes,n=t.center,s=-t.radius;for(let r=0;r<6;r++)if(e[r].distanceToPoint(n)0?t.max.x:t.min.x,xs.y=s.normal.y>0?t.max.y:t.min.y,xs.z=s.normal.z>0?t.max.z:t.min.z,s.distanceToPoint(xs)<0)return!1}return!0}containsPoint(t){let e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}};function bc(){let i=null,t=!1,e=null,n=null;function s(r,a){e(r,a),n=i.requestAnimationFrame(s)}return{start:function(){t!==!0&&e!==null&&(n=i.requestAnimationFrame(s),t=!0)},stop:function(){i.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(r){e=r},setContext:function(r){i=r}}}function bh(i,t){let e=t.isWebGL2,n=new WeakMap;function s(l,h){let d=l.array,u=l.usage,m=i.createBuffer();i.bindBuffer(h,m),i.bufferData(h,d,u),l.onUploadCallback();let g;if(d instanceof Float32Array)g=i.FLOAT;else if(d instanceof Uint16Array)if(l.isFloat16BufferAttribute)if(e)g=i.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else g=i.UNSIGNED_SHORT;else if(d instanceof Int16Array)g=i.SHORT;else if(d instanceof Uint32Array)g=i.UNSIGNED_INT;else if(d instanceof Int32Array)g=i.INT;else if(d instanceof Int8Array)g=i.BYTE;else if(d instanceof Uint8Array)g=i.UNSIGNED_BYTE;else if(d instanceof Uint8ClampedArray)g=i.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+d);return{buffer:m,type:g,bytesPerElement:d.BYTES_PER_ELEMENT,version:l.version}}function r(l,h,d){let u=h.array,m=h.updateRange;i.bindBuffer(d,l),m.count===-1?i.bufferSubData(d,0,u):(e?i.bufferSubData(d,m.offset*u.BYTES_PER_ELEMENT,u,m.offset,m.count):i.bufferSubData(d,m.offset*u.BYTES_PER_ELEMENT,u.subarray(m.offset,m.offset+m.count)),m.count=-1),h.onUploadCallback()}function a(l){return l.isInterleavedBufferAttribute&&(l=l.data),n.get(l)}function o(l){l.isInterleavedBufferAttribute&&(l=l.data);let h=n.get(l);h&&(i.deleteBuffer(h.buffer),n.delete(l))}function c(l,h){if(l.isGLBufferAttribute){let u=n.get(l);(!u||u.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif`,Bh=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif`,zh=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif`,Vh=`#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif`,kh=`#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif`,Hh=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif`,Gh=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif`,Wh=`#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif`,Xh=`#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated`,qh=`#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif`,Yh=`vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif`,Zh=`#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif`,Jh=`#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif`,$h=`#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif`,Kh=`#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif`,Qh="gl_FragColor = linearToOutputTexel( gl_FragColor );",jh=`vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}`,tu=`#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif`,eu=`#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif`,nu=`#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif`,iu=`#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif`,su=`#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif`,ru=`#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif`,ou=`#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif`,au=`#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif`,cu=`#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif`,lu=`#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}`,hu=`#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif`,uu=`#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif`,fu=`LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;`,du=`varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert`,pu=`uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif`,mu=`#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif`,gu=`ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;`,_u=`varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon`,xu=`BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;`,yu=`varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong`,vu=`PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif`,Mu=`struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}`,Su=`\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif`,bu=`#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif`,Eu=`#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif`,Tu=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif`,wu=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif`,Au=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif`,Ru=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif`,Cu=`#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, vMapUv );\n#endif`,Pu=`#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif`,Lu=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif`,Iu=`#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif`,Uu=`float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif`,Du=`#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif`,Nu=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif`,Fu=`#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif`,Ou=`#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif`,Bu=`#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif`,zu=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;`,Vu=`#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif`,ku=`#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif`,Hu=`#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif`,Gu=`#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif`,Wu=`#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif`,Xu=`#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif`,qu=`#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif`,Yu=`#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif`,Zu=`#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif`,Ju=`#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );`,$u=`vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}`,Ku=`#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif`,Qu=`vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;`,ju=`#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif`,tf=`#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif`,ef=`float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif`,nf=`#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif`,sf=`#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif`,rf=`#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif`,of=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif`,af=`float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}`,cf=`#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif`,lf=`#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif`,hf=`#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif`,uf=`#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif`,ff=`float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif`,df=`#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif`,pf=`#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif`,mf=`#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }`,gf=`#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif`,_f=`#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif`,xf=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif`,yf=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif`,vf=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif`,Mf=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif`,Sf=`varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}`,bf=`uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}`,Ef=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}`,Tf=`#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}`,wf=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}`,Af=`uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}`,Rf=`#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}`,Cf=`#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}`,Pf=`#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}`,Lf=`#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}`,If=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}`,Uf=`uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}`,Df=`uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Nf=`uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Ff=`#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Of=`uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Bf=`#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,zf=`#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Vf=`#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}`,kf=`#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Hf=`#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}`,Gf=`#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}`,Wf=`#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,Xf=`#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,qf=`#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}`,Yf=`#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Zf=`#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}`,Jf=`#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,$f=`uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}`,Kf=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Qf=`#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,jf=`uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}`,td=`uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}`,ed=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,At={alphahash_fragment:Eh,alphahash_pars_fragment:Th,alphamap_fragment:wh,alphamap_pars_fragment:Ah,alphatest_fragment:Rh,alphatest_pars_fragment:Ch,aomap_fragment:Ph,aomap_pars_fragment:Lh,begin_vertex:Ih,beginnormal_vertex:Uh,bsdfs:Dh,iridescence_fragment:Nh,bumpmap_pars_fragment:Fh,clipping_planes_fragment:Oh,clipping_planes_pars_fragment:Bh,clipping_planes_pars_vertex:zh,clipping_planes_vertex:Vh,color_fragment:kh,color_pars_fragment:Hh,color_pars_vertex:Gh,color_vertex:Wh,common:Xh,cube_uv_reflection_fragment:qh,defaultnormal_vertex:Yh,displacementmap_pars_vertex:Zh,displacementmap_vertex:Jh,emissivemap_fragment:$h,emissivemap_pars_fragment:Kh,colorspace_fragment:Qh,colorspace_pars_fragment:jh,envmap_fragment:tu,envmap_common_pars_fragment:eu,envmap_pars_fragment:nu,envmap_pars_vertex:iu,envmap_physical_pars_fragment:mu,envmap_vertex:su,fog_vertex:ru,fog_pars_vertex:ou,fog_fragment:au,fog_pars_fragment:cu,gradientmap_pars_fragment:lu,lightmap_fragment:hu,lightmap_pars_fragment:uu,lights_lambert_fragment:fu,lights_lambert_pars_fragment:du,lights_pars_begin:pu,lights_toon_fragment:gu,lights_toon_pars_fragment:_u,lights_phong_fragment:xu,lights_phong_pars_fragment:yu,lights_physical_fragment:vu,lights_physical_pars_fragment:Mu,lights_fragment_begin:Su,lights_fragment_maps:bu,lights_fragment_end:Eu,logdepthbuf_fragment:Tu,logdepthbuf_pars_fragment:wu,logdepthbuf_pars_vertex:Au,logdepthbuf_vertex:Ru,map_fragment:Cu,map_pars_fragment:Pu,map_particle_fragment:Lu,map_particle_pars_fragment:Iu,metalnessmap_fragment:Uu,metalnessmap_pars_fragment:Du,morphcolor_vertex:Nu,morphnormal_vertex:Fu,morphtarget_pars_vertex:Ou,morphtarget_vertex:Bu,normal_fragment_begin:zu,normal_fragment_maps:Vu,normal_pars_fragment:ku,normal_pars_vertex:Hu,normal_vertex:Gu,normalmap_pars_fragment:Wu,clearcoat_normal_fragment_begin:Xu,clearcoat_normal_fragment_maps:qu,clearcoat_pars_fragment:Yu,iridescence_pars_fragment:Zu,opaque_fragment:Ju,packing:$u,premultiplied_alpha_fragment:Ku,project_vertex:Qu,dithering_fragment:ju,dithering_pars_fragment:tf,roughnessmap_fragment:ef,roughnessmap_pars_fragment:nf,shadowmap_pars_fragment:sf,shadowmap_pars_vertex:rf,shadowmap_vertex:of,shadowmask_pars_fragment:af,skinbase_vertex:cf,skinning_pars_vertex:lf,skinning_vertex:hf,skinnormal_vertex:uf,specularmap_fragment:ff,specularmap_pars_fragment:df,tonemapping_fragment:pf,tonemapping_pars_fragment:mf,transmission_fragment:gf,transmission_pars_fragment:_f,uv_pars_fragment:xf,uv_pars_vertex:yf,uv_vertex:vf,worldpos_vertex:Mf,background_vert:Sf,background_frag:bf,backgroundCube_vert:Ef,backgroundCube_frag:Tf,cube_vert:wf,cube_frag:Af,depth_vert:Rf,depth_frag:Cf,distanceRGBA_vert:Pf,distanceRGBA_frag:Lf,equirect_vert:If,equirect_frag:Uf,linedashed_vert:Df,linedashed_frag:Nf,meshbasic_vert:Ff,meshbasic_frag:Of,meshlambert_vert:Bf,meshlambert_frag:zf,meshmatcap_vert:Vf,meshmatcap_frag:kf,meshnormal_vert:Hf,meshnormal_frag:Gf,meshphong_vert:Wf,meshphong_frag:Xf,meshphysical_vert:qf,meshphysical_frag:Yf,meshtoon_vert:Zf,meshtoon_frag:Jf,points_vert:$f,points_frag:Kf,shadow_vert:Qf,shadow_frag:jf,sprite_vert:td,sprite_frag:ed},it={common:{diffuse:{value:new kt(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ct},alphaMap:{value:null},alphaMapTransform:{value:new Ct},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ct}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ct}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ct}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ct},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ct},normalScale:{value:new Nt(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ct},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ct}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ct}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ct}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new kt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new kt(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ct},alphaTest:{value:0},uvTransform:{value:new Ct}},sprite:{diffuse:{value:new kt(16777215)},opacity:{value:1},center:{value:new Nt(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ct},alphaMap:{value:null},alphaMapTransform:{value:new Ct},alphaTest:{value:0}}},qe={basic:{uniforms:de([it.common,it.specularmap,it.envmap,it.aomap,it.lightmap,it.fog]),vertexShader:At.meshbasic_vert,fragmentShader:At.meshbasic_frag},lambert:{uniforms:de([it.common,it.specularmap,it.envmap,it.aomap,it.lightmap,it.emissivemap,it.bumpmap,it.normalmap,it.displacementmap,it.fog,it.lights,{emissive:{value:new kt(0)}}]),vertexShader:At.meshlambert_vert,fragmentShader:At.meshlambert_frag},phong:{uniforms:de([it.common,it.specularmap,it.envmap,it.aomap,it.lightmap,it.emissivemap,it.bumpmap,it.normalmap,it.displacementmap,it.fog,it.lights,{emissive:{value:new kt(0)},specular:{value:new kt(1118481)},shininess:{value:30}}]),vertexShader:At.meshphong_vert,fragmentShader:At.meshphong_frag},standard:{uniforms:de([it.common,it.envmap,it.aomap,it.lightmap,it.emissivemap,it.bumpmap,it.normalmap,it.displacementmap,it.roughnessmap,it.metalnessmap,it.fog,it.lights,{emissive:{value:new kt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:At.meshphysical_vert,fragmentShader:At.meshphysical_frag},toon:{uniforms:de([it.common,it.aomap,it.lightmap,it.emissivemap,it.bumpmap,it.normalmap,it.displacementmap,it.gradientmap,it.fog,it.lights,{emissive:{value:new kt(0)}}]),vertexShader:At.meshtoon_vert,fragmentShader:At.meshtoon_frag},matcap:{uniforms:de([it.common,it.bumpmap,it.normalmap,it.displacementmap,it.fog,{matcap:{value:null}}]),vertexShader:At.meshmatcap_vert,fragmentShader:At.meshmatcap_frag},points:{uniforms:de([it.points,it.fog]),vertexShader:At.points_vert,fragmentShader:At.points_frag},dashed:{uniforms:de([it.common,it.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:At.linedashed_vert,fragmentShader:At.linedashed_frag},depth:{uniforms:de([it.common,it.displacementmap]),vertexShader:At.depth_vert,fragmentShader:At.depth_frag},normal:{uniforms:de([it.common,it.bumpmap,it.normalmap,it.displacementmap,{opacity:{value:1}}]),vertexShader:At.meshnormal_vert,fragmentShader:At.meshnormal_frag},sprite:{uniforms:de([it.sprite,it.fog]),vertexShader:At.sprite_vert,fragmentShader:At.sprite_frag},background:{uniforms:{uvTransform:{value:new Ct},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:At.background_vert,fragmentShader:At.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:At.backgroundCube_vert,fragmentShader:At.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:At.cube_vert,fragmentShader:At.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:At.equirect_vert,fragmentShader:At.equirect_frag},distanceRGBA:{uniforms:de([it.common,it.displacementmap,{referencePosition:{value:new P},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:At.distanceRGBA_vert,fragmentShader:At.distanceRGBA_frag},shadow:{uniforms:de([it.lights,it.fog,{color:{value:new kt(0)},opacity:{value:1}}]),vertexShader:At.shadow_vert,fragmentShader:At.shadow_frag}};qe.physical={uniforms:de([qe.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ct},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ct},clearcoatNormalScale:{value:new Nt(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ct},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ct},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ct},sheen:{value:0},sheenColor:{value:new kt(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ct},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ct},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ct},transmissionSamplerSize:{value:new Nt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ct},attenuationDistance:{value:0},attenuationColor:{value:new kt(0)},specularColor:{value:new kt(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ct},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ct},anisotropyVector:{value:new Nt},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ct}}]),vertexShader:At.meshphysical_vert,fragmentShader:At.meshphysical_frag};var ys={r:0,b:0,g:0};function nd(i,t,e,n,s,r,a){let o=new kt(0),c=r===!0?0:1,l,h,d=null,u=0,m=null;function g(p,f){let v=!1,_=f.isScene===!0?f.background:null;switch(_&&_.isTexture&&(_=(f.backgroundBlurriness>0?e:t).get(_)),_===null?x(o,c):_&&_.isColor&&(x(_,1),v=!0),i.xr.getEnvironmentBlendMode()){case"opaque":v=!0;break;case"additive":n.buffers.color.setClear(0,0,0,1,a),v=!0;break;case"alpha-blend":n.buffers.color.setClear(0,0,0,0,a),v=!0;break}(i.autoClear||v)&&i.clear(i.autoClearColor,i.autoClearDepth,i.autoClearStencil),_&&(_.isCubeTexture||_.mapping===Bs)?(h===void 0&&(h=new Ye(new kn(1,1,1),new ln({name:"BackgroundCubeMaterial",uniforms:vi(qe.backgroundCube.uniforms),vertexShader:qe.backgroundCube.vertexShader,fragmentShader:qe.backgroundCube.fragmentShader,side:he,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(T,A,L){this.matrixWorld.copyPosition(L.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),s.update(h)),h.material.uniforms.envMap.value=_,h.material.uniforms.flipEnvMap.value=_.isCubeTexture&&_.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=f.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=f.backgroundIntensity,h.material.toneMapped=_.colorSpace!==Rt,(d!==_||u!==_.version||m!==i.toneMapping)&&(h.material.needsUpdate=!0,d=_,u=_.version,m=i.toneMapping),h.layers.enableAll(),p.unshift(h,h.geometry,h.material,0,0,null)):_&&_.isTexture&&(l===void 0&&(l=new Ye(new Wi(2,2),new ln({name:"BackgroundMaterial",uniforms:vi(qe.background.uniforms),vertexShader:qe.background.vertexShader,fragmentShader:qe.background.fragmentShader,side:He,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),s.update(l)),l.material.uniforms.t2D.value=_,l.material.uniforms.backgroundIntensity.value=f.backgroundIntensity,l.material.toneMapped=_.colorSpace!==Rt,_.matrixAutoUpdate===!0&&_.updateMatrix(),l.material.uniforms.uvTransform.value.copy(_.matrix),(d!==_||u!==_.version||m!==i.toneMapping)&&(l.material.needsUpdate=!0,d=_,u=_.version,m=i.toneMapping),l.layers.enableAll(),p.unshift(l,l.geometry,l.material,0,0,null))}function x(p,f){p.getRGB(ys,Sc(i)),n.buffers.color.setClear(ys.r,ys.g,ys.b,f,a)}return{getClearColor:function(){return o},setClearColor:function(p,f=1){o.set(p),c=f,x(o,c)},getClearAlpha:function(){return c},setClearAlpha:function(p){c=p,x(o,c)},render:g}}function id(i,t,e,n){let s=i.getParameter(i.MAX_VERTEX_ATTRIBS),r=n.isWebGL2?null:t.get("OES_vertex_array_object"),a=n.isWebGL2||r!==null,o={},c=p(null),l=c,h=!1;function d(D,O,$,G,q){let J=!1;if(a){let K=x(G,$,O);l!==K&&(l=K,m(l.object)),J=f(D,G,$,q),J&&v(D,G,$,q)}else{let K=O.wireframe===!0;(l.geometry!==G.id||l.program!==$.id||l.wireframe!==K)&&(l.geometry=G.id,l.program=$.id,l.wireframe=K,J=!0)}q!==null&&e.update(q,i.ELEMENT_ARRAY_BUFFER),(J||h)&&(h=!1,L(D,O,$,G),q!==null&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,e.get(q).buffer))}function u(){return n.isWebGL2?i.createVertexArray():r.createVertexArrayOES()}function m(D){return n.isWebGL2?i.bindVertexArray(D):r.bindVertexArrayOES(D)}function g(D){return n.isWebGL2?i.deleteVertexArray(D):r.deleteVertexArrayOES(D)}function x(D,O,$){let G=$.wireframe===!0,q=o[D.id];q===void 0&&(q={},o[D.id]=q);let J=q[O.id];J===void 0&&(J={},q[O.id]=J);let K=J[G];return K===void 0&&(K=p(u()),J[G]=K),K}function p(D){let O=[],$=[],G=[];for(let q=0;q=0){let at=q[Z],ct=J[Z];if(ct===void 0&&(Z==="instanceMatrix"&&D.instanceMatrix&&(ct=D.instanceMatrix),Z==="instanceColor"&&D.instanceColor&&(ct=D.instanceColor)),at===void 0||at.attribute!==ct||ct&&at.data!==ct.data)return!0;K++}return l.attributesNum!==K||l.index!==G}function v(D,O,$,G){let q={},J=O.attributes,K=0,B=$.getAttributes();for(let Z in B)if(B[Z].location>=0){let at=J[Z];at===void 0&&(Z==="instanceMatrix"&&D.instanceMatrix&&(at=D.instanceMatrix),Z==="instanceColor"&&D.instanceColor&&(at=D.instanceColor));let ct={};ct.attribute=at,at&&at.data&&(ct.data=at.data),q[Z]=ct,K++}l.attributes=q,l.attributesNum=K,l.index=G}function _(){let D=l.newAttributes;for(let O=0,$=D.length;O<$;O++)D[O]=0}function b(D){S(D,0)}function S(D,O){let $=l.newAttributes,G=l.enabledAttributes,q=l.attributeDivisors;$[D]=1,G[D]===0&&(i.enableVertexAttribArray(D),G[D]=1),q[D]!==O&&((n.isWebGL2?i:t.get("ANGLE_instanced_arrays"))[n.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](D,O),q[D]=O)}function T(){let D=l.newAttributes,O=l.enabledAttributes;for(let $=0,G=O.length;$=0){let ot=q[B];if(ot===void 0&&(B==="instanceMatrix"&&D.instanceMatrix&&(ot=D.instanceMatrix),B==="instanceColor"&&D.instanceColor&&(ot=D.instanceColor)),ot!==void 0){let at=ot.normalized,ct=ot.itemSize,_t=e.get(ot);if(_t===void 0)continue;let Et=_t.buffer,xt=_t.type,zt=_t.bytesPerElement,xe=n.isWebGL2===!0&&(xt===i.INT||xt===i.UNSIGNED_INT||ot.gpuType===fc);if(ot.isInterleavedBufferAttribute){let Pt=ot.data,F=Pt.stride,oe=ot.offset;if(Pt.isInstancedInterleavedBuffer){for(let yt=0;yt0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision>0)return"highp";A="mediump"}return A==="mediump"&&i.getShaderPrecisionFormat(i.VERTEX_SHADER,i.MEDIUM_FLOAT).precision>0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let a=typeof WebGL2RenderingContext!="undefined"&&i.constructor.name==="WebGL2RenderingContext",o=e.precision!==void 0?e.precision:"highp",c=r(o);c!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",c,"instead."),o=c);let l=a||t.has("WEBGL_draw_buffers"),h=e.logarithmicDepthBuffer===!0,d=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),u=i.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),m=i.getParameter(i.MAX_TEXTURE_SIZE),g=i.getParameter(i.MAX_CUBE_MAP_TEXTURE_SIZE),x=i.getParameter(i.MAX_VERTEX_ATTRIBS),p=i.getParameter(i.MAX_VERTEX_UNIFORM_VECTORS),f=i.getParameter(i.MAX_VARYING_VECTORS),v=i.getParameter(i.MAX_FRAGMENT_UNIFORM_VECTORS),_=u>0,b=a||t.has("OES_texture_float"),S=_&&b,T=a?i.getParameter(i.MAX_SAMPLES):0;return{isWebGL2:a,drawBuffers:l,getMaxAnisotropy:s,getMaxPrecision:r,precision:o,logarithmicDepthBuffer:h,maxTextures:d,maxVertexTextures:u,maxTextureSize:m,maxCubemapSize:g,maxAttributes:x,maxVertexUniforms:p,maxVaryings:f,maxFragmentUniforms:v,vertexTextures:_,floatFragmentTextures:b,floatVertexTextures:S,maxSamples:T}}function od(i){let t=this,e=null,n=0,s=!1,r=!1,a=new Ce,o=new Ct,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(d,u){let m=d.length!==0||u||n!==0||s;return s=u,n=d.length,m},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1},this.setGlobalState=function(d,u){e=h(d,u,0)},this.setState=function(d,u,m){let g=d.clippingPlanes,x=d.clipIntersection,p=d.clipShadows,f=i.get(d);if(!s||g===null||g.length===0||r&&!p)r?h(null):l();else{let v=r?0:n,_=v*4,b=f.clippingState||null;c.value=b,b=h(g,u,_,m);for(let S=0;S!==_;++S)b[S]=e[S];f.clippingState=b,this.numIntersection=x?this.numPlanes:0,this.numPlanes+=v}};function l(){c.value!==e&&(c.value=e,c.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function h(d,u,m,g){let x=d!==null?d.length:0,p=null;if(x!==0){if(p=c.value,g!==!0||p===null){let f=m+x*4,v=u.matrixWorldInverse;o.getNormalMatrix(v),(p===null||p.length0){let l=new Gr(c.height/2);return l.fromEquirectangularTexture(i,a),t.set(a,l),a.addEventListener("dispose",s),e(l.texture,a.mapping)}else return null}}return a}function s(a){let o=a.target;o.removeEventListener("dispose",s);let c=t.get(o);c!==void 0&&(t.delete(o),c.dispose())}function r(){t=new WeakMap}return{get:n,dispose:r}}var Wr=class extends Ds{constructor(t=-1,e=1,n=1,s=-1,r=.1,a=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=s,this.near=r,this.far=a,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=t.view===null?null:Object.assign({},t.view),this}setViewOffset(t,e,n,s,r,a){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=s,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,s=(this.top+this.bottom)/2,r=n-t,a=n+t,o=s+e,c=s-e;if(this.view!==null&&this.view.enabled){let l=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=l*this.view.offsetX,a=r+l*this.view.width,o-=h*this.view.offsetY,c=o-h*this.view.height}this.projectionMatrix.makeOrthographic(r,a,o,c,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,this.view!==null&&(e.object.view=Object.assign({},this.view)),e}},hi=4,za=[.125,.215,.35,.446,.526,.582],Nn=20,Rr=new Wr,Va=new kt,Cr=null,Dn=(1+Math.sqrt(5))/2,ci=1/Dn,ka=[new P(1,1,1),new P(-1,1,1),new P(1,1,-1),new P(-1,1,-1),new P(0,Dn,ci),new P(0,Dn,-ci),new P(ci,0,Dn),new P(-ci,0,Dn),new P(Dn,ci,0),new P(-Dn,ci,0)],Os=class{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,s=100){Cr=this._renderer.getRenderTarget(),this._setSize(256);let r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,s,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Wa(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Ga(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t2?_:0,_,_),h.setRenderTarget(s),x&&h.render(g,o),h.render(t,o)}g.geometry.dispose(),g.material.dispose(),h.toneMapping=u,h.autoClear=d,t.background=p}_textureToCubeUV(t,e){let n=this._renderer,s=t.mapping===mi||t.mapping===gi;s?(this._cubemapMaterial===null&&(this._cubemapMaterial=Wa()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Ga());let r=s?this._cubemapMaterial:this._equirectMaterial,a=new Ye(this._lodPlanes[0],r),o=r.uniforms;o.envMap.value=t;let c=this._cubeSize;vs(e,0,0,3*c,2*c),n.setRenderTarget(e),n.render(a,Rr)}_applyPMREM(t){let e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let s=1;sNn&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${p} samples when the maximum is set to ${Nn}`);let f=[],v=0;for(let A=0;A_-hi?s-_+hi:0),T=4*(this._cubeSize-b);vs(e,S,T,3*b,2*b),c.setRenderTarget(e),c.render(d,Rr)}};function cd(i){let t=[],e=[],n=[],s=i,r=i-hi+1+za.length;for(let a=0;ai-hi?c=za[a-i+hi-1]:a===0&&(c=0),n.push(c);let l=1/(o-2),h=-l,d=1+l,u=[h,h,d,h,d,d,h,h,d,d,h,d],m=6,g=6,x=3,p=2,f=1,v=new Float32Array(x*g*m),_=new Float32Array(p*g*m),b=new Float32Array(f*g*m);for(let T=0;T2?0:-1,y=[A,L,0,A+2/3,L,0,A+2/3,L+1,0,A,L,0,A+2/3,L+1,0,A,L+1,0];v.set(y,x*g*T),_.set(u,p*g*T);let w=[T,T,T,T,T,T];b.set(w,f*g*T)}let S=new Ge;S.setAttribute("position",new te(v,x)),S.setAttribute("uv",new te(_,p)),S.setAttribute("faceIndex",new te(b,f)),t.push(S),s>hi&&s--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function Ha(i,t,e){let n=new cn(i,t,e);return n.texture.mapping=Bs,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function vs(i,t,e,n,s){i.viewport.set(t,e,n,s),i.scissor.set(t,e,n,s)}function ld(i,t,e){let n=new Float32Array(Nn),s=new P(0,1,0);return new ln({name:"SphericalGaussianBlur",defines:{n:Nn,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${i}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:s}},vertexShader:_o(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues\' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t`,blending:vn,depthTest:!1,depthWrite:!1})}function Ga(){return new ln({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:_o(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`,blending:vn,depthTest:!1,depthWrite:!1})}function Wa(){return new ln({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:_o(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`,blending:vn,depthTest:!1,depthWrite:!1})}function _o(){return`\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t`}function hd(i){let t=new WeakMap,e=null;function n(o){if(o&&o.isTexture){let c=o.mapping,l=c===Ir||c===Ur,h=c===mi||c===gi;if(l||h)if(o.isRenderTargetTexture&&o.needsPMREMUpdate===!0){o.needsPMREMUpdate=!1;let d=t.get(o);return e===null&&(e=new Os(i)),d=l?e.fromEquirectangular(o,d):e.fromCubemap(o,d),t.set(o,d),d.texture}else{if(t.has(o))return t.get(o).texture;{let d=o.image;if(l&&d&&d.height>0||h&&d&&s(d)){e===null&&(e=new Os(i));let u=l?e.fromEquirectangular(o):e.fromCubemap(o);return t.set(o,u),o.addEventListener("dispose",r),u.texture}else return null}}}return o}function s(o){let c=0,l=6;for(let h=0;ht.maxTextureSize&&(w=Math.ceil(y/t.maxTextureSize),y=t.maxTextureSize);let z=new Float32Array(y*w*4*g),Y=new Cs(z,y,w,g);Y.type=yn,Y.needsUpdate=!0;let I=L*4;for(let O=0;O0)return i;let s=t*e,r=Xa[s];if(r===void 0&&(r=new Float32Array(s),Xa[s]=r),t!==0){n.toArray(r,0);for(let a=1,o=0;a!==t;++a)o+=e,i[a].toArray(r,o)}return r}function ee(i,t){if(i.length!==t.length)return!1;for(let e=0,n=i.length;e":" "} ${o}: ${e[a]}`)}return n.join(`\n`)}function cp(i){switch(i){case Ze:return["Linear","( value )"];case Rt:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",i),["Linear","( value )"]}}function Qa(i,t,e){let n=i.getShaderParameter(t,i.COMPILE_STATUS),s=i.getShaderInfoLog(t).trim();if(n&&s==="")return"";let r=/ERROR: 0:(\\d+)/.exec(s);if(r){let a=parseInt(r[1]);return e.toUpperCase()+`\n\n`+s+`\n\n`+ap(i.getShaderSource(t),a)}else return s}function lp(i,t){let e=cp(t);return"vec4 "+i+"( vec4 value ) { return LinearTo"+e[0]+e[1]+"; }"}function hp(i,t){let e;switch(t){case El:e="Linear";break;case Tl:e="Reinhard";break;case wl:e="OptimizedCineon";break;case Al:e="ACESFilmic";break;case Rl:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+i+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}function up(i){return[i.extensionDerivatives||i.envMapCubeUVHeight||i.bumpMap||i.normalMapTangentSpace||i.clearcoatNormalMap||i.flatShading||i.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(i.extensionFragDepth||i.logarithmicDepthBuffer)&&i.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",i.extensionDrawBuffers&&i.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(i.extensionShaderTextureLOD||i.envMap||i.transmission)&&i.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(zi).join(`\n`)}function fp(i){let t=[];for(let e in i){let n=i[e];n!==!1&&t.push("#define "+e+" "+n)}return t.join(`\n`)}function dp(i,t){let e={},n=i.getProgramParameter(t,i.ACTIVE_ATTRIBUTES);for(let s=0;s/gm;function Zr(i){return i.replace(pp,gp)}var mp=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function gp(i,t){let e=At[t];if(e===void 0){let n=mp.get(t);if(n!==void 0)e=At[n],console.warn(\'THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.\',t,n);else throw new Error("Can not resolve #include <"+t+">")}return Zr(e)}var _p=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function ec(i){return i.replace(_p,xp)}function xp(i,t,e,n){let s="";for(let r=parseInt(t);r0&&(p+=`\n`),f=[m,"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g].filter(zi).join(`\n`),f.length>0&&(f+=`\n`)):(p=[nc(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g,e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+h:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.displacementMap?"#define USE_DISPLACEMENTMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.mapUv?"#define MAP_UV "+e.mapUv:"",e.alphaMapUv?"#define ALPHAMAP_UV "+e.alphaMapUv:"",e.lightMapUv?"#define LIGHTMAP_UV "+e.lightMapUv:"",e.aoMapUv?"#define AOMAP_UV "+e.aoMapUv:"",e.emissiveMapUv?"#define EMISSIVEMAP_UV "+e.emissiveMapUv:"",e.bumpMapUv?"#define BUMPMAP_UV "+e.bumpMapUv:"",e.normalMapUv?"#define NORMALMAP_UV "+e.normalMapUv:"",e.displacementMapUv?"#define DISPLACEMENTMAP_UV "+e.displacementMapUv:"",e.metalnessMapUv?"#define METALNESSMAP_UV "+e.metalnessMapUv:"",e.roughnessMapUv?"#define ROUGHNESSMAP_UV "+e.roughnessMapUv:"",e.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+e.anisotropyMapUv:"",e.clearcoatMapUv?"#define CLEARCOATMAP_UV "+e.clearcoatMapUv:"",e.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+e.clearcoatNormalMapUv:"",e.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+e.clearcoatRoughnessMapUv:"",e.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+e.iridescenceMapUv:"",e.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+e.iridescenceThicknessMapUv:"",e.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+e.sheenColorMapUv:"",e.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+e.sheenRoughnessMapUv:"",e.specularMapUv?"#define SPECULARMAP_UV "+e.specularMapUv:"",e.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+e.specularColorMapUv:"",e.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+e.specularIntensityMapUv:"",e.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+e.transmissionMapUv:"",e.thicknessMapUv?"#define THICKNESSMAP_UV "+e.thicknessMapUv:"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors&&e.isWebGL2?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.useLegacyLights?"#define LEGACY_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif",`\n`].filter(zi).join(`\n`),f=[m,nc(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+l:"",e.envMap?"#define "+h:"",e.envMap?"#define "+d:"",u?"#define CUBEUV_TEXEL_WIDTH "+u.texelWidth:"",u?"#define CUBEUV_TEXEL_HEIGHT "+u.texelHeight:"",u?"#define CUBEUV_MAX_MIP "+u.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.useLegacyLights?"#define LEGACY_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==Mn?"#define TONE_MAPPING":"",e.toneMapping!==Mn?At.tonemapping_pars_fragment:"",e.toneMapping!==Mn?hp("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",At.colorspace_pars_fragment,lp("linearToOutputTexel",e.outputColorSpace),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",`\n`].filter(zi).join(`\n`)),a=Zr(a),a=ja(a,e),a=tc(a,e),o=Zr(o),o=ja(o,e),o=tc(o,e),a=ec(a),o=ec(o),e.isWebGL2&&e.isRawShaderMaterial!==!0&&(v=`#version 300 es\n`,p=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(`\n`)+`\n`+p,f=["#define varying in",e.glslVersion===Sa?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===Sa?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(`\n`)+`\n`+f);let _=v+p+a,b=v+f+o,S=Ka(s,s.VERTEX_SHADER,_),T=Ka(s,s.FRAGMENT_SHADER,b);if(s.attachShader(x,S),s.attachShader(x,T),e.index0AttributeName!==void 0?s.bindAttribLocation(x,0,e.index0AttributeName):e.morphTargets===!0&&s.bindAttribLocation(x,0,"position"),s.linkProgram(x),i.debug.checkShaderErrors){let y=s.getProgramInfoLog(x).trim(),w=s.getShaderInfoLog(S).trim(),z=s.getShaderInfoLog(T).trim(),Y=!0,I=!0;if(s.getProgramParameter(x,s.LINK_STATUS)===!1)if(Y=!1,typeof i.debug.onShaderError=="function")i.debug.onShaderError(s,x,S,T);else{let D=Qa(s,S,"vertex"),O=Qa(s,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+s.getError()+" - VALIDATE_STATUS "+s.getProgramParameter(x,s.VALIDATE_STATUS)+`\n\nProgram Info Log: `+y+`\n`+D+`\n`+O)}else y!==""?console.warn("THREE.WebGLProgram: Program Info Log:",y):(w===""||z==="")&&(I=!1);I&&(this.diagnostics={runnable:Y,programLog:y,vertexShader:{log:w,prefix:p},fragmentShader:{log:z,prefix:f}})}s.deleteShader(S),s.deleteShader(T);let A;this.getUniforms=function(){return A===void 0&&(A=new pi(s,x)),A};let L;return this.getAttributes=function(){return L===void 0&&(L=dp(s,x)),L},this.destroy=function(){n.releaseStatesOfProgram(this),s.deleteProgram(x),this.program=void 0},this.type=e.shaderType,this.name=e.shaderName,this.id=op++,this.cacheKey=t,this.usedTimes=1,this.program=x,this.vertexShader=S,this.fragmentShader=T,this}var Tp=0,Jr=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){let e=t.vertexShader,n=t.fragmentShader,s=this._getShaderStage(e),r=this._getShaderStage(n),a=this._getShaderCacheForMaterial(t);return a.has(s)===!1&&(a.add(s),s.usedTimes++),a.has(r)===!1&&(a.add(r),r.usedTimes++),this}remove(t){let e=this.materialCache.get(t);for(let n of e)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){let e=this.materialCache,n=e.get(t);return n===void 0&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){let e=this.shaderCache,n=e.get(t);return n===void 0&&(n=new $r(t),e.set(t,n)),n}},$r=class{constructor(t){this.id=Tp++,this.code=t,this.usedTimes=0}};function wp(i,t,e,n,s,r,a){let o=new Ps,c=new Jr,l=[],h=s.isWebGL2,d=s.logarithmicDepthBuffer,u=s.vertexTextures,m=s.precision,g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function x(y){return y===0?"uv":`uv${y}`}function p(y,w,z,Y,I){let D=Y.fog,O=I.geometry,$=y.isMeshStandardMaterial?Y.environment:null,G=(y.isMeshStandardMaterial?e:t).get(y.envMap||$),q=G&&G.mapping===Bs?G.image.height:null,J=g[y.type];y.precision!==null&&(m=s.getMaxPrecision(y.precision),m!==y.precision&&console.warn("THREE.WebGLProgram.getParameters:",y.precision,"not supported, using",m,"instead."));let K=O.morphAttributes.position||O.morphAttributes.normal||O.morphAttributes.color,B=K!==void 0?K.length:0,Z=0;O.morphAttributes.position!==void 0&&(Z=1),O.morphAttributes.normal!==void 0&&(Z=2),O.morphAttributes.color!==void 0&&(Z=3);let ot,at,ct,_t;if(J){let Wt=qe[J];ot=Wt.vertexShader,at=Wt.fragmentShader}else ot=y.vertexShader,at=y.fragmentShader,c.update(y),ct=c.getVertexShaderID(y),_t=c.getFragmentShaderID(y);let Et=i.getRenderTarget(),xt=I.isInstancedMesh===!0,zt=!!y.map,xe=!!y.matcap,Pt=!!G,F=!!y.aoMap,oe=!!y.lightMap,yt=!!y.bumpMap,Tt=!!y.normalMap,bt=!!y.displacementMap,Xt=!!y.emissiveMap,Ft=!!y.metalnessMap,Lt=!!y.roughnessMap,Vt=y.anisotropy>0,re=y.clearcoat>0,ae=y.iridescence>0,R=y.sheen>0,M=y.transmission>0,V=Vt&&!!y.anisotropyMap,j=re&&!!y.clearcoatMap,Q=re&&!!y.clearcoatNormalMap,tt=re&&!!y.clearcoatRoughnessMap,ft=ae&&!!y.iridescenceMap,et=ae&&!!y.iridescenceThicknessMap,H=R&&!!y.sheenColorMap,mt=R&&!!y.sheenRoughnessMap,dt=!!y.specularMap,pt=!!y.specularColorMap,ht=!!y.specularIntensityMap,ut=M&&!!y.transmissionMap,It=M&&!!y.thicknessMap,Ht=!!y.gradientMap,C=!!y.alphaMap,st=y.alphaTest>0,k=!!y.alphaHash,nt=!!y.extensions,rt=!!O.attributes.uv1,Ot=!!O.attributes.uv2,qt=!!O.attributes.uv3,Jt=Mn;return y.toneMapped&&(Et===null||Et.isXRRenderTarget===!0)&&(Jt=i.toneMapping),{isWebGL2:h,shaderID:J,shaderType:y.type,shaderName:y.name,vertexShader:ot,fragmentShader:at,defines:y.defines,customVertexShaderID:ct,customFragmentShaderID:_t,isRawShaderMaterial:y.isRawShaderMaterial===!0,glslVersion:y.glslVersion,precision:m,instancing:xt,instancingColor:xt&&I.instanceColor!==null,supportsVertexTextures:u,outputColorSpace:Et===null?i.outputColorSpace:Et.isXRRenderTarget===!0?Et.texture.colorSpace:Ze,map:zt,matcap:xe,envMap:Pt,envMapMode:Pt&&G.mapping,envMapCubeUVHeight:q,aoMap:F,lightMap:oe,bumpMap:yt,normalMap:Tt,displacementMap:u&&bt,emissiveMap:Xt,normalMapObjectSpace:Tt&&y.normalMapType===Hl,normalMapTangentSpace:Tt&&y.normalMapType===kl,metalnessMap:Ft,roughnessMap:Lt,anisotropy:Vt,anisotropyMap:V,clearcoat:re,clearcoatMap:j,clearcoatNormalMap:Q,clearcoatRoughnessMap:tt,iridescence:ae,iridescenceMap:ft,iridescenceThicknessMap:et,sheen:R,sheenColorMap:H,sheenRoughnessMap:mt,specularMap:dt,specularColorMap:pt,specularIntensityMap:ht,transmission:M,transmissionMap:ut,thicknessMap:It,gradientMap:Ht,opaque:y.transparent===!1&&y.blending===fi,alphaMap:C,alphaTest:st,alphaHash:k,combine:y.combine,mapUv:zt&&x(y.map.channel),aoMapUv:F&&x(y.aoMap.channel),lightMapUv:oe&&x(y.lightMap.channel),bumpMapUv:yt&&x(y.bumpMap.channel),normalMapUv:Tt&&x(y.normalMap.channel),displacementMapUv:bt&&x(y.displacementMap.channel),emissiveMapUv:Xt&&x(y.emissiveMap.channel),metalnessMapUv:Ft&&x(y.metalnessMap.channel),roughnessMapUv:Lt&&x(y.roughnessMap.channel),anisotropyMapUv:V&&x(y.anisotropyMap.channel),clearcoatMapUv:j&&x(y.clearcoatMap.channel),clearcoatNormalMapUv:Q&&x(y.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:tt&&x(y.clearcoatRoughnessMap.channel),iridescenceMapUv:ft&&x(y.iridescenceMap.channel),iridescenceThicknessMapUv:et&&x(y.iridescenceThicknessMap.channel),sheenColorMapUv:H&&x(y.sheenColorMap.channel),sheenRoughnessMapUv:mt&&x(y.sheenRoughnessMap.channel),specularMapUv:dt&&x(y.specularMap.channel),specularColorMapUv:pt&&x(y.specularColorMap.channel),specularIntensityMapUv:ht&&x(y.specularIntensityMap.channel),transmissionMapUv:ut&&x(y.transmissionMap.channel),thicknessMapUv:It&&x(y.thicknessMap.channel),alphaMapUv:C&&x(y.alphaMap.channel),vertexTangents:!!O.attributes.tangent&&(Tt||Vt),vertexColors:y.vertexColors,vertexAlphas:y.vertexColors===!0&&!!O.attributes.color&&O.attributes.color.itemSize===4,vertexUv1s:rt,vertexUv2s:Ot,vertexUv3s:qt,pointsUvs:I.isPoints===!0&&!!O.attributes.uv&&(zt||C),fog:!!D,useFog:y.fog===!0,fogExp2:D&&D.isFogExp2,flatShading:y.flatShading===!0,sizeAttenuation:y.sizeAttenuation===!0,logarithmicDepthBuffer:d,skinning:I.isSkinnedMesh===!0,morphTargets:O.morphAttributes.position!==void 0,morphNormals:O.morphAttributes.normal!==void 0,morphColors:O.morphAttributes.color!==void 0,morphTargetsCount:B,morphTextureStride:Z,numDirLights:w.directional.length,numPointLights:w.point.length,numSpotLights:w.spot.length,numSpotLightMaps:w.spotLightMap.length,numRectAreaLights:w.rectArea.length,numHemiLights:w.hemi.length,numDirLightShadows:w.directionalShadowMap.length,numPointLightShadows:w.pointShadowMap.length,numSpotLightShadows:w.spotShadowMap.length,numSpotLightShadowsWithMaps:w.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:y.dithering,shadowMapEnabled:i.shadowMap.enabled&&z.length>0,shadowMapType:i.shadowMap.type,toneMapping:Jt,useLegacyLights:i._useLegacyLights,premultipliedAlpha:y.premultipliedAlpha,doubleSided:y.side===ze,flipSided:y.side===he,useDepthPacking:y.depthPacking>=0,depthPacking:y.depthPacking||0,index0AttributeName:y.index0AttributeName,extensionDerivatives:nt&&y.extensions.derivatives===!0,extensionFragDepth:nt&&y.extensions.fragDepth===!0,extensionDrawBuffers:nt&&y.extensions.drawBuffers===!0,extensionShaderTextureLOD:nt&&y.extensions.shaderTextureLOD===!0,rendererExtensionFragDepth:h||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||n.has("EXT_shader_texture_lod"),customProgramCacheKey:y.customProgramCacheKey()}}function f(y){let w=[];if(y.shaderID?w.push(y.shaderID):(w.push(y.customVertexShaderID),w.push(y.customFragmentShaderID)),y.defines!==void 0)for(let z in y.defines)w.push(z),w.push(y.defines[z]);return y.isRawShaderMaterial===!1&&(v(w,y),_(w,y),w.push(i.outputColorSpace)),w.push(y.customProgramCacheKey),w.join()}function v(y,w){y.push(w.precision),y.push(w.outputColorSpace),y.push(w.envMapMode),y.push(w.envMapCubeUVHeight),y.push(w.mapUv),y.push(w.alphaMapUv),y.push(w.lightMapUv),y.push(w.aoMapUv),y.push(w.bumpMapUv),y.push(w.normalMapUv),y.push(w.displacementMapUv),y.push(w.emissiveMapUv),y.push(w.metalnessMapUv),y.push(w.roughnessMapUv),y.push(w.anisotropyMapUv),y.push(w.clearcoatMapUv),y.push(w.clearcoatNormalMapUv),y.push(w.clearcoatRoughnessMapUv),y.push(w.iridescenceMapUv),y.push(w.iridescenceThicknessMapUv),y.push(w.sheenColorMapUv),y.push(w.sheenRoughnessMapUv),y.push(w.specularMapUv),y.push(w.specularColorMapUv),y.push(w.specularIntensityMapUv),y.push(w.transmissionMapUv),y.push(w.thicknessMapUv),y.push(w.combine),y.push(w.fogExp2),y.push(w.sizeAttenuation),y.push(w.morphTargetsCount),y.push(w.morphAttributeCount),y.push(w.numDirLights),y.push(w.numPointLights),y.push(w.numSpotLights),y.push(w.numSpotLightMaps),y.push(w.numHemiLights),y.push(w.numRectAreaLights),y.push(w.numDirLightShadows),y.push(w.numPointLightShadows),y.push(w.numSpotLightShadows),y.push(w.numSpotLightShadowsWithMaps),y.push(w.shadowMapType),y.push(w.toneMapping),y.push(w.numClippingPlanes),y.push(w.numClipIntersection),y.push(w.depthPacking)}function _(y,w){o.disableAll(),w.isWebGL2&&o.enable(0),w.supportsVertexTextures&&o.enable(1),w.instancing&&o.enable(2),w.instancingColor&&o.enable(3),w.matcap&&o.enable(4),w.envMap&&o.enable(5),w.normalMapObjectSpace&&o.enable(6),w.normalMapTangentSpace&&o.enable(7),w.clearcoat&&o.enable(8),w.iridescence&&o.enable(9),w.alphaTest&&o.enable(10),w.vertexColors&&o.enable(11),w.vertexAlphas&&o.enable(12),w.vertexUv1s&&o.enable(13),w.vertexUv2s&&o.enable(14),w.vertexUv3s&&o.enable(15),w.vertexTangents&&o.enable(16),w.anisotropy&&o.enable(17),y.push(o.mask),o.disableAll(),w.fog&&o.enable(0),w.useFog&&o.enable(1),w.flatShading&&o.enable(2),w.logarithmicDepthBuffer&&o.enable(3),w.skinning&&o.enable(4),w.morphTargets&&o.enable(5),w.morphNormals&&o.enable(6),w.morphColors&&o.enable(7),w.premultipliedAlpha&&o.enable(8),w.shadowMapEnabled&&o.enable(9),w.useLegacyLights&&o.enable(10),w.doubleSided&&o.enable(11),w.flipSided&&o.enable(12),w.useDepthPacking&&o.enable(13),w.dithering&&o.enable(14),w.transmission&&o.enable(15),w.sheen&&o.enable(16),w.opaque&&o.enable(17),w.pointsUvs&&o.enable(18),y.push(o.mask)}function b(y){let w=g[y.type],z;if(w){let Y=qe[w];z=xh.clone(Y.uniforms)}else z=y.uniforms;return z}function S(y,w){let z;for(let Y=0,I=l.length;Y0?n.push(f):m.transparent===!0?s.push(f):e.push(f)}function c(d,u,m,g,x,p){let f=a(d,u,m,g,x,p);m.transmission>0?n.unshift(f):m.transparent===!0?s.unshift(f):e.unshift(f)}function l(d,u){e.length>1&&e.sort(d||Rp),n.length>1&&n.sort(u||ic),s.length>1&&s.sort(u||ic)}function h(){for(let d=t,u=i.length;d=r.length?(a=new sc,r.push(a)):a=r[s],a}function e(){i=new WeakMap}return{get:t,dispose:e}}function Pp(){let i={};return{get:function(t){if(i[t.id]!==void 0)return i[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new P,color:new kt};break;case"SpotLight":e={position:new P,direction:new P,color:new kt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new P,color:new kt,distance:0,decay:0};break;case"HemisphereLight":e={direction:new P,skyColor:new kt,groundColor:new kt};break;case"RectAreaLight":e={color:new kt,position:new P,halfWidth:new P,halfHeight:new P};break}return i[t.id]=e,e}}}function Lp(){let i={};return{get:function(t){if(i[t.id]!==void 0)return i[t.id];let e;switch(t.type){case"DirectionalLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt};break;case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt,shadowCameraNear:1,shadowCameraFar:1e3};break}return i[t.id]=e,e}}}var Ip=0;function Up(i,t){return(t.castShadow?2:0)-(i.castShadow?2:0)+(t.map?1:0)-(i.map?1:0)}function Dp(i,t){let e=new Pp,n=Lp(),s={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let h=0;h<9;h++)s.probe.push(new P);let r=new P,a=new Gt,o=new Gt;function c(h,d){let u=0,m=0,g=0;for(let z=0;z<9;z++)s.probe[z].set(0,0,0);let x=0,p=0,f=0,v=0,_=0,b=0,S=0,T=0,A=0,L=0;h.sort(Up);let y=d===!0?Math.PI:1;for(let z=0,Y=h.length;z0&&(t.isWebGL2||i.has("OES_texture_float_linear")===!0?(s.rectAreaLTC1=it.LTC_FLOAT_1,s.rectAreaLTC2=it.LTC_FLOAT_2):i.has("OES_texture_half_float_linear")===!0?(s.rectAreaLTC1=it.LTC_HALF_1,s.rectAreaLTC2=it.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),s.ambient[0]=u,s.ambient[1]=m,s.ambient[2]=g;let w=s.hash;(w.directionalLength!==x||w.pointLength!==p||w.spotLength!==f||w.rectAreaLength!==v||w.hemiLength!==_||w.numDirectionalShadows!==b||w.numPointShadows!==S||w.numSpotShadows!==T||w.numSpotMaps!==A)&&(s.directional.length=x,s.spot.length=f,s.rectArea.length=v,s.point.length=p,s.hemi.length=_,s.directionalShadow.length=b,s.directionalShadowMap.length=b,s.pointShadow.length=S,s.pointShadowMap.length=S,s.spotShadow.length=T,s.spotShadowMap.length=T,s.directionalShadowMatrix.length=b,s.pointShadowMatrix.length=S,s.spotLightMatrix.length=T+A-L,s.spotLightMap.length=A,s.numSpotLightShadowsWithMaps=L,w.directionalLength=x,w.pointLength=p,w.spotLength=f,w.rectAreaLength=v,w.hemiLength=_,w.numDirectionalShadows=b,w.numPointShadows=S,w.numSpotShadows=T,w.numSpotMaps=A,s.version=Ip++)}function l(h,d){let u=0,m=0,g=0,x=0,p=0,f=d.matrixWorldInverse;for(let v=0,_=h.length;v<_;v++){let b=h[v];if(b.isDirectionalLight){let S=s.directional[u];S.direction.setFromMatrixPosition(b.matrixWorld),r.setFromMatrixPosition(b.target.matrixWorld),S.direction.sub(r),S.direction.transformDirection(f),u++}else if(b.isSpotLight){let S=s.spot[g];S.position.setFromMatrixPosition(b.matrixWorld),S.position.applyMatrix4(f),S.direction.setFromMatrixPosition(b.matrixWorld),r.setFromMatrixPosition(b.target.matrixWorld),S.direction.sub(r),S.direction.transformDirection(f),g++}else if(b.isRectAreaLight){let S=s.rectArea[x];S.position.setFromMatrixPosition(b.matrixWorld),S.position.applyMatrix4(f),o.identity(),a.copy(b.matrixWorld),a.premultiply(f),o.extractRotation(a),S.halfWidth.set(b.width*.5,0,0),S.halfHeight.set(0,b.height*.5,0),S.halfWidth.applyMatrix4(o),S.halfHeight.applyMatrix4(o),x++}else if(b.isPointLight){let S=s.point[m];S.position.setFromMatrixPosition(b.matrixWorld),S.position.applyMatrix4(f),m++}else if(b.isHemisphereLight){let S=s.hemi[p];S.direction.setFromMatrixPosition(b.matrixWorld),S.direction.transformDirection(f),p++}}}return{setup:c,setupView:l,state:s}}function rc(i,t){let e=new Dp(i,t),n=[],s=[];function r(){n.length=0,s.length=0}function a(d){n.push(d)}function o(d){s.push(d)}function c(d){e.setup(n,d)}function l(d){e.setupView(n,d)}return{init:r,state:{lightsArray:n,shadowsArray:s,lights:e},setupLights:c,setupLightsView:l,pushLight:a,pushShadow:o}}function Np(i,t){let e=new WeakMap;function n(r,a=0){let o=e.get(r),c;return o===void 0?(c=new rc(i,t),e.set(r,[c])):a>=o.length?(c=new rc(i,t),o.push(c)):c=o[a],c}function s(){e=new WeakMap}return{get:n,dispose:s}}var Kr=class extends yi{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=zl,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}},Qr=class extends yi{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}},Fp=`void main() {\n\tgl_Position = vec4( position, 1.0 );\n}`,Op=`uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}`;function Bp(i,t,e){let n=new Fs,s=new Nt,r=new Nt,a=new jt,o=new Kr({depthPacking:Vl}),c=new Qr,l={},h=e.maxTextureSize,d={[He]:he,[he]:He,[ze]:ze},u=new ln({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Nt},radius:{value:4}},vertexShader:Fp,fragmentShader:Op}),m=u.clone();m.defines.HORIZONTAL_PASS=1;let g=new Ge;g.setAttribute("position",new te(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let x=new Ye(g,u),p=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=ac;let f=this.type;this.render=function(S,T,A){if(p.enabled===!1||p.autoUpdate===!1&&p.needsUpdate===!1||S.length===0)return;let L=i.getRenderTarget(),y=i.getActiveCubeFace(),w=i.getActiveMipmapLevel(),z=i.state;z.setBlending(vn),z.buffers.color.setClear(1,1,1,1),z.buffers.depth.setTest(!0),z.setScissorTest(!1);let Y=f!==rn&&this.type===rn,I=f===rn&&this.type!==rn;for(let D=0,O=S.length;Dh||s.y>h)&&(s.x>h&&(r.x=Math.floor(h/q.x),s.x=r.x*q.x,G.mapSize.x=r.x),s.y>h&&(r.y=Math.floor(h/q.y),s.y=r.y*q.y,G.mapSize.y=r.y)),G.map===null||Y===!0||I===!0){let K=this.type!==rn?{minFilter:pe,magFilter:pe}:{};G.map!==null&&G.map.dispose(),G.map=new cn(s.x,s.y,K),G.map.texture.name=$.name+".shadowMap",G.camera.updateProjectionMatrix()}i.setRenderTarget(G.map),i.clear();let J=G.getViewportCount();for(let K=0;K0||T.map&&T.alphaTest>0){let z=y.uuid,Y=T.uuid,I=l[z];I===void 0&&(I={},l[z]=I);let D=I[Y];D===void 0&&(D=y.clone(),I[Y]=D),y=D}if(y.visible=T.visible,y.wireframe=T.wireframe,L===rn?y.side=T.shadowSide!==null?T.shadowSide:T.side:y.side=T.shadowSide!==null?T.shadowSide:d[T.side],y.alphaMap=T.alphaMap,y.alphaTest=T.alphaTest,y.map=T.map,y.clipShadows=T.clipShadows,y.clippingPlanes=T.clippingPlanes,y.clipIntersection=T.clipIntersection,y.displacementMap=T.displacementMap,y.displacementScale=T.displacementScale,y.displacementBias=T.displacementBias,y.wireframeLinewidth=T.wireframeLinewidth,y.linewidth=T.linewidth,A.isPointLight===!0&&y.isMeshDistanceMaterial===!0){let z=i.properties.get(y);z.light=A}return y}function b(S,T,A,L,y){if(S.visible===!1)return;if(S.layers.test(T.layers)&&(S.isMesh||S.isLine||S.isPoints)&&(S.castShadow||S.receiveShadow&&y===rn)&&(!S.frustumCulled||n.intersectsObject(S))){S.modelViewMatrix.multiplyMatrices(A.matrixWorldInverse,S.matrixWorld);let Y=t.update(S),I=S.material;if(Array.isArray(I)){let D=Y.groups;for(let O=0,$=D.length;O<$;O++){let G=D[O],q=I[G.materialIndex];if(q&&q.visible){let J=_(S,q,L,y);i.renderBufferDirect(A,null,Y,J,S,G)}}}else if(I.visible){let D=_(S,I,L,y);i.renderBufferDirect(A,null,Y,D,S,null)}}let z=S.children;for(let Y=0,I=z.length;Y=1):q.indexOf("OpenGL ES")!==-1&&(G=parseFloat(/^OpenGL ES (\\d)/.exec(q)[1]),$=G>=2);let J=null,K={},B=i.getParameter(i.SCISSOR_BOX),Z=i.getParameter(i.VIEWPORT),ot=new jt().fromArray(B),at=new jt().fromArray(Z);function ct(C,st,k,nt){let rt=new Uint8Array(4),Ot=i.createTexture();i.bindTexture(C,Ot),i.texParameteri(C,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(C,i.TEXTURE_MAG_FILTER,i.NEAREST);for(let qt=0;qtj||R.height>j)&&(Q=j/Math.max(R.width,R.height)),Q<1||M===!0)if(typeof HTMLImageElement!="undefined"&&R instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&R instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&R instanceof ImageBitmap){let tt=M?Br:Math.floor,ft=tt(Q*R.width),et=tt(Q*R.height);x===void 0&&(x=v(ft,et));let H=V?v(ft,et):x;return H.width=ft,H.height=et,H.getContext("2d").drawImage(R,0,0,ft,et),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+R.width+"x"+R.height+") to ("+ft+"x"+et+")."),H}else return"data"in R&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+R.width+"x"+R.height+")."),R;return R}function b(R){return ba(R.width)&&ba(R.height)}function S(R){return o?!1:R.wrapS!==Ve||R.wrapT!==Ve||R.minFilter!==pe&&R.minFilter!==Ie}function T(R,M){return R.generateMipmaps&&M&&R.minFilter!==pe&&R.minFilter!==Ie}function A(R){i.generateMipmap(R)}function L(R,M,V,j,Q=!1){if(o===!1)return M;if(R!==null){if(i[R]!==void 0)return i[R];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \'"+R+"\'")}let tt=M;return M===i.RED&&(V===i.FLOAT&&(tt=i.R32F),V===i.HALF_FLOAT&&(tt=i.R16F),V===i.UNSIGNED_BYTE&&(tt=i.R8)),M===i.RED_INTEGER&&(V===i.UNSIGNED_BYTE&&(tt=i.R8UI),V===i.UNSIGNED_SHORT&&(tt=i.R16UI),V===i.UNSIGNED_INT&&(tt=i.R32UI),V===i.BYTE&&(tt=i.R8I),V===i.SHORT&&(tt=i.R16I),V===i.INT&&(tt=i.R32I)),M===i.RG&&(V===i.FLOAT&&(tt=i.RG32F),V===i.HALF_FLOAT&&(tt=i.RG16F),V===i.UNSIGNED_BYTE&&(tt=i.RG8)),M===i.RGBA&&(V===i.FLOAT&&(tt=i.RGBA32F),V===i.HALF_FLOAT&&(tt=i.RGBA16F),V===i.UNSIGNED_BYTE&&(tt=j===Rt&&Q===!1?i.SRGB8_ALPHA8:i.RGBA8),V===i.UNSIGNED_SHORT_4_4_4_4&&(tt=i.RGBA4),V===i.UNSIGNED_SHORT_5_5_5_1&&(tt=i.RGB5_A1)),(tt===i.R16F||tt===i.R32F||tt===i.RG16F||tt===i.RG32F||tt===i.RGBA16F||tt===i.RGBA32F)&&t.get("EXT_color_buffer_float"),tt}function y(R,M,V){return T(R,V)===!0||R.isFramebufferTexture&&R.minFilter!==pe&&R.minFilter!==Ie?Math.log2(Math.max(M.width,M.height))+1:R.mipmaps!==void 0&&R.mipmaps.length>0?R.mipmaps.length:R.isCompressedTexture&&Array.isArray(R.image)?M.mipmaps.length:1}function w(R){return R===pe||R===Zo||R===er?i.NEAREST:i.LINEAR}function z(R){let M=R.target;M.removeEventListener("dispose",z),I(M),M.isVideoTexture&&g.delete(M)}function Y(R){let M=R.target;M.removeEventListener("dispose",Y),O(M)}function I(R){let M=n.get(R);if(M.__webglInit===void 0)return;let V=R.source,j=p.get(V);if(j){let Q=j[M.__cacheKey];Q.usedTimes--,Q.usedTimes===0&&D(R),Object.keys(j).length===0&&p.delete(V)}n.remove(R)}function D(R){let M=n.get(R);i.deleteTexture(M.__webglTexture);let V=R.source,j=p.get(V);delete j[M.__cacheKey],a.memory.textures--}function O(R){let M=R.texture,V=n.get(R),j=n.get(M);if(j.__webglTexture!==void 0&&(i.deleteTexture(j.__webglTexture),a.memory.textures--),R.depthTexture&&R.depthTexture.dispose(),R.isWebGLCubeRenderTarget)for(let Q=0;Q<6;Q++){if(Array.isArray(V.__webglFramebuffer[Q]))for(let tt=0;tt=c&&console.warn("THREE.WebGLTextures: Trying to use "+R+" texture units while this GPU supports only "+c),$+=1,R}function J(R){let M=[];return M.push(R.wrapS),M.push(R.wrapT),M.push(R.wrapR||0),M.push(R.magFilter),M.push(R.minFilter),M.push(R.anisotropy),M.push(R.internalFormat),M.push(R.format),M.push(R.type),M.push(R.generateMipmaps),M.push(R.premultiplyAlpha),M.push(R.flipY),M.push(R.unpackAlignment),M.push(R.colorSpace),M.join()}function K(R,M){let V=n.get(R);if(R.isVideoTexture&&re(R),R.isRenderTargetTexture===!1&&R.version>0&&V.__version!==R.version){let j=R.image;if(j===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(j.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{zt(V,R,M);return}}e.bindTexture(i.TEXTURE_2D,V.__webglTexture,i.TEXTURE0+M)}function B(R,M){let V=n.get(R);if(R.version>0&&V.__version!==R.version){zt(V,R,M);return}e.bindTexture(i.TEXTURE_2D_ARRAY,V.__webglTexture,i.TEXTURE0+M)}function Z(R,M){let V=n.get(R);if(R.version>0&&V.__version!==R.version){zt(V,R,M);return}e.bindTexture(i.TEXTURE_3D,V.__webglTexture,i.TEXTURE0+M)}function ot(R,M){let V=n.get(R);if(R.version>0&&V.__version!==R.version){xe(V,R,M);return}e.bindTexture(i.TEXTURE_CUBE_MAP,V.__webglTexture,i.TEXTURE0+M)}let at={[Dr]:i.REPEAT,[Ve]:i.CLAMP_TO_EDGE,[Nr]:i.MIRRORED_REPEAT},ct={[pe]:i.NEAREST,[Zo]:i.NEAREST_MIPMAP_NEAREST,[er]:i.NEAREST_MIPMAP_LINEAR,[Ie]:i.LINEAR,[Cl]:i.LINEAR_MIPMAP_NEAREST,[Hi]:i.LINEAR_MIPMAP_LINEAR},_t={[Wl]:i.NEVER,[Kl]:i.ALWAYS,[Xl]:i.LESS,[Yl]:i.LEQUAL,[ql]:i.EQUAL,[$l]:i.GEQUAL,[Zl]:i.GREATER,[Jl]:i.NOTEQUAL};function Et(R,M,V){if(V?(i.texParameteri(R,i.TEXTURE_WRAP_S,at[M.wrapS]),i.texParameteri(R,i.TEXTURE_WRAP_T,at[M.wrapT]),(R===i.TEXTURE_3D||R===i.TEXTURE_2D_ARRAY)&&i.texParameteri(R,i.TEXTURE_WRAP_R,at[M.wrapR]),i.texParameteri(R,i.TEXTURE_MAG_FILTER,ct[M.magFilter]),i.texParameteri(R,i.TEXTURE_MIN_FILTER,ct[M.minFilter])):(i.texParameteri(R,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(R,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),(R===i.TEXTURE_3D||R===i.TEXTURE_2D_ARRAY)&&i.texParameteri(R,i.TEXTURE_WRAP_R,i.CLAMP_TO_EDGE),(M.wrapS!==Ve||M.wrapT!==Ve)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),i.texParameteri(R,i.TEXTURE_MAG_FILTER,w(M.magFilter)),i.texParameteri(R,i.TEXTURE_MIN_FILTER,w(M.minFilter)),M.minFilter!==pe&&M.minFilter!==Ie&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),M.compareFunction&&(i.texParameteri(R,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE),i.texParameteri(R,i.TEXTURE_COMPARE_FUNC,_t[M.compareFunction])),t.has("EXT_texture_filter_anisotropic")===!0){let j=t.get("EXT_texture_filter_anisotropic");if(M.magFilter===pe||M.minFilter!==er&&M.minFilter!==Hi||M.type===yn&&t.has("OES_texture_float_linear")===!1||o===!1&&M.type===Gi&&t.has("OES_texture_half_float_linear")===!1)return;(M.anisotropy>1||n.get(M).__currentAnisotropy)&&(i.texParameterf(R,j.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(M.anisotropy,s.getMaxAnisotropy())),n.get(M).__currentAnisotropy=M.anisotropy)}}function xt(R,M){let V=!1;R.__webglInit===void 0&&(R.__webglInit=!0,M.addEventListener("dispose",z));let j=M.source,Q=p.get(j);Q===void 0&&(Q={},p.set(j,Q));let tt=J(M);if(tt!==R.__cacheKey){Q[tt]===void 0&&(Q[tt]={texture:i.createTexture(),usedTimes:0},a.memory.textures++,V=!0),Q[tt].usedTimes++;let ft=Q[R.__cacheKey];ft!==void 0&&(Q[R.__cacheKey].usedTimes--,ft.usedTimes===0&&D(M)),R.__cacheKey=tt,R.__webglTexture=Q[tt].texture}return V}function zt(R,M,V){let j=i.TEXTURE_2D;(M.isDataArrayTexture||M.isCompressedArrayTexture)&&(j=i.TEXTURE_2D_ARRAY),M.isData3DTexture&&(j=i.TEXTURE_3D);let Q=xt(R,M),tt=M.source;e.bindTexture(j,R.__webglTexture,i.TEXTURE0+V);let ft=n.get(tt);if(tt.version!==ft.__version||Q===!0){e.activeTexture(i.TEXTURE0+V),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,M.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,M.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,M.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,i.NONE);let et=S(M)&&b(M.image)===!1,H=_(M.image,et,!1,h);H=ae(M,H);let mt=b(H)||o,dt=r.convert(M.format,M.colorSpace),pt=r.convert(M.type),ht=L(M.internalFormat,dt,pt,M.colorSpace);Et(j,M,mt);let ut,It=M.mipmaps,Ht=o&&M.isVideoTexture!==!0,C=ft.__version===void 0||Q===!0,st=y(M,H,mt);if(M.isDepthTexture)ht=i.DEPTH_COMPONENT,o?M.type===yn?ht=i.DEPTH_COMPONENT32F:M.type===xn?ht=i.DEPTH_COMPONENT24:M.type===Fn?ht=i.DEPTH24_STENCIL8:ht=i.DEPTH_COMPONENT16:M.type===yn&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),M.format===On&&ht===i.DEPTH_COMPONENT&&M.type!==go&&M.type!==xn&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),M.type=xn,pt=r.convert(M.type)),M.format===_i&&ht===i.DEPTH_COMPONENT&&(ht=i.DEPTH_STENCIL,M.type!==Fn&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),M.type=Fn,pt=r.convert(M.type))),C&&(Ht?e.texStorage2D(i.TEXTURE_2D,1,ht,H.width,H.height):e.texImage2D(i.TEXTURE_2D,0,ht,H.width,H.height,0,dt,pt,null));else if(M.isDataTexture)if(It.length>0&&mt){Ht&&C&&e.texStorage2D(i.TEXTURE_2D,st,ht,It[0].width,It[0].height);for(let k=0,nt=It.length;k>=1,nt>>=1}}else if(It.length>0&&mt){Ht&&C&&e.texStorage2D(i.TEXTURE_2D,st,ht,It[0].width,It[0].height);for(let k=0,nt=It.length;k0&&C++,e.texStorage2D(i.TEXTURE_CUBE_MAP,C,ut,H[0].width,H[0].height));for(let k=0;k<6;k++)if(et){It?e.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+k,0,0,0,H[k].width,H[k].height,pt,ht,H[k].data):e.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+k,0,ut,H[k].width,H[k].height,0,pt,ht,H[k].data);for(let nt=0;nt>tt),pt=Math.max(1,M.height>>tt);Q===i.TEXTURE_3D||Q===i.TEXTURE_2D_ARRAY?e.texImage3D(Q,tt,H,dt,pt,M.depth,0,ft,et,null):e.texImage2D(Q,tt,H,dt,pt,0,ft,et,null)}e.bindFramebuffer(i.FRAMEBUFFER,R),Vt(M)?u.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,j,Q,n.get(V).__webglTexture,0,Lt(M)):(Q===i.TEXTURE_2D||Q>=i.TEXTURE_CUBE_MAP_POSITIVE_X&&Q<=i.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&i.framebufferTexture2D(i.FRAMEBUFFER,j,Q,n.get(V).__webglTexture,tt),e.bindFramebuffer(i.FRAMEBUFFER,null)}function F(R,M,V){if(i.bindRenderbuffer(i.RENDERBUFFER,R),M.depthBuffer&&!M.stencilBuffer){let j=i.DEPTH_COMPONENT16;if(V||Vt(M)){let Q=M.depthTexture;Q&&Q.isDepthTexture&&(Q.type===yn?j=i.DEPTH_COMPONENT32F:Q.type===xn&&(j=i.DEPTH_COMPONENT24));let tt=Lt(M);Vt(M)?u.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,tt,j,M.width,M.height):i.renderbufferStorageMultisample(i.RENDERBUFFER,tt,j,M.width,M.height)}else i.renderbufferStorage(i.RENDERBUFFER,j,M.width,M.height);i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.RENDERBUFFER,R)}else if(M.depthBuffer&&M.stencilBuffer){let j=Lt(M);V&&Vt(M)===!1?i.renderbufferStorageMultisample(i.RENDERBUFFER,j,i.DEPTH24_STENCIL8,M.width,M.height):Vt(M)?u.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,j,i.DEPTH24_STENCIL8,M.width,M.height):i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_STENCIL,M.width,M.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.RENDERBUFFER,R)}else{let j=M.isWebGLMultipleRenderTargets===!0?M.texture:[M.texture];for(let Q=0;Q0){V.__webglFramebuffer[et]=[];for(let H=0;H0){V.__webglFramebuffer=[];for(let et=0;et0&&Vt(R)===!1){let et=tt?M:[M];V.__webglMultisampledFramebuffer=i.createFramebuffer(),V.__webglColorRenderbuffer=[],e.bindFramebuffer(i.FRAMEBUFFER,V.__webglMultisampledFramebuffer);for(let H=0;H0)for(let H=0;H0)for(let H=0;H0&&Vt(R)===!1){let M=R.isWebGLMultipleRenderTargets?R.texture:[R.texture],V=R.width,j=R.height,Q=i.COLOR_BUFFER_BIT,tt=[],ft=R.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,et=n.get(R),H=R.isWebGLMultipleRenderTargets===!0;if(H)for(let mt=0;mt0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&M.__useRenderToTexture!==!1}function re(R){let M=a.render.frame;g.get(R)!==M&&(g.set(R,M),R.update())}function ae(R,M){let V=R.colorSpace,j=R.format,Q=R.type;return R.isCompressedTexture===!0||R.format===Fr||V!==Ze&&V!==zn&&(V===Rt?o===!1?t.has("EXT_sRGB")===!0&&j===ke?(R.format=Fr,R.minFilter=Ie,R.generateMipmaps=!1):M=As.sRGBToLinear(M):(j!==ke||Q!==Sn)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",V)),M}this.allocateTextureUnit=q,this.resetTextureUnits=G,this.setTexture2D=K,this.setTexture2DArray=B,this.setTexture3D=Z,this.setTextureCube=ot,this.rebindTextures=Tt,this.setupRenderTarget=bt,this.updateRenderTargetMipmap=Xt,this.updateMultisampleRenderTarget=Ft,this.setupDepthRenderbuffer=yt,this.setupFrameBufferTexture=Pt,this.useMultisampledRTT=Vt}function kp(i,t,e){let n=e.isWebGL2;function s(r,a=zn){let o;if(r===Sn)return i.UNSIGNED_BYTE;if(r===dc)return i.UNSIGNED_SHORT_4_4_4_4;if(r===pc)return i.UNSIGNED_SHORT_5_5_5_1;if(r===Pl)return i.BYTE;if(r===Ll)return i.SHORT;if(r===go)return i.UNSIGNED_SHORT;if(r===fc)return i.INT;if(r===xn)return i.UNSIGNED_INT;if(r===yn)return i.FLOAT;if(r===Gi)return n?i.HALF_FLOAT:(o=t.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(r===Il)return i.ALPHA;if(r===ke)return i.RGBA;if(r===Ul)return i.LUMINANCE;if(r===Dl)return i.LUMINANCE_ALPHA;if(r===On)return i.DEPTH_COMPONENT;if(r===_i)return i.DEPTH_STENCIL;if(r===Fr)return o=t.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(r===Nl)return i.RED;if(r===mc)return i.RED_INTEGER;if(r===Fl)return i.RG;if(r===gc)return i.RG_INTEGER;if(r===_c)return i.RGBA_INTEGER;if(r===nr||r===ir||r===sr||r===rr)if(a===Rt)if(o=t.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(r===nr)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(r===ir)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(r===sr)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(r===rr)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=t.get("WEBGL_compressed_texture_s3tc"),o!==null){if(r===nr)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(r===ir)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(r===sr)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(r===rr)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(r===Jo||r===$o||r===Ko||r===Qo)if(o=t.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(r===Jo)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(r===$o)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(r===Ko)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(r===Qo)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(r===Ol)return o=t.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(r===jo||r===ta)if(o=t.get("WEBGL_compressed_texture_etc"),o!==null){if(r===jo)return a===Rt?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(r===ta)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(r===ea||r===na||r===ia||r===sa||r===ra||r===oa||r===aa||r===ca||r===la||r===ha||r===ua||r===fa||r===da||r===pa)if(o=t.get("WEBGL_compressed_texture_astc"),o!==null){if(r===ea)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(r===na)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(r===ia)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(r===sa)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(r===ra)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(r===oa)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(r===aa)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(r===ca)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(r===la)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(r===ha)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(r===ua)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(r===fa)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(r===da)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(r===pa)return a===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(r===or)if(o=t.get("EXT_texture_compression_bptc"),o!==null){if(r===or)return a===Rt?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(r===Bl||r===ma||r===ga||r===_a)if(o=t.get("EXT_texture_compression_rgtc"),o!==null){if(r===or)return o.COMPRESSED_RED_RGTC1_EXT;if(r===ma)return o.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(r===ga)return o.COMPRESSED_RED_GREEN_RGTC2_EXT;if(r===_a)return o.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return r===Fn?n?i.UNSIGNED_INT_24_8:(o=t.get("WEBGL_depth_texture"),o!==null?o.UNSIGNED_INT_24_8_WEBGL:null):i[r]!==void 0?i[r]:null}return{convert:s}}var jr=class extends Re{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}},ui=class extends ve{constructor(){super(),this.isGroup=!0,this.type="Group"}},Hp={type:"move"},ki=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new ui,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new ui,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new P,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new P),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new ui,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new P,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new P),this._grip}dispatchEvent(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){let e=this._hand;if(e)for(let n of t.hand.values())this._getHandJoint(e,n)}return this.dispatchEvent({type:"connected",data:t}),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(t,e,n){let s=null,r=null,a=null,o=this._targetRay,c=this._grip,l=this._hand;if(t&&e.session.visibilityState!=="visible-blurred"){if(l&&t.hand){a=!0;for(let x of t.hand.values()){let p=e.getJointPose(x,n),f=this._getHandJoint(l,x);p!==null&&(f.matrix.fromArray(p.transform.matrix),f.matrix.decompose(f.position,f.rotation,f.scale),f.matrixWorldNeedsUpdate=!0,f.jointRadius=p.radius),f.visible=p!==null}let h=l.joints["index-finger-tip"],d=l.joints["thumb-tip"],u=h.position.distanceTo(d.position),m=.02,g=.005;l.inputState.pinching&&u>m+g?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&u<=m-g&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else c!==null&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),r!==null&&(c.matrix.fromArray(r.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,r.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(r.linearVelocity)):c.hasLinearVelocity=!1,r.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(r.angularVelocity)):c.hasAngularVelocity=!1));o!==null&&(s=e.getPose(t.targetRaySpace,n),s===null&&r!==null&&(s=r),s!==null&&(o.matrix.fromArray(s.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,s.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(s.linearVelocity)):o.hasLinearVelocity=!1,s.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(s.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(Hp)))}return o!==null&&(o.visible=s!==null),c!==null&&(c.visible=r!==null),l!==null&&(l.visible=a!==null),this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){let n=new ui;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}},to=class extends ge{constructor(t,e,n,s,r,a,o,c,l,h){if(h=h!==void 0?h:On,h!==On&&h!==_i)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===On&&(n=xn),n===void 0&&h===_i&&(n=Fn),super(null,s,r,a,o,c,h,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=o!==void 0?o:pe,this.minFilter=c!==void 0?c:pe,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){let e=super.toJSON(t);return this.compareFunction!==null&&(e.compareFunction=this.compareFunction),e}},eo=class extends bn{constructor(t,e){super();let n=this,s=null,r=1,a=null,o="local-floor",c=1,l=null,h=null,d=null,u=null,m=null,g=null,x=e.getContextAttributes(),p=null,f=null,v=[],_=[],b=new Re;b.layers.enable(1),b.viewport=new jt;let S=new Re;S.layers.enable(2),S.viewport=new jt;let T=[b,S],A=new jr;A.layers.enable(1),A.layers.enable(2);let L=null,y=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(B){let Z=v[B];return Z===void 0&&(Z=new ki,v[B]=Z),Z.getTargetRaySpace()},this.getControllerGrip=function(B){let Z=v[B];return Z===void 0&&(Z=new ki,v[B]=Z),Z.getGripSpace()},this.getHand=function(B){let Z=v[B];return Z===void 0&&(Z=new ki,v[B]=Z),Z.getHandSpace()};function w(B){let Z=_.indexOf(B.inputSource);if(Z===-1)return;let ot=v[Z];ot!==void 0&&(ot.update(B.inputSource,B.frame,l||a),ot.dispatchEvent({type:B.type,data:B.inputSource}))}function z(){s.removeEventListener("select",w),s.removeEventListener("selectstart",w),s.removeEventListener("selectend",w),s.removeEventListener("squeeze",w),s.removeEventListener("squeezestart",w),s.removeEventListener("squeezeend",w),s.removeEventListener("end",z),s.removeEventListener("inputsourceschange",Y);for(let B=0;B=0&&(_[at]=null,v[at].disconnect(ot))}for(let Z=0;Z=_.length){_.push(ot),at=_t;break}else if(_[_t]===null){_[_t]=ot,at=_t;break}if(at===-1)break}let ct=v[at];ct&&ct.connect(ot)}}let I=new P,D=new P;function O(B,Z,ot){I.setFromMatrixPosition(Z.matrixWorld),D.setFromMatrixPosition(ot.matrixWorld);let at=I.distanceTo(D),ct=Z.projectionMatrix.elements,_t=ot.projectionMatrix.elements,Et=ct[14]/(ct[10]-1),xt=ct[14]/(ct[10]+1),zt=(ct[9]+1)/ct[5],xe=(ct[9]-1)/ct[5],Pt=(ct[8]-1)/ct[0],F=(_t[8]+1)/_t[0],oe=Et*Pt,yt=Et*F,Tt=at/(-Pt+F),bt=Tt*-Pt;Z.matrixWorld.decompose(B.position,B.quaternion,B.scale),B.translateX(bt),B.translateZ(Tt),B.matrixWorld.compose(B.position,B.quaternion,B.scale),B.matrixWorldInverse.copy(B.matrixWorld).invert();let Xt=Et+Tt,Ft=xt+Tt,Lt=oe-bt,Vt=yt+(at-bt),re=zt*xt/Ft*Xt,ae=xe*xt/Ft*Xt;B.projectionMatrix.makePerspective(Lt,Vt,re,ae,Xt,Ft),B.projectionMatrixInverse.copy(B.projectionMatrix).invert()}function $(B,Z){Z===null?B.matrixWorld.copy(B.matrix):B.matrixWorld.multiplyMatrices(Z.matrixWorld,B.matrix),B.matrixWorldInverse.copy(B.matrixWorld).invert()}this.updateCamera=function(B){if(s===null)return;A.near=S.near=b.near=B.near,A.far=S.far=b.far=B.far,(L!==A.near||y!==A.far)&&(s.updateRenderState({depthNear:A.near,depthFar:A.far}),L=A.near,y=A.far);let Z=B.parent,ot=A.cameras;$(A,Z);for(let at=0;at0&&(p.alphaTest.value=f.alphaTest);let v=t.get(f).envMap;if(v&&(p.envMap.value=v,p.flipEnvMap.value=v.isCubeTexture&&v.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=f.reflectivity,p.ior.value=f.ior,p.refractionRatio.value=f.refractionRatio),f.lightMap){p.lightMap.value=f.lightMap;let _=i._useLegacyLights===!0?Math.PI:1;p.lightMapIntensity.value=f.lightMapIntensity*_,e(f.lightMap,p.lightMapTransform)}f.aoMap&&(p.aoMap.value=f.aoMap,p.aoMapIntensity.value=f.aoMapIntensity,e(f.aoMap,p.aoMapTransform))}function a(p,f){p.diffuse.value.copy(f.color),p.opacity.value=f.opacity,f.map&&(p.map.value=f.map,e(f.map,p.mapTransform))}function o(p,f){p.dashSize.value=f.dashSize,p.totalSize.value=f.dashSize+f.gapSize,p.scale.value=f.scale}function c(p,f,v,_){p.diffuse.value.copy(f.color),p.opacity.value=f.opacity,p.size.value=f.size*v,p.scale.value=_*.5,f.map&&(p.map.value=f.map,e(f.map,p.uvTransform)),f.alphaMap&&(p.alphaMap.value=f.alphaMap,e(f.alphaMap,p.alphaMapTransform)),f.alphaTest>0&&(p.alphaTest.value=f.alphaTest)}function l(p,f){p.diffuse.value.copy(f.color),p.opacity.value=f.opacity,p.rotation.value=f.rotation,f.map&&(p.map.value=f.map,e(f.map,p.mapTransform)),f.alphaMap&&(p.alphaMap.value=f.alphaMap,e(f.alphaMap,p.alphaMapTransform)),f.alphaTest>0&&(p.alphaTest.value=f.alphaTest)}function h(p,f){p.specular.value.copy(f.specular),p.shininess.value=Math.max(f.shininess,1e-4)}function d(p,f){f.gradientMap&&(p.gradientMap.value=f.gradientMap)}function u(p,f){p.metalness.value=f.metalness,f.metalnessMap&&(p.metalnessMap.value=f.metalnessMap,e(f.metalnessMap,p.metalnessMapTransform)),p.roughness.value=f.roughness,f.roughnessMap&&(p.roughnessMap.value=f.roughnessMap,e(f.roughnessMap,p.roughnessMapTransform)),t.get(f).envMap&&(p.envMapIntensity.value=f.envMapIntensity)}function m(p,f,v){p.ior.value=f.ior,f.sheen>0&&(p.sheenColor.value.copy(f.sheenColor).multiplyScalar(f.sheen),p.sheenRoughness.value=f.sheenRoughness,f.sheenColorMap&&(p.sheenColorMap.value=f.sheenColorMap,e(f.sheenColorMap,p.sheenColorMapTransform)),f.sheenRoughnessMap&&(p.sheenRoughnessMap.value=f.sheenRoughnessMap,e(f.sheenRoughnessMap,p.sheenRoughnessMapTransform))),f.clearcoat>0&&(p.clearcoat.value=f.clearcoat,p.clearcoatRoughness.value=f.clearcoatRoughness,f.clearcoatMap&&(p.clearcoatMap.value=f.clearcoatMap,e(f.clearcoatMap,p.clearcoatMapTransform)),f.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=f.clearcoatRoughnessMap,e(f.clearcoatRoughnessMap,p.clearcoatRoughnessMapTransform)),f.clearcoatNormalMap&&(p.clearcoatNormalMap.value=f.clearcoatNormalMap,e(f.clearcoatNormalMap,p.clearcoatNormalMapTransform),p.clearcoatNormalScale.value.copy(f.clearcoatNormalScale),f.side===he&&p.clearcoatNormalScale.value.negate())),f.iridescence>0&&(p.iridescence.value=f.iridescence,p.iridescenceIOR.value=f.iridescenceIOR,p.iridescenceThicknessMinimum.value=f.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=f.iridescenceThicknessRange[1],f.iridescenceMap&&(p.iridescenceMap.value=f.iridescenceMap,e(f.iridescenceMap,p.iridescenceMapTransform)),f.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=f.iridescenceThicknessMap,e(f.iridescenceThicknessMap,p.iridescenceThicknessMapTransform))),f.transmission>0&&(p.transmission.value=f.transmission,p.transmissionSamplerMap.value=v.texture,p.transmissionSamplerSize.value.set(v.width,v.height),f.transmissionMap&&(p.transmissionMap.value=f.transmissionMap,e(f.transmissionMap,p.transmissionMapTransform)),p.thickness.value=f.thickness,f.thicknessMap&&(p.thicknessMap.value=f.thicknessMap,e(f.thicknessMap,p.thicknessMapTransform)),p.attenuationDistance.value=f.attenuationDistance,p.attenuationColor.value.copy(f.attenuationColor)),f.anisotropy>0&&(p.anisotropyVector.value.set(f.anisotropy*Math.cos(f.anisotropyRotation),f.anisotropy*Math.sin(f.anisotropyRotation)),f.anisotropyMap&&(p.anisotropyMap.value=f.anisotropyMap,e(f.anisotropyMap,p.anisotropyMapTransform))),p.specularIntensity.value=f.specularIntensity,p.specularColor.value.copy(f.specularColor),f.specularColorMap&&(p.specularColorMap.value=f.specularColorMap,e(f.specularColorMap,p.specularColorMapTransform)),f.specularIntensityMap&&(p.specularIntensityMap.value=f.specularIntensityMap,e(f.specularIntensityMap,p.specularIntensityMapTransform))}function g(p,f){f.matcap&&(p.matcap.value=f.matcap)}function x(p,f){let v=t.get(f).light;p.referencePosition.value.setFromMatrixPosition(v.matrixWorld),p.nearDistance.value=v.shadow.camera.near,p.farDistance.value=v.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:s}}function Wp(i,t,e,n){let s={},r={},a=[],o=e.isWebGL2?i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0;function c(v,_){let b=_.program;n.uniformBlockBinding(v,b)}function l(v,_){let b=s[v.id];b===void 0&&(g(v),b=h(v),s[v.id]=b,v.addEventListener("dispose",p));let S=_.program;n.updateUBOMapping(v,S);let T=t.render.frame;r[v.id]!==T&&(u(v),r[v.id]=T)}function h(v){let _=d();v.__bindingPointIndex=_;let b=i.createBuffer(),S=v.__size,T=v.usage;return i.bindBuffer(i.UNIFORM_BUFFER,b),i.bufferData(i.UNIFORM_BUFFER,S,T),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,_,b),b}function d(){for(let v=0;v0){T=b%S;let Y=S-T;T!==0&&Y-w.boundary<0&&(b+=S-T,y.__offset=b)}b+=w.storage}return T=b%S,T>0&&(b+=S-T),v.__size=b,v.__cache={},this}function x(v){let _={boundary:0,storage:0};return typeof v=="number"?(_.boundary=4,_.storage=4):v.isVector2?(_.boundary=8,_.storage=8):v.isVector3||v.isColor?(_.boundary=16,_.storage=12):v.isVector4?(_.boundary=16,_.storage=16):v.isMatrix3?(_.boundary=48,_.storage=48):v.isMatrix4?(_.boundary=64,_.storage=64):v.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",v),_}function p(v){let _=v.target;_.removeEventListener("dispose",p);let b=a.indexOf(_.__bindingPointIndex);a.splice(b,1),i.deleteBuffer(s[_.id]),delete s[_.id],delete r[_.id]}function f(){for(let v in s)i.deleteBuffer(s[v]);a=[],s={},r={}}return{bind:c,update:l,dispose:f}}function Xp(){let i=ws("canvas");return i.style.display="block",i}var no=class{constructor(t={}){let{canvas:e=Xp(),context:n=null,depth:s=!0,stencil:r=!0,alpha:a=!1,antialias:o=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:l=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:d=!1}=t;this.isWebGLRenderer=!0;let u;n!==null?u=n.getContextAttributes().alpha:u=a;let m=new Uint32Array(4),g=new Int32Array(4),x=null,p=null,f=[],v=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputColorSpace=Rt,this._useLegacyLights=!1,this.toneMapping=Mn,this.toneMappingExposure=1;let _=this,b=!1,S=0,T=0,A=null,L=-1,y=null,w=new jt,z=new jt,Y=null,I=new kt(0),D=0,O=e.width,$=e.height,G=1,q=null,J=null,K=new jt(0,0,O,$),B=new jt(0,0,O,$),Z=!1,ot=new Fs,at=!1,ct=!1,_t=null,Et=new Gt,xt=new Nt,zt=new P,xe={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Pt(){return A===null?G:1}let F=n;function oe(E,N){for(let X=0;X0?p=v[v.length-1]:p=null,f.pop(),f.length>0?x=f[f.length-1]:x=null};function Uo(E,N,X,U){if(E.visible===!1)return;if(E.layers.test(N.layers)){if(E.isGroup)X=E.renderOrder;else if(E.isLOD)E.autoUpdate===!0&&E.update(N);else if(E.isLight)p.pushLight(E),E.castShadow&&p.pushShadow(E);else if(E.isSprite){if(!E.frustumCulled||ot.intersectsSprite(E)){U&&zt.setFromMatrixPosition(E.matrixWorld).applyMatrix4(Et);let gt=M.update(E),Mt=E.material;Mt.visible&&x.push(E,gt,Mt,X,zt.z,null)}}else if((E.isMesh||E.isLine||E.isPoints)&&(!E.frustumCulled||ot.intersectsObject(E))){let gt=M.update(E),Mt=E.material;if(U&&(E.boundingSphere!==void 0?(E.boundingSphere===null&&E.computeBoundingSphere(),zt.copy(E.boundingSphere.center)):(gt.boundingSphere===null&>.computeBoundingSphere(),zt.copy(gt.boundingSphere.center)),zt.applyMatrix4(E.matrixWorld).applyMatrix4(Et)),Array.isArray(Mt)){let St=gt.groups;for(let Ut=0,vt=St.length;Ut0&&Wc(W,lt,N,X),U&&bt.viewport(w.copy(U)),W.length>0&&Qi(W,N,X),lt.length>0&&Qi(lt,N,X),gt.length>0&&Qi(gt,N,X),bt.buffers.depth.setTest(!0),bt.buffers.depth.setMask(!0),bt.buffers.color.setMask(!0),bt.setPolygonOffset(!1)}function Wc(E,N,X,U){let W=Tt.isWebGL2;_t===null&&(_t=new cn(1,1,{generateMipmaps:!0,type:yt.has("EXT_color_buffer_half_float")?Gi:Sn,minFilter:Hi,samples:W?4:0})),_.getDrawingBufferSize(xt),W?_t.setSize(xt.x,xt.y):_t.setSize(Br(xt.x),Br(xt.y));let lt=_.getRenderTarget();_.setRenderTarget(_t),_.getClearColor(I),D=_.getClearAlpha(),D<1&&_.setClearColor(16777215,.5),_.clear();let gt=_.toneMapping;_.toneMapping=Mn,Qi(E,X,U),Lt.updateMultisampleRenderTarget(_t),Lt.updateRenderTargetMipmap(_t);let Mt=!1;for(let St=0,Ut=N.length;St0),wt=!!X.morphAttributes.position,Yt=!!X.morphAttributes.normal,Zt=!!X.morphAttributes.color,Pe=Mn;U.toneMapped&&(A===null||A.isXRRenderTarget===!0)&&(Pe=_.toneMapping);let Ke=X.morphAttributes.position||X.morphAttributes.normal||X.morphAttributes.color,$t=Ke!==void 0?Ke.length:0,Dt=Ft.get(U),Ks=p.state.lights;if(at===!0&&(ct===!0||E!==y)){let Te=E===y&&U.id===L;ft.setState(U,E,Te)}let Kt=!1;U.version===Dt.__version?(Dt.needsLights&&Dt.lightsStateVersion!==Ks.state.version||Dt.outputColorSpace!==Mt||W.isInstancedMesh&&Dt.instancing===!1||!W.isInstancedMesh&&Dt.instancing===!0||W.isSkinnedMesh&&Dt.skinning===!1||!W.isSkinnedMesh&&Dt.skinning===!0||W.isInstancedMesh&&Dt.instancingColor===!0&&W.instanceColor===null||W.isInstancedMesh&&Dt.instancingColor===!1&&W.instanceColor!==null||Dt.envMap!==St||U.fog===!0&&Dt.fog!==lt||Dt.numClippingPlanes!==void 0&&(Dt.numClippingPlanes!==ft.numPlanes||Dt.numIntersection!==ft.numIntersection)||Dt.vertexAlphas!==Ut||Dt.vertexTangents!==vt||Dt.morphTargets!==wt||Dt.morphNormals!==Yt||Dt.morphColors!==Zt||Dt.toneMapping!==Pe||Tt.isWebGL2===!0&&Dt.morphTargetsCount!==$t)&&(Kt=!0):(Kt=!0,Dt.__version=U.version);let Rn=Dt.currentProgram;Kt===!0&&(Rn=ji(U,N,W));let Oo=!1,Ui=!1,Qs=!1,fe=Rn.getUniforms(),Cn=Dt.uniforms;if(bt.useProgram(Rn.program)&&(Oo=!0,Ui=!0,Qs=!0),U.id!==L&&(L=U.id,Ui=!0),Oo||y!==E){if(fe.setValue(F,"projectionMatrix",E.projectionMatrix),Tt.logarithmicDepthBuffer&&fe.setValue(F,"logDepthBufFC",2/(Math.log(E.far+1)/Math.LN2)),y!==E&&(y=E,Ui=!0,Qs=!0),U.isShaderMaterial||U.isMeshPhongMaterial||U.isMeshToonMaterial||U.isMeshStandardMaterial||U.envMap){let Te=fe.map.cameraPosition;Te!==void 0&&Te.setValue(F,zt.setFromMatrixPosition(E.matrixWorld))}(U.isMeshPhongMaterial||U.isMeshToonMaterial||U.isMeshLambertMaterial||U.isMeshBasicMaterial||U.isMeshStandardMaterial||U.isShaderMaterial)&&fe.setValue(F,"isOrthographic",E.isOrthographicCamera===!0),(U.isMeshPhongMaterial||U.isMeshToonMaterial||U.isMeshLambertMaterial||U.isMeshBasicMaterial||U.isMeshStandardMaterial||U.isShaderMaterial||U.isShadowMaterial||W.isSkinnedMesh)&&fe.setValue(F,"viewMatrix",E.matrixWorldInverse)}if(W.isSkinnedMesh){fe.setOptional(F,W,"bindMatrix"),fe.setOptional(F,W,"bindMatrixInverse");let Te=W.skeleton;Te&&(Tt.floatVertexTextures?(Te.boneTexture===null&&Te.computeBoneTexture(),fe.setValue(F,"boneTexture",Te.boneTexture,Lt),fe.setValue(F,"boneTextureSize",Te.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}let js=X.morphAttributes;if((js.position!==void 0||js.normal!==void 0||js.color!==void 0&&Tt.isWebGL2===!0)&&mt.update(W,X,Rn),(Ui||Dt.receiveShadow!==W.receiveShadow)&&(Dt.receiveShadow=W.receiveShadow,fe.setValue(F,"receiveShadow",W.receiveShadow)),U.isMeshGouraudMaterial&&U.envMap!==null&&(Cn.envMap.value=St,Cn.flipEnvMap.value=St.isCubeTexture&&St.isRenderTargetTexture===!1?-1:1),Ui&&(fe.setValue(F,"toneMappingExposure",_.toneMappingExposure),Dt.needsLights&&qc(Cn,Qs),lt&&U.fog===!0&&j.refreshFogUniforms(Cn,lt),j.refreshMaterialUniforms(Cn,U,G,$,_t),pi.upload(F,Dt.uniformsList,Cn,Lt)),U.isShaderMaterial&&U.uniformsNeedUpdate===!0&&(pi.upload(F,Dt.uniformsList,Cn,Lt),U.uniformsNeedUpdate=!1),U.isSpriteMaterial&&fe.setValue(F,"center",W.center),fe.setValue(F,"modelViewMatrix",W.modelViewMatrix),fe.setValue(F,"normalMatrix",W.normalMatrix),fe.setValue(F,"modelMatrix",W.matrixWorld),U.isShaderMaterial||U.isRawShaderMaterial){let Te=U.uniformsGroups;for(let tr=0,Zc=Te.length;tr0&&Lt.useMultisampledRTT(E)===!1?W=Ft.get(E).__webglMultisampledFramebuffer:Array.isArray(vt)?W=vt[X]:W=vt,w.copy(E.viewport),z.copy(E.scissor),Y=E.scissorTest}else w.copy(K).multiplyScalar(G).floor(),z.copy(B).multiplyScalar(G).floor(),Y=Z;if(bt.bindFramebuffer(F.FRAMEBUFFER,W)&&Tt.drawBuffers&&U&&bt.drawBuffers(E,W),bt.viewport(w),bt.scissor(z),bt.setScissorTest(Y),lt){let St=Ft.get(E.texture);F.framebufferTexture2D(F.FRAMEBUFFER,F.COLOR_ATTACHMENT0,F.TEXTURE_CUBE_MAP_POSITIVE_X+N,St.__webglTexture,X)}else if(gt){let St=Ft.get(E.texture),Ut=N||0;F.framebufferTextureLayer(F.FRAMEBUFFER,F.COLOR_ATTACHMENT0,St.__webglTexture,X||0,Ut)}L=-1},this.readRenderTargetPixels=function(E,N,X,U,W,lt,gt){if(!(E&&E.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Mt=Ft.get(E).__webglFramebuffer;if(E.isWebGLCubeRenderTarget&>!==void 0&&(Mt=Mt[gt]),Mt){bt.bindFramebuffer(F.FRAMEBUFFER,Mt);try{let St=E.texture,Ut=St.format,vt=St.type;if(Ut!==ke&&ht.convert(Ut)!==F.getParameter(F.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let wt=vt===Gi&&(yt.has("EXT_color_buffer_half_float")||Tt.isWebGL2&&yt.has("EXT_color_buffer_float"));if(vt!==Sn&&ht.convert(vt)!==F.getParameter(F.IMPLEMENTATION_COLOR_READ_TYPE)&&!(vt===yn&&(Tt.isWebGL2||yt.has("OES_texture_float")||yt.has("WEBGL_color_buffer_float")))&&!wt){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}N>=0&&N<=E.width-U&&X>=0&&X<=E.height-W&&F.readPixels(N,X,U,W,ht.convert(Ut),ht.convert(vt),lt)}finally{let St=A!==null?Ft.get(A).__webglFramebuffer:null;bt.bindFramebuffer(F.FRAMEBUFFER,St)}}},this.copyFramebufferToTexture=function(E,N,X=0){let U=Math.pow(2,-X),W=Math.floor(N.image.width*U),lt=Math.floor(N.image.height*U);Lt.setTexture2D(N,0),F.copyTexSubImage2D(F.TEXTURE_2D,X,0,0,E.x,E.y,W,lt),bt.unbindTexture()},this.copyTextureToTexture=function(E,N,X,U=0){let W=N.image.width,lt=N.image.height,gt=ht.convert(X.format),Mt=ht.convert(X.type);Lt.setTexture2D(X,0),F.pixelStorei(F.UNPACK_FLIP_Y_WEBGL,X.flipY),F.pixelStorei(F.UNPACK_PREMULTIPLY_ALPHA_WEBGL,X.premultiplyAlpha),F.pixelStorei(F.UNPACK_ALIGNMENT,X.unpackAlignment),N.isDataTexture?F.texSubImage2D(F.TEXTURE_2D,U,E.x,E.y,W,lt,gt,Mt,N.image.data):N.isCompressedTexture?F.compressedTexSubImage2D(F.TEXTURE_2D,U,E.x,E.y,N.mipmaps[0].width,N.mipmaps[0].height,gt,N.mipmaps[0].data):F.texSubImage2D(F.TEXTURE_2D,U,E.x,E.y,gt,Mt,N.image),U===0&&X.generateMipmaps&&F.generateMipmap(F.TEXTURE_2D),bt.unbindTexture()},this.copyTextureToTexture3D=function(E,N,X,U,W=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let lt=E.max.x-E.min.x+1,gt=E.max.y-E.min.y+1,Mt=E.max.z-E.min.z+1,St=ht.convert(U.format),Ut=ht.convert(U.type),vt;if(U.isData3DTexture)Lt.setTexture3D(U,0),vt=F.TEXTURE_3D;else if(U.isDataArrayTexture)Lt.setTexture2DArray(U,0),vt=F.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}F.pixelStorei(F.UNPACK_FLIP_Y_WEBGL,U.flipY),F.pixelStorei(F.UNPACK_PREMULTIPLY_ALPHA_WEBGL,U.premultiplyAlpha),F.pixelStorei(F.UNPACK_ALIGNMENT,U.unpackAlignment);let wt=F.getParameter(F.UNPACK_ROW_LENGTH),Yt=F.getParameter(F.UNPACK_IMAGE_HEIGHT),Zt=F.getParameter(F.UNPACK_SKIP_PIXELS),Pe=F.getParameter(F.UNPACK_SKIP_ROWS),Ke=F.getParameter(F.UNPACK_SKIP_IMAGES),$t=X.isCompressedTexture?X.mipmaps[0]:X.image;F.pixelStorei(F.UNPACK_ROW_LENGTH,$t.width),F.pixelStorei(F.UNPACK_IMAGE_HEIGHT,$t.height),F.pixelStorei(F.UNPACK_SKIP_PIXELS,E.min.x),F.pixelStorei(F.UNPACK_SKIP_ROWS,E.min.y),F.pixelStorei(F.UNPACK_SKIP_IMAGES,E.min.z),X.isDataTexture||X.isData3DTexture?F.texSubImage3D(vt,W,N.x,N.y,N.z,lt,gt,Mt,St,Ut,$t.data):X.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),F.compressedTexSubImage3D(vt,W,N.x,N.y,N.z,lt,gt,Mt,St,$t.data)):F.texSubImage3D(vt,W,N.x,N.y,N.z,lt,gt,Mt,St,Ut,$t),F.pixelStorei(F.UNPACK_ROW_LENGTH,wt),F.pixelStorei(F.UNPACK_IMAGE_HEIGHT,Yt),F.pixelStorei(F.UNPACK_SKIP_PIXELS,Zt),F.pixelStorei(F.UNPACK_SKIP_ROWS,Pe),F.pixelStorei(F.UNPACK_SKIP_IMAGES,Ke),W===0&&U.generateMipmaps&&F.generateMipmap(vt),bt.unbindTexture()},this.initTexture=function(E){E.isCubeTexture?Lt.setTextureCube(E,0):E.isData3DTexture?Lt.setTexture3D(E,0):E.isDataArrayTexture||E.isCompressedArrayTexture?Lt.setTexture2DArray(E,0):Lt.setTexture2D(E,0),bt.unbindTexture()},this.resetState=function(){S=0,T=0,A=null,bt.reset(),ut.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return on}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(t){console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!t}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===Rt?Bn:xc}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Bn?Rt:Ze}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}},io=class extends no{};io.prototype.isWebGL1Renderer=!0;function _n(i,t,e){return Rc(i)?new i.constructor(i.subarray(t,e!==void 0?e:i.length)):i.slice(t,e)}function Ms(i,t,e){return!i||!e&&i.constructor===t?i:typeof t.BYTES_PER_ELEMENT=="number"?new t(i):Array.prototype.slice.call(i)}function Rc(i){return ArrayBuffer.isView(i)&&!(i instanceof DataView)}var Mi=class{constructor(t,e,n,s){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=s!==void 0?s:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){let e=this.parameterPositions,n=this._cachedIndex,s=e[n],r=e[n-1];n:{t:{let a;e:{i:if(!(t=r)){let o=e[1];t=r)break t}a=n,n=0;break e}break n}for(;n>>1;te;)--a;if(++a,r!==0||a!==s){r>=a&&(a=Math.max(a,1),r=a-1);let o=this.getValueSize();this.times=_n(n,r,a),this.values=_n(this.values,r*o,a*o)}return this}validate(){let t=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);let n=this.times,s=this.values,r=n.length;r===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let a=null;for(let o=0;o!==r;o++){let c=n[o];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,c),t=!1;break}if(a!==null&&a>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,c,a),t=!1;break}a=c}if(s!==void 0&&Rc(s))for(let o=0,c=s.length;o!==c;++o){let l=s[o];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,l),t=!1;break}}return t}optimize(){let t=_n(this.times),e=_n(this.values),n=this.getValueSize(),s=this.getInterpolation()===ar,r=t.length-1,a=1;for(let o=1;o0){t[a]=t[r];for(let o=r*n,c=a*n,l=0;l!==n;++l)e[c+l]=e[o+l];++a}return a!==t.length?(this.times=_n(t,0,a),this.values=_n(e,0,a*n)):(this.times=t,this.values=e),this}clone(){let t=_n(this.times,0),e=_n(this.values,0),n=this.constructor,s=new n(this.name,t,e);return s.createInterpolant=this.createInterpolant,s}};We.prototype.TimeBufferType=Float32Array;We.prototype.ValueBufferType=Float32Array;We.prototype.DefaultInterpolation=Es;var Hn=class extends We{};Hn.prototype.ValueTypeName="bool";Hn.prototype.ValueBufferType=Array;Hn.prototype.DefaultInterpolation=bs;Hn.prototype.InterpolantFactoryMethodLinear=void 0;Hn.prototype.InterpolantFactoryMethodSmooth=void 0;var ao=class extends We{};ao.prototype.ValueTypeName="color";var co=class extends We{};co.prototype.ValueTypeName="number";var lo=class extends Mi{constructor(t,e,n,s){super(t,e,n,s)}interpolate_(t,e,n,s){let r=this.resultBuffer,a=this.sampleValues,o=this.valueSize,c=(n-e)/(s-e),l=t*o;for(let h=l+o;l!==h;l+=4)En.slerpFlat(r,0,a,l-o,a,l,c);return r}},Xi=class extends We{InterpolantFactoryMethodLinear(t){return new lo(this.times,this.values,this.getValueSize(),t)}};Xi.prototype.ValueTypeName="quaternion";Xi.prototype.DefaultInterpolation=Es;Xi.prototype.InterpolantFactoryMethodSmooth=void 0;var Gn=class extends We{};Gn.prototype.ValueTypeName="string";Gn.prototype.ValueBufferType=Array;Gn.prototype.DefaultInterpolation=bs;Gn.prototype.InterpolantFactoryMethodLinear=void 0;Gn.prototype.InterpolantFactoryMethodSmooth=void 0;var ho=class extends We{};ho.prototype.ValueTypeName="vector";var uo=class{constructor(t,e,n){let s=this,r=!1,a=0,o=0,c,l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(h){o++,r===!1&&s.onStart!==void 0&&s.onStart(h,a,o),r=!0},this.itemEnd=function(h){a++,s.onProgress!==void 0&&s.onProgress(h,a,o),a===o&&(r=!1,s.onLoad!==void 0&&s.onLoad())},this.itemError=function(h){s.onError!==void 0&&s.onError(h)},this.resolveURL=function(h){return c?c(h):h},this.setURLModifier=function(h){return c=h,this},this.addHandler=function(h,d){return l.push(h,d),this},this.removeHandler=function(h){let d=l.indexOf(h);return d!==-1&&l.splice(d,2),this},this.getHandler=function(h){for(let d=0,u=l.length;de&&(e=s,t=n)}return t}function Mo(i,t){t.set(i)}function So(i,t,e){let n,s;for(let r=0;r<3;r++){let a=r+3;n=i[r],s=t[r],e[r]=ns?n:s}}function Yi(i,t,e){for(let n=0;n<3;n++){let s=t[i+2*n],r=t[i+2*n+1],a=s-r,o=s+r;ae[n+3]&&(e[n+3]=o)}}function bi(i){let t=i[3]-i[0],e=i[4]-i[1],n=i[5]-i[2];return 2*(t*e+e*n+n*t)}function im(i,t){if(!i.index){let e=i.attributes.position.count,n=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,s;e>65535?s=new Uint32Array(new n(4*e)):s=new Uint16Array(new n(2*e)),i.setIndex(new te(s,1));for(let r=0;rs-r);for(let s=0;sc&&(c=A),f&&bg&&(g=b);let L=i[v+2],y=i[v+3],w=L-y,z=L+y;wl&&(l=z),f&&Lx&&(x=L);let Y=i[v+4],I=i[v+5],D=Y-I,O=Y+I;Dh&&(h=O),f&&Yp&&(p=Y)}n[0]=r,n[1]=a,n[2]=o,n[3]=c,n[4]=l,n[5]=h,f&&(s[0]=d,s[1]=u,s[2]=m,s[3]=g,s[4]=x,s[5]=p)}function rm(i,t,e,n){let s=1/0,r=1/0,a=1/0,o=-1/0,c=-1/0,l=-1/0;for(let h=t*6,d=(t+e)*6;ho&&(o=u);let m=i[h+2];mc&&(c=m);let g=i[h+4];gl&&(l=g)}n[0]=s,n[1]=r,n[2]=a,n[3]=o,n[4]=c,n[5]=l}function om(i,t,e,n,s){let r=e,a=e+n-1,o=s.pos,c=s.axis*2;for(;;){for(;r<=a&&t[r*6+c]=o;)a--;if(ri.candidate-t.candidate,Tn=new Array(hn).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),Vs=new Float32Array(6);function cm(i,t,e,n,s,r){let a=-1,o=0;if(r===0)a=vo(t),a!==-1&&(o=(t[a]+t[a+3])/2);else if(r===1)a=vo(i),a!==-1&&(o=lm(e,n,s,a));else if(r===2){let c=bi(i),l=1.25*s,h=n*6,d=(n+s)*6;for(let u=0;u<3;u++){let m=t[u],p=(t[u+3]-m)/hn;if(s=A.candidate?Yi(b,e,A.rightCacheBounds):(Yi(b,e,A.leftCacheBounds),A.count++)}}for(let b=0;b<_;b++){let S=f[b],T=S.count,A=s-S.count,L=S.leftCacheBounds,y=S.rightCacheBounds,w=0;T!==0&&(w=bi(L)/c);let z=0;A!==0&&(z=bi(y)/c);let Y=1+1.25*(w*T+z*A);Y=hn&&(T=hn-1);let A=Tn[T];A.count++,Yi(_,e,A.bounds)}let f=Tn[hn-1];Mo(f.bounds,f.rightCacheBounds);for(let _=hn-2;_>=0;_--){let b=Tn[_],S=Tn[_+1];So(b.bounds,S.rightCacheBounds,b.rightCacheBounds)}let v=0;for(let _=0;_T&&(T=_),b>T&&(T=b);let A=(T-S)/2,L=f*2;r[m+L+0]=S+A,r[m+L+1]=A+(Math.abs(S)+A)*Cc,St[f+3]&&(t[f+3]=T)}}return r}function um(i,t){function e(f){u&&u(f/m)}function n(f,v,_,b=null,S=0){if(!g&&S>=c&&(g=!0,l&&(console.warn(`MeshBVH: Max depth of ${c} reached when generating BVH. Consider increasing maxDepth.`),console.warn(i))),_<=h||S>=c)return e(v+_),f.offset=v,f.count=_,f;let T=cm(f.boundingData,b,a,v,_,d);if(T.axis===-1)return e(v+_),f.offset=v,f.count=_,f;let A=om(o,a,v,_,T);if(A===v||A===v+_)e(v+_),f.offset=v,f.count=_;else{f.splitAxis=T.axis;let L=new Wn,y=v,w=A-v;f.left=L,L.boundingData=new Float32Array(6),Eo(a,y,w,L.boundingData,r),n(L,y,w,r,S+1);let z=new Wn,Y=A,I=_-w;f.right=z,z.boundingData=new Float32Array(6),Eo(a,Y,I,z.boundingData,r),n(z,Y,I,r,S+1)}return f}im(i,t);let s=new Float32Array(6),r=new Float32Array(6),a=hm(i,s),o=i.index.array,c=t.maxDepth,l=t.verbose,h=t.maxLeafTris,d=t.strategy,u=t.onProgress,m=i.index.count/3,g=!1,x=[],p=sm(i);if(p.length===1){let f=p[0],v=new Wn;v.boundingData=s,rm(a,f.offset,f.count,r),n(v,f.offset,f.count,r),x.push(v)}else for(let f of p){let v=new Wn;v.boundingData=new Float32Array(6),Eo(a,f.offset,f.count,v.boundingData,r),n(v,f.offset,f.count,r),x.push(v)}return x}function Ic(i,t){let e=um(i,t),n,s,r,a=[],o=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let h=0;hMath.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return s[u+6]=_/4,_=l(_,f),s[u+7]=v,_}}}var Se=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(t,e){let n=1/0,s=-1/0;for(let r=0,a=t.length;rs?c:s}this.min=n,this.max=s}setFromPoints(t,e){let n=1/0,s=-1/0;for(let r=0,a=e.length;rs?c:s}this.min=n,this.max=s}isSeparated(t){return this.min>t.max||t.min>this.max}};Se.prototype.setFromBox=function(){let i=new P;return function(e,n){let s=n.min,r=n.max,a=1/0,o=-1/0;for(let c=0;c<=1;c++)for(let l=0;l<=1;l++)for(let h=0;h<=1;h++){i.x=s.x*c+r.x*(1-c),i.y=s.y*l+r.y*(1-l),i.z=s.z*h+r.z*(1-h);let d=e.dot(i);a=Math.min(d,a),o=Math.max(d,o)}this.min=a,this.max=o}}();var Um=function(){let i=new Se;return function(e,n){let s=e.points,r=e.satAxes,a=e.satBounds,o=n.points,c=n.satAxes,l=n.satBounds;for(let h=0;h<3;h++){let d=a[h],u=r[h];if(i.setFromPoints(u,o),d.isSeparated(i))return!1}for(let h=0;h<3;h++){let d=l[h],u=c[h];if(i.setFromPoints(u,s),d.isSeparated(i))return!1}}}();var fm=function(){let i=new P,t=new P,e=new P;return function(s,r,a){let o=s.start,c=i,l=r.start,h=t;e.subVectors(o,l),i.subVectors(s.end,s.start),t.subVectors(r.end,r.start);let d=e.dot(h),u=h.dot(c),m=h.dot(h),g=e.dot(c),p=c.dot(c)*m-u*u,f,v;p!==0?f=(d*u-g*m)/p:f=0,v=(d+f*u)/m,a.x=f,a.y=v}}(),Zi=function(){let i=new Nt,t=new P,e=new P;return function(s,r,a,o){fm(s,r,i);let c=i.x,l=i.y;if(c>=0&&c<=1&&l>=0&&l<=1){s.at(c,a),r.at(l,o);return}else if(c>=0&&c<=1){l<0?r.at(0,o):r.at(1,o),s.closestPointToPoint(o,!0,a);return}else if(l>=0&&l<=1){c<0?s.at(0,a):s.at(1,a),r.closestPointToPoint(a,!0,o);return}else{let h;c<0?h=s.start:h=s.end;let d;l<0?d=r.start:d=r.end;let u=t,m=e;if(s.closestPointToPoint(d,!0,t),r.closestPointToPoint(h,!0,e),u.distanceToSquared(d)<=m.distanceToSquared(h)){a.copy(u),o.copy(d);return}else{a.copy(h),o.copy(m);return}}}}(),Uc=function(){let i=new P,t=new P,e=new Ce,n=new Me;return function(r,a){let{radius:o,center:c}=r,{a:l,b:h,c:d}=a;if(n.start=l,n.end=h,n.closestPointToPoint(c,!0,i).distanceTo(c)<=o||(n.start=l,n.end=d,n.closestPointToPoint(c,!0,i).distanceTo(c)<=o)||(n.start=h,n.end=d,n.closestPointToPoint(c,!0,i).distanceTo(c)<=o))return!0;let x=a.getPlane(e);if(Math.abs(x.distanceToPoint(c))<=o){let f=x.projectPoint(c,t);if(a.containsPoint(f))return!0}return!1}}();var dm=1e-15;function Ei(i){return Math.abs(i)new P),this.satBounds=new Array(4).fill().map(()=>new Se),this.points=[this.a,this.b,this.c],this.sphere=new Vn,this.plane=new Ce,this.needsUpdate=!0}intersectsSphere(t){return Uc(t,this)}update(){let t=this.a,e=this.b,n=this.c,s=this.points,r=this.satAxes,a=this.satBounds,o=r[0],c=a[0];this.getNormal(o),c.setFromPoints(o,s);let l=r[1],h=a[1];l.subVectors(t,e),h.setFromPoints(l,s);let d=r[2],u=a[2];d.subVectors(e,n),u.setFromPoints(d,s);let m=r[3],g=a[3];m.subVectors(n,t),g.setFromPoints(m,s),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(o,t),this.needsUpdate=!1}};be.prototype.closestPointToSegment=function(){let i=new P,t=new P,e=new Me;return function(s,r=null,a=null){let{start:o,end:c}=s,l=this.points,h,d=1/0;for(let u=0;u<3;u++){let m=(u+1)%3;e.start.copy(l[u]),e.end.copy(l[m]),Zi(e,s,i,t),h=i.distanceToSquared(t),h1-1e-10){let v=this.satBounds,_=this.satAxes;e[0]=m.a,e[1]=m.b,e[2]=m.c;for(let T=0;T<4;T++){let A=v[T],L=_[T];if(n.setFromPoints(L,e),A.isSeparated(n))return!1}let b=m.satBounds,S=m.satAxes;t[0]=this.a,t[1]=this.b,t[2]=this.c;for(let T=0;T<4;T++){let A=b[T],L=S[T];if(n.setFromPoints(L,t),A.isSeparated(n))return!1}for(let T=0;T<4;T++){let A=_[T];for(let L=0;L<4;L++){let y=S[L];if(r.crossVectors(A,y),n.setFromPoints(r,t),s.setFromPoints(r,e),n.isSeparated(s))return!1}}return g&&(x||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),g.start.set(0,0,0),g.end.set(0,0,0)),!0}else{let v=this.points,_=!1,b=0;for(let D=0;D<3;D++){let O=v[D],$=v[(D+1)%3];l.start.copy(O),l.end.copy($),l.delta(a);let G=_?h.start:h.end,q=Ei(f.distanceToPoint(O));if(Ei(f.normal.dot(a))&&q){h.copy(l),b=2;break}if((f.intersectLine(l,G)||q)&&!Ei(G.distanceTo($))){if(b++,_)break;_=!0}}if(b===1&&m.containsPoint(h.end))return g&&(g.start.copy(h.end),g.end.copy(h.end)),!0;if(b!==2)return!1;let S=m.points,T=!1,A=0;for(let D=0;D<3;D++){let O=S[D],$=S[(D+1)%3];l.start.copy(O),l.end.copy($),l.delta(o);let G=T?d.start:d.end,q=Ei(p.distanceToPoint(O));if(Ei(p.normal.dot(o))&&q){d.copy(l),A=2;break}if((p.intersectLine(l,G)||q)&&!Ei(G.distanceTo($))){if(A++,T)break;T=!0}}if(A===1&&this.containsPoint(d.end))return g&&(g.start.copy(d.end),g.end.copy(d.end)),!0;if(A!==2)return!1;if(h.delta(a),d.delta(o),a.dot(o)<0){let D=d.start;d.start=d.end,d.end=D}let L=h.start.dot(a),y=h.end.dot(a),w=d.start.dot(a),z=d.end.dot(a),Y=y0?g.start.copy(h.start):g.start.copy(d.start),c.subVectors(h.end,d.end),c.dot(a)<0?g.end.copy(h.end):g.end.copy(d.end)),!0)}}}();be.prototype.distanceToPoint=function(){let i=new P;return function(e){return this.closestPointToPoint(e,i),e.distanceTo(i)}}();be.prototype.distanceToTriangle=function(){let i=new P,t=new P,e=["a","b","c"],n=new Me,s=new Me;return function(a,o=null,c=null){let l=o||c?n:null;if(this.intersectsTriangle(a,l))return(o||c)&&(o&&l.getCenter(o),c&&l.getCenter(c)),0;let h=1/0;for(let d=0;d<3;d++){let u,m=e[d],g=a[m];this.closestPointToPoint(g,i),u=g.distanceToSquared(i),unew P),this.satAxes=new Array(3).fill().map(()=>new P),this.satBounds=new Array(3).fill().map(()=>new Se),this.alignedSatBounds=new Array(3).fill().map(()=>new Se),this.needsUpdate=!1,t&&this.min.copy(t),e&&this.max.copy(e),n&&this.matrix.copy(n)}set(t,e,n){this.min.copy(t),this.max.copy(e),this.matrix.copy(n),this.needsUpdate=!0}copy(t){this.min.copy(t.min),this.max.copy(t.max),this.matrix.copy(t.matrix),this.needsUpdate=!0}};Ee.prototype.update=function(){return function(){let t=this.matrix,e=this.min,n=this.max,s=this.points;for(let l=0;l<=1;l++)for(let h=0;h<=1;h++)for(let d=0;d<=1;d++){let u=1*l|2*h|4*d,m=s[u];m.x=l?n.x:e.x,m.y=h?n.y:e.y,m.z=d?n.z:e.z,m.applyMatrix4(t)}let r=this.satBounds,a=this.satAxes,o=s[0];for(let l=0;l<3;l++){let h=a[l],d=r[l],u=1<new Me),e=new Array(12).fill().map(()=>new Me),n=new P,s=new P;return function(a,o=0,c=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(a))return(c||l)&&(a.getCenter(s),this.closestPointToPoint(s,n),a.closestPointToPoint(n,s),c&&c.copy(n),l&&l.copy(s)),0;let h=o*o,d=a.min,u=a.max,m=this.points,g=1/0;for(let p=0;p<8;p++){let f=m[p];s.copy(f).clamp(d,u);let v=f.distanceToSquared(s);if(v=0,m,g;u?(m=Ai(i),g=Ri(i,o)):(m=Ri(i,o),g=Ai(i));let p=Js(m,r,n,qs)?Zs(m,t,e,n):null;if(p){let _=p.point[h];if(u?_<=r[g+l]:_>=r[g+l+3])return p}let v=Js(g,r,n,qs)?Zs(g,t,e,n):null;return p&&v?p.distance<=v.distance?p:v:p||v||null}}var kc=function(){let i,t,e=[],n=new Ti(()=>new _e);return function(...a){i=n.getPrimitive(),t=n.getPrimitive(),e.push(i,t);let o=s(...a);n.releasePrimitive(i),n.releasePrimitive(t),e.pop(),e.pop();let c=e.length;return c>0&&(t=e[c-1],i=e[c-2]),o};function s(r,a,o,c,l=null,h=0,d=0){function u(_){let b=_*2,S=wn,T=An;for(;!un(b,S);)_=Ai(_),b=_*2;return Xn(_,T)}function m(_){let b=_*2,S=wn,T=An;for(;!un(b,S);)_=Ri(_,T),b=_*2;return Xn(_,T)+wi(b,S)}let g=r*2,x=Pi,p=wn,f=An;if(un(g,p)){let _=Xn(r,f),b=wi(g,p);return Ue(r,x,i),c(_,b,!1,d,h+r,i)}else{let _=Ai(r),b=Ri(r,f),S=_,T=b,A,L,y,w;if(l&&(y=i,w=t,Ue(S,x,y),Ue(T,x,w),A=l(y),L=l(w),Ls.intersectsBox(L),intersectsTriangle:L=>{L.a.applyMatrix4(l),L.b.applyMatrix4(l),L.c.applyMatrix4(l),L.needsUpdate=!0;for(let y=S*3,w=(T+S)*3;ynew be),$e=class{static serialize(t,e={}){if(e.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),$e.serialize(arguments[0],{cloneBuffers:arguments[2]===void 0?!0:arguments[2]});e=ts({cloneBuffers:!0},e);let n=t.geometry,s=t._roots,r=n.getIndex(),a;return e.cloneBuffers?a={roots:s.map(o=>o.slice()),index:r.array.slice()}:a={roots:s,index:r.array},a}static deserialize(t,e,n={}){if(typeof n=="boolean")return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),$e.deserialize(arguments[0],arguments[1],{setIndex:arguments[2]===void 0?!0:arguments[2]});n=ts({setIndex:!0},n);let{index:s,roots:r}=t,a=new $e(e,ko(ts({},n),{[Co]:!0}));if(a._roots=r,n.setIndex){let o=e.getIndex();if(o===null){let c=new te(t.index,1,!1);e.setIndex(c)}else o.array!==s&&(o.array.set(s),o.needsUpdate=!0)}return a}constructor(t,e={}){if(t.isBufferGeometry){if(t.index&&t.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}else throw new Error("MeshBVH: Only BufferGeometries are supported.");if(e=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[Co]:!1},e),e.useSharedArrayBuffer&&typeof SharedArrayBuffer=="undefined")throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,e[Co]||(this._roots=Ic(t,e),!t.boundingBox&&e.setBoundingBox&&(t.boundingBox=this.getBoundingBox(new _e))),this.geometry=t}refit(t=null){t&&Array.isArray(t)&&(t=new Set(t));let e=this.geometry,n=e.index.array,s=e.attributes.position,r,a,o,c,l=0,h=this._roots;for(let u=0,m=h.length;uT&&(T=Y),IA&&(A=I),DL&&(L=D)}return c[u+0]!==_||c[u+1]!==b||c[u+2]!==S||c[u+3]!==T||c[u+4]!==A||c[u+5]!==L?(c[u+0]=_,c[u+1]=b,c[u+2]=S,c[u+3]=T,c[u+4]=A,c[u+5]=L,!0):!1}else{let f=u+8,v=a[u+6],_=f+m,b=v+m,S=g,T=!1,A=!1;t?S||(T=t.has(_),A=t.has(b),S=!T&&!A):(T=!0,A=!0);let L=S||T,y=S||A,w=!1;L&&(w=d(f,m,S));let z=!1;y&&(z=d(v,m,S));let Y=w||z;if(Y)for(let I=0;I<3;I++){let D=f+I,O=v+I,$=c[D],G=c[D+3],q=c[O],J=c[O+3];c[u+I]=$J?G:J}return Y}}}traverse(t,e=0){let n=this._roots[e],s=new Uint32Array(n),r=new Uint16Array(n);a(0);function a(o,c=0){let l=o*2,h=r[l+15]===65535;if(h){let d=s[o+6],u=r[l+14];t(c,h,new Float32Array(n,o*4,6),d,u)}else{let d=o+32/4,u=s[o+6],m=s[o+7];t(c,h,new Float32Array(n,o*4,6),m)||(a(d,c+1),a(u,c+1))}}}raycast(t,e=He){let n=this._roots,s=this.geometry,r=[],a=e.isMaterial,o=Array.isArray(e),c=s.groups,l=a?e.side:e;for(let h=0,d=n.length;h{let f=g*3;return u(m,f,f+1,f+2,x,p)}}t={boundsTraverseOrder:n,intersectsBounds:t,intersectsTriangle:e,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let r=Je.getPrimitive(),{boundsTraverseOrder:a,intersectsBounds:o,intersectsRange:c,intersectsTriangle:l}=t;if(c&&l){let u=c;c=(m,g,x,p,f)=>u(m,g,x,p,f)?!0:Ao(m,g,s,l,x,p,r)}else c||(l?c=(u,m,g,x)=>Ao(u,m,s,l,g,x,r):c=(u,m,g)=>g);let h=!1,d=0;for(let u of this._roots){if(Li(u),h=kc(0,s,o,c,a,d),Ji(),h)break;d+=u.byteLength}return Je.releasePrimitive(r),h}bvhcast(t,e,n){let{intersectsRanges:s,intersectsTriangles:r}=n,a=this.geometry.index,o=this.geometry.attributes.position,c=t.geometry.index,l=t.geometry.attributes.position;Ii.copy(e).invert();let h=Je.getPrimitive(),d=Je.getPrimitive();if(r){let m=function(g,x,p,f,v,_,b,S){for(let T=p,A=p+f;TLo.intersectsBox(m),intersectsRange:(m,g,x,p,f,v)=>(Po.copy(v),Po.applyMatrix4(Ii),t.shapecast({intersectsBounds:_=>Po.intersectsBox(_),intersectsRange:(_,b,S,T,A)=>s(m,g,_,b,p,f,T,A)}))});return Je.releasePrimitive(h),Je.releasePrimitive(d),u}intersectsBox(t,e){return qn.set(t.min,t.max,e),qn.needsUpdate=!0,this.shapecast({intersectsBounds:n=>qn.intersectsBox(n),intersectsTriangle:n=>qn.intersectsTriangle(n)})}intersectsSphere(t){return this.shapecast({intersectsBounds:e=>t.intersectsBox(e),intersectsTriangle:e=>e.intersectsSphere(t)})}closestPointToGeometry(t,e,n={},s={},r=0,a=1/0){t.boundingBox||t.computeBoundingBox(),qn.set(t.boundingBox.min,t.boundingBox.max,e),qn.needsUpdate=!0;let o=this.geometry,c=o.attributes.position,l=o.index,h=t.attributes.position,d=t.index,u=Je.getPrimitive(),m=Je.getPrimitive(),g=$s,x=xm,p=null,f=null;s&&(p=ym,f=vm);let v=1/0,_=null,b=null;return Ii.copy(e).invert(),$i.matrix.copy(Ii),this.shapecast({boundsTraverseOrder:S=>qn.distanceToBox(S),intersectsBounds:(S,T,A)=>A{if(t.boundsTree)return t.boundsTree.shapecast({boundsTraverseOrder:A=>$i.distanceToBox(A),intersectsBounds:(A,L,y)=>y{for(let y=A*3,w=(A+L)*3;y(Ki.copy(t).clamp(h.min,h.max),Ki.distanceToSquared(t)),intersectsBounds:(h,d,u)=>u{h.closestPointToPoint(t,Ki);let u=t.distanceToSquared(Ki);return u{Ue(0,new Float32Array(n),Gc),t.union(Gc)}),t}};var Io=self;Io.addEventListener("message",async function({data:i}){let t=performance.now();function e(o){let c=performance.now();(c-t>=10||o===1)&&(postMessage({error:void 0,serialized:void 0,position:void 0,progress:o}),t=c)}let{id:n,index:s,position:r,options:a}=i;try{let o=new Ge;if(o.setAttribute("position",new te(r,3,!1)),s&&o.setIndex(new te(s,1,!1)),a.includedProgressCallback&&(a.onProgress=e),a.groups){let h=a.groups;for(let d in h){let u=h[d];o.addGroup(u.start,u.count,u.materialIndex)}}let c=new $e(o,a),l=$e.serialize(c,{cloneBuffers:!1});Io.postMessage({id:n,error:void 0,serialized:l,position:r,progress:1},[l.index.buffer,r.buffer,...l.roots])}catch(o){Io.postMessage({id:n,error:o,serialized:void 0,position:void 0,progress:1})}});\n/*! Bundled license information:\n\nthree/build/three.module.js:\n (**\n * @license\n * Copyright 2010-2023 Three.js Authors\n * SPDX-License-Identifier: MIT\n *)\n*/\n')}ja.decoderPath="libs/draco/gltf/";var EP=class{constructor(){this.running=!1,this.worker=new w4,this.worker.onerror=e=>{throw e.message?new Error(`[GenerateMeshBVHWorker] Could not create Web Worker with error "${e.message}"`):new Error("[GenerateMeshBVHWorker] Could not create Web Worker.")}}isRunning(){return this.running}generate(e,t={}){if(this.running)return void se.warn("[GenerateMeshBVHWorker] Already running job.");if(!this.worker)return void se.warn("[GenerateMeshBVHWorker] Worker has been disposed.");let{worker:i}=this;this.running=!0;let n=new Map;e.forEach((e=>{n.set(e.id,e)}));let r=0;return new Promise(((e,a)=>{let s=()=>{++r===n.size&&(this.running=!1,i.onmessage=null,e())};i.onerror=e=>{se.warn(`[GenerateMeshBVHWorker] ${e.message}`),a(new Error(`[GenerateMeshBVHWorker] ${e.message}`)),this.running=!1},i.onmessage=e=>{this.running=!1;let{data:i}=e;if(i.error)se.warn(i.error),s();else if(i.serialized){let{serialized:e,position:r,id:a}=i,o=n.get(a),l=Mc.deserialize(e,o,{setIndex:!1}),h=Object.assign({setBoundingBox:!0},t);if(h.transferred&&(o.attributes.position.array=r),o.index)t.saveOriginalIndex&&!o.userData.originalIndex&&(o.userData.originalIndex=o.index.array),se.debug("before update, index:",o.index.array),o.index.array=e.index;else{let t=new mn(e.index,1,!1);o.setIndex(t)}o.index&&(se.debug("after update, index:",o.index.array),o.index.needsUpdate=!0),h.setBoundingBox&&!o.boundingBox&&(o.boundingBox=l.getBoundingBox(new Nt)),o.boundsTree=l,s()}else t.onProgress&&t.onProgress(i.progress)};for(let r of n){let e=r[0],n=r[1],a=n.index?n.index.array:void 0,o=n.attributes.position,l=o.array;if(o.isInterleavedBufferAttribute||a&&a.isInterleavedBufferAttribute){se.warn("[GenerateMeshBVHWorker] InterleavedBufferAttribute are not supported for the geometry attributes."),s();continue}let h=[];t.transferred&&(h.push(l),a&&(h.push(a),t.saveOriginalIndex&&(n.userData.originalIndex=a.slice()))),i.postMessage({id:e,index:a,position:l,options:Ii(Tr({},t),{onProgress:null,includedProgressCallback:Boolean(t.onProgress),groups:[...n.groups]})},h.length>0?h.map((e=>e.buffer)):[])}}))}dispose(){this.worker.terminate(),this.worker=void 0}},Qf=class{constructor(e){this.running=!1,this.workers=[];let t=1;e?t=e:window.navigator&&(t=Math.max(t,window.navigator.hardwareConcurrency-1));for(let i=0;i{let n=this.workers.length,r=e.length,a=[],s=Math.floor(r/n),o=r%n,l=0,h=0;for(let c=0;c=h)break;se.debug("startIndex: "+l+" endIndex: "+h),a.push(i.generate(e.slice(l,h),t))}Promise.allSettled(a).then((()=>{this.running=!1,i()}))}));se.warn("[BVHHelper] Worker has been disposed.")}}))}dispose(){for(let e=0;e{e.traverse((e=>{let n=e;if(n.isMesh&&n.geometry&&Rr.isMergedMesh(n)&&!(n instanceof Oi)){if(i.has(n.geometry.id))return;n.geometry.index&&t.saveOriginalIndex&&(n.geometry.userData.originalIndex=n.geometry.index.array.slice()),n.geometry.boundsTree=new Mc(n.geometry,t),i.add(n.geometry.id)}}))}))}static createMeshBvhAsync(e,t={}){let i=new Set,n=[];e.forEach((e=>{e.traverse((e=>{let t=e;if(t.isMesh&&t.geometry&&Rr.isMergedMesh(t)&&!(t instanceof Oi)){if(i.has(t.geometry.id))return;n.push(t.geometry),i.add(t.geometry.id)}}))}));let r=new Qf;r.generate(n,t).then((()=>{r.dispose()}))}},Q0e=class{constructor(e,t,i,n,r){this.targetPixelHeight=100,this.canvasHeight=800,this.camera=e,this.object=i,this.targetPixelHeight=n,this.canvasHeight=r,this.adjustSize(),t.addEventListener("update",(()=>{this.adjustSize()}))}adjustSize(){let e=new Nt;if(this.object.updateMatrix(),e.expandByObject(this.object),!e)return;let t=e.max.x-e.min.x,i=this.camera.position.distanceTo(this.object.position),n=Bgt(t,i,this.canvasHeight);if(Math.abs(n-this.targetPixelHeight)<5)return;let r=this.object.scale.x;r*=this.targetPixelHeight/n,this.object.scale.set(r,r,r),this.object.updateMatrix()}},Bgt=(e,t,i=800,n=45)=>{let r=n*(Math.PI/180);return i*(e/(2*Math.tan(r/2)*t))},_P,TP=new xe,wP=new xe,SP=new xe,eve=new xe,Ugt=new xe,Hgt=new xe,_o=class extends Hi{constructor(e){super(St.guid()),this.needsFrustumCulled=!1,this.renderOrder=1e3,this.snapType="TripleCross",this.snapLineVisible=!1,this.snapType=e,this.drawSnapFunctions={TripleCross:this.drawTripleCorss.bind(this),Square:this.drawSquare.bind(this),Triangle:this.drawTriangle.bind(this),CircleWithCross:this.drawCircleWithCross.bind(this),Cross:this.drawCross.bind(this),Perpendicular:this.drawPerpendicular.bind(this)}}setSnapLineVisible(e){this.snapLineVisible=e}draw(e,t){this.osnapInfo&&(this.snapLineVisible&&this.drawSnapLine(e,t),e.save(),e.fillStyle=_o.FILL_COLOR_NONE,e.strokeStyle=_o.lineColor,e.lineWidth=_o.lineWidth,e.beginPath(),this.drawSnapFunctions[this.snapType](e,t),_P&&this.drawDebug(e,t),e.closePath(),e.fill(),e.stroke(),e.restore())}drawDebug(e,t){null==_P||_P.forEach((i=>{let n=this.transToScreenCoord(i.start,t),r=this.transToScreenCoord(i.end,t);e.moveTo(n.x,n.y),e.lineTo(r.x,r.y)}))}drawSelect(e,t){}isPointInPath(e){return!1}drawSnapLine(e,t){e.save(),e.strokeStyle=_o.SNAP_LINE_COLOR,e.lineWidth=_o.lineWidth;let i=this.osnapInfo.line;if(!i)return;let n=this.transToScreenCoord(i.start,t),r=this.transToScreenCoord(i.end,t);e.moveTo(n.x,n.y),e.lineTo(r.x,r.y),e.stroke(),e.restore()}drawTripleCorss(e,t){let i=this.transToScreenCoord(this.osnapInfo.point,t),n=_o.iconSize/1.6,r=TP.set(i.x,i.y-n),a=wP.set(i.x-.87*n,i.y+n/1.4),s=SP.set(i.x+.87*n,i.y+n/1.4);e.moveTo(i.x,i.y),e.lineTo(r.x,r.y),e.moveTo(i.x,i.y),e.lineTo(a.x,a.y),e.moveTo(i.x,i.y),e.lineTo(s.x,s.y)}drawSquare(e,t){let i=this.transToScreenCoord(this.osnapInfo.point,t),n=_o.iconSize,r=_o.iconSize;e.rect(i.x-n/2,i.y-r/2,n,r)}drawTriangle(e,t){let i=this.transToScreenCoord(this.osnapInfo.point,t),n=_o.iconSize/1.6,r=TP.set(i.x,i.y-n),a=wP.set(i.x-.87*n,i.y+n/2),s=SP.set(i.x+.87*n,i.y+n/2);e.moveTo(r.x,r.y),e.lineTo(a.x,a.y),e.lineTo(s.x,s.y)}drawCircleWithCross(e,t){let i=this.transToScreenCoord(this.osnapInfo.point,t),n=_o.iconSize/2;e.arc(i.x,i.y,n,0,2*Math.PI),e.moveTo(i.x-n/1.8,i.y),e.lineTo(i.x+n/1.8,i.y),e.moveTo(i.x,i.y-n/1.8),e.lineTo(i.x,i.y+n/1.8)}drawCross(e,t){let i=this.transToScreenCoord(this.osnapInfo.point,t),n=_o.iconSize/2,r=TP.set(i.x-n,i.y-n),a=wP.set(i.x+n,i.y+n),s=SP.set(i.x+n,i.y-n),o=eve.set(i.x-n,i.y+n);e.moveTo(r.x,r.y),e.lineTo(a.x,a.y),e.moveTo(s.x,s.y),e.lineTo(o.x,o.y)}drawPerpendicular(e,t){let i=this.transToScreenCoord(this.osnapInfo.point,t),n=_o.iconSize/2,r=TP.set(i.x,i.y),a=wP.set(i.x-n,i.y),s=SP.set(i.x,i.y+n),o=eve.set(i.x-n,i.y-n),l=Ugt.set(i.x-n,i.y+n),h=Hgt.set(i.x+n,i.y+n);e.moveTo(a.x,a.y),e.lineTo(r.x,r.y),e.lineTo(s.x,s.y),e.moveTo(o.x,o.y),e.lineTo(l.x,l.y),e.lineTo(h.x,h.y),e.lineTo(o.x,o.y)}update(e){this.osnapInfo=e}getClassType(){return"SnapDrawable"}},Ms=_o;Ms.lineColor="rgba(255, 119, 0, 1)",Ms.FILL_COLOR_NONE="rgba(0, 0, 0, 0)",Ms.SNAP_LINE_COLOR="rgba(255, 240, 0, 0.3)",Ms.lineWidth=2,Ms.iconSize=14,Un._registerDrawableClass(Ms);var S4=(e=>(e[e.None=0]="None",e[e.Vertex=1]="Vertex",e[e.MiddlePoint=2]="MiddlePoint",e[e.Edge=4]="Edge",e[e.Face=8]="Face",e[e.FootOfPerpendicular=16]="FootOfPerpendicular",e[e.Intersection=32]="Intersection",e[e.CircleCenter=64]="CircleCenter",e))(S4||{}),Vgt=1e-5,Wi=new D,sa=new D,Dy=new D,v_=new D,ag=new et,y_=new ra;function zgt(e,t){let i=Number.MAX_VALUE,n=0;for(let r=0;r65535?new Uint32Array(n):new Uint16Array(n);for(let i=0,r=n;i{e.visible=!1,this.drawableList.addDrawable(e)}))}isOSnapTypeEnabled(e){return!!(this.enabledOSnapTypes&e)}setOSnapTypeEnabled(e,t){if(t)this.enabledOSnapTypes|=e;else{let t=~e;this.enabledOSnapTypes&=t}}setSnapTolerance(e){this.snapToleranceInWorldCoord=e}getSnapTolerance(){return this.snapToleranceInWorldCoord}setIntersectionLimit(e){this.intersectionLimit=e}getIntersectionLimit(){return this.intersectionLimit}getMarkerLineColor(){return An.colorStr2Rgba(Ms.lineColor)}setMarkerLineColor(e){Ms.lineColor=An.rgba2Color(e)}getMarkerLineWidth(){return Ms.lineWidth}setMarkerLineWidth(e){Ms.lineWidth=e}getMarkerIconSize(){return Ms.iconSize}setMarkerIconSize(e){Ms.iconSize=e}getMarker(e){return this.markers[e]}setAllSnapLinesVisible(e){Object.values(this.markers).forEach((t=>{t.setSnapLineVisible(e)}))}deactivate(){var e;this.activeOSnapType&&(this.markers[this.activeOSnapType].visible=!1,null==(e=this.overlayRender)||e.render()),this.activeOSnapType=0}destroy(){}handleSnap(e,t,i){if(!e||e.length<1)return void this.deactivate();se.debug("[OSnap] intersections before handleSnap:",e);let n,r=[],a=!1;for(let o of e)o.object instanceof xt?(n||(n=o.point),!a&&"groundPlane"!==o.object.name&&(r.push(o),a=!0)):r.push(o);if(!t&&n){n.setZ(0);for(let t of r)t.point.z=0,t.distance=t.point.distanceTo(n);let e=e=>e instanceof ii?0:e instanceof qr?2:e instanceof fr?1:3;r.sort(((t,i)=>{let n=e(t.object),r=e(i.object);return n!==r?n-r:t.distance-i.distance}))}n||(se.warn("[OSnap] Potential to produce erroneous snap results"),n=r[0].point),se.debug("[OSnap] intersections:",r),se.debug("[OSnap] mousePosition:",n);let s=this.getSnapPointAndUpdateMarker(n,r,t,i);return(null==s?void 0:s.clone())||n}getSnapPointAndUpdateMarker(e,t,i,n){if(!t.length)return void this.activateMarker(0);let r=this.getSnapInfo(e,t,i,n);if(r&&0!==r.type)return this.activateMarker(r.type,r),r.point;this.activateMarker(0)}activateMarker(e,t){var i;this.activeOSnapType&&(this.markers[this.activeOSnapType].visible=!1),this.activeOSnapType=e;let n=this.markers[e];n&&t&&(n.update(t),n.visible=!0),null==(i=this.overlayRender)||i.render()}getFootOfPerpendicular(e,t,i=Vgt){let{start:n,end:r}=t,a=n.x-r.x,s=n.y-r.y,o=n.z-r.z;if(n.distanceTo(r){let i=this.osnapTypePriorities[e.type],n=this.osnapTypePriorities[t.type];return i!==n?i-n:e.distance-t.distance})),a[0]}getOsnapInfoListFromMesh(e,t,i,n){if(n=this.osnapTypePriorities[16]&&this.isOSnapTypeEnabled(16)){let t=this.getFootOfPerpendicular(s,o,n),i=e.distanceTo(t);if(i<=n)return{distance:Zt.floorNumber(i,7),type:16,point:t.clone()}}if(an)return;let h=e.distanceTo(t),c=e.distanceTo(i);if(Math.min(h,c)<=n&&this.isOSnapTypeEnabled(1)){let e=h,n=t;return c{let i=this.osnapTypePriorities[e.type],n=this.osnapTypePriorities[t.type];return i!==n?i-n:e.distance-t.distance})),o[0]}getOsnapInfoListFromPoint(e,t,i,n,r){if(rn)return;let l={distance:o,point:Wi.clone(),type:1};if("CircleCenter"===a.userData.type){if(!this.isOSnapTypeEnabled(64))return;l.type=64}else if(se.debug("[OSnap] Other types of vertices !"),!this.isOSnapTypeEnabled(1))return;return l}getIntersectsIncludeOutline(e,t){let i=e.slice(),n=[];for(let a=0;a0&&(r=t.intersectObjects(n)||[],se.debug("[OSnap] Intersected with newly created edges: ",r),r.length>0&&i.push(...r)),i.sort(((e,t)=>e.distance-t.distance)),i}},M4=Xi(kl(),1),Xl=class{constructor(e,t,i){this.follow=e=>{this.node.style.left=e.offsetX+15+"px",this.node.style.top=e.offsetY-30+"px"},this.show=()=>this.node.hasAttribute("hidden")&&this.node.removeAttribute("hidden"),this.hide=()=>!this.node.hasAttribute("hidden")&&this.node.setAttribute("hidden",""),this.destroy=()=>{this.target?this.target.removeEventListener(Rf,this.follow):document.removeEventListener(Rf,this.follow),this.parentNode.removeChild(this.node)},this.node=document.createElement("div"),this.node.id=e,t&&this.node.append(t),this.childNode=document.createElement("div"),this.target=null==i?void 0:i.target,this.parentNode=(null==i?void 0:i.parentNode)||document.body,null!=i&&i.followPointer&&(this.node.classList.add("follow-tooltip"),this.target?this.target.addEventListener(Rf,this.follow):document.addEventListener(Rf,this.follow)),this.parentNode.appendChild(this.node),(null==i||!i.showOnCreate)&&this.node.setAttribute("hidden","")}setContent(e){this.node.textContent&&(this.node.textContent=null),(0,M4.forEach)(this.node.children,(e=>{this.node.removeChild(e)})),this.node.append(e),this.node.appendChild(this.childNode)}updateChildContent(e){this.childNode.textContent&&(this.childNode.textContent=null),(0,M4.forEach)(this.childNode.children,(e=>{this.childNode.removeChild(e)})),this.childNode.append(e)}},RP=class{constructor(e){this.active=!1,this.isResolvedOrRejected=!1,this.mouseClicked=e=>{var t;if(e.markupData){let i=e.markupData.id,n=null==(t=this.viewer.overlayRender)?void 0:t.getDrawableById(i);if(n){let e=n.getBounds();e=e.clone().expandByScalar(20*this.viewer.getPixelSizeInWorldCoord());let t=an.world2NormalizedScreen(e.min,this.camera,this.viewerContainer),i=an.world2NormalizedScreen(e.max,this.camera,this.viewerContainer),r=new Mi(new xe(Math.min(t.x,i.x),Math.min(t.y,i.y)),new xe(Math.max(t.x,i.x),Math.max(t.y,i.y)));r.min.x=Math.max(r.min.x,0)*this.viewerContainer.clientWidth,r.min.y=Math.max(r.min.y,0)*this.viewerContainer.clientHeight,r.max.x=Math.min(r.max.x,1)*this.viewerContainer.clientWidth,r.max.y=Math.min(r.max.y,1)*this.viewerContainer.clientHeight,this.resolve&&(this.resolve(r),this.isResolvedOrRejected=!0),this.deactivate();let a=this.viewer;"function"==typeof a.clearSelection&&a.clearSelection()}}},this.keydown=e=>{"Escape"===e.code&&this.deactivate()},this.viewer=e}get viewerContainer(){return this.viewer.viewerContainer}get camera(){return this.viewer.camera}isActive(){return this.active}activate(){var e,t;if(this.isActive())return void(this.reject&&(this.deactivate(),this.reject("PickMarkupHelper is already actived!"),this.isResolvedOrRejected=!0));this.active=!0,this.viewer.addEventListener("MouseClicked",this.mouseClicked),null==(e=this.viewer.getInputManager())||e.addEventListener("keydown",this.keydown);let i=this.viewer.translate;if(i){this.tooltip=new Xl("pick-markup-tooltip",i("Tooltip.pickMarkup"),{followPointer:!0,showOnCreate:!0,parentNode:this.viewer.widgetContainer,target:this.viewerContainer});let e=document.getElementById("pick-markup-tooltip");e&&(e.style.pointerEvents="none");let n=i("Tooltip.pickMarkup");n&&this.tooltip&&(null==(t=this.tooltip)||t.setContent(n))}this.viewer.dispatchEvent("PickMarkupActivated")}deactivate(){var e,t,i;this.active=!1,this.viewer.removeEventListener("MouseClicked",this.mouseClicked),null==(e=this.viewer.getInputManager())||e.removeEventListener("keydown",this.keydown),null==(t=this.tooltip)||t.hide(),null==(i=this.tooltip)||i.destroy(),this.tooltip=void 0,this.viewer.dispatchEvent("PickMarkupDeactivated"),this.resolve&&!this.isResolvedOrRejected&&(this.resolve(void 0),this.isResolvedOrRejected=!0)}pick(){return ft(this,null,(function*(){return new Promise(((e,t)=>{this.resolve=e,this.reject=t,this.activate()}))}))}destroy(){this.deactivate(),this.isResolvedOrRejected||this.reject&&this.reject("PickMarkupHelper is not done for some reason!")}},AP=class{constructor(e){this.mouseDown=!1,this.mouseMove=!1,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1,this.tempEnableRotate=!1,this.active=!1,this.isResolvedOrRejected=!1,this.mousedown=e=>{var t,i;if(0===e.button){this.mouseDown=!0;let n=new xe(e.x,e.y);this.mouseDownPositionX=n.x,this.mouseDownPositionY=n.y,null==(t=this.tooltip)||t.hide(),null==(i=this.tooltip)||i.destroy(),this.tooltip=void 0}},this.mousemove=e=>{if(!this.mouseDown)return;let t=new xe(e.x,e.y);if(this.mouseDownPositionX>=0&&this.mouseDownPositionY>=0&&(Math.abs(t.x-this.mouseDownPositionX)>=5||Math.abs(t.y-this.mouseDownPositionY)>=5)){this.mouseMove=!0;let e=new xe(Math.min(this.mouseDownPositionX,t.x),Math.min(this.mouseDownPositionY,t.y)),i=new xe(Math.max(this.mouseDownPositionX,t.x),Math.max(this.mouseDownPositionY,t.y));this.drawRect(e,i)}},this.mouseup=e=>{if(this.mouseDown&&this.mouseMove){let t=new xe(e.x,e.y),i=new xe(Math.min(this.mouseDownPositionX,t.x),Math.min(this.mouseDownPositionY,t.y)),n=new xe(Math.max(this.mouseDownPositionX,t.x),Math.max(this.mouseDownPositionY,t.y)),r=new Mi(i,n);this.resolve&&(this.resolve(r),this.isResolvedOrRejected=!0),this.deactivate(),this.setRectDomVisible(!1)}this.mouseDown=!1,this.mouseMove=!1,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1},this.keydown=e=>{"Escape"===e.code&&this.deactivate()},this.viewer=e,this.input=e.getInputManager()}get viewerContainer(){return this.viewer.viewerContainer}isActive(){return this.active}activate(){var e;if(this.isActive())return void(this.reject&&(this.deactivate(),this.reject("BoxSelectHelper is already actived!"),this.isResolvedOrRejected=!0));this.active=!0,this.input.addEventListener("pointerdown",this.mousedown),this.input.addEventListener("pointermove",this.mousemove),this.input.addEventListener("pointerup",this.mouseup),this.input.addEventListener("keydown",this.keydown);let t=this.viewer.controls;this.tempKey=t.mouseButtons.left,this.tempEnableRotate=t.enableRotate,t.mouseButtons.left=yt.NONE,this.tempTouch=t.touches.one,t.touches.one=yt.NONE,t.enableRotate=!1;let i=this.viewer.translate;if(i){this.tooltip=new Xl("box-select-tooltip",i("Tooltip.boxSelect"),{followPointer:!0,showOnCreate:!0,parentNode:this.viewer.widgetContainer,target:this.viewerContainer});let t=document.getElementById("box-select-tooltip");t&&(t.style.pointerEvents="none");let n=i("Tooltip.boxSelect");n&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(n))}this.viewer.dispatchEvent("BoxSelectActivated")}deactivate(){var e,t;this.active=!1,this.input.removeEventListener("pointerdown",this.mousedown),this.input.removeEventListener("pointermove",this.mousemove),this.input.removeEventListener("pointerup",this.mouseup),this.input.removeEventListener("keydown",this.keydown),null==(e=this.tooltip)||e.hide(),null==(t=this.tooltip)||t.destroy(),this.tooltip=void 0,this.viewer.controls.mouseButtons.left=this.tempKey,this.viewer.controls.enableRotate=this.tempEnableRotate,this.viewer.controls.touches.one=this.tempTouch,this.viewer.dispatchEvent("BoxSelectDeactivated"),this.resolve&&!this.isResolvedOrRejected&&(this.resolve(void 0),this.isResolvedOrRejected=!0)}drawRect(e,t){this.rectDom||(this.rectDom=document.createElement("div"),this.rectDom.style.cssText=`position: absolute;border: ${AP.BORDER_WIDTH} solid ${AP.BORDER_COLOR};`,this.viewerContainer.appendChild(this.rectDom)),this.setRectDomVisible(!0),this.rectDom.style.left=`${e.x}px`,this.rectDom.style.top=`${e.y}px`;let i=Math.abs(t.x-e.x),n=Math.abs(t.y-e.y);this.rectDom.style.width=`${i}px`,this.rectDom.style.height=`${n}px`}setRectDomVisible(e){this.rectDom&&(this.rectDom.style.display=e?"inline-block":"none")}select(){return ft(this,null,(function*(){return new Promise(((e,t)=>{this.resolve=e,this.reject=t,this.activate()}))}))}destroy(){var e;this.deactivate(),null==(e=this.rectDom)||e.remove(),this.rectDom=void 0,this.isResolvedOrRejected||this.reject&&this.reject("BoxSelectHelper is not done for some reason!")}},ep=AP;ep.BORDER_COLOR="#fff000",ep.BORDER_WIDTH="2px";var or=class extends Ss{constructor(e,t){if(!t.id)throw new Error("[Plugin] Missing plugin id!");super(),this.id=t.id,this.viewer=e,e.addPlugin(this)}destroy(){this.viewer.removePlugin(this)}},Oy=(e=>(e.BaseViewer="BaseViewer",e.BimViewer="BimViewer",e.DxfViewer="DxfViewer",e.VRViewer="VRViewer",e))(Oy||{}),tp=class extends Ss{constructor(e){super(),this.name="BaseViewer",this.translate=this.initLocalization(),this.height=0,this.width=0,this.jobCount=0,this.enableOverlayRenderer=!0,this.frustumSize=this.width,this.lastFrameExecuteTime=Date.now(),this.minFrameInterval=10,this.plugins=[],this.viewerCfg=e,this.undoRedoManager=new lC,this.initLogLevel(),this.initLocalization(),Fn.isBrowser&&!e.context&&(this.initContainer(),this.initViewerContainer(),this.initWidgetContainer())}initLogLevel(){let e=this.viewerCfg.logLevel;e&&hde(e)}initLocalization(){var e;let t=(null==(e=this.viewerCfg)?void 0:e.language)||"cn";return rg.init({lng:t,debug:!1,resources:{en:{translation:Xde},cn:{translation:Yde}}}),rg.t}initContainer(){let e=document.getElementById(this.viewerCfg.containerId);e||(se.error("[Viewer] containerId:",this.viewerCfg.containerId,"is not found in dom tree! will append to document body"),e=document.body);let t=document.createElement("div");t.classList.add("gemini-container"),t.style.cssText="width: 100%; height: 100%; position: relative;",e.appendChild(t),this.container=t}initViewerContainer(){let e=this.container;if(!e)return;let t=document.createElement("div");t.classList.add("gemini-viewer-container"),t.style.cssText="width: 100%; height: 100%;display: inline-block;position: relative; overflow: hidden;",e.appendChild(t),this.width=e.clientWidth,this.height=e.clientHeight,this.viewerContainer=t}initWidgetContainer(){let e=this.container;if(!e)return;let t=document.createElement("div");t.classList.add("gemini-widget-container"),e.appendChild(t),this.widgetContainer=t}initSpinner(){var e;if(!this.viewerCfg.enableSpinner)return;let t=document.createElement("div");t.classList.add("gemini-spinner"),t.appendChild(document.createElement("span")),t.appendChild(document.createElement("span")),t.appendChild(document.createElement("span")),t.appendChild(document.createElement("span")),null==(e=this.viewerContainer)||e.appendChild(t),this.spinner=t,this.setSpinnerVisibility(this.jobCount>0)}setSpinnerVisibility(e){this.spinner&&(e?this.spinner.classList.remove("hidden"):this.spinner.classList.add("hidden"))}increaseJobCount(){this.setSpinnerVisibility(++this.jobCount>0)}decreaseJobCount(){this.jobCount<=0?se.warn("[Viewer] jobCount should be at least 1 here!"):this.setSpinnerVisibility(--this.jobCount>0)}resize(e,t){let i=this.camera;if(i&&t>0){if(i instanceof hr)i.aspect=e/t;else if(i instanceof Nr){let n=e/t;i.left=-this.frustumSize/2,i.right=this.frustumSize/2,i.top=this.frustumSize/n/2,i.bottom=-this.frustumSize/n/2}i.updateProjectionMatrix(),this.renderer&&this.renderer.setSize(e,t,!0),this.overlayRender&&this.overlayRender.setSize(e,t)}this.width=e,this.height=t,this.enableRender()}destroy(){var e,t,i,n,r;this.clearPlugins(),null==(e=this.widgetContainer)||e.remove(),this.widgetContainer=void 0,null==(t=this.viewerContainer)||t.remove(),this.viewerContainer=void 0,null==(i=this.container)||i.remove(),this.container=void 0,null==(n=this.scene)||n.clear(),this.scene=void 0,this.requestAnimationFrameHandle&&(cancelAnimationFrame(this.requestAnimationFrameHandle),this.requestAnimationFrameHandle=void 0),this.renderer&&(this.renderer.domElement.remove(),this.renderer.clear(),this.renderer.dispose(),this.renderer.forceContextLoss(),this.renderer=void 0),this.overlayRender&&(this.overlayRender.destroy(),this.overlayRender=void 0),this.camera=void 0,this.controls&&(this.controls.dispose(),this.controls=void 0),this.groundPlane&&(this.groundPlane.geometry.dispose(),this.groundPlane.clear(),this.groundPlane=void 0),this.removeEventListener(),null==(r=this.undoRedoManager)||r.destroy(),this.spinner&&(this.spinner.remove(),this.spinner=void 0)}getInputManager(){return this.inputManager}getViewConfig(){return this.viewerCfg}enableRender(){}getRaycaster(){}getRaycastableObjectsByMouse(e){return[]}getBBox(){}getActiveSection(){}flyTo(e,t){}is3d(){return!0}get measurePlugin(){}getMarkupManager(){}deactivateMeasurement(){}setMeasurementVisibility(e,t){return!1}screenshot(e){return ft(this,null,(function*(){}))}getPixelSizeInWorldCoord(){let e=this.camera,{clientWidth:t,clientHeight:i}=this.viewerContainer,n=1;if("OrthographicCamera"===e.type){let r=e;n=Math.max(r.right-r.left,r.top-r.bottom)/r.zoom/Math.max(t,i)}else if("PerspectiveCamera"===e.type){let t=e,r=new D;e.getWorldPosition(r);let a=new D,s=this.controls;s.getTarget?s.getTarget(a):s.target&&(a=s.target),r&&a&&(n=r.distanceTo(a)*Math.tan(t.fov/2*Math.PI/180)*2/i)}return n}getUniqueModelId(e){let t=e,i=e=>!!this.loadedModels.find((t=>t.modelId===e));if(i(t)){let e=1;for(;i(`${t}_${e}`);)e++;t=`${t}_${e}`,se.warn(`[Viewer] Model '${t}' is loaded more than once!`)}return t}addPlugin(e){this.plugins.find((t=>t.id===e.id))?se.warn(`[Viewer] Plugin already exist: ${e.id}`):(this.plugins.push(e),se.debug(`[Viewer] Added plugin: ${e.id}`))}removePlugin(e){for(let t=0,i=this.plugins.length;tt.id===e))}},ky=class{constructor(e){this.active=!1,this.viewer=e,this.boxSelectHelper=new ep(e)}get viewerContainer(){return this.viewer.viewerContainer}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}isActive(){return this.active}activate(){var e;this.active=!0,null==(e=this.boxSelectHelper)||e.select().then((e=>{e&&this.handleZoomToRect(e.min,e.max)}))}deactivate(){var e;this.active=!1,null==(e=this.boxSelectHelper)||e.deactivate()}pickPositionByScreenPoint(e){let t=an.screen2Ndc(e,this.camera,this.viewerContainer);this.raycaster.layers.set(10),this.raycaster.setFromCamera(t,this.camera);let i=[];"BimViewer"===this.viewer.name?i=this.viewer.getRaycastableObjectsByMouse({x:e.x,y:e.y}):"DxfViewer"===this.viewer.name&&(i=[this.viewer.groundPlane]);let n=this.raycaster.intersectObjects(i)||[];if(n.length>0)return n[0].point}handleZoomToRect(e,t){let i=this.pickPositionByScreenPoint(e),n=this.pickPositionByScreenPoint(t);if(i&&n){let e=new D(Math.min(i.x,n.x),Math.min(i.y,n.y),Math.min(i.z,n.z)),t=new D(Math.max(i.x,n.x),Math.max(i.y,n.y),Math.max(i.z,n.z)),r=new Nt(e,t);this.viewer.zoomToBBox(r)}}destroy(){var e;null==(e=this.boxSelectHelper)||e.destroy(),this.boxSelectHelper=void 0}},CP=class extends Hi{constructor(e){super("MobileHelper"),this.needsFrustumCulled=!1,this.renderOrder=1e3,this.position=e}setPosition(e){this.position=e}isPointInPath(e,t){return!1}draw(e,t){this.drawInnerCircle(e),this.drawOuterRing(e),this.drawSnapTriangle(e)}drawInnerCircle(e){let{x:t,y:i}=this.position;e.save(),e.fillStyle="rgba(137, 137, 138, 0.8)",e.beginPath(),e.arc(t,i,25,0,2*Math.PI),e.closePath(),e.fill(),e.restore()}drawOuterRing(e){let{x:t,y:i}=this.position;e.save(),e.strokeStyle="rgba(17, 17, 19, 0.8)",e.lineWidth=10,e.beginPath(),e.arc(t,i,30,0,2*Math.PI),e.closePath(),e.stroke(),e.restore(),e.save(),e.strokeStyle="rgba(173, 173, 174, 0.8)",e.lineWidth=3,e.beginPath(),e.arc(t,i,35,0,2*Math.PI),e.closePath(),e.stroke(),e.restore()}drawSnapTriangle(e){let{x:t,y:i}=this.position;e.save(),e.fillStyle="rgba(17, 17, 19, 0.8)",e.strokeStyle="rgba(137, 137, 138, 0.8)",e.lineWidth=2,e.beginPath(),e.moveTo(t-35,i-35),e.lineTo(t-35+12,i-35),e.lineTo(t-35,i-35+12),e.closePath(),e.fill(),e.stroke(),e.restore()}translate(e,t){this.position.add(new xe(e,t))}getTouchPoint(){return{x:this.position.x-35,y:this.position.y-35}}isIntersect(e){return this.position.x-35e.x&&this.position.y+35>e.y}drawSelect(e,t){}getClassType(){return"MobileTouchHelperDrawable"}},Yl=(e=>(e.Distance="Distance",e.Area="Area",e.Angle="Angle",e.Coordinate="Coordinate",e))(Yl||{}),th=class extends Ss{constructor(e,t,i,n,r){super(),this.mouseMoved=!1,this.mouseDowned=!1,this.touchDowned=!1,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1,this.snapPoint=void 0,this.touchstart=e=>{this.mobileTouchHelper&&this.mobileTouchHelper.isIntersect(e)&&!this.touchDowned&&(this.clearClickedDrawable(),this.viewer.controls&&(this.viewer.controls.enabled=!1),this.touchDowned=!0,this.mouseDownPositionX=e.x,this.mouseDownPositionY=e.y)},this.touchmove=e=>{if(e.pointers&&e.pointers.length>1)return;let{width:t,height:i}=this.canvas.getBoundingClientRect();if(!(e.x>t-15||e.x<35||e.y<15||e.y>i-35)&&this.touchDowned&&this.mobileTouchHelper){let t=e.x-this.mouseDownPositionX,i=e.y-this.mouseDownPositionY;this.mobileTouchHelper.translate(t,i),this.mouseDownPositionX=e.x,this.mouseDownPositionY=e.y;let n=this.mobileTouchHelper.getTouchPoint(),r=this.getIntersections(n);if(!r.length)return void this.osnapHelper.deactivate();let a=Date.now();if(this.snapPoint=this.osnapHelper.handleSnap(r,this.viewer.is3d(),this.lastMouseDownPosition),se.debug(`[BaseMeasurement] handleSnap costs ${(Date.now()-a)/1e3}s`),!this.snapPoint)return void console.warn("[BaseMeasurement] Failed to find a snap point!");this.onMouseMove(this.snapPoint)}},this.touchend=e=>{var t;if(this.viewer.controls&&(this.viewer.controls.enabled=!0),!(e.pointers&&e.pointers.length>1)){if(this.touchDowned){this.touchDowned=!1;let e=null==(t=this.mobileTouchHelper)?void 0:t.getTouchPoint();this.onMouseClick(e)}else this.selectMeasurementByEvent(e);Fn.isMobile&&(this.osnapHelper.deactivate(),this.dispatchEvent("Updated"))}},this.mousedown=e=>{this.mouseMoved=!1,this.mouseDowned=!0,this.mouseDownPositionX=e.x,this.mouseDownPositionY=e.y},this.mousemove=e=>{if(this.lastMoveEvent=e,this.mouseDownPositionX>=0&&this.mouseDownPositionY>=0&&(Math.abs(e.x-this.mouseDownPositionX)>5||Math.abs(e.y-this.mouseDownPositionY)>5)&&(this.mouseMoved=!0),this.mouseDowned)return;let t=this.getIntersections(e);if(!t.length)return void this.osnapHelper.deactivate();let i=Date.now();this.snapPoint=this.osnapHelper.handleSnap(t,this.viewer.is3d(),this.lastMouseDownPosition),se.debug(`[BaseMeasurement] this.handleSnap costs ${(Date.now()-i)/1e3}s`),this.snapPoint?this.onMouseMove(this.snapPoint):console.warn("[BaseMeasurement] Failed to find a snap point!")},this.mouseup=e=>{this.mouseDowned=!1,this.mouseMoved||this.onMouseClick(e)},this.dblclick=()=>{se.info("[Measure] Double clicked")},this.keydown=e=>{if("Enter"===e.code){let e={x:0,y:0,pageX:0,pageY:0,clientX:0,clientY:0,deltaX:0,deltaY:0,button:2,movementX:0,movementY:0,deltaMode:0,pointerId:0,timestamp:0,buttons:0,pointerType:"mouse",altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1};this.onMouseClick(e)}else"Escape"===e.code&&this.cancel()},this.getIntersections=e=>{if(!this.raycaster)return[];this.raycaster.layers.set(11);let t=this.viewer.getRaycastableObjectsByMouse(e);se.debug(`[BaseMeasurement] The count of raycastable object is ${t.length}`,t);let i=Date.now(),n=this.raycaster.intersectObjects(t,!0)||[];return se.debug(`[BaseMeasurement] this.raycaster.intersectObjects costs ${(Date.now()-i)/1e3}s`),this.renderer.clippingPlanes.length>0&&(n=n.filter((e=>this.renderer.clippingPlanes.every((function(t){return t.distanceToPoint(e.point)>0}))))),n},this.type=e,this.viewer=t,this.inputManager=i,this.drawList=n,this.osnapHelper=r}get canvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get camera(){return this.viewer.camera}get renderer(){return this.viewer.renderer}get isActive(){return!!this.raycaster}get isMeasuring(){return!1===this.completed}setTouchHelper(e){this.mobileTouchHelper=e}createMobileExitButton(){let e=this.viewer.widgetContainer,t=document.createElement("button");return t.innerText="X",t.style.cssText="position: absolute;right: 5%; top: 5%;background-color: #000000;color: #ffffff;padding: 3px 10px;font-weight: bolder;",null==e||e.appendChild(t),this.exitButton=t,this.exitButton.style.display="none",t.addEventListener("touchstart",(()=>{this.exitDrawing(),this.exitButton&&(this.exitButton.style.display="none")})),this.addEventListener("FirstPointPicked",this.firstPickedListener=()=>{this.exitButton&&(this.exitButton.style.display="inline-block")}),this.addEventListener("Completed",this.completedListener=()=>{this.exitButton&&(this.exitButton.style.display="none")}),this.exitButton}activate(){if(Fn.isMobile)this.inputManager.addEventListener("touchstart",this.touchstart),this.inputManager.addEventListener("touchmove",this.touchmove),this.inputManager.addEventListener("touchend",this.touchend);else{this.inputManager.addEventListener("pointerdown",this.mousedown),this.inputManager.addEventListener("pointermove",this.mousemove),this.inputManager.addEventListener("pointerup",this.mouseup);let e=this.viewer.translate;if(e){this.tooltip=new Xl("measure-tooltip",e("Tooltip.measure"),{followPointer:!0,showOnCreate:!0,parentNode:this.viewer.widgetContainer,target:this.viewer.viewerContainer});let t=document.getElementById("measure-tooltip");t&&(t.style.pointerEvents="none")}this.setTooltipContent()}this.inputManager.addEventListener("dblclick",this.dblclick),this.inputManager.addEventListener("keydown",this.keydown),this.raycaster=this.viewer.getRaycaster()}deactivate(){var e,t;Fn.isMobile?(this.inputManager.removeEventListener("touchstart",this.touchstart),this.inputManager.removeEventListener("touchmove",this.touchmove),this.inputManager.removeEventListener("touchend",this.touchend)):(this.inputManager.removeEventListener("pointerdown",this.mousedown),this.inputManager.removeEventListener("pointermove",this.mousemove),this.inputManager.removeEventListener("pointerup",this.mouseup)),this.inputManager.removeEventListener("dblclick",this.dblclick),this.inputManager.removeEventListener("keydown",this.keydown),null==(e=this.tooltip)||e.hide(),null==(t=this.tooltip)||t.destroy(),this.tooltip=void 0,this.raycaster=void 0,this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable),this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}removeDrawable(e){this.dispatchEvent("WillBeRemoved",e)}clearClickedDrawable(){this.clickedOnMeasurementDrawable&&(this.clickedOnMeasurementDrawable.selected=!1,this.clickedOnMeasurementDrawable=void 0)}onMouseClick(e){if(Fn.isMobile)return;let t=Date.now();this.lastClickTime&&t-this.lastClickTime<500||(this.lastClickTime=t,this.selectMeasurementByEvent(e))}selectMeasurementByEvent(e){if(this.clickedOnMeasurementDrawable&&(this.clickedOnMeasurementDrawable.selected=!1,this.clickedOnMeasurementDrawable=void 0),null==this.completed||!0===this.completed){let t=this.getIntersections(e)[0];if(t){let e=this.drawList.getDrawableByPosition(t.point,this.raycaster);e&&(this.dispatchEvent("ClickedOnMeasurement",e),this.clickedOnMeasurementDrawable=e)}}}onMouseMove(e){this.createOrUpdateMeasureDrawable(e)}createOrUpdateMeasureDrawable(e){if(!this.drawingPoints||this.drawingPoints&&this.drawingPoints.length<1)return;let t=[...this.drawingPoints];if(!this.currentMeasureDrawable)return this.currentMeasureDrawable=this.createMeasureDrawable(),this.currentMeasureDrawable&&(this.currentMeasureDrawable.selected=!0),void this.dispatchEvent("WillBeAdded",this.currentMeasureDrawable);e&&t.push(e),this.currentMeasureDrawable.selected=!0,this.currentMeasureDrawable.update(t),this.currentMeasureDrawable.setDrawingState(!0),this.dispatchEvent("Updated")}},xa=class extends Hi{constructor(e,t){super(e),this.type="Distance",this.labelBounds=new Mi,this.drawing=!1,this.update(t)}setDrawingState(e){this.drawing=e}drawSelect(e,t){let i=this.getVertexes();this.drawPoints(e,t,i)}drawPoints(e,t,i){e.save(),e.fillStyle=xa.MAJOR_COLOR,e.strokeStyle=xa.MINOR_COLOR,e.lineWidth=xa.LINE_WIDTH,e.beginPath(),(this.drawing?i.slice(0,i.length-1):i).forEach((i=>{let n=this.transToScreenCoord(i,t);e.moveTo(n.x+xa.POINT_RADIUS,n.y),e.arc(n.x,n.y,xa.POINT_RADIUS,0,2*Math.PI)})),e.closePath(),e.fill(),e.stroke(),e.restore()}drawText(e,t){if(!this.label||!this.labelPositon)return;e.font=`${xa.LABEL_FONT_SIZE}px Arial`;let i=1.2*e.measureText(this.label).width,n=1.5*xa.LABEL_FONT_SIZE;this.labelBounds.setFromCenterAndSize(this.labelPositon,new xe(i,n)),this.drawRoundRect(e,this.labelPositon.x-i/2,this.labelPositon.y-n/2,i,n,4),e.save(),e.fillStyle=xa.MINOR_COLOR,e.textBaseline="middle",e.textAlign="center",e.fillText(this.label,this.labelPositon.x,this.labelPositon.y),e.restore()}drawRoundRect(e,t,i,n,r,a){n<2*a&&(a=n/2),r<2*a&&(a=r/2),e.save(),e.fillStyle=xa.MAJOR_COLOR,e.strokeStyle=xa.MINOR_COLOR,e.lineWidth=xa.LINE_WIDTH,e.beginPath(),e.moveTo(t+a,i),e.arcTo(t+n,i,t+n,i+r,a),e.arcTo(t+n,i+r,t,i+r,a),e.arcTo(t,i+r,t,i,a),e.arcTo(t,i,t+n,i,a),e.closePath(),e.fill(),this.selected&&e.stroke(),e.restore()}getVertexes(){return this.points}update(e){let{min:t,max:i}=(new Nt).setFromPoints(e);return this.x=t.x,this.y=t.y,this.width=Math.abs(i.x-t.x),this.height=Math.abs(i.y-t.y),this.points=e,this}getBounds(){let e=this.getVertexes();return(new Nt).setFromPoints(e)}getData(){return{id:this.id,type:this.type,points:this.points.map((e=>[e.x,e.y,e.z]))}}setData(e){super.setData(e),this.setLineColor(An.colorStr2Rgba(xa.MAJOR_COLOR)),this.setFillColor(An.colorStr2Rgba(xa.AREA_FILL_COLOR)),this.setLineWidth(xa.LINE_WIDTH)}isPointInPath(e,t){let i=null==t?void 0:t.ray;if(!i)return!1;let n=3*this.tolerance,r=this.transToScreenCoord(e,t.camera);if(this.labelBounds.containsPoint(r))return!0;let a=new D,s=new D,o=this.points;for(let l=0;l{let r=this.transToScreenCoord(i,t);0===n?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),3===this.points.length){let[i,n,r]=this.points.map((e=>this.transToScreenCoord(e,t))),a=(new xe).subVectors(i,n).normalize(),s=(new xe).subVectors(r,n).normalize(),o=Math.min(i.distanceTo(n),r.distanceTo(n)),l=a.angle(),h=s.angle();e.moveTo(n.x,n.y),e.arc(n.x,n.y,o/5,l,h,a.cross(s)<0)}if(e.stroke(),e.restore(),this.drawing){let i=1===this.points.length?this.points:this.points.slice(0,this.points.length-1);this.drawPoints(e,t,i)}this.drawText(e,t)}drawText(e,t){if(this.points.length<3)return;let[i,n,r]=this.points,a=this.getAngleBisector(i,n,r),s=this.calculateAngle(i,n,r);this.label=`${Bu(s,2)} ${this.getUnitString()}`;let o=.3*Math.min(i.distanceTo(n),r.distanceTo(n));this.labelPositon=this.transToScreenCoord(n.clone().add(new D(a.x*o,a.y*o,a.z*o)),t),super.drawText(e,t)}getAngleBisector(e,t,i){let n=e,r=t,a=i,s=new D(n.x-r.x,n.y-r.y,n.z-r.z).normalize(),o=new D(a.x-r.x,a.y-r.y,a.z-r.z).normalize();return new D(s.x+o.x,s.y+o.y,s.z+o.z).normalize()}calculateAngle(e,t,i){let n=e,r=t,a=i,s=new D(n.x-r.x,n.y-r.y,n.z-r.z),o=new D(a.x-r.x,a.y-r.y,a.z-r.z);return 180*s.angleTo(o)/Math.PI}getClassType(){return"Angle"}};Un._registerDrawableClass(x_);var PP=class extends th{constructor(e,t,i,n){super("Angle",e,t,i,n)}createMeasureDrawable(){if(this.drawingPoints)return new x_(St.guid(),this.drawingPoints)}onMouseClick(e){var t;if(super.onMouseClick(e),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),2===e.button)return void this.exitDrawing();let i=this.getIntersections(e)[0];if(!i)return;let n=null!=(t=this.snapPoint)?t:null==i?void 0:i.point;if(this.drawingPoints[0]&&Zt.areVector3sEqual(this.drawingPoints[0],n))return;let r=this.drawingPoints;r.push(n),this.lastMouseDownPosition=n,1===r.length&&(this.dispatchEvent("FirstPointPicked"),this.completed=!1),this.createOrUpdateMeasureDrawable(),r.length>=3&&this.complete()}exitDrawing(){this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=void 0,this.lastMouseDownPosition=void 0}complete(){var e;!0!==this.completed&&(null==(e=this.currentMeasureDrawable)||e.setDrawingState(!1),this.dispatchEvent("Completed",this.currentMeasureDrawable),this.completed=!0,this.currentMeasureDrawable=void 0,this.drawingPoints=void 0,this.lastMouseDownPosition=void 0)}cancel(){let e=this.drawingPoints;if(e&&e.length>0&&(e.pop(),0===e.length&&(this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=!0),this.lastMoveEvent)){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}this.osnapHelper.deactivate(),this.lastMouseDownPosition=void 0}deactivate(){super.deactivate(),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)}setTooltipContent(){var e;let t=this.viewer.translate;if(!t)return;let i=t("Tooltip.measure");i&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(i))}},rp=class extends Lr{constructor(e,t,i){super(e,t),this.type="Area",this.scale=i,this.update(t)}draw(e,t){let i=this.points;if(e.save(),e.lineWidth=Lr.LINE_WIDTH,e.strokeStyle=Lr.MAJOR_COLOR,e.fillStyle=Lr.AREA_FILL_COLOR,e.beginPath(),i.forEach(((i,n)=>{let r=this.transToScreenCoord(i,t);0===n?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),e.closePath(),e.fill(),e.stroke(),e.restore(),this.drawing){let i=1===this.points.length?this.points:this.points.slice(0,this.points.length-1);this.drawPoints(e,t,i)}this.drawText(e,t)}drawText(e,t){if(this.points.length<3)return;let i=this.points,n=this.calculateArea(i);this.scale&&(n*=Math.pow(this.scale,2)),this.label=`${Bu(n,2)}`,this.labelPositon=this.transToScreenCoord(this.getBarycenter(i),t),super.drawText(e,t)}calculateArea(e){let t=0,i=Um.getFaces(e);for(let n=0;n{i+=e.x,n+=e.y,r+=e.z})),new D(i/t,n/t,r/t)}isPointInPath(e,t){let i=null==t?void 0:t.ray;if(!i)return!1;let n=this.transToScreenCoord(e,t.camera);if(this.labelBounds.containsPoint(n))return!0;let r=3*this.tolerance,a=new D,s=new D,o=this.points;for(let h=0;h2&&this.drawingPoints[0]){let t=this.drawingPoints[0];tve.subVectors(e,t).length()<3*this.viewer.getPixelSizeInWorldCoord()&&(this.osnapHelper.activateMarker(1,{point:t,type:1,distance:0}),se.info("[AreaMeasurement] auto close area measurement."))}}onMouseClick(e){var t,i;if(super.onMouseClick(e),this.clickedOnMeasurementDrawable)return;this.drawingPoints||(this.drawingPoints=[]);let n=this.drawingPoints;if(2===e.button)return void this.exitDrawing();let r=this.getIntersections(e)[0];if(!r)return void se.warn("[Measure] No intersection found!");let a=null!=(i=null==(t=this.snapPoint)?void 0:t.clone())?i:null==r?void 0:r.point.clone();if(this.drawingPoints&&this.drawingPoints.length>2&&this.drawingPoints[0]){let e=this.drawingPoints[0];if(tve.subVectors(a,e).length()<3*this.viewer.getPixelSizeInWorldCoord())return se.info("[AreaMeasurement] auto close area measurement."),this.touchDowned=!1,void this.exitDrawing()}this.drawingPoints[0]&&Zt.areVector3sEqual(this.drawingPoints[0],a)||(n.push(a),this.lastMouseDownPosition=a,1===n.length&&(this.dispatchEvent("FirstPointPicked"),this.completed=!1),this.createOrUpdateMeasureDrawable())}exitDrawing(){let e=this.drawingPoints||[],t=!0;if(e.length<3&&(se.warn("[Measure] If the number of points is less than 3, the measurement area cannot be formed !"),t=!1),t&&Um.isSelfIntersecting(e)&&(se.warn("[Measure] The area formed by these points intersects itself, so the correct measurement cannot be obtained !"),t=!1),!t)return this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=void 0,void(this.lastMouseDownPosition=void 0);this.createOrUpdateMeasureDrawable(),this.complete()}complete(){var e;!0!==this.completed&&(null==(e=this.currentMeasureDrawable)||e.setDrawingState(!1),this.dispatchEvent("Completed",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0)}cancel(){let e=this.drawingPoints;if(e&&e.length>0&&(e.pop(),0===e.length&&(this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=!0),this.lastMoveEvent)){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}this.osnapHelper.deactivate(),this.lastMouseDownPosition=void 0}setTooltipContent(){var e;let t=this.viewer.translate;if(t){let i=t("Tooltip.areaMeasurement");i&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(i))}}getScale(){return this.scale}setScale(e){this.scale=e;let t=this.drawList.getDrawables();for(let i of t){let t=i[1];t instanceof rp&&(t.scale=e)}}},b_=class extends Lr{constructor(e,t){super(e,t),this.type="Coordinate",this.update(t)}draw(e,t){this.drawText(e,t),e.save(),e.lineWidth=Lr.LINE_WIDTH,e.strokeStyle=Lr.MAJOR_COLOR,e.fillStyle=Lr.AREA_FILL_COLOR;let i=this.points;e.beginPath(),i.forEach((i=>{let n=this.transToScreenCoord(i,t);e.arc(n.x,n.y,Lr.POINT_RADIUS,0,2*Math.PI)})),e.fill(),e.stroke(),e.restore()}drawText(e,t){let i=this.points[0];Zt.areNumbersEqual(i.x,0);let n=Zt.areNumbersEqual(i.x,0)?0:i.x,r=Zt.areNumbersEqual(i.y,0)?0:i.y,a=Zt.areNumbersEqual(i.z,0)?0:i.z;this.label=`${Bu(n,2)}, ${Bu(r,2)}, ${Bu(a,2)}`,e.font=`${Lr.LABEL_FONT_SIZE}px Arial`;let s=1.2*e.measureText(this.label).width,o=1.5*Lr.LABEL_FONT_SIZE;this.labelPositon=this.transToScreenCoord(i,t),this.labelPositon.y-=o/2,this.labelBounds.setFromCenterAndSize(this.labelPositon,new xe(s,o)),this.drawRoundRect(e,this.labelPositon.x-s/2,this.labelPositon.y-o/2,s,o,4),e.save(),e.fillStyle=Lr.MINOR_COLOR,e.textBaseline="middle",e.textAlign="center",e.fillText(this.label,this.labelPositon.x,this.labelPositon.y),e.restore()}getClassType(){return"Coordinate"}};Un._registerDrawableClass(b_);var LP=class extends th{constructor(e,t,i,n){super("Coordinate",e,t,i,n)}createMeasureDrawable(){if(this.drawingPoints)return new b_(St.guid(),this.drawingPoints)}onMouseClick(e){var t;if(super.onMouseClick(e),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),2===e.button)return void this.exitDrawing();let i=this.getIntersections(e)[0];if(!i)return;let n=null!=(t=this.snapPoint)?t:null==i?void 0:i.point,r=this.drawingPoints;r.push(n),this.lastMouseDownPosition=n,1===r.length&&(this.dispatchEvent("FirstPointPicked"),this.completed=!1),this.createOrUpdateMeasureDrawable(n),r.length>=1&&this.complete()}exitDrawing(){this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=void 0,this.lastMouseDownPosition=void 0}complete(){!0!==this.completed&&(this.dispatchEvent("Completed",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0)}cancel(){let e=this.drawingPoints;if(e&&e.length>0&&(e.pop(),0===e.length&&(this.completed=!0),this.lastMoveEvent)){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}setTooltipContent(){var e;let t=this.viewer.translate;if(t){let i=t("Tooltip.measure");i&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(i))}}},R4=class extends Lr{constructor(e,t,i){super(e,t),this.type="Distance",this.scale=i,this.update(t)}draw(e,t){let i=this.points;if(e.save(),e.lineWidth=Lr.LINE_WIDTH,e.strokeStyle=Lr.MAJOR_COLOR,e.beginPath(),i.forEach(((i,n)=>{let r=this.transToScreenCoord(i,t);0===n?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)})),e.closePath(),e.stroke(),e.restore(),this.drawing){let i=1===this.points.length?this.points:this.points.slice(0,this.points.length-1);this.drawPoints(e,t,i)}else this.selected||this.drawVerticalLine(e,t);this.drawText(e,t)}drawText(e,t){if(this.points.length<2)return;let[i,n]=this.points,r=i.distanceTo(n);this.scale&&(r*=this.scale),this.label=`${Bu(r,2)}`,this.labelPositon=this.transToScreenCoord((new D).lerpVectors(i,n,.5),t),super.drawText(e,t)}drawVerticalLine(e,t){if(this.points.length<2)return;let[i,n]=this.points.map((e=>this.transToScreenCoord(e,t))),[r,a]=this.getShortLineBySegments(i,n),[s,o]=this.getShortLineBySegments(n,i);e.save(),e.lineWidth=Lr.LINE_WIDTH,e.strokeStyle=Lr.MAJOR_COLOR,e.beginPath(),e.moveTo(r.x,r.y),e.lineTo(a.x,a.y),e.moveTo(s.x,s.y),e.lineTo(o.x,o.y),e.stroke(),e.restore()}getShortLineBySegments(e,t){let i=(new xe).subVectors(t,e).normalize(),n=R4.SHORT_LINE_LENGTH/2,r=Math.PI/2;return[i.clone().rotateAround(new xe,r).normalize().multiplyScalar(n).add(e),i.clone().rotateAround(new xe,-r).normalize().multiplyScalar(n).add(e)]}getClassType(){return"Distance"}setScale(e){this.scale=e}},og=R4;og.SHORT_LINE_LENGTH=12,Un._registerDrawableClass(og);var DP=class extends th{constructor(e,t,i,n){super("Distance",e,t,i,n)}createMeasureDrawable(){if(this.drawingPoints)return new og(St.guid(),this.drawingPoints,this.scale)}onMouseClick(e){var t;if(super.onMouseClick(e),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),2===e.button)return void this.exitDrawing();let i=this.getIntersections(e)[0];if(!i)return;let n=null!=(t=this.snapPoint)?t:null==i?void 0:i.point;if(this.drawingPoints[0]&&Zt.areVector3sEqual(this.drawingPoints[0],n))return;let r=this.drawingPoints;r.length<2&&r.push(n),this.lastMouseDownPosition=n,1===r.length&&(this.dispatchEvent("FirstPointPicked"),this.completed=!1),this.createOrUpdateMeasureDrawable(),r.length>=2&&this.complete()}exitDrawing(){this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=void 0,this.lastMouseDownPosition=void 0}complete(){var e;!0!==this.completed&&(null==(e=this.currentMeasureDrawable)||e.setDrawingState(!1),this.dispatchEvent("Completed",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0)}cancel(){let e=this.drawingPoints;e&&e.length>0&&(e.pop(),0===e.length&&(this.completed=!0),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)),this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}deactivate(){super.deactivate(),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)}setTooltipContent(){var e;let t=this.viewer.translate;if(t){let i=t("Tooltip.measure");i&&this.tooltip&&(null==(e=this.tooltip)||e.setContent(i))}}getScale(){return this.scale}setScale(e){this.scale=e;let t=this.drawList.getDrawables();for(let i of t){let t=i[1];(t instanceof og||t instanceof rp)&&(t.scale=e)}}},A4=class extends or{constructor(e){var t,i;super(e,{id:A4.DEFAULT_ID}),this.selectedDrawable=void 0,this.drawableList=new Zo("measure"),this.drawableHelperList=new Zo("touchHelper"),this.snapToleranceInPixel=3,this.measurements={},this.activeMeasurementType=void 0,this.keydown=e=>{var t;let i,n=this.getActiveMeasurementType();n&&(i=this.measurements[n]);let r=this.selectedDrawable;r&&"Delete"===e.code&&(this.remove(r),null==(t=this.viewer.undoRedoManager)||t.addCommand(new sy(this,r.getData())),this.activeMeasurementType&&this.measurements[this.activeMeasurementType].clearClickedDrawable()),e.ctrlKey&&"KeyZ"===e.code&&null!=i&&i.isMeasuring&&i.cancel(),e.ctrlKey&&"KeyY"===e.code&&null!=i&&i.isMeasuring};let n=e.getInputManager();if(!n)throw"InputManager init error";this.inputManager=n,this.overlayRender=this.viewer.overlayRender,null==(t=this.overlayRender)||t.addDrawableList(this.drawableHelperList),null==(i=this.overlayRender)||i.addDrawableList(this.drawableList);let r=new MP(this.overlayRender);e.is3d()&&(r.setOSnapTypeEnabled(32,!1),r.setOSnapTypeEnabled(64,!1)),this.measurements.Distance=new DP(e,n,this.drawableList,r),this.measurements.Area=new IP(e,n,this.drawableList,r),this.measurements.Angle=new PP(e,n,this.drawableList,r),this.measurements.Coordinate=new LP(e,n,this.drawableList,r),this.osnapHelper=r,this.inputManager.addEventListener("wheel",(()=>{this.updateSnapTolerance()})),this.viewer.addEventListener("LayoutChanged",(()=>{this.updateSnapTolerance()})),this.initEvents()}initEvents(){Object.values(this.measurements).forEach((e=>{e.addEventListener("Completed",(e=>{var t;this.viewer.dispatchEvent("MeasurementAdded",e.getData()),null==(t=this.viewer.undoRedoManager)||t.addCommand(new pE(this,e.getData())),this.select(e)})),e.addEventListener("WillBeAdded",(e=>{this.add(e,!1)})),e.addEventListener("Updated",(()=>{this.render()})),e.addEventListener("WillBeRemoved",(e=>{this.remove(e,!1)})),e.addEventListener("Deactivate",(()=>{this.osnapHelper.deactivate(),this.viewer.deactivateMeasurement()})),e.addEventListener("FirstPointPicked",(()=>{this.unselect()})),e.addEventListener("ClickedOnMeasurement",(e=>{this.select(e)}))}))}get canvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get raycaster(){return this.viewer.getRaycaster()}add(e,t=!0){this.drawableList.addDrawable(e),this.selectedDrawable=e,this.render(),t&&this.viewer.dispatchEvent("MeasurementAdded",e.getData())}create(e){return Un.createDrawable(e)}remove(e,t=!0){this.drawableList.removeDrawable(e),this.render(),t&&this.viewer.dispatchEvent("MeasurementRemoved",e.getData())}setSnapTolerance(e){this.snapToleranceInPixel=e,this.updateSnapTolerance()}updateSnapTolerance(){let e=this.viewer.getPixelSizeInWorldCoord()*this.snapToleranceInPixel;this.osnapHelper.setSnapTolerance(e)}activate(e){this.activeMeasurementType&&this.deactivate(),this.measurements[e]?(this.measurements[e].activate(),this.activeMeasurementType=e,this.updateSnapTolerance()):(this.activeMeasurementType=void 0,se.error("[Measure] Failed to activate measurement, type:",e));let{width:t,height:i}=this.canvas.getBoundingClientRect();Fn.isMobile&&this.canvas&&!this.mobileTouchHelper&&(this.mobileTouchHelper=new CP(new xe(t/2,i/2)),this.drawableHelperList.addDrawable(this.mobileTouchHelper)),this.mobileTouchHelper&&(this.mobileTouchHelper.setPosition(new xe(t/2,i/2)),this.measurements[e].setTouchHelper(this.mobileTouchHelper),this.mobileTouchHelper.visible=!0,this.render()),this.inputManager.addEventListener("keydown",this.keydown)}deactivate(){this.unselect();let e=this.activeMeasurementType;e&&this.measurements[e].deactivate(),this.activeMeasurementType=void 0,this.mobileTouchHelper&&(this.mobileTouchHelper.visible=!1,this.render()),this.inputManager.removeEventListener("keydown",this.keydown)}getActiveMeasurementType(){return this.activeMeasurementType}isActive(){let e=this.activeMeasurementType;return e?this.measurements[e].isActive:!!this.getActiveMeasurementType()}isMeasuring(){let e=this.activeMeasurementType;return!!e&&this.measurements[e].isMeasuring}getData(){return this.drawableList.getDrawableDatas()}cancel(){let e=this.activeMeasurementType;e&&this.measurements[e].exitDrawing()}setData(e){var t,i;null==(t=this.viewer.undoRedoManager)||t.startTransaction(),e.forEach((e=>{var t;this.measurements[e.type]?e.points.length>=2?(this.add(Un.createDrawable(e)),null==(t=this.viewer.undoRedoManager)||t.addCommand(new pE(this,e))):se.info("[Measure] Invalid points found in MeasurementData:",e):se.warn("[Measure] Failed to add measurement data for",e)})),null==(i=this.viewer.undoRedoManager)||i.endTransaction()}setVisibilityById(e,t){let i=this.drawableList.getDrawables().get(e);return!!i&&(i.visible!==t&&(i.visible=t,this.render()),!0)}setVisibilities(e){let t=!1;this.drawableList.getDrawables().forEach((i=>{i.visible!==e&&(i.visible=e,t=!0)})),t&&this.render()}clear(){let e=this.activeMeasurementType;e&&this.measurements[e].exitDrawing(),this.drawableList.clear(),this.render()}getById(e){return this.drawableList.getDrawableById(e)}removeById(e){let t=this.drawableList.getDrawableById(e);t?this.remove(t):se.warn("[Measure] Failed to find measurement by id:",e)}selectById(e){let t=this.drawableList.getDrawableById(e);t&&this.select(t)}select(e){this.unselect(!1),e.selected=!0,this.selectedDrawable=e,this.render()}unselect(e=!0){this.selectedDrawable&&(this.selectedDrawable.selected=!1,e&&this.render()),this.selectedDrawable=void 0}getScale(){return this.measurements.Distance.getScale()}setScale(e){if(!e||e<=0)return void se.error("[Measure] Invalid scale value:",e);let t=this.measurements.Distance,i=this.measurements.Area;t.setScale(e),i.setScale(e)}destroy(){super.destroy(),this.deactivate(),this.clear(),this.drawableHelperList.clear(),this.measurements={},this.osnapHelper.destroy(),this.render()}render(e=!1){var t;e?this.viewer.enableRender():null==(t=this.overlayRender)||t.render()}},lg=A4;lg.DEFAULT_ID="MeasurementPlugin";var Fy=new et,nve=new et,rve=new ma,C4=new D,Ny=new Nt,ive=new ct,ip=class extends tp{constructor(e){super(e),this.name="DxfViewer",this.CAMERA_Z_POSITION=100,this.CAMERA_MIN_ZOOM=1e-6,this.timer=Date.now(),this.loadedModels=[],this.masterModelId="",this.raycaster=new na,this.selected=!0,this.raf=new $f,this.clock=new ho,this.renderEnabled=!1,this.enableHideVisuallySmallObjects=!0,this.sortedHidableObjects={},this.lastCameraZoom=1/0,this.lastFrame=-1,this.activeLayoutName="",this.layoutInfos={},this.units=void 0,this.fpsUtils=new OA,this.onResize=()=>{this.viewerContainer&&this.viewerContainer&&this.resize(this.viewerContainer.clientWidth,this.viewerContainer.clientHeight)},this.enableRender=(e=1e3)=>{this.renderEnabled=!0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.timeoutSymbol=this.raf.setTimeout((()=>{this.renderEnabled=!1}),e))},this.loadingDxfCount=0,this.compareMode=!1,this.viewerCfg=e,this.increaseJobCount(),this.init(),this.animate(),this.enableRender(),this.decreaseJobCount(),se.info(`[Viewer] Initialized in ${(Date.now()-this.timer)/1e3}s`)}init(){let e=this.viewerCfg;this.initThree(),Fn.isBrowser&&!e.context&&this.initDom(),this.initInputManager(),this.initEvents(),this.initControls(),this.initOthers(),this.enableSelection=e.enableSelection}initInputManager(){this.viewerContainer&&(this.inputManager=new Ko(this.viewerContainer))}initThree(){this.initScene(),this.initRenderer(),this.initCamera()}initDom(){let e=this.viewerCfg;this.initSpinner(),this.initCSS2DRenderer(),!0===e.enableAxisGizmo&&console.warn("[Viewer] enableAxisGizmo is deprecated, use AxisGizmoPlugin instead!"),!0===e.enableStats&&console.warn("[Viewer] enableStats is deprecated, use StatsPlugin instead!"),e.enableToolbar&&console.warn("[Viewer] enableToolbar is deprecated, use ToolbarPlugin instead!"),e.enableBottomBar&&console.warn("[Viewer] enableBottomBar is deprecated, use BottomBarPlugin instead!"),e.enableProgressBar&&(this.loadingProgressBar=this.initLoadingProgressBar()),e.enableLayoutBar&&(this.dxfLayoutBar=new rP(this))}initScene(){let e=new Si;e.background=new ct(2172976),e.matrixAutoUpdate=!1,e.matrixWorldAutoUpdate=!1,this.scene=e}initRenderer(){var e;let{context:t}=this.viewerCfg,i={context:t,antialias:!0,preserveDrawingBuffer:!0,alpha:!1,stencil:!1};!Fn.isBrowser&&t&&Object.assign(i,{context:t,canvas:Fn.creatReactNativeCanvas(t)}),t&&(this.width=t.drawingBufferWidth,this.height=t.drawingBufferHeight),this.renderer=new Ts(i),this.renderer.setClearColor(11119017,1),this.renderer.localClippingEnabled=!0,Fn.isBrowser&&(!t&&this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.domElement.classList.add("webgl-renderer"),null==(e=this.viewerContainer)||e.appendChild(this.renderer.domElement)),this.renderer.setSize(this.width,this.height),St.printGpuInfo(this.renderer.getContext()),gn.maxFragmentUniforms=this.renderer.capabilities.maxFragmentUniforms-20,this.enableOverlayRenderer&&(this.overlayRender=new Un(this))}initCSS2DRenderer(){var e;let t=new Nu;t.setSize(this.width,this.height),t.domElement.style.height="0",t.domElement.style.width="0",t.domElement.style.position="absolute",t.domElement.style.top="0",t.domElement.style.left="0",t.domElement.style.overflow="visible",t.domElement.classList.add("css2d-renderer"),null==(e=this.viewerContainer)||e.appendChild(t.domElement),this.css2dRenderer=t}initCamera(){if(!this.scene)return;let e=new Nr(-this.width/2,this.width/2,this.height/2,-this.height/2,.1,1e5);e.position.set(0,0,this.CAMERA_Z_POSITION),e.zoom=10,e.updateProjectionMatrix(),this.scene.add(e),this.camera=e,this.frustumSize=this.width}initControls(){let e=this.camera;if(!this.inputManager||!e)return;let t=new va(e,this.inputManager);t.enableRotate=!1,t.enabled=!0,t.keyTruckSpeed=10,t.dollyToCursor=!0,t.dollySpeed=.5,t.truckSpeed=1,t.mouseButtons={left:yt.TRUCK,middle:yt.TRUCK,wheel:yt.ZOOM,right:yt.TRUCK},t.touches={one:yt.TOUCH_TRUCK,two:yt.TOUCH_ZOOM_TRUCK,three:yt.NONE},t.listenToKeyEvents(),t.update(0),this.controls=t,t.addEventListener("control",this.onControlsChange(this))}onControlsChange(e){return()=>{this.updateHidableObjectsVisibility(),e.enableRender()}}initEvents(){if(!this.inputManager||!this.renderer)return;let e=!1,t=!1;this.inputManager.addEventListener("pointerdown",(i=>{var n;t=!1,e=!0,1===i.button&&(null==(n=this.inputManager)||n.setCursor("move"))})),this.inputManager.addEventListener("pointermove",(()=>{var i;e&&(t=!0,null==(i=this.inputManager)||i.setCursor("move"))})),this.inputManager.addEventListener("pointerup",(i=>{var n;if(e=!1,null==(n=this.inputManager)||n.setCursor("default"),t)return void(t=!1);this.handleMouseClick(i);let r={evt:i};if(this.selectedObject&&this.selectedObject instanceof Ai&&(r.markupData=this.selectedObject.getData()),this.selectedObject&&this.selectedObject instanceof Lr&&(r.measureData=this.selectedObject.getData()),this.selectedObject&&this.selectedObject instanceof on){let e=t=>t.parent&&!t.parent.isScene?e(t.parent):t.name;r.entityData={modelId:e(this.selectedObject),layerName:this.selectedObject.userData.layerName}}this.dispatchEvent("MouseClicked",r)})),this.inputManager.addEventListener("keydown",(e=>{var t,i,n,r,a;if(e.altKey&&"KeyR"===e.code)this.flyToRandomObject();else if(e.ctrlKey&&"KeyZ"===e.code){if(this.measurePlugin&&this.measurePlugin.isMeasuring())return;null==(t=this.undoRedoManager)||t.undo()}else if(e.ctrlKey&&"KeyY"===e.code){if(this.measurePlugin&&this.measurePlugin.isMeasuring())return;null==(i=this.undoRedoManager)||i.redo()}else"Delete"===e.code&&this.selectedObject&&(this.markupManager&&this.selectedObject instanceof Ai&&(this.markupManager.removeMarkup(this.selectedObject),null==(n=this.undoRedoManager)||n.addCommand(new Wm(this.markupManager,this.selectedObject.getData()))),this.measurePlugin&&this.selectedObject instanceof Lr&&(null==(r=this.measurePlugin)||r.remove(this.selectedObject),null==(a=this.undoRedoManager)||a.addCommand(new sy(this.measurePlugin,this.selectedObject.getData()))))}))}initOthers(){!this.scene||!this.renderer||!this.camera||(this.renderer.domElement.style.outlineWidth="0")}initLoadingProgressBar(){return new Yf(this.widgetContainer)}showLayoutBar(){var e;null==(e=this.dxfLayoutBar)||e.show()}hideLayoutBar(){var e;null==(e=this.dxfLayoutBar)||e.hide()}animate(){var e,t,i;if(this.minFrameInterval>0&&Date.now()-this.lastFrameExecuteTime{var i;null==(i=this.loadingProgressBar)||i.updateProgress(o,l,e),t&&t(new ProgressEvent("LoadProgress",{loaded:e,total:100}))},c=(e,i,n)=>{var r;let a=100*e.loaded/e.total;a=a*(n-i)/100+i,null==(r=this.loadingProgressBar)||r.updateProgress(o,l,a),t&&t(new ProgressEvent("LoadProgress",{loaded:a,total:100}))};null==(i=this.loadingProgressBar)||i.addProgressItem(o),h(0);let u={ignorePaperSpace:a,enableLocalCache:this.viewerCfg.enableLocalCache,enableMerge:e.merge,encoding:e.encoding,overrideColor:e.overrideColor},d=yield s.loadDxfData(e.src,e.modelId,(e=>c(e,0,90)),void 0,u).finally((()=>{this.loadingDxfCount--,0===this.loadingDxfCount&&this.fontManager&&this.fontManager.releaseFontData()}));if(se.info(`[Viewer] Loaded '${e.src}' in ${(Date.now()-this.timer)/1e3}s, adding to scene...`),gn.abortJobs&&Promise.reject("[Viewer] abort load dxf"),0===d.threejsObject.children.length){let t=`[Viewer] Nothing was loaded from ${e.src}`;return se.warn(t),this.decreaseJobCount(),Promise.reject(t)}let p=d.threejsObject;p.name=r;let f=this.getDxfUnits(d);if(this.masterModelId===e.modelId&&(this.units=f),se.info(`[Viewer] Units of '${e.src}' is '${f}'`),e.matrix&&16===e.matrix.length){let t=new et;t.elements=e.matrix,p.applyMatrix4(t)}return this.addModel({modelId:r,dxfData:d}),St.printMemory("After addModel()"),se.info(`[Viewer] Added '${e.src}' to scene in ${(Date.now()-this.timer)/1e3}s`),this.decreaseJobCount(),h(100),null==(n=this.loadingProgressBar)||n.delayRemoveProgressItem(o),this.dispatchEvent("ModelLoaded"),Promise.resolve()}))}unloadDxf(){throw new Error("Not implemented yet!")}addModel(e){if(!this.scene||!this.camera)return;let{dxfData:t,pdfData:i}=e,n=this.getUniqueModelId(e.modelId);if(this.masterModelId||(this.masterModelId=n),t){let e=t.threejsObject;e.name=n;let i={modelId:n,dxfData:t};this.loadedModels.push(i),e.matrixAutoUpdate=!1,e.updateMatrix(),e.updateMatrixWorld(!0),gn.computeLineDistances(e),this.getMsTransformMatrix(n),this.masterModelId===n?this.activateLayout(gn.MODEL_LAYOUT_NAME):this.handleOverlayDxf(n),se.debug("[Viewer] dxfData:",t),this.scene.add(e);let r=null==t?void 0:t.threejsObject.children.find((e=>e.name===gn.MODEL_LAYOUT_NAME));r&&this.setLayoutHidableObjectArray(r),this.updateGroundPlane(),this.raycastableObjects=void 0,this.masterModelId===n||this.enableRender()}else if(i){let t=i.threejsObject;this.activeLayoutName=gn.MODEL_LAYOUT_NAME;let n=(new Nt).setFromObject(t);this.layoutInfos[this.activeLayoutName]={homeViewExtent:n,extent:n},this.loadedModels.push(e),t.matrixAutoUpdate=!1,this.scene.add(t);let r=n.max.z;r>this.camera.position.z&&(this.camera.position.z=r,this.camera.updateProjectionMatrix()),this.updateGroundPlane(),this.flyToObject(t)}}isCompareMode(){return this.compareMode}compare(e,t,i,n){return ft(this,null,(function*(){var r,a,s,o;let{src:l,modelId:h}=e,{src:c}=t;if(this.compareMode)return Promise.reject("[Viewer] It is already under comparing mode!");if(this.masterModelId||this.loadedModels.length>0)return Promise.reject("[Viewer] Shouldn't load anything else before compare!");if(this.compareMode=!0,this.timer=Date.now(),this.increaseJobCount(),!this.fontManager)return Promise.reject("[Viewer] Should set font first!");let u={ignorePaperSpace:!0,encoding:e.encoding},d=new gn(this.loadingManager,u);d.setFont(this.fontManager);let p=l+c,f=this.translate("ProgressBar.Comparing"),m=e=>{var t;null==(t=this.loadingProgressBar)||t.updateProgress(p,f,e),n&&n(new ProgressEvent("CompareProgress",{loaded:e,total:100}))},g=(e,t,i)=>{var r;let a=100*e.loaded/e.total;a=a*(i-t)/100+t,null==(r=this.loadingProgressBar)||r.updateProgress(p,f,a),n&&n(new ProgressEvent("CompareProgress",{loaded:a,total:100}))};St.printMemory("Before comparing"),this.masterModelId=h||l,this.loadingDxfCount+=2,null==(r=this.loadingProgressBar)||r.addProgressItem(p),m(0);let v=Date.now(),y=yield d.parse(l,(e=>g(e,0,15))),x=yield d.parse(c,(e=>g(e,15,30))),[b,_]=yield Promise.allSettled([y,x]);if("rejected"===b.status)return Promise.reject(`[Viewer] Failed to parse ${l}`);if("rejected"===_.status)return Promise.reject(`[Viewer] Failed to parse ${c}`);if(se.info(`[Viewer] loadFiles in ${(Date.now()-v)/1e3}s`),gn.abortJobs)return Promise.reject("[Viewer] compare loadFile aborted");let w=b.value,S=_.value;v=Date.now();let M=yield new ls(w,S,i).compare((e=>g(e,30,60)));if(se.info(`[Viewer] Compared in ${(Date.now()-v)/1e3}s`),se.debug("[Viewer] Compared results:",M),gn.abortJobs)return Promise.reject("[Viewer] compare change aborted");St.printMemory("After getting the comparison results"),v=Date.now(),yield d.loadEntitiesForCompare(w,S,M,!0,(e=>g(e,60,95))),St.printMemory("After Creating threejs objects based on comparison result"),this.fontManager.releaseFontData(),this.changes=M,se.info(`[Viewer] Creates threejs objects based on comparison result in ${(Date.now()-v)/1e3}s`);let E=w,T=S;if(this.loadingDxfCount-=2,this.decreaseJobCount(),Object.keys(M).length||se.info("[Viewer] No change found"),0===(null==(a=E.threejsObject)?void 0:a.children.length)&&0===(null==(s=T.threejsObject)?void 0:s.children.length)){let e=`[Viewer] Nothing was loaded from ${l} and ${c}`;return se.warn(e),Promise.reject(e)}let A=E.threejsObject,C=T.threejsObject;return A.name=l,C.name=c,v=Date.now(),this.addModel({modelId:e.modelId||e.src,dxfData:E}),St.printMemory("After adding first loaded Model to scene"),m(95),this.addModel({modelId:t.modelId||t.src,dxfData:T}),St.printMemory("After adding second loaded Model to scene"),se.info(`[Viewer] Added compared objects to scene in ${(Date.now()-v)/1e3}s`),se.info(`[Viewer] The comparison between ${l}' and '${c}' is completed in ${(Date.now()-this.timer)/1e3}s !`),m(100),null==(o=this.loadingProgressBar)||o.delayRemoveProgressItem(p),Promise.resolve()}))}getEntitiesCount(){let e=0;return this.loadedModels.forEach((t=>{var i,n;e+=(null==(i=t.dxfData)?void 0:i.loadedEntityCount)||(null==(n=t.pdfData)?void 0:n.loadedEntityCount)||0})),e}getLoadedDxfModelIds(){return this.loadedModels.map((e=>e.modelId))}getLayoutNames(){let e=[];return this.getLayouts().forEach((t=>{e.push(t.layoutName)})),e}getLayouts(){let e=[],t=this.loadedModels.find((e=>this.masterModelId===e.modelId));if(t){let i=t.dxfData,n=null==i?void 0:i.objects.LAYOUT;null==n||n.forEach((t=>{e.push(t)}))}return e}handleOverlayDxf(e){var t;let i=this.loadedModels.find((t=>e===t.modelId));if(!i)return void se.warn(`[Viewer] Can't find model for modelId '${e}'!`);this.increaseJobCount(),this.switchTransformMs(gn.MODEL_LAYOUT_NAME,e);let n=null==(t=i.dxfData)?void 0:t.threejsObject,r=null==n?void 0:n.children.find((e=>e.name===gn.MODEL_LAYOUT_NAME));r&&r.traverse((e=>{this.addSpatialFilterSection(e,i.dxfData)})),this.showLayoutObjects(this.activeLayoutName),this.decreaseJobCount()}activateLayout(e){var t,i,n,r;if(this.increaseJobCount(),0==e.length)return se.warn("[Viewer] layout name is empty !"),void this.decreaseJobCount();if(e===this.activeLayoutName)return void this.decreaseJobCount();let a=Date.now(),s=this.camera,o=this.getLayoutByName(e);if(!o)return se.warn(`[Viewer] Can't find layout of ${e} !`),void this.decreaseJobCount();let l=this.loadedModels.find((e=>this.masterModelId===e.modelId));if(!l)return se.warn(`[Viewer] Can't find master model for modelId '${this.masterModelId}'!`),void this.decreaseJobCount();if(this.raycastableObjects=void 0,this.activeLayoutName){let e=this.getActiveLayoutInfo();e.lastCameraPosition||(e.lastCameraPosition=new D),null==(t=this.camera)||t.getWorldPosition(e.lastCameraPosition),this.controls.update(0),e.lastCameraZoom=s.zoom}if(!(e=>{let t=this.layoutInfos[e];return!(null==t||!t.lastCameraZoom)})(e)){this.switchTransformMs(e,this.masterModelId);let t=this.getLayoutViewports(o),r=[];t.length>0&&(r=t[0].frozenLayerHandles);let a=e!==gn.MODEL_LAYOUT_NAME,s=null==(i=l.dxfData)?void 0:i.threejsObject,h=null==s?void 0:s.children.find((t=>t.name===e));if(h){let t=[],i=null==(n=l.dxfData)?void 0:n.layersAndThreejsObjects;h.traverse((n=>{this.addSpatialFilterSection(n,l.dxfData);let s=n;if(a&&s.material&&s.geometry){let n=s.userData.layerName;if(!this.isLayerFrozenForViewport(l.dxfData,n,r))return;t.push(s);let a=-1;i&&i[n]&&(a=i[n].indexOf(s),a>=0&&i[n].splice(a,1)),a<0&&se.warn(`[Viewer] Failed to find object for modelId '${this.masterModelId}', layer '${n}', layout '${e}'`)}})),t.forEach((e=>{e.removeFromParent()}))}let c=this.getFilteredViewports(o);se.debug("[Viewer] Active layout:",e,", viewports:",c);let u=Date.now(),d=this.CAMERA_Z_POSITION/10,p=0;c.forEach((t=>{var i;this.generateObjectsByViewport(e,t,l.dxfData);let n=null==(i=null==t?void 0:t.msToPsMatrix)?void 0:i.elements[14];n&&n>p&&(p=n)}));let f=this.controls,m=f.getPosition(new D);if(p>m.z+d){let e=Math.ceil(p+d);se.info(`[Viewer] Changing camera's z value from ${m.z} to ${e}`);let t=f.getTarget(new D);m.setZ(e),f.setLookAt(m.x,m.y,m.z,t.x,t.y,t.z)}se.info(`[Viewer] generateObjectsByViewport in ${(Date.now()-u)/1e3}s`),e!==gn.MODEL_LAYOUT_NAME&&this.switchTransformMs(gn.MODEL_LAYOUT_NAME,this.masterModelId),e!==gn.MODEL_LAYOUT_NAME&&h&&this.setLayoutHidableObjectArray(h)}this.measurePlugin&&this.clearMeasurements(),this.markupManager&&this.clearMarkups(),null==(r=this.undoRedoManager)||r.clear(),this.showLayoutObjects(e),this.activeLayoutName=e;let h=this.getActiveLayoutInfo();if(h.lastCameraPosition)this.goTo(h.lastCameraPosition,h.lastCameraZoom,!1);else{h.extent=this.computeBoundingBox();let e=this.getLayoutExtentEx(o);if(e){let t=e.max.x-e.min.x,i=e.max.y-e.min.y;(t<1e-16||i<1e-16||t>1e16||i>1e16)&&(se.warn(`[Viewer] Got wired bbox, max: ${e.max.toArray()}, min: ${e.min.toArray()}, going to use the calculated one...`),e=h.extent)}else se.warn("[Viewer] Failed to get layout extent, going to use the calculated one..."),e=h.extent;h.homeViewExtent=e,this.zoomToBBox(e)}this.updateGroundPlane(),this.dispatchEvent("LayoutChanged"),St.printMemory(`After activated layout '${this.activeLayoutName}'`),this.enableRender(),this.decreaseJobCount(),se.info(`[Viewer] Activated layout '${e}' in ${(Date.now()-a)/1e3}s`)}cancelAllOperations(){var e,t,i,n,r,a;null!=(e=this.measurePlugin)&&e.isActive()&&(null==(t=this.measurePlugin)||t.deactivate()),null!=(i=this.markupManager)&&i.isMarkupActive()&&(null==(n=this.markupManager)||n.deactivate()),null!=(r=this.zoomToRectHelper)&&r.isActive()&&(null==(a=this.zoomToRectHelper)||a.deactivate())}getActiveLayoutName(){return this.activeLayoutName}getLayers(){var e,t,i,n,r,a;let s=[];if(this.masterModelId){let n=this.loadedModels.find((e=>this.masterModelId===e.modelId)),r=(null==(t=null==(e=null==n?void 0:n.dxfData)?void 0:e.tables)?void 0:t.layer.layers)||(null==(i=null==n?void 0:n.pdfData)?void 0:i.layers);r&&s.push({modelId:this.masterModelId,layers:r})}for(let o of this.loadedModels){let e=o.modelId;if(e===this.masterModelId)continue;let t=(null==(r=null==(n=null==o?void 0:o.dxfData)?void 0:n.tables)?void 0:r.layer.layers)||(null==(a=o.pdfData)?void 0:a.layers);t&&s.push({modelId:e,layers:t})}return s}setModelVisibility(e,t){let i=this.loadedModels.find((t=>e===t.modelId)),n=(null==i?void 0:i.dxfData)||(null==i?void 0:i.pdfData);if(!i||!n)throw new Error(`Failed to find model by modelId '${e}'!`);n.threejsObject.visible=t,this.enableRender()}setLayerVisibility(e,t,i){var n;let r=this.camera;i=i||this.masterModelId;let a=this.loadedModels.find((e=>i===e.modelId));if(!a)throw new Error(`Failed to find layer by modelId '${i}'!`);let s=a.dxfData||a.pdfData,o=(null==(n=s.tables)?void 0:n.layer.layers[e])||s.layers[e];o?o.visible=t:se.warn(`[Viewer] Layer '${e}' not found from modelData!`);let l=(null==s?void 0:s.layersAndThreejsObjects)&&(null==s?void 0:s.layersAndThreejsObjects[e]);if(l){let e=r.zoom;for(let i=0;ii===e.modelId));if(!r)throw new Error(`Failed to find layer by modelId '${i}'!`);let a=r.dxfData||r.pdfData;if(!(null==(n=a.tables)?void 0:n.layer.layers[e])&&!a.layers[e])throw new Error(`Failed to find layer by layerName '${e}'!`);this.clearSelection();let s=(null==a?void 0:a.layersAndThreejsObjects)&&(null==a?void 0:a.layersAndThreejsObjects[e]);s?s.forEach((e=>{let i=e;if(i.material){i.userData.originalMaterial||(i.userData.originalMaterial=es.cloneMaterial(i.material));let e=es.cloneMaterial(i.material);es.setMaterialColor(e,new ct(t)),gn.updateMaterialUniforms(e),i.material=e}})):se.info(`[Viewer] No object found for layer '${e}'`),this.enableRender()}resetLayerColor(e,t){var i;t=t||this.masterModelId;let n=this.loadedModels.find((e=>t===e.modelId));if(!n)throw new Error(`Failed to find model by modelId '${t}'!`);let r=n.dxfData||n.pdfData;if(!(null==(i=r.tables)?void 0:i.layer.layers[e])&&!r.layers[e])throw new Error(`Failed to find layer by layerName '${e}'!`);this.clearSelection();let a=(null==r?void 0:r.layersAndThreejsObjects)&&(null==r?void 0:r.layersAndThreejsObjects[e]);a?a.forEach((e=>{let t=e;t.material&&t.userData.originalMaterial&&(t.material.dispose(),t.material=t.userData.originalMaterial,delete t.userData.originalMaterial)})):se.info(`[Viewer] No object found for layer '${e}'`),this.enableRender()}setFont(e){return ft(this,null,(function*(){this.increaseJobCount();let t=Date.now();this.fontManager||(this.fontManager=new ud),yield this.fontManager.loadFonts(e),this.decreaseJobCount(),se.info(`[Viewer] Font file(s) load time in ${(Date.now()-t)/1e3}s`)}))}getFont(){return this.fontManager}setLoadingManager(e){this.loadingManager=e}setDisplayLengthUnits(){throw new Error("Not implemented yet!")}setDisplayAreaUnits(){throw new Error("Not implemented yet!")}setDisplayPrecision(){throw new Error("Not implemented yet!")}getCurrentViewExtent(){return{min:this.getHitResultByNdcCoordinate({x:-1,y:-1}),max:this.getHitResultByNdcCoordinate({x:1,y:1})}}get measurePlugin(){return this.plugins.find((e=>"MeasurementPlugin"===e.id))}activateMeasurement(e){this.cancelAllOperations();let t=this.measurePlugin;t?(t.activate(e),this.clearSelection(),this.dispatchEvent("MeasurementActivated")):se.warn("[Viewer] MeasurementPlugin doesn't seem to be installed!")}deactivateMeasurement(){var e;null==(e=this.measurePlugin)||e.deactivate(),this.dispatchEvent("MeasurementDeactivated")}getActiveMeasurementType(){var e;return null==(e=this.measurePlugin)?void 0:e.getActiveMeasurementType()}getMeasurements(){var e;return(null==(e=this.measurePlugin)?void 0:e.getData())||[]}cancelMeasurement(){var e;null==(e=this.measurePlugin)||e.cancel()}setMeasurements(e){let t=this.measurePlugin;t&&(this.clearMeasurements(),t.setData(e))}selectMeasurement(e){var t;null==(t=this.measurePlugin)||t.selectById(e)}unselectMeasurement(){var e;null==(e=this.measurePlugin)||e.unselect()}removeMeasurement(e){var t;null==(t=this.measurePlugin)||t.removeById(e)}setMeasurementVisibility(e,t){let i=this.measurePlugin;return!!i&&i.setVisibilityById(e,t)}clearMeasurements(){var e;null==(e=this.measurePlugin)||e.clear()}getMarkupManager(){return this.markupManager}activateMarkup(e){this.cancelAllOperations(),this.inputManager&&(this.markupManager||(this.markupManager=new mE(this,this.inputManager)),this.markupManager.isMarkupActive()||this.markupManager.activate(),this.markupManager.setDrawType(e),this.clearSelection(),this.dispatchEvent("MarkupActivated"))}deactivateMarkup(){this.markupManager&&this.markupManager.deactivate(),this.dispatchEvent("MarkupDeactivated")}getActiveMarkupType(){var e;return null==(e=this.markupManager)?void 0:e.getActiveMarkupType()}setMarkupLineColor(e,t,i,n){var r;null==(r=this.markupManager)||r.setLineColor([e,t,i,n])}getMarkupLineColor(){var e;return null==(e=this.markupManager)?void 0:e.getLineColor()}setMarkupFillColor(e,t,i,n){var r;null==(r=this.markupManager)||r.setFillColor([e,t,i,n])}getMarkupFillColor(){var e;return null==(e=this.markupManager)?void 0:e.getFillColor()}setMarkupLineWidth(e){var t;null==(t=this.markupManager)||t.setLineWidth(e)}getMarkupLineWidth(){var e;return null==(e=this.markupManager)?void 0:e.getLineWidth()}setMarkupFontSize(e){var t;null==(t=this.markupManager)||t.setFontSize(e)}getMarkupFontSize(){var e;return null==(e=this.markupManager)?void 0:e.getFontSize()}getMarkups(){var e;return(null==(e=this.markupManager)?void 0:e.getMarkupData())||[]}setMarkups(e){this.inputManager&&(this.clearMarkups(),this.markupManager||(this.markupManager=new mE(this,this.inputManager)),this.markupManager.setMarkupData(e))}setMarkupVisibility(e,t){return!!(this.inputManager&&this.markupManager&&e)&&this.markupManager.setMarkupVisibility(e,t)}updateMarkup(e){if(!(this.inputManager&&this.markupManager&&e&&e.id))return!1;let t=!1,i=this.markupManager,n=i.getMarkupById(e.id);return n&&(i.updateMarkup(n,e),t=!0),t}removeMarkup(e){return!(!this.inputManager||!this.markupManager)&&this.markupManager.removeMarkupById(e)}clearMarkups(){var e;null==(e=this.markupManager)||e.clearAll()}getHitResult(e){let t=this.viewerContainer;if(!this.camera||!this.raycaster||!this.groundPlane)return;let i=an.getScreenCoordinateByEvent(e,t),n=an.screen2Ndc(i,this.camera,t);return this.getHitResultByNdcCoordinate(n)}getHitResultByNdcCoordinate(e){if(!this.camera||!this.raycaster||!this.groundPlane)return;this.raycaster.setFromCamera(e,this.camera),this.raycaster.layers.set(10);let t=this.raycaster.intersectObject(this.groundPlane,!0);return t&&t.length>0?t[0].point:void 0}zoomToRect(){this.cancelAllOperations(),this.zoomToRectHelper||(this.zoomToRectHelper=new ky(this)),this.zoomToRectHelper.activate()}deactivateZoomRect(){var e;null==(e=this.zoomToRectHelper)||e.deactivate()}getLayoutByName(e){let t,i=this.getLayouts();for(let n of i)if(n.layoutName===e){t=n;break}return t}getActiveLayoutInfo(){return this.getLayoutInfo(this.activeLayoutName)}getMsTransformMatrix(e){var t,i;let n=this.loadedModels.find((t=>e===t.modelId)),r=null==(t=null==n?void 0:n.dxfData)?void 0:t.header;if(!r)return;let a=r.$ANGDIR,s=this.getDxfUnits(n.dxfData),o=null==(i=n.dxfData)?void 0:i.tables.viewport.viewports.filter((e=>"*ACTIVE"===e.name.toLocaleUpperCase()));if(!o)return;let l=new et,h=gn.getDcs2WcsMatrix(o[0],a),c=new D(o[0].center.x,o[0].center.y,0).applyMatrix4(h),u=1;this.units&&s!==this.units&&(u=lme(s,this.units)),c.multiplyScalar(u),l.makeTranslation(c.x,c.y,0);let d=o[0].viewTwistAngle;null!=d&&l.multiply((new et).makeRotationZ(Rn.degToRad(d))),l.multiply((new et).makeTranslation(-c.x,-c.y,0)),n.msTransformMatrix=l}switchTransformMs(e,t){var i;let n=this.loadedModels.find((e=>t===e.modelId));if(!n)return void se.warn(`[Viewer] Can't find model whose modelId is ${t}`);let r=n.msTransformMatrix;if(Fy.identity(),!r||!St.isMatrixValid(r)||r.equals(Fy))return;let a=null==(i=n.dxfData)?void 0:i.threejsObject,s=null==a?void 0:a.children.find((e=>e.name===gn.MODEL_LAYOUT_NAME));s&&(e===gn.MODEL_LAYOUT_NAME?s.applyMatrix4(r):s.applyMatrix4(r.clone().invert()),s.updateMatrixWorld(!0))}getLayoutExtentEx(e){return e.layoutName===gn.MODEL_LAYOUT_NAME?this.getModelSpaceExtent():this.getLayoutExtent(e)}getModelSpaceExtent(){var e,t;let i=this.loadedModels.find((e=>this.masterModelId===e.modelId));if(!i)return;let n=null==(e=i.dxfData)?void 0:e.header,r=new D,a=new D;if(!n)return void se.error(`Header is undefined in ${this.masterModelId}!`);let s=null==(t=i.dxfData)?void 0:t.tables.viewport.viewports,o=n.$EXTMIN,l=n.$EXTMAX,h=n.$ANGDIR;if(s&&s.length>0)for(let c=0;cthis.masterModelId===e.modelId));if(!i)return;let n=null==(t=i.dxfData)?void 0:t.header,r=new D,a=new D;if(!n)throw new Error(`Header is undefined in ${this.masterModelId}!`);let s=this.getLayoutViewports(e),o=n.$PEXTMIN,l=n.$PEXTMAX,h=n.$ANGDIR;if(s&&s.length>0){let e,t=s.filter((e=>1===parseInt(e.viewportId)));e=t.length>0?t[0]:s[0];let{centerPoint:i,width_paperSpace:n,height_paperSpace:r}=e,a=gn.getDcs2WcsMatrix(e,h),c=new D(i.x,i.y,0);c.applyMatrix4(a),o={x:c.x-n/2,y:c.y-r/2,z:0},l={x:c.x+n/2,y:c.y+r/2,z:0}}return r.set(o.x,o.y,o.z),a.set(l.x,l.y,l.z),new Nt(r,a)}showLayoutObjects(e){this.loadedModels.forEach((t=>{var i;let n=0,r=0,a=null==(i=t.dxfData)?void 0:i.threejsObject;null==a||a.children.forEach((t=>{let i=t.name===e;t.visible=i,i?n++:r++})),se.debug(`[Viewer] showLayoutObjects('${e}') sets ${n} layout level object(s) to visible and ${r} to hidden for model '${null==a?void 0:a.name}'`)}))}getLayoutViewports(e){var t;let i=this.loadedModels.find((e=>this.masterModelId===e.modelId));if(!i)return[];let n=e.ownerHandle;return(null==(t=i.dxfData)?void 0:t.layoutViewportsMap[n])||[]}setMaterialUniforms(e,t){e instanceof cn&&(e.uniforms.u_cameraZoom&&(e.uniforms.u_cameraZoom=gn.cameraZoomUniform),e.uniforms.u_viewportScale&&1===(null==t?void 0:t.header.$PSLTSCALE)&&(e.uniforms.u_viewportScale=gn.viewportScaleUniform))}isLayerFrozenForViewport(e,t,i){if(!e||!t)return!1;let n=e.tables.layer.layers[t];return!!(n&&(1&n.flag)>0)||!(!i||i.length<=0)&&n&&i.indexOf(n.handle)>=0}getFilteredViewports(e){let t=this.getLayoutViewports(e),i=t.filter((e=>"1"!==e.viewportId));return i.length===t.length&&(i=t.filter(((e,t)=>0!==t))),i}generateObjectsByViewport(e,t,i,n=[]){let r=t;if("1"==t.viewportId)return;if(!r.psBBox||!r.msToPsMatrix)throw new Error("The bbox or matrix is invalid in the viewport!");gn.transformMatrixUniform={value:r.msToPsMatrix},gn.viewportScaleUniform={value:t.viewHeight/t.height_paperSpace};let a=r.psBBox.clone();a.applyMatrix4(r.msToPsMatrix.clone().invert()),a.min.setZ(-1),a.max.setZ(1);let s=this.getObjectsByBoundingBox(a);if(0===s.length)return;let o,l=r.psBBox.min,h=r.psBBox.max,c=new Mi(new xe(l.x,l.y),new xe(h.x,h.y)),u=Hu.generateSectionPlanesByBox(c),d=[],p=e=>(d[e.id]||(d[e.id]=e.clone(),this.setMaterialUniforms(d[e.id],i),Hu.setMaterialSection(d[e.id],u)),d[e.id]),f=[...n,...t.frozenLayerHandles||[]];if(e!==gn.MODEL_LAYOUT_NAME){let e=t;e.associatedLeafObjectSet||(e.associatedLeafObjectSet=new Set),o=e.associatedLeafObjectSet}let m=new er;m.name=t.viewportId;let g=null==i?void 0:i.layersAndThreejsObjects,v=[];if(s.forEach((t=>{let n=t.clone();n.traverse((t=>{if(t.material&&t.geometry){let n=t.userData.layerName;if(this.isLayerFrozenForViewport(i,n,f))return void v.push(t);!1!==t.userData.layerVisible&&(t.visible=!0),t.material=(e=>{if(Array.isArray(e)){let t=[];return e.forEach((e=>{let i=p(e);t.push(i)})),t}return p(e)})(t.material),null==o||o.add(t),g&&g[n]?g[n].push(t):se.warn(`[Viewer] Failed to find object for modelId '${this.masterModelId}', layer '${n}', layout '${e}'`)}})),m.add(n)})),o&&0===o.size)return;let y=null==i?void 0:i.threejsObject,x=null==y?void 0:y.children.find((t=>t.name===e));x||(x=new er,Hn.setSharedVariablesOfObject(x),x.name=e,null==y||y.add(x)),x.add(m),m.applyMatrix4(r.msToPsMatrix),m.updateMatrixWorld(!0);let b=x.children.find((e=>e.name===gn.SNAP_GROUP_NAME));b||(b=new er,b.visible=gn.SHOW_SNAP_OBJECT,b.name=gn.SNAP_GROUP_NAME,x.add(b));let _=null==y?void 0:y.children.find((e=>e.name===gn.MODEL_LAYOUT_NAME)),w=null==_?void 0:_.children.find((e=>e.name===gn.SNAP_GROUP_NAME));w&&w.traverse((e=>{if(!e.geometry)return;let t=e.userData.layerName;if(this.isLayerFrozenForViewport(i,t,f)||(Ny.makeEmpty(),Ny.expandByObject(e),!a.intersectsBox(Ny)))return;let n=e.clone();Hn.setSharedVariablesOfObject(n);let s=n.parent,l=Fy.identity();for(;s&&!0!==s.userData.isLayoutLevelObject;)l.premultiply(s.matrix),s=s.parent;l.premultiply(r.msToPsMatrix),n.applyMatrix4(l),null==b||b.add(n),null==o||o.add(n),g&&g[t]&&g[t].push(n)})),v.length>0&&Hn.removeEmptyObjectsFromRemovingObjects(v,m),m.traverse((e=>{Hn.setSharedVariablesOfObject(e),this.addSpatialFilterSection(e,i,!0)}))}findSpatialFilter(e,t){let i,n=t.objects.SPATIAL_FILTER;if(n){for(let t of n)if(t.handle===e){i=t;break}return i}}getAnyMaterial(e){let t,i=e;if(i.material)return Array.isArray(i.material)?i.material[0]:i.material;for(let n=0;n0),r=a.clipIntersection),t&&r!==n.clipPolylines[0].bReversed)return void se.warn("[Viewer] Material cannot set clipIntersection to different values at the same time. clipIntersection needs to be set to true here!");r=n.clipPolylines[0].bReversed;let s=this.generateSectionsBySpatialFilter(n,e.matrixWorld);if(s){let i=e=>{let t=0;return e.clippingPlanes&&(t=e.clippingPlanes.length),t+s.length>gn.maxFragmentUniforms},n=new Set,a=e=>{n.has(e.id)||(n.add(e.id),i(e)||Hu.setMaterialSection(e,s,t,r))};e.traverse((e=>{let t=e.material;Array.isArray(t)?t.forEach((e=>{a(e)})):t&&a(t)}))}}}getObjectsByBoundingBox(e){var t;let i=[];if(e.isEmpty())return se.warn("[Viewer] bbox is empty !"),i;let n=null==(t=this.loadedModels.find((e=>this.masterModelId===e.modelId)).dxfData)?void 0:t.threejsObject,r=null==n?void 0:n.children.find((e=>e.name===gn.MODEL_LAYOUT_NAME));return r&&r.children.forEach((t=>{t.name!==gn.SNAP_GROUP_NAME&&(t=>{let n=Os.getBoundingBox(t,!1);e.intersectsBox(n)&&i.push(t)})(t)})),i}getDxfUnits(e){if(!e&&this.loadedModels.length>0){let t=this.loadedModels.find((e=>this.masterModelId===e.modelId));e=null==t?void 0:t.dxfData}if(!e)return"Unitless";let t=null==e?void 0:e.header;if(!t)return se.warn("DxfData or its header is undefined!"),"Unitless";let i=t.$INSUNITS;return gn.getDxfUnits(i)}generateSectionsBySpatialFilter(e,t){let i=e.clipPolylines[0];if(i.bConcave)return void se.warn("[Viewer] clipPolyline.bConcave = true is not supported yet in spatialFilter !");Fy.copy(t),e.localMatrix&&Fy.multiply(e.localMatrix);let n=i.polyline,r=[];n.forEach((e=>{let t=e.clone().applyMatrix4(Fy);r.push(new xe(t.x,t.y))}));let a=zs.isClockWise(r),s=!a&&!i.bReversed||a&&i.bReversed;return Hu.generateSectionPlanesByPoints(r,s)}resize(e,t){super.resize(e,t),t>0&&(this.css2dRenderer&&(this.css2dRenderer.setSize(e,t),this.css2dRenderer.domElement.style.width="0",this.css2dRenderer.domElement.style.height="0"),this.overlayRender&&this.overlayRender.setSize(e,t)),this.enableRender()}getRaycaster(){return this.raycaster}getRaycastableObjects(){var e;if(this.raycastableObjects)return this.raycastableObjects;let t=Date.now(),i=[];for(let n of this.loadedModels){let t=null==(e=n.dxfData)?void 0:e.threejsObject,r=t&&t.children.find((e=>e.name===this.activeLayoutName));r&&r.traverse((e=>{(e.visible||e.userData.isSnapObject)&&Hn.isLeafObject(e)&&i.push(e)}))}return this.groundPlane&&i.push(this.groundPlane),this.raycastableObjects=i,se.debug(`[Viewer] getRaycastableObjects() finds ${i.length} objects`),se.debug(`[Viewer] getRaycastableObjects() costs ${(Date.now()-t)/1e3} s`),i}getViewportByPoint(e){if(0===this.activeLayoutName.length||this.activeLayoutName===gn.MODEL_LAYOUT_NAME)return;let t=this.getLayoutByName(this.activeLayoutName);if(!t)return;let i=t=>e.xt.max.x||e.yt.max.y,n=this.getFilteredViewports(t);for(let r=0,a=n.length;r{e.object&&e.object.geometry&&o.push(e.object)})),e.transparent.forEach((e=>{e.object&&e.object.geometry&&o.push(e.object)})))}nve.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),rve.setFromProjectionMatrix(nve);for(let e of this.loadedModels){let t=null==(r=e.dxfData)?void 0:r.threejsObject,i=t&&t.children.find((e=>e.name===this.activeLayoutName));if(i){let e=i.children.find((e=>e.name===gn.SNAP_GROUP_NAME));null==e||e.traverse((e=>{if(Hn.isLeafObject(e)){if(Ny.makeEmpty(),Ny.expandByObject(e),!rve.intersectsBox(Ny))return;o.push(e)}}))}}this.groundPlane&&o.push(this.groundPlane),se.debug("[Viewer] getRaycastableObjectsByMouse() from modelSpace"),this.lastFrame=(null==(a=this.renderer)?void 0:a.info.render.frame)||0,this.raycastableObjects=o}else{let e=new WeakSet,t=this.getLayoutByName(this.activeLayoutName);if(t){let i=t.directAssociatedLeafObjectSet;i&&i.forEach((t=>{t.visible&&!e.has(t)&&(o.push(t),e.add(t))}))}let i=this.getViewportByPoint(this.raycaster.ray.origin);i&&i.associatedLeafObjectSet?(null==(s=i.associatedLeafObjectSet)||s.forEach((t=>{!e.has(t)&&(t.visible||t.userData.isSnapObject)&&(o.push(t),e.add(t))})),se.debug("[Viewer] getRaycastableObjectsByMouse() from inside of viewport:",i.viewportId)):se.debug("[Viewer] getRaycastableObjectsByMouse() from out of viewport"),this.groundPlane&&o.push(this.groundPlane)}return se.debug(`[Viewer] getRaycastableObjectsByMouse() costs ${(Date.now()-h)/1e3} s`),o}getIntersections(e){let t=this.getRaycastableObjectsByMouse(e);return this.raycaster&&this.raycaster.intersectObjects(t,!0)||[]}handleMouseClick(e){var t,i;if(null!=(t=this.measurePlugin)&&t.isActive()||null!=(i=this.markupManager)&&i.isMarkupActive()||(this.selectDrawableByEvent(e),this.selectedObject)||!this.enableSelection)return;this.raycaster&&this.raycaster.layers.set(12);let n=this.getIntersections(e);if(n.length>0){let e=e=>St.vectorToString(e);se.debug(`[Viewer] Clicked at: ${e(n[0].point)}`)}let r=n.find((e=>e.object.visible)),a=r&&r.object||void 0;this.selectedObject&&this.clearSelection(),a&&this.selectedObject&&this.selectedObject.id===a.id&&(a=void 0),a?this.selectObject(a):this.clearSelection()}selectDrawableByEvent(e){var t,i;this.clearSelection();let n=this.getHitResult(e);if(!n)return;let r=null==(t=this.overlayRender)?void 0:t.getDrawablesByPosition(n,this.raycaster);r&&r.length>0&&(r[0].selected=!0,this.selectedObject=r[0],null==(i=this.overlayRender)||i.render())}selectObject(e,t=!1){if(!this.enableSelection)return;let i=e=>{if(e.children.length>0&&e.children.forEach((e=>i(e))),e instanceof xt||e instanceof fr||e instanceof ii){let i=es.clonedHighlightMaterials(e,{depthTest:t});i&&(e.userData.originalMaterial=e.material,e.material=i)}},n=e=>{if(e.children.length>0&&e.children.forEach((e=>n(e))),(e instanceof xt||e instanceof fr||e instanceof ii)&&e.userData.originalMaterial){let t=e.material;e.material=e.userData.originalMaterial,delete e.userData.originalMaterial,Array.isArray(t)?t.forEach((e=>e.dispose())):t instanceof yr&&t.dispose()}},r=!1;this.selectedObject&&(n(this.selectedObject),this.selectedObject=void 0,r=!0),e&&(i(e),this.selectedObject=e,e.userData.dxfEntity?se.info("[Viewer] Selected entity:",e.userData.dxfEntity):se.info("[Viewer] Selected object:",e),r=!0),r&&this.enableRender()}clearSelection(){var e;this.selectedObject&&this.selectedObject instanceof Hi?(this.selectedObject.selected=!1,null==(e=this.overlayRender)||e.render()):this.selectObject(),this.selectedObject=void 0}flyToObjects(e){if(!e||0===e.length||!this.camera)return;let t=new Nt;e.forEach((e=>{let i=Os.getBoundingBox(e);i.isEmpty()||t.union(i)})),this.zoomToBBox(t)}flyToObject(e){this.flyToObjects([e])}flyToSelectedObject(){if(!this.selectedObject)return;let e=this.selectedObject;(e instanceof Oi&&e.userData.clonedMesh||e instanceof xt&&Rr.isMergedMesh(e)&&e.userData.clonedMesh)&&(e=e.userData.clonedMesh),this.flyToObject(e)}flyToRandomObject(){var e;let t=this.scene,i=[];for(let c of this.loadedModels){let t=null==(e=c.dxfData)?void 0:e.threejsObject;t&&i.push(t.id)}let n=i.length;if(n<=0)return;let r=i[Math.floor(Math.random()*n)],a=t.getObjectById(r);if(!a)return;let s=this.getActiveLayoutName();if(!a.children.find((e=>e.name===s)))return;let o=[];if(t.traverseVisible((e=>{(e instanceof xt||e instanceof fr)&&!["SKYBOX","GROUND_GRID","GROUND_GRASS","BIM_VIEWER_BOX_HELPER"].includes(e.name)&&o.push(e.id)})),o.length<1)return;let l=Math.floor(Math.random()*o.length),h=t.getObjectById(o[l]);h&&(se.info(`[Viewer] Flying to random object: ${h.name}, type: ${h.type}`),this.selectObject(h,void 0),this.flyToObject(h))}flyTo(e,t,i,n){let r=this.camera,a=this.controls;if(!r||!a)return;if(i&&(i=this.checkAndGetLimitedCameraZoom(i)),e.equals(t))return void se.error("[Viewer] Camera position and lookAt cannot be the same!");if(!St.isVectorValid(e)||!St.isVectorValid(t))return void se.error("[Viewer] Invalid position or lookAt!",e,t);let s=e.distanceTo(t);sr.far&&(e=e.clone().sub(t).normalize().multiplyScalar(.9*r.far),se.warn("[Viewer] Camera could be too far to see the object!"));let o=(e,t,i)=>{i&&Number.isFinite(i)&&a.zoomTo(i),a.setLookAt(e.x,e.y,e.z,t.x,t.y,t.z),this.updateHidableObjectsVisibility(),this.enableRender()};if(!1===n)return this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),void o(e,t,i);let l=r.position.clone(),h=a.getTarget(new D),c=r.zoom,u=300,d=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval((()=>{let n=Date.now()-d;n>u&&(n=u);let r,a=(e,t,i)=>{let n=e.x+(t.x-e.x)*i,r=e.y+(t.y-e.y)*i,a=e.z+(t.z-e.z)*i;return new D(n,r,a)},s=a(l,e,n/u),p=a(h,t,n/u);i&&(r=c+(i-c)*n/u),o(s,p,r),n>=u&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0)}),10)}goTo(e,t,i){let n=this.camera,r=this.controls;if(!n||!r)return;let a=new D(e.x,e.y,n.position.z),s=r.getTarget(new D),o=new D(e.x,e.y,s.z);this.flyTo(a,o,t,i)}goToHomeView(){let e=this.getActiveLayoutInfo();e.homeViewExtent?this.zoomToBBox(e.homeViewExtent):se.error(`[Viewer] Failed to find extent for ${this.activeLayoutName}`)}zoomToBBox(e){let t=this.camera;if(!t)return;let i=e.max.x-e.min.x,n=e.max.y-e.min.y,r=t.right-t.left,a=t.top-t.bottom,s=Math.min(r/i,a/n);s/=1.1;let o=new Nt(new D(e.min.x,e.min.y,0),new D(e.max.x,e.max.y,0)),l=new D;o.getCenter(l),l.z=0;let h=l.clone().setZ(Math.max(t.position.z,this.CAMERA_Z_POSITION));h.equals(l)||this.flyTo(h,l,s,!1)}zoomToExtent(){let e=this.getActiveLayoutInfo();e.extent?this.zoomToBBox(e.extent):(console.error("[Viewer] Failed to find extent of current layout! Will go to home view."),this.goToHomeView())}zoomToCompareChange(e){if(this.changes){let t=this.changes[e];if(!t)return;let i=t.box;i&&this.zoomToBBox(i.clone().expandByScalar(1.2))}}getCompareChanges(){return this.changes}setBackgroundColor(e,t,i){!this.scene||!this.renderer||(ive.setRGB(e,t,i,this.renderer.outputColorSpace),(!this.scene.background||!(this.scene.background instanceof ct))&&(this.scene.background=new ct(e,t,i)),this.scene.background.copy(ive),this.enableRender())}getLayoutInfo(e){return this.layoutInfos[e]||(this.layoutInfos[e]={}),this.layoutInfos[e]}updateGroundPlane(){if(!this.scene)return;let e=this.getActiveLayoutInfo();if(!e.homeViewExtent)return;let t=e.homeViewExtent.clone();St.expandBoxByScale(t,3);let i=t.min,n=t.max,r=n.x-i.x+n.y-i.y+n.z-i.z;St.expandBoxByMinSize(t,r);let a=[],s=(e,t,i)=>{a.push(new D(e,t,i))},o=t.getSize(new D),l=t.getCenter(new D);if(s(-o.x/2,-o.y/2,0),s(o.x/2,-o.y/2,0),s(o.x/2,o.y/2,0),s(-o.x/2,o.y/2,0),this.groundPlane)this.groundPlane.position.set(l.x,l.y,-o.z),this.groundPlane.geometry.setFromPoints(a),this.groundPlane.geometry.computeBoundingSphere(),this.groundPlane.geometry.computeBoundingBox();else{let e=new Dt;e.setFromPoints(a),e.setIndex([0,3,2,0,2,1]);let t=new ln({color:"#888",transparent:!0,opacity:0,side:Sr});this.groundPlane=new xt(e,t),this.groundPlane.visible=!0,this.groundPlane.frustumCulled=!1,this.groundPlane.position.set(l.x,l.y,-o.z),this.groundPlane.scale.set(1e5,1e5,1),this.groundPlane.name="groundPlane",this.groundPlane.renderOrder=-1e3,this.groundPlane.layers.enableAll(),Hn.disableLayerChannels(this.groundPlane,[12]),this.scene.add(this.groundPlane)}this.groundPlane.updateMatrixWorld()}computeBoundingBox(){var e;let t=new Nt;for(let i of this.loadedModels){let n=null==(e=i.dxfData)?void 0:e.threejsObject;for(let e=0;n&&e{if(!this.isCompareMode()||!e.material)return!1;let t;return t=e.material instanceof cn?e.material.uniforms.u_color.value:e.material.color,t.equals(new ct(ls.ENTITY_COLOR_ADDED))||t.equals(new ct(ls.ENTITY_COLOR_REMOVED))},o=1;e.traverse((e=>{if(this.isCompareMode()&&s(e)||e.userData.isSnapObject||!Hn.isLeafObject(e))return;let t=e.geometry;t.boundingBox||t.computeBoundingBox();let i=t.boundingBox.clone();if(!i||!St.isBoxValid(i))return;i.applyMatrix4(e.matrixWorld),i.getSize(C4);let n=Math.max(C4.x,C4.y),a=o/n;a<1/0?r.push({visibleMinZoom:a,object:e}):e instanceof ii?r.push({visibleMinZoom:o,object:e}):se.warn("[Viewer] The size of bbox is 0 ! ",e)})),o=this.getVisiblePixelSize(r.length);let l=0;r.forEach((e=>{let t=e.visibleMinZoom*o;e.visibleMinZoom=t,e.object.userData.visibleMinZoom=t,t>a&&(e.object.visible=!1,l++)})),r.sort(((e,t)=>e.visibleMinZoom-t.visibleMinZoom)),se.debug(`[Viewer] setLayoutHidableObjectArray cost: ${(Date.now()-i)/1e3}s, ${l} objects changed to hidden`)}statObjects(e){let t=this.sortedHidableObjects[this.activeLayoutName],i=t.length,n={},r=0;t.forEach((t=>{let i=t.object;if(i.geometry&&i.material){r++;let i=(t=>{let i=0,n=t;for(;n&&(i++,n!==e);)n=n.parent;return i})(t.object);n[i]||(n[i]=0),n[i]++}}));let a=0;e.traverse((e=>{let t=e;t.geometry&&t.material&&a++})),se.info(`[Viewer] hidableObjects count:${i}, real count:${r}, layout count: ${a}, level:`,n),se.info("[Viewer] scene:",this.scene)}updateHidableObjectsVisibility(){let e=this.camera;if(!e)return;let t=Date.now();this.controls.update(0);let i=e.zoom;if(Math.abs(i-this.lastCameraZoom)<1e-5||(this.updateRaycasterThreshold(),this.updateCameraZoomUniform(i),this.raycastableObjects=void 0,!this.sortedHidableObjects[this.activeLayoutName]))return;let n=this.sortedHidableObjects[this.activeLayoutName];if(0===n.length)return;let r=i>this.lastCameraZoom,a=Math.min(i,this.lastCameraZoom),s=Math.max(i,this.lastCameraZoom),o=[],l=0;for(let h=0;hs)break;n[h].object.visible=r,r&&o.push(n[h].object),l++}this.lastCameraZoom=i,se.debug(`[Viewer] updateHidableObjectsVisibility cost: ${(Date.now()-t)/1e3}s, ${l}(out of ${n.length}) objects changed to ${r?"visible":"hidden"}`)}updateRaycasterThreshold(){if(!this.camera||!this.raycaster)return;let e=3*this.getPixelSizeInWorldCoord(),t=this.raycaster.params;t.Line?t.Line.threshold=e:t.Line={threshold:e},t.Points?t.Points.threshold=e:t.Points={threshold:e}}updateCameraZoomUniform(e){gn.cameraZoomUniform.value=e}},OP=class{constructor(e){this.jobCount=0,this.viewer=new ip(e);let t=document.getElementById(e.containerId);this.container=(null==t?void 0:t.parentElement)||document.body,this.loadingProgressBar=new Yf(this.container),this.loader=new gn(this.loadingManager,{ignorePaperSpace:!0}),this.initSpinner()}initSpinner(){let e=document.createElement("div");e.classList.add("gemini-spinner"),e.appendChild(document.createElement("span")),e.appendChild(document.createElement("span")),e.appendChild(document.createElement("span")),e.appendChild(document.createElement("span")),this.container.appendChild(e),this.spinner=e,this.setSpinnerVisibility(this.jobCount>0)}setFont(e){return ft(this,null,(function*(){let t=Date.now();this.fontManager||(this.fontManager=new ud),yield this.fontManager.loadFonts(e),se.info(`[DxfCompareHelper] Font file(s) load time in ${(Date.now()-t)/1e3}s`)}))}compare(e,t,i,n){return ft(this,null,(function*(){var r,a,s,o,l;let{src:h,modelId:c}=e,{src:u}=t;this.viewer.masterModelId=c||h;let d=Date.now();if(this.increaseJobCount(),!this.fontManager)return Promise.reject("[DxfCompareHelper] Should set font first!");this.loader.setFont(this.fontManager),yield this.fontManager.getFontFromIndexeddb();let p=h+u,f=rg.t("ProgressBar.Comparing"),m=e=>{var t;null==(t=this.loadingProgressBar)||t.updateProgress(p,f,e),n&&n(new ProgressEvent("CompareProgress",{loaded:e,total:100}))},g=(e,t,i)=>{var r;let a=100*e.loaded/e.total;a=a*(i-t)/100+t,null==(r=this.loadingProgressBar)||r.updateProgress(p,f,a),n&&n(new ProgressEvent("CompareProgress",{loaded:a,total:100}))};St.printMemory("Before comparing"),null==(r=this.loadingProgressBar)||r.addProgressItem(p),m(0);let v=Date.now(),y=yield this.loader.parse(h,(e=>g(e,0,15))),x=yield this.loader.parse(u,(e=>g(e,15,30))),[b,_]=yield Promise.allSettled([y,x]);if("rejected"===b.status)return Promise.reject(`[DxfCompareHelper] Failed to parse ${h}`);if("rejected"===_.status)return Promise.reject(`[DxfCompareHelper] Failed to parse ${u}`);if(se.info(`[DxfCompareHelper] loadFiles in ${(Date.now()-v)/1e3}s`),gn.abortJobs)return Promise.reject("[DxfCompareHelper] compare loadFile aborted");let w=b.value,S=_.value;v=Date.now();let M=yield new ls(w,S,i).compare((e=>g(e,30,60)));if(se.info(`[DxfCompareHelper] Compared in ${(Date.now()-v)/1e3}s`),se.debug("[DxfCompareHelper] Compared results:",M),gn.abortJobs)return Promise.reject("[DxfCompareHelper] compare change aborted");St.printMemory("After getting the comparison results"),v=Date.now(),yield this.loader.loadEntitiesForCompare(w,S,M,!0,(e=>g(e,60,95))),St.printMemory("After Creating threejs objects based on comparison result"),null==(a=this.fontManager)||a.releaseFontData(),this.changes=M,se.info(`[DxfCompareHelper] Creates threejs objects based on comparison result in ${(Date.now()-v)/1e3}s`);let E=w,T=S;if(this.decreaseJobCount(),Object.keys(M).length||se.info("[DxfCompareHelper] No change found"),0===(null==(s=E.threejsObject)?void 0:s.children.length)&&0===(null==(o=T.threejsObject)?void 0:o.children.length)){let e=`[DxfCompareHelper] Nothing was loaded from ${h} and ${u}`;return se.warn(e),Promise.reject(e)}let A=E.threejsObject,C=T.threejsObject;return A.name=h,C.name=u,v=Date.now(),this.viewer.addModel({modelId:e.modelId||e.src,dxfData:E}),St.printMemory("After adding first loaded Model to scene"),m(95),this.viewer.addModel({modelId:t.modelId||t.src,dxfData:T}),St.printMemory("After adding second loaded Model to scene"),se.info(`[DxfCompareHelper] Added compared objects to scene in ${(Date.now()-v)/1e3}s`),se.info(`[DxfCompareHelper] The comparison between ${h}' and '${u}' is completed in ${(Date.now()-d)/1e3}s !`),m(100),null==(l=this.loadingProgressBar)||l.delayRemoveProgressItem(p),Promise.resolve()}))}getChanges(){return this.changes}zoomToChange(e){if(this.changes){let t=this.changes[e];if(!t)return;let i=t.box;i&&this.viewer.zoomToBBox(i.clone().expandByScalar(1.2))}}setSpinnerVisibility(e){this.spinner&&(e?this.spinner.classList.remove("hidden"):this.spinner.classList.add("hidden"))}increaseJobCount(){this.setSpinnerVisibility(++this.jobCount>0)}decreaseJobCount(){this.setSpinnerVisibility(--this.jobCount>0)}},sve=class extends OP{constructor(e,t){super(e),this.syncCamera=!1,this.syncCameraControls=(e,t,i)=>{let n=new D,r=new D,a=new D;e.getPosition(r),e.getTarget(a),e.getFocalOffset(n),t.setLookAt(r.x,r.y,r.z,a.x,a.y,a.z),t.zoomTo(i),t.dispatchEvent({type:"control"})},this.viewer2=new ip(t),this.initSyncCameraEvent()}initSyncCameraEvent(){let e=this.viewer.controls,t=this.viewer2.controls,i=!1;e.addEventListener("control",(()=>{i=!1})),e.addEventListener("update",(()=>{!this.syncCamera||i||this.syncCameraControls(e,t,this.viewer.camera.zoom)})),t.addEventListener("control",(()=>{i=!0})),t.addEventListener("update",(()=>{!this.syncCamera||!i||this.syncCameraControls(t,e,this.viewer2.camera.zoom)}))}enableSyncCamera(e){if(this.syncCamera=e,e){let e=this.viewer.controls,t=this.viewer2.controls;this.syncCameraControls(e,t,this.viewer.camera.zoom)}}compare(e,t,i,n){return ft(this,null,(function*(){var r,a,s,o,l;let{src:h,modelId:c}=e,{src:u,modelId:d}=t;this.viewer.masterModelId=c||h,this.viewer2.masterModelId=d||u;let p=Date.now();if(this.increaseJobCount(),!this.fontManager)return Promise.reject("[DxfCompareHelper] Should set font first!");this.loader.setFont(this.fontManager),yield this.fontManager.getFontFromIndexeddb();let f=h+u,m=rg.t("ProgressBar.Comparing"),g=e=>{var t;null==(t=this.loadingProgressBar)||t.updateProgress(f,m,e),n&&n(new ProgressEvent("CompareProgress",{loaded:e,total:100}))},v=(e,t,i)=>{var r;let a=100*e.loaded/e.total;a=a*(i-t)/100+t,null==(r=this.loadingProgressBar)||r.updateProgress(f,m,a),n&&n(new ProgressEvent("CompareProgress",{loaded:a,total:100}))};St.printMemory("Before comparing"),null==(r=this.loadingProgressBar)||r.addProgressItem(f),g(0);let y=Date.now(),x=yield this.loader.parse(h,(e=>v(e,0,15))),b=yield this.loader.parse(u,(e=>v(e,15,30))),[_,w]=yield Promise.allSettled([x,b]);if("rejected"===_.status)return Promise.reject(`[DxfCompareHelper] Failed to parse ${h}`);if("rejected"===w.status)return Promise.reject(`[DxfCompareHelper] Failed to parse ${u}`);if(se.info(`[DxfCompareHelper] loadFiles in ${(Date.now()-y)/1e3}s`),gn.abortJobs)return Promise.reject("[DxfCompareHelper] compare loadFile aborted");let S=_.value,M=w.value;y=Date.now();let E=yield new ls(S,M,i).compare((e=>v(e,30,60)));if(se.info(`[DxfCompareHelper] Compared in ${(Date.now()-y)/1e3}s`),se.debug("Compared results:",E),gn.abortJobs)return Promise.reject("[DxfCompareHelper] compare change aborted");St.printMemory("After getting the comparison results"),y=Date.now(),yield this.loader.loadEntitiesForCompare(S,M,E,!1,(e=>v(e,60,95))),St.printMemory("After Creating threejs objects based on comparison result"),null==(a=this.fontManager)||a.releaseFontData(),this.changes=E,se.info(`[DxfCompareHelper] Creates threejs objects based on comparison result in ${(Date.now()-y)/1e3}s`);let T=S,A=M;if(this.decreaseJobCount(),Object.keys(E).length||se.info("[DxfCompareHelper] No change found"),0===(null==(s=T.threejsObject)?void 0:s.children.length)&&0===(null==(o=A.threejsObject)?void 0:o.children.length)){let e=`[DxfCompareHelper] Nothing was loaded from ${h} and ${u}`;return se.warn(e),Promise.reject(e)}let C=T.threejsObject,P=A.threejsObject;return C.name=h,P.name=u,y=Date.now(),this.viewer.addModel({modelId:e.modelId||e.src,dxfData:T}),St.printMemory("After adding first loaded Model to scene"),g(95),this.viewer2.addModel({modelId:t.modelId||t.src,dxfData:A}),St.printMemory("After adding second loaded Model to scene"),se.info(`[DxfCompareHelper] Added compared objects to scene in ${(Date.now()-y)/1e3}s`),se.info(`[DxfCompareHelper] The comparison between ${h}' and '${u}' is completed in ${(Date.now()-p)/1e3}s !`),g(100),null==(l=this.loadingProgressBar)||l.delayRemoveProgressItem(f),Promise.resolve()}))}zoomToChange(e){if(this.changes){let t=this.changes[e];if(!t)return;let i=t.box;i&&(this.viewer.zoomToBBox(i.clone().expandByScalar(1.2)),this.viewer2.zoomToBBox(i.clone().expandByScalar(1.2)))}}},cg=Xi(ave(),1),dd=class{constructor(e,t){this.current=e,this.next=t,this.inNormal=this.inwardsNormal(),this.outNormal=this.outwardsNormal()}outwardsNormal(){let e=this.inwardsNormal();return[-e[0],-e[1]]}inwardsNormal(){let e=this.next[0]-this.current[0],t=this.next[1]-this.current[1],i=Math.sqrt(e*e+t*t);if(0===i)throw new Error("Vertices overlap");return[-t/i,e/i]}offset(e,t){return dd.offsetEdge(this.current,this.next,e,t)}inverseOffset(e,t){return dd.offsetEdge(this.next,this.current,e,t)}inverse(){return new dd(this.next,this.current)}static offsetEdge(e,t,i,n){return new dd([e[0]+i,e[1]+n],[t[0]+i,t[1]+n])}},E_=Array.isArray,ove=(e,t)=>e[0]===t[0]&&e[1]===t[1],L4=e=>Array.isArray(e)&&e.length,cve=(e,t=0,i=!1)=>{let n,r;if(L4(e)&&"number"==typeof e[0][0]){let t=0,a=e;for(n=0,r=a.length;n0||i&&t<0)&&a.reverse()}else for(n=0,r=e.length;n0);if(0===t&&L4(e)&&L4(e[0])&&"number"==typeof e[0][0][0]){let t=e[0].slice(0,1)[0];e[0].pop(),e[0].push([t[0],t[1]])}return e},lve=class{constructor(e,t=5){if(this.distance=0,this.arcSegments=t,!E_(e))throw new Error("Offset requires at least one coodinate to work with");this.edges=[],E_(e)&&"number"==typeof e[0]?this.vertices=e:(this.vertices=cve(e),this.processContour(this.vertices,this.edges))}processContour(e,t){let i,n;if(E_(e[0])&&"number"==typeof e[0][0])for(n=e.length,ove(e[0],e[n-1])&&(n-=1),i=0;ih?l-h:l+o-h,u=(s?-c:o-c)/a;e.push(n);for(let d=1;d0?this.margin(this.distance):this.padding(-this.distance)}offsetSegment(e,t,i,n){let r=[i.offset(i.inNormal[0]*n,i.inNormal[1]*n),i.inverseOffset(i.outNormal[0]*n,i.outNormal[1]*n)],a=[];for(let s=0,o=2;s0&&e.push(i)}e.length>0&&(t=1===e.length?e[0]:(0,cg.union)(e[0],...e.slice(1)))}else t=1===this.vertices.length?this.offsetPoint(e):this.offsetContour(this.vertices,this.edges);return t}offsetContour(e,t){let i=[],n=0,r=0;if(E_(e[0])&&"number"==typeof e[0][0]){for(n=0,r=e.length-1;n0&&(i=1===i.length?[i[0]]:(0,cg.union)(i[0],i.slice(1)))}else{let a=[];for(n=0,r=t.length;n0&&a.push(i)}a.length>0&&(i=1===a.length?a[0]:(0,cg.union)(a[0],...a.slice(1)))}return i}offsetPoint(e){this.setDistance(e);let t=2*this.arcSegments,i=[],n=this.vertices,r=this.distance,a=0;t%2==0&&t++;for(let s=0;se.get(t)}isFull(){return this.itemSet.size>=this.maxSize}add(e,t){let i=this.itemSet;if(i.has(e)||this.isFull())return!1;let n=this.usedSet,r=this.itemList,a=this.callbacks;return r.push(e),n.add(e),i.set(e,Date.now()),a.set(e,t),!0}remove(e){let t=this.usedSet,i=this.itemSet,n=this.itemList,r=this.callbacks;if(i.has(e)){r.get(e)(e);let a=n.indexOf(e);return n.splice(a,1),t.delete(e),i.delete(e),r.delete(e),!0}return!1}markUsed(e){let t=this.itemSet,i=this.usedSet;t.has(e)&&!i.has(e)&&(t.set(e,Date.now()),i.add(e))}markAllUnused(){this.usedSet.clear()}unloadUnusedContent(){let e=this.unloadPercent,t=this.minSize,i=this.itemList,n=this.itemSet,r=this.usedSet,a=this.callbacks,s=i.length-r.size,o=i.length-t,l=this.unloadPriorityCallback||this.defaultPriorityCallback;if(o>0&&s>0){i.sort(((e,t)=>{let i=r.has(e),n=r.has(t);return i&&n?0:i||n?i?1:-1:l(t)-l(e)}));let h=Math.min(o,s),c=Math.max(t*e,h*e),u=Math.min(c,s);u=Math.ceil(u);let d=i.splice(0,u);for(let e=0,t=d.length;e{this.scheduled=!1,this.unloadUnusedContent(),e&&this.markAllUnused()})))}},__=class{constructor(){this.maxJobs=6,this.items=[],this.callbacks=new Map,this.currJobs=0,this.scheduled=!1,this.autoUpdate=!0,this.priorityCallback=()=>{throw new Error("PriorityQueue: PriorityCallback function not defined.")},this.schedulingCallback=e=>{requestAnimationFrame(e)},this._runjobs=()=>{this.tryRunJobs(),this.scheduled=!1}}sort(){let e=this.priorityCallback;this.items.sort(e)}add(e,t){return new Promise(((i,n)=>{let r=this.items,a=this.callbacks;r.push(e),a.set(e,((...e)=>t(...e).then(i).catch(n))),this.autoUpdate&&this.scheduleJobRun()}))}remove(e){let t=this.items,i=this.callbacks,n=t.indexOf(e);-1!==n&&(t.splice(n,1),i.delete(e))}tryRunJobs(){this.sort();let e=this.items,t=this.callbacks,i=this.maxJobs,n=this.currJobs;for(;i>n&&e.length>0;){n++;let i=e.pop(),r=t.get(i);t.delete(i),r(i).then((()=>{this.currJobs--,this.autoUpdate&&this.scheduleJobRun()})).catch((()=>{this.currJobs--,this.autoUpdate&&this.scheduleJobRun()}))}this.currJobs=n}scheduleJobRun(){this.scheduled||(this.schedulingCallback(this._runjobs),this.scheduled=!0)}},Wgt=.0033528106647474805,uve=-(6378137*Wgt-6378137);function k4(e){return 3===e||4===e}function ug(e,t){return e.__lastFrameVisited===t&&e.__used}function hve(e,t){e.__lastFrameVisited!==t&&(e.__lastFrameVisited=t,e.__used=!1,e.__inFrustum=!1,e.__isLeaf=!1,e.__visible=!1,e.__active=!1,e.__error=1/0,e.__distanceFromCamera=1/0,e.__childrenWereVisible=!1,e.__allChildrenLoaded=!1)}function dve(e,t,i){if(hve(e,t),e.__used=!0,i.markUsed(e),e.__contentEmpty){let n=e.children;for(let e=0,r=n.length;e0&&e.__depth+1>=a))return!0;let h=!1,c=e.children;for(let u=0,d=c.length;ue.__depth!==t.__depth?e.__depth>t.__depth?-1:1:e.__inFrustum!==t.__inFrustum?e.__inFrustum?1:-1:e.__used!==t.__used?e.__used?1:-1:e.__error!==t.__error?e.__error>t.__error?1:-1:e.__distanceFromCamera!==t.__distanceFromCamera?e.__distanceFromCamera>t.__distanceFromCamera?-1:1:0,jgt=e=>1/(e.__depthFromRenderedParent+1),BP=class{get rootTileSet(){let e=this.tileSets[this.rootURL];return!e||e instanceof Promise?null:e}get root(){let e=this.rootTileSet;return e?e.root:null}constructor(e){this.tileSets={},this.rootURL=e,this.fetchOptions={},this.preprocessURL=null;let t=new kP;t.unloadPriorityCallback=jgt;let i=new __;i.maxJobs=4,i.priorityCallback=mve;let n=new __;n.maxJobs=1,n.priorityCallback=mve,this.lruCache=t,this.downloadQueue=i,this.parseQueue=n,this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0},this.frameCount=0,this.errorTarget=6,this.errorThreshold=1/0,this.loadSiblings=!0,this.displayActiveTiles=!1,this.maxDepth=1/0,this.stopAtEmptyTiles=!0}traverse(e,t){let i=this.tileSets[this.rootURL];!i||!i.root||NP(i.root,e,t)}update(){let e=this.stats,t=this.lruCache,i=this.tileSets,n=i[this.rootURL];if(!(this.rootURL in i))return void this.loadRootTileSet(this.rootURL);if(!n||!n.root)return;let r=n.root;e.inFrustum=0,e.used=0,e.active=0,e.visible=0,this.frameCount++,F4(r,this),N4(r,this),B4(r,this),U4(r,this),t.scheduleUnload()}parseTile(e,t,i){return null}disposeTile(e){}preprocessNode(e,t,i){if(e.content&&(!("uri"in e.content)&&"url"in e.content&&(e.content.uri=e.content.url,delete e.content.url),e.content.uri&&(e.content.uri=new URL(e.content.uri,i+"/").toString()),e.content.boundingVolume&&!("box"in e.content.boundingVolume||"sphere"in e.content.boundingVolume||"region"in e.content.boundingVolume)&&delete e.content.boundingVolume),e.parent=t,e.children=e.children||[],e.content&&e.content.uri){let t=D4(e.content.uri),i=Boolean(t&&"json"===t.toLowerCase());e.__externalTileSet=i,e.__contentEmpty=i}else e.__externalTileSet=!1,e.__contentEmpty=!0;e.__distanceFromCamera=1/0,e.__error=1/0,e.__inFrustum=!1,e.__isLeaf=!1,e.__usedLastFrame=!1,e.__used=!1,e.__wasSetVisible=!1,e.__visible=!1,e.__childrenWereVisible=!1,e.__allChildrenLoaded=!1,e.__wasSetActive=!1,e.__active=!1,e.__loadingState=0,e.__loadIndex=0,e.__loadAbort=null,e.__depthFromRenderedParent=-1,null===t?(e.__depth=0,e.refine=e.refine||"REPLACE"):(e.__depth=t.__depth+1,e.refine=e.refine||t.refine)}setTileActive(e,t){}setTileVisible(e,t){}calculateError(e){return 0}tileInView(e){return!0}resetFailedTiles(){let e=this.stats;0!==e.failed&&(this.traverse((e=>{4===e.__loadingState&&(e.__loadingState=0)})),e.failed=0)}fetchTileSet(e,t,i=null){return fetch(e,t).then((t=>{if(t.ok)return t.json();throw new Error(`TilesRenderer: Failed to load tileset "${e}" with status ${t.status} : ${t.statusText}`)})).then((t=>{let n=t.asset.version;console.assert("1.0"===n||"0.0"===n,'asset.version is expected to be a string of "1.0" or "0.0"');let r=e.replace(/\/[^\/]*\/?$/,"");return r=new URL(r,window.location.href).toString(),NP(t.root,((e,t)=>this.preprocessNode(e,t,r)),null,i,i?i.__depth:0),t}))}loadRootTileSet(e){let t=this.tileSets;if(e in t)return t[e]instanceof Error?Promise.reject(t[e]):Promise.resolve(t[e]);{let i=this.fetchTileSet(this.preprocessURL?this.preprocessURL(e):e,this.fetchOptions).then((i=>{t[e]=i}));return i.catch((i=>{console.error(i),t[e]=i})),t[e]=i,i}}requestTileContents(e){if(0!==e.__loadingState)return;let t=this.stats,i=this.lruCache,n=this.downloadQueue,r=this.parseQueue,a=e.__externalTileSet;i.add(e,(e=>{1===e.__loadingState?(e.__loadAbort.abort(),e.__loadAbort=null):a?e.children.length=0:this.disposeTile(e),1===e.__loadingState?t.downloading--:2===e.__loadingState&&t.parsing--,e.__loadingState=0,e.__loadIndex++,r.remove(e),n.remove(e)})),e.__loadIndex++;let s=e.__loadIndex,o=new AbortController,l=o.signal;t.downloading++,e.__loadAbort=o,e.__loadingState=1;let h=a=>{e.__loadIndex===s&&("AbortError"!==a.name?(r.remove(e),n.remove(e),2===e.__loadingState?t.parsing--:1===e.__loadingState&&t.downloading--,t.failed++,console.error(`TilesRenderer : Failed to load tile at url "${e.content.uri}".`),console.error(a),e.__loadingState=4):i.remove(e))};a?n.add(e,(e=>{if(e.__loadIndex!==s)return Promise.resolve();let t=this.preprocessURL?this.preprocessURL(e.content.uri):e.content.uri;return this.fetchTileSet(t,Object.assign({signal:l},this.fetchOptions),e)})).then((i=>{e.__loadIndex===s&&(t.downloading--,e.__loadAbort=null,e.__loadingState=3,e.children.push(i.root))})).catch(h):n.add(e,(e=>{if(e.__loadIndex!==s)return Promise.resolve();let t=this.preprocessURL?this.preprocessURL(e.content.uri):e.content.uri;return fetch(t,Object.assign({signal:l},this.fetchOptions))})).then((t=>{if(e.__loadIndex===s){if(t.ok)return t.arrayBuffer();throw new Error(`Failed to load model with error code ${t.status}`)}})).then((i=>{if(e.__loadIndex===s)return t.downloading--,t.parsing++,e.__loadAbort=null,e.__loadingState=2,r.add(e,(e=>{if(e.__loadIndex!==s)return Promise.resolve();let t=D4(e.content.uri);return this.parseTile(i,e,t)}))})).then((()=>{e.__loadIndex===s&&(t.parsing--,e.__loadingState=3,e.__wasSetVisible&&this.setTileVisible(e,!0),e.__wasSetActive&&this.setTileActive(e,!0))})).catch(h)}dispose(){let e=this.lruCache;this.traverse((t=>{e.remove(t)})),this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0},this.frameCount=0}};function UP(e){return(new TextDecoder).decode(e)}var fd=class{constructor(e,t,i,n){this.buffer=e,this.binOffset=t+i,this.binLength=n;let r=null;if(0!==i){let n=new Uint8Array(e,t,i);r=JSON.parse(UP(n))}else r={};this.header=r}getKeys(){return Object.keys(this.header)}getData(e,t,i=null,n=null){let r=this.header;if(!(e in r))return null;let a=r[e];if(a instanceof Object){if(Array.isArray(a))return a;{let r,{buffer:s,binOffset:o,binLength:l}=this,h=a.byteOffset||0,c=a.type||n,u=a.componentType||i;if("type"in a&&n&&a.type!==n)throw new Error("FeatureTable: Specified type does not match expected type.");switch(c){case"SCALAR":r=1;break;case"VEC2":r=2;break;case"VEC3":r=3;break;case"VEC4":r=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${e}".`)}let d,p=o+h,f=t*r;switch(u){case"BYTE":d=new Int8Array(s,p,f);break;case"UNSIGNED_BYTE":d=new Uint8Array(s,p,f);break;case"SHORT":d=new Int16Array(s,p,f);break;case"UNSIGNED_SHORT":d=new Uint16Array(s,p,f);break;case"INT":d=new Int32Array(s,p,f);break;case"UNSIGNED_INT":d=new Uint32Array(s,p,f);break;case"FLOAT":d=new Float32Array(s,p,f);break;case"DOUBLE":d=new Float64Array(s,p,f);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${e}".`)}if(p+f*d.BYTES_PER_ELEMENT>o+l)throw new Error("FeatureTable: Feature data read outside binary body length.");return d}}return a}},sp=class extends fd{constructor(e,t,i,n,r){super(e,i,n,r),this.batchSize=t}getData(e,t=null,i=null){return super.getData(e,this.batchSize,t,i)}},$l=class{constructor(){this.fetchOptions={},this.workingPath=""}load(e){return fetch(e,this.fetchOptions).then((t=>{if(!t.ok)throw new Error(`Failed to load file "${e}" with status ${t.status} : ${t.statusText}`);return t.arrayBuffer()})).then((t=>(""===this.workingPath&&(this.workingPath=this.workingPathForURL(e)),this.parse(t))))}resolveExternalURL(e){return/^[^\\/]/.test(e)?this.workingPath+"/"+e:e}workingPathForURL(e){let t=e.split(/[\\/]/g);return t.pop(),t.join("/")+"/"}parse(e){throw new Error("LoaderBase: Parse not implemented.")}};function Gc(e){let t;if(t=e instanceof DataView?e:new DataView(e),"{"===String.fromCharCode(t.getUint8(0)))return null;let i="";for(let n=0;n<4;n++)i+=String.fromCharCode(t.getUint8(n));return i}var HP=class extends $l{parse(e){let t=new DataView(e),i=Gc(t);console.assert("b3dm"===i);let n=t.getUint32(4,!0);console.assert(1===n);let r=t.getUint32(8,!0);console.assert(r===e.byteLength);let a=t.getUint32(12,!0),s=t.getUint32(16,!0),o=t.getUint32(20,!0),l=t.getUint32(24,!0),h=e.slice(28,28+a+s),c=new fd(h,0,a,s),u=28+a+s,d=e.slice(u,u+o+l),p=new sp(d,c.getData("BATCH_LENGTH"),0,o,l),f=u+o+l;return{version:n,featureTable:c,batchTable:p,glbBytes:new Uint8Array(e,f,r-f)}}},By=class extends HP{constructor(e=fo){super(),this.manager=e,this.adjustmentTransform=new et}parse(e){let t=super.parse(e),i=t.glbBytes.slice().buffer;return new Promise(((e,n)=>{let r=this.manager,a=this.fetchOptions,s=r.getHandler("path.gltf")||new eh(r);"include"===a.credentials&&"cors"===a.mode&&s.setCrossOrigin("use-credentials"),"credentials"in a&&s.setWithCredentials("include"===a.credentials),a.headers&&s.setRequestHeader(a.headers);let o=this.workingPath;!/[\\/]$/.test(o)&&o.length&&(o+="/");let l=this.adjustmentTransform;s.parse(i,o,(i=>{let{batchTable:n,featureTable:r}=t,{scene:a}=i,s=r.getData("RTC_CENTER");s&&(a.position.x+=s[0],a.position.y+=s[1],a.position.z+=s[2]),i.scene.updateMatrix(),i.scene.matrix.multiply(l),i.scene.matrix.decompose(i.scene.position,i.scene.quaternion,i.scene.scale),i.batchTable=n,i.featureTable=r,a.batchTable=n,a.featureTable=r,e(i)}),n)}))}},VP=class extends $l{parse(e){let t=new DataView(e),i=Gc(t);console.assert("pnts"===i);let n=t.getUint32(4,!0);console.assert(1===n);let r=t.getUint32(8,!0);console.assert(r===e.byteLength);let a=t.getUint32(12,!0),s=t.getUint32(16,!0),o=t.getUint32(20,!0),l=t.getUint32(24,!0),h=e.slice(28,28+a+s),c=new fd(h,0,a,s),u=28+a+s,d=e.slice(u,u+o+l),p=new sp(d,c.getData("BATCH_LENGTH")||c.getData("POINTS_LENGTH"),0,o,l);return Promise.resolve({version:n,featureTable:c,batchTable:p})}},Uy=class extends VP{constructor(e=fo){super(),this.manager=e}parse(e){return super.parse(e).then((e=>{let{featureTable:t}=e,i=t.getData("POINTS_LENGTH"),n=t.getData("POSITION",i,"FLOAT","VEC3"),r=t.getData("RGB",i,"UNSIGNED_BYTE","VEC3");["QUANTIZED_VOLUME_OFFSET","QUANTIZED_VOLUME_SCALE","CONSTANT_RGBA","BATCH_LENGTH","POSITION_QUANTIZED","RGBA","RGB565","NORMAL","NORMAL_OCT16P"].forEach((e=>{e in t.header&&console.warn(`PNTSLoader: Unsupported FeatureTable feature "${e}" detected.`)}));let a=new Dt;a.setAttribute("position",new mn(n,3,!1));let s=new bi;s.size=2,s.sizeAttenuation=!1,null!==r&&(a.setAttribute("color",new mn(r,3,!0)),s.vertexColors=!0);let o=new ii(a,s);e.scene=o,e.scene.featureTable=t;let l=t.getData("RTC_CENTER");return l&&(e.scene.position.x+=l[0],e.scene.position.y+=l[1],e.scene.position.z+=l[2]),e}))}},zP=class extends $l{parse(e){let t=new DataView(e),i=Gc(t);console.assert("i3dm"===i);let n=t.getUint32(4,!0);console.assert(1===n);let r=t.getUint32(8,!0);console.assert(r===e.byteLength);let a=t.getUint32(12,!0),s=t.getUint32(16,!0),o=t.getUint32(20,!0),l=t.getUint32(24,!0),h=t.getUint32(28,!0),c=e.slice(32,32+a+s),u=new fd(c,0,a,s),d=32+a+s,p=e.slice(d,d+o+l),f=new sp(p,u.getData("INSTANCES_LENGTH"),0,o,l),m=d+o+l,g=new Uint8Array(e,m,r-m),v=null,y=null;if(h)v=g,y=Promise.resolve();else{let e=this.resolveExternalURL(UP(g));y=fetch(e,this.fetchOptions).then((t=>{if(!t.ok)throw new Error(`I3DMLoaderBase : Failed to load file "${e}" with status ${t.status} : ${t.statusText}`);return t.arrayBuffer()})).then((e=>{v=new Uint8Array(e)}))}return y.then((()=>({version:n,featureTable:u,batchTable:f,glbBytes:v})))}},gve=new D,z4=new D,G4=new D,vve=new D,q4=new dr,GP=new D,qP=new et,Hy=class extends zP{constructor(e=fo){super(),this.manager=e,this.adjustmentTransform=new et}resolveExternalURL(e){return this.manager.resolveURL(super.resolveExternalURL(e))}parse(e){return super.parse(e).then((e=>{let{featureTable:t,batchTable:i}=e,n=e.glbBytes.slice().buffer;return new Promise(((e,r)=>{let a=this.fetchOptions,s=this.manager,o=s.getHandler("path.gltf")||new eh(s);"include"===a.credentials&&"cors"===a.mode&&o.setCrossOrigin("use-credentials"),"credentials"in a&&o.setWithCredentials("include"===a.credentials),a.headers&&o.setRequestHeader(a.headers);let l=this.workingPath;/[\\/]$/.test(l)||(l+="/");let h=this.adjustmentTransform;o.parse(n,l,(n=>{let r=t.getData("INSTANCES_LENGTH"),a=t.getData("POSITION",r,"FLOAT","VEC3"),s=t.getData("NORMAL_UP",r,"FLOAT","VEC3"),o=t.getData("NORMAL_RIGHT",r,"FLOAT","VEC3"),l=t.getData("SCALE_NON_UNIFORM",r,"FLOAT","VEC3"),c=t.getData("SCALE",r,"FLOAT","SCALAR");["RTC_CENTER","QUANTIZED_VOLUME_OFFSET","QUANTIZED_VOLUME_SCALE","EAST_NORTH_UP","POSITION_QUANTIZED","NORMAL_UP_OCT32P","NORMAL_RIGHT_OCT32P"].forEach((e=>{e in t.header&&console.warn(`I3DMLoader: Unsupported FeatureTable feature "${e}" detected.`)}));let u=new Map,d=[];n.scene.traverse((e=>{if(e.isMesh){let{geometry:t,material:i}=e,n=new Oi(t,i,r);n.position.copy(e.position),n.rotation.copy(e.rotation),n.scale.copy(e.scale),d.push(n),u.set(e,n)}}));let p=new D;for(let e=0;e{let i=t.parent;i&&(i.remove(t),i.add(e),e.updateMatrixWorld(),e.position.copy(p).applyMatrix4(e.matrixWorld))}));for(let e=0;e{let t=new er;return e.forEach((e=>{t.add(e.scene)})),{tiles:e,scene:t}}))}},XP=class{constructor(){this.name="CESIUM_RTC"}afterRoot(e){if(e.parser.json.extensions&&e.parser.json.extensions.CESIUM_RTC){let{center:t}=e.parser.json.extensions.CESIUM_RTC;t&&(e.scene.position.x+=t[0],e.scene.position.y+=t[1],e.scene.position.z+=t[2])}}},YP=class extends $l{constructor(e=fo){super(),this.manager=e}parse(e){return new Promise(((t,i)=>{let n=this.manager,r=this.fetchOptions,a=n.getHandler("path.gltf")||n.getHandler("path.glb");a||(a=new eh(n),a.register((()=>new XP)),"include"===r.credentials&&"cors"===r.mode&&a.setCrossOrigin("use-credentials"),"credentials"in r&&a.setWithCredentials("include"===r.credentials),r.headers&&a.setRequestHeader(r.headers));let s=a.resourcePath||a.path||this.workingPath;!/[\\/]$/.test(s)&&s.length&&(s+="/"),a.parse(e,s,(e=>{t(e)}),i)}))}},$P=new et,ZP=class extends er{constructor(e){super(),this.name="TilesRenderer.TilesGroup",this.tilesRenderer=e}raycast(e,t){this.tilesRenderer.optimizeRaycast&&this.tilesRenderer.raycast(e,t)}updateMatrixWorld(e){if(this.matrixAutoUpdate&&this.updateMatrix(),this.matrixWorldNeedsUpdate||e){null===this.parent?$P.copy(this.matrix):$P.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1;let e=$P.elements,t=this.matrixWorld.elements,i=!1;for(let n=0;n<16;n++){let r=e[n],a=t[n];if(Math.abs(r-a)>Number.EPSILON){i=!0;break}}if(i){this.matrixWorld.copy($P);let e=this.children;for(let t=0,i=e.length;t=t&&s<=i&&l>=n&&l<=r){let t=Ygt(e);u.push(t),this.getCartographicToPosition(s,l,o,t)}}}return u}getBoundingBox(e,t){bve();let{latStart:i,latEnd:n,lonStart:r,lonEnd:a}=this;if(n-i{Object.getPrototypeOf(e).raycast.call(e,t,i)}))}function Y4(e,t,i,n){if(i.has(e)){if(X4(e.cached.scene,n,Zl),Zl.length>0){Zl.length>1&&Zl.sort(j4);let e=Zl[0];return Zl.length=0,e}return null}let r=[],a=e.children;for(let l=0,h=a.length;l1e-6&&console.warn("ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when raycasting.");let i={distance:1/0,tile:null};r.push(i),i.distance=Eve.distanceToSquared(qy.origin)*t*t,i.tile=e}}}r.sort(j4);let s=1/0,o=null;for(let l=0,h=r.length;ls)break;{let r=e.tile,a=r.cached.scene,l=null;if(i.has(r)?(X4(a,n,Zl),Zl.length>0&&(Zl.length>1&&Zl.sort(j4),l=Zl[0])):l=Y4(r,t,i,n),l){let e=l.distance*l.distance;e{e.frustumCulled=e[wve]&&t}))}var M_=class extends BP{get autoDisableRendererCulling(){return this._autoDisableRendererCulling}set autoDisableRendererCulling(e){this._autoDisableRendererCulling!==e&&(super._autoDisableRendererCulling=e,this.forEachLoadedModel((t=>{Tve(t,!e)})))}constructor(...e){super(...e),this.group=new ZP(this),this.cameras=[],this.cameraMap=new Map,this.cameraInfo=[],this.activeTiles=new Set,this.visibleTiles=new Set,this._autoDisableRendererCulling=!0,this.optimizeRaycast=!0,this.onLoadTileSet=null,this.onLoadModel=null,this.onDisposeModel=null,this.onTileVisibilityChange=null;let t=new Lu;t.setURLModifier((e=>this.preprocessURL?this.preprocessURL(e):e)),this.manager=t;let i=this;this._overridenRaycast=function(e,t){i.optimizeRaycast||Object.getPrototypeOf(this).raycast.call(this,e,t)}}getBounds(e){if(!this.root)return!1;let t=this.root.cached,i=t.box,n=t.boxTransform;return!!i&&(e.copy(i),e.applyMatrix4(n),!0)}getOrientedBounds(e,t){if(!this.root)return!1;let i=this.root.cached,n=i.box,r=i.boxTransform;return!!n&&(e.copy(n),t.copy(r),!0)}getBoundingSphere(e){if(!this.root)return!1;let t=this.root.cached.sphere;return!!t&&(e.copy(t),!0)}forEachLoadedModel(e){this.traverse((t=>{let i=t.cached.scene;i&&e(i,t)}))}raycast(e,t){if(this.root)if(e.firstHitOnly){let i=Y4(this.root,this.group,this.activeTiles,e);i&&t.push(i)}else $4(this.root,this.group,this.activeTiles,e,t)}hasCamera(e){return this.cameraMap.has(e)}setCamera(e){let t=this.cameras,i=this.cameraMap;return!i.has(e)&&(i.set(e,new xe),t.push(e),!0)}setResolution(e,t,i){let n=this.cameraMap;return!!n.has(e)&&(t instanceof xe?n.get(e).copy(t):n.get(e).set(t,i),!0)}setResolutionFromRenderer(e,t){let i=this.cameraMap;if(!i.has(e))return!1;let n=i.get(e);return t.getSize(n),n.multiplyScalar(t.getPixelRatio()),!0}deleteCamera(e){let t=this.cameras,i=this.cameraMap;if(i.has(e)){let n=t.indexOf(e);return t.splice(n,1),i.delete(e),!0}return!1}fetchTileSet(e,...t){let i=super.fetchTileSet(e,...t);return i.then((t=>{this.onLoadTileSet&&Promise.resolve().then((()=>{this.onLoadTileSet(t,e)}))})),i}update(){let e=this.group,t=this.cameras,i=this.cameraMap,n=this.cameraInfo;if(0===t.length)return void console.warn("TilesRenderer: no cameras defined. Cannot update 3d tiles.");for(;n.length>t.length;)n.pop();for(;n.length1e-6&&console.warn("ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when calculating screen space error.");for(let a=0,s=n.length;ae.scene));break}case"pnts":{let t=new Uy(s);t.workingPath=r,t.fetchOptions=a,l=t.parse(e).then((e=>e.scene));break}case"i3dm":{let t=new Hy(s);t.workingPath=r,t.fetchOptions=a,t.adjustmentTransform.copy(qc),l=t.parse(e).then((e=>e.scene));break}case"cmpt":{let t=new jP(s);t.workingPath=r,t.fetchOptions=a,t.adjustmentTransform.copy(qc),l=t.parse(e).then((e=>e.scene));break}case"gltf":case"glb":let t=new YP(s);t.workingPath=r,t.fetchOptions=a,l=t.parse(e).then((e=>e.scene));break;default:console.warn(`TilesRenderer: Content type "${d}" not supported.`),l=Promise.resolve(null)}return l.then((e=>{if(t._loadIndex!==o)return;e.updateMatrix(),("glb"===d||"gltf"===d)&&e.matrix.multiply(qc),e.matrix.premultiply(u),e.matrix.decompose(e.position,e.quaternion,e.scale),e.traverse((e=>{e[wve]=e.frustumCulled})),Tve(e,!this.autoDisableRendererCulling),c.scene=e,e.traverse((e=>{e.raycast=this._overridenRaycast}));let i=[],n=[],r=[];e.traverse((e=>{if(e.geometry&&n.push(e.geometry),e.material){let t=e.material;i.push(e.material);for(let e in t){let i=t[e];i&&i.isTexture&&r.push(i)}}})),c.materials=i,c.geometry=n,c.textures=r,this.onLoadModel&&this.onLoadModel(e,t)}))}disposeTile(e){let t=e.cached;if(t.scene){let i=t.materials,n=t.geometry,r=t.textures,a=t.scene.parent;for(let e=0,t=n.length;e25&&(t=25);let i=.5*(t-1),n=new Array(t),r=0;for(let a=0;a0){e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();let t=e.autoClear;e.autoClear=!1,r&&e.state.buffers.stencil.setTest(!1),e.setClearColor(16777215,1),this.changeVisibilityOfSelectedObjects(!1);let n=this.renderScene.background;if(this.renderScene.background=null,this.renderScene.overrideMaterial=this.depthMaterial,e.setRenderTarget(this.renderTargetDepthBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.changeVisibilityOfSelectedObjects(!0),this._visibilityCache.clear(),this.updateTextureMatrix(),this.changeVisibilityOfNonSelectedObjects(!1),this.renderScene.overrideMaterial=this.prepareMaskMaterial,this.prepareMaskMaterial.uniforms.cameraNearFar.value.set(this.renderCamera.near,this.renderCamera.far),this.prepareMaskMaterial.uniforms.depthTexture.value=this.renderTargetDepthBuffer.texture,this.prepareMaskMaterial.uniforms.textureMatrix.value=this.textureMatrix,e.setRenderTarget(this.renderTargetMaskBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.renderScene.overrideMaterial=null,this.changeVisibilityOfNonSelectedObjects(!0),this._visibilityCache.clear(),this.renderScene.background=n,this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.renderTargetMaskBuffer.texture,e.setRenderTarget(this.renderTargetMaskDownSampleBuffer),e.clear(),this.fsQuad.render(e),this.tempPulseColor1.copy(this.visibleEdgeColor),this.tempPulseColor2.copy(this.hiddenEdgeColor),this.pulsePeriod>0){let e=.625+.75*Math.cos(.01*performance.now()/this.pulsePeriod)/2;this.tempPulseColor1.multiplyScalar(e),this.tempPulseColor2.multiplyScalar(e)}this.fsQuad.material=this.edgeDetectionMaterial,this.edgeDetectionMaterial.uniforms.maskTexture.value=this.renderTargetMaskDownSampleBuffer.texture,this.edgeDetectionMaterial.uniforms.texSize.value.set(this.renderTargetMaskDownSampleBuffer.width,this.renderTargetMaskDownSampleBuffer.height),this.edgeDetectionMaterial.uniforms.visibleEdgeColor.value=this.tempPulseColor1,this.edgeDetectionMaterial.uniforms.hiddenEdgeColor.value=this.tempPulseColor2,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial1,this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=jc.BlurDirectionX,this.separableBlurMaterial1.uniforms.kernelRadius.value=this.edgeThickness,e.setRenderTarget(this.renderTargetBlurBuffer1),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetBlurBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=jc.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial2,this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial2.uniforms.direction.value=jc.BlurDirectionX,e.setRenderTarget(this.renderTargetBlurBuffer2),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetBlurBuffer2.texture,this.separableBlurMaterial2.uniforms.direction.value=jc.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer2),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.overlayMaterial,this.overlayMaterial.uniforms.maskTexture.value=this.renderTargetMaskBuffer.texture,this.overlayMaterial.uniforms.edgeTexture1.value=this.renderTargetEdgeBuffer1.texture,this.overlayMaterial.uniforms.edgeTexture2.value=this.renderTargetEdgeBuffer2.texture,this.overlayMaterial.uniforms.patternTexture.value=this.patternTexture,this.overlayMaterial.uniforms.edgeStrength.value=this.edgeStrength,this.overlayMaterial.uniforms.edgeGlow.value=this.edgeGlow,this.overlayMaterial.uniforms.usePatternTexture.value=this.usePatternTexture,r&&e.state.buffers.stencil.setTest(!0),e.setRenderTarget(i),this.fsQuad.render(e),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=t}this.renderToScreen&&(this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=i.texture,e.setRenderTarget(null),this.fsQuad.render(e))}getPrepareMaskMaterial(){return new cn({uniforms:{depthTexture:{value:null},cameraNearFar:{value:new xe(.5,.5)},textureMatrix:{value:null}},vertexShader:"#include \n\t\t\t\t#include \n\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tuniform mat4 textureMatrix;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t\tvPosition = mvPosition;\n\n\t\t\t\t\tvec4 worldPosition = vec4( transformed, 1.0 );\n\n\t\t\t\t\t#ifdef USE_INSTANCING\n\n\t\t\t\t\t\tworldPosition = instanceMatrix * worldPosition;\n\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\tworldPosition = modelMatrix * worldPosition;\n\n\t\t\t\t\tprojTexCoord = textureMatrix * worldPosition;\n\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tuniform sampler2D depthTexture;\n\t\t\t\tuniform vec2 cameraNearFar;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tfloat depth = unpackRGBAToDepth(texture2DProj( depthTexture, projTexCoord ));\n\t\t\t\t\tfloat viewZ = - DEPTH_TO_VIEW_Z( depth, cameraNearFar.x, cameraNearFar.y );\n\t\t\t\t\tfloat depthTest = (-vPosition.z > viewZ) ? 1.0 : 0.0;\n\t\t\t\t\tgl_FragColor = vec4(0.0, depthTest, 1.0, 1.0);\n\n\t\t\t\t}"})}getEdgeDetectionMaterial(){return new cn({uniforms:{maskTexture:{value:null},texSize:{value:new xe(.5,.5)},visibleEdgeColor:{value:new D(1,1,1)},hiddenEdgeColor:{value:new D(1,1,1)}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec3 visibleEdgeColor;\n\t\t\t\tuniform vec3 hiddenEdgeColor;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tvec4 uvOffset = vec4(1.0, 0.0, 0.0, 1.0) * vec4(invSize, invSize);\n\t\t\t\t\tvec4 c1 = texture2D( maskTexture, vUv + uvOffset.xy);\n\t\t\t\t\tvec4 c2 = texture2D( maskTexture, vUv - uvOffset.xy);\n\t\t\t\t\tvec4 c3 = texture2D( maskTexture, vUv + uvOffset.yw);\n\t\t\t\t\tvec4 c4 = texture2D( maskTexture, vUv - uvOffset.yw);\n\t\t\t\t\tfloat diff1 = (c1.r - c2.r)*0.5;\n\t\t\t\t\tfloat diff2 = (c3.r - c4.r)*0.5;\n\t\t\t\t\tfloat d = length( vec2(diff1, diff2) );\n\t\t\t\t\tfloat a1 = min(c1.g, c2.g);\n\t\t\t\t\tfloat a2 = min(c3.g, c4.g);\n\t\t\t\t\tfloat visibilityFactor = min(a1, a2);\n\t\t\t\t\tvec3 edgeColor = 1.0 - visibilityFactor > 0.001 ? visibleEdgeColor : hiddenEdgeColor;\n\t\t\t\t\tgl_FragColor = vec4(edgeColor, 1.0) * vec4(d);\n\t\t\t\t}"})}getSeperableBlurMaterial(e){return new cn({defines:{MAX_RADIUS:e},uniforms:{colorTexture:{value:null},texSize:{value:new xe(.5,.5)},direction:{value:new xe(.5,.5)},kernelRadius:{value:1}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float kernelRadius;\n\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat sigma = kernelRadius/2.0;\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, sigma);\n\t\t\t\t\tvec4 diffuseSum = texture2D( colorTexture, vUv) * weightSum;\n\t\t\t\t\tvec2 delta = direction * invSize * kernelRadius/float(MAX_RADIUS);\n\t\t\t\t\tvec2 uvOffset = delta;\n\t\t\t\t\tfor( int i = 1; i <= MAX_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = kernelRadius * float(i) / float(MAX_RADIUS);\n\t\t\t\t\t\tfloat w = gaussianPdf(x, sigma);\n\t\t\t\t\t\tvec4 sample1 = texture2D( colorTexture, vUv + uvOffset);\n\t\t\t\t\t\tvec4 sample2 = texture2D( colorTexture, vUv - uvOffset);\n\t\t\t\t\t\tdiffuseSum += ((sample1 + sample2) * w);\n\t\t\t\t\t\tweightSum += (2.0 * w);\n\t\t\t\t\t\tuvOffset += delta;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = diffuseSum/weightSum;\n\t\t\t\t}"})}getOverlayMaterial(){return new cn({uniforms:{maskTexture:{value:null},edgeTexture1:{value:null},edgeTexture2:{value:null},patternTexture:{value:null},edgeStrength:{value:1},edgeGlow:{value:1},usePatternTexture:{value:0}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform sampler2D edgeTexture1;\n\t\t\t\tuniform sampler2D edgeTexture2;\n\t\t\t\tuniform sampler2D patternTexture;\n\t\t\t\tuniform float edgeStrength;\n\t\t\t\tuniform float edgeGlow;\n\t\t\t\tuniform bool usePatternTexture;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec4 edgeValue1 = texture2D(edgeTexture1, vUv);\n\t\t\t\t\tvec4 edgeValue2 = texture2D(edgeTexture2, vUv);\n\t\t\t\t\tvec4 maskColor = texture2D(maskTexture, vUv);\n\t\t\t\t\tvec4 patternColor = texture2D(patternTexture, 6.0 * vUv);\n\t\t\t\t\tfloat visibilityFactor = 1.0 - maskColor.g > 0.0 ? 1.0 : 0.5;\n\t\t\t\t\tvec4 edgeValue = edgeValue1 + edgeValue2 * edgeGlow;\n\t\t\t\t\tvec4 finalColor = edgeStrength * maskColor.r * edgeValue;\n\t\t\t\t\tif(usePatternTexture)\n\t\t\t\t\t\tfinalColor += + visibilityFactor * (1.0 - maskColor.r) * (1.0 - patternColor.r);\n\t\t\t\t\tgl_FragColor = finalColor;\n\t\t\t\t}",blending:Ec,depthTest:!1,depthWrite:!1,transparent:!0})}};jc.BlurDirectionX=new xe(1,0),jc.BlurDirectionY=new xe(0,1);var s2=class extends vs{constructor(e,t,i,n,r){super(),this.scene=e,this.camera=t,this.overrideMaterial=i,this.clearColor=n,this.clearAlpha=void 0!==r?r:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new ct}render(e,t,i){let n,r,a=e.autoClear;e.autoClear=!1,void 0!==this.overrideMaterial&&(r=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),n=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:i),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),this.clearColor&&e.setClearColor(this._oldClearColor,n),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=r),e.autoClear=a}},P_={defines:{NUM_SAMPLES:7,NUM_RINGS:4,NORMAL_TEXTURE:0,DIFFUSE_TEXTURE:0,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},tDiffuse:{value:null},tNormal:{value:null},size:{value:new xe(512,512)},cameraNear:{value:1},cameraFar:{value:100},cameraProjectionMatrix:{value:new et},cameraInverseProjectionMatrix:{value:new et},scale:{value:1},intensity:{value:.1},bias:{value:.5},minResolution:{value:0},kernelRadius:{value:100},randomSeed:{value:0}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",fragmentShader:"\n\n\t\t#include \n\n\t\tvarying vec2 vUv;\n\n\t\t#if DIFFUSE_TEXTURE == 1\n\t\tuniform sampler2D tDiffuse;\n\t\t#endif\n\n\t\tuniform sampler2D tDepth;\n\n\t\t#if NORMAL_TEXTURE == 1\n\t\tuniform sampler2D tNormal;\n\t\t#endif\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\n\t\tuniform float scale;\n\t\tuniform float intensity;\n\t\tuniform float bias;\n\t\tuniform float kernelRadius;\n\t\tuniform float minResolution;\n\t\tuniform vec2 size;\n\t\tuniform float randomSeed;\n\n\t\t// RGBA depth\n\n\t\t#include \n\n\t\tvec4 getDefaultColor( const in vec2 screenPosition ) {\n\t\t\t#if DIFFUSE_TEXTURE == 1\n\t\t\treturn texture2D( tDiffuse, vUv );\n\t\t\t#else\n\t\t\treturn vec4( 1.0 );\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\t\t\t#if DEPTH_PACKING == 1\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t\t#else\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\t\t\tclipPosition *= clipW; // unprojection.\n\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition ) {\n\t\t\t#if NORMAL_TEXTURE == 1\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\t\t\t#else\n\t\t\treturn normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n\t\t\t#endif\n\t\t}\n\n\t\tfloat scaleDividedByCameraFar;\n\t\tfloat minResolutionMultipliedByCameraFar;\n\n\t\tfloat getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {\n\t\t\tvec3 viewDelta = sampleViewPosition - centerViewPosition;\n\t\t\tfloat viewDistance = length( viewDelta );\n\t\t\tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n\n\t\t\treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) );\n\t\t}\n\n\t\t// moving costly divides into consts\n\t\tconst float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\n\t\tconst float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n\n\t\tfloat getAmbientOcclusion( const in vec3 centerViewPosition ) {\n\t\t\t// precompute some variables require in getOcclusion.\n\t\t\tscaleDividedByCameraFar = scale / cameraFar;\n\t\t\tminResolutionMultipliedByCameraFar = minResolution * cameraFar;\n\t\t\tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUv );\n\n\t\t\t// jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/\n\t\t\tfloat angle = rand( vUv + randomSeed ) * PI2;\n\t\t\tvec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size;\n\t\t\tvec2 radiusStep = radius;\n\n\t\t\tfloat occlusionSum = 0.0;\n\t\t\tfloat weightSum = 0.0;\n\n\t\t\tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\n\t\t\t\tvec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius;\n\t\t\t\tradius += radiusStep;\n\t\t\t\tangle += ANGLE_STEP;\n\n\t\t\t\tfloat sampleDepth = getDepth( sampleUv );\n\t\t\t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\t\tvec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ );\n\t\t\t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n\t\t\t\tweightSum += 1.0;\n\t\t\t}\n\n\t\t\tif( weightSum == 0.0 ) discard;\n\n\t\t\treturn occlusionSum * ( intensity / weightSum );\n\t\t}\n\n\t\tvoid main() {\n\t\t\tfloat centerDepth = getDepth( vUv );\n\t\t\tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\n\t\t\tfloat centerViewZ = getViewZ( centerDepth );\n\t\t\tvec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ );\n\n\t\t\tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );\n\n\t\t\tgl_FragColor = getDefaultColor( vUv );\n\t\t\tgl_FragColor.xyz *= 1.0 - ambientOcclusion;\n\t\t}"},yd={defines:{KERNEL_RADIUS:4,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDiffuse:{value:null},size:{value:new xe(512,512)},sampleUvOffsets:{value:[new xe(0,0)]},sampleWeights:{value:[1]},tDepth:{value:null},cameraNear:{value:10},cameraFar:{value:1e3},depthCutoff:{value:10}},vertexShader:"\n\n\t\t#include \n\n\t\tuniform vec2 size;\n\n\t\tvarying vec2 vUv;\n\t\tvarying vec2 vInvSize;\n\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tvInvSize = 1.0 / size;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",fragmentShader:"\n\n\t\t#include \n\t\t#include \n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tDepth;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform float depthCutoff;\n\n\t\tuniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ];\n\t\tuniform float sampleWeights[ KERNEL_RADIUS + 1 ];\n\n\t\tvarying vec2 vUv;\n\t\tvarying vec2 vInvSize;\n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\t\t\t#if DEPTH_PACKING == 1\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t\t#else\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\n\t\tvoid main() {\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tif( depth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\n\t\t\tfloat centerViewZ = -getViewZ( depth );\n\t\t\tbool rBreak = false, lBreak = false;\n\n\t\t\tfloat weightSum = sampleWeights[0];\n\t\t\tvec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum;\n\n\t\t\tfor( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n\t\t\t\tfloat sampleWeight = sampleWeights[i];\n\t\t\t\tvec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize;\n\n\t\t\t\tvec2 sampleUv = vUv + sampleUvOffset;\n\t\t\t\tfloat viewZ = -getViewZ( getDepth( sampleUv ) );\n\n\t\t\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true;\n\n\t\t\t\tif( ! rBreak ) {\n\t\t\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;\n\t\t\t\t\tweightSum += sampleWeight;\n\t\t\t\t}\n\n\t\t\t\tsampleUv = vUv - sampleUvOffset;\n\t\t\t\tviewZ = -getViewZ( getDepth( sampleUv ) );\n\n\t\t\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true;\n\n\t\t\t\tif( ! lBreak ) {\n\t\t\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;\n\t\t\t\t\tweightSum += sampleWeight;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tgl_FragColor = diffuseSum / weightSum;\n\t\t}"},I_={createSampleWeights:function(e,t){let i=[];for(let n=0;n<=e;n++)i.push(Qgt(n,t));return i},createSampleOffsets:function(e,t){let i=[];for(let n=0;n<=e;n++)i.push(t.clone().multiplyScalar(n));return i},configure:function(e,t,i,n){e.defines.KERNEL_RADIUS=t,e.uniforms.sampleUvOffsets.value=I_.createSampleOffsets(t,n),e.uniforms.sampleWeights.value=I_.createSampleWeights(t,i),e.needsUpdate=!0}};function Qgt(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}var a2={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tvoid main() {\n\n\t\t\tfloat depth = 1.0 - unpackRGBAToDepth( texture2D( tDiffuse, vUv ) );\n\t\t\tgl_FragColor = vec4( vec3( depth ), opacity );\n\n\t\t}"},L_=class extends vs{constructor(e,t,i=!1,n=!1,r=new xe(256,256)){let a;super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.supportsDepthTextureExtension=i,this.supportsNormalTexture=n,this.originalClearColor=new ct,this._oldClearColor=new ct,this.oldClearAlpha=1,this.params={output:0,saoBias:.5,saoIntensity:.18,saoScale:1,saoKernelRadius:100,saoMinResolution:0,saoBlur:!0,saoBlurRadius:8,saoBlurStdDev:4,saoBlurDepthCutoff:.01},this.resolution=new xe(r.x,r.y),this.saoRenderTarget=new sr(this.resolution.x,this.resolution.y,{type:Mr}),this.blurIntermediateRenderTarget=this.saoRenderTarget.clone(),this.beautyRenderTarget=this.saoRenderTarget.clone(),this.normalRenderTarget=new sr(this.resolution.x,this.resolution.y,{minFilter:Jr,magFilter:Jr,type:Mr}),this.depthRenderTarget=this.normalRenderTarget.clone(),this.supportsDepthTextureExtension&&(a=new ff,a.type=Rv,this.beautyRenderTarget.depthTexture=a,this.beautyRenderTarget.depthBuffer=!0),this.depthMaterial=new _c,this.depthMaterial.depthPacking=Cv,this.depthMaterial.blending=Qr,this.normalMaterial=new mf,this.normalMaterial.blending=Qr,this.saoMaterial=new cn({defines:Object.assign({},P_.defines),fragmentShader:P_.fragmentShader,vertexShader:P_.vertexShader,uniforms:Ri.clone(P_.uniforms)}),this.saoMaterial.extensions.derivatives=!0,this.saoMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.saoMaterial.defines.NORMAL_TEXTURE=this.supportsNormalTexture?1:0,this.saoMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.saoMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?a:this.depthRenderTarget.texture,this.saoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.saoMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.blending=Qr,this.vBlurMaterial=new cn({uniforms:Ri.clone(yd.uniforms),defines:Object.assign({},yd.defines),vertexShader:yd.vertexShader,fragmentShader:yd.fragmentShader}),this.vBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.vBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.vBlurMaterial.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.vBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?a:this.depthRenderTarget.texture,this.vBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.vBlurMaterial.blending=Qr,this.hBlurMaterial=new cn({uniforms:Ri.clone(yd.uniforms),defines:Object.assign({},yd.defines),vertexShader:yd.vertexShader,fragmentShader:yd.fragmentShader}),this.hBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.hBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.hBlurMaterial.uniforms.tDiffuse.value=this.blurIntermediateRenderTarget.texture,this.hBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?a:this.depthRenderTarget.texture,this.hBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.hBlurMaterial.blending=Qr,this.materialCopy=new cn({uniforms:Ri.clone(Ea.uniforms),vertexShader:Ea.vertexShader,fragmentShader:Ea.fragmentShader,blending:Qr}),this.materialCopy.transparent=!0,this.materialCopy.depthTest=!1,this.materialCopy.depthWrite=!1,this.materialCopy.blending=Pm,this.materialCopy.blendSrc=Sv,this.materialCopy.blendDst=vf,this.materialCopy.blendEquation=Go,this.materialCopy.blendSrcAlpha=wv,this.materialCopy.blendDstAlpha=vf,this.materialCopy.blendEquationAlpha=Go,this.depthCopy=new cn({uniforms:Ri.clone(a2.uniforms),vertexShader:a2.vertexShader,fragmentShader:a2.fragmentShader,blending:Qr}),this.fsQuad=new ba(null)}render(e,t,i){if(this.renderToScreen&&(this.materialCopy.blending=Qr,this.materialCopy.uniforms.tDiffuse.value=i.texture,this.materialCopy.needsUpdate=!0,this.renderPass(e,this.materialCopy,null)),1===this.params.output)return;e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();let n=e.autoClear;e.autoClear=!1,e.setRenderTarget(this.depthRenderTarget),e.clear(),this.saoMaterial.uniforms.bias.value=this.params.saoBias,this.saoMaterial.uniforms.intensity.value=this.params.saoIntensity,this.saoMaterial.uniforms.scale.value=this.params.saoScale,this.saoMaterial.uniforms.kernelRadius.value=this.params.saoKernelRadius,this.saoMaterial.uniforms.minResolution.value=this.params.saoMinResolution,this.saoMaterial.uniforms.cameraNear.value=this.camera.near,this.saoMaterial.uniforms.cameraFar.value=this.camera.far;let r=this.params.saoBlurDepthCutoff*(this.camera.far-this.camera.near);this.vBlurMaterial.uniforms.depthCutoff.value=r,this.hBlurMaterial.uniforms.depthCutoff.value=r,this.vBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.vBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.hBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.hBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.params.saoBlurRadius=Math.floor(this.params.saoBlurRadius),(this.prevStdDev!==this.params.saoBlurStdDev||this.prevNumSamples!==this.params.saoBlurRadius)&&(I_.configure(this.vBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new xe(0,1)),I_.configure(this.hBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new xe(1,0)),this.prevStdDev=this.params.saoBlurStdDev,this.prevNumSamples=this.params.saoBlurRadius),e.setClearColor(0),e.setRenderTarget(this.beautyRenderTarget),e.clear(),e.render(this.scene,this.camera),this.supportsDepthTextureExtension||this.renderOverride(e,this.depthMaterial,this.depthRenderTarget,0,1),this.supportsNormalTexture&&this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,7829503,1),this.renderPass(e,this.saoMaterial,this.saoRenderTarget,16777215,1),this.params.saoBlur&&(this.renderPass(e,this.vBlurMaterial,this.blurIntermediateRenderTarget,16777215,1),this.renderPass(e,this.hBlurMaterial,this.saoRenderTarget,16777215,1));let a=this.materialCopy;3===this.params.output?this.supportsDepthTextureExtension?(this.materialCopy.uniforms.tDiffuse.value=this.beautyRenderTarget.depthTexture,this.materialCopy.needsUpdate=!0):(this.depthCopy.uniforms.tDiffuse.value=this.depthRenderTarget.texture,this.depthCopy.needsUpdate=!0,a=this.depthCopy):4===this.params.output?(this.materialCopy.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.materialCopy.needsUpdate=!0):(this.materialCopy.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.materialCopy.needsUpdate=!0),0===this.params.output?a.blending=Pm:a.blending=Qr,this.renderPass(e,a,this.renderToScreen?null:i),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=n}renderPass(e,t,i,n,r){e.getClearColor(this.originalClearColor);let a=e.getClearAlpha(),s=e.autoClear;e.setRenderTarget(i),e.autoClear=!1,null!=n&&(e.setClearColor(n),e.setClearAlpha(r||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=s,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)}renderOverride(e,t,i,n,r){e.getClearColor(this.originalClearColor);let a=e.getClearAlpha(),s=e.autoClear;e.setRenderTarget(i),e.autoClear=!1,n=t.clearColor||n,r=t.clearAlpha||r,null!=n&&(e.setClearColor(n),e.setClearAlpha(r||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=s,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)}setSize(e,t){this.beautyRenderTarget.setSize(e,t),this.saoRenderTarget.setSize(e,t),this.blurIntermediateRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.depthRenderTarget.setSize(e,t),this.saoMaterial.uniforms.size.value.set(e,t),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.needsUpdate=!0,this.vBlurMaterial.uniforms.size.value.set(e,t),this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.uniforms.size.value.set(e,t),this.hBlurMaterial.needsUpdate=!0}dispose(){this.saoRenderTarget.dispose(),this.blurIntermediateRenderTarget.dispose(),this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.depthRenderTarget.dispose(),this.depthMaterial.dispose(),this.normalMaterial.dispose(),this.saoMaterial.dispose(),this.vBlurMaterial.dispose(),this.hBlurMaterial.dispose(),this.materialCopy.dispose(),this.depthCopy.dispose(),this.fsQuad.dispose()}};L_.OUTPUT={Beauty:1,Default:0,SAO:2,Depth:3,Normal:4};var o2=class extends vs{constructor(e,t,i,n){super(),this.scene=e,this.camera=t,this.sampleLevel=4,this.unbiased=!0,this.clearColor=void 0!==i?i:0,this.clearAlpha=void 0!==n?n:0,this._oldClearColor=new ct;let r=Ea;this.copyUniforms=Ri.clone(r.uniforms),this.copyMaterial=new cn({uniforms:this.copyUniforms,vertexShader:r.vertexShader,fragmentShader:r.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,premultipliedAlpha:!0,blending:Ec}),this.fsQuad=new ba(this.copyMaterial)}dispose(){this.sampleRenderTarget&&(this.sampleRenderTarget.dispose(),this.sampleRenderTarget=null),this.copyMaterial.dispose(),this.fsQuad.dispose()}setSize(e,t){this.sampleRenderTarget&&this.sampleRenderTarget.setSize(e,t)}render(e,t,i){this.sampleRenderTarget||(this.sampleRenderTarget=new sr(i.width,i.height,{type:Mr}),this.sampleRenderTarget.texture.name="SSAARenderPass.sample");let n=e0t[Math.max(0,Math.min(this.sampleLevel,5))],r=e.autoClear;e.autoClear=!1,e.getClearColor(this._oldClearColor);let a=e.getClearAlpha(),s=1/n.length;this.copyUniforms.tDiffuse.value=this.sampleRenderTarget.texture;let o={fullWidth:i.width,fullHeight:i.height,offsetX:0,offsetY:0,width:i.width,height:i.height},l=Object.assign({},this.camera.view);l.enabled&&Object.assign(o,l);for(let h=0;hp?(a=1,s=0):(a=0,s=1);let f=d-a+c,m=p-s+c,g=d-1+2*c,v=p-1+2*c,y=255&l,x=255&h,b=this.perm[y+this.perm[x]]%12,_=this.perm[y+a+this.perm[x+s]]%12,w=this.perm[y+1+this.perm[x+1]]%12,S=.5-d*d-p*p;S<0?i=0:(S*=S,i=S*S*this.dot(this.grad3[b],d,p));let M=.5-f*f-m*m;M<0?n=0:(M*=M,n=M*M*this.dot(this.grad3[_],f,m));let E=.5-g*g-v*v;return E<0?r=0:(E*=E,r=E*E*this.dot(this.grad3[w],g,v)),70*(i+n+r)}noise3d(e,t,i){let n,r,a,s,o,l,h,c,u,d,p=.3333333333333333*(e+t+i),f=Math.floor(e+p),m=Math.floor(t+p),g=Math.floor(i+p),v=1/6,y=(f+m+g)*v,x=e-(f-y),b=t-(m-y),_=i-(g-y);x>=b?b>=_?(o=1,l=0,h=0,c=1,u=1,d=0):x>=_?(o=1,l=0,h=0,c=1,u=0,d=1):(o=0,l=0,h=1,c=1,u=0,d=1):b<_?(o=0,l=0,h=1,c=0,u=1,d=1):x<_?(o=0,l=1,h=0,c=0,u=1,d=1):(o=0,l=1,h=0,c=1,u=1,d=0);let w=x-o+v,S=b-l+v,M=_-h+v,E=x-c+2*v,T=b-u+2*v,A=_-d+2*v,C=x-1+.5,P=b-1+.5,R=_-1+.5,D=255&f,L=255&m,I=255&g,O=this.perm[D+this.perm[L+this.perm[I]]]%12,k=this.perm[D+o+this.perm[L+l+this.perm[I+h]]]%12,N=this.perm[D+c+this.perm[L+u+this.perm[I+d]]]%12,U=this.perm[D+1+this.perm[L+1+this.perm[I+1]]]%12,F=.6-x*x-b*b-_*_;F<0?n=0:(F*=F,n=F*F*this.dot3(this.grad3[O],x,b,_));let B=.6-w*w-S*S-M*M;B<0?r=0:(B*=B,r=B*B*this.dot3(this.grad3[k],w,S,M));let z=.6-E*E-T*T-A*A;z<0?a=0:(z*=z,a=z*z*this.dot3(this.grad3[N],E,T,A));let H=.6-C*C-P*P-R*R;return H<0?s=0:(H*=H,s=H*H*this.dot3(this.grad3[U],C,P,R)),32*(n+r+a+s)}noise4d(e,t,i,n){let r,a,s,o,l,h=this.grad4,c=this.simplex,u=this.perm,d=(Math.sqrt(5)-1)/4,p=(5-Math.sqrt(5))/20,f=(e+t+i+n)*d,m=Math.floor(e+f),g=Math.floor(t+f),v=Math.floor(i+f),y=Math.floor(n+f),x=(m+g+v+y)*p,b=e-(m-x),_=t-(g-x),w=i-(v-x),S=n-(y-x),M=(b>_?32:0)+(b>w?16:0)+(_>w?8:0)+(b>S?4:0)+(_>S?2:0)+(w>S?1:0),E=c[M][0]>=3?1:0,T=c[M][1]>=3?1:0,A=c[M][2]>=3?1:0,C=c[M][3]>=3?1:0,P=c[M][0]>=2?1:0,R=c[M][1]>=2?1:0,D=c[M][2]>=2?1:0,L=c[M][3]>=2?1:0,I=c[M][0]>=1?1:0,O=c[M][1]>=1?1:0,k=c[M][2]>=1?1:0,N=c[M][3]>=1?1:0,U=b-E+p,F=_-T+p,B=w-A+p,z=S-C+p,H=b-P+2*p,V=_-R+2*p,j=w-D+2*p,G=S-L+2*p,W=b-I+3*p,X=_-O+3*p,Y=w-k+3*p,q=S-N+3*p,Z=b-1+4*p,Q=_-1+4*p,J=w-1+4*p,K=S-1+4*p,$=255&m,ee=255&g,te=255&v,ie=255&y,ne=u[$+u[ee+u[te+u[ie]]]]%32,re=u[$+E+u[ee+T+u[te+A+u[ie+C]]]]%32,ae=u[$+P+u[ee+R+u[te+D+u[ie+L]]]]%32,se=u[$+I+u[ee+O+u[te+k+u[ie+N]]]]%32,oe=u[$+1+u[ee+1+u[te+1+u[ie+1]]]]%32,le=.6-b*b-_*_-w*w-S*S;le<0?r=0:(le*=le,r=le*le*this.dot4(h[ne],b,_,w,S));let he=.6-U*U-F*F-B*B-z*z;he<0?a=0:(he*=he,a=he*he*this.dot4(h[re],U,F,B,z));let ce=.6-H*H-V*V-j*j-G*G;ce<0?s=0:(ce*=ce,s=ce*ce*this.dot4(h[ae],H,V,j,G));let ue=.6-W*W-X*X-Y*Y-q*q;ue<0?o=0:(ue*=ue,o=ue*ue*this.dot4(h[se],W,X,Y,q));let de=.6-Z*Z-Q*Q-J*J-K*K;return de<0?l=0:(de*=de,l=de*de*this.dot4(h[oe],Z,Q,J,K)),27*(r+a+s+o+l)}},D_={defines:{PERSPECTIVE_CAMERA:1,KERNEL_SIZE:32},uniforms:{tDiffuse:{value:null},tNormal:{value:null},tDepth:{value:null},tNoise:{value:null},kernel:{value:null},cameraNear:{value:null},cameraFar:{value:null},resolution:{value:new xe},cameraProjectionMatrix:{value:new et},cameraInverseProjectionMatrix:{value:new et},kernelRadius:{value:8},minDistance:{value:.005},maxDistance:{value:.05}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tNormal;\n\t\tuniform sampler2D tDepth;\n\t\tuniform sampler2D tNoise;\n\n\t\tuniform vec3 kernel[ KERNEL_SIZE ];\n\n\t\tuniform vec2 resolution;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\n\t\tuniform float kernelRadius;\n\t\tuniform float minDistance; // avoid artifacts caused by neighbour fragments with minimal depth difference\n\t\tuniform float maxDistance; // avoid the influence of fragments which are too far away\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t}\n\n\t\tfloat getLinearDepth( const in vec2 screenPosition ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\n\t\t\tclipPosition *= clipW; // unprojection.\n\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec2 screenPosition ) {\n\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tfloat viewZ = getViewZ( depth );\n\n\t\t\tvec3 viewPosition = getViewPosition( vUv, depth, viewZ );\n\t\t\tvec3 viewNormal = getViewNormal( vUv );\n\n\t\t\tvec2 noiseScale = vec2( resolution.x / 4.0, resolution.y / 4.0 );\n\t\t\tvec3 random = vec3( texture2D( tNoise, vUv * noiseScale ).r );\n\n\t\t\t// compute matrix used to reorient a kernel vector\n\n\t\t\tvec3 tangent = normalize( random - viewNormal * dot( random, viewNormal ) );\n\t\t\tvec3 bitangent = cross( viewNormal, tangent );\n\t\t\tmat3 kernelMatrix = mat3( tangent, bitangent, viewNormal );\n\n\t\t float occlusion = 0.0;\n\n\t\t for ( int i = 0; i < KERNEL_SIZE; i ++ ) {\n\n\t\t\t\tvec3 sampleVector = kernelMatrix * kernel[ i ]; // reorient sample vector in view space\n\t\t\t\tvec3 samplePoint = viewPosition + ( sampleVector * kernelRadius ); // calculate sample point\n\n\t\t\t\tvec4 samplePointNDC = cameraProjectionMatrix * vec4( samplePoint, 1.0 ); // project point and calculate NDC\n\t\t\t\tsamplePointNDC /= samplePointNDC.w;\n\n\t\t\t\tvec2 samplePointUv = samplePointNDC.xy * 0.5 + 0.5; // compute uv coordinates\n\n\t\t\t\tfloat realDepth = getLinearDepth( samplePointUv ); // get linear depth from depth texture\n\t\t\t\tfloat sampleDepth = viewZToOrthographicDepth( samplePoint.z, cameraNear, cameraFar ); // compute linear depth of the sample view Z value\n\t\t\t\tfloat delta = sampleDepth - realDepth;\n\n\t\t\t\tif ( delta > minDistance && delta < maxDistance ) { // if fragment is before sample point, increase occlusion\n\n\t\t\t\t\tocclusion += 1.0;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tocclusion = clamp( occlusion / float( KERNEL_SIZE ), 0.0, 1.0 );\n\n\t\t\tgl_FragColor = vec4( vec3( 1.0 - occlusion ), 1.0 );\n\n\t\t}"},O_={defines:{PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},cameraNear:{value:null},cameraFar:{value:null}},vertexShader:"varying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"uniform sampler2D tDepth;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tfloat getLinearDepth( const in vec2 screenPosition ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tfloat depth = getLinearDepth( vUv );\n\t\t\tgl_FragColor = vec4( vec3( 1.0 - depth ), 1.0 );\n\n\t\t}"},k_={uniforms:{tDiffuse:{value:null},resolution:{value:new xe}},vertexShader:"varying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"uniform sampler2D tDiffuse;\n\n\t\tuniform vec2 resolution;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec2 texelSize = ( 1.0 / resolution );\n\t\t\tfloat result = 0.0;\n\n\t\t\tfor ( int i = - 2; i <= 2; i ++ ) {\n\n\t\t\t\tfor ( int j = - 2; j <= 2; j ++ ) {\n\n\t\t\t\t\tvec2 offset = ( vec2( float( i ), float( j ) ) ) * texelSize;\n\t\t\t\t\tresult += texture2D( tDiffuse, vUv + offset ).r;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tgl_FragColor = vec4( vec3( result / ( 5.0 * 5.0 ) ), 1.0 );\n\n\t\t}"},Kl=class extends vs{constructor(e,t,i,n){super(),this.width=void 0!==i?i:512,this.height=void 0!==n?n:512,this.clear=!0,this.camera=t,this.scene=e,this.kernelRadius=8,this.kernelSize=32,this.kernel=[],this.noiseTexture=null,this.output=0,this.minDistance=.005,this.maxDistance=.1,this._visibilityCache=new Map,this.generateSampleKernel(),this.generateRandomKernelRotations();let r=new ff;r.format=Wh,r.type=xu,this.beautyRenderTarget=new sr(this.width,this.height,{type:Mr}),this.normalRenderTarget=new sr(this.width,this.height,{minFilter:Jr,magFilter:Jr,type:Mr,depthTexture:r}),this.ssaoRenderTarget=new sr(this.width,this.height,{type:Mr}),this.blurRenderTarget=this.ssaoRenderTarget.clone(),this.ssaoMaterial=new cn({defines:Object.assign({},D_.defines),uniforms:Ri.clone(D_.uniforms),vertexShader:D_.vertexShader,fragmentShader:D_.fragmentShader,blending:Qr}),this.ssaoMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.ssaoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.ssaoMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.ssaoMaterial.uniforms.tNoise.value=this.noiseTexture,this.ssaoMaterial.uniforms.kernel.value=this.kernel,this.ssaoMaterial.uniforms.cameraNear.value=this.camera.near,this.ssaoMaterial.uniforms.cameraFar.value=this.camera.far,this.ssaoMaterial.uniforms.resolution.value.set(this.width,this.height),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.normalMaterial=new mf,this.normalMaterial.blending=Qr,this.blurMaterial=new cn({defines:Object.assign({},k_.defines),uniforms:Ri.clone(k_.uniforms),vertexShader:k_.vertexShader,fragmentShader:k_.fragmentShader}),this.blurMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.blurMaterial.uniforms.resolution.value.set(this.width,this.height),this.depthRenderMaterial=new cn({defines:Object.assign({},O_.defines),uniforms:Ri.clone(O_.uniforms),vertexShader:O_.vertexShader,fragmentShader:O_.fragmentShader,blending:Qr}),this.depthRenderMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.depthRenderMaterial.uniforms.cameraNear.value=this.camera.near,this.depthRenderMaterial.uniforms.cameraFar.value=this.camera.far,this.copyMaterial=new cn({uniforms:Ri.clone(Ea.uniforms),vertexShader:Ea.vertexShader,fragmentShader:Ea.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blendSrc:Sv,blendDst:vf,blendEquation:Go,blendSrcAlpha:wv,blendDstAlpha:vf,blendEquationAlpha:Go}),this.fsQuad=new ba(null),this.originalClearColor=new ct}dispose(){this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.ssaoRenderTarget.dispose(),this.blurRenderTarget.dispose(),this.normalMaterial.dispose(),this.blurMaterial.dispose(),this.copyMaterial.dispose(),this.depthRenderMaterial.dispose(),this.fsQuad.dispose()}render(e,t){switch(!1===e.capabilities.isWebGL2&&(this.noiseTexture.format=$R),e.setRenderTarget(this.beautyRenderTarget),e.clear(),e.render(this.scene,this.camera),this.overrideVisibility(),this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,7829503,1),this.restoreVisibility(),this.ssaoMaterial.uniforms.kernelRadius.value=this.kernelRadius,this.ssaoMaterial.uniforms.minDistance.value=this.minDistance,this.ssaoMaterial.uniforms.maxDistance.value=this.maxDistance,this.renderPass(e,this.ssaoMaterial,this.ssaoRenderTarget),this.renderPass(e,this.blurMaterial,this.blurRenderTarget),this.output){case Kl.OUTPUT.SSAO:this.copyMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.copyMaterial.blending=Qr,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case Kl.OUTPUT.Blur:this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=Qr,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case Kl.OUTPUT.Beauty:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=Qr,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case Kl.OUTPUT.Depth:this.renderPass(e,this.depthRenderMaterial,this.renderToScreen?null:t);break;case Kl.OUTPUT.Normal:this.copyMaterial.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.copyMaterial.blending=Qr,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case Kl.OUTPUT.Default:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=Qr,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t),this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=Pm,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;default:console.warn("THREE.SSAOPass: Unknown output type.")}}renderPass(e,t,i,n,r){e.getClearColor(this.originalClearColor);let a=e.getClearAlpha(),s=e.autoClear;e.setRenderTarget(i),e.autoClear=!1,null!=n&&(e.setClearColor(n),e.setClearAlpha(r||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=s,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)}renderOverride(e,t,i,n,r){e.getClearColor(this.originalClearColor);let a=e.getClearAlpha(),s=e.autoClear;e.setRenderTarget(i),e.autoClear=!1,n=t.clearColor||n,r=t.clearAlpha||r,null!=n&&(e.setClearColor(n),e.setClearAlpha(r||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=s,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)}setSize(e,t){this.width=e,this.height=t,this.beautyRenderTarget.setSize(e,t),this.ssaoRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.blurRenderTarget.setSize(e,t),this.ssaoMaterial.uniforms.resolution.value.set(e,t),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.blurMaterial.uniforms.resolution.value.set(e,t)}generateSampleKernel(){let e=this.kernelSize,t=this.kernel;for(let i=0;i\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 invSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float gaussianCoefficients[KERNEL_RADIUS];\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tfloat weightSum = gaussianCoefficients[0];\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv ).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianCoefficients[i];\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset ).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset ).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}"})}getCompositeMaterial(e){return new cn({defines:{NUM_MIPS:e},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}"})}};xd.BlurDirectionX=new xe(1,0),xd.BlurDirectionY=new xe(0,1);var Rve={uniforms:{tDiffuse:{value:null},resolution:{value:new xe(1/1024,1/512)}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\tprecision highp float;\n\n\tuniform sampler2D tDiffuse;\n\n\tuniform vec2 resolution;\n\n\tvarying vec2 vUv;\n\n\t// FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro (biro@archilogic.com)\n\n\t//----------------------------------------------------------------------------------\n\t// File: es3-keplerFXAAassetsshaders/FXAA_DefaultES.frag\n\t// SDK Version: v3.00\n\t// Email: gameworks@nvidia.com\n\t// Site: http://developer.nvidia.com/\n\t//\n\t// Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.\n\t//\n\t// Redistribution and use in source and binary forms, with or without\n\t// modification, are permitted provided that the following conditions\n\t// are met:\n\t// * Redistributions of source code must retain the above copyright\n\t// notice, this list of conditions and the following disclaimer.\n\t// * Redistributions in binary form must reproduce the above copyright\n\t// notice, this list of conditions and the following disclaimer in the\n\t// documentation and/or other materials provided with the distribution.\n\t// * Neither the name of NVIDIA CORPORATION nor the names of its\n\t// contributors may be used to endorse or promote products derived\n\t// from this software without specific prior written permission.\n\t//\n\t// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY\n\t// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n\t// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n\t// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n\t// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n\t// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n\t// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t//\n\t//----------------------------------------------------------------------------------\n\n\t#ifndef FXAA_DISCARD\n\t\t\t//\n\t\t\t// Only valid for PC OpenGL currently.\n\t\t\t// Probably will not work when FXAA_GREEN_AS_LUMA = 1.\n\t\t\t//\n\t\t\t// 1 = Use discard on pixels which don't need AA.\n\t\t\t// For APIs which enable concurrent TEX+ROP from same surface.\n\t\t\t// 0 = Return unchanged color on pixels which don't need AA.\n\t\t\t//\n\t\t\t#define FXAA_DISCARD 0\n\t#endif\n\n\t/*--------------------------------------------------------------------------*/\n\t#define FxaaTexTop(t, p) texture2D(t, p, -100.0)\n\t#define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), -100.0)\n\t/*--------------------------------------------------------------------------*/\n\n\t#define NUM_SAMPLES 5\n\n\t// assumes colors have premultipliedAlpha, so that the calculated color contrast is scaled by alpha\n\tfloat contrast( vec4 a, vec4 b ) {\n\t\t\tvec4 diff = abs( a - b );\n\t\t\treturn max( max( max( diff.r, diff.g ), diff.b ), diff.a );\n\t}\n\n\t/*============================================================================\n\n\t\t\t\t\t\t\t\t\tFXAA3 QUALITY - PC\n\n\t============================================================================*/\n\n\t/*--------------------------------------------------------------------------*/\n\tvec4 FxaaPixelShader(\n\t\t\tvec2 posM,\n\t\t\tsampler2D tex,\n\t\t\tvec2 fxaaQualityRcpFrame,\n\t\t\tfloat fxaaQualityEdgeThreshold,\n\t\t\tfloat fxaaQualityinvEdgeThreshold\n\t) {\n\t\t\tvec4 rgbaM = FxaaTexTop(tex, posM);\n\t\t\tvec4 rgbaS = FxaaTexOff(tex, posM, vec2( 0.0, 1.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaE = FxaaTexOff(tex, posM, vec2( 1.0, 0.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaN = FxaaTexOff(tex, posM, vec2( 0.0,-1.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaW = FxaaTexOff(tex, posM, vec2(-1.0, 0.0), fxaaQualityRcpFrame.xy);\n\t\t\t// . S .\n\t\t\t// W M E\n\t\t\t// . N .\n\n\t\t\tbool earlyExit = max( max( max(\n\t\t\t\t\tcontrast( rgbaM, rgbaN ),\n\t\t\t\t\tcontrast( rgbaM, rgbaS ) ),\n\t\t\t\t\tcontrast( rgbaM, rgbaE ) ),\n\t\t\t\t\tcontrast( rgbaM, rgbaW ) )\n\t\t\t\t\t< fxaaQualityEdgeThreshold;\n\t\t\t// . 0 .\n\t\t\t// 0 0 0\n\t\t\t// . 0 .\n\n\t\t\t#if (FXAA_DISCARD == 1)\n\t\t\t\t\tif(earlyExit) FxaaDiscard;\n\t\t\t#else\n\t\t\t\t\tif(earlyExit) return rgbaM;\n\t\t\t#endif\n\n\t\t\tfloat contrastN = contrast( rgbaM, rgbaN );\n\t\t\tfloat contrastS = contrast( rgbaM, rgbaS );\n\t\t\tfloat contrastE = contrast( rgbaM, rgbaE );\n\t\t\tfloat contrastW = contrast( rgbaM, rgbaW );\n\n\t\t\tfloat relativeVContrast = ( contrastN + contrastS ) - ( contrastE + contrastW );\n\t\t\trelativeVContrast *= fxaaQualityinvEdgeThreshold;\n\n\t\t\tbool horzSpan = relativeVContrast > 0.;\n\t\t\t// . 1 .\n\t\t\t// 0 0 0\n\t\t\t// . 1 .\n\n\t\t\t// 45 deg edge detection and corners of objects, aka V/H contrast is too similar\n\t\t\tif( abs( relativeVContrast ) < .3 ) {\n\t\t\t\t\t// locate the edge\n\t\t\t\t\tvec2 dirToEdge;\n\t\t\t\t\tdirToEdge.x = contrastE > contrastW ? 1. : -1.;\n\t\t\t\t\tdirToEdge.y = contrastS > contrastN ? 1. : -1.;\n\t\t\t\t\t// . 2 . . 1 .\n\t\t\t\t\t// 1 0 2 ~= 0 0 1\n\t\t\t\t\t// . 1 . . 0 .\n\n\t\t\t\t\t// tap 2 pixels and see which ones are \"outside\" the edge, to\n\t\t\t\t\t// determine if the edge is vertical or horizontal\n\n\t\t\t\t\tvec4 rgbaAlongH = FxaaTexOff(tex, posM, vec2( dirToEdge.x, -dirToEdge.y ), fxaaQualityRcpFrame.xy);\n\t\t\t\t\tfloat matchAlongH = contrast( rgbaM, rgbaAlongH );\n\t\t\t\t\t// . 1 .\n\t\t\t\t\t// 0 0 1\n\t\t\t\t\t// . 0 H\n\n\t\t\t\t\tvec4 rgbaAlongV = FxaaTexOff(tex, posM, vec2( -dirToEdge.x, dirToEdge.y ), fxaaQualityRcpFrame.xy);\n\t\t\t\t\tfloat matchAlongV = contrast( rgbaM, rgbaAlongV );\n\t\t\t\t\t// V 1 .\n\t\t\t\t\t// 0 0 1\n\t\t\t\t\t// . 0 .\n\n\t\t\t\t\trelativeVContrast = matchAlongV - matchAlongH;\n\t\t\t\t\trelativeVContrast *= fxaaQualityinvEdgeThreshold;\n\n\t\t\t\t\tif( abs( relativeVContrast ) < .3 ) { // 45 deg edge\n\t\t\t\t\t\t\t// 1 1 .\n\t\t\t\t\t\t\t// 0 0 1\n\t\t\t\t\t\t\t// . 0 1\n\n\t\t\t\t\t\t\t// do a simple blur\n\t\t\t\t\t\t\treturn mix(\n\t\t\t\t\t\t\t\t\trgbaM,\n\t\t\t\t\t\t\t\t\t(rgbaN + rgbaS + rgbaE + rgbaW) * .25,\n\t\t\t\t\t\t\t\t\t.4\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\thorzSpan = relativeVContrast > 0.;\n\t\t\t}\n\n\t\t\tif(!horzSpan) rgbaN = rgbaW;\n\t\t\tif(!horzSpan) rgbaS = rgbaE;\n\t\t\t// . 0 . 1\n\t\t\t// 1 0 1 -> 0\n\t\t\t// . 0 . 1\n\n\t\t\tbool pairN = contrast( rgbaM, rgbaN ) > contrast( rgbaM, rgbaS );\n\t\t\tif(!pairN) rgbaN = rgbaS;\n\n\t\t\tvec2 offNP;\n\t\t\toffNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;\n\t\t\toffNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;\n\n\t\t\tbool doneN = false;\n\t\t\tbool doneP = false;\n\n\t\t\tfloat nDist = 0.;\n\t\t\tfloat pDist = 0.;\n\n\t\t\tvec2 posN = posM;\n\t\t\tvec2 posP = posM;\n\n\t\t\tint iterationsUsed = 0;\n\t\t\tint iterationsUsedN = 0;\n\t\t\tint iterationsUsedP = 0;\n\t\t\tfor( int i = 0; i < NUM_SAMPLES; i++ ) {\n\t\t\t\t\titerationsUsed = i;\n\n\t\t\t\t\tfloat increment = float(i + 1);\n\n\t\t\t\t\tif(!doneN) {\n\t\t\t\t\t\t\tnDist += increment;\n\t\t\t\t\t\t\tposN = posM + offNP * nDist;\n\t\t\t\t\t\t\tvec4 rgbaEndN = FxaaTexTop(tex, posN.xy);\n\t\t\t\t\t\t\tdoneN = contrast( rgbaEndN, rgbaM ) > contrast( rgbaEndN, rgbaN );\n\t\t\t\t\t\t\titerationsUsedN = i;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(!doneP) {\n\t\t\t\t\t\t\tpDist += increment;\n\t\t\t\t\t\t\tposP = posM - offNP * pDist;\n\t\t\t\t\t\t\tvec4 rgbaEndP = FxaaTexTop(tex, posP.xy);\n\t\t\t\t\t\t\tdoneP = contrast( rgbaEndP, rgbaM ) > contrast( rgbaEndP, rgbaN );\n\t\t\t\t\t\t\titerationsUsedP = i;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(doneN || doneP) break;\n\t\t\t}\n\n\n\t\t\tif ( !doneP && !doneN ) return rgbaM; // failed to find end of edge\n\n\t\t\tfloat dist = min(\n\t\t\t\t\tdoneN ? float( iterationsUsedN ) / float( NUM_SAMPLES - 1 ) : 1.,\n\t\t\t\t\tdoneP ? float( iterationsUsedP ) / float( NUM_SAMPLES - 1 ) : 1.\n\t\t\t);\n\n\t\t\t// hacky way of reduces blurriness of mostly diagonal edges\n\t\t\t// but reduces AA quality\n\t\t\tdist = pow(dist, .5);\n\n\t\t\tdist = 1. - dist;\n\n\t\t\treturn mix(\n\t\t\t\t\trgbaM,\n\t\t\t\t\trgbaN,\n\t\t\t\t\tdist * .5\n\t\t\t);\n\t}\n\n\tvoid main() {\n\t\t\tconst float edgeDetectionQuality = .2;\n\t\t\tconst float invEdgeDetectionQuality = 1. / edgeDetectionQuality;\n\n\t\t\tgl_FragColor = FxaaPixelShader(\n\t\t\t\t\tvUv,\n\t\t\t\t\ttDiffuse,\n\t\t\t\t\tresolution,\n\t\t\t\t\tedgeDetectionQuality, // [0,1] contrast needed, otherwise early discard\n\t\t\t\t\tinvEdgeDetectionQuality\n\t\t\t);\n\n\t}\n\t"},c2=class{constructor(){this.vertexShader="\n varying vec2 vUv;\n void main( void ) {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }",this.fragmentShader="\n uniform vec3 keyColor;\n uniform float similarity;\n uniform float smoothness;\n varying vec2 vUv;\n uniform sampler2D map;\n void main() {\n vec4 videoColor = texture2D(map, vUv);\n\n float Y1 = 0.299 * keyColor.r + 0.587 * keyColor.g + 0.114 * keyColor.b;\n float Cr1 = keyColor.r - Y1;\n float Cb1 = keyColor.b - Y1;\n \n float Y2 = 0.299 * videoColor.r + 0.587 * videoColor.g + 0.114 * videoColor.b;\n float Cr2 = videoColor.r - Y2; \n float Cb2 = videoColor.b - Y2; \n \n float blend = smoothstep(similarity, similarity + smoothness, distance(vec2(Cr2, Cb2), vec2(Cr1, Cb1)));\n gl_FragColor = vec4(videoColor.rgb, videoColor.a * blend); \n }";let e=document.createElement("video");this.webcam=e,navigator.mediaDevices.getUserMedia({video:{width:600,height:400}}).then((t=>{e.srcObject=t,e.onloadedmetadata=()=>{e.setAttribute("autoplay","true"),e.setAttribute("playsinline","true"),e.play()}})).catch((function(e){alert(e.name+": "+e.message)})),this.webcamCanvas=document.createElement("canvas");let t=this.webcamCanvas.getContext("2d");this.canvasCtx=t,t.fillStyle="#000000",t.fillRect(0,0,this.webcamCanvas.width,this.webcamCanvas.height);let i=new Gr(this.webcamCanvas);this.webcamTexture=i,i.minFilter=Pr,i.magFilter=Pr,this.shaderMaterial=new cn({transparent:!0,uniforms:{map:{value:i},keyColor:{value:[0,1,0]},similarity:{value:.3},smoothness:{value:0}},vertexShader:this.vertexShader,fragmentShader:this.fragmentShader})}getShaderMaterial(){return this.shaderMaterial}createWebCamPlane(e=5,t=4){let i=new ui(e,t);return new xt(i,this.shaderMaterial)}animate(){this.webcam.readyState===this.webcam.HAVE_ENOUGH_DATA&&(this.canvasCtx.drawImage(this.webcam,0,0,this.webcamCanvas.width,this.webcamCanvas.height),this.webcamTexture.needsUpdate=!0)}},Xa=new D(1,0,0),op=new D(0,1,0),lp=new D(0,0,1),Ave=new D(0,1,0),F_=new et,Xy=2,To=class extends er{constructor(e=Xa){super(),this.redMaterial=new ln({color:16711680,depthTest:!1}),this.greenMaterial=new ln({color:65280,depthTest:!1}),this.blueMaterial=new ln({color:255,depthTest:!1}),this.highlightMaterial=new ln({color:16776960,depthTest:!1}),this.pickableMaterial=new ln({color:9807270,depthTest:!1}),this.initIgnoreClipMaterial(),this.initOrUpdateByAxis(e)}initIgnoreClipMaterial(){[this.redMaterial,this.greenMaterial,this.blueMaterial,this.highlightMaterial,this.pickableMaterial].forEach((e=>{e.onBeforeCompile=function(e,t){e.fragmentShader=e.fragmentShader.replace("#include ","").replace("#include ",""),e.vertexShader=e.vertexShader.replace("#include ","").replace("#include ","")}}))}setDirection(e){let t=new dr;t.setFromUnitVectors(Xa,e),this.applyQuaternion(t)}initOrUpdateByAxis(e){this.clear(),[{actionType:"TranslateX",direction:Xa,material:this.redMaterial},{actionType:"TranslateY",direction:op,material:this.greenMaterial},{actionType:"TranslateZ",direction:lp,material:this.blueMaterial}].forEach((t=>{let{actionType:i,direction:n,material:r}=t,a=this.createTranslateGizmo(i,n,Xy,0===n.angleTo(e)?r:this.pickableMaterial);this.add(a)})),[{actionType:"RotateX",direction:Xa,material:this.redMaterial,degree:90},{actionType:"RotateY",direction:op,material:this.greenMaterial,degree:90},{actionType:"RotateZ",direction:lp,material:this.blueMaterial,degree:90}].forEach((t=>{let{actionType:i,direction:n,material:r,degree:a}=t;if(0!==n.angleTo(e)){let e=this.createRotateGizmo(i,n,Xy,r,a);this.add(e)}})),this.createSphere(1,this.pickableMaterial),this.createSphere(1,this.pickableMaterial,new D(12*Xy,0,0)),this.createSphere(1,this.pickableMaterial,new D(0,12*Xy,0)),this.createSphere(1,this.pickableMaterial,new D(0,0,12*Xy))}createTranslateGizmo(e,t,i,n){let r=t.angleTo(Ave),a=Ave.clone().cross(t);F_.makeRotationAxis(a,r);let s=new Tc(i/5,i/5,20*i),o=10*i;s.translate(0,o,0),s.applyMatrix4(F_);let l=new Tc(0,i,3*i),h=2*o;l.translate(0,h,0),l.applyMatrix4(F_);let c=Ui([l,s]),u=new xt(c,n);return u.layers.enable(12),u.userData.actionType=e,n===this.pickableMaterial&&u.layers.disable(12),u}createRotateGizmo(e,t,i,n,r){let a=new D(0,0,1),s=t.clone().cross(a),o=t.angleTo(a);F_.makeRotationAxis(s,o);let l=new pf(12*i,i/5,24,36,Rn.degToRad(r));l.applyMatrix4(F_);let h=new xt(l,n);return h.layers.enable(12),h.userData.actionType=e,h}createSphere(e,t,i=new D){let n=new Ua(e,32,16),r=new xt(n,t);r.position.copy(i),r.layers.disable(12),this.add(r)}setActiveAxis(e){this.initOrUpdateByAxis(e)}createHoverRotateObjectByAxis(e){let t=Xa;switch(e){case"RotateX":t=Xa;break;case"RotateY":t=op;break;case"RotateZ":t=lp}return this.createRotateGizmo("",t,Xy,this.highlightMaterial,360)}setActive(e,t){var i;let n=t.userData.actionType;["RotateX","RotateY","RotateZ"].includes(n)?e?(this.hoverObject=this.createHoverRotateObjectByAxis(n),this.add(this.hoverObject),t.visible=!1):(null==(i=this.hoverObject)||i.removeFromParent(),t.visible=!0,this.hoverObject=void 0):e?(this.originalMaterial=t.material,t.material=this.highlightMaterial):this.originalMaterial&&(t.material=this.originalMaterial)}adjustSize(e){let t=new D;this.getWorldPosition(t);let i=e.position,n=1;e instanceof Nr?n=(e.top-e.bottom)/e.zoom:e instanceof hr&&(n=t.distanceTo(i)*Math.min(1.9*Math.tan(Math.PI*e.fov/360)/e.zoom,7)),this.scale.set(1,1,1).multiplyScalar(n/180)}},cp=class{constructor(e,t){if(this.raycaster=new na,this.sectionBox=new Nt,this.lastWorldPos=new D,this.mouseMoved=!1,this.dragStarted=!1,this.refrencePlane=new zr,this.active=!1,this.showSectionPlane=!1,this.mousedown=e=>{if(0===e.button){if(!this.selectedObject){let t=this.getIntersections(e);if(!t)return;this.activateSelectedObject(!1),this.selectedObject=t.object}this.inputManager.setCursor("grabbing"),this.dragStarted=!0,this.setControlsEnabled(!1),this.onDragStart(e),this.viewer.enableRender()}},this.mousemove=e=>{if(this.dragStarted)this.updateRaycasterByMouse(e),this.onDragMove(e);else{this.activateSelectedObject(!1),this.selectedObject=void 0;let t=this.getIntersections(e),i="default";t&&(this.selectedObject=t.object,this.activateSelectedObject(!0),i="grab"),this.inputManager.setCursor(i)}this.viewer.enableRender()},this.mouseup=e=>{0===e.button&&(this.dragStarted&&(this.onDragEnd(e),this.setControlsEnabled(!0)),this.dragStarted=!1,this.activateSelectedObject(!1),this.selectedObject=void 0,this.inputManager.setCursor("default"))},this.keydown=e=>{"Escape"===e.code&&this.deactivate()},!(e.camera&&e.renderer&&e.controls&&e.scene))throw new Error("Invalid bimViewer!");this.viewer=e,this.inputManager=t,this.scene=e.scene,this.renderer=e.renderer,this.raycaster.layers.set(12)}get canvas(){var e;return null==(e=this.viewer.renderer)?void 0:e.domElement}get isActive(){return!!this.active}get camera(){return this.viewer.camera}get controls(){return this.viewer.controls}setGlobalClippingEnabled(e){if(!this.clipPlanes)return;let t=e?this.clipPlanes:[];this.renderer.localClippingEnabled=e,this.renderer.clippingPlanes=t}setObjectClippingEnabled(e){var t,i;if(!this.clipPlanes||null==(t=this.clippingObjetIds)||!t.length)return;this.renderer.localClippingEnabled=e;let n=e?this.clipPlanes:[];null==(i=this.clippingObjetIds)||i.forEach((e=>{let t=this.scene.getObjectById(e);t&&t.traverse((e=>{e.material&&(Array.isArray(e.material)?e.material.forEach((e=>{e.clippingPlanes=n,e.clipIntersection=!1})):e.material&&(e.material.clippingPlanes=n,e.material.clipIntersection=!1))}))}))}clearClippingObjectIds(){this.setObjectClippingEnabled(!1),this.clippingObjetIds=[]}setClippingEnabled(e){var t;null!=(t=this.clippingObjetIds)&&t.length?(this.setGlobalClippingEnabled(!1),this.setObjectClippingEnabled(e)):this.setGlobalClippingEnabled(e)}activate(){if(this.inputManager.addEventListener("pointerdown",this.mousedown),this.inputManager.addEventListener("pointermove",this.mousemove),this.inputManager.addEventListener("pointerup",this.mouseup),this.inputManager.addEventListener("keydown",this.keydown),this.sectionBox.isEmpty()){let e=this.viewer.getBBox();e&&this.sectionBox.copy(e)}this.active=!0}deactivate(){var e;this.inputManager.removeEventListener("pointerdown",this.mousedown),this.inputManager.removeEventListener("pointermove",this.mousemove),this.inputManager.removeEventListener("pointerup",this.mouseup),this.inputManager.removeEventListener("keydown",this.keydown),null==(e=this.selectedObject)||e.removeFromParent(),this.selectedObject=void 0,this.dragStarted=!1,this.active=!1,this.inputManager.setCursor("default"),this.setControlsEnabled(!0)}setControlsEnabled(e){this.controls.enableRotate=e,this.controls.azimuthRotateSpeed=Number(e),this.controls.polarRotateSpeed=Number(e)}getIntersections(e){if(!this.raycaster)return;this.updateRaycasterByMouse(e);let t=this.raycaster.intersectObjects(this.getIntersectObjects())||[];return t.find((e=>e.object&&e.object.parent instanceof To))||t[0]}updateRaycasterByMouse(e){if(!this.raycaster)return;let t=new xe(e.x,e.y),i=an.screen2Ndc(t,this.camera,this.canvas);this.raycaster.setFromCamera(i,this.camera)}destroy(){this.deactivate()}},Pve=new Nt,Ive=new dr,u2=class extends xt{constructor(e,t){super(),this.vertices=[],this.layers.enable(12),this.actionType=e,this.geometry=new Dt,this.vertices=t,this.geometry.setFromPoints(t),this.geometry.setIndex([0,1,2,0,2,3]),this.material=new ln({depthTest:!1,color:u2.normalPlaneColor,transparent:!0,opacity:.01,side:Sr}),this.createIgnoreClipMaterials(this.material),this.geometry.computeVertexNormals(),this.edge=this.createEdge(t),this.add(this.edge)}createIgnoreClipMaterials(e){e.onBeforeCompile=function(e,t){e.fragmentShader=e.fragmentShader.replace("#include ","").replace("#include ",""),e.vertexShader=e.vertexShader.replace("#include ","").replace("#include ","")}}createEdge(e){let t=new Dt;t.setFromPoints(e),t.setIndex([0,1,1,2,2,3,3,0]);let i=new Gn({color:u2.normalLineColor});return this.createIgnoreClipMaterials(i),new fr(t,i)}update(e){this.geometry.setFromPoints(e),this.geometry.computeBoundingSphere(),this.geometry.computeVertexNormals(),this.edge.geometry.setFromPoints(e),this.vertices=e}rotatePlane(e,t){let i=this.getPlaneCenter();Ive.setFromAxisAngle(e,t),this.vertices=this.vertices.map((e=>e.sub(i).applyQuaternion(Ive).add(i))),this.update(this.vertices)}setDirection(e){let t=new dr;t.setFromUnitVectors(Xa,e);let i=this.getPlaneCenter();this.vertices=this.vertices.map((e=>e.sub(i).applyQuaternion(t).add(i))),this.update(this.vertices)}getPlaneNormal(){let[e,t,i]=this.vertices,n=new D;return Zr.getNormal(e,t,i,n),n}setActive(e){this.material.opacity=e?.1:.01}getPlaneCenter(){Pve.setFromPoints(this.vertices);let e=new D;return Pve.getCenter(e),e}},Fi=u2;Fi.normalPlaneColor=new ct(0,.855,.718),Fi.activePlaneColor=new ct(1,1,0),Fi.normalLineColor=16777215;var Lve=(e=>(e.X="X",e.Y="Y",e.Z="Z",e))(Lve||{}),h2=class extends cp{constructor(e,t){super(e,t),this.activeAxis="X",this.mousedown=e=>{if(0===e.button){if(!this.selectedObject){let t=this.getIntersections(e);if(!t)return;this.activateSelectedObject(!1),this.selectedObject=t.object}this.selectedObject.parent instanceof To&&(this.inputManager.setCursor("grabbing"),this.dragStarted=!0,this.setControlsEnabled(!1),this.onDragStart(e),this.viewer.enableRender())}},this.mousemove=e=>{if(this.dragStarted)this.updateRaycasterByMouse(e),this.onDragMove(e);else{this.activateSelectedObject(!1),this.selectedObject=void 0;let t=this.getIntersections(e),i="default";t&&(this.selectedObject=t.object,this.activateSelectedObject(!0),this.selectedObject.parent instanceof To&&(i="grab")),this.inputManager.setCursor(i)}this.viewer.enableRender()},this.center=new D,this.axisInfoMap={X:{normal:new D(1,0,0)},Y:{normal:new D(0,1,0)},Z:{normal:new D(0,0,1)}},this.viewer.addEventListener("BeforeRender",(()=>{var e;this.isActive&&(null==(e=this.gizmo)||e.adjustSize(this.camera))}))}activate(){super.activate(),this.sectionBox&&this.sectionBox.getCenter(this.center),this.setActiveAxis("X")}deactivate(){var e,t;super.deactivate(),null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.planeMesh=void 0,this.gizmo=void 0}resetSection(){var e,t;null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.setClippingEnabled(!1),this.planeMesh=void 0,this.gizmo=void 0,this.setActiveAxis("X")}setActiveAxis(e){this.activeAxis=e,this.initOrUpdateGizmo(),this.initOrUpdateSectionPlaneMeshes(),this.initOrUpdateClipPlanes(),this.setClippingEnabled(!0),this.viewer.enableRender()}setSectionPlaneMeshVisible(e){this.gizmo&&this.planeMesh&&(this.gizmo.visible=e,this.planeMesh.visible=e),this.showSectionPlane=e,this.viewer.enableRender()}initOrUpdateClipPlanes(){switch(this.activeAxis){case"X":this.clipPlane=new zr(new D(-1,0,0),this.center.x);break;case"Y":this.clipPlane=new zr(new D(0,-1,0),this.center.y);break;case"Z":this.clipPlane=new zr(new D(0,0,-1),this.center.z)}this.clipPlane&&(this.clipPlanes=[this.clipPlane])}initOrUpdateSectionPlaneMeshes(){var e;let t=new D;this.sectionBox.getSize(t);let i=t.length(),n=this.center,r=(new Nt).setFromCenterAndSize(n,new D(i,i,i)),{min:a,max:s}=r;switch(null==(e=this.planeMesh)||e.removeFromParent(),this.activeAxis){case"X":this.planeMesh=new Fi("X",[new D(n.x,s.y,a.z),new D(n.x,s.y,s.z),new D(n.x,a.y,s.z),new D(n.x,a.y,a.z)]);break;case"Y":this.planeMesh=new Fi("Y",[new D(s.x,n.y,a.z),new D(a.x,n.y,a.z),new D(a.x,n.y,s.z),new D(s.x,n.y,s.z)]);break;case"Z":this.planeMesh=new Fi("Z",[new D(s.x,s.y,n.z),new D(a.x,s.y,n.z),new D(a.x,a.y,n.z),new D(s.x,a.y,n.z)])}this.planeMesh&&this.scene.add(this.planeMesh),this.viewer.enableRender()}initOrUpdateGizmo(){var e,t;null==(e=this.gizmo)||e.removeFromParent();let i=this.axisInfoMap[this.activeAxis].normal,n=new To;n.setDirection(i),this.sectionBox.getCenter(n.position),n.adjustSize(this.camera),null==(t=this.scene)||t.add(n),this.gizmo=n}onDragStart(e){var t;if(this.selectedObject instanceof Fi)return;se.info("[AxisPlaneSection] onDragStart:",e);let i=new D;this.sectionBox.getCenter(i),this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),i),null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,this.lastWorldPos)}onDragMove(e){var t,i,n;if(!this.lastWorldPos||!this.selectedObject||!this.clipPlane||!this.planeMesh||!this.gizmo||this.selectedObject&&this.selectedObject instanceof Fi)return;let r=new D;null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,r);let a=this.selectedObject.userData.actionType,s=(new D).subVectors(this.lastWorldPos,this.center).normalize(),o=(new D).subVectors(r,this.center).normalize(),l=(new D).subVectors(r,this.lastWorldPos).projectOnVector(Xa.clone().applyQuaternion(this.gizmo.quaternion)),h=s.angleTo(o),c=(new D).crossVectors(s,o),u=new D;this.sectionBox.getSize(u);let d,p=Math.max(u.x,u.y,u.z);switch(a){case"TranslateX":case"TranslateY":case"TranslateZ":d=(new D).addVectors(this.gizmo.position,l),this.sectionBox.clone().setFromCenterAndSize(this.center,new D(p,p,p)).containsPoint(d)&&(null==(i=this.gizmo)||i.position.add(l),null==(n=this.planeMesh)||n.position.add(l));break;case"RotateX":{let e=Xa.clone().applyQuaternion(this.gizmo.quaternion);c.dot(e)<0&&(h=-h),this.gizmo.rotateX(h),this.planeMesh.rotatePlane(e,h)}break;case"RotateY":{let e=op.clone().applyQuaternion(this.gizmo.quaternion);c.dot(e)<0&&(h=-h),this.gizmo.rotateY(h),this.planeMesh.rotatePlane(e,h)}break;case"RotateZ":{let e=lp.clone().applyQuaternion(this.gizmo.quaternion);c.dot(e)<0&&(h=-h),this.gizmo.rotateZ(h),this.planeMesh.rotatePlane(e,h)}}this.clipPlane.setFromNormalAndCoplanarPoint(this.planeMesh.getPlaneNormal().negate(),this.gizmo.position),this.lastWorldPos=r}onDragEnd(e){this.selectedObject instanceof Fi||se.info("[AxisPlaneSection] onDragEnd:",e)}getIntersectObjects(){return this.planeMesh&&this.gizmo?[this.planeMesh,this.gizmo]:[]}activateSelectedObject(e){this.selectedObject&&(this.selectedObject instanceof Fi?this.selectedObject.setActive(e):this.selectedObject.parent instanceof To&&this.selectedObject.parent.setActive(e,this.selectedObject))}},t0t=new D(1,0,0),n0t=new D(0,1,0),r0t=new D(0,0,1),d2=class extends cp{constructor(e,t){super(e,t),this.sectionRange={}}activate(){super.activate();let e=this.viewer.getBBox();if(e){let{min:t,max:i}=e;this.sectionRange={x:[t.x,i.x],y:[t.y,i.y],z:[t.z,i.z]}}this.initOrUpdateClipPlanes(),this.initOrUpdateVertices(),this.initOrUpdateSectionPlaneMeshes(),this.setClippingEnabled(!0)}deactivate(){super.deactivate(),this.planeMeshes&&this.scene.remove(...this.planeMeshes),this.planeMeshes=void 0}initOrUpdateVertices(){if(!this.sectionBox)return;let{min:e,max:t}=this.sectionBox;this.vertices=[new D(t.x,t.y,t.z),new D(e.x,t.y,t.z),new D(e.x,e.y,t.z),new D(t.x,e.y,t.z),new D(t.x,t.y,e.z),new D(e.x,t.y,e.z),new D(e.x,e.y,e.z),new D(t.x,e.y,e.z)]}initOrUpdateClipPlanes(){let{min:e,max:t}=this.sectionBox;this.clipPlanes?(this.clipPlanes[0].constant=t.x,this.clipPlanes[1].constant=-e.x,this.clipPlanes[2].constant=t.y,this.clipPlanes[3].constant=-e.y,this.clipPlanes[4].constant=t.z,this.clipPlanes[5].constant=-e.z):this.clipPlanes=[new zr(new D(-1,0,0),t.x),new zr(new D(1,0,0),-e.x),new zr(new D(0,-1,0),t.y),new zr(new D(0,1,0),-e.y),new zr(new D(0,0,-1),t.z),new zr(new D(0,0,1),-e.z)]}initOrUpdateSectionPlaneMeshes(){let e=this.vertices;if(e){if(this.planeMeshes)this.planeMeshes[0].update([e[4],e[0],e[3],e[7]]),this.planeMeshes[1].update([e[1],e[5],e[6],e[2]]),this.planeMeshes[2].update([e[4],e[5],e[1],e[0]]),this.planeMeshes[3].update([e[6],e[7],e[3],e[2]]),this.planeMeshes[4].update([e[0],e[1],e[2],e[3]]),this.planeMeshes[5].update([e[5],e[4],e[7],e[6]]);else{let t=[new Fi("Right",[e[4],e[0],e[3],e[7]]),new Fi("Left",[e[1],e[5],e[6],e[2]]),new Fi("Top",[e[4],e[5],e[1],e[0]]),new Fi("Bottom",[e[6],e[7],e[3],e[2]]),new Fi("Front",[e[0],e[1],e[2],e[3]]),new Fi("Back",[e[5],e[4],e[7],e[6]])];this.planeMeshes=t,this.scene.add(...t)}this.viewer.enableRender()}}activateSelectedObject(e){var t;null==(t=this.selectedObject)||t.setActive(e)}onDragStart(e){var t;this.selectedObject&&(se.info("[ObjectsBoxSection] onDragStart:",e),this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),this.selectedObject.getPlaneCenter()),null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,this.lastWorldPos))}onDragMove(e){var t;if(!this.lastWorldPos||!this.selectedObject)return;let i=new D;null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,i);let n=this.selectedObject.actionType;switch(n){case"Top":case"Bottom":this.dragTranslateSectionPlane(n0t,this.lastWorldPos,i,n);break;case"Left":case"Right":this.dragTranslateSectionPlane(t0t,this.lastWorldPos,i,n);break;case"Front":case"Back":this.dragTranslateSectionPlane(r0t,this.lastWorldPos,i,n)}this.lastWorldPos=i}onDragEnd(e){se.info("[ObjectsBoxSection] onDragEnd:",e)}dragTranslateSectionPlane(e,t,i,n){let r,{min:a,max:s}=this.sectionBox,o=i.clone().sub(t).projectOnVector(e);switch(n){case"Top":r=s.y+o.y,this.isInRange(r,this.sectionRange.y)&&(s.y=r);break;case"Bottom":r=a.y+o.y,this.isInRange(r,this.sectionRange.y)&&(a.y=r);break;case"Left":r=a.x+o.x,this.isInRange(r,this.sectionRange.x)&&(a.x=r);break;case"Right":r=s.x+o.x,this.isInRange(r,this.sectionRange.x)&&(s.x=r);break;case"Front":r=s.z+o.z,this.isInRange(r,this.sectionRange.z)&&(s.z=r);break;case"Back":r=a.z+o.z,this.isInRange(r,this.sectionRange.z)&&(a.z=r)}this.initOrUpdateVertices(),this.initOrUpdateSectionPlaneMeshes(),this.initOrUpdateClipPlanes(),this.viewer.enableRender()}isInRange(e,t){return e>t[0]&&et.visible=e)),this.showSectionPlane=e,this.viewer.enableRender()}},f2=class extends cp{constructor(e,t){super(e,t),this.mousedown=e=>{var t;if(0===e.button){if(!this.faceInfo){let i=this.pickFace(e);if(i&&i.face){let e=i.face.normal,n=new Ln;e.applyNormalMatrix(n.getNormalMatrix(i.object.matrixWorld)),this.faceInfo={position:i.point,normal:e.normalize()},this.setSection(),null==(t=this.tooltip)||t.hide()}return}if(!this.selectedObject){let t=this.getIntersections(e);if(!t)return;this.activateSelectedObject(!1),this.selectedObject=t.object}this.selectedObject.parent instanceof To&&(this.inputManager.setCursor("grabbing"),this.dragStarted=!0,this.setControlsEnabled(!1),this.onDragStart(e),this.viewer.enableRender())}},this.mousemove=e=>{var t,i;if(this.faceInfo){if(this.dragStarted)this.updateRaycasterByMouse(e),this.onDragMove(e);else{this.activateSelectedObject(!1),this.selectedObject=void 0;let t=this.getIntersections(e),i="default";t&&(this.selectedObject=t.object,this.activateSelectedObject(!0),this.selectedObject.parent instanceof To&&(i="grab")),this.inputManager.setCursor(i)}this.viewer.enableRender()}else this.pickFace(e)?null==(t=this.tooltip)||t.show():null==(i=this.tooltip)||i.hide()},this.center=new D,this.viewer.addEventListener("BeforeRender",(()=>{var e;this.isActive&&(null==(e=this.gizmo)||e.adjustSize(this.camera))}))}activate(){super.activate(),this.sectionBox.getCenter(this.center),this.tooltip=new Xl("pick-section-plane",Qu("Tooltip.section"),{parentNode:this.viewer.widgetContainer,followPointer:!0})}deactivate(){var e,t,i;super.deactivate(),null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.planeMesh=void 0,this.gizmo=void 0,this.faceInfo=void 0,null==(i=this.tooltip)||i.destroy(),this.tooltip=void 0}setSection(){this.initOrUpdateGizmo(),this.initOrUpdateSectionPlaneMeshes(),this.initOrUpdateClipPlanes(),this.setClippingEnabled(!0),this.viewer.enableRender()}resetSection(){var e,t,i;null==(e=this.planeMesh)||e.removeFromParent(),null==(t=this.gizmo)||t.removeFromParent(),this.setClippingEnabled(!1),this.planeMesh=void 0,this.gizmo=void 0,this.faceInfo=void 0,null==(i=this.tooltip)||i.show(),this.viewer.enableRender()}setSectionPlaneMeshVisible(e){this.gizmo&&this.planeMesh&&(this.gizmo.visible=e,this.planeMesh.visible=e),this.showSectionPlane=e,this.viewer.enableRender()}initOrUpdateClipPlanes(){if(!this.faceInfo)return;let{normal:e,position:t}=this.faceInfo;this.clipPlane=(new zr).setFromNormalAndCoplanarPoint(e.clone().negate(),t),this.clipPlane&&(this.clipPlanes=[this.clipPlane])}initOrUpdateSectionPlaneMeshes(){var e;if(!this.faceInfo)return;let{normal:t,position:i}=this.faceInfo,n=new D;this.sectionBox.getSize(n);let r=n.length(),a=i,s=(new Nt).setFromCenterAndSize(a,new D(r,r,r)),{min:o,max:l}=s;null==(e=this.planeMesh)||e.removeFromParent(),this.planeMesh=new Fi("Plane",[new D(a.x,l.y,o.z),new D(a.x,l.y,l.z),new D(a.x,o.y,l.z),new D(a.x,o.y,o.z)]),this.planeMesh.setDirection(t),this.planeMesh&&this.scene.add(this.planeMesh),this.viewer.enableRender()}initOrUpdateGizmo(){var e,t;if(!this.faceInfo)return;null==(e=this.gizmo)||e.removeFromParent();let{normal:i,position:n}=this.faceInfo,r=new To;r.setDirection(i),r.position.copy(n),r.adjustSize(this.camera),null==(t=this.scene)||t.add(r),this.gizmo=r}onDragStart(e){var t;if(!this.faceInfo||this.selectedObject instanceof Fi)return;se.info("[PickPlaneSection] onDragStart:",e);let{position:i}=this.faceInfo;this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),i),null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,this.lastWorldPos)}onDragMove(e){var t,i,n;if(!this.lastWorldPos||!this.selectedObject||!this.clipPlane||!this.planeMesh||!this.gizmo||!this.faceInfo||this.selectedObject&&this.selectedObject instanceof Fi)return;let r=new D;null==(t=this.raycaster)||t.ray.intersectPlane(this.refrencePlane,r);let a=this.selectedObject.userData.actionType,{position:s}=this.faceInfo,o=(new D).subVectors(this.lastWorldPos,s).normalize(),l=(new D).subVectors(r,s).normalize(),h=(new D).subVectors(r,this.lastWorldPos).projectOnVector(Xa.clone().applyQuaternion(this.gizmo.quaternion)),c=o.angleTo(l),u=(new D).crossVectors(o,l),d=new D;this.sectionBox.getSize(d);let p,f=Math.max(d.x,d.y,d.z);switch(a){case"TranslateX":case"TranslateY":case"TranslateZ":p=(new D).addVectors(this.gizmo.position,h),this.sectionBox.clone().setFromCenterAndSize(this.center,new D(f,f,f)).containsPoint(p)&&(null==(i=this.gizmo)||i.position.add(h),null==(n=this.planeMesh)||n.position.add(h));break;case"RotateX":{let e=Xa.clone().applyQuaternion(this.gizmo.quaternion);u.dot(e)<0&&(c=-c),this.gizmo.rotateX(c),this.planeMesh.rotatePlane(e,c)}break;case"RotateY":{let e=op.clone().applyQuaternion(this.gizmo.quaternion);u.dot(e)<0&&(c=-c),this.gizmo.rotateY(c),this.planeMesh.rotatePlane(e,c)}break;case"RotateZ":{let e=lp.clone().applyQuaternion(this.gizmo.quaternion);u.dot(e)<0&&(c=-c),this.gizmo.rotateZ(c),this.planeMesh.rotatePlane(e,c)}}this.clipPlane.setFromNormalAndCoplanarPoint(this.planeMesh.getPlaneNormal().negate(),this.gizmo.position),this.lastWorldPos=r}onDragEnd(e){this.selectedObject instanceof Fi||se.info("[PickPlaneSection] onDragEnd:",e)}getIntersectObjects(){return this.planeMesh&&this.gizmo?[this.planeMesh,this.gizmo]:[]}activateSelectedObject(e){this.selectedObject&&(this.selectedObject instanceof Fi?this.selectedObject.setActive(e):this.selectedObject.parent instanceof To&&this.selectedObject.parent.setActive(e,this.selectedObject))}pickFace(e){if(!this.raycaster)return;let t=new xe(e.x,e.y),i=an.screen2Ndc(t,this.camera,this.canvas);this.raycaster.setFromCamera(i,this.camera);let n=[];return this.viewer.loadedModels.forEach((e=>{let t=e.object;t&&t.visible&&n.push(t)})),(this.raycaster.intersectObjects(this.viewer.getRaycastableObjectsByMouse(e))||[]).find((e=>{let t=e.object;return t.visible&&t instanceof xt}))}},Q4=class extends or{constructor(e){super(e,{id:Q4.DEFAULT_ID}),this.sections={},this.viewer=e;let t=e.getInputManager();t&&(this.sections.ObjectsBoxSection=new d2(e,t),this.sections.AxisPlaneSection=new h2(e,t),this.sections.PickPlaneSection=new f2(e,t))}get raycaster(){return this.viewer.getRaycaster()}activate(e){this.activeSectionType&&this.deactivate(),this.activeSectionType=e,this.sections[e].activate()}deactivate(){let e=this.activeSectionType;e&&this.sections[e].deactivate(),this.activeSectionType=void 0}resetSection(){}isActive(){let e=this.activeSectionType;return e?this.sections[e].isActive:!!this.getActiveSectionType()}getActiveSectionType(){return this.activeSectionType}getActiveSection(){if(this.activeSectionType)return this.sections[this.activeSectionType]}setClippingObjectIds(e){for(let t in this.sections)this.setClippingObjectIdsForType(t,e)}setClippingObjectIdsForType(e,t){this.sections[e].clearClippingObjectIds(),null!=t&&t.length&&(this.sections[e].clippingObjetIds=t,this.sections[e].setClippingEnabled(!0))}destroy(){super.destroy(),this.deactivate(),this.activeSectionType=void 0}},dg=Q4;dg.DEFAULT_ID="SectionPlugin";var Dve=new D,Ove=new vr,kve=class extends tp{constructor(e,t){var i;super(e),this.name="BimViewer",this.timer=Date.now(),this.enableSelection=!0,this.selectedObject=void 0,this.loadedModels=[],this.composerRenderEnabled=!0,this.composerEnabled=!1,this.savedMaterialsForOpacity=[],this.raf=new $f,this.clock=new ho,this.renderEnabled=!0,this.enableModelLevelFrustumCulling=!0,this.isFrustumInsectChecking=!1,this.settings=Wv,this.twoDModelCount=0,this.enableFastOperation=!0,this.edgesVisible=!0,this.distanceCullingFactor=150,this.operationTimeoutMs=500,this.bbox=new Nt,this.onResize=()=>{this.viewerContainer&&this.viewerContainer.parentElement&&this.resize(this.viewerContainer.parentElement.clientWidth,this.viewerContainer.parentElement.clientHeight)},this.onKeyDown=e=>{let t=this.camera,i=this.controls;if(!t||!i)return;let n=this.settings.keyboard.sensitivity||3,r=i.getPosition(new D),a=i.getTarget(new D),s=a.clone();if("ArrowLeft"===e.code||"ArrowRight"===e.code){let t=Math.PI*n/180;"ArrowLeft"===e.code&&(t=-t),s.x=(a.x-r.x)*Math.cos(t)-(a.z-r.z)*Math.sin(t)+r.x,s.z=(a.z-r.z)*Math.cos(t)+(a.x-r.x)*Math.sin(t)+r.z,i.setLookAt(r.x,r.y,r.z,s.x,s.y,s.z,!0)}else if("ArrowUp"===e.code||"ArrowDown"===e.code){let t=Math.PI*n/180,o=new D(a.x-r.x,a.y-r.y,a.z-r.z).length(),l=a.y-r.y;"ArrowDown"===e.code&&(t=-t);let h=Math.asin(l/o)+t;if(h<-Math.PI/2||h>Math.PI/2)return;let c=Math.sin(h)*o;s.y=a.y+(c-l),i.setLookAt(r.x,r.y,r.z,s.x,s.y,s.z,!0)}else if("KeyW"===e.code){let e=.01*n,s=r.distanceTo(a);if(s<10*t.near){let e=i.getTarget(new D).lerp(r,-t.near/s);i.setTarget(e.x,e.y,e.z)}r.lerp(a,e),i.setLookAt(r.x,r.y,r.z,a.x,a.y,a.z)}else if("KeyS"===e.code){let e=.01*n;r.lerp(a,-e),i.setLookAt(r.x,r.y,r.z,a.x,a.y,a.z,!1)}else"KeyF"===e.code?this.flyToSelectedObject():"KeyY"===e.code?this.flyTo(r,a.clone().setY(r.y)):"KeyR"===e.code&&this.flyToRandomObject();this.enableRender()},this.enableRender=(e=1e3)=>{this.renderEnabled=!0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.timeoutSymbol=this.raf.setTimeout((()=>{this.renderEnabled=!1,this.composerRenderEnabled=!0}),e))},this.applyOptionsAndAddToScene=(e,t,i,n)=>ft(this,null,(function*(){let r=St.getUpdateProgressFunc(n),a=St.getUpdateSubProgressFunc(70,90,n);r(0),se.info(`[Viewer] '${e}' is loaded in ${(Date.now()-this.timer)/1e3}s, adding to scene...`),this.timer=Date.now();let s,o=i.src&&i.src.toLowerCase();if(o&&o.endsWith("dxf")&&this.twoDModelCount++,i.matrix&&16===i.matrix.length){let e=new et;e.elements=i.matrix,t.applyMatrix4(e)}if(t.matrixAutoUpdate=!1,t.updateMatrix(),t.traverse((e=>{e.matrixAutoUpdate&&(e.matrixAutoUpdate=!1,e.updateMatrix())})),i.merge&&this.merge(t),r(50),i.merge){let e=Date.now();Qf.createMeshBvhAsync([t],{saveOriginalIndex:!0}),se.info(`[Viewer] Creates mesh bvh cost ${(Date.now()-e)/1e3}s`)}r(60),t.traverse((e=>{e.isMesh&&(e.castShadow=!0,e.receiveShadow=!0,e.userData.surfaceArea=this.calculateMeshSurfaceArea(e)),e.geometry&&e.layers.enableAll(),e instanceof Gs&&(e.visible=!1)})),r(70),i.edges&&(s=yield Hn.createOutlines(t,void 0,a)),r(90);let l={modelId:this.getUniqueModelId(i.modelId||i.src),object:t,edges:s};this.addModel(l),r(100)})),this.onAnchorPointerDown=e=>{var t,i;null==(t=this.controls)||!t.enableRotate||!this.renderer||null!=(i=this.sectionPlugin)&&i.isActive()||this.setOrbitPoint(e)},this.onAnchorPointerUp=()=>{this.anchor&&(this.anchor.className="anchor"),!this.viewerContainer||!this.camera||this.controls},this.onOperation=()=>{let e=this.renderer;if(!this.enableFastOperation||!e)return;let t=e=>{let t=this.renderer;void 0!==t.distanceCullingFactor&&(t.distanceCullingFactor=e)},i=e=>{this.loadedModels.forEach((t=>{t.edges&&t.edges.forEach((t=>t.visible=e))})),this.edgesVisible=e},n=e=>{let t=this.directionalLight;t&&(t.castShadow=e)};t(this.distanceCullingFactor),this.edgesVisible&&i(!1),n(!1),this.operationTimeout&&clearTimeout(this.operationTimeout),this.operationTimeout=setTimeout((()=>{this.operationTimeout=void 0,n(!0),i(!0),t(0),this.enableRender()}),this.operationTimeoutMs)},this.viewerCfg=Tr(Tr({},lde),e),se.info("[Viewer]","viewerCfg:",this.viewerCfg),this.settings=Wv,this.cameraCfg=t,this.cameraCfg&&this.cameraCfg.near&&(this.settings.camera.near=this.cameraCfg.near),this.cameraCfg&&this.cameraCfg.far&&(this.settings.camera.far=this.cameraCfg.far),this.increaseJobCount(),this.init(),this.animate(),this.renderer&&(null==(i=this.viewerContainer)||i.append(this.renderer.domElement)),this.decreaseJobCount(),se.info(`[Viewer] Initialized in ${(Date.now()-this.timer)/1e3}s`)}init(){let e=this.viewerCfg;this.initThree(),Fn.isBrowser&&!e.context&&this.initDom(),this.initEvents(),this.initControls()}initThree(){this.initScene(),this.initRenderer(),this.initCamera(),this.initLights()}initDom(){let e=this.viewerCfg;this.initSpinner(),this.initCSS2DRenderer(),this.initOthers(),!0===e.enableAxisGizmo&&se.warn("[Viewer] enableAxisGizmo is deprecated, use AxisGizmoPlugin instead!"),!0===e.enableStats&&se.warn("[Viewer] enableStats is deprecated, use StatsPlugin instead!"),e.enableToolbar&&se.warn("[Viewer] enableToolbar is deprecated, use ToolbarPlugin instead!"),e.enableBottomBar&&se.warn("[Viewer] enableBottomBar is deprecated, use BottomBarPlugin instead!"),e.enableNavCube&&se.warn("[Viewer] enableNavCube is deprecated, use NavCubePlugin instead!"),e.enableProgressBar&&(this.loadingProgressBar=this.initLoadingProgressBar()),e.enableContextMenu&&se.warn("[Viewer] enableContextMenu is deprecated, use ContextMenuPlugin instead!"),null!=e.enableSelection&&(this.enableSelection=e.enableSelection)}initScene(){this.scene=new Si,this.scene.matrixAutoUpdate=!1}initRenderer(){this.renderer=new Ts({antialias:!0,preserveDrawingBuffer:!0}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),this.renderer.outputColorSpace=en,this.renderer.toneMappingExposure=1,this.renderer.useLegacyLights=!1,this.renderer.setClearColor(11119017,1),this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=Tv,this.renderer.shadowMap.autoUpdate=!1,St.printGpuInfo(this.renderer.getContext()),this.pmremGenerator=new Yh(this.renderer),this.pmremGenerator.compileEquirectangularShader(),this.enableOverlayRenderer&&(this.overlayRender=new Un(this)),this.setEnvironmentFromDataArray()}initCSS2DRenderer(){var e;let t=new Nu;t.setSize(this.width,this.height),t.domElement.style.height="0",t.domElement.style.width="0",t.domElement.style.position="absolute",t.domElement.style.top="0",t.domElement.style.left="0",t.domElement.style.overflow="visible",t.domElement.classList.add("css2d-renderer"),null==(e=this.viewerContainer)||e.appendChild(t.domElement),this.css2dRenderer=t}initCamera(){this.scene&&(this.perspectiveCamera=new hr(45,this.width/this.height,this.settings.camera.near,this.settings.camera.far),this.perspectiveCamera.position.set(0,100,0),this.scene.add(this.perspectiveCamera),this.camera=this.perspectiveCamera)}initControls(e=!1){if(!this.renderer)return;Fn.printDeviceInfo();let t,i=e?this.orthoCamera:this.perspectiveCamera;i&&this.inputManager&&((!this.perspectiveCameraControls||!this.orthoCameraConrols)&&(t=new va(i,this.inputManager),t.dollySpeed=.3,t.dollyToCursor=!0,t.infinityDolly=!0,t.enabled=!0,t.keyTruckSpeed=10,t.restThreshold=0,t.smoothTime=.05,t.keys={left:"KeyD",up:"KeyE",right:"KeyA",bottom:"KeyQ"},t.listenToKeyEvents(),t.update(0)),t&&(e?(this.orthoCameraConrols=t,t.minZoom=3):(this.perspectiveCameraControls=t,this.bbox&&(t.minDistance=.1,t.maxDistance=10*this.bbox.getSize(new D).length())),this.controls=t,this.enableFastOperation&&t.addEventListener("control",this.onOperation)))}initRotateToCursor(){this.anchor=this.createAnchor()}initLights(){if(!this.scene)return;let e=16777215,t=new qs(e,1.5);t.name="sun",t.castShadow=!0,t.position.set(-2,2,4),t.shadow.autoUpdate=!1,t.shadow.mapSize.width=1024,t.shadow.mapSize.height=1024,this.directionalLight=t,this.scene.add(t),this.scene.add(t.target),this.directionalLightHelper=new Bb(this.directionalLight),this.directionalLightHelper.visible=!1,this.scene.add(this.directionalLightHelper),this.shadowCameraHelper=new Ub(this.directionalLight.shadow.camera),this.shadowCameraHelper.visible=!1,this.scene.add(this.shadowCameraHelper),this.ambientLight=new Cl(e),this.hemisphereLight=new Du(e,14540253,.2),this.hemisphereLight.position.set(0,300,0),this.scene.add(this.ambientLight),this.scene.add(this.hemisphereLight)}initEvents(){if(!this.renderer||!this.viewerContainer)return;let e=new Ko(this.viewerContainer);this.inputManager=e;let t=!1,i=!1,n=0,r=0,a=0,s=e=>-1!==r&&-1!==a&&Math.abs(e.x-r)<5&&Math.abs(e.y-a)<5;e.addEventListener("pointerdown",(e=>{i=!1,t=!0,0===e.button&&this.onAnchorPointerDown(e)})),e.addEventListener("pointermove",(e=>{t&&(i=!s(e))})),e.addEventListener("pointerup",(e=>{if(t=!1,i)return i=!1,void this.onAnchorPointerUp();if(0===e.button)if((e=>{let t=e.timestamp-n;return!!(0===e.button&&t<300&&s(e))})(e)){let t=this.getClickedObject(e);t?this.flyToObject(t):this.viewFitAll(),n=0,r=-1,a=-1}else n=e.timestamp,r=e.x,a=e.y,this.handleMouseClick(e);else e.button;this.onAnchorPointerUp()})),e.addEventListener("keydown",(e=>{this.onKeyDown(e)})),this.initRotateToCursor(),this.raycaster=new na}initOthers(){!this.scene||!this.renderer||!this.camera||(this.renderer.domElement.style.outlineWidth="0")}initLoadingProgressBar(){return new Yf(this.widgetContainer)}sycnCameraAndControls(e){let t=e?this.orthoCamera:this.perspectiveCamera,i=e?this.perspectiveCameraControls:this.orthoCameraConrols,n=e?this.orthoCameraConrols:this.perspectiveCameraControls,r=new D;i.getPosition(r),n.setPosition(r.x,r.y,r.z);let a=i.getTarget(new D);if(n.setTarget(a.x,a.y,a.z),e){let e=t;e.zoom=10,e.updateProjectionMatrix()}}setToOrthographicCamera(e=!1){var t;if(!this.scene||!this.controls)return;let i=this.perspectiveCamera,n=this.perspectiveCameraControls,r=this.orthoCamera,a=this.orthoCameraConrols;e?(r||(r=new Nr(-this.width/2,this.width/2,this.height/2,-this.height/2,this.settings.camera.near,this.settings.camera.far),r.position.set(0,100,0),r.zoom=10,r.updateProjectionMatrix(),this.scene.add(r),this.orthoCamera=r,this.frustumSize=this.width),a||(this.initControls(!0),a=this.orthoCameraConrols),this.camera=r,this.controls=a):(this.camera=i,this.controls=n),this.sycnCameraAndControls(e),this.resize(this.width,this.height),null==(t=this.composer)||t.passes.forEach((e=>{e.camera&&(e.camera=this.camera)})),this.dispatchEvent("CameraChanged")}animate(){var e,t,i;if(this.minFrameInterval>0&&Date.now()-this.lastFrameExecuteTime!!e.tilesRenderer));0!==e.length&&(this.camera.updateMatrixWorld(),e.forEach((e=>{e.tilesRenderer.update()})))}frustumCullingByModelBBox(){if(!this.enableModelLevelFrustumCulling)return;let e=this.camera,t=this.scene;if(!e||!t)return;e.updateMatrixWorld();let i=new et;i.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse);let n=new ma;n.setFromProjectionMatrix(i);let r=(e,t)=>{if(e&&t&&(void 0===e.userData._visible&&(e.userData._visible=!0,Object.defineProperties(e,{visible:{set:t=>{e.userData._visible=t,this.isFrustumInsectChecking||(e.userData.userConfigVisibility=!0)},get:()=>e.userData._visible}})),void 0===e.userData.userConfigVisibility)){let i=n.intersectsBox(t);e.visible!==i&&(e.visible=i,se.debug(`[Viewer] frustumCullingByModelBBox() set model (id ${e.id})'s visible to:`,i))}};this.isFrustumInsectChecking=!0,this.loadedModels.forEach((e=>{if(e.tilesRenderer){let t=e.tilesRenderer.group;r(t,e.bbox)}else r(e.object,e.bbox)})),this.isFrustumInsectChecking=!1}destroy(){var e,t,i,n;null==(e=this.inputManager)||e.removeEventListener();let r=this.webcamPlane;this.scene&&r&&(this.scene.remove(r),r.geometry.dispose(),r.material.dispose(),this.webcamPlane=void 0),this.webcam=void 0,this.composer=void 0,this.renderPass=void 0,this.effectFxaaPass=void 0,this.saoPass=void 0,this.ssaoPass=void 0,this.outlinePass=void 0,this.ambientLight=void 0,this.directionalLight=void 0,this.hemisphereLight=void 0,this.directionalLightHelper&&(this.directionalLightHelper.dispose(),this.directionalLightHelper=void 0),this.controls&&(this.disposeRotateToCursor(),this.controls.dispose(),this.controls=void 0),this.perspectiveCameraControls&&(this.perspectiveCameraControls.dispose(),this.perspectiveCameraControls=void 0),this.shadowCameraHelper&&(this.shadowCameraHelper.dispose(),this.shadowCameraHelper=void 0),this.css2dRenderer&&(null==(t=this.viewerContainer)||t.removeChild(this.css2dRenderer.domElement),this.css2dRenderer=void 0),this.raycaster=void 0,this.selectedObject=void 0,this.savedMaterialsForOpacity=void 0,this.section=void 0,this.sectionType=void 0,this.loadedModels.forEach((e=>{e.tilesRenderer&&e.tilesRenderer.dispose()})),this.loadedModels=[],this.perspectiveCamera=void 0,this.perspectiveCameraControls=void 0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.raf=void 0),null==(i=this.fontManager)||i.destroy(),this.fontManager=void 0,this.pmremGenerator&&(this.pmremGenerator.dispose(),this.pmremGenerator=void 0),null==(n=this.zoomToRectHelper)||n.destroy(),this.zoomToRectHelper=void 0,super.destroy()}loadLocalModel(e,t,i,n){return ft(this,null,(function*(){var r,a;this.timer=Date.now(),this.increaseJobCount();let s=t.modelId||t.src,o=this.translate("ProgressBar.Loading"),l=e=>{var t;null==(t=this.loadingProgressBar)||t.updateProgress(s,o,e),n&&n(new ProgressEvent("LoadProgress",{loaded:e,total:100}))},h=!1,c=(e,t,i)=>{var r;let a=100*e.loaded/e.total;a=a*(i-t)/100+t,a>i&&(h||(se.warn("[Progress] Invalid ProgressEvent:",e),h=!0),a=i),null==(r=this.loadingProgressBar)||r.updateProgress(s,o,a),n&&n(new ProgressEvent("LoadProgress",{loaded:a,total:100}))},u=e=>c(e,0,50),d=e=>c(e,50,99);null==(r=this.loadingProgressBar)||r.addProgressItem(s),l(0);try{let n=new ja(i);this.fontManager&&n.setFont(this.fontManager);let r=yield n.loadLocalModel(e,t.src,u);if(r)return yield this.applyOptionsAndAddToScene(e,r,t,d),Promise.resolve()}catch(e){let n=`Error loading ${t.src}`;return se.error(n,e),Promise.reject(n)}finally{this.decreaseJobCount(),l(100),null==(a=this.loadingProgressBar)||a.delayRemoveProgressItem(s)}return Promise.reject()}))}loadModel(e,t){return ft(this,null,(function*(){var i,n;this.timer=Date.now(),this.increaseJobCount();let r=e.modelId||e.src,a=this.translate("ProgressBar.Loading"),s=e=>{var i;null==(i=this.loadingProgressBar)||i.updateProgress(r,a,e),t&&t(new ProgressEvent("LoadProgress",{loaded:e,total:100}))},o=!1,l=(e,i,n)=>{var s;let l=100*e.loaded/e.total;l=l*(n-i)/100+i,l>n&&(o||(se.warn("[Progress] Invalid ProgressEvent:",e),o=!0),l=n),null==(s=this.loadingProgressBar)||s.updateProgress(r,a,l),t&&t(new ProgressEvent("LoadProgress",{loaded:l,total:100}))},h=e=>l(e,0,50),c=e=>l(e,50,99);null==(i=this.loadingProgressBar)||i.addProgressItem(r),s(0);try{let t=new ja;this.fontManager&&t.setFont(this.fontManager);let i=yield t.loadModel(e.src,e.fileFormat,h);if(i)return yield this.applyOptionsAndAddToScene(e.src,i,e,c),Promise.resolve()}catch(t){let n=`Error loading ${e.src}`;return se.error(n,t),Promise.reject(n)}finally{this.decreaseJobCount(),s(100),null==(n=this.loadingProgressBar)||n.delayRemoveProgressItem(r)}return Promise.reject()}))}load3dTiles(e){return ft(this,null,(function*(){var t;this.timer=Date.now(),this.increaseJobCount();let i=new M_(e.src),n=new Nt,r=yield new Promise(((t,r)=>{i.onLoadTileSet=()=>{i.getBounds(n)||(i.getBoundingSphere(Ove)?Ove.getBoundingBox(n):(se.warn(`[Viewer] Can't get the correct bounding box of 3dTiles '${e.src}'!`),r())),se.debug(n),i.onLoadTileSet=null;let a=i.group;se.debug(a),t(a)},i.onLoadModel=e=>{e.traverse((e=>{e.matrixAutoUpdate&&(e.matrixAutoUpdate=!1,e.updateMatrix()),e.isMesh&&(e.castShadow=!0,e.receiveShadow=!0),e.geometry&&e.layers.enableAll()})),e.updateWorldMatrix(!1,!0),this.updateDirectionalLightShadow(),this.enableRender()},i.setCamera(this.camera),i.setResolutionFromRenderer(this.camera,this.renderer),i.update()}));if(r){let a=Date.now(),s={modelId:this.getUniqueModelId(e.modelId||e.src),object:r,bbox:n,tilesRenderer:i};if(this.loadedModels.push(s),e.matrix&&16===e.matrix.length){let t=new et;t.elements=e.matrix,r.applyMatrix4(t)}return r.matrixAutoUpdate=!1,r.updateMatrix(),r.updateMatrixWorld(!0),null==(t=this.scene)||t.add(r),n.applyMatrix4(r.matrix),this.computeBoundingBox(),this.tryAdjustDirectionalLight(),1===this.loadedModels.length&&(this.tryAdjustCameraNearAndFar(),this.goToHomeView()),se.info(`[Viewer] Added 3dTiles '${e.src}' to scene in ${(Date.now()-a)/1e3}s`),this.enableRender(),this.decreaseJobCount(),this.dispatchEvent("ModelLoaded"),Promise.resolve()}return this.decreaseJobCount(),this.dispatchEvent("ModelLoaded"),Promise.reject()}))}setFont(e){return ft(this,null,(function*(){let t=Date.now();this.fontManager||(this.fontManager=new ud),yield this.fontManager.loadFonts(e),se.info(`[Viewer] Font file(s) load time in ${(Date.now()-t)/1e3}s`)}))}setDracoDecoderPath(e){ja.setDracoDecoderPath(e)}addModel(e){if(!this.scene||!this.renderer)return;this.increaseJobCount();let t=(new Nt).setFromObject(e.object);e.bbox||(e.bbox=t),this.scene.add(e.object),this.loadedModels.push(e),this.computeBoundingBox(),this.tryAdjustDirectionalLight(),1===this.loadedModels.length&&(this.tryAdjustCameraNearAndFar(),this.goToHomeView()),se.info(`[Viewer] Added '${e.modelId}' to scene in ${(Date.now()-this.timer)/1e3}s`),this.renderer.shadowMap.needsUpdate=!0,this.enableRender(),this.dispatchEvent("ModelLoaded",{modelId:e.modelId,bbox:t}),this.decreaseJobCount()}calculateMeshSurfaceArea(e){let t=new Zr,i=[0,0,0],n=e.geometry,r=n.getAttribute("position"),a=n.getIndex(),s=a?a.count:r.count,o=0;for(let l=0;le.object.id)).forEach((s=>{if(e){this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0&&Hn.revertObjectOpacityById(r,s,this.savedMaterialsForOpacity);let e=Hn.setObjectOpacityById(r,s,t,i,n);a.push(...e)}else this.savedMaterialsForOpacity&&Hn.revertObjectOpacityById(r,s,this.savedMaterialsForOpacity)})),this.savedMaterialsForOpacity=e?a:[],this.enableRender()}hasTransparentObject(){return!!(this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0)}showVertexNormals(e,t=.1){var i,n,r;e?(this.vertexNormalsHelpers||(this.vertexNormalsHelpers=new er),null==(i=this.scene)||i.traverseVisible((e=>{var i;if(e instanceof xt&&!["SKYBOX","GROUND_GRID","GROUND_GRASS","BIM_VIEWER_BOX_HELPER"].includes(e.name)){if(!e.geometry.attributes.normal)return;let n=new t2(e,t,16711680);null==(i=this.vertexNormalsHelpers)||i.add(n)}})),null==(n=this.scene)||n.add(this.vertexNormalsHelpers)):this.vertexNormalsHelpers&&(null==(r=this.scene)||r.remove(this.vertexNormalsHelpers),this.vertexNormalsHelpers=void 0)}resize(e,t){super.resize(e,t),t>0&&(this.composer&&this.composer.setSize(e,t),this.effectFxaaPass&&this.effectFxaaPass.uniforms.resolution.value.set(1/e,1/t),this.css2dRenderer&&(this.css2dRenderer.setSize(e,t),this.css2dRenderer.domElement.style.height="0",this.css2dRenderer.domElement.style.width="0")),this.enableRender()}getRaycaster(){return this.raycaster}getRaycastableObjectsByMouse(e){let t=[];if(!(this.raycaster&&this.camera&&this.scene&&e&&this.viewerContainer))return t;let i=new xe(e.x,e.y),n=an.screen2Ndc(i,this.camera,this.viewerContainer);return this.camera.updateMatrixWorld(),this.raycaster.setFromCamera(n,this.camera),t=this.getRaycastableObjects(),t}getRaycastableObjects(){let e=[];return this.loadedModels.forEach((t=>{let i=t.object;i&&i.visible&&e.push(i)})),e}getIntersections(e){let t=this.getRaycastableObjectsByMouse(e),i=this.raycaster&&this.raycaster.intersectObjects(t,!0)||[];return this.renderer&&this.renderer.clippingPlanes.length>0&&(i=i.filter((e=>{var t;return null==(t=this.renderer)?void 0:t.clippingPlanes.every((function(t){return t.distanceToPoint(e.point)>0}))}))),i}getAllIntersections(e){if(!(this.raycaster&&this.camera&&this.scene&&this.viewerContainer))return[];let t=new xe(null==e?void 0:e.x,null==e?void 0:e.y),i=an.screen2Ndc(t,this.camera,this.viewerContainer);this.raycaster.setFromCamera(i,this.camera);let n=this.scene.children,r=this.raycaster.intersectObjects(n,!0)||[];return this.renderer&&this.renderer.clippingPlanes.length>0&&(r=r.filter((e=>{var t;return null==(t=this.renderer)?void 0:t.clippingPlanes.every((function(t){return t.distanceToPoint(e.point)>0}))}))),r}getClickedObject(e){if(!this.raycaster)return;let t=Date.now();this.raycaster.layers.set(12);let i=this.getIntersections(e);se.debug(`[Viewer] getIntersections costs ${(Date.now()-t)/1e3}s`);let n=i.find((e=>{let t=e.object;return t.visible&&t instanceof xt}));return null==n?void 0:n.object}handleMouseClick(e){var t,i,n;if(null!=(t=this.measurePlugin)&&t.isActive()||null!=(i=this.sectionPlugin)&&i.isActive()||!this.raycaster)return;let r=Date.now();this.raycaster.layers.set(12);let a=this.getIntersections(e);se.debug(`[Viewer] getIntersections costs ${(Date.now()-r)/1e3}s`);let s,o,l=a.find((e=>{let t=e.object;return t.visible&&t instanceof xt})),h=l&&l.object||void 0;if(h)if(h instanceof Oi)s=l.instanceId,this.selectedObject&&this.selectedObject.id===h.id&&this.selectedObject.userData.instanceId===s&&(h=void 0);else if(Rr.isMergedMesh(h)){let e=l&&l.faceIndex||-1;e>=0?(o=Rr.getBatchIdByFaceIndex(h,e),this.selectedObject&&this.selectedObject.id===h.id&&this.selectedObject.userData.batchId===o&&(h=void 0)):h=void 0}else this.selectedObject&&this.selectedObject.id===h.id&&(h=void 0);if(a.length>0&&a[0].point){let e=null==(n=this.overlayRender)?void 0:n.getDrawablesByPosition(a[0].point,this.raycaster);e&&e.length>0?h=e[0]:this.enableSelection||(h=void 0)}this.selectedObject&&this.clearSelection(),h?this.selectObject(h,s,o):this.clearSelection()}selectObject(e,t,i,n){if(e instanceof Hi)return this.selectedObject=e,this.selectedObject.selected=!0,void this.enableRender();if(this.selectedObject){let t=this.selectedObject.userData;if(null!=t.instanceId&&t.originalMatrix&&t.clonedMesh){this.scene&&this.scene.remove(t.clonedMesh);let i=this.selectedObject;if(i.setMatrixAt(t.instanceId,t.originalMatrix),i.instanceMatrix.needsUpdate=!0,i.updateMatrix(),delete t.instanceId,delete t.originalMatrix,e===t.clonedMesh)return t.clonedMesh.geometry.dispose(),delete t.clonedMesh,this.selectedObject=void 0,void(this.outlinePass&&(this.outlinePass.selectedObjects=[]));t.clonedMesh.geometry.dispose(),delete t.clonedMesh}else if(null!=t.batchId&&t.clonedMesh){if(this.scene&&this.scene.remove(t.clonedMesh),delete t.batchId,e===t.clonedMesh)return t.clonedMesh.geometry.dispose(),delete t.clonedMesh,this.selectedObject=void 0,void(this.outlinePass&&(this.outlinePass.selectedObjects=[]));t.clonedMesh.geometry.dispose(),delete t.clonedMesh}else if(t.originalMaterial){if(this.selectedObject.material){let e=this.selectedObject.material;Array.isArray(e)?e.forEach((e=>e.dispose())):e instanceof yr&&e.dispose()}this.selectedObject.material=t.originalMaterial,delete t.originalMaterial}this.selectedObject=void 0,this.outlinePass&&(this.outlinePass.selectedObjects=[])}if(this.scene&&e){if(e instanceof Oi&&null!=t){let i=e,r=new et,a=new et;a.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),i.getMatrixAt(t,r),this.selectedObject=e,this.outlinePass&&(this.outlinePass.selectedObjects=[e]);let s=es.clonedHighlightMaterials(e,{depthTest:n});if(s){let n=new xt(i.geometry.clone(),s);n.applyMatrix4(e.matrixWorld.multiply(r)),n.matrixWorldNeedsUpdate=!0,n.name="Cloned mesh for highlighting",n.layers.enableAll();let o=r.clone();o.multiplyMatrices(r,a),i.setMatrixAt(t,o),i.instanceMatrix.needsUpdate=!0,i.updateMatrix(),this.selectedObject.userData.instanceId=t,this.selectedObject.userData.originalMatrix=r,this.selectedObject.userData.clonedMesh=n,this.scene.add(n)}}else if(Rr.isMergedMesh(e)&&null!=i){let t=Rr.getBatchByBatchId(e,i),r=`[Viewer] Clicked on merged mesh(id: ${e.id}).`;r+=` batchId: ${i}, object name before merge: ${null==t?void 0:t.name}`,null!=t&&t.userData&&(r+=`, userData before merge: ${JSON.stringify(t.userData)}`),se.info(r);let a=es.clonedHighlightMaterials(e,{depthTest:n}),s=Rr.cloneGeometryForBatch(e,t);if(a&&s){let t=new xt(s,a);t.applyMatrix4(e.matrixWorld),t.matrixWorldNeedsUpdate=!0,t.name="Cloned mesh for highlighting",t.layers.enableAll(),this.selectedObject=e,this.selectedObject.userData.batchId=i,this.selectedObject.userData.clonedMesh=t,this.scene.add(t)}}else{let t=es.clonedHighlightMaterials(e,{depthTest:n});t&&(this.selectedObject=e,this.selectedObject.userData.originalMaterial=this.selectedObject.material,this.selectedObject.material=t,this.outlinePass&&(this.outlinePass.selectedObjects=[e]))}this.enableRender()}else this.enableRender()}clearSelection(){this.selectedObject&&this.selectedObject instanceof Hi?this.selectedObject.selected=!1:this.selectObject(),this.selectedObject=void 0}getBBox(){return this.bbox}enableModelEdges(e,t){return ft(this,null,(function*(){let i=St.getUpdateProgressFunc(t);i(0),this.increaseJobCount();let n=this.loadedModels.length;for(let r=0;rt.visible=e))}this.decreaseJobCount(),i(100),this.enableRender()}))}flyToObjects(e){if(!e||0===e.length||!this.camera)return;let t=new Nt;e.forEach((e=>{let i=Os.getBoundingBox(e);t.union(i)}));let i=new vr;t.getBoundingSphere(i),this.controls.fitToSphere(i,!0)}flyToObject(e){this.flyToObjects([e])}flyToSelectedObject(){if(!this.selectedObject)return;let e=this.selectedObject;(e instanceof Oi&&e.userData.clonedMesh||Rr.isMergedMesh(e)&&e.userData.clonedMesh)&&(e=e.userData.clonedMesh),this.flyToObject(e)}flyToRandomObject(){var e,t,i;let n=this.loadedModels.map((e=>e.object.id)),r=n.length;if(r<=0)return;let a=n[Math.floor(Math.random()*r)];if(!(null==(e=this.scene)?void 0:e.getObjectById(a)))return;let s=[];if(null==(t=this.scene)||t.traverseVisible((e=>{(e instanceof xt||e instanceof fr)&&!["SKYBOX","GROUND_GRID","GROUND_GRASS","BIM_VIEWER_BOX_HELPER"].includes(e.name)&&s.push(e.id)})),s.length<1)return;let o=Math.floor(Math.random()*s.length),l=null==(i=this.scene)?void 0:i.getObjectById(s[o]);l&&(se.info(`[Viewer] Flying to random object: ${l.name}, type: ${l.type}`),this.selectObject(l,void 0,void 0,!1),this.flyToObject(l))}flyTo(e,t){let i=this.camera,n=this.controls;if(!i||!n)return;if(e.equals(t))return void se.error("[Viewer] camera position and lookAt cannot be the same!");if(!St.isVectorValid(e)||!St.isVectorValid(t))return void se.error("[Viewer] invalid position or lookAt!");let r=e.distanceTo(t);ri.far&&(e=e.clone().sub(t).normalize().multiplyScalar(.9*i.far),se.warn("[Viewer] camera could be too far to see the object!")),n.setLookAt(e.x,e.y,e.z,t.x,t.y,t.z,!0),n.setFocalOffset(0,0,0,!0)}viewFitAll(){if(!this.scene||!this.camera||!this.controls)return;let e=Os.getVisibleObjectBoundingBox(this.scene),t=new vr;e.getBoundingSphere(t),this.controls.fitToSphere(t,!0)}goToHomeView(){if(!this.scene)return;let e=this.camera,t=this.cameraCfg,i=t&&St.arrayToVector3(t.eye),n=t&&St.arrayToVector3(t.look);if(i&&n){let e=this.controls;e.setLookAt(i.x,i.y,i.z,n.x,n.y,n.z,!0),e.setFocalOffset(0,0,0,!0)}else{let t=new D,i=new D,n=new D(-1,-.5,-1);this.bbox.getCenter(i),t.subVectors(i,n);let r=new vr;this.bbox.getBoundingSphere(r);let a=this.controls;if(a.setLookAt(t.x,t.y,t.z,i.x,i.y,i.z,!0),a.fitToSphere(r,!0),a.getPosition(t),(!this.cameraCfg||this.cameraCfg&&(!this.cameraCfg.eye||!this.cameraCfg.look))&&(this.cameraCfg={eye:t.toArray(),look:i.toArray()}),e instanceof Nr){let t=this.bbox,i=t.max.x-t.min.x,n=t.max.z-t.min.z,r=e.right-e.left,a=e.top-e.bottom;e.zoom=Math.max(r,a)/Math.max(i,n),e.zoom/=2,e.updateProjectionMatrix()}t.equals(i)||this.flyTo(t,i)}}zoomToBBox(e){if(!this.controls)return;let t=new vr;e.getBoundingSphere(t),this.controls.fitToSphere(t,!0)}tryAdjustCameraNearAndFar(){let e=this.camera;if(!this.scene||!e)return;let t=this.bbox,i=e.near,n=e.far,r=t.max.x-t.min.x,a=t.max.y-t.min.y,s=t.max.z-t.min.z,o=Math.max(r,a,s),l=o/5,h=5*o;if(i>l||nSt.numberToString(e);se.info(`[Viewer] BBox's longest side is: ${t(o)}`),i>l&&(se.warn(`[Viewer] camera.near(${t(i)}) shouldn't bigger than ${t(l)}, will change it!`),e.near=l),n"SectionPlugin"===e.id))}activateSection(e="ObjectsBoxSection"){var t,i;!this.inputManager||null!=(t=this.sectionPlugin)&&t.isActive()?this.sectionPlugin||se.warn("[Viewer] SectionPlugin doesn't seem to be installed!"):(this.sectionType=e,this.clearSelection(),null==(i=this.sectionPlugin)||i.activate(e),this.enableRender())}deactivateSection(){var e;null==(e=this.sectionPlugin)||e.deactivate(),this.enableRender()}getActiveSection(){var e;return null==(e=this.sectionPlugin)?void 0:e.getActiveSection()}get measurePlugin(){return this.plugins.find((e=>"MeasurementPlugin"===e.id))}getMeasurements(){let e=this.measurePlugin;return e?e.getData():[]}activateMeasurement(e){let t=this.measurePlugin;t?(t.activate(e),this.clearSelection()):se.warn("[Viewer] MeasurementPlugin doesn't seem to be installed!")}deactivateMeasurement(){var e;null==(e=this.measurePlugin)||e.deactivate()}setMeasurementVisibility(e,t){let i=this.measurePlugin;return!!i&&i.setVisibilityById(e,t)}clearMeasurements(){var e;null==(e=this.measurePlugin)||e.clear()}zoomToRect(){this.zoomToRectHelper||(this.zoomToRectHelper=new ky(this)),this.zoomToRectHelper.activate()}deactivateZoomRect(){var e;null==(e=this.zoomToRectHelper)||e.deactivate()}enableWebCam(){this.scene&&(this.webcam||(this.webcam=new c2),this.webcamPlane||(this.webcamPlane=this.webcam.createWebCamPlane(),this.webcamPlane.position.set(10,2,0)),this.scene.add(this.webcamPlane))}disableWebCam(){this.scene&&this.webcamPlane&&(this.webcamPlane.geometry.dispose(),this.webcamPlane.material.dispose(),this.scene.remove(this.webcamPlane))}setEnvironment(e){Ac.createEnvTexture(this.pmremGenerator,e).then((e=>{this.scene&&(this.scene.environment&&this.scene.environment.dispose(),this.scene.environment=e,this.enableRender())}))}setEnvironmentFromDataArray(e){Ac.createEnvTextureFromDataArray(this.pmremGenerator,e).then((e=>{this.scene&&(this.scene.environment=e,this.enableRender())}))}takeObjectsScreenshot(e){return ft(this,null,(function*(){return new Promise(((t,i)=>{var n;this.renderer||i("renderer is undefined"),null==(n=this.scene)||n.traverse((t=>{t instanceof xt&&((0,p2.includes)(e,(0,p2.get)(t.userData,"UniqueId"))?t.visible=!0:t.visible=!1)})),this.enableRender(),setTimeout((()=>{var e;t(null==(e=this.renderer)?void 0:e.domElement.toDataURL("image/png"))}),1e3)}))}))}setObjectColor(e,t){this.clearSelection();let i={};e.traverse((e=>{let t=e.material;t&&(Array.isArray(t)?t.forEach((e=>{i[e.id]=e})):i[t.id]=t)}));for(let n in i)es.setMaterialColor(i[n],new ct(t));this.enableRender()}updateRaycasterThreshold(){let e=this.camera;if(!e||!this.raycaster)return;let t=12/e.zoom,i=this.raycaster.params;i.Line?i.Line.threshold=t:i.Line={threshold:t},i.Points?i.Points.threshold=t:i.Points={threshold:t}}merge(e){this.increaseJobCount();try{let t=[];e.traverse((e=>{e.geometry&&e.material&&t.push(e)})),Rr.deepMerge(t,e)}finally{this.decreaseJobCount()}}updateProjectSettings(e){this.settings=e;let t=(e,t)=>{e&&t&&(e.near=t.near,e.far=t.far,e.updateProjectionMatrix())};t(this.perspectiveCamera,this.settings.camera),t(this.orthoCamera,this.settings.camera),this.enableRender(10)}computeBoundingBox(){let e=new Nt;return this.loadedModels.forEach((t=>{t.bbox&&!t.bbox.isEmpty()&&e.union(t.bbox)})),this.bbox=e,this.controls&&(this.controls.minDistance=.1,this.controls.maxDistance=10*this.bbox.getSize(new D).length()),e}setDistanceCullingFactor(e){this.distanceCullingFactor=e}getDistanceCullingFactor(){return this.distanceCullingFactor}getCameraPositionAndDirection(){let e=this.camera;if(!e)return;let t=e.position,i=new D;return e.getWorldDirection(i),{position:{x:t.x,y:t.y,z:t.z},direction:{x:i.x,y:i.y,z:i.z}}}},m2=Xi(kl(),1),i0t=(e=>(e[e.Browser=0]="Browser",e[e.Browserless=1]="Browserless",e[e.Headless=2]="Headless",e))(i0t||{}),Fve=class{constructor(e,t,i){if(this.scene=this.initScene(),this.selectedObject=void 0,this.loadedModels=[],this.clock=new ho,this.viewerMode=0,this.raycaster=new na,this.savedMaterialsForOpacity=[],this.jobCount=0,this.bbox=new Nt,this.outlineMaterial=new Gn({color:1118481}),this.outlineRoot=new er,this.transparentObjectIds=[],this.applyOptionsAndAddToScene=(e,t,i,n)=>ft(this,null,(function*(){if(se.info(`[Viewer] '${e}' is loaded, adding to scene...`),i.matrix&&16===i.matrix.length){let e=new et;e.elements=i.matrix,t.applyMatrix4(e)}let r;t.traverse((e=>{e.geometry&&e.layers.enableAll(),e instanceof Gs&&(e.visible=!1)})),i.edges&&(r=yield Hn.createOutlines(t,void 0,n));let a=i.modelId||i.src,s=e=>!!this.loadedModels.find((t=>t.modelId===e));if(s(a)){let e=1;for(;s(`${a}_${e}`);)e++;a=`${a}_${e}`,se.warn(`[Viewer] Model '${a}' is loaded more than once!`)}let o={modelId:a,object:t,edges:r};this.addModel(o)})),this.getMeshes=e=>{let t=[];return e instanceof xt?t.push(e):e.traverseVisible((e=>{e instanceof xt&&t.push(e)})),t},this.containerOrCanvas=e,t&&(this.viewerMode=t),this.glContext=i,1===this.viewerMode&&(e instanceof HTMLDivElement||!i))throw new Error("[Viewer] Parameters don't match Browserless viewerMode !");this.increaseJobCount(),this.init(),this.decreaseJobCount(),se.info("[Viewer] Initialized"),this.animate()}init(){this.initRenderer(),this.initCamera(),this.initControls(),this.initLights(),this.initPointerEvents(),this.scene.add(this.outlineRoot)}initScene(){let e=new Si;return e.background=new ct(7112861),e.matrixAutoUpdate=!0,e}isBrowserlessMode(){return 1===this.viewerMode}isBrowserMode(){return 0===this.viewerMode}initRenderer(){let e={antialias:!0,preserveDrawingBuffer:!0},t=this.isBrowserlessMode();t&&Object.assign(e,{canvas:this.containerOrCanvas,context:this.glContext});let i=new Ts(e);if(t){let e=this.containerOrCanvas.width,t=this.containerOrCanvas.height;se.info(`[Viewer] Render target size: ${e} x ${t}`),this.renderTarget=new sr(e,t,{minFilter:Pr,magFilter:Jr,format:Js,type:bc}),i.setRenderTarget(this.renderTarget)}else{let e=this.containerOrCanvas.clientWidth,t=this.containerOrCanvas.clientHeight;this.containerOrCanvas.append(i.domElement),i.setPixelRatio(window.devicePixelRatio),i.setSize(e,t)}i.outputColorSpace=en,i.toneMappingExposure=1,i.useLegacyLights=!1,i.setClearColor(11119017,1),i.shadowMap.enabled=!0,i.shadowMap.type=Tv,this.renderer=i,t||(this.pmremGenerator=new Yh(i),this.pmremGenerator.compileEquirectangularShader(),this.setEnvironmentFromDataArray())}initCamera(){if(!this.scene)return;let e=this.containerOrCanvas.clientWidth||this.containerOrCanvas.width||0,t=this.containerOrCanvas.clientHeight||this.containerOrCanvas.height||0,i=1;e&&t&&(i=e/t),this.camera=new hr(68,i,.05,1e4),this.camera.position.set(10,10,10),this.camera.lookAt(0,0,0),this.scene.add(this.camera)}initControls(){if(!this.renderer)return;let e=this.camera;if(!e)return;let t=new va(e,this.renderer.domElement);t.smoothTime=.05,t.enabled=!0,t.keyTruckSpeed=10,t.keys={left:"KeyD",up:"KeyE",right:"KeyA",bottom:"KeyQ"},t.update(0),this.controls=t,t.addEventListener("update",(()=>{!this.isBrowserMode()&&this.renderer&&this.renderer.render(this.scene,e)}))}initLights(){if(!this.scene)return;let e=16777215,t=new qs(e,.3);t.position.set(-2,2,4);let i=new Cl(3158064),n=new Du(e,14540253,3);n.position.set(0,300,0),this.scene.add(t),this.scene.add(i),this.scene.add(n)}initPointerEvents(){if(!this.renderer||!this.camera||!this.controls)return;let e=!1,t=!1,i=-1,n=-1;this.renderer.domElement.addEventListener("pointerdown",(t=>{i=t.x,n=t.y,e=!1})),this.renderer.domElement.addEventListener("pointermove",(t=>{i>=0&&n>=0&&(Math.abs(t.x-i)>5||Math.abs(t.y-n)>5)&&(e=!0)})),this.renderer.domElement.addEventListener("pointerup",(()=>{t&&setTimeout((()=>{t=!1}),200),i=-1,n=-1})),this.renderer.domElement.addEventListener("dblclick",(i=>{t=!0,e||(this.handleMouseClick(i),this.flyToSelectedObject())}))}animate(){var e;this.isBrowserMode()&&requestAnimationFrame(this.animate.bind(this));let t=this.clock.getDelta();this.controls&&this.controls.update(t),this.scene&&this.camera&&(null==(e=this.renderer)||e.render(this.scene,this.camera))}destroy(){this.camera=void 0,this.scene&&this.scene.clear(),this.requestAnimationFrameHandle&&(cancelAnimationFrame(this.requestAnimationFrameHandle),this.requestAnimationFrameHandle=void 0),this.renderer&&(this.containerOrCanvas.removeChild(this.renderer.domElement),this.renderer.clear(),this.renderer.dispose(),this.renderer=void 0),this.controls&&(this.controls.dispose(),this.controls=void 0),this.renderTarget&&(this.renderTarget.dispose(),this.renderTarget=void 0),this.raycaster=void 0,this.selectedObject=void 0,this.savedMaterialsForOpacity=void 0,this.loadedModels=[]}loadLocalModel(e,t,i){return ft(this,null,(function*(){let n=yield(new ja).loadLocalModel(e,t.src,i);return n?(yield this.applyOptionsAndAddToScene(e,n,t),Promise.resolve()):Promise.reject()}))}loadModel(e,t){return ft(this,null,(function*(){this.increaseJobCount();let i=yield(new ja).loadModel(e.src,e.fileFormat,t);return i?(yield this.applyOptionsAndAddToScene(e.src,i,e),Promise.resolve()):Promise.reject()}))}parseGltf(e,t,i,n){this.increaseJobCount(),(new ja).parseGltf(e,t.src,(e=>{this.applyOptionsAndAddToScene(t.src,e,t),i&&i(e)}),(e=>{n&&n(e)}))}addModel(e){if(!this.scene||!this.renderer)return;this.increaseJobCount();let t=(new Nt).setFromObject(e.object);e.bbox||(e.bbox=t),this.scene.add(e.object),this.loadedModels.push(e),this.computeBoundingBox(),1===this.loadedModels.length&&(this.tryAdjustCameraNearAndFar(),this.goToHomeView()),this.renderer.shadowMap.needsUpdate=!0,se.info(`[Viewer] Added '${e.modelId}' to scene`),this.decreaseJobCount()}addOrRemoveObjectOpacity(e=!0,t=.3,i,n){if(this.savedMaterialsForOpacity||(this.savedMaterialsForOpacity=[]),!this.scene)return;let r=this.scene,a=[];this.loadedModels.forEach((s=>{if(e){this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0&&Hn.revertObjectOpacityById(r,s.object.id,this.savedMaterialsForOpacity);let e=Hn.setObjectOpacityById(r,s.object.id,t,i,n);a.push(...e)}else this.savedMaterialsForOpacity&&Hn.revertObjectOpacityById(r,s.object.id,this.savedMaterialsForOpacity)})),this.savedMaterialsForOpacity=e?a:[]}hasTransparentObject(){return!!(this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0)}getIntersections(e){if(!this.raycaster||!this.camera||!this.scene)return[];let t=new xe;e&&(t=an.getScreenCoordinateByEvent(e,this.containerOrCanvas));let i=an.screen2Ndc(t,this.camera,this.containerOrCanvas);this.raycaster.setFromCamera(i,this.camera);let n=[];return this.loadedModels.forEach((e=>{let t=e.object;t&&t.visible&&n.push(t)})),this.raycaster.intersectObjects(n,!0)||[]}handleMouseClick(e){this.raycaster&&this.raycaster.layers.set(12);let t=this.getIntersections(e).find((e=>{let t=e.object;return t.visible&&t instanceof xt})),i=t&&t.object||void 0;i&&this.selectedObject&&this.selectedObject.id===i.id&&(i=void 0),i?this.selectObject(i):this.clearSelection()}selectObject(e){if(this.selectedObject){let e=this.selectedObject.userData;if(e.originalMaterial){if(this.selectedObject.material){let e=this.selectedObject.material;Array.isArray(e)?e.forEach((e=>e.dispose())):e instanceof yr&&e.dispose()}this.selectedObject.material=e.originalMaterial,delete e.originalMaterial}this.selectedObject=void 0}if(!this.scene||!e)return;let t=es.clonedHighlightMaterials(e);t&&(this.selectedObject=e,this.selectedObject.userData.originalMaterial=this.selectedObject.material,this.selectedObject.material=t)}clearSelection(){this.selectObject()}flyToObjects(e){if(!e||0===e.length||!this.camera)return;let t=new Nt;e.forEach((e=>{let i=Os.getBoundingBox(e);t.union(i)}));let i=new vr;t.getBoundingSphere(i),this.controls.fitToSphere(i,!0)}flyToObject(e){this.flyToObjects([e])}flyToSelectedObject(){this.selectedObject&&this.flyToObject(this.selectedObject)}flyTo(e,t,i){var n;let r=this.camera,a=this.controls;if(!r||!a)return;let s=e=Array.isArray(e)?new D(e[0],e[1],e[2]):e,o=t=Array.isArray(t)?new D(t[0],t[1],t[2]):t;se.info("[Viewer] flyTo: ",St.vectorToString(s)),a.setPosition(s.x,s.y,s.z),a.setTarget(o.x,o.y,o.z),this.isBrowserMode()||null==(n=this.renderer)||n.render(this.scene,r),i&&i()}goToHomeView(){let e=new vr;this.bbox.getBoundingSphere(e),this.controls.fitToSphere(e,!0)}setEnvironmentFromDataArray(e){Ac.createEnvTextureFromDataArray(this.pmremGenerator,e).then((e=>{this.scene.environment=e,this.isBrowserMode()||this.animate()}))}tryAdjustCameraNearAndFar(){let e=this.camera;if(!this.scene||!e)return;let t=this.bbox,i=e.near,n=e.far,r=t.max.x-t.min.x,a=t.max.y-t.min.y,s=t.max.z-t.min.z,o=Math.max(r,a,s),l=o/5,h=5*o;if(i>l||nSt.numberToString(e);se.info(`[Viewer] BBox's longest side is: ${t(o)}`),i>l&&(se.warn(`[Viewer] camera.near(${t(i)}) shouldn't bigger than ${t(l)}, will change it!`),e.near=l),n0?void 0:this.transparentObjectIds,i=this.transparentObjectIds.length>0?this.transparentObjectIds:void 0,n=new ln({color:16777215,transparent:!0,opacity:.1});this.loadedModels.forEach((e=>{Hn.applyMaterialToObjectById(this.scene,e.object.id,n,i,t)})),this.outlineRoot.clear();let r=[];if(e.forEach((e=>{let t=e.modelId,i=this.loadedModels.find((e=>e.modelId===t)),n=null==i?void 0:i.object;n||(se.warn(`[Viewer] The ModelId of ${t} has no corresponding model.`),n=this.scene),n.traverse((t=>{if((0,m2.includes)(e.id,(0,m2.get)(t.userData,"UniqueId"))){let e=this.getMeshes(t);r=r.concat(e)}}))})),r.length>0){r.forEach((e=>{let t=Hn.createOutline(e.geometry,this.outlineMaterial);t.applyMatrix4(e.matrixWorld),this.outlineRoot.add(t),t.updateWorldMatrix(!0,!1)}));let e=r.map((e=>e.id));this.loadedModels.forEach((t=>{Hn.revertAppliedMaterialToObjectById(this.scene,t.object.id,e)})),this.transparentObjectIds=e,this.flyToObjects(r)}else se.warn(`[Viewer] No object found with uniqueIds: ${e.map((e=>e.id))}`);this.isBrowserMode()||this.animate()}increaseJobCount(){++this.jobCount}decreaseJobCount(){--this.jobCount}computeBoundingBox(){let e=new Nt;return this.loadedModels.forEach((t=>{t.bbox&&!t.bbox.isEmpty()&&e.union(t.bbox)})),this.bbox=e,e}getContext(){var e;return null==(e=this.renderer)?void 0:e.getContext()}getCameraDirection(){var e;let t=new D;return null==(e=this.camera)||e.getWorldDirection(t),{x:t.x,y:t.y,z:t.z}}setFov(e){this.camera&&(this.camera.fov=e,this.camera.updateProjectionMatrix())}},Nve=new D,s0t=new dr,Bve=new D,fg=class extends on{constructor(e=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",(function(){this.traverse((function(e){e.element instanceof Element&&null!==e.element.parentNode&&e.element.parentNode.removeChild(e.element)}))}))}copy(e,t){return super.copy(e,t),this.element=e.element.cloneNode(!0),this}},rh=new et,a0t=new et,g2=class{constructor(e={}){let t,i,n,r,a=this,s={camera:{fov:0,style:""},objects:new WeakMap},o=void 0!==e.element?e.element:document.createElement("div");o.style.overflow="hidden",this.domElement=o;let l=document.createElement("div");l.style.transformOrigin="0 0",l.style.pointerEvents="none",o.appendChild(l);let h=document.createElement("div");function c(e){return Math.abs(e)<1e-10?0:e}function u(e){let t=e.elements;return"matrix3d("+c(t[0])+","+c(-t[1])+","+c(t[2])+","+c(t[3])+","+c(t[4])+","+c(-t[5])+","+c(t[6])+","+c(t[7])+","+c(t[8])+","+c(-t[9])+","+c(t[10])+","+c(t[11])+","+c(t[12])+","+c(-t[13])+","+c(t[14])+","+c(t[15])+")"}function d(e){let t=e.elements;return"translate(-50%,-50%)matrix3d("+c(t[0])+","+c(t[1])+","+c(t[2])+","+c(t[3])+","+c(-t[4])+","+c(-t[5])+","+c(-t[6])+","+c(-t[7])+","+c(t[8])+","+c(t[9])+","+c(t[10])+","+c(t[11])+","+c(t[12])+","+c(t[13])+","+c(t[14])+","+c(t[15])+")"}function p(e,t,i,n){if(e.isCSS3DObject){let n=!0===e.visible&&!0===e.layers.test(i.layers);if(e.element.style.display=!0===n?"":"none",!0===n){let n;e.onBeforeRender(a,t,i),e.isCSS3DSprite?(rh.copy(i.matrixWorldInverse),rh.transpose(),0!==e.rotation2D&&rh.multiply(a0t.makeRotationZ(e.rotation2D)),e.matrixWorld.decompose(Nve,s0t,Bve),rh.setPosition(Nve),rh.scale(Bve),rh.elements[3]=0,rh.elements[7]=0,rh.elements[11]=0,rh.elements[15]=1,n=d(rh)):n=d(e.matrixWorld);let r=e.element,o=s.objects.get(e);if(void 0===o||o.style!==n){r.style.transform=n;let t={style:n};s.objects.set(e,t)}r.parentNode!==h&&h.appendChild(r),e.onAfterRender(a,t,i)}}for(let r=0,a=e.children.length;r0))return void(this.visible=!0);t.forEach((e=>e.opacity=0));let i=1/(e/10);this.visible=!0,this.clearFading(),this.renderOrder+=1,this.fadingInInterval=setInterval((()=>{let e=1,n=this.getMaterials();this.materialEquals(t,n)||(t=n),t.length>0&&(e=Math.min(t[0].opacity+i,1),t.forEach((t=>t.opacity=e))),e>=1&&this.clearFading()}),10)}materialEquals(e,t){return Uve.default.isEqualWith(e,t,((e,t)=>{if(!Array.isArray(e)||!Array.isArray(t))return e.id===t.id}))}fadeOut(e=1e3){let t=this.getMaterials(),i=1/(e/10),n=1/(e/10);this.clearFading(),this.scale.set(2,2,2),this.fadingOutInterval=setInterval((()=>{let e=this.scale.x+n;this.scale.set(e,e,e);let r=0;t.length>0&&(r=Math.max(t[0].opacity-i,0),t.forEach((e=>e.opacity=r))),(r<=0||e>=3)&&this.clearFading()}),10)}clearFading(){let e=this.getMaterials();this.fadingInInterval&&(clearInterval(this.fadingInInterval),this.fadingInInterval=void 0,this.visible=!0,e.forEach((e=>e.opacity=1)),this.renderOrder-=1),this.fadingOutInterval&&(clearInterval(this.fadingOutInterval),this.fadingOutInterval=void 0,this.visible=!1,e.forEach((e=>e.opacity=1)),this.scale.set(1,1,1))}getMaterials(){let e=this.thumbnailMesh;e||(e=this.mesh);let t=[];return Array.isArray(e.material)?t.push(...e.material):e.material&&t.push(e.material),t}create(){}createThumbnailMesh(e){return ft(this,null,(function*(){if(!this.thumbnailImages||6!=this.thumbnailImages.length)return;this.thumbnailMesh=new xt(new pa(e,e,e)),this.thumbnailMesh.geometry.scale(1,1,-1);let t=(yield this.loadTexturesAsync(this.thumbnailImages)).map((e=>new ln({map:e,side:pi,transparent:!0})));this.thumbnailMesh&&(this.thumbnailMesh.material=t,this.add(this.thumbnailMesh))}))}loadTextures(e){return e.map((e=>{let t=this.textureLoader.load(e);return t.colorSpace=en,t}))}loadTexturesAsync(e){return ft(this,null,(function*(){let t=e.map((e=>this.textureLoader.loadAsync(e))),i=yield Promise.all(t);return i.forEach((e=>e.colorSpace=en)),i}))}destroyMesh(e){var t;this.remove(e),e.clear(),e.geometry.dispose(),Array.isArray(e.material)?e.material.forEach((e=>{var t;null==(t=e.map)||t.dispose(),e.dispose()})):(null==(t=e.material.map)||t.dispose(),e.material.dispose())}destroy(){this.clearFading(),this.images=[],this.mesh&&(this.mesh instanceof xt?this.destroyMesh(this.mesh):this.mesh.traverse((e=>{e instanceof xt&&this.destroyMesh(e)})),this.mesh=void 0)}},v2=class extends up{constructor(e,t,i=200){if(super(e,t,i),6!==e.length)throw new Error(`[VRCube] Wrong number of images! Expected 6, got ${e.length}`)}create(){return ft(this,null,(function*(){yield this.createThumbnailMesh(this.size),this.thumbnailMesh?this.updateMesh():yield this.createMesh()}))}updateMesh(){let e=this.thumbnailMesh,t=this.thumbnailImages.length;this.images.forEach(((i,n)=>ft(this,null,(function*(){let r=yield this.loadTexturesAsync([i]);e.material[n].map=r[0],t--,0===t&&(this.thumbnailImages=void 0)})))),this.destroyMesh(this.mesh),this.mesh=void 0}createMesh(){return ft(this,null,(function*(){let e=this.mesh;e.geometry=new pa(this.size,this.size,this.size),e.geometry.scale(1,1,-1);let t=(yield this.loadTexturesAsync(this.images)).map((e=>new ln({map:e,side:pi,transparent:!0})));e.material=t,this.add(e),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.thumbnailMesh=void 0,this.thumbnailImages=void 0)}))}},y2=class extends up{constructor(e,t,i=200){if(super(e,t,i),24!==e.length)throw new Error(`[VRCube24Faces] Wrong number of images! Expected 24, got ${e.length}`);this.ratio=1,this.subPlaneWidth0=this.size*(this.ratio/(this.ratio+1)),this.subPlaneWidth1=this.size-this.subPlaneWidth0}create(){return ft(this,null,(function*(){yield this.createThumbnailMesh(this.size+.1),this.thumbnailMesh?this.createMesh():yield this.createMesh()}))}createMesh(){return ft(this,null,(function*(){var e;this.mesh=new er,this.mesh.scale.set(1,1,-1);let t=(yield this.loadTexturesAsync(this.images)).map((e=>new ln({map:e,side:Ji,transparent:!0})));if(24!==t.length)throw new Error(`[VRCube24Faces] Wrong number of materials! Expected 24, got ${t.length}`);let i=this.createPlaneOfAFace(t.slice(0,4));i.rotateOnAxis(new D(0,1,0),-Math.PI/2),i.position.set(this.size/2,0,0);let n=this.createPlaneOfAFace(t.slice(4,8));n.rotateOnAxis(new D(0,1,0),Math.PI/2),n.position.set(-this.size/2,0,0);let r=this.createPlaneOfAFace(t.slice(8,12));r.rotateOnAxis(new D(1,0,0),-Math.PI/2),r.rotateOnAxis(new D(0,0,1),Math.PI),r.rotateOnAxis(new D(1,0,0),Math.PI),r.position.set(0,this.size/2,0);let a=this.createPlaneOfAFace(t.slice(12,16));a.rotateOnAxis(new D(1,0,0),Math.PI/2),a.rotateOnAxis(new D(0,0,1),Math.PI),a.rotateOnAxis(new D(1,0,0),Math.PI),a.position.set(0,-this.size/2,0);let s=this.createPlaneOfAFace(t.slice(16,20));s.rotateOnAxis(new D(0,1,0),Math.PI),s.position.set(0,0,this.size/2),this.createPlaneOfAFace(t.slice(20,24)).position.set(0,0,-this.size/2),this.add(this.mesh),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.remove(this.thumbnailMesh),null==(e=this.thumbnailMesh)||e.clear(),this.thumbnailMesh=void 0)}))}createPlaneOfAFace(e){var t;let i=new er,n=new ui(this.subPlaneWidth0,this.subPlaneWidth0),r=new ui(this.subPlaneWidth1,this.subPlaneWidth0),a=new ui(this.subPlaneWidth0,this.subPlaneWidth1),s=new ui(this.subPlaneWidth1,this.subPlaneWidth1),o=new xt(n,e[0]),l=new xt(r,e[1]),h=new xt(a,e[2]),c=new xt(s,e[3]);return o.position.set(this.subPlaneWidth1/2,this.subPlaneWidth1/2,0),l.position.set(-this.subPlaneWidth0/2,this.subPlaneWidth1/2,0),h.position.set(this.subPlaneWidth1/2,-this.subPlaneWidth0/2,0),c.position.set(-this.subPlaneWidth0/2,-this.subPlaneWidth0/2,0),o.geometry.scale(-1,1,1),l.geometry.scale(-1,1,1),h.geometry.scale(-1,1,1),c.geometry.scale(-1,1,1),i.add(o,l,h,c),null==(t=this.mesh)||t.add(i),i}},x2=class extends up{constructor(e,t,i=100){if(super(e,t,i),1!==e.length)throw new Error(`[VRSphere] Wrong number of images! Expected 1, got ${e.length}`)}create(){return ft(this,null,(function*(){yield this.createThumbnailMesh(this.size+.1),this.thumbnailMesh?this.createMesh():yield this.createMesh()}))}createMesh(){return ft(this,null,(function*(){var e;let t=this.mesh;t.geometry=new Ua(this.size,100,100),t.geometry.scale(-1,1,1);let i=(yield this.loadTexturesAsync(this.images)).map((e=>new ln({map:e,side:pi,transparent:!0})));t.material=i[0],this.add(t),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.remove(this.thumbnailMesh),null==(e=this.thumbnailMesh)||e.clear(),this.thumbnailMesh=void 0)}))}},Hve=class extends tp{constructor(e,t){super(e),this.name="VRViewer",this.timer=Date.now(),this.loadedModels=[],this.minFov=50,this.maxFov=95,this.raycaster=new na,this.autoRotate=!0,this.events=[],this.isMousePressing=!1,this.settings=Wv,this.viewpoints=[],this.activeViewpointId="",this.activePanoramaId="",this.viewpointAssetsMap=new Map,this.loadingPanos=[],this.onResize=()=>{this.viewerContainer&&this.viewerContainer.parentElement&&this.resize(this.viewerContainer.parentElement.clientWidth,this.viewerContainer.parentElement.clientHeight)},this.onMouseWheel=e=>{let t=e.deltaY<0?-5:5;this.updateFov(t)},this.applyOptionsAndAddToScene=(e,t,i,n)=>ft(this,null,(function*(){let r,a=St.getUpdateProgressFunc(n),s=St.getUpdateSubProgressFunc(70,90,n);if(a(0),se.info(`[Viewer] '${e}' is loaded in ${(Date.now()-this.timer)/1e3}s, adding to scene...`),this.timer=Date.now(),i.matrix&&16===i.matrix.length){let e=new et;e.elements=i.matrix,t.applyMatrix4(e)}if(t.matrixAutoUpdate=!1,t.updateMatrix(),t.traverse((e=>{e.matrixAutoUpdate&&(e.matrixAutoUpdate=!1,e.updateMatrix())})),i.merge&&this.merge(t),a(50),i.merge){let e=Date.now();Qf.createMeshBvhAsync([t],{saveOriginalIndex:!0}),se.info(`[Viewer] Creates mesh bvh cost ${(Date.now()-e)/1e3}s`)}a(60),t.traverse((e=>{e.geometry&&e.layers.enableAll(),e instanceof Gs&&(e.visible=!1)})),a(70),i.edges&&(r=yield Hn.createOutlines(t,void 0,s)),a(90);let o={modelId:this.getUniqueModelId(i.modelId||i.src),object:t,edges:r};this.addModel(o),a(100)})),this.viewerCfg=e,this.cameraCfg=t||{eye:[0,0,0],look:[0,0,0]},this.settings=Wv,this.cameraCfg.near&&(this.settings.camera.near=this.cameraCfg.near),this.cameraCfg.far&&(this.settings.camera.far=this.cameraCfg.far),this.setSpinnerVisibility(++this.jobCount>0),this.init(),this.animate(),this.setSpinnerVisibility(--this.jobCount>0)}init(){this.initSpinner(),this.initScene(),this.initRenderer(),this.initCamera(),this.initControls(),this.initLights(),this.initInputManager(),this.initEvents(),this.initOthers()}initScene(){let e=new Si;e.background=new ct(16777215),e.matrixAutoUpdate=!0,this.scene=e}initRenderer(){var e,t;this.renderer=new Ts({antialias:!0,preserveDrawingBuffer:!1}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),this.renderer.useLegacyLights=!1,this.css2dRenderer=new Nu,this.css2dRenderer.setSize(this.width,this.height),this.css2dRenderer.domElement.style.height="0",this.css2dRenderer.domElement.style.width="0",null==(e=this.viewerContainer)||e.appendChild(this.renderer.domElement),null==(t=this.viewerContainer)||t.appendChild(this.css2dRenderer.domElement)}initCamera(){this.scene&&(this.camera=new hr(75,this.width/this.height,this.settings.camera.near,this.settings.camera.far),this.scene.add(this.camera))}initControls(){if(!this.renderer||!this.camera)return;let e=this.camera,t=this.viewerCfg,i=new eC(e,this.renderer.domElement,!0);i.enabled=!0,i.autoRotate=this.autoRotate,i.autoRotateSpeed=t.autoRotateSpeed||-2,i.enablePan=!1,i.enableZoom=!1,i.enableRotate=!0,i.rotateSpeed=.3,i.minPolarAngle=.05*Math.PI,i.maxPolarAngle=.95*Math.PI,i.listenToKeyEvents(document.body),i.update(),this.controls=i,this.controlsHelper=new iP(e,i),this.controls.controlsHelper=this.controlsHelper,this.autoRotate&&this.controlsHelper.delayAutoRotate(),this.controlsHelper.automaticallyAdjustCameraPosition=!1,this.controls.addEventListener("end",(()=>{this.handleDragEnd&&this.handleDragEnd()}));let n=new D(0,0,0),r=new D(10,0,0);this.setCameraPositionAndDirection(n,r)}onKeyDown(e){return t=>{var i,n;let r=e.camera,a=e.controls;!r||!a||(("ArrowLeft"===t.code||"ArrowRight"===t.code||"ArrowUp"===t.code||"ArrowDown"===t.code)&&(null==(i=this.controlsHelper)||i.startToRotate(t)),null==(n=this.controlsHelper)||n.delayAutoRotate())}}initLights(){if(!this.scene)return;let e=new qs(16777215,.3);e.position.set(-2,2,4),this.scene.add(e);let t=new Du(16777215,14540253,2);t.position.set(0,300,0),this.scene.add(t)}initInputManager(){this.viewerContainer&&(this.inputManager=new Ko(this.viewerContainer))}initEvents(){let e=this.renderer,t=this.camera;if(!e||!t)return;let i=!1,n=-1,r=-1;this.addEvent("keydown",this.onKeyDown(this)),this.addEvent("wheel",this.onMouseWheel),this.addEvent("pointerdown",(t=>{var a,s;n=t.x,r=t.y,i=!1,this.isMousePressing=!0,this.autoRotate&&(null==(a=this.controlsHelper)||a.delayAutoRotate()),t.button===XR.LEFT&&(null==(s=t.originalEvent)?void 0:s.target)instanceof HTMLCanvasElement&&(e.domElement.style.cursor="move")})),this.addEvent("pointermove",(e=>{n>=0&&r>=0&&(Math.abs(e.x-n)>5||Math.abs(e.y-r)>5)&&(i=!0)})),this.addEvent("pointerup",(n=>{var r,a,s;this.isMousePressing=!1,this.autoRotate&&(null==(r=this.controlsHelper)||r.delayAutoRotate()),e.domElement.style.cursor="auto";let o=n.button;if(!i&&o===XR.LEFT)if(null!=(a=n.originalEvent)&&a.target&&n.originalEvent.target instanceof HTMLDivElement){let e=Mf.tryFindObjectId(n.originalEvent.target);if(e){let t=null==(s=this.scene)?void 0:s.getObjectById(e);if(t){let e=t.userData.hotpoint;e&&(se.info("[Viewer] Clicked on hotpoint: ",e.hotpointId||e),this.onHotpointClicked&&this.onHotpointClicked(e))}}}else{let e=this.getIntersection(n);if(e){let i=e=>St.vectorToString(e),n=e.point,r=n.clone().sub(t.position).normalize();se.info(`[Viewer] Clicked at: ${i(n)},\n Camera position: ${i(t.position)},\n Target direction: ${i(r)}`)}}}))}initOthers(){!this.controls||!this.renderer||!this.camera||(this.renderer.domElement.style.outlineWidth="0")}animate(){var e,t,i;if(this.requestAnimationFrameHandle=requestAnimationFrame(this.animate.bind(this)),this.minFrameInterval>0){let e=Date.now()-this.lastFrameExecuteTime;if(e0&&!this.isMousePressing&&(t.autoRotateRemainingTime-=e,t.autoRotateRemainingTime<=0&&this.controls&&t.startAutoRotate())}}if(this.viewerContainer&&this.viewerContainer){let{width:e,height:t}=this.viewerContainer.getBoundingClientRect();(this.width!==e||this.height!==t)&&this.resize(e,t)}this.controls&&this.controls.update(),this.scene&&this.camera&&(this.dispatchEvent("BeforeRender"),null==(e=this.renderer)||e.render(this.scene,this.camera),null==(t=this.css2dRenderer)||t.render(this.scene,this.camera),null==(i=this.css3dRenderer)||i.render(this.scene,this.camera),this.dispatchEvent("AfterRender")),this.dispatchEvent("OnAnimate")}clearAllCachedPanoramas(){this.handleCameraUpdateInterval(),this.loadingPanos.forEach((e=>{e.creationPromise&&(e.creationPromise.cancel(),e.creationPromise=void 0)})),this.viewpointAssetsMap.forEach((e=>{var t;let i=e.panoramas;for(let n=i.length-1;n>=0;--n){let e=i[n];e.box.destroy(),null==(t=this.scene)||t.remove(e.box)}})),this.loadingPanos=[],this.viewpointAssetsMap.clear(),this.activePanoramaId="",this.activePanoramaId=""}destroy(){var e;this.events.forEach((e=>{var t;return null==(t=this.inputManager)?void 0:t.removeEventListener(e.type,e.func)})),this.events=[],this.clearAllCachedPanoramas(),this.css2dRenderer&&(null==(e=this.viewerContainer)||e.removeChild(this.css2dRenderer.domElement)),super.destroy()}updateFov(e){var t;let i=this.camera;if(!i)return;let n=this.minFov,r=this.maxFov,a=e=>{let t=i.fov+e;t=Math.min(t,r),t=Math.max(t,n),i.fov!==t&&(i.fov=t,i.updateProjectionMatrix())},s=e/20;for(let o=0;o<20;++o)setTimeout((()=>a(s)),5*o);this.autoRotate&&(null==(t=this.controlsHelper)||t.delayAutoRotate())}setMinAndMaxFov(e,t){let i=this.controls;i&&(this.minFov=e,this.maxFov=t,i.minFov=e,i.maxFov=t)}resize(e,t){super.resize(e,t),t>0&&(this.css2dRenderer&&(this.css2dRenderer.setSize(e,t),this.css2dRenderer.domElement.style.height="0",this.css2dRenderer.domElement.style.width="0"),this.css3dRenderer&&this.css3dRenderer.setSize(e,t))}enableAutoRotate(e){this.controls&&(this.autoRotate=e,this.controls.autoRotate=e)}setAutoRotateSpeed(e=1){this.controls&&(this.controls.autoRotateSpeed=e)}setCameraFov(e=75){let t=this.camera;t&&(t.fov=e,t.updateProjectionMatrix())}addEvent(e,t){var i;null==(i=this.inputManager)||i.addEventListener(e,t),this.events.push({type:e,func:t})}setCameraPositionAndDirection(e,t,i){let n,r,a=this.camera,s=this.controls;if(!a||!s)return;n=t?Array.isArray(t)?new D(t[0],t[1],t[2]):new D(t.x,t.y,t.z):s.target.clone().sub(a.position),n.normalize(),r=Array.isArray(e)?new D(e[0],e[1],e[2]):new D(e.x,e.y,e.z);let o=r.clone().addScaledVector(n,.01);this.fianlCameraPosition=r,this.finalCameraTarget=o;let l=(e,t)=>{a.position.set(e.x,e.y,e.z),s.target.set(t.x,t.y,t.z),s.update()};if(!1===i)return this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),void l(r,o);let h=a.position.clone(),c=s.target.clone(),u=500,d=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval((()=>{let e=Date.now()-d;e>u&&(e=u);let t=(e,t,i)=>{let n=e.x+(t.x-e.x)*i,r=e.y+(t.y-e.y)*i,a=e.z+(t.z-e.z)*i;return new D(n,r,a)},i=t(h,r,e/u),n=t(c,o,e/u);l(i,n),e>=u&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0)}),10)}getCameraPositionAndDirection(){let e=this.camera;if(!e)return;let t=e.position,i=new D;return e.getWorldDirection(i),{position:{x:t.x,y:t.y,z:t.z},direction:{x:i.x,y:i.y,z:i.z}}}getCameraFov(){let e=this.camera;if(e)return e.fov}setViewpoints(e){this.handleCameraUpdateInterval(),this.viewpointAssetsMap.size>0&&(this.viewpointAssetsMap.forEach((e=>{let t=e.panoramas,i=e.css2dObjects;t.forEach((e=>{var t;e.box.destroy(),null==(t=this.scene)||t.remove(e.box)})),i.forEach((e=>{var t;null==(t=this.scene)||t.remove(e)}))})),this.viewpointAssetsMap.clear()),this.loadingPanos.forEach((e=>{e.creationPromise&&(e.creationPromise.cancel(),e.creationPromise=void 0)})),this.loadingPanos=[],this.activeViewpointId="",this.activePanoramaId="",this.viewpoints=e}loadModel(e,t){return ft(this,null,(function*(){var i,n;this.timer=Date.now(),this.increaseJobCount();let r=e.modelId||e.src,a=this.translate("ProgressBar.Loading"),s=e=>{var i;null==(i=this.loadingProgressBar)||i.updateProgress(r,a,e),t&&t(new ProgressEvent("LoadProgress",{loaded:e,total:100}))},o=(e,i,n)=>{var s;let o=100*e.loaded/e.total;o=o*(n-i)/100+i,null==(s=this.loadingProgressBar)||s.updateProgress(r,a,o),t&&t(new ProgressEvent("LoadProgress",{loaded:o,total:100}))},l=e=>o(e,0,50),h=e=>o(e,50,99);null==(i=this.loadingProgressBar)||i.addProgressItem(r),s(0);try{let t=yield(new ja).loadModel(e.src,e.fileFormat,l);if(t)return yield this.applyOptionsAndAddToScene(e.src,t,e,h),Promise.resolve()}catch(t){let n=`Error loading ${e.src}`;return se.error(n,t),Promise.reject(n)}finally{this.decreaseJobCount(),s(100),null==(n=this.loadingProgressBar)||n.delayRemoveProgressItem(r)}return Promise.reject()}))}setModelVisibility(e,t){let i=this.loadedModels.find((t=>t.modelId===e)),n=i&&i.object;if(!n)throw new Error(`Failed to find model by modelId '${e}'!`);n.visible=t,this.enableRender()}addModel(e){if(!this.scene||!this.renderer)return;this.increaseJobCount();let t=(new Nt).setFromObject(e.object);e.bbox||(e.bbox=t),this.scene.add(e.object),this.loadedModels.push(e),se.info(`[Viewer] Added '${e.modelId}' to scene in ${(Date.now()-this.timer)/1e3}s`),this.renderer.shadowMap.needsUpdate=!0,this.enableRender(),this.dispatchEvent("ModelLoaded",{modelId:e.modelId,bbox:t}),this.decreaseJobCount()}addPanorama(e,t){let i=this.viewpoints.find((t=>t.id===e));if(!i)throw new Error(`[Viewer] Failed to find viewpoint by id '${e}'`);i.panoramas||(i.panoramas=[]),i.panoramas.push(t)}findPanorama(e,t){let i=this.viewpoints.find((t=>t.id===e));if(i&&i.panoramas)return i.panoramas.find((e=>e.id===t))}setHotpointsVisibility(e,t="",i=[]){if(!this.viewpoints)return;let n=t=>{var n;let r=this.viewpointAssetsMap.get(t.id),a=(null==r?void 0:r.css2dObjects)||[];null==(n=t.hotpoints)||n.forEach((n=>{if(i&&i.length>0){if(-1===i.findIndex((e=>e===n.hotpointId)))return;if(n.visible=e,this.activeViewpointId===t.id){let t=a.find((e=>e.userData.hotpoint.hotpointId===n.hotpointId));t&&(t.visible=e)}}else n.visible=e,this.activeViewpointId===t.id&&a.forEach((t=>t.visible=e))}))};if(t){let e=this.viewpoints.find((e=>e.id===t));e&&n(e)}else this.viewpoints.forEach((e=>n(e)))}addHotpoints(e){if(!this.activeViewpointId||!e)return;let t=this.viewpoints.find((e=>e.id===this.activeViewpointId)),i=this.viewpointAssetsMap.get(this.activeViewpointId);!t||!i||(t.hotpoints||(t.hotpoints=[]),e.forEach((e=>{var n,r;if(-1!==(null==(n=t.hotpoints)?void 0:n.findIndex((t=>t.hotpointId===e.hotpointId))))return void se.warn(`[Viewer] Duplicated hotpointId: ${e.hotpointId}`);let a=t.position||[0,0,0],s=e.anchorPosition,o=Mf.createHotpoint(e.html),l=new D(s[0],s[1],s[2]),h=new D(a[0],a[1],a[2]);this.relocateAnchorIfTooCloseToCamera(o,l,h),o.visible=!1!==e.visible,o.userData.hotpoint=e,i.css2dObjects.push(o),null==(r=this.scene)||r.add(o),t.hotpoints.push(e)})))}removeHotpoints(e){if(!this.activeViewpointId||!e)return;let t=this.viewpoints.find((e=>e.id===this.activeViewpointId)),i=this.viewpointAssetsMap.get(this.activeViewpointId);!t||!i||e.forEach((e=>{var n,r;if(t.hotpoints)for(let i=t.hotpoints.length-1;i>=0;--i)e===t.hotpoints[i].hotpointId&&t.hotpoints.splice(i,1);for(let t=i.css2dObjects.length-1;t>=0;--t){let a=i.css2dObjects[t];e===(null==(n=a.userData.hotpoint)?void 0:n.hotpointId)&&(i.css2dObjects.splice(t,1),null==(r=this.scene)||r.remove(a))}}))}activeViewpointById(e,t,i,n){this.activatePanoramaById(e,"",!0,t,i,n)}activatePanoramaById(e,t,i=!0,n,r,a){if(e===this.activeViewpointId&&t===this.activePanoramaId)return;let s=this.viewpoints.find((t=>t.id===e));s&&this.activatePanorama(s,t,i,n,r,a)}removeCachedPanoramas(e={}){this.viewpointAssetsMap.forEach(((t,i)=>{var n;let r=t.panoramas;for(let a=r.length-1;a>=0;--a){let t=r[a];if(i===this.activeViewpointId&&t.id===this.activePanoramaId||e[i]&&e[i].includes(t.id))return;t.box.destroy(),null==(n=this.scene)||n.remove(t.box),r.splice(a,1)}}))}unlimitControlsAndShowAssets(e=!1){if(this.controls){let e=this.controls;e.enablePan=!0,e.enableZoom=!0}this.viewpointAssetsMap.forEach((t=>{t.panoramas.forEach((e=>{e.box.visible=!0})),e&&t.css2dObjects.forEach((e=>{e.visible=!0}))}))}relocateAnchorIfTooCloseToCamera(e,t,i){let n=this.camera;if(!n)return se.error("[Viewer] Camera is not initialized"),void e.position.set(t.x,t.y,t.z);let r,a=Math.abs(t.distanceTo(i));if(a{let n=e.panoramas.find((e=>e.id===t)),r=null==n?void 0:n.box;r&&(i?this.fadeIn(r):this.fadeOut(r))},c=(e,t)=>{e.css2dObjects.forEach((e=>{t?!1!==e.userData.hotpoint.visible&&(e.visible=t):e.visible=t}))},u=()=>{var t;let r=new D(0,0,0),a=new D(1,0,0),s=null==(t=this.getCameraPositionAndDirection())?void 0:t.direction;s&&a.set(s.x,s.y,s.z);let o=e.position;if(o&&3===o.length&&r.set(o[0],o[1],o[2]),i){let t=e.initialDirection;t&&3===t.length&&a.set(t[0],t[1],t[2])}this.setCameraPositionAndDirection(r,a,n)};!t&&(null==(s=e.panoramas)?void 0:s.length)>0&&(t=e.panoramas[0].id||""),this.handleCameraUpdateInterval();let d=this.viewpointAssetsMap.get(this.activeViewpointId),p=this.viewpointAssetsMap.get(e.id);if(this.activeViewpointId&&d&&(this.activeViewpointId!==e.id&&c(d,!1),h(d,this.activePanoramaId,!1)),p&&p.panoramas.find((e=>e.id===t)))return h(p,t,!0),this.activeViewpointId!==e.id&&c(p,!0),this.activeViewpointId!==e.id&&u(),this.activeViewpointId=e.id,this.activePanoramaId=t,void(r&&r(e));this.activeViewpointId=e.id,this.activePanoramaId=t;try{if(this.loadingPanos.some((i=>i.viewpointId===e.id&&i.panoramaId===t)))return void se.warn(`[Viewer] Panorama with viewpointId=${e.id} and panoramaId=${t} is being created`);let i=new TA(this.createBoxByImageOrImages(e,t));this.loadingPanos.push({viewpointId:e.id,panoramaId:t,creationPromise:i});let n=yield i.promise;this.loadingPanos=this.loadingPanos.filter((i=>i.viewpointId!==e.id||i.panoramaId!==t));let a=e.position;a&&3===a.length&&n.position.set(a[0],a[1],a[2]),this.activeViewpointId===e.id&&this.activePanoramaId===t?(this.fadeIn(n),null==(o=this.scene)||o.add(n),u()):(n.visible=!1,null==(l=this.scene)||l.add(n));let s={id:t,box:n},h=this.viewpointAssetsMap.get(e.id);if(h)h.panoramas.push(s),c(h,!0);else{let i=[];e.hotpoints&&e.hotpoints.forEach((r=>{let a=r.anchorPosition,s=Mf.createHotpoint(r.html);s.visible=!1!==r.visible,s.userData.hotpoint=r;let o=new D(a[0],a[1],a[2]);this.relocateAnchorIfTooCloseToCamera(s,o,n.position),(this.activeViewpointId!==e.id||this.activePanoramaId!==t)&&(s.visible=!1),i.push(s)}));let r={panoramas:[s],css2dObjects:i};this.viewpointAssetsMap.set(e.id,r),i.forEach((e=>{var t;return null==(t=this.scene)?void 0:t.add(e)}))}r&&r(e)}catch(e){"cancel"!==e.type&&a&&a(e)}}))}createBoxByImageOrImages(e,t){var i;let n=e.imageOrImages,r=e.thumbnailImages;if((null==(i=e.panoramas)?void 0:i.length)>0){let i=this.findPanorama(e.id,t);i||(i=e.panoramas[0],se.warn(`[Viewer] Failed to find panorama by id '${t}', will use the first one`)),n=i.images,r=i.thumbnails}if(!n)throw new Error("[Viewer] Invalid images!");if(Array.isArray(n)||(n=[n]),1===n.length)return this.createBoxByImage(n,r);if(6===n.length)return this.createBoxBy6Images(n,r);if(24===n.length)return this.createBoxBy24Images(n,r);throw new Error(`[Viewer] Wrong number of images! Expected 1/6/24, got ${n.length}`)}createBoxByImage(e,t){return ft(this,null,(function*(){let i=new x2(e,t);return yield i.create(),i}))}createBoxBy6Images(e,t){return ft(this,null,(function*(){if(6!==e.length)throw new Error(`[VRCube] Wrong number of images! Expected 6, got ${e.length}`);let i=new v2(e,t);return yield i.create(),i}))}createBoxBy24Images(e,t){return ft(this,null,(function*(){if(24!==e.length)throw new Error(`[VRCube] Wrong number of images! Expected 24, got ${e.length}`);let i=new y2(e,t);return yield i.create(),i}))}getIntersection(e){if(!this.camera||!this.scene)return;let t=this.viewpointAssetsMap.get(this.activeViewpointId);if(!t)return;let i=t.panoramas.find((e=>e.id===this.activePanoramaId));if(!i)return;let n=i.box,r=this.viewerContainer,a=new xe;e&&(a=an.getScreenCoordinateByEvent(e,r));let s=an.screen2Ndc(a,this.camera,r);this.raycaster.setFromCamera(s,this.camera);let o=[n],l=this.raycaster.intersectObjects(o,!0)||[];return l.length>0?l.find((e=>{let t=e.object;return t.visible&&t instanceof xt})):void 0}fadeIn(e,t=500){e.fadeIn(t)}fadeOut(e,t=1e3){e.fadeOut(t)}handleCameraUpdateInterval(){if(this.cameraUpdateInterval){clearInterval(this.cameraUpdateInterval);let e=this.fianlCameraPosition,t=this.finalCameraTarget;if(e&&t&&this.controls&&this.camera){this.camera.position.set(e.x,e.y,e.z);let i=this.controls;i.target.set(t.x,t.y,t.z),i.update()}this.cameraUpdateInterval=void 0}this.fianlCameraPosition=void 0,this.finalCameraTarget=void 0}getHitResult(e){let t={location:null};if(!this.camera)return t;let i=this.getIntersection(e);return t.location=i?{x:i.point.x,y:i.point.y,z:i.point.z}:null,t}lookToPosition(e){var t;if(!this.camera)return;this.handleCameraUpdateInterval();let i=new D(e[0],e[1],e[2]).clone().sub(this.camera.position);null==(t=this.controlsHelper)||t.lookTo(i)}merge(e){this.increaseJobCount();try{let t=[];e.traverse((e=>{e.geometry&&e.material&&t.push(e)})),Rr.deepMerge(t,e)}finally{this.decreaseJobCount()}}},b2=class extends on{constructor(e=!0,t=!1){super(),this.name="COORDINATE_AXES",this.AXIS_LENGTH=1,this.AXIS_COLOR_X=16711680,this.AXIS_COLOR_Y=65280,this.AXIS_COLOR_Z=255;let i=new D(0,0,0),n=new D(1,0,0),r=new D(0,1,0),a=new Sc(n,i,this.AXIS_LENGTH,this.AXIS_COLOR_X,0,0),s=new Sc(r,i,this.AXIS_LENGTH,this.AXIS_COLOR_Y,0,0);if(this.add(a,s),!t){let e=new D(0,0,1),t=new Sc(e,i,this.AXIS_LENGTH,this.AXIS_COLOR_Z,0,0);this.add(t)}e&&this.addTexts(t)}addTexts(e=!1){let t=this.createText("X","#ff0000"),i=this.createText("Y","#00ff00");if(t.position.set(this.AXIS_LENGTH+.1,0,0),i.position.set(.1,this.AXIS_LENGTH,.1),this.add(t,i),!e){let e=this.createText("Z","#0000ff");e.position.set(0,0,this.AXIS_LENGTH+.1),this.add(e)}}createText(e,t,i=14){let n=document.createElement("div");n.innerHTML=e;let r=n.style;return r.color=t,r.width=`${i}px`,r.height=`${i}px`,r.textAlign="center",r.top="0px",r.left="0px",new qv(n)}},tV=class extends or{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||tV.DEFAULT_ID}),this.ignoreZAxis=!1,this.cfg=t||{},this.ignoreZAxis=!(null==t||!t.ignoreZAxis),this.hostCamera=e.camera,this.init()}init(){this.initRenderer(),this.initScene(),this.animate(),this.viewer.addEventListener("CameraChanged",(()=>{this.hostCamera=this.viewer.camera}))}initRenderer(){var e;let t,i=100,n=100;if(this.cfg.containerId&&(t=document.getElementById(this.cfg.containerId),t&&(i=t.clientWidth,n=t.clientHeight)),!t){let i="axisGizmo";t=document.createElement("div"),t.id=i,null==(e=this.viewer.widgetContainer)||e.appendChild(t)}this.renderer=new Ts({antialias:!0,alpha:!0}),this.renderer.setSize(i,n),t.appendChild(this.renderer.domElement),this.css2dRenderer=new Nu,this.css2dRenderer.setSize(i,n),this.css2dRenderer.domElement.style.height="0",this.css2dRenderer.domElement.style.width="0",t.appendChild(this.css2dRenderer.domElement)}initScene(){this.scene=new Si,this.camera=new Nr(-1,1,1,-1,.1,100),this.scene.add(this.camera),this.coordinateAxes=new b2(!0,this.ignoreZAxis),this.scene.add(this.coordinateAxes)}setHostCamera(e){this.hostCamera=e}render(){var e;!this.scene||!this.camera||(this.renderer&&(this.update(),this.renderer.render(this.scene,this.camera)),null==(e=this.css2dRenderer)||e.render(this.scene,this.camera))}animate(){requestAnimationFrame(this.animate.bind(this)),this.render()}update(){if(!this.hostCamera)return;let e=this.hostCamera;if(e){let t=new D;e.getWorldDirection(t);let i=e.up;this.updateCameraDirection(t,i)}}updateCameraDirection(e,t){if(!this.camera||!e)return;e.normalize();let i=.3;this.camera.position.set(2*-e.x+i,2*-e.y+i,2*-e.z+i),this.camera.lookAt(i,i,i),this.camera.up=t}destroy(){var e,t;super.destroy(),this.scene&&this.camera&&this.coordinateAxes&&(this.scene.clear(),this.scene=void 0,this.css2dRenderer&&(null==(e=this.container)||e.removeChild(this.css2dRenderer.domElement),this.css2dRenderer=void 0),this.renderer&&(null==(t=this.container)||t.removeChild(this.renderer.domElement),this.renderer.dispose(),this.renderer.forceContextLoss(),this.renderer=void 0),this.hostCamera=void 0,this.camera=void 0,this.coordinateAxes=void 0)}},eV=tV;eV.DEFAULT_ID="AxisGizmoPlugin";var rV=Xi(kl(),1),o0t="bottomBar",l0t={"gemini-viewer-threejs-statistics":{icon:{default:"icon-info",active:"icon-info-filled",iconFont:"gemini-viewer-icon"},mutexIds:["gemini-viewer-threejs-cameraInfo","gemini-viewer-threejs-tips"],onActive:e=>{let t=document.createElement("span");if(!e.viewer.scene)return void(t.textContent="Failed!");t.textContent="Comupting...";let i={components:{},points:0,faces:0,materials:{},lights:{}},n=["SKYBOX","GROUND_GRID","GROUND_GRASS","BIM_VIEWER_BOX_HELPER"];e.viewer.scene.traverse((e=>{(e instanceof xt||e instanceof fr||e instanceof ii)&&!n.includes(e.name)?((e,t)=>{if(t.components[e.type]?t.components[e.type]++:t.components[e.type]=1,e.geometry){let i=e.geometry;if(e instanceof xt)if(i.index&&i.index.count){let n=Math.round(i.index.count/3);e instanceof Oi&&(n*=e.count),t.faces+=n}else if(i.groups.length>0)for(let e=0;e{t.materials[e]?t.materials[e]++:t.materials[e]=1},n=e.material;n instanceof yr?i(n.id):Array.isArray(n)&&n.forEach((e=>i(e.id)))})(e,i):e instanceof Gs&&(i.lights[e.type]?i.lights[e.type]++:i.lights[e.type]=1)}));let r=(e,i)=>{t.innerHTML+=`

${e}:${i}

`};t.innerHTML="";let a=` (${(e=>{var t;let i=null==(t=e.renderer)?void 0:t.domElement;return null==i?void 0:i.dataset.engine})(e.viewer)})`;r("Version",`${JE}${a}`),r("Components",JSON.stringify(i.components)),r("Points",i.points),r("Faces",i.faces),r("Materials",Object.keys(i.materials).length),r("Lights",JSON.stringify(i.lights)),"DxfViewer"===e.viewer.name&&r("Entities",e.viewer.getEntitiesCount()),e.tooltip.setContent(t),e.tooltip.show()},onDeactive:e=>{e.tooltip.hide()},onUpdate:e=>{let t=e.viewer.renderer,i=document.createElement("span"),n=(e,t)=>{i.innerHTML+=`

${e}:${t}

`};i.innerHTML="

-- Renderer Info --

";let r=null==t?void 0:t.info;n("Drawcalls",JSON.stringify(null==r?void 0:r.render.calls)),n("Points",JSON.stringify(null==r?void 0:r.render.points)),n("Lines",JSON.stringify(null==r?void 0:r.render.lines)),n("Triangles",JSON.stringify(null==r?void 0:r.render.triangles)),n("Geometries",JSON.stringify(null==r?void 0:r.memory.geometries)),n("Textures",JSON.stringify(null==r?void 0:r.memory.textures)),e.tooltip.updateChildContent(i)}},"gemini-viewer-threejs-cameraInfo":{icon:{default:"icon-view",active:"icon-view-filled",iconFont:"gemini-viewer-icon"},mutexIds:["gemini-viewer-threejs-statistics","gemini-viewer-threejs-tips"],onActive:e=>{let t=()=>{if(!e.viewer||!e.viewer.camera||!e.viewer.controls)return;let i=e.viewer.camera,n=e.viewer.controls,r=e=>St.numberToString(e),a=e=>St.vectorToString(e),s=i.position,o=n instanceof va?n.getTarget(new D):n.target;if(s){let t=document.createElement("span");t.innerHTML=`\n

Camera position:${a(s)}

\n

Camera target:${a(o)}

`,i instanceof Nr&&(t.innerHTML+=`\n

top: ${r(i.top)}, bottom: ${r(i.bottom)}, left: ${r(i.left)}, right: ${r(i.right)}

\n

zoom: ${r(i.zoom)}

`),e.tooltip.setContent(t)}e.active||window.removeEventListener("mouseup",t)};if(t(),window.addEventListener("mouseup",t),"BimViewer"===e.viewer.name){let i=e.viewer.controls;null==i||i.addEventListener("update",t)}else e.viewer.controls.addEventListener("change",t);e.tooltip.show()},onDeactive:e=>{e.tooltip.hide()}},"gemini-viewer-threejs-tips":{icon:{default:"icon-more",iconFont:"gemini-viewer-icon"},mutexIds:["gemini-viewer-threejs-cameraInfo","gemini-viewer-threejs-cameraInfo"],onActive:e=>{let t=document.createElement("span");"BimViewer"===e.viewer.name?t.innerHTML="\n

W: Move forward

\n

A: Move backward

\n

S: Move left

\n

D: Move right

\n

Q: Rise up

\n

E: Lower down

\n

\u2191: Rotate up

\n

\u2193: Rotate down

\n

\u2190: Rotate to left

\n

\u2192: Rotate to right

\n ":"DxfViewer"===e.viewer.name?t.innerHTML="\n

\u2191: Move up

\n

\u2193: Move down

\n

\u2190: Move to left

\n

\u2192: Move to right

\n ":"VRViewer"===e.viewer.name?t.innerHTML="\n

\u2191: Rotate up

\n

\u2193: Rotate down

\n

\u2190: Rotate to left

\n

\u2192: Rotate to right

\n ":t.innerHTML="\n

Nothing to show

\n ",e.tooltip.setContent(t),e.tooltip.show()},onDeactive:e=>{e.tooltip.hide()}}},Vve=class extends or{constructor(e){super(e,{id:"BottomBarPlugin"}),this.itemList=new Map,this.init()}update(){this.itemList.forEach((e=>{e.update()}))}init(){var e;let t=document.createElement("div");t.id=o0t,t.classList.add("bottom-bar"),(0,rV.forEach)(l0t,((e,i)=>{let n=this.createItem(this.viewer,i,e);t.appendChild(n.element)})),this.element=t,null==(e=this.viewer.widgetContainer)||e.appendChild(this.element),this.viewer.addEventListener("AfterRender",(()=>{this.update()}))}createItem(e,t,i){let n=new nV(e,this,t,i);return this.itemList.set(t,n),n}},nV=class{constructor(e,t,i,n){this.viewer=e,this.bottomBar=t,this.menuId=i,this.cfg=n,this.eventBus=Py(),this.active=!1,this.itemconfig=n,this.element=this.createButton(this.menuId,n),this.tooltip=new Xl(i+"-tooltip",null,{parentNode:e.widgetContainer}),this.eventBus.on("activeChange",(e=>{e?(this.element.classList.add("active"),(0,rV.forEach)(n.mutexIds,(e=>{var t;let i=null==(t=this.bottomBar)?void 0:t.itemList.get(e);i&&i.active&&i.setActive(!1)})),n.onActive&&n.onActive(this)):(this.element.classList.remove("active"),n.onDeactive&&n.onDeactive(this)),this.element instanceof HTMLElement&&MA(this.element.classList,n.icon,this.active)}))}createButton(e,t){let i=document.createElement("i");i.id=e;let{default:n="icon-new",iconFont:r=jv}=t.icon;return i.classList.add("icon"),i.classList.add(r),i.classList.add(n),i.onclick=()=>{this.active=!this.active,t.onClick&&t.onClick(this),this.eventBus.emit("activeChange",this.active)},i}setActive(e){this.active=e,this.eventBus.emit("activeChange",this.active)}update(){this.active&&this.itemconfig.onUpdate&&this.itemconfig.onUpdate(this)}},pg=Xi(kl(),1),B_=Xi(kl(),1),us=Xi(kl(),1),E2=(e=>(e[e.ClickEvent=1]="ClickEvent",e[e.Popup=2]="Popup",e[e.SubMenu=3]="SubMenu",e[e.Switch=4]="Switch",e))(E2||{}),_2=(e=>(e.HomeView="HomeView",e.OrthoMode="OrthoMode",e.Measure="Measure",e.MeasureDistance="MeasureDistance",e.MeasureArea="MeasureArea",e.MeasureAngle="MeasureAngle",e.MeasureCoordinate="MeasureCoordinate",e.MeasureClear="MeasureClear",e.MarkupVisibility="MarkupVisibility",e.Markup="Markup",e.MarkupArrow="Arrow",e.MarkupRect="Rect",e.MarkupCloudRect="CloudRect",e.MarkupPolyLine="PolyLine",e.MarkupCloudLine="CloudLine",e.MarkupEllipse="Ellipse",e.MarkupCircle="Circle",e.MarkupDot="Dot",e.MarkupText="Text",e.MarkupX="X",e.MarkupStrokeStyle="StrokeStyle",e.MarkupLineWidth="LineWidth",e.MarkupLineWidth2="LineWidth2",e.MarkupLineWidth5="LineWidth5",e.MarkupLineWidth10="LineWidth10",e.MarkupFontSize="FontSize",e.MarkupFontSize14="FontSize14",e.MarkupFontSize18="FontSize18",e.MarkupFontSize24="FontSize24",e.MarkupClear="MarkupClear",e.MarkupQuit="MarkupQuit",e.Section="Section",e.SectionBox="SectionBox",e.SectionPlane="SectionPlane",e.SectionAxis="SectionAxis",e.BimTree="BimTree",e.Viewpoint="Viewpoint",e.Annotation="Annotation",e.Property="Property",e.Settings="Settings",e.Compared="Compared",e.QuitCompare="QuitCompare",e.Fullscreen="FullScreen",e.SceneClear="SceneClear",e.Layers="Layers",e.ZoomToRectangle="ZoomToRectangle",e.Screenshot="GetScreenshot",e))(_2||{}),T2=[["HomeView","OrthoMode","FullScreen","ZoomToRectangle","GetScreenshot"],["Measure","Markup","MarkupVisibility","Section"],["BimTree","Viewpoint","Annotation","Property","Compared","QuitCompare","Layers"],["Settings"]],hp=class{constructor(e,t,i=[]){this.visible=!0,this.menuList=new Map,this.keydown=e=>{var t,i;if(this.visible&&"Escape"===e.code){if(null!=(t=this.viewer.measurePlugin)&&t.isMeasuring()||null!=(i=this.viewer.getMarkupManager())&&i.isMarkupActive())return;this.clearActive()}},this.viewer=e,this.menuCfg=t,this.groupCfg=i,this.init(),window.addEventListener("keydown",this.keydown,!1)}init(){var e;let t=document.createElement("div");t.classList.add("toolbar");let i=this.menuCfg;this.groupCfg.forEach(((e,n)=>{let r=document.createElement("div");r.classList.add("toolbar-group");let a=document.createElement("div");a.classList.add("toolbar-group-division"),e.forEach((e=>{let t=(0,us.get)(i,e);if(t&&!1!==t.visible){let i=this.createToolbarMenu(this.viewer,e,t);r.appendChild(i.element)}})),r.hasChildNodes()&&(n&&t.appendChild(a),t.appendChild(r))})),this.element=t,null==(e=this.viewer.widgetContainer)||e.appendChild(t),t.oncontextmenu=e=>{e.preventDefault()}}clearActive(){if(this.activateMenuId){let e=this.menuList.get(this.activateMenuId);null==e||e.setActive(!1),this.activateMenuId=void 0}}setActive(e,t){let i=this.menuList.get(e);null==i||i.setActive(t),this.activateMenuId=t?e:void 0}createToolbarMenu(e,t,i,n){let r=new iV(e,this,t,i,n);if(this.menuList.set(t,r),i.children){let t=document.createElement("div");t.classList.add("toolbar-sub-menu");let n=document.createElement("div");n.classList.add("toolbar-sub-menu-list"),t.appendChild(n),(0,us.forIn)(i.children,((t,i)=>{if(t&&!1!==t.visible){let a=this.createToolbarMenu(e,i,t,r);n.appendChild(a.element)}})),r.element.appendChild(t)}return r}updateMenu(e,t){(0,us.assign)(this.menuCfg[e],t),this.refresh()}updateMenus(e){(0,us.forEach)(e,(({menuId:e,config:t})=>{(0,us.assign)(this.menuCfg[e],t)})),this.refresh()}addMenu(e,t,i){if((0,us.keys)(this.menuCfg).includes(e))se.error("[Toolbar]",e,"exists.");else{if((0,us.assign)(this.menuCfg,{[e]:t}),i){let[t,n]=i;if(t>this.groupCfg.length-1)this.groupCfg=(0,us.concat)(this.groupCfg,[[e]]);else{let i=this.groupCfg[t];this.groupCfg[t]=n>i.length-1?(0,us.concat)(i,e):(0,us.concat)((0,us.take)(i,n),e,(0,us.takeRight)(i,i.length-n))}}else this.groupCfg=(0,us.concat)(this.groupCfg,[[e]]);this.refresh()}}refresh(){this.element&&this.element.remove(),this.element=void 0,this.menuList.clear(),this.init()}show(){this.element&&(this.element.style.display=""),this.visible=!0}hide(){this.element&&(this.element.style.display="none"),this.visible=!1}destroy(){this.element&&this.element.remove(),this.element=void 0,this.menuList.clear(),window.removeEventListener("keydown",this.keydown,!1)}},iV=class{constructor(e,t,i,n,r){this.eventBus=Py(),this.toolbar=t,this.menuId=i,this.active=n.defaultActive||!1,this.element=n.customElement&&n.customElement(e,this.menuId,n)||this.createButton(e,this.menuId,n),this.eventBus.on("activeChange",(t=>{t?(this.element.classList.add("active"),(0,us.forEach)(n.mutexIds,(e=>{var t;let i=null==(t=this.toolbar)?void 0:t.menuList.get(e);i&&i.active&&i.setActive(!1)})),n.onActive&&n.onActive(e)):(this.element.classList.remove("active"),n.onDeactive&&n.onDeactive(e)),this.element.firstChild instanceof HTMLElement&&MA(this.element.firstChild.classList,n.icon,this.active),r&&r.setActive(t)})),Fn.isMobile?(this.element.ontouchstart=t=>{switch(this.element.classList.toggle("toolbar-parent-menu-active"),this.element.classList.toggle("toolbar-menu-active"),t.stopPropagation(),n.type){case 1:n.onClick&&n.onClick(e,this.toolbar,t);break;case 4:n.onClick&&n.onClick(e,this.toolbar,t),this.active=!this.active,this.toolbar.activateMenuId=this.menuId,this.eventBus.emit("activeChange",this.active)}},this.element.addEventListener("touchend",(()=>{r&&r.element.classList.remove("toolbar-parent-menu-active")}))):(this.element.onclick=t=>{switch(t.stopPropagation(),n.type){case 1:n.onClick&&n.onClick(e,this.toolbar,t);break;case 4:n.onClick&&n.onClick(e,this.toolbar,t),this.active=!this.active,this.toolbar.activateMenuId=this.menuId,this.eventBus.emit("activeChange",this.active)}r&&r.element.classList.remove("toolbar-parent-menu-active")},this.element.addEventListener("mouseover",(()=>{this.element.classList.toggle("toolbar-parent-menu-active"),this.element.classList.add("toolbar-menu-active")})),this.element.addEventListener("mouseout",(()=>{this.element.classList.contains("toolbar-parent-menu-active")&&this.element.classList.remove("toolbar-parent-menu-active"),this.element.classList.remove("toolbar-menu-active")})))}createButton(e,t,i){let n=document.createElement("div");n.id=t,n.classList.add("toolbar-menu"),i.defaultActive&&n.classList.add("active"),i.children&&n.classList.add("toolbar-parent-menu");let{default:r="icon-new",iconFont:a=jv}=i.icon;return n.innerHTML=`
`,n.title=Qu(i.menuName),n.innerHTML+=`${n.title}`,n}setActive(e){this.active=e,e?this.element.classList.add("toolbar-menu-active"):this.element.classList.remove("toolbar-menu-active"),this.eventBus.emit("activeChange",this.active)}},zve={Arrow:{menuName:"Toolbar.markupArrow",icon:{default:"icon-arrow"},type:4,onActive:e=>{e.activateMarkup("ArrowMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},Rect:{defaultActive:!1,menuName:"Toolbar.markupRect",icon:{default:"icon-rectangle"},type:4,onActive:e=>{e.activateMarkup("RectMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Arrow","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},CloudRect:{defaultActive:!0,menuName:"Toolbar.markupCloudRect",icon:{default:"icon-cloud"},type:4,onActive:e=>{e.activateMarkup("CloudRectWithTextMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","Arrow","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},PolyLine:{menuName:"Toolbar.markupPolyLine",icon:{default:"icon-polyline"},type:4,onActive:e=>{e.activateMarkup("PolylineMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","Arrow","CloudRect","CloudLine","Ellipse","Circle","Dot","Text","X"]},CloudLine:{menuName:"Toolbar.markupCloudLine",icon:{default:"icon-cloud-segment"},type:4,onActive:e=>{e.activateMarkup("CloudLineMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","Arrow","Ellipse","Circle","Dot","Text","X"]},Ellipse:{menuName:"Toolbar.markupEllipse",icon:{default:"icon-oval"},type:4,onActive:e=>{e.activateMarkup("EllipseMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Arrow","Circle","Dot","Text","X"]},Circle:{menuName:"Toolbar.markupCircle",icon:{default:"icon-round"},type:4,onActive:e=>{e.activateMarkup("CircleMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Arrow","Dot","Text","X"]},Dot:{menuName:"Toolbar.markupDot",icon:{default:"icon-round"},type:4,onActive:e=>{e.activateMarkup("DotMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Arrow","Circle","Text","X"]},X:{menuName:"Toolbar.markupX",icon:{default:"icon-cross"},type:4,onActive:e=>{e.activateMarkup("XMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Arrow","Text"]},Text:{menuName:"Toolbar.markupText",icon:{default:"icon-text"},type:4,onActive:e=>{e.activateMarkup("TextMarkup")},onDeactive(e){e.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Arrow","X"]},StrokeStyle:{menuName:"Toolbar.markupStroke",icon:{default:"icon-color-red"},type:1,onClick:(e,t,i)=>{let n=i.target.parentElement,r=null==n?void 0:n.firstElementChild,a=document.createElement("input");a.setAttribute("type","color"),a.value=An.rgba2Color(e.getMarkupLineColor()),a.click(),a.oninput=t=>{let i=t.target.value;e.setMarkupLineColor(...An.color2rgba(i)),r.style.color=i}}},LineWidth:{menuName:"Toolbar.markupLineWidth",icon:{default:"icon-line"},customElement(e,t,i){let n=document.createElement("div");return n.id=t,n.classList.add("toolbar-menu"),i.children&&n.classList.add("toolbar-parent-menu"),n.title=Qu(i.menuName),n.innerHTML+=`${n.title}`,n},type:3,children:{LineWidth2:{defaultActive:!0,icon:{default:"icon-line-2"},onClick:e=>{e.setMarkupLineWidth(2)},type:4,menuName:"Toolbar.markupLineWidth2",mutexIds:["LineWidth5","LineWidth10"]},LineWidth5:{icon:{default:"icon-line-3"},onClick:e=>{e.setMarkupLineWidth(3)},type:4,menuName:"Toolbar.markupLineWidth5",mutexIds:["LineWidth2","LineWidth10"]},LineWidth10:{icon:{default:"icon-line-4"},onClick:e=>{e.setMarkupLineWidth(4)},type:4,menuName:"Toolbar.markupLineWidth10",mutexIds:["LineWidth2","LineWidth5"]}}},FontSize:{menuName:"Toolbar.markupFontSize",icon:{default:"icon-font"},customElement(e,t,i){let n=document.createElement("div");return n.id=t,n.classList.add("toolbar-menu"),i.children&&n.classList.add("toolbar-parent-menu"),n.title=Qu(i.menuName),n.innerHTML+=`${n.title}`,n},type:3,children:{FontSize14:{icon:{default:"icon-font14"},onClick:e=>{e.setMarkupFontSize(14)},type:4,menuName:"",mutexIds:["FontSize18","FontSize24"]},FontSize18:{defaultActive:!0,icon:{default:"icon-font18"},onClick:e=>{e.setMarkupFontSize(18)},type:4,menuName:"",mutexIds:["FontSize14","FontSize24"]},FontSize24:{icon:{default:"icon-font24"},onClick:e=>{e.setMarkupFontSize(24)},type:4,menuName:"",mutexIds:["FontSize14","FontSize18"]}}},MarkupClear:{icon:{default:"icon-eraser"},onClick:e=>{se.info("[Toolbar]","Clear Markup",e),e.clearMarkups()},type:1,menuName:"Toolbar.clearMarkup"},MarkupQuit:{icon:{default:""},customElement(e,t,i){let n=document.createElement("div");return n.id=t,n.classList.add("toolbar-menu"),i.children&&n.classList.add("toolbar-parent-menu"),n.title=Qu(i.menuName),n.innerHTML+=`${n.title}`,n},onClick:e=>{var t;null==(t=e.getMarkupManager())||t.deactivate(),e.dispatchEvent("MarkupDeactivated")},type:1,menuName:"Toolbar.quitMarkup"}},Gve=[["Arrow","Rect","CloudRect","PolyLine","Ellipse","Circle","Text","StrokeStyle","FontSize","MarkupClear","MarkupQuit"]],w2=class extends hp{constructor(e,t,i=[]){super(e,t,i),this.keydown=()=>{}}},sV=class extends or{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||sV.DEFAULT_ID}),this.cfg=t||{},this.cfg.type=this.cfg.type||"image/png",this.cfg.quality=this.cfg.quality||.8}getScreenshot(){var e;let t=null==(e=this.viewer.renderer)?void 0:e.domElement;if(t)return t.toDataURL(this.cfg.type,this.cfg.quality)}getScreenshotByScreenBBox(e){return ft(this,null,(function*(){var t;let i=null==(t=this.viewer.renderer)?void 0:t.domElement;if(!i)return;let n=i.width,r=i.height,a=e.min.x,s=e.min.y,o=e.max.x,l=e.max.y;if(a=Math.max(a,0),a=Math.min(a,n),s=Math.max(s,0),s=Math.min(s,r),o=Math.min(o||n,n),o=Math.max(o,0),l=Math.min(l||r,r),l=Math.max(l,0),0===Math.abs(o-a)||0===Math.abs(l-s))return void se.error(`[Screenshot] Invalid input, minX: ${a}, minY: ${s}, maxX: ${o}, maxY: ${l}`);let h=new Mi;h.expandByPoint(new xe(a,s)),h.expandByPoint(new xe(o,l));let c=yield St.canvasToImage(i),u=document.createElement("canvas");u.width=i.width,u.height=i.height;let d=window.devicePixelRatio,p=u.getContext("2d");return p.drawImage(c,0,0,c.width/d,c.height/d),St.renderingContextToImage(p,h,this.cfg.type,this.cfg.quality)}))}getScreenshotByWorldBBox(e){return ft(this,null,(function*(){let t=this.viewer.camera,i=this.viewer.container,n=an.worldBBox2Screen(e,t,i);return this.getScreenshotByScreenBBox(n)}))}getScreenshotAsync(){return ft(this,arguments,(function*(e="BoxSelection"){var t;this.cancel();let i,n=this.viewer,r=null==(t=n.renderer)?void 0:t.domElement;if(!r||!n.viewerContainer||!n.camera)return;if("PickMarkup"===e?(this.pickMarkupHelper||(this.pickMarkupHelper=new RP(n)),i=yield this.pickMarkupHelper.pick()):"BoxSelection"===e&&(this.boxSelectHelper||(this.boxSelectHelper=new ep(n)),i=yield this.boxSelectHelper.select()),"Default"!==e&&!i)return;let a=yield St.canvasToImage(r),s=document.createElement("canvas");s.width=r.width,s.height=r.height;let o=window.devicePixelRatio,l=s.getContext("2d");if(l.drawImage(a,0,0,a.width/o,a.height/o),n.overlayRender){let e=yield n.overlayRender.getImage((e=>e instanceof Lr||e instanceof Ai));l.drawImage(e,0,0,e.width/o,e.height/o)}let h=this.cfg.type,c=this.cfg.quality,u=St.renderingContextToImage(l,i,h,c);return n instanceof ip?{base64Image:u,viewExtent:n.getCurrentViewExtent(),imageType:h}:{base64Image:u,imageType:h}}))}isActive(){var e,t;return(null==(e=this.boxSelectHelper)?void 0:e.isActive)||(null==(t=this.pickMarkupHelper)?void 0:t.isActive)}cancel(){var e,t;null!=(e=this.boxSelectHelper)&&e.isActive&&this.boxSelectHelper.deactivate(),null!=(t=this.pickMarkupHelper)&&t.isActive&&this.pickMarkupHelper.deactivate()}},dp=sV;dp.DEFAULT_ID="ScreenshotPlugin";var Yy=class{constructor(e,t,i=document.body){this.container=i,this.isFollowing=!1,this.diffX=0,this.diffY=0,this.start=e=>{this.isFollowing=!0,this.diffX=e.clientX-this.element.offsetLeft,this.diffY=e.clientY-this.element.offsetTop},this.stop=()=>{this.isFollowing=!1},this.follow=e=>{if(!this.isFollowing)return;let t=e.clientX-this.diffX,i=e.clientY-this.diffY;this.element.style.left=t+"px",this.element.style.top=i+"px"},this.element=document.createElement("div"),this.element.id=e,this.element.classList.add("pop-panel");let n=document.createElement("div");n.classList.add("pop-panel-header"),n.append(t),this.element.appendChild(n),this.header=n;let r=document.createElement("div");r.classList.add("pop-panel-body"),this.element.appendChild(r),this.body=r,n.addEventListener(gH,this.start),n.addEventListener(mH,this.stop),document.body.addEventListener(Rf,this.follow),this.container.appendChild(this.element)}destroy(){document.body.removeEventListener(Rf,this.follow),this.element.removeEventListener(gH,this.start),this.element.removeEventListener(mH,this.stop),this.element.remove()}},S2=class extends Yy{constructor(e){super("axis-section-pop-panel","\u8f74\u5411\u5256\u5207",e.widgetContainer),this.axis="x",this.isVisible=!0,this.keydown=e=>{"Escape"===e.code&&this.destroy()},this.section=e.getActiveSection(),this.createGroupSelectLayout(),this.addGroupSelectItems(),this.createActiveSelectLayout(),this.addActiveItems(),window.addEventListener("keydown",this.keydown)}destroy(){super.destroy(),window.removeEventListener("keydown",this.keydown)}createGroupSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-group-select"),this.body.appendChild(e),this.groupSelectNode=e}addGroupSelectItems(){let e=(e,t,i=!1)=>{let n=document.createElement("div");return n.classList.add("pop-panel-item"),n.setAttribute("itemName",e),n.append(t),i&&n.classList.add("active"),this.groupSelectNode&&this.groupSelectNode.appendChild(n),n},t=(e,t)=>a=>{a.stopPropagation(),this.activeItem!==e&&(i.classList.remove("active"),n.classList.remove("active"),r.classList.remove("active"),this.activeItem=e,t.classList.add("active"),this.section.setActiveAxis(e))},i=e("X","X",!0);i.onclick=t("X",i);let n=e("Y","Y");n.onclick=t("Y",n);let r=e("Z","Z");r.onclick=t("Z",r)}createActiveSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-active-select"),this.body.appendChild(e),this.activeSelectNode=e}addActiveItems(){let e=(e,t)=>{let i=document.createElement("i");i.classList.add(jv),i.classList.add(t),e.innerHTML="",e.appendChild(i)},t=((t,i,n="")=>{let r=document.createElement("div");return r.classList.add("pop-panel-item"),i&&r.setAttribute("title",i),r.setAttribute("itemName",t),r.setAttribute("isActive","false"),e(r,n),r})("visible","\u9690\u85cf\u5256\u5207\u9762","icon-hidesectionplane");t.onclick=()=>{this.isVisible=!this.isVisible,this.isVisible?(e(t,"icon-hidesectionplane"),t.setAttribute("title","\u9690\u85cf\u5256\u5207\u9762")):(e(t,"icon-showsectionplane"),t.setAttribute("title","\u663e\u793a\u5256\u5207\u9762")),this.section.setSectionPlaneMeshVisible(this.isVisible)}}},M2=class extends Yy{constructor(e){super("pick-section-pop-panel","\u62fe\u53d6\u9762\u5256\u5207",e.widgetContainer),this.isVisible=!0,this.enabled=!0,this.keydown=e=>{"Escape"===e.code&&this.destroy()},this.section=e.getActiveSection(),this.createActiveSelectLayout(),this.addActiveItems(),window.addEventListener("keydown",this.keydown)}destroy(){super.destroy(),window.removeEventListener("keydown",this.keydown)}createActiveSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-active-select"),this.body.appendChild(e),this.activeSelectNode=e}addActiveItems(){let e=(e,t)=>{let i=document.createElement("i");i.classList.add("gemini-viewer-icon"),i.classList.add(t),e.innerHTML="",e.appendChild(i)},t=(t,i,n="")=>{let r=document.createElement("div");return r.classList.add("pop-panel-item"),i&&r.setAttribute("title",i),r.setAttribute("itemName",t),r.setAttribute("isActive","false"),e(r,n),r},i=t("visible","\u9690\u85cf\u5256\u5207\u9762","icon-hidesectionplane");i.onclick=()=>{this.enabled&&(this.isVisible=!this.isVisible,this.isVisible?(e(i,"icon-hidesectionplane"),i.setAttribute("title","\u9690\u85cf\u5256\u5207\u9762")):(e(i,"icon-showsectionplane"),i.setAttribute("title","\u663e\u793a\u5256\u5207\u9762")),this.section.setSectionPlaneMeshVisible(this.isVisible))},this.activeSelectNode&&this.activeSelectNode.appendChild(i),this.visibleNode=i;let n=t("reset","\u91cd\u7f6e","icon-reset");n.onclick=t=>{t.stopPropagation(),this.enabled&&(this.isVisible=!0,e(i,"icon-hidesectionplane"),i.setAttribute("title","\u9690\u85cf\u5256\u5207\u9762"),this.section.resetSection())},this.activeSelectNode&&this.activeSelectNode.appendChild(n),this.resetNode=n}enable(){this.enabled=!0,this.visibleNode&&this.visibleNode.classList.remove("disable")}disable(){this.enabled=!1,this.visibleNode&&this.visibleNode.classList.add("disable")}},Ya,wo=e=>e.findPlugin(lg.DEFAULT_ID),N_=e=>e.findPlugin(dg.DEFAULT_ID),c0t=e=>e.findPlugin(dp.DEFAULT_ID),R2=e=>t=>{let i=wo(t),n=N_(t);null==n||n.deactivate(),null==i||i.activate(e)},A2=e=>{let t=wo(e);null==t||t.deactivate()},aV=e=>{let t=wo(e);t&&(t.deactivate(),t.getData().forEach((e=>t.setVisibilityById(e.id,!1))))},oV=e=>{let t=wo(e);t&&(t.deactivate(),t.getData().forEach((e=>t.setVisibilityById(e.id,!0))));let i=N_(e);null==i||i.deactivate(),null==Ya||Ya.destroy(),Ya=void 0},qve={HomeView:{icon:{default:"icon-home",active:"icon-home-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.homeView",type:1,onClick:e=>{e.goToHomeView()}},OrthoMode:{icon:{default:"icon-orthomode",active:"icon-orthomode-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.orthoView",type:4,onActive:e=>{se.info("[Toolbar]","Enter OrthoMode"),e.setToOrthographicCamera(!0)},onDeactive:e=>{se.info("[Toolbar]","Exit OrthoMode"),e.setToOrthographicCamera(!1)}},Measure:{icon:{default:"icon-measure",active:"icon-measure-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.measurement",type:3,children:{MeasureDistance:{icon:{default:"icon-measure-distance"},menuName:"Toolbar.distanceMeasurement",onActive:R2("Distance"),onDeactive:A2,type:4,mutexIds:["MeasureArea","MeasureAngle","MeasureCoordinate"]},MeasureArea:{icon:{default:"icon-measure-area-color"},onActive:R2("Area"),onDeactive:A2,type:4,menuName:"Toolbar.areaMeasurement",mutexIds:["MeasureDistance","MeasureAngle","MeasureCoordinate"]},MeasureAngle:{menuName:"Toolbar.angleMeasurement",icon:{default:"icon-angle-measure"},type:4,onActive:R2("Angle"),onDeactive:A2,mutexIds:["MeasureDistance","MeasureArea","MeasureCoordinate"]},MeasureCoordinate:{menuName:"Toolbar.coordinateMeasurement",icon:{default:"icon-distancemeasure",iconFont:"gemini-viewer-icon"},type:4,onActive:R2("Coordinate"),onDeactive:A2,mutexIds:["MeasureDistance","MeasureArea","MeasureAngle"]},MeasureClear:{icon:{default:"icon-clear",active:"icon-clear-filled",iconFont:"gemini-viewer-icon"},onClick:e=>{let t=wo(e);null==t||t.deactivate(),null==t||t.clear()},type:1,menuName:"Toolbar.clearMeasurement"}},mutexIds:["Section","SectionAxis","SectionBox","SectionPlane"]},Section:{icon:{default:"icon-section",active:"icon-section-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.section",type:3,children:{SectionAxis:{icon:{default:"icon-sectionplane",active:"icon-sectionplane-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.axisSection",type:4,onActive:e=>{aV(e);let t=N_(e);null==t||t.activate("AxisPlaneSection"),null==Ya||Ya.destroy(),Ya=new S2(e)},onDeactive:oV,mutexIds:["SectionBox","SectionPlane"]},SectionPlane:{icon:{default:"icon-choosesectionplane",active:"icon-choosesectionplane-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.pickSectionPlane",type:4,onActive:e=>{aV(e);let t=N_(e);null==t||t.activate("PickPlaneSection"),null==Ya||Ya.destroy(),Ya=new M2(e)},onDeactive:oV,mutexIds:["SectionAxis","SectionBox"]},SectionBox:{icon:{default:"icon-sectionbox",active:"icon-sectionbox-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.sectionBox",type:4,onActive:e=>{aV(e);let t=N_(e);null==t||t.activate("ObjectsBoxSection"),null==Ya||Ya.destroy()},onDeactive:oV,mutexIds:["SectionAxis","SectionPlane"]}},mutexIds:["Measure","MeasureDistance","MeasureArea","MeasureAngle","MeasureCoordinate"]},BimTree:{icon:{default:"icon-bimtree",active:"icon-bimtree-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.bimTree",type:4,onActive:()=>{se.info("[Toolbar]","Activate Bim Tree")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Bim Tree")},visible:!1},Viewpoint:{icon:{default:"icon-viewpoint",active:"icon-viewpoint-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.viewpoint",type:4,onActive:()=>{se.info("[Toolbar]","Activate Viewpoint")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Viewpoint")},visible:!1},Annotation:{icon:{default:"icon-annotation",active:"icon-annotation-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.annotation",type:4,onActive:()=>{se.info("[Toolbar]","Activate Annotation")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Annotation")},visible:!1},Property:{icon:{default:"icon-property",active:"icon-property-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.property",type:4,onActive:()=>{se.info("[Toolbar]","Activate Property")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Property")},visible:!1},Settings:{icon:{default:"icon-settings",active:"icon-settings-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.settings",type:4,onActive:()=>{se.info("[Toolbar]","Activate Settings")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Settings")},visible:!1},FullScreen:{icon:{default:"icon-fullscreen",active:"icon-fullscreen-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.fullscreen",type:4,onClick:(e,t)=>{var i;let n=()=>{let e=null==t?void 0:t.menuList.get("FullScreen");e&&e.setActive(St.isFullScreen())};St.isFullScreen()?(St.exitFullscreen(),window.removeEventListener("resize",n)):St.fullScreen(null==(i=e.viewerContainer)?void 0:i.parentElement),window.addEventListener("resize",n)}}},Wve={HomeView:{icon:{default:"icon-zhushitu",active:"icon-zhushitu"},menuName:"Toolbar.homeView",type:1,onClick:e=>{e.goToHomeView()}},ZoomToRectangle:{icon:{default:"icon-kuangxuanfangda",active:"icon-kuangxuanfangda"},menuName:"Toolbar.zoomToRectangle",type:4,onClick:(e,t)=>{let i=e;i.removeEventListener("BoxSelectDeactivated"),i.addEventListener("BoxSelectDeactivated",(()=>{null==t||t.setActive("ZoomToRectangle",!1)})),i.zoomToRect()},mutexIds:["GetScreenshot"]},GetScreenshot:{icon:{default:"icon-frame-clipping",active:"icon-frame-clipping"},menuName:"Toolbar.screenshot",type:4,onClick:(e,t)=>{let i=e;i.removeEventListener("BoxSelectDeactivated"),i.addEventListener("BoxSelectDeactivated",(()=>{null==t||t.setActive("GetScreenshot",!1)}));let n=c0t(e);null==n||n.getScreenshotAsync().then((e=>{if(se.info("[Toolbar] getScreenshot() returns:",null==e?void 0:e.base64Image),null==e||!e.base64Image)throw"[Toolbar] Image data is empty!";let t=document.createElement("a");t.href=null==e?void 0:e.base64Image,t.download="",t.click()})).catch((e=>{se.error("[Toolbar] Failed to get screenshot, reason:",e),null==t||t.setActive("GetScreenshot",!1)}))},mutexIds:["ZoomToRectangle"]},Measure:{icon:{default:"icon-celiang1",active:"icon-celiang1"},menuName:"Toolbar.measurement",type:3,children:{MeasureDistance:{icon:{default:"icon-measure-distance"},menuName:"Toolbar.distanceMeasurement",onActive:e=>{let t=wo(e);null==t||t.activate("Distance")},onDeactive:e=>{let t=wo(e);null==t||t.deactivate()},type:4,mutexIds:["MeasureArea","MeasureAngle","MeasureCoordinate","ZoomToRectangle","GetScreenshot"]},MeasureArea:{icon:{default:"icon-measure-area-color"},onActive:e=>{let t=wo(e);null==t||t.activate("Area")},onDeactive:e=>{let t=wo(e);null==t||t.deactivate()},type:4,menuName:"Toolbar.areaMeasurement",mutexIds:["MeasureDistance","MeasureAngle","MeasureCoordinate","ZoomToRectangle","GetScreenshot"]},MeasureAngle:{menuName:"Toolbar.angleMeasurement",icon:{default:"icon-angle-measure"},type:4,onActive:e=>{let t=wo(e);null==t||t.activate("Angle")},onDeactive:e=>{let t=wo(e);null==t||t.deactivate()},mutexIds:["MeasureDistance","MeasureArea","MeasureCoordinate","ZoomToRectangle","GetScreenshot"]},MeasureCoordinate:{menuName:"Toolbar.coordinateMeasurement",icon:{default:"icon-distancemeasure",iconFont:"gemini-viewer-icon"},type:4,onActive:e=>{let t=wo(e);null==t||t.activate("Coordinate")},onDeactive:e=>{let t=wo(e);null==t||t.deactivate()},visible:!1,mutexIds:["MeasureDistance","MeasureArea","MeasureAngle","ZoomToRectangle","GetScreenshot"]},MeasureClear:{icon:{default:"icon-clear",active:"icon-clear-filled",iconFont:"gemini-viewer-icon"},onClick:e=>{let t=wo(e);null==t||t.clear()},type:1,menuName:"Toolbar.clearMeasurement"}}},Markup:{icon:{default:"icon-annotation"},menuName:"Toolbar.markup",type:1,onClick:(e,t)=>{let i=e;null==t||t.updateMenu("Measure",{defaultActive:!1}),null==t||t.setActive("ZoomToRectangle",!1),i.getMarkups().forEach((e=>i.setMarkupVisibility(e.id,!0))),null==t||t.setActive("MarkupVisibility",!1),i.activateMarkup("CloudRectWithTextMarkup"),e.dispatchEvent("MarkupActivated")}},MarkupVisibility:{icon:{default:"icon-annotation-show",active:"icon-annotation-hide"},menuName:"Toolbar.markupVisibility",type:4,onActive:e=>{let t=e;t.getMarkups().forEach((e=>t.setMarkupVisibility(e.id,!1)))},onDeactive:e=>{let t=e;t.getMarkups().forEach((e=>t.setMarkupVisibility(e.id,!0)))},visible:!0},Settings:{icon:{default:"icon-settings",active:"icon-settings-filled",iconFont:"gemini-viewer-icon"},menuName:"Toolbar.settings",type:4,onActive:()=>{se.info("[Toolbar]","Activate Settings")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Settings")},visible:!0},Compared:{icon:{default:"icon-compared"},menuName:"Toolbar.compared",type:4,onActive:()=>{se.info("[Toolbar]","Activate Compare")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Compare")},visible:!1},QuitCompare:{icon:{default:"icon-compared"},menuName:"Toolbar.quitCompare",type:4,onActive:()=>{se.info("[Toolbar]","Activate Compare")},onDeactive:()=>{se.info("[Toolbar]","Deactivate Compare")},visible:!1},Layers:{icon:{default:"icon-tucengkongzhi",active:"icon-tucengkongzhi"},menuName:"Toolbar.layers",type:4,onClick:()=>{}},FullScreen:{icon:{default:"icon-quanping",active:"icon-quanping"},menuName:"Toolbar.fullscreen",type:4,onClick:(e,t)=>{var i;let n=()=>{let e=null==t?void 0:t.menuList.get("FullScreen");e&&e.setActive(St.isFullScreen())};St.isFullScreen()?(St.exitFullscreen(),window.removeEventListener("resize",n)):St.fullScreen(null==(i=e.viewerContainer)?void 0:i.parentElement),window.addEventListener("resize",n)}}},cV=class extends or{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||cV.DEFAULT_ID}),this.onMarkupActivated=()=>{if(!this.markupToolbar){let e=(0,B_.merge)(this.cfg.markupMenuCfg||[],zve),t=(0,B_.merge)(this.cfg.markupGroupCfg||[],Gve);this.markupToolbar=new w2(this.viewer,e,t),this.markupToolbar.hide()}this.toolbar.hide(),this.markupToolbar.show()},this.onMarkupDeactivated=()=>{var e;null==(e=this.markupToolbar)||e.hide(),this.toolbar.show()},this.cfg=t||{};let i=(0,B_.merge)({},Wve,this.cfg.menuConfig),n=(0,B_.merge)(this.cfg.groupConfig||[],T2);this.toolbar=new hp(e,i,n),this.viewer.addEventListener("MarkupActivated",this.onMarkupActivated),this.viewer.addEventListener("MarkupDeactivated",this.onMarkupDeactivated)}getToolbar(){return this.toolbar}getMarkupToolbar(){return this.markupToolbar}setActive(e,t){this.toolbar.setActive(e,t)}destroy(){var e;super.destroy(),null==(e=this.markupToolbar)||e.destroy(),this.toolbar.destroy()}},lV=cV;lV.DEFAULT_ID="DxfViewerToolbarPlugin";var hV=Xi(kl(),1),dV=class extends or{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||dV.DEFAULT_ID}),this.cfg=t||{};let i=(0,hV.merge)({},qve,this.cfg.menuConfig),n=(0,hV.merge)(this.cfg.groupConfig||[],T2);this.toolbar=new hp(e,i,n)}getToolbar(){return this.toolbar}setActive(e,t){this.toolbar.setActive(e,t)}destroy(){super.destroy(),this.toolbar.destroy()}},uV=dV;uV.DEFAULT_ID="BimViewerToolbarPlugin";var So=e=>({viewer:t})=>t.translate(`ContextMenu.${e}`),Xve=e=>{var t;let i=0;return null==(t=e.scene)||t.traverseVisible((e=>{e instanceof xt&&i++})),i>0},u0t=e=>{var t,i;let n=0;return null==(t=e.scene)||t.traverse((e=>{e instanceof xt&&n++})),null==(i=e.scene)||i.traverseVisible((e=>{e instanceof xt&&n--})),n>0},fV=e=>e.hasTransparentObject(),C2=e=>Hn.isObjectSelectable(e),jve=(e,t,i,n)=>{let r=e.selectedObject;return!(!r||!t||r.id!==t.id)&&(null!=i&&r.isInstancedMesh?i===r.userData.instanceId:null==n||!Rr.isMergedMesh(r)||n===r.userData.batchId)},h0t={getTitle:So("viewFitEntity"),getShown:({hit:e})=>e,doAction:({viewer:e,hit:t})=>{e.flyToObject(t)}},d0t={getTitle:So("viewFitAll"),getEnabled:({viewer:e})=>Xve(e),doAction:({viewer:e})=>e.viewFitAll()},f0t={getTitle:So("hideEntity"),getShown:({hit:e})=>e,doAction:({viewer:e,hit:t})=>{let i=e;C2(t)&&(i.clearSelection(),t.visible=!1,i.enableRender())}},p0t={getTitle:So("hideOthers"),getShown:({hit:e})=>e,doAction:({viewer:e,hit:t})=>{var i;let n=e;n.clearSelection(),null==(i=n.scene)||i.traverse((e=>{e instanceof xt&&C2(e)&&(e.visible=!1)})),t.visible=!0,n.enableRender()}},m0t={getTitle:So("hideAll"),getEnabled:({viewer:e})=>Xve(e),doAction:({viewer:e})=>{var t;let i=e;i.clearSelection(),null==(t=i.scene)||t.traverse((e=>{e instanceof xt&&C2(e)&&(e.visible=!1)})),i.enableRender()}},g0t={getTitle:So("showAll"),getEnabled:({viewer:e})=>u0t(e),doAction:({viewer:e})=>{var t;let i=e;null==(t=i.scene)||t.traverse((e=>{e instanceof xt&&C2(e)&&(e.visible=!0)})),i.enableRender()}},v0t={getTitle:({hit:e,viewer:t,instanceId:i,batchId:n})=>jve(t,e,i,n)?So("deselect")({viewer:t}):So("select")({viewer:t}),getShown:({hit:e,viewer:t})=>t.enableSelection&&e,doAction:({hit:e,viewer:t,instanceId:i,batchId:n})=>{let r=t;Hn.isObjectSelectable(e)?jve(r,e,i,n)?r.clearSelection():r.selectObject(e,e.instanceId,n):se.debug(`[ContextMenu] object(type: ${e.type}, name: ${e.name}) not selectable!`)}},y0t={getTitle:So("selectNone"),getShown:({viewer:e})=>e.enableSelection,getEnabled:({viewer:e})=>e.selectedObject,doAction:({viewer:e})=>e.clearSelection()},x0t={getTitle:So("xRayAll"),getShown:({viewer:e})=>!fV(e),doAction:({viewer:e})=>{let t=e;t.clearSelection(),t.addOrRemoveObjectOpacity(!0),t.enableRender()}},b0t={getTitle:So("xRayNone"),getEnabled:({viewer:e})=>fV(e),doAction:({viewer:e})=>{let t=e;t.clearSelection(),fV(t)&&(t.addOrRemoveObjectOpacity(!1),t.enableRender())}},E0t={getTitle:So("xRayEntity"),getShown:({hit:e})=>e,doAction:({viewer:e,hit:t})=>{let i=e;i.clearSelection(),i.addOrRemoveObjectOpacity(!0,void 0,[t.id],void 0)}},_0t={getTitle:So("xRayOthers"),getShown:({hit:e})=>e,doAction:({viewer:e,hit:t})=>{let i=e;i.clearSelection(),i.addOrRemoveObjectOpacity(!0,.1,void 0,[t.id]),i.enableRender()}},T0t={getTitle:({viewer:e})=>{let t=e,i="";switch(t.sectionType){case"PickPlaneSection":i="*showSectionPlane";break;case"AxisPlaneSection":i="showAxisSection";break;case"ObjectsBoxSection":i="*showSectionBox"}return t.translate(`ContextMenu.${i}`)},getShown:({viewer:e,section:t})=>{let i=e;return("PickPlaneSection"===i.sectionType||"AxisPlaneSection"===i.sectionType)&&!!t&&!t.showSectionPlane},doAction:({viewer:e,section:t})=>{let i=e;("PickPlaneSection"===i.sectionType||"AxisPlaneSection"===i.sectionType)&&(null==t||t.setSectionPlaneMeshVisible(!0))}},w0t={getTitle:({viewer:e})=>{let t=e,i="";switch(t.sectionType){case"PickPlaneSection":i="hideSectionPlane";break;case"AxisPlaneSection":i="hideAxisSection";break;case"ObjectsBoxSection":i="hideSectionBox"}return t.translate(`ContextMenu.${i}`)},getShown:e=>Yve(e),doAction:({viewer:e,section:t})=>{let i=e;("PickPlaneSection"===i.sectionType||"AxisPlaneSection"===i.sectionType)&&(null==t||t.setSectionPlaneMeshVisible(!1))}},S0t={getTitle:So("undoSection"),getShown:e=>Yve(e),doAction:({viewer:e,toolbar:t})=>{let i=e;if("PickPlaneSection"===i.sectionType){let e=null==t?void 0:t.menuList.get("SectionPlane");null==e||e.setActive(!1)}else if("AxisPlaneSection"===i.sectionType){let e=null==t?void 0:t.menuList.get("SectionAxis");null==e||e.setActive(!1)}else if("ObjectsBoxSection"===i.sectionType){let e=null==t?void 0:t.menuList.get("SectionBox");null==e||e.setActive(!1)}}},Yve=({viewer:e,hit:t,section:i})=>{let n=e;return("PickPlaneSection"===n.sectionType||"AxisPlaneSection"===n.sectionType)&&!!i&&i.showSectionPlane&&(null==t?void 0:t.name)===vH},$ve=[[T0t],[w0t,S0t],[h0t,d0t],[f0t,p0t,m0t,g0t],[E0t,_0t,x0t,b0t],[v0t,y0t]],Zve=class extends or{constructor(e){super(e,{id:"ContextMenuPlugin"}),this.itemList=[],this.handleClick=()=>{this.hide()},this.container=e.widgetContainer||document.body,this.context={viewer:e},this.element=this.createMenuUI($ve||[]),window.oncontextmenu=e=>e.preventDefault(),this.hide(),this.initEvents()}initEvents(){let e=this.viewer.getInputManager();if(!e)return;let t=!1,i=!1,n=0,r=0;e.addEventListener("pointerdown",(()=>{i=!1,t=!0,this.hide()})),e.addEventListener("pointermove",(e=>{t&&!i&&(i=!(e=>-1!==n&&-1!==r&&Math.abs(e.x-n)<5&&Math.abs(e.y-r)<5)(e))})),e.addEventListener("pointerup",(e=>{if(t=!1,i)return i=!1,void this.hide();n=e.x,r=e.y;let a=this.viewer.findPlugin(lg.DEFAULT_ID);2!==e.button||null!=a&&a.isActive()?this.hide():this.showContextMenu(e)})),document.addEventListener("click",this.handleClick)}showContextMenu(e){let t=this.context,i=this.viewer;if(i.selectedObject){let e=i.selectedObject.userData.instanceId,n=i.selectedObject.userData.batchId;this.context=Ii(Tr({},t),{hit:i.selectedObject,instanceId:e,batchId:n})}else{let n=i.getRaycaster();n&&n.layers.set(10);let r=i.getAllIntersections(e);se.debug("[Viewer] showContextMenu intersections = ",r);let a,s=(0,pg.find)(r,(e=>{let t=e.object;return t instanceof xt&&t.visible})),o=null==s?void 0:s.instanceId,l=null==s?void 0:s.faceIndex;l&&(a=Rr.getBatchIdByFaceIndex(null==s?void 0:s.object,l)),this.context=Ii(Tr({},t),{hit:null==s?void 0:s.object,instanceId:o,batchId:a})}let{x:n,y:r}=e;this.show(n,r)}isEnabled(e){return e.getEnabled?e.getEnabled(this.context):void 0===e.enabled||e.enabled}isShown(e){return e.getShown?e.getShown(this.context):void 0===e.shown||e.shown}getTitle(e){return e.title||e.getTitle&&e.getTitle(this.context)||""}createMenuUI(e){let t=document.createElement("div");t.id=this.id,t.classList.add("context-menu");let i=this.createMenuGroup(e);return t.append(...i),this.container.appendChild(t),t}createMenuGroup(e){return(0,pg.map)(e,(e=>{let t=document.createElement("ul");return(0,pg.forEach)(e,(e=>{let i=this.createMenuItem(e);t.append(i)})),t}))}createMenuItem(e){let t=document.createElement("li");return t.innerHTML=this.getTitle(e),t.onclick=()=>e.doAction&&e.doAction(this.context),this.isEnabled(e)?t.classList.remove("disabled"):t.classList.add("disabled"),this.isShown(e)?t.removeAttribute("hidden"):t.setAttribute("hidden",""),this.itemList.push([e,t]),t}updateMenuItems(){(0,pg.forEach)(this.itemList,(([e,t])=>{this.isEnabled(e)?t.classList.remove("disabled"):t.classList.add("disabled"),this.isShown(e)?t.removeAttribute("hidden"):t.setAttribute("hidden",""),t.innerHTML=this.getTitle(e)}))}showMenuElement(e,t){let i=this.element.offsetHeight,n=this.element.offsetWidth;t+i>window.innerHeight&&(t=window.innerHeight-i-5),e+n>window.innerWidth&&(e=window.innerWidth-n-5),this.element.style.left=e+"px",this.element.style.top=t+"px"}show(e,t){this.updateMenuItems(),this.element.removeAttribute("hidden"),this.showMenuElement(e,t)}hide(){this.element.setAttribute("hidden","")}destroy(){document.removeEventListener("click",this.handleClick),this.container.removeChild(this.element)}};function M0t(e){if(e&&"undefined"!=typeof window){var t=document.createElement("style");return t.setAttribute("type","text/css"),t.innerHTML=e,document.head.appendChild(t),e}}function Ky(e,t){var i=e.__state.conversionName.toString(),n=Math.round(e.r),r=Math.round(e.g),a=Math.round(e.b),s=e.a,o=Math.round(e.h),l=e.s.toFixed(1),h=e.v.toFixed(1);if(t||"THREE_CHAR_HEX"===i||"SIX_CHAR_HEX"===i){for(var c=e.hex.toString(16);c.length<6;)c="0"+c;return"#"+c}return"CSS_RGB"===i?"rgb("+n+","+r+","+a+")":"CSS_RGBA"===i?"rgba("+n+","+r+","+a+","+s+")":"HEX"===i?"0x"+e.hex.toString(16):"RGB_ARRAY"===i?"["+n+","+r+","+a+"]":"RGBA_ARRAY"===i?"["+n+","+r+","+a+","+s+"]":"RGB_OBJ"===i?"{r:"+n+",g:"+r+",b:"+a+"}":"RGBA_OBJ"===i?"{r:"+n+",g:"+r+",b:"+a+",a:"+s+"}":"HSV_OBJ"===i?"{h:"+o+",s:"+l+",v:"+h+"}":"HSVA_OBJ"===i?"{h:"+o+",s:"+l+",v:"+h+",a:"+s+"}":"unknown format"}var Kve=Array.prototype.forEach,U_=Array.prototype.slice,Ht={BREAK:{},extend:function(e){return this.each(U_.call(arguments,1),(function(t){(this.isObject(t)?Object.keys(t):[]).forEach(function(i){this.isUndefined(t[i])||(e[i]=t[i])}.bind(this))}),this),e},defaults:function(e){return this.each(U_.call(arguments,1),(function(t){(this.isObject(t)?Object.keys(t):[]).forEach(function(i){this.isUndefined(e[i])&&(e[i]=t[i])}.bind(this))}),this),e},compose:function(){var e=U_.call(arguments);return function(){for(var t=U_.call(arguments),i=e.length-1;i>=0;i--)t=[e[i].apply(this,t)];return t[0]}},each:function(e,t,i){if(e)if(Kve&&e.forEach&&e.forEach===Kve)e.forEach(t,i);else if(e.length===e.length+0){var n,r=void 0;for(r=0,n=e.length;r1?Ht.toArray(arguments):arguments[0];return Ht.each(R0t,(function(t){if(t.litmus(e))return Ht.each(t.conversions,(function(t,i){if(H_=t.read(e),!1===P2&&!1!==H_)return P2=H_,H_.conversionName=i,H_.conversion=t,Ht.BREAK})),Ht.BREAK})),P2},Jve=void 0,L2={hsv_to_rgb:function(e,t,i){var n=Math.floor(e/60)%6,r=e/60-Math.floor(e/60),a=i*(1-t),s=i*(1-r*t),o=i*(1-(1-r)*t),l=[[i,o,a],[s,i,a],[a,i,o],[a,s,i],[o,a,i],[i,a,s]][n];return{r:255*l[0],g:255*l[1],b:255*l[2]}},rgb_to_hsv:function(e,t,i){var n=Math.min(e,t,i),r=Math.max(e,t,i),a=r-n,s=void 0;return 0===r?{h:NaN,s:0,v:0}:(s=e===r?(t-i)/a:t===r?2+(i-e)/a:4+(e-t)/a,(s/=6)<0&&(s+=1),{h:360*s,s:a/r,v:r/255})},rgb_to_hex:function(e,t,i){var n=this.hex_with_component(0,2,e);return n=this.hex_with_component(n,1,t),this.hex_with_component(n,0,i)},component_from_hex:function(e,t){return e>>8*t&255},hex_with_component:function(e,t,i){return i<<(Jve=8*t)|e&~(255<-1?t.length-t.indexOf(".")-1:0}var uye=function(e){function t(e,i,n){Xc(this,t);var r=mp(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i)),a=n||{};return r.__min=a.min,r.__max=a.max,r.__step=a.step,Ht.isUndefined(r.__step)?0===r.initialValue?r.__impliedStep=1:r.__impliedStep=Math.pow(10,Math.floor(Math.log(Math.abs(r.initialValue))/Math.LN10))/10:r.__impliedStep=r.__step,r.__precision=Qve(r.__impliedStep),r}return pp(t,mg),Yc(t,[{key:"setValue",value:function(e){var i=e;return void 0!==this.__min&&ithis.__max&&(i=this.__max),void 0!==this.__step&&i%this.__step!=0&&(i=Math.round(i/this.__step)*this.__step),fp(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"setValue",this).call(this,i)}},{key:"min",value:function(e){return this.__min=e,this}},{key:"max",value:function(e){return this.__max=e,this}},{key:"step",value:function(e){return this.__step=e,this.__impliedStep=e,this.__precision=Qve(e),this}}]),t}();function D0t(e,t){var i=Math.pow(10,t);return Math.round(e*i)/i}var D2=function(e){function t(e,i,n){Xc(this,t);var r=mp(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i,n));r.__truncationSuspended=!1;var a=r,s=void 0;function o(){a.__onFinishChange&&a.__onFinishChange.call(a,a.getValue())}function l(e){var t=s-e.clientY;a.setValue(a.getValue()+t*a.__impliedStep),s=e.clientY}function h(){bt.unbind(window,"mousemove",l),bt.unbind(window,"mouseup",h),o()}return r.__input=document.createElement("input"),r.__input.setAttribute("type","text"),bt.bind(r.__input,"change",(function(){var e=parseFloat(a.__input.value);Ht.isNaN(e)||a.setValue(e)})),bt.bind(r.__input,"blur",(function(){o()})),bt.bind(r.__input,"mousedown",(function(e){bt.bind(window,"mousemove",l),bt.bind(window,"mouseup",h),s=e.clientY})),bt.bind(r.__input,"keydown",(function(e){13===e.keyCode&&(a.__truncationSuspended=!0,this.blur(),a.__truncationSuspended=!1,o())})),r.updateDisplay(),r.domElement.appendChild(r.__input),r}return pp(t,uye),Yc(t,[{key:"updateDisplay",value:function(){return this.__input.value=this.__truncationSuspended?this.getValue():D0t(this.getValue(),this.__precision),fp(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"updateDisplay",this).call(this)}}]),t}();function eye(e,t,i,n,r){return n+(e-t)/(i-t)*(r-n)}var gV=function(e){function t(e,i,n,r,a){Xc(this,t);var s=mp(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i,{min:n,max:r,step:a})),o=s;function l(e){e.preventDefault();var t=o.__background.getBoundingClientRect();return o.setValue(eye(e.clientX,t.left,t.right,o.__min,o.__max)),!1}function h(){bt.unbind(window,"mousemove",l),bt.unbind(window,"mouseup",h),o.__onFinishChange&&o.__onFinishChange.call(o,o.getValue())}function c(e){var t=e.touches[0].clientX,i=o.__background.getBoundingClientRect();o.setValue(eye(t,i.left,i.right,o.__min,o.__max))}function u(){bt.unbind(window,"touchmove",c),bt.unbind(window,"touchend",u),o.__onFinishChange&&o.__onFinishChange.call(o,o.getValue())}return s.__background=document.createElement("div"),s.__foreground=document.createElement("div"),bt.bind(s.__background,"mousedown",(function(e){document.activeElement.blur(),bt.bind(window,"mousemove",l),bt.bind(window,"mouseup",h),l(e)})),bt.bind(s.__background,"touchstart",(function(e){1===e.touches.length&&(bt.bind(window,"touchmove",c),bt.bind(window,"touchend",u),c(e))})),bt.addClass(s.__background,"slider"),bt.addClass(s.__foreground,"slider-fg"),s.updateDisplay(),s.__background.appendChild(s.__foreground),s.domElement.appendChild(s.__background),s}return pp(t,uye),Yc(t,[{key:"updateDisplay",value:function(){var e=(this.getValue()-this.__min)/(this.__max-this.__min);return this.__foreground.style.width=100*e+"%",fp(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"updateDisplay",this).call(this)}}]),t}(),hye=function(e){function t(e,i,n){Xc(this,t);var r=mp(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i)),a=r;return r.__button=document.createElement("div"),r.__button.innerHTML=void 0===n?"Fire":n,bt.bind(r.__button,"click",(function(e){return e.preventDefault(),a.fire(),!1})),bt.addClass(r.__button,"button"),r.domElement.appendChild(r.__button),r}return pp(t,mg),Yc(t,[{key:"fire",value:function(){this.__onChange&&this.__onChange.call(this),this.getValue().call(this.object),this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue())}}]),t}(),vV=function(e){function t(e,i){Xc(this,t);var n=mp(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i));n.__color=new Xs(n.getValue()),n.__temp=new Xs(0);var r=n;n.domElement=document.createElement("div"),bt.makeSelectable(n.domElement,!1),n.__selector=document.createElement("div"),n.__selector.className="selector",n.__saturation_field=document.createElement("div"),n.__saturation_field.className="saturation-field",n.__field_knob=document.createElement("div"),n.__field_knob.className="field-knob",n.__field_knob_border="2px solid ",n.__hue_knob=document.createElement("div"),n.__hue_knob.className="hue-knob",n.__hue_field=document.createElement("div"),n.__hue_field.className="hue-field",n.__input=document.createElement("input"),n.__input.type="text",n.__input_textShadow="0 1px 1px ",bt.bind(n.__input,"keydown",(function(e){13===e.keyCode&&c.call(this)})),bt.bind(n.__input,"blur",c),bt.bind(n.__selector,"mousedown",(function(){bt.addClass(this,"drag").bind(window,"mouseup",(function(){bt.removeClass(r.__selector,"drag")}))})),bt.bind(n.__selector,"touchstart",(function(){bt.addClass(this,"drag").bind(window,"touchend",(function(){bt.removeClass(r.__selector,"drag")}))}));var a=document.createElement("div");function s(e){d(e),bt.bind(window,"mousemove",d),bt.bind(window,"touchmove",d),bt.bind(window,"mouseup",l),bt.bind(window,"touchend",l)}function o(e){p(e),bt.bind(window,"mousemove",p),bt.bind(window,"touchmove",p),bt.bind(window,"mouseup",h),bt.bind(window,"touchend",h)}function l(){bt.unbind(window,"mousemove",d),bt.unbind(window,"touchmove",d),bt.unbind(window,"mouseup",l),bt.unbind(window,"touchend",l),u()}function h(){bt.unbind(window,"mousemove",p),bt.unbind(window,"touchmove",p),bt.unbind(window,"mouseup",h),bt.unbind(window,"touchend",h),u()}function c(){var e=mV(this.value);!1!==e?(r.__color.__state=e,r.setValue(r.__color.toOriginal())):this.value=r.__color.toString()}function u(){r.__onFinishChange&&r.__onFinishChange.call(r,r.__color.toOriginal())}function d(e){-1===e.type.indexOf("touch")&&e.preventDefault();var t=r.__saturation_field.getBoundingClientRect(),i=e.touches&&e.touches[0]||e,n=i.clientX,a=i.clientY,s=(n-t.left)/(t.right-t.left),o=1-(a-t.top)/(t.bottom-t.top);return o>1?o=1:o<0&&(o=0),s>1?s=1:s<0&&(s=0),r.__color.v=o,r.__color.s=s,r.setValue(r.__color.toOriginal()),!1}function p(e){-1===e.type.indexOf("touch")&&e.preventDefault();var t=r.__hue_field.getBoundingClientRect(),i=1-((e.touches&&e.touches[0]||e).clientY-t.top)/(t.bottom-t.top);return i>1?i=1:i<0&&(i=0),r.__color.h=360*i,r.setValue(r.__color.toOriginal()),!1}return Ht.extend(n.__selector.style,{width:"122px",height:"102px",padding:"3px",backgroundColor:"#222",boxShadow:"0px 1px 3px rgba(0,0,0,0.3)"}),Ht.extend(n.__field_knob.style,{position:"absolute",width:"12px",height:"12px",border:n.__field_knob_border+(n.__color.v<.5?"#fff":"#000"),boxShadow:"0px 1px 3px rgba(0,0,0,0.5)",borderRadius:"12px",zIndex:1}),Ht.extend(n.__hue_knob.style,{position:"absolute",width:"15px",height:"2px",borderRight:"4px solid #fff",zIndex:1}),Ht.extend(n.__saturation_field.style,{width:"100px",height:"100px",border:"1px solid #555",marginRight:"3px",display:"inline-block",cursor:"pointer"}),Ht.extend(a.style,{width:"100%",height:"100%",background:"none"}),tye(a,"top","rgba(0,0,0,0)","#000"),Ht.extend(n.__hue_field.style,{width:"15px",height:"100px",border:"1px solid #555",cursor:"ns-resize",position:"absolute",top:"3px",right:"3px"}),k0t(n.__hue_field),Ht.extend(n.__input.style,{outline:"none",textAlign:"center",color:"#fff",border:0,fontWeight:"bold",textShadow:n.__input_textShadow+"rgba(0,0,0,0.7)"}),bt.bind(n.__saturation_field,"mousedown",s),bt.bind(n.__saturation_field,"touchstart",s),bt.bind(n.__field_knob,"mousedown",s),bt.bind(n.__field_knob,"touchstart",s),bt.bind(n.__hue_field,"mousedown",o),bt.bind(n.__hue_field,"touchstart",o),n.__saturation_field.appendChild(a),n.__selector.appendChild(n.__field_knob),n.__selector.appendChild(n.__saturation_field),n.__selector.appendChild(n.__hue_field),n.__hue_field.appendChild(n.__hue_knob),n.domElement.appendChild(n.__input),n.domElement.appendChild(n.__selector),n.updateDisplay(),n}return pp(t,mg),Yc(t,[{key:"updateDisplay",value:function(){var e=mV(this.getValue());if(!1!==e){var t=!1;Ht.each(Xs.COMPONENTS,(function(i){if(!Ht.isUndefined(e[i])&&!Ht.isUndefined(this.__color.__state[i])&&e[i]!==this.__color.__state[i])return t=!0,{}}),this),t&&Ht.extend(this.__color.__state,e)}Ht.extend(this.__temp.__state,this.__color.__state),this.__temp.a=1;var i=this.__color.v<.5||this.__color.s>.5?255:0,n=255-i;Ht.extend(this.__field_knob.style,{marginLeft:100*this.__color.s-7+"px",marginTop:100*(1-this.__color.v)-7+"px",backgroundColor:this.__temp.toHexString(),border:this.__field_knob_border+"rgb("+i+","+i+","+i+")"}),this.__hue_knob.style.marginTop=100*(1-this.__color.h/360)+"px",this.__temp.s=1,this.__temp.v=1,tye(this.__saturation_field,"left","#fff",this.__temp.toHexString()),this.__input.value=this.__color.toString(),Ht.extend(this.__input.style,{backgroundColor:this.__color.toHexString(),color:"rgb("+i+","+i+","+i+")",textShadow:this.__input_textShadow+"rgba("+n+","+n+","+n+",.7)"})}}]),t}(),O0t=["-moz-","-o-","-webkit-","-ms-",""];function tye(e,t,i,n){e.style.background="",Ht.each(O0t,(function(r){e.style.cssText+="background: "+r+"linear-gradient("+t+", "+i+" 0%, "+n+" 100%); "}))}function k0t(e){e.style.background="",e.style.cssText+="background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);",e.style.cssText+="background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"}var F0t={load:function(e,t){var i=t||document,n=i.createElement("link");n.type="text/css",n.rel="stylesheet",n.href=e,i.getElementsByTagName("head")[0].appendChild(n)},inject:function(e,t){var i=t||document,n=document.createElement("style");n.type="text/css",n.innerHTML=e;var r=i.getElementsByTagName("head")[0];try{r.appendChild(n)}catch(e){}}},N0t='
\n\n Here\'s the new load parameter for your GUI\'s constructor:\n\n \n\n
\n\n Automatically save\n values to localStorage on exit.\n\n
The values saved to localStorage will\n override those passed to dat.GUI\'s constructor. This makes it\n easier to work incrementally, but localStorage is fragile,\n and your friends may not see the same values you do.\n\n
\n\n
\n\n
',B0t=function(e,t){var i=e[t];return Ht.isArray(arguments[2])||Ht.isObject(arguments[2])?new I0t(e,t,arguments[2]):Ht.isNumber(i)?Ht.isNumber(arguments[2])&&Ht.isNumber(arguments[3])?Ht.isNumber(arguments[4])?new gV(e,t,arguments[2],arguments[3],arguments[4]):new gV(e,t,arguments[2],arguments[3]):Ht.isNumber(arguments[4])?new D2(e,t,{min:arguments[2],max:arguments[3],step:arguments[4]}):new D2(e,t,{min:arguments[2],max:arguments[3]}):Ht.isString(i)?new L0t(e,t):Ht.isFunction(i)?new hye(e,t,""):Ht.isBoolean(i)?new cye(e,t):null};function U0t(e){setTimeout(e,1e3/60)}var H0t=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||U0t,V0t=function(){function e(){Xc(this,e),this.backgroundElement=document.createElement("div"),Ht.extend(this.backgroundElement.style,{backgroundColor:"rgba(0,0,0,0.8)",top:0,left:0,display:"none",zIndex:"1000",opacity:0,WebkitTransition:"opacity 0.2s linear",transition:"opacity 0.2s linear"}),bt.makeFullscreen(this.backgroundElement),this.backgroundElement.style.position="fixed",this.domElement=document.createElement("div"),Ht.extend(this.domElement.style,{position:"fixed",display:"none",zIndex:"1001",opacity:0,WebkitTransition:"-webkit-transform 0.2s ease-out, opacity 0.2s linear",transition:"transform 0.2s ease-out, opacity 0.2s linear"}),document.body.appendChild(this.backgroundElement),document.body.appendChild(this.domElement);var t=this;bt.bind(this.backgroundElement,"click",(function(){t.hide()}))}return Yc(e,[{key:"show",value:function(){var e=this;this.backgroundElement.style.display="block",this.domElement.style.display="block",this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)",this.layout(),Ht.defer((function(){e.backgroundElement.style.opacity=1,e.domElement.style.opacity=1,e.domElement.style.webkitTransform="scale(1)"}))}},{key:"hide",value:function(){var e=this,t=function t(){e.domElement.style.display="none",e.backgroundElement.style.display="none",bt.unbind(e.domElement,"webkitTransitionEnd",t),bt.unbind(e.domElement,"transitionend",t),bt.unbind(e.domElement,"oTransitionEnd",t)};bt.bind(this.domElement,"webkitTransitionEnd",t),bt.bind(this.domElement,"transitionend",t),bt.bind(this.domElement,"oTransitionEnd",t),this.backgroundElement.style.opacity=0,this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)"}},{key:"layout",value:function(){this.domElement.style.left=window.innerWidth/2-bt.getWidth(this.domElement)/2+"px",this.domElement.style.top=window.innerHeight/2-bt.getHeight(this.domElement)/2+"px"}}]),e}(),z0t=M0t(".dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear;border:0;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button.close-top{position:relative}.dg.main .close-button.close-bottom{position:absolute}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-y:visible}.dg.a.has-save>ul.close-top{margin-top:0}.dg.a.has-save>ul.close-bottom{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{top:0;z-index:1002}.dg.a .save-row.close-top{position:relative}.dg.a .save-row.close-bottom{position:fixed}.dg li{-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;-moz-transition:height .1s ease-out;transition:height .1s ease-out;-webkit-transition:overflow .1s linear;-o-transition:overflow .1s linear;-moz-transition:overflow .1s linear;transition:overflow .1s linear}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px;overflow:hidden}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .cr.function .property-name{width:100%}.dg .c{float:left;width:60%;position:relative}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:7px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .cr.color{overflow:visible}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2FA1D6}.dg .cr.number input[type=text]{color:#2FA1D6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2FA1D6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}\n");F0t.inject(z0t);var nye="dg",rye=72,iye=20,q_="Default",V_=function(){try{return!!window.localStorage}catch(e){return!1}}(),z_=void 0,sye=!0,$y=void 0,pV=!1,dye=[],Ni=function e(t){var i=this,n=t||{};this.domElement=document.createElement("div"),this.__ul=document.createElement("ul"),this.domElement.appendChild(this.__ul),bt.addClass(this.domElement,nye),this.__folders={},this.__controllers=[],this.__rememberedObjects=[],this.__rememberedObjectIndecesToControllers=[],this.__listening=[],n=Ht.defaults(n,{closeOnTop:!1,autoPlace:!0,width:e.DEFAULT_WIDTH}),n=Ht.defaults(n,{resizable:n.autoPlace,hideable:n.autoPlace}),Ht.isUndefined(n.load)?n.load={preset:q_}:n.preset&&(n.load.preset=n.preset),Ht.isUndefined(n.parent)&&n.hideable&&dye.push(this),n.resizable=Ht.isUndefined(n.parent)&&n.resizable,n.autoPlace&&Ht.isUndefined(n.scrollable)&&(n.scrollable=!0);var r,a=V_&&"true"===localStorage.getItem(Zy(this,"isLocal")),s=void 0,o=void 0;if(Object.defineProperties(this,{parent:{get:function(){return n.parent}},scrollable:{get:function(){return n.scrollable}},autoPlace:{get:function(){return n.autoPlace}},closeOnTop:{get:function(){return n.closeOnTop}},preset:{get:function(){return i.parent?i.getRoot().preset:n.load.preset},set:function(e){i.parent?i.getRoot().preset=e:n.load.preset=e,j0t(this),i.revert()}},width:{get:function(){return n.width},set:function(e){n.width=e,bV(i,e)}},name:{get:function(){return n.name},set:function(e){n.name=e,o&&(o.innerHTML=n.name)}},closed:{get:function(){return n.closed},set:function(t){n.closed=t,n.closed?bt.addClass(i.__ul,e.CLASS_CLOSED):bt.removeClass(i.__ul,e.CLASS_CLOSED),this.onResize(),i.__closeButton&&(i.__closeButton.innerHTML=t?e.TEXT_OPEN:e.TEXT_CLOSED)}},load:{get:function(){return n.load}},useLocalStorage:{get:function(){return a},set:function(e){V_&&(a=e,e?bt.bind(window,"unload",s):bt.unbind(window,"unload",s),localStorage.setItem(Zy(i,"isLocal"),e))}}}),Ht.isUndefined(n.parent)){if(this.closed=n.closed||!1,bt.addClass(this.domElement,e.CLASS_MAIN),bt.makeSelectable(this.domElement,!1),V_&&a){i.useLocalStorage=!0;var l=localStorage.getItem(Zy(this,"gui"));l&&(n.load=JSON.parse(l))}this.__closeButton=document.createElement("div"),this.__closeButton.innerHTML=e.TEXT_CLOSED,bt.addClass(this.__closeButton,e.CLASS_CLOSE_BUTTON),n.closeOnTop?(bt.addClass(this.__closeButton,e.CLASS_CLOSE_TOP),this.domElement.insertBefore(this.__closeButton,this.domElement.childNodes[0])):(bt.addClass(this.__closeButton,e.CLASS_CLOSE_BOTTOM),this.domElement.appendChild(this.__closeButton)),bt.bind(this.__closeButton,"click",(function(){i.closed=!i.closed}))}else{void 0===n.closed&&(n.closed=!0);var h=document.createTextNode(n.name);bt.addClass(h,"controller-name"),o=TV(i,h),bt.addClass(this.__ul,e.CLASS_CLOSED),bt.addClass(o,"title"),bt.bind(o,"click",(function(e){return e.preventDefault(),i.closed=!i.closed,!1})),n.closed||(this.closed=!1)}n.autoPlace&&(Ht.isUndefined(n.parent)&&(sye&&($y=document.createElement("div"),bt.addClass($y,nye),bt.addClass($y,e.CLASS_AUTO_PLACE_CONTAINER),document.body.appendChild($y),sye=!1),$y.appendChild(this.domElement),bt.addClass(this.domElement,e.CLASS_AUTO_PLACE)),this.parent||bV(i,n.width)),this.__resizeHandler=function(){i.onResizeDebounced()},bt.bind(window,"resize",this.__resizeHandler),bt.bind(this.__ul,"webkitTransitionEnd",this.__resizeHandler),bt.bind(this.__ul,"transitionend",this.__resizeHandler),bt.bind(this.__ul,"oTransitionEnd",this.__resizeHandler),this.onResize(),n.resizable&&W0t(this),s=function(){V_&&"true"===localStorage.getItem(Zy(i,"isLocal"))&&localStorage.setItem(Zy(i,"gui"),JSON.stringify(i.getSaveObject()))},this.saveToLocalStorageIfPossible=s,n.parent||((r=i.getRoot()).width+=1,Ht.defer((function(){r.width-=1})))};function TV(e,t,i){var n=document.createElement("li");return t&&n.appendChild(t),i?e.__ul.insertBefore(n,i):e.__ul.appendChild(n),e.onResize(),n}function aye(e){bt.unbind(window,"resize",e.__resizeHandler),e.saveToLocalStorageIfPossible&&bt.unbind(window,"unload",e.saveToLocalStorageIfPossible)}function yV(e,t){var i=e.__preset_select[e.__preset_select.selectedIndex];i.innerHTML=t?i.value+"*":i.value}function G0t(e,t,i){if(i.__li=t,i.__gui=e,Ht.extend(i,{options:function(t){if(arguments.length>1){var n=i.__li.nextElementSibling;return i.remove(),G_(e,i.object,i.property,{before:n,factoryArgs:[Ht.toArray(arguments)]})}if(Ht.isArray(t)||Ht.isObject(t)){var r=i.__li.nextElementSibling;return i.remove(),G_(e,i.object,i.property,{before:r,factoryArgs:[t]})}},name:function(e){return i.__li.firstElementChild.firstElementChild.innerHTML=e,i},listen:function(){return i.__gui.listen(i),i},remove:function(){return i.__gui.remove(i),i}}),i instanceof gV){var n=new D2(i.object,i.property,{min:i.__min,max:i.__max,step:i.__step});Ht.each(["updateDisplay","onChange","onFinishChange","step","min","max"],(function(e){var t=i[e],r=n[e];i[e]=n[e]=function(){var e=Array.prototype.slice.call(arguments);return r.apply(n,e),t.apply(i,e)}})),bt.addClass(t,"has-slider"),i.domElement.insertBefore(n.domElement,i.domElement.firstElementChild)}else if(i instanceof D2){var r=function(t){if(Ht.isNumber(i.__min)&&Ht.isNumber(i.__max)){var n=i.__li.firstElementChild.firstElementChild.innerHTML,r=i.__gui.__listening.indexOf(i)>-1;i.remove();var a=G_(e,i.object,i.property,{before:i.__li.nextElementSibling,factoryArgs:[i.__min,i.__max,i.__step]});return a.name(n),r&&a.listen(),a}return t};i.min=Ht.compose(r,i.min),i.max=Ht.compose(r,i.max)}else i instanceof cye?(bt.bind(t,"click",(function(){bt.fakeEvent(i.__checkbox,"click")})),bt.bind(i.__checkbox,"click",(function(e){e.stopPropagation()}))):i instanceof hye?(bt.bind(t,"click",(function(){bt.fakeEvent(i.__button,"click")})),bt.bind(t,"mouseover",(function(){bt.addClass(i.__button,"hover")})),bt.bind(t,"mouseout",(function(){bt.removeClass(i.__button,"hover")}))):i instanceof vV&&(bt.addClass(t,"color"),i.updateDisplay=Ht.compose((function(e){return t.style.borderLeftColor=i.__color.toString(),e}),i.updateDisplay),i.updateDisplay());i.setValue=Ht.compose((function(t){return e.getRoot().__preset_select&&i.isModified()&&yV(e.getRoot(),!0),t}),i.setValue)}function fye(e,t){var i=e.getRoot(),n=i.__rememberedObjects.indexOf(t.object);if(-1!==n){var r=i.__rememberedObjectIndecesToControllers[n];if(void 0===r&&(r={},i.__rememberedObjectIndecesToControllers[n]=r),r[t.property]=t,i.load&&i.load.remembered){var a=i.load.remembered,s=void 0;if(a[e.preset])s=a[e.preset];else{if(!a[q_])return;s=a[q_]}if(s[n]&&void 0!==s[n][t.property]){var o=s[n][t.property];t.initialValue=o,t.setValue(o)}}}}function G_(e,t,i,n){if(void 0===t[i])throw new Error('Object "'+t+'" has no property "'+i+'"');var r=void 0;if(n.color)r=new vV(t,i);else{var a=[t,i].concat(n.factoryArgs);r=B0t.apply(e,a)}n.before instanceof mg&&(n.before=n.before.__li),fye(e,r),bt.addClass(r.domElement,"c");var s=document.createElement("span");bt.addClass(s,"property-name"),s.innerHTML=r.property;var o=document.createElement("div");o.appendChild(s),o.appendChild(r.domElement);var l=TV(e,o,n.before);return bt.addClass(l,Ni.CLASS_CONTROLLER_ROW),r instanceof vV?bt.addClass(l,"color"):bt.addClass(l,A0t(r.getValue())),G0t(e,l,r),e.__controllers.push(r),r}function Zy(e,t){return document.location.href+"."+t}function xV(e,t,i){var n=document.createElement("option");n.innerHTML=t,n.value=t,e.__preset_select.appendChild(n),i&&(e.__preset_select.selectedIndex=e.__preset_select.length-1)}function oye(e,t){t.style.display=e.useLocalStorage?"block":"none"}function q0t(e){var t=e.__save_row=document.createElement("li");bt.addClass(e.domElement,"has-save"),e.__ul.insertBefore(t,e.__ul.firstChild),bt.addClass(t,"save-row");var i=document.createElement("span");i.innerHTML=" ",bt.addClass(i,"button gears");var n=document.createElement("span");n.innerHTML="Save",bt.addClass(n,"button"),bt.addClass(n,"save");var r=document.createElement("span");r.innerHTML="New",bt.addClass(r,"button"),bt.addClass(r,"save-as");var a=document.createElement("span");a.innerHTML="Revert",bt.addClass(a,"button"),bt.addClass(a,"revert");var s=e.__preset_select=document.createElement("select");if(e.load&&e.load.remembered?Ht.each(e.load.remembered,(function(t,i){xV(e,i,i===e.preset)})):xV(e,q_,!1),bt.bind(s,"change",(function(){for(var t=0;t0&&(e.preset=this.preset,e.remembered||(e.remembered={}),e.remembered[this.preset]=I2(this)),e.folders={},Ht.each(this.__folders,(function(t,i){e.folders[i]=t.getSaveObject()})),e},save:function(){this.load.remembered||(this.load.remembered={}),this.load.remembered[this.preset]=I2(this),yV(this,!1),this.saveToLocalStorageIfPossible()},saveAs:function(e){this.load.remembered||(this.load.remembered={},this.load.remembered[q_]=I2(this,!0)),this.load.remembered[e]=I2(this),this.preset=e,xV(this,e,!0),this.saveToLocalStorageIfPossible()},revert:function(e){Ht.each(this.__controllers,(function(t){this.getRoot().load.remembered?fye(e||this.getRoot(),t):t.setValue(t.initialValue),t.__onFinishChange&&t.__onFinishChange.call(t,t.getValue())}),this),Ht.each(this.__folders,(function(e){e.revert(e)})),e||yV(this.getRoot(),!1)},listen:function(e){var t=0===this.__listening.length;this.__listening.push(e),t&&pye(this.__listening)},updateDisplay:function(){Ht.each(this.__controllers,(function(e){e.updateDisplay()})),Ht.each(this.__folders,(function(e){e.updateDisplay()}))}});var mye=Ni,gye=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],bd=(()=>{let e=gye[0],t={};for(let i of gye)if((null==i?void 0:i[1])in document){for(let[n,r]of i.entries())t[e[n]]=r;return t}return!1})(),vye={change:bd.fullscreenchange,error:bd.fullscreenerror},nl={request:(e=document.documentElement,t)=>new Promise(((i,n)=>{let r=()=>{nl.off("change",r),i()};nl.on("change",r);let a=e[bd.requestFullscreen](t);a instanceof Promise&&a.then(r).catch(n)})),exit:()=>new Promise(((e,t)=>{if(!nl.isFullscreen)return void e();let i=()=>{nl.off("change",i),e()};nl.on("change",i);let n=document[bd.exitFullscreen]();n instanceof Promise&&n.then(i).catch(t)})),toggle:(e,t)=>nl.isFullscreen?nl.exit():nl.request(e,t),onchange(e){nl.on("change",e)},onerror(e){nl.on("error",e)},on(e,t){let i=vye[e];i&&document.addEventListener(i,t,!1)},off(e,t){let i=vye[e];i&&document.removeEventListener(i,t,!1)},raw:bd};Object.defineProperties(nl,{isFullscreen:{get:()=>Boolean(document[bd.fullscreenElement])},element:{enumerable:!0,get:()=>{var e;return null!=(e=document[bd.fullscreenElement])?e:void 0}},isEnabled:{enumerable:!0,get:()=>Boolean(document[bd.fullscreenEnabled])}}),bd||(nl={isEnabled:!1});var O2=nl,k2=new D,F2=class{constructor(e,t,i){this.scale=1,this.explodeUp=!1,this.scene=e,this.objectId=t,t||se.debug(`[EXP] Invalid objectId: ${t}`),i?this.explodeCenter=i:(this.explodeCenter=new D,this.getObjectCenter(this.explodeCenter));let n=this.scene.getObjectById(this.objectId);null==n||n.updateWorldMatrix(!0,!0)}explode(e){if(this.scale=e,!this.objectId||!this.explodeCenter||!this.scale)return void se.debug(`[EXP] Invalid objectId: ${this.objectId}, or position: ${this.explodeCenter}, or this.power: ${this.scale}`);let t=this.scene.getObjectById(this.objectId);t&&t.children?(se.debug(`[EXP] Exploding object '${t.name}'(id: ${t.id}) at: ${St.vectorToString(this.explodeCenter)}`),this.explodeObject(t)):se.debug("[EXP] No children to explode!")}explodeObject(e){e.geometry?this.explodeLeafObject(e):e.children.length>0?e.children.forEach((e=>this.explodeObject(e))):this.explodeLeafObject(e)}explodeLeafObject(e){var t;let i=e;if(!i.geometry)return;i.userData.originalMatrixWorld||(i.userData.originalMatrixWorld=i.matrixWorld);let n=i.userData.originalMatrixWorld;i.userData.originalCenter||(i.geometry.boundingBox||i.geometry.computeBoundingBox(),k2.set(0,0,0),null==(t=i.geometry.boundingBox)||t.getCenter(k2),k2.applyMatrix4(i.matrixWorld),i.userData.originalCenter=k2.clone());let r=i.userData.originalCenter.clone();r.sub(this.explodeCenter),r.multiplyScalar(this.scale-1),this.explodeUp&&(r.setX(0),r.setZ(0));let a=new et;a.setPosition(r),a.multiply(n),i.matrixWorld=a,i.children.length>0&&i.children.forEach((e=>e.updateMatrix()))}unexplode(){let e=this.scene.getObjectById(this.objectId);e&&e.children?(se.debug(`[EXP] Unexploding '${e.name}'(id: ${e.id}) at: ${St.vectorToString(this.explodeCenter)}`),this.unexplodeObject(e)):se.debug("[EXP] No children to explode!")}unexplodeObject(e){e.geometry?this.unexplodeLeafObject(e):e.children.length>0?e.children.forEach((e=>this.unexplodeObject(e))):this.unexplodeLeafObject(e)}unexplodeLeafObject(e){let t=e.userData.originalMatrixWorld;t&&(e.matrixWorld=t,e.children.length>0&&e.children.forEach((e=>e.updateMatrix())))}setExplodeUp(e){this.explodeUp=e}getObjectCenter(e){let t=new Nt;if(!this.objectId)return void se.debug(`[EXP] Invalid objectId: ${this.objectId}`);let i=this.scene.getObjectById(this.objectId);i&&i.children?(i.traverse((e=>{t.expandByObject(e)})),t.getCenter(e)):se.debug("[EXP] No children to explode!")}},wV=class extends or{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||wV.DEFAULT_ID}),this.exploders=[],this.onModelLoaded=()=>{this.init()},this.viewer=e,this.cfg=t||{},this.viewer.addEventListener("ModelLoaded",this.onModelLoaded)}get scene(){return this.viewer.scene}init(){this.viewer.loadedModels.forEach((e=>{if(this.hasExploderForModel(e.object.id))return;let t=new D;if(this.cfg.explodeCenter){let e=this.cfg.explodeCenter;t.set(e.x,e.y,e.z)}else!this.cfg.explodeCenter&&e.bbox&&e.bbox.getCenter(t);let i=new F2(this.scene,e.object.id,t);i.setExplodeUp(!!this.cfg.explodeUp),this.exploders.push(i)}))}explode(e){0===this.exploders.length&&this.init();for(let t of this.exploders)t.explode(e),this.viewer.enableRender()}unexplode(){for(let e of this.exploders)e.unexplode(),this.viewer.enableRender()}hasExploderForModel(e){return!!this.exploders.find((t=>t.objectId===e))}destroy(){super.destroy(),this.viewer.removeEventListener("ModelLoaded",this.onModelLoaded),this.unexplode()}},W_=wV;W_.DEFAULT_ID="ExplodePlugin";var SV=class extends or{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||SV.DEFAULT_ID}),this.NAME="GROUND_GRASS",this.DEFAULT_SIZE=1e3,this.DEFAULT_REPEAT=20,this.onModelLoaded=()=>{!1!==this.cfg.visible&&(this.init(),this.viewer.enableRender())},this.cfg=t||{},!1!==this.cfg.visible&&this.init(),this.viewer.addEventListener("ModelLoaded",this.onModelLoaded)}init(){var e;this.groundGrass&&(null==(e=this.viewer.scene)||e.remove(this.groundGrass),this.groundGrass=void 0);let t=this.cfg.texture||"images/terrain/grass.jpg",i=this.cfg.width||this.DEFAULT_SIZE,n=this.cfg.height||this.DEFAULT_SIZE,r=this.cfg.repeatX||this.DEFAULT_REPEAT,a=this.cfg.repeatY||this.DEFAULT_REPEAT,s=new D,o=this.viewer.getBBox();o&&o.getCenter(s),ft(this,null,(function*(){var e;this.groundGrass=yield this.createGrassGround(t,i,n,r,a),null==(e=this.viewer.scene)||e.add(this.groundGrass),this.viewer.enableRender()}))}setVisible(e){e&&!this.groundGrass&&this.init(),this.groundGrass&&(this.groundGrass.visible=e),this.viewer.enableRender()}createGrassGround(e,t,i,n,r){return ft(this,null,(function*(){return new Promise((a=>{(new ws).load(e,(e=>{e.wrapS=e.wrapT=Di,e.repeat.set(n,r),e.anisotropy=16,e.encoding=bu;let s=new Pu({map:e});s.side=pi;let o=new xt(new ui(t,i),s);return o.rotation.x=-Math.PI/2,o.position.y=0,o.receiveShadow=!0,o.name=this.NAME,o.layers.enableAll(),o.layers.disable(12),o.matrixAutoUpdate=!1,o.updateMatrix(),a(o)}))}))}))}destroy(){super.destroy(),this.groundGrass&&(this.groundGrass.removeFromParent(),this.groundGrass.geometry.dispose(),this.groundGrass.clear(),this.groundGrass=void 0),this.viewer.removeEventListener("ModelLoaded",this.onModelLoaded)}},j_=SV;j_.DEFAULT_ID="GroundGrassPlugin";var MV=class extends or{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||MV.DEFAULT_ID}),this.NAME="GROUND_GRID",this.DEFAULT_SIZE=1e3,this.DEFAULT_DIVISIONS=100,this.DEFAULT_MAT_PARAMS={color:12829635,transparent:!0,opacity:.5,wireframeLinewidth:.5},this.onModelLoaded=()=>{!1!==this.cfg.visible&&(this.init(),this.viewer.enableRender())},this.cfg=t||{},!1!==this.cfg.visible&&this.init(),this.viewer.addEventListener("ModelLoaded",this.onModelLoaded)}init(){var e,t;this.gridHelper&&(null==(e=this.viewer.scene)||e.remove(this.gridHelper),this.gridHelper=void 0);let i=this.cfg.size,n=this.cfg.divisions,r=new D,a=this.viewer.getBBox();a&&a.getCenter(r),this.gridHelper=this.createGroundGrid(i,n,r),null==(t=this.viewer.scene)||t.add(this.gridHelper),this.viewer.enableRender()}setVisible(e){e&&!this.gridHelper&&this.init(),this.gridHelper&&(this.gridHelper.visible=e),this.viewer.enableRender()}createGroundGrid(e,t,i){e=e||this.DEFAULT_SIZE,t=t||this.DEFAULT_DIVISIONS;let n=new Nb(e,t);i?n.position.set(i.x,i.y,i.z):n.position.y=0;let r=n.material;return Array.isArray(r)||(r.opacity=this.DEFAULT_MAT_PARAMS.opacity,r.transparent=this.DEFAULT_MAT_PARAMS.transparent),n.name=this.NAME,n.layers.enableAll(),n.layers.disable(12),n.matrixAutoUpdate=!1,n.updateMatrix(),n}destroy(){super.destroy(),this.gridHelper&&(this.gridHelper.removeFromParent(),this.gridHelper.geometry.dispose(),this.gridHelper.clear(),this.gridHelper=void 0),this.viewer.removeEventListener("ModelLoaded",this.onModelLoaded)}},X_=MV;X_.DEFAULT_ID="GroundGridPlugin";var gp=class{constructor(e="uploadModelFile"){this.input=document.createElement("input"),this.input.id=e,this.input.type="file",this.input.multiple=!0,this.input.accept=this.formats().map((e=>"."+e)).join(","),this.input.style.display="none",this.input.onchange=e=>{let t=e.target.files;!t||t.length<=0?se.error("[Uploader] No files to be uploaded!"):this.uploadFiles(t)}}formats(){return se.warn("[Uploader]: Should call derived class instead!"),[]}uploadFiles(e){se.warn(`[Uploader]: Should call derived class instead! files: ${e}`)}openFileBrowserToUpload(){this.input.click()}},N2=class extends gp{constructor(e,t){super(t),this.defaultModelConfig={src:"",merge:!0},this.viewer=e}formats(){return["gltf","glb","dxf","obj","stl","fbx","ifc","dae","*"]}uploadFiles(e){let t=e.length;if(0===t)return;if(this.checkAllFilesWithTheSameFormat(e)){for(let i=0;i{r&&(i=URL.createObjectURL(r),o.push(i),a.src=r.name)};if(r){l();let e=ta.extractUrlBase(i);n=new Lu,n.setURLModifier((t=>{let i=decodeURI(t).replace(e,"").replace(/^(\.?\/)/,"");if(s.has(i)){let e=s.get(i),t=URL.createObjectURL(e);return o.push(t),t}return t}))}else r=e[0],l();this.viewer.loadLocalModel(i,a,n,(e=>{let t=Math.floor(100*e.loaded/e.total);se.info(`[Uploader] Loading ${null==r?void 0:r.name}, ${t}%`)})).then((()=>{se.info(`[Uploader] Loaded ${null==r?void 0:r.name}`),o.forEach(URL.revokeObjectURL)}))}checkAllFilesWithTheSameFormat(e){let t=e=>{let t=e.lastIndexOf(".");return e.substring(t+1).toLowerCase()},i=e.length,n=t(e[0].name);for(let r=0;r{let i=Math.floor(100*t.loaded/t.total);se.info(`[Uploader] Loading ${null==e?void 0:e.name}, ${i}%`)}))}};function yye(e,t,i,n,r,a,s){let o=e.addFolder(t);o.add(i,"x",r,a,s).onChange(n),o.add(i,"y",r,a,s).onChange(n),o.add(i,"z",r,a,s).onChange(n)}var xye=class extends or{constructor(e){super(e,{id:"BimViewerDatGuiPlugin"}),this.controls={showGroundGrid:!1,showGroundGrass:!1,skyMode:["None","Black Background","White Background","Gradient ramp","Cloudy"],environments:["None","Default (City Streat 64x32)","Venice Sunset","Footprint Court (HDR Labs)","City Street"],homeView:()=>console.log("[DGH] Go to home view"),views:["Top","Bottom","Front","Back","Left","Right"],OrthographicCamera:!1,viewpoints:!1,annotations:!1,takeSnapshot:()=>console.log("[DGH] Taking snapshot..."),takeSnapshotForViewerBBox:()=>console.log("[DGH] Taking snapshot for objects..."),fullScreen:()=>console.log("[DGH] Full screen..."),webcam:!1,uploadFile:()=>console.log("[DGH] Upload file..."),showBimTree:!1,showPropertyPanel:!1,transparentMode:!1,showVertexNormals:!1,explode:1,sectionMode:["No section","Box section","Pick plane section","Axis plane section"],alVisible:!0,alColor:"#cccccc",alIntensity:1,dlColor:"#dddddd",showDlHelper:!1,hlVisible:!0,hlIntensity:1,hlColor:[255,255,255,.6],hlGroundColor:[200,255,200,.6],fogEnabled:!1,fogColor:14540253,fogNearDistance:1,fogFarDistance:1e3,composerEnabled:!1,renderPassEnabled:!1,fxaaEnabled:!1,saoEnabled:!1,ssaoEnabled:!1,outlineEnabled:!1,ssaaEnabled:!1,bloomEnabled:!1,unrealBloomEnabled:!1,enableFastOperation:!1,distanceCullingFactor:100},this.viewer=e,this.init()}init(){if(!this.viewer||!this.viewer.renderer||!this.viewer.scene)throw new Error("Need to initialize renderer, scene first!");let e=this.viewer,t=this.viewer.scene,i=this.controls;this.gui=new mye({name:"controls",autoPlace:!0,width:300,closed:!0}),this.gui.domElement.style.opacity="0.6";let n=this.gui.addFolder("Common settings");n.add(i,"showGroundGrid").name("Show ground grid").onChange((t=>{let i=e.findPlugin("GroundGridPlugin");i?i.setVisible(t):i=new X_(e)})),n.add(i,"showGroundGrass").name("Show ground grass").onChange((t=>{let i=e.findPlugin("GroundGrassPlugin");i?i.setVisible(t):i=new j_(e)})),n.add(i,"environments",i.environments).name("Environments").onChange((i=>{let n="";if("Default (City Streat 64x32)"===i){if(e.pmremGenerator)return Ac.createEnvTextureFromDataArray(e.pmremGenerator).then((e=>{t.environment=e})),void e.enableRender()}else"Venice Sunset"===i?n="venice_sunset_1k.hdr":"Footprint Court (HDR Labs)"===i?n="footprint_court_2k.hdr":"City Street"===i&&(n="city_street_256.hdr");""===n?t.environment=null:(n=`${window.location.origin}/images/envmap/${n}`,Ac.createEnvTexture(e.pmremGenerator,n).then((e=>{t.environment=e}))),e.enableRender()})),n.add(i,"homeView").name("Go to home view").onChange((()=>{e.goToHomeView()})),n.add(i,"views",i.views).name("Views").onChange((i=>{var n;let r=new D,a=new D,s=Os.getVisibleObjectBoundingBox(t),o=cE.getCameraDirectionByView(i);cE.getCameraPositionByBBoxAndDirection(s,r,a,null==(n=e.camera)?void 0:n.projectionMatrix,o),e.flyTo(r,a)})),n.add(i,"OrthographicCamera").name("Orth Camera").onChange((t=>{e.setToOrthographicCamera(t)})),n.add(i,"takeSnapshot").name("Take snapshot").onChange((()=>{let t=e.findPlugin("ScreenshotPlugin");t||(t=new dp(e));let i=t.getScreenshot(),n=document.createElement("a");n.href=i,n.download="",n.click()})),n.add(i,"takeSnapshotForViewerBBox").name("Take snapshot for viewer bbox").onChange((()=>{let t=e.findPlugin("ScreenshotPlugin");t||(t=new dp(e)),(()=>{ft(this,null,(function*(){let i=e.getBBox(),n=yield t.getScreenshotByWorldBBox(i),r=document.createElement("a");r.href=n,r.download="",r.click()}))})()})),n.add(i,"fullScreen").name("Full screen").onChange((()=>{O2&&O2.isEnabled&&O2.request(),e.enableRender()})),n.add(i,"uploadFile").name("Upload file").onChange((()=>{new N2(e).openFileBrowserToUpload()}));let r=this.gui.addFolder("Model operations");r.add(i,"transparentMode",i.transparentMode).name("Transparent mode").onChange((t=>{e.addOrRemoveObjectOpacity(t),e.enableRender()})),r.add(i,"showVertexNormals",i.showVertexNormals).name("Show Vertex Normals").onChange((t=>{e.showVertexNormals(t),e.enableRender()})),r.add(i,"explode",1,5).name("Explode tool").onChange((t=>{let i=e.findPlugin("ExplodePlugin");i||(i=new W_(e)),i.explode(t)})),r.add(i,"sectionMode",i.sectionMode).name("Section mode").onChange((t=>{let i=e.findPlugin("SectionPlugin");i||(i=new dg(e)),"No section"===t?i.deactivate():"Box section"===t?i.activate("ObjectsBoxSection"):"Pick plane section"===t?i.activate("PickPlaneSection"):"Axis plane section"===t&&i.activate("AxisPlaneSection"),e.enableRender()}));let a=this.viewer.ambientLight,s=this.gui.addFolder("Ambient light");s.add(i,"alVisible",i.alVisible).name("visible").onChange((t=>{a&&(a.visible=t),e.enableRender()})),s.addColor(i,"alColor").name("color").onChange((t=>{a&&(a.color=new ct(t)),e.enableRender()})),s.add(i,"alIntensity",0,5).name("intensity").onChange((t=>{a&&(a.intensity=t),e.enableRender()}));let o=this.viewer.directionalLight;if(o){let t=this.gui.addFolder("Directional light");t.add(o,"visible").name("visible").onChange((t=>{o&&(o.visible=t),e.enableRender()})),t.addColor(i,"dlColor").name("color").onChange((t=>{o&&(o.color=new ct(t)),e.enableRender()})),t.add(o,"intensity",0,5).name("intensity").onChange((t=>{o&&(o.intensity=t),e.enableRender()})),t.add(o,"castShadow").name("castShadow").onChange((t=>{o&&(o.castShadow=t),e.enableRender()})),t.add(i,"showDlHelper").name("showDlHelper").onChange((t=>{e.showDirectionalLightHelper(t),e.enableRender()}));let n=()=>{e.updateDirectionalLight(),e.enableRender()};yye(t,"position",o.position,n),yye(t,"target",o.target.position,n);let r=t.addFolder("shadow");r.add(o.shadow.camera,"near").name("near").onChange(n),r.add(o.shadow.camera,"far").name("far").onChange(n),r.add(o.shadow.camera,"zoom").name("zoom").onChange(n)}let l=this.viewer.hemisphereLight,h=this.gui.addFolder("Hemisphere Light");h.add(i,"hlVisible",i.hlVisible).name("visible").onChange((t=>{l&&(l.visible=t),e.enableRender()})),h.add(i,"hlIntensity",0,5).name("intensity").onChange((t=>{l&&(l.intensity=t),e.enableRender()})),h.addColor(i,"hlColor").name("color").onChange((t=>{l&&(l.color=new ct(t)),e.enableRender()})),h.addColor(i,"hlGroundColor").name("groundColor").onChange((t=>{l&&(l.groundColor=new ct(t)),e.enableRender()}));let c=this.gui.addFolder("Fog");c.add(i,"fogEnabled",i.fogEnabled).name("Enabled").onChange((n=>{t.fog=n?new Tu(i.fogColor,i.fogNearDistance,i.fogFarDistance):null,e.enableRender()})),c.add(i,"fogNearDistance",0,100).name("Near").onChange((n=>{i.fogEnabled&&t&&(t.fog=new Tu(i.fogColor,n,i.fogFarDistance)),e.enableRender()})),c.add(i,"fogFarDistance",100,2e3).name("Far").onChange((n=>{i.fogEnabled&&t&&(t.fog=new Tu(i.fogColor,i.fogNearDistance,n)),e.enableRender()}));let u=this.gui.addFolder("Composer");u.add(i,"composerEnabled",i.composerEnabled).name("Composer Enabled").onChange((t=>{e.enableComposer(t)})),u.add(i,"renderPassEnabled",i.renderPassEnabled).name("RenderPass Enabled").onChange((t=>{e.enableRenderPass(t)})),u.add(i,"fxaaEnabled",i.fxaaEnabled).name("Effect FXAA Enabled").onChange((t=>{e.enableFxaaPass(t)})),u.add(i,"saoEnabled",i.saoEnabled).name("SAO Enabled").onChange((t=>{e.enableSaoPass(t)})),u.add(i,"ssaoEnabled",i.ssaoEnabled).name("SSAO Enabled").onChange((t=>{e.enableSsaoPass(t)})),u.add(i,"outlineEnabled",i.outlineEnabled).name("OutlinePass Enabled").onChange((t=>{e.enableOutlinePass(t)})),u.add(i,"ssaaEnabled",i.ssaaEnabled).name("SSAA Enabled").onChange((t=>{e.enableSsaaPass(t)})),u.add(i,"bloomEnabled",i.bloomEnabled).name("Bloom Enabled").onChange((t=>{e.enableBloomPass(t)})),u.add(i,"unrealBloomEnabled",i.unrealBloomEnabled).name("Unreal Bloom Enabled").onChange((t=>{e.enableUnrealBloomPass(t)}));let d=this.gui.addFolder("Performance");d.add(i,"enableFastOperation",i.enableFastOperation).name("Enable Fast Operation").onChange((t=>{e.enableFastOperation=t,e.enableRender()})).setValue(e.enableFastOperation),d.add(i,"distanceCullingFactor",10,1e3).name("Distance Culling Factor").onChange((t=>{e.setDistanceCullingFactor(t),e.enableRender()})).setValue(e.getDistanceCullingFactor())}open(){this.gui&&this.gui.open()}close(){this.gui&&this.gui.close()}destroy(){super.destroy(),this.gui&&this.gui.destroy(),this.gui=void 0}},AV=class extends or{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||AV.DEFAULT_ID}),this.mouseDownPositionX=-1,this.mouseDownPositionY=-1,this.onPointerDown=e=>{let t=e.target;null!=t&&t.classList.contains("draggable")&&0===e.button&&(this.mouseDownPositionX=e.x,this.mouseDownPositionY=e.y,document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp))},this.onPointerMove=e=>{let t=this.layerMgrRoot,i=this.viewer.viewerContainer;if(!t||!i)return;let n=i.clientLeft+i.clientWidth,r=i.clientTop+i.clientHeight,a=e.x-this.mouseDownPositionX,s=e.y-this.mouseDownPositionY,o=t.offsetLeft+a,l=t.offsetTop+s;o<0&&(o=0),o>0&&o+t.clientWidth>n&&a>0&&(o=t.offsetLeft),l<0&&(l=0),l>0&&l+t.clientHeight>r&&s>0&&(l=t.offsetTop),t.style.left=`${o}px`,t.style.top=`${l}px`,this.mouseDownPositionX=e.x,this.mouseDownPositionY=e.y},this.onPointerUp=()=>{document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp)},this.cfg=t||{},!1!==this.cfg.visible&&this.init()}init(){let e=this.viewer;this.cfg.containerId&&(this.container=document.getElementById(this.cfg.containerId)),this.container||(this.container=e.widgetContainer),this.dxfLayersArray=e.getLayers(),this.buildPage(),this.addContent(),this.addEventHandlers()}setVisible(e){e&&!this.container&&this.init();let t=this.layerMgrRoot;"none"!==t.style.display!==e&&(e?(this.updatePage(),t.style.display=""):t.style.display="none",this.dispatchEvent("Visibilitychange",e))}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}destroy(){var e,t,i;super.destroy(),null==(e=this.closeBtn)||e.removeEventListener("click",this.closePanel),null==(t=this.checkboxes)||t.forEach((e=>{e.removeEventListener("change",(()=>{this.checkboxHandler(e)}))})),null==(i=this.layerMgrRoot)||i.remove()}buildPage(){var e;this.layerMgrRoot=document.createElement("div"),this.layerMgrRoot.classList.add("layer-manager");let t=document.createElement("div");t.classList.add("header","draggable"),this.headerText=document.createElement("span"),this.headerText.innerHTML="Layers",this.headerText.classList.add("draggable"),this.closeBtn=document.createElement("span"),this.closeBtn.classList.add("close"),this.closeBtn.innerHTML="X",t.appendChild(this.headerText),t.appendChild(this.closeBtn),this.layerMgrRoot.appendChild(t),this.layerList=document.createElement("div"),this.layerList.classList.add("layer-list"),this.layerMgrRoot.appendChild(this.layerList),null==(e=this.container)||e.appendChild(this.layerMgrRoot),this.updateHeaderText()}addContent(){var e;let t='\n
\n \n Color\n   Layer name\n
\n ';if(this.dxfLayersArray){let e=this.dxfLayersArray.length>1;for(let i=0;i{let i=/[a-zA-Z0-9]/,n=e.toString(),r=t.toString();return i.test(n[0])||i.test(r[0])?n>r?1:n{e.addEventListener("change",(()=>{this.checkboxHandler(e)}))}))}generateListItem(e,t,i){return`\n
\n \n
\n ${e}\n
\n `}closePanel(){this.hide()}addEventHandlers(){var e,t;null==(e=this.closeBtn)||e.addEventListener("click",this.closePanel.bind(this)),null==(t=this.layerMgrRoot)||t.addEventListener("pointerdown",this.onPointerDown)}checkboxHandler(e){var t;if(!this.dxfLayersArray||!this.checkboxes)return;let i=this.viewer;if("toggleAllLayers"===e.id){for(let t=0;t{i.setLayerVisibility(t,e.checked,n)}))}return void(null==(t=this.checkboxes)||t.forEach((t=>t.checked=e.checked)))}let n="",r=e.value,a=r.indexOf(">");-1!==a&&(n=r.slice(1,a),r=r.slice(a+2)),n||(n=this.dxfLayersArray[0].modelId),i.setLayerVisibility(r,e.checked,n)}updatePage(){if(!this.dxfLayersArray)return;let e=this.viewer.getLayers();e.length!==this.dxfLayersArray.length&&(this.dxfLayersArray=e,this.addContent(),this.updateHeaderText())}updateHeaderText(){if(!this.dxfLayersArray||!this.headerText)return;let e=0;for(let t=0;t{this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout((()=>{this.update()}),2e3)},this.onShadowRender=()=>{var e,t,i,n,r;this.shouldRender&&(this.render(),null==(e=this.shadowCamera)||e.removeFromParent(),this.shadowCamera=void 0,null==(t=this.blurPlane)||t.removeFromParent(),this.blurPlane=void 0,null==(i=this.depthMaterial)||i.dispose(),this.depthMaterial=void 0,null==(n=this.horizontalBlurMaterial)||n.dispose(),this.horizontalBlurMaterial=void 0,null==(r=this.verticalBlurMaterial)||r.dispose(),this.verticalBlurMaterial=void 0,this.shouldRender=!1)},this.cfg=t||{id:i},void 0===this.cfg.blur&&(this.cfg.blur=5),void 0===this.cfg.darkness&&(this.cfg.darkness=.8),this.viewer.addEventListener("ModelLoaded",this.onModelLoaded),this.viewer.addEventListener("BeforeRender",this.onShadowRender)}get scene(){return this.viewer.scene}get renderer(){return this.viewer.renderer}update(){this.initMaterial(),this.initRenderTarget(),this.updateGroundShadow(),this.shouldRender=!0,this.viewer.enableRender()}initMaterial(){this.depthMaterial=new _c,this.depthMaterial.userData.darkness={value:this.cfg.darkness},this.depthMaterial.onBeforeCompile=e=>{var t;e.uniforms.darkness=null==(t=this.depthMaterial)?void 0:t.userData.darkness,e.fragmentShader=`\n uniform float darkness;\n ${e.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );","gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );")}\n `},this.depthMaterial.depthTest=!1,this.depthMaterial.depthWrite=!1,this.horizontalBlurMaterial=new cn(bye),this.horizontalBlurMaterial.depthTest=!1,this.verticalBlurMaterial=new cn(Eye),this.verticalBlurMaterial.depthTest=!1}initRenderTarget(){this.renderTarget=new sr(128,128),this.renderTarget.texture.generateMipmaps=!1,this.renderTargetBlur=new sr(128,128),this.renderTargetBlur.texture.generateMipmaps=!1}updateGroundShadow(){var e,t,i;let n=this.viewer.getBBox(),r=new er;r.name="ground-shadow",Hn.disableLayerChannels(r,[12,11]),null==(e=this.scene)||e.add(r);let{min:a,max:s}=n,o=new D;n.getSize(o),o.multiplyScalar(2);let l=new D;n.getCenter(l);let h=new ui(o.x,o.z).rotateX(Math.PI/2),c=new ln({map:null==(t=this.renderTarget)?void 0:t.texture,transparent:!0,depthWrite:!1}),u=new xt(h,c);u.renderOrder=1,u.position.set(l.x,a.y,l.z),u.scale.y=-1,null==r||r.add(u),this.shadowCamera=new Nr(-o.x/2,o.x/2,o.z/2,-o.z/2,-o.y/2,o.y),this.shadowCamera.position.set(l.x,a.y,l.z),this.shadowCamera.lookAt(l.x,s.y,l.z),r.add(this.shadowCamera);let d=new xt(h);d.position.set(l.x,a.y,l.z),d.visible=!1,r.add(d),this.blurPlane=d,null==(i=this.shadowGroup)||i.removeFromParent(),this.shadowGroup=r}blurShadow(e){this.renderer&&this.blurPlane&&this.renderTarget&&this.renderTargetBlur&&this.shadowCamera&&this.horizontalBlurMaterial&&this.verticalBlurMaterial&&(this.blurPlane.visible=!0,this.blurPlane.material=this.horizontalBlurMaterial,this.horizontalBlurMaterial.uniforms.tDiffuse.value=this.renderTarget.texture,this.horizontalBlurMaterial.uniforms.h.value=1*e/256,this.renderer.setRenderTarget(this.renderTargetBlur),this.renderer.render(this.blurPlane,this.shadowCamera),this.blurPlane.material=this.verticalBlurMaterial,this.verticalBlurMaterial.uniforms.tDiffuse.value=this.renderTargetBlur.texture,this.verticalBlurMaterial.uniforms.v.value=1*e/256,this.renderer.setRenderTarget(this.renderTarget),this.renderer.render(this.blurPlane,this.shadowCamera),this.blurPlane.visible=!1)}render(){if(!(this.renderer&&this.scene&&this.renderTarget&&this.shadowCamera&&this.depthMaterial))return;let e=this.scene.background;this.scene.background=null,this.scene.overrideMaterial=this.depthMaterial;let t=this.renderer.getClearAlpha();this.renderer.setClearAlpha(0),this.renderer.setRenderTarget(this.renderTarget),this.renderer.render(this.scene,this.shadowCamera),this.scene.overrideMaterial=null,this.blurShadow(this.cfg.blur),this.blurShadow(.4*this.cfg.blur),this.renderer.setRenderTarget(null),this.renderer.setClearAlpha(t),this.scene.background=e}destroy(){var e,t,i,n,r,a,s;super.destroy(),this.viewer.removeEventListener("ModelLoaded",this.onModelLoaded),this.viewer.removeEventListener("BeforeRender",this.onShadowRender),null==(e=this.shadowCamera)||e.removeFromParent(),this.shadowCamera=void 0,null==(t=this.blurPlane)||t.removeFromParent(),this.blurPlane=void 0,null==(i=this.depthMaterial)||i.dispose(),this.depthMaterial=void 0,null==(n=this.horizontalBlurMaterial)||n.dispose(),this.horizontalBlurMaterial=void 0,null==(r=this.verticalBlurMaterial)||r.dispose(),this.verticalBlurMaterial=void 0,null==(a=this.renderTarget)||a.dispose(),this.renderTarget=void 0,null==(s=this.renderTargetBlur)||s.dispose(),this.renderTargetBlur=void 0}},CV=PV;CV.DEFAULT_ID="GroundShadowPlugin";var _ye=class extends or{constructor(e){super(e,{id:"HotpointPlugin"}),this.onAfterRender=()=>{var e;let t=this.viewer.scene,i=this.viewer.camera;!t||!i||!this.hotpointRoot||0===this.hotpointRoot.children.length||null==(e=this.css2dRenderer)||e.render(t,i)},this.css2dRenderer=this.viewer.css2dRenderer,this.viewer.addEventListener("AfterRender",this.onAfterRender)}add(e){var t;if(this.has(e.hotpointId))return void se.warn(`[Hotpoint] Hotpoint with id '${e.hotpointId}' already exist!`);let i=e.anchorPosition,n=Mf.createHotpoint(e.html);n.position.set(i[0]||0,i[1]||0,i[2]||0),n.visible=!1!==e.visible,n.userData.hotpoint=e,this.hotpointRoot||(this.hotpointRoot=new er,this.hotpointRoot.matrixAutoUpdate=!1,this.hotpointRoot.matrixWorldAutoUpdate=!1,this.hotpointRoot.name="HotpointRoot",null==(t=this.viewer.scene)||t.add(this.hotpointRoot)),this.hotpointRoot.add(n),n.updateWorldMatrix(!1,!1),this.viewer.enableRender()}remove(e){var t,i;let n=(null==(t=this.hotpointRoot)?void 0:t.children)||[];for(let r=0;r{var i;return(null==(i=t.userData.hotpoint)?void 0:i.hotpointId)===e}))}},Fs=Xi(Tye(),1),ai=Xi(r1e(),1),r8={Fill:"Fill",Stroke:"Stroke",Shading:"Shading"},Ql={Fill:0,Stroke:1,FillStroke:2,Invisible:3,FillAddToPath:4,StrokeAddToPath:5,FillStrokeAddToPath:6,AddToPath:7,FillStrokeMask:3,AddToPathFlag:4},i1e=16,s1e=100,i8=[1,0,0,1,0,0],s8=[.001,0,0,.001,0,0],Y0t={},a1e={},o1e=new ct,X2=new et,l1e=0,$0t=.01,a8=class extends Er{constructor(e){if(super(),this.contentVisible=!0,this.markedContentStack=[],this.stateStack=[],this.current=new Y2(1,1),this.tempSMask=null,this.pendingEOFill=!1,this.activeLayoutName="Model",this.defaultLayerId="0",this.currentLayerId="0",this.layers={0:{name:"0",id:"0",index:"0",visible:!0}},this.loadedEntityCount=0,this.viewportScale=1,this.baseTransform=new et,this.currentTransform=new et,this.transformStack=[],this.clipType=Fs.PolyFillType.pftNonZero,this.paths=[],this.pointsMaterials={},this.lineBasicMaterials={},this.meshBasicMaterials={},this.lineWithWidthCount=0,void 0===ai)throw"[PdfLoader] need load pdf.js first";"3.8.162"!==ai.version&&se.warn("[PdfLoader] The pdf.js version we are using now is 3.8.162,if not maybe wrong."),this.fontManager=e.font,ai.GlobalWorkerOptions.workerSrc=e.pdfWorker}load(e,t,i,n){this.loadAsync(e,i).then((e=>{t(e)})).catch((e=>{n(e)}))}loadAsync(e,t){return ft(this,null,(function*(){var i,n,r;let a=St.getUpdateProgressFunc(t),s=St.getUpdateSubProgressFunc(0,10,t),o=St.getUpdateSubProgressFunc(30,90,t);a(0);let{src:l}=e;this.modelCfg=e;let h=e.modelId||l,c=Date.now(),u=ai.getDocument(l);u.onProgress=s;let d=yield u.promise;this.pdf=d,se.info(`[PdfLoader] Pdf document loaded in ${(Date.now()-c)/1e3}s`),c=Date.now(),se.log(d),this.pdfDocumentGroup=new er,this.pdfDocumentGroup.name=`PdfDocument-${h}`,this.optionalContentConfig=yield d.getOptionalContentConfig(),d.numPages>1&&se.info("[PdfLoader] Only the first page can be render others will be ignore.");let p=yield d.getPage(1);a(20),se.info(`[PdfLoader] Pdf page loaded in ${(Date.now()-c)/1e3}s`),c=Date.now(),se.log(p),this.pdfPage=p,this.pdfPageGroup=new er,this.pdfPageGroup.name=a8.MODEL_LAYOUT_NAME,this.pdfDocumentGroup.add(this.pdfPageGroup),this.commonObjs=d._transport.commonObjs,this.objs=p.objs,yield null==(i=this.fontManager)?void 0:i.getFontFromIndexeddb(),se.log("[PdfLoader] Font loaded.");let f=p.view,m=8192/Math.max(f[2]-f[0],f[3]-f[1]),g=Math.min(300/72,m),v=p.getViewport({scale:g});return this.beginDrawing(v),this.current=new Y2(v.width,v.height),yield this.buildLayers(p),a(30),yield this.getOperatorList(o),null!=(n=this.fontManager)&&n.missingFonts&&se.warn("[PdfLoader] Missing fonts and reference count:",null==(r=this.fontManager)?void 0:r.missingFonts,", used other fonts instead."),this.lineWithWidthCount>0&&se.warn(`[PdfLoader] Found ${this.lineWithWidthCount} line(s) with width, line width is not supported and was ignored.`),a(100),se.info(`[PdfLoader] Loaded '${e.src}' in ${(Date.now()-c)/1e3}s, adding to scene...`),{modelId:h,pdfData:{threejsObject:this.pdfDocumentGroup,layers:this.layers||[],layersAndThreejsObjects:this.layersAndThreejsObjects,loadedEntityCount:this.loadedEntityCount}}}))}getOperatorList(e){return ft(this,null,(function*(){let t=this.pdfPage;if(!t)return;let i,n=ai.AnnotationMode.ENABLE,r=t._transport.getRenderingIntent("display",n,null,!0),a=t._intentStates.get(r.cacheKey);return a||(a=Object.create(null),t._intentStates.set(r.cacheKey,a)),a.opListReadCapability||(i=Object.create(null),i.operatorListChanged=function(){a.operatorList.lastChunk&&(a.opListReadCapability.resolve(a.operatorList),a.renderTasks.delete(i))},a.opListReadCapability=new ai.PromiseCapability,(a.renderTasks||(a.renderTasks=new Set)).add(i),a.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null}),yield this._pumpOperatorList(r,e)}))}_pumpOperatorList(e,t){return ft(this,null,(function*(){var i,n;let r=this.pdfPage;if(!r)return;let{renderingIntent:a,cacheKey:s,annotationStorageSerializable:o}=e,{map:l,transfers:h}=o,c=r._transport.messageHandler.sendWithStream("GetOperatorList",{pageIndex:r._pageIndex,intent:a,cacheKey:s,annotationStorage:l},h).getReader(),u=r._intentStates.get(s);u.streamReader=c;let d=u.operatorList.argsArray.length,p=d<3e3;se.info(`[PdfLoader] Operation count: ${d}, isVerboseProgress: ${p}`);let f=0,m=St.getUpdateProgressFunc(t);for(m(0);;)try{let{value:e,done:a}=yield c.read();if(a)return u.streamReader=null,void m(100);if(r._transport.destroyed)return;let s=e,o=s.argsArray.length,l=100*f/d,h=100*(f+o)/d;if(p){let e=St.getUpdateSubProgressFunc(l,h,t);yield this.executeOperatorList(s,e)}else yield this.executeOperatorList(s),m(h);null==(i=this.pdfPageGroup)||i.updateMatrixWorld(!0),null!=(n=this.modelCfg)&&n.merge&&this.mergePdfObjects(),s.lastChunk&&this.endDrawing(),f+=o}catch(e){if(u.streamReader=null,r._transport.destroyed)return;if(u.operatorList){u.operatorList.lastChunk=!0;for(let e of u.renderTasks)e.operatorListChanged();this.tryCleanup()}if(u.displayReadyCapability)u.displayReadyCapability.reject(e);else{if(!u.opListReadCapability)throw e;u.opListReadCapability.reject(e)}}}))}tryCleanup(){let e=this.pdfPage;e&&e._intentStates.clear()}mergePdfObjects(){for(let e in this.layersAndThreejsObjects){let t=this.layersAndThreejsObjects[e];if(t.length<=1)continue;let i=Rr.deepMerge(t,this.pdfPageGroup,!1,!1,!1),n=i.added,r=i.removed;r.forEach((e=>{var t,i;null==(t=this.pdfPageGroup)||t.remove(e);let n=e;n.geometry.dispose(),n.material.dispose(),null==(i=n.material.map)||i.dispose()})),n.forEach((e=>{var t;null==(t=this.pdfPageGroup)||t.add(e)}));let a=t.filter((e=>!r.includes(e)));a.push(...n),this.layersAndThreejsObjects[e]=a}}getPointsMaterial(e,t=1){return this.pointsMaterials[`${e}-${t}`]||(this.pointsMaterials[`${e}-${t}`]=new bi({color:e,transparent:!0,opacity:t})),this.pointsMaterials[`${e}-${t}`]}getLineBasicMaterial(e,t=1){return this.lineBasicMaterials[`${e}-${t}`]||(this.lineBasicMaterials[`${e}-${t}`]=new Gn({color:e,transparent:!0,opacity:t})),this.lineBasicMaterials[`${e}-${t}`]}getMeshBasicMaterial(e,t=1){return this.meshBasicMaterials[`${e}-${t}`]||(this.meshBasicMaterials[`${e}-${t}`]=new ln({color:e,transparent:!0,opacity:t,side:Sr})),this.meshBasicMaterials[`${e}-${t}`]}getTransformByMatrix4(e){return[e.elements[0],e.elements[1],e.elements[4],e.elements[5],e.elements[12],e.elements[13]]}getObject(e,t=null){return"string"==typeof e?e.startsWith("g_")?this.commonObjs.get(e):this.objs.get(e):t}beginDrawing(e){var t,i,n;se.log("beginDrawing",e),this.viewportScale=e.scale;let[r,a,s,o,l,h]=e.transform;this.baseTransform.set(r,s,0,l,a,o,0,h,0,0,1,0,0,0,0,1),this.currentTransform.copy(this.baseTransform),null==(t=this.pdfDocumentGroup)||t.applyMatrix4(this.baseTransform),null==(i=this.pdfDocumentGroup)||i.rotateZ(Rn.degToRad(-e.rotation));let{width:c,height:u}=e,d=(new Dt).setFromPoints([new D(0,0,0),new D(c,0,0),new D(c,u,0),new D(0,0,0),new D(c,u,0),new D(0,u,0)]),p=new ln({color:16777215}),f=new xt(d,p);f.renderOrder=-999,null==(n=this.pdfDocumentGroup)||n.add(f)}endDrawing(){var e;null==(e=this.pdfPageGroup)||e.updateMatrixWorld(!0),this.tryCleanup(),this.releaseData()}releaseData(){var e;null==(e=this.fontManager)||e.releaseFontData(),this.operatorList=void 0,this.optionalContentConfig=void 0,this.commonObjs=void 0,this.objs=void 0,this.pdfPage=void 0,this.pdf=void 0}buildLayers(e){return ft(this,null,(function*(){if(!this.pdf)return;let t=yield e.getOperatorList(),i=t.fnArray,n=t.argsArray,r={},a=1;for(let e=0;i&&e1&&this.lineWithWidthCount++}setLineCap(e){this.current.lineCap=e}setLineJoin(e){this.current.lineJoin=e}setMiterLimit(e){this.current.miterLimit=e}setDash(e,t){}setRenderingIntent(e){}setFlatness(e){}setGState(e){for(let[t,i]of e)switch(t){case"LW":this.setLineWidth(i);break;case"LC":this.setLineCap(i);break;case"LJ":this.setLineJoin(i);break;case"ML":this.setMiterLimit(i);break;case"D":this.setDash(i[0],i[1]);break;case"RI":this.setRenderingIntent(i);break;case"FL":this.setFlatness(i);break;case"Font":this.setFont(i[0],i[1]);break;case"CA":this.current.strokeAlpha=i;break;case"ca":this.current.fillAlpha=i;break;case"BM":case"TR":break;case"SMask":this.current.activeSMask=i?this.tempSMask:null,this.tempSMask=null}}save(){let e=this.current;this.transformStack.push(this.currentTransform.clone()),this.stateStack.push(e),this.current=e.clone()}restore(){0!==this.stateStack.length&&(this.current=this.stateStack.pop()),0!==this.transformStack.length&&this.currentTransform.copy(this.transformStack.pop()),this.pendingClip=null,this.paths=[]}transform(e,t,i,n,r,a){let s=X2.set(e,i,0,r,t,n,0,a,0,0,1,0,0,0,0,1);this.currentTransform.multiply(s)}moveTo(){}lineTo(){}curveTo(){}curveTo2(){}curveTo3(){}closePath(){this.currentPath&&this.currentPath.curves.length>0&&(this.currentPath.closePath(),this.paths.push(this.currentPath.clone()),this.currentPath=void 0)}rectangle(){}stroke(e=!0){if(this.contentVisible){let e=this.current.strokeColor,t=this.current.strokeAlpha,i=[],n=[];for(let r=0;r0){let n=Ui(i),r=new ii(n,this.getPointsMaterial(e,t));this.addObjectToModel(r)}if(n.length>0){let i=Ui(n),r=new fr(i,this.getLineBasicMaterial(e,t));this.addObjectToModel(r)}}e&&this.consumePath(this.current.getClippedPathBoundingBox())}closeStroke(){this.closePath(),this.stroke()}fill(e=!0){if(0===this.paths.length)return;this.current.patternFill&&se.warn("[PdfLoader] fill pattern not supported now.");let t=this.current.getClippedPathBoundingBox();if(this.contentVisible&&null!==t){let e,t=[];if(this.clipPaths){let e=new Fs.PolyTree,i=new Fs.Clipper,n=this.paths.map((e=>e.getPoints().map((e=>({X:e.x,Y:e.y}))))),r=this.clipPaths.map((e=>e.getPoints().map((e=>({X:e.x,Y:e.y}))))),a=100;Fs.JS.ScaleUpPaths(n,a),Fs.JS.ScaleUpPaths(r,a),i.AddPaths(n,Fs.PolyType.ptSubject,!0),i.AddPaths(r,Fs.PolyType.ptClip,!0),i.Execute(Fs.ClipType.ctIntersection,e,this.pendingEOFill?Fs.PolyFillType.pftEvenOdd:Fs.PolyFillType.pftNonZero,this.clipType);let s=Fs.JS.PolyTreeToExPolygons(e);for(let o=0;onew xe(e.X/a,e.Y/a)))),i.length>0&&i.forEach((e=>{let t=new _s;t.setFromPoints(e.map((e=>new xe(e.X/a,e.Y/a)))),n.holes.push(t)})),t.push(n)}this.clipPaths=void 0}e=t.length>0?new Rl(t):Ui(this.paths.map((e=>new Rl(e)))),e.applyMatrix4(this.currentTransform);let i=this.current.fillColor,n=this.current.fillAlpha,r=new xt(e,this.getMeshBasicMaterial(i,n));this.addObjectToModel(r),this.pendingEOFill=!1}e&&this.consumePath(t)}eoFill(){this.pendingEOFill=!0,this.fill()}fillStroke(){this.fill(!1),this.consumePath()}eoFillStroke(){this.pendingEOFill=!0,this.fillStroke()}closeFillStroke(){this.closePath(),this.fillStroke()}closeEOFillStroke(){this.pendingEOFill=!0,this.closePath(),this.fillStroke()}endPath(){this.consumePath()}clip(){this.pendingClip=Y0t}eoClip(){this.pendingClip=a1e}beginText(){this.current.textMatrix=i8,this.current.textMatrixScale=1,this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}endText(){this.currentPath=new _s}setCharSpacing(e){this.current.charSpacing=e}setWordSpacing(e){this.current.wordSpacing=e}setHScale(e){this.current.textHScale=e/100}setLeading(e){this.current.leading=-e}setFont(e,t){let i=this.commonObjs.get(e),n=this.current;if(!i)throw new Error(`Can't find font for ${e}`);if(n.fontMatrix=i.fontMatrix||s8,(0===n.fontMatrix[0]||0===n.fontMatrix[3])&&se.warn("Invalid font matrix for font "+e),t<0?(t=-t,n.fontDirection=-1):n.fontDirection=1,this.current.font=i,this.current.fontSize=t,i.isType3Font)return;let r=t;ts1e&&(r=s1e),this.current.fontSizeScale=t/r,this.current.browserFontSize=r}setTextRenderingMode(e){this.current.textRenderingMode=e}setTextRise(e){this.current.textRise=e}moveText(e,t){this.current.x=this.current.lineX+=e,this.current.y=this.current.lineY+=t}setLeadingMoveText(){}setTextMatrix(e,t,i,n,r,a){this.current.textMatrix=[e,t,i,n,r,a],this.current.textMatrixScale=Math.hypot(e,t),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}nextLine(){this.moveText(0,this.current.leading)}paintChar(e,t,i){var n,r,a,s;se.log("paintChar",e,t,i);let o,l,h=this.current,c=h.font,u=h.textRenderingMode,d=h.fontSize/h.fontSizeScale,p=u&Ql.FillStrokeMask,f=!!(u&Ql.AddToPathFlag),m=h.patternFill&&!c.missingFile;return(c.disableFontFace||f||m)&&(o=c.getPathGenerator(this.commonObjs,e)),c.disableFontFace||m?se.log("paintChar path:",o,d,p):((p===Ql.Fill||p===Ql.FillStroke)&&(l=null==(r=this.fontManager)?void 0:r.getCharShape(e,null==(n=this.current.font)?void 0:n.name,.8*this.current.browserFontSize)),(p===Ql.Stroke||p===Ql.FillStroke)&&(l=null==(s=this.fontManager)?void 0:s.getCharShape(e,null==(a=this.current.font)?void 0:a.name,.8*this.current.browserFontSize))),l}showText(e){var t,i;let n=this.current,r=n.font;if(r.isType3Font)return this.showType3Text(e);let a=n.fontSize;if(0===a)return;let s=n.fontSizeScale,o=n.charSpacing,l=n.wordSpacing,h=n.fontDirection,c=n.textHScale*h,u=e.length,d=r.vertical,p=d?1:-1,f=r.defaultVMetrics,m=a*n.fontMatrix[0],g=n.textRenderingMode===Ql.Fill&&!r.disableFontFace&&!n.patternFill,[v,y,x,b,_,w]=n.textMatrix,S=this.currentTransform.clone();S.multiply(X2.set(v,x,0,_,y,b,0,w,0,0,1,0,0,0,0,1)),S.multiply(X2.makeTranslation(n.x,n.y+n.textRise,0)),h>0?S.scale(new D(c,1,1)):S.scale(new D(c,-1,1));let M=n.lineWidth,E=n.textMatrixScale;0===E||0===M?(n.textRenderingMode&Ql.FillStrokeMask)===Ql.Stroke||Ql.FillStroke:M/=E,1!==s&&(S.scale(new D(s,s,1)),M/=s);let T,A=0,C=[];for(T=0;T0){let e,t=C[0]instanceof Qs,i=Ui(C);e=t?new xt(i,this.getMeshBasicMaterial(this.current.fillColor)):new qr(i,this.getLineBasicMaterial(this.current.fillColor)),e&&(this.addObjectToModel(e),e.layers.disable(11))}d?n.y-=A:n.x+=A*c}showType3Text(e){}setCharWidth(e,t){}setCharWidthAndBounds(e,t,i,n,r,a){}setStrokeColor(){}setStrokeColorN(){}setFillColorN(){this.current.patternFill=!0}setStrokeRGBColor(e,t,i){this.current.strokeColor=o1e.setRGB(e/255,t/255,i/255).convertSRGBToLinear().getHex()}setFillRGBColor(e,t,i){this.current.fillColor=o1e.setRGB(e/255,t/255,i/255).convertSRGBToLinear().getHex(),this.current.patternFill=!1}shadingFill(){}beginInlineImage(){}beginImageData(){}markPoint(e){}markPointProps(e,t){}beginMarkedContent(e){se.log("beginMarkedContent",e),this.markedContentStack.push({visible:!0})}beginMarkedContentProps(e,t){if("OC"===e){this.markedContentStack.push({visible:this.optionalContentConfig.isVisible(t)});let e=this.optionalContentConfig.getGroup(null==t?void 0:t.id);this.currentLayerId=(null==e?void 0:e.name)||this.defaultLayerId}else this.markedContentStack.push({visible:!0});this.contentVisible=this.isContentVisible()}endMarkedContent(){this.markedContentStack.pop(),this.contentVisible=this.isContentVisible()}beginCompat(){}endCompat(){}consumePath(e){let t=this.current.isEmptyClip();this.pendingClip&&this.current.updateClipFromPath(),this.pendingClip,this.pendingClip&&(t||(this.pendingClip===a1e?this.clipType=Fs.PolyFillType.pftEvenOdd:this.clipType=Fs.PolyFillType.pftNonZero,this.clipPaths=this.paths.slice()),this.pendingClip=null),this.current.startNewPathAndClipBox(this.current.clipBox),this.paths=[],this.currentPath=void 0}paintFormXObjectBegin(e,t){se.log("paintFormXObjectBegin",e,t)}paintFormXObjectEnd(){}beginGroup(){}endGroup(){}beginAnnotation(){}endAnnotation(){}paintImageMaskXObject(){}paintImageMaskXObjectGroup(){}paintImageXObject(e){if(!this.contentVisible)return;let t=this.getObject(e);t?this.paintInlineImageXObject(t):se.warn("Dependent image isn't ready yet")}paintInlineImageXObject(e){if(!this.contentVisible)return;se.log("paintInlineImageXObject",e),this.save();let{bitmap:t,width:i,height:n}=e;this.currentTransform.multiply(X2.makeScale(1/i,-1/n,1));let r=new wb(t),a=new ln({map:r,transparent:!0}),s=new ui(i,n),o=new xt(s,a);o.translateX(i/2),o.translateY(-n/2),o.applyMatrix4(this.currentTransform),this.addObjectToModel(o),this.restore()}paintInlineImageXObjectGroup(){}paintImageXObjectRepeat(){}paintImageMaskXObjectRepeat(){}paintSolidColorImageMask(){}_scaleImage(e,t){let i=e.width,n=e.height,r=Math.max(Math.hypot(t.elements[0],t.elements[4]),1),a=Math.max(Math.hypot(t.elements[1],t.elements[5]),1),s=i,o=n,l=s,h=o;for(;r>2&&s>1||a>2&&o>1;)r>2&&s>1&&(l=s>=16384?Math.floor(s/2)-1||1:Math.ceil(s/2),r/=s/l),a>2&&o>1&&(h=o>=16384?Math.floor(o/2)-1||1:Math.ceil(o)/2,a/=o/h),s=l,o=h;return{paintWidth:s,paintHeight:o}}constructPath(e,t,i){let n,r,a=this.current,s=a.x,o=a.y,l=[this.currentTransform.elements[0],this.currentTransform.elements[1],this.currentTransform.elements[4],this.currentTransform.elements[5],this.currentTransform.elements[12],this.currentTransform.elements[13]],h=0===l[0]&&0===l[3]||0===l[1]&&0===l[2],c=h?i.slice(0):null;for(let u=0,d=0,p=e.length;u=0;e--)if(!this.markedContentStack[e].visible)return!1;return!0}},sh=a8;sh.MODEL_LAYOUT_NAME="Model";for(let t in ai.OPS)void 0!==sh.prototype[t]&&(sh.prototype[ai.OPS[t]]=sh.prototype[t]);var Y2=class{constructor(e,t){this.textMatrix=i8,this.fontMatrix=s8,this.textRenderingMode=Ql.Fill,this.fillColor=0,this.strokeColor=0,this.activeSMask=null,this.lineCap=0,this.lineJoin=0,this.miterLimit=0,this.alphaIsShape=!1,this.fontSize=0,this.fontSizeScale=1,this.browserFontSize=1,this.textMatrix=i8,this.textMatrixScale=1,this.fontMatrix=s8,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRenderingMode=Ql.Fill,this.textRise=0,this.fillColor=0,this.strokeColor=0,this.patternFill=!1,this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.activeSMask=null,this.transferMaps="none",this.ctxMatrix=new Ln,this.clipBox=[0,0,e,t],this.minX=1/0,this.minY=1/0,this.maxX=0,this.maxY=0}clone(){return Object.create(this)}setCurrentPoint(e,t){this.x=e,this.y=t}startNewPathAndClipBox(e){this.clipBox=e,this.minX=1/0,this.minY=1/0,this.maxX=0,this.maxY=0}updatePathMinMax(e,t,i){[t,i]=ai.Util.applyTransform([t,i],e),this.minX=Math.min(this.minX,t),this.minY=Math.min(this.minY,i),this.maxX=Math.max(this.maxX,t),this.maxY=Math.max(this.maxY,i)}getPathBoundingBox(e=r8.Fill,t=null){let i=[this.minX,this.minY,this.maxX,this.maxY];if(e===r8.Stroke){if(!t)throw new Error("Stroke bounding box must include transform.");let e=ai.Util.singularValueDecompose2dScale(t),n=e[0]*this.lineWidth/2,r=e[1]*this.lineWidth/2;i[0]-=n,i[1]-=r,i[2]+=n,i[3]+=r}return i}updateRectMinMax(e,t){let i=ai.Util.applyTransform(t,e),n=ai.Util.applyTransform(t.slice(2),e);this.minX=Math.min(this.minX,i[0],n[0]),this.minY=Math.min(this.minY,i[1],n[1]),this.maxX=Math.max(this.maxX,i[0],n[0]),this.maxY=Math.max(this.maxY,i[1],n[1])}updateScalingPathMinMax(e,t){ai.Util.scaleMinMax(e,t),this.minX=Math.min(this.minX,t[0]),this.maxX=Math.max(this.maxX,t[1]),this.minY=Math.min(this.minY,t[2]),this.maxY=Math.max(this.maxY,t[3])}updateCurvePathMinMax(e,t,i,n,r,a,s,o,l,h){let c=ai.Util.bezierBoundingBox(t,i,n,r,a,s,o,l);if(h)return h[0]=Math.min(h[0],c[0],c[2]),h[1]=Math.max(h[1],c[0],c[2]),h[2]=Math.min(h[2],c[1],c[3]),void(h[3]=Math.max(h[3],c[1],c[3]));this.updateRectMinMax(e,c)}updateClipFromPath(){let e=ai.Util.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(e||[0,0,0,0])}isEmptyClip(){return this.minX===1/0}getClippedPathBoundingBox(e=r8.Fill,t=null){return ai.Util.intersect(this.clipBox,this.getPathBoundingBox(e,t))||[]}},l8=class extends or{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||l8.DEFAULT_ID}),this.cfg=t||{}}loadAsync(e,t){return ft(this,null,(function*(){let i=this.viewer;i.increaseJobCount();let n=this.cfg.font,r=this.cfg.pdfWorker,a=yield new sh({font:n,pdfWorker:r}).loadAsync(e,t);return i.decreaseJobCount(),a}))}},o8=l8;o8.DEFAULT_ID="PdfLoaderPlugin";var c1e=class extends gp{constructor(e,t){super(t),this.pdfWorker="",this.defaultModelConfig={src:"",merge:!0},this.viewer=e}setPdfWorker(e){this.pdfWorker=e}formats(){return["dxf","pdf"]}uploadFiles(e){for(let t=0;t{let i=Math.floor(100*t.loaded/t.total);se.info(`[Uploader] Loading ${null==e?void 0:e.name}, ${i}%`)}))}))}uploadSinglePdf(e){return ft(this,null,(function*(){let t=t=>{let i=Math.floor(100*t.loaded/t.total);se.info(`[Uploader] Loading ${null==e?void 0:e.name}, ${i}%`)};try{let i=this.viewer;i.increaseJobCount();let n={font:i.fontManager,pdfWorker:this.pdfWorker},r={merge:!0,src:URL.createObjectURL(e),modelId:e.name};new sh(n).loadAsync(r,t).then((e=>{this.viewer.addModel(e),this.onSuccess&&this.onSuccess({}),i.decreaseJobCount(),se.info(`[Uploader] Loaded model '${r.src}'`)}))}catch(e){se.info(e)}}))}},u1e=class extends gp{constructor(e,t){super(t),this.viewer=e}formats(){return["png","jpg","jpeg"]}uploadFiles(e){let t={panoramas:[],id:"viewpoint_1",name:"",position:[0,1,0],initialDirection:[0,0,1]};if(1===e.length){let i=[];i.push(URL.createObjectURL(e[0])),t.panoramas.push({id:"panorama_1",images:i}),this.viewer.setViewpoints([t]),this.viewer.activatePanoramaById(t.id,t.panoramas[0].id)}else if(6===e.length){let i=t=>{let i="";for(let n=0;n({position:new D(e,t,i),rotation:new Xn(n,r,a)}),Z0t={Front:Ii(Tr({},Ys([0,0,1],[0,0,0])),{label:"NavCube.front"}),Right:Ii(Tr({},Ys([1,0,0],[0,gi,0])),{label:"NavCube.right"}),Back:Ii(Tr({},Ys([0,0,-1],[0,Math.PI,0])),{label:"NavCube.back"}),Left:Ii(Tr({},Ys([-1,0,0],[0,-gi,0])),{label:"NavCube.left"}),Top:Ii(Tr({},Ys([0,1,0],[-gi,0,0])),{label:"NavCube.top"}),Bottom:Ii(Tr({},Ys([0,-1,0],[gi,0,0])),{label:"NavCube.bottom"})},K0t=[Ys([0,1,1],[-Ur,0,-gi]),Ys([0,1,-1],[-3*Ur,0,-gi]),Ys([0,-1,1],[Ur,0,-gi]),Ys([0,-1,-1],[3*Ur,0,-gi]),Ys([1,1,0],[-gi,Ur,0]),Ys([1,-1,0],[-gi,3*Ur,0]),Ys([-1,1,0],[-gi,-Ur,0]),Ys([-1,-1,0],[-gi,-3*Ur,0]),Ys([1,0,1],[0,Ur,0]),Ys([1,0,-1],[0,3*Ur,0]),Ys([-1,0,1],[0,-Ur,0]),Ys([-1,0,-1],[0,-3*Ur,0])],J0t=[{position:new D(1,1,1),rotation:[new Xn(-gi,gi,-Ur),new Xn(-gi,0,Ur),new Xn(0,0,3*Ur)]},{position:new D(1,1,-1),rotation:[new Xn(0,gi,3*Ur),new Xn(-gi,0,3*Ur),new Xn(0,Math.PI,-3*Ur)]},{position:new D(-1,1,-1),rotation:[new Xn(Math.PI,-gi,Ur),new Xn(-gi,0,-3*Ur),new Xn(0,Math.PI,3*Ur)]},{position:new D(-1,1,1),rotation:[new Xn(0,-gi,3*Ur),new Xn(-gi,0,-Ur),new Xn(0,0,-3*Ur)]},{position:new D(1,-1,1),rotation:[new Xn(0,gi,-Ur),new Xn(-gi,Math.PI,-Ur),new Xn(0,0,Ur)]},{position:new D(1,-1,-1),rotation:[new Xn(-gi,gi,3*Ur),new Xn(gi,0,Ur),new Xn(0,Math.PI,-Ur)]},{position:new D(-1,-1,1),rotation:[new Xn(0,-gi,Ur),new Xn(gi,0,-3*Ur),new Xn(0,0,-Ur)]},{position:new D(-1,-1,-1),rotation:[new Xn(0,-gi,-Ur),new Xn(gi,0,-Ur),new Xn(0,Math.PI,Ur)]}],$2=class extends on{constructor(e={}){super(),this.NAVCUBE_SIZE=100,this.clickHandler=e.onClick,(0,vg.forEach)(Z0t,(e=>{this.createPlane(e)})),(0,vg.forEach)(K0t,(e=>{this.createEdge(e)})),(0,vg.forEach)(J0t,((e,t)=>{this.createCorner(e,t)}))}createPlane(e){let t=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2),{rotation:i,label:n}=e,r=document.createElement("div");r.style.width=this.NAVCUBE_SIZE+"px",r.style.height=this.NAVCUBE_SIZE+"px",r.classList.add("navcube-plane"),r.classList.add("outer");let a=document.createElement("div");a.style.width=this.NAVCUBE_SIZE-4+"px",a.style.height=this.NAVCUBE_SIZE-4+"px",a.innerHTML=Qu(n),a.classList.add("navcube-plane"),a.classList.add("inner"),r.appendChild(a);let s=new fg(r);s.position.copy(t),s.rotation.copy(i),this.add(s),r.addEventListener("click",(()=>{this.clickHandler&&this.clickHandler(t.clone().normalize(),i)}))}createEdge(e){let t=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2),i=document.createElement("div");i.style.width="4px",i.style.height=this.NAVCUBE_SIZE-40+"px",i.style.background=h1e,i.classList.add("navcube-edge");let n=new fg(i);n.position.copy(t),n.rotation.copy(e.rotation),this.add(n),i.addEventListener("click",(()=>{this.clickHandler&&this.clickHandler(t.clone().normalize(),e.rotation)}))}createCorner(e,t){let i=i=>{i.addEventListener("click",(()=>{this.clickHandler&&this.clickHandler(e.position.clone().normalize(),new Xn)})),i.addEventListener("mouseenter",(()=>{let e=document.getElementsByClassName("group-"+t);(0,vg.forEach)(e,(e=>{e instanceof HTMLElement&&e.classList.add("highlight")}))})),i.addEventListener("mouseleave",(()=>{let e=document.getElementsByClassName("group-"+t);(0,vg.forEach)(e,(e=>{e instanceof HTMLElement&&e.classList.remove("highlight")}))}))},n=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2+.5),r=document.createElement("div");r.style.borderTop=14*Math.sqrt(3)+"px solid #efefef",r.style.borderLeft="14px solid transparent",r.style.borderRight="14px solid transparent",r.classList.add("navcube-corner"),r.classList.add("group-"+t);let a=new fg(r);a.position.copy(n).lerp(e.position,.14);let s=Math.atan2(n.z,n.x);a.rotateY(n.z*n.x<0?Math.PI+s:s);let o=(new Xn).setFromVector3(n.clone().normalize());a.rotateX(-o.y),n.y<0&&a.rotateZ(Math.PI),this.add(a);let l=(t,r,a)=>{let s=document.createElement("div");s.style.borderTop=`13px solid ${h1e}`,s.style.borderLeft="13px solid transparent",s.style.borderRight="13px solid transparent",s.classList.add("navcube-corner-plane"),s.classList.add("group-"+r);let o=new fg(s),l=e.position.clone();l.setComponent(a,0),o.position.copy(n).sub(l),o.rotateX(t.x),o.rotateY(t.y),o.rotateZ(t.z),this.add(o),i(s)};(0,vg.forEach)(e.rotation,((e,i)=>{l(e,t,i)})),i(r)}},u8=class extends or{constructor(e,t){super(e,{id:(null==t?void 0:t.id)||u8.DEFAULT_ID}),this.cfg=t||{},this.init()}init(){this.initRenderer(),this.initScene(),this.animate()}initRenderer(){var e;let t,i=135,n=135;if(this.cfg.containerId&&(t=document.getElementById(this.cfg.containerId),t&&(i=t.clientWidth,n=t.clientHeight)),!t){let i="navCube";t=document.createElement("div"),t.id=i,null==(e=this.viewer.widgetContainer)||e.appendChild(t)}this.renderer=new g2,this.renderer.setSize(i,n),this.renderer.domElement.classList.add("css3d-navcube"),t.appendChild(this.renderer.domElement)}initScene(){this.scene=new Si;let e=window.innerWidth/window.innerHeight;this.camera=new Nr(200*e/-2,200*e/2,100,-100,1,1e3),this.camera.position.set(-200,200,200),this.scene.add(this.camera),this.navCube=new $2({onClick:e=>{let t=this.viewer.controls;if(!(this.camera&&e&&this.viewer.camera&&t))return;let i=t instanceof va?t.getTarget(new D):t.target,n=this.viewer.camera.position.distanceTo(i);this.viewer.flyTo(i.clone().add(e.clone().multiplyScalar(n)),i)}}),this.scene.add(this.navCube)}render(){this.renderer&&this.scene&&this.camera&&(this.update(),this.renderer.render(this.scene,this.camera))}animate(){requestAnimationFrame(this.animate.bind(this)),this.render()}update(){if(!this.viewer||!this.viewer.camera)return;let e=this.viewer.camera;if(e){let t=new D;e.getWorldDirection(t);let i=e.up;this.updateCameraDirection(t,i)}}updateCameraDirection(e,t){this.camera&&e&&(e.normalize(),this.camera.position.set(20*-e.x+0,20*-e.y+0,20*-e.z+0),this.camera.lookAt(0,0,0),this.camera.up=t)}destroy(){super.destroy(),this.scene&&this.camera&&this.navCube&&(this.scene.clear(),this.camera=void 0,this.navCube=void 0,this.scene=void 0)}},c8=u8;c8.DEFAULT_ID="NavCubePlugin";var Q_=function(){var e=0,t=document.createElement("div");function i(e){return t.appendChild(e.dom),e}function n(i){for(var n=0;n=a+1e3&&(o.update(1e3*s/(e-a),100),a=e,s=0,h)){var t=performance.memory;h.update(t.usedJSHeapSize/1048576,t.jsHeapSizeLimit/1048576)}return e},update:function(){r=this.end()},domElement:t,setMode:n}};Q_.Panel=function(e,t,i){var n=1/0,r=0,a=Math.round,s=a(window.devicePixelRatio||1),o=80*s,l=48*s,h=3*s,c=2*s,u=3*s,d=15*s,p=74*s,f=30*s,m=document.createElement("canvas");m.width=o,m.height=l,m.style.cssText="width:80px;height:48px";var g=m.getContext("2d");return g.font="bold "+9*s+"px Helvetica,Arial,sans-serif",g.textBaseline="top",g.fillStyle=i,g.fillRect(0,0,o,l),g.fillStyle=t,g.fillText(e,h,c),g.fillRect(u,d,p,f),g.fillStyle=i,g.globalAlpha=.9,g.fillRect(u,d,p,f),{dom:m,update:function(l,v){n=Math.min(n,l),r=Math.max(r,l),g.fillStyle=i,g.globalAlpha=1,g.fillRect(0,0,o,d),g.fillStyle=t,g.fillText(a(l)+" "+e+" ("+a(n)+"-"+a(r)+")",h,c),g.drawImage(m,u+s,d,p-s,f,u,d,p-s,f),g.fillRect(u+p-s,d,s,f),g.fillStyle=i,g.globalAlpha=.9,g.fillRect(u+p-s,d,s,a((1-l/v)*f))}}};var d1e=Q_,f1e=class extends or{constructor(e){super(e,{id:"StatsPlugin"}),this.init()}init(){var e;let t=new d1e;t.setMode(0);let i=document.createElement("div");i.classList.add("statsOutput"),i.appendChild(t.domElement),null==(e=this.viewer.widgetContainer)||e.append(i),this.stats=t,this.viewer.addEventListener("OnAnimate",(()=>{var e;null==(e=this.stats)||e.update()}))}show(){var e;null==(e=this.stats)||e.showPanel(0)}hide(){var e;null==(e=this.stats)||e.showPanel(-1)}destroy(){super.destroy(),this.stats=void 0}},eT=class extends xt{constructor(e,t,i,n=4e3,r=32,a=15,s=new D,o=new D(0,.7,.5)){super();let l={topColor:{value:e},skylineColor:{value:t},bottomColor:{value:i},offset:{value:400},exponent:{value:.9},skyCenter:{value:s||new D},sunDirection:{value:o.normalize()}};this.geometry=new Ua(n,r,a),this.material=new cn({uniforms:l,vertexShader:eT.vertexShader,fragmentShader:eT.fragmentShader,side:Ji}),this.name=eT.NAME,this.matrixAutoUpdate=!1,this.layers.disable(12)}},rl=eT;rl.NAME="SKYBOX",rl.MIN_SKY_RADIUS=4e3,rl.MAX_SKY_RADIUS=2e4,rl.vertexShader="\n varying vec3 vWorldPosition;\n void main() {\n vec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",rl.fragmentShader="\n uniform vec3 topColor;\n uniform vec3 skylineColor;\n uniform vec3 bottomColor;\n uniform float offset;\n uniform float exponent;\n uniform vec3 skyCenter;\n uniform vec3 sunDirection;\n varying vec3 vWorldPosition;\n // Used to find the position to draw the sun. Sun size is bigger when this value is smaller\n const float sunDirectionDotThreshold = 0.98;\n\n void main() {\n vec3 position = vec3(vWorldPosition.x - skyCenter.x, vWorldPosition.y - skyCenter.y, vWorldPosition.z - skyCenter.z);\n vec3 normalizedPosition = normalize( position + offset );\n float h = normalizedPosition.y;\n vec3 color;\n if (h > 0.0) {\n color = mix( skylineColor, topColor, pow( h, exponent ) );\n\n // draw the sun\n float dotResult = dot(sunDirection, normalizedPosition);\n if (dotResult > sunDirectionDotThreshold) {\n const float sunSize = 1.0 - sunDirectionDotThreshold; // maximum sun size\n const vec3 sunColor = vec3(1.0, 1.0, 1.0);\n color = mix(color, sunColor, pow((dotResult + sunSize - 1.0) / sunSize, 3.0));\n }\n } else {\n color = mix( skylineColor, bottomColor, pow( -h, exponent ) );\n }\n gl_FragColor = vec4(color , 1.0);\n }";var d8=class extends or{constructor(e,t){let i=(null==t?void 0:t.id)||d8.DEFAULT_ID;super(e,{id:i}),null!=t&&t.color?this.setSkyboxByColor(t.color):this.setSkyboxByGradientColors(),e.addEventListener("ModelLoaded",(()=>{let t=e.getBBox(),i=this.viewer.cameraCfg;if(t){if(t=t.clone(),i&&i.eye&&i.look){let e=i&&St.arrayToVector3(i.eye),n=i&&St.arrayToVector3(i.look),r=new Nt;r.setFromPoints([e,n]),t.union(r)}this.updateGradientColorSkybox(t)}}))}setSkyboxByColor(e=[.92,.95,.96]){let t=this.viewer;!t||!t.scene||(this.gradientColorSkybox&&(this.gradientColorSkybox.visible=!1),t.scene.background=this.rgb2Color(e),t.enableRender())}setSkyboxByGradientColors(e=[.52,.71,.96],t=[1,1,1],i=[.6,.6,.6]){var n;this.gradientColorSkybox&&(this.gradientColorSkybox.removeFromParent(),this.gradientColorSkybox=void 0);let r=this.rgb2Color(e),a=this.rgb2Color(t),s=this.rgb2Color(i);this.gradientColorSkybox=new rl(r,a,s),null==(n=this.viewer.scene)||n.add(this.gradientColorSkybox),this.viewer.enableRender()}setSkyboxByCubeTexture(e){let t=this.viewer;if(!t||!t.scene)return;this.gradientColorSkybox&&(this.gradientColorSkybox.visible=!1);let i=new Db;t.scene.background=i.load(e),t.enableRender()}updateGradientColorSkybox(e){if(!this.gradientColorSkybox)return;let t=2*(e.max.x-e.min.x+(e.max.y-e.min.y)+(e.max.z-e.min.z));trl.MAX_SKY_RADIUS&&(t=rl.MAX_SKY_RADIUS),this.gradientColorSkybox.geometry=new Ua(t,32,15),this.viewer.enableRender()}destroy(){var e;super.destroy(),null==(e=this.gradientColorSkybox)||e.removeFromParent(),this.gradientColorSkybox=void 0,this.viewer.scene&&(this.viewer.scene.background=null)}rgb2Color(e){let t=e[0]||0,i=e[1]||0,n=e[2]||0,r=new ct;return r.setRGB(t,i,n),r}},h8=d8;function Q0t(e,t,i,n,r){let a=document.createElement("span");return a.style.font="1px serif",a.style.fontFamily=e,a.style.fontSize=`${t}px`,a.style.fontStyle=i,a.style.fontVariant=n,a.style.fontWeight=r,a.style.font}h8.DEFAULT_ID="SkyboxPlugin";var evt=Object.freeze({text:"",color:"#fff",alignment:"center",backgroundColor:0,fontFamily:"sans-serif",fontSize:16,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",lineGap:1/4,padding:.5,strokeColor:"#000",strokeWidth:0}),Z2=class extends Gr{constructor(e,t=document.createElement("canvas")){super(t),this.canvas=t,this.isTextTexture=!0,this.needsRedraw=!0,this.contentOffset=0,this.lineOffset=0,this.width=0,this.height=0,this.pixelRatio=Math.max(window.devicePixelRatio||1),this.computeOptimalPixelRatio=()=>{let e=new D,t=new xe,i=new D,n=new D,r=new xe;return(a,s,o)=>{var l,h;if(r.set(this.width,this.height),r.x&&r.y){a.getWorldPosition(i),o.getWorldPosition(e);let c=i.distanceTo(e);if(o.isPerspectiveCamera&&(c*=2*Math.tan(Rn.degToRad(o.fov)/2)),(o.isPerspectiveCamera||o.isOrthographicCamera)&&(c/=o.zoom),c){a.getWorldScale(n);let e=null!=(h=null==(l=s.capabilities)?void 0:l.maxTextureSize)?h:1/0;return s.getDrawingBufferSize(t),Math.min(Math.max(n.x/c*(t.x/r.x),n.y/c*(t.y/r.y)),e/r.x,e/r.y)}}return 0}},this.cfg=Tr(Tr({},evt),e)}get lines(){let{text:e}=this.cfg;return e?e.split("\n"):[]}get font(){let{fontFamily:e,fontSize:t,fontStyle:i,fontVariant:n,fontWeight:r}=this.cfg;return Q0t(e,t,i,n,r)}getContentWidth(){let{font:e,lines:t}=this,i=document.createElement("canvas").getContext("2d");return i.font=e,Math.max(...t.map((e=>i.measureText(e).width)))}initDraw(){let{lineGap:e,padding:t,strokeWidth:i}=this.cfg;t*=this.cfg.fontSize,e*=this.cfg.fontSize,i*=this.cfg.fontSize;let n=this.lines.length,r=this.cfg.fontSize+e,a=t+i/2,s=(n?this.getContentWidth():0)+2*a,o=(n?this.cfg.fontSize+r*(n-1):0)+2*a;this.width=s,this.height=o,this.contentOffset=a,this.lineOffset=r}getDrawPosition(e){let t=this.contentOffset+this.cfg.fontSize/2;switch(e){case"left":return{x:this.contentOffset,y:t};case"right":return{x:this.width-this.contentOffset,y:t}}return{x:this.width/2,y:t}}draw(){let e=this.canvas.getContext("2d"),{alignment:t,backgroundColor:i,color:n,strokeColor:r,strokeWidth:a}=this.cfg;e.fillStyle="#"+i.toString(16),e.fillRect(0,0,e.canvas.width,e.canvas.height),Object.assign(e,{fillStyle:n,font:this.font,lineWidth:a,miterLimit:1,strokeStyle:r,textAlign:t,textBaseline:"middle"});let{x:s,y:o}=this.getDrawPosition(t),l=o;this.lines.forEach((t=>{e.fillText(t,s,l),a&&e.strokeText(t,s,l),l+=this.lineOffset}))}getDrawingBufferWidth(){return Rn.ceilPowerOfTwo(this.width*this.pixelRatio)}getDrawingBufferHeight(){return Rn.ceilPowerOfTwo(this.height*this.pixelRatio)}redrew(){if(this.needsRedraw){this.initDraw();let e=this.canvas,t=e.getContext("2d");t.clearRect(0,0,e.width,e.height),e.width=this.getDrawingBufferWidth(),e.height=this.getDrawingBufferHeight(),e.width&&e.height?(t.save(),t.scale(e.width/this.width,e.height/this.height),this.draw(),t.restore()):e.width=e.height=1,this.needsRedraw=!1,this.needsUpdate=!0}}setPixelRatio(e){if(this.pixelRatio!==e){let t=this.getDrawingBufferWidth(),i=this.getDrawingBufferHeight();this.pixelRatio=e;let n=this.getDrawingBufferWidth(),r=this.getDrawingBufferHeight();(n!==t||r!==i)&&(this.needsRedraw=!0)}}setOptimalPixelRatio(e,t,i){let n=this.computeOptimalPixelRatio();this.setPixelRatio(n(e,t,i))}updateConfig(e){this.cfg=Tr(Tr({},this.cfg),e),this.needsRedraw=!0}};function f8(e,t,i){let n=new ct(e),r=new ct(t);return n.lerp(r,i).getHex()}var Dr=(e=>(e[e.Rotate0=0]="Rotate0",e[e.Rotate90=Math.PI/2]="Rotate90",e[e.Rotate180=Math.PI]="Rotate180",e[e.Rotate270=1.5*Math.PI]="Rotate270",e))(Dr||{}),ah=new D(1,0,0),_a=new D(0,1,0),Rs=new D(0,0,1),p1e={right:{text:"\u53f3",name:"RightFace",position:new D(50,0,0),rotation:{axis:_a,rad:Dr.Rotate90}},left:{text:"\u5de6",name:"LeftFace",position:new D(-50,0,0),rotation:{axis:_a,rad:Dr.Rotate270}},top:{text:"\u4e0a",name:"TopFace",position:new D(0,50,0),rotation:{axis:ah,rad:Dr.Rotate270}},bottom:{text:"\u4e0b",name:"BottomFace",position:new D(0,-50,0),rotation:{axis:ah,rad:Dr.Rotate90}},front:{text:"\u524d",name:"FrontFace",position:new D(0,0,50),rotation:{axis:_a,rad:0}},back:{text:"\u540e",name:"BackFace",position:new D(0,0,-50),rotation:{axis:_a,rad:Dr.Rotate180}}},K2=class extends on{constructor(e){super(),this.name="ViewCube",this.AXIS_LENGTH=130,this.AXIS_COLOR_X=16711680,this.AXIS_COLOR_Y=65280,this.AXIS_COLOR_Z=255,this.FACE_BACKGROUND_COLOR=16777215,this.FACE_HOVER_BACKGROUND_COLOR=8618481,this.EDGE_COLOUR=13290452,this.EDGE_OPACITY=.1,this.EDGE_SIZE=new xe(70,12),this.CORNER_WIDTH=12,this.CORNER_COLOR=13290452,this.CORNER_OPACITY=1,this.faces=[],this.dirty=!1,this.showAxes=(null==e?void 0:e.showAxes)||!1,this.lineColor=(null==e?void 0:e.lineColor)||9343125,this.init()}init(){this.showAxes&&this.add(this.createAxes()),this.add(this.createViewCubeFaces()),this.add(this.createViewCubeEdges()),this.add(this.createViewCubeCorners())}createAxes(){let e=new on,t=new D(-50,-50,-50),i=new D(1,0,0),n=new D(0,1,0),r=new D(0,0,1),a=this.AXIS_LENGTH/15,s=this.AXIS_LENGTH/20,o=new Sc(i,t,this.AXIS_LENGTH,this.AXIS_COLOR_X,a,s),l=new Sc(n,t,this.AXIS_LENGTH,this.AXIS_COLOR_Y,a,s),h=new Sc(r,t,this.AXIS_LENGTH,this.AXIS_COLOR_Z,a,s);return e.add(o,l,h),e}createViewCubeFaces(){let e=new on,t=[],i=new ln({color:this.FACE_BACKGROUND_COLOR,opacity:0,transparent:!0});Object.keys(p1e).forEach((e=>{let n=p1e[e],r=new Z2({text:n.text,fontSize:100,color:"#cccccc",backgroundColor:this.FACE_BACKGROUND_COLOR,padding:.8,fontWeight:"bold"});r.redrew();let a=new ln({map:r,opacity:1,transparent:!0});t.push(a);let s=this.createViewCubeFace(n.name,i,n.position,n.rotation);s.layers.enableAll(),s.userData={textTexture:r,tick:0,translateTick:0},this.faces.push(s)})),e.add(...this.faces);let n=new pa(76,76,76),r=new xt(n,t);this.innerViewCubeMesh=r,e.add(r);let a=new Au(new pa(100,100,100)),s=new ln({color:this.lineColor}),o=new qr(a,s);return e.add(o),e.position.set(0,0,0),e}createViewCubeFace(e,t,i,n){let r=new ui(76,76),a=new xt(r,t);return a.name=e,a.rotateOnAxis(n.axis,n.rad),a.position.copy(i),a}createViewCubeEdges(){let e=new on,t=this.createEdge("TopFrontEdge",new D(0,51,51),[{axis:Rs,rad:Dr.Rotate180}]),i=this.createEdge("TopRightEdge",new D(51,51,0),[{axis:ah,rad:Dr.Rotate180},{axis:_a,rad:Dr.Rotate90},{axis:Rs,rad:0}]),n=this.createEdge("TopBackEdge",new D(0,51,-51),[{axis:Rs,rad:Dr.Rotate180},{axis:_a,rad:Dr.Rotate180}]),r=this.createEdge("TopLeftEdge",new D(-51,51,0),[{axis:ah,rad:Dr.Rotate90},{axis:_a,rad:Dr.Rotate180},{axis:Rs,rad:Dr.Rotate90}]),a=this.createEdge("BottomFrontEdge",new D(0,-51,51),[{axis:Rs,rad:0}]),s=this.createEdge("BottomRightEdge",new D(51,-51,0),[{axis:ah,rad:Dr.Rotate90},{axis:_a,rad:0},{axis:Rs,rad:Dr.Rotate90}]),o=this.createEdge("BottomBackEdge",new D(0,-51,-51),[{axis:Rs,rad:0},{axis:_a,rad:Dr.Rotate180}]),l=this.createEdge("BottomLeftEdge",new D(-51,-51,0),[{axis:ah,rad:Dr.Rotate90},{axis:_a,rad:Dr.Rotate270},{axis:Rs,rad:Dr.Rotate90}]),h=this.createEdge("FrontRightEdge",new D(51,0,51),[{axis:Rs,rad:Dr.Rotate90}]),c=this.createEdge("BackRightEdge",new D(51,0,-51),[{axis:Rs,rad:Dr.Rotate90},{axis:_a,rad:Dr.Rotate180}]),u=this.createEdge("BackLeftEdge",new D(-51,0,-51),[{axis:Rs,rad:Dr.Rotate270},{axis:_a,rad:Dr.Rotate180}]),d=this.createEdge("FrontLeftEdge",new D(-51,0,51),[{axis:Rs,rad:Dr.Rotate270}]);return e.add(t),e.add(i),e.add(n),e.add(r),e.add(a),e.add(s),e.add(o),e.add(l),e.add(h),e.add(c),e.add(u),e.add(d),e}createEdge(e,t,i){let n=new on,r=new ui(this.EDGE_SIZE.x,this.EDGE_SIZE.y),a=new ln({color:this.EDGE_COLOUR,opacity:this.EDGE_OPACITY,transparent:!0}),s={tick:0},o=new xt(r,a);o.name=e,o.userData=s,o.position.setY(this.EDGE_SIZE.y/2),o.layers.enableAll();let l=new xt(r,a);return l.name=e,l.userData=s,l.position.setZ(-this.EDGE_SIZE.y/2),l.rotateOnAxis(new D(1,0,0),Math.PI/2),l.layers.enableAll(),n.add(o),n.add(l),n.position.copy(t),i.forEach((e=>{n.rotateOnAxis(e.axis,e.rad)})),n}createViewCubeCorners(){let e=new on,t=this.createCorner("TopFrontLeftCorner",new D(-51,51,51),[{axis:Rs,rad:Dr.Rotate270}]),i=this.createCorner("TopFrontRightCorner",new D(51,51,51),[{axis:Rs,rad:Dr.Rotate180}]),n=this.createCorner("TopBackRightCorner",new D(51,51,-51),[{axis:ah,rad:Dr.Rotate90},{axis:_a,rad:Dr.Rotate180},{axis:Rs,rad:0}]),r=this.createCorner("TopBackLeftCorner",new D(-51,51,-51),[{axis:ah,rad:Dr.Rotate90},{axis:_a,rad:Dr.Rotate180},{axis:Rs,rad:Dr.Rotate90}]),a=this.createCorner("BottomFrontLeftCorner",new D(-51,-51,51),[{axis:Rs,rad:0}]),s=this.createCorner("BottomFrontRightCorner",new D(51,-51,51),[{axis:Rs,rad:Dr.Rotate90}]),o=this.createCorner("BottomBackRightCorner",new D(51,-51,-51),[{axis:ah,rad:0},{axis:_a,rad:Dr.Rotate180},{axis:Rs,rad:0}]),l=this.createCorner("BottomBackLeftCorner",new D(-51,-51,-51),[{axis:ah,rad:0},{axis:_a,rad:Dr.Rotate180},{axis:Rs,rad:Dr.Rotate90}]);return e.add(t),e.add(i),e.add(n),e.add(r),e.add(a),e.add(s),e.add(o),e.add(l),e}createCorner(e,t,i){let n=new on,r=new ui(this.CORNER_WIDTH,this.CORNER_WIDTH),a=new ln({color:this.CORNER_COLOR,opacity:this.CORNER_OPACITY,transparent:!0}),s={tick:0},o=new xt(r,a);o.name=e,o.userData=s,o.position.set(this.CORNER_WIDTH/2,this.CORNER_WIDTH/2,0),o.layers.enableAll();let l=new xt(r,a);l.name=e,l.userData=s,l.position.set(this.CORNER_WIDTH/2,0,-this.CORNER_WIDTH/2),l.rotateOnAxis(new D(1,0,0),Math.PI/2),l.layers.enableAll();let h=new xt(r,a);return h.name=e,h.userData=s,h.position.set(0,this.CORNER_WIDTH/2,-this.CORNER_WIDTH/2),h.rotateOnAxis(new D(0,1,0),-Math.PI/2),h.layers.enableAll(),n.add(o),n.add(l),n.add(h),n.position.copy(t),i.forEach((e=>{n.rotateOnAxis(e.axis,e.rad)})),n}getBBox(){let e=new Nt;return e.setFromObject(this),e}getDirectionByViewCubeName(e){let t;switch(e){case"TopFace":t=new D(0,1,0);break;case"BottomFace":t=new D(0,-1,0);break;case"FrontFace":t=new D(0,0,1);break;case"BackFace":t=new D(0,0,-1);break;case"LeftFace":t=new D(-1,0,0);break;case"RightFace":t=new D(1,0,0);break;case"TopFrontEdge":t=new D(0,1,1);break;case"TopRightEdge":t=new D(1,1,0);break;case"TopBackEdge":t=new D(0,1,-1);break;case"TopLeftEdge":t=new D(-1,1,0);break;case"BottomFrontEdge":t=new D(0,-1,1);break;case"BottomRightEdge":t=new D(1,-1,0);break;case"BottomBackEdge":t=new D(0,-1,-1);break;case"BottomLeftEdge":t=new D(-1,-1,0);break;case"FrontLeftEdge":t=new D(-1,0,1);break;case"FrontRightEdge":t=new D(1,0,1);break;case"BackRightEdge":t=new D(1,0,-1);break;case"BackLeftEdge":t=new D(-1,0,-1);break;case"TopFrontLeftCorner":t=new D(-1,1,1);break;case"TopFrontRightCorner":t=new D(1,1,1);break;case"TopBackRightCorner":t=new D(1,1,-1);break;case"TopBackLeftCorner":t=new D(-1,1,-1);break;case"BottomFrontLeftCorner":t=new D(-1,-1,1);break;case"BottomFrontRightCorner":t=new D(1,-1,1);break;case"BottomBackRightCorner":t=new D(1,-1,-1);break;case"BottomBackLeftCorner":t=new D(-1,-1,-1)}return t}update(){this.traverse((e=>{e instanceof xt&&this.updateViewCube(e)}))}updateViewCube(e){if(this.updateMeshTick(e),e.name.indexOf("Face")>-1){let t=e.userData.textTexture;if(t){let i=f8(this.FACE_BACKGROUND_COLOR,this.FACE_HOVER_BACKGROUND_COLOR,e.userData.tick);t.updateConfig({backgroundColor:i}),e.userData.tick>0&&t.redrew()}if(this.innerViewCubeMesh){this.updateMeshTick(e,"translateTick",2);let t=e.position.clone().normalize(),i=Math.max(2*e.userData.translateTick-2,0);t.multiplyScalar(7*i),i>0&&this.innerViewCubeMesh.position.copy(t)}}else if(e.name.indexOf("Edge")>-1){let t=e.material,i=f8(this.EDGE_COLOUR,this.FACE_HOVER_BACKGROUND_COLOR,e.userData.tick);t.color.set(i),t.opacity=e.userData.tick}else if(e.name.indexOf("Corner")>-1){let t=e.material,i=f8(this.CORNER_COLOR,this.FACE_HOVER_BACKGROUND_COLOR,e.userData.tick);t.color.set(i);let n=1+.3*e.userData.tick;e.parent&&e.parent.scale.set(n,n,n)}}updateMeshTick(e,t="tick",i=1){void 0!==e.userData[t]&&(e.name===this.activateMeshName&&e.userData[t]0&&(e.userData[t]-=.05),e.userData[t]>0&&e.userData[t]{var t,i;let n=this.getNdcPointByEvent(e);if(!n)return;null==(t=e.originalEvent)||t.stopPropagation();let r=this.getIntersects(n);if(this.lastCoords=n,!r||0===r.length)return;let a=r[0].object.name,s=null==(i=this.viewCube)?void 0:i.getDirectionByViewCubeName(a);s&&this.updateViewerCamera(s)},this.onPointerMove=e=>{var t;let i=this.getNdcPointByEvent(e);i&&(null==(t=e.originalEvent)||t.stopPropagation(),this.updateActivateMeshName(i),this.lastCoords=i)},this.onPointerleave=e=>{var t,i;null==(t=e.originalEvent)||t.stopPropagation(),this.lastCoords=void 0,null!=(i=this.viewCube)&&i.activateMeshName&&(this.viewCube.activateMeshName=void 0)},this.onClick=e=>{var t;null==(t=e.originalEvent)||t.stopPropagation()},this.updateCameraAndMeshName=()=>{var e;if(null==(e=this.viewer)||!e.camera)return;let t=this.viewer.camera,i=new D;t.getWorldDirection(i);let n=t.up;this.updateCameraDirection(i,n),this.renderEnabled=!0,this.lastCoords&&this.updateActivateMeshName(this.lastCoords)},this.cfg=t||{},this.init(),this.animate()}init(){Fn.isBrowser&&!this.cfg.context&&this.initDom(),this.initInputManager(),this.initScene(),this.initRenderer(),this.initCamera(),this.initLights(),this.initViewCube(),this.initEvents()}initDom(){var e;let t;if(this.cfg.containerId&&(t=document.getElementById(this.cfg.containerId)),!t){let i="gemini-viewer-threejs-viewCube";t=document.createElement("div"),t.id=i,null==(e=this.viewer.widgetContainer)||e.appendChild(t),this.cfg.containerId=i}this.width=t.clientWidth,this.height=t.clientHeight,this.container=t}initInputManager(){this.container&&(this.inputManager=new Ko(this.container))}initScene(){let e=new Si;e.matrixAutoUpdate=!1,this.scene=e}initCamera(){if(!this.scene)return;let e=new Nr(-this.width/2,this.width/2,this.height/2,-this.height/2,.1,1e5);e.position.set(300,300,300),e.lookAt(0,0,0),e.zoom=10,e.updateProjectionMatrix(),this.scene.add(e),this.camera=e}initRenderer(){var e;this.renderer=new Ts({antialias:!0,preserveDrawingBuffer:!0}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),this.renderer.setClearColor(11119017,0),null==(e=this.container)||e.appendChild(this.renderer.domElement)}initLights(){if(!this.scene)return;let e=new qs(16777215,1.5);e.name="sun",this.directionalLight=e,this.scene.add(e),this.scene.add(e.target)}initViewCube(){if(!this.scene)return;let e=new K2(this.cfg);this.viewCube=e,this.scene.add(e),this.zoomToBBox(e.getBBox())}initEvents(){var e,t,i,n;null==(e=this.inputManager)||e.addEventListener("pointerdown",this.onPointerDown),null==(t=this.inputManager)||t.addEventListener("pointermove",this.onPointerMove),null==(i=this.inputManager)||i.addEventListener("pointerleave",this.onPointerleave),null==(n=this.inputManager)||n.addEventListener("click",this.onClick),this.viewer.addEventListener("AfterRender",this.updateCameraAndMeshName)}updateViewerCamera(e){var t,i;if(null==(t=this.viewer)||!t.camera||null==(i=this.viewer)||!i.controls)return;e.normalize();let n=this.viewer.controls instanceof va?this.viewer.getBBox().getCenter(new D):this.viewer.controls.target,r=this.viewer.camera.position.distanceTo(n);this.viewer.flyTo(n.clone().add(e.clone().multiplyScalar(r)),n)}updateActivateMeshName(e){if(!this.viewCube)return;let t=this.getIntersects(e);if(this.viewCube.activateMeshName&&(this.viewCube.activateMeshName=void 0),!t||0===t.length)return;let i=t[0].object;this.viewCube.activateMeshName=i.name}getNdcPointByEvent(e){if(!this.container||!this.camera)return;let t=an.getScreenCoordinateByEvent(e,this.container);return an.screen2Ndc(t,this.camera,this.container)}getIntersects(e){return this.scene&&this.camera&&this.viewCube?(this.camera.updateMatrixWorld(),this.raycaster.layers.set(12),this.raycaster.setFromCamera(e,this.camera),this.raycaster&&this.raycaster.intersectObjects(this.viewCube.children,!0)||[]):void 0}updateCameraDirection(e,t){this.camera&&e&&(e.normalize(),this.camera.position.set(200*-e.x+0,200*-e.y+0,200*-e.z+0),this.camera.lookAt(0,0,0),this.camera.up=t,this.camera.updateMatrixWorld())}animate(){var e,t;this.requestAnimationFrameHandle=requestAnimationFrame(this.animate.bind(this)),this.scene&&this.camera&&this.viewCube&&(this.renderEnabled||this.viewCube.dirty)&&(null==(e=this.renderer)||e.render(this.scene,this.camera),this.renderEnabled=!1,this.viewCube.dirty=!1),null==(t=this.viewCube)||t.update()}zoomToBBox(e){if(!this.camera)return;let t=this.camera.right-this.camera.left,i=this.camera.top-this.camera.bottom,n=new D;e.getSize(n);let r=Math.sqrt(Math.pow(n.x,2)+Math.pow(n.y,2)+Math.pow(n.z,2)),a=Math.min(t/r,i/r);this.camera.position.set(n.x/2,n.y/2,n.z/2),this.camera.zoom=a,this.camera.updateProjectionMatrix()}destroy(){var e,t,i,n,r,a,s;super.destroy(),this.requestAnimationFrameHandle&&(cancelAnimationFrame(this.requestAnimationFrameHandle),this.requestAnimationFrameHandle=void 0),this.renderer&&(this.renderer.domElement.remove(),this.renderer.clear(),this.renderer.dispose(),this.renderer.forceContextLoss(),this.renderer=void 0),null==(e=this.container)||e.remove(),this.container=void 0,null==(t=this.scene)||t.clear(),this.scene=void 0,null==(i=this.directionalLight)||i.dispose(),this.directionalLight=void 0,null==(n=this.inputManager)||n.removeEventListener("pointerdown",this.onPointerDown),null==(r=this.inputManager)||r.removeEventListener("pointermove",this.onPointerMove),null==(a=this.inputManager)||a.removeEventListener("pointerleave",this.onPointerleave),null==(s=this.inputManager)||s.removeEventListener("click",this.onClick),this.viewer.removeEventListener("AfterRender",this.updateCameraAndMeshName)}},p8=m8;p8.DEFAULT_ID="ViewCubePlugin";var J2=class extends Hi{constructor(e,t){super(e),this.needsFrustumCulled=!1,this.image=t.image,this.min=t.min,this.max=t.max,this.radius=t.radius,this.renderOrder=t.renderOrder||-1e3}getClassType(){return"OverviewMapDrawable"}getImageScreenSize(e,t,i){let n=this.transToScreenCoord(e,i),r=this.transToScreenCoord(t,i);return{width:Math.floor(Math.abs(n.x-r.x)),height:Math.floor(Math.abs(n.y-r.y))}}draw(e,t){let i=this.getImageScreenSize(this.max,this.min,t),n=new D;n.addVectors(this.max,this.min).multiplyScalar(.5);let r=this.transToScreenCoord(n,t),a=this.transToScreenCoord(t.position,t);e.save(),e.beginPath(),this.radius&&(e.arc(a.x,a.y,this.radius/this.tolerance,0,2*Math.PI,!0),e.clip()),e.drawImage(this.image,r.x-this.width/2,r.y-this.height/2,this.width,this.height),e.closePath(),e.restore(),this.width=i.width,this.height=i.height}drawSelect(){}isPointInPath(){return!1}getBBox(){return new Nt(this.min,this.max)}},tT=class extends Hi{constructor(e,t){super(e),this.hover=!1,this.needsFrustumCulled=!1,this.image=t.image,this.hoverImage=t.hoverImage,this.translate=t.translate,this.scale=t.scale||1,this.position=t.position instanceof D?t.position:new D(t.position.x,t.position.y,t.position.z),this.direction=t.direction?t.direction instanceof D?t.direction:new D(t.direction.x,t.direction.y,t.direction.z):void 0,this.radius=t.radius,this.displayRadius=t.displayRadius||1/0,this.rotation=t.rotation,this.enabledHover=!!t.enabledHover,this.renderOrder=t.renderOrder||-997}direction2Rotation(e){return new xe(e.x,e.z).angle()+Math.PI}getRotation(){let e=this.direction?this.direction2Rotation(this.direction):0,t=this.rotation?this.rotation:0;return t+=e,t}drawImage(e,t,i){let n=new xe(1,1);this.translate&&n.set(this.translate.x,this.translate.y);let r=t.width*this.scale,a=t.height*this.scale,s=this.getRotation();s?(e.translate(i.x,i.y),e.rotate(s),e.drawImage(t,n.x*r,n.y*a,r,a),e.translate(-i.x,-i.y)):e.drawImage(t,i.x+n.x*r,i.y+n.y*a,r,a),this.width=r*this.tolerance,this.height=a*this.tolerance}draw(e,t){let i=this.position.clone(),n=!1;if(this.radius){let e=new xe(i.x,i.z),r=new xe(t.position.x,t.position.z),a=e.distanceTo(r);a>this.radius&&a0)}getBBox(){let e=this.position,t=new xe(e.x,e.z),i=new Nt,n=new xe(1,1);this.translate&&n.set(this.translate.x,this.translate.y);let r=[],a=n.x*this.width,s=n.y*this.height,o=(t,i)=>r.push(new xe(e.x+t,e.z+i));o(a,s),o(a,s+this.height),o(a+this.width,s+this.height),o(a+this.width,s);let l=r.map((i=>{let n=this.getRotation();return n&&i.rotateAround(t,n),new D(i.x,e.y,i.y)}));return i.setFromPoints(l),i}},m1e=class extends Hi{constructor(e,t){super(e),this.needsFrustumCulled=!1,this.positions=t.positions,this.lineWidth=t.lineWidth||1,this.lineColor=t.lineColor||[0,0,0,1],this.renderOrder=t.renderOrder||-999}draw(e,t){let i=this.positions.map((e=>{let i=new D(e.x,e.y,e.z);return this.transToScreenCoord(i,t)}));e.save(),e.beginPath(),e.lineWidth=this.lineWidth,e.strokeStyle=An.rgba2Color(this.lineColor),i.forEach(((t,i)=>{0===i?e.moveTo(t.x,t.y):e.lineTo(t.x,t.y)})),e.stroke(),e.restore()}drawSelect(){}getClassType(){return"LineDrawable"}isPointInPath(){return!1}getBBox(){let e=this.positions.map((e=>new D(e.x,e.y,e.z)));return(new Nt).setFromPoints(e)}},g1e=class extends Hi{constructor(e,t){super(e),this.needsFrustumCulled=!1,this.text=t.text,this.position=t.position,this.offset=t.offset||{x:0,y:0},this.textStyle=t.textStyle||{},this.radius=t.radius,this.displayRadius=t.displayRadius||1/0,this.size=t.size||{width:0,height:0},this.renderOrder=t.renderOrder||-998}getFont(){let e=this.textStyle,t="";return t+=(e.fontSize?e.fontSize:12)+"px ",t+=e.fontWeight?e.fontWeight+" ":"",t+=e.fontFamily?e.fontFamily:"Arial",t}drawRoundRect(e,t,i,n,r,a,s){let o=this.textStyle,l=Math.min(o.borderRadius||0,n/2,r/2);e.save(),o.backgroundColor&&(e.fillStyle=o.backgroundColor),o.borderColor&&(e.strokeStyle=o.borderColor),o.borderWidth&&(e.lineWidth=o.borderWidth),this.radius&&s&&(e.beginPath(),e.arc(a.x,a.y,this.radius/this.tolerance,0,2*Math.PI,!0),e.clip(),e.closePath()),e.beginPath(),e.moveTo(t+l,i),e.arcTo(t+n,i,t+n,i+r,l),e.arcTo(t+n,i+r,t,i+r,l),e.arcTo(t,i+r,t,i,l),e.arcTo(t,i,t+n,i,l),o.borderWidth&&e.stroke(),o.backgroundColor&&e.fill(),e.closePath(),e.restore()}draw(e,t){let i=this.textStyle,n=new D(this.position.x,this.position.y,this.position.z),r=!1;if(this.radius){let e=new xe(n.x,n.z),i=new xe(t.position.x,t.position.z),a=e.distanceTo(i);a>this.radius&&a(e.ZoomChanged="ZoomChanged",e.SyncCamera="SyncCamera",e.CameraChanged="CameraChanged",e))(svt||{}),v8=class extends or{constructor(e,t){var i,n,r;super(e,{id:(null==t?void 0:t.id)||v8.DEFAULT_ID}),this.CAMERA_Z_POSITION=100,this.width=0,this.height=0,this.frustumSize=this.width,this.renderEnabled=!1,this.drawableList=new Zo("overviewMap"),this.clock=new ho,this.raf=new $f,this.raycaster=new na,this.translateStart=new xe,this.rotateStart=new xe,this.markerRotateState=!1,this.markerTranslateState=!1,this.isMarkerRotating=!1,this.isMarkerTranslating=!1,this.isUpdateWhenPawnMove=!0,this.allMarkersBBox=new Nt,this.tolerance=5,this.enableLookToAllMarkers=!1,this.handlePointerDown=e=>{let t=this.cameraDrawable,i=this.cameraDirDrawable;if(!(t&&i&&this.viewerContainer&&this.camera&&this.controls))return;let n=this.getDrawableByEvent(e),r=an.getScreenCoordinateByEvent(e,this.viewerContainer),a=this.lockCameraInViewCenter?this.camera.position:an.world2Screen(t.position,this.camera,this.viewerContainer);n&&n===i&&(this.isMarkerRotating=!0,this.rotateStart.set(r.x-a.x,r.y-a.y),this.controls.enabled=!1),n&&n===t&&(this.isMarkerTranslating=!0,this.translateStart.set(r.x,r.y),this.controls.enabled=!1)},this.onCameraMove=e=>{var t,i;let n=this.cameraDrawable,r=this.cameraDirDrawable;if(!(n&&r&&this.camera&&this.viewerContainer))return;let a=an.getScreenCoordinateByEvent(e,this.viewerContainer),s=this.lockCameraInViewCenter?this.camera.position:an.world2Screen(n.position,this.camera,this.viewerContainer);if(this.isMarkerRotating){let e=new xe(a.x-s.x,a.y-s.y),i=(new xe).subVectors(e,this.rotateStart);if(Math.abs(i.x)>this.tolerance||Math.abs(i.y)>this.tolerance){let i=e.angle()-this.rotateStart.angle();i=(i+2*Math.PI)%(2*Math.PI),null==(t=r.direction)||t.applyAxisAngle(this.camera.up,-i),this.rotateStart.copy(e)}}if(this.isMarkerTranslating){let e=new xe(a.x,a.y),t=(new xe).subVectors(e,this.translateStart);if(Math.abs(t.x)>this.tolerance||Math.abs(t.y)>this.tolerance){let t=an.screen2World(this.translateStart,this.camera,this.viewerContainer),r=an.screen2World(e,this.camera,this.viewerContainer),a=(new D).subVectors(r,t);a.setY(0),this.lockCameraInViewCenter?null==(i=this.controls)||i.truck(a.x,a.z):n.position.add(a),this.translateStart.copy(e)}}if(this.isMarkerRotating||this.isMarkerTranslating){let e=this.lockCameraInViewCenter?this.camera.position.clone():n.position.clone(),t=r.direction.clone(),i=this.transformMatrix.clone().invert();e.applyMatrix4(i),t.applyMatrix4(i),this.syncCamera(e,t)}},this.handlePointerUp=()=>{this.isMarkerTranslating=!1,this.isMarkerRotating=!1,this.markerRotateState=!1,this.markerTranslateState=!1,this.controls.enabled=!0},this.handlePointerLeave=()=>{this.markerRotateState=this.isMarkerRotating,this.markerTranslateState=this.isMarkerTranslating,this.isMarkerTranslating=!1,this.isMarkerRotating=!1,this.controls.enabled=!0},this.handlePointerEnter=e=>{1&e.buttons?(this.isMarkerTranslating=this.markerTranslateState,this.isMarkerRotating=this.markerRotateState,this.controls.enabled=!1):(this.markerRotateState=!1,this.markerTranslateState=!1)},this.handleDblClick=e=>{var t;let i=this.cameraDrawable,n=this.cameraDirDrawable;if(this.animationId&&window.cancelAnimationFrame(this.animationId),!(i&&n&&this.camera&&this.viewerContainer))return;let r=an.getScreenCoordinateByEvent(e,this.viewerContainer),a=an.screen2World(r,this.camera,this.viewerContainer);this.lockCameraInViewCenter?(a.setY(this.camera.position.y),null==(t=this.controls)||t.setLookAt(a.x,a.y,a.z,a.x,0,a.z)):(a.setY(i.position.y),i.position.copy(a));let s=n.direction.clone(),o=this.transformMatrix.clone().invert();a.applyMatrix4(o),s.applyMatrix4(o),this.syncCamera(a,s)},this.handlePointerMove=e=>{this.onCameraHover(e),this.onCameraMove(e),this.enableRender()},this.enableRender=(e=1e3)=>{this.renderEnabled=!0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.timeoutSymbol=this.raf.setTimeout((()=>{this.renderEnabled=!1}),e))},this.isPointInBoundary=e=>{var t;if(null==(t=this.boundaries)||!t.size)return;let i,n=new xe(e.x,e.y);return this.boundaries.forEach((e=>{e.polygon.length<3||Qt.isPointInPolygon(n,e.polygon)&&(i={id:e.id,name:e.name})})),i},this.animate=()=>{var e,t,i;this.requestAnimationFrameHandle=requestAnimationFrame(this.animate);let n=this.clock.getDelta(),r=null==(e=this.controls)?void 0:e.update(n);if(this.scene&&this.camera){if(this.viewerContainer&&this.viewerContainer){let{width:e,height:t}=this.viewerContainer.getBoundingClientRect();(this.width!==e||this.height!==t)&&(r=!0,this.resize(e,t))}if(this.renderEnabled||r){if(null==(t=this.renderer)||t.render(this.scene,this.camera),!Fn.isBrowser){let e=null==(i=this.renderer)?void 0:i.getContext();e&&e.endFrameEXP&&(e.flush(),e.endFrameEXP())}this.enableLookToAllMarkers&&this.lookToAllMarkers(),this.dispatchEvent("AfterRender")}}},this.cfg=t||{},this.transformMatrix=new et,this.transformMatrix.elements=this.cfg.transformMatrix||[0,0,-1,0,1,0,0,0,0,1,0,0,0,0,0,1],this.enabled=null==(i=this.cfg.enabled)||i,this.lockCameraInViewCenter=!!this.cfg.lockCameraInViewCenter,this.radius=this.cfg.radius,this.size=this.cfg.size,this.minZoomFactor=null!=(n=this.cfg.minZoomFactor)?n:.3,this.maxZoomFactor=null!=(r=this.cfg.maxZoomFactor)?r:5,this.init(),this.animate(),this.enableRender()}get cameraDrawable(){return this.getMarker("cameraDrawable")}get cameraDirDrawable(){return this.getMarker("cameraDirDrawable")}get overviewMapDrawable(){return this.getMarker("overviewMap")}init(){Fn.isBrowser&&!this.cfg.context&&this.initDom(),this.initScene(),this.initRenderer(),this.initCamera(),this.initInputManager(),this.initEvents(),this.initControls()}initDom(){let e=this.cfg.containerId?document.getElementById(this.cfg.containerId):void 0,t=document.createElement("div");if(e)t.style.cssText="width: 100%; height: 100%;display: inline-block;position: relative; overflow: hidden;",e.appendChild(t);else{let e="gemini-viewer-threejs-overview-map";t.id=e,this.cfg.containerId=e,document.body.appendChild(t)}this.width=t.clientWidth,this.height=t.clientHeight,this.viewerContainer=t}initInputManager(){this.viewerContainer&&(this.inputManager=new Ko(this.viewerContainer))}initScene(){let e=new Si;e.background=null,e.matrixAutoUpdate=!1,e.matrixWorldAutoUpdate=!1,this.scene=e}initCamera(){if(!this.scene)return;let e=new Nr(-this.width/2,this.width/2,this.height/2,-this.height/2,.1,1e5);e.position.set(0,0,this.CAMERA_Z_POSITION),e.zoom=10,e.updateProjectionMatrix(),this.scene.add(e),this.camera=e,this.frustumSize=this.width}initRenderer(){var e;let{context:t}=this.cfg,i={context:t,antialias:!0,preserveDrawingBuffer:!0,alpha:!1,stencil:!1};!Fn.isBrowser&&t&&Object.assign(i,{context:t,canvas:Fn.creatReactNativeCanvas(t)}),t&&(this.width=t.drawingBufferWidth,this.height=t.drawingBufferHeight),this.renderer=new Ts(i),this.renderer.setClearColor(11119017,1),this.renderer.setClearAlpha(0),Fn.isBrowser&&(!t&&this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.domElement.classList.add("webgl-renderer"),null==(e=this.viewerContainer)||e.appendChild(this.renderer.domElement)),this.renderer.setSize(this.width,this.height),this.overlayRender=new Un(this),this.overlayRender.addDrawableList(this.drawableList)}initControls(){let e=this.camera;if(!this.inputManager||!e)return;let t=new va(e,this.inputManager);t.enableRotate=!1,t.enabled=this.enabled,t.keyTruckSpeed=10,t.dollyToCursor=!0,t.dollySpeed=.1,t.truckSpeed=1,t.mouseButtons={left:yt.TRUCK,middle:yt.TRUCK,wheel:yt.ZOOM,right:yt.TRUCK},t.touches={one:yt.TOUCH_TRUCK,two:yt.TOUCH_ZOOM_TRUCK,three:yt.NONE},t.update(0),this.controls=t,t.addEventListener("control",this.onControlsChange()),t.addEventListener("update",this.onControlsUpdate())}onControlsChange(){return()=>{this.enableRender()}}onControlsUpdate(){return()=>{if(!this.camera||!this.cameraZoom||!this.initialZoom)return;let e=this.camera.zoom;Zt.areNumbersEqual(e,this.cameraZoom)||(this.cameraZoom=e,this.dispatchEvent("ZoomChanged",(e/this.initialZoom).toFixed(2)))}}initEvents(){var e,t,i,n,r,a;!this.enabled||this.lockCameraInViewCenter||(null==(e=this.inputManager)||e.addEventListener("pointermove",this.handlePointerMove),null==(t=this.inputManager)||t.addEventListener("pointerdown",this.handlePointerDown),null==(i=this.inputManager)||i.addEventListener("pointerup",this.handlePointerUp),null==(n=this.inputManager)||n.addEventListener("dblclick",this.handleDblClick),null==(r=this.inputManager)||r.addEventListener("pointerleave",this.handlePointerLeave),null==(a=this.inputManager)||a.addEventListener("pointerenter",this.handlePointerEnter))}getDrawableByEvent(e){var t;if(!this.camera||!this.groundPlane||!this.viewerContainer)return;let i=this.raycaster;if(!i)return;let n=an.getScreenCoordinateByEvent(e,this.viewerContainer),r=an.screen2Ndc(n,this.camera,this.viewerContainer);i.setFromCamera(r,this.camera);let a=i.intersectObject(this.groundPlane);if(0===a.length||!a[0].point)return;let s=null==(t=this.overlayRender)?void 0:t.getDrawablesByPosition(a[0].point,i);return s&&s.length>0?s[0]:void 0}onCameraHover(e){let t=this.cameraDrawable,i=this.cameraDirDrawable;if(!t||!i)return;t.hover=!1,i.hover=!1;let n=this.getDrawableByEvent(e);n&&n===i&&(i.hover=!0),n&&n===t&&(t.hover=!0),this.enableRender()}syncCamera(e,t){this.timeout&&clearTimeout(this.timeout),this.isUpdateWhenPawnMove=!1,this.dispatchEvent("SyncCamera",{location:e,direction:t}),this.dispatchEvent("CameraChanged",e.applyMatrix4(this.transformMatrix)),this.timeout=setTimeout((()=>{this.timeout&&clearTimeout(this.timeout),this.isUpdateWhenPawnMove=!0}),500)}updateZoomFromRadius(){if(!this.camera||!this.radius||!this.controls)return;let e=this.controls;e.minZoom=0,e.maxZoom=1/0,e.update(0);let t=this.getContainerRadius(),i=this.camera.zoom*Number((t/this.radius).toFixed(2));this.controls.zoomTo(i)}getContainerRadius(){if(!this.viewerContainer)return;let e=this.viewerContainer,{width:t,height:i}=e.getBoundingClientRect();return this.size&&(t=this.size.width,i=this.size.height),this.screenDistance2WorldDistance(Math.min(t,i)/2)}screenDistance2WorldDistance(e){let t=this.camera,i=this.viewerContainer,n=an.screen2World(new xe(e,0),t,i),r=an.screen2World(new xe(0,0),t,i);return Math.abs(new xe(n.x,n.z).distanceTo(new xe(r.x,r.z)))}initGroundPlane(e){var t;St.expandBoxByScale(e,3);let i=e.min,n=e.max,r=n.x-i.x+n.y-i.y+n.z-i.z;St.expandBoxByMinSize(e,r);let a=[],s=(e,t,i)=>{a.push(new D(e,t,i))},o=e.getSize(new D),l=e.getCenter(new D);if(s(-o.x/2,0,-o.z/2),s(o.x/2,0,-o.z/2),s(o.x/2,0,o.z/2),s(-o.x/2,0,o.z/2),this.groundPlane)this.groundPlane.geometry.setFromPoints(a),this.groundPlane.geometry.computeBoundingSphere(),this.groundPlane.geometry.computeBoundingBox(),this.groundPlane.geometry.computeVertexNormals();else{let e=new Dt;e.setFromPoints(a),e.setIndex([0,3,2,0,2,1]),e.computeVertexNormals();let i=new ln({color:"#888",transparent:!0,opacity:0,side:Sr});this.groundPlane=new xt(e,i),this.groundPlane.frustumCulled=!1,this.groundPlane.position.copy(l),this.groundPlane.scale.set(1e5,1e5,1),this.groundPlane.name="groundPlane",this.groundPlane.userData.selectable=!1,this.groundPlane.renderOrder=-1e3,this.groundPlane.layers.enableAll(),Hn.disableLayerChannels(this.groundPlane,[12]),null==(t=this.scene)||t.add(this.groundPlane)}this.groundPlane.updateMatrixWorld()}initMaxAndMinZoom(){if(!this.controls)return;this.controls.update(0);let e=this.camera.zoom;this.controls.minZoom=e*this.minZoomFactor,this.controls.maxZoom=e*this.maxZoomFactor,this.initialZoom=e,this.cameraZoom=e}getImageElementFromUrl(e){let t=new Image;return t.src=e,new Promise(((e,i)=>{t.onload=()=>{e(t)},t.onerror=e=>{i(e)}}))}updateOverviewMap(e){return ft(this,null,(function*(){let t=new D,i=new D;t.set(e.min.x,e.min.y,e.min.z),i.set(e.max.x,e.max.y,e.max.z),t.applyMatrix4(this.transformMatrix),i.applyMatrix4(this.transformMatrix);let n=yield this.getImageElementFromUrl(e.image),r=new D(Math.min(t.x,i.x),0,Math.min(t.z,i.z)),a=new D(Math.max(t.x,i.x),0,Math.max(t.z,i.z)),s=new Nt(r,a);this.initGroundPlane(s.clone());let o=this.overviewMapDrawable;o?(o.image=n,o.radius=this.radius,o.max.copy(i),o.min.copy(t)):(this.zoomToBBox(s),this.updateZoomFromRadius(),this.initMaxAndMinZoom(),this.addMarker(new J2("overviewMap",{image:n,min:t,max:i,radius:this.radius}))),this.imgBBox=s,this.enableRender()}))}createCameraMarkers(e,t){return ft(this,null,(function*(){var i,n;if(!this.camera||!this.viewerContainer)return;let r=this.cameraDrawable,a=this.cameraDirDrawable;if(r)r.position.copy(e),null==(i=r.direction)||i.copy(t);else{let i=yield this.getImageElementFromUrl(y1e),n=yield this.getImageElementFromUrl(b1e);this.addMarker(new tT("cameraDirDrawable",{image:i,hoverImage:n,translate:new xe(-1,-.5),scale:.25,position:e,direction:t,enabledHover:this.enabled}))}if(a)a.position.copy(e),null==(n=a.direction)||n.copy(t);else{let i=yield this.getImageElementFromUrl(v1e),n=yield this.getImageElementFromUrl(x1e);this.addMarker(new tT("cameraDrawable",{image:i,hoverImage:n,translate:new xe(-.5,-.5),scale:.25,position:e,direction:t,enabledHover:this.enabled,renderOrder:-996}))}this.enableRender()}))}initCameraMarkers(e,t){return ft(this,null,(function*(){var i;let n=new D(e.x,e.y,e.z),r=new D(t.x,t.y,t.z);if(n.applyMatrix4(this.transformMatrix),r.applyMatrix4(this.transformMatrix),this.lockCameraInViewCenter){let e=this.camera;yield this.createCameraMarkers(e.position,r),n.setY(e.position.y),null==(i=this.controls)||i.setLookAt(n.x,n.y,n.z,n.x,0,n.z)}else yield this.createCameraMarkers(n,r)}))}updateOverviewMapCameraAnimation(){var e,t;let i=this.animationParam;if(!i)return void(this.animationId&&cancelAnimationFrame(this.animationId));let{startTime:n,positionStart:r,positionEnd:a,directionStart:s,directionEnd:o}=i,l=Math.min(1,(Date.now()-n)/500),h=r.lerp(a,l),c=null==s?void 0:s.lerp(o,l),u=this.cameraDrawable,d=this.cameraDirDrawable;if(c&&(null==(e=null==d?void 0:d.direction)||e.copy(c)),this.lockCameraInViewCenter?null==(t=this.controls)||t.setLookAt(h.x,h.y,h.z,h.x,0,h.z):(null==u||u.position.copy(h),null==d||d.position.copy(h)),this.enableRender(),1===l)return this.animationParam=void 0,void(this.animationId&&cancelAnimationFrame(this.animationId));this.animationId=requestAnimationFrame(this.updateOverviewMapCameraAnimation.bind(this))}updateOverviewMapCamera(e,t){var i;let n=this.cameraDrawable,r=this.cameraDirDrawable;if(!(this.camera&&this.viewerContainer&&n&&this.isUpdateWhenPawnMove))return;this.animationId&&cancelAnimationFrame(this.animationId);let a,s=new D(e.x,e.y,e.z),o=new D(t.x,t.y,t.z);s.applyMatrix4(this.transformMatrix),o.applyMatrix4(this.transformMatrix),this.lockCameraInViewCenter?(a=this.camera.position.clone(),s.setY(a.y)):a=n.position.clone();let l=Date.now(),h=null==(i=null==r?void 0:r.direction)?void 0:i.clone();this.animationParam={startTime:l,positionStart:a,positionEnd:s,directionStart:h,directionEnd:o},this.updateOverviewMapCameraAnimation(),this.dispatchEvent("CameraChanged",s)}zoomToBBox(e){if(!this.scene||!this.camera||!this.controls)return;let t=this.camera,i=e.max.x-e.min.x,n=e.max.z-e.min.z,r=t.right-t.left,a=t.top-t.bottom,s=Math.min(r/i,a/n);this.controls.zoomTo(s);let o=new D;e.getCenter(o);let l=o.clone().setY(e.max.y+2);l.equals(o)||this.controls.setLookAt(l.x,l.y,l.z,o.x,o.y,o.z)}addMarker(e){this.drawableList.addDrawable(e),this.enableRender()}getMarker(e){return this.drawableList.getDrawableById(e)}removeMarker(e){this.drawableList.removeDrawable(e),this.enableRender()}dollyIn(e=.2){let t=this.camera;if(!t||!this.controls||!this.initialZoom)return;let i=t.zoom,n=Math.min(i+e*this.initialZoom,this.controls.maxZoom);this.controls.zoomTo(n)}dollyOut(e=.2){let t=this.camera;if(!t||!this.controls||!this.initialZoom)return;let i=t.zoom,n=Math.max(i-e*this.initialZoom,this.controls.minZoom);this.controls.zoomTo(n)}goToHomeView(){this.imgBBox&&this.zoomToBBox(this.imgBBox)}setRadius(e){this.radius=e;let t=this.overviewMapDrawable;t&&(t.radius=e),this.updateZoomFromRadius()}registerBoundaries(e){this.boundaries||(this.boundaries=new Map),e.forEach((e=>{var t;let i=e.points.map((e=>new xe(e.x,e.y)));null==(t=this.boundaries)||t.set(e.id,{id:e.id,name:e.name,polygon:i})}))}screenShot(){return ft(this,null,(function*(){var e;try{let t=yield null==(e=this.overlayRender)?void 0:e.getImage((()=>!0));return null==t?void 0:t.src}catch(e){return void se.error(e)}}))}getViewConfig(){return this.cfg}is3d(){return!0}getPixelSizeInWorldCoord(){let e=this.camera,{clientWidth:t,clientHeight:i}=this.viewerContainer;return Math.max(e.right-e.left,e.top-e.bottom)/e.zoom/Math.max(t,i)}lookToAllMarkers(){var e,t;let i=new Nt;this.drawableList.getDrawables().forEach((e=>{if("overviewMap"===e.id||"cameraDrawable"===e.id||"cameraDirDrawable"===e.id||!this.camera||!this.viewerContainer)return;let t=e;i.union(t.getBBox())})),i.min.setY(0),i.max.setY(0);let n=i.min.distanceTo(i.max);i.expandByVector(new D(.01*n,0,.01*n)),Zt.areVector3sEqual(null==(e=this.allMarkersBBox)?void 0:e.min,i.min)&&Zt.areVector3sEqual(null==(t=this.allMarkersBBox)?void 0:t.max,i.max)?this.enableLookToAllMarkers=!1:(this.allMarkersBBox=i,this.zoomToBBox(i))}resize(e,t){let i=this.camera;if(i&&t>0){let n=e/t;i.left=-this.frustumSize/2,i.right=this.frustumSize/2,i.top=this.frustumSize/n/2,i.bottom=-this.frustumSize/n/2,i.updateProjectionMatrix(),this.renderer&&this.renderer.setSize(e,t,!0),this.overlayRender&&this.overlayRender.setSize(e,t)}this.width=e,this.height=t,this.enableRender()}destroy(){var e,t,i;this.raycaster=void 0,null==(e=this.inputManager)||e.removeEventListener(),this.animationId&&(cancelAnimationFrame(this.animationId),this.animationId=void 0),this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0),this.drawableList.clear(),null==(t=this.viewerContainer)||t.remove(),this.viewerContainer=void 0,null==(i=this.scene)||i.clear(),this.scene=void 0,this.requestAnimationFrameHandle&&(cancelAnimationFrame(this.requestAnimationFrameHandle),this.requestAnimationFrameHandle=void 0),this.renderer&&(this.renderer.domElement.remove(),this.renderer.clear(),this.renderer.dispose(),this.renderer.forceContextLoss(),this.renderer=void 0),this.overlayRender&&(this.overlayRender.destroy(),this.overlayRender=void 0),this.camera=void 0,this.controls&&(this.controls.dispose(),this.controls=void 0),this.groundPlane&&(this.groundPlane.geometry.dispose(),this.groundPlane.clear(),this.groundPlane=void 0),this.removeEventListener()}},g8=v8;g8.DEFAULT_ID="OverviewMapPlugin";export{RA as ANGLE_THRESHOLD_FOR_EDGE,XIt as AXIS_SECTION_PLANE_CONTROL_ID,jIt as AXIS_SECTION_PLANE_ID,X5 as AnnotationTable,n5 as ArrowMarkup,eV as AxisGizmoPlugin,h2 as AxisPlaneSection,Lve as AxisType,oy as BYBLOCK,ay as BYLAYER,OP as BaseDxfCompareHelper,Lr as BaseMeasureDrawable,th as BaseMeasurement,cp as BaseSection,Wu as BaseTable,up as BaseVRMesh,tp as BaseViewer,kve as BimViewer,xye as BimViewerDatGuiPlugin,uV as BimViewerToolbarPlugin,Df as BinaryReader,sg as BitView,Vve as BottomBarPlugin,ep as BoxSelectHelper,Mf as CSS2DObjectUtils,va as CameraControlsEx,TA as CancelablePromise,Un as CanvasRender,r5 as CircleMarkup,Cc as CloudLineMarkup,i5 as CloudRectMarkup,An as ColorUtils,St as CommonUtils,jm as CompareDrawable,Zve as ContextMenuPlugin,iP as ControlsHelper,an as CoordinateUtils,qve as DEFAULT_BIMVIEWER_TOOLBAR_CONFIG,lde as DEFAULT_BIM_VIEWER_CONFIG,Wve as DEFAULT_DXFVIEWER_TOOLBAR_CONFIG,zve as DEFAULT_MARKUP_TOOLBAR_CONFIG,Fn as DeviceUtils,s5 as DotMarkup,Hi as Drawable,Zo as DrawableList,C5 as DxfChangeType,ls as DxfCompare,sve as DxfCompareHelper,i0e as DxfCompareMarkupManager,yy as DxfDataTable,gn as DxfLoader,Zm as DxfParser,jfe as DxfRenderOrder,Ic as DxfUtils,ip as DxfViewer,lV as DxfViewerToolbarPlugin,WIt as ENTER_KEY,qIt as ESC_KEY,AA as EdgeUtils,a5 as EllipseMarkup,Ss as Event,W_ as ExplodePlugin,Af as ExportUtils,sd as FontDataTable,ud as FontManager,OA as FpsUtils,vde as GROUND_PLANE_RENDER_ORDER,T2 as GROUP_CONFIG,EP as GenerateMeshBvhWorker,Qt as GeometryUtils,j_ as GroundGrassPlugin,X_ as GroundGridPlugin,CV as GroundShadowPlugin,_ye as HotpointPlugin,jv as ICON_FONT_CLASS,tT as ImageDrawable,ns as IndexedDbManager,Ko as InputManager,S0e as InstantiateHelper,zIt as KEYDOWN_EVENT,GIt as KEYUP_EVENT,Oct as Keys,RV as LayerManagerPlugin,o5 as LeaderLineMarkup,fr as Line,m1e as LineDrawable,SC as LinePatternShaders,ja as LoadingHelper,c1e as LocalDxfUploader,u1e as LocalImageUploader,N2 as LocalModelUploader,Gve as MARKUP_GROUP_CONFIG,gH as MOUSEDOWN_EVENT,Rf as MOUSEMOVE_EVENT,mH as MOUSEUP_EVENT,mE as MarkupManager,w2 as MarkupToolbar,za as MarkupType,es as MaterialUtils,Zt as MathUtils,lg as MeasurementPlugin,Yl as MeasurementType,E2 as MenuTypeEnums,Rr as MergeUtils,xt as Mesh,Qf as MeshBvhHelper,CP as MobileTouchHelperDrawable,c8 as NavCubePlugin,Xm as NestCompareTypes,MP as OSnapHelper,Afe as OSnapMarkerType,S4 as OSnapType,Q0e as ObjectPixelSizeHelper,Hn as ObjectUtils,d2 as ObjectsBoxSection,lve as Offset,J2 as OverviewMapDrawable,g8 as OverviewMapPlugin,svt as OverviewMapPluginEvent,sh as PdfLoader,o8 as PdfLoaderPlugin,RP as PickMarkupHelper,f2 as PickPlaneSection,or as Plugin,ii as Points,Um as PolygonUtils,l5 as PolylineMarkup,Yf as ProgressBar,$f as RafHelper,c5 as RectMarkup,ZIt as SECTION_BOX_ID,$It as SECTION_PLANE_CONTROL_ID,YIt as SECTION_PLANE_ID,vH as SECTION_PLANE_NAME,J0e as SHP,bP as SHPLoader,yP as SHPParser,SLt as SNAP_ICON_SIZE,Dct as STATE,ede as SVGObject,Rfe as SVGObjectUtils,tde as SVGRenderer,Os as SceneUtils,yde as ScreenshotMode,dp as ScreenshotPlugin,dg as SectionPlugin,Xv as SectionType,Hu as SectionUtils,$n as ShaderChunk,xP as ShpThree,Fve as SimplifiedBimViewer,Mfe as SimplifyUtils,h8 as SkyboxPlugin,Ms as SnapDrawable,f1e as StatsPlugin,g1e as TextDrawable,Dl as TextMarkup,Ac as TextureUtils,hp as Toolbar,iV as ToolbarMenu,_2 as ToolbarMenuId,j5 as Units,eC as VRControls,v2 as VRCube,y2 as VRCube24Faces,x2 as VRSphere,Hve as VRViewer,p8 as ViewCubePlugin,cE as Viewer3DUtils,ki as ViewerEvent,i0t as ViewerMode,Oy as ViewerName,Y5 as ViewpointTable,t5 as Views,c2 as WebCam,u5 as XMarkup,ky as ZoomToRectHelper,W5 as bspline,ume as checkIsNewVersion,Yde as cn,$ve as contextMenuItems,ame as createHatchPatternShaderMaterial,Uut as decodeDxfTextCharacterCodes,Vut as decodeDxfTextMbcsCharacterCodes,Hut as decodeDxfTextUnicodeCodePoints,Xde as en,DLt as getLengthValueByUnit,lE as getUnitStr,qut as getVersionFromLocalStorage,Uu as layerForHitableObjects,ei as layerForSelectableObjects,ps as layerForSnapableObjects,se as log,si as matrixAutoUpdate,MC as parseDxfMTextContent,RC as parseDxfTextContent,G5 as round10,VIt as sceneAutoUpdate,MA as setIcon,hde as setLogLevel,Wut as setVersionToLocalStorage,Bu as showPrecisionValue,Cfe as unitConversionByMeter,Rct as unitLabel,lme as unitScaleConversion,ome as unitScaleToMeter}; \ No newline at end of file diff --git a/demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts b/demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts index 51786f0..97d116f 100644 --- a/demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts +++ b/demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts @@ -1,26 +1,26 @@ -import type { DxfViewer } from "../../core/viewers"; -export declare class DxfLayoutBar { - protected readonly viewer: DxfViewer; - private element?; - private content?; - private itemList; - constructor(viewer: DxfViewer); - init(): void; - private handleMouseWheel; - private createItem; - destroy(): void; - show(): void; - hide(): void; -} -export declare class ModelLayoutSwitchItem { - protected readonly viewer: DxfViewer; - private eventBus; - element: HTMLElement; - resetActivate?: () => void; - active: boolean; - constructor(viewer: DxfViewer, name: string); - private createItem; - setActive(active: boolean): void; - resetActive(): void; - destroy(): void; -} +import type { DxfViewer } from "../../core/viewers"; +export declare class DxfLayoutBar { + protected readonly viewer: DxfViewer; + private element?; + private content?; + private itemList; + constructor(viewer: DxfViewer); + init(): void; + private handleMouseWheel; + private createItem; + destroy(): void; + show(): void; + hide(): void; +} +export declare class ModelLayoutSwitchItem { + protected readonly viewer: DxfViewer; + private eventBus; + element: HTMLElement; + resetActivate?: () => void; + active: boolean; + constructor(viewer: DxfViewer, name: string); + private createItem; + setActive(active: boolean): void; + resetActive(): void; + destroy(): void; +} diff --git a/demo/libs/types/components/dxf-layout-bar/index.d.ts b/demo/libs/types/components/dxf-layout-bar/index.d.ts index 98907fb..fd33d4a 100644 --- a/demo/libs/types/components/dxf-layout-bar/index.d.ts +++ b/demo/libs/types/components/dxf-layout-bar/index.d.ts @@ -1 +1 @@ -export * from "./DxfLayoutBar"; +export * from "./DxfLayoutBar"; diff --git a/demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts b/demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts index e1da7f2..94e8778 100644 --- a/demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts +++ b/demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts @@ -1,18 +1,18 @@ -import { PopPanel } from "./PopPanel"; -import type { BaseViewer } from "../../core/viewers/BaseViewer"; -import { AxisPlaneSection } from "../../plugins/sections/AxisPlaneSection"; -export declare class AxisSectionPopPanel extends PopPanel { - protected axis: string; - protected activeItem?: string; - protected groupSelectNode?: HTMLElement; - protected activeSelectNode?: HTMLElement; - protected isVisible: boolean; - protected section: AxisPlaneSection; - constructor(viewer: BaseViewer); - keydown: (e: KeyboardEvent) => void; - destroy(): void; - createGroupSelectLayout(): void; - addGroupSelectItems(): void; - createActiveSelectLayout(): void; - addActiveItems(): void; -} +import { PopPanel } from "./PopPanel"; +import type { BaseViewer } from "../../core/viewers/BaseViewer"; +import { AxisPlaneSection } from "../../plugins/sections/AxisPlaneSection"; +export declare class AxisSectionPopPanel extends PopPanel { + protected axis: string; + protected activeItem?: string; + protected groupSelectNode?: HTMLElement; + protected activeSelectNode?: HTMLElement; + protected isVisible: boolean; + protected section: AxisPlaneSection; + constructor(viewer: BaseViewer); + keydown: (e: KeyboardEvent) => void; + destroy(): void; + createGroupSelectLayout(): void; + addGroupSelectItems(): void; + createActiveSelectLayout(): void; + addActiveItems(): void; +} diff --git a/demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts b/demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts index 2fa3526..5731459 100644 --- a/demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts +++ b/demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts @@ -1,18 +1,18 @@ -import { PopPanel } from "./PopPanel"; -import type { BaseViewer } from "../../core/viewers/BaseViewer"; -import type { PickPlaneSection } from "../../plugins/sections/PickPlaneSection"; -export declare class PickSectionPopPanel extends PopPanel { - protected activeSelectNode?: Element; - protected isVisible: boolean; - protected enabled: boolean; - protected visibleNode?: HTMLElement; - protected resetNode?: HTMLElement; - protected section: PickPlaneSection; - constructor(viewer: BaseViewer); - keydown: (e: KeyboardEvent) => void; - destroy(): void; - createActiveSelectLayout(): void; - addActiveItems(): void; - enable(): void; - disable(): void; -} +import { PopPanel } from "./PopPanel"; +import type { BaseViewer } from "../../core/viewers/BaseViewer"; +import type { PickPlaneSection } from "../../plugins/sections/PickPlaneSection"; +export declare class PickSectionPopPanel extends PopPanel { + protected activeSelectNode?: Element; + protected isVisible: boolean; + protected enabled: boolean; + protected visibleNode?: HTMLElement; + protected resetNode?: HTMLElement; + protected section: PickPlaneSection; + constructor(viewer: BaseViewer); + keydown: (e: KeyboardEvent) => void; + destroy(): void; + createActiveSelectLayout(): void; + addActiveItems(): void; + enable(): void; + disable(): void; +} diff --git a/demo/libs/types/components/pop-panel/PopPanel.d.ts b/demo/libs/types/components/pop-panel/PopPanel.d.ts index 5b895e5..2caa3ff 100644 --- a/demo/libs/types/components/pop-panel/PopPanel.d.ts +++ b/demo/libs/types/components/pop-panel/PopPanel.d.ts @@ -1,14 +1,14 @@ -export declare class PopPanel { - private readonly container; - private element; - header: HTMLElement; - body: HTMLElement; - private isFollowing; - private diffX; - private diffY; - constructor(id: string, content: string | HTMLElement, container?: HTMLElement); - start: (event: MouseEvent) => void; - stop: () => void; - follow: (event: MouseEvent) => void; - destroy(): void; -} +export declare class PopPanel { + private readonly container; + private element; + header: HTMLElement; + body: HTMLElement; + private isFollowing; + private diffX; + private diffY; + constructor(id: string, content: string | HTMLElement, container?: HTMLElement); + start: (event: MouseEvent) => void; + stop: () => void; + follow: (event: MouseEvent) => void; + destroy(): void; +} diff --git a/demo/libs/types/components/pop-panel/index.d.ts b/demo/libs/types/components/pop-panel/index.d.ts index 24e6314..45a10c9 100644 --- a/demo/libs/types/components/pop-panel/index.d.ts +++ b/demo/libs/types/components/pop-panel/index.d.ts @@ -1,3 +1,3 @@ -export * from "./PopPanel"; -export * from "./AxisSectionPopPanel"; -export * from "./PickSectionPopPanel"; +export * from "./PopPanel"; +export * from "./AxisSectionPopPanel"; +export * from "./PickSectionPopPanel"; diff --git a/demo/libs/types/components/progress-bar/ProgressBar.d.ts b/demo/libs/types/components/progress-bar/ProgressBar.d.ts index ed1b775..30f1f05 100644 --- a/demo/libs/types/components/progress-bar/ProgressBar.d.ts +++ b/demo/libs/types/components/progress-bar/ProgressBar.d.ts @@ -1,34 +1,34 @@ -export interface ProgressItem { - id: string; - div: HTMLDivElement; -} -export declare class ProgressBar { - private element; - private progresseItems; - constructor(parentElement: HTMLElement); - setVisibility(visible: boolean): void; - /** - * Adds a progress item - * @param progressItemId - * @param message Initial message - * @param progress number between 0-100 - */ - addProgressItem(progressItemId: string, message?: string): void; - /** - * Updates a progress item - * @param progressItemId - * @param message - * @param progress number between 0-100 - */ - updateProgress(progressItemId: string, message?: string, progress?: number): void; - /** - * Removes a progress item - * @param progressItemId - */ - removeProgressItem(progressItemId: string): void; - /** - * Removes a progress item after some time - * @param progressItemId - */ - delayRemoveProgressItem(progressItemId: string, delayInMs?: number): void; -} +export interface ProgressItem { + id: string; + div: HTMLDivElement; +} +export declare class ProgressBar { + private element; + private progresseItems; + constructor(parentElement: HTMLElement); + setVisibility(visible: boolean): void; + /** + * Adds a progress item + * @param progressItemId + * @param message Initial message + * @param progress number between 0-100 + */ + addProgressItem(progressItemId: string, message?: string): void; + /** + * Updates a progress item + * @param progressItemId + * @param message + * @param progress number between 0-100 + */ + updateProgress(progressItemId: string, message?: string, progress?: number): void; + /** + * Removes a progress item + * @param progressItemId + */ + removeProgressItem(progressItemId: string): void; + /** + * Removes a progress item after some time + * @param progressItemId + */ + delayRemoveProgressItem(progressItemId: string, delayInMs?: number): void; +} diff --git a/demo/libs/types/components/progress-bar/index.d.ts b/demo/libs/types/components/progress-bar/index.d.ts index 56eaa5b..a550d58 100644 --- a/demo/libs/types/components/progress-bar/index.d.ts +++ b/demo/libs/types/components/progress-bar/index.d.ts @@ -1 +1 @@ -export * from "./ProgressBar"; +export * from "./ProgressBar"; diff --git a/demo/libs/types/components/settings/ProjectSettingsDef.d.ts b/demo/libs/types/components/settings/ProjectSettingsDef.d.ts index b808a63..b01285a 100644 --- a/demo/libs/types/components/settings/ProjectSettingsDef.d.ts +++ b/demo/libs/types/components/settings/ProjectSettingsDef.d.ts @@ -1,44 +1,44 @@ -/** - * Perspective and Orthographic camera share the same settings - * @internal - */ -export interface CameraSettings { - near: number; - far: number; -} -/** - * @internal - */ -export interface MouseSetting { - sensitivity: number; -} -/** - * @internal - */ -export interface KeyboardSetting { - sensitivity: number; -} -/** - * @internal - */ -export interface Settings { - unit: string; - decimalPrecision: number; - camera: CameraSettings; - mouse: MouseSetting; - keyboard: KeyboardSetting; -} -/** - * @internal - */ -export declare const defaultSettings: Settings; -export declare const cameraNearRange: number[]; -export declare const cameraFarRange: number[]; -export declare const unitRange: { - [key: string]: string; -}; -export declare const sensitivityRange: number[]; -export declare const decimalPrecisionRange: { - [key: string]: number; -}; -export declare const settingStoreKeyName = "THREE_RENDER_SETTING"; +/** + * Perspective and Orthographic camera share the same settings + * @internal + */ +export interface CameraSettings { + near: number; + far: number; +} +/** + * @internal + */ +export interface MouseSetting { + sensitivity: number; +} +/** + * @internal + */ +export interface KeyboardSetting { + sensitivity: number; +} +/** + * @internal + */ +export interface Settings { + unit: string; + decimalPrecision: number; + camera: CameraSettings; + mouse: MouseSetting; + keyboard: KeyboardSetting; +} +/** + * @internal + */ +export declare const defaultSettings: Settings; +export declare const cameraNearRange: number[]; +export declare const cameraFarRange: number[]; +export declare const unitRange: { + [key: string]: string; +}; +export declare const sensitivityRange: number[]; +export declare const decimalPrecisionRange: { + [key: string]: number; +}; +export declare const settingStoreKeyName = "THREE_RENDER_SETTING"; diff --git a/demo/libs/types/components/settings/index.d.ts b/demo/libs/types/components/settings/index.d.ts index 27694eb..c2d62eb 100644 --- a/demo/libs/types/components/settings/index.d.ts +++ b/demo/libs/types/components/settings/index.d.ts @@ -1 +1 @@ -export * from "./ProjectSettingsDef"; +export * from "./ProjectSettingsDef"; diff --git a/demo/libs/types/components/tool-tip/Tooltip.d.ts b/demo/libs/types/components/tool-tip/Tooltip.d.ts index 76560f6..8103ca1 100644 --- a/demo/libs/types/components/tool-tip/Tooltip.d.ts +++ b/demo/libs/types/components/tool-tip/Tooltip.d.ts @@ -1,20 +1,20 @@ -interface TooltipConfig { - showOnCreate?: boolean; - followPointer?: boolean; - parentNode?: HTMLElement; - target?: HTMLElement; -} -export declare class Tooltip { - private node; - private parentNode; - private target; - private childNode; - constructor(id: string, content?: string | HTMLElement | null, cfg?: TooltipConfig); - setContent(content: string | HTMLElement): void; - updateChildContent(content: string | HTMLElement): void; - follow: (event: MouseEvent) => void; - show: () => false | void; - hide: () => false | void; - destroy: () => void; -} -export {}; +interface TooltipConfig { + showOnCreate?: boolean; + followPointer?: boolean; + parentNode?: HTMLElement; + target?: HTMLElement; +} +export declare class Tooltip { + private node; + private parentNode; + private target; + private childNode; + constructor(id: string, content?: string | HTMLElement | null, cfg?: TooltipConfig); + setContent(content: string | HTMLElement): void; + updateChildContent(content: string | HTMLElement): void; + follow: (event: MouseEvent) => void; + show: () => false | void; + hide: () => false | void; + destroy: () => void; +} +export {}; diff --git a/demo/libs/types/components/tool-tip/index.d.ts b/demo/libs/types/components/tool-tip/index.d.ts index 5a57dbf..46bb2f2 100644 --- a/demo/libs/types/components/tool-tip/index.d.ts +++ b/demo/libs/types/components/tool-tip/index.d.ts @@ -1 +1 @@ -export * from "./Tooltip"; +export * from "./Tooltip"; diff --git a/demo/libs/types/core/Configs.d.ts b/demo/libs/types/core/Configs.d.ts index 32d615e..01c0ba9 100644 --- a/demo/libs/types/core/Configs.d.ts +++ b/demo/libs/types/core/Configs.d.ts @@ -1,367 +1,367 @@ -/** - * Camera config - */ -export interface CameraConfig { - /** - * The camera location - */ - eye: number[]; - /** - * The location that the camera looks to - */ - look: number[]; - /** - * @internal - */ - up?: number[]; - /** - * The camera's near clip plane - */ - near?: number; - /** - * The camera's far clip plane - */ - far?: number; -} -/** - * Model config - */ -export interface ModelConfig { - /** - * Unique id of the model - */ - modelId?: string; - /** - * Model name - */ - name?: string; - /** - * Source url of the model - */ - src: string; - /** - * Used to distinguish format, because it may be hard to know the format by src! - * @internal - */ - fileFormat?: string; - /** - * File encoding, can be used by dxf. Common encoding include "UTF-8", "gb2312", etc. - * @internal - */ - encoding?: string; - /** - * A float array of length 16, definds model's position, rotation and scale - */ - matrix?: number[]; - /** - * If we want to merge meshes/lines/points with the same material - * @internal - * @default false - */ - merge?: boolean; - /** - * If we want to generate and show edges/outlines to the modle. - * It is useful for BimViewer. - * @internal - */ - edges?: boolean; - /** - * If this model is visible by default. - * @internal - */ - visible?: boolean; -} -/** - * Dxf model config - */ -export interface DxfModelConfig extends ModelConfig { - /** - * If to ignore anything of paper space. - * There are some scenarios to ignore paper space by default, includes: - * - Dxf overlay, aka, loading more than one dxf files into a viewer. We'll only load model space for the first file. - * - Dxf compare. Since we'll only compare model space, it won't load paper space at all. - * - * This option is useful when user want to explicitly ignore paper space. - * @default false - */ - ignorePaperSpace?: boolean; - /** - * Applies this color to everything in this model. - * This allows user to show a drawing with a pure color (black, white, etc.). - * Color value is between 0 and 1, e.g., [1, 0, 0] means 'red'. - */ - overrideColor?: number[]; -} -/** - * Loaded 3d model info for BimViewer. - */ -export interface Model3d { - /** - * modelId that is unique for loaded models - */ - modelId: string; - /** - * Three.js object. - */ - object: THREE.Object3D; - /** - * Bounding box of the model. - */ - bbox?: THREE.Box3; - /** - * Edge objects of the model. - */ - edges?: THREE.LineSegments[]; - /** - * TilesRenderer for 3dTiles - * @internal - */ - tilesRenderer?: any; -} -/** - * Common viewer config - */ -export interface BaseViewerConfig { - /** - * @description canvas id to contain the viewer. - */ - containerId: string; - /** - * @internal - */ - language?: "cn" | "en"; - /** - * @internal - */ - logLevel?: "debug" | "info" | "warn" | "error" | "silent"; - /** - * @internal - */ - enableSpinner?: boolean; - /** - * @internal - */ - enableProgressBar?: boolean; - /** - * @description just for react native - * @internal - */ - context?: WebGLRenderingContext | WebGL2RenderingContext; - /** - * @description just for react native - * @internal - */ - context2d?: CanvasRenderingContext2D; -} -/** - * This wrappers most config for BimViewer - */ -export interface BimViewerConfig extends BaseViewerConfig { - /** - * Shows the NavCube. - * @internal - * @deprecated use NavCubePlugin instead - */ - enableNavCube?: boolean; - /** - * Shows the AxisGizmo. - * @internal - * @deprecated use AxisGizmoPlugin instead - */ - enableAxisGizmo?: boolean; - /** - * Shows the stats output. - * @internal - * @deprecated use StatsPlugin instead - */ - enableStats?: boolean; - /** - * Enables toolbar. - * The default toolbar is an example UI of the viewer, since plenty of APIs are exposed, - * you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc. - * @deprecated Use ToolbarPlugin instead - */ - enableToolbar?: boolean; - /** - * shows the bottom-bar. - * @internal - * @deprecated use BottomBarPlugin instead - */ - enableBottomBar?: boolean; - /** - * Shows the context-menu. - * @deprecated Use ContextMenuPlugin instead. - */ - enableContextMenu?: boolean; - /** - * If user can select an entity by mouse click - * @internal - * @default true - */ - enableSelection?: boolean; - /** - * Default is `meters` - * @internal - */ - units?: string; - /** - * Sets the default locale - * @internal - */ - locale?: "cn" | "en"; -} -/** - * This wrappers most config for DxfViewer - */ -export interface DxfViewerConfig extends BaseViewerConfig { - /** - * @internal - * @deprecated use AxisGizmoPlugin instead - */ - enableAxisGizmo?: boolean; - /** - * Enables layout bar so we can switch to other layouts. - * The default layout bar is an example UI of the viewer, since plenty of APIs are exposed, - * you are recommended to create your own layout bar with customized style, location, etc. - */ - enableLayoutBar?: boolean; - /** - * @internal - * @deprecated use NavCubePlugin instead - */ - enableStats?: boolean; - /** - * Enables toolbar. - * The default toolbar is an example UI of the viewer, since plenty of APIs are exposed, - * you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc. - * @deprecated Use ToolbarPlugin instead - */ - enableToolbar?: boolean; - /** - * @internal - * @deprecated use BottomBarPlugin instead - */ - enableBottomBar?: boolean; - /** - * If to cache model into indexeddb (or maybe local storage in future). - * If enabled, it will get model data from cache the next time model is loaded. - * @internal - * @default true - */ - enableLocalCache?: boolean; - /** - * If user can select an entity by mouse click - * @internal - * @default false - */ - enableSelection?: boolean; -} -/** - * Dxf compare config. - */ -export interface DxfCompareConfig { - /** - * Enables to compare properties (color, linetype, line width, etc.) - */ - enableDetailComparision: boolean; -} -/** - * This wrappers most config for VRViewer - */ -export interface VRViewerConfig extends BaseViewerConfig { - autoRotateSpeed?: number; - /** - * Enables toolbar. - * The default toolbar is an example UI of the viewer, since plenty of APIs are exposed, - * you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc. - * @deprecated Use ToolbarPlugin instead - */ - enableToolbar?: boolean; -} -/** - * VR Viewpoint's hotpoint, which can be a user defined html element. - * A hotpoint can be clicked, then caller can do their own operation, - * e.g. open a description panel, jump to another viewpoint, etc. - */ -export interface Hotpoint { - hotpointId: string; - anchorPosition: number[]; - visible?: boolean; - html: string; -} -/** - * A VRViewpointPlan contains 1 or more panor - * A viewpoint may contain more than one plans - */ -export interface Panorama { - id: string; - /** - * 1, 6 or 24 image urls in order of right, left, up, down, front, back. - * When there is 1 image, caller should also put it into array! - */ - images: string[]; - /** - * 6 image urls in order of right, left, up, down, front, back - */ - thumbnails?: string[]; -} -export interface VRViewpoint { - /** - * @deprecated moved to VRViewpointPlan - */ - imageOrImages?: string | string[]; - /** - * @deprecated moved to VRViewpointPlan - */ - thumbnailImages?: string[]; - panoramas: Panorama[]; - id: string; - name?: string; - position?: number[]; - initialDirection?: number[]; - hotpoints?: Hotpoint[]; -} -/** - * A default BimViewerConfig as a template, which enables most plugins. - * @internal - */ -export declare const DEFAULT_BIM_VIEWER_CONFIG: BimViewerConfig; -/** - * @internal - */ -export interface IsolateObjectsParam { - id: string; - modelId: string; -} -/** - * @internal - */ -export interface IsolateObjectsParams { - familyInstanceIds: IsolateObjectsParam[]; -} -/** - * @internal - */ -export interface ScreenshotConfig { - type: string; - quality: number; - includeOverlay: boolean; -} -/** - * Icon class. - * Used by toolbar and bottom bar icons, etc. - */ -export interface IconClass { - /** - * The default icon. - */ - default: string; - /** - * The icon when item is actived. - */ - active?: string; - /** - * The icon font class name. - */ - iconFont?: string; -} +/** + * Camera config + */ +export interface CameraConfig { + /** + * The camera location + */ + eye: number[]; + /** + * The location that the camera looks to + */ + look: number[]; + /** + * @internal + */ + up?: number[]; + /** + * The camera's near clip plane + */ + near?: number; + /** + * The camera's far clip plane + */ + far?: number; +} +/** + * Model config + */ +export interface ModelConfig { + /** + * Unique id of the model + */ + modelId?: string; + /** + * Model name + */ + name?: string; + /** + * Source url of the model + */ + src: string; + /** + * Used to distinguish format, because it may be hard to know the format by src! + * @internal + */ + fileFormat?: string; + /** + * File encoding, can be used by dxf. Common encoding include "UTF-8", "gb2312", etc. + * @internal + */ + encoding?: string; + /** + * A float array of length 16, definds model's position, rotation and scale + */ + matrix?: number[]; + /** + * If we want to merge meshes/lines/points with the same material + * @internal + * @default false + */ + merge?: boolean; + /** + * If we want to generate and show edges/outlines to the modle. + * It is useful for BimViewer. + * @internal + */ + edges?: boolean; + /** + * If this model is visible by default. + * @internal + */ + visible?: boolean; +} +/** + * Dxf model config + */ +export interface DxfModelConfig extends ModelConfig { + /** + * If to ignore anything of paper space. + * There are some scenarios to ignore paper space by default, includes: + * - Dxf overlay, aka, loading more than one dxf files into a viewer. We'll only load model space for the first file. + * - Dxf compare. Since we'll only compare model space, it won't load paper space at all. + * + * This option is useful when user want to explicitly ignore paper space. + * @default false + */ + ignorePaperSpace?: boolean; + /** + * Applies this color to everything in this model. + * This allows user to show a drawing with a pure color (black, white, etc.). + * Color value is between 0 and 1, e.g., [1, 0, 0] means 'red'. + */ + overrideColor?: number[]; +} +/** + * Loaded 3d model info for BimViewer. + */ +export interface Model3d { + /** + * modelId that is unique for loaded models + */ + modelId: string; + /** + * Three.js object. + */ + object: THREE.Object3D; + /** + * Bounding box of the model. + */ + bbox?: THREE.Box3; + /** + * Edge objects of the model. + */ + edges?: THREE.LineSegments[]; + /** + * TilesRenderer for 3dTiles + * @internal + */ + tilesRenderer?: any; +} +/** + * Common viewer config + */ +export interface BaseViewerConfig { + /** + * @description canvas id to contain the viewer. + */ + containerId: string; + /** + * @internal + */ + language?: "cn" | "en"; + /** + * @internal + */ + logLevel?: "debug" | "info" | "warn" | "error" | "silent"; + /** + * @internal + */ + enableSpinner?: boolean; + /** + * @internal + */ + enableProgressBar?: boolean; + /** + * @description just for react native + * @internal + */ + context?: WebGLRenderingContext | WebGL2RenderingContext; + /** + * @description just for react native + * @internal + */ + context2d?: CanvasRenderingContext2D; +} +/** + * This wrappers most config for BimViewer + */ +export interface BimViewerConfig extends BaseViewerConfig { + /** + * Shows the NavCube. + * @internal + * @deprecated use NavCubePlugin instead + */ + enableNavCube?: boolean; + /** + * Shows the AxisGizmo. + * @internal + * @deprecated use AxisGizmoPlugin instead + */ + enableAxisGizmo?: boolean; + /** + * Shows the stats output. + * @internal + * @deprecated use StatsPlugin instead + */ + enableStats?: boolean; + /** + * Enables toolbar. + * The default toolbar is an example UI of the viewer, since plenty of APIs are exposed, + * you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc. + * @deprecated Use ToolbarPlugin instead + */ + enableToolbar?: boolean; + /** + * shows the bottom-bar. + * @internal + * @deprecated use BottomBarPlugin instead + */ + enableBottomBar?: boolean; + /** + * Shows the context-menu. + * @deprecated Use ContextMenuPlugin instead. + */ + enableContextMenu?: boolean; + /** + * If user can select an entity by mouse click + * @internal + * @default true + */ + enableSelection?: boolean; + /** + * Default is `meters` + * @internal + */ + units?: string; + /** + * Sets the default locale + * @internal + */ + locale?: "cn" | "en"; +} +/** + * This wrappers most config for DxfViewer + */ +export interface DxfViewerConfig extends BaseViewerConfig { + /** + * @internal + * @deprecated use AxisGizmoPlugin instead + */ + enableAxisGizmo?: boolean; + /** + * Enables layout bar so we can switch to other layouts. + * The default layout bar is an example UI of the viewer, since plenty of APIs are exposed, + * you are recommended to create your own layout bar with customized style, location, etc. + */ + enableLayoutBar?: boolean; + /** + * @internal + * @deprecated use NavCubePlugin instead + */ + enableStats?: boolean; + /** + * Enables toolbar. + * The default toolbar is an example UI of the viewer, since plenty of APIs are exposed, + * you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc. + * @deprecated Use ToolbarPlugin instead + */ + enableToolbar?: boolean; + /** + * @internal + * @deprecated use BottomBarPlugin instead + */ + enableBottomBar?: boolean; + /** + * If to cache model into indexeddb (or maybe local storage in future). + * If enabled, it will get model data from cache the next time model is loaded. + * @internal + * @default true + */ + enableLocalCache?: boolean; + /** + * If user can select an entity by mouse click + * @internal + * @default false + */ + enableSelection?: boolean; +} +/** + * Dxf compare config. + */ +export interface DxfCompareConfig { + /** + * Enables to compare properties (color, linetype, line width, etc.) + */ + enableDetailComparision: boolean; +} +/** + * This wrappers most config for VRViewer + */ +export interface VRViewerConfig extends BaseViewerConfig { + autoRotateSpeed?: number; + /** + * Enables toolbar. + * The default toolbar is an example UI of the viewer, since plenty of APIs are exposed, + * you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc. + * @deprecated Use ToolbarPlugin instead + */ + enableToolbar?: boolean; +} +/** + * VR Viewpoint's hotpoint, which can be a user defined html element. + * A hotpoint can be clicked, then caller can do their own operation, + * e.g. open a description panel, jump to another viewpoint, etc. + */ +export interface Hotpoint { + hotpointId: string; + anchorPosition: number[]; + visible?: boolean; + html: string; +} +/** + * A VRViewpointPlan contains 1 or more panor + * A viewpoint may contain more than one plans + */ +export interface Panorama { + id: string; + /** + * 1, 6 or 24 image urls in order of right, left, up, down, front, back. + * When there is 1 image, caller should also put it into array! + */ + images: string[]; + /** + * 6 image urls in order of right, left, up, down, front, back + */ + thumbnails?: string[]; +} +export interface VRViewpoint { + /** + * @deprecated moved to VRViewpointPlan + */ + imageOrImages?: string | string[]; + /** + * @deprecated moved to VRViewpointPlan + */ + thumbnailImages?: string[]; + panoramas: Panorama[]; + id: string; + name?: string; + position?: number[]; + initialDirection?: number[]; + hotpoints?: Hotpoint[]; +} +/** + * A default BimViewerConfig as a template, which enables most plugins. + * @internal + */ +export declare const DEFAULT_BIM_VIEWER_CONFIG: BimViewerConfig; +/** + * @internal + */ +export interface IsolateObjectsParam { + id: string; + modelId: string; +} +/** + * @internal + */ +export interface IsolateObjectsParams { + familyInstanceIds: IsolateObjectsParam[]; +} +/** + * @internal + */ +export interface ScreenshotConfig { + type: string; + quality: number; + includeOverlay: boolean; +} +/** + * Icon class. + * Used by toolbar and bottom bar icons, etc. + */ +export interface IconClass { + /** + * The default icon. + */ + default: string; + /** + * The icon when item is actived. + */ + active?: string; + /** + * The icon font class name. + */ + iconFont?: string; +} diff --git a/demo/libs/types/core/Constants.d.ts b/demo/libs/types/core/Constants.d.ts index 74e589f..f90d289 100644 --- a/demo/libs/types/core/Constants.d.ts +++ b/demo/libs/types/core/Constants.d.ts @@ -1,164 +1,164 @@ -/** - * To improve performance, we can set object.matrixAutoUpdate = false for static or rarely moving objects and - * manually call object.updateMatrix() whenever their position/rotation/quaternion/scale are updated. - * Add a constrant here, so developer can change it here easily for debugging. - * @internal - */ -export declare const matrixAutoUpdate = false; -/** - * @internal - */ -export declare const sceneAutoUpdate = false; -/** - * These concept can be complex: hitable, snapable, selectable, visible - * Mesh Y Y Y Y - * text in DxfViewer Y N Y Y - * ground plan Y Y N Y - * outline N Y N Y - * OSnap auxiliary object N Y N N - * - * So, we must handle them properly. We'll try to put them into different layers. - * - * For each created object with geometry and material, the default layer is set to enableAll. - * If the object is only displayed, it is not necessary to call enableAll. For example, some auxiliary display objects. - * For objects that cannot be hitable, snapable, selectable, etc., call ObjectUtils.disableLayerChannels to exclude the corresponding channel. - * @example - * ``` typescript - * this.groundPlane.layers.enableAll(); - * ObjectUtils.disableLayerChannels(this.groundPlane, [layerForSelectableObjects]); - * ``` - */ -/** - * @internal - */ -export declare const layerForHitableObjects = 10; -/** - * @internal - */ -export declare const layerForSnapableObjects = 11; -/** - * @internal - */ -export declare const layerForSelectableObjects = 12; -/** - * @internal - */ -export declare const ICON_FONT_CLASS = "gemini-viewer-iconfont"; -/** - * @internal - */ -export declare const KEYDOWN_EVENT = "keydown"; -/** - * @internal - */ -export declare const KEYUP_EVENT = "keyup"; -/** - * @internal - */ -export declare const MOUSEMOVE_EVENT = "mousemove"; -/** - * @internal - */ -export declare const MOUSEUP_EVENT = "mouseup"; -/** - * @internal - */ -export declare const MOUSEDOWN_EVENT = "mousedown"; -/** - * @internal - */ -export declare const ESC_KEY = "Escape"; -/** - * @internal - */ -export declare const ENTER_KEY = "Enter"; -/** - * @internal - */ -export declare const AXIS_SECTION_PLANE_ID = "axis-section-plane"; -/** - * @internal - */ -export declare const AXIS_SECTION_PLANE_CONTROL_ID = "axis-section-plane-control"; -/** - * @internal - */ -export declare const SECTION_PLANE_ID = "section-plane"; -/** - * @internal - */ -export declare const SECTION_PLANE_CONTROL_ID = "section-plane-control"; -/** - * @internal - */ -export declare const SECTION_BOX_ID = "section-box"; -/** - * @internal - */ -export declare const SECTION_PLANE_NAME = "plane-section-boxface"; -/** - * @internal - */ -export declare const GROUND_PLANE_RENDER_ORDER = -1000; -/** - * @internal - * Angle threshold at which two plane normals are parallel. Used to calculate edges. - */ -export declare const ANGLE_THRESHOLD_FOR_EDGE = 10; -/** - * Section type - */ -export declare enum SectionType { - ObjectsBoxSection = "ObjectsBoxSection", - PickPlaneSection = "PickPlaneSection", - AxisPlaneSection = "AxisPlaneSection" -} -/** - * Screenshot mode. - */ -export declare enum ScreenshotMode { - /** - * Take screenshot of the whole canvas. - */ - Default = "Default", - /** - * Take screenshot by box selecting an area. - */ - BoxSelection = "BoxSelection", - /** - * Take screenshot by picking a markup. - */ - PickMarkup = "PickMarkup" -} -export interface Vector2 { - x: number; - y: number; -} -export interface Vector3 { - x: number; - y: number; - z: number; -} -export declare type Box = [number, number, number, number, number, number]; -export declare type Mat4 = [ - number, - number, - number, - number, - number, - number, - number, - number, - number, - number, - number, - number, - number, - number, - number, - number -] | Float32Array; -export interface Box2 { - min: Vector2; - max: Vector2; -} +/** + * To improve performance, we can set object.matrixAutoUpdate = false for static or rarely moving objects and + * manually call object.updateMatrix() whenever their position/rotation/quaternion/scale are updated. + * Add a constrant here, so developer can change it here easily for debugging. + * @internal + */ +export declare const matrixAutoUpdate = false; +/** + * @internal + */ +export declare const sceneAutoUpdate = false; +/** + * These concept can be complex: hitable, snapable, selectable, visible + * Mesh Y Y Y Y + * text in DxfViewer Y N Y Y + * ground plan Y Y N Y + * outline N Y N Y + * OSnap auxiliary object N Y N N + * + * So, we must handle them properly. We'll try to put them into different layers. + * + * For each created object with geometry and material, the default layer is set to enableAll. + * If the object is only displayed, it is not necessary to call enableAll. For example, some auxiliary display objects. + * For objects that cannot be hitable, snapable, selectable, etc., call ObjectUtils.disableLayerChannels to exclude the corresponding channel. + * @example + * ``` typescript + * this.groundPlane.layers.enableAll(); + * ObjectUtils.disableLayerChannels(this.groundPlane, [layerForSelectableObjects]); + * ``` + */ +/** + * @internal + */ +export declare const layerForHitableObjects = 10; +/** + * @internal + */ +export declare const layerForSnapableObjects = 11; +/** + * @internal + */ +export declare const layerForSelectableObjects = 12; +/** + * @internal + */ +export declare const ICON_FONT_CLASS = "gemini-viewer-iconfont"; +/** + * @internal + */ +export declare const KEYDOWN_EVENT = "keydown"; +/** + * @internal + */ +export declare const KEYUP_EVENT = "keyup"; +/** + * @internal + */ +export declare const MOUSEMOVE_EVENT = "mousemove"; +/** + * @internal + */ +export declare const MOUSEUP_EVENT = "mouseup"; +/** + * @internal + */ +export declare const MOUSEDOWN_EVENT = "mousedown"; +/** + * @internal + */ +export declare const ESC_KEY = "Escape"; +/** + * @internal + */ +export declare const ENTER_KEY = "Enter"; +/** + * @internal + */ +export declare const AXIS_SECTION_PLANE_ID = "axis-section-plane"; +/** + * @internal + */ +export declare const AXIS_SECTION_PLANE_CONTROL_ID = "axis-section-plane-control"; +/** + * @internal + */ +export declare const SECTION_PLANE_ID = "section-plane"; +/** + * @internal + */ +export declare const SECTION_PLANE_CONTROL_ID = "section-plane-control"; +/** + * @internal + */ +export declare const SECTION_BOX_ID = "section-box"; +/** + * @internal + */ +export declare const SECTION_PLANE_NAME = "plane-section-boxface"; +/** + * @internal + */ +export declare const GROUND_PLANE_RENDER_ORDER = -1000; +/** + * @internal + * Angle threshold at which two plane normals are parallel. Used to calculate edges. + */ +export declare const ANGLE_THRESHOLD_FOR_EDGE = 10; +/** + * Section type + */ +export declare enum SectionType { + ObjectsBoxSection = "ObjectsBoxSection", + PickPlaneSection = "PickPlaneSection", + AxisPlaneSection = "AxisPlaneSection" +} +/** + * Screenshot mode. + */ +export declare enum ScreenshotMode { + /** + * Take screenshot of the whole canvas. + */ + Default = "Default", + /** + * Take screenshot by box selecting an area. + */ + BoxSelection = "BoxSelection", + /** + * Take screenshot by picking a markup. + */ + PickMarkup = "PickMarkup" +} +export interface Vector2 { + x: number; + y: number; +} +export interface Vector3 { + x: number; + y: number; + z: number; +} +export declare type Box = [number, number, number, number, number, number]; +export declare type Mat4 = [ + number, + number, + number, + number, + number, + number, + number, + number, + number, + number, + number, + number, + number, + number, + number, + number +] | Float32Array; +export interface Box2 { + min: Vector2; + max: Vector2; +} diff --git a/demo/libs/types/core/TextTexture/TextTexture.d.ts b/demo/libs/types/core/TextTexture/TextTexture.d.ts index 4119cb7..6dbad9c 100644 --- a/demo/libs/types/core/TextTexture/TextTexture.d.ts +++ b/demo/libs/types/core/TextTexture/TextTexture.d.ts @@ -1,42 +1,42 @@ -import * as THREE from "three"; -export interface TextTextureConfig { - text?: string; - color?: string; - alignment?: string; - backgroundColor?: number; - fontFamily?: string; - fontSize?: number; - fontStyle?: string; - fontVariant?: string; - fontWeight?: string; - lineGap?: number; - padding?: number; - strokeColor?: string; - strokeWidth?: number; -} -export declare function toCSSFont(family: string, size: number, style: string, variant: string, weight: string): string; -export declare class TextTexture extends THREE.Texture { - private readonly canvas; - readonly isTextTexture = true; - private needsRedraw; - private contentOffset; - private lineOffset; - private width; - private height; - private pixelRatio; - cfg: Required; - constructor(config: TextTextureConfig, canvas?: HTMLCanvasElement); - get lines(): string[]; - get font(): string; - private getContentWidth; - private initDraw; - private getDrawPosition; - private draw; - private getDrawingBufferWidth; - private getDrawingBufferHeight; - private computeOptimalPixelRatio; - redrew(): void; - setPixelRatio(value: number): void; - setOptimalPixelRatio(object: THREE.Object3D, renderer: THREE.WebGLRenderer, camera: THREE.PerspectiveCamera | THREE.OrthographicCamera): void; - updateConfig(config: TextTextureConfig): void; -} +import * as THREE from "three"; +export interface TextTextureConfig { + text?: string; + color?: string; + alignment?: string; + backgroundColor?: number; + fontFamily?: string; + fontSize?: number; + fontStyle?: string; + fontVariant?: string; + fontWeight?: string; + lineGap?: number; + padding?: number; + strokeColor?: string; + strokeWidth?: number; +} +export declare function toCSSFont(family: string, size: number, style: string, variant: string, weight: string): string; +export declare class TextTexture extends THREE.Texture { + private readonly canvas; + readonly isTextTexture = true; + private needsRedraw; + private contentOffset; + private lineOffset; + private width; + private height; + private pixelRatio; + cfg: Required; + constructor(config: TextTextureConfig, canvas?: HTMLCanvasElement); + get lines(): string[]; + get font(): string; + private getContentWidth; + private initDraw; + private getDrawPosition; + private draw; + private getDrawingBufferWidth; + private getDrawingBufferHeight; + private computeOptimalPixelRatio; + redrew(): void; + setPixelRatio(value: number): void; + setOptimalPixelRatio(object: THREE.Object3D, renderer: THREE.WebGLRenderer, camera: THREE.PerspectiveCamera | THREE.OrthographicCamera): void; + updateConfig(config: TextTextureConfig): void; +} diff --git a/demo/libs/types/core/Units.d.ts b/demo/libs/types/core/Units.d.ts index b09a516..590893c 100644 --- a/demo/libs/types/core/Units.d.ts +++ b/demo/libs/types/core/Units.d.ts @@ -1,16 +1,16 @@ -/** - * Units are defined the same order as to Dxf format - */ -export declare enum Units { - Unitless = "Unitless", - Inches = "Inches", - Feet = "Feet", - Millimeters = "Millimeters", - Centimeters = "Centimeters", - Meters = "Meters" -} -/** - * Gets the unit scale when converting to meter - */ -export declare const unitScaleToMeter: (srcUnit: Units) => number; -export declare const unitScaleConversion: (srcUnit: Units, destUnit: Units) => number; +/** + * Units are defined the same order as to Dxf format + */ +export declare enum Units { + Unitless = "Unitless", + Inches = "Inches", + Feet = "Feet", + Millimeters = "Millimeters", + Centimeters = "Centimeters", + Meters = "Meters" +} +/** + * Gets the unit scale when converting to meter + */ +export declare const unitScaleToMeter: (srcUnit: Units) => number; +export declare const unitScaleConversion: (srcUnit: Units, destUnit: Units) => number; diff --git a/demo/libs/types/core/VersionManager.d.ts b/demo/libs/types/core/VersionManager.d.ts index 9416757..9780dc4 100644 --- a/demo/libs/types/core/VersionManager.d.ts +++ b/demo/libs/types/core/VersionManager.d.ts @@ -1,3 +1,3 @@ -export declare const getVersionFromLocalStorage: () => string | null; -export declare const setVersionToLocalStorage: () => void; -export declare const checkIsNewVersion: () => boolean; +export declare const getVersionFromLocalStorage: () => string | null; +export declare const setVersionToLocalStorage: () => void; +export declare const checkIsNewVersion: () => boolean; diff --git a/demo/libs/types/core/camera-controls/CameraControls.d.ts b/demo/libs/types/core/camera-controls/CameraControls.d.ts index b907868..9dcb6f9 100644 --- a/demo/libs/types/core/camera-controls/CameraControls.d.ts +++ b/demo/libs/types/core/camera-controls/CameraControls.d.ts @@ -1,773 +1,773 @@ -import type * as _THREE from 'three'; -import { THREESubset, Ref, MOUSE_BUTTON, ACTION, PointerInput, MouseButtons, Touches, FitToOptions, CameraControlsEventMap } from './types'; -import { EventDispatcher } from './EventDispatcher'; -export declare class CameraControls extends EventDispatcher { - /** - * Injects THREE as the dependency. You can then proceed to use CameraControls. - * - * e.g - * ```javascript - * CameraControls.install( { THREE: THREE } ); - * ``` - * - * Note: If you do not wish to use enter three.js to reduce file size(tree-shaking for example), make a subset to install. - * - * ```js - * import { - * Vector2, - * Vector3, - * Vector4, - * Quaternion, - * Matrix4, - * Spherical, - * Box3, - * Sphere, - * Raycaster, - * MathUtils, - * } from 'three'; - * - * const subsetOfTHREE = { - * Vector2 : Vector2, - * Vector3 : Vector3, - * Vector4 : Vector4, - * Quaternion: Quaternion, - * Matrix4 : Matrix4, - * Spherical : Spherical, - * Box3 : Box3, - * Sphere : Sphere, - * Raycaster : Raycaster, - * }; - - * CameraControls.install( { THREE: subsetOfTHREE } ); - * ``` - * @category Statics - */ - static install(libs: { - THREE: THREESubset; - }): void; - /** - * list all ACTIONs - * @category Statics - */ - static get ACTION(): typeof ACTION; - /** - * Minimum vertical angle in radians. - * The angle has to be between `0` and `.maxPolarAngle` inclusive. - * The default value is `0`. - * - * e.g. - * ``` - * cameraControls.maxPolarAngle = 0; - * ``` - * @category Properties - */ - minPolarAngle: number; - /** - * Maximum vertical angle in radians. - * The angle has to be between `.maxPolarAngle` and `Math.PI` inclusive. - * The default value is `Math.PI`. - * - * e.g. - * ``` - * cameraControls.maxPolarAngle = Math.PI; - * ``` - * @category Properties - */ - maxPolarAngle: number; - /** - * Minimum horizontal angle in radians. - * The angle has to be less than `.maxAzimuthAngle`. - * The default value is `- Infinity`. - * - * e.g. - * ``` - * cameraControls.minAzimuthAngle = - Infinity; - * ``` - * @category Properties - */ - minAzimuthAngle: number; - /** - * Maximum horizontal angle in radians. - * The angle has to be greater than `.minAzimuthAngle`. - * The default value is `Infinity`. - * - * e.g. - * ``` - * cameraControls.maxAzimuthAngle = Infinity; - * ``` - * @category Properties - */ - maxAzimuthAngle: number; - /** - * Minimum distance for dolly. The value must be higher than `0`. - * PerspectiveCamera only. - * @category Properties - */ - minDistance: number; - /** - * Maximum distance for dolly. The value must be higher than `minDistance`. - * PerspectiveCamera only. - * @category Properties - */ - maxDistance: number; - /** - * `true` to enable Infinity Dolly. - * When the Dolly distance is less than the `minDistance`, radius of the sphere will be set `minDistance` automatically. - * @category Properties - */ - infinityDolly: boolean; - /** - * Minimum camera zoom. - * @category Properties - */ - minZoom: number; - /** - * Maximum camera zoom. - * @category Properties - */ - maxZoom: number; - /** - * Approximate time in seconds to reach the target. A smaller value will reach the target faster. - * @category Properties - */ - smoothTime: number; - /** - * the smoothTime while dragging - * @category Properties - */ - draggingSmoothTime: number; - /** - * Max transition speed in unit-per-seconds - * @category Properties - */ - maxSpeed: number; - /** - * Speed of azimuth (horizontal) rotation. - * @category Properties - */ - azimuthRotateSpeed: number; - /** - * Speed of polar (vertical) rotation. - * @category Properties - */ - polarRotateSpeed: number; - /** - * Speed of mouse-wheel dollying. - * @category Properties - */ - dollySpeed: number; - /** - * Speed of drag for truck and pedestal. - * @category Properties - */ - truckSpeed: number; - /** - * `true` to enable Dolly-in to the mouse cursor coords. - * @category Properties - */ - dollyToCursor: boolean; - /** - * @category Properties - */ - dragToOffset: boolean; - /** - * The same as `.screenSpacePanning` in three.js's OrbitControls. - * @category Properties - */ - verticalDragToForward: boolean; - /** - * Friction ratio of the boundary. - * @category Properties - */ - boundaryFriction: number; - /** - * Controls how soon the `rest` event fires as the camera slows. - * @category Properties - */ - restThreshold: number; - /** - * An array of Meshes to collide with camera. - * Be aware colliderMeshes may decrease performance. The collision test uses 4 raycasters from the camera since the near plane has 4 corners. - * @category Properties - */ - colliderMeshes: _THREE.Object3D[]; - /** - * User's mouse input config. - * - * | button to assign | behavior | - * | --------------------- | -------- | - * | `mouseButtons.left` | `CameraControls.ACTION.ROTATE`* \| `CameraControls.ACTION.TRUCK` \| `CameraControls.ACTION.OFFSET` \| `CameraControls.ACTION.DOLLY` \| `CameraControls.ACTION.ZOOM` \| `CameraControls.ACTION.NONE` | - * | `mouseButtons.right` | `CameraControls.ACTION.ROTATE` \| `CameraControls.ACTION.TRUCK`* \| `CameraControls.ACTION.OFFSET` \| `CameraControls.ACTION.DOLLY` \| `CameraControls.ACTION.ZOOM` \| `CameraControls.ACTION.NONE` | - * | `mouseButtons.wheel` ¹ | `CameraControls.ACTION.ROTATE` \| `CameraControls.ACTION.TRUCK` \| `CameraControls.ACTION.OFFSET` \| `CameraControls.ACTION.DOLLY` \| `CameraControls.ACTION.ZOOM` \| `CameraControls.ACTION.NONE` | - * | `mouseButtons.middle` ² | `CameraControls.ACTION.ROTATE` \| `CameraControls.ACTION.TRUCK` \| `CameraControls.ACTION.OFFSET` \| `CameraControls.ACTION.DOLLY`* \| `CameraControls.ACTION.ZOOM` \| `CameraControls.ACTION.NONE` | - * - * 1. Mouse wheel event for scroll "up/down" on mac "up/down/left/right" - * 2. Mouse click on wheel event "button" - * - \* is the default. - * - The default of `mouseButtons.wheel` is: - * - `DOLLY` for Perspective camera. - * - `ZOOM` for Orthographic camera, and can't set `DOLLY`. - * @category Properties - */ - mouseButtons: MouseButtons; - /** - * User's touch input config. - * - * | fingers to assign | behavior | - * | --------------------- | -------- | - * | `touches.one` | `CameraControls.ACTION.TOUCH_ROTATE`* \| `CameraControls.ACTION.TOUCH_TRUCK` \| `CameraControls.ACTION.TOUCH_OFFSET` \| `CameraControls.ACTION.DOLLY` | `CameraControls.ACTION.ZOOM` | `CameraControls.ACTION.NONE` | - * | `touches.two` | `ACTION.TOUCH_DOLLY_TRUCK` \| `ACTION.TOUCH_DOLLY_OFFSET` \| `ACTION.TOUCH_DOLLY_ROTATE` \| `ACTION.TOUCH_ZOOM_TRUCK` \| `ACTION.TOUCH_ZOOM_OFFSET` \| `ACTION.TOUCH_ZOOM_ROTATE` \| `ACTION.TOUCH_DOLLY` \| `ACTION.TOUCH_ZOOM` \| `CameraControls.ACTION.TOUCH_ROTATE` \| `CameraControls.ACTION.TOUCH_TRUCK` \| `CameraControls.ACTION.TOUCH_OFFSET` \| `CameraControls.ACTION.NONE` | - * | `touches.three` | `ACTION.TOUCH_DOLLY_TRUCK` \| `ACTION.TOUCH_DOLLY_OFFSET` \| `ACTION.TOUCH_DOLLY_ROTATE` \| `ACTION.TOUCH_ZOOM_TRUCK` \| `ACTION.TOUCH_ZOOM_OFFSET` \| `ACTION.TOUCH_ZOOM_ROTATE` \| `CameraControls.ACTION.TOUCH_ROTATE` \| `CameraControls.ACTION.TOUCH_TRUCK` \| `CameraControls.ACTION.TOUCH_OFFSET` \| `CameraControls.ACTION.NONE` | - * - * - \* is the default. - * - The default of `touches.two` and `touches.three` is: - * - `TOUCH_DOLLY_TRUCK` for Perspective camera. - * - `TOUCH_ZOOM_TRUCK` for Orthographic camera, and can't set `TOUCH_DOLLY_TRUCK` and `TOUCH_DOLLY`. - * @category Properties - */ - touches: Touches; - /** - * Force cancel user dragging. - * @category Methods - */ - cancel: () => void; - protected _enabled: boolean; - protected _camera: _THREE.PerspectiveCamera | _THREE.OrthographicCamera; - protected _yAxisUpSpace: _THREE.Quaternion; - protected _yAxisUpSpaceInverse: _THREE.Quaternion; - protected _state: ACTION; - protected _domElement?: HTMLElement; - protected _viewport: _THREE.Vector4 | null; - protected _target: _THREE.Vector3; - protected _targetEnd: _THREE.Vector3; - protected _focalOffset: _THREE.Vector3; - protected _focalOffsetEnd: _THREE.Vector3; - protected _spherical: _THREE.Spherical; - protected _sphericalEnd: _THREE.Spherical; - protected _zoom: number; - protected _zoomEnd: number; - protected _target0: _THREE.Vector3; - protected _position0: _THREE.Vector3; - protected _zoom0: number; - protected _focalOffset0: _THREE.Vector3; - protected _dollyControlAmount: number; - protected _dollyControlCoord: _THREE.Vector2; - protected _nearPlaneCorners: [_THREE.Vector3, _THREE.Vector3, _THREE.Vector3, _THREE.Vector3]; - protected _hasRested: boolean; - protected _boundary: _THREE.Box3; - protected _boundaryEnclosesCamera: boolean; - protected _needsUpdate: boolean; - protected _updatedLastTime: boolean; - protected _elementRect: DOMRect | { - x: number; - y: number; - width: number; - height: number; - left: number; - right: number; - top: number; - bottom: number; - }; - protected _activePointers: PointerInput[]; - protected _isUserControllingRotate: boolean; - protected _isUserControllingDolly: boolean; - protected _isUserControllingTruck: boolean; - protected _isUserControllingOffset: boolean; - protected _isUserControllingZoom: boolean; - protected _thetaVelocity: Ref; - protected _phiVelocity: Ref; - protected _radiusVelocity: Ref; - protected _targetVelocity: _THREE.Vector3; - protected _focalOffsetVelocity: _THREE.Vector3; - protected _zoomVelocity: Ref; - /** - * Creates a `CameraControls` instance. - * - * Note: - * You **must install** three.js before using camera-controls. see [#install](#install) - * Not doing so will lead to runtime errors (`undefined` references to THREE). - * - * e.g. - * ``` - * CameraControls.install( { THREE } ); - * const cameraControls = new CameraControls( camera, domElement ); - * ``` - * - * @param camera A `THREE.PerspectiveCamera` or `THREE.OrthographicCamera` to be controlled. - * @param domElement A `HTMLElement` for the draggable area, usually `renderer.domElement`. - * @category Constructor - */ - constructor(camera: _THREE.PerspectiveCamera | _THREE.OrthographicCamera, domElement?: HTMLElement); - /** - * The camera to be controlled - * @category Properties - */ - get camera(): _THREE.PerspectiveCamera | _THREE.OrthographicCamera; - set camera(camera: _THREE.PerspectiveCamera | _THREE.OrthographicCamera); - /** - * Whether or not the controls are enabled. - * `false` to disable user dragging/touch-move, but all methods works. - * @category Properties - */ - get enabled(): boolean; - set enabled(enabled: boolean); - /** - * Returns `true` if the controls are active updating. - * readonly value. - * @category Properties - */ - get active(): boolean; - /** - * Getter for the current `ACTION`. - * readonly value. - * @category Properties - */ - get currentAction(): ACTION; - /** - * get/set Current distance. - * @category Properties - */ - get distance(): number; - set distance(distance: number); - /** - * get/set the azimuth angle (horizontal) in radians. - * Every 360 degrees turn is added to `.azimuthAngle` value, which is accumulative. - * @category Properties - */ - get azimuthAngle(): number; - set azimuthAngle(azimuthAngle: number); - /** - * get/set the polar angle (vertical) in radians. - * @category Properties - */ - get polarAngle(): number; - set polarAngle(polarAngle: number); - /** - * Whether camera position should be enclosed in the boundary or not. - * @category Properties - */ - get boundaryEnclosesCamera(): boolean; - set boundaryEnclosesCamera(boundaryEnclosesCamera: boolean); - /** - * Adds the specified event listener. - * Applicable event types (which is `K`) are: - * | Event name | Timing | - * | ------------------- | ------ | - * | `'controlstart'` | When the user starts to control the camera via mouse / touches. ¹ | - * | `'control'` | When the user controls the camera (dragging). | - * | `'controlend'` | When the user ends to control the camera. ¹ | - * | `'transitionstart'` | When any kind of transition starts, either user control or using a method with `enableTransition = true` | - * | `'update'` | When the camera position is updated. | - * | `'wake'` | When the camera starts moving. | - * | `'rest'` | When the camera movement is below `.restThreshold` ². | - * | `'sleep'` | When the camera end moving. | - * - * 1. `mouseButtons.wheel` (Mouse wheel control) does not emit `'controlstart'` and `'controlend'`. `mouseButtons.wheel` uses scroll-event internally, and scroll-event happens intermittently. That means "start" and "end" cannot be detected. - * 2. Due to damping, `sleep` will usually fire a few seconds after the camera _appears_ to have stopped moving. If you want to do something (e.g. enable UI, perform another transition) at the point when the camera has stopped, you probably want the `rest` event. This can be fine tuned using the `.restThreshold` parameter. See the [Rest and Sleep Example](https://yomotsu.github.io/camera-controls/examples/rest-and-sleep.html). - * - * e.g. - * ``` - * cameraControl.addEventListener( 'controlstart', myCallbackFunction ); - * ``` - * @param type event name - * @param listener handler function - * @category Methods - */ - addEventListener(type: K, listener: (event: CameraControlsEventMap[K]) => any): void; - /** - * Removes the specified event listener - * e.g. - * ``` - * cameraControl.addEventListener( 'controlstart', myCallbackFunction ); - * ``` - * @param type event name - * @param listener handler function - * @category Methods - */ - removeEventListener(type: K, listener: (event: CameraControlsEventMap[K]) => any): void; - /** - * Rotate azimuthal angle(horizontal) and polar angle(vertical). - * Every value is added to the current value. - * @param azimuthAngle Azimuth rotate angle. In radian. - * @param polarAngle Polar rotate angle. In radian. - * @param enableTransition Whether to move smoothly or immediately - * @category Methods - */ - rotate(azimuthAngle: number, polarAngle: number, enableTransition?: boolean): Promise; - /** - * Rotate azimuthal angle(horizontal) to the given angle and keep the same polar angle(vertical) target. - * - * e.g. - * ``` - * cameraControls.rotateAzimuthTo( 30 * THREE.MathUtils.DEG2RAD, true ); - * ``` - * @param azimuthAngle Azimuth rotate angle. In radian. - * @param enableTransition Whether to move smoothly or immediately - * @category Methods - */ - rotateAzimuthTo(azimuthAngle: number, enableTransition?: boolean): Promise; - /** - * Rotate polar angle(vertical) to the given angle and keep the same azimuthal angle(horizontal) target. - * - * e.g. - * ``` - * cameraControls.rotatePolarTo( 30 * THREE.MathUtils.DEG2RAD, true ); - * ``` - * @param polarAngle Polar rotate angle. In radian. - * @param enableTransition Whether to move smoothly or immediately - * @category Methods - */ - rotatePolarTo(polarAngle: number, enableTransition?: boolean): Promise; - /** - * Rotate azimuthal angle(horizontal) and polar angle(vertical) to the given angle. - * Camera view will rotate over the orbit pivot absolutely: - * - * azimuthAngle - * ``` - * 0º - * \ - * 90º -----+----- -90º - * \ - * 180º - * ``` - * | direction | angle | - * | --------- | ---------------------- | - * | front | 0º | - * | left | 90º (`Math.PI / 2`) | - * | right | -90º (`- Math.PI / 2`) | - * | back | 180º (`Math.PI`) | - * - * polarAngle - * ``` - * 180º - * | - * 90º - * | - * 0º - * ``` - * | direction | angle | - * | -------------------- | ---------------------- | - * | top/sky | 180º (`Math.PI`) | - * | horizontal from view | 90º (`Math.PI / 2`) | - * | bottom/floor | 0º | - * - * @param azimuthAngle Azimuth rotate angle to. In radian. - * @param polarAngle Polar rotate angle to. In radian. - * @param enableTransition Whether to move smoothly or immediately - * @category Methods - */ - rotateTo(azimuthAngle: number, polarAngle: number, enableTransition?: boolean): Promise; - /** - * Dolly in/out camera position. - * @param distance Distance of dollyIn. Negative number for dollyOut. - * @param enableTransition Whether to move smoothly or immediately. - * @category Methods - */ - dolly(distance: number, enableTransition?: boolean): Promise; - /** - * Dolly in/out camera position to given distance. - * @param distance Distance of dolly. - * @param enableTransition Whether to move smoothly or immediately. - * @category Methods - */ - dollyTo(distance: number, enableTransition?: boolean): Promise; - /** - * Zoom in/out camera. The value is added to camera zoom. - * Limits set with `.minZoom` and `.maxZoom` - * @param zoomStep zoom scale - * @param enableTransition Whether to move smoothly or immediately - * @category Methods - */ - zoom(zoomStep: number, enableTransition?: boolean): Promise; - /** - * Zoom in/out camera to given scale. The value overwrites camera zoom. - * Limits set with .minZoom and .maxZoom - * @param zoom - * @param enableTransition - * @category Methods - */ - zoomTo(zoom: number, enableTransition?: boolean): Promise; - /** - * @deprecated `pan()` has been renamed to `truck()` - * @category Methods - */ - pan(x: number, y: number, enableTransition?: boolean): Promise; - /** - * Truck and pedestal camera using current azimuthal angle - * @param x Horizontal translate amount - * @param y Vertical translate amount - * @param enableTransition Whether to move smoothly or immediately - * @category Methods - */ - truck(x: number, y: number, enableTransition?: boolean): Promise; - /** - * Move forward / backward. - * @param distance Amount to move forward / backward. Negative value to move backward - * @param enableTransition Whether to move smoothly or immediately - * @category Methods - */ - forward(distance: number, enableTransition?: boolean): Promise; - /** - * Move up / down. - * @param height Amount to move up / down. Negative value to move down - * @param enableTransition Whether to move smoothly or immediately - * @category Methods - */ - elevate(height: number, enableTransition?: boolean): Promise; - /** - * Move target position to given point. - * @param x x coord to move center position - * @param y y coord to move center position - * @param z z coord to move center position - * @param enableTransition Whether to move smoothly or immediately - * @category Methods - */ - moveTo(x: number, y: number, z: number, enableTransition?: boolean): Promise; - /** - * Look in the given point direction. - * @param x point x. - * @param y point y. - * @param z point z. - * @param enableTransition Whether to move smoothly or immediately. - * @returns Transition end promise - * @category Methods - */ - lookInDirectionOf(x: number, y: number, z: number, enableTransition?: boolean): Promise; - /** - * Fit the viewport to the box or the bounding box of the object, using the nearest axis. paddings are in unit. - * set `cover: true` to fill enter screen. - * e.g. - * ``` - * cameraControls.fitToBox( myMesh ); - * ``` - * @param box3OrObject Axis aligned bounding box to fit the view. - * @param enableTransition Whether to move smoothly or immediately. - * @param options | `` { cover: boolean, paddingTop: number, paddingLeft: number, paddingBottom: number, paddingRight: number } - * @returns Transition end promise - * @category Methods - */ - fitToBox(box3OrObject: _THREE.Box3 | _THREE.Object3D, enableTransition: boolean, { cover, paddingLeft, paddingRight, paddingBottom, paddingTop }?: Partial): Promise; - /** - * Fit the viewport to the sphere or the bounding sphere of the object. - * @param sphereOrMesh - * @param enableTransition - * @category Methods - */ - fitToSphere(sphereOrMesh: _THREE.Sphere | _THREE.Object3D, enableTransition: boolean): Promise; - /** - * Look at the `target` from the `position`. - * @param positionX - * @param positionY - * @param positionZ - * @param targetX - * @param targetY - * @param targetZ - * @param enableTransition - * @category Methods - */ - setLookAt(positionX: number, positionY: number, positionZ: number, targetX: number, targetY: number, targetZ: number, enableTransition?: boolean): Promise; - /** - * Similar to setLookAt, but it interpolates between two states. - * @param positionAX - * @param positionAY - * @param positionAZ - * @param targetAX - * @param targetAY - * @param targetAZ - * @param positionBX - * @param positionBY - * @param positionBZ - * @param targetBX - * @param targetBY - * @param targetBZ - * @param t - * @param enableTransition - * @category Methods - */ - lerpLookAt(positionAX: number, positionAY: number, positionAZ: number, targetAX: number, targetAY: number, targetAZ: number, positionBX: number, positionBY: number, positionBZ: number, targetBX: number, targetBY: number, targetBZ: number, t: number, enableTransition?: boolean): Promise; - /** - * Set angle and distance by given position. - * An alias of `setLookAt()`, without target change. Thus keep gazing at the current target - * @param positionX - * @param positionY - * @param positionZ - * @param enableTransition - * @category Methods - */ - setPosition(positionX: number, positionY: number, positionZ: number, enableTransition?: boolean): Promise; - /** - * Set the target position where gaze at. - * An alias of `setLookAt()`, without position change. Thus keep the same position. - * @param targetX - * @param targetY - * @param targetZ - * @param enableTransition - * @category Methods - */ - setTarget(targetX: number, targetY: number, targetZ: number, enableTransition?: boolean): Promise; - /** - * Set focal offset using the screen parallel coordinates. z doesn't affect in Orthographic as with Dolly. - * @param x - * @param y - * @param z - * @param enableTransition - * @category Methods - */ - setFocalOffset(x: number, y: number, z: number, enableTransition?: boolean): Promise; - /** - * Set orbit point without moving the camera. - * SHOULD NOT RUN DURING ANIMATIONS. `setOrbitPoint()` will immediately fix the positions. - * @param targetX - * @param targetY - * @param targetZ - * @category Methods - */ - setOrbitPoint(targetX: number, targetY: number, targetZ: number): void; - /** - * Set the boundary box that encloses the target of the camera. box3 is in THREE.Box3 - * @param box3 - * @category Methods - */ - setBoundary(box3?: _THREE.Box3): void; - /** - * Set (or unset) the current viewport. - * Set this when you want to use renderer viewport and .dollyToCursor feature at the same time. - * @param viewportOrX - * @param y - * @param width - * @param height - * @category Methods - */ - setViewport(viewportOrX: _THREE.Vector4 | number | null, y: number, width: number, height: number): void; - /** - * Calculate the distance to fit the box. - * @param width box width - * @param height box height - * @param depth box depth - * @returns distance - * @category Methods - */ - getDistanceToFitBox(width: number, height: number, depth: number, cover?: boolean): number; - /** - * Calculate the distance to fit the sphere. - * @param radius sphere radius - * @returns distance - * @category Methods - */ - getDistanceToFitSphere(radius: number): number; - /** - * Returns its current gazing target, which is the center position of the orbit. - * @param out current gazing target - * @category Methods - */ - getTarget(out: _THREE.Vector3): _THREE.Vector3; - /** - * Returns its current position. - * @param out current position - * @category Methods - */ - getPosition(out: _THREE.Vector3): _THREE.Vector3; - /** - * Returns its current focal offset, which is how much the camera appears to be translated in screen parallel coordinates. - * @param out current focal offset - * @category Methods - */ - getFocalOffset(out: _THREE.Vector3): _THREE.Vector3; - /** - * Normalize camera azimuth angle rotation between 0 and 360 degrees. - * @category Methods - */ - normalizeRotations(): void; - /** - * Reset all rotation and position to defaults. - * @param enableTransition - * @category Methods - */ - reset(enableTransition?: boolean): Promise; - /** - * Set current camera position as the default position. - * @category Methods - */ - saveState(): void; - /** - * Sync camera-up direction. - * When camera-up vector is changed, `.updateCameraUp()` must be called. - * @category Methods - */ - updateCameraUp(): void; - /** - * Update camera position and directions. - * This should be called in your tick loop every time, and returns true if re-rendering is needed. - * @param delta - * @returns updated - * @category Methods - */ - update(delta: number): boolean; - /** - * Get all state in JSON string - * @category Methods - */ - toJSON(): string; - /** - * Reproduce the control state with JSON. enableTransition is where anim or not in a boolean. - * @param json - * @param enableTransition - * @category Methods - */ - fromJSON(json: string, enableTransition?: boolean): void; - /** - * Attach all internal event handlers to enable drag control. - * @category Methods - */ - connect(domElement: HTMLElement): void; - /** - * Detach all internal event handlers to disable drag control. - */ - disconnect(): void; - /** - * Dispose the cameraControls instance itself, remove all eventListeners. - * @category Methods - */ - dispose(): void; - protected _findPointerById(pointerId: number): PointerInput | undefined; - protected _findPointerByMouseButton(mouseButton: MOUSE_BUTTON): PointerInput | undefined; - protected _encloseToBoundary(position: _THREE.Vector3, offset: _THREE.Vector3, friction: number): _THREE.Vector3; - protected _updateNearPlaneCorners(): void; - protected _truckInternal: (deltaX: number, deltaY: number, dragToOffset: boolean) => void; - protected _rotateInternal: (deltaX: number, deltaY: number) => void; - protected _dollyInternal: (delta: number, x: number, y: number) => void; - protected _zoomInternal: (delta: number, x: number, y: number) => void; - protected _collisionTest(): number; - /** - * Get its client rect and package into given `DOMRect` . - */ - protected _getClientRect(target: DOMRect | any): DOMRect | undefined; - protected _createOnRestPromise(resolveImmediately: boolean): Promise; - protected _addAllEventListeners(_domElement: HTMLElement): void; - protected _removeAllEventListeners(): void; - /** - * backward compatible - * @deprecated use smoothTime (in seconds) instead - * @category Properties - */ - get dampingFactor(): number; - /** - * backward compatible - * @deprecated use smoothTime (in seconds) instead - * @category Properties - */ - set dampingFactor(_: number); - /** - * backward compatible - * @deprecated use draggingSmoothTime (in seconds) instead - * @category Properties - */ - get draggingDampingFactor(): number; - /** - * backward compatible - * @deprecated use draggingSmoothTime (in seconds) instead - * @category Properties - */ - set draggingDampingFactor(_: number); - static createBoundingSphere(object3d: _THREE.Object3D, out?: _THREE.Sphere): _THREE.Sphere; -} +import type * as _THREE from 'three'; +import { THREESubset, Ref, MOUSE_BUTTON, ACTION, PointerInput, MouseButtons, Touches, FitToOptions, CameraControlsEventMap } from './types'; +import { EventDispatcher } from './EventDispatcher'; +export declare class CameraControls extends EventDispatcher { + /** + * Injects THREE as the dependency. You can then proceed to use CameraControls. + * + * e.g + * ```javascript + * CameraControls.install( { THREE: THREE } ); + * ``` + * + * Note: If you do not wish to use enter three.js to reduce file size(tree-shaking for example), make a subset to install. + * + * ```js + * import { + * Vector2, + * Vector3, + * Vector4, + * Quaternion, + * Matrix4, + * Spherical, + * Box3, + * Sphere, + * Raycaster, + * MathUtils, + * } from 'three'; + * + * const subsetOfTHREE = { + * Vector2 : Vector2, + * Vector3 : Vector3, + * Vector4 : Vector4, + * Quaternion: Quaternion, + * Matrix4 : Matrix4, + * Spherical : Spherical, + * Box3 : Box3, + * Sphere : Sphere, + * Raycaster : Raycaster, + * }; + + * CameraControls.install( { THREE: subsetOfTHREE } ); + * ``` + * @category Statics + */ + static install(libs: { + THREE: THREESubset; + }): void; + /** + * list all ACTIONs + * @category Statics + */ + static get ACTION(): typeof ACTION; + /** + * Minimum vertical angle in radians. + * The angle has to be between `0` and `.maxPolarAngle` inclusive. + * The default value is `0`. + * + * e.g. + * ``` + * cameraControls.maxPolarAngle = 0; + * ``` + * @category Properties + */ + minPolarAngle: number; + /** + * Maximum vertical angle in radians. + * The angle has to be between `.maxPolarAngle` and `Math.PI` inclusive. + * The default value is `Math.PI`. + * + * e.g. + * ``` + * cameraControls.maxPolarAngle = Math.PI; + * ``` + * @category Properties + */ + maxPolarAngle: number; + /** + * Minimum horizontal angle in radians. + * The angle has to be less than `.maxAzimuthAngle`. + * The default value is `- Infinity`. + * + * e.g. + * ``` + * cameraControls.minAzimuthAngle = - Infinity; + * ``` + * @category Properties + */ + minAzimuthAngle: number; + /** + * Maximum horizontal angle in radians. + * The angle has to be greater than `.minAzimuthAngle`. + * The default value is `Infinity`. + * + * e.g. + * ``` + * cameraControls.maxAzimuthAngle = Infinity; + * ``` + * @category Properties + */ + maxAzimuthAngle: number; + /** + * Minimum distance for dolly. The value must be higher than `0`. + * PerspectiveCamera only. + * @category Properties + */ + minDistance: number; + /** + * Maximum distance for dolly. The value must be higher than `minDistance`. + * PerspectiveCamera only. + * @category Properties + */ + maxDistance: number; + /** + * `true` to enable Infinity Dolly. + * When the Dolly distance is less than the `minDistance`, radius of the sphere will be set `minDistance` automatically. + * @category Properties + */ + infinityDolly: boolean; + /** + * Minimum camera zoom. + * @category Properties + */ + minZoom: number; + /** + * Maximum camera zoom. + * @category Properties + */ + maxZoom: number; + /** + * Approximate time in seconds to reach the target. A smaller value will reach the target faster. + * @category Properties + */ + smoothTime: number; + /** + * the smoothTime while dragging + * @category Properties + */ + draggingSmoothTime: number; + /** + * Max transition speed in unit-per-seconds + * @category Properties + */ + maxSpeed: number; + /** + * Speed of azimuth (horizontal) rotation. + * @category Properties + */ + azimuthRotateSpeed: number; + /** + * Speed of polar (vertical) rotation. + * @category Properties + */ + polarRotateSpeed: number; + /** + * Speed of mouse-wheel dollying. + * @category Properties + */ + dollySpeed: number; + /** + * Speed of drag for truck and pedestal. + * @category Properties + */ + truckSpeed: number; + /** + * `true` to enable Dolly-in to the mouse cursor coords. + * @category Properties + */ + dollyToCursor: boolean; + /** + * @category Properties + */ + dragToOffset: boolean; + /** + * The same as `.screenSpacePanning` in three.js's OrbitControls. + * @category Properties + */ + verticalDragToForward: boolean; + /** + * Friction ratio of the boundary. + * @category Properties + */ + boundaryFriction: number; + /** + * Controls how soon the `rest` event fires as the camera slows. + * @category Properties + */ + restThreshold: number; + /** + * An array of Meshes to collide with camera. + * Be aware colliderMeshes may decrease performance. The collision test uses 4 raycasters from the camera since the near plane has 4 corners. + * @category Properties + */ + colliderMeshes: _THREE.Object3D[]; + /** + * User's mouse input config. + * + * | button to assign | behavior | + * | --------------------- | -------- | + * | `mouseButtons.left` | `CameraControls.ACTION.ROTATE`* \| `CameraControls.ACTION.TRUCK` \| `CameraControls.ACTION.OFFSET` \| `CameraControls.ACTION.DOLLY` \| `CameraControls.ACTION.ZOOM` \| `CameraControls.ACTION.NONE` | + * | `mouseButtons.right` | `CameraControls.ACTION.ROTATE` \| `CameraControls.ACTION.TRUCK`* \| `CameraControls.ACTION.OFFSET` \| `CameraControls.ACTION.DOLLY` \| `CameraControls.ACTION.ZOOM` \| `CameraControls.ACTION.NONE` | + * | `mouseButtons.wheel` ¹ | `CameraControls.ACTION.ROTATE` \| `CameraControls.ACTION.TRUCK` \| `CameraControls.ACTION.OFFSET` \| `CameraControls.ACTION.DOLLY` \| `CameraControls.ACTION.ZOOM` \| `CameraControls.ACTION.NONE` | + * | `mouseButtons.middle` ² | `CameraControls.ACTION.ROTATE` \| `CameraControls.ACTION.TRUCK` \| `CameraControls.ACTION.OFFSET` \| `CameraControls.ACTION.DOLLY`* \| `CameraControls.ACTION.ZOOM` \| `CameraControls.ACTION.NONE` | + * + * 1. Mouse wheel event for scroll "up/down" on mac "up/down/left/right" + * 2. Mouse click on wheel event "button" + * - \* is the default. + * - The default of `mouseButtons.wheel` is: + * - `DOLLY` for Perspective camera. + * - `ZOOM` for Orthographic camera, and can't set `DOLLY`. + * @category Properties + */ + mouseButtons: MouseButtons; + /** + * User's touch input config. + * + * | fingers to assign | behavior | + * | --------------------- | -------- | + * | `touches.one` | `CameraControls.ACTION.TOUCH_ROTATE`* \| `CameraControls.ACTION.TOUCH_TRUCK` \| `CameraControls.ACTION.TOUCH_OFFSET` \| `CameraControls.ACTION.DOLLY` | `CameraControls.ACTION.ZOOM` | `CameraControls.ACTION.NONE` | + * | `touches.two` | `ACTION.TOUCH_DOLLY_TRUCK` \| `ACTION.TOUCH_DOLLY_OFFSET` \| `ACTION.TOUCH_DOLLY_ROTATE` \| `ACTION.TOUCH_ZOOM_TRUCK` \| `ACTION.TOUCH_ZOOM_OFFSET` \| `ACTION.TOUCH_ZOOM_ROTATE` \| `ACTION.TOUCH_DOLLY` \| `ACTION.TOUCH_ZOOM` \| `CameraControls.ACTION.TOUCH_ROTATE` \| `CameraControls.ACTION.TOUCH_TRUCK` \| `CameraControls.ACTION.TOUCH_OFFSET` \| `CameraControls.ACTION.NONE` | + * | `touches.three` | `ACTION.TOUCH_DOLLY_TRUCK` \| `ACTION.TOUCH_DOLLY_OFFSET` \| `ACTION.TOUCH_DOLLY_ROTATE` \| `ACTION.TOUCH_ZOOM_TRUCK` \| `ACTION.TOUCH_ZOOM_OFFSET` \| `ACTION.TOUCH_ZOOM_ROTATE` \| `CameraControls.ACTION.TOUCH_ROTATE` \| `CameraControls.ACTION.TOUCH_TRUCK` \| `CameraControls.ACTION.TOUCH_OFFSET` \| `CameraControls.ACTION.NONE` | + * + * - \* is the default. + * - The default of `touches.two` and `touches.three` is: + * - `TOUCH_DOLLY_TRUCK` for Perspective camera. + * - `TOUCH_ZOOM_TRUCK` for Orthographic camera, and can't set `TOUCH_DOLLY_TRUCK` and `TOUCH_DOLLY`. + * @category Properties + */ + touches: Touches; + /** + * Force cancel user dragging. + * @category Methods + */ + cancel: () => void; + protected _enabled: boolean; + protected _camera: _THREE.PerspectiveCamera | _THREE.OrthographicCamera; + protected _yAxisUpSpace: _THREE.Quaternion; + protected _yAxisUpSpaceInverse: _THREE.Quaternion; + protected _state: ACTION; + protected _domElement?: HTMLElement; + protected _viewport: _THREE.Vector4 | null; + protected _target: _THREE.Vector3; + protected _targetEnd: _THREE.Vector3; + protected _focalOffset: _THREE.Vector3; + protected _focalOffsetEnd: _THREE.Vector3; + protected _spherical: _THREE.Spherical; + protected _sphericalEnd: _THREE.Spherical; + protected _zoom: number; + protected _zoomEnd: number; + protected _target0: _THREE.Vector3; + protected _position0: _THREE.Vector3; + protected _zoom0: number; + protected _focalOffset0: _THREE.Vector3; + protected _dollyControlAmount: number; + protected _dollyControlCoord: _THREE.Vector2; + protected _nearPlaneCorners: [_THREE.Vector3, _THREE.Vector3, _THREE.Vector3, _THREE.Vector3]; + protected _hasRested: boolean; + protected _boundary: _THREE.Box3; + protected _boundaryEnclosesCamera: boolean; + protected _needsUpdate: boolean; + protected _updatedLastTime: boolean; + protected _elementRect: DOMRect | { + x: number; + y: number; + width: number; + height: number; + left: number; + right: number; + top: number; + bottom: number; + }; + protected _activePointers: PointerInput[]; + protected _isUserControllingRotate: boolean; + protected _isUserControllingDolly: boolean; + protected _isUserControllingTruck: boolean; + protected _isUserControllingOffset: boolean; + protected _isUserControllingZoom: boolean; + protected _thetaVelocity: Ref; + protected _phiVelocity: Ref; + protected _radiusVelocity: Ref; + protected _targetVelocity: _THREE.Vector3; + protected _focalOffsetVelocity: _THREE.Vector3; + protected _zoomVelocity: Ref; + /** + * Creates a `CameraControls` instance. + * + * Note: + * You **must install** three.js before using camera-controls. see [#install](#install) + * Not doing so will lead to runtime errors (`undefined` references to THREE). + * + * e.g. + * ``` + * CameraControls.install( { THREE } ); + * const cameraControls = new CameraControls( camera, domElement ); + * ``` + * + * @param camera A `THREE.PerspectiveCamera` or `THREE.OrthographicCamera` to be controlled. + * @param domElement A `HTMLElement` for the draggable area, usually `renderer.domElement`. + * @category Constructor + */ + constructor(camera: _THREE.PerspectiveCamera | _THREE.OrthographicCamera, domElement?: HTMLElement); + /** + * The camera to be controlled + * @category Properties + */ + get camera(): _THREE.PerspectiveCamera | _THREE.OrthographicCamera; + set camera(camera: _THREE.PerspectiveCamera | _THREE.OrthographicCamera); + /** + * Whether or not the controls are enabled. + * `false` to disable user dragging/touch-move, but all methods works. + * @category Properties + */ + get enabled(): boolean; + set enabled(enabled: boolean); + /** + * Returns `true` if the controls are active updating. + * readonly value. + * @category Properties + */ + get active(): boolean; + /** + * Getter for the current `ACTION`. + * readonly value. + * @category Properties + */ + get currentAction(): ACTION; + /** + * get/set Current distance. + * @category Properties + */ + get distance(): number; + set distance(distance: number); + /** + * get/set the azimuth angle (horizontal) in radians. + * Every 360 degrees turn is added to `.azimuthAngle` value, which is accumulative. + * @category Properties + */ + get azimuthAngle(): number; + set azimuthAngle(azimuthAngle: number); + /** + * get/set the polar angle (vertical) in radians. + * @category Properties + */ + get polarAngle(): number; + set polarAngle(polarAngle: number); + /** + * Whether camera position should be enclosed in the boundary or not. + * @category Properties + */ + get boundaryEnclosesCamera(): boolean; + set boundaryEnclosesCamera(boundaryEnclosesCamera: boolean); + /** + * Adds the specified event listener. + * Applicable event types (which is `K`) are: + * | Event name | Timing | + * | ------------------- | ------ | + * | `'controlstart'` | When the user starts to control the camera via mouse / touches. ¹ | + * | `'control'` | When the user controls the camera (dragging). | + * | `'controlend'` | When the user ends to control the camera. ¹ | + * | `'transitionstart'` | When any kind of transition starts, either user control or using a method with `enableTransition = true` | + * | `'update'` | When the camera position is updated. | + * | `'wake'` | When the camera starts moving. | + * | `'rest'` | When the camera movement is below `.restThreshold` ². | + * | `'sleep'` | When the camera end moving. | + * + * 1. `mouseButtons.wheel` (Mouse wheel control) does not emit `'controlstart'` and `'controlend'`. `mouseButtons.wheel` uses scroll-event internally, and scroll-event happens intermittently. That means "start" and "end" cannot be detected. + * 2. Due to damping, `sleep` will usually fire a few seconds after the camera _appears_ to have stopped moving. If you want to do something (e.g. enable UI, perform another transition) at the point when the camera has stopped, you probably want the `rest` event. This can be fine tuned using the `.restThreshold` parameter. See the [Rest and Sleep Example](https://yomotsu.github.io/camera-controls/examples/rest-and-sleep.html). + * + * e.g. + * ``` + * cameraControl.addEventListener( 'controlstart', myCallbackFunction ); + * ``` + * @param type event name + * @param listener handler function + * @category Methods + */ + addEventListener(type: K, listener: (event: CameraControlsEventMap[K]) => any): void; + /** + * Removes the specified event listener + * e.g. + * ``` + * cameraControl.addEventListener( 'controlstart', myCallbackFunction ); + * ``` + * @param type event name + * @param listener handler function + * @category Methods + */ + removeEventListener(type: K, listener: (event: CameraControlsEventMap[K]) => any): void; + /** + * Rotate azimuthal angle(horizontal) and polar angle(vertical). + * Every value is added to the current value. + * @param azimuthAngle Azimuth rotate angle. In radian. + * @param polarAngle Polar rotate angle. In radian. + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + rotate(azimuthAngle: number, polarAngle: number, enableTransition?: boolean): Promise; + /** + * Rotate azimuthal angle(horizontal) to the given angle and keep the same polar angle(vertical) target. + * + * e.g. + * ``` + * cameraControls.rotateAzimuthTo( 30 * THREE.MathUtils.DEG2RAD, true ); + * ``` + * @param azimuthAngle Azimuth rotate angle. In radian. + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + rotateAzimuthTo(azimuthAngle: number, enableTransition?: boolean): Promise; + /** + * Rotate polar angle(vertical) to the given angle and keep the same azimuthal angle(horizontal) target. + * + * e.g. + * ``` + * cameraControls.rotatePolarTo( 30 * THREE.MathUtils.DEG2RAD, true ); + * ``` + * @param polarAngle Polar rotate angle. In radian. + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + rotatePolarTo(polarAngle: number, enableTransition?: boolean): Promise; + /** + * Rotate azimuthal angle(horizontal) and polar angle(vertical) to the given angle. + * Camera view will rotate over the orbit pivot absolutely: + * + * azimuthAngle + * ``` + * 0º + * \ + * 90º -----+----- -90º + * \ + * 180º + * ``` + * | direction | angle | + * | --------- | ---------------------- | + * | front | 0º | + * | left | 90º (`Math.PI / 2`) | + * | right | -90º (`- Math.PI / 2`) | + * | back | 180º (`Math.PI`) | + * + * polarAngle + * ``` + * 180º + * | + * 90º + * | + * 0º + * ``` + * | direction | angle | + * | -------------------- | ---------------------- | + * | top/sky | 180º (`Math.PI`) | + * | horizontal from view | 90º (`Math.PI / 2`) | + * | bottom/floor | 0º | + * + * @param azimuthAngle Azimuth rotate angle to. In radian. + * @param polarAngle Polar rotate angle to. In radian. + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + rotateTo(azimuthAngle: number, polarAngle: number, enableTransition?: boolean): Promise; + /** + * Dolly in/out camera position. + * @param distance Distance of dollyIn. Negative number for dollyOut. + * @param enableTransition Whether to move smoothly or immediately. + * @category Methods + */ + dolly(distance: number, enableTransition?: boolean): Promise; + /** + * Dolly in/out camera position to given distance. + * @param distance Distance of dolly. + * @param enableTransition Whether to move smoothly or immediately. + * @category Methods + */ + dollyTo(distance: number, enableTransition?: boolean): Promise; + /** + * Zoom in/out camera. The value is added to camera zoom. + * Limits set with `.minZoom` and `.maxZoom` + * @param zoomStep zoom scale + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + zoom(zoomStep: number, enableTransition?: boolean): Promise; + /** + * Zoom in/out camera to given scale. The value overwrites camera zoom. + * Limits set with .minZoom and .maxZoom + * @param zoom + * @param enableTransition + * @category Methods + */ + zoomTo(zoom: number, enableTransition?: boolean): Promise; + /** + * @deprecated `pan()` has been renamed to `truck()` + * @category Methods + */ + pan(x: number, y: number, enableTransition?: boolean): Promise; + /** + * Truck and pedestal camera using current azimuthal angle + * @param x Horizontal translate amount + * @param y Vertical translate amount + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + truck(x: number, y: number, enableTransition?: boolean): Promise; + /** + * Move forward / backward. + * @param distance Amount to move forward / backward. Negative value to move backward + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + forward(distance: number, enableTransition?: boolean): Promise; + /** + * Move up / down. + * @param height Amount to move up / down. Negative value to move down + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + elevate(height: number, enableTransition?: boolean): Promise; + /** + * Move target position to given point. + * @param x x coord to move center position + * @param y y coord to move center position + * @param z z coord to move center position + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + moveTo(x: number, y: number, z: number, enableTransition?: boolean): Promise; + /** + * Look in the given point direction. + * @param x point x. + * @param y point y. + * @param z point z. + * @param enableTransition Whether to move smoothly or immediately. + * @returns Transition end promise + * @category Methods + */ + lookInDirectionOf(x: number, y: number, z: number, enableTransition?: boolean): Promise; + /** + * Fit the viewport to the box or the bounding box of the object, using the nearest axis. paddings are in unit. + * set `cover: true` to fill enter screen. + * e.g. + * ``` + * cameraControls.fitToBox( myMesh ); + * ``` + * @param box3OrObject Axis aligned bounding box to fit the view. + * @param enableTransition Whether to move smoothly or immediately. + * @param options | `` { cover: boolean, paddingTop: number, paddingLeft: number, paddingBottom: number, paddingRight: number } + * @returns Transition end promise + * @category Methods + */ + fitToBox(box3OrObject: _THREE.Box3 | _THREE.Object3D, enableTransition: boolean, { cover, paddingLeft, paddingRight, paddingBottom, paddingTop }?: Partial): Promise; + /** + * Fit the viewport to the sphere or the bounding sphere of the object. + * @param sphereOrMesh + * @param enableTransition + * @category Methods + */ + fitToSphere(sphereOrMesh: _THREE.Sphere | _THREE.Object3D, enableTransition: boolean): Promise; + /** + * Look at the `target` from the `position`. + * @param positionX + * @param positionY + * @param positionZ + * @param targetX + * @param targetY + * @param targetZ + * @param enableTransition + * @category Methods + */ + setLookAt(positionX: number, positionY: number, positionZ: number, targetX: number, targetY: number, targetZ: number, enableTransition?: boolean): Promise; + /** + * Similar to setLookAt, but it interpolates between two states. + * @param positionAX + * @param positionAY + * @param positionAZ + * @param targetAX + * @param targetAY + * @param targetAZ + * @param positionBX + * @param positionBY + * @param positionBZ + * @param targetBX + * @param targetBY + * @param targetBZ + * @param t + * @param enableTransition + * @category Methods + */ + lerpLookAt(positionAX: number, positionAY: number, positionAZ: number, targetAX: number, targetAY: number, targetAZ: number, positionBX: number, positionBY: number, positionBZ: number, targetBX: number, targetBY: number, targetBZ: number, t: number, enableTransition?: boolean): Promise; + /** + * Set angle and distance by given position. + * An alias of `setLookAt()`, without target change. Thus keep gazing at the current target + * @param positionX + * @param positionY + * @param positionZ + * @param enableTransition + * @category Methods + */ + setPosition(positionX: number, positionY: number, positionZ: number, enableTransition?: boolean): Promise; + /** + * Set the target position where gaze at. + * An alias of `setLookAt()`, without position change. Thus keep the same position. + * @param targetX + * @param targetY + * @param targetZ + * @param enableTransition + * @category Methods + */ + setTarget(targetX: number, targetY: number, targetZ: number, enableTransition?: boolean): Promise; + /** + * Set focal offset using the screen parallel coordinates. z doesn't affect in Orthographic as with Dolly. + * @param x + * @param y + * @param z + * @param enableTransition + * @category Methods + */ + setFocalOffset(x: number, y: number, z: number, enableTransition?: boolean): Promise; + /** + * Set orbit point without moving the camera. + * SHOULD NOT RUN DURING ANIMATIONS. `setOrbitPoint()` will immediately fix the positions. + * @param targetX + * @param targetY + * @param targetZ + * @category Methods + */ + setOrbitPoint(targetX: number, targetY: number, targetZ: number): void; + /** + * Set the boundary box that encloses the target of the camera. box3 is in THREE.Box3 + * @param box3 + * @category Methods + */ + setBoundary(box3?: _THREE.Box3): void; + /** + * Set (or unset) the current viewport. + * Set this when you want to use renderer viewport and .dollyToCursor feature at the same time. + * @param viewportOrX + * @param y + * @param width + * @param height + * @category Methods + */ + setViewport(viewportOrX: _THREE.Vector4 | number | null, y: number, width: number, height: number): void; + /** + * Calculate the distance to fit the box. + * @param width box width + * @param height box height + * @param depth box depth + * @returns distance + * @category Methods + */ + getDistanceToFitBox(width: number, height: number, depth: number, cover?: boolean): number; + /** + * Calculate the distance to fit the sphere. + * @param radius sphere radius + * @returns distance + * @category Methods + */ + getDistanceToFitSphere(radius: number): number; + /** + * Returns its current gazing target, which is the center position of the orbit. + * @param out current gazing target + * @category Methods + */ + getTarget(out: _THREE.Vector3): _THREE.Vector3; + /** + * Returns its current position. + * @param out current position + * @category Methods + */ + getPosition(out: _THREE.Vector3): _THREE.Vector3; + /** + * Returns its current focal offset, which is how much the camera appears to be translated in screen parallel coordinates. + * @param out current focal offset + * @category Methods + */ + getFocalOffset(out: _THREE.Vector3): _THREE.Vector3; + /** + * Normalize camera azimuth angle rotation between 0 and 360 degrees. + * @category Methods + */ + normalizeRotations(): void; + /** + * Reset all rotation and position to defaults. + * @param enableTransition + * @category Methods + */ + reset(enableTransition?: boolean): Promise; + /** + * Set current camera position as the default position. + * @category Methods + */ + saveState(): void; + /** + * Sync camera-up direction. + * When camera-up vector is changed, `.updateCameraUp()` must be called. + * @category Methods + */ + updateCameraUp(): void; + /** + * Update camera position and directions. + * This should be called in your tick loop every time, and returns true if re-rendering is needed. + * @param delta + * @returns updated + * @category Methods + */ + update(delta: number): boolean; + /** + * Get all state in JSON string + * @category Methods + */ + toJSON(): string; + /** + * Reproduce the control state with JSON. enableTransition is where anim or not in a boolean. + * @param json + * @param enableTransition + * @category Methods + */ + fromJSON(json: string, enableTransition?: boolean): void; + /** + * Attach all internal event handlers to enable drag control. + * @category Methods + */ + connect(domElement: HTMLElement): void; + /** + * Detach all internal event handlers to disable drag control. + */ + disconnect(): void; + /** + * Dispose the cameraControls instance itself, remove all eventListeners. + * @category Methods + */ + dispose(): void; + protected _findPointerById(pointerId: number): PointerInput | undefined; + protected _findPointerByMouseButton(mouseButton: MOUSE_BUTTON): PointerInput | undefined; + protected _encloseToBoundary(position: _THREE.Vector3, offset: _THREE.Vector3, friction: number): _THREE.Vector3; + protected _updateNearPlaneCorners(): void; + protected _truckInternal: (deltaX: number, deltaY: number, dragToOffset: boolean) => void; + protected _rotateInternal: (deltaX: number, deltaY: number) => void; + protected _dollyInternal: (delta: number, x: number, y: number) => void; + protected _zoomInternal: (delta: number, x: number, y: number) => void; + protected _collisionTest(): number; + /** + * Get its client rect and package into given `DOMRect` . + */ + protected _getClientRect(target: DOMRect | any): DOMRect | undefined; + protected _createOnRestPromise(resolveImmediately: boolean): Promise; + protected _addAllEventListeners(_domElement: HTMLElement): void; + protected _removeAllEventListeners(): void; + /** + * backward compatible + * @deprecated use smoothTime (in seconds) instead + * @category Properties + */ + get dampingFactor(): number; + /** + * backward compatible + * @deprecated use smoothTime (in seconds) instead + * @category Properties + */ + set dampingFactor(_: number); + /** + * backward compatible + * @deprecated use draggingSmoothTime (in seconds) instead + * @category Properties + */ + get draggingDampingFactor(): number; + /** + * backward compatible + * @deprecated use draggingSmoothTime (in seconds) instead + * @category Properties + */ + set draggingDampingFactor(_: number); + static createBoundingSphere(object3d: _THREE.Object3D, out?: _THREE.Sphere): _THREE.Sphere; +} diff --git a/demo/libs/types/core/camera-controls/EventDispatcher.d.ts b/demo/libs/types/core/camera-controls/EventDispatcher.d.ts index 15741af..5ef0efc 100644 --- a/demo/libs/types/core/camera-controls/EventDispatcher.d.ts +++ b/demo/libs/types/core/camera-controls/EventDispatcher.d.ts @@ -1,41 +1,41 @@ -export declare type Listener = (event?: DispatcherEvent) => void; -export interface DispatcherEvent { - type: string; - [key: string]: any; -} -export declare class EventDispatcher { - private _listeners; - /** - * Adds the specified event listener. - * @param type event name - * @param listener handler function - * @category Methods - */ - addEventListener(type: string, listener: Listener): void; - /** - * Presence of the specified event listener. - * @param type event name - * @param listener handler function - * @category Methods - */ - hasEventListener(type: string, listener: Listener): boolean; - /** - * Removes the specified event listener - * @param type event name - * @param listener handler function - * @category Methods - */ - removeEventListener(type: string, listener: Listener): void; - /** - * Removes all event listeners - * @param type event name - * @category Methods - */ - removeAllEventListeners(type?: string): void; - /** - * Fire an event type. - * @param event DispatcherEvent - * @category Methods - */ - dispatchEvent(event: DispatcherEvent): void; -} +export declare type Listener = (event?: DispatcherEvent) => void; +export interface DispatcherEvent { + type: string; + [key: string]: any; +} +export declare class EventDispatcher { + private _listeners; + /** + * Adds the specified event listener. + * @param type event name + * @param listener handler function + * @category Methods + */ + addEventListener(type: string, listener: Listener): void; + /** + * Presence of the specified event listener. + * @param type event name + * @param listener handler function + * @category Methods + */ + hasEventListener(type: string, listener: Listener): boolean; + /** + * Removes the specified event listener + * @param type event name + * @param listener handler function + * @category Methods + */ + removeEventListener(type: string, listener: Listener): void; + /** + * Removes all event listeners + * @param type event name + * @category Methods + */ + removeAllEventListeners(type?: string): void; + /** + * Fire an event type. + * @param event DispatcherEvent + * @category Methods + */ + dispatchEvent(event: DispatcherEvent): void; +} diff --git a/demo/libs/types/core/camera-controls/constants.d.ts b/demo/libs/types/core/camera-controls/constants.d.ts index 0a7f512..c3c77d3 100644 --- a/demo/libs/types/core/camera-controls/constants.d.ts +++ b/demo/libs/types/core/camera-controls/constants.d.ts @@ -1,2 +1,2 @@ -export declare const PI_2: number; -export declare const PI_HALF: number; +export declare const PI_2: number; +export declare const PI_HALF: number; diff --git a/demo/libs/types/core/camera-controls/index.d.ts b/demo/libs/types/core/camera-controls/index.d.ts index 7e6ba38..c0c8325 100644 --- a/demo/libs/types/core/camera-controls/index.d.ts +++ b/demo/libs/types/core/camera-controls/index.d.ts @@ -1,2 +1,2 @@ -import { CameraControls } from './CameraControls'; -export default CameraControls; +import { CameraControls } from './CameraControls'; +export default CameraControls; diff --git a/demo/libs/types/core/camera-controls/types.d.ts b/demo/libs/types/core/camera-controls/types.d.ts index 193c90f..5dadd2d 100644 --- a/demo/libs/types/core/camera-controls/types.d.ts +++ b/demo/libs/types/core/camera-controls/types.d.ts @@ -1,112 +1,112 @@ -import type * as _THREE from 'three'; -export interface THREESubset { - Vector2: typeof _THREE.Vector2; - Vector3: typeof _THREE.Vector3; - Vector4: typeof _THREE.Vector4; - Quaternion: typeof _THREE.Quaternion; - Matrix4: typeof _THREE.Matrix4; - Spherical: typeof _THREE.Spherical; - Box3: typeof _THREE.Box3; - Sphere: typeof _THREE.Sphere; - Raycaster: typeof _THREE.Raycaster; - [key: string]: any; -} -export declare type Ref = { - value: number; -}; -export declare const MOUSE_BUTTON: { - readonly LEFT: 1; - readonly RIGHT: 2; - readonly MIDDLE: 4; -}; -export declare type MOUSE_BUTTON = typeof MOUSE_BUTTON[keyof typeof MOUSE_BUTTON]; -export declare const ACTION: Readonly<{ - readonly NONE: 0; - readonly ROTATE: 1; - readonly TRUCK: 2; - readonly OFFSET: 4; - readonly DOLLY: 8; - readonly ZOOM: 16; - readonly TOUCH_ROTATE: 32; - readonly TOUCH_TRUCK: 64; - readonly TOUCH_OFFSET: 128; - readonly TOUCH_DOLLY: 256; - readonly TOUCH_ZOOM: 512; - readonly TOUCH_DOLLY_TRUCK: 1024; - readonly TOUCH_DOLLY_OFFSET: 2048; - readonly TOUCH_DOLLY_ROTATE: 4096; - readonly TOUCH_ZOOM_TRUCK: 8192; - readonly TOUCH_ZOOM_OFFSET: 16384; - readonly TOUCH_ZOOM_ROTATE: 32768; -}>; -export declare type ACTION = number; -export interface PointerInput { - pointerId: number; - clientX: number; - clientY: number; - deltaX: number; - deltaY: number; - mouseButton: MOUSE_BUTTON | null; -} -/** - * @internal - */ -export declare type mouseButtonAction = typeof ACTION.ROTATE | typeof ACTION.TRUCK | typeof ACTION.OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE; -/** - * @internal - */ -export declare type mouseWheelAction = typeof ACTION.ROTATE | typeof ACTION.TRUCK | typeof ACTION.OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE; -/** - * @internal - */ -export declare type singleTouchAction = typeof ACTION.TOUCH_ROTATE | typeof ACTION.TOUCH_TRUCK | typeof ACTION.TOUCH_OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE; -/** - * @internal - */ -export declare type multiTouchAction = typeof ACTION.TOUCH_DOLLY_ROTATE | typeof ACTION.TOUCH_DOLLY_TRUCK | typeof ACTION.TOUCH_DOLLY_OFFSET | typeof ACTION.TOUCH_ZOOM_ROTATE | typeof ACTION.TOUCH_ZOOM_TRUCK | typeof ACTION.TOUCH_ZOOM_OFFSET | typeof ACTION.TOUCH_DOLLY | typeof ACTION.TOUCH_ZOOM | typeof ACTION.TOUCH_ROTATE | typeof ACTION.TOUCH_TRUCK | typeof ACTION.TOUCH_OFFSET | typeof ACTION.NONE; -export interface MouseButtons { - left: mouseButtonAction; - middle: mouseButtonAction; - right: mouseButtonAction; - wheel: mouseWheelAction; -} -export interface Touches { - one: singleTouchAction; - two: multiTouchAction; - three: multiTouchAction; -} -export interface FitToOptions { - cover: boolean; - paddingLeft: number; - paddingRight: number; - paddingBottom: number; - paddingTop: number; -} -export interface CameraControlsEventMap { - update: { - type: 'update'; - }; - wake: { - type: 'wake'; - }; - rest: { - type: 'rest'; - }; - sleep: { - type: 'sleep'; - }; - transitionstart: { - type: 'transitionstart'; - }; - controlstart: { - type: 'controlstart'; - }; - control: { - type: 'control'; - }; - controlend: { - type: 'controlend'; - }; -} -export declare function isPerspectiveCamera(camera: _THREE.Camera): camera is _THREE.PerspectiveCamera; -export declare function isOrthographicCamera(camera: _THREE.Camera): camera is _THREE.OrthographicCamera; +import type * as _THREE from 'three'; +export interface THREESubset { + Vector2: typeof _THREE.Vector2; + Vector3: typeof _THREE.Vector3; + Vector4: typeof _THREE.Vector4; + Quaternion: typeof _THREE.Quaternion; + Matrix4: typeof _THREE.Matrix4; + Spherical: typeof _THREE.Spherical; + Box3: typeof _THREE.Box3; + Sphere: typeof _THREE.Sphere; + Raycaster: typeof _THREE.Raycaster; + [key: string]: any; +} +export declare type Ref = { + value: number; +}; +export declare const MOUSE_BUTTON: { + readonly LEFT: 1; + readonly RIGHT: 2; + readonly MIDDLE: 4; +}; +export declare type MOUSE_BUTTON = typeof MOUSE_BUTTON[keyof typeof MOUSE_BUTTON]; +export declare const ACTION: Readonly<{ + readonly NONE: 0; + readonly ROTATE: 1; + readonly TRUCK: 2; + readonly OFFSET: 4; + readonly DOLLY: 8; + readonly ZOOM: 16; + readonly TOUCH_ROTATE: 32; + readonly TOUCH_TRUCK: 64; + readonly TOUCH_OFFSET: 128; + readonly TOUCH_DOLLY: 256; + readonly TOUCH_ZOOM: 512; + readonly TOUCH_DOLLY_TRUCK: 1024; + readonly TOUCH_DOLLY_OFFSET: 2048; + readonly TOUCH_DOLLY_ROTATE: 4096; + readonly TOUCH_ZOOM_TRUCK: 8192; + readonly TOUCH_ZOOM_OFFSET: 16384; + readonly TOUCH_ZOOM_ROTATE: 32768; +}>; +export declare type ACTION = number; +export interface PointerInput { + pointerId: number; + clientX: number; + clientY: number; + deltaX: number; + deltaY: number; + mouseButton: MOUSE_BUTTON | null; +} +/** + * @internal + */ +export declare type mouseButtonAction = typeof ACTION.ROTATE | typeof ACTION.TRUCK | typeof ACTION.OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE; +/** + * @internal + */ +export declare type mouseWheelAction = typeof ACTION.ROTATE | typeof ACTION.TRUCK | typeof ACTION.OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE; +/** + * @internal + */ +export declare type singleTouchAction = typeof ACTION.TOUCH_ROTATE | typeof ACTION.TOUCH_TRUCK | typeof ACTION.TOUCH_OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE; +/** + * @internal + */ +export declare type multiTouchAction = typeof ACTION.TOUCH_DOLLY_ROTATE | typeof ACTION.TOUCH_DOLLY_TRUCK | typeof ACTION.TOUCH_DOLLY_OFFSET | typeof ACTION.TOUCH_ZOOM_ROTATE | typeof ACTION.TOUCH_ZOOM_TRUCK | typeof ACTION.TOUCH_ZOOM_OFFSET | typeof ACTION.TOUCH_DOLLY | typeof ACTION.TOUCH_ZOOM | typeof ACTION.TOUCH_ROTATE | typeof ACTION.TOUCH_TRUCK | typeof ACTION.TOUCH_OFFSET | typeof ACTION.NONE; +export interface MouseButtons { + left: mouseButtonAction; + middle: mouseButtonAction; + right: mouseButtonAction; + wheel: mouseWheelAction; +} +export interface Touches { + one: singleTouchAction; + two: multiTouchAction; + three: multiTouchAction; +} +export interface FitToOptions { + cover: boolean; + paddingLeft: number; + paddingRight: number; + paddingBottom: number; + paddingTop: number; +} +export interface CameraControlsEventMap { + update: { + type: 'update'; + }; + wake: { + type: 'wake'; + }; + rest: { + type: 'rest'; + }; + sleep: { + type: 'sleep'; + }; + transitionstart: { + type: 'transitionstart'; + }; + controlstart: { + type: 'controlstart'; + }; + control: { + type: 'control'; + }; + controlend: { + type: 'controlend'; + }; +} +export declare function isPerspectiveCamera(camera: _THREE.Camera): camera is _THREE.PerspectiveCamera; +export declare function isOrthographicCamera(camera: _THREE.Camera): camera is _THREE.OrthographicCamera; diff --git a/demo/libs/types/core/camera-controls/utils/extractClientCoordFromEvent.d.ts b/demo/libs/types/core/camera-controls/utils/extractClientCoordFromEvent.d.ts index 63a7442..8d3b370 100644 --- a/demo/libs/types/core/camera-controls/utils/extractClientCoordFromEvent.d.ts +++ b/demo/libs/types/core/camera-controls/utils/extractClientCoordFromEvent.d.ts @@ -1,3 +1,3 @@ -import type * as _THREE from 'three'; -import type { PointerInput } from '../types'; -export declare function extractClientCoordFromEvent(pointers: PointerInput[], out: _THREE.Vector2): void; +import type * as _THREE from 'three'; +import type { PointerInput } from '../types'; +export declare function extractClientCoordFromEvent(pointers: PointerInput[], out: _THREE.Vector2): void; diff --git a/demo/libs/types/core/camera-controls/utils/math-utils.d.ts b/demo/libs/types/core/camera-controls/utils/math-utils.d.ts index f99d944..fc2a9bb 100644 --- a/demo/libs/types/core/camera-controls/utils/math-utils.d.ts +++ b/demo/libs/types/core/camera-controls/utils/math-utils.d.ts @@ -1,11 +1,11 @@ -import type * as _THREE from 'three'; -import type { Ref } from '../types'; -export declare const DEG2RAD: number; -export declare function clamp(value: number, min: number, max: number): number; -export declare function approxZero(number: number, error?: number): boolean; -export declare function approxEquals(a: number, b: number, error?: number): boolean; -export declare function roundToStep(value: number, step: number): number; -export declare function infinityToMaxNumber(value: number): number; -export declare function maxNumberToInfinity(value: number): number; -export declare function smoothDamp(current: number, target: number, currentVelocityRef: Ref, smoothTime: number, maxSpeed: number | undefined, deltaTime: number): number; -export declare function smoothDampVec3(current: _THREE.Vector3, target: _THREE.Vector3, currentVelocityRef: _THREE.Vector3, smoothTime: number, maxSpeed: number | undefined, deltaTime: number, out: _THREE.Vector3): _THREE.Vector3; +import type * as _THREE from 'three'; +import type { Ref } from '../types'; +export declare const DEG2RAD: number; +export declare function clamp(value: number, min: number, max: number): number; +export declare function approxZero(number: number, error?: number): boolean; +export declare function approxEquals(a: number, b: number, error?: number): boolean; +export declare function roundToStep(value: number, step: number): number; +export declare function infinityToMaxNumber(value: number): number; +export declare function maxNumberToInfinity(value: number): number; +export declare function smoothDamp(current: number, target: number, currentVelocityRef: Ref, smoothTime: number, maxSpeed: number | undefined, deltaTime: number): number; +export declare function smoothDampVec3(current: _THREE.Vector3, target: _THREE.Vector3, currentVelocityRef: _THREE.Vector3, smoothTime: number, maxSpeed: number | undefined, deltaTime: number, out: _THREE.Vector3): _THREE.Vector3; diff --git a/demo/libs/types/core/camera-controls/utils/notSupportedInOrthographicCamera.d.ts b/demo/libs/types/core/camera-controls/utils/notSupportedInOrthographicCamera.d.ts index d79136d..69735e9 100644 --- a/demo/libs/types/core/camera-controls/utils/notSupportedInOrthographicCamera.d.ts +++ b/demo/libs/types/core/camera-controls/utils/notSupportedInOrthographicCamera.d.ts @@ -1,2 +1,2 @@ -import * as _THREE from 'three'; -export declare function notSupportedInOrthographicCamera(camera: _THREE.OrthographicCamera | _THREE.PerspectiveCamera, message: string): camera is _THREE.OrthographicCamera; +import * as _THREE from 'three'; +export declare function notSupportedInOrthographicCamera(camera: _THREE.OrthographicCamera | _THREE.PerspectiveCamera, message: string): camera is _THREE.OrthographicCamera; diff --git a/demo/libs/types/core/canvas/CanvasRender.d.ts b/demo/libs/types/core/canvas/CanvasRender.d.ts index 1c35b26..eafb179 100644 --- a/demo/libs/types/core/canvas/CanvasRender.d.ts +++ b/demo/libs/types/core/canvas/CanvasRender.d.ts @@ -1,51 +1,52 @@ -import * as THREE from "three"; -import { DrawableData } from "./Constants"; -import { Drawable } from "./Drawable"; -import type { DrawableList } from "./DrawableList"; -import { Event } from "../../core/utils"; -import type { BimViewer, DxfViewer } from "../../core/viewers"; -/** - * @internal - */ -export declare type constructorReturnType = new (...arg: any) => T; -/** - * @internal - */ -export declare class CanvasRender extends Event { - private viewer; - private drawableLists; - private canvas?; - context?: CanvasRenderingContext2D; - private frustum; - private projScreenMatrix; - static _registerDrawableClass(drawable: constructorReturnType): void; - static createDrawable(data: DrawableData): Drawable>; - constructor(viewer: BimViewer | DxfViewer); - get container(): HTMLElement; - get camera(): THREE.Camera; - get raycaster(): THREE.Raycaster; - private init; - private initCanvas; - private toHighDpr; - clearCanvas(): void; - addDrawableList(drawableList: DrawableList): void; - render(): void; - setSize(width: number, height: number): void; - getSortedDrawables(onlyVisible?: boolean): Drawable>[]; - getDrawablesByPosition(p: THREE.Vector3, raycaster?: THREE.Raycaster): Drawable[]; - getDrawableById(id: string): Drawable> | undefined; - measureTextLength(text: string, font: string): number; - /** - * - * @param option - * @returns - * @deprecated - */ - screenshot(option?: { - type: string; - quality: number; - }): Promise; - getImage(filter: (drawable: Drawable) => boolean): Promise; - getCanvas(): HTMLCanvasElement | undefined; - destroy(): void; -} +import * as THREE from "three"; +import { DrawableData } from "./Constants"; +import { Drawable } from "./Drawable"; +import type { DrawableList } from "./DrawableList"; +import { Event } from "../../core/utils"; +import type { BimViewer, DxfViewer } from "../../core/viewers"; +/** + * @internal + */ +export declare type constructorReturnType = new (...arg: any) => T; +/** + * @internal + */ +export declare class CanvasRender extends Event { + private viewer; + private drawableLists; + private canvas?; + context?: CanvasRenderingContext2D; + private frustum; + private projScreenMatrix; + static _registerDrawableClass(drawable: constructorReturnType): void; + static createDrawable(data: DrawableData): Drawable>; + constructor(viewer: BimViewer | DxfViewer); + get is3d(): boolean; + get container(): HTMLElement; + get camera(): THREE.Camera; + get raycaster(): THREE.Raycaster; + private init; + private initCanvas; + private toHighDpr; + clearCanvas(): void; + addDrawableList(drawableList: DrawableList): void; + render(): void; + setSize(width: number, height: number): void; + getSortedDrawables(onlyVisible?: boolean): Drawable>[]; + getDrawablesByPosition(p: THREE.Vector3, raycaster?: THREE.Raycaster): Drawable[]; + getDrawableById(id: string): Drawable> | undefined; + measureTextLength(text: string, font: string): number; + /** + * + * @param option + * @returns + * @deprecated + */ + screenshot(option?: { + type: string; + quality: number; + }): Promise; + getImage(filter: (drawable: Drawable) => boolean): Promise; + getCanvas(): HTMLCanvasElement | undefined; + destroy(): void; +} diff --git a/demo/libs/types/core/canvas/Constants.d.ts b/demo/libs/types/core/canvas/Constants.d.ts index 4f92794..d16ddcd 100644 --- a/demo/libs/types/core/canvas/Constants.d.ts +++ b/demo/libs/types/core/canvas/Constants.d.ts @@ -1,28 +1,28 @@ -/** - * Drawable data, including measurement data, markup data, etc. - */ -export interface DrawableData { - /** - * id is used by business logic to manage(find, update, delete, etc.) drawables - */ - id: string; - /** - * Two dimension float array stores 2d or 3d points. - * e.g., You can use "[[1, 1], [2.5, 3]]" to represent a distance measurement result, - * "[1, 1]" is the first point, and "[2.5, 3]" is the second point. - */ - points: number[][]; - lineWidth?: number; - /** - * Line color is number array. e.g: [r, g, b, a] - */ - lineColor?: number[]; - /** - * Fill color is number array. e.g: [r, g, b, a] - */ - fillColor?: number[]; - /** - * Drawable dta type - */ - type: string; -} +/** + * Drawable data, including measurement data, markup data, etc. + */ +export interface DrawableData { + /** + * id is used by business logic to manage(find, update, delete, etc.) drawables + */ + id: string; + /** + * Two dimension float array stores 2d or 3d points. + * e.g., You can use "[[1, 1], [2.5, 3]]" to represent a distance measurement result, + * "[1, 1]" is the first point, and "[2.5, 3]" is the second point. + */ + points: number[][]; + lineWidth?: number; + /** + * Line color is number array. e.g: [r, g, b, a] + */ + lineColor?: number[]; + /** + * Fill color is number array. e.g: [r, g, b, a] + */ + fillColor?: number[]; + /** + * Drawable dta type + */ + type: string; +} diff --git a/demo/libs/types/core/canvas/Drawable.d.ts b/demo/libs/types/core/canvas/Drawable.d.ts index 79603c5..a6983fe 100644 --- a/demo/libs/types/core/canvas/Drawable.d.ts +++ b/demo/libs/types/core/canvas/Drawable.d.ts @@ -1,87 +1,87 @@ -import * as THREE from "three"; -import { DrawableData } from "./Constants"; -import { Event } from "../../core/utils"; -/** - * @internal - */ -export declare abstract class Drawable = Record> extends Event { - protected readonly DEFAULT_LINE_WIDTH = 1; - protected readonly DEFAULT_STROKE_STYLE: number[]; - protected readonly DEFAULT_FILL_STYLE: number[]; - id: string; - protected lineWidth: number; - protected lineColor: number[]; - protected fillColor: number[]; - x: number; - y: number; - width: number; - height: number; - protected points: THREE.Vector3[]; - userData: Record; - protected tolerance: number; - visible: boolean; - selected: boolean; - /** - * render order, the bigger number is on the top - */ - renderOrder: number; - needsFrustumCulled: boolean; - protected editPointSize: number; - protected editPointFillColor: string; - protected editPointStrokeColor: string; - protected matrix: THREE.Matrix4; - protected ctx?: CanvasRenderingContext2D; - constructor(id?: string); - setTolerance(t: number): void; - render(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - getData(): DrawableData; - setData(data: DrawableData): void; - getVertexes(): THREE.Vector3[]; - setLineWidth(lineWidth?: number): void; - setLineColor(color?: number[]): void; - setFillColor(color?: number[]): void; - isSelected(): boolean; - getCenter(): THREE.Vector3; - transToScreenCoord(vector: THREE.Vector3, camera: THREE.Camera): THREE.Vector2; - /** - * - * @param ctx - * @param camera - * @describe just for debug bounds - */ - private drawBounds; - /** - * - * @param ctx - * @param camera - * @describe just for debug - */ - private drawCenter; - /** - * - * @param p is world position - * @param raycaster just for 3d intersect - * @returns boolean - * @describe is point interact drawable, use to select drawable, the same as threejs object raycast - */ - abstract isPointInPath(p: THREE.Vector3, raycaster?: THREE.Raycaster): boolean; - getBounds(): THREE.Box3; - /** - * - * @param ctx - * @param camera - * @describe abstract draw method - */ - abstract draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - /** - * - * @param ctx - * @param camera - * @describe abstract drawSelect method - */ - abstract drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - /** - * @describe class type for serialize - */ - abstract getClassType(): string; -} +import * as THREE from "three"; +import { DrawableData } from "./Constants"; +import { Event } from "../../core/utils"; +/** + * @internal + */ +export declare abstract class Drawable = Record> extends Event { + protected readonly DEFAULT_LINE_WIDTH = 1; + protected readonly DEFAULT_STROKE_STYLE: number[]; + protected readonly DEFAULT_FILL_STYLE: number[]; + id: string; + protected lineWidth: number; + protected lineColor: number[]; + protected fillColor: number[]; + x: number; + y: number; + width: number; + height: number; + protected points: THREE.Vector3[]; + userData: Record; + protected tolerance: number; + visible: boolean; + selected: boolean; + /** + * render order, the bigger number is on the top + */ + renderOrder: number; + needsFrustumCulled: boolean; + protected editPointSize: number; + protected editPointFillColor: string; + protected editPointStrokeColor: string; + protected matrix: THREE.Matrix4; + protected ctx?: CanvasRenderingContext2D; + constructor(id?: string); + setTolerance(t: number): void; + render(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + getData(): DrawableData; + setData(data: DrawableData): void; + getVertexes(): THREE.Vector3[]; + setLineWidth(lineWidth?: number): void; + setLineColor(color?: number[]): void; + setFillColor(color?: number[]): void; + isSelected(): boolean; + getCenter(): THREE.Vector3; + transToScreenCoord(vector: THREE.Vector3, camera: THREE.Camera): THREE.Vector2; + /** + * + * @param ctx + * @param camera + * @describe just for debug bounds + */ + private drawBounds; + /** + * + * @param ctx + * @param camera + * @describe just for debug + */ + private drawCenter; + /** + * + * @param p is world position + * @param raycaster just for 3d intersect + * @returns boolean + * @describe is point interact drawable, use to select drawable, the same as threejs object raycast + */ + abstract isPointInPath(p: THREE.Vector3, raycaster?: THREE.Raycaster): boolean; + getBounds(): THREE.Box3; + /** + * + * @param ctx + * @param camera + * @describe abstract draw method + */ + abstract draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + /** + * + * @param ctx + * @param camera + * @describe abstract drawSelect method + */ + abstract drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + /** + * @describe class type for serialize + */ + abstract getClassType(): string; +} diff --git a/demo/libs/types/core/canvas/DrawableList.d.ts b/demo/libs/types/core/canvas/DrawableList.d.ts index 963f8b9..2d8e962 100644 --- a/demo/libs/types/core/canvas/DrawableList.d.ts +++ b/demo/libs/types/core/canvas/DrawableList.d.ts @@ -1,27 +1,27 @@ -import { DrawableData } from "./Constants"; -import { Drawable } from "./Drawable"; -import { Event } from "../../core/utils"; -declare type DrawableListEvents = { - addDrawable: DrawableData; - updateDrawable: DrawableData; - removeDrawable: DrawableData; -}; -/** - * A group of Drawlables for a certain category - * @internal - */ -export declare class DrawableList extends Event { - private category; - private drawableMap; - constructor(category: string); - addDrawable(drawable: Drawable): void; - updateDrawable(drawable: Drawable, newData: DrawableData): void; - removeDrawable(drawable: Drawable): void; - getDrawableById(id: string): Drawable> | undefined; - clear(): void; - getDrawables(): Map>>; - getDrawableDatas(): DrawableData[]; - setDrawableDatas(drawableDatas: DrawableData[]): void; - getDrawableByPosition(p: THREE.Vector3, raycaster?: THREE.Raycaster): Drawable> | undefined; -} -export {}; +import { DrawableData } from "./Constants"; +import { Drawable } from "./Drawable"; +import { Event } from "../../core/utils"; +declare type DrawableListEvents = { + addDrawable: DrawableData; + updateDrawable: DrawableData; + removeDrawable: DrawableData; +}; +/** + * A group of Drawlables for a certain category + * @internal + */ +export declare class DrawableList extends Event { + private category; + private drawableMap; + constructor(category: string); + addDrawable(drawable: Drawable): void; + updateDrawable(drawable: Drawable, newData: DrawableData): void; + removeDrawable(drawable: Drawable): void; + getDrawableById(id: string): Drawable> | undefined; + clear(): void; + getDrawables(): Map>>; + getDrawableDatas(): DrawableData[]; + setDrawableDatas(drawableDatas: DrawableData[]): void; + getDrawableByPosition(p: THREE.Vector3, raycaster?: THREE.Raycaster): Drawable> | undefined; +} +export {}; diff --git a/demo/libs/types/core/canvas/index.d.ts b/demo/libs/types/core/canvas/index.d.ts index 2dc2a14..91af098 100644 --- a/demo/libs/types/core/canvas/index.d.ts +++ b/demo/libs/types/core/canvas/index.d.ts @@ -1,4 +1,4 @@ -export * from "./CanvasRender"; -export * from "./DrawableList"; -export * from "./Drawable"; -export * from "./Constants"; +export * from "./CanvasRender"; +export * from "./DrawableList"; +export * from "./Drawable"; +export * from "./Constants"; diff --git a/demo/libs/types/core/compare/BaseDxfCompareHelper.d.ts b/demo/libs/types/core/compare/BaseDxfCompareHelper.d.ts index 315ffb0..73c12d6 100644 --- a/demo/libs/types/core/compare/BaseDxfCompareHelper.d.ts +++ b/demo/libs/types/core/compare/BaseDxfCompareHelper.d.ts @@ -1,104 +1,104 @@ -import * as THREE from "three"; -import { ProgressBar } from "../../components/progress-bar"; -import { DxfCompareConfig, DxfModelConfig, DxfViewerConfig } from "../../core/Configs"; -import { DxfChange, DxfLoader } from "../../core/dxf"; -import { FontManager } from "../../core/font"; -import { DxfViewer } from "../../core/viewers/DxfViewer"; -/** - * Dxf compare helper with one viewport. - * @example - * ``` html - *
- *
- *
- * ``` - * ``` typescript - * const viewerCfg = { containerId: "myCanvas" }; - * const modelCfg1 = { modelId: "id_1", src: "http://www.abc.com/sample1.dxf" }; - * const modelCfg2 = { modelId: "id_2", src: "http://www.abc.com/sample2.dxf" }; - * const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"]; - * - * const compareHelper = new BaseDxfCompareHelper(viewerCfg); - * await compareHelper.setFont(fontFiles); - * await compareHelper.compare(modelCfg1, modelCfg2); - * ``` - */ -export declare class BaseDxfCompareHelper { - /** - * DxfViewer of DxfCompareHelper. - */ - viewer: DxfViewer; - protected fontManager?: FontManager; - protected loader: DxfLoader; - protected loadingManager?: THREE.LoadingManager; - protected changes?: Record; - protected container: HTMLElement; - protected spinner?: HTMLDivElement; - protected jobCount: number; - protected loadingProgressBar?: ProgressBar; - constructor(viewerCfg: DxfViewerConfig); - protected initSpinner(): void; - /** - * @description {en} Sets font. - * This needs to be called before loading a dxf, it won't affect any loaded text. - * It accepts shx or typeface formats. For typeface, it only support passing in 1 font file in the array for now. - * @description {zh} 设置字体。 - * 需要在加载dxf之前调用,不会影响已加载的文字。 - * 支持shx或typeface格式。对于typeface,目前只支持传入1个字体文件。 - * @param urls - * - {en} font file urls. - * - {zh} 字体文件链接。 - * @example - * ```typescript - * compareHelper.setFont(["https://example.com/xxx.shx"]); - * ``` - */ - setFont(urls: string[]): Promise; - /** - * Compares two dxf files. Note that: - * - It only compares model spaces. - * - It shouldn't load anything else before and after compare. - * @param modelCfg1 The first dxf to be compared - * @param modelCfg2 The second dxf to be compared - * @param onProgress loading progress - */ - compare(modelCfg1: DxfModelConfig, modelCfg2: DxfModelConfig, compareCfg?: DxfCompareConfig, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * @description {en} Gets compare changes. - * @description {zh} 获取对比变动. - * @returns - * - {en} Compare changes. - * - {zh} 对比变动列表。 - * @example - * ``` typescript - * const changes = compareHelper.getChanges(); - * console.log(changes); - * ``` - */ - getChanges(): Record | undefined; - /** - * @description {en} Zooms to a compare change. - * @description {zh} 聚焦到图纸的一处变动。 - * @param changeId - * - {en} Change id, which is an incremental integer starts from 1. - * - {zh} 变动id,该id是从数字1开始自增的整数。 - * @example - * ``` typescript - * const changeId = 1; - * compareHelper.zoomToChange(changeId); - * ``` - */ - zoomToChange(changeId: number): void; - /** - * Sets spinner visibility - */ - protected setSpinnerVisibility(visible: boolean): void; - /** - * Increases job count, and show spinner accordingly - */ - protected increaseJobCount(): void; - /** - * Decreases job count, and hide spinner accordingly - */ - protected decreaseJobCount(): void; -} +import * as THREE from "three"; +import { ProgressBar } from "../../components/progress-bar"; +import { DxfCompareConfig, DxfModelConfig, DxfViewerConfig } from "../../core/Configs"; +import { DxfChange, DxfLoader } from "../../core/dxf"; +import { FontManager } from "../../core/font"; +import { DxfViewer } from "../../core/viewers/DxfViewer"; +/** + * Dxf compare helper with one viewport. + * @example + * ``` html + *
+ *
+ *
+ * ``` + * ``` typescript + * const viewerCfg = { containerId: "myCanvas" }; + * const modelCfg1 = { modelId: "id_1", src: "http://www.abc.com/sample1.dxf" }; + * const modelCfg2 = { modelId: "id_2", src: "http://www.abc.com/sample2.dxf" }; + * const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"]; + * + * const compareHelper = new BaseDxfCompareHelper(viewerCfg); + * await compareHelper.setFont(fontFiles); + * await compareHelper.compare(modelCfg1, modelCfg2); + * ``` + */ +export declare class BaseDxfCompareHelper { + /** + * DxfViewer of DxfCompareHelper. + */ + viewer: DxfViewer; + protected fontManager?: FontManager; + protected loader: DxfLoader; + protected loadingManager?: THREE.LoadingManager; + protected changes?: Record; + protected container: HTMLElement; + protected spinner?: HTMLDivElement; + protected jobCount: number; + protected loadingProgressBar?: ProgressBar; + constructor(viewerCfg: DxfViewerConfig); + protected initSpinner(): void; + /** + * @description {en} Sets font. + * This needs to be called before loading a dxf, it won't affect any loaded text. + * It accepts shx or typeface formats. For typeface, it only support passing in 1 font file in the array for now. + * @description {zh} 设置字体。 + * 需要在加载dxf之前调用,不会影响已加载的文字。 + * 支持shx或typeface格式。对于typeface,目前只支持传入1个字体文件。 + * @param urls + * - {en} font file urls. + * - {zh} 字体文件链接。 + * @example + * ```typescript + * compareHelper.setFont(["https://example.com/xxx.shx"]); + * ``` + */ + setFont(urls: string[]): Promise; + /** + * Compares two dxf files. Note that: + * - It only compares model spaces. + * - It shouldn't load anything else before and after compare. + * @param modelCfg1 The first dxf to be compared + * @param modelCfg2 The second dxf to be compared + * @param onProgress loading progress + */ + compare(modelCfg1: DxfModelConfig, modelCfg2: DxfModelConfig, compareCfg?: DxfCompareConfig, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * @description {en} Gets compare changes. + * @description {zh} 获取对比变动. + * @returns + * - {en} Compare changes. + * - {zh} 对比变动列表。 + * @example + * ``` typescript + * const changes = compareHelper.getChanges(); + * console.log(changes); + * ``` + */ + getChanges(): Record | undefined; + /** + * @description {en} Zooms to a compare change. + * @description {zh} 聚焦到图纸的一处变动。 + * @param changeId + * - {en} Change id, which is an incremental integer starts from 1. + * - {zh} 变动id,该id是从数字1开始自增的整数。 + * @example + * ``` typescript + * const changeId = 1; + * compareHelper.zoomToChange(changeId); + * ``` + */ + zoomToChange(changeId: number): void; + /** + * Sets spinner visibility + */ + protected setSpinnerVisibility(visible: boolean): void; + /** + * Increases job count, and show spinner accordingly + */ + protected increaseJobCount(): void; + /** + * Decreases job count, and hide spinner accordingly + */ + protected decreaseJobCount(): void; +} diff --git a/demo/libs/types/core/compare/CompareDrawable.d.ts b/demo/libs/types/core/compare/CompareDrawable.d.ts index d753e2e..b4a886b 100644 --- a/demo/libs/types/core/compare/CompareDrawable.d.ts +++ b/demo/libs/types/core/compare/CompareDrawable.d.ts @@ -1,17 +1,17 @@ -import * as THREE from "three"; -import { Drawable } from "../../core/canvas"; -/** - * @internal - */ -export declare class CompareDrawable extends Drawable { - boxes: THREE.Box3[]; - lineSegments: THREE.Vector3[][]; - constructor(id: string, boxes: THREE.Box3[]); - private calculateCloudLineSegments; - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - private drawBox; - drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - isPointInPath(p: THREE.Vector3): boolean; - getBounds(): THREE.Box3; - getClassType(): string; -} +import * as THREE from "three"; +import { Drawable } from "../../core/canvas"; +/** + * @internal + */ +export declare class CompareDrawable extends Drawable { + boxes: THREE.Box3[]; + lineSegments: THREE.Vector3[][]; + constructor(id: string, boxes: THREE.Box3[]); + private calculateCloudLineSegments; + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + private drawBox; + drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + isPointInPath(p: THREE.Vector3): boolean; + getBounds(): THREE.Box3; + getClassType(): string; +} diff --git a/demo/libs/types/core/compare/DxfCompareHelper.d.ts b/demo/libs/types/core/compare/DxfCompareHelper.d.ts index e21f9e4..e72f9db 100644 --- a/demo/libs/types/core/compare/DxfCompareHelper.d.ts +++ b/demo/libs/types/core/compare/DxfCompareHelper.d.ts @@ -1,69 +1,69 @@ -import { BaseDxfCompareHelper } from "./BaseDxfCompareHelper"; -import { DxfCompareConfig, DxfModelConfig, DxfViewerConfig } from "../../core/Configs"; -import { DxfViewer } from "../../core/viewers/DxfViewer"; -/** - * Dxf compare helper with two viewports. - * @example - * ``` html - *
- *
- *
- *
- * ``` - * ``` typescript - * const viewerCfg1 = { containerId: "myCanvas1" }; - * const viewerCfg2 = { containerId: "myCanvas2" }; - * const modelCfg1 = { modelId: "id_1", src: "http://www.abc.com/sample1.dxf" }; - * const modelCfg2 = { modelId: "id_2", src: "http://www.abc.com/sample2.dxf" }; - * const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"]; - * - * const compareHelper = new DxfCompareHelper(viewerCfg1, viewerCfg2); - * await compareHelper.setFont(fontFiles); - * await compareHelper.compare(modelCfg1, modelCfg2); - * compareHelper.enableSyncCamera(true); - * ``` - */ -export declare class DxfCompareHelper extends BaseDxfCompareHelper { - /** - * The second DxfViewer of DxfCompareHelper. - */ - viewer2: DxfViewer; - /** - * Enables to synchronize camera position when another camera is moved. - */ - protected syncCamera: boolean; - constructor(viewerCfg1: DxfViewerConfig, viewerCfg2: DxfViewerConfig); - protected initSyncCameraEvent(): void; - /** - * @description {en} Enables to synchronize camera position when another camera is moved. - * @description {zh} 设置开启或关闭同步相机视角。 - * @example - * ```typescript - * compareHelper.enableSyncCamera(true); - * ``` - */ - enableSyncCamera(enable: boolean): void; - private syncCameraControls; - /** - * Compares two dxf files. Note that: - * - It only compares model spaces. - * - It shouldn't load anything else before and after compare. - * @param modelCfg1 The first dxf to be compared - * @param modelCfg2 The second dxf to be compared - * @param onProgress loading progress - */ - compare(modelCfg1: DxfModelConfig, modelCfg2: DxfModelConfig, compareCfg?: DxfCompareConfig, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * @description {en} Zooms to a compare change. - * @description {zh} 聚焦到图纸的一处变动。 - * @param changeId - * - {en} Change id, which is an incremental integer starts from 1. - * - {zh} 变动id,该id是从数字1开始自增的整数。 - * @example - * ``` typescript - * const changeId = 1; - * compareHelper.zoomToChange(changeId); - * ``` - */ - zoomToChange(changeId: number): void; -} +import { BaseDxfCompareHelper } from "./BaseDxfCompareHelper"; +import { DxfCompareConfig, DxfModelConfig, DxfViewerConfig } from "../../core/Configs"; +import { DxfViewer } from "../../core/viewers/DxfViewer"; +/** + * Dxf compare helper with two viewports. + * @example + * ``` html + *
+ *
+ *
+ *
+ * ``` + * ``` typescript + * const viewerCfg1 = { containerId: "myCanvas1" }; + * const viewerCfg2 = { containerId: "myCanvas2" }; + * const modelCfg1 = { modelId: "id_1", src: "http://www.abc.com/sample1.dxf" }; + * const modelCfg2 = { modelId: "id_2", src: "http://www.abc.com/sample2.dxf" }; + * const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"]; + * + * const compareHelper = new DxfCompareHelper(viewerCfg1, viewerCfg2); + * await compareHelper.setFont(fontFiles); + * await compareHelper.compare(modelCfg1, modelCfg2); + * compareHelper.enableSyncCamera(true); + * ``` + */ +export declare class DxfCompareHelper extends BaseDxfCompareHelper { + /** + * The second DxfViewer of DxfCompareHelper. + */ + viewer2: DxfViewer; + /** + * Enables to synchronize camera position when another camera is moved. + */ + protected syncCamera: boolean; + constructor(viewerCfg1: DxfViewerConfig, viewerCfg2: DxfViewerConfig); + protected initSyncCameraEvent(): void; + /** + * @description {en} Enables to synchronize camera position when another camera is moved. + * @description {zh} 设置开启或关闭同步相机视角。 + * @example + * ```typescript + * compareHelper.enableSyncCamera(true); + * ``` + */ + enableSyncCamera(enable: boolean): void; + private syncCameraControls; + /** + * Compares two dxf files. Note that: + * - It only compares model spaces. + * - It shouldn't load anything else before and after compare. + * @param modelCfg1 The first dxf to be compared + * @param modelCfg2 The second dxf to be compared + * @param onProgress loading progress + */ + compare(modelCfg1: DxfModelConfig, modelCfg2: DxfModelConfig, compareCfg?: DxfCompareConfig, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * @description {en} Zooms to a compare change. + * @description {zh} 聚焦到图纸的一处变动。 + * @param changeId + * - {en} Change id, which is an incremental integer starts from 1. + * - {zh} 变动id,该id是从数字1开始自增的整数。 + * @example + * ``` typescript + * const changeId = 1; + * compareHelper.zoomToChange(changeId); + * ``` + */ + zoomToChange(changeId: number): void; +} diff --git a/demo/libs/types/core/compare/DxfCompareMarkupManager.d.ts b/demo/libs/types/core/compare/DxfCompareMarkupManager.d.ts index 2131900..b8b5d86 100644 --- a/demo/libs/types/core/compare/DxfCompareMarkupManager.d.ts +++ b/demo/libs/types/core/compare/DxfCompareMarkupManager.d.ts @@ -1,11 +1,11 @@ -import type { DxfViewer } from "../viewers"; -import { DxfChange } from "../../core/dxf"; -import { Event } from "../../core/utils"; -export declare class DxfCompareMarkupManager extends Event { - private viewer; - private overlayRender?; - private drawableList; - constructor(viewer: DxfViewer); - drawCompareDrawable(changes: Record): void; - setCompareDrawableVisible(visilbe: boolean): void; -} +import type { DxfViewer } from "../viewers"; +import { DxfChange } from "../../core/dxf"; +import { Event } from "../../core/utils"; +export declare class DxfCompareMarkupManager extends Event { + private viewer; + private overlayRender?; + private drawableList; + constructor(viewer: DxfViewer); + drawCompareDrawable(changes: Record): void; + setCompareDrawableVisible(visilbe: boolean): void; +} diff --git a/demo/libs/types/core/compare/index.d.ts b/demo/libs/types/core/compare/index.d.ts index 209968e..db9819d 100644 --- a/demo/libs/types/core/compare/index.d.ts +++ b/demo/libs/types/core/compare/index.d.ts @@ -1,4 +1,4 @@ -export * from "./CompareDrawable"; -export * from "./DxfCompareMarkupManager"; -export * from "./DxfCompareHelper"; -export * from "./BaseDxfCompareHelper"; +export * from "./CompareDrawable"; +export * from "./DxfCompareMarkupManager"; +export * from "./DxfCompareHelper"; +export * from "./BaseDxfCompareHelper"; diff --git a/demo/libs/types/core/controls/CameraControlsEx.d.ts b/demo/libs/types/core/controls/CameraControlsEx.d.ts index a9957cd..20a08e3 100644 --- a/demo/libs/types/core/controls/CameraControlsEx.d.ts +++ b/demo/libs/types/core/controls/CameraControlsEx.d.ts @@ -1,34 +1,34 @@ -import * as THREE from "three"; -import { CameraControls } from "../camera-controls/CameraControls"; -export declare class CameraControlsEx extends CameraControls { - minZoom: number; - draggingSmoothTime: number; - private dollySpeedBackup; - private azimuthRotateSpeedBackup; - private polarRotateSpeedBackup; - private truckSpeedBackup; - private domElementKeyEvents?; - keyTruckSpeed: number; - keys: { - left: string; - up: string; - right: string; - bottom: string; - }; - constructor(object: THREE.PerspectiveCamera | THREE.OrthographicCamera, domElement?: HTMLElement); - get enableZoom(): boolean; - set enableZoom(value: boolean); - get enableRotate(): boolean; - set enableRotate(value: boolean); - get enableTruck(): boolean; - set enableTruck(value: boolean); - private onKeyDown; - private onKeyUp; - listenToKeyEvents(): void; - stopListenToKeyEvents(): void; - /** - * Dispose the OrbitControls instance itself, remove all eventListeners. - * @category Methods - */ - dispose(): void; -} +import * as THREE from "three"; +import { CameraControls } from "../camera-controls/CameraControls"; +export declare class CameraControlsEx extends CameraControls { + minZoom: number; + draggingSmoothTime: number; + private dollySpeedBackup; + private azimuthRotateSpeedBackup; + private polarRotateSpeedBackup; + private truckSpeedBackup; + private domElementKeyEvents?; + keyTruckSpeed: number; + keys: { + left: string; + up: string; + right: string; + bottom: string; + }; + constructor(object: THREE.PerspectiveCamera | THREE.OrthographicCamera, domElement?: HTMLElement); + get enableZoom(): boolean; + set enableZoom(value: boolean); + get enableRotate(): boolean; + set enableRotate(value: boolean); + get enableTruck(): boolean; + set enableTruck(value: boolean); + private onKeyDown; + private onKeyUp; + listenToKeyEvents(): void; + stopListenToKeyEvents(): void; + /** + * Dispose the OrbitControls instance itself, remove all eventListeners. + * @category Methods + */ + dispose(): void; +} diff --git a/demo/libs/types/core/controls/VRControls.d.ts b/demo/libs/types/core/controls/VRControls.d.ts index c20ac60..6bade7d 100644 --- a/demo/libs/types/core/controls/VRControls.d.ts +++ b/demo/libs/types/core/controls/VRControls.d.ts @@ -1,131 +1,131 @@ -import { EventDispatcher, PerspectiveCamera, Vector3 } from "three"; -import type { ControlsHelper } from "../../core/helpers"; -/** - * @internal - */ -export declare enum STATE { - NONE = -1, - ROTATE = 0, - DOLLY = 1, - PAN = 2, - TOUCH_ROTATE = 3, - TOUCH_DOLLY = 4 -} -/** - * @internal - */ -export declare enum Keys { - LEFT = "ArrowLeft", - UP = "ArrowUp", - RIGHT = "ArrowRight", - BOTTOM = "ArrowDown" -} -/** - * @internal - */ -export declare class VRControls extends EventDispatcher { - object: PerspectiveCamera; - domElement: HTMLCanvasElement; - isVRMode: boolean; - enabled: boolean; - target: Vector3; - enableZoom: boolean; - enablePan: boolean; - enableRotate: boolean; - state: STATE; - rotateSpeed: number; - zoomSpeed: number; - panSpeed: number; - scale: number; - minZoom: number; - maxZoom: number; - screenSpacePanning: boolean; - autoRotate: boolean; - controlsHelper?: ControlsHelper; - autoRotateSpeed: number; - enableDamping: boolean; - dampingFactor: number; - minAzimuthAngle: number; - maxAzimuthAngle: number; - minPolarAngle: number; - maxPolarAngle: number; - minDistance: number; - maxDistance: number; - keyPanSpeed: number; - minFov: number; - maxFov: number; - private zoomChanged; - private panOffset; - private pointerPositions; - private rotateStart; - private rotateEnd; - private rotateDelta; - private dollyStart; - private dollyEnd; - private dollyDelta; - private panStart; - private panEnd; - private panDelta; - private pointers; - private spherical; - private sphericalDelta; - private domElementKeyEvents?; - private quat; - constructor(object: PerspectiveCamera, domElement: HTMLCanvasElement, isVRMode?: boolean); - dispose(): void; - update: () => boolean; - private addPointer; - private removePointer; - private onContextMenu; - /** - * - * Get the distance between two points - * @param {number[]} p1 - * @param {number[]} p2 - * @return {*} - * @memberof VRControls - */ - getDist(p1: number[], p2: number[]): number; - private trackPointer; - /**************************PointerDown Event*************************/ - private onTouchStart; - private onMouseDown; - private onPointerDown; - /**************************PointerMove Event*************************/ - private onTouchMove; - private onMouseMove; - private onPointerMove; - /**************************PointerUp Event*************************/ - handlerTouchEnd(event: PointerEvent): void; - private onPointerUp; - private onPointerCancel; - handleMouseWheel(event: WheelEvent): void; - private onMouseWheel; - /**************************Ponter down event handling*************************/ - handleMouseDownRotate(event: PointerEvent): void; - handleMouseDownDolly(event: PointerEvent): void; - handleMouseDownPan(event: PointerEvent): void; - handleTouchStartRotate(): void; - handleTouchStartDolly(pointers: PointerEvent[]): void; - /**************************Mouse move rotate event handling*************************/ - private updateRotate; - handleMouseMoveRotate(event: PointerEvent): void; - /**************************Mouse move zoom event handling*************************/ - private dollyOut; - private dollyIn; - handleMouseMoveDolly(event: PointerEvent): void; - /**************************Mouse move pan event handling*************************/ - private pan; - private panLeft; - private panUp; - handleMouseMovePan(event: PointerEvent): void; - /**************************One-finger or Two-finger rotate event handling*************************/ - private getSecondPointerPosition; - handleTouchMoveRotate(event: PointerEvent): void; - /**************************Two-finger zoom event handling*************************/ - private updateFov; - handleTouchMoveDolly(event: PointerEvent): void; - private handleKeyDown; - private onKeyDown; - listenToKeyEvents(domElement: HTMLElement): void; -} +import { EventDispatcher, PerspectiveCamera, Vector3 } from "three"; +import type { ControlsHelper } from "../../core/helpers"; +/** + * @internal + */ +export declare enum STATE { + NONE = -1, + ROTATE = 0, + DOLLY = 1, + PAN = 2, + TOUCH_ROTATE = 3, + TOUCH_DOLLY = 4 +} +/** + * @internal + */ +export declare enum Keys { + LEFT = "ArrowLeft", + UP = "ArrowUp", + RIGHT = "ArrowRight", + BOTTOM = "ArrowDown" +} +/** + * @internal + */ +export declare class VRControls extends EventDispatcher { + object: PerspectiveCamera; + domElement: HTMLCanvasElement; + isVRMode: boolean; + enabled: boolean; + target: Vector3; + enableZoom: boolean; + enablePan: boolean; + enableRotate: boolean; + state: STATE; + rotateSpeed: number; + zoomSpeed: number; + panSpeed: number; + scale: number; + minZoom: number; + maxZoom: number; + screenSpacePanning: boolean; + autoRotate: boolean; + controlsHelper?: ControlsHelper; + autoRotateSpeed: number; + enableDamping: boolean; + dampingFactor: number; + minAzimuthAngle: number; + maxAzimuthAngle: number; + minPolarAngle: number; + maxPolarAngle: number; + minDistance: number; + maxDistance: number; + keyPanSpeed: number; + minFov: number; + maxFov: number; + private zoomChanged; + private panOffset; + private pointerPositions; + private rotateStart; + private rotateEnd; + private rotateDelta; + private dollyStart; + private dollyEnd; + private dollyDelta; + private panStart; + private panEnd; + private panDelta; + private pointers; + private spherical; + private sphericalDelta; + private domElementKeyEvents?; + private quat; + constructor(object: PerspectiveCamera, domElement: HTMLCanvasElement, isVRMode?: boolean); + dispose(): void; + update: () => boolean; + private addPointer; + private removePointer; + private onContextMenu; + /** + * + * Get the distance between two points + * @param {number[]} p1 + * @param {number[]} p2 + * @return {*} + * @memberof VRControls + */ + getDist(p1: number[], p2: number[]): number; + private trackPointer; + /**************************PointerDown Event*************************/ + private onTouchStart; + private onMouseDown; + private onPointerDown; + /**************************PointerMove Event*************************/ + private onTouchMove; + private onMouseMove; + private onPointerMove; + /**************************PointerUp Event*************************/ + handlerTouchEnd(event: PointerEvent): void; + private onPointerUp; + private onPointerCancel; + handleMouseWheel(event: WheelEvent): void; + private onMouseWheel; + /**************************Ponter down event handling*************************/ + handleMouseDownRotate(event: PointerEvent): void; + handleMouseDownDolly(event: PointerEvent): void; + handleMouseDownPan(event: PointerEvent): void; + handleTouchStartRotate(): void; + handleTouchStartDolly(pointers: PointerEvent[]): void; + /**************************Mouse move rotate event handling*************************/ + private updateRotate; + handleMouseMoveRotate(event: PointerEvent): void; + /**************************Mouse move zoom event handling*************************/ + private dollyOut; + private dollyIn; + handleMouseMoveDolly(event: PointerEvent): void; + /**************************Mouse move pan event handling*************************/ + private pan; + private panLeft; + private panUp; + handleMouseMovePan(event: PointerEvent): void; + /**************************One-finger or Two-finger rotate event handling*************************/ + private getSecondPointerPosition; + handleTouchMoveRotate(event: PointerEvent): void; + /**************************Two-finger zoom event handling*************************/ + private updateFov; + handleTouchMoveDolly(event: PointerEvent): void; + private handleKeyDown; + private onKeyDown; + listenToKeyEvents(domElement: HTMLElement): void; +} diff --git a/demo/libs/types/core/controls/index.d.ts b/demo/libs/types/core/controls/index.d.ts index 82e6349..810751b 100644 --- a/demo/libs/types/core/controls/index.d.ts +++ b/demo/libs/types/core/controls/index.d.ts @@ -1,2 +1,2 @@ -export * from "./VRControls"; -export * from "./CameraControlsEx"; +export * from "./VRControls"; +export * from "./CameraControlsEx"; diff --git a/demo/libs/types/core/dxf-parser/AutoCadColorIndex.d.ts b/demo/libs/types/core/dxf-parser/AutoCadColorIndex.d.ts index ea7e0e6..3e6d53d 100644 --- a/demo/libs/types/core/dxf-parser/AutoCadColorIndex.d.ts +++ b/demo/libs/types/core/dxf-parser/AutoCadColorIndex.d.ts @@ -1,8 +1,8 @@ -/** - * AutoCad files sometimes use an indexed color value between 1 and 255 inclusive. - * Each value corresponds to a color. index 1 is red, that is 16711680 or 0xFF0000. - * index 0 and 256, while included in this array, are actually reserved for inheritance - * values in AutoCad so they should not be used for index color lookups. - */ -declare const _default: number[]; -export default _default; +/** + * AutoCad files sometimes use an indexed color value between 1 and 255 inclusive. + * Each value corresponds to a color. index 1 is red, that is 16711680 or 0xFF0000. + * index 0 and 256, while included in this array, are actually reserved for inheritance + * values in AutoCad so they should not be used for index color lookups. + */ +declare const _default: number[]; +export default _default; diff --git a/demo/libs/types/core/dxf-parser/DxfBaseReader.d.ts b/demo/libs/types/core/dxf-parser/DxfBaseReader.d.ts index 87112b9..6a5aa79 100644 --- a/demo/libs/types/core/dxf-parser/DxfBaseReader.d.ts +++ b/demo/libs/types/core/dxf-parser/DxfBaseReader.d.ts @@ -1,12 +1,12 @@ -export interface IGroup { - code: number; - value: number | string | boolean; -} -export declare abstract class DxfBaseReader { - protected pointer: number; - protected eof: boolean; - lastReadGroup: IGroup | undefined; - abstract next(): IGroup; - abstract hasNext(): boolean; - abstract isEOF(): boolean; -} +export interface IGroup { + code: number; + value: number | string | boolean; +} +export declare abstract class DxfBaseReader { + protected pointer: number; + protected eof: boolean; + lastReadGroup: IGroup | undefined; + abstract next(): IGroup; + abstract hasNext(): boolean; + abstract isEOF(): boolean; +} diff --git a/demo/libs/types/core/dxf-parser/DxfBinaryReader.d.ts b/demo/libs/types/core/dxf-parser/DxfBinaryReader.d.ts index f9b1cec..2102fe8 100644 --- a/demo/libs/types/core/dxf-parser/DxfBinaryReader.d.ts +++ b/demo/libs/types/core/dxf-parser/DxfBinaryReader.d.ts @@ -1,14 +1,14 @@ -import { DxfBaseReader, IGroup } from "./DxfBaseReader"; -export default class DxfBinaryReader extends DxfBaseReader { - private reader; - private decoder; - private int8Array; - private caches; - constructor(data: ArrayBuffer); - next(): IGroup; - hasNext(): boolean; - isEOF(): boolean; - private parseGroupValue; - private readNullTerminatedString; - private ReadBinaryData; -} +import { DxfBaseReader, IGroup } from "./DxfBaseReader"; +export default class DxfBinaryReader extends DxfBaseReader { + private reader; + private decoder; + private int8Array; + private caches; + constructor(data: ArrayBuffer); + next(): IGroup; + hasNext(): boolean; + isEOF(): boolean; + private parseGroupValue; + private readNullTerminatedString; + private ReadBinaryData; +} diff --git a/demo/libs/types/core/dxf-parser/DxfParser.d.ts b/demo/libs/types/core/dxf-parser/DxfParser.d.ts index 874d717..8f17ddd 100644 --- a/demo/libs/types/core/dxf-parser/DxfParser.d.ts +++ b/demo/libs/types/core/dxf-parser/DxfParser.d.ts @@ -1,327 +1,327 @@ -/// -import { Readable } from "stream"; -import IGeometry, { IEntity, IPoint } from "./entities/geomtry"; -import { IObject, IObjectParser } from "./objects/common"; -/** - * @internal - */ -export declare enum BlockTypeFlags { - None = 0, - AnonymousBlock = 1, - NonConstantAttributeDefinitions = 2, - XRef = 4, - XRefOverlay = 8, - ExternallyDependent = 16, - ResolvedExternalReference = 32, - DefinitionExternalReference = 64 -} -/** - * Definition of a block. Which contains entities, name, handle, etc. - * @internal - */ -export interface IBlock { - entities: IEntity[]; - ownerHandle: string; - xrefPath: string; - name: string; - name2: string; - handle: string; - layer: string; - position: IPoint; - paperSpace: boolean; - blockType: BlockTypeFlags; - description?: string; -} -/** - * Definition of a viewport. - * @internal - */ -export interface IViewport { - name: string; - lowerLeftCorner: IPoint; - upperRightCorner: IPoint; - center: IPoint; - snapBasePoint: IPoint; - snapSpacing: IPoint; - gridSpacing: IPoint; - viewDirectionFromTarget: IPoint; - viewTarget: IPoint; - aspectRatio: number; - lensLength: number; - frontClippingPlane: string | number | boolean; - backClippingPlane: string | number | boolean; - viewHeight: number; - snapRotationAngle: number; - viewTwistAngle: number; - orthographicType: string; - ucsOrigin: IPoint; - ucsXAxis: IPoint; - ucsYAxis: IPoint; - renderMode: string; - defaultLightingType: string; - defaultLightingOn: string; - ownerHandle: string; - ambientColor: number; -} -/** - * Viewport table definition. - * @internal - */ -export interface IViewportTableDefinition { - tableRecordsProperty: "viewports"; - tableName: "viewport"; - dxfSymbolName: "VPORT"; - parseTableRecords(): IViewport[]; -} -/** - * Line type. - * @internal - */ -export interface ILineType { - name: string; - description: string; - pattern: number[]; - patternLength: number; -} -/** - * Line type table definition. - * @internal - */ -export interface ILineTypeTableDefinition { - tableRecordsProperty: "lineTypes"; - tableName: "lineType"; - dxfSymbolName: "LTYPE"; - parseTableRecords(): Record; -} -/** - * Definition of a layer. - */ -export interface ILayer { - /** - * Unique layer name with the dxf/dwg file. - */ - name: string; - /** - * @internal - */ - handle: string; - visible: boolean; - /** - * @internal - */ - colorIndex: number; - /** - * color in decimal - */ - color: number; - /** - * @internal - */ - frozen: boolean; - /** - * @internal - */ - flag: number; - /** - * @internal - */ - lineType: string; - /** - * @internal - */ - lineweight: 0 | 5 | 9 | 13 | 15 | 18 | 20 | 25 | 30 | 35 | 40 | 50 | 53 | 60 | 70 | 80 | 90 | 100 | 106 | 120 | 140 | 158 | 200 | 211 | -3 | -2 | -1; -} -/** - * Layer table definition. - * @internal - */ -export interface ILayerTableDefinition { - tableRecordsProperty: "layers"; - tableName: "layer"; - dxfSymbolName: "LAYER"; - parseTableRecords(): Record; -} -/** - * BlockRecord - * @internal - */ -export interface IBlockRecord { - handle: string; - ownerHandle: string; - blockName: string; - layoutHandle: string; - blockInsertUnits: number; - blockExplodability: number; - blockScalability: number; - bitmap?: string; -} -/** - * @internal - */ -export interface IBlockRecordTableDefinition { - tableRecordsProperty: "blockRecords"; - tableName: "blockRecord"; - dxfSymbolName: "BLOCK_RECORD"; - parseTableRecords(): Record; -} -/** - * Definition of a style. - * @internal - */ -export interface IStyle { - handle: string; - ownerHandle: string; - styleName: string; - priorTextHeight: number; - textHeight: number; - xScale: number; - rotation: number; - mirrorType: number; - fontFile: string; - bigFontFile: string; -} -/** - * Style table definition. - * @internal - */ -export interface IStyleTableDefinition { - tableRecordsProperty: "styles"; - tableName: "style"; - dxfSymbolName: "STYLE"; - parseTableRecords(): Record; -} -/** - * Dim style. - * @internal - */ -export interface IDimStyle { - styleName: string; - DIMSCALE: number; - DIMASZ: number; - DIMEXO: string; - DIMEXE: string; - DIMSE1: string; - DIMSE2: string; - DIMTAD: string; - DIMTXT: string; - DIMGAP: number; - DIMCLRD: number; - DIMCLRT: number; - DIMLFAC: number; - DIMDEC: string; - DIMLDRBLK: string; -} -/** - * Dim style table definition - * @internal - */ -export interface IDimStyleTableDefinition { - tableRecordsProperty: "dimStyles"; - tableName: "dimStyle"; - dxfSymbolName: "DIMSTYLE"; - parseTableRecords(): Record; -} -/** - * Table definitions. - * @internal - */ -export interface ITableDefinitions { - VPORT: IViewportTableDefinition; - LTYPE: ILineTypeTableDefinition; - LAYER: ILayerTableDefinition; - BLOCK_RECORD: IBlockRecordTableDefinition; - STYLE: IStyleTableDefinition; - DIMSTYLE: IDimStyleTableDefinition; -} -/** - * Base table - * @internal - */ -export interface IBaseTable { - handle: string; - ownerHandle: string; -} -/** - * Viewport table - * @internal - */ -export interface IViewportTable extends IBaseTable { - viewports: IViewport[]; -} -/** - * @internal - */ -export interface ILayerTypesTable extends IBaseTable { - lineTypes: Record; -} -/** - * @internal - */ -export interface ILayersTable extends IBaseTable { - layers: Record; -} -/** - * @internal - */ -export interface IStylesTable extends IBaseTable { - styles: Record; -} -/** - * @internal - */ -export interface IDimStyleTable extends IBaseTable { - dimStyles: Record; -} -/** - * @internal - */ -export interface IBlockRecordsTable extends IBaseTable { - blockRecords: Record; -} -/** - * @internal - */ -export interface ITables { - viewport: IViewportTable; - lineType: ILayerTypesTable; - layer: ILayersTable; - blockRecord: IBlockRecordsTable; - style: IStylesTable; - dimStyle: IDimStyleTable; -} -/** - * @internal - */ -export declare type ITable = IViewportTable | ILayerTypesTable | ILayersTable | IBlockRecordsTable | IStylesTable | IDimStyleTable; -/** - * @internal - */ -export interface IDxf { - header: Record; - entities: IEntity[]; - blocks: Record; - tables: ITables; - objects: Record; -} -export default class DxfParser { - private encoding?; - private _entityHandlers; - private _objectHandlers; - private _layoutBlocks; - private unhandledSections; - private unhandledObjects; - private unhandledEntities; - private unsupportedLineTypes; - constructor(encoding?: string); - parse(source: string | ArrayBuffer): IDxf; - registerEntityHandler(handlerType: new () => IGeometry): void; - registerObjectHandler(handlerType: new () => IObjectParser): void; - parseSync(source: string | ArrayBuffer): IDxf; - parseStream(stream: Readable): Promise; - private _parse; - /** - * Splits a string to string array by line separator, "\r\n", "\r", "\n", etc. - * We do this instead of using "String.prototype.split(/\r\n|\r|\n/g)", because it is extreamly slow! - */ - private splitByLineSeparator; -} +/// +import { Readable } from "stream"; +import IGeometry, { IEntity, IPoint } from "./entities/geomtry"; +import { IObject, IObjectParser } from "./objects/common"; +/** + * @internal + */ +export declare enum BlockTypeFlags { + None = 0, + AnonymousBlock = 1, + NonConstantAttributeDefinitions = 2, + XRef = 4, + XRefOverlay = 8, + ExternallyDependent = 16, + ResolvedExternalReference = 32, + DefinitionExternalReference = 64 +} +/** + * Definition of a block. Which contains entities, name, handle, etc. + * @internal + */ +export interface IBlock { + entities: IEntity[]; + ownerHandle: string; + xrefPath: string; + name: string; + name2: string; + handle: string; + layer: string; + position: IPoint; + paperSpace: boolean; + blockType: BlockTypeFlags; + description?: string; +} +/** + * Definition of a viewport. + * @internal + */ +export interface IViewport { + name: string; + lowerLeftCorner: IPoint; + upperRightCorner: IPoint; + center: IPoint; + snapBasePoint: IPoint; + snapSpacing: IPoint; + gridSpacing: IPoint; + viewDirectionFromTarget: IPoint; + viewTarget: IPoint; + aspectRatio: number; + lensLength: number; + frontClippingPlane: string | number | boolean; + backClippingPlane: string | number | boolean; + viewHeight: number; + snapRotationAngle: number; + viewTwistAngle: number; + orthographicType: string; + ucsOrigin: IPoint; + ucsXAxis: IPoint; + ucsYAxis: IPoint; + renderMode: string; + defaultLightingType: string; + defaultLightingOn: string; + ownerHandle: string; + ambientColor: number; +} +/** + * Viewport table definition. + * @internal + */ +export interface IViewportTableDefinition { + tableRecordsProperty: "viewports"; + tableName: "viewport"; + dxfSymbolName: "VPORT"; + parseTableRecords(): IViewport[]; +} +/** + * Line type. + * @internal + */ +export interface ILineType { + name: string; + description: string; + pattern: number[]; + patternLength: number; +} +/** + * Line type table definition. + * @internal + */ +export interface ILineTypeTableDefinition { + tableRecordsProperty: "lineTypes"; + tableName: "lineType"; + dxfSymbolName: "LTYPE"; + parseTableRecords(): Record; +} +/** + * Definition of a layer. + */ +export interface ILayer { + /** + * Unique layer name with the dxf/dwg file. + */ + name: string; + /** + * @internal + */ + handle: string; + visible: boolean; + /** + * @internal + */ + colorIndex: number; + /** + * color in decimal + */ + color: number; + /** + * @internal + */ + frozen: boolean; + /** + * @internal + */ + flag: number; + /** + * @internal + */ + lineType: string; + /** + * @internal + */ + lineweight: 0 | 5 | 9 | 13 | 15 | 18 | 20 | 25 | 30 | 35 | 40 | 50 | 53 | 60 | 70 | 80 | 90 | 100 | 106 | 120 | 140 | 158 | 200 | 211 | -3 | -2 | -1; +} +/** + * Layer table definition. + * @internal + */ +export interface ILayerTableDefinition { + tableRecordsProperty: "layers"; + tableName: "layer"; + dxfSymbolName: "LAYER"; + parseTableRecords(): Record; +} +/** + * BlockRecord + * @internal + */ +export interface IBlockRecord { + handle: string; + ownerHandle: string; + blockName: string; + layoutHandle: string; + blockInsertUnits: number; + blockExplodability: number; + blockScalability: number; + bitmap?: string; +} +/** + * @internal + */ +export interface IBlockRecordTableDefinition { + tableRecordsProperty: "blockRecords"; + tableName: "blockRecord"; + dxfSymbolName: "BLOCK_RECORD"; + parseTableRecords(): Record; +} +/** + * Definition of a style. + * @internal + */ +export interface IStyle { + handle: string; + ownerHandle: string; + styleName: string; + priorTextHeight: number; + textHeight: number; + xScale: number; + rotation: number; + mirrorType: number; + fontFile: string; + bigFontFile: string; +} +/** + * Style table definition. + * @internal + */ +export interface IStyleTableDefinition { + tableRecordsProperty: "styles"; + tableName: "style"; + dxfSymbolName: "STYLE"; + parseTableRecords(): Record; +} +/** + * Dim style. + * @internal + */ +export interface IDimStyle { + styleName: string; + DIMSCALE: number; + DIMASZ: number; + DIMEXO: string; + DIMEXE: string; + DIMSE1: string; + DIMSE2: string; + DIMTAD: string; + DIMTXT: string; + DIMGAP: number; + DIMCLRD: number; + DIMCLRT: number; + DIMLFAC: number; + DIMDEC: string; + DIMLDRBLK: string; +} +/** + * Dim style table definition + * @internal + */ +export interface IDimStyleTableDefinition { + tableRecordsProperty: "dimStyles"; + tableName: "dimStyle"; + dxfSymbolName: "DIMSTYLE"; + parseTableRecords(): Record; +} +/** + * Table definitions. + * @internal + */ +export interface ITableDefinitions { + VPORT: IViewportTableDefinition; + LTYPE: ILineTypeTableDefinition; + LAYER: ILayerTableDefinition; + BLOCK_RECORD: IBlockRecordTableDefinition; + STYLE: IStyleTableDefinition; + DIMSTYLE: IDimStyleTableDefinition; +} +/** + * Base table + * @internal + */ +export interface IBaseTable { + handle: string; + ownerHandle: string; +} +/** + * Viewport table + * @internal + */ +export interface IViewportTable extends IBaseTable { + viewports: IViewport[]; +} +/** + * @internal + */ +export interface ILayerTypesTable extends IBaseTable { + lineTypes: Record; +} +/** + * @internal + */ +export interface ILayersTable extends IBaseTable { + layers: Record; +} +/** + * @internal + */ +export interface IStylesTable extends IBaseTable { + styles: Record; +} +/** + * @internal + */ +export interface IDimStyleTable extends IBaseTable { + dimStyles: Record; +} +/** + * @internal + */ +export interface IBlockRecordsTable extends IBaseTable { + blockRecords: Record; +} +/** + * @internal + */ +export interface ITables { + viewport: IViewportTable; + lineType: ILayerTypesTable; + layer: ILayersTable; + blockRecord: IBlockRecordsTable; + style: IStylesTable; + dimStyle: IDimStyleTable; +} +/** + * @internal + */ +export declare type ITable = IViewportTable | ILayerTypesTable | ILayersTable | IBlockRecordsTable | IStylesTable | IDimStyleTable; +/** + * @internal + */ +export interface IDxf { + header: Record; + entities: IEntity[]; + blocks: Record; + tables: ITables; + objects: Record; +} +export default class DxfParser { + private encoding?; + private _entityHandlers; + private _objectHandlers; + private _layoutBlocks; + private unhandledSections; + private unhandledObjects; + private unhandledEntities; + private unsupportedLineTypes; + constructor(encoding?: string); + parse(source: string | ArrayBuffer): IDxf; + registerEntityHandler(handlerType: new () => IGeometry): void; + registerObjectHandler(handlerType: new () => IObjectParser): void; + parseSync(source: string | ArrayBuffer): IDxf; + parseStream(stream: Readable): Promise; + private _parse; + /** + * Splits a string to string array by line separator, "\r\n", "\r", "\n", etc. + * We do this instead of using "String.prototype.split(/\r\n|\r|\n/g)", because it is extreamly slow! + */ + private splitByLineSeparator; +} diff --git a/demo/libs/types/core/dxf-parser/DxfTextReader.d.ts b/demo/libs/types/core/dxf-parser/DxfTextReader.d.ts index 51c85f2..f194cf4 100644 --- a/demo/libs/types/core/dxf-parser/DxfTextReader.d.ts +++ b/demo/libs/types/core/dxf-parser/DxfTextReader.d.ts @@ -1,31 +1,31 @@ -import { IGroup, DxfBaseReader } from './DxfBaseReader'; -/** - * - * Based off the AutoCad 2012 DXF Reference - * http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf - * - * Reads through an array representing lines of a dxf file. Takes an array and - * provides an easy interface to extract group code and value pairs. - * @param data - an array where each element represents a line in the dxf file - * @constructor - */ -export default class DxfTextRender extends DxfBaseReader { - private data; - constructor(data: string[]); - /** - * Gets the next group (code, value) from the array. A group is two consecutive elements - * in the array. The first is the code, the second is the value. - * @returns {{code: Number}|*} - */ - next(): IGroup; - /** - * Returns true if there is another code/value pair (2 elements in the array). - * @returns {boolean} - */ - hasNext(): boolean; - /** - * Returns true if the scanner is at the end of the array - * @returns {boolean} - */ - isEOF(): boolean; -} +import { IGroup, DxfBaseReader } from './DxfBaseReader'; +/** + * + * Based off the AutoCad 2012 DXF Reference + * http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf + * + * Reads through an array representing lines of a dxf file. Takes an array and + * provides an easy interface to extract group code and value pairs. + * @param data - an array where each element represents a line in the dxf file + * @constructor + */ +export default class DxfTextRender extends DxfBaseReader { + private data; + constructor(data: string[]); + /** + * Gets the next group (code, value) from the array. A group is two consecutive elements + * in the array. The first is the code, the second is the value. + * @returns {{code: Number}|*} + */ + next(): IGroup; + /** + * Returns true if there is another code/value pair (2 elements in the array). + * @returns {boolean} + */ + hasNext(): boolean; + /** + * Returns true if the scanner is at the end of the array + * @returns {boolean} + */ + isEOF(): boolean; +} diff --git a/demo/libs/types/core/dxf-parser/ParseHelpers.d.ts b/demo/libs/types/core/dxf-parser/ParseHelpers.d.ts index 93f7dac..38fc20c 100644 --- a/demo/libs/types/core/dxf-parser/ParseHelpers.d.ts +++ b/demo/libs/types/core/dxf-parser/ParseHelpers.d.ts @@ -1,36 +1,36 @@ -import { DxfBaseReader, IGroup } from "./DxfBaseReader"; -import { IEntity, IPoint } from "./entities/geomtry"; -import { IObject } from "./objects/common"; -export declare const originalTypes: string[]; -/** - * Returns the truecolor value of the given AutoCad color index value - * @return {Number} truecolor value as a number - */ -export declare function getAcadColor(index: number): number; -/** - * Parses the 2D or 3D coordinate, vector, or point. When complete, - * the scanner remains on the last group of the coordinate. - * @param {*} scanner - */ -export declare function parsePoint(scanner: DxfBaseReader): IPoint; -/** - * Parses 16 numbers as an array. When complete, - * the scanner remains on the last group of the value. - * @param {*} scanner - * @param {*} groupCode - */ -export declare function parseMatrix(scanner: DxfBaseReader, groupCode: number): number[]; -/** - * Attempts to parse codes common to all entities. Returns true if the group - * was handled by this function. - * @param {*} entity - the entity currently being parsed - * @param {*} curr - the current group being parsed - */ -export declare function checkCommonEntityProperties(entity: IEntity, curr: IGroup): boolean; -/** - * Attempts to parse codes common to all objects. Returns true if the group - * was handled by this function. - * @param {*} object - the object currently being parsed - * @param {*} curr - the current group being parsed - */ -export declare function checkCommonObjectProperties(object: IObject, curr: IGroup): boolean; +import { DxfBaseReader, IGroup } from "./DxfBaseReader"; +import { IEntity, IPoint } from "./entities/geomtry"; +import { IObject } from "./objects/common"; +export declare const originalTypes: string[]; +/** + * Returns the truecolor value of the given AutoCad color index value + * @return {Number} truecolor value as a number + */ +export declare function getAcadColor(index: number): number; +/** + * Parses the 2D or 3D coordinate, vector, or point. When complete, + * the scanner remains on the last group of the coordinate. + * @param {*} scanner + */ +export declare function parsePoint(scanner: DxfBaseReader): IPoint; +/** + * Parses 16 numbers as an array. When complete, + * the scanner remains on the last group of the value. + * @param {*} scanner + * @param {*} groupCode + */ +export declare function parseMatrix(scanner: DxfBaseReader, groupCode: number): number[]; +/** + * Attempts to parse codes common to all entities. Returns true if the group + * was handled by this function. + * @param {*} entity - the entity currently being parsed + * @param {*} curr - the current group being parsed + */ +export declare function checkCommonEntityProperties(entity: IEntity, curr: IGroup): boolean; +/** + * Attempts to parse codes common to all objects. Returns true if the group + * was handled by this function. + * @param {*} object - the object currently being parsed + * @param {*} curr - the current group being parsed + */ +export declare function checkCommonObjectProperties(object: IObject, curr: IGroup): boolean; diff --git a/demo/libs/types/core/dxf-parser/entities/3dface.d.ts b/demo/libs/types/core/dxf-parser/entities/3dface.d.ts index 6514e82..09daff4 100644 --- a/demo/libs/types/core/dxf-parser/entities/3dface.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/3dface.d.ts @@ -1,11 +1,11 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface I3DfaceEntity extends IEntity { - shape: boolean; - hasContinuousLinetypePattern: boolean; - vertices: IPoint[]; -} -export default class ThreeDface implements IGeometry { - ForEntityName: "3DFACE"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): I3DfaceEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface I3DfaceEntity extends IEntity { + shape: boolean; + hasContinuousLinetypePattern: boolean; + vertices: IPoint[]; +} +export default class ThreeDface implements IGeometry { + ForEntityName: "3DFACE"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): I3DfaceEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/arc.d.ts b/demo/libs/types/core/dxf-parser/entities/arc.d.ts index d658eb1..0ca7837 100644 --- a/demo/libs/types/core/dxf-parser/entities/arc.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/arc.d.ts @@ -1,16 +1,16 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface IArcEntity extends IEntity { - center: IPoint; - radius: number; - startAngle: number; - endAngle: number; - angleLength: number; - extrusionDirectionX: number; - extrusionDirectionY: number; - extrusionDirectionZ: number; -} -export default class Arc implements IGeometry { - ForEntityName: "ARC"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IArcEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface IArcEntity extends IEntity { + center: IPoint; + radius: number; + startAngle: number; + endAngle: number; + angleLength: number; + extrusionDirectionX: number; + extrusionDirectionY: number; + extrusionDirectionZ: number; +} +export default class Arc implements IGeometry { + ForEntityName: "ARC"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IArcEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/attdef.d.ts b/demo/libs/types/core/dxf-parser/entities/attdef.d.ts index 6126ce3..110087c 100644 --- a/demo/libs/types/core/dxf-parser/entities/attdef.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/attdef.d.ts @@ -1,31 +1,31 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface IAttdefEntity extends IEntity { - xScale: number; - textStyle: "STANDARD" | string; - text: string; - tag: string; - prompt: string; - startPoint: IPoint; - endPoint: IPoint; - thickness: number; - textHeight: number; - rotation: number; - obliqueAngle: number; - invisible: boolean; - constant: boolean; - verificationRequired: boolean; - preset: boolean; - backwards: boolean; - mirrored: boolean; - horizontalJustification: number; - fieldLength: number; - verticalJustification: number; - extrusionDirectionX: number; - extrusionDirectionY: number; - extrusionDirectionZ: number; -} -export default class Attdef implements IGeometry { - ForEntityName: "ATTDEF"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IAttdefEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface IAttdefEntity extends IEntity { + xScale: number; + textStyle: "STANDARD" | string; + text: string; + tag: string; + prompt: string; + startPoint: IPoint; + endPoint: IPoint; + thickness: number; + textHeight: number; + rotation: number; + obliqueAngle: number; + invisible: boolean; + constant: boolean; + verificationRequired: boolean; + preset: boolean; + backwards: boolean; + mirrored: boolean; + horizontalJustification: number; + fieldLength: number; + verticalJustification: number; + extrusionDirectionX: number; + extrusionDirectionY: number; + extrusionDirectionZ: number; +} +export default class Attdef implements IGeometry { + ForEntityName: "ATTDEF"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IAttdefEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/attrib.d.ts b/demo/libs/types/core/dxf-parser/entities/attrib.d.ts index 73a797d..6c5ca73 100644 --- a/demo/libs/types/core/dxf-parser/entities/attrib.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/attrib.d.ts @@ -1,31 +1,31 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface IAttribEntity extends IEntity { - xScale: number; - textStyle: "STANDARD" | string; - text: string; - tag: string; - prompt: string; - startPoint: IPoint; - endPoint: IPoint; - thickness: number; - textHeight: number; - rotation: number; - obliqueAngle: number; - invisible: boolean; - constant: boolean; - verificationRequired: boolean; - preset: boolean; - backwards: boolean; - mirrored: boolean; - horizontalJustification: number; - fieldLength: number; - verticalJustification: number; - extrusionDirectionX: number; - extrusionDirectionY: number; - extrusionDirectionZ: number; -} -export default class Attrib implements IGeometry { - ForEntityName: "ATTRIB"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IAttribEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface IAttribEntity extends IEntity { + xScale: number; + textStyle: "STANDARD" | string; + text: string; + tag: string; + prompt: string; + startPoint: IPoint; + endPoint: IPoint; + thickness: number; + textHeight: number; + rotation: number; + obliqueAngle: number; + invisible: boolean; + constant: boolean; + verificationRequired: boolean; + preset: boolean; + backwards: boolean; + mirrored: boolean; + horizontalJustification: number; + fieldLength: number; + verticalJustification: number; + extrusionDirectionX: number; + extrusionDirectionY: number; + extrusionDirectionZ: number; +} +export default class Attrib implements IGeometry { + ForEntityName: "ATTRIB"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IAttribEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/circle.d.ts b/demo/libs/types/core/dxf-parser/entities/circle.d.ts index ff21db9..7fceed3 100644 --- a/demo/libs/types/core/dxf-parser/entities/circle.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/circle.d.ts @@ -1,13 +1,13 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface ICircleEntity extends IEntity { - center: IPoint; - radius: number; - startAngle: number; - endAngle: number; - angleLength: number; -} -export default class Circle implements IGeometry { - ForEntityName: "CIRCLE"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): ICircleEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface ICircleEntity extends IEntity { + center: IPoint; + radius: number; + startAngle: number; + endAngle: number; + angleLength: number; +} +export default class Circle implements IGeometry { + ForEntityName: "CIRCLE"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): ICircleEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/dimension.d.ts b/demo/libs/types/core/dxf-parser/entities/dimension.d.ts index 736d9ed..667b77b 100644 --- a/demo/libs/types/core/dxf-parser/entities/dimension.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/dimension.d.ts @@ -1,22 +1,22 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface IDimensionEntity extends IEntity { - block: string; - dimStyleName: string; - anchorPoint: IPoint; - middleOfText: IPoint; - insertionPoint: IPoint; - linearOrAngularPoint1: IPoint; - linearOrAngularPoint2: IPoint; - diameterOrRadiusPoint: IPoint; - arcPoint: IPoint; - dimensionType: number; - attachmentPoint: number; - actualMeasurement: number; - text: string; - angle: number; -} -export default class Dimension implements IGeometry { - ForEntityName: "DIMENSION"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IDimensionEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface IDimensionEntity extends IEntity { + block: string; + dimStyleName: string; + anchorPoint: IPoint; + middleOfText: IPoint; + insertionPoint: IPoint; + linearOrAngularPoint1: IPoint; + linearOrAngularPoint2: IPoint; + diameterOrRadiusPoint: IPoint; + arcPoint: IPoint; + dimensionType: number; + attachmentPoint: number; + actualMeasurement: number; + text: string; + angle: number; +} +export default class Dimension implements IGeometry { + ForEntityName: "DIMENSION"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IDimensionEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/ellipse.d.ts b/demo/libs/types/core/dxf-parser/entities/ellipse.d.ts index 3437ffb..3f2ea5a 100644 --- a/demo/libs/types/core/dxf-parser/entities/ellipse.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/ellipse.d.ts @@ -1,15 +1,15 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface IEllipseEntity extends IEntity { - center: IPoint; - majorAxisEndPoint: IPoint; - axisRatio: number; - startAngle: number; - endAngle: number; - name: string; - extrusionDirection: IPoint; -} -export default class Ellipse implements IGeometry { - ForEntityName: "ELLIPSE"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IEllipseEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface IEllipseEntity extends IEntity { + center: IPoint; + majorAxisEndPoint: IPoint; + axisRatio: number; + startAngle: number; + endAngle: number; + name: string; + extrusionDirection: IPoint; +} +export default class Ellipse implements IGeometry { + ForEntityName: "ELLIPSE"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IEllipseEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/geomtry.d.ts b/demo/libs/types/core/dxf-parser/entities/geomtry.d.ts index f7236f1..e5e70d9 100644 --- a/demo/libs/types/core/dxf-parser/entities/geomtry.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/geomtry.d.ts @@ -1,40 +1,40 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -/** - * @internal - */ -export interface IPoint { - x: number; - y: number; - z?: number; - bulge?: number; -} -export interface IEntity { - lineType: string; - layer: string; - lineTypeScale: number; - visible: boolean; - colorIndex: number; - color: number; - isTrueColor: boolean; - inPaperSpace: boolean; - layoutName: string; - ownerHandle: string; - materialObjectHandle: number; - lineweight: 0 | 5 | 9 | 13 | 15 | 18 | 20 | 25 | 30 | 35 | 40 | 50 | 53 | 60 | 70 | 80 | 90 | 100 | 106 | 120 | 140 | 158 | 200 | 211 | -3 | -2 | -1; - extendedData?: { - customStrings?: string[]; - applicationName?: string; - originalHandle?: string; - originalType?: string; - outlines?: number[][][]; - }; - type: string; - handle: string; - blockPosition?: IPoint; - attributesFollow?: boolean; -} -export declare type EntityName = "POINT" | "3DFACE" | "ARC" | "ATTDEF" | "ATTRIB" | "CIRCLE" | "DIMENSION" | "MULTILEADER" | "ELLIPSE" | "HATCH" | "IMAGE" | "INSERT" | "LEADER" | "LINE" | "LWPOLYLINE" | "MTEXT" | "OLE2FRAME" | "POLYLINE" | "REGION" | "RAY" | "SEQEND" | "SOLID" | "SPLINE" | "TEXT" | "VERTEX" | "VIEWPORT" | "XLINE"; -export default interface IGeometry { - ForEntityName: EntityName; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +/** + * @internal + */ +export interface IPoint { + x: number; + y: number; + z?: number; + bulge?: number; +} +export interface IEntity { + lineType: string; + layer: string; + lineTypeScale: number; + visible: boolean; + colorIndex: number; + color: number; + isTrueColor: boolean; + inPaperSpace: boolean; + layoutName: string; + ownerHandle: string; + materialObjectHandle: number; + lineweight: 0 | 5 | 9 | 13 | 15 | 18 | 20 | 25 | 30 | 35 | 40 | 50 | 53 | 60 | 70 | 80 | 90 | 100 | 106 | 120 | 140 | 158 | 200 | 211 | -3 | -2 | -1; + extendedData?: { + customStrings?: string[]; + applicationName?: string; + originalHandle?: string; + originalType?: string; + outlines?: number[][][]; + }; + type: string; + handle: string; + blockPosition?: IPoint; + attributesFollow?: boolean; +} +export declare type EntityName = "POINT" | "3DFACE" | "ARC" | "ATTDEF" | "ATTRIB" | "CIRCLE" | "DIMENSION" | "MULTILEADER" | "ELLIPSE" | "HATCH" | "IMAGE" | "INSERT" | "LEADER" | "LINE" | "LWPOLYLINE" | "MTEXT" | "OLE2FRAME" | "POLYLINE" | "REGION" | "RAY" | "SEQEND" | "SOLID" | "SPLINE" | "TEXT" | "VERTEX" | "VIEWPORT" | "XLINE"; +export default interface IGeometry { + ForEntityName: EntityName; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/hatch.d.ts b/demo/libs/types/core/dxf-parser/entities/hatch.d.ts index 26d2604..18a7873 100644 --- a/demo/libs/types/core/dxf-parser/entities/hatch.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/hatch.d.ts @@ -1,108 +1,108 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export declare enum HatchBoundaryPathTypeFlag { - Default = 0, - External = 1, - Polyline = 2, - Derived = 4, - Textbox = 8, - Outermost = 16, - MaxFlags = 31 -} -export declare enum HatchEdgeType { - Polyline = 0, - Line = 1, - Arc = 2, - Ellipse = 3, - Spline = 4 -} -export declare abstract class HatchEdge { - readonly type: HatchEdgeType; - constructor(type: HatchEdgeType); -} -export declare class HatchPolyline extends HatchEdge { - points: IPoint[]; - isClosed: boolean; - constructor(); -} -export declare class HatchLine extends HatchEdge { - startPoint: IPoint; - endPoint: IPoint; - constructor(); -} -export declare class HatchArc extends HatchEdge { - center: IPoint; - radius: number; - startAngle: number; - endAngle: number; - bCounterclockwise: boolean; - constructor(); -} -export declare class HatchEllipse extends HatchEdge { - center: IPoint; - majorAxisEndPoint: IPoint; - minorRatio: number; - startAngle: number; - endAngle: number; - bCounterclockwise: boolean; - constructor(); -} -export declare class HatchSpline extends HatchEdge { - controlPoints: IPoint[]; - numControlPoints: number; - knotValues: number[]; - numKnots: number; - bPeriodic: boolean; - bRational: boolean; - degreeOfSplineCurve: number; - constructor(); -} -export interface IHatchBoundaryPath { - edges: HatchEdge[]; - pathTypeFlag: HatchBoundaryPathTypeFlag; -} -export declare enum HatchStyle { - Normal = 0, - Outer = 1, - Ignore = 2 -} -export declare enum HatchType { - UserDefined = 0, - Predefined = 1, - Custom = 2 -} -export interface IHatchPatternLine { - angle: number; - origin: IPoint; - delta: IPoint; - dashPattern: number[]; -} -export interface IHatchEntity extends IEntity { - elevationX: number; - elevationY: number; - elevationZ: number; - pixelSize: number; - associativity: boolean; - annotatedBoundary: boolean; - boundaryPathsCount: number; - boundaryPaths: IHatchBoundaryPath[]; - seedPointsCount: number; - extrusionDirectionX: number; - extrusionDirectionY: number; - extrusionDirectionZ: number; - patternName: string; - solidFill: boolean; - patternFillColor: number; - style: HatchStyle; - patternType: HatchType; - patternAngle: number; - patternScale: number; - patternLines?: IHatchPatternLine[]; - isGradientColor?: boolean; - gradientColorCount?: number; - gradientColors?: number[]; -} -export default class Hatch implements IGeometry { - readonly ForEntityName = "HATCH"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IHatchEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export declare enum HatchBoundaryPathTypeFlag { + Default = 0, + External = 1, + Polyline = 2, + Derived = 4, + Textbox = 8, + Outermost = 16, + MaxFlags = 31 +} +export declare enum HatchEdgeType { + Polyline = 0, + Line = 1, + Arc = 2, + Ellipse = 3, + Spline = 4 +} +export declare abstract class HatchEdge { + readonly type: HatchEdgeType; + constructor(type: HatchEdgeType); +} +export declare class HatchPolyline extends HatchEdge { + points: IPoint[]; + isClosed: boolean; + constructor(); +} +export declare class HatchLine extends HatchEdge { + startPoint: IPoint; + endPoint: IPoint; + constructor(); +} +export declare class HatchArc extends HatchEdge { + center: IPoint; + radius: number; + startAngle: number; + endAngle: number; + bCounterclockwise: boolean; + constructor(); +} +export declare class HatchEllipse extends HatchEdge { + center: IPoint; + majorAxisEndPoint: IPoint; + minorRatio: number; + startAngle: number; + endAngle: number; + bCounterclockwise: boolean; + constructor(); +} +export declare class HatchSpline extends HatchEdge { + controlPoints: IPoint[]; + numControlPoints: number; + knotValues: number[]; + numKnots: number; + bPeriodic: boolean; + bRational: boolean; + degreeOfSplineCurve: number; + constructor(); +} +export interface IHatchBoundaryPath { + edges: HatchEdge[]; + pathTypeFlag: HatchBoundaryPathTypeFlag; +} +export declare enum HatchStyle { + Normal = 0, + Outer = 1, + Ignore = 2 +} +export declare enum HatchType { + UserDefined = 0, + Predefined = 1, + Custom = 2 +} +export interface IHatchPatternLine { + angle: number; + origin: IPoint; + delta: IPoint; + dashPattern: number[]; +} +export interface IHatchEntity extends IEntity { + elevationX: number; + elevationY: number; + elevationZ: number; + pixelSize: number; + associativity: boolean; + annotatedBoundary: boolean; + boundaryPathsCount: number; + boundaryPaths: IHatchBoundaryPath[]; + seedPointsCount: number; + extrusionDirectionX: number; + extrusionDirectionY: number; + extrusionDirectionZ: number; + patternName: string; + solidFill: boolean; + patternFillColor: number; + style: HatchStyle; + patternType: HatchType; + patternAngle: number; + patternScale: number; + patternLines?: IHatchPatternLine[]; + isGradientColor?: boolean; + gradientColorCount?: number; + gradientColors?: number[]; +} +export default class Hatch implements IGeometry { + readonly ForEntityName = "HATCH"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IHatchEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/image.d.ts b/demo/libs/types/core/dxf-parser/entities/image.d.ts index e290bf2..7c4f217 100644 --- a/demo/libs/types/core/dxf-parser/entities/image.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/image.d.ts @@ -1,37 +1,37 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export declare enum ImageFlags { - ShowImage = 1, - ShowImageWhenNotAlignedWithScreen = 2, - UseClippingBoundary = 4, - TransparencyIsOn = 8 -} -export declare enum ImageClippingBoundaryType { - Rectangular = 1, - Polygonal = 2 -} -export declare enum ImageClipMode { - Outside = 0, - Inside = 1 -} -export interface IImageEntity extends IEntity { - position: IPoint; - uPixel: IPoint; - vPixel: IPoint; - imageSize: IPoint; - imageDefHandle: string; - flags: ImageFlags; - clipping: number; - brightness: number; - contrast: number; - fade: number; - imageDefReactorHandle: string; - clippingBoundaryType: ImageClippingBoundaryType; - countBoundaryPoints: number; - clippingBoundaryPath: IPoint[]; - clipMode: ImageClipMode; -} -export default class Image implements IGeometry { - ForEntityName: "IMAGE"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IImageEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export declare enum ImageFlags { + ShowImage = 1, + ShowImageWhenNotAlignedWithScreen = 2, + UseClippingBoundary = 4, + TransparencyIsOn = 8 +} +export declare enum ImageClippingBoundaryType { + Rectangular = 1, + Polygonal = 2 +} +export declare enum ImageClipMode { + Outside = 0, + Inside = 1 +} +export interface IImageEntity extends IEntity { + position: IPoint; + uPixel: IPoint; + vPixel: IPoint; + imageSize: IPoint; + imageDefHandle: string; + flags: ImageFlags; + clipping: number; + brightness: number; + contrast: number; + fade: number; + imageDefReactorHandle: string; + clippingBoundaryType: ImageClippingBoundaryType; + countBoundaryPoints: number; + clippingBoundaryPath: IPoint[]; + clipMode: ImageClipMode; +} +export default class Image implements IGeometry { + ForEntityName: "IMAGE"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IImageEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/insert.d.ts b/demo/libs/types/core/dxf-parser/entities/insert.d.ts index 5a958d3..4f774f2 100644 --- a/demo/libs/types/core/dxf-parser/entities/insert.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/insert.d.ts @@ -1,20 +1,20 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface IInsertEntity extends IEntity { - block: string; - attributesFollow: boolean; - xScale: number; - yScale: number; - zScale: number; - position: IPoint; - rotation: number; - columnCount: number; - rowCount: number; - columnSpacing: number; - rowSpacing: number; - extrusionDirection: IPoint; -} -export default class Insert implements IGeometry { - ForEntityName: "INSERT"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IInsertEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface IInsertEntity extends IEntity { + block: string; + attributesFollow: boolean; + xScale: number; + yScale: number; + zScale: number; + position: IPoint; + rotation: number; + columnCount: number; + rowCount: number; + columnSpacing: number; + rowSpacing: number; + extrusionDirection: IPoint; +} +export default class Insert implements IGeometry { + ForEntityName: "INSERT"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IInsertEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/leader.d.ts b/demo/libs/types/core/dxf-parser/entities/leader.d.ts index 8db5201..d6a9daf 100644 --- a/demo/libs/types/core/dxf-parser/entities/leader.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/leader.d.ts @@ -1,23 +1,23 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface ILeaderEntity extends IEntity { - dimensionStyle: string; - position: IPoint; - textHeight: number; - textWidth: number; - rotation: number; - arrowFlag: number; - pathType: number; - arrowHeight: number; - arrowHeadScale: number; - creationFlag: number; - direction: number; - hasHookline: boolean; - block: string; - arrowHeadBlockHandle: string; - vertices: IPoint[]; -} -export default class Leader implements IGeometry { - ForEntityName: "LEADER"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): ILeaderEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface ILeaderEntity extends IEntity { + dimensionStyle: string; + position: IPoint; + textHeight: number; + textWidth: number; + rotation: number; + arrowFlag: number; + pathType: number; + arrowHeight: number; + arrowHeadScale: number; + creationFlag: number; + direction: number; + hasHookline: boolean; + block: string; + arrowHeadBlockHandle: string; + vertices: IPoint[]; +} +export default class Leader implements IGeometry { + ForEntityName: "LEADER"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): ILeaderEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/line.d.ts b/demo/libs/types/core/dxf-parser/entities/line.d.ts index 7c69194..31e94b5 100644 --- a/demo/libs/types/core/dxf-parser/entities/line.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/line.d.ts @@ -1,10 +1,10 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from './geomtry'; -export interface ILineEntity extends IEntity { - vertices: IPoint[]; - extrusionDirection: IPoint; -} -export default class Line implements IGeometry { - ForEntityName: "LINE"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): ILineEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from './geomtry'; +export interface ILineEntity extends IEntity { + vertices: IPoint[]; + extrusionDirection: IPoint; +} +export default class Line implements IGeometry { + ForEntityName: "LINE"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): ILineEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/lwpolyline.d.ts b/demo/libs/types/core/dxf-parser/entities/lwpolyline.d.ts index 07b572c..bcc6ce2 100644 --- a/demo/libs/types/core/dxf-parser/entities/lwpolyline.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/lwpolyline.d.ts @@ -1,21 +1,21 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface IVertex extends IPoint { - startWidth?: number; - endWidth?: number; -} -export interface ILwpolylineEntity extends IEntity { - vertices: IVertex[]; - elevation?: number; - thickness?: number; - shape: boolean; - hasContinuousLinetypePattern: boolean; - constantWidth?: number; - extrusionDirectionX?: number; - extrusionDirectionY?: number; - extrusionDirectionZ?: number; -} -export default class Lwpolyline implements IGeometry { - ForEntityName: "LWPOLYLINE"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): ILwpolylineEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface IVertex extends IPoint { + startWidth?: number; + endWidth?: number; +} +export interface ILwpolylineEntity extends IEntity { + vertices: IVertex[]; + elevation?: number; + thickness?: number; + shape: boolean; + hasContinuousLinetypePattern: boolean; + constantWidth?: number; + extrusionDirectionX?: number; + extrusionDirectionY?: number; + extrusionDirectionZ?: number; +} +export default class Lwpolyline implements IGeometry { + ForEntityName: "LWPOLYLINE"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): ILwpolylineEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/mleader.d.ts b/demo/libs/types/core/dxf-parser/entities/mleader.d.ts index fd7695a..21d5cb6 100644 --- a/demo/libs/types/core/dxf-parser/entities/mleader.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/mleader.d.ts @@ -1,101 +1,101 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface ILeaderEntity extends IEntity { - leaderStyleId: number; - leaderLineType: number; - leaderLineColor: number; - leaderLineTypeId: number; - leaderLineWeight: number; - enableLanding: boolean; - enableDogLeg: boolean; - doglegLength: number; - arrowHeadId: number; - arrowHeadSize: number; - contentType: number; - textStyleId: number; - textLeftAttachmentType: number; - textRightAttachmentType: number; - textAngleType: number; - textAlignmentType: number; - textColor: number; - enableFrameText: boolean; - blockContentId: number; - blockContentColor: number; - blockContentScale: IPoint; - blockContentRotation: number; - blockContentConnectionType: number; - enableAnotationScale: boolean; - arrowHeadIndex: number; - blockAttributeId: number; - blockAttributeIndex: number; - blockAttributeWidth: number; - blockAttributeTextString: string; - textDirectionNegative: boolean; - textAlignInIPE: number; - textAttachmentPoint: number; - textAttachmentDirectionMText: number; - textAttachmentDirectionBottom: number; - textAttachmentDirectionTop: number; - contextData: IMLeaderContextData; -} -export interface IMLeaderContextData { - contentScale: number; - contentBasePosition: IPoint; - textHeight: number; - arrowHeadSize: number; - landingGap: number; - hasMText: boolean; - defaultTextContents: string; - textNormalDirection: IPoint; - textLocation: IPoint; - textDirection: IPoint; - textRotation: number; - textWidth: number; - textLineSpacingFactor: number; - textLineSpacingStyle: number; - textColor: number; - textAttachment: number; - textFlowDirection: number; - textBackgroundColor: number; - textBackgroundScaleFactor: number; - textBackgroundTransparency: number; - textBackgroundColorOn: boolean; - textBackgroundFillOn: boolean; - textColumnType: number; - textUseAutoHeight: boolean; - textColumnWidth: number; - textColumnGutterWidth: number; - textColumnFlowReversed: boolean; - textColumnHeight: number; - textUseWordBreak: boolean; - hasBlock: boolean; - blockContentId: number; - blockContentNormalDirection: IPoint; - blockContentPosition: IPoint; - blockContentScale: number; - blockContentRotation: number; - blockContentColor: number; - blockTransformationMatrix: number[]; - planeOriginPoint: IPoint; - planeXAxisDirection: IPoint; - planeYAxisDirection: IPoint; - planeNormalReversed: boolean; - leaders: IMLeaderLeader[]; -} -export interface IMLeaderLeader { - hasSetLastLeaderLinePoint: boolean; - hasSetDoglegVector: boolean; - lastLeaderLinePoint: IPoint; - doglegVector: IPoint; - leaderBranchIndex: number; - doglegLength: number; - leaderLines: IMLeaderLine[]; -} -export interface IMLeaderLine { - vertices: IPoint[][]; - leaderLineIndex: number; -} -export default class MLeader implements IGeometry { - ForEntityName: "MULTILEADER"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): ILeaderEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface ILeaderEntity extends IEntity { + leaderStyleId: number; + leaderLineType: number; + leaderLineColor: number; + leaderLineTypeId: number; + leaderLineWeight: number; + enableLanding: boolean; + enableDogLeg: boolean; + doglegLength: number; + arrowHeadId: number; + arrowHeadSize: number; + contentType: number; + textStyleId: number; + textLeftAttachmentType: number; + textRightAttachmentType: number; + textAngleType: number; + textAlignmentType: number; + textColor: number; + enableFrameText: boolean; + blockContentId: number; + blockContentColor: number; + blockContentScale: IPoint; + blockContentRotation: number; + blockContentConnectionType: number; + enableAnotationScale: boolean; + arrowHeadIndex: number; + blockAttributeId: number; + blockAttributeIndex: number; + blockAttributeWidth: number; + blockAttributeTextString: string; + textDirectionNegative: boolean; + textAlignInIPE: number; + textAttachmentPoint: number; + textAttachmentDirectionMText: number; + textAttachmentDirectionBottom: number; + textAttachmentDirectionTop: number; + contextData: IMLeaderContextData; +} +export interface IMLeaderContextData { + contentScale: number; + contentBasePosition: IPoint; + textHeight: number; + arrowHeadSize: number; + landingGap: number; + hasMText: boolean; + defaultTextContents: string; + textNormalDirection: IPoint; + textLocation: IPoint; + textDirection: IPoint; + textRotation: number; + textWidth: number; + textLineSpacingFactor: number; + textLineSpacingStyle: number; + textColor: number; + textAttachment: number; + textFlowDirection: number; + textBackgroundColor: number; + textBackgroundScaleFactor: number; + textBackgroundTransparency: number; + textBackgroundColorOn: boolean; + textBackgroundFillOn: boolean; + textColumnType: number; + textUseAutoHeight: boolean; + textColumnWidth: number; + textColumnGutterWidth: number; + textColumnFlowReversed: boolean; + textColumnHeight: number; + textUseWordBreak: boolean; + hasBlock: boolean; + blockContentId: number; + blockContentNormalDirection: IPoint; + blockContentPosition: IPoint; + blockContentScale: number; + blockContentRotation: number; + blockContentColor: number; + blockTransformationMatrix: number[]; + planeOriginPoint: IPoint; + planeXAxisDirection: IPoint; + planeYAxisDirection: IPoint; + planeNormalReversed: boolean; + leaders: IMLeaderLeader[]; +} +export interface IMLeaderLeader { + hasSetLastLeaderLinePoint: boolean; + hasSetDoglegVector: boolean; + lastLeaderLinePoint: IPoint; + doglegVector: IPoint; + leaderBranchIndex: number; + doglegLength: number; + leaderLines: IMLeaderLine[]; +} +export interface IMLeaderLine { + vertices: IPoint[][]; + leaderLineIndex: number; +} +export default class MLeader implements IGeometry { + ForEntityName: "MULTILEADER"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): ILeaderEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/mtext.d.ts b/demo/libs/types/core/dxf-parser/entities/mtext.d.ts index 7f573a2..8541419 100644 --- a/demo/libs/types/core/dxf-parser/entities/mtext.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/mtext.d.ts @@ -1,18 +1,18 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface IMtextEntity extends IEntity { - text: string; - position: IPoint; - directionVector?: IPoint; - height: number; - width: number; - rotation?: number; - attachmentPoint: number; - drawingDirection: number; - textStyle?: string; - lineSpaceFactor?: number; -} -export default class Mtext implements IGeometry { - ForEntityName: "MTEXT"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IMtextEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface IMtextEntity extends IEntity { + text: string; + position: IPoint; + directionVector?: IPoint; + height: number; + width: number; + rotation?: number; + attachmentPoint: number; + drawingDirection: number; + textStyle?: string; + lineSpaceFactor?: number; +} +export default class Mtext implements IGeometry { + ForEntityName: "MTEXT"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IMtextEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/ole2frame.d.ts b/demo/libs/types/core/dxf-parser/entities/ole2frame.d.ts index c7687b5..6336344 100644 --- a/demo/libs/types/core/dxf-parser/entities/ole2frame.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/ole2frame.d.ts @@ -1,20 +1,20 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity } from "./geomtry"; -export interface IOleEntity extends IEntity { - documentType: string; - version: number; - leftUpX: number; - leftUpY: number; - leftUpZ: number; - rightDownX: number; - rightDownY: number; - rightDownZ: number; - type: string; - tileModeDescriptor: number; - binaryData: string; - lengthOfBinaryData: number; -} -export default class Ole implements IGeometry { - readonly ForEntityName = "OLE2FRAME"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IOleEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity } from "./geomtry"; +export interface IOleEntity extends IEntity { + documentType: string; + version: number; + leftUpX: number; + leftUpY: number; + leftUpZ: number; + rightDownX: number; + rightDownY: number; + rightDownZ: number; + type: string; + tileModeDescriptor: number; + binaryData: string; + lengthOfBinaryData: number; +} +export default class Ole implements IGeometry { + readonly ForEntityName = "OLE2FRAME"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IOleEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/point.d.ts b/demo/libs/types/core/dxf-parser/entities/point.d.ts index e2d71ad..acdcb79 100644 --- a/demo/libs/types/core/dxf-parser/entities/point.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/point.d.ts @@ -1,11 +1,11 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from './geomtry'; -export interface IPointEntity extends IEntity { - position: IPoint; - thickness: number; - extrusionDirection: IPoint; -} -export default class Point implements IGeometry { - ForEntityName: "POINT"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IPointEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from './geomtry'; +export interface IPointEntity extends IEntity { + position: IPoint; + thickness: number; + extrusionDirection: IPoint; +} +export default class Point implements IGeometry { + ForEntityName: "POINT"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IPointEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/polyline.d.ts b/demo/libs/types/core/dxf-parser/entities/polyline.d.ts index 954582a..7a19255 100644 --- a/demo/libs/types/core/dxf-parser/entities/polyline.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/polyline.d.ts @@ -1,20 +1,20 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -import { IVertexEntity } from "./vertex"; -export interface IPolylineEntity extends IEntity { - vertices: IVertexEntity[]; - thickness: number; - shape: boolean; - includesCurveFitVertices: boolean; - includesSplineFitVertices: boolean; - is3dPolyline: boolean; - is3dPolygonMesh: boolean; - is3dPolygonMeshClosed: boolean; - isPolyfaceMesh: boolean; - hasContinuousLinetypePattern: boolean; - extrusionDirection: IPoint; -} -export default class Polyline implements IGeometry { - ForEntityName: "POLYLINE"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IPolylineEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +import { IVertexEntity } from "./vertex"; +export interface IPolylineEntity extends IEntity { + vertices: IVertexEntity[]; + thickness: number; + shape: boolean; + includesCurveFitVertices: boolean; + includesSplineFitVertices: boolean; + is3dPolyline: boolean; + is3dPolygonMesh: boolean; + is3dPolygonMeshClosed: boolean; + isPolyfaceMesh: boolean; + hasContinuousLinetypePattern: boolean; + extrusionDirection: IPoint; +} +export default class Polyline implements IGeometry { + ForEntityName: "POLYLINE"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IPolylineEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/ray.d.ts b/demo/libs/types/core/dxf-parser/entities/ray.d.ts index 4e67f5a..bc3fdf4 100644 --- a/demo/libs/types/core/dxf-parser/entities/ray.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/ray.d.ts @@ -1,10 +1,10 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from './geomtry'; -export interface IRayEntity extends IEntity { - vertices: IPoint[]; - directionVector: IPoint; -} -export default class Ray implements IGeometry { - ForEntityName: "RAY"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IRayEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from './geomtry'; +export interface IRayEntity extends IEntity { + vertices: IPoint[]; + directionVector: IPoint; +} +export default class Ray implements IGeometry { + ForEntityName: "RAY"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IRayEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/region.d.ts b/demo/libs/types/core/dxf-parser/entities/region.d.ts index 805ec9f..eb65427 100644 --- a/demo/libs/types/core/dxf-parser/entities/region.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/region.d.ts @@ -1,10 +1,10 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity } from "./geomtry"; -export interface IRegionEntity extends IEntity { - modelerVersion?: number; - proprietaryData?: string; -} -export default class Region implements IGeometry { - ForEntityName: "REGION"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IRegionEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity } from "./geomtry"; +export interface IRegionEntity extends IEntity { + modelerVersion?: number; + proprietaryData?: string; +} +export default class Region implements IGeometry { + ForEntityName: "REGION"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IRegionEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/seqend.d.ts b/demo/libs/types/core/dxf-parser/entities/seqend.d.ts index 5a02045..ac47c71 100644 --- a/demo/libs/types/core/dxf-parser/entities/seqend.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/seqend.d.ts @@ -1,8 +1,8 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity } from './geomtry'; -export interface ISeqendEntity extends IEntity { -} -export default class Seqend implements IGeometry { - ForEntityName: "SEQEND"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): ISeqendEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity } from './geomtry'; +export interface ISeqendEntity extends IEntity { +} +export default class Seqend implements IGeometry { + ForEntityName: "SEQEND"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): ISeqendEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/solid.d.ts b/demo/libs/types/core/dxf-parser/entities/solid.d.ts index 0d1b0f0..79965c7 100644 --- a/demo/libs/types/core/dxf-parser/entities/solid.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/solid.d.ts @@ -1,10 +1,10 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface ISolidEntity extends IEntity { - points: IPoint[]; - extrusionDirection: IPoint; -} -export default class Solid implements IGeometry { - ForEntityName: "SOLID"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): ISolidEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface ISolidEntity extends IEntity { + points: IPoint[]; + extrusionDirection: IPoint; +} +export default class Solid implements IGeometry { + ForEntityName: "SOLID"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): ISolidEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/spline.d.ts b/demo/libs/types/core/dxf-parser/entities/spline.d.ts index a7729ea..f48eaa5 100644 --- a/demo/libs/types/core/dxf-parser/entities/spline.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/spline.d.ts @@ -1,23 +1,23 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface ISplineEntity extends IEntity { - controlPoints?: IPoint[]; - fitPoints?: IPoint[]; - startTangent: IPoint; - endTangent: IPoint; - knotValues: number[]; - closed: boolean; - periodic: boolean; - rational: boolean; - planar: boolean; - linear: boolean; - degreeOfSplineCurve: number; - numberOfKnots: number; - numberOfControlPoints: number; - numberOfFitPoints: number; - normalVector: IPoint; -} -export default class Spline implements IGeometry { - ForEntityName: "SPLINE"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): ISplineEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface ISplineEntity extends IEntity { + controlPoints?: IPoint[]; + fitPoints?: IPoint[]; + startTangent: IPoint; + endTangent: IPoint; + knotValues: number[]; + closed: boolean; + periodic: boolean; + rational: boolean; + planar: boolean; + linear: boolean; + degreeOfSplineCurve: number; + numberOfKnots: number; + numberOfControlPoints: number; + numberOfFitPoints: number; + normalVector: IPoint; +} +export default class Spline implements IGeometry { + ForEntityName: "SPLINE"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): ISplineEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/text.d.ts b/demo/libs/types/core/dxf-parser/entities/text.d.ts index 7b1c586..4648a0a 100644 --- a/demo/libs/types/core/dxf-parser/entities/text.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/text.d.ts @@ -1,18 +1,18 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface ITextEntity extends IEntity { - startPoint: IPoint; - endPoint: IPoint; - textHeight: number; - xScale: number; - rotation: number; - text: string; - textStyle: string; - mirrored: number; - halign: number; - valign: number; -} -export default class Text implements IGeometry { - ForEntityName: "TEXT"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): ITextEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface ITextEntity extends IEntity { + startPoint: IPoint; + endPoint: IPoint; + textHeight: number; + xScale: number; + rotation: number; + text: string; + textStyle: string; + mirrored: number; + halign: number; + valign: number; +} +export default class Text implements IGeometry { + ForEntityName: "TEXT"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): ITextEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/vertex.d.ts b/demo/libs/types/core/dxf-parser/entities/vertex.d.ts index e482820..edd1a00 100644 --- a/demo/libs/types/core/dxf-parser/entities/vertex.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/vertex.d.ts @@ -1,20 +1,20 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from './geomtry'; -export interface IVertexEntity extends IEntity, IPoint { - bulge: number; - curveFittingVertex: boolean; - curveFitTangent: boolean; - splineVertex: boolean; - splineControlPoint: boolean; - threeDPolylineVertex: boolean; - threeDPolylineMesh: boolean; - polyfaceMeshVertex: boolean; - faceA: number; - faceB: number; - faceC: number; - faceD: number; -} -export default class Vertex implements IGeometry { - ForEntityName: "VERTEX"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IVertexEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from './geomtry'; +export interface IVertexEntity extends IEntity, IPoint { + bulge: number; + curveFittingVertex: boolean; + curveFitTangent: boolean; + splineVertex: boolean; + splineControlPoint: boolean; + threeDPolylineVertex: boolean; + threeDPolylineMesh: boolean; + polyfaceMeshVertex: boolean; + faceA: number; + faceB: number; + faceC: number; + faceD: number; +} +export default class Vertex implements IGeometry { + ForEntityName: "VERTEX"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IVertexEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/viewport.d.ts b/demo/libs/types/core/dxf-parser/entities/viewport.d.ts index b608d68..561c5e2 100644 --- a/demo/libs/types/core/dxf-parser/entities/viewport.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/viewport.d.ts @@ -1,46 +1,46 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from "./geomtry"; -export interface IViewportEntity extends IEntity { - centerPoint: IPoint; - width_paperSpace: number; - height_paperSpace: number; - viewportStatus: number; - viewportId: string; - centerPoint_dcs: IPoint; - snapBasePoint_dcs: IPoint; - snapSpacing_dcs: IPoint; - gridSpacing_dcs: IPoint; - viewDirection: IPoint; - viewTarget: IPoint; - perspectiveLens: number; - frontClippingPlaneZ: number; - backClippingPlaneZ: number; - viewHeight: number; - snapAngle: number; - viewTwistAngle: number; - circleZoomPercent: number; - frozenLayerHandles: string[]; - viewportStatusFlags: number; - viewportClippingBoundaryhandleId: string; - plotStyleSheetName: string; - renderMode: number; - viewportFlag_ucs: number; - ucsIcon: string; - ucsOrigin: IPoint; - ucsXAxis: IPoint; - ucsYAxis: IPoint; - ucsTableRecordHandle: string; - baseUcsTableRecordHandle: string; - orthographicType: number; - elevation: number; - shadePlotMode: number; - frequency: number; - lightingFlag: number; - lightingType: number; - viewBrightness: number; - viewContrast: number; -} -export default class Viewport implements IGeometry { - ForEntityName: "VIEWPORT"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IViewportEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from "./geomtry"; +export interface IViewportEntity extends IEntity { + centerPoint: IPoint; + width_paperSpace: number; + height_paperSpace: number; + viewportStatus: number; + viewportId: string; + centerPoint_dcs: IPoint; + snapBasePoint_dcs: IPoint; + snapSpacing_dcs: IPoint; + gridSpacing_dcs: IPoint; + viewDirection: IPoint; + viewTarget: IPoint; + perspectiveLens: number; + frontClippingPlaneZ: number; + backClippingPlaneZ: number; + viewHeight: number; + snapAngle: number; + viewTwistAngle: number; + circleZoomPercent: number; + frozenLayerHandles: string[]; + viewportStatusFlags: number; + viewportClippingBoundaryhandleId: string; + plotStyleSheetName: string; + renderMode: number; + viewportFlag_ucs: number; + ucsIcon: string; + ucsOrigin: IPoint; + ucsXAxis: IPoint; + ucsYAxis: IPoint; + ucsTableRecordHandle: string; + baseUcsTableRecordHandle: string; + orthographicType: number; + elevation: number; + shadePlotMode: number; + frequency: number; + lightingFlag: number; + lightingType: number; + viewBrightness: number; + viewContrast: number; +} +export default class Viewport implements IGeometry { + ForEntityName: "VIEWPORT"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IViewportEntity; +} diff --git a/demo/libs/types/core/dxf-parser/entities/xline.d.ts b/demo/libs/types/core/dxf-parser/entities/xline.d.ts index 3afbf21..d37af59 100644 --- a/demo/libs/types/core/dxf-parser/entities/xline.d.ts +++ b/demo/libs/types/core/dxf-parser/entities/xline.d.ts @@ -1,10 +1,10 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import IGeometry, { IEntity, IPoint } from './geomtry'; -export interface IXLineEntity extends IEntity { - vertices: IPoint[]; - directionVector: IPoint; -} -export default class XLine implements IGeometry { - ForEntityName: "XLINE"; - parseEntity(scanner: DxfBaseReader, curr: IGroup): IXLineEntity; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import IGeometry, { IEntity, IPoint } from './geomtry'; +export interface IXLineEntity extends IEntity { + vertices: IPoint[]; + directionVector: IPoint; +} +export default class XLine implements IGeometry { + ForEntityName: "XLINE"; + parseEntity(scanner: DxfBaseReader, curr: IGroup): IXLineEntity; +} diff --git a/demo/libs/types/core/dxf-parser/index.d.ts b/demo/libs/types/core/dxf-parser/index.d.ts index cd3c882..fb85396 100644 --- a/demo/libs/types/core/dxf-parser/index.d.ts +++ b/demo/libs/types/core/dxf-parser/index.d.ts @@ -1,26 +1,26 @@ -export { default, default as DxfParser } from "./DxfParser"; -export type { IDxf, IBlock, ILayerTypesTable, ILayersTable, ITables, IViewportTable, IBaseTable, ILayer, ILayerTableDefinition, ILineType, ILineTypeTableDefinition, ITable, ITableDefinitions, IViewport, IViewportTableDefinition, } from "./DxfParser"; -export type { IEntity, IPoint } from "./entities/geomtry"; -export type { I3DfaceEntity } from "./entities/3dface"; -export type { IArcEntity } from "./entities/arc"; -export type { IAttdefEntity } from "./entities/attdef"; -export type { ICircleEntity } from "./entities/circle"; -export type { IDimensionEntity } from "./entities/dimension"; -export type { ILeaderEntity } from "./entities/mleader"; -export type { IEllipseEntity } from "./entities/ellipse"; -export type { IHatchEntity } from "./entities/hatch"; -export type { IInsertEntity } from "./entities/insert"; -export type { ILineEntity } from "./entities/line"; -export type { ILwpolylineEntity } from "./entities/lwpolyline"; -export type { IMtextEntity } from "./entities/mtext"; -export type { IPointEntity } from "./entities/point"; -export type { IPolylineEntity } from "./entities/polyline"; -export type { ISolidEntity } from "./entities/solid"; -export type { ISplineEntity } from "./entities/spline"; -export type { ITextEntity } from "./entities/text"; -export type { IVertexEntity } from "./entities/vertex"; -export type { IViewportEntity } from "./entities/viewport"; -export type { IObject } from "./objects/common"; -export type { IImageDefObject } from "./objects/imagedef"; -export type { ILayoutObject } from "./objects/layout"; -export type { ISortEntsObject, ISortEntsTableObject } from "./objects/sortentstable"; +export { default, default as DxfParser } from "./DxfParser"; +export type { IDxf, IBlock, ILayerTypesTable, ILayersTable, ITables, IViewportTable, IBaseTable, ILayer, ILayerTableDefinition, ILineType, ILineTypeTableDefinition, ITable, ITableDefinitions, IViewport, IViewportTableDefinition, } from "./DxfParser"; +export type { IEntity, IPoint } from "./entities/geomtry"; +export type { I3DfaceEntity } from "./entities/3dface"; +export type { IArcEntity } from "./entities/arc"; +export type { IAttdefEntity } from "./entities/attdef"; +export type { ICircleEntity } from "./entities/circle"; +export type { IDimensionEntity } from "./entities/dimension"; +export type { ILeaderEntity } from "./entities/mleader"; +export type { IEllipseEntity } from "./entities/ellipse"; +export type { IHatchEntity } from "./entities/hatch"; +export type { IInsertEntity } from "./entities/insert"; +export type { ILineEntity } from "./entities/line"; +export type { ILwpolylineEntity } from "./entities/lwpolyline"; +export type { IMtextEntity } from "./entities/mtext"; +export type { IPointEntity } from "./entities/point"; +export type { IPolylineEntity } from "./entities/polyline"; +export type { ISolidEntity } from "./entities/solid"; +export type { ISplineEntity } from "./entities/spline"; +export type { ITextEntity } from "./entities/text"; +export type { IVertexEntity } from "./entities/vertex"; +export type { IViewportEntity } from "./entities/viewport"; +export type { IObject } from "./objects/common"; +export type { IImageDefObject } from "./objects/imagedef"; +export type { ILayoutObject } from "./objects/layout"; +export type { ISortEntsObject, ISortEntsTableObject } from "./objects/sortentstable"; diff --git a/demo/libs/types/core/dxf-parser/objects/common.d.ts b/demo/libs/types/core/dxf-parser/objects/common.d.ts index 1e9ccd1..044ba60 100644 --- a/demo/libs/types/core/dxf-parser/objects/common.d.ts +++ b/demo/libs/types/core/dxf-parser/objects/common.d.ts @@ -1,15 +1,15 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -export interface IObject { - type: string; - handle: string; - ownerHandle: string; - extendedData?: { - customStrings?: string[]; - applicationName?: string; - }; -} -export declare type ObjectName = "ACAD_PROXY_OBJECT" | "ACDBDICTIONARYWDFLT" | "ACDBPLACEHOLDER" | "DATATABLE" | "DICTIONARY" | "DICTIONARYVAR" | "DIMASSOC" | "FIELD" | "GEODATA" | "IDBUFFER" | "IMAGEDEF" | "IMAGEDEF_REACTOR" | "LAYER_INDEX" | "LAYER_FILTER" | "LAYOUT" | "LIGHTLIST" | "MATERIAL" | "MLINESTYLE" | "OBJECT_PTR" | "PLOTSETTINGS" | "RASTERVARIABLES" | "RENDER" | "SECTION" | "SPATIAL_INDEX" | "SPATIAL_FILTER" | "SORTENTSTABLE" | "TABLESTYLE" | "UNDERLAYDEFINITION" | "VISUALSTYLE" | "VBA_PROJECT" | "WIPEOUTVARIABLES" | "XRECORD"; -export interface IObjectParser { - ForObjectName: ObjectName; - parseObject(scanner: DxfBaseReader, curr: IGroup): IObject; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +export interface IObject { + type: string; + handle: string; + ownerHandle: string; + extendedData?: { + customStrings?: string[]; + applicationName?: string; + }; +} +export declare type ObjectName = "ACAD_PROXY_OBJECT" | "ACDBDICTIONARYWDFLT" | "ACDBPLACEHOLDER" | "DATATABLE" | "DICTIONARY" | "DICTIONARYVAR" | "DIMASSOC" | "FIELD" | "GEODATA" | "IDBUFFER" | "IMAGEDEF" | "IMAGEDEF_REACTOR" | "LAYER_INDEX" | "LAYER_FILTER" | "LAYOUT" | "LIGHTLIST" | "MATERIAL" | "MLINESTYLE" | "OBJECT_PTR" | "PLOTSETTINGS" | "RASTERVARIABLES" | "RENDER" | "SECTION" | "SPATIAL_INDEX" | "SPATIAL_FILTER" | "SORTENTSTABLE" | "TABLESTYLE" | "UNDERLAYDEFINITION" | "VISUALSTYLE" | "VBA_PROJECT" | "WIPEOUTVARIABLES" | "XRECORD"; +export interface IObjectParser { + ForObjectName: ObjectName; + parseObject(scanner: DxfBaseReader, curr: IGroup): IObject; +} diff --git a/demo/libs/types/core/dxf-parser/objects/dictionary.d.ts b/demo/libs/types/core/dxf-parser/objects/dictionary.d.ts index ef6cea6..766286c 100644 --- a/demo/libs/types/core/dxf-parser/objects/dictionary.d.ts +++ b/demo/libs/types/core/dxf-parser/objects/dictionary.d.ts @@ -1,19 +1,19 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import { IObject, IObjectParser } from "./common"; -export declare enum DictionaryCloningFlags { - NotApplicable = 0, - KeepExisting = 1, - UseClone = 2, - XrefName = 3, - Name = 4, - UnmangleName = 5 -} -export interface IDictionaryObject extends IObject { - entries: Record; - isHardOwner: boolean; - cloningFlag: DictionaryCloningFlags; -} -export declare class Dictionary implements IObjectParser { - ForObjectName: "DICTIONARY"; - parseObject(scanner: DxfBaseReader, curr: IGroup): IDictionaryObject; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import { IObject, IObjectParser } from "./common"; +export declare enum DictionaryCloningFlags { + NotApplicable = 0, + KeepExisting = 1, + UseClone = 2, + XrefName = 3, + Name = 4, + UnmangleName = 5 +} +export interface IDictionaryObject extends IObject { + entries: Record; + isHardOwner: boolean; + cloningFlag: DictionaryCloningFlags; +} +export declare class Dictionary implements IObjectParser { + ForObjectName: "DICTIONARY"; + parseObject(scanner: DxfBaseReader, curr: IGroup): IDictionaryObject; +} diff --git a/demo/libs/types/core/dxf-parser/objects/imagedef.d.ts b/demo/libs/types/core/dxf-parser/objects/imagedef.d.ts index 599e849..36662b2 100644 --- a/demo/libs/types/core/dxf-parser/objects/imagedef.d.ts +++ b/demo/libs/types/core/dxf-parser/objects/imagedef.d.ts @@ -1,24 +1,24 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import { IPoint } from "../entities/geomtry"; -import { IObject, IObjectParser } from "./common"; -export declare enum ImgaeDefLoaded { - Unloaded = 0, - Loaded = 1 -} -export declare enum ImageDefResolutionUnits { - NoUnits = 0, - Centimeters = 2, - Inches = 5 -} -export interface IImageDefObject extends IObject { - classVersion: number; - filename: string; - imageSize: IPoint; - pixelSize: IPoint; - loaded: ImgaeDefLoaded; - resolutionUnits: ImageDefResolutionUnits; -} -export declare class ImageDef implements IObjectParser { - ForObjectName: "IMAGEDEF"; - parseObject(scanner: DxfBaseReader, curr: IGroup): IImageDefObject; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import { IPoint } from "../entities/geomtry"; +import { IObject, IObjectParser } from "./common"; +export declare enum ImgaeDefLoaded { + Unloaded = 0, + Loaded = 1 +} +export declare enum ImageDefResolutionUnits { + NoUnits = 0, + Centimeters = 2, + Inches = 5 +} +export interface IImageDefObject extends IObject { + classVersion: number; + filename: string; + imageSize: IPoint; + pixelSize: IPoint; + loaded: ImgaeDefLoaded; + resolutionUnits: ImageDefResolutionUnits; +} +export declare class ImageDef implements IObjectParser { + ForObjectName: "IMAGEDEF"; + parseObject(scanner: DxfBaseReader, curr: IGroup): IImageDefObject; +} diff --git a/demo/libs/types/core/dxf-parser/objects/layout.d.ts b/demo/libs/types/core/dxf-parser/objects/layout.d.ts index f008e9c..4879728 100644 --- a/demo/libs/types/core/dxf-parser/objects/layout.d.ts +++ b/demo/libs/types/core/dxf-parser/objects/layout.d.ts @@ -1,29 +1,29 @@ -import { IObject, IObjectParser } from './common'; -import { DxfBaseReader, IGroup } from '../DxfBaseReader'; -import { IPoint } from '../entities/geomtry'; -/** - * @internal - */ -export interface ILayoutObject extends IObject { - plotSettings?: object; - layoutName: string; - flag: number; - tabOrder: number; - minLimit: IPoint; - maxLimit: IPoint; - basePoint: IPoint; - minExtent: IPoint; - maxExtent: IPoint; - elevation: number; - origin: IPoint; - XAxis: IPoint; - YAxis: IPoint; - orthographicType: number; - blockTableHandle: string; - viewportHandle: string; - associatedBlockName: string; -} -export declare class Layout implements IObjectParser { - ForObjectName: "LAYOUT"; - parseObject(scanner: DxfBaseReader, curr: IGroup): ILayoutObject; -} +import { IObject, IObjectParser } from './common'; +import { DxfBaseReader, IGroup } from '../DxfBaseReader'; +import { IPoint } from '../entities/geomtry'; +/** + * @internal + */ +export interface ILayoutObject extends IObject { + plotSettings?: object; + layoutName: string; + flag: number; + tabOrder: number; + minLimit: IPoint; + maxLimit: IPoint; + basePoint: IPoint; + minExtent: IPoint; + maxExtent: IPoint; + elevation: number; + origin: IPoint; + XAxis: IPoint; + YAxis: IPoint; + orthographicType: number; + blockTableHandle: string; + viewportHandle: string; + associatedBlockName: string; +} +export declare class Layout implements IObjectParser { + ForObjectName: "LAYOUT"; + parseObject(scanner: DxfBaseReader, curr: IGroup): ILayoutObject; +} diff --git a/demo/libs/types/core/dxf-parser/objects/sortentstable.d.ts b/demo/libs/types/core/dxf-parser/objects/sortentstable.d.ts index 097364c..a1222e7 100644 --- a/demo/libs/types/core/dxf-parser/objects/sortentstable.d.ts +++ b/demo/libs/types/core/dxf-parser/objects/sortentstable.d.ts @@ -1,12 +1,12 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import { IObject, IObjectParser } from "./common"; -export interface ISortEntsObject extends IObject { - entityHandles: string[][]; -} -export interface ISortEntsTableObject extends IObject { - sortEntsObject: ISortEntsObject; -} -export declare class SortEntsTable implements IObjectParser { - ForObjectName: "SORTENTSTABLE"; - parseObject(scanner: DxfBaseReader, curr: IGroup): ISortEntsTableObject; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import { IObject, IObjectParser } from "./common"; +export interface ISortEntsObject extends IObject { + entityHandles: string[][]; +} +export interface ISortEntsTableObject extends IObject { + sortEntsObject: ISortEntsObject; +} +export declare class SortEntsTable implements IObjectParser { + ForObjectName: "SORTENTSTABLE"; + parseObject(scanner: DxfBaseReader, curr: IGroup): ISortEntsTableObject; +} diff --git a/demo/libs/types/core/dxf-parser/objects/spatialfilter.d.ts b/demo/libs/types/core/dxf-parser/objects/spatialfilter.d.ts index 8c2743b..101eec3 100644 --- a/demo/libs/types/core/dxf-parser/objects/spatialfilter.d.ts +++ b/demo/libs/types/core/dxf-parser/objects/spatialfilter.d.ts @@ -1,22 +1,22 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import { IPoint } from "../entities/geomtry"; -import { IObject, IObjectParser } from "./common"; -export interface ISpatialFilterObject extends IObject { - origin: IPoint; - numberOfPointsOnClipBoundary: number; - vertices: IPoint[]; - extrusionDirectionX: number; - extrusionDirectionY: number; - extrusionDirectionZ: number; - clipBoundaryVisible: boolean; - frontClippingPlaneFlag: boolean; - frontClippingPlaneDistance: number; - backClippingPlaneFlag: boolean; - backClippingPlaneDistance: number; - matrix: number[]; - invertBlockMatrix: number[]; -} -export declare class SpatialFilter implements IObjectParser { - ForObjectName: "SPATIAL_FILTER"; - parseObject(scanner: DxfBaseReader, curr: IGroup): ISpatialFilterObject; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import { IPoint } from "../entities/geomtry"; +import { IObject, IObjectParser } from "./common"; +export interface ISpatialFilterObject extends IObject { + origin: IPoint; + numberOfPointsOnClipBoundary: number; + vertices: IPoint[]; + extrusionDirectionX: number; + extrusionDirectionY: number; + extrusionDirectionZ: number; + clipBoundaryVisible: boolean; + frontClippingPlaneFlag: boolean; + frontClippingPlaneDistance: number; + backClippingPlaneFlag: boolean; + backClippingPlaneDistance: number; + matrix: number[]; + invertBlockMatrix: number[]; +} +export declare class SpatialFilter implements IObjectParser { + ForObjectName: "SPATIAL_FILTER"; + parseObject(scanner: DxfBaseReader, curr: IGroup): ISpatialFilterObject; +} diff --git a/demo/libs/types/core/dxf-parser/objects/xrecord.d.ts b/demo/libs/types/core/dxf-parser/objects/xrecord.d.ts index 33e67e5..b6e2c6a 100644 --- a/demo/libs/types/core/dxf-parser/objects/xrecord.d.ts +++ b/demo/libs/types/core/dxf-parser/objects/xrecord.d.ts @@ -1,11 +1,11 @@ -import { DxfBaseReader, IGroup } from "../DxfBaseReader"; -import { IObject, IObjectParser } from "./common"; -import { DictionaryCloningFlags } from "./dictionary"; -export interface IXRecord extends IObject { - binaryData: string | undefined; - cloningFlag: DictionaryCloningFlags; -} -export declare class XRecord implements IObjectParser { - ForObjectName: "XRECORD"; - parseObject(scanner: DxfBaseReader, curr: IGroup): IXRecord; -} +import { DxfBaseReader, IGroup } from "../DxfBaseReader"; +import { IObject, IObjectParser } from "./common"; +import { DictionaryCloningFlags } from "./dictionary"; +export interface IXRecord extends IObject { + binaryData: string | undefined; + cloningFlag: DictionaryCloningFlags; +} +export declare class XRecord implements IObjectParser { + ForObjectName: "XRECORD"; + parseObject(scanner: DxfBaseReader, curr: IGroup): IXRecord; +} diff --git a/demo/libs/types/core/dxf/DxfCompare.d.ts b/demo/libs/types/core/dxf/DxfCompare.d.ts index d5ddc5a..ff278fc 100644 --- a/demo/libs/types/core/dxf/DxfCompare.d.ts +++ b/demo/libs/types/core/dxf/DxfCompare.d.ts @@ -1,151 +1,151 @@ -import * as THREE from "three"; -import type { DxfEntity } from "./DxfLoader"; -import type { DxfCompareConfig } from "../../core/Configs"; -import { IDxf } from "../../core/dxf-parser"; -/** - * Dxf change type, which can be "Added", "Removed" or "Modified". - * - * Note that a "Modified" change can be represented as a "Removed" and an "Added" types. - * - * The system can display "Added" object in a specific color (green, etc.), - * and "Removed" in another color (red, etc.). - */ -export declare enum DxfChangeType { - Added = "Added", - Removed = "Removed", - Modified = "Modified", - NoChange = "NoChange" -} -/** - * Dxf compare detail changes. - * It supports: - * - color - * - lineType - * - constantWidth (polyline width) - */ -export declare type DxfDetailChanges = { - [propName: string]: { - /** - * The old value. - */ - old: unknown; - /** - * The new value. - */ - new: unknown; - }; -}; -/** - * Describes a dxf change - */ -export interface DxfChange { - /** - * An integer type id. It is unique in the lifecycle of a DxfViewer. - */ - id: number; - /** - * Change type, which can be "Added", "Removed", "Modified" or "NoChange". - */ - type: DxfChangeType; - /** - * AutoCAD entity handle - */ - handle: string; - /** - * @internal - */ - parentHandles?: string[]; - /** - * @internal - */ - box?: THREE.Box3; - detailChanges?: DxfDetailChanges; -} -/** - * Used to compare two drawings/dxfs. - * - Consider model space only. - * - Consider entity's geometry, position, scale, etc. - * - Ignore layer's visibility, freeze settings. - * - Ignore entity's properties like linetype, fill pattern, font, color, etc. - * - Ignore spatial filter (xclip) of block reference. - * - We compare entities with the same handle and type. e.g. - * - if line A from dxf1 has the same handle with arc A from dxf2, then line A is "Removed", arc A is "Added". - * - For color, it compares color setting rather than the actual color. E.g. - * - If a color setting is "ByLayer", but the layer's color is changed. We take this case as unchanged. - * - If a color setting is "ByLayer", the setting is changed to "ByBlock", while the layer and block actually have the same color. We take this case as changed. - * @internal - */ -export declare class DxfCompare { - static readonly ENTITY_COLOR_ADDED = 65280; - static readonly ENTITY_COLOR_REMOVED = 16711680; - static readonly ENTITY_COLOR_NO_CHANGE = 10066329; - static readonly ENTITY_COLOR_MARKUP = 16744231; - private dxf1; - private dxf2; - private changes; - private comparedBlocks; - private isComparingBlock; - private isComparingDimension; - private enableDetailComparision; - static readonly ignoreEntityTypes: string[]; - constructor(dxf1: IDxf, dxf2: IDxf, compareCfg?: DxfCompareConfig); - private getLayerFrozen; - /** - * Compares model spaces of two dxf files. - * Returns DxfChange map, the key is incremental integer starts from 1. - * It is unique in the lifecycle of a DxfViewer. - */ - compare(onProgress?: (event: ProgressEvent) => void): Promise>; - private isDimensionBlock; - compareInsertOrDemensionEntities(a: DxfEntity, b: DxfEntity, parentHandle1?: string, parentHandle2?: string): { - type: DxfChangeType; - handle: string; - parentHandles?: string[] | undefined; - }[] | undefined; - private compareBlock; - private compareEntities; - private bIgnoreChildEntitiesOriginalType; - private entitiesEqual; - private getColor; - private getLineType; - private addModificationItem; - private baseEntitiesEqual; - private arcsEqual; - private linesEqual; - private polylinesEqual; - private textsEqual; - private solidsEqual; - private pointEntitiesEqual; - private splinesEqual; - private mtextsEqual; - private ellipsesEqual; - private attDefsEqual; - private attribsEqual; - private hatchesEqual; - private viewportsEqual; - private leadersEqual; - private mleadersEqual; - private ole2framesEqual; - private insertsEqual; - private dimensionsEqual; - private regionsEqual; - private vectorsEqual; - private pointsEqual; - private vertexEntityEqual; - private numbersEqual; - private numberEqual; - private vectorArraysEqual; - private verticesEqual; - private verticesArrayEqual; - private vertexEntitiesEqual; - private hatchEdgesEqual; - private hatchEdgeArraysEqual; - private hatchBoundaryPathsEqual; - private hatchBoundaryPathArraysEqual; - private mleaderLineEqual; - private mleaderLinesEqual; - private mleaderLeaderEqual; - private mleaderLeadersEqual; - private mleaderContextEqual; - private compareHexStrings; -} +import * as THREE from "three"; +import type { DxfEntity } from "./DxfLoader"; +import type { DxfCompareConfig } from "../../core/Configs"; +import { IDxf } from "../../core/dxf-parser"; +/** + * Dxf change type, which can be "Added", "Removed" or "Modified". + * + * Note that a "Modified" change can be represented as a "Removed" and an "Added" types. + * + * The system can display "Added" object in a specific color (green, etc.), + * and "Removed" in another color (red, etc.). + */ +export declare enum DxfChangeType { + Added = "Added", + Removed = "Removed", + Modified = "Modified", + NoChange = "NoChange" +} +/** + * Dxf compare detail changes. + * It supports: + * - color + * - lineType + * - constantWidth (polyline width) + */ +export declare type DxfDetailChanges = { + [propName: string]: { + /** + * The old value. + */ + old: unknown; + /** + * The new value. + */ + new: unknown; + }; +}; +/** + * Describes a dxf change + */ +export interface DxfChange { + /** + * An integer type id. It is unique in the lifecycle of a DxfViewer. + */ + id: number; + /** + * Change type, which can be "Added", "Removed", "Modified" or "NoChange". + */ + type: DxfChangeType; + /** + * AutoCAD entity handle + */ + handle: string; + /** + * @internal + */ + parentHandles?: string[]; + /** + * @internal + */ + box?: THREE.Box3; + detailChanges?: DxfDetailChanges; +} +/** + * Used to compare two drawings/dxfs. + * - Consider model space only. + * - Consider entity's geometry, position, scale, etc. + * - Ignore layer's visibility, freeze settings. + * - Ignore entity's properties like linetype, fill pattern, font, color, etc. + * - Ignore spatial filter (xclip) of block reference. + * - We compare entities with the same handle and type. e.g. + * - if line A from dxf1 has the same handle with arc A from dxf2, then line A is "Removed", arc A is "Added". + * - For color, it compares color setting rather than the actual color. E.g. + * - If a color setting is "ByLayer", but the layer's color is changed. We take this case as unchanged. + * - If a color setting is "ByLayer", the setting is changed to "ByBlock", while the layer and block actually have the same color. We take this case as changed. + * @internal + */ +export declare class DxfCompare { + static readonly ENTITY_COLOR_ADDED = 65280; + static readonly ENTITY_COLOR_REMOVED = 16711680; + static readonly ENTITY_COLOR_NO_CHANGE = 10066329; + static readonly ENTITY_COLOR_MARKUP = 16744231; + private dxf1; + private dxf2; + private changes; + private comparedBlocks; + private isComparingBlock; + private isComparingDimension; + private enableDetailComparision; + static readonly ignoreEntityTypes: string[]; + constructor(dxf1: IDxf, dxf2: IDxf, compareCfg?: DxfCompareConfig); + private getLayerFrozen; + /** + * Compares model spaces of two dxf files. + * Returns DxfChange map, the key is incremental integer starts from 1. + * It is unique in the lifecycle of a DxfViewer. + */ + compare(onProgress?: (event: ProgressEvent) => void): Promise>; + private isDimensionBlock; + compareInsertOrDemensionEntities(a: DxfEntity, b: DxfEntity, parentHandle1?: string, parentHandle2?: string): { + type: DxfChangeType; + handle: string; + parentHandles?: string[] | undefined; + }[] | undefined; + private compareBlock; + private compareEntities; + private bIgnoreChildEntitiesOriginalType; + private entitiesEqual; + private getColor; + private getLineType; + private addModificationItem; + private baseEntitiesEqual; + private arcsEqual; + private linesEqual; + private polylinesEqual; + private textsEqual; + private solidsEqual; + private pointEntitiesEqual; + private splinesEqual; + private mtextsEqual; + private ellipsesEqual; + private attDefsEqual; + private attribsEqual; + private hatchesEqual; + private viewportsEqual; + private leadersEqual; + private mleadersEqual; + private ole2framesEqual; + private insertsEqual; + private dimensionsEqual; + private regionsEqual; + private vectorsEqual; + private pointsEqual; + private vertexEntityEqual; + private numbersEqual; + private numberEqual; + private vectorArraysEqual; + private verticesEqual; + private verticesArrayEqual; + private vertexEntitiesEqual; + private hatchEdgesEqual; + private hatchEdgeArraysEqual; + private hatchBoundaryPathsEqual; + private hatchBoundaryPathArraysEqual; + private mleaderLineEqual; + private mleaderLinesEqual; + private mleaderLeaderEqual; + private mleaderLeadersEqual; + private mleaderContextEqual; + private compareHexStrings; +} diff --git a/demo/libs/types/core/dxf/DxfConstants.d.ts b/demo/libs/types/core/dxf/DxfConstants.d.ts index cdb1f5d..83eb6ed 100644 --- a/demo/libs/types/core/dxf/DxfConstants.d.ts +++ b/demo/libs/types/core/dxf/DxfConstants.d.ts @@ -1,15 +1,15 @@ -/** - * Constants used by dxf - */ -export declare const BYLAYER = "BYLAYER"; -export declare const BYBLOCK = "BYBLOCK"; -export declare enum DxfRenderOrder { - Mesh = -1, - MeshWithPattern = 0, - LineWithWidth = 1, - Line = 2, - LineWithPattern = 3, - Point = 4, - Text = 5 -} -export declare const NestCompareTypes: string[]; +/** + * Constants used by dxf + */ +export declare const BYLAYER = "BYLAYER"; +export declare const BYBLOCK = "BYBLOCK"; +export declare enum DxfRenderOrder { + Mesh = -1, + MeshWithPattern = 0, + LineWithWidth = 1, + Line = 2, + LineWithPattern = 3, + Point = 4, + Text = 5 +} +export declare const NestCompareTypes: string[]; diff --git a/demo/libs/types/core/dxf/DxfLoader.d.ts b/demo/libs/types/core/dxf/DxfLoader.d.ts index 041bfb9..2faad8d 100644 --- a/demo/libs/types/core/dxf/DxfLoader.d.ts +++ b/demo/libs/types/core/dxf/DxfLoader.d.ts @@ -1,509 +1,509 @@ -import * as THREE from "three"; -import { DxfChange } from "./DxfCompare"; -import { DxfObject } from "./DxfObject"; -import { Units } from "../../core/Units"; -import { IBlock, IDxf, IEntity, ILayer, ILayoutObject, IPoint, IViewport, IViewportEntity } from "../../core/dxf-parser"; -import { ImageFlags } from "../../core/dxf-parser/entities/image"; -import { IMLeaderContextData } from "../../core/dxf-parser/entities/mleader"; -import { ISpatialFilterObject } from "../../core/dxf-parser/objects/spatialfilter"; -import { FontManager } from "../../core/font"; -/** - * @internal - */ -export interface DxfData extends IDxf { - threejsObject: THREE.Object3D; - layersAndThreejsObjects: Record; - loadedEntityCount: number; - layoutViewportsMap: Record; -} -/** - * Dxf/dwg layer, which contains a number of objects in it. - * - * A layer has "name", "handle", "color", "visible" and many other properties. - * - * We can change a layer's visibility, color, etc. - */ -export declare type DxfLayer = ILayer; -/** - * Dxf entity, which can be an arc, circle, attach, line, insert, text, etc. - * @internal - */ -export interface DxfEntity extends IEntity { - threejsObject?: THREE.Object3D; - dimStyleName: string; - dimensionType?: number; - anchorPoint?: THREE.Vector3; - block?: string; - majorAxisEndPoint?: THREE.Vector2 | THREE.Vector3; - axisRatio?: number; - center?: THREE.Vector3; - startAngle?: number; - endAngle?: number; - style?: number; - text?: string; - height?: number; - width?: number; - position?: THREE.Vector3; - blockPosition?: IPoint; - rotation?: number; - directionVector?: THREE.Vector3; - attachmentPoint?: number; - drawingDirection?: number; - controlPoints?: IPoint[]; - degreeOfSplineCurve?: number; - knotValues?: number[]; - numberOfControlPoints: number; - vertices?: IPoint[]; - shape: boolean; - isPolyfaceMesh: boolean; - pathType: number; - direction: number; - hasHookline: boolean; - textWidth: number; - dimensionStyle: string; - arrowFlag: number; - arrowHeight: number; - arrowHeadScale: number; - arrowHeadBlockHandle: string; - contextData?: IMLeaderContextData; - enableDogLeg: boolean; - leaderLineType: number; - arrowHeadId: string; - arrowHeadSize: number; - radius?: number; - points?: THREE.Vector3[]; - startPoint?: THREE.Vector3; - endPoint?: THREE.Vector3; - textHeight: number; - halign?: number; - valign?: number; - mirrored?: number; - textStyle?: string; - lineSpaceFactor?: number; - name?: string; - xScale?: number; - yScale?: number; - zScale?: number; - elevation?: number; - extrusionDirectionX?: number; - extrusionDirectionY?: number; - extrusionDirectionZ?: number; - extrusionDirection?: { - z: number; - }; - entities?: IEntity[]; - tag?: string; - prompt?: string; - scale?: number; - preset: boolean; - invisible: boolean; - documentType?: string; - version?: number; - leftUpX?: number; - leftUpY?: number; - leftUpZ?: number; - rightDownX?: number; - rightDownY?: number; - rightDownZ?: number; - tileModeDescriptor?: number; - binaryData?: string; - lengthOfBinaryData?: number; - image: string; - psBBox?: THREE.Box3; - msToPsMatrix?: THREE.Matrix4; - viewportThreejsObject?: DxfObject; - associatedLeafObjectSet?: Set; - associatedSpatialFilter?: DxfSpatialFilter; - imageSize?: IPoint; - imageDefHandle?: string; - uPixel?: IPoint; - vPixel?: IPoint; - flags?: ImageFlags; -} -/** - * Dxf block. - * @internal - */ -export interface DxfBlock extends IBlock { - /** - * References to corresponding threejs object - */ - threejsObject?: DxfObject; -} -/** - * Dxf layout. - * @internal - */ -export interface DxfLayout extends ILayoutObject { - /** - * A collection of leaf objects directly associated with the layout, used for subsequent selection and measurement, etc. - * "Model" space doesn't need it for now. - */ - directAssociatedLeafObjectSet?: Set; -} -/** - * Spatial filter clip polyline. - * @internal - */ -export interface DxfSpatialFilterClipPolyline { - polyline: THREE.Vector3[]; - bConcave: boolean; - bReversed: boolean; -} -/** - * Spatial filter. - * @internal - */ -export interface DxfSpatialFilter extends ISpatialFilterObject { - /** - * References to corresponding threejs object - */ - threejsObject?: DxfObject; - localMatrix?: THREE.Matrix4; - clipPolylines: DxfSpatialFilterClipPolyline[]; -} -/** - * Dxf loader config. - * @internal - */ -export interface DxfLoaderConfig { - /** - * Ignores everything from paper space, aka, only load model space. - */ - ignorePaperSpace?: boolean; - /** - * Enables caching dxf data into indexeddb. - */ - enableLocalCache?: boolean; - /** - * Enables to merge objects. - */ - enableMerge?: boolean; - /** - * File encoding, can be used by dxf. Common encoding include "UTF-8", "gb2312", etc. - */ - encoding?: string; - /** - * Apply this color to everything in this model. - * Color value between 0 and 1. - */ - overrideColor?: number[]; -} -/** - * Dxf file loader. - * @internal - */ -export declare class DxfLoader extends THREE.Loader { - static readonly MODEL_LAYOUT_NAME = "Model"; - static readonly SNAP_GROUP_NAME = "InvisibleObjectGroupForOSnap"; - static readonly SHOW_SNAP_OBJECT = false; - private timer; - private ignorePaperSpace; - font?: FontManager; - private encoding; - private overrideColor?; - angBase: number | IPoint; - angDir: number | IPoint; - private header; - private pointsMaterials; - private lineBasicMaterials; - private lineShaderMaterials; - private meshBasicMaterials; - private meshTextureMaterials; - private hatchShaderMaterials; - private entityCount; - private curveCount; - private averageCurveSize; - private enableRenderOrder; - private enableLocalCache; - private enableReleaseData; - private enableMerge; - private enableRTC; - private enablePlineWidth; - private dxfDataId; - /** - * Use a context in order to easily know if it is compare mode, - * and, get compare result from it. - */ - private compareContext?; - private statsInfo; - private blockReferencesCache; - /** - * Adds this data member just in order to improve the performence of getLayoutName. - * Its key is blockrecord's handle, value is its layoutHandle. - */ - private blockRecordsCache; - /** - * Adds this data member just in order to improve the performence of getLayoutName. - * Its key is entity's handle, value is itself. - */ - private entitiesCache; - /** - * Adds this data member just in order to improve the performence of getBlockByHandle. - * Its key is block's ownerHandle, value is IBlock. - */ - private blocksCache; - /** - * Adds this in order to improve performance of findSpatialFilterByHandle. - * Key is dictionaryObject's ownerHandle(entity's handle), value is spatial filter's ownerHandle - */ - private dictionaryOwnerHandleAndSpatialFilterHandlesCache; - /** - * Adds this in order to improve performance of findSpatialFilterByHandle. - * Key is ISpatialFilterObject's ownerHandle, value is ISpatialFilterObject - */ - private spatialFiltersCache; - /** - * Adds this in order to improve performance of creating threejs object - * Key is entity's handle, value is threejs object. - */ - private entityThreejsCache; - private entityTypesAndTimes; - private nonSnapableTypes; - private layoutsSnapObjectsMap; - static cameraZoomUniform: { - value: number; - }; - /** - * Used for drawing dashed lines properly in a viewport. - */ - static viewportScaleUniform: { - value: number; - }; - static transformMatrixUniform: { - value: THREE.Matrix4; - }; - static resolutionUniform: { - value: THREE.Vector2; - }; - /** - * WebGL has a limited capability for FragmentUniforms. Thus, cannot have as many - * clippingPlanes as expected. - */ - static maxFragmentUniforms: number; - /** - * A global flag to abort loading any dxf files, it aborts dxf compare progress too. - * It doesn't support to abort one of the loader for now. - */ - static abortJobs: boolean; - /** - * DxfLoader constructor - */ - constructor(manager?: THREE.LoadingManager, cfg?: DxfLoaderConfig); - /** - * Sets font. - */ - setFont(font: FontManager): void; - /** - * Downloads dxf file content - */ - private download; - /** - * Loads a dxf file by given url. - * If dxfDataId is specified and local cache is enabled, it firstly tries to load from cache. - * @param url url of the dxf file - * @param dxfDataId target dxf data id, used to get dxf data from cache if local cache is enabled. - * @param onProgress on progress callback - * @returns DxfData - */ - load(url: string, dxfDataId?: string, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * Loads dxf asynchronously. It mainly contains 2 steps: - * 1. Parses file content - * 2. Generates/load threejs objects - * @param url url of the dxf file - * @param onProgress on progress callback - */ - loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * Parses dxf contents from given url. - */ - parse(url: string, onProgress?: (event: ProgressEvent) => void): Promise; - private parseHeader; - /** - * For some versions, the dxf file may be wired, missing header, objects, tables, etc. - * We'll try to fill in missing content for it. - */ - private tryFixDxfData; - /** - * Generates/load threejs objects according to the dxf data. - * @param data - * @param onProgress - * @returns the promise of DxfData - */ - loadEntities(data: IDxf, onProgress?: (event: ProgressEvent) => void): Promise; - private getFontFilesFromDxf; - /** - * Loads entities from two dxf data for comparing. - * It also generates DxfChange information for each change. - */ - loadEntitiesForCompare(data1: IDxf, data2: IDxf, changes: Record, bIgnoreSameEntity?: boolean, onProgress?: (event: ProgressEvent) => void): Promise; - private setObjectColorByChange; - /** - * Manually release some objects to save memory. - */ - private releaseCachedData; - /** - * Releases memory-costy elements of an entity - */ - private releaseEntity; - /** - * Releases memory-costy elements of dxf data - */ - private releaseDxfData; - /** - * We'll need to pass in the blockEntity when drawEntity is called from a block. - * So that, when an entity's color is ByLayer, and its layer is "0", it should use block's layer, - * rather than the layer of the entity itself! - * We don't know if there is other similar case in future, so pass in blockEntity here. - */ - drawEntity(entity: DxfEntity, data: IDxf, parentEntity?: IEntity, isParentChanged?: boolean): DxfObject | undefined; - private drawEllipse; - private drawMText; - private getMTextGroup; - private mtextContentAndFormattingToTextAndStyle; - private getTextLineNum; - private draw3DFace; - private drawSpline; - private drawXLine; - private drawRay; - private drawLine; - private drawLWPolyline; - private drawMLeader; - private drawLeader; - private drawDefaultLeadArrow; - private getBlockByHandle; - static updateMaterialUniforms(material: THREE.Material): void; - static transformAngleByOcsMatrix(ocsMatrix: THREE.Matrix4, angle: number): number; - static getArcAnglesByOcsMatrix(ocsMatrix: THREE.Matrix4, startAngle: number, endAngle: number): number[]; - private drawArc; - private addTriangleFacingCamera; - private drawSolid; - private getTextStyle; - private getDefaultDimensionStyle; - private getTextEncoding; - private getTextMesh; - private createTextMeshByText; - private transformTextMesh; - private drawText; - private drawAttDef; - private drawAttrib; - private drawPoint; - private drawDimension; - private drawImage; - private drawInsert; - private drawSpatialFilter; - private drawLayout; - private convertEdgeToPoints; - private drawHatch; - private drawOle2frame; - private static getOcsMatrix; - static getDcs2WcsMatrix(viewportEntity: IViewportEntity | IViewport, angDir: number): THREE.Matrix4; - private getViewportMsToPsMatrix; - private drawViewport; - private getColor; - private getLineType; - /** - * Gets entity's layer name. - * Note that, when entity is in layer "0", it tries to get its parent blockEntity's layer name. - */ - private getLayerName; - /** - * Sets object's material after being created - * TODO: hatch is handled separately, and may move its logic here. - */ - private setMaterial; - private setHatchMaterial; - private setRenderOrderByObjectType; - private getPointsMaterial; - private getLineBasicMaterial; - private getLineShaderMaterial; - private getMeshBasicMaterial; - /** - * Gets shader material for drawing a hatch with pattern - */ - private getHatchShaderMaterial; - /** - * Gets a proper division for curve by entity count, entity size and theta angle, etc. - * @param size may not be accurate, can be the radius, long size of bbox, etc. - */ - private getDivision; - /** - * Gets a proper interpolation for bspline. - * A bigger interpolation value generates smooth bspline, but with a bad performance, so we need to limit this value. - * @param pointCount control point count - * @param size may not be accurate, can be the long side of bbox, etc. - */ - getBSplineInterpolationsPerSplineSegment(pointCount: number, size: number): number; - /** - * Gets proper simplify tolerance. - * If tolerance is bigger, more points are simpified. - */ - /** - * Catches dxf data into indexedDb - */ - private setDxfDataToIndexedDb; - /** - * Gets dxf data into indexedDb - */ - private getDxfDataFromIndexedDb; - private buildContainHierarchyTree; - private buildHatchGeometry; - private findIntersectHole; - /** - * Checks if we should rebase points in case their values are big, and do rebase if necessary - */ - private checkAndRebasePolygonsOnRTC; - /** - * Adds "relativeToCenter" flag to indicate an object has been rebased - */ - private setRTCUserData; - private IsfilteredByPathTypeFlag; - /** - * Finds spatial filter by entity handle. - */ - private findSpatialFilterByHandle; - private entityHandlesWithRenderOrder; - /** - * Find out render order info from SortEntsTable. - */ - private initRenderOrderInfo; - private findMatchedHatchShaderMaterial; - private addViewport; - /** - * Gets the layout that entity belongs to. - * Entities resident in two places: - * 1) IDxf.entities - * 2) IDxf.blocks[].entities - */ - private getLayout; - private getLayerVisible; - private getLayerFrozen; - private cloneMaterialsForSpatialFilter; - private getLineTypeScales; - static getDxfUnits(unitValue: number): Units; - static computeLineDistance(line: THREE.Line): void; - static computeLineDistances(object: THREE.Object3D): void; - private static mergeDxfObjects; - /** - * Merges objects by layer and layout. - */ - static merge(dxfData: DxfData, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * Prints stats info for debugging - */ - private printStatsInfo; - private static statLayoutAndLayerObjects; - /** - * First marks the objects to be removed from bottom to top, - * and then removes empty objects from top to bottom - */ - private static removeEmptyObjectsFromRemovingMarkedObjects; - private static removeEmptyObjectsFromMark; - /** - * First marks the objects to be removed from bottom to top, - * and then removes empty objects from top to bottom - */ - private static removeEmptyObjectsFromRemovingMarkedObjects2; - private static removeEmptyObjectsFromMark2; -} +import * as THREE from "three"; +import { DxfChange } from "./DxfCompare"; +import { DxfObject } from "./DxfObject"; +import { Units } from "../../core/Units"; +import { IBlock, IDxf, IEntity, ILayer, ILayoutObject, IPoint, IViewport, IViewportEntity } from "../../core/dxf-parser"; +import { ImageFlags } from "../../core/dxf-parser/entities/image"; +import { IMLeaderContextData } from "../../core/dxf-parser/entities/mleader"; +import { ISpatialFilterObject } from "../../core/dxf-parser/objects/spatialfilter"; +import { FontManager } from "../../core/font"; +/** + * @internal + */ +export interface DxfData extends IDxf { + threejsObject: THREE.Object3D; + layersAndThreejsObjects: Record; + loadedEntityCount: number; + layoutViewportsMap: Record; +} +/** + * Dxf/dwg layer, which contains a number of objects in it. + * + * A layer has "name", "handle", "color", "visible" and many other properties. + * + * We can change a layer's visibility, color, etc. + */ +export declare type DxfLayer = ILayer; +/** + * Dxf entity, which can be an arc, circle, attach, line, insert, text, etc. + * @internal + */ +export interface DxfEntity extends IEntity { + threejsObject?: THREE.Object3D; + dimStyleName: string; + dimensionType?: number; + anchorPoint?: THREE.Vector3; + block?: string; + majorAxisEndPoint?: THREE.Vector2 | THREE.Vector3; + axisRatio?: number; + center?: THREE.Vector3; + startAngle?: number; + endAngle?: number; + style?: number; + text?: string; + height?: number; + width?: number; + position?: THREE.Vector3; + blockPosition?: IPoint; + rotation?: number; + directionVector?: THREE.Vector3; + attachmentPoint?: number; + drawingDirection?: number; + controlPoints?: IPoint[]; + degreeOfSplineCurve?: number; + knotValues?: number[]; + numberOfControlPoints: number; + vertices?: IPoint[]; + shape: boolean; + isPolyfaceMesh: boolean; + pathType: number; + direction: number; + hasHookline: boolean; + textWidth: number; + dimensionStyle: string; + arrowFlag: number; + arrowHeight: number; + arrowHeadScale: number; + arrowHeadBlockHandle: string; + contextData?: IMLeaderContextData; + enableDogLeg: boolean; + leaderLineType: number; + arrowHeadId: string; + arrowHeadSize: number; + radius?: number; + points?: THREE.Vector3[]; + startPoint?: THREE.Vector3; + endPoint?: THREE.Vector3; + textHeight: number; + halign?: number; + valign?: number; + mirrored?: number; + textStyle?: string; + lineSpaceFactor?: number; + name?: string; + xScale?: number; + yScale?: number; + zScale?: number; + elevation?: number; + extrusionDirectionX?: number; + extrusionDirectionY?: number; + extrusionDirectionZ?: number; + extrusionDirection?: { + z: number; + }; + entities?: IEntity[]; + tag?: string; + prompt?: string; + scale?: number; + preset: boolean; + invisible: boolean; + documentType?: string; + version?: number; + leftUpX?: number; + leftUpY?: number; + leftUpZ?: number; + rightDownX?: number; + rightDownY?: number; + rightDownZ?: number; + tileModeDescriptor?: number; + binaryData?: string; + lengthOfBinaryData?: number; + image: string; + psBBox?: THREE.Box3; + msToPsMatrix?: THREE.Matrix4; + viewportThreejsObject?: DxfObject; + associatedLeafObjectSet?: Set; + associatedSpatialFilter?: DxfSpatialFilter; + imageSize?: IPoint; + imageDefHandle?: string; + uPixel?: IPoint; + vPixel?: IPoint; + flags?: ImageFlags; +} +/** + * Dxf block. + * @internal + */ +export interface DxfBlock extends IBlock { + /** + * References to corresponding threejs object + */ + threejsObject?: DxfObject; +} +/** + * Dxf layout. + * @internal + */ +export interface DxfLayout extends ILayoutObject { + /** + * A collection of leaf objects directly associated with the layout, used for subsequent selection and measurement, etc. + * "Model" space doesn't need it for now. + */ + directAssociatedLeafObjectSet?: Set; +} +/** + * Spatial filter clip polyline. + * @internal + */ +export interface DxfSpatialFilterClipPolyline { + polyline: THREE.Vector3[]; + bConcave: boolean; + bReversed: boolean; +} +/** + * Spatial filter. + * @internal + */ +export interface DxfSpatialFilter extends ISpatialFilterObject { + /** + * References to corresponding threejs object + */ + threejsObject?: DxfObject; + localMatrix?: THREE.Matrix4; + clipPolylines: DxfSpatialFilterClipPolyline[]; +} +/** + * Dxf loader config. + * @internal + */ +export interface DxfLoaderConfig { + /** + * Ignores everything from paper space, aka, only load model space. + */ + ignorePaperSpace?: boolean; + /** + * Enables caching dxf data into indexeddb. + */ + enableLocalCache?: boolean; + /** + * Enables to merge objects. + */ + enableMerge?: boolean; + /** + * File encoding, can be used by dxf. Common encoding include "UTF-8", "gb2312", etc. + */ + encoding?: string; + /** + * Apply this color to everything in this model. + * Color value between 0 and 1. + */ + overrideColor?: number[]; +} +/** + * Dxf file loader. + * @internal + */ +export declare class DxfLoader extends THREE.Loader { + static readonly MODEL_LAYOUT_NAME = "Model"; + static readonly SNAP_GROUP_NAME = "InvisibleObjectGroupForOSnap"; + static readonly SHOW_SNAP_OBJECT = false; + private timer; + private ignorePaperSpace; + font?: FontManager; + private encoding; + private overrideColor?; + angBase: number | IPoint; + angDir: number | IPoint; + private header; + private pointsMaterials; + private lineBasicMaterials; + private lineShaderMaterials; + private meshBasicMaterials; + private meshTextureMaterials; + private hatchShaderMaterials; + private entityCount; + private curveCount; + private averageCurveSize; + private enableRenderOrder; + private enableLocalCache; + private enableReleaseData; + private enableMerge; + private enableRTC; + private enablePlineWidth; + private dxfDataId; + /** + * Use a context in order to easily know if it is compare mode, + * and, get compare result from it. + */ + private compareContext?; + private statsInfo; + private blockReferencesCache; + /** + * Adds this data member just in order to improve the performence of getLayoutName. + * Its key is blockrecord's handle, value is its layoutHandle. + */ + private blockRecordsCache; + /** + * Adds this data member just in order to improve the performence of getLayoutName. + * Its key is entity's handle, value is itself. + */ + private entitiesCache; + /** + * Adds this data member just in order to improve the performence of getBlockByHandle. + * Its key is block's ownerHandle, value is IBlock. + */ + private blocksCache; + /** + * Adds this in order to improve performance of findSpatialFilterByHandle. + * Key is dictionaryObject's ownerHandle(entity's handle), value is spatial filter's ownerHandle + */ + private dictionaryOwnerHandleAndSpatialFilterHandlesCache; + /** + * Adds this in order to improve performance of findSpatialFilterByHandle. + * Key is ISpatialFilterObject's ownerHandle, value is ISpatialFilterObject + */ + private spatialFiltersCache; + /** + * Adds this in order to improve performance of creating threejs object + * Key is entity's handle, value is threejs object. + */ + private entityThreejsCache; + private entityTypesAndTimes; + private nonSnapableTypes; + private layoutsSnapObjectsMap; + static cameraZoomUniform: { + value: number; + }; + /** + * Used for drawing dashed lines properly in a viewport. + */ + static viewportScaleUniform: { + value: number; + }; + static transformMatrixUniform: { + value: THREE.Matrix4; + }; + static resolutionUniform: { + value: THREE.Vector2; + }; + /** + * WebGL has a limited capability for FragmentUniforms. Thus, cannot have as many + * clippingPlanes as expected. + */ + static maxFragmentUniforms: number; + /** + * A global flag to abort loading any dxf files, it aborts dxf compare progress too. + * It doesn't support to abort one of the loader for now. + */ + static abortJobs: boolean; + /** + * DxfLoader constructor + */ + constructor(manager?: THREE.LoadingManager, cfg?: DxfLoaderConfig); + /** + * Sets font. + */ + setFont(font: FontManager): void; + /** + * Downloads dxf file content + */ + private download; + /** + * Loads a dxf file by given url. + * If dxfDataId is specified and local cache is enabled, it firstly tries to load from cache. + * @param url url of the dxf file + * @param dxfDataId target dxf data id, used to get dxf data from cache if local cache is enabled. + * @param onProgress on progress callback + * @returns DxfData + */ + load(url: string, dxfDataId?: string, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * Loads dxf asynchronously. It mainly contains 2 steps: + * 1. Parses file content + * 2. Generates/load threejs objects + * @param url url of the dxf file + * @param onProgress on progress callback + */ + loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * Parses dxf contents from given url. + */ + parse(url: string, onProgress?: (event: ProgressEvent) => void): Promise; + private parseHeader; + /** + * For some versions, the dxf file may be wired, missing header, objects, tables, etc. + * We'll try to fill in missing content for it. + */ + private tryFixDxfData; + /** + * Generates/load threejs objects according to the dxf data. + * @param data + * @param onProgress + * @returns the promise of DxfData + */ + loadEntities(data: IDxf, onProgress?: (event: ProgressEvent) => void): Promise; + private getFontFilesFromDxf; + /** + * Loads entities from two dxf data for comparing. + * It also generates DxfChange information for each change. + */ + loadEntitiesForCompare(data1: IDxf, data2: IDxf, changes: Record, bIgnoreSameEntity?: boolean, onProgress?: (event: ProgressEvent) => void): Promise; + private setObjectColorByChange; + /** + * Manually release some objects to save memory. + */ + private releaseCachedData; + /** + * Releases memory-costy elements of an entity + */ + private releaseEntity; + /** + * Releases memory-costy elements of dxf data + */ + private releaseDxfData; + /** + * We'll need to pass in the blockEntity when drawEntity is called from a block. + * So that, when an entity's color is ByLayer, and its layer is "0", it should use block's layer, + * rather than the layer of the entity itself! + * We don't know if there is other similar case in future, so pass in blockEntity here. + */ + drawEntity(entity: DxfEntity, data: IDxf, parentEntity?: IEntity, isParentChanged?: boolean): DxfObject | undefined; + private drawEllipse; + private drawMText; + private getMTextGroup; + private mtextContentAndFormattingToTextAndStyle; + private getTextLineNum; + private draw3DFace; + private drawSpline; + private drawXLine; + private drawRay; + private drawLine; + private drawLWPolyline; + private drawMLeader; + private drawLeader; + private drawDefaultLeadArrow; + private getBlockByHandle; + static updateMaterialUniforms(material: THREE.Material): void; + static transformAngleByOcsMatrix(ocsMatrix: THREE.Matrix4, angle: number): number; + static getArcAnglesByOcsMatrix(ocsMatrix: THREE.Matrix4, startAngle: number, endAngle: number): number[]; + private drawArc; + private addTriangleFacingCamera; + private drawSolid; + private getTextStyle; + private getDefaultDimensionStyle; + private getTextEncoding; + private getTextMesh; + private createTextMeshByText; + private transformTextMesh; + private drawText; + private drawAttDef; + private drawAttrib; + private drawPoint; + private drawDimension; + private drawImage; + private drawInsert; + private drawSpatialFilter; + private drawLayout; + private convertEdgeToPoints; + private drawHatch; + private drawOle2frame; + private static getOcsMatrix; + static getDcs2WcsMatrix(viewportEntity: IViewportEntity | IViewport, angDir: number): THREE.Matrix4; + private getViewportMsToPsMatrix; + private drawViewport; + private getColor; + private getLineType; + /** + * Gets entity's layer name. + * Note that, when entity is in layer "0", it tries to get its parent blockEntity's layer name. + */ + private getLayerName; + /** + * Sets object's material after being created + * TODO: hatch is handled separately, and may move its logic here. + */ + private setMaterial; + private setHatchMaterial; + private setRenderOrderByObjectType; + private getPointsMaterial; + private getLineBasicMaterial; + private getLineShaderMaterial; + private getMeshBasicMaterial; + /** + * Gets shader material for drawing a hatch with pattern + */ + private getHatchShaderMaterial; + /** + * Gets a proper division for curve by entity count, entity size and theta angle, etc. + * @param size may not be accurate, can be the radius, long size of bbox, etc. + */ + private getDivision; + /** + * Gets a proper interpolation for bspline. + * A bigger interpolation value generates smooth bspline, but with a bad performance, so we need to limit this value. + * @param pointCount control point count + * @param size may not be accurate, can be the long side of bbox, etc. + */ + getBSplineInterpolationsPerSplineSegment(pointCount: number, size: number): number; + /** + * Gets proper simplify tolerance. + * If tolerance is bigger, more points are simpified. + */ + /** + * Catches dxf data into indexedDb + */ + private setDxfDataToIndexedDb; + /** + * Gets dxf data into indexedDb + */ + private getDxfDataFromIndexedDb; + private buildContainHierarchyTree; + private buildHatchGeometry; + private findIntersectHole; + /** + * Checks if we should rebase points in case their values are big, and do rebase if necessary + */ + private checkAndRebasePolygonsOnRTC; + /** + * Adds "relativeToCenter" flag to indicate an object has been rebased + */ + private setRTCUserData; + private IsfilteredByPathTypeFlag; + /** + * Finds spatial filter by entity handle. + */ + private findSpatialFilterByHandle; + private entityHandlesWithRenderOrder; + /** + * Find out render order info from SortEntsTable. + */ + private initRenderOrderInfo; + private findMatchedHatchShaderMaterial; + private addViewport; + /** + * Gets the layout that entity belongs to. + * Entities resident in two places: + * 1) IDxf.entities + * 2) IDxf.blocks[].entities + */ + private getLayout; + private getLayerVisible; + private getLayerFrozen; + private cloneMaterialsForSpatialFilter; + private getLineTypeScales; + static getDxfUnits(unitValue: number): Units; + static computeLineDistance(line: THREE.Line): void; + static computeLineDistances(object: THREE.Object3D): void; + private static mergeDxfObjects; + /** + * Merges objects by layer and layout. + */ + static merge(dxfData: DxfData, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * Prints stats info for debugging + */ + private printStatsInfo; + private static statLayoutAndLayerObjects; + /** + * First marks the objects to be removed from bottom to top, + * and then removes empty objects from top to bottom + */ + private static removeEmptyObjectsFromRemovingMarkedObjects; + private static removeEmptyObjectsFromMark; + /** + * First marks the objects to be removed from bottom to top, + * and then removes empty objects from top to bottom + */ + private static removeEmptyObjectsFromRemovingMarkedObjects2; + private static removeEmptyObjectsFromMark2; +} diff --git a/demo/libs/types/core/dxf/DxfObject.d.ts b/demo/libs/types/core/dxf/DxfObject.d.ts index c5c05b1..f078a75 100644 --- a/demo/libs/types/core/dxf/DxfObject.d.ts +++ b/demo/libs/types/core/dxf/DxfObject.d.ts @@ -1,32 +1,32 @@ -import { Box3, BufferGeometry, Object3D, Layers, Material, Matrix4 } from "three"; -export declare enum ObjectType { - Object = 0, - Point = 1, - Line = 2, - LineSegment = 3, - Mesh = 4 -} -export declare type CallBack = (object: DxfObject) => void; -export declare class DxfObject { - name: string; - type: ObjectType; - matrix: Matrix4; - parent?: DxfObject; - children: DxfObject[]; - layers: Layers; - renderOrder: number; - userData: any; - material?: Material; - geometry?: BufferGeometry; - matrixWorld?: Matrix4; - constructor(type?: ObjectType); - add(object: DxfObject, ...args: DxfObject[]): this; - remove(object: DxfObject, ...args: DxfObject[]): this; - removeFromParent(): this; - clear(): this; - traverse(callback: CallBack): void; - clone(recursive?: boolean): DxfObject; - copy(source: DxfObject, recursive?: boolean): this; - convertToThreejsObject(recursive?: boolean): Object3D | undefined; - static getBox(object: DxfObject, box: THREE.Box3, parentMatrix?: Matrix4): Box3; -} +import { Box3, BufferGeometry, Object3D, Layers, Material, Matrix4 } from "three"; +export declare enum ObjectType { + Object = 0, + Point = 1, + Line = 2, + LineSegment = 3, + Mesh = 4 +} +export declare type CallBack = (object: DxfObject) => void; +export declare class DxfObject { + name: string; + type: ObjectType; + matrix: Matrix4; + parent?: DxfObject; + children: DxfObject[]; + layers: Layers; + renderOrder: number; + userData: any; + material?: Material; + geometry?: BufferGeometry; + matrixWorld?: Matrix4; + constructor(type?: ObjectType); + add(object: DxfObject, ...args: DxfObject[]): this; + remove(object: DxfObject, ...args: DxfObject[]): this; + removeFromParent(): this; + clear(): this; + traverse(callback: CallBack): void; + clone(recursive?: boolean): DxfObject; + copy(source: DxfObject, recursive?: boolean): this; + convertToThreejsObject(recursive?: boolean): Object3D | undefined; + static getBox(object: DxfObject, box: THREE.Box3, parentMatrix?: Matrix4): Box3; +} diff --git a/demo/libs/types/core/dxf/DxfUtils.d.ts b/demo/libs/types/core/dxf/DxfUtils.d.ts index 8b57287..c9fd37f 100644 --- a/demo/libs/types/core/dxf/DxfUtils.d.ts +++ b/demo/libs/types/core/dxf/DxfUtils.d.ts @@ -1,79 +1,79 @@ -import { DxfObject } from "../../core/dxf/DxfObject"; -/** - * MergeHelper class is used to merge child objects for a given object - * @internal - */ -export declare class DxfUtils { - static mergeInfo: { - removedObjects: number; - mergedMeshes: number; - mergedLines: number; - mergedPoints: number; - mergedUnknownTypeObjects: number; - elapsedTime: number; - }; - static resetMergeInfo(): void; - /** - * Merges child objects for given object. - * it tries to merge objects in the same level and with the same parent; - * @param saveBatchInfo caller can set saveBatchInfo to true, so that s/he can - * get the object's original data before merged. - * While this takes some extra space, so, we'd like to add a flag here. - */ - static merge(object: DxfObject, saveBatchInfo?: boolean): void; - /** - * Merges child objects of given object. - * If objects' material are the same, they can be merged. - */ - private static mergeInner; - /** - * @param object parent object or THREE.Object3D[] - * @param i index of for object.children[] - * @param k index of for object.children[] - * @param dict to store merge-able object - * @param nonMergeIndexes used in order to improve performance - */ - private static tryHandleMergeableObjects; - /** - * TODO: Filters XC etc. - * there are cases where entities with xc and without xc are merged together - */ - private static isFilteredByOtherFactors; - /** - * Merges all objects of given object, just leaf children. - * If objects' material are the same, they can be merged. - * Better to call mergeInner first then deepMerge for a better performance. - * return \{ "added": THREE.Object3D[], "removed": THREE.Object3D[] \} - */ - static deepMerge(objects: DxfObject[], levelObject?: DxfObject | undefined, bRemovedAndAddedAfterMerge?: boolean, bRemoveEmptyObjectsAfterMerge?: boolean, saveBatchInfo?: boolean): { - added: DxfObject[]; - removed: DxfObject[]; - }; - /** - * since we'll move geometry to another merged mesh under a group, below is the structure: - - root object - - merged objects group - - merged object 1 - * need to consider a geometry's matrix for each level of ancestor - */ - private static applyMatrix; - /** - * Merges geometries for lines - */ - /** - * Removes a number from array - */ - private static removeFromArray; - /** - * Checks if two geometries are mergable. - * It requires they have the same type and the same attributes. - */ - /** - * Checks if two objects are mergable. - * It requires - * - They are with the same masks. - * - Their userData.layerName must be the same if there is. This is useful for Dxf. - * - They have the same type or the same draw type( Mesh or Line or Point). - */ - private static areObjectsMergeable; -} +import { DxfObject } from "../../core/dxf/DxfObject"; +/** + * MergeHelper class is used to merge child objects for a given object + * @internal + */ +export declare class DxfUtils { + static mergeInfo: { + removedObjects: number; + mergedMeshes: number; + mergedLines: number; + mergedPoints: number; + mergedUnknownTypeObjects: number; + elapsedTime: number; + }; + static resetMergeInfo(): void; + /** + * Merges child objects for given object. + * it tries to merge objects in the same level and with the same parent; + * @param saveBatchInfo caller can set saveBatchInfo to true, so that s/he can + * get the object's original data before merged. + * While this takes some extra space, so, we'd like to add a flag here. + */ + static merge(object: DxfObject, saveBatchInfo?: boolean): void; + /** + * Merges child objects of given object. + * If objects' material are the same, they can be merged. + */ + private static mergeInner; + /** + * @param object parent object or THREE.Object3D[] + * @param i index of for object.children[] + * @param k index of for object.children[] + * @param dict to store merge-able object + * @param nonMergeIndexes used in order to improve performance + */ + private static tryHandleMergeableObjects; + /** + * TODO: Filters XC etc. + * there are cases where entities with xc and without xc are merged together + */ + private static isFilteredByOtherFactors; + /** + * Merges all objects of given object, just leaf children. + * If objects' material are the same, they can be merged. + * Better to call mergeInner first then deepMerge for a better performance. + * return \{ "added": THREE.Object3D[], "removed": THREE.Object3D[] \} + */ + static deepMerge(objects: DxfObject[], levelObject?: DxfObject | undefined, bRemovedAndAddedAfterMerge?: boolean, bRemoveEmptyObjectsAfterMerge?: boolean, saveBatchInfo?: boolean): { + added: DxfObject[]; + removed: DxfObject[]; + }; + /** + * since we'll move geometry to another merged mesh under a group, below is the structure: + - root object + - merged objects group + - merged object 1 + * need to consider a geometry's matrix for each level of ancestor + */ + private static applyMatrix; + /** + * Merges geometries for lines + */ + /** + * Removes a number from array + */ + private static removeFromArray; + /** + * Checks if two geometries are mergable. + * It requires they have the same type and the same attributes. + */ + /** + * Checks if two objects are mergable. + * It requires + * - They are with the same masks. + * - Their userData.layerName must be the same if there is. This is useful for Dxf. + * - They have the same type or the same draw type( Mesh or Line or Point). + */ + private static areObjectsMergeable; +} diff --git a/demo/libs/types/core/dxf/HatchPatternShaders.d.ts b/demo/libs/types/core/dxf/HatchPatternShaders.d.ts index 4b76254..632eb6d 100644 --- a/demo/libs/types/core/dxf/HatchPatternShaders.d.ts +++ b/demo/libs/types/core/dxf/HatchPatternShaders.d.ts @@ -1,12 +1,12 @@ -import * as THREE from "three"; -export interface PatternLine { - origin: THREE.Vector2; - delta: THREE.Vector2; - angle: number; - pattern: number[]; - patternSum: number[]; - patternLength: number; -} -export declare function createHatchPatternShaderMaterial(patternLines: PatternLine[], patternAngle: number, cameraZoomUniform: { - value: number; -}, color: THREE.Color): THREE.Material; +import * as THREE from "three"; +export interface PatternLine { + origin: THREE.Vector2; + delta: THREE.Vector2; + angle: number; + pattern: number[]; + patternSum: number[]; + patternLength: number; +} +export declare function createHatchPatternShaderMaterial(patternLines: PatternLine[], patternAngle: number, cameraZoomUniform: { + value: number; +}, color: THREE.Color): THREE.Material; diff --git a/demo/libs/types/core/dxf/LinePatternShaders.d.ts b/demo/libs/types/core/dxf/LinePatternShaders.d.ts index 041e674..d1c9f36 100644 --- a/demo/libs/types/core/dxf/LinePatternShaders.d.ts +++ b/demo/libs/types/core/dxf/LinePatternShaders.d.ts @@ -1,12 +1,12 @@ -import * as THREE from "three"; -export declare class LinePatternShaders { - /** - * Creates line shader by given pattern. - * Note: remember to call line.computeLineDistances() in order to make it work! - */ - static createLineShaderMaterial(pattern: number[], color: number, scale: number, viewportScaleUniform: { - value: number; - }, cameraZoomUniform: { - value: number; - }): THREE.Material; -} +import * as THREE from "three"; +export declare class LinePatternShaders { + /** + * Creates line shader by given pattern. + * Note: remember to call line.computeLineDistances() in order to make it work! + */ + static createLineShaderMaterial(pattern: number[], color: number, scale: number, viewportScaleUniform: { + value: number; + }, cameraZoomUniform: { + value: number; + }): THREE.Material; +} diff --git a/demo/libs/types/core/dxf/bspline.d.ts b/demo/libs/types/core/dxf/bspline.d.ts index 2408902..5a7669b 100644 --- a/demo/libs/types/core/dxf/bspline.d.ts +++ b/demo/libs/types/core/dxf/bspline.d.ts @@ -1,8 +1,8 @@ -/** - * Copied and ported to code standard as the b-spline library is not maintained any longer. - * Source: - * https://github.com/thibauts/b-spline - * Copyright (c) 2015 Thibaut Séguy - */ -declare const _default: (t: number, degree: number, points: number[][], knots: number[], weights?: number[]) => number[]; -export default _default; +/** + * Copied and ported to code standard as the b-spline library is not maintained any longer. + * Source: + * https://github.com/thibauts/b-spline + * Copyright (c) 2015 Thibaut Séguy + */ +declare const _default: (t: number, degree: number, points: number[][], knots: number[], weights?: number[]) => number[]; +export default _default; diff --git a/demo/libs/types/core/dxf/dxfom-mtext.d.ts b/demo/libs/types/core/dxf/dxfom-mtext.d.ts index 8f0c0dd..7219eab 100644 --- a/demo/libs/types/core/dxf/dxfom-mtext.d.ts +++ b/demo/libs/types/core/dxf/dxfom-mtext.d.ts @@ -1,46 +1,46 @@ -/** - * @internal - */ -export declare type DxfMTextContentElement = DxfMTextContentElement[] | string | { - /** font family */ - f?: string; - /** bold */ - b?: 0 | 1; - /** italic */ - i?: 0 | 1; - /** code page */ - c?: number; - /** pitch */ - p?: number; - /** angle in degrees */ - Q?: number; - /** character height (with unit) */ - H?: [number, string]; - /** character width (with unit) */ - W?: [number, string]; - /** stacking */ - S?: [string, "^" | "/" | "#", string]; - /** alignment (0: bottom, 1: center, 2: top) */ - A?: 0 | 1 | 2; - /** color index */ - C?: number; - /** character spacing */ - T?: number; - /** underscore */ - L?: 0 | 1; - /** overscore */ - O?: 0 | 1; - /** strike through */ - K?: 0 | 1; -}; -/** - * @internal - * [{f:""}, - * {W:[,]}, - * {C:number}, - * ... - * ""] // The last one must be the test string - */ -export declare const parseDxfMTextContent: (s: string, options?: { - readonly encoding?: string | TextDecoder | undefined; -} | undefined) => DxfMTextContentElement[]; +/** + * @internal + */ +export declare type DxfMTextContentElement = DxfMTextContentElement[] | string | { + /** font family */ + f?: string; + /** bold */ + b?: 0 | 1; + /** italic */ + i?: 0 | 1; + /** code page */ + c?: number; + /** pitch */ + p?: number; + /** angle in degrees */ + Q?: number; + /** character height (with unit) */ + H?: [number, string]; + /** character width (with unit) */ + W?: [number, string]; + /** stacking */ + S?: [string, "^" | "/" | "#", string]; + /** alignment (0: bottom, 1: center, 2: top) */ + A?: 0 | 1 | 2; + /** color index */ + C?: number; + /** character spacing */ + T?: number; + /** underscore */ + L?: 0 | 1; + /** overscore */ + O?: 0 | 1; + /** strike through */ + K?: 0 | 1; +}; +/** + * @internal + * [{f:""}, + * {W:[,]}, + * {C:number}, + * ... + * ""] // The last one must be the test string + */ +export declare const parseDxfMTextContent: (s: string, options?: { + readonly encoding?: string | TextDecoder | undefined; +} | undefined) => DxfMTextContentElement[]; diff --git a/demo/libs/types/core/dxf/dxfom-text.d.ts b/demo/libs/types/core/dxf/dxfom-text.d.ts index 417033f..51b7ec9 100644 --- a/demo/libs/types/core/dxf/dxfom-text.d.ts +++ b/demo/libs/types/core/dxf/dxfom-text.d.ts @@ -1,16 +1,16 @@ -export interface DxfTextContentElement { - /** text content */ - text: string; - /** strike-through */ - k?: 1; - /** overscore */ - o?: 1; - /** underscore */ - u?: 1; -} -export declare const decodeDxfTextCharacterCodes: (text: string, mbcsEncoding?: string | TextDecoder) => string; -export declare const decodeDxfTextUnicodeCodePoints: (text: string) => string; -export declare const decodeDxfTextMbcsCharacterCodes: (text: string, encoding: string | TextDecoder) => string; -export declare const parseDxfTextContent: (text: string, options?: { - readonly encoding?: string | TextDecoder; -}) => DxfTextContentElement[]; +export interface DxfTextContentElement { + /** text content */ + text: string; + /** strike-through */ + k?: 1; + /** overscore */ + o?: 1; + /** underscore */ + u?: 1; +} +export declare const decodeDxfTextCharacterCodes: (text: string, mbcsEncoding?: string | TextDecoder) => string; +export declare const decodeDxfTextUnicodeCodePoints: (text: string) => string; +export declare const decodeDxfTextMbcsCharacterCodes: (text: string, encoding: string | TextDecoder) => string; +export declare const parseDxfTextContent: (text: string, options?: { + readonly encoding?: string | TextDecoder; +}) => DxfTextContentElement[]; diff --git a/demo/libs/types/core/dxf/index.d.ts b/demo/libs/types/core/dxf/index.d.ts index cea30a2..7420914 100644 --- a/demo/libs/types/core/dxf/index.d.ts +++ b/demo/libs/types/core/dxf/index.d.ts @@ -1,10 +1,10 @@ -export * from "./DxfCompare"; -export * from "./DxfLoader"; -export * as bspline from "./bspline"; -export * from "./dxfom-mtext"; -export * as round10 from "./round10"; -export * from "./DxfConstants"; -export * from "./DxfUtils"; -export * from "./HatchPatternShaders"; -export * from "./LinePatternShaders"; -export * from "./dxfom-text"; +export * from "./DxfCompare"; +export * from "./DxfLoader"; +export * as bspline from "./bspline"; +export * from "./dxfom-mtext"; +export * as round10 from "./round10"; +export * from "./DxfConstants"; +export * from "./DxfUtils"; +export * from "./HatchPatternShaders"; +export * from "./LinePatternShaders"; +export * from "./dxfom-text"; diff --git a/demo/libs/types/core/dxf/round10.d.ts b/demo/libs/types/core/dxf/round10.d.ts index 0bb930c..80fbcbb 100644 --- a/demo/libs/types/core/dxf/round10.d.ts +++ b/demo/libs/types/core/dxf/round10.d.ts @@ -1,2 +1,2 @@ -declare const _default: (value: any, exp: any) => number; -export default _default; +declare const _default: (value: any, exp: any) => number; +export default _default; diff --git a/demo/libs/types/core/font/BaseFont.d.ts b/demo/libs/types/core/font/BaseFont.d.ts index e92f9ac..dbc23cc 100644 --- a/demo/libs/types/core/font/BaseFont.d.ts +++ b/demo/libs/types/core/font/BaseFont.d.ts @@ -1,40 +1,40 @@ -import { Font } from "three/examples/jsm/loaders/FontLoader.js"; -import { FontDataTableRecord } from "../indexeddb"; -import { Orientation } from "./shx"; -export declare abstract class BaseFont extends Font { - info: string; - orientation: Orientation; - baseUp: number; - baseDown: number; - fileHeader: string; - fileVersion: string; - fileName: string; - data: any; - order: number; - unsupportedChars: Record; - constructor(fileName: string, fileData: any); - abstract getCharShape(char: string, size: number): THREE.Shape | undefined; - abstract getNotFoundTextShape(size: number): THREE.Shape | undefined; - /** - * Just for log usage - */ - protected addUnsupportedChar(char: string): void; - protected getFontFile(): { - order: number; - data: any; - info: string; - orientation: Orientation; - baseUp: number; - baseDown: number; - fileName: string; - fileHeader: string; - fileVersion: string; - }; - setFontFile(data: FontDataTableRecord): void; - /** - * Catches dxf data into indexedDb - */ - setFontDataToIndexedDb(): Promise; - getFontDataByIndexedDb(): Promise; - releaseFontData(): void; -} +import { Font } from "three/examples/jsm/loaders/FontLoader.js"; +import { FontDataTableRecord } from "../indexeddb"; +import { Orientation } from "./shx"; +export declare abstract class BaseFont extends Font { + info: string; + orientation: Orientation; + baseUp: number; + baseDown: number; + fileHeader: string; + fileVersion: string; + fileName: string; + data: any; + order: number; + unsupportedChars: Record; + constructor(fileName: string, fileData: any); + abstract getCharShape(char: string, size: number): THREE.Shape | undefined; + abstract getNotFoundTextShape(size: number): THREE.Shape | undefined; + /** + * Just for log usage + */ + protected addUnsupportedChar(char: string): void; + protected getFontFile(): { + order: number; + data: any; + info: string; + orientation: Orientation; + baseUp: number; + baseDown: number; + fileName: string; + fileHeader: string; + fileVersion: string; + }; + setFontFile(data: FontDataTableRecord): void; + /** + * Catches dxf data into indexedDb + */ + setFontDataToIndexedDb(): Promise; + getFontDataByIndexedDb(): Promise; + releaseFontData(): void; +} diff --git a/demo/libs/types/core/font/FontManager.d.ts b/demo/libs/types/core/font/FontManager.d.ts index b619957..c23cad0 100644 --- a/demo/libs/types/core/font/FontManager.d.ts +++ b/demo/libs/types/core/font/FontManager.d.ts @@ -1,54 +1,54 @@ -import * as THREE from "three"; -import { TextGeometry } from "three/examples/jsm/geometries/TextGeometry.js"; -import { BaseFont } from "./BaseFont"; -export declare class FontManager { - private loader; - protected fontMap: Map; - protected fileNames?: string[]; - unsupportedChars: Record; - missingFonts: Record; - static enableFontCache: boolean; - constructor(); - /** - * - * @param urls The order represents the priority - * @returns - * @description The best fonts order is: Load linear fonts first followed by ttf fonts, font types load Western fonts first in loaded chinese fonts. - * @description Microsoft Yahei is the most worthy choice of Chinese font on the Win platform, but it is not the default viewer and needs to be set; Sans-serif fonts such as Arial and Tahoma are the main fonts for Western fonts. - * @description At present, the latest font launched by Apple and San Francisco for Apple, the display effect is also the most elegant, but only the latest system can support, while blackface - Jane and Helvetica can get more system version support, the display effect is also similar, can be accepted. - * @example font-family: Helvetica, Tahoma, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; - */ - loadFonts(urls: string[]): Promise; - /** - * - * @param text - * @param fontName - * @param size - * @returns - * @description Gets text shape by fontName and size. - */ - getTextShape(text: string, fontName: string, size: number): THREE.Shape[] | undefined; - /** - * - * @param fontName - * @param char - * @param size - * @returns - */ - getCharShape(char: string, fontName: string, size: number): THREE.BufferGeometry | TextGeometry | undefined; - getNotFoundTextShape(size: number): THREE.BufferGeometry | THREE.ExtrudeGeometry | undefined; - private checkAllFontsLoaded; - getFontFromIndexeddb(): Promise; - isShxFont(fontName: string): boolean | undefined; - /** - * Just for log usage - */ - getUnsupportedChar(): Record; - releaseFontData(): void; - destroy(): void; - static isShxFile(url: string): boolean; - static isTtfFile(url: string): boolean; - static isJsonFile(url: string): boolean; - static getFileName(url: string): string; - static getExtension(url: string): string; -} +import * as THREE from "three"; +import { TextGeometry } from "three/examples/jsm/geometries/TextGeometry.js"; +import { BaseFont } from "./BaseFont"; +export declare class FontManager { + private loader; + protected fontMap: Map; + protected fileNames?: string[]; + unsupportedChars: Record; + missingFonts: Record; + static enableFontCache: boolean; + constructor(); + /** + * + * @param urls The order represents the priority + * @returns + * @description The best fonts order is: Load linear fonts first followed by ttf fonts, font types load Western fonts first in loaded chinese fonts. + * @description Microsoft Yahei is the most worthy choice of Chinese font on the Win platform, but it is not the default viewer and needs to be set; Sans-serif fonts such as Arial and Tahoma are the main fonts for Western fonts. + * @description At present, the latest font launched by Apple and San Francisco for Apple, the display effect is also the most elegant, but only the latest system can support, while blackface - Jane and Helvetica can get more system version support, the display effect is also similar, can be accepted. + * @example font-family: Helvetica, Tahoma, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; + */ + loadFonts(urls: string[]): Promise; + /** + * + * @param text + * @param fontName + * @param size + * @returns + * @description Gets text shape by fontName and size. + */ + getTextShape(text: string, fontName: string, size: number): THREE.Shape[] | undefined; + /** + * + * @param fontName + * @param char + * @param size + * @returns + */ + getCharShape(char: string, fontName: string, size: number): THREE.BufferGeometry | TextGeometry | undefined; + getNotFoundTextShape(size: number): THREE.BufferGeometry | THREE.ExtrudeGeometry | undefined; + private checkAllFontsLoaded; + getFontFromIndexeddb(): Promise; + isShxFont(fontName: string): boolean | undefined; + /** + * Just for log usage + */ + getUnsupportedChar(): Record; + releaseFontData(): void; + destroy(): void; + static isShxFile(url: string): boolean; + static isTtfFile(url: string): boolean; + static isJsonFile(url: string): boolean; + static getFileName(url: string): string; + static getExtension(url: string): string; +} diff --git a/demo/libs/types/core/font/MeshFont.d.ts b/demo/libs/types/core/font/MeshFont.d.ts index 948345a..e600840 100644 --- a/demo/libs/types/core/font/MeshFont.d.ts +++ b/demo/libs/types/core/font/MeshFont.d.ts @@ -1,14 +1,14 @@ -import * as THREE from "three"; -import { FontDataTableRecord } from "../indexeddb"; -import { BaseFont } from "./BaseFont"; -export declare class MeshFont extends BaseFont { - reversed: boolean; - constructor(fileName: string, fileData: object | FontDataTableRecord | ArrayBuffer); - generateShapes(text: string, size: number): THREE.Shape[]; - getCharShape(char: string, size: number): THREE.Shape | undefined; - /** - * For an unsupported char, use "?" as a replacement. - */ - getNotFoundTextShape(size: number): THREE.Shape | undefined; - private parseTTF; -} +import * as THREE from "three"; +import { FontDataTableRecord } from "../indexeddb"; +import { BaseFont } from "./BaseFont"; +export declare class MeshFont extends BaseFont { + reversed: boolean; + constructor(fileName: string, fileData: object | FontDataTableRecord | ArrayBuffer); + generateShapes(text: string, size: number): THREE.Shape[]; + getCharShape(char: string, size: number): THREE.Shape | undefined; + /** + * For an unsupported char, use "?" as a replacement. + */ + getNotFoundTextShape(size: number): THREE.Shape | undefined; + private parseTTF; +} diff --git a/demo/libs/types/core/font/ShxFont.d.ts b/demo/libs/types/core/font/ShxFont.d.ts index 7d63b00..ecfbd17 100644 --- a/demo/libs/types/core/font/ShxFont.d.ts +++ b/demo/libs/types/core/font/ShxFont.d.ts @@ -1,49 +1,49 @@ -import * as THREE from "three"; -import { BaseFont } from "./BaseFont"; -import { ShxFontType } from "./shx/Shx.constants"; -import { TextShape } from "./shx/TextShape"; -import { FontDataTableRecord } from "../../core/indexeddb"; -export declare class ShxFont extends BaseFont { - isExtend: boolean; - isUniCode: boolean; - isEmbedded: boolean; - static DEFAULT_SIZE: number; - fontType: ShxFontType; - private textShapesCache; - private graphicData; - constructor(fileName: string, fileData: ArrayBuffer | FontDataTableRecord); - generateShapes(text: string, size: number): TextShape[]; - /** - * Gets TextShape by a char - */ - getCharShape(char: string, size: number): TextShape | undefined; - /** - * Gets TextShape by a char code - */ - getGraphicDataByCode(code: number, size: number): TextShape | undefined; - /** - * Gets TextShape by char's code, font size and offset - */ - getGraphicDataByCodeWithOffset(code: number, size: number, translate: THREE.Vector2): TextShape | undefined; - private parseBigFont; - private parseUniFont; - private parseShapeFont; - /** - * For an unsupported char, use "?" as a replacement. - */ - getNotFoundTextShape(size: number): TextShape | undefined; - protected getFontFile(): { - fontType: ShxFontType; - order: number; - data: any; - info: string; - orientation: import("./shx/Shx.constants").Orientation; - baseUp: number; - baseDown: number; - fileName: string; - fileHeader: string; - fileVersion: string; - }; - setFontFile(data: FontDataTableRecord): void; - releaseFontData(): void; -} +import * as THREE from "three"; +import { BaseFont } from "./BaseFont"; +import { ShxFontType } from "./shx/Shx.constants"; +import { TextShape } from "./shx/TextShape"; +import { FontDataTableRecord } from "../../core/indexeddb"; +export declare class ShxFont extends BaseFont { + isExtend: boolean; + isUniCode: boolean; + isEmbedded: boolean; + static DEFAULT_SIZE: number; + fontType: ShxFontType; + private textShapesCache; + private graphicData; + constructor(fileName: string, fileData: ArrayBuffer | FontDataTableRecord); + generateShapes(text: string, size: number): TextShape[]; + /** + * Gets TextShape by a char + */ + getCharShape(char: string, size: number): TextShape | undefined; + /** + * Gets TextShape by a char code + */ + getGraphicDataByCode(code: number, size: number): TextShape | undefined; + /** + * Gets TextShape by char's code, font size and offset + */ + getGraphicDataByCodeWithOffset(code: number, size: number, translate: THREE.Vector2): TextShape | undefined; + private parseBigFont; + private parseUniFont; + private parseShapeFont; + /** + * For an unsupported char, use "?" as a replacement. + */ + getNotFoundTextShape(size: number): TextShape | undefined; + protected getFontFile(): { + fontType: ShxFontType; + order: number; + data: any; + info: string; + orientation: import("./shx/Shx.constants").Orientation; + baseUp: number; + baseDown: number; + fileName: string; + fileHeader: string; + fileVersion: string; + }; + setFontFile(data: FontDataTableRecord): void; + releaseFontData(): void; +} diff --git a/demo/libs/types/core/font/index.d.ts b/demo/libs/types/core/font/index.d.ts index 9a94da0..d592477 100644 --- a/demo/libs/types/core/font/index.d.ts +++ b/demo/libs/types/core/font/index.d.ts @@ -1 +1 @@ -export * from "./FontManager"; +export * from "./FontManager"; diff --git a/demo/libs/types/core/font/shx/ExtraLettersTemplate.d.ts b/demo/libs/types/core/font/shx/ExtraLettersTemplate.d.ts index 76fbba8..54e26a4 100644 --- a/demo/libs/types/core/font/shx/ExtraLettersTemplate.d.ts +++ b/demo/libs/types/core/font/shx/ExtraLettersTemplate.d.ts @@ -1 +1 @@ -export declare const letters: Record>>>; +export declare const letters: Record>>>; diff --git a/demo/libs/types/core/font/shx/Shx.constants.d.ts b/demo/libs/types/core/font/shx/Shx.constants.d.ts index e3d5b88..a066197 100644 --- a/demo/libs/types/core/font/shx/Shx.constants.d.ts +++ b/demo/libs/types/core/font/shx/Shx.constants.d.ts @@ -1,11 +1,11 @@ -export declare enum Orientation { - Horizontal = 0, - Vertical = 1, - All = 2 -} -export declare enum ShxFontType { - Shapes = 0, - Bigfont = 1, - Unifont = 2 -} -export declare const DEFAULT_SIZE = 12; +export declare enum Orientation { + Horizontal = 0, + Vertical = 1, + All = 2 +} +export declare enum ShxFontType { + Shapes = 0, + Bigfont = 1, + Unifont = 2 +} +export declare const DEFAULT_SIZE = 12; diff --git a/demo/libs/types/core/font/shx/ShxParser.d.ts b/demo/libs/types/core/font/shx/ShxParser.d.ts index b593dc1..9f24939 100644 --- a/demo/libs/types/core/font/shx/ShxParser.d.ts +++ b/demo/libs/types/core/font/shx/ShxParser.d.ts @@ -1,18 +1,18 @@ -import type { ShxFont } from "../ShxFont"; -import { TextShape } from "./TextShape"; -import { BinaryReader } from "../../../core/helpers/BinaryReader"; -export declare class ShxParser { - static FILE_STOP_FLAG: string[]; - protected static CIRCLE_SPAN: number; - static parserHeader(reader: BinaryReader, stopMatch: string[]): string; - /** - * Gets code id of a char. - */ - static getCode(char: string): number; - /** - * Parses code data and generates TextShape. - */ - static parserCode(file: ShxFont, data: Uint8Array, scale: number): TextShape; - private static skipCode; - private static generateArcPoints; -} +import type { ShxFont } from "../ShxFont"; +import { TextShape } from "./TextShape"; +import { BinaryReader } from "../../../core/helpers/BinaryReader"; +export declare class ShxParser { + static FILE_STOP_FLAG: string[]; + protected static CIRCLE_SPAN: number; + static parserHeader(reader: BinaryReader, stopMatch: string[]): string; + /** + * Gets code id of a char. + */ + static getCode(char: string): number; + /** + * Parses code data and generates TextShape. + */ + static parserCode(file: ShxFont, data: Uint8Array, scale: number): TextShape; + private static skipCode; + private static generateArcPoints; +} diff --git a/demo/libs/types/core/font/shx/TextShape.d.ts b/demo/libs/types/core/font/shx/TextShape.d.ts index c1fb0b1..63ec2bb 100644 --- a/demo/libs/types/core/font/shx/TextShape.d.ts +++ b/demo/libs/types/core/font/shx/TextShape.d.ts @@ -1,24 +1,24 @@ -import * as THREE from "three"; -/** - * Text shape, to describe a specific character. - */ -export declare class TextShape extends THREE.Shape { - width: number; - lastPoint: THREE.Vector2; - polylines: Array>; - private bounds; - constructor(lastPoint: THREE.Vector2, polylines: Array>); - /** - * Gets an offsetted new TextShape - */ - offset(vector: THREE.Vector2): TextShape; - /** - * Gets an transformed new TextShape - */ - transform(matrix: THREE.Matrix3): TextShape; - protected calcWidth(polylines: THREE.Vector2[][]): number; - /** - * Converts a TextShape to THREE.BufferGeometry - */ - toThreeGeometry(): THREE.BufferGeometry; -} +import * as THREE from "three"; +/** + * Text shape, to describe a specific character. + */ +export declare class TextShape extends THREE.Shape { + width: number; + lastPoint: THREE.Vector2; + polylines: Array>; + private bounds; + constructor(lastPoint: THREE.Vector2, polylines: Array>); + /** + * Gets an offsetted new TextShape + */ + offset(vector: THREE.Vector2): TextShape; + /** + * Gets an transformed new TextShape + */ + transform(matrix: THREE.Matrix3): TextShape; + protected calcWidth(polylines: THREE.Vector2[][]): number; + /** + * Converts a TextShape to THREE.BufferGeometry + */ + toThreeGeometry(): THREE.BufferGeometry; +} diff --git a/demo/libs/types/core/font/shx/gbk/index.d.ts b/demo/libs/types/core/font/shx/gbk/index.d.ts index 1fad149..d11d611 100644 --- a/demo/libs/types/core/font/shx/gbk/index.d.ts +++ b/demo/libs/types/core/font/shx/gbk/index.d.ts @@ -1,4 +1,4 @@ -export declare function encode(str: string): Uint8Array; -export declare function traditionalChineseToSimpliled(text: string): string; -export declare function isChinese(text: string): boolean; -export declare function isTraditionalChinese(text: string): boolean; +export declare function encode(str: string): Uint8Array; +export declare function traditionalChineseToSimpliled(text: string): string; +export declare function isChinese(text: string): boolean; +export declare function isTraditionalChinese(text: string): boolean; diff --git a/demo/libs/types/core/font/shx/index.d.ts b/demo/libs/types/core/font/shx/index.d.ts index 233545d..e12db23 100644 --- a/demo/libs/types/core/font/shx/index.d.ts +++ b/demo/libs/types/core/font/shx/index.d.ts @@ -1 +1 @@ -export * from "./Shx.constants"; +export * from "./Shx.constants"; diff --git a/demo/libs/types/core/font/shx/util/BitConverter.d.ts b/demo/libs/types/core/font/shx/util/BitConverter.d.ts index 1752bc3..171f5ad 100644 --- a/demo/libs/types/core/font/shx/util/BitConverter.d.ts +++ b/demo/libs/types/core/font/shx/util/BitConverter.d.ts @@ -1,18 +1,18 @@ -export declare class BitConverter { - static GetBytes(value: string | number | boolean | []): Uint8Array; - static Get1Bytes(value: number | boolean | []): Uint8Array; - static byteTosbyte(byte: number): number; - static ToBoolean(value: Uint8Array, startIndex: number): boolean; - static ToInt8(value: Uint8Array, startIndex: number): number; - static ToUInt8(value: Uint8Array, startIndex: number): number; - static ToInt16(value: Uint8Array, startIndex: number): number; - static ToInt32(value: Uint8Array, startIndex: number): number; - static ToUInt16(value: Uint8Array, startIndex: number): number; - static ToUInt32(value: Uint8Array, startIndex: number): number; - static ToChar(value: Uint8Array, startIndex: number): string; - static ToAscii(value: Uint8Array, startIndex: number): string; - static ToAsciiString(value: Uint8Array, startIndex: number, length: number): string; - static ToUTF16String(value: Uint8Array, startIndex: number, length: number): string; - static ToFloat32(value: Uint8Array, startIndex: number): number; - static ToFloat64(value: Uint8Array, startIndex: number): number; -} +export declare class BitConverter { + static GetBytes(value: string | number | boolean | []): Uint8Array; + static Get1Bytes(value: number | boolean | []): Uint8Array; + static byteTosbyte(byte: number): number; + static ToBoolean(value: Uint8Array, startIndex: number): boolean; + static ToInt8(value: Uint8Array, startIndex: number): number; + static ToUInt8(value: Uint8Array, startIndex: number): number; + static ToInt16(value: Uint8Array, startIndex: number): number; + static ToInt32(value: Uint8Array, startIndex: number): number; + static ToUInt16(value: Uint8Array, startIndex: number): number; + static ToUInt32(value: Uint8Array, startIndex: number): number; + static ToChar(value: Uint8Array, startIndex: number): string; + static ToAscii(value: Uint8Array, startIndex: number): string; + static ToAsciiString(value: Uint8Array, startIndex: number, length: number): string; + static ToUTF16String(value: Uint8Array, startIndex: number, length: number): string; + static ToFloat32(value: Uint8Array, startIndex: number): number; + static ToFloat64(value: Uint8Array, startIndex: number): number; +} diff --git a/demo/libs/types/core/geometry-offset/Edge.d.ts b/demo/libs/types/core/geometry-offset/Edge.d.ts index 21c35fe..5919543 100644 --- a/demo/libs/types/core/geometry-offset/Edge.d.ts +++ b/demo/libs/types/core/geometry-offset/Edge.d.ts @@ -1,27 +1,27 @@ -import type { Pair } from "polygon-clipping"; -/** - * Offset edge - * @internal - */ -export declare class Edge { - current: Pair; - next: Pair; - inNormal: Pair; - outNormal: Pair; - constructor(current: Pair, next: Pair); - /** - * Creates outwards normal - */ - private outwardsNormal; - /** - * Creates inwards normal - */ - private inwardsNormal; - /** - * Offsets the edge by dx, dy - */ - offset(dx: number, dy: number): Edge; - inverseOffset(dx: number, dy: number): Edge; - inverse(): Edge; - static offsetEdge(current: Pair, next: Pair, dx: number, dy: number): Edge; -} +import type { Pair } from "polygon-clipping"; +/** + * Offset edge + * @internal + */ +export declare class Edge { + current: Pair; + next: Pair; + inNormal: Pair; + outNormal: Pair; + constructor(current: Pair, next: Pair); + /** + * Creates outwards normal + */ + private outwardsNormal; + /** + * Creates inwards normal + */ + private inwardsNormal; + /** + * Offsets the edge by dx, dy + */ + offset(dx: number, dy: number): Edge; + inverseOffset(dx: number, dy: number): Edge; + inverse(): Edge; + static offsetEdge(current: Pair, next: Pair, dx: number, dy: number): Edge; +} diff --git a/demo/libs/types/core/geometry-offset/Offset.d.ts b/demo/libs/types/core/geometry-offset/Offset.d.ts index 2df4dc5..6582eca 100644 --- a/demo/libs/types/core/geometry-offset/Offset.d.ts +++ b/demo/libs/types/core/geometry-offset/Offset.d.ts @@ -1,46 +1,46 @@ -import type { MultiPolygon, Pair, Polygon, Ring } from "polygon-clipping"; -import { Edge } from "./Edge"; -/** - * Offset builder - * @internal - */ -export declare class Offset { - vertices: Pair | Ring | Polygon; - edges: Edge[] | Edge[][]; - private arcSegments; - private distance; - constructor(vertices: Pair | Ring | Polygon, arcSegments?: number); - /** - * Recursively process contour to create normals - */ - private processContour; - setArcSegments(arcSegments: number): this; - /** - * Creates arch between two edges - * - * @param {Array.} vertices - * @param {Object} center - * @param {Number} radius - * @param {Object} startVertex - * @param {Object} endVertex - * @param {Number} segments - * @param {Boolean} bOutwards - */ - private createArc; - setDistance(dist: number): this; - private ensureLastPoint; - /** - * Decides by the sign if it's a padding or a margin - */ - offset(dist: number): Pair | Ring | Polygon | MultiPolygon; - private offsetSegment; - private margin; - private padding; - offsetLine(dist: number): Pair | Ring | Polygon | MultiPolygon; - /** - * Just offsets lines, no fill - */ - private offsetLines; - private offsetContour; - offsetPoint(distance: number): MultiPolygon; -} +import type { MultiPolygon, Pair, Polygon, Ring } from "polygon-clipping"; +import { Edge } from "./Edge"; +/** + * Offset builder + * @internal + */ +export declare class Offset { + vertices: Pair | Ring | Polygon; + edges: Edge[] | Edge[][]; + private arcSegments; + private distance; + constructor(vertices: Pair | Ring | Polygon, arcSegments?: number); + /** + * Recursively process contour to create normals + */ + private processContour; + setArcSegments(arcSegments: number): this; + /** + * Creates arch between two edges + * + * @param {Array.} vertices + * @param {Object} center + * @param {Number} radius + * @param {Object} startVertex + * @param {Object} endVertex + * @param {Number} segments + * @param {Boolean} bOutwards + */ + private createArc; + setDistance(dist: number): this; + private ensureLastPoint; + /** + * Decides by the sign if it's a padding or a margin + */ + offset(dist: number): Pair | Ring | Polygon | MultiPolygon; + private offsetSegment; + private margin; + private padding; + offsetLine(dist: number): Pair | Ring | Polygon | MultiPolygon; + /** + * Just offsets lines, no fill + */ + private offsetLines; + private offsetContour; + offsetPoint(distance: number): MultiPolygon; +} diff --git a/demo/libs/types/core/geometry-offset/index.d.ts b/demo/libs/types/core/geometry-offset/index.d.ts index 01d03b1..658b076 100644 --- a/demo/libs/types/core/geometry-offset/index.d.ts +++ b/demo/libs/types/core/geometry-offset/index.d.ts @@ -1 +1 @@ -export * from "./Offset"; +export * from "./Offset"; diff --git a/demo/libs/types/core/helpers/BinaryReader.d.ts b/demo/libs/types/core/helpers/BinaryReader.d.ts index bda8484..af49cda 100644 --- a/demo/libs/types/core/helpers/BinaryReader.d.ts +++ b/demo/libs/types/core/helpers/BinaryReader.d.ts @@ -1,24 +1,24 @@ -import JSBI from "jsbi"; -export declare class BinaryReader { - private endian; - private position; - private data; - private decoder; - constructor(arraybuffer: ArrayBuffer, endian?: string); - readAsciiString(length: number): string; - readUtf8String(length: number): string; - readBytes(length?: number): Uint8Array; - readUint8(): number; - readInt8(): number; - readUint16(): number; - readInt16(): number; - readUint32(): number; - readInt32(): number; - readFloat32(): number; - readFloat64(): number; - readInt64(): JSBI; - readUint64(): JSBI; - getPosition(): number; - setPosition(position: number): void; - isEnd(): boolean; -} +import JSBI from "jsbi"; +export declare class BinaryReader { + private endian; + private position; + private data; + private decoder; + constructor(arraybuffer: ArrayBuffer, endian?: string); + readAsciiString(length: number): string; + readUtf8String(length: number): string; + readBytes(length?: number): Uint8Array; + readUint8(): number; + readInt8(): number; + readUint16(): number; + readInt16(): number; + readUint32(): number; + readInt32(): number; + readFloat32(): number; + readFloat64(): number; + readInt64(): JSBI; + readUint64(): JSBI; + getPosition(): number; + setPosition(position: number): void; + isEnd(): boolean; +} diff --git a/demo/libs/types/core/helpers/BoxSelectHelper.d.ts b/demo/libs/types/core/helpers/BoxSelectHelper.d.ts index 232068e..00e62d5 100644 --- a/demo/libs/types/core/helpers/BoxSelectHelper.d.ts +++ b/demo/libs/types/core/helpers/BoxSelectHelper.d.ts @@ -1,44 +1,44 @@ -import * as THREE from "three"; -import { Tooltip } from "../../components/tool-tip"; -import { mouseButtonAction, singleTouchAction } from "../../core/camera-controls/types"; -import type { EventInfo, InputManager } from "../../core/input/InputManager"; -import type { BaseViewer } from "../../core/viewers"; -/** - * Box select an area in screen coordinate. - * @internal - */ -export declare class BoxSelectHelper { - protected viewer: BaseViewer; - protected input: InputManager; - protected mouseDown: boolean; - protected mouseMove: boolean; - protected mouseDownPositionX: number; - protected mouseDownPositionY: number; - protected tempKey?: mouseButtonAction; - protected tempTouch?: singleTouchAction; - protected tempEnableRotate: boolean; - protected rectDom?: HTMLDivElement; - protected tooltip?: Tooltip; - private active; - static readonly BORDER_COLOR = "#fff000"; - static readonly BORDER_WIDTH = "2px"; - protected resolve?: (value: THREE.Box2 | PromiseLike | undefined) => void; - protected reject?: (reason: any) => void; - protected isResolvedOrRejected: boolean; - constructor(viewer: BaseViewer); - private get viewerContainer(); - isActive(): boolean; - activate(): void; - deactivate(): void; - private mousedown; - private mousemove; - private mouseup; - keydown: (e: EventInfo) => void; - private drawRect; - private setRectDomVisible; - /** - * Starts to select a box area - */ - select(): Promise; - destroy(): void; -} +import * as THREE from "three"; +import { Tooltip } from "../../components/tool-tip"; +import { mouseButtonAction, singleTouchAction } from "../../core/camera-controls/types"; +import type { EventInfo, InputManager } from "../../core/input/InputManager"; +import type { BaseViewer } from "../../core/viewers"; +/** + * Box select an area in screen coordinate. + * @internal + */ +export declare class BoxSelectHelper { + protected viewer: BaseViewer; + protected input: InputManager; + protected mouseDown: boolean; + protected mouseMove: boolean; + protected mouseDownPositionX: number; + protected mouseDownPositionY: number; + protected tempKey?: mouseButtonAction; + protected tempTouch?: singleTouchAction; + protected tempEnableRotate: boolean; + protected rectDom?: HTMLDivElement; + protected tooltip?: Tooltip; + private active; + static readonly BORDER_COLOR = "#fff000"; + static readonly BORDER_WIDTH = "2px"; + protected resolve?: (value: THREE.Box2 | PromiseLike | undefined) => void; + protected reject?: (reason: any) => void; + protected isResolvedOrRejected: boolean; + constructor(viewer: BaseViewer); + private get viewerContainer(); + isActive(): boolean; + activate(): void; + deactivate(): void; + private mousedown; + private mousemove; + private mouseup; + keydown: (e: EventInfo) => void; + private drawRect; + private setRectDomVisible; + /** + * Starts to select a box area + */ + select(): Promise; + destroy(): void; +} diff --git a/demo/libs/types/core/helpers/ControlsHelper.d.ts b/demo/libs/types/core/helpers/ControlsHelper.d.ts index f34a33d..b1d5094 100644 --- a/demo/libs/types/core/helpers/ControlsHelper.d.ts +++ b/demo/libs/types/core/helpers/ControlsHelper.d.ts @@ -1,32 +1,32 @@ -import * as THREE from "three"; -import type { VRControls } from "../../core/controls"; -/** - * @internal - */ -export declare class ControlsHelper { - camera: THREE.PerspectiveCamera | THREE.OrthographicCamera; - controls: VRControls; - flyDuration: number; - autoRotateRemainingTime: number; - automaticallyAdjustCameraPosition: boolean; - private cameraUpdateInterval?; - private rotateIntervalStartTime; - private rotateInterval?; - constructor(camera: THREE.PerspectiveCamera | THREE.OrthographicCamera, controls: VRControls); - /** - * Make camera fly to target position with given lookAt position - * @param position camera's target position - * @param lookAt camera's new lookAt position - */ - flyTo(position: THREE.Vector3, lookAt: THREE.Vector3, onCompleteCallback?: () => void): void; - /** - * Adjusts camera direction to look to a certain position. While, - * it doesn't mean to set the target position as camera's target. - */ - lookTo(direction: THREE.Vector3): void; - startAutoRotate(): void; - delayAutoRotate(): void; - startToRotate(e: KeyboardEvent): void; - private rotateLeftOrRight; - private rotateUpOrDown; -} +import * as THREE from "three"; +import type { VRControls } from "../../core/controls"; +/** + * @internal + */ +export declare class ControlsHelper { + camera: THREE.PerspectiveCamera | THREE.OrthographicCamera; + controls: VRControls; + flyDuration: number; + autoRotateRemainingTime: number; + automaticallyAdjustCameraPosition: boolean; + private cameraUpdateInterval?; + private rotateIntervalStartTime; + private rotateInterval?; + constructor(camera: THREE.PerspectiveCamera | THREE.OrthographicCamera, controls: VRControls); + /** + * Make camera fly to target position with given lookAt position + * @param position camera's target position + * @param lookAt camera's new lookAt position + */ + flyTo(position: THREE.Vector3, lookAt: THREE.Vector3, onCompleteCallback?: () => void): void; + /** + * Adjusts camera direction to look to a certain position. While, + * it doesn't mean to set the target position as camera's target. + */ + lookTo(direction: THREE.Vector3): void; + startAutoRotate(): void; + delayAutoRotate(): void; + startToRotate(e: KeyboardEvent): void; + private rotateLeftOrRight; + private rotateUpOrDown; +} diff --git a/demo/libs/types/core/helpers/InstantiateHelper.d.ts b/demo/libs/types/core/helpers/InstantiateHelper.d.ts index ab1353b..c4a7134 100644 --- a/demo/libs/types/core/helpers/InstantiateHelper.d.ts +++ b/demo/libs/types/core/helpers/InstantiateHelper.d.ts @@ -1,26 +1,26 @@ -import * as THREE from "three"; -/** - * InstantiateHelper class is used to instantiate child objects for a given object - * @internal - */ -export declare class InstantiateHelper { - object: THREE.Object3D; - constructor(object: THREE.Object3D); - /** - * Instatiates child objects for given object. - */ - instantiate(): void; - /** - * Instatiates child objects of given object. - * If objects' geometry and material are the same, they can be instanced. - */ - private instantiateInner; - /** - * Removes a number from array - */ - removeFromArray(arr: number[], toBeRemoved: number): void; - /** - * Checks if two geometries equal - */ - private geometryEquals; -} +import * as THREE from "three"; +/** + * InstantiateHelper class is used to instantiate child objects for a given object + * @internal + */ +export declare class InstantiateHelper { + object: THREE.Object3D; + constructor(object: THREE.Object3D); + /** + * Instatiates child objects for given object. + */ + instantiate(): void; + /** + * Instatiates child objects of given object. + * If objects' geometry and material are the same, they can be instanced. + */ + private instantiateInner; + /** + * Removes a number from array + */ + removeFromArray(arr: number[], toBeRemoved: number): void; + /** + * Checks if two geometries equal + */ + private geometryEquals; +} diff --git a/demo/libs/types/core/helpers/LoadingHelper.d.ts b/demo/libs/types/core/helpers/LoadingHelper.d.ts index 1122de6..a222930 100644 --- a/demo/libs/types/core/helpers/LoadingHelper.d.ts +++ b/demo/libs/types/core/helpers/LoadingHelper.d.ts @@ -1,47 +1,47 @@ -import * as THREE from "three"; -import type { DxfData, DxfLoaderConfig } from "../../core/dxf"; -import type { FontManager } from "../../core/font"; -export declare class LoadingHelper { - private static decoderPath; - private gltfLoader?; - private font?; - private manager?; - constructor(manager?: THREE.LoadingManager); - /** - * Loads a model from local - * @param url Created by URL.createObjectURL(file) - * @param src Source filename, used to find out format - * @param onProgress On progress callback - * @returns Loaded object - */ - loadLocalModel(url: string, src: string, onProgress?: (event: ProgressEvent) => void): Promise; - loadModel(src: string, fileFormat?: string, onProgress?: (event: ProgressEvent) => void): Promise; - loadGltf(url: string, onProgress?: (event: ProgressEvent) => void): Promise; - parseGltf(data: ArrayBuffer | string, path: string, onLoad: (object: THREE.Object3D) => void, onError?: (event: ErrorEvent) => void): void; - loadFbx(url: string, onProgress?: (event: ProgressEvent) => void): Promise; - loadObj(url: string, onProgress?: (event: ProgressEvent) => void): Promise; - loadStl(url: string, onProgress?: (event: ProgressEvent) => void): Promise; - loadShp(url: string, onProgress?: (event: ProgressEvent) => void): Promise; - loadDae(url: string, onProgress?: (event: ProgressEvent) => void): Promise; - loadDxf(url: string, onProgress?: (event: ProgressEvent) => void): Promise; - loadPly(url: string, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * It is kind of tricky to load image into scene, but we'll do this by creating a sprite. - */ - loadImage(url: string, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * Loads dxf data, including entities, tables(layers, blocks), etc. - */ - loadDxfData(url: string, dxfDataId?: string, onProgress?: (event: ProgressEvent) => void, onLoad?: () => void, cfg?: DxfLoaderConfig): Promise; - /** - * Sets font. - * Font is required for DxfViewer to view Chinese, etc. - */ - setFont(font: FontManager): void; - /** - * Sets decoder path for draco loader. - * @param decoderPath e.g., "libs/draco/gltf/" - */ - static setDracoDecoderPath(path: string): void; - private getGltfLoader; -} +import * as THREE from "three"; +import type { DxfData, DxfLoaderConfig } from "../../core/dxf"; +import type { FontManager } from "../../core/font"; +export declare class LoadingHelper { + private static decoderPath; + private gltfLoader?; + private font?; + private manager?; + constructor(manager?: THREE.LoadingManager); + /** + * Loads a model from local + * @param url Created by URL.createObjectURL(file) + * @param src Source filename, used to find out format + * @param onProgress On progress callback + * @returns Loaded object + */ + loadLocalModel(url: string, src: string, onProgress?: (event: ProgressEvent) => void): Promise; + loadModel(src: string, fileFormat?: string, onProgress?: (event: ProgressEvent) => void): Promise; + loadGltf(url: string, onProgress?: (event: ProgressEvent) => void): Promise; + parseGltf(data: ArrayBuffer | string, path: string, onLoad: (object: THREE.Object3D) => void, onError?: (event: ErrorEvent) => void): void; + loadFbx(url: string, onProgress?: (event: ProgressEvent) => void): Promise; + loadObj(url: string, onProgress?: (event: ProgressEvent) => void): Promise; + loadStl(url: string, onProgress?: (event: ProgressEvent) => void): Promise; + loadShp(url: string, onProgress?: (event: ProgressEvent) => void): Promise; + loadDae(url: string, onProgress?: (event: ProgressEvent) => void): Promise; + loadDxf(url: string, onProgress?: (event: ProgressEvent) => void): Promise; + loadPly(url: string, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * It is kind of tricky to load image into scene, but we'll do this by creating a sprite. + */ + loadImage(url: string, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * Loads dxf data, including entities, tables(layers, blocks), etc. + */ + loadDxfData(url: string, dxfDataId?: string, onProgress?: (event: ProgressEvent) => void, onLoad?: () => void, cfg?: DxfLoaderConfig): Promise; + /** + * Sets font. + * Font is required for DxfViewer to view Chinese, etc. + */ + setFont(font: FontManager): void; + /** + * Sets decoder path for draco loader. + * @param decoderPath e.g., "libs/draco/gltf/" + */ + static setDracoDecoderPath(path: string): void; + private getGltfLoader; +} diff --git a/demo/libs/types/core/helpers/MeshBvhHelper.d.ts b/demo/libs/types/core/helpers/MeshBvhHelper.d.ts index 28131af..4d3caef 100644 --- a/demo/libs/types/core/helpers/MeshBvhHelper.d.ts +++ b/demo/libs/types/core/helpers/MeshBvhHelper.d.ts @@ -1,15 +1,15 @@ -import * as THREE from "three"; -import { BvhParameter } from "../../core/workers"; -/** - * Bvh: Bounding volume hierarchy - */ -export declare class MeshBvhHelper { - private running; - private workers; - constructor(workerCount?: number); - isRunning(): boolean; - generate(geometries: THREE.BufferGeometry[], params?: BvhParameter): Promise; - dispose(): void; - static createMeshBvhSync(objects: THREE.Object3D[], params?: BvhParameter): void; - static createMeshBvhAsync(objects: THREE.Object3D[], params?: BvhParameter): void; -} +import * as THREE from "three"; +import { BvhParameter } from "../../core/workers"; +/** + * Bvh: Bounding volume hierarchy + */ +export declare class MeshBvhHelper { + private running; + private workers; + constructor(workerCount?: number); + isRunning(): boolean; + generate(geometries: THREE.BufferGeometry[], params?: BvhParameter): Promise; + dispose(): void; + static createMeshBvhSync(objects: THREE.Object3D[], params?: BvhParameter): void; + static createMeshBvhAsync(objects: THREE.Object3D[], params?: BvhParameter): void; +} diff --git a/demo/libs/types/core/helpers/MobileTouchHelperDrawable.d.ts b/demo/libs/types/core/helpers/MobileTouchHelperDrawable.d.ts index 573dda0..5cafb7b 100644 --- a/demo/libs/types/core/helpers/MobileTouchHelperDrawable.d.ts +++ b/demo/libs/types/core/helpers/MobileTouchHelperDrawable.d.ts @@ -1,26 +1,26 @@ -import * as THREE from "three"; -import { Drawable } from "../../core/canvas"; -import { EventInfo } from "../../core/input/InputManager"; -/** - * Touch helper for mobile - */ -export declare class MobileTouchHelperDrawable extends Drawable { - private position; - needsFrustumCulled: boolean; - renderOrder: number; - constructor(position: THREE.Vector2); - setPosition(position: THREE.Vector2): void; - isPointInPath(p: THREE.Vector3, raycaster?: THREE.Raycaster | undefined): boolean; - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawInnerCircle(ctx: CanvasRenderingContext2D): void; - drawOuterRing(ctx: CanvasRenderingContext2D): void; - drawSnapTriangle(ctx: CanvasRenderingContext2D): void; - translate(tx: number, ty: number): void; - getTouchPoint(): { - x: number; - y: number; - }; - isIntersect(e: EventInfo): boolean; - drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - getClassType(): string; -} +import * as THREE from "three"; +import { Drawable } from "../../core/canvas"; +import { EventInfo } from "../../core/input/InputManager"; +/** + * Touch helper for mobile + */ +export declare class MobileTouchHelperDrawable extends Drawable { + private position; + needsFrustumCulled: boolean; + renderOrder: number; + constructor(position: THREE.Vector2); + setPosition(position: THREE.Vector2): void; + isPointInPath(p: THREE.Vector3, raycaster?: THREE.Raycaster | undefined): boolean; + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawInnerCircle(ctx: CanvasRenderingContext2D): void; + drawOuterRing(ctx: CanvasRenderingContext2D): void; + drawSnapTriangle(ctx: CanvasRenderingContext2D): void; + translate(tx: number, ty: number): void; + getTouchPoint(): { + x: number; + y: number; + }; + isIntersect(e: EventInfo): boolean; + drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + getClassType(): string; +} diff --git a/demo/libs/types/core/helpers/OSnapHelper.d.ts b/demo/libs/types/core/helpers/OSnapHelper.d.ts index 90439d5..420ba97 100644 --- a/demo/libs/types/core/helpers/OSnapHelper.d.ts +++ b/demo/libs/types/core/helpers/OSnapHelper.d.ts @@ -1,158 +1,158 @@ -import * as THREE from "three"; -import { CanvasRender, Drawable, DrawableList } from "../../core/canvas"; -import { ILine, OSnapMarkerType } from "../../core/utils"; -export declare class SnapDrawable extends Drawable { - static lineColor: string; - static readonly FILL_COLOR_NONE = "rgba(0, 0, 0, 0)"; - static readonly SNAP_LINE_COLOR = "rgba(255, 240, 0, 0.3)"; - static lineWidth: number; - static iconSize: number; - needsFrustumCulled: boolean; - renderOrder: number; - snapType: OSnapMarkerType; - private osnapInfo?; - private drawSnapFunctions; - private snapLineVisible; - constructor(type: OSnapMarkerType); - setSnapLineVisible(visible: boolean): void; - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawDebug(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - isPointInPath(p: THREE.Vector3): boolean; - drawSnapLine(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - /** - * p1 - * | - * | point (origin) - * / \ - * / \ - * p2 p3 - */ - drawTripleCorss(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawSquare(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawTriangle(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - /** - * Snap marker for circle center. - */ - drawCircleWithCross(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawCross(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - /** - * p4|\ - * | \ - * p2|____\ p1 (origin) - * | | \ - * |____|___\ - * P5 p3 P6 - */ - drawPerpendicular(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - update(osnapInfo: OSnapInfo): void; - getClassType(): string; -} -export declare enum OSnapType { - None = 0, - Vertex = 1, - MiddlePoint = 2, - Edge = 4, - Face = 8, - FootOfPerpendicular = 16, - Intersection = 32, - CircleCenter = 64 -} -interface OSnapInfo { - point: THREE.Vector3; - distance: number; - type: OSnapType; - line?: ILine; -} -export declare class OSnapHelper { - protected drawableList: DrawableList; - protected overlayRender?: CanvasRender; - protected markers: Record; - protected activeOSnapType: OSnapType; - protected snapToleranceInWorldCoord: number; - protected intersectionLimit: number; - /** - * OSnapType priority. Lower value has a higher priority. - */ - osnapTypePriorities: Record; - protected enabledOSnapTypes: number; - constructor(overlayRender: CanvasRender); - private initOSnapMarkers; - /** - * If a specific OSnapType is enabled. - */ - isOSnapTypeEnabled(type: OSnapType): boolean; - /** - * Enables a specific OSnapType. - */ - setOSnapTypeEnabled(type: OSnapType, enabled: boolean): void; - /** - * Sets snap tolerance in world coordinate. - */ - setSnapTolerance(toleranceInWorldCoord: number): void; - /** - * Gets snap tolerance in world coordinate. - */ - getSnapTolerance(): number; - setIntersectionLimit(val: number): void; - getIntersectionLimit(): number; - /** - * Gets osnap marker line color. - * @returns rgb/rgba number array, each value is between 0 and 1. e.g. [0.92, 0.95, 0.96]. - */ - getMarkerLineColor(): number[]; - /** - * Sets osnap marker line color. - * @param color rgb/rgba number array, each value is between 0 and 1. e.g. [0.92, 0.95, 0.96]. - */ - setMarkerLineColor(color: number[]): void; - /** - * Gets osnap marker line width. - */ - getMarkerLineWidth(): number; - /** - * Sets osnap marker line width. - */ - setMarkerLineWidth(width: number): void; - /** - * Gets osnap marker icon size in pixel. - */ - getMarkerIconSize(): number; - /** - * Sets osnap marker icon size in pixel. - */ - setMarkerIconSize(size: number): void; - getMarker(type: OSnapType): SnapDrawable; - setAllSnapLinesVisible(visible: boolean): void; - deactivate(): void; - destroy(): void; - /** - * Tries to find a proper snap point and display corresponding marker. - * @param intersections The raycaster intersections, must have been sorted by distance. - * @param is3d If it is a 3d or 2d viewer. - * @param lastMouseDownPosition Used in order to to get foot of perpendicular. - * @returns Target snap point if any - */ - handleSnap(rayCasterResult: THREE.Intersection[], is3d: boolean, lastMouseDownPosition?: THREE.Vector3): THREE.Vector3 | undefined; - /** - * Tries to find a proper snap point and display corresponding marker. - * @param mousePosition Mouse position in world coordinate. - * @param intersections - * @param is3d If it is a 3d or 2d viewer. - * @param lastMouseDownPosition Used in order to to get foot of perpendicular. - * @returns Target snap point if any - */ - protected getSnapPointAndUpdateMarker(mousePosition: THREE.Vector3, intersections: THREE.Intersection[], is3d: boolean, lastMouseDownPosition?: THREE.Vector3): THREE.Vector3 | undefined; - activateMarker(type: OSnapType, osnapInfo?: OSnapInfo): void; - private getFootOfPerpendicular; - private getSnapInfo; - private getOsnapInfoListFromMesh; - private getOsnapInfoFromSegment; - private getOsnapInfoListFromLine; - private getOsnapInfoListFromPoint; - /** - * Used for 3d scene to get outline info by faces. - */ - private getIntersectsIncludeOutline; -} -export {}; +import * as THREE from "three"; +import { CanvasRender, Drawable, DrawableList } from "../../core/canvas"; +import { ILine, OSnapMarkerType } from "../../core/utils"; +export declare class SnapDrawable extends Drawable { + static lineColor: string; + static readonly FILL_COLOR_NONE = "rgba(0, 0, 0, 0)"; + static readonly SNAP_LINE_COLOR = "rgba(255, 240, 0, 0.3)"; + static lineWidth: number; + static iconSize: number; + needsFrustumCulled: boolean; + renderOrder: number; + snapType: OSnapMarkerType; + private osnapInfo?; + private drawSnapFunctions; + private snapLineVisible; + constructor(type: OSnapMarkerType); + setSnapLineVisible(visible: boolean): void; + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawDebug(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + isPointInPath(p: THREE.Vector3): boolean; + drawSnapLine(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + /** + * p1 + * | + * | point (origin) + * / \ + * / \ + * p2 p3 + */ + drawTripleCorss(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawSquare(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawTriangle(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + /** + * Snap marker for circle center. + */ + drawCircleWithCross(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawCross(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + /** + * p4|\ + * | \ + * p2|____\ p1 (origin) + * | | \ + * |____|___\ + * P5 p3 P6 + */ + drawPerpendicular(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + update(osnapInfo: OSnapInfo): void; + getClassType(): string; +} +export declare enum OSnapType { + None = 0, + Vertex = 1, + MiddlePoint = 2, + Edge = 4, + Face = 8, + FootOfPerpendicular = 16, + Intersection = 32, + CircleCenter = 64 +} +interface OSnapInfo { + point: THREE.Vector3; + distance: number; + type: OSnapType; + line?: ILine; +} +export declare class OSnapHelper { + protected drawableList: DrawableList; + protected overlayRender?: CanvasRender; + protected markers: Record; + protected activeOSnapType: OSnapType; + protected snapToleranceInWorldCoord: number; + protected intersectionLimit: number; + /** + * OSnapType priority. Lower value has a higher priority. + */ + osnapTypePriorities: Record; + protected enabledOSnapTypes: number; + constructor(overlayRender: CanvasRender); + private initOSnapMarkers; + /** + * If a specific OSnapType is enabled. + */ + isOSnapTypeEnabled(type: OSnapType): boolean; + /** + * Enables a specific OSnapType. + */ + setOSnapTypeEnabled(type: OSnapType, enabled: boolean): void; + /** + * Sets snap tolerance in world coordinate. + */ + setSnapTolerance(toleranceInWorldCoord: number): void; + /** + * Gets snap tolerance in world coordinate. + */ + getSnapTolerance(): number; + setIntersectionLimit(val: number): void; + getIntersectionLimit(): number; + /** + * Gets osnap marker line color. + * @returns rgb/rgba number array, each value is between 0 and 1. e.g. [0.92, 0.95, 0.96]. + */ + getMarkerLineColor(): number[]; + /** + * Sets osnap marker line color. + * @param color rgb/rgba number array, each value is between 0 and 1. e.g. [0.92, 0.95, 0.96]. + */ + setMarkerLineColor(color: number[]): void; + /** + * Gets osnap marker line width. + */ + getMarkerLineWidth(): number; + /** + * Sets osnap marker line width. + */ + setMarkerLineWidth(width: number): void; + /** + * Gets osnap marker icon size in pixel. + */ + getMarkerIconSize(): number; + /** + * Sets osnap marker icon size in pixel. + */ + setMarkerIconSize(size: number): void; + getMarker(type: OSnapType): SnapDrawable; + setAllSnapLinesVisible(visible: boolean): void; + deactivate(): void; + destroy(): void; + /** + * Tries to find a proper snap point and display corresponding marker. + * @param intersections The raycaster intersections, must have been sorted by distance. + * @param is3d If it is a 3d or 2d viewer. + * @param lastMouseDownPosition Used in order to to get foot of perpendicular. + * @returns Target snap point if any + */ + handleSnap(rayCasterResult: THREE.Intersection[], is3d: boolean, lastMouseDownPosition?: THREE.Vector3): THREE.Vector3 | undefined; + /** + * Tries to find a proper snap point and display corresponding marker. + * @param mousePosition Mouse position in world coordinate. + * @param intersections + * @param is3d If it is a 3d or 2d viewer. + * @param lastMouseDownPosition Used in order to to get foot of perpendicular. + * @returns Target snap point if any + */ + protected getSnapPointAndUpdateMarker(mousePosition: THREE.Vector3, intersections: THREE.Intersection[], is3d: boolean, lastMouseDownPosition?: THREE.Vector3): THREE.Vector3 | undefined; + activateMarker(type: OSnapType, osnapInfo?: OSnapInfo): void; + private getFootOfPerpendicular; + private getSnapInfo; + private getOsnapInfoListFromMesh; + private getOsnapInfoFromSegment; + private getOsnapInfoListFromLine; + private getOsnapInfoListFromPoint; + /** + * Used for 3d scene to get outline info by faces. + */ + private getIntersectsIncludeOutline; +} +export {}; diff --git a/demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts b/demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts index f664b0e..293e039 100644 --- a/demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts +++ b/demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts @@ -1,13 +1,13 @@ -import * as THREE from "three"; -import { CameraControlsEx } from "../../core/controls"; -/** - * Helper class to adjust object visual size - */ -export declare class ObjectPixelSizeHelper { - private object; - private camera; - targetPixelHeight: number; - canvasHeight: number; - constructor(camera: THREE.Camera, controls: CameraControlsEx, object: THREE.Object3D, targetPixelHeight: number, canvasHeight: number); - adjustSize(): void; -} +import * as THREE from "three"; +import { CameraControlsEx } from "../../core/controls"; +/** + * Helper class to adjust object visual size + */ +export declare class ObjectPixelSizeHelper { + private object; + private camera; + targetPixelHeight: number; + canvasHeight: number; + constructor(camera: THREE.Camera, controls: CameraControlsEx, object: THREE.Object3D, targetPixelHeight: number, canvasHeight: number); + adjustSize(): void; +} diff --git a/demo/libs/types/core/helpers/PickMarkupHelper.d.ts b/demo/libs/types/core/helpers/PickMarkupHelper.d.ts index b2a4400..e85f453 100644 --- a/demo/libs/types/core/helpers/PickMarkupHelper.d.ts +++ b/demo/libs/types/core/helpers/PickMarkupHelper.d.ts @@ -1,29 +1,29 @@ -import * as THREE from "three"; -import { Tooltip } from "../../components/tool-tip"; -import { EventInfo } from "../../core/input/InputManager"; -import type { BaseViewer } from "../../core/viewers"; -/** - * Box select an area in screen coordinate. - * @internal - */ -export declare class PickMarkupHelper { - protected viewer: BaseViewer; - private active; - protected tooltip?: Tooltip; - protected resolve?: (value: THREE.Box2 | PromiseLike | undefined) => void; - protected reject?: (reason: any) => void; - protected isResolvedOrRejected: boolean; - constructor(viewer: BaseViewer); - private get viewerContainer(); - private get camera(); - isActive(): boolean; - private mouseClicked; - activate(): void; - deactivate(): void; - keydown: (e: EventInfo) => void; - /** - * Starts to pick a markup area. - */ - pick(): Promise; - destroy(): void; -} +import * as THREE from "three"; +import { Tooltip } from "../../components/tool-tip"; +import { EventInfo } from "../../core/input/InputManager"; +import type { BaseViewer } from "../../core/viewers"; +/** + * Box select an area in screen coordinate. + * @internal + */ +export declare class PickMarkupHelper { + protected viewer: BaseViewer; + private active; + protected tooltip?: Tooltip; + protected resolve?: (value: THREE.Box2 | PromiseLike | undefined) => void; + protected reject?: (reason: any) => void; + protected isResolvedOrRejected: boolean; + constructor(viewer: BaseViewer); + private get viewerContainer(); + private get camera(); + isActive(): boolean; + private mouseClicked; + activate(): void; + deactivate(): void; + keydown: (e: EventInfo) => void; + /** + * Starts to pick a markup area. + */ + pick(): Promise; + destroy(): void; +} diff --git a/demo/libs/types/core/helpers/RafHelper.d.ts b/demo/libs/types/core/helpers/RafHelper.d.ts index 6b736d4..a700eba 100644 --- a/demo/libs/types/core/helpers/RafHelper.d.ts +++ b/demo/libs/types/core/helpers/RafHelper.d.ts @@ -1,18 +1,18 @@ -/** - * This class implemented setTimeout and setInterval using RequestAnimationFrame - * This code references to - * https://github.com/aisriver/myHome3D/blob/master/src/utils/RAF.ts - * @internal - */ -export declare class RafHelper { - readonly TIMEOUT = "timeout"; - readonly INTERVAL = "interval"; - private timeoutMap; - private intervalMap; - private run; - private setIdMap; - setTimeout(cb: () => void, interval: number): symbol; - clearTimeout(timer: symbol): void; - setInterval(cb: () => void, interval: number): symbol; - clearInterval(timer: symbol): void; -} +/** + * This class implemented setTimeout and setInterval using RequestAnimationFrame + * This code references to + * https://github.com/aisriver/myHome3D/blob/master/src/utils/RAF.ts + * @internal + */ +export declare class RafHelper { + readonly TIMEOUT = "timeout"; + readonly INTERVAL = "interval"; + private timeoutMap; + private intervalMap; + private run; + private setIdMap; + setTimeout(cb: () => void, interval: number): symbol; + clearTimeout(timer: symbol): void; + setInterval(cb: () => void, interval: number): symbol; + clearInterval(timer: symbol): void; +} diff --git a/demo/libs/types/core/helpers/ZoomToRectHelper.d.ts b/demo/libs/types/core/helpers/ZoomToRectHelper.d.ts index 0429a4a..bdb4796 100644 --- a/demo/libs/types/core/helpers/ZoomToRectHelper.d.ts +++ b/demo/libs/types/core/helpers/ZoomToRectHelper.d.ts @@ -1,17 +1,17 @@ -import * as THREE from "three"; -import type { BimViewer, DxfViewer } from "../../core/viewers"; -export declare class ZoomToRectHelper { - protected viewer: DxfViewer | BimViewer; - private boxSelectHelper?; - private active; - constructor(viewer: DxfViewer | BimViewer); - private get viewerContainer(); - get camera(): THREE.OrthographicCamera | THREE.PerspectiveCamera; - get raycaster(): THREE.Raycaster; - isActive(): boolean; - activate(): void; - deactivate(): void; - protected pickPositionByScreenPoint(p: THREE.Vector2): THREE.Vector3 | undefined; - protected handleZoomToRect(leftTop: THREE.Vector2, rightBottom: THREE.Vector2): void; - destroy(): void; -} +import * as THREE from "three"; +import type { BimViewer, DxfViewer } from "../../core/viewers"; +export declare class ZoomToRectHelper { + protected viewer: DxfViewer | BimViewer; + private boxSelectHelper?; + private active; + constructor(viewer: DxfViewer | BimViewer); + private get viewerContainer(); + get camera(): THREE.OrthographicCamera | THREE.PerspectiveCamera; + get raycaster(): THREE.Raycaster; + isActive(): boolean; + activate(): void; + deactivate(): void; + protected pickPositionByScreenPoint(p: THREE.Vector2): THREE.Vector3 | undefined; + protected handleZoomToRect(leftTop: THREE.Vector2, rightBottom: THREE.Vector2): void; + destroy(): void; +} diff --git a/demo/libs/types/core/helpers/index.d.ts b/demo/libs/types/core/helpers/index.d.ts index 50dce03..9d769aa 100644 --- a/demo/libs/types/core/helpers/index.d.ts +++ b/demo/libs/types/core/helpers/index.d.ts @@ -1,12 +1,12 @@ -export * from "./ControlsHelper"; -export * from "./InstantiateHelper"; -export * from "./RafHelper"; -export * from "./BinaryReader"; -export * from "./LoadingHelper"; -export * from "./MeshBvhHelper"; -export * from "./ObjectPixelSizeHelper"; -export * from "./OSnapHelper"; -export * from "./PickMarkupHelper"; -export * from "./BoxSelectHelper"; -export * from "./ZoomToRectHelper"; -export * from "./MobileTouchHelperDrawable"; +export * from "./ControlsHelper"; +export * from "./InstantiateHelper"; +export * from "./RafHelper"; +export * from "./BinaryReader"; +export * from "./LoadingHelper"; +export * from "./MeshBvhHelper"; +export * from "./ObjectPixelSizeHelper"; +export * from "./OSnapHelper"; +export * from "./PickMarkupHelper"; +export * from "./BoxSelectHelper"; +export * from "./ZoomToRectHelper"; +export * from "./MobileTouchHelperDrawable"; diff --git a/demo/libs/types/core/index.d.ts b/demo/libs/types/core/index.d.ts index a41ced0..1154fb2 100644 --- a/demo/libs/types/core/index.d.ts +++ b/demo/libs/types/core/index.d.ts @@ -1,22 +1,22 @@ -export * from "./patches"; -export * from "./canvas"; -export * from "./compare"; -export * from "./controls"; -export * from "./dxf"; -export * from "./dxf-parser"; -export * from "./geometry-offset"; -export * from "./helpers"; -export * from "./indexeddb"; -export * from "./input"; -export * from "./markup"; -export * from "./shp-js"; -export * from "./font"; -export * from "./utils"; -export * from "./viewers"; -export * from "./vr"; -export * from "./webcam"; -export * from "./workers"; -export * from "./Configs"; -export * from "./Constants"; -export * from "./Units"; -export * from "./VersionManager"; +export * from "./patches"; +export * from "./canvas"; +export * from "./compare"; +export * from "./controls"; +export * from "./dxf"; +export * from "./dxf-parser"; +export * from "./geometry-offset"; +export * from "./helpers"; +export * from "./indexeddb"; +export * from "./input"; +export * from "./markup"; +export * from "./shp-js"; +export * from "./font"; +export * from "./utils"; +export * from "./viewers"; +export * from "./vr"; +export * from "./webcam"; +export * from "./workers"; +export * from "./Configs"; +export * from "./Constants"; +export * from "./Units"; +export * from "./VersionManager"; diff --git a/demo/libs/types/core/indexeddb/AnnotationTable.d.ts b/demo/libs/types/core/indexeddb/AnnotationTable.d.ts index 0b988c1..e86734c 100644 --- a/demo/libs/types/core/indexeddb/AnnotationTable.d.ts +++ b/demo/libs/types/core/indexeddb/AnnotationTable.d.ts @@ -1,14 +1,14 @@ -import { BaseTable } from "./BaseTable"; -/** - * Table is known as ObjectStore in IndexedDb - * AnnotationTable in IndexedDb - */ -export declare class AnnotationTable extends BaseTable { - tableName(): string; - /** - * Singleton design pattern - */ - private static _instance; - static instance(): AnnotationTable; - query(projectId: string, successCallback?: any, errorCallback?: any): void; -} +import { BaseTable } from "./BaseTable"; +/** + * Table is known as ObjectStore in IndexedDb + * AnnotationTable in IndexedDb + */ +export declare class AnnotationTable extends BaseTable { + tableName(): string; + /** + * Singleton design pattern + */ + private static _instance; + static instance(): AnnotationTable; + query(projectId: string, successCallback?: any, errorCallback?: any): void; +} diff --git a/demo/libs/types/core/indexeddb/BaseTable.d.ts b/demo/libs/types/core/indexeddb/BaseTable.d.ts index e419e0e..d44cd4c 100644 --- a/demo/libs/types/core/indexeddb/BaseTable.d.ts +++ b/demo/libs/types/core/indexeddb/BaseTable.d.ts @@ -1,36 +1,36 @@ -/** - * Table is known as ObjectStore in IndexedDb - */ -export declare class BaseTable { - db?: IDBDatabase; - isCreatingTable: boolean; - constructor(); - /** - * Derived class have to override this method and return a table name! - */ - tableName(): string; - /** - * Adds a record to a table - */ - add(record: any, successCallback?: any, errorCallback?: any): void; - /** - * Saves a record - */ - save(record: any, successCallback?: any, errorCallback?: any): void; - /** - * Deletes a record - */ - delete(key: string, successCallback?: any, errorCallback?: any): void; - /** - * Updates a record - */ - update(): void; - /** - * Queries records in a table - * @param cursorHandler callback to handle records one by one - */ - query(cursorHandler?: any, errorCallback?: any): void; - queryByIndex(indexName: any, indexValue: any, successCallback?: any, errorCallback?: any): void; - queryAll(successCallback?: any, errorCallback?: any): void; - clearAll(successCallback?: any, errorCallback?: any): void; -} +/** + * Table is known as ObjectStore in IndexedDb + */ +export declare class BaseTable { + db?: IDBDatabase; + isCreatingTable: boolean; + constructor(); + /** + * Derived class have to override this method and return a table name! + */ + tableName(): string; + /** + * Adds a record to a table + */ + add(record: any, successCallback?: any, errorCallback?: any): void; + /** + * Saves a record + */ + save(record: any, successCallback?: any, errorCallback?: any): void; + /** + * Deletes a record + */ + delete(key: string, successCallback?: any, errorCallback?: any): void; + /** + * Updates a record + */ + update(): void; + /** + * Queries records in a table + * @param cursorHandler callback to handle records one by one + */ + query(cursorHandler?: any, errorCallback?: any): void; + queryByIndex(indexName: any, indexValue: any, successCallback?: any, errorCallback?: any): void; + queryAll(successCallback?: any, errorCallback?: any): void; + clearAll(successCallback?: any, errorCallback?: any): void; +} diff --git a/demo/libs/types/core/indexeddb/DxfDataTable.d.ts b/demo/libs/types/core/indexeddb/DxfDataTable.d.ts index 25d39dd..df7fad5 100644 --- a/demo/libs/types/core/indexeddb/DxfDataTable.d.ts +++ b/demo/libs/types/core/indexeddb/DxfDataTable.d.ts @@ -1,22 +1,22 @@ -import { BaseTable } from "./BaseTable"; -export interface DxfDataTableRecord { - dxfDataId: string; - dxf: object; -} -/** - * DxfDataTable in IndexedDb - * Table is known as ObjectStore in IndexedDb - */ -export declare class DxfDataTable extends BaseTable { - tableName(): string; - /** - * Singleton design pattern - */ - private static _instance; - static instance(): DxfDataTable; - /** - * Queires a dxf data - * @param dxfDataId should be a unique id to identify different dxf files - */ - query(dxfDataId: string, successCallback?: any, errorCallback?: any): void; -} +import { BaseTable } from "./BaseTable"; +export interface DxfDataTableRecord { + dxfDataId: string; + dxf: object; +} +/** + * DxfDataTable in IndexedDb + * Table is known as ObjectStore in IndexedDb + */ +export declare class DxfDataTable extends BaseTable { + tableName(): string; + /** + * Singleton design pattern + */ + private static _instance; + static instance(): DxfDataTable; + /** + * Queires a dxf data + * @param dxfDataId should be a unique id to identify different dxf files + */ + query(dxfDataId: string, successCallback?: any, errorCallback?: any): void; +} diff --git a/demo/libs/types/core/indexeddb/FontDataTable.d.ts b/demo/libs/types/core/indexeddb/FontDataTable.d.ts index 9ea5b5a..4b31f49 100644 --- a/demo/libs/types/core/indexeddb/FontDataTable.d.ts +++ b/demo/libs/types/core/indexeddb/FontDataTable.d.ts @@ -1,32 +1,32 @@ -import { BaseTable } from "./BaseTable"; -import type { Orientation, ShxFontType } from "../../core/font/shx"; -export interface FontDataTableRecord { - fontType?: ShxFontType; - order: number; - data: Record; - info: string; - orientation: Orientation; - baseUp: number; - baseDown: number; - fileName: string; - fileHeader: string; - fileVersion: string; -} -/** - * DxfDataTable in IndexedDb - * Table is known as ObjectStore in IndexedDb - */ -export declare class FontDataTable extends BaseTable { - tableName(): string; - /** - * Singleton design pattern - */ - private static _instance; - static instance(): FontDataTable; - /** - * Queires a dxf data - * @param fileId should be a unique id to identify different dxf files - */ - query(fileName: string): Promise; - queryAll(): Promise; -} +import { BaseTable } from "./BaseTable"; +import type { Orientation, ShxFontType } from "../../core/font/shx"; +export interface FontDataTableRecord { + fontType?: ShxFontType; + order: number; + data: Record; + info: string; + orientation: Orientation; + baseUp: number; + baseDown: number; + fileName: string; + fileHeader: string; + fileVersion: string; +} +/** + * DxfDataTable in IndexedDb + * Table is known as ObjectStore in IndexedDb + */ +export declare class FontDataTable extends BaseTable { + tableName(): string; + /** + * Singleton design pattern + */ + private static _instance; + static instance(): FontDataTable; + /** + * Queires a dxf data + * @param fileId should be a unique id to identify different dxf files + */ + query(fileName: string): Promise; + queryAll(): Promise; +} diff --git a/demo/libs/types/core/indexeddb/IndexedDbManager.d.ts b/demo/libs/types/core/indexeddb/IndexedDbManager.d.ts index dc60dde..cc34506 100644 --- a/demo/libs/types/core/indexeddb/IndexedDbManager.d.ts +++ b/demo/libs/types/core/indexeddb/IndexedDbManager.d.ts @@ -1,29 +1,29 @@ -export declare class IndexedDbManager { - readonly DATABASE_NAME = "gemini_viewer_db"; - readonly TABLES: { - name: string; - options: { - keyPath: string; - autoIncrement: boolean; - }; - indexArray: never[]; - }[]; - private db?; - /** - * Singleton design pattern - */ - private static _instance; - static instance(): IndexedDbManager; - /** - * Make sure to open database, and the table is already created before add/put/delete, etc. - */ - getDatabase(): Promise; - /** - * Close database. - */ - closeDatabase(): void; - private deleteDataBase; - private getDB; - private getUpgradedDB; - private createTable; -} +export declare class IndexedDbManager { + readonly DATABASE_NAME = "gemini_viewer_db"; + readonly TABLES: { + name: string; + options: { + keyPath: string; + autoIncrement: boolean; + }; + indexArray: never[]; + }[]; + private db?; + /** + * Singleton design pattern + */ + private static _instance; + static instance(): IndexedDbManager; + /** + * Make sure to open database, and the table is already created before add/put/delete, etc. + */ + getDatabase(): Promise; + /** + * Close database. + */ + closeDatabase(): void; + private deleteDataBase; + private getDB; + private getUpgradedDB; + private createTable; +} diff --git a/demo/libs/types/core/indexeddb/ViewpointTable.d.ts b/demo/libs/types/core/indexeddb/ViewpointTable.d.ts index 2e1427e..5ae1eb1 100644 --- a/demo/libs/types/core/indexeddb/ViewpointTable.d.ts +++ b/demo/libs/types/core/indexeddb/ViewpointTable.d.ts @@ -1,14 +1,14 @@ -import { BaseTable } from "./BaseTable"; -/** - * ViewpointTable in IndexedDb - * Table is known as ObjectStore in IndexedDb - */ -export declare class ViewpointTable extends BaseTable { - tableName(): string; - /** - * Singleton design pattern - */ - private static _instance; - static instance(): ViewpointTable; - query(projectId: string, successCallback?: any, errorCallback?: any): void; -} +import { BaseTable } from "./BaseTable"; +/** + * ViewpointTable in IndexedDb + * Table is known as ObjectStore in IndexedDb + */ +export declare class ViewpointTable extends BaseTable { + tableName(): string; + /** + * Singleton design pattern + */ + private static _instance; + static instance(): ViewpointTable; + query(projectId: string, successCallback?: any, errorCallback?: any): void; +} diff --git a/demo/libs/types/core/indexeddb/index.d.ts b/demo/libs/types/core/indexeddb/index.d.ts index e72b70a..0a25025 100644 --- a/demo/libs/types/core/indexeddb/index.d.ts +++ b/demo/libs/types/core/indexeddb/index.d.ts @@ -1,6 +1,6 @@ -export * from "./AnnotationTable"; -export * from "./BaseTable"; -export * from "./IndexedDbManager"; -export * from "./ViewpointTable"; -export * from "./DxfDataTable"; -export * from "./FontDataTable"; +export * from "./AnnotationTable"; +export * from "./BaseTable"; +export * from "./IndexedDbManager"; +export * from "./ViewpointTable"; +export * from "./DxfDataTable"; +export * from "./FontDataTable"; diff --git a/demo/libs/types/core/input/InputManager.d.ts b/demo/libs/types/core/input/InputManager.d.ts index 29c83fa..1a6e407 100644 --- a/demo/libs/types/core/input/InputManager.d.ts +++ b/demo/libs/types/core/input/InputManager.d.ts @@ -1,152 +1,152 @@ -import { Event } from "../../core/utils"; -declare type NativeEvent = UIEvent | MouseEvent | PointerEvent | WheelEvent | KeyboardEvent; -export interface IUIEvent { - readonly type: string; - readonly target: any; - readonly preventDefault: () => void; -} -export interface IMouseEvent extends IUIEvent { - readonly altKey: boolean; - readonly ctrlKey: boolean; - readonly shiftKey: boolean; - readonly button: number; - readonly clientX: number; - readonly clientY: number; - readonly pageX: number; - readonly pageY: number; - readonly x: number; - readonly y: number; - readonly timestamp: number; -} -export interface IPointerEvent extends IMouseEvent { - readonly pointerId: number; - readonly pointerType: string; -} -export interface IWheelEvent extends IMouseEvent { - readonly deltaMode: number; - readonly deltaX: number; - readonly deltaY: number; - readonly deltaZ: number; -} -export interface IKeyboardEvent extends IUIEvent { - readonly altKey: boolean; - readonly ctrlKey: boolean; - readonly shiftKey: boolean; - readonly key: string; - readonly code: string; -} -export declare enum MouseButton { - /** Left Click or Touch */ - Left = 0, - /** Middle Click */ - Middle = 1, - /** Right Click */ - Right = 2, - /** Browser Back */ - Back = 3, - /** Browser Forward */ - Forward = 4 -} -export declare enum MouseButtons { - None = 0, - /** Left Click or Touch */ - Left = 1, - /** Right Click */ - Right = 2, - /** Middle Click */ - Middle = 4 -} -declare type MouseButtonType = MouseButton | MouseButtons; -/** - * - */ -export interface EventInfo { - x: number; - y: number; - pageX: number; - pageY: number; - clientX: number; - clientY: number; - deltaMode: number; - deltaX: number; - deltaY: number; - movementX: number; - movementY: number; - code?: string; - pointerId: number; - pointers?: EventInfo[]; - button?: MouseButtonType; - buttons: MouseButtonType; - pointerType: string; - altKey: boolean; - ctrlKey: boolean; - shiftKey: boolean; - metaKey: boolean; - timestamp: number; - originalEvent?: NativeEvent; -} -export declare type InputEvents = { - pointerdown: EventInfo; - pointermove: EventInfo; - pointerup: EventInfo; - pointercancel: EventInfo; - pointerenter: EventInfo; - pointerleave: EventInfo; - wheel: EventInfo; - click: EventInfo; - dblclick: EventInfo; - contextmenu: EventInfo; - mousedown: EventInfo; - mousemove: EventInfo; - mouseup: EventInfo; - touchstart: EventInfo; - touchmove: EventInfo; - touchend: EventInfo; - keydown: EventInfo; - keyup: EventInfo; - resize: EventInfo; -}; -export declare class InputManager extends Event { - private element; - private enabled; - private keyboardEnabled; - protected mouseDownPositionX: number; - protected mouseDownPositionY: number; - protected lastLeftPointerUpTime: number; - private pointers; - constructor(element: HTMLElement); - getEnabled(): boolean; - setEnabled(enable: boolean): void; - getkKeyboardEnabled(): boolean; - setkKeyboardEnabled(enable: boolean): void; - setCursor(cursorStyle: string): void; - bindEvents(): void; - private handleClick; - private handlePointerDown; - private handlePointerMove; - private handlePointerUp; - private handlePointerCancel; - private handleMouseWheel; - private handleContextMenu; - private handlePointerEnter; - private handlePointerLeave; - private handleResize; - private handleKeydown; - private handleKeyup; - unBindEvents(): void; - private getBaseEvent; - private stop; - private updatePointers; - private removePointers; - style: {}; - getBoundingClientRect(): DOMRect; - /** - * Checks if user clicked on last position, this is used to detect a dblclick event. - */ - private isCloseToLastPosition; - /** - * Checks if a dblclick event happen. - */ - private isDoubleClick; -} -export {}; +import { Event } from "../../core/utils"; +declare type NativeEvent = UIEvent | MouseEvent | PointerEvent | WheelEvent | KeyboardEvent; +export interface IUIEvent { + readonly type: string; + readonly target: any; + readonly preventDefault: () => void; +} +export interface IMouseEvent extends IUIEvent { + readonly altKey: boolean; + readonly ctrlKey: boolean; + readonly shiftKey: boolean; + readonly button: number; + readonly clientX: number; + readonly clientY: number; + readonly pageX: number; + readonly pageY: number; + readonly x: number; + readonly y: number; + readonly timestamp: number; +} +export interface IPointerEvent extends IMouseEvent { + readonly pointerId: number; + readonly pointerType: string; +} +export interface IWheelEvent extends IMouseEvent { + readonly deltaMode: number; + readonly deltaX: number; + readonly deltaY: number; + readonly deltaZ: number; +} +export interface IKeyboardEvent extends IUIEvent { + readonly altKey: boolean; + readonly ctrlKey: boolean; + readonly shiftKey: boolean; + readonly key: string; + readonly code: string; +} +export declare enum MouseButton { + /** Left Click or Touch */ + Left = 0, + /** Middle Click */ + Middle = 1, + /** Right Click */ + Right = 2, + /** Browser Back */ + Back = 3, + /** Browser Forward */ + Forward = 4 +} +export declare enum MouseButtons { + None = 0, + /** Left Click or Touch */ + Left = 1, + /** Right Click */ + Right = 2, + /** Middle Click */ + Middle = 4 +} +declare type MouseButtonType = MouseButton | MouseButtons; +/** + * + */ +export interface EventInfo { + x: number; + y: number; + pageX: number; + pageY: number; + clientX: number; + clientY: number; + deltaMode: number; + deltaX: number; + deltaY: number; + movementX: number; + movementY: number; + code?: string; + pointerId: number; + pointers?: EventInfo[]; + button?: MouseButtonType; + buttons: MouseButtonType; + pointerType: string; + altKey: boolean; + ctrlKey: boolean; + shiftKey: boolean; + metaKey: boolean; + timestamp: number; + originalEvent?: NativeEvent; +} +export declare type InputEvents = { + pointerdown: EventInfo; + pointermove: EventInfo; + pointerup: EventInfo; + pointercancel: EventInfo; + pointerenter: EventInfo; + pointerleave: EventInfo; + wheel: EventInfo; + click: EventInfo; + dblclick: EventInfo; + contextmenu: EventInfo; + mousedown: EventInfo; + mousemove: EventInfo; + mouseup: EventInfo; + touchstart: EventInfo; + touchmove: EventInfo; + touchend: EventInfo; + keydown: EventInfo; + keyup: EventInfo; + resize: EventInfo; +}; +export declare class InputManager extends Event { + private element; + private enabled; + private keyboardEnabled; + protected mouseDownPositionX: number; + protected mouseDownPositionY: number; + protected lastLeftPointerUpTime: number; + private pointers; + constructor(element: HTMLElement); + getEnabled(): boolean; + setEnabled(enable: boolean): void; + getkKeyboardEnabled(): boolean; + setkKeyboardEnabled(enable: boolean): void; + setCursor(cursorStyle: string): void; + bindEvents(): void; + private handleClick; + private handlePointerDown; + private handlePointerMove; + private handlePointerUp; + private handlePointerCancel; + private handleMouseWheel; + private handleContextMenu; + private handlePointerEnter; + private handlePointerLeave; + private handleResize; + private handleKeydown; + private handleKeyup; + unBindEvents(): void; + private getBaseEvent; + private stop; + private updatePointers; + private removePointers; + style: {}; + getBoundingClientRect(): DOMRect; + /** + * Checks if user clicked on last position, this is used to detect a dblclick event. + */ + private isCloseToLastPosition; + /** + * Checks if a dblclick event happen. + */ + private isDoubleClick; +} +export {}; diff --git a/demo/libs/types/core/input/index.d.ts b/demo/libs/types/core/input/index.d.ts index 9b10bf3..2fd57a6 100644 --- a/demo/libs/types/core/input/index.d.ts +++ b/demo/libs/types/core/input/index.d.ts @@ -1 +1 @@ -export { InputManager, InputEvents as InputEvent } from "./InputManager"; +export { InputManager, InputEvents as InputEvent } from "./InputManager"; diff --git a/demo/libs/types/core/markup/ArrowMarkup.d.ts b/demo/libs/types/core/markup/ArrowMarkup.d.ts index af41da3..053ae5f 100644 --- a/demo/libs/types/core/markup/ArrowMarkup.d.ts +++ b/demo/libs/types/core/markup/ArrowMarkup.d.ts @@ -1,14 +1,14 @@ -import * as THREE from "three"; -import { BaseMarkup } from "../../core/markup/BaseMarkup"; -import { MarkupType } from "../../core/markup/Constants"; -export declare class ArrowMarkup extends BaseMarkup { - type: MarkupType; - constructor(id: string, points: THREE.Vector3[]); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - private drawArrowLine; - private drawArrowHead; - getVertexes(): THREE.Vector3[]; - update(points: THREE.Vector3[]): this; - isPointInPath(p: THREE.Vector3): boolean; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMarkup } from "../../core/markup/BaseMarkup"; +import { MarkupType } from "../../core/markup/Constants"; +export declare class ArrowMarkup extends BaseMarkup { + type: MarkupType; + constructor(id: string, points: THREE.Vector3[]); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + private drawArrowLine; + private drawArrowHead; + getVertexes(): THREE.Vector3[]; + update(points: THREE.Vector3[]): this; + isPointInPath(p: THREE.Vector3): boolean; + getClassType(): string; +} diff --git a/demo/libs/types/core/markup/BaseMarkup.d.ts b/demo/libs/types/core/markup/BaseMarkup.d.ts index d472110..e361d3a 100644 --- a/demo/libs/types/core/markup/BaseMarkup.d.ts +++ b/demo/libs/types/core/markup/BaseMarkup.d.ts @@ -1,28 +1,28 @@ -import * as THREE from "three"; -import { DrawableData } from "../../core/canvas/Constants"; -import { Drawable } from "../../core/canvas/Drawable"; -import type { TextMarkup } from "../../core/markup/TextMarkup"; -export declare abstract class BaseMarkup extends Drawable { - protected editPointSize: number; - protected editPointFillColor: string; - protected editPointStrokeColor: string; - protected ctx?: CanvasRenderingContext2D; - leaderText?: TextMarkup; - parent?: BaseMarkup; - constructor(id: string); - isSelected(): boolean; - drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - private drawPoints; - setEditPointSize(size: number): void; - setEditPointFillColor(color: string): void; - setEditPointStrokeColor(color: string): void; - getCenter(): THREE.Vector3; - isPointInPath(p: THREE.Vector3): boolean; - setData(data: DrawableData): void; - setParent(parent: BaseMarkup): void; - setLeaderText(textMarkup: TextMarkup): void; - update(points: THREE.Vector3[]): this; - translate(tx: number, ty: number): this; - rotate(): this; - scale(): this; -} +import * as THREE from "three"; +import { DrawableData } from "../../core/canvas/Constants"; +import { Drawable } from "../../core/canvas/Drawable"; +import type { TextMarkup } from "../../core/markup/TextMarkup"; +export declare abstract class BaseMarkup extends Drawable { + protected editPointSize: number; + protected editPointFillColor: string; + protected editPointStrokeColor: string; + protected ctx?: CanvasRenderingContext2D; + leaderText?: TextMarkup; + parent?: BaseMarkup; + constructor(id: string); + isSelected(): boolean; + drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + private drawPoints; + setEditPointSize(size: number): void; + setEditPointFillColor(color: string): void; + setEditPointStrokeColor(color: string): void; + getCenter(): THREE.Vector3; + isPointInPath(p: THREE.Vector3): boolean; + setData(data: DrawableData): void; + setParent(parent: BaseMarkup): void; + setLeaderText(textMarkup: TextMarkup): void; + update(points: THREE.Vector3[]): this; + translate(tx: number, ty: number): this; + rotate(): this; + scale(): this; +} diff --git a/demo/libs/types/core/markup/CircleMarkup.d.ts b/demo/libs/types/core/markup/CircleMarkup.d.ts index 4d9d4bb..c513f4e 100644 --- a/demo/libs/types/core/markup/CircleMarkup.d.ts +++ b/demo/libs/types/core/markup/CircleMarkup.d.ts @@ -1,12 +1,12 @@ -import * as THREE from "three"; -import { BaseMarkup } from "../../core/markup/BaseMarkup"; -import { MarkupType } from "../../core/markup/Constants"; -export declare class CircleMarkup extends BaseMarkup { - radius: number; - type: MarkupType; - constructor(id: string, points: THREE.Vector3[]); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - update(points: THREE.Vector3[]): this; - isPointInPath(p: THREE.Vector3): boolean; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMarkup } from "../../core/markup/BaseMarkup"; +import { MarkupType } from "../../core/markup/Constants"; +export declare class CircleMarkup extends BaseMarkup { + radius: number; + type: MarkupType; + constructor(id: string, points: THREE.Vector3[]); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + update(points: THREE.Vector3[]): this; + isPointInPath(p: THREE.Vector3): boolean; + getClassType(): string; +} diff --git a/demo/libs/types/core/markup/CloudLineMarkup.d.ts b/demo/libs/types/core/markup/CloudLineMarkup.d.ts index ec6970d..5b0e4ed 100644 --- a/demo/libs/types/core/markup/CloudLineMarkup.d.ts +++ b/demo/libs/types/core/markup/CloudLineMarkup.d.ts @@ -1,10 +1,10 @@ -import * as THREE from "three"; -import { BaseMarkup } from "../../core/markup/BaseMarkup"; -import { MarkupType } from "../../core/markup/Constants"; -export declare class CloudLineMarkup extends BaseMarkup { - type: MarkupType; - constructor(id: string, points: THREE.Vector3[]); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - static getControlPointByTwoPoints(p1: THREE.Vector2, p2: THREE.Vector2): THREE.Vector2; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMarkup } from "../../core/markup/BaseMarkup"; +import { MarkupType } from "../../core/markup/Constants"; +export declare class CloudLineMarkup extends BaseMarkup { + type: MarkupType; + constructor(id: string, points: THREE.Vector3[]); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + static getControlPointByTwoPoints(p1: THREE.Vector2, p2: THREE.Vector2): THREE.Vector2; + getClassType(): string; +} diff --git a/demo/libs/types/core/markup/CloudRectMarkup.d.ts b/demo/libs/types/core/markup/CloudRectMarkup.d.ts index f6ba0d9..8751018 100644 --- a/demo/libs/types/core/markup/CloudRectMarkup.d.ts +++ b/demo/libs/types/core/markup/CloudRectMarkup.d.ts @@ -1,11 +1,11 @@ -import * as THREE from "three"; -import { BaseMarkup } from "../../core/markup/BaseMarkup"; -import { MarkupType } from "../../core/markup/Constants"; -export declare class CloudRectMarkup extends BaseMarkup { - type: MarkupType; - private vertexes?; - constructor(id: string, points: THREE.Vector3[]); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - isPointInPath(p: THREE.Vector3): boolean; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMarkup } from "../../core/markup/BaseMarkup"; +import { MarkupType } from "../../core/markup/Constants"; +export declare class CloudRectMarkup extends BaseMarkup { + type: MarkupType; + private vertexes?; + constructor(id: string, points: THREE.Vector3[]); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + isPointInPath(p: THREE.Vector3): boolean; + getClassType(): string; +} diff --git a/demo/libs/types/core/markup/CloudRectWithTextMarkup.d.ts b/demo/libs/types/core/markup/CloudRectWithTextMarkup.d.ts index 70bace2..bec2ebb 100644 --- a/demo/libs/types/core/markup/CloudRectWithTextMarkup.d.ts +++ b/demo/libs/types/core/markup/CloudRectWithTextMarkup.d.ts @@ -1,43 +1,43 @@ -import * as THREE from "three"; -import type { MarkupManager } from "./MarkupManager"; -import { DrawableData } from "../../core/canvas"; -import { MarkupType } from "../../core/markup/Constants"; -import { TextMarkup } from "../../core/markup/TextMarkup"; -export interface CloudRectWithTextShape extends DrawableData { - text: string; - fontSize: number; - textPosition: number[]; -} -export declare class CloudRectWithTextMarkup extends TextMarkup { - type: MarkupType; - private textPosition; - private controlPoints?; - private vertexes?; - private textBounds; - text: string; - fontSize: number; - static LEADER_LINE_WIDTH: number; - constructor(id: string, points: THREE.Vector3[], text?: string); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - private drawCloudRect; - private drawLeaderLine; - protected drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera, text: string): void; - translate(tx: number, ty: number): this; - update(points: THREE.Vector3[]): this; - getCloudPoints(): THREE.Vector3[]; - getBounds(): THREE.Box3; - getVertexes(): THREE.Vector3[]; - isLeaderTextSelected(p: THREE.Vector3): boolean; - translateLeaderText(tx: number, ty: number): this; - isPointInPath(p: THREE.Vector3): boolean; - setData(data: CloudRectWithTextShape): void; - updateText(text: string): void; - getData(): CloudRectWithTextShape; - getClassType(): string; - addInput(manager: MarkupManager, x: number, y: number): void; - updateInputPosition(p1: THREE.Vector2, p2: THREE.Vector2): void; - handleClick: () => void; - handleInput: () => void; - handleCompositionEnd: () => void; - private calcInputPositionByText; -} +import * as THREE from "three"; +import type { MarkupManager } from "./MarkupManager"; +import { DrawableData } from "../../core/canvas"; +import { MarkupType } from "../../core/markup/Constants"; +import { TextMarkup } from "../../core/markup/TextMarkup"; +export interface CloudRectWithTextShape extends DrawableData { + text: string; + fontSize: number; + textPosition: number[]; +} +export declare class CloudRectWithTextMarkup extends TextMarkup { + type: MarkupType; + private textPosition; + private controlPoints?; + private vertexes?; + private textBounds; + text: string; + fontSize: number; + static LEADER_LINE_WIDTH: number; + constructor(id: string, points: THREE.Vector3[], text?: string); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + private drawCloudRect; + private drawLeaderLine; + protected drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera, text: string): void; + translate(tx: number, ty: number): this; + update(points: THREE.Vector3[]): this; + getCloudPoints(): THREE.Vector3[]; + getBounds(): THREE.Box3; + getVertexes(): THREE.Vector3[]; + isLeaderTextSelected(p: THREE.Vector3): boolean; + translateLeaderText(tx: number, ty: number): this; + isPointInPath(p: THREE.Vector3): boolean; + setData(data: CloudRectWithTextShape): void; + updateText(text: string): void; + getData(): CloudRectWithTextShape; + getClassType(): string; + addInput(manager: MarkupManager, x: number, y: number): void; + updateInputPosition(p1: THREE.Vector2, p2: THREE.Vector2): void; + handleClick: () => void; + handleInput: () => void; + handleCompositionEnd: () => void; + private calcInputPositionByText; +} diff --git a/demo/libs/types/core/markup/Constants.d.ts b/demo/libs/types/core/markup/Constants.d.ts index 6e91960..daadf7c 100644 --- a/demo/libs/types/core/markup/Constants.d.ts +++ b/demo/libs/types/core/markup/Constants.d.ts @@ -1,17 +1,17 @@ -/** - * Markup type, including Arrow, Circle, Rectangle, Text, etc. - */ -export declare enum MarkupType { - Arrow = "ArrowMarkup", - Circle = "CircleMarkup", - CloudLine = "CloudLineMarkup", - CloudLineRectangle = "CloudRectMarkup", - CloudRectWithText = "CloudRectWithTextMarkup", - Dot = "DotMarkup", - Ellipse = "EllipseMarkup", - LeaderLine = "LeaderLineMarkup", - PolyLine = "PolylineMarkup", - Rectangle = "RectMarkup", - Text = "TextMarkup", - X = "XMarkup" -} +/** + * Markup type, including Arrow, Circle, Rectangle, Text, etc. + */ +export declare enum MarkupType { + Arrow = "ArrowMarkup", + Circle = "CircleMarkup", + CloudLine = "CloudLineMarkup", + CloudLineRectangle = "CloudRectMarkup", + CloudRectWithText = "CloudRectWithTextMarkup", + Dot = "DotMarkup", + Ellipse = "EllipseMarkup", + LeaderLine = "LeaderLineMarkup", + PolyLine = "PolylineMarkup", + Rectangle = "RectMarkup", + Text = "TextMarkup", + X = "XMarkup" +} diff --git a/demo/libs/types/core/markup/DotMarkup.d.ts b/demo/libs/types/core/markup/DotMarkup.d.ts index beb7132..1f43a08 100644 --- a/demo/libs/types/core/markup/DotMarkup.d.ts +++ b/demo/libs/types/core/markup/DotMarkup.d.ts @@ -1,9 +1,9 @@ -import * as THREE from "three"; -import { BaseMarkup } from "../../core/markup/BaseMarkup"; -export declare class DotMarkup extends BaseMarkup { - radius: number; - constructor(id: string, points: THREE.Vector3[]); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - update(points: THREE.Vector3[]): this; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMarkup } from "../../core/markup/BaseMarkup"; +export declare class DotMarkup extends BaseMarkup { + radius: number; + constructor(id: string, points: THREE.Vector3[]); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + update(points: THREE.Vector3[]): this; + getClassType(): string; +} diff --git a/demo/libs/types/core/markup/EllipseMarkup.d.ts b/demo/libs/types/core/markup/EllipseMarkup.d.ts index c1f0507..36d8912 100644 --- a/demo/libs/types/core/markup/EllipseMarkup.d.ts +++ b/demo/libs/types/core/markup/EllipseMarkup.d.ts @@ -1,12 +1,12 @@ -import * as THREE from "three"; -import { BaseMarkup } from "../../core/markup/BaseMarkup"; -import { MarkupType } from "../../core/markup/Constants"; -export declare class EllipseMarkup extends BaseMarkup { - radiusX: number; - radiusY: number; - type: MarkupType; - constructor(id: string, points: THREE.Vector3[]); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - isPointInPath(p: THREE.Vector3): boolean; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMarkup } from "../../core/markup/BaseMarkup"; +import { MarkupType } from "../../core/markup/Constants"; +export declare class EllipseMarkup extends BaseMarkup { + radiusX: number; + radiusY: number; + type: MarkupType; + constructor(id: string, points: THREE.Vector3[]); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + isPointInPath(p: THREE.Vector3): boolean; + getClassType(): string; +} diff --git a/demo/libs/types/core/markup/LeaderLineMarkup.d.ts b/demo/libs/types/core/markup/LeaderLineMarkup.d.ts index 6002748..d89a407 100644 --- a/demo/libs/types/core/markup/LeaderLineMarkup.d.ts +++ b/demo/libs/types/core/markup/LeaderLineMarkup.d.ts @@ -1,25 +1,25 @@ -import * as THREE from "three"; -import { MarkupType } from "./Constants"; -import type { MarkupManager } from "./MarkupManager"; -import { TextShape, TextMarkup } from "./TextMarkup"; -export declare class LeaderLineMarkup extends TextMarkup { - type: MarkupType; - text: string; - fontSize: number; - private textBounds; - constructor(id: string, points: THREE.Vector3[], text: string); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - private drawArrowHead; - private drawArrowLine; - protected drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera, text: string): void; - getVertexes(): THREE.Vector3[]; - update(points: THREE.Vector3[]): this; - getData(): TextShape; - isPointInPath(p: THREE.Vector3): boolean; - updateText(text: string): void; - getClassType(): string; - addInput(manager: MarkupManager, x: number, y: number): void; - handleInput: () => void; - handleCompositionEnd: () => void; - private calcuTextInputPositionByText; -} +import * as THREE from "three"; +import { MarkupType } from "./Constants"; +import type { MarkupManager } from "./MarkupManager"; +import { TextShape, TextMarkup } from "./TextMarkup"; +export declare class LeaderLineMarkup extends TextMarkup { + type: MarkupType; + text: string; + fontSize: number; + private textBounds; + constructor(id: string, points: THREE.Vector3[], text: string); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + private drawArrowHead; + private drawArrowLine; + protected drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera, text: string): void; + getVertexes(): THREE.Vector3[]; + update(points: THREE.Vector3[]): this; + getData(): TextShape; + isPointInPath(p: THREE.Vector3): boolean; + updateText(text: string): void; + getClassType(): string; + addInput(manager: MarkupManager, x: number, y: number): void; + handleInput: () => void; + handleCompositionEnd: () => void; + private calcuTextInputPositionByText; +} diff --git a/demo/libs/types/core/markup/MarkupManager.d.ts b/demo/libs/types/core/markup/MarkupManager.d.ts index 09c3db9..9057f10 100644 --- a/demo/libs/types/core/markup/MarkupManager.d.ts +++ b/demo/libs/types/core/markup/MarkupManager.d.ts @@ -1,91 +1,91 @@ -import * as THREE from "three"; -import { BaseMarkup } from "./BaseMarkup"; -import { MarkupType } from "./Constants"; -import { CanvasRender, DrawableData } from "../../core/canvas"; -import type { EventInfo, InputManager } from "../../core/input/InputManager"; -import { Event } from "../../core/utils"; -import type { BaseViewer } from "../../core/viewers"; -declare type MarkupEvents = { - StartDraw: BaseMarkup; - EndDraw: BaseMarkup; - EndEdit: BaseMarkup; -}; -export declare class MarkupManager extends Event { - private viewer; - private inputManager; - overlayRender?: CanvasRender; - private drawableList; - private lineWidth; - private lineColor; - private fillColor; - private fontSize; - protected mouseDown: boolean; - protected mouseDownPositionX?: number; - protected mouseDownPositionY?: number; - protected mousedownPoint?: THREE.Vector2; - private isSelectLeaderText; - private tempKey?; - private tempTouch?; - private tempArrowKeys?; - private selectedShape?; - private type?; - private isDrawing; - private initialDataForEditing?; - private creatingShape?; - private tempPoints; - private activated; - protected exitButton?: HTMLButtonElement; - constructor(viewer: BaseViewer, input: InputManager); - get viewerCanvas(): HTMLCanvasElement; - get camera(): THREE.OrthographicCamera | THREE.PerspectiveCamera; - get raycaster(): THREE.Raycaster; - setMarkupVisibility(id: string, visible: boolean): boolean; - setMarkupsVisibility(visible: boolean): void; - clearAll(): void; - isMarkupActive(): boolean; - protected createMobileExitButton(): HTMLButtonElement; - activate(): void; - deactivate(): void; - getActiveMarkupType(): MarkupType | undefined; - setDrawType(type: MarkupType): void; - setLineWidth(linewidth: number): void; - getLineWidth(): number; - setLineColor(color: number[]): void; - getLineColor(): number[]; - setFillColor(color: number[]): void; - getFillColor(): number[]; - setFontSize(fontSize: number): void; - getFontSize(): number; - pickPositionByScreenPoint(p: THREE.Vector2): THREE.Vector3 | undefined; - pickThreejsPositionByMouse(e: EventInfo): THREE.Vector3 | undefined; - handleDbClick: () => void; - handleInputMousemove: (e: MouseEvent) => void; - mousedown: (e: EventInfo) => void; - mousemove: (e: EventInfo) => void; - mouseup: (e: EventInfo) => void; - keydown: (e: EventInfo) => void; - confirmToRemove(isConfirm: boolean): void; - isEditing(): boolean; - endEdit(selectMarkup: BaseMarkup): void; - endDraw(createdMarkup?: BaseMarkup): void; - cancelDraw(createdMarkup?: BaseMarkup): void; - reset(): void; - render(): void; - addMarkup(markup: BaseMarkup, needFireEvent?: boolean): void; - updateMarkup(markup: BaseMarkup, newData: DrawableData, needFireEvent?: boolean): void; - removeMarkup(markup: BaseMarkup, needFireEvent?: boolean): void; - removeMarkupById(id: string): boolean; - createMarkup(data: DrawableData): BaseMarkup; - getMarkupById(id: string): BaseMarkup; - getMarkupData(): DrawableData[]; - setMarkupData(markupDatas: DrawableData[]): void; - private isCreateLineMode; - private isCreateDotMode; - private isCreateTextMode; - private isCreateShapeMode; - private drawShape; - private drawLine; - private drawText; - destroy(): void; -} -export {}; +import * as THREE from "three"; +import { BaseMarkup } from "./BaseMarkup"; +import { MarkupType } from "./Constants"; +import { CanvasRender, DrawableData } from "../../core/canvas"; +import type { EventInfo, InputManager } from "../../core/input/InputManager"; +import { Event } from "../../core/utils"; +import type { BaseViewer } from "../../core/viewers"; +declare type MarkupEvents = { + StartDraw: BaseMarkup; + EndDraw: BaseMarkup; + EndEdit: BaseMarkup; +}; +export declare class MarkupManager extends Event { + private viewer; + private inputManager; + overlayRender?: CanvasRender; + private drawableList; + private lineWidth; + private lineColor; + private fillColor; + private fontSize; + protected mouseDown: boolean; + protected mouseDownPositionX?: number; + protected mouseDownPositionY?: number; + protected mousedownPoint?: THREE.Vector2; + private isSelectLeaderText; + private tempKey?; + private tempTouch?; + private tempArrowKeys?; + private selectedShape?; + private type?; + private isDrawing; + private initialDataForEditing?; + private creatingShape?; + private tempPoints; + private activated; + protected exitButton?: HTMLButtonElement; + constructor(viewer: BaseViewer, input: InputManager); + get viewerCanvas(): HTMLCanvasElement; + get camera(): THREE.OrthographicCamera | THREE.PerspectiveCamera; + get raycaster(): THREE.Raycaster; + setMarkupVisibility(id: string, visible: boolean): boolean; + setMarkupsVisibility(visible: boolean): void; + clearAll(): void; + isMarkupActive(): boolean; + protected createMobileExitButton(): HTMLButtonElement; + activate(): void; + deactivate(): void; + getActiveMarkupType(): MarkupType | undefined; + setDrawType(type: MarkupType): void; + setLineWidth(linewidth: number): void; + getLineWidth(): number; + setLineColor(color: number[]): void; + getLineColor(): number[]; + setFillColor(color: number[]): void; + getFillColor(): number[]; + setFontSize(fontSize: number): void; + getFontSize(): number; + pickPositionByScreenPoint(p: THREE.Vector2): THREE.Vector3 | undefined; + pickThreejsPositionByMouse(e: EventInfo): THREE.Vector3 | undefined; + handleDbClick: () => void; + handleInputMousemove: (e: MouseEvent) => void; + mousedown: (e: EventInfo) => void; + mousemove: (e: EventInfo) => void; + mouseup: (e: EventInfo) => void; + keydown: (e: EventInfo) => void; + confirmToRemove(isConfirm: boolean): void; + isEditing(): boolean; + endEdit(selectMarkup: BaseMarkup): void; + endDraw(createdMarkup?: BaseMarkup): void; + cancelDraw(createdMarkup?: BaseMarkup): void; + reset(): void; + render(): void; + addMarkup(markup: BaseMarkup, needFireEvent?: boolean): void; + updateMarkup(markup: BaseMarkup, newData: DrawableData, needFireEvent?: boolean): void; + removeMarkup(markup: BaseMarkup, needFireEvent?: boolean): void; + removeMarkupById(id: string): boolean; + createMarkup(data: DrawableData): BaseMarkup; + getMarkupById(id: string): BaseMarkup; + getMarkupData(): DrawableData[]; + setMarkupData(markupDatas: DrawableData[]): void; + private isCreateLineMode; + private isCreateDotMode; + private isCreateTextMode; + private isCreateShapeMode; + private drawShape; + private drawLine; + private drawText; + destroy(): void; +} +export {}; diff --git a/demo/libs/types/core/markup/PolylineMarkup.d.ts b/demo/libs/types/core/markup/PolylineMarkup.d.ts index d6dfa01..4518076 100644 --- a/demo/libs/types/core/markup/PolylineMarkup.d.ts +++ b/demo/libs/types/core/markup/PolylineMarkup.d.ts @@ -1,11 +1,11 @@ -import * as THREE from "three"; -import { BaseMarkup } from "../../core/markup/BaseMarkup"; -import { MarkupType } from "../../core/markup/Constants"; -export declare class PolylineMarkup extends BaseMarkup { - type: MarkupType; - constructor(id: string, points: THREE.Vector3[]); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - isPointInPath(p: THREE.Vector3): boolean; - getVertexes(): THREE.Vector3[]; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMarkup } from "../../core/markup/BaseMarkup"; +import { MarkupType } from "../../core/markup/Constants"; +export declare class PolylineMarkup extends BaseMarkup { + type: MarkupType; + constructor(id: string, points: THREE.Vector3[]); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + isPointInPath(p: THREE.Vector3): boolean; + getVertexes(): THREE.Vector3[]; + getClassType(): string; +} diff --git a/demo/libs/types/core/markup/RectMarkup.d.ts b/demo/libs/types/core/markup/RectMarkup.d.ts index 4a1e939..9aa8b88 100644 --- a/demo/libs/types/core/markup/RectMarkup.d.ts +++ b/demo/libs/types/core/markup/RectMarkup.d.ts @@ -1,10 +1,10 @@ -import * as THREE from "three"; -import { BaseMarkup } from "../../core/markup/BaseMarkup"; -import { MarkupType } from "../../core/markup/Constants"; -export declare class RectMarkup extends BaseMarkup { - type: MarkupType; - constructor(id: string, points: THREE.Vector3[]); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - isPointInPath(p: THREE.Vector3): boolean; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMarkup } from "../../core/markup/BaseMarkup"; +import { MarkupType } from "../../core/markup/Constants"; +export declare class RectMarkup extends BaseMarkup { + type: MarkupType; + constructor(id: string, points: THREE.Vector3[]); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + isPointInPath(p: THREE.Vector3): boolean; + getClassType(): string; +} diff --git a/demo/libs/types/core/markup/TextMarkup.d.ts b/demo/libs/types/core/markup/TextMarkup.d.ts index b5e1e34..b9b6f59 100644 --- a/demo/libs/types/core/markup/TextMarkup.d.ts +++ b/demo/libs/types/core/markup/TextMarkup.d.ts @@ -1,40 +1,40 @@ -import * as THREE from "three"; -import { BaseMarkup } from "./BaseMarkup"; -import type { MarkupManager } from "./MarkupManager"; -import { DrawableData } from "../../core/canvas"; -import { MarkupType } from "../../core/markup/Constants"; -export interface TextShape extends DrawableData { - text: string; - fontSize: number; -} -export declare class TextMarkup extends BaseMarkup { - text: string; - fontSize: number; - type: MarkupType; - protected padding: number; - static readonly DEFAULT_INPUT_WIDTH = 50; - protected manager?: MarkupManager; - protected textInput?: HTMLTextAreaElement; - protected inputStatus: string; - isEditing: boolean; - constructor(id: string, points: THREE.Vector3[], text: string); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - protected drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera, text: string): void; - setFontSize(fontSize: number): void; - update(points: THREE.Vector3[]): this; - setData(data: TextShape): void; - updateText(text: string): void; - getData(): TextShape; - getClassType(): string; - addInput(manager: MarkupManager, x?: number, y?: number): void; - addInputEvents(): void; - handleClick: () => void; - handleKeydown: (e: KeyboardEvent) => void; - handleInput: () => void; - handleCompositionStart: () => void; - handleCompositionEnd: () => void; - handleBlur: () => void; - handleFoucs: () => void; - enterEditing(): void; - exitEditing(): void; -} +import * as THREE from "three"; +import { BaseMarkup } from "./BaseMarkup"; +import type { MarkupManager } from "./MarkupManager"; +import { DrawableData } from "../../core/canvas"; +import { MarkupType } from "../../core/markup/Constants"; +export interface TextShape extends DrawableData { + text: string; + fontSize: number; +} +export declare class TextMarkup extends BaseMarkup { + text: string; + fontSize: number; + type: MarkupType; + protected padding: number; + static readonly DEFAULT_INPUT_WIDTH = 50; + protected manager?: MarkupManager; + protected textInput?: HTMLTextAreaElement; + protected inputStatus: string; + isEditing: boolean; + constructor(id: string, points: THREE.Vector3[], text: string); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + protected drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera, text: string): void; + setFontSize(fontSize: number): void; + update(points: THREE.Vector3[]): this; + setData(data: TextShape): void; + updateText(text: string): void; + getData(): TextShape; + getClassType(): string; + addInput(manager: MarkupManager, x?: number, y?: number): void; + addInputEvents(): void; + handleClick: () => void; + handleKeydown: (e: KeyboardEvent) => void; + handleInput: () => void; + handleCompositionStart: () => void; + handleCompositionEnd: () => void; + handleBlur: () => void; + handleFoucs: () => void; + enterEditing(): void; + exitEditing(): void; +} diff --git a/demo/libs/types/core/markup/XMarkup.d.ts b/demo/libs/types/core/markup/XMarkup.d.ts index 2be7f39..6e02518 100644 --- a/demo/libs/types/core/markup/XMarkup.d.ts +++ b/demo/libs/types/core/markup/XMarkup.d.ts @@ -1,10 +1,10 @@ -import * as THREE from "three"; -import { BaseMarkup } from "../../core/markup/BaseMarkup"; -import { MarkupType } from "../../core/markup/Constants"; -export declare class XMarkup extends BaseMarkup { - type: MarkupType; - constructor(id: string, points: THREE.Vector3[]); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - isPointInPath(p: THREE.Vector3): boolean; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMarkup } from "../../core/markup/BaseMarkup"; +import { MarkupType } from "../../core/markup/Constants"; +export declare class XMarkup extends BaseMarkup { + type: MarkupType; + constructor(id: string, points: THREE.Vector3[]); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + isPointInPath(p: THREE.Vector3): boolean; + getClassType(): string; +} diff --git a/demo/libs/types/core/markup/index.d.ts b/demo/libs/types/core/markup/index.d.ts index 17056b7..817edc7 100644 --- a/demo/libs/types/core/markup/index.d.ts +++ b/demo/libs/types/core/markup/index.d.ts @@ -1,13 +1,13 @@ -export * from "./ArrowMarkup"; -export * from "./CircleMarkup"; -export * from "./CloudLineMarkup"; -export * from "./CloudRectMarkup"; -export * from "./DotMarkup"; -export * from "./EllipseMarkup"; -export * from "./LeaderLineMarkup"; -export * from "./PolylineMarkup"; -export * from "./RectMarkup"; -export * from "./TextMarkup"; -export * from "./XMarkup"; -export * from "./MarkupManager"; -export * from "./Constants"; +export * from "./ArrowMarkup"; +export * from "./CircleMarkup"; +export * from "./CloudLineMarkup"; +export * from "./CloudRectMarkup"; +export * from "./DotMarkup"; +export * from "./EllipseMarkup"; +export * from "./LeaderLineMarkup"; +export * from "./PolylineMarkup"; +export * from "./RectMarkup"; +export * from "./TextMarkup"; +export * from "./XMarkup"; +export * from "./MarkupManager"; +export * from "./Constants"; diff --git a/demo/libs/types/core/materials/GeminiStandardMaterial.d.ts b/demo/libs/types/core/materials/GeminiStandardMaterial.d.ts index 8ef73a9..24d4595 100644 --- a/demo/libs/types/core/materials/GeminiStandardMaterial.d.ts +++ b/demo/libs/types/core/materials/GeminiStandardMaterial.d.ts @@ -1,16 +1,16 @@ -import * as THREE from "three"; -export declare class GeminiStandardMaterial extends THREE.MeshStandardMaterial { - isGeminiStandardMaterial: boolean; - useBCOutline: boolean; - borderLineVisible: boolean; - outLineColor: THREE.Color; - uniforms: Record; - vertexShader: string; - fragmentShader: string; - useForCap: boolean; - constructor(parameters?: any); - refreshUniforms(): void; - setBorderLineVisible(bVisible: boolean): void; - setOutLineColor(color?: THREE.Color): void; - copy(source: any): this; -} +import * as THREE from "three"; +export declare class GeminiStandardMaterial extends THREE.MeshStandardMaterial { + isGeminiStandardMaterial: boolean; + useBCOutline: boolean; + borderLineVisible: boolean; + outLineColor: THREE.Color; + uniforms: Record; + vertexShader: string; + fragmentShader: string; + useForCap: boolean; + constructor(parameters?: any); + refreshUniforms(): void; + setBorderLineVisible(bVisible: boolean): void; + setOutLineColor(color?: THREE.Color): void; + copy(source: any): this; +} diff --git a/demo/libs/types/core/materials/index.d.ts b/demo/libs/types/core/materials/index.d.ts index 438bb06..77b1695 100644 --- a/demo/libs/types/core/materials/index.d.ts +++ b/demo/libs/types/core/materials/index.d.ts @@ -1 +1 @@ -export * from "./GeminiStandardMaterial"; +export * from "./GeminiStandardMaterial"; diff --git a/demo/libs/types/core/patches/Constants.d.ts b/demo/libs/types/core/patches/Constants.d.ts index 692b55d..72cc368 100644 --- a/demo/libs/types/core/patches/Constants.d.ts +++ b/demo/libs/types/core/patches/Constants.d.ts @@ -1,4 +1,4 @@ -/** - * @internal - */ -export declare const MAX_RAYCAST_INTERSECTION_COUNT = 1; +/** + * @internal + */ +export declare const MAX_RAYCAST_INTERSECTION_COUNT = 1; diff --git a/demo/libs/types/core/patches/Line.d.ts b/demo/libs/types/core/patches/Line.d.ts index a2a6336..67f7b3d 100644 --- a/demo/libs/types/core/patches/Line.d.ts +++ b/demo/libs/types/core/patches/Line.d.ts @@ -1,2 +1,2 @@ -import { Line } from "three"; -export { Line }; +import { Line } from "three"; +export { Line }; diff --git a/demo/libs/types/core/patches/Mesh.d.ts b/demo/libs/types/core/patches/Mesh.d.ts index e3bf011..3092f41 100644 --- a/demo/libs/types/core/patches/Mesh.d.ts +++ b/demo/libs/types/core/patches/Mesh.d.ts @@ -1,2 +1,2 @@ -import { Mesh } from "three"; -export { Mesh }; +import { Mesh } from "three"; +export { Mesh }; diff --git a/demo/libs/types/core/patches/Points.d.ts b/demo/libs/types/core/patches/Points.d.ts index caeac98..25bca60 100644 --- a/demo/libs/types/core/patches/Points.d.ts +++ b/demo/libs/types/core/patches/Points.d.ts @@ -1,2 +1,2 @@ -import { Points } from "three"; -export { Points }; +import { Points } from "three"; +export { Points }; diff --git a/demo/libs/types/core/patches/index.d.ts b/demo/libs/types/core/patches/index.d.ts index d7e066c..7b0d5b7 100644 --- a/demo/libs/types/core/patches/index.d.ts +++ b/demo/libs/types/core/patches/index.d.ts @@ -1,5 +1,5 @@ -export * from "./Line"; -export * from "./Mesh"; -export * from "./Points"; -export * from "./SVGRenderer.js"; -export * from "./shaders/ShaderChunk"; +export * from "./Line"; +export * from "./Mesh"; +export * from "./Points"; +export * from "./SVGRenderer.js"; +export * from "./shaders/ShaderChunk"; diff --git a/demo/libs/types/core/patches/shaders/ShaderChunk.d.ts b/demo/libs/types/core/patches/shaders/ShaderChunk.d.ts index 89f6bef..8712c51 100644 --- a/demo/libs/types/core/patches/shaders/ShaderChunk.d.ts +++ b/demo/libs/types/core/patches/shaders/ShaderChunk.d.ts @@ -1,2 +1,2 @@ -import { ShaderChunk } from "three"; -export { ShaderChunk }; +import { ShaderChunk } from "three"; +export { ShaderChunk }; diff --git a/demo/libs/types/core/patches/shaders/shaderChunk/outine_bc_vertex.glsl.d.ts b/demo/libs/types/core/patches/shaders/shaderChunk/outine_bc_vertex.glsl.d.ts index 685b009..3c71a6a 100644 --- a/demo/libs/types/core/patches/shaders/shaderChunk/outine_bc_vertex.glsl.d.ts +++ b/demo/libs/types/core/patches/shaders/shaderChunk/outine_bc_vertex.glsl.d.ts @@ -1,2 +1,2 @@ -declare const _default: "\n #if defined(USE_BC_OUTLINE)\n // Restore barycentric coordinates\n int barycentricX = int(barycentric) & 0x1;\n int barycentricY = int(barycentric) & 0x2;\n int barycentricZ = int(barycentric) & 0x4;\n vBarycentric = vec3(float(barycentricX), float(barycentricY), float(barycentricZ));\n #endif\n"; -export default _default; +declare const _default: "\n #if defined(USE_BC_OUTLINE)\n // Restore barycentric coordinates\n int barycentricX = int(barycentric) & 0x1;\n int barycentricY = int(barycentric) & 0x2;\n int barycentricZ = int(barycentric) & 0x4;\n vBarycentric = vec3(float(barycentricX), float(barycentricY), float(barycentricZ));\n #endif\n"; +export default _default; diff --git a/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_fragment.glsl.d.ts b/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_fragment.glsl.d.ts index 5e05011..d6fc244 100644 --- a/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_fragment.glsl.d.ts +++ b/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_fragment.glsl.d.ts @@ -1,2 +1,2 @@ -declare const _default: "\n #if defined(USE_BC_OUTLINE)\n vec3 finWireFrameColor = outLineColor;\n vec3 _tempColor = gl_FragColor.rgb;\n\n gl_FragColor.rgb = mix(finWireFrameColor, _tempColor, edgeFactor3());\n #endif\n"; -export default _default; +declare const _default: "\n #if defined(USE_BC_OUTLINE)\n vec3 finWireFrameColor = outLineColor;\n vec3 _tempColor = gl_FragColor.rgb;\n\n gl_FragColor.rgb = mix(finWireFrameColor, _tempColor, edgeFactor3());\n #endif\n"; +export default _default; diff --git a/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts b/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts index f8d4e00..03b82b5 100644 --- a/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts +++ b/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts @@ -1,2 +1,2 @@ -declare const _default: "\n #if defined(USE_BC_OUTLINE)\n varying vec3 vBarycentric;\n uniform vec3 outLineColor;\n\n float edgeFactor3(){\n vec3 d = fwidth(vBarycentric);\n float minValue = 0.0000001;\n // make sure d is not 0\n d = clamp(d, vec3(minValue), vec3(10.0));\n vec3 a3 = smoothstep(vec3(0.0), d*0.8, vBarycentric);\n return min(min(a3.x, a3.y), a3.z);\n }\n #endif\n"; -export default _default; +declare const _default: "\n #if defined(USE_BC_OUTLINE)\n varying vec3 vBarycentric;\n uniform vec3 outLineColor;\n\n float edgeFactor3(){\n vec3 d = fwidth(vBarycentric);\n float minValue = 0.0000001;\n // make sure d is not 0\n d = clamp(d, vec3(minValue), vec3(10.0));\n vec3 a3 = smoothstep(vec3(0.0), d*0.8, vBarycentric);\n return min(min(a3.x, a3.y), a3.z);\n }\n #endif\n"; +export default _default; diff --git a/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_vertex.glsl.d.ts b/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_vertex.glsl.d.ts index b557760..8334df9 100644 --- a/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_vertex.glsl.d.ts +++ b/demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_vertex.glsl.d.ts @@ -1,2 +1,2 @@ -declare const _default: "\n #ifdef USE_BC_OUTLINE \n attribute float barycentric;\n varying vec3 vBarycentric;\n #endif\n"; -export default _default; +declare const _default: "\n #ifdef USE_BC_OUTLINE \n attribute float barycentric;\n varying vec3 vBarycentric;\n #endif\n"; +export default _default; diff --git a/demo/libs/types/core/patches/shaders/shaderLib/gemini_standard.glsl.d.ts b/demo/libs/types/core/patches/shaders/shaderLib/gemini_standard.glsl.d.ts index 97215ac..a774e25 100644 --- a/demo/libs/types/core/patches/shaders/shaderLib/gemini_standard.glsl.d.ts +++ b/demo/libs/types/core/patches/shaders/shaderLib/gemini_standard.glsl.d.ts @@ -1,2 +1,2 @@ -export declare const vertex = "\n#define STANDARD\n\nvarying vec3 vViewPosition;\n\n#ifdef USE_TRANSMISSION\n\n\tvarying vec3 vWorldPosition;\n\n#endif\n\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n#include \n\nvoid main() {\n\n\t#include \n\t#include \n\t#include \n\n #include \n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\tvViewPosition = - mvPosition.xyz;\n\n\t#include \n\t#include \n\t#include \n\n#ifdef USE_TRANSMISSION\n\n\tvWorldPosition = worldPosition.xyz;\n\n#endif\n}\n"; -export declare const fragment = "\n#define STANDARD\n\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef IOR\n\tuniform float ior;\n#endif\n\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\n\nvarying vec3 vViewPosition;\n\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n#include \n\nvoid main() {\n\n\t#include \n\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\t// accumulation\n\t#include \n\t#include \n\t#include \n\t#include \n\n\t// modulation\n\t#include \n\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\n\t#include \n\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\n\t#ifdef USE_SHEEN\n\n\t\t// Sheen energy compensation approximation calculation can be found at the end of\n\t\t// https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\n\t#endif\n\n\t#ifdef USE_CLEARCOAT\n\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\n\t#endif\n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n #include \n}\n"; +export declare const vertex = "\n#define STANDARD\n\nvarying vec3 vViewPosition;\n\n#ifdef USE_TRANSMISSION\n\n\tvarying vec3 vWorldPosition;\n\n#endif\n\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n#include \n\nvoid main() {\n\n\t#include \n\t#include \n\t#include \n\n #include \n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\tvViewPosition = - mvPosition.xyz;\n\n\t#include \n\t#include \n\t#include \n\n#ifdef USE_TRANSMISSION\n\n\tvWorldPosition = worldPosition.xyz;\n\n#endif\n}\n"; +export declare const fragment = "\n#define STANDARD\n\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef IOR\n\tuniform float ior;\n#endif\n\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\n\nvarying vec3 vViewPosition;\n\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n#include \n\nvoid main() {\n\n\t#include \n\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n\t// accumulation\n\t#include \n\t#include \n\t#include \n\t#include \n\n\t// modulation\n\t#include \n\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\n\t#include \n\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\n\t#ifdef USE_SHEEN\n\n\t\t// Sheen energy compensation approximation calculation can be found at the end of\n\t\t// https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\n\t#endif\n\n\t#ifdef USE_CLEARCOAT\n\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\n\t#endif\n\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\n #include \n}\n"; diff --git a/demo/libs/types/core/shp-js/BitView.d.ts b/demo/libs/types/core/shp-js/BitView.d.ts index e53f80c..f45eacb 100644 --- a/demo/libs/types/core/shp-js/BitView.d.ts +++ b/demo/libs/types/core/shp-js/BitView.d.ts @@ -1,12 +1,12 @@ -export declare class BitView { - buffer: any; - u8: any; - constructor(buf: any); - getBit(idx: any): number; - setBit(idx: any, val: any): void; - getInt12(idx: any): number; - setInt12(idx: any, val: any): void; - getInt6(idx: any): number; - setInt6(idx: any, val: any): void; - test(): BitView; -} +export declare class BitView { + buffer: any; + u8: any; + constructor(buf: any); + getBit(idx: any): number; + setBit(idx: any, val: any): void; + getInt12(idx: any): number; + setInt12(idx: any, val: any): void; + getInt6(idx: any): number; + setInt6(idx: any, val: any): void; + test(): BitView; +} diff --git a/demo/libs/types/core/shp-js/SHPLoader.d.ts b/demo/libs/types/core/shp-js/SHPLoader.d.ts index c286a02..e5ce426 100644 --- a/demo/libs/types/core/shp-js/SHPLoader.d.ts +++ b/demo/libs/types/core/shp-js/SHPLoader.d.ts @@ -1,12 +1,12 @@ -import * as THREE from "three"; -/** - * ArcGIS SHP file loader - */ -export declare class SHPLoader { - load(url: string, onLoad: (object: THREE.Object3D) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): Promise; - /** - * - * @param percent a number between [0, 100] - */ - private updateProgress; -} +import * as THREE from "three"; +/** + * ArcGIS SHP file loader + */ +export declare class SHPLoader { + load(url: string, onLoad: (object: THREE.Object3D) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): Promise; + /** + * + * @param percent a number between [0, 100] + */ + private updateProgress; +} diff --git a/demo/libs/types/core/shp-js/Shp.d.ts b/demo/libs/types/core/shp-js/Shp.d.ts index 79f1426..a739932 100644 --- a/demo/libs/types/core/shp-js/Shp.d.ts +++ b/demo/libs/types/core/shp-js/Shp.d.ts @@ -1,10 +1,10 @@ -export declare enum SHP { - NULL = 0, - POINT = 1, - POLYLINE = 3, - POLYGON = 5 -} -export declare class SHPParser { - parse(arrayBuffer: any): any; - parseShape(dv: any, idx: any, length: any): any; -} +export declare enum SHP { + NULL = 0, + POINT = 1, + POLYLINE = 3, + POLYGON = 5 +} +export declare class SHPParser { + parse(arrayBuffer: any): any; + parseShape(dv: any, idx: any, length: any): any; +} diff --git a/demo/libs/types/core/shp-js/ShpThree.d.ts b/demo/libs/types/core/shp-js/ShpThree.d.ts index e27ff93..bd7df1a 100644 --- a/demo/libs/types/core/shp-js/ShpThree.d.ts +++ b/demo/libs/types/core/shp-js/ShpThree.d.ts @@ -1,23 +1,23 @@ -import * as THREE from "three"; -/** - * Three.js extensions for SHP parser. - * Code is converted from JS to TS based on: https://github.com/kig/shp.js/ - */ -export declare class ShpThree { - readonly LINE_MATERIAL: THREE.LineBasicMaterial; - readonly MESH_MATERIAL: THREE.MeshBasicMaterial; - /** - * - * @param shp - * @param spherize is spherize or not. This only works well for the sameple shp for now! - */ - createModel(shp: any): THREE.Object3D; - loadCompressed(deltaEncoded: any): THREE.Object3D; - compress(shp: any): ArrayBuffer; - deltaEncode(arr: any): ArrayBuffer; - deltaEncode6(arr: any): ArrayBuffer; - storeDeltas(byteLen: any, polys: any): ArrayBuffer; - deltaDecode(buf: any): number[]; - storeDeltas6(byteLen: any, polys: any): ArrayBuffer; - deltaDecode6(buf: any): number[]; -} +import * as THREE from "three"; +/** + * Three.js extensions for SHP parser. + * Code is converted from JS to TS based on: https://github.com/kig/shp.js/ + */ +export declare class ShpThree { + readonly LINE_MATERIAL: THREE.LineBasicMaterial; + readonly MESH_MATERIAL: THREE.MeshBasicMaterial; + /** + * + * @param shp + * @param spherize is spherize or not. This only works well for the sameple shp for now! + */ + createModel(shp: any): THREE.Object3D; + loadCompressed(deltaEncoded: any): THREE.Object3D; + compress(shp: any): ArrayBuffer; + deltaEncode(arr: any): ArrayBuffer; + deltaEncode6(arr: any): ArrayBuffer; + storeDeltas(byteLen: any, polys: any): ArrayBuffer; + deltaDecode(buf: any): number[]; + storeDeltas6(byteLen: any, polys: any): ArrayBuffer; + deltaDecode6(buf: any): number[]; +} diff --git a/demo/libs/types/core/shp-js/index.d.ts b/demo/libs/types/core/shp-js/index.d.ts index 64c9741..058d2d9 100644 --- a/demo/libs/types/core/shp-js/index.d.ts +++ b/demo/libs/types/core/shp-js/index.d.ts @@ -1,4 +1,4 @@ -export * from "./BitView"; -export * from "./SHPLoader"; -export * from "./Shp"; -export * from "./ShpThree"; +export * from "./BitView"; +export * from "./SHPLoader"; +export * from "./Shp"; +export * from "./ShpThree"; diff --git a/demo/libs/types/core/undo-redo/AddMarkupCommand.d.ts b/demo/libs/types/core/undo-redo/AddMarkupCommand.d.ts index b18d187..9754473 100644 --- a/demo/libs/types/core/undo-redo/AddMarkupCommand.d.ts +++ b/demo/libs/types/core/undo-redo/AddMarkupCommand.d.ts @@ -1,10 +1,10 @@ -import { Command } from "./Command"; -import type { MarkupManager } from "../../core/markup"; -import type { MarkupData } from "../../core/viewers"; -export declare class AddMarkupCommand extends Command { - private manager; - private data; - constructor(manager: MarkupManager, data: MarkupData); - undo(): boolean; - redo(): boolean; -} +import { Command } from "./Command"; +import type { MarkupManager } from "../../core/markup"; +import type { MarkupData } from "../../core/viewers"; +export declare class AddMarkupCommand extends Command { + private manager; + private data; + constructor(manager: MarkupManager, data: MarkupData); + undo(): boolean; + redo(): boolean; +} diff --git a/demo/libs/types/core/undo-redo/AddMeasurementCommand.d.ts b/demo/libs/types/core/undo-redo/AddMeasurementCommand.d.ts index c94c410..31c0efb 100644 --- a/demo/libs/types/core/undo-redo/AddMeasurementCommand.d.ts +++ b/demo/libs/types/core/undo-redo/AddMeasurementCommand.d.ts @@ -1,9 +1,9 @@ -import { Command } from "./Command"; -import type { MeasurementPlugin, MeasurementData } from "../../plugins/measure"; -export declare class AddMeasurementCommand extends Command { - private manager; - private data; - constructor(manager: MeasurementPlugin, data: MeasurementData); - undo(): boolean; - redo(): boolean; -} +import { Command } from "./Command"; +import type { MeasurementPlugin, MeasurementData } from "../../plugins/measure"; +export declare class AddMeasurementCommand extends Command { + private manager; + private data; + constructor(manager: MeasurementPlugin, data: MeasurementData); + undo(): boolean; + redo(): boolean; +} diff --git a/demo/libs/types/core/undo-redo/Command.d.ts b/demo/libs/types/core/undo-redo/Command.d.ts index e030235..f60cb8d 100644 --- a/demo/libs/types/core/undo-redo/Command.d.ts +++ b/demo/libs/types/core/undo-redo/Command.d.ts @@ -1,6 +1,6 @@ -export declare abstract class Command { - protected name: string; - constructor(name: string); - abstract undo(): boolean; - abstract redo(): boolean; -} +export declare abstract class Command { + protected name: string; + constructor(name: string); + abstract undo(): boolean; + abstract redo(): boolean; +} diff --git a/demo/libs/types/core/undo-redo/RemoveMarkupCommand.d.ts b/demo/libs/types/core/undo-redo/RemoveMarkupCommand.d.ts index abd8120..7a67792 100644 --- a/demo/libs/types/core/undo-redo/RemoveMarkupCommand.d.ts +++ b/demo/libs/types/core/undo-redo/RemoveMarkupCommand.d.ts @@ -1,10 +1,10 @@ -import { Command } from "./Command"; -import type { MarkupManager } from "../../core/markup"; -import type { MarkupData } from "../../core/viewers"; -export declare class RemoveMarkupCommand extends Command { - private manager; - private data; - constructor(manager: MarkupManager, data: MarkupData); - undo(): boolean; - redo(): boolean; -} +import { Command } from "./Command"; +import type { MarkupManager } from "../../core/markup"; +import type { MarkupData } from "../../core/viewers"; +export declare class RemoveMarkupCommand extends Command { + private manager; + private data; + constructor(manager: MarkupManager, data: MarkupData); + undo(): boolean; + redo(): boolean; +} diff --git a/demo/libs/types/core/undo-redo/RemoveMeasurementCommand.d.ts b/demo/libs/types/core/undo-redo/RemoveMeasurementCommand.d.ts index 41035e0..8e9c25b 100644 --- a/demo/libs/types/core/undo-redo/RemoveMeasurementCommand.d.ts +++ b/demo/libs/types/core/undo-redo/RemoveMeasurementCommand.d.ts @@ -1,9 +1,9 @@ -import { Command } from "./Command"; -import type { MeasurementPlugin, MeasurementData } from "../../plugins/measure"; -export declare class RemoveMeasurementCommand extends Command { - private manager; - private data; - constructor(manager: MeasurementPlugin, data: MeasurementData); - undo(): boolean; - redo(): boolean; -} +import { Command } from "./Command"; +import type { MeasurementPlugin, MeasurementData } from "../../plugins/measure"; +export declare class RemoveMeasurementCommand extends Command { + private manager; + private data; + constructor(manager: MeasurementPlugin, data: MeasurementData); + undo(): boolean; + redo(): boolean; +} diff --git a/demo/libs/types/core/undo-redo/UndoRedoManager.d.ts b/demo/libs/types/core/undo-redo/UndoRedoManager.d.ts index b6e4c61..3ef996c 100644 --- a/demo/libs/types/core/undo-redo/UndoRedoManager.d.ts +++ b/demo/libs/types/core/undo-redo/UndoRedoManager.d.ts @@ -1,21 +1,21 @@ -import { Command } from "./Command"; -declare type CommandData = Command | Command[]; -export declare class UndoRedoManager { - private history; - private step; - private maxCount; - private isBatchCommand; - private batchCommands; - constructor(maxCount?: number); - addCommand(command: Command): void; - startTransaction(): void; - endTransaction(): void; - undo(): boolean; - redo(): boolean; - getCommands(): CommandData[]; - canUndo(): boolean; - canRedo(): boolean; - clear(): void; - destroy(): void; -} -export {}; +import { Command } from "./Command"; +declare type CommandData = Command | Command[]; +export declare class UndoRedoManager { + private history; + private step; + private maxCount; + private isBatchCommand; + private batchCommands; + constructor(maxCount?: number); + addCommand(command: Command): void; + startTransaction(): void; + endTransaction(): void; + undo(): boolean; + redo(): boolean; + getCommands(): CommandData[]; + canUndo(): boolean; + canRedo(): boolean; + clear(): void; + destroy(): void; +} +export {}; diff --git a/demo/libs/types/core/undo-redo/UpdateMarkupCommand.d.ts b/demo/libs/types/core/undo-redo/UpdateMarkupCommand.d.ts index 51c9bf2..95e8578 100644 --- a/demo/libs/types/core/undo-redo/UpdateMarkupCommand.d.ts +++ b/demo/libs/types/core/undo-redo/UpdateMarkupCommand.d.ts @@ -1,11 +1,11 @@ -import { Command } from "./Command"; -import type { MarkupManager } from "../../core/markup"; -import type { MarkupData } from "../../core/viewers"; -export declare class UpdateMarkupCommand extends Command { - private manager; - private oldData; - private newData; - constructor(manager: MarkupManager, oldData: MarkupData, newData: MarkupData); - undo(): boolean; - redo(): boolean; -} +import { Command } from "./Command"; +import type { MarkupManager } from "../../core/markup"; +import type { MarkupData } from "../../core/viewers"; +export declare class UpdateMarkupCommand extends Command { + private manager; + private oldData; + private newData; + constructor(manager: MarkupManager, oldData: MarkupData, newData: MarkupData); + undo(): boolean; + redo(): boolean; +} diff --git a/demo/libs/types/core/undo-redo/index.d.ts b/demo/libs/types/core/undo-redo/index.d.ts index 1dfc902..796639a 100644 --- a/demo/libs/types/core/undo-redo/index.d.ts +++ b/demo/libs/types/core/undo-redo/index.d.ts @@ -1,7 +1,7 @@ -export * from "./UndoRedoManager"; -export * from "./Command"; -export * from "./AddMarkupCommand"; -export * from "./UpdateMarkupCommand"; -export * from "./RemoveMarkupCommand"; -export * from "./AddMeasurementCommand"; -export * from "./RemoveMeasurementCommand"; +export * from "./UndoRedoManager"; +export * from "./Command"; +export * from "./AddMarkupCommand"; +export * from "./UpdateMarkupCommand"; +export * from "./RemoveMarkupCommand"; +export * from "./AddMeasurementCommand"; +export * from "./RemoveMeasurementCommand"; diff --git a/demo/libs/types/core/utils/CSS2DObjectUtils.d.ts b/demo/libs/types/core/utils/CSS2DObjectUtils.d.ts index e6bada3..49370ce 100644 --- a/demo/libs/types/core/utils/CSS2DObjectUtils.d.ts +++ b/demo/libs/types/core/utils/CSS2DObjectUtils.d.ts @@ -1,14 +1,14 @@ -import { CSS2DObject } from "three/examples/jsm/renderers/CSS2DRenderer.js"; -export declare class CSS2DObjectUtils { - /** - * Creates CSS2DObject with HTMLElement - */ - static createCSS2DObject(element: HTMLElement): CSS2DObject; - static createDefaultHotpoint(size?: number): CSS2DObject; - static createHotpoint(html?: string): CSS2DObject; - static createLabel(label: string, cssClass?: string): CSS2DObject; - /** - * Recursively find "dataset.objectId" of a HTMLElement - */ - static tryFindObjectId(element: HTMLElement): number | undefined; -} +import { CSS2DObject } from "three/examples/jsm/renderers/CSS2DRenderer.js"; +export declare class CSS2DObjectUtils { + /** + * Creates CSS2DObject with HTMLElement + */ + static createCSS2DObject(element: HTMLElement): CSS2DObject; + static createDefaultHotpoint(size?: number): CSS2DObject; + static createHotpoint(html?: string): CSS2DObject; + static createLabel(label: string, cssClass?: string): CSS2DObject; + /** + * Recursively find "dataset.objectId" of a HTMLElement + */ + static tryFindObjectId(element: HTMLElement): number | undefined; +} diff --git a/demo/libs/types/core/utils/CancelablePromise.d.ts b/demo/libs/types/core/utils/CancelablePromise.d.ts index 274f972..2be43f7 100644 --- a/demo/libs/types/core/utils/CancelablePromise.d.ts +++ b/demo/libs/types/core/utils/CancelablePromise.d.ts @@ -1,7 +1,7 @@ -export declare class CancelablePromise { - promise: Promise; - private isCanceled; - private cancelReject?; - constructor(promise: Promise); - cancel(): void; -} +export declare class CancelablePromise { + promise: Promise; + private isCanceled; + private cancelReject?; + constructor(promise: Promise); + cancel(): void; +} diff --git a/demo/libs/types/core/utils/ColorUtils.d.ts b/demo/libs/types/core/utils/ColorUtils.d.ts index 2647392..6565b4f 100644 --- a/demo/libs/types/core/utils/ColorUtils.d.ts +++ b/demo/libs/types/core/utils/ColorUtils.d.ts @@ -1,21 +1,21 @@ -export declare class ColorUtils { - static color2rgba(style: string): [number, number, number, number]; - static rgba2Color(rgba: number[]): string; - /** - * Converts color string in format "rgba(255, 255, 255, 1)" to rgba number array. - */ - static colorStr2Rgba(colorStr: string): number[]; - /** - * Converts rgb or rgba to hex number. - * @param rgba Color value is between 0 and 1. - */ - static rgb2Hex(rgba: number[]): number; - /** - * Maps a value between 0 and 1 to 0 and 255. - */ - private static to255; - /** - * Maps a value between 0 and 255 to 0 and 1. - */ - private static to1; -} +export declare class ColorUtils { + static color2rgba(style: string): [number, number, number, number]; + static rgba2Color(rgba: number[]): string; + /** + * Converts color string in format "rgba(255, 255, 255, 1)" to rgba number array. + */ + static colorStr2Rgba(colorStr: string): number[]; + /** + * Converts rgb or rgba to hex number. + * @param rgba Color value is between 0 and 1. + */ + static rgb2Hex(rgba: number[]): number; + /** + * Maps a value between 0 and 1 to 0 and 255. + */ + private static to255; + /** + * Maps a value between 0 and 255 to 0 and 1. + */ + private static to1; +} diff --git a/demo/libs/types/core/utils/CommonUtils.d.ts b/demo/libs/types/core/utils/CommonUtils.d.ts index ed9c9ec..1f1013d 100644 --- a/demo/libs/types/core/utils/CommonUtils.d.ts +++ b/demo/libs/types/core/utils/CommonUtils.d.ts @@ -1,125 +1,125 @@ -import * as THREE from "three"; -import { IconClass } from "../Configs"; -/** - * @internal - */ -export declare class CommonUtils { - /** - * Checks full screen mode - */ - static isFullScreen(): boolean; - /** - * Enters full screen mode - */ - static fullScreen(element?: HTMLElement): void; - /** - * Exits full screen mode - */ - static exitFullscreen(): void; - /** - * Displays a pointer marker in a period of time. - * @param duration display time in ms. 0/null/undefined means always display. - */ - /** - * Join strings - * @param args - * @returns - */ - static joinStrings(...args: string[]): string; - /** - * Converts a number to a string with proper fraction digits - */ - static numberToString(num: number): string; - static hexToBase64(hexstring: string): string; - /** - * Converts vector to a string with proper fraction digits - */ - static vectorToString(vec: THREE.Vector2 | THREE.Vector3): string; - /** - * Converts number array to THREE.Vector2 - */ - static arrayToVector2(arr: number[] | THREE.Vector2 | undefined): THREE.Vector2 | undefined; - /** - * Converts number array to THREE.Vector3 - * If length of arr is 2, will assign z value to 0 - */ - static arrayToVector3(arr: number[] | THREE.Vector3 | undefined): THREE.Vector3 | undefined; - /** - * Converts number array to THREE.Euler - */ - static arrayToEuler(arr: number[] | THREE.Euler | undefined): THREE.Euler | undefined; - /** - * Converts number array to THREE.Vector3 - */ - static arrayOrObjectToVector3(arrOrObj: number[] | THREE.Vector3 | undefined): THREE.Vector3 | undefined; - static isVectorValid(vec: THREE.Vector2 | THREE.Vector3): boolean; - static isBoxValid(box: THREE.Box2 | THREE.Box3): boolean; - static isMatrixValid(matrix: THREE.Matrix4): boolean; - static guid(): string; - /** - * Expands given box by a scale factor - */ - static expandBoxByScale(box: THREE.Box3, scale: number): void; - /** - * Expands given box by a min size - */ - static expandBoxByMinSize(box: THREE.Box3, minSize: number): void; - /** - * Generate random integers in the range [min, max] - */ - static generateRandomInt(min: number, max: number): number; - /** - * Round to N decimal places - */ - static roundNumber(value: number, n: number): number; - static convertDecimalToHex(decimal: number | string): string; - static canvasToImage(canvas: HTMLCanvasElement): Promise; - /** - * Takes screenshot to given rendering context and return base64 string in png/jpeg format. - * @param bbox If valid, takes screenshot of a sub image with given bounding box in screen coordinate. - */ - static renderingContextToImage(context: CanvasRenderingContext2D, bbox?: THREE.Box2, type?: string, quality?: number): string; - /** - * Prints memory usage - */ - static printMemory(title: string): void; - static printGpuInfo(webgl: WebGLRenderingContext): void; - /** - * Sleep a while - */ - static sleep(ms: number): Promise; - private static twinklingObjectIds; - /** - * Twinkle the object several times - */ - static twinkle(obj: THREE.Object3D, ms?: number): Promise; - /** - * Gets a function to update progress. - * @param onProgress onProgress callback. - */ - static getUpdateProgressFunc(onProgress?: (e: ProgressEvent) => void): (progress: number) => void; - /** - * Gets an async function to update progress. - * The reason to use async function is, in order to give UI thread chance to update the progress! - * @param onProgress onProgress callback. - */ - static getUpdateProgressFuncAsync(onProgress?: (e: ProgressEvent) => void): (progress: number) => Promise; - /** - * Gets an async function to update progress for a for/while loop. - * @param total Total number of a for/while loop. - * @param onProgress onProgress callback. - */ - static getUpdateProgressFuncForLoop(total: number, onProgress?: (e: ProgressEvent) => void): (i: number) => Promise; - /** - * Gets a function to update sub progress, which has a progress range limitation according to its parent progress. - * @param min Min range number between 0-100 - * @param max Max range number between 0-100 - * @param onProgress onProgress callback. - * @returns - */ - static getUpdateSubProgressFunc(min: number, max: number, onProgress?: (e: ProgressEvent) => void): (e: ProgressEvent) => void; -} -/** - * @internal - */ -export declare const setIcon: (classList: DOMTokenList, iconClass: IconClass, active: boolean) => void; +import * as THREE from "three"; +import { IconClass } from "../Configs"; +/** + * @internal + */ +export declare class CommonUtils { + /** + * Checks full screen mode + */ + static isFullScreen(): boolean; + /** + * Enters full screen mode + */ + static fullScreen(element?: HTMLElement): void; + /** + * Exits full screen mode + */ + static exitFullscreen(): void; + /** + * Displays a pointer marker in a period of time. + * @param duration display time in ms. 0/null/undefined means always display. + */ + /** + * Join strings + * @param args + * @returns + */ + static joinStrings(...args: string[]): string; + /** + * Converts a number to a string with proper fraction digits + */ + static numberToString(num: number): string; + static hexToBase64(hexstring: string): string; + /** + * Converts vector to a string with proper fraction digits + */ + static vectorToString(vec: THREE.Vector2 | THREE.Vector3): string; + /** + * Converts number array to THREE.Vector2 + */ + static arrayToVector2(arr: number[] | THREE.Vector2 | undefined): THREE.Vector2 | undefined; + /** + * Converts number array to THREE.Vector3 + * If length of arr is 2, will assign z value to 0 + */ + static arrayToVector3(arr: number[] | THREE.Vector3 | undefined): THREE.Vector3 | undefined; + /** + * Converts number array to THREE.Euler + */ + static arrayToEuler(arr: number[] | THREE.Euler | undefined): THREE.Euler | undefined; + /** + * Converts number array to THREE.Vector3 + */ + static arrayOrObjectToVector3(arrOrObj: number[] | THREE.Vector3 | undefined): THREE.Vector3 | undefined; + static isVectorValid(vec: THREE.Vector2 | THREE.Vector3): boolean; + static isBoxValid(box: THREE.Box2 | THREE.Box3): boolean; + static isMatrixValid(matrix: THREE.Matrix4): boolean; + static guid(): string; + /** + * Expands given box by a scale factor + */ + static expandBoxByScale(box: THREE.Box3, scale: number): void; + /** + * Expands given box by a min size + */ + static expandBoxByMinSize(box: THREE.Box3, minSize: number): void; + /** + * Generate random integers in the range [min, max] + */ + static generateRandomInt(min: number, max: number): number; + /** + * Round to N decimal places + */ + static roundNumber(value: number, n: number): number; + static convertDecimalToHex(decimal: number | string): string; + static canvasToImage(canvas: HTMLCanvasElement): Promise; + /** + * Takes screenshot to given rendering context and return base64 string in png/jpeg format. + * @param bbox If valid, takes screenshot of a sub image with given bounding box in screen coordinate. + */ + static renderingContextToImage(context: CanvasRenderingContext2D, bbox?: THREE.Box2, type?: string, quality?: number): string; + /** + * Prints memory usage + */ + static printMemory(title: string): void; + static printGpuInfo(webgl: WebGLRenderingContext): void; + /** + * Sleep a while + */ + static sleep(ms: number): Promise; + private static twinklingObjectIds; + /** + * Twinkle the object several times + */ + static twinkle(obj: THREE.Object3D, ms?: number): Promise; + /** + * Gets a function to update progress. + * @param onProgress onProgress callback. + */ + static getUpdateProgressFunc(onProgress?: (e: ProgressEvent) => void): (progress: number) => void; + /** + * Gets an async function to update progress. + * The reason to use async function is, in order to give UI thread chance to update the progress! + * @param onProgress onProgress callback. + */ + static getUpdateProgressFuncAsync(onProgress?: (e: ProgressEvent) => void): (progress: number) => Promise; + /** + * Gets an async function to update progress for a for/while loop. + * @param total Total number of a for/while loop. + * @param onProgress onProgress callback. + */ + static getUpdateProgressFuncForLoop(total: number, onProgress?: (e: ProgressEvent) => void): (i: number) => Promise; + /** + * Gets a function to update sub progress, which has a progress range limitation according to its parent progress. + * @param min Min range number between 0-100 + * @param max Max range number between 0-100 + * @param onProgress onProgress callback. + * @returns + */ + static getUpdateSubProgressFunc(min: number, max: number, onProgress?: (e: ProgressEvent) => void): (e: ProgressEvent) => void; +} +/** + * @internal + */ +export declare const setIcon: (classList: DOMTokenList, iconClass: IconClass, active: boolean) => void; diff --git a/demo/libs/types/core/utils/CoordinateConversionUtils.d.ts b/demo/libs/types/core/utils/CoordinateConversionUtils.d.ts deleted file mode 100644 index f1405e6..0000000 --- a/demo/libs/types/core/utils/CoordinateConversionUtils.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import * as THREE from "three"; -import type { EventInfo, IPointerEvent } from "../../core/input/InputManager"; -/** - * @internal - */ -export declare class CoordinateConversionUtils { - static getScreenPointByEvent(event: IPointerEvent | EventInfo | MouseEvent | PointerEvent, container: HTMLElement): THREE.Vector2; - static getScreenPointByTouchEvent(event: TouchEvent, container: HTMLElement): THREE.Vector2; - static worldPosition2ScreenPoint(vector: THREE.Vector3, camera: THREE.Camera, container: HTMLElement): THREE.Vector2; - static screenPoint2worldPosition(vector: THREE.Vector2, camera: THREE.Camera, container: HTMLElement): THREE.Vector3; - static screenPoint2NdcPoint(vector: THREE.Vector2, camera: THREE.Camera, container: HTMLElement): THREE.Vector2; - /** - * @description {en} Normalized screen coordinate: left-top(0,0), right-bottom(1,1). - * @description {zh} 标准化屏幕坐标:左上角(0,0), 右下角(1,1)。 - * (0,0) - * _______________________ - * | | - * | | - * | X -> | - * | | - * | | - * |______________________| - * (1,1) - * @description {en} World coordinate to normalized screen coordinate(0-1). - * @description {zh} 世界坐标转标准化屏幕坐标(0-1)。 - */ - static worldCoordinate2NormalizedScreenCoordinate(worldCoordinate: THREE.Vector2 | THREE.Vector3, camera: THREE.Camera, container: HTMLElement): THREE.Vector2; -} diff --git a/demo/libs/types/core/utils/CoordinateUtils.d.ts b/demo/libs/types/core/utils/CoordinateUtils.d.ts new file mode 100644 index 0000000..01474df --- /dev/null +++ b/demo/libs/types/core/utils/CoordinateUtils.d.ts @@ -0,0 +1,81 @@ +import * as THREE from "three"; +import type { EventInfo, IPointerEvent } from "../../core/input/InputManager"; +/** + * @internal + * Some concepts: + * + * 1. Screen coordinate: + * (0, 0) + * ----------------------> x + * | | + * | | + * | | + * | | + * |___________________| + * y (1024, 768) e.g. + * + * 2. Normalized screen coordinate: + * (0, 0) + * ----------------------> x + * | | + * | | + * | | + * | | + * |___________________| + * y (1, 1) + * + * 3. NDC: Normalized Device Coordinates + * ^ y (1, 1) + * | + * (-1, 0) |(0, 0) (1, 0) + * ----------------------> x + * | + * | + * (-1, -1) + * + * 4. World Coordinates + * ^ y + * | + * | / x + * | / + * | / + * ---------------> z + * (0, 0) + */ +export declare class CoordinateUtils { + /** + * Gets screen coordinate by pointer event. + */ + static getScreenCoordinateByEvent(event: IPointerEvent | EventInfo | MouseEvent | PointerEvent, container: HTMLElement): THREE.Vector2; + /** + * Gets screen coordinate by touch event. + */ + static getScreenCoordinateByTouchEvent(event: TouchEvent, container: HTMLElement): THREE.Vector2; + /** + * Converts world to screen coordinate. + */ + static world2Screen(vector: THREE.Vector3, camera: THREE.Camera, container: HTMLElement): THREE.Vector2; + /** + * Converts a bbox under world coordinate to screen coordinate. + */ + static worldBBox2Screen(bbox: THREE.Box3, camera: THREE.Camera, container: HTMLElement): THREE.Box2; + /** + * Converts screen to world coordinate. + */ + static screen2World(vector: THREE.Vector2, camera: THREE.Camera, container: HTMLElement): THREE.Vector3; + /** + * Converts screen point to NDC coordinate. + * @description {en} Normalized screen coordinate: bottom-left(-1, -1), top-right(1, 1). + * @description {zh} 标准化屏幕坐标:左下角(-1, -1), 右上角(1, 1)。 + * @description {en} World coordinate to normalized screen coordinate(0-1). + * @description {zh} 世界坐标转标准化屏幕坐标(0-1)。 + */ + static screen2Ndc(vector: THREE.Vector2, camera: THREE.Camera, container: HTMLElement): THREE.Vector2; + /** + * @description {en} Normalized screen coordinate: top-left(0, 0), bottom-right(1, 1). + * @description {zh} 标准化屏幕坐标:左上角(0, 0), 右下角(1, 1)。 + * @description {en} World coordinate to normalized screen coordinate(0-1). + * @description {zh} 世界坐标转标准化屏幕坐标(0-1)。 + */ + static world2NormalizedScreen(worldCoord: THREE.Vector2 | THREE.Vector3, camera: THREE.Camera, container: HTMLElement): THREE.Vector2; +} diff --git a/demo/libs/types/core/utils/DecimalPrecisionUtils.d.ts b/demo/libs/types/core/utils/DecimalPrecisionUtils.d.ts index 5476b80..339d905 100644 --- a/demo/libs/types/core/utils/DecimalPrecisionUtils.d.ts +++ b/demo/libs/types/core/utils/DecimalPrecisionUtils.d.ts @@ -1,4 +1,4 @@ -/** - * @internal - */ -export declare const showPrecisionValue: (value: number, precistionType: number) => string; +/** + * @internal + */ +export declare const showPrecisionValue: (value: number, precistionType: number) => string; diff --git a/demo/libs/types/core/utils/DeviceUtils.d.ts b/demo/libs/types/core/utils/DeviceUtils.d.ts index 663f254..eddbbc5 100644 --- a/demo/libs/types/core/utils/DeviceUtils.d.ts +++ b/demo/libs/types/core/utils/DeviceUtils.d.ts @@ -1,15 +1,15 @@ -/** - * Device util class - * @internal - */ -export declare class DeviceUtils { - /** - * Checks if it is opened in touch screen device, like iphone, ipad, etc. - */ - static isTouchScreenDevice(): boolean; - static printDeviceInfo(): void; - static isMobile: boolean; - static creatReactNativeCanvas(context: WebGLRenderingContext | WebGL2RenderingContext | CanvasRenderingContext2D): HTMLCanvasElement; - static isBrowser: boolean; - static isNode: boolean; -} +/** + * Device util class + * @internal + */ +export declare class DeviceUtils { + /** + * Checks if it is opened in touch screen device, like iphone, ipad, etc. + */ + static isTouchScreenDevice(): boolean; + static printDeviceInfo(): void; + static isMobile: boolean; + static creatReactNativeCanvas(context: WebGLRenderingContext | WebGL2RenderingContext | CanvasRenderingContext2D): HTMLCanvasElement; + static isBrowser: boolean; + static isNode: boolean; +} diff --git a/demo/libs/types/core/utils/EdgeUtils.d.ts b/demo/libs/types/core/utils/EdgeUtils.d.ts index b439f03..ff8cf54 100644 --- a/demo/libs/types/core/utils/EdgeUtils.d.ts +++ b/demo/libs/types/core/utils/EdgeUtils.d.ts @@ -1,14 +1,14 @@ -import * as THREE from "three"; -export declare class EdgeUtils { - /** - * reference to buildEdgeIndices from xeokit - */ - static buildEdge(positions: Float32Array, indices: Uint32Array | Uint16Array | Uint8Array, edgeThreshold?: number): Uint32Array | Uint16Array; - /** - * Calculate the barycentric coordinates of each vertex of the geometry - * TODO: Temporarily do not handle the following cases. - * - When there is no solution, it is necessary to expand the vertices - * The algorithm also has performance issues ! - */ - static buildBarycentrics(geometry: THREE.BufferGeometry): boolean; -} +import * as THREE from "three"; +export declare class EdgeUtils { + /** + * reference to buildEdgeIndices from xeokit + */ + static buildEdge(positions: Float32Array, indices: Uint32Array | Uint16Array | Uint8Array, edgeThreshold?: number): Uint32Array | Uint16Array; + /** + * Calculate the barycentric coordinates of each vertex of the geometry + * TODO: Temporarily do not handle the following cases. + * - When there is no solution, it is necessary to expand the vertices + * The algorithm also has performance issues ! + */ + static buildBarycentrics(geometry: THREE.BufferGeometry): boolean; +} diff --git a/demo/libs/types/core/utils/Event.d.ts b/demo/libs/types/core/utils/Event.d.ts index 31bfede..6d591df 100644 --- a/demo/libs/types/core/utils/Event.d.ts +++ b/demo/libs/types/core/utils/Event.d.ts @@ -1,33 +1,33 @@ -export declare type Handler = (val: T) => void; -/** - * @internal - */ -export declare class Event = {}> { - private map; - /** - * @internal - */ - addEventListener(name: EventName, handler: Handler): void; - /** - * @internal - */ - dispatchEvent(name: EventName, value?: Events[EventName]): void; - /** - * Checks if there is a listener - * @internal - */ - hasEventListener(name: EventName): boolean; - /** - * Removes all event listeners - * @internal - */ - removeEventListener(): void; - /** - * @internal - */ - removeEventListener(name: EventName): void; - /** - * @internal - */ - removeEventListener(name: EventName, handler: Handler): void; -} +export declare type Handler = (val: T) => void; +/** + * @internal + */ +export declare class Event = {}> { + private map; + /** + * @internal + */ + addEventListener(name: EventName, handler: Handler): void; + /** + * @internal + */ + dispatchEvent(name: EventName, value?: Events[EventName]): void; + /** + * Checks if there is a listener + * @internal + */ + hasEventListener(name: EventName): boolean; + /** + * Removes all event listeners + * @internal + */ + removeEventListener(): void; + /** + * @internal + */ + removeEventListener(name: EventName): void; + /** + * @internal + */ + removeEventListener(name: EventName, handler: Handler): void; +} diff --git a/demo/libs/types/core/utils/ExportUtils.d.ts b/demo/libs/types/core/utils/ExportUtils.d.ts index f98429a..c150749 100644 --- a/demo/libs/types/core/utils/ExportUtils.d.ts +++ b/demo/libs/types/core/utils/ExportUtils.d.ts @@ -1,55 +1,61 @@ -import * as THREE from "three"; -import type { DRACOExporterOptions } from "three/examples/jsm/exporters/DRACOExporter"; -import type { GLTFExporterOptions } from "three/examples/jsm/exporters/GLTFExporter"; -/** - * @internal - */ -export declare class ExportUtils { - static EXTENSION_GLTF: string; - static EXTENSION_GLB: string; - static EXTENSION_OBJ: string; - static EXTENSION_DRACO: string; - static EXTENSION_JSON: string; - private static downloadLink; - /** - * Exports given object to gltf file - */ - static exportToGltf(input: THREE.Object3D, filename: string): void; - /** - * Exports given object to glb file - */ - static exportToGlb(input: THREE.Object3D, filename: string): void; - /** - * Exports given object to gltf/glb file - * @param input given object - * @param filename filename without path, nor extension - * @param options - */ - static exportToGltfOrGlb(input: THREE.Object3D, filename: string, options?: GLTFExporterOptions): void; - /** - * Exports given object to obj file - */ - static exportToObj(input: THREE.Object3D, filename: string): void; - /** - * Exports given object to draco(drc) file - */ - static exportToDraco(input: THREE.Mesh, filename: string, options?: DRACOExporterOptions): void; - /** - * Exports to threejs json - * @param input - * @param filename - */ - static exportToThreeJsJson(input: THREE.Object3D, filename: string): void; - /** - * Saves blob as file - */ - static save(blob: Blob, filename: string): void; - static saveArrayBuffer(buffer: ArrayBuffer, filename: string): void; - static saveJson(json: object, filename: string): void; - static saveJsonString(jsonString: string, filename: string): void; - static saveString(str: string, filename: string): void; - /** - * Adds extention if missing - */ - private static addExtention; -} +import * as THREE from "three"; +import type { DRACOExporterOptions } from "three/examples/jsm/exporters/DRACOExporter"; +import type { GLTFExporterOptions } from "three/examples/jsm/exporters/GLTFExporter"; +/** + * @internal + */ +export declare class ExportUtils { + static EXTENSION_GLTF: string; + static EXTENSION_GLB: string; + static EXTENSION_OBJ: string; + static EXTENSION_DRACO: string; + static EXTENSION_JSON: string; + static EXTENSION_STL: string; + private static downloadLink; + /** + * Exports given object to gltf file + */ + static exportToGltf(input: THREE.Object3D, filename: string): void; + /** + * Exports given object to glb file + */ + static exportToGlb(input: THREE.Object3D, filename: string): void; + /** + * Exports given object to gltf/glb file + * @param input given object + * @param filename filename without path, nor extension + * @param options + */ + static exportToGltfOrGlb(input: THREE.Object3D, filename: string, options?: GLTFExporterOptions): void; + /** + * Exports given object to obj file + */ + static exportToObj(input: THREE.Object3D, filename: string): void; + /** + * Exports given object to draco(drc) file + */ + static exportToDraco(input: THREE.Mesh, filename: string, options?: DRACOExporterOptions): void; + /** + * Exports given object to stl file + */ + static exportToStl(input: THREE.Object3D, filename: string, binary?: boolean): void; + /** + * Exports to threejs json + * @param input + * @param filename + */ + static exportToThreeJsJson(input: THREE.Object3D, filename: string): void; + /** + * Saves blob as file + */ + static save(blob: Blob, filename: string): void; + static saveArrayBuffer(buffer: ArrayBuffer, filename: string): void; + static saveJson(json: object, filename: string): void; + static saveJsonString(jsonString: string, filename: string): void; + static saveString(str: string, filename: string): void; + static saveDataView(dataView: DataView, filename: string): void; + /** + * Adds extention if missing + */ + private static addExtention; +} diff --git a/demo/libs/types/core/utils/FpsUtils.d.ts b/demo/libs/types/core/utils/FpsUtils.d.ts index 3569f15..a179646 100644 --- a/demo/libs/types/core/utils/FpsUtils.d.ts +++ b/demo/libs/types/core/utils/FpsUtils.d.ts @@ -1,13 +1,13 @@ -/** - * @internal - */ -export declare class FpsUtils { - private prevTime; - private beginTime; - private frames; - fps: number; - constructor(); - begin(): void; - end(): number; - update(): void; -} +/** + * @internal + */ +export declare class FpsUtils { + private prevTime; + private beginTime; + private frames; + fps: number; + constructor(); + begin(): void; + end(): number; + update(): void; +} diff --git a/demo/libs/types/core/utils/GeometryUtils.d.ts b/demo/libs/types/core/utils/GeometryUtils.d.ts index def99c3..bb30486 100644 --- a/demo/libs/types/core/utils/GeometryUtils.d.ts +++ b/demo/libs/types/core/utils/GeometryUtils.d.ts @@ -1,78 +1,78 @@ -import * as THREE from "three"; -/** - * @internal - */ -export interface ILine { - start: THREE.Vector3; - end: THREE.Vector3; -} -/** - * GeometryUtils class - * @internal - */ -export declare class GeometryUtils { - /** - * Compares two materials - */ - static geometryEquals(g1: THREE.BufferGeometry, g2: THREE.BufferGeometry): boolean; - /** - * Checks if two types equal each other. - * This method requires type T defined 'equals' method. - */ - private static equals; - private static attributesEqual; - private static bufferAttributeEqual; - /** - * Converts InterleavedBufferAttribute to BufferAttribute, because mergeGeometries doesn't support InterleavedBufferAttribute. - * If it is supported by Three.js one day, we should remove this method. - */ - static tryConvertInterleavedBufferAttributes(geometry: THREE.BufferGeometry): void; - /** - * Determines if the 2d point is inside the polygon - */ - static isPointInPolygon(point: THREE.Vector2, polygon: THREE.Vector2[], includeOnSide?: boolean): boolean; - static caculateGeometryCenter(geometry: THREE.BufferGeometry): THREE.Vector3 | null; - static isConvex(polygon: THREE.Vector2[]): boolean; - static areLineSegmentsIntersecting(line1: ILine, line2: ILine): boolean; - /** - * Tries to get intersection point of two line segments. - * Returns undefined in case two line segments don't intersect with each other. - */ - static getLineSegmentsIntersectingPoint(line1: ILine, line2: ILine): THREE.Vector3 | null | undefined; - static isPointOnLineSegment(point: THREE.Vector3, line: ILine, epsilon?: number): boolean; - static isPointOnLineSegments(point: THREE.Vector3, lines: THREE.Vector3[], epsilon?: number): boolean; - /** - * Checks if we should rebase points in case their values are big, and do rebase if necessary - */ - static checkAndRebasePositionsOnRTC(positions: THREE.Vector3[] | THREE.Vector2[], offset: THREE.Vector3): boolean; - /** - * Checks if we should rebase a point in case its value is too large - */ - static shouldRebasePositionOnRTC(vector: THREE.Vector3 | THREE.Vector2): boolean; - /** - * Calculates surface area - */ - static calculateSurfaceArea(geometry: THREE.BufferGeometry): number; - /** - * Converts indexes of type line_strip to line - * for merge - */ - static convertLineStripToLine(geometry: THREE.BufferGeometry, bLoop?: boolean): void; - /** - * Convert an indexed geometry to a non-indexed geometry. Can be used for dashed line style. - */ - static convertGeometryWithIndexedToNonIndexed(geometry: THREE.BufferGeometry): THREE.BufferGeometry; - static createGeometryAttributeByIndex(attribute: THREE.BufferAttribute, indexBuffer: THREE.BufferAttribute): THREE.BufferAttribute; - /** - * Gets start/end point of a line segment by given index - */ - static getLineEndPointsByIndex(line: THREE.Line, index: number): THREE.Vector3[]; - static arePolygonsIntersect(polygon1: THREE.Vector2[], polygon2: THREE.Vector2[]): boolean; - static getLineLineIntersectionPoint(a: THREE.Vector2, b: THREE.Vector2, c: THREE.Vector2, d: THREE.Vector2, epsilon?: number): THREE.Vector2 | undefined; - static getOffsetPoint(a: THREE.Vector2, b: THREE.Vector2, offset: number): THREE.Vector2; - static convertSimpleWidthLineToMeshGeometry(points: THREE.Vector2[], width: number): THREE.BufferGeometry | undefined; - static convertWidthLineToMeshGeometry(points: THREE.Vector2[], width: number): THREE.BufferGeometry | undefined; - static releaseGeometryManually(geometry: THREE.BufferGeometry): void; - static getAdjacentNonRepeatPoints(points: THREE.Vector3[], epsilon?: number): THREE.Vector3[]; - static mergeBBoxes(bboxes: THREE.Box3[]): THREE.Box3[]; -} +import * as THREE from "three"; +/** + * @internal + */ +export interface ILine { + start: THREE.Vector3; + end: THREE.Vector3; +} +/** + * GeometryUtils class + * @internal + */ +export declare class GeometryUtils { + /** + * Compares two materials + */ + static geometryEquals(g1: THREE.BufferGeometry, g2: THREE.BufferGeometry): boolean; + /** + * Checks if two types equal each other. + * This method requires type T defined 'equals' method. + */ + private static equals; + private static attributesEqual; + private static bufferAttributeEqual; + /** + * Converts InterleavedBufferAttribute to BufferAttribute, because mergeGeometries doesn't support InterleavedBufferAttribute. + * If it is supported by Three.js one day, we should remove this method. + */ + static tryConvertInterleavedBufferAttributes(geometry: THREE.BufferGeometry): void; + /** + * Determines if the 2d point is inside the polygon + */ + static isPointInPolygon(point: THREE.Vector2, polygon: THREE.Vector2[], includeOnSide?: boolean): boolean; + static caculateGeometryCenter(geometry: THREE.BufferGeometry): THREE.Vector3 | null; + static isConvex(polygon: THREE.Vector2[]): boolean; + static areLineSegmentsIntersecting(line1: ILine, line2: ILine): boolean; + /** + * Tries to get intersection point of two line segments. + * Returns undefined in case two line segments don't intersect with each other. + */ + static getLineSegmentsIntersectingPoint(line1: ILine, line2: ILine): THREE.Vector3 | null | undefined; + static isPointOnLineSegment(point: THREE.Vector3, line: ILine, epsilon?: number): boolean; + static isPointOnLineSegments(point: THREE.Vector3, lines: THREE.Vector3[], epsilon?: number): boolean; + /** + * Checks if we should rebase points in case their values are big, and do rebase if necessary + */ + static checkAndRebasePositionsOnRTC(positions: THREE.Vector3[] | THREE.Vector2[], offset: THREE.Vector3): boolean; + /** + * Checks if we should rebase a point in case its value is too large + */ + static shouldRebasePositionOnRTC(vector: THREE.Vector3 | THREE.Vector2): boolean; + /** + * Calculates surface area + */ + static calculateSurfaceArea(geometry: THREE.BufferGeometry): number; + /** + * Converts indexes of type line_strip to line + * for merge + */ + static convertLineStripToLine(geometry: THREE.BufferGeometry, bLoop?: boolean): void; + /** + * Convert an indexed geometry to a non-indexed geometry. Can be used for dashed line style. + */ + static convertGeometryWithIndexedToNonIndexed(geometry: THREE.BufferGeometry): THREE.BufferGeometry; + static createGeometryAttributeByIndex(attribute: THREE.BufferAttribute, indexBuffer: THREE.BufferAttribute): THREE.BufferAttribute; + /** + * Gets start/end point of a line segment by given index + */ + static getLineEndPointsByIndex(line: THREE.Line, index: number): THREE.Vector3[]; + static arePolygonsIntersect(polygon1: THREE.Vector2[], polygon2: THREE.Vector2[]): boolean; + static getLineLineIntersectionPoint(a: THREE.Vector2, b: THREE.Vector2, c: THREE.Vector2, d: THREE.Vector2, epsilon?: number): THREE.Vector2 | undefined; + static getOffsetPoint(a: THREE.Vector2, b: THREE.Vector2, offset: number): THREE.Vector2; + static convertSimpleWidthLineToMeshGeometry(points: THREE.Vector2[], width: number): THREE.BufferGeometry | undefined; + static convertWidthLineToMeshGeometry(points: THREE.Vector2[], width: number): THREE.BufferGeometry | undefined; + static releaseGeometryManually(geometry: THREE.BufferGeometry): void; + static getAdjacentNonRepeatPoints(points: THREE.Vector3[], epsilon?: number): THREE.Vector3[]; + static mergeBBoxes(bboxes: THREE.Box3[]): THREE.Box3[]; +} diff --git a/demo/libs/types/core/utils/Locale.d.ts b/demo/libs/types/core/utils/Locale.d.ts index 9c7bed4..b4e6d97 100644 --- a/demo/libs/types/core/utils/Locale.d.ts +++ b/demo/libs/types/core/utils/Locale.d.ts @@ -1,190 +1,190 @@ -export declare const en: { - NavCube: { - front: string; - back: string; - top: string; - bottom: string; - left: string; - right: string; - }; - ContextMenu: { - viewFitAll: string; - hideAll: string; - showAll: string; - xRayAll: string; - xRayNone: string; - selectNone: string; - resetView: string; - viewFitEntity: string; - hideEntity: string; - hideOthers: string; - xRayEntity: string; - xRayOthers: string; - select: string; - deselect: string; - showSectionPlane: string; - showSectionBox: string; - showAxisSection: string; - hideSectionPlane: string; - hideSectionBox: string; - hideAxisSection: string; - undoSection: string; - }; - ProgressBar: { - Loading: string; - Comparing: string; - }; - Toolbar: { - homeView: string; - orthoView: string; - measurement: string; - distanceMeasurement: string; - areaMeasurement: string; - angleMeasurement: string; - coordinateMeasurement: string; - clearMeasurement: string; - markupVisibility: string; - markup: string; - markupArrow: string; - markupRect: string; - markupCloudRect: string; - markupPolyLine: string; - markupCloudLine: string; - markupEllipse: string; - markupCircle: string; - markupDot: string; - markupText: string; - markupX: string; - markupStroke: string; - markupLineWidth: string; - markupLineWidth2: string; - markupLineWidth5: string; - markupLineWidth10: string; - markupFontSize: string; - markupFontSize14: string; - markupFontSize18: string; - markupFontSize24: string; - clearMarkup: string; - quitMarkup: string; - section: string; - axisSection: string; - pickSectionPlane: string; - sectionBox: string; - bimTree: string; - viewpoint: string; - annotation: string; - property: string; - settings: string; - compared: string; - quitCompare: string; - fullscreen: string; - layers: string; - zoomToRectangle: string; - screenshot: string; - }; - Tooltip: { - measure: string; - areaMeasurement: string; - section: string; - boxSelect: string; - pickMarkup: string; - }; - PopPanel: { - reset: string; - }; -}; -export declare const cn: { - NavCube: { - front: string; - back: string; - top: string; - bottom: string; - left: string; - right: string; - }; - ContextMenu: { - viewFitAll: string; - hideAll: string; - showAll: string; - xRayAll: string; - xRayNone: string; - selectNone: string; - resetView: string; - viewFitEntity: string; - hideEntity: string; - hideOthers: string; - xRayEntity: string; - xRayOthers: string; - select: string; - deselect: string; - showSectionPlane: string; - showSectionBox: string; - showAxisSection: string; - hideSectionPlane: string; - hideSectionBox: string; - hideAxisSection: string; - undoSection: string; - }; - ProgressBar: { - Loading: string; - Comparing: string; - }; - Toolbar: { - homeView: string; - orthoView: string; - measurement: string; - distanceMeasurement: string; - areaMeasurement: string; - angleMeasurement: string; - coordinateMeasurement: string; - clearMeasurement: string; - markupVisibility: string; - markup: string; - markupArrow: string; - markupRect: string; - markupCloudRect: string; - markupPolyLine: string; - markupCloudLine: string; - markupEllipse: string; - markupCircle: string; - markupDot: string; - markupText: string; - markupX: string; - markupStroke: string; - markupLineWidth: string; - markupLineWidth2: string; - markupLineWidth5: string; - markupLineWidth10: string; - markupFontSize: string; - markupFontSize14: string; - markupFontSize18: string; - markupFontSize24: string; - clearMarkup: string; - quitMarkup: string; - section: string; - axisSection: string; - pickSectionPlane: string; - sectionBox: string; - bimTree: string; - viewpoint: string; - annotation: string; - property: string; - settings: string; - compared: string; - quitCompare: string; - fullscreen: string; - layers: string; - zoomToRectangle: string; - screenshot: string; - }; - Tooltip: { - measure: string; - areaMeasurement: string; - section: string; - boxSelect: string; - pickMarkup: string; - }; - PopPanel: { - reset: string; - }; -}; +export declare const en: { + NavCube: { + front: string; + back: string; + top: string; + bottom: string; + left: string; + right: string; + }; + ContextMenu: { + viewFitAll: string; + hideAll: string; + showAll: string; + xRayAll: string; + xRayNone: string; + selectNone: string; + resetView: string; + viewFitEntity: string; + hideEntity: string; + hideOthers: string; + xRayEntity: string; + xRayOthers: string; + select: string; + deselect: string; + showSectionPlane: string; + showSectionBox: string; + showAxisSection: string; + hideSectionPlane: string; + hideSectionBox: string; + hideAxisSection: string; + undoSection: string; + }; + ProgressBar: { + Loading: string; + Comparing: string; + }; + Toolbar: { + homeView: string; + orthoView: string; + measurement: string; + distanceMeasurement: string; + areaMeasurement: string; + angleMeasurement: string; + coordinateMeasurement: string; + clearMeasurement: string; + markupVisibility: string; + markup: string; + markupArrow: string; + markupRect: string; + markupCloudRect: string; + markupPolyLine: string; + markupCloudLine: string; + markupEllipse: string; + markupCircle: string; + markupDot: string; + markupText: string; + markupX: string; + markupStroke: string; + markupLineWidth: string; + markupLineWidth2: string; + markupLineWidth5: string; + markupLineWidth10: string; + markupFontSize: string; + markupFontSize14: string; + markupFontSize18: string; + markupFontSize24: string; + clearMarkup: string; + quitMarkup: string; + section: string; + axisSection: string; + pickSectionPlane: string; + sectionBox: string; + bimTree: string; + viewpoint: string; + annotation: string; + property: string; + settings: string; + compared: string; + quitCompare: string; + fullscreen: string; + layers: string; + zoomToRectangle: string; + screenshot: string; + }; + Tooltip: { + measure: string; + areaMeasurement: string; + section: string; + boxSelect: string; + pickMarkup: string; + }; + PopPanel: { + reset: string; + }; +}; +export declare const cn: { + NavCube: { + front: string; + back: string; + top: string; + bottom: string; + left: string; + right: string; + }; + ContextMenu: { + viewFitAll: string; + hideAll: string; + showAll: string; + xRayAll: string; + xRayNone: string; + selectNone: string; + resetView: string; + viewFitEntity: string; + hideEntity: string; + hideOthers: string; + xRayEntity: string; + xRayOthers: string; + select: string; + deselect: string; + showSectionPlane: string; + showSectionBox: string; + showAxisSection: string; + hideSectionPlane: string; + hideSectionBox: string; + hideAxisSection: string; + undoSection: string; + }; + ProgressBar: { + Loading: string; + Comparing: string; + }; + Toolbar: { + homeView: string; + orthoView: string; + measurement: string; + distanceMeasurement: string; + areaMeasurement: string; + angleMeasurement: string; + coordinateMeasurement: string; + clearMeasurement: string; + markupVisibility: string; + markup: string; + markupArrow: string; + markupRect: string; + markupCloudRect: string; + markupPolyLine: string; + markupCloudLine: string; + markupEllipse: string; + markupCircle: string; + markupDot: string; + markupText: string; + markupX: string; + markupStroke: string; + markupLineWidth: string; + markupLineWidth2: string; + markupLineWidth5: string; + markupLineWidth10: string; + markupFontSize: string; + markupFontSize14: string; + markupFontSize18: string; + markupFontSize24: string; + clearMarkup: string; + quitMarkup: string; + section: string; + axisSection: string; + pickSectionPlane: string; + sectionBox: string; + bimTree: string; + viewpoint: string; + annotation: string; + property: string; + settings: string; + compared: string; + quitCompare: string; + fullscreen: string; + layers: string; + zoomToRectangle: string; + screenshot: string; + }; + Tooltip: { + measure: string; + areaMeasurement: string; + section: string; + boxSelect: string; + pickMarkup: string; + }; + PopPanel: { + reset: string; + }; +}; diff --git a/demo/libs/types/core/utils/LogUtils.d.ts b/demo/libs/types/core/utils/LogUtils.d.ts index 9353193..cb1f054 100644 --- a/demo/libs/types/core/utils/LogUtils.d.ts +++ b/demo/libs/types/core/utils/LogUtils.d.ts @@ -1,7 +1,7 @@ -import * as loglevel from "loglevel"; -export declare const log: loglevel.RootLogger; -/** - * Sets log level. - * Note that, we limit user to set only some of the levels. - */ -export declare const setLogLevel: (level: string) => void; +import * as loglevel from "loglevel"; +export declare const log: loglevel.RootLogger; +/** + * Sets log level. + * Note that, we limit user to set only some of the levels. + */ +export declare const setLogLevel: (level: string) => void; diff --git a/demo/libs/types/core/utils/MaterialUtils.d.ts b/demo/libs/types/core/utils/MaterialUtils.d.ts index e4334d6..f908007 100644 --- a/demo/libs/types/core/utils/MaterialUtils.d.ts +++ b/demo/libs/types/core/utils/MaterialUtils.d.ts @@ -1,39 +1,39 @@ -import * as THREE from "three"; -/** - * MaterialUtils class - * @internal - */ -export declare class MaterialUtils { - /** - * Compares two materials - */ - static materialEquals(m1: THREE.Material, m2: THREE.Material): boolean; - /** - * Compares two materials, which could be material or material array - */ - static materialsEquals(m1: THREE.Material | THREE.Material[], m2: THREE.Material | THREE.Material[]): boolean; - /** - * Compares two colors - */ - static colorEquals(c1: THREE.Color, c2: THREE.Color): boolean; - static clonedHighlightMaterials(mesh: THREE.Mesh | THREE.Line | THREE.Points, options?: { - depthTest?: boolean; - highlightColor?: THREE.Color; - opacity?: number; - }): THREE.Material | THREE.Material[] | undefined; - static clonedHighlightMaterial(material: THREE.Material, options?: { - depthTest?: boolean; - highlightColor?: THREE.Color; - opacity?: number; - }): THREE.Material; - /** - * Clone given material(s) - */ - static cloneMaterial(material: THREE.Material | THREE.Material[]): THREE.Material | THREE.Material[]; - static getMaterialColor(material: THREE.Material | THREE.Material[]): THREE.Color; - static setMaterialColor(material: THREE.Material | THREE.Material[], color: THREE.Color): void; - /** - * Clone object's materials - */ - static cloneMaterials(object: THREE.Object3D): void; -} +import * as THREE from "three"; +/** + * MaterialUtils class + * @internal + */ +export declare class MaterialUtils { + /** + * Compares two materials + */ + static materialEquals(m1: THREE.Material, m2: THREE.Material): boolean; + /** + * Compares two materials, which could be material or material array + */ + static materialsEquals(m1: THREE.Material | THREE.Material[], m2: THREE.Material | THREE.Material[]): boolean; + /** + * Compares two colors + */ + static colorEquals(c1: THREE.Color, c2: THREE.Color): boolean; + static clonedHighlightMaterials(mesh: THREE.Mesh | THREE.Line | THREE.Points, options?: { + depthTest?: boolean; + highlightColor?: THREE.Color; + opacity?: number; + }): THREE.Material | THREE.Material[] | undefined; + static clonedHighlightMaterial(material: THREE.Material, options?: { + depthTest?: boolean; + highlightColor?: THREE.Color; + opacity?: number; + }): THREE.Material; + /** + * Clone given material(s) + */ + static cloneMaterial(material: THREE.Material | THREE.Material[]): THREE.Material | THREE.Material[]; + static getMaterialColor(material: THREE.Material | THREE.Material[]): THREE.Color; + static setMaterialColor(material: THREE.Material | THREE.Material[], color: THREE.Color): void; + /** + * Clone object's materials + */ + static cloneMaterials(object: THREE.Object3D): void; +} diff --git a/demo/libs/types/core/utils/MathUtils.d.ts b/demo/libs/types/core/utils/MathUtils.d.ts index 91b6b16..ba3b126 100644 --- a/demo/libs/types/core/utils/MathUtils.d.ts +++ b/demo/libs/types/core/utils/MathUtils.d.ts @@ -1,59 +1,59 @@ -import * as THREE from "three"; -import { Vector3, Box, Mat4 } from "../../core/Constants"; -/** - * @internal - */ -export declare class MathUtils { - static roundNumber(value: number, n: number): number; - static floorNumber(value: number, n: number): number; - static areNumbersEqual(a: number, b: number, epsilon?: number): boolean; - static areVector2sEqual(a: THREE.Vector2, b: THREE.Vector2, epsilon?: number): boolean; - static areVector3sEqual(a: THREE.Vector3, b: THREE.Vector3, epsilon?: number): boolean; - static areNumbersClose(a: number, b: number, ref_tol?: number, abs_tol?: number): boolean; - static areVector2sClose(point1: THREE.Vector2, point2: THREE.Vector2, ref_tol?: number, abs_tol?: number): boolean; - static areVectorsClose(point1: THREE.Vector3, point2: THREE.Vector3, ref_tol?: number, abs_tol?: number): boolean; - static getArcAngleSpanInRadian(startAngle: number, endAngle: number): number; - static getIntegerPartLength(num: number): number; - static getRelativeEps(num: number, epsilon?: number): number; - static getVector2RelativeEps(vec: THREE.Vector2, epsilon?: number): number; - static getControlPointByTwoPoints(p1: THREE.Vector2, p2: THREE.Vector2): THREE.Vector2; - static convertPointFromUEToGltf(point: Vector3): { - x: number; - y: number; - z: number; - }; - static convertPointFromGltfToUE(point: Vector3): { - x: number; - y: number; - z: number; - }; - static convertPointFromUEToRevit(point: Vector3): { - x: number; - y: number; - z: number; - }; - static convertPointFromRevitToUE(point: Vector3): { - x: number; - y: number; - z: number; - }; - static getBox(point1: Vector3, point2: Vector3): number[]; - static getCenter(box: Box): { - x: number; - y: number; - z: number; - }; - static convertBoxFromGltfToUE(box: Box): number[]; - static convertBoxFromUEToGltf(box: Box): number[]; - static convertBoxFromRevitToUE(box: Box): number[]; - static convertBoxFromUEToRevit(box: Box): number[]; - static clamp(value: number, min: number, max: number): number; - static getLookAtMatrix(eye: Vector3, target: Vector3, up: Vector3): number[]; - static getLocationFromMatrix(matrix: Mat4): { - x: number; - y: number; - z: number; - }; - static toDegrees(radians: number): number; - static toRadians(degrees: number): number; -} +import * as THREE from "three"; +import { Vector3, Box, Mat4 } from "../../core/Constants"; +/** + * @internal + */ +export declare class MathUtils { + static roundNumber(value: number, n: number): number; + static floorNumber(value: number, n: number): number; + static areNumbersEqual(a: number, b: number, epsilon?: number): boolean; + static areVector2sEqual(a: THREE.Vector2, b: THREE.Vector2, epsilon?: number): boolean; + static areVector3sEqual(a: THREE.Vector3, b: THREE.Vector3, epsilon?: number): boolean; + static areNumbersClose(a: number, b: number, ref_tol?: number, abs_tol?: number): boolean; + static areVector2sClose(point1: THREE.Vector2, point2: THREE.Vector2, ref_tol?: number, abs_tol?: number): boolean; + static areVectorsClose(point1: THREE.Vector3, point2: THREE.Vector3, ref_tol?: number, abs_tol?: number): boolean; + static getArcAngleSpanInRadian(startAngle: number, endAngle: number): number; + static getIntegerPartLength(num: number): number; + static getRelativeEps(num: number, epsilon?: number): number; + static getVector2RelativeEps(vec: THREE.Vector2, epsilon?: number): number; + static getControlPointByTwoPoints(p1: THREE.Vector2, p2: THREE.Vector2): THREE.Vector2; + static convertPointFromUEToGltf(point: Vector3): { + x: number; + y: number; + z: number; + }; + static convertPointFromGltfToUE(point: Vector3): { + x: number; + y: number; + z: number; + }; + static convertPointFromUEToRevit(point: Vector3): { + x: number; + y: number; + z: number; + }; + static convertPointFromRevitToUE(point: Vector3): { + x: number; + y: number; + z: number; + }; + static getBox(point1: Vector3, point2: Vector3): number[]; + static getCenter(box: Box): { + x: number; + y: number; + z: number; + }; + static convertBoxFromGltfToUE(box: Box): number[]; + static convertBoxFromUEToGltf(box: Box): number[]; + static convertBoxFromRevitToUE(box: Box): number[]; + static convertBoxFromUEToRevit(box: Box): number[]; + static clamp(value: number, min: number, max: number): number; + static getLookAtMatrix(eye: Vector3, target: Vector3, up: Vector3): number[]; + static getLocationFromMatrix(matrix: Mat4): { + x: number; + y: number; + z: number; + }; + static toDegrees(radians: number): number; + static toRadians(degrees: number): number; +} diff --git a/demo/libs/types/core/utils/MergeUtils.d.ts b/demo/libs/types/core/utils/MergeUtils.d.ts index e8e0845..904ea53 100644 --- a/demo/libs/types/core/utils/MergeUtils.d.ts +++ b/demo/libs/types/core/utils/MergeUtils.d.ts @@ -1,119 +1,119 @@ -import * as THREE from "three"; -/** - * Used for merged mesh - * @internal - */ -export interface Batch { - batchId: number; - name?: string; - id?: string; - positionStart: number; - positionCount: number; - indexStart: number; - indexCount: number; - boundingSphere?: THREE.Sphere; - userData?: object; -} -/** - * MergeHelper class is used to merge child objects for a given object - * @internal - */ -export declare class MergeUtils { - static mergeInfo: { - removedObjects: number; - mergedMeshes: number; - mergedLines: number; - mergedPoints: number; - mergedUnknownTypeObjects: number; - elapsedTime: number; - }; - static resetMergeInfo(): void; - /** - * Merges child objects for given object. - * it tries to merge objects in the same level and with the same parent; - * @param saveBatchInfo caller can set saveBatchInfo to true, so that s/he can - * get the object's original data before merged. - * While this takes some extra space, so, we'd like to add a flag here. - */ - static merge(object: THREE.Object3D, saveBatchInfo?: boolean): void; - /** - * Merges child objects of given object. - * If objects' material are the same, they can be merged. - */ - private static mergeInner; - /** - * @param object parent object or THREE.Object3D[] - * @param i index of for object.children[] - * @param k index of for object.children[] - * @param dict to store merge-able object - * @param nonMergeIndexes used in order to improve performance - */ - private static tryHandleMergeableObjects; - /** - * TODO: Filters XC etc. - * there are cases where entities with xc and without xc are merged together - */ - /** - * Merges all objects of given object, just leaf children. - * If objects' material are the same, they can be merged. - * Better to call mergeInner first then deepMerge for a better performance. - * return \{ "added": THREE.Object3D[], "removed": THREE.Object3D[] \} - */ - static deepMerge(objects: THREE.Object3D[], levelObject?: THREE.Object3D | undefined, bRemovedAndAddedAfterMerge?: boolean, bRemoveEmptyObjectsAfterMerge?: boolean, saveBatchInfo?: boolean): { - added: THREE.Object3D[]; - removed: THREE.Object3D[]; - }; - /** - * since we'll move geometry to another merged mesh under a group, below is the structure: - - root object - - merged objects group - - merged object 1 - * need to consider a geomery's matrix for each level of ancestor - */ - private static applyMatrix; - /** - * Merges geometries for lines - */ - static mergeLineGeometries(geometries: THREE.BufferGeometry[], saveBatchInfo: boolean, isDashedMaterial: boolean, batches?: Batch[]): THREE.BufferGeometry | undefined; - private static mergeBufferGeometriesWithLinesToLineSegments; - private static mergeBufferAttributesWithLinesToLineSegments; - /** - * Removes a number from array - */ - private static removeFromArray; - /** - * Removes object from objects - */ - static removeObjectFromArray(arr: THREE.Object3D[], toBeDeleted: THREE.Object3D): void; - /** - * Checks if two geometries are mergable. - * It requires they have the same type and the same attributes. - */ - static areGeometriesMergeable(g1: THREE.BufferGeometry, g2: THREE.BufferGeometry): boolean; - /** - * Checks if two objects are mergable. - * It requires - * - They are with the same masks. - * - Their userData.layerName must be the same if there is. This is useful for Dxf. - * - They have the same type or the same draw type( Mesh or Line or Point). - */ - static areObjectsMergeable(o1: THREE.Object3D, o2: THREE.Object3D): any; - /** - * Checks if it is a merged object - */ - static isMergedMesh(mesh: THREE.Mesh): boolean; - static isFaceIndexInBatch(geometry: THREE.BufferGeometry, batch: Batch, faceIndex: number): boolean; - static getBatchByFaceIndex(mesh: THREE.Mesh, faceIndex: number): Batch | undefined; - static getBatchByLineIndex(line: THREE.Line, index: number): Batch | undefined; - /** - * Gets batchId by faceIndex for a merged mesh - */ - static getBatchIdByFaceIndex(mesh: THREE.Mesh, faceIndex: number): number; - static getBatchByBatchId(mesh: THREE.Mesh, batchId: number): Batch | undefined; - /** - * Clones corresponding geometry for given batch. - * To do this, we'll clone the geometry so the matrix, material, normal, uv, etc. - * will be correct, and we'll remove extra index and position. - */ - static cloneGeometryForBatch(mesh: THREE.Mesh, batch: Batch): THREE.BufferGeometry | undefined; -} +import * as THREE from "three"; +/** + * Used for merged mesh + * @internal + */ +export interface Batch { + batchId: number; + name?: string; + id?: string; + positionStart: number; + positionCount: number; + indexStart: number; + indexCount: number; + boundingSphere?: THREE.Sphere; + userData?: object; +} +/** + * MergeHelper class is used to merge child objects for a given object + * @internal + */ +export declare class MergeUtils { + static mergeInfo: { + removedObjects: number; + mergedMeshes: number; + mergedLines: number; + mergedPoints: number; + mergedUnknownTypeObjects: number; + elapsedTime: number; + }; + static resetMergeInfo(): void; + /** + * Merges child objects for given object. + * it tries to merge objects in the same level and with the same parent; + * @param saveBatchInfo caller can set saveBatchInfo to true, so that s/he can + * get the object's original data before merged. + * While this takes some extra space, so, we'd like to add a flag here. + */ + static merge(object: THREE.Object3D, saveBatchInfo?: boolean): void; + /** + * Merges child objects of given object. + * If objects' material are the same, they can be merged. + */ + private static mergeInner; + /** + * @param object parent object or THREE.Object3D[] + * @param i index of for object.children[] + * @param k index of for object.children[] + * @param dict to store merge-able object + * @param nonMergeIndexes used in order to improve performance + */ + private static tryHandleMergeableObjects; + /** + * TODO: Filters XC etc. + * there are cases where entities with xc and without xc are merged together + */ + /** + * Merges all objects of given object, just leaf children. + * If objects' material are the same, they can be merged. + * Better to call mergeInner first then deepMerge for a better performance. + * return \{ "added": THREE.Object3D[], "removed": THREE.Object3D[] \} + */ + static deepMerge(objects: THREE.Object3D[], levelObject?: THREE.Object3D | undefined, bRemovedAndAddedAfterMerge?: boolean, bRemoveEmptyObjectsAfterMerge?: boolean, saveBatchInfo?: boolean): { + added: THREE.Object3D[]; + removed: THREE.Object3D[]; + }; + /** + * since we'll move geometry to another merged mesh under a group, below is the structure: + - root object + - merged objects group + - merged object 1 + * need to consider a geomery's matrix for each level of ancestor + */ + private static applyMatrix; + /** + * Merges geometries for lines + */ + static mergeLineGeometries(geometries: THREE.BufferGeometry[], saveBatchInfo: boolean, isDashedMaterial: boolean, batches?: Batch[]): THREE.BufferGeometry | undefined; + private static mergeBufferGeometriesWithLinesToLineSegments; + private static mergeBufferAttributesWithLinesToLineSegments; + /** + * Removes a number from array + */ + private static removeFromArray; + /** + * Removes object from objects + */ + static removeObjectFromArray(arr: THREE.Object3D[], toBeDeleted: THREE.Object3D): void; + /** + * Checks if two geometries are mergable. + * It requires they have the same type and the same attributes. + */ + static areGeometriesMergeable(g1: THREE.BufferGeometry, g2: THREE.BufferGeometry): boolean; + /** + * Checks if two objects are mergable. + * It requires + * - They are with the same masks. + * - Their userData.layerName must be the same if there is. This is useful for Dxf. + * - They have the same type or the same draw type( Mesh or Line or Point). + */ + static areObjectsMergeable(o1: THREE.Object3D, o2: THREE.Object3D): any; + /** + * Checks if it is a merged object + */ + static isMergedMesh(mesh: THREE.Mesh): boolean; + static isFaceIndexInBatch(geometry: THREE.BufferGeometry, batch: Batch, faceIndex: number): boolean; + static getBatchByFaceIndex(mesh: THREE.Mesh, faceIndex: number): Batch | undefined; + static getBatchByLineIndex(line: THREE.Line, index: number): Batch | undefined; + /** + * Gets batchId by faceIndex for a merged mesh + */ + static getBatchIdByFaceIndex(mesh: THREE.Mesh, faceIndex: number): number; + static getBatchByBatchId(mesh: THREE.Mesh, batchId: number): Batch | undefined; + /** + * Clones corresponding geometry for given batch. + * To do this, we'll clone the geometry so the matrix, material, normal, uv, etc. + * will be correct, and we'll remove extra index and position. + */ + static cloneGeometryForBatch(mesh: THREE.Mesh, batch: Batch): THREE.BufferGeometry | undefined; +} diff --git a/demo/libs/types/core/utils/ObjectUtils.d.ts b/demo/libs/types/core/utils/ObjectUtils.d.ts index 29ad9c4..b335a95 100644 --- a/demo/libs/types/core/utils/ObjectUtils.d.ts +++ b/demo/libs/types/core/utils/ObjectUtils.d.ts @@ -1,207 +1,207 @@ -import * as THREE from "three"; -import { DxfObject } from "../dxf/DxfObject"; -/** - * @internal - */ -export interface MaterialInfo { - id: number; - material?: THREE.Material; - clonedMaterial?: THREE.Material; - opacity: number; - transparent: boolean; - side: THREE.Side; -} -/** - * Util class for Threejs Object - * @internal - */ -export declare class ObjectUtils { - /** - * Clears any styles, including transparency, wireframe mode, filter by floor, etc. - * @param object - */ - static resetObjectStyle(object: THREE.Object3D): void; - /** - * Clears any styles, including transparency, wireframe mode, filter by floor, etc. - */ - static resetObjectStyleById(scene: THREE.Scene, id: number): void; - /** - * Sets an object's opacity - * @returns returns MaterialInfo list in case caller want to revert the opacity - */ - static setObjectOpacity(object: THREE.Object3D, opacity?: number, includeObjectIds?: number[], excludeObjectIds?: number[]): MaterialInfo[]; - /** - * Reverts an object's opacity - * @param object the root object - */ - static revertObjectOpacity(object: THREE.Object3D, materialInfoList: MaterialInfo[], includeObjectIds?: number[], excludeObjectIds?: number[]): void; - /** - * Sets an object's opacity - */ - static setObjectOpacityById(scene: THREE.Scene, id: number, opacity?: number, includeObjectIds?: number[], excludeObjectIds?: number[]): MaterialInfo[]; - /** - * Reverts an object's opacity - */ - static revertObjectOpacityById(scene: THREE.Scene, id: number, materialInfoList: MaterialInfo[], includeObjectIds?: number[], excludeObjectIds?: number[]): void; - /** - * Applies material to an object, including its children - * The originalMaterial will be saved to userData in case user want to revert it - */ - static applyMaterialToObject(object: THREE.Object3D, material: THREE.Material | THREE.Material[], includeObjectIds?: number[], excludeObjectIds?: number[]): void; - /** - * Revert applied material to an object, including its children - */ - static revertAppliedMaterialToObject(object: THREE.Object3D, includeObjectIds?: number[], excludeObjectIds?: number[]): void; - /** - * Sets an object's opacity - */ - static applyMaterialToObjectById(scene: THREE.Scene, id: number, material: THREE.Material | THREE.Material[], includeObjectIds?: number[], excludeObjectIds?: number[]): void; - /** - * Reverts an object's opacity - */ - static revertAppliedMaterialToObjectById(scene: THREE.Scene, id: number, includeObjectIds?: number[], excludeObjectIds?: number[]): void; - /** - * Applies a default opacity material to an object, including its children - */ - static applyOpacityMaterialToObject(object: THREE.Object3D, includeObjectIds?: number[], excludeObjectIds?: number[]): void; - /** - * Sets an object to be wireframe mode. - * In order to revert wireframe mode, we'll store original material in userData: \{ - * materialForWireframe: THREE.Material - * \} - * It seems wireframe mode have performance degradation, look at here for more info: - * https://stackoverflow.com/questions/45917611/shader-wireframe-of-an-object - */ - static setWireframeMode(object: THREE.Object3D): void; - /** - * Sets an object to be wireframe mode. - */ - static setWireframeModeById(scene: THREE.Scene, id: number): void; - /** - * Reverts an object to be non-wireframe mode. - */ - static revertWireframeMode(object: THREE.Object3D): void; - /** - * Reverts an object to be non-wireframe mode. - */ - static revertWireframeModeById(scene: THREE.Scene, id: number): void; - /** - * Finds objects by name, id, userData, etc. - * @param scene - * @param targetIds target object ids to find from - * @param searchText search text - * @param findFirst only find the first - */ - private static findInner; - /** - * Finds objects by given string - */ - static find(scene: THREE.Scene, searchText: string, targetIds?: number[], findFirst?: boolean): THREE.Object3D[]; - /** - * Finds the first object by given string - */ - static findFirst(scene: THREE.Scene, searchText: string, targetIds?: number[], findFirst?: boolean): THREE.Object3D | undefined; - /** - * Checks if given string contains floor - * @param str string to match, e.g. '5F(xxx)' - */ - private static getFloorsFromString; - /** - * Matches if a string contains floor string - * @param str string to match, e.g. '5F(xxx)' - * @param floor '5F', etc. - */ - private static matchFloor; - /** - * Matches if a string contains one of floor string in floors - * @param str string to match, e.g. '5F(xxx)' - * @param floor '5F', etc. - */ - private static matchFloors; - /** - * Distincts/find floors from models, by checking children object.name - */ - static distinctFloors(scene: THREE.Scene, modelId: number[]): string[]; - /** - * Sets object's visible to true if its name, etc. match one of given floor. - * This method won't affect other objects that don't match. - */ - static traverseObjectByFloors(scene: THREE.Scene, objectId: number, floors: number[], matchCallback?: (object: THREE.Object3D) => void, unmatchCallback?: (object: THREE.Object3D) => void): never[] | undefined; - /** - * Sets object belong to given floors to be visible - * @param objectId root or parent object id - * @param makeUnmatchedInvisible if it should make unmatched object invisible - */ - static setVisibleForFloors(scene: THREE.Scene, objectId: number, floors: number[], makeUnmatchedInvisible?: boolean): void; - static revertVisibleForFloors(object: THREE.Object3D): void; - static revertVisibleForFloorsById(scene: THREE.Scene, id: number): void; - private static getObjectById; - /** - * Outline default material - */ - private static OUTLINE_MATERIAL; - /** - * Creates outlines for given object and children - */ - static createOutlines(object: THREE.Object3D, options?: { - onlyVisible: boolean; - meshOnly: boolean; - }, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * Recursively removes outlines for given object and children - */ - static removeOutlines(object: THREE.Object3D): void; - /** - * Checks if an object has outline already - * @param checkChildren If it checks children recursively. - */ - static hasOutline(object: THREE.Object3D, checkChildren?: boolean): boolean; - /** - * Sets outline visiblility for given object and children - */ - static setOutlinesVisibility(object: THREE.Object3D, visible: boolean): void; - /** - * Creates outline for given geometry - */ - static createOutline(geometry: THREE.BufferGeometry, material?: THREE.LineBasicMaterial, matrix?: THREE.Matrix4): THREE.LineSegments; - /** - * Clones object - * @param object target object to be cloned - * @param cloneMaterial if it needs to clone material or not - * @returns cloned object - */ - static cloneObject(object: THREE.Object3D, cloneMaterial?: boolean): THREE.Object3D; - private static BOX_FACE_MATERIAL; - /** - * Creates box mesh - */ - static createBox(sizeX: number, sizeY: number, sizeZ: number, faceMaterial?: THREE.Material, withBottom?: boolean): THREE.Mesh, THREE.Material>; - /** - * TODO: Relative to center - */ - static rebaseObjectOnRTC(object: THREE.Object3D): THREE.Object3D; - static isEmptyObject(object: THREE.Object3D | DxfObject): boolean; - static removeEmptyObjects(object: THREE.Object3D | DxfObject): boolean; - /** - * From bottom to top, removes child objects first, - * and then removes empty parent objects - */ - static removeEmptyObjectsFromRemovingObjects(removingObjects: THREE.Object3D[], levelObject: THREE.Object3D): void; - /** - * To save memory, object3d shares some variables - */ - static setSharedVariablesOfObject(object: THREE.Object3D): void; - /** - * Checks if an object is a drawable leaf object - */ - static isLeafObject(obj: THREE.Object3D): boolean; - /** - * object layers related setting functions - */ - static enableLayerChannels(obj: THREE.Object3D, channels: number[], recursive?: boolean): void; - static disableLayerChannels(obj: THREE.Object3D, channels: number[], recursive?: boolean): void; - static setLayerChannels(obj: THREE.Object3D, channels: number[], recursive?: boolean): void; - static isObjectHittable(obj: THREE.Object3D): boolean; - static isObjectSnapable(obj: THREE.Object3D): boolean; - static isObjectSelectable(obj: THREE.Object3D): boolean; -} +import * as THREE from "three"; +import { DxfObject } from "../dxf/DxfObject"; +/** + * @internal + */ +export interface MaterialInfo { + id: number; + material?: THREE.Material; + clonedMaterial?: THREE.Material; + opacity: number; + transparent: boolean; + side: THREE.Side; +} +/** + * Util class for Threejs Object + * @internal + */ +export declare class ObjectUtils { + /** + * Clears any styles, including transparency, wireframe mode, filter by floor, etc. + * @param object + */ + static resetObjectStyle(object: THREE.Object3D): void; + /** + * Clears any styles, including transparency, wireframe mode, filter by floor, etc. + */ + static resetObjectStyleById(scene: THREE.Scene, id: number): void; + /** + * Sets an object's opacity + * @returns returns MaterialInfo list in case caller want to revert the opacity + */ + static setObjectOpacity(object: THREE.Object3D, opacity?: number, includeObjectIds?: number[], excludeObjectIds?: number[]): MaterialInfo[]; + /** + * Reverts an object's opacity + * @param object the root object + */ + static revertObjectOpacity(object: THREE.Object3D, materialInfoList: MaterialInfo[], includeObjectIds?: number[], excludeObjectIds?: number[]): void; + /** + * Sets an object's opacity + */ + static setObjectOpacityById(scene: THREE.Scene, id: number, opacity?: number, includeObjectIds?: number[], excludeObjectIds?: number[]): MaterialInfo[]; + /** + * Reverts an object's opacity + */ + static revertObjectOpacityById(scene: THREE.Scene, id: number, materialInfoList: MaterialInfo[], includeObjectIds?: number[], excludeObjectIds?: number[]): void; + /** + * Applies material to an object, including its children + * The originalMaterial will be saved to userData in case user want to revert it + */ + static applyMaterialToObject(object: THREE.Object3D, material: THREE.Material | THREE.Material[], includeObjectIds?: number[], excludeObjectIds?: number[]): void; + /** + * Revert applied material to an object, including its children + */ + static revertAppliedMaterialToObject(object: THREE.Object3D, includeObjectIds?: number[], excludeObjectIds?: number[]): void; + /** + * Sets an object's opacity + */ + static applyMaterialToObjectById(scene: THREE.Scene, id: number, material: THREE.Material | THREE.Material[], includeObjectIds?: number[], excludeObjectIds?: number[]): void; + /** + * Reverts an object's opacity + */ + static revertAppliedMaterialToObjectById(scene: THREE.Scene, id: number, includeObjectIds?: number[], excludeObjectIds?: number[]): void; + /** + * Applies a default opacity material to an object, including its children + */ + static applyOpacityMaterialToObject(object: THREE.Object3D, includeObjectIds?: number[], excludeObjectIds?: number[]): void; + /** + * Sets an object to be wireframe mode. + * In order to revert wireframe mode, we'll store original material in userData: \{ + * materialForWireframe: THREE.Material + * \} + * It seems wireframe mode have performance degradation, look at here for more info: + * https://stackoverflow.com/questions/45917611/shader-wireframe-of-an-object + */ + static setWireframeMode(object: THREE.Object3D): void; + /** + * Sets an object to be wireframe mode. + */ + static setWireframeModeById(scene: THREE.Scene, id: number): void; + /** + * Reverts an object to be non-wireframe mode. + */ + static revertWireframeMode(object: THREE.Object3D): void; + /** + * Reverts an object to be non-wireframe mode. + */ + static revertWireframeModeById(scene: THREE.Scene, id: number): void; + /** + * Finds objects by name, id, userData, etc. + * @param scene + * @param targetIds target object ids to find from + * @param searchText search text + * @param findFirst only find the first + */ + private static findInner; + /** + * Finds objects by given string + */ + static find(scene: THREE.Scene, searchText: string, targetIds?: number[], findFirst?: boolean): THREE.Object3D[]; + /** + * Finds the first object by given string + */ + static findFirst(scene: THREE.Scene, searchText: string, targetIds?: number[], findFirst?: boolean): THREE.Object3D | undefined; + /** + * Checks if given string contains floor + * @param str string to match, e.g. '5F(xxx)' + */ + private static getFloorsFromString; + /** + * Matches if a string contains floor string + * @param str string to match, e.g. '5F(xxx)' + * @param floor '5F', etc. + */ + private static matchFloor; + /** + * Matches if a string contains one of floor string in floors + * @param str string to match, e.g. '5F(xxx)' + * @param floor '5F', etc. + */ + private static matchFloors; + /** + * Distincts/find floors from models, by checking children object.name + */ + static distinctFloors(scene: THREE.Scene, modelId: number[]): string[]; + /** + * Sets object's visible to true if its name, etc. match one of given floor. + * This method won't affect other objects that don't match. + */ + static traverseObjectByFloors(scene: THREE.Scene, objectId: number, floors: number[], matchCallback?: (object: THREE.Object3D) => void, unmatchCallback?: (object: THREE.Object3D) => void): never[] | undefined; + /** + * Sets object belong to given floors to be visible + * @param objectId root or parent object id + * @param makeUnmatchedInvisible if it should make unmatched object invisible + */ + static setVisibleForFloors(scene: THREE.Scene, objectId: number, floors: number[], makeUnmatchedInvisible?: boolean): void; + static revertVisibleForFloors(object: THREE.Object3D): void; + static revertVisibleForFloorsById(scene: THREE.Scene, id: number): void; + private static getObjectById; + /** + * Outline default material + */ + private static OUTLINE_MATERIAL; + /** + * Creates outlines for given object and children + */ + static createOutlines(object: THREE.Object3D, options?: { + onlyVisible: boolean; + meshOnly: boolean; + }, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * Recursively removes outlines for given object and children + */ + static removeOutlines(object: THREE.Object3D): void; + /** + * Checks if an object has outline already + * @param checkChildren If it checks children recursively. + */ + static hasOutline(object: THREE.Object3D, checkChildren?: boolean): boolean; + /** + * Sets outline visiblility for given object and children + */ + static setOutlinesVisibility(object: THREE.Object3D, visible: boolean): void; + /** + * Creates outline for given geometry + */ + static createOutline(geometry: THREE.BufferGeometry, material?: THREE.LineBasicMaterial, matrix?: THREE.Matrix4): THREE.LineSegments; + /** + * Clones object + * @param object target object to be cloned + * @param cloneMaterial if it needs to clone material or not + * @returns cloned object + */ + static cloneObject(object: THREE.Object3D, cloneMaterial?: boolean): THREE.Object3D; + private static BOX_FACE_MATERIAL; + /** + * Creates box mesh + */ + static createBox(sizeX: number, sizeY: number, sizeZ: number, faceMaterial?: THREE.Material, withBottom?: boolean): THREE.Mesh, THREE.Material>; + /** + * TODO: Relative to center + */ + static rebaseObjectOnRTC(object: THREE.Object3D): THREE.Object3D; + static isEmptyObject(object: THREE.Object3D | DxfObject): boolean; + static removeEmptyObjects(object: THREE.Object3D | DxfObject): boolean; + /** + * From bottom to top, removes child objects first, + * and then removes empty parent objects + */ + static removeEmptyObjectsFromRemovingObjects(removingObjects: THREE.Object3D[], levelObject: THREE.Object3D): void; + /** + * To save memory, object3d shares some variables + */ + static setSharedVariablesOfObject(object: THREE.Object3D): void; + /** + * Checks if an object is a drawable leaf object + */ + static isLeafObject(obj: THREE.Object3D): boolean; + /** + * object layers related setting functions + */ + static enableLayerChannels(obj: THREE.Object3D, channels: number[], recursive?: boolean): void; + static disableLayerChannels(obj: THREE.Object3D, channels: number[], recursive?: boolean): void; + static setLayerChannels(obj: THREE.Object3D, channels: number[], recursive?: boolean): void; + static isObjectHittable(obj: THREE.Object3D): boolean; + static isObjectSnapable(obj: THREE.Object3D): boolean; + static isObjectSelectable(obj: THREE.Object3D): boolean; +} diff --git a/demo/libs/types/core/utils/PolygonUtils.d.ts b/demo/libs/types/core/utils/PolygonUtils.d.ts index 103a476..7f9e972 100644 --- a/demo/libs/types/core/utils/PolygonUtils.d.ts +++ b/demo/libs/types/core/utils/PolygonUtils.d.ts @@ -1,8 +1,8 @@ -/** - * @internal - */ -export declare class PolygonUtils { - static getFaces(points: THREE.Vector3[]): number[]; - static arePointsCoplanar(points: THREE.Vector3[]): boolean; - static isSelfIntersecting(points: THREE.Vector3[]): boolean; -} +/** + * @internal + */ +export declare class PolygonUtils { + static getFaces(points: THREE.Vector3[]): number[]; + static arePointsCoplanar(points: THREE.Vector3[]): boolean; + static isSelfIntersecting(points: THREE.Vector3[]): boolean; +} diff --git a/demo/libs/types/core/utils/SVGObjectUtils.d.ts b/demo/libs/types/core/utils/SVGObjectUtils.d.ts index b972aef..42c70a5 100644 --- a/demo/libs/types/core/utils/SVGObjectUtils.d.ts +++ b/demo/libs/types/core/utils/SVGObjectUtils.d.ts @@ -1,16 +1,16 @@ -import { SVGObject } from "three/examples/jsm/renderers/SVGRenderer.js"; -export declare const SNAP_ICON_SIZE = 10; -export declare enum OSnapMarkerType { - TripleCross = "TripleCross", - Square = "Square", - Triangle = "Triangle", - CircleWithCross = "CircleWithCross", - Cross = "Cross", - Perpendicular = "Perpendicular" -} -/** - * @internal - */ -export declare class SVGObjectUtils { - static createSVGObject(node: SVGPathElement | SVGTextElement | SVGLineElement): SVGObject; -} +import { SVGObject } from "three/examples/jsm/renderers/SVGRenderer.js"; +export declare const SNAP_ICON_SIZE = 10; +export declare enum OSnapMarkerType { + TripleCross = "TripleCross", + Square = "Square", + Triangle = "Triangle", + CircleWithCross = "CircleWithCross", + Cross = "Cross", + Perpendicular = "Perpendicular" +} +/** + * @internal + */ +export declare class SVGObjectUtils { + static createSVGObject(node: SVGPathElement | SVGTextElement | SVGLineElement): SVGObject; +} diff --git a/demo/libs/types/core/utils/SceneUtils.d.ts b/demo/libs/types/core/utils/SceneUtils.d.ts index c66d3d2..323316f 100644 --- a/demo/libs/types/core/utils/SceneUtils.d.ts +++ b/demo/libs/types/core/utils/SceneUtils.d.ts @@ -1,26 +1,26 @@ -import * as THREE from "three"; -/** - * Util methods about Scene - * @internal - */ -export declare class SceneUtils { - /** - * Get all visible objects' bounding box in a scene. - * @param scene - */ - static getVisibleObjectBoundingBox(scene: THREE.Scene): THREE.Box3; - static getObjectsBoundingBox(scene: THREE.Scene, objectIds: number[], sampling?: boolean): THREE.Box3; - /** - * Box3.expandByObject() doesn't work well in some case. - * E.g. when object's position is far away from object's center? - * When objects are instanced? - * That's why we need a method to find bounding box by object's children! - * And, better to do sampling in case there are too many children. - */ - static getBoundingBox(object: THREE.Object3D, sampling?: boolean): THREE.Box3; - /** - * InstancedMesh is different, we need to get its child meshes in order to get the bounding box - */ - static getInstancedMeshBoundingBox(mesh: THREE.InstancedMesh): THREE.Box3; - static getObjectCenter(object: THREE.Object3D, center: THREE.Vector3): void; -} +import * as THREE from "three"; +/** + * Util methods about Scene + * @internal + */ +export declare class SceneUtils { + /** + * Get all visible objects' bounding box in a scene. + * @param scene + */ + static getVisibleObjectBoundingBox(scene: THREE.Scene): THREE.Box3; + static getObjectsBoundingBox(scene: THREE.Scene, objectIds: number[], sampling?: boolean): THREE.Box3; + /** + * Box3.expandByObject() doesn't work well in some case. + * E.g. when object's position is far away from object's center? + * When objects are instanced? + * That's why we need a method to find bounding box by object's children! + * And, better to do sampling in case there are too many children. + */ + static getBoundingBox(object: THREE.Object3D, sampling?: boolean): THREE.Box3; + /** + * InstancedMesh is different, we need to get its child meshes in order to get the bounding box + */ + static getInstancedMeshBoundingBox(mesh: THREE.InstancedMesh): THREE.Box3; + static getObjectCenter(object: THREE.Object3D, center: THREE.Vector3): void; +} diff --git a/demo/libs/types/core/utils/SectionUtils.d.ts b/demo/libs/types/core/utils/SectionUtils.d.ts index 574b141..5d41030 100644 --- a/demo/libs/types/core/utils/SectionUtils.d.ts +++ b/demo/libs/types/core/utils/SectionUtils.d.ts @@ -1,11 +1,11 @@ -import * as THREE from "three"; -/** - * @internal - */ -export declare class SectionUtils { - static setMaterialSection(mat: THREE.Material, planes: THREE.Plane[], bAppend?: boolean, bClipIntersection?: boolean): void; - static removeSection(object: THREE.Object3D): void; - static addSection(object: THREE.Object3D, planes: THREE.Plane[], bAppend?: boolean, bClipIntersection?: boolean): void; - static generateSectionPlanesByBox(sectionBox: THREE.Box2): THREE.Plane[]; - static generateSectionPlanesByPoints(points: THREE.Vector2[], bLeftSideOfForwadDirection?: boolean): THREE.Plane[] | undefined; -} +import * as THREE from "three"; +/** + * @internal + */ +export declare class SectionUtils { + static setMaterialSection(mat: THREE.Material, planes: THREE.Plane[], bAppend?: boolean, bClipIntersection?: boolean): void; + static removeSection(object: THREE.Object3D): void; + static addSection(object: THREE.Object3D, planes: THREE.Plane[], bAppend?: boolean, bClipIntersection?: boolean): void; + static generateSectionPlanesByBox(sectionBox: THREE.Box2): THREE.Plane[]; + static generateSectionPlanesByPoints(points: THREE.Vector2[], bLeftSideOfForwadDirection?: boolean): THREE.Plane[] | undefined; +} diff --git a/demo/libs/types/core/utils/SimplifyUtils.d.ts b/demo/libs/types/core/utils/SimplifyUtils.d.ts index cd2de41..a28e931 100644 --- a/demo/libs/types/core/utils/SimplifyUtils.d.ts +++ b/demo/libs/types/core/utils/SimplifyUtils.d.ts @@ -1,15 +1,15 @@ -import * as THREE from "three"; -/** - * SimplifyUtils class is used to simplify objects' geomery for a given object - * @internal - */ -export declare class SimplifyUtils { - /** - * Gets simplified object. - */ - static simplifyGeometry(geometry: THREE.BufferGeometry, simplifyRate: number): THREE.BufferGeometry; - /** - * Gets number of vertices to remove - */ - private static getNumberOfVerticesToRemove; -} +import * as THREE from "three"; +/** + * SimplifyUtils class is used to simplify objects' geomery for a given object + * @internal + */ +export declare class SimplifyUtils { + /** + * Gets simplified object. + */ + static simplifyGeometry(geometry: THREE.BufferGeometry, simplifyRate: number): THREE.BufferGeometry; + /** + * Gets number of vertices to remove + */ + private static getNumberOfVerticesToRemove; +} diff --git a/demo/libs/types/core/utils/TextureUtils.d.ts b/demo/libs/types/core/utils/TextureUtils.d.ts index 2b50fe9..102ff43 100644 --- a/demo/libs/types/core/utils/TextureUtils.d.ts +++ b/demo/libs/types/core/utils/TextureUtils.d.ts @@ -1,16 +1,16 @@ -import * as THREE from "three"; -/** - * TextureUtils class - * @internal - */ -export declare class TextureUtils { - /** - * Creates an environment texture - */ - static createEnvTexture(pmremGenerator: THREE.PMREMGenerator | undefined, url: string): Promise; - /** - * Creates default environment texture - */ - static createEnvTextureFromDataArray(pmremGenerator: THREE.PMREMGenerator | undefined, data?: Uint16Array, width?: number, height?: number): Promise; - private static HDR_CITY_STREET_64x32; -} +import * as THREE from "three"; +/** + * TextureUtils class + * @internal + */ +export declare class TextureUtils { + /** + * Creates an environment texture + */ + static createEnvTexture(pmremGenerator: THREE.PMREMGenerator | undefined, url: string): Promise; + /** + * Creates default environment texture + */ + static createEnvTextureFromDataArray(pmremGenerator: THREE.PMREMGenerator | undefined, data?: Uint16Array, width?: number, height?: number): Promise; + private static HDR_CITY_STREET_64x32; +} diff --git a/demo/libs/types/core/utils/UnitConversionUtils.d.ts b/demo/libs/types/core/utils/UnitConversionUtils.d.ts index 6fe0730..e800866 100644 --- a/demo/libs/types/core/utils/UnitConversionUtils.d.ts +++ b/demo/libs/types/core/utils/UnitConversionUtils.d.ts @@ -1,31 +1,31 @@ -/** - * @internal - */ -export declare const unitConversionByMeter: { - [key: string]: number; -}; -/** - * @internal - */ -export declare const unitLabel: { - [key: string]: string; -}; -/** - * @internal - */ -export declare const getUnitStr: (unit: string, power?: number) => string; -/** - * Gets unit - * value - * sourceUnit - * targetUnit - * @internal - */ -export interface valueWithUnit { - value: number; - unit: string; -} -/** - * @internal - */ -export declare const getLengthValueByUnit: (value: number, sourceUnit: string, targetUnit: string, power?: number) => valueWithUnit; +/** + * @internal + */ +export declare const unitConversionByMeter: { + [key: string]: number; +}; +/** + * @internal + */ +export declare const unitLabel: { + [key: string]: string; +}; +/** + * @internal + */ +export declare const getUnitStr: (unit: string, power?: number) => string; +/** + * Gets unit + * value + * sourceUnit + * targetUnit + * @internal + */ +export interface valueWithUnit { + value: number; + unit: string; +} +/** + * @internal + */ +export declare const getLengthValueByUnit: (value: number, sourceUnit: string, targetUnit: string, power?: number) => valueWithUnit; diff --git a/demo/libs/types/core/utils/Viewer3DUtils.d.ts b/demo/libs/types/core/utils/Viewer3DUtils.d.ts index 67c4312..cdb1871 100644 --- a/demo/libs/types/core/utils/Viewer3DUtils.d.ts +++ b/demo/libs/types/core/utils/Viewer3DUtils.d.ts @@ -1,26 +1,26 @@ -import * as THREE from "three"; -/** - * @internal - */ -export declare enum Views { - Top = "Top", - Bottom = "Bottom", - Front = "Front", - Back = "Back", - Left = "Left", - Right = "Right" -} -/** - * Util methods about Viewer3D - * @internal - */ -export declare class Viewer3DUtils { - /** - * Gets camera's new position and target(lookAt) by given bbox and view - */ - /** - * Gets camera's new position and target(lookAt) by given bbox and expected camera direction - */ - static getCameraPositionByBboxAndDirection(bbox: THREE.Box3, eye: THREE.Vector3, look: THREE.Vector3, cameraProjectionMatrix?: THREE.Matrix4, targetDir?: THREE.Vector3): void; - static getCameraDirectionByView(view: Views | string): THREE.Vector3; -} +import * as THREE from "three"; +/** + * @internal + */ +export declare enum Views { + Top = "Top", + Bottom = "Bottom", + Front = "Front", + Back = "Back", + Left = "Left", + Right = "Right" +} +/** + * Util methods about Viewer3D + * @internal + */ +export declare class Viewer3DUtils { + /** + * Gets camera's new position and target(lookAt) by given bbox and view + */ + /** + * Gets camera's new position and target(lookAt) by given bbox and expected camera direction + */ + static getCameraPositionByBBoxAndDirection(bbox: THREE.Box3, eye: THREE.Vector3, look: THREE.Vector3, cameraProjectionMatrix?: THREE.Matrix4, targetDir?: THREE.Vector3): void; + static getCameraDirectionByView(view: Views | string): THREE.Vector3; +} diff --git a/demo/libs/types/core/utils/index.d.ts b/demo/libs/types/core/utils/index.d.ts index c918a0c..5d50b2c 100644 --- a/demo/libs/types/core/utils/index.d.ts +++ b/demo/libs/types/core/utils/index.d.ts @@ -1,26 +1,26 @@ -export * from "./CancelablePromise"; -export * from "./CommonUtils"; -export * from "./ColorUtils"; -export * from "./CoordinateConversionUtils"; -export * from "./CSS2DObjectUtils"; -export * from "./DecimalPrecisionUtils"; -export * from "./DeviceUtils"; -export * from "./EdgeUtils"; -export * from "./Event"; -export * from "./ExportUtils"; -export * from "./FpsUtils"; -export * from "./GeometryUtils"; -export * from "./Locale"; -export * from "./LogUtils"; -export * from "./MaterialUtils"; -export * from "./MathUtils"; -export * from "./MergeUtils"; -export * from "./ObjectUtils"; -export * from "./PolygonUtils"; -export * from "./SceneUtils"; -export * from "./SectionUtils"; -export * from "./SimplifyUtils"; -export * from "./SVGObjectUtils"; -export * from "./TextureUtils"; -export * from "./UnitConversionUtils"; -export * from "./Viewer3DUtils"; +export * from "./CancelablePromise"; +export * from "./CommonUtils"; +export * from "./ColorUtils"; +export * from "./CoordinateUtils"; +export * from "./CSS2DObjectUtils"; +export * from "./DecimalPrecisionUtils"; +export * from "./DeviceUtils"; +export * from "./EdgeUtils"; +export * from "./Event"; +export * from "./ExportUtils"; +export * from "./FpsUtils"; +export * from "./GeometryUtils"; +export * from "./Locale"; +export * from "./LogUtils"; +export * from "./MaterialUtils"; +export * from "./MathUtils"; +export * from "./MergeUtils"; +export * from "./ObjectUtils"; +export * from "./PolygonUtils"; +export * from "./SceneUtils"; +export * from "./SectionUtils"; +export * from "./SimplifyUtils"; +export * from "./SVGObjectUtils"; +export * from "./TextureUtils"; +export * from "./UnitConversionUtils"; +export * from "./Viewer3DUtils"; diff --git a/demo/libs/types/core/viewers/BaseViewer.d.ts b/demo/libs/types/core/viewers/BaseViewer.d.ts index 08f4d33..68d57ae 100644 --- a/demo/libs/types/core/viewers/BaseViewer.d.ts +++ b/demo/libs/types/core/viewers/BaseViewer.d.ts @@ -1,260 +1,260 @@ -import type { TFunction } from "i18next"; -import * as THREE from "three"; -import { Box2 } from "../Constants"; -import { ViewerEvent } from "./ViewerEvent"; -import type { BaseViewerConfig, CameraConfig } from "../../core/Configs"; -import type { CanvasRender } from "../../core/canvas"; -import type { CameraControlsEx, VRControls } from "../../core/controls"; -import { EventInfo, InputManager } from "../../core/input/InputManager"; -import type { MarkupManager } from "../../core/markup"; -import { UndoRedoManager } from "../../core/undo-redo/UndoRedoManager"; -import { Event } from "../../core/utils"; -import { Plugin } from "../../core/viewers/Plugin"; -import type { MeasurementPlugin } from "../../plugins"; -import type { BaseSection } from "../../plugins/sections"; -/** - * Screenshot result, which contains a result image and, - * for DxfViewer, it also contains the view extent when the screenshot is taken, - * for BimViewer, it contains the camera's position and target. - */ -export interface ScreenshotResult { - /** - * The view extent when the screenshot is taken. - * Note that, it is not the image's extent. - * And, this is for DxfViewer only. - */ - viewExtent?: Box2; - /** - * Used for BimViewer - * @internal - */ - /** - * Used for BimViewer - * @internal - */ - /** - * Image type, which is "image/png" by default - * @internal - */ - imageType: string; - /** - * The image, in base 64 format. - */ - base64Image: string; -} -/** - * @internal - */ -export declare enum ViewerName { - BaseViewer = "BaseViewer", - BimViewer = "BimViewer", - DxfViewer = "DxfViewer", - VRViewer = "VRViewer" -} -declare type ViewerEvents = { - [K in ViewerEvent]: any; -}; -/** - * Abstract base class for DxfViewer, BimViewer, etc. - */ -export declare abstract class BaseViewer extends Event { - /** - * @internal - */ - name: ViewerName; - /** - * @internal - */ - translate: TFunction; - /** - * @internal - */ - parentContainer?: HTMLElement; - /** - * @internal - */ - viewerContainer?: HTMLElement; - container?: HTMLElement; - protected inputManager?: InputManager; - /** - * @internal - */ - scene?: THREE.Scene; - /** - * @internal - */ - renderer?: THREE.WebGLRenderer; - /** - * @internal - */ - camera?: THREE.PerspectiveCamera | THREE.OrthographicCamera; - /** - * @internal - */ - controls?: CameraControlsEx | VRControls; - protected height: number; - protected width: number; - /** - * @internal - */ - widgetContainer?: HTMLElement; - private spinner?; - protected jobCount: number; - protected viewerCfg: BaseViewerConfig; - /** - * @internal - */ - cameraCfg?: CameraConfig; - /** - * @internal - */ - groundPlane?: THREE.Mesh; - /** - * @describe overlay canvas - * @internal - */ - overlayRender?: CanvasRender; - /** - * @internal - */ - loadedModels?: any; - /** - * @internal - */ - undoRedoManager?: UndoRedoManager; - protected enableOverlayRenderer: boolean; - /** - * @internal - */ - protected requestAnimationFrameHandle?: number; - /** - * @internal - */ - protected frustumSize: number; - /** - * @internal - */ - protected loadingProgressBar?: any; - protected lastFrameExecuteTime: number; - protected minFrameInterval: number; - protected plugins: Plugin[]; - constructor(viewerCfg: BaseViewerConfig); - private initLogLevel; - private initLocalization; - private initContainer; - /** - * Creates a viewerContainer under the container that user passed in. - * There are some benifits to create a new one. e.g., its style won't affect - * the container div user passed in. - */ - private initViewerContainer; - /** - * - * @description Create a div for ui widget, if widget need position, just reletive container, maybe remove later. - */ - private initWidgetContainer; - protected initSpinner(): void; - /** - * Sets spinner visibility - */ - protected setSpinnerVisibility(visible: boolean): void; - /** - * Increases job count, and show spinner accordingly - */ - protected increaseJobCount(): void; - /** - * Decreases job count, and hide spinner accordingly - */ - protected decreaseJobCount(): void; - protected resize(width: number, height: number): void; - destroy(): void; - /** - * @internal - * @description Global event input manager.eg:mousedown, mouseup, keydown. - */ - getInputManager(): InputManager | undefined; - /** - * @internal - */ - getViewConfig(): BaseViewerConfig; - /** - * @internal - */ - enableRender(): void; - /** - * @internal - */ - getRaycaster(): THREE.Raycaster | undefined; - /** - * @internal - */ - getRaycastableObjectsByMouse(event?: EventInfo): THREE.Object3D[]; - /** - * Gets all objects' bounding box in viewer. - * @internal - */ - getBBox(): THREE.Box3 | undefined; - /** - * @internal - */ - getActiveSection(): BaseSection | undefined; - flyTo(position: THREE.Vector3, lookAt: THREE.Vector3): void; - /** - * If it is a 3d viewer. - * DxfViewer is 2d, thus returns false. - * @default true - * @internal - */ - is3d(): boolean; - /** - * @description Compatible with older versions, use MeasurePlugin instead - * @internal - */ - get measurePlugin(): MeasurementPlugin | undefined; - /** - * @internal - */ - getMarkupManager(): MarkupManager | undefined; - /** - * @deprecated - */ - deactivateMeasurement(): void; - /** - * @deprecated - */ - setMeasurementVisibility(id: string, visible: boolean): boolean; - /** - * @internal - */ - screenshot(config: any): Promise; - /** - * Gets how long a pixel represents in world coordinate. - * This works fine for OrthographicCamera. - * As for PerspectiveCamera, a pixel represents different size for different position, - * depends on how far the camera is and its fov, etc. We'll simply take the camera target as the position to calculate. - * @internal - */ - getPixelSizeInWorldCoord(): number; - /** - * Gets an unique modelId in case the expected id is duplicated. - */ - protected getUniqueModelId(expectedModelId: string): string; - /** - * Installs a Plugin. - */ - addPlugin(plugin: Plugin): void; - /** - * Uninstalls a Plugin, clearing content from it first. - */ - removePlugin(plugin: Plugin): void; - /** - * Clears all plugins. - * A plugin is not created by viewer, thus, won't be destroyed by viewer. - */ - clearPlugins(): void; - /** - * Finds a Plugin. - */ - findPlugin(id: string): Plugin | undefined; -} -export {}; +import type { TFunction } from "i18next"; +import * as THREE from "three"; +import { Box2 } from "../Constants"; +import { ViewerEvent } from "./ViewerEvent"; +import type { BaseViewerConfig, CameraConfig } from "../../core/Configs"; +import type { CanvasRender } from "../../core/canvas"; +import type { CameraControlsEx, VRControls } from "../../core/controls"; +import { EventInfo, InputManager } from "../../core/input/InputManager"; +import type { MarkupManager } from "../../core/markup"; +import { UndoRedoManager } from "../../core/undo-redo/UndoRedoManager"; +import { Event } from "../../core/utils"; +import { Plugin } from "../../core/viewers/Plugin"; +import type { MeasurementPlugin } from "../../plugins"; +import type { BaseSection } from "../../plugins/sections"; +/** + * Screenshot result, which contains a result image and, + * for DxfViewer, it also contains the view extent when the screenshot is taken, + * for BimViewer, it contains the camera's position and target. + */ +export interface ScreenshotResult { + /** + * The view extent when the screenshot is taken. + * Note that, it is not the image's extent. + * And, this is for DxfViewer only. + */ + viewExtent?: Box2; + /** + * Used for BimViewer + * @internal + */ + /** + * Used for BimViewer + * @internal + */ + /** + * Image type, which is "image/png" by default + * @internal + */ + imageType: string; + /** + * The image, in base 64 format. + */ + base64Image: string; +} +/** + * @internal + */ +export declare enum ViewerName { + BaseViewer = "BaseViewer", + BimViewer = "BimViewer", + DxfViewer = "DxfViewer", + VRViewer = "VRViewer" +} +declare type ViewerEvents = { + [K in ViewerEvent]: any; +}; +/** + * Abstract base class for DxfViewer, BimViewer, etc. + */ +export declare abstract class BaseViewer extends Event { + /** + * @internal + */ + name: ViewerName; + /** + * @internal + */ + translate: TFunction; + /** + * @internal + */ + parentContainer?: HTMLElement; + /** + * @internal + */ + viewerContainer?: HTMLElement; + container?: HTMLElement; + protected inputManager?: InputManager; + /** + * @internal + */ + scene?: THREE.Scene; + /** + * @internal + */ + renderer?: THREE.WebGLRenderer; + /** + * @internal + */ + camera?: THREE.PerspectiveCamera | THREE.OrthographicCamera; + /** + * @internal + */ + controls?: CameraControlsEx | VRControls; + protected height: number; + protected width: number; + /** + * @internal + */ + widgetContainer?: HTMLElement; + private spinner?; + protected jobCount: number; + protected viewerCfg: BaseViewerConfig; + /** + * @internal + */ + cameraCfg?: CameraConfig; + /** + * @internal + */ + groundPlane?: THREE.Mesh; + /** + * @describe overlay canvas + * @internal + */ + overlayRender?: CanvasRender; + /** + * @internal + */ + loadedModels?: any; + /** + * @internal + */ + undoRedoManager?: UndoRedoManager; + protected enableOverlayRenderer: boolean; + /** + * @internal + */ + protected requestAnimationFrameHandle?: number; + /** + * @internal + */ + protected frustumSize: number; + /** + * @internal + */ + protected loadingProgressBar?: any; + protected lastFrameExecuteTime: number; + protected minFrameInterval: number; + protected plugins: Plugin[]; + constructor(viewerCfg: BaseViewerConfig); + private initLogLevel; + private initLocalization; + private initContainer; + /** + * Creates a viewerContainer under the container that user passed in. + * There are some benifits to create a new one. e.g., its style won't affect + * the container div user passed in. + */ + private initViewerContainer; + /** + * + * @description Create a div for ui widget, if widget need position, just reletive container, maybe remove later. + */ + private initWidgetContainer; + protected initSpinner(): void; + /** + * Sets spinner visibility + */ + protected setSpinnerVisibility(visible: boolean): void; + /** + * Increases job count, and show spinner accordingly + */ + protected increaseJobCount(): void; + /** + * Decreases job count, and hide spinner accordingly + */ + protected decreaseJobCount(): void; + protected resize(width: number, height: number): void; + destroy(): void; + /** + * @internal + * @description Global event input manager.eg:mousedown, mouseup, keydown. + */ + getInputManager(): InputManager | undefined; + /** + * @internal + */ + getViewConfig(): BaseViewerConfig; + /** + * @internal + */ + enableRender(): void; + /** + * @internal + */ + getRaycaster(): THREE.Raycaster | undefined; + /** + * @internal + */ + getRaycastableObjectsByMouse(event?: EventInfo): THREE.Object3D[]; + /** + * Gets all objects' bounding box in viewer. + * @internal + */ + getBBox(): THREE.Box3 | undefined; + /** + * @internal + */ + getActiveSection(): BaseSection | undefined; + flyTo(position: THREE.Vector3, lookAt: THREE.Vector3): void; + /** + * If it is a 3d viewer. + * DxfViewer is 2d, thus returns false. + * @default true + * @internal + */ + is3d(): boolean; + /** + * @description Compatible with older versions, use MeasurePlugin instead + * @internal + */ + get measurePlugin(): MeasurementPlugin | undefined; + /** + * @internal + */ + getMarkupManager(): MarkupManager | undefined; + /** + * @deprecated + */ + deactivateMeasurement(): void; + /** + * @deprecated + */ + setMeasurementVisibility(id: string, visible: boolean): boolean; + /** + * @internal + */ + screenshot(config: any): Promise; + /** + * Gets how long a pixel represents in world coordinate. + * This works fine for OrthographicCamera. + * As for PerspectiveCamera, a pixel represents different size for different position, + * depends on how far the camera is and its fov, etc. We'll simply take the camera target as the position to calculate. + * @internal + */ + getPixelSizeInWorldCoord(): number; + /** + * Gets an unique modelId in case the expected id is duplicated. + */ + protected getUniqueModelId(expectedModelId: string): string; + /** + * Installs a Plugin. + */ + addPlugin(plugin: Plugin): void; + /** + * Uninstalls a Plugin, clearing content from it first. + */ + removePlugin(plugin: Plugin): void; + /** + * Clears all plugins. + * A plugin is not created by viewer, thus, won't be destroyed by viewer. + */ + clearPlugins(): void; + /** + * Finds a Plugin. + */ + findPlugin(id: string): Plugin | undefined; +} +export {}; diff --git a/demo/libs/types/core/viewers/BimViewer.d.ts b/demo/libs/types/core/viewers/BimViewer.d.ts index a39cfeb..3c1324e 100644 --- a/demo/libs/types/core/viewers/BimViewer.d.ts +++ b/demo/libs/types/core/viewers/BimViewer.d.ts @@ -1,509 +1,510 @@ -import * as THREE from "three"; -import { Settings as SettingsType } from "../../components/settings"; -import { Model3d, BimViewerConfig, CameraConfig, ModelConfig } from "../../core/Configs"; -import { SectionType, Vector3 } from "../../core/Constants"; -import { Drawable } from "../../core/canvas"; -import { FontManager } from "../../core/font"; -import { EventInfo } from "../../core/input/InputManager"; -import { BaseViewer, ViewerName } from "../../core/viewers/BaseViewer"; -import { MeasurementData, MeasurementPlugin, MeasurementType } from "../../plugins/measure"; -import { SectionPlugin } from "../../plugins/sections"; -export declare class BimViewer extends BaseViewer { - /** - * @internal - */ - name: ViewerName; - private timer; - protected fontManager?: FontManager; - /** - * @internal - */ - ambientLight?: THREE.AmbientLight; - /** - * @internal - */ - directionalLight?: THREE.DirectionalLight; - /** - * @internal - */ - hemisphereLight?: THREE.HemisphereLight; - enableSelection: boolean; - /** - * @internal - */ - selectedObject: any | Drawable | undefined; - /** - * @internal - */ - loadedModels: Model3d[]; - /** - * @internal - */ - pmremGenerator?: THREE.PMREMGenerator; - private perspectiveCamera?; - private orthoCamera?; - private perspectiveCameraControls?; - private orthoCameraConrols?; - private css2dRenderer?; - private composerRenderEnabled; - private composerEnabled; - private composer?; - private renderPass?; - private effectFxaaPass?; - private ssaoPass?; - private saoPass?; - private outlinePass?; - private ssaaRenderPass?; - private bloomPass?; - private unrealBloomPass?; - private raycaster?; - private savedMaterialsForOpacity?; - private section?; - /** - * @internal - */ - sectionType?: string; - private zoomToRectHelper?; - private shadowCameraHelper?; - private directionalLightHelper?; - private webcam?; - private webcamPlane?; - private raf?; - private clock; - private renderEnabled; - private timeoutSymbol?; - private enableModelLevelFrustumCulling; - private isFrustumInsectChecking; - private settings; - private twoDModelCount; - private vertexNormalsHelpers?; - enableFastOperation: boolean; - private operationTimeout?; - private edgesVisible; - /** - * @internal - */ - distanceCullingFactor: number; - /** - * @internal - */ - operationTimeoutMs: number; - /** - * @internal - */ - private bbox; - private anchor?; - constructor(viewerCfg: BimViewerConfig, cameraCfg?: CameraConfig); - /** - * Initialize everything it needs - * @internal - */ - init(): void; - private initThree; - private initDom; - private initScene; - private initRenderer; - private initCSS2DRenderer; - private initCamera; - private initControls; - private initRotateToCursor; - private onResize; - private onKeyDown; - private initLights; - /** - * Initialize mouse/pointer events - */ - private initEvents; - private initOthers; - private initLoadingProgressBar; - private sycnCameraAndControls; - /** - * Sets to orthographic or perspective camera. - * @param toOrtho Set to orthographic camera if true. - * @returns - */ - setToOrthographicCamera(toOrtho?: boolean): void; - protected animate(): void; - private update3dTiles; - /** - * This is a method called in animate() in order to optimize rendering speed. - * The idea is to hide any model out of view frustum. - * This should have a better performance than THREE's frustum culling, because we did it in - * model level to avoid iterating all its objects. - */ - private frustumCullingByModelBBox; - /** - * In order to have a better performance, it should only render when necessary. - * Usually, we should enable render for these cases: - * - Anything added to, removed from scene, or objects' position, scale, rotation, opacity, material, etc. changed - * - Anything selected/unselected - * - Camera changed - * - Render area resized - * @internal - */ - enableRender: (time?: number) => void; - destroy(): void; - /** - * Loads a 3d model from local - * @internal - */ - loadLocalModel(url: string, modelCfg: ModelConfig, manager?: THREE.LoadingManager, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * Loads a 3d model - */ - loadModel(modelCfg: ModelConfig, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * Loads 3dtiles - * TODO: Temporarily does not support 3dtiles version 1.0 above - * The coordinate system is not processed yet - * @internal - */ - load3dTiles(modelCfg: ModelConfig): Promise; - /** - * Sets font. - * This needs to be called before loading a dxf, it won't affect any loaded text. - * It accepts shx or typeface formats. For typeface, it only support passing in 1 font file in the array for now. - * @param urls font file urls - */ - setFont(urls: string[]): Promise; - /** - * Sets decoder path for draco loader. - * Draco decoder will be used if a model is draco encoded. - * @param decoderPath e.g., "libs/draco/gltf/" - * @internal - */ - setDracoDecoderPath(path: string): void; - /** - * Applies options and add object to scene. - */ - private applyOptionsAndAddToScene; - /** - * - * @param model - * @returns - * @description Add model data to viewer. - */ - addModel(model: Model3d): void; - private calculateMeshSurfaceArea; - /** - * We won't set a opacity directly, because that way will lose model's original opacity value - * @param isAdd is add or remove the opacity we added - * @param opacity - * @internal - */ - addOrRemoveObjectOpacity(isAdd?: boolean, opacity?: number, includeObjectIds?: number[], excludeObjectIds?: number[]): void; - /** - * @internal - */ - hasTransparentObject(): boolean; - /** - * @internal - */ - showVertexNormals(show: boolean, size?: number): void; - protected resize(width: number, height: number): void; - /** - * @internal - */ - getRaycaster(): THREE.Raycaster | undefined; - /** - * @internal - */ - getRaycastableObjectsByMouse(event?: EventInfo): THREE.Object3D[]; - private getRaycastableObjects; - /** - * Gets intersections by given mouse location. - * If no MouseEvent is passed in, use (0, 0) as the raycaster's origin. - */ - private getIntersections; - private getAllIntersections; - /** - * Handles mouse click event - */ - private getClickedObject; - /** - * Handles mouse click event - */ - private handleMouseClick; - /** - * Select or unselect an object. - * It doesn't support selecting more than one objects. - * It doesn't support selecting a parent object which doesn't have material itself. - * In order to support de-select, we'll need to store some information, we do this via userData: - * For InstancedMesh, there are two cases: - * 1) One Mesh in InstancedMesh is selected - * it adds following to selected object: userData \{ - * instanceId: number, - * originalMatrix: THREE.Matrix4, - * clonedMesh: THREE.Mesh - * \} - * 2) The whole InstancedMesh is selected. This case is no different from a normal Mesh is selected, so: - * For Mesh, it adds: userData \{ - * originalMaterial: THREE.Material - * \} - * @param object - * @param instanceId pass in instanceId if an InstancedMesh is selected - * @param depthTest set to false if caller want to make sure user can see it. When an object is - * selected by user manually, we don't need to make sure user can see it. While if selection is - * made by program, we parbably need to make sure user can see it, in other words, the selected - * object won't be blocked by other objects. - * @internal - */ - selectObject(object?: THREE.Object3D | Drawable, instanceId?: number, batchId?: number, depthTest?: boolean | undefined): void; - /** - * Clears the current selection - */ - clearSelection(): void; - /** - * Gets bounding box - * @internal - */ - getBBox(): THREE.Box3 | undefined; - /** - * Enables/disables model edges. - */ - enableModelEdges(enable: boolean, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * Make camera fly to objects - */ - protected flyToObjects(objects: THREE.Object3D[]): void; - /** - * Make camera fly to an object - * @internal - */ - flyToObject(object: THREE.Object3D): void; - /** - * Flies to current selected object if any - */ - protected flyToSelectedObject(): void; - /** - * Flies to a random object (by "R" key). - * It is useful when either the data is wrong or there is bug in program, - * then we cannot see anything in the scene! - */ - protected flyToRandomObject(): void; - /** - * Make camera fly to target position with given lookAt position - * @param position camera's target position - * @param lookAt camera's new lookAt position - */ - flyTo(position: THREE.Vector3, lookAt: THREE.Vector3): void; - /** - * Fits the camera to view all objects in scene - */ - viewFitAll(): void; - /** - * Goes to home view - */ - goToHomeView(): void; - zoomToBBox(bbox: THREE.Box3): void; - /** - * Tries to adjust camera near/far clip plane according to objects size in scene. - * Do this to avoid the case when objects are too small or big thus clipped! - */ - private tryAdjustCameraNearAndFar; - private tryAdjustDirectionalLight; - /** - * @internal - */ - updateDirectionalLight(): void; - private updateDirectionalLightShadow; - /** - * @internal - */ - showDirectionalLightHelper(visible: boolean): void; - /**** Anchor rotation related interface start ****/ - private setOrbitPoint; - private onAnchorPointerDown; - private setAnchorPosition; - private createAnchor; - private disposeAnchor; - private onAnchorPointerUp; - private disposeRotateToCursor; - /******* Anchor rotation related interface end *********/ - /** - * Enables or disable Composer - * @internal - */ - enableComposer(enable: boolean): void; - /** - * Enables or disable RenderPass - * @internal - */ - enableRenderPass(enable: boolean): void; - /** - * Enables or disable FxaaPass - * @internal - */ - enableFxaaPass(enable: boolean): void; - /** - * Enables or disable SAOPass - * @internal - */ - enableSaoPass(enable: boolean): void; - /** - * Enables or disable SSAOPass - * @internal - */ - enableSsaoPass(enable: boolean): void; - /** - * Enables or disable OutlinePass - * @internal - */ - enableOutlinePass(enable: boolean): void; - /** - * Enables or disable SSAARenderPass - * @internal - */ - enableSsaaPass(enable: boolean): void; - /** - * Enables or disable BloomPass - * @internal - */ - enableBloomPass(enable: boolean): void; - /** - * Enables or disable UnrealBloomPass - * @internal - */ - enableUnrealBloomPass(enable: boolean): void; - /** - * Triggered when there is any operation, like pan, rotate, zoom, etc. - * We'll do these at this time: - * - Enable distance culling - * - Hide object edge if there is - * - Disable shadow - */ - protected onOperation: () => void; - /** - * @description Compatible with older versions, use SectionPlugin instead - * @internal - * @deprecated use SectionPlugin instead - */ - get sectionPlugin(): SectionPlugin | undefined; - /** - * Enable section. - * Currently, it only implemented local(object) box section. - * @deprecated use SectionPlugin instead - */ - activateSection(type?: SectionType): void; - /** - * Deactivates section - * @deprecated use SectionPlugin instead - */ - deactivateSection(): void; - /** - * @internal - * @deprecated use SectionPlugin instead - */ - getActiveSection(): import("../../plugins/sections").BaseSection | undefined; - /** - * @description Compatible with older versions, use MeasurePlugin instead - * @internal - * @description use MeasurementPlugin instead - */ - get measurePlugin(): MeasurementPlugin | undefined; - /** - * Gets measurement data - * @internal - */ - getMeasurements(): MeasurementData[]; - /** - * Activates one of "Distance", "Area" or "Angle" measurement - * @param type "Distance", "Area" or "Angle" - * @deprecated use MeasurePlugin instead - */ - activateMeasurement(type: MeasurementType): void; - /** - * Deactivates measurement - * @deprecated use MeasurePlugin instead - */ - deactivateMeasurement(): void; - /** - * @internal - * @deprecated use MeasurePlugin instead - */ - setMeasurementVisibility(id: string, visible: boolean): boolean; - /** - * Clears all measurement results - * @deprecated use MeasurePlugin instead - */ - clearMeasurements(): void; - /** - * Zooms to selected box area. - */ - zoomToRect(): void; - /** - * @internal - */ - deactivateZoomRect(): void; - /** - * @internal - */ - enableWebCam(): void; - /** - * @internal - */ - disableWebCam(): void; - /** - * Sets environment for the scene. - * @param hdrUrl Full path of picture url in hdr format - */ - setEnvironment(hdrUrl: string): void; - /** - * Sets environment for the scene. - * @param data Uint16Array of the hdr content - * @internal - */ - setEnvironmentFromDataArray(data?: Uint16Array): void; - /** - * @internal - */ - takeObjectsScreenshot(uniqueIds: string[]): Promise; - /** - * Sets object to a specific color. Note that: - * - The change is permanent, and cannot be recovered to the original color or material. - * - If a material is shared, it may affect other objects. - * @param color A color number in format of "0x000000" - * @internal - */ - setObjectColor(object: THREE.Object3D, color: number): void; - /** - * Updates raycaster threshold to a proper value, so user can easily pick points and lines - */ - private updateRaycasterThreshold; - /** - * Merges leaf nodes of given object. - * If objects' materials are the same, they can be merged. - * TODO: change merge() and MergeUtils.deepMerge to async - * @param object - */ - private merge; - /** - * Updates project settings - * @internal - */ - updateProjectSettings(settings: SettingsType): void; - /** - * Compute bounding box of loaded models - * @internal - */ - computeBoundingBox(): THREE.Box3; - /** - * Sets distance culling factor in order to improve performance. - * 0 means distance culling is disabled. - * 100 means a 1x1 squre mesh is visible within 100. - * @internal - */ - setDistanceCullingFactor(val: number): void; - /** - * Gets distance culling factor. - * @internal - */ - getDistanceCullingFactor(): number; - /** - * Gets camera position and direction. - */ - getCameraPositionAndDirection(): { - position: Vector3; - direction: Vector3; - } | undefined; -} +import * as THREE from "three"; +import { Settings as SettingsType } from "../../components/settings"; +import { Model3d, BimViewerConfig, CameraConfig, ModelConfig } from "../../core/Configs"; +import { SectionType, Vector3 } from "../../core/Constants"; +import { Drawable } from "../../core/canvas"; +import { FontManager } from "../../core/font"; +import { EventInfo } from "../../core/input/InputManager"; +import { BaseViewer, ViewerName } from "../../core/viewers/BaseViewer"; +import { MeasurementData, MeasurementPlugin, MeasurementType } from "../../plugins/measure"; +import { SectionPlugin } from "../../plugins/sections"; +export declare class BimViewer extends BaseViewer { + /** + * @internal + */ + name: ViewerName; + private timer; + protected fontManager?: FontManager; + /** + * @internal + */ + ambientLight?: THREE.AmbientLight; + /** + * @internal + */ + directionalLight?: THREE.DirectionalLight; + /** + * @internal + */ + hemisphereLight?: THREE.HemisphereLight; + enableSelection: boolean; + /** + * @internal + */ + selectedObject: any | Drawable | undefined; + /** + * @internal + */ + loadedModels: Model3d[]; + /** + * @internal + */ + pmremGenerator?: THREE.PMREMGenerator; + private perspectiveCamera?; + private orthoCamera?; + private perspectiveCameraControls?; + private orthoCameraConrols?; + private css2dRenderer?; + private composerRenderEnabled; + private composerEnabled; + private composer?; + private renderPass?; + private effectFxaaPass?; + private ssaoPass?; + private saoPass?; + private outlinePass?; + private ssaaRenderPass?; + private bloomPass?; + private unrealBloomPass?; + private raycaster?; + private savedMaterialsForOpacity?; + private section?; + /** + * @internal + */ + sectionType?: string; + private zoomToRectHelper?; + private shadowCameraHelper?; + private directionalLightHelper?; + private webcam?; + private webcamPlane?; + private raf?; + private clock; + private renderEnabled; + private timeoutSymbol?; + private enableModelLevelFrustumCulling; + private isFrustumInsectChecking; + private settings; + private twoDModelCount; + private vertexNormalsHelpers?; + enableFastOperation: boolean; + private operationTimeout?; + private edgesVisible; + /** + * @internal + */ + distanceCullingFactor: number; + /** + * @internal + */ + operationTimeoutMs: number; + /** + * @internal + */ + private bbox; + private anchor?; + constructor(viewerCfg: BimViewerConfig, cameraCfg?: CameraConfig); + /** + * Initialize everything it needs + * @internal + */ + init(): void; + private initThree; + private initDom; + private initScene; + private initRenderer; + private initCSS2DRenderer; + private initCamera; + private initControls; + private initRotateToCursor; + private onResize; + private onKeyDown; + private initLights; + /** + * Initialize mouse/pointer events + */ + private initEvents; + private initOthers; + private initLoadingProgressBar; + private sycnCameraAndControls; + /** + * Sets to orthographic or perspective camera. + * @param toOrtho Set to orthographic camera if true. + * @returns + */ + setToOrthographicCamera(toOrtho?: boolean): void; + protected animate(): void; + private update3dTiles; + /** + * This is a method called in animate() in order to optimize rendering speed. + * The idea is to hide any model out of view frustum. + * This should have a better performance than THREE's frustum culling, because we did it in + * model level to avoid iterating all its objects. + */ + private frustumCullingByModelBBox; + /** + * In order to have a better performance, it should only render when necessary. + * Usually, we should enable render for these cases: + * - Anything added to, removed from scene, or objects' position, scale, rotation, opacity, material, etc. changed + * - Anything selected/unselected + * - Camera changed + * - Render area resized + * @internal + */ + enableRender: (time?: number) => void; + destroy(): void; + /** + * Loads a 3d model from local + * @internal + */ + loadLocalModel(url: string, modelCfg: ModelConfig, manager?: THREE.LoadingManager, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * Loads a 3d model + */ + loadModel(modelCfg: ModelConfig, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * Loads 3dtiles + * TODO: Temporarily does not support 3dtiles version 1.0 above + * The coordinate system is not processed yet + * @internal + */ + load3dTiles(modelCfg: ModelConfig): Promise; + /** + * Sets font. + * This needs to be called before loading a dxf, it won't affect any loaded text. + * It accepts shx or typeface formats. For typeface, it only support passing in 1 font file in the array for now. + * @param urls font file urls + */ + setFont(urls: string[]): Promise; + /** + * Sets decoder path for draco loader. + * Draco decoder will be used if a model is draco encoded. + * @param decoderPath e.g., "libs/draco/gltf/" + * @internal + */ + setDracoDecoderPath(path: string): void; + /** + * Applies options and add object to scene. + */ + private applyOptionsAndAddToScene; + /** + * + * @param model + * @returns + * @description Add model data to viewer. + */ + addModel(model: Model3d): void; + private calculateMeshSurfaceArea; + /** + * We won't set a opacity directly, because that way will lose model's original opacity value + * @param isAdd is add or remove the opacity we added + * @param opacity + * @internal + */ + addOrRemoveObjectOpacity(isAdd?: boolean, opacity?: number, includeObjectIds?: number[], excludeObjectIds?: number[]): void; + /** + * @internal + */ + hasTransparentObject(): boolean; + /** + * @internal + */ + showVertexNormals(show: boolean, size?: number): void; + protected resize(width: number, height: number): void; + /** + * @internal + */ + getRaycaster(): THREE.Raycaster | undefined; + /** + * @internal + */ + getRaycastableObjectsByMouse(event?: EventInfo): THREE.Object3D[]; + private getRaycastableObjects; + /** + * Gets intersections by given mouse location. + * If no MouseEvent is passed in, use (0, 0) as the raycaster's origin. + */ + private getIntersections; + private getAllIntersections; + /** + * Handles mouse click event + */ + private getClickedObject; + /** + * Handles mouse click event + */ + private handleMouseClick; + /** + * Select or unselect an object. + * It doesn't support selecting more than one objects. + * It doesn't support selecting a parent object which doesn't have material itself. + * In order to support de-select, we'll need to store some information, we do this via userData: + * For InstancedMesh, there are two cases: + * 1) One Mesh in InstancedMesh is selected + * it adds following to selected object: userData \{ + * instanceId: number, + * originalMatrix: THREE.Matrix4, + * clonedMesh: THREE.Mesh + * \} + * 2) The whole InstancedMesh is selected. This case is no different from a normal Mesh is selected, so: + * For Mesh, it adds: userData \{ + * originalMaterial: THREE.Material + * \} + * @param object + * @param instanceId pass in instanceId if an InstancedMesh is selected + * @param depthTest set to false if caller want to make sure user can see it. When an object is + * selected by user manually, we don't need to make sure user can see it. While if selection is + * made by program, we parbably need to make sure user can see it, in other words, the selected + * object won't be blocked by other objects. + * @internal + */ + selectObject(object?: THREE.Object3D | Drawable, instanceId?: number, batchId?: number, depthTest?: boolean | undefined): void; + /** + * Clears the current selection + */ + clearSelection(): void; + /** + * Gets bounding box + * @internal + */ + getBBox(): THREE.Box3 | undefined; + /** + * Enables/disables model edges. + */ + enableModelEdges(enable: boolean, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * Make camera fly to objects + */ + protected flyToObjects(objects: THREE.Object3D[]): void; + /** + * Make camera fly to an object + * @internal + */ + flyToObject(object: THREE.Object3D): void; + /** + * Flies to current selected object if any + */ + protected flyToSelectedObject(): void; + /** + * Flies to a random object (by "R" key). + * It is useful when either the data is wrong or there is bug in program, + * then we cannot see anything in the scene! + */ + protected flyToRandomObject(): void; + /** + * Make camera fly to target position with given lookAt position + * @param position camera's target position + * @param lookAt camera's new lookAt position + */ + flyTo(position: THREE.Vector3, lookAt: THREE.Vector3): void; + /** + * Fits the camera to view all objects in scene + */ + viewFitAll(): void; + /** + * Goes to home view + */ + goToHomeView(): void; + zoomToBBox(bbox: THREE.Box3): void; + /** + * Tries to adjust camera near/far clip plane according to objects size in scene. + * Do this to avoid the case when objects are too small or big thus clipped! + */ + private tryAdjustCameraNearAndFar; + private tryAdjustDirectionalLight; + /** + * @internal + */ + updateDirectionalLight(): void; + private updateDirectionalLightShadow; + /** + * @internal + */ + showDirectionalLightHelper(visible: boolean): void; + /**** Anchor rotation related interface start ****/ + private setOrbitPoint; + private onAnchorPointerDown; + private setAnchorPosition; + private createAnchor; + private disposeAnchor; + private onAnchorPointerUp; + private disposeRotateToCursor; + /******* Anchor rotation related interface end *********/ + /** + * Enables or disable Composer + * @internal + */ + enableComposer(enable: boolean): void; + /** + * Enables or disable RenderPass + * @internal + */ + enableRenderPass(enable: boolean): void; + /** + * Enables or disable FxaaPass + * @internal + */ + enableFxaaPass(enable: boolean): void; + /** + * Enables or disable SAOPass + * @internal + */ + enableSaoPass(enable: boolean): void; + /** + * Enables or disable SSAOPass + * @internal + */ + enableSsaoPass(enable: boolean): void; + /** + * Enables or disable OutlinePass + * @internal + */ + enableOutlinePass(enable: boolean): void; + /** + * Enables or disable SSAARenderPass + * @internal + */ + enableSsaaPass(enable: boolean): void; + /** + * Enables or disable BloomPass + * @internal + */ + enableBloomPass(enable: boolean): void; + /** + * Enables or disable UnrealBloomPass + * @internal + */ + enableUnrealBloomPass(enable: boolean): void; + /** + * Triggered when there is any operation, like pan, rotate, zoom, etc. + * We'll do these at this time: + * - Enable distance culling + * - Hide object edge if there is + * - Disable shadow + */ + protected onOperation: () => void; + /** + * @description Compatible with older versions, use SectionPlugin instead + * @internal + * @deprecated use SectionPlugin instead + */ + get sectionPlugin(): SectionPlugin | undefined; + /** + * Enable section. + * Currently, it only implemented local(object) box section. + * @deprecated use SectionPlugin instead + */ + activateSection(type?: SectionType): void; + /** + * Deactivates section + * @deprecated use SectionPlugin instead + */ + deactivateSection(): void; + /** + * @internal + * @deprecated use SectionPlugin instead + */ + getActiveSection(): import("../../plugins/sections").BaseSection | undefined; + /** + * @description Compatible with older versions, use MeasurePlugin instead + * @internal + * @description use MeasurementPlugin instead + * @deprecated use MeasurePlugin instead + */ + get measurePlugin(): MeasurementPlugin | undefined; + /** + * Gets measurement data + * @internal + */ + getMeasurements(): MeasurementData[]; + /** + * Activates one of "Distance", "Area" or "Angle" measurement + * @param type "Distance", "Area" or "Angle" + * @deprecated use MeasurePlugin instead + */ + activateMeasurement(type: MeasurementType): void; + /** + * Deactivates measurement + * @deprecated use MeasurePlugin instead + */ + deactivateMeasurement(): void; + /** + * @internal + * @deprecated use MeasurePlugin instead + */ + setMeasurementVisibility(id: string, visible: boolean): boolean; + /** + * Clears all measurement results + * @deprecated use MeasurePlugin instead + */ + clearMeasurements(): void; + /** + * Zooms to selected box area. + */ + zoomToRect(): void; + /** + * @internal + */ + deactivateZoomRect(): void; + /** + * @internal + */ + enableWebCam(): void; + /** + * @internal + */ + disableWebCam(): void; + /** + * Sets environment for the scene. + * @param hdrUrl Full path of picture url in hdr format + */ + setEnvironment(hdrUrl: string): void; + /** + * Sets environment for the scene. + * @param data Uint16Array of the hdr content + * @internal + */ + setEnvironmentFromDataArray(data?: Uint16Array): void; + /** + * @internal + */ + takeObjectsScreenshot(uniqueIds: string[]): Promise; + /** + * Sets object to a specific color. Note that: + * - The change is permanent, and cannot be recovered to the original color or material. + * - If a material is shared, it may affect other objects. + * @param color A color number in format of "0x000000" + * @internal + */ + setObjectColor(object: THREE.Object3D, color: number): void; + /** + * Updates raycaster threshold to a proper value, so user can easily pick points and lines + */ + private updateRaycasterThreshold; + /** + * Merges leaf nodes of given object. + * If objects' materials are the same, they can be merged. + * TODO: change merge() and MergeUtils.deepMerge to async + * @param object + */ + private merge; + /** + * Updates project settings + * @internal + */ + updateProjectSettings(settings: SettingsType): void; + /** + * Compute bounding box of loaded models + * @internal + */ + computeBoundingBox(): THREE.Box3; + /** + * Sets distance culling factor in order to improve performance. + * 0 means distance culling is disabled. + * 100 means a 1x1 squre mesh is visible within 100. + * @internal + */ + setDistanceCullingFactor(val: number): void; + /** + * Gets distance culling factor. + * @internal + */ + getDistanceCullingFactor(): number; + /** + * Gets camera position and direction. + */ + getCameraPositionAndDirection(): { + position: Vector3; + direction: Vector3; + } | undefined; +} diff --git a/demo/libs/types/core/viewers/DxfViewer.d.ts b/demo/libs/types/core/viewers/DxfViewer.d.ts index 38e2014..32d1625 100644 --- a/demo/libs/types/core/viewers/DxfViewer.d.ts +++ b/demo/libs/types/core/viewers/DxfViewer.d.ts @@ -1,1093 +1,1093 @@ -import * as THREE from "three"; -import { CSS2DRenderer } from "three/examples/jsm/renderers/CSS2DRenderer.js"; -import { DxfCompareConfig, DxfModelConfig, DxfViewerConfig } from "../../core/Configs"; -import { Box2, ScreenshotMode, Vector2 } from "../../core/Constants"; -import { Drawable, DrawableData } from "../../core/canvas"; -import { DxfChange, DxfData, DxfLayer } from "../../core/dxf"; -import { ILayoutObject } from "../../core/dxf-parser"; -import { FontManager } from "../../core/font"; -import { EventInfo } from "../../core/input/InputManager"; -import { MarkupManager, MarkupType } from "../../core/markup"; -import { BaseViewer, ScreenshotResult, ViewerName } from "../../core/viewers/BaseViewer"; -import { MeasurementData, MeasurementType } from "../../plugins/measure"; -import type { MeasurementPlugin } from "../../plugins/measure"; -/** - * Markup for DxfViewer contains additional information, e.g. layoutName. - * - * DxfViewer doesn't maintain the relationship between model and markup data, - * business logic should knows which model a set of markup data belong to. - */ -export declare type MarkupData = DrawableData; -export interface EntityData { - modelId: string; - layerName: string; -} -/** - * A group of dxf/dwg layers for a drawing. - */ -export interface DxfLayers { - modelId: string; - layers: Record; -} -export interface PdfLayers { - modelId: string; - layers: Record; -} -export interface PdfLayer { - name: string; - id: string; - index: string; - visible: boolean; -} -export interface PdfData { - threejsObject: THREE.Object3D; - layers: Record; - layersAndThreejsObjects?: Record; - loadedEntityCount: number; -} -/** - * Loaded 2d model info for DxfViewer. - */ -export interface Model2d { - /** - * modelId that is unique for loaded models - */ - modelId: string; - /** - * Used for dxf data. - */ - dxfData?: DxfData; - /** - * Used for pdf data. - */ - pdfData?: PdfData; - /** - * Model space transform matrix. - * @internal - */ - msTransformMatrix?: THREE.Matrix4; -} -/** - * Threejs objects are organized in tree view as below: - * - * - modelLevelObject1 (THREE.Group, name = ) - * - layoutLevelObject1 (THREE.Group, name = , used to control layout visibility) - * - entityLevelObject1 (THREE.Point/Line/Mesh/Group) - * - * - Layer threejs objects - * { - * layerName:[threejsObject1,threejsObject2,threejsObject3,...] (THREE.Point/Line/Mesh) - * } - */ -/** - * "dwg" is short for "drawing", it is a file format saved by AutoCAD. - * And "dxf" is data exchange format, which can be converted from a dwg file. - * We cannot read dwg directly, and need to convert it to dxf first via ODA. - * - * Supported dxf version: AutoCAD 2018. Both binary and ascii are supported. - * - * Json Encoding: UTF-8 encoding without BOM - * - * Coordinate system: right-handed, y-up - * - * About units: - * - The unit of distance follows the master dxf file's unit - * - The unit of area follows the master dxf file's unit - * - The unit of angle is "degree", counterclockwise - * - The unit of time is "second" - * - * Color: use rgb/rgba, values between 0-1 - * - * About Measurement in DxfViewer: - * - A measurement is generated by DxfViewer. - * - Measurements data should be stored by users, so users can restore measurements data into DxfViewer later. - * - DxfViewer manages measurements data, it can be created, removed, hidden, etc. - * - DxfViewer doesn't maintain the relationship between measurement and layout. - * - * About Markup in DxfViewer: - * Markup is pretty similar to measurement. - * - * About Hotpoint in DxfViewer: - * - A hotpoint is created and stored by user. - * - A hotpoint can be added to, and removed from DxfViewer. - * - Caller should set a hotpointId that is unique in the session of current DxfViewer. - * - DxfViewer doesn't hide a hotpoint, user is able to do it. - * - DxfViewer doesn't maintain the relationship between hotpoint and layout. - * - * About layouts - * - Each layout has its own home view. - * - When switching to another layout, it clears all measurements, markups and hotpoints. - * - When switching to another layout, it deactivates any in-progress operation like measurement, markup, etc. - * - * About overlay - * - It supports to add as many models as user want, as long as the browser has sufficient memory, cpu/gpu, etc. - * - The first model is called "master" model, others are called "overlay" models. - * - It ignores an overlay model's paper space. - * - An overlay model's unit should be converted to master model's unit if they are not the same. - * - We'll append modelId as prefix for getLayers() - * - * About comparision - * - It compares just "Model" spaces. - * - It compares entities with the same handles and types. - * - It compares entities' geometries, positions, scales, etc. - * - It ignores a layer's visibility, freeze settings. - * - It ignores an entity's properties, like linetype, line width, fill pattern, font, color, etc. - * - It ignores spatial filters (xclip) of block references. - * - It ignores layer relative operations, like moving an entity to another layer, changing a layer color, etc. - * - By default, an "Added" entity is rendered in green, a "Removed" entity is in red, a "Modified" entity is composed by two parts, one "Removed" and another "Added". - * - * About undo/redo - * - It supports undo/redo for measurement and markup operations. E.g., creating/deleting/moving a markup. - * - Setting/removing a batch of measurements or markups will be taken as one operation. - * - Switching to another layout clears all undo/redo history. - * - * About OSnap - * - It supports snapping to the end points and middle point of a line. - * - It supports snapping to the intersection point of two lines. - * - It supports snapping to the foot of perpendicular against a line. - * - It supports snapping to any point along a line. - * - * @example - * ``` typescript - * const viewerCfg = { - * containerId: "myCanvas", - * enableSpinner: true, - * enableLayoutBar: true, - * }; - * const modelCfg = { - * modelId: "id_0", - * name: "sample", - * src: "http://www.abc.com/sample.dxf", - * } - * const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"]; - * - * const viewer = new DxfViewer(viewerCfg); - * await viewer.setFont(fontFiles); - * await viewer.loadModelAsync(modelCfg); - * ``` - */ -export declare class DxfViewer extends BaseViewer { - /** - * @internal - */ - name: ViewerName; - private readonly CAMERA_Z_POSITION; - private readonly CAMERA_MIN_ZOOM; - private timer; - protected css2dRenderer?: CSS2DRenderer; - protected fontManager?: FontManager; - protected enableSelection?: boolean; - protected selectedObject?: THREE.Object3D | Drawable; - /** - * The record "key" is modelId or src. - * @internal - */ - loadedModels: Model2d[]; - /** - * @internal - */ - masterModelId: string; - private dxfLayoutBar?; - private loadingManager?; - private raycaster?; - private cameraUpdateInterval?; - protected selected: boolean; - private markupManager?; - private zoomToRectHelper?; - private raf?; - private clock; - protected renderEnabled: boolean; - private timeoutSymbol?; - private enableHideVisuallySmallObjects; - private sortedHidableObjects; - private lastCameraZoom; - private lastFrame; - private activeLayoutName; - private layoutInfos; - private units; - private raycastableObjects; - /** - * @deprecated - */ - private changes; - private fpsUtils; - constructor(viewerCfg: DxfViewerConfig); - /** - * Initialize everything it needs - * @internal - */ - protected init(): void; - private initInputManager; - private initThree; - private initDom; - private initScene; - private initRenderer; - protected initCSS2DRenderer(): void; - private initCamera; - /** - * @internal - */ - protected initControls(): void; - private onResize; - protected onControlsChange(viewer: DxfViewer): () => void; - /** - * Initialize mouse/pointer events - */ - private initEvents; - protected initOthers(): void; - private initLoadingProgressBar; - /** - * Shows the layout bar - * @internal - */ - showLayoutBar(): void; - /** - * Hides the layout bar - * @internal - */ - hideLayoutBar(): void; - protected animate(): void; - /** - * In order to have a better performance, it should only render when necessary. - * Usually, we should enable render for these cases: - * - Anything added to, removed from scene, or objects' position, scale, rotation, opacity, material, etc. changed - * - Anything selected/unselected - * - Camera changed - * - Render area resized - * @internal - */ - enableRender: (time?: number) => void; - /** - * Gets current FPS value - * @internal - */ - getFps(): number; - /** - * @internal - */ - is3d(): boolean; - /** - * @description {en} Destroys DxfViewer. - * @description {zh} 销毁 DxfViewer。 - * @example - * ```typescript - * viewer.destroy(); - * ``` - */ - destroy(): void; - /** - * Used to indicate how many dxf is loading - */ - private loadingDxfCount; - /** - * @description {en} Loads a dxf file. - * The first loaded file will be taken as a "master" model. - * Any other files are non-master, we call "overlay" model. - * We'll load everything of a master model, including model and paper space. - * For an overlay model, we'll only load its model space. And its model space can only - * overly to master model's model space. - * @description {zh} 加载 dxf 文件。 - * 第一个加载的文件将被视为“主”模型。 - * 任何其他文件都是非主文件,我们称之为“叠加”模型。 - * 我们将加载主模型的所有内容,包括模型和图纸空间。 - * 对于叠加模型,我们只会加载其模型空间。并且它的模型空间只能叠加到主模型的模型空间上。 - * @param modelCfg - * - {en} The configuration of the model to be loaded. - * - {zh} 要加载的模型的配置。 - * @param onProgress - * - {en} A callback function to indicate the loading progress. - * - {zh} 用于指示加载进度的回调函数。 - * @example - * ``` typescript - * const viewerCfg = { - * containerId: "myCanvas", - * }; - * const modelCfg = { - * modelId: "id_0", - * name: "dxf 0", - * src: "http://www.abc.com/sample.dxf", - * } - * const viewer = new DxfViewer(viewerCfg); - * await viewer.loadModelAsync(modelCfg, (event) => { - * const progress = (event.loaded * 100) / event.total; - * console.log(`Loading progress: ${progress}%`); - * }); - * console.log("Loaded"); - * ``` - */ - loadModelAsync(modelCfg: DxfModelConfig, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * Unloads a dxf - * @internal - */ - unloadDxf(): void; - /** - * - * @param model - * @returns - * @description Add model data to viewer. - */ - addModel(model: Model2d): void; - /** - * If it is under compare mode - * @deprecated use DxfCompareHelper2 instead - */ - private compareMode; - /** - * If it is under compare mode - * @internal - * @deprecated use DxfCompareHelper2 instead - */ - isCompareMode(): boolean; - /** - * Compares two dxf files. Note that: - * - It only compares model spaces. - * - It shouldn't load anything else before and after compare. - * @param modelCfg1 The first dxf to be compared - * @param modelCfg2 The second dxf to be compared - * @param {DxfCompareConfig} compareCfg The compare config - * @param onProgress loading progress - * @internal - * @deprecated use DxfCompareHelper instead - */ - compare(modelCfg1: DxfModelConfig, modelCfg2: DxfModelConfig, compareCfg?: DxfCompareConfig, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * Gets loaded entity count - * @internal - * @returns {number} - */ - getEntitiesCount(): number; - /** - * Gets loaded dxf model id array - */ - protected getLoadedDxfModelIds(): string[]; - /** - * @description {en} Gets layout names of the master model. - * @description {zh} 获取主模型的布局名称。 - * @returns - * - {en} Layout names of the master model. - * - {zh} 主模型的布局名称。 - * @example - * ```typescript - * const layoutNames = dxfViewer.getLayoutNames(); - * console.log(layoutNames); // ['Model', 'Layout1', 'Layout2'] - * ``` - */ - getLayoutNames(): string[]; - /** - * Gets layouts. - * Only returns master model's layouts. - */ - protected getLayouts(): ILayoutObject[]; - private handleOverlayDxf; - /** - * @description {en} Activates a layout. - * @description {zh} 激活布局。 - * @param layoutName - * - {en} The name of the layout to be activated. - * - {zh} 要激活的布局名称。 - * @example - * ```typescript - * viewer.activateLayout('Layout1'); - * ``` - */ - activateLayout(layoutName: string): void; - private cancelAllOperations; - /** - * @description {en} Gets active layout. - * @description {zh} 获取当前布局。 - * @returns - * - {en} Active layout name or undefined. - * - {zh} 当前激活的布局名称或undefined。 - * @example - * ``` typescript - * const activeLayout = viewer.getActiveLayoutName(); - * console.log(activeLayout); - * ``` - */ - getActiveLayoutName(): string | undefined; - /** - * @description {en} Gets dxf layers. - * @description {zh} 获取dxf图层。 - * @returns - * - {en} Dxf layers. - * - {zh} dxf图层。 - * @example - * ``` typescript - * const dxfLayers = viewer.getLayers(); - * for (let i = 0; i < dxfLayers.length; ++i) { - * const layers = dxfLayers[i].layers; - * const layerNames = Object.keys(layers).sort(); - * console.log(layerNames); - * } - * ``` - */ - getLayers(): (DxfLayers | PdfLayers)[]; - /** - * Sets model's (aka, a dxf file) visibility. - * @throws Throws exception if modelId doesn't exist. - * @internal - */ - setModelVisibility(modelId: string, visible: boolean): void; - /** - * @description {en} Sets layer's visibility. - * @description {zh} 设置图层的可见性。 - * @param layerName - * - {en} Layer's name to show or hide. - * - {zh} 要显示或隐藏的图层名称。 - * @param visible - * - {en} Layer's target visibility. - * - {zh} 图层的目标可见性。 - * @param modelId - * - {en} Useful when more than one model is loaded, if not specified, will use the master model. - * - {zh} 当加载了多个模型时有用,如果未指定,将使用主模型。 - * @throws Error - * - {en}: Throws exception if given modelId doesn't exist. - * - {zh} 如果给定的modelId不存在,则抛出异常。 - * @example - * ``` typescript - * // Hides layer "0" - * viewer.setLayerVisibility("0", false); - * ``` - */ - setLayerVisibility(layerName: string, visible: boolean, modelId?: string): void; - /** - * Sets layer's opacity - * @internal - */ - setLayerOpacity(): void; - /** - * Sets layer's color - * @throws Throws exception if layer doesn't exist. - * @internal - */ - setLayerColor(layerName: string, color: number, modelId?: string): void; - /** - * Resets a layer's color. - * @internal - */ - resetLayerColor(layerName: string, modelId?: string): void; - /** - * @description {en} Sets font. - * This needs to be called before loading a dxf, it won't affect any loaded text. - * It accepts shx or typeface formats. For typeface, it only support passing in 1 font file in the array for now. - * @description {zh} 设置字体。 - * 需要在加载dxf之前调用,不会影响已加载的文字。 - * 支持shx或typeface格式。对于typeface,目前只支持传入1个字体文件。 - * @param urls - * - {en} font file urls. - * - {zh} 字体文件链接。 - * @example - * ```typescript - * viewer.setFont(["https://example.com/xxx.shx"]); - * ``` - */ - setFont(urls: string[]): Promise; - getFont(): FontManager | undefined; - /** - * Sets loading manager. - * @internal - * This needs to be called before loading a dxf, used to load local external links. - * @param manager - */ - setLoadingManager(manager: THREE.LoadingManager): void; - /** - * Sets display length units. - * @internal Not implemented yet! - * @default Millimeters - */ - setDisplayLengthUnits(): void; - /** - * Sets display area units - * @internal Not implemented yet! - * @default Meters - */ - setDisplayAreaUnits(): void; - /** - * Sets display decimal digits - * @internal Not implemented yet! - * @default 2 - */ - setDisplayPrecision(): void; - /** - * @description {en} Gets current view extent. - * This is useful for user to save this value as a viewpoint, and jump to this viewpoint next time. - * @description {zh} 获取当前视图范围。 - * 用户可使用该接口获取当前视口范围,并在适当的场景下跳转到该视口范围。 - * @example - * ``` typescript - * const box = viewer.getCurrentViewExtent(); - * console.log("Current view extent:", box); - * ``` - */ - getCurrentViewExtent(): Box2; - /** - * @description {en} Gets screenshot of a rectangular area, or by box selecting an area. Returns an image in format of base64 string. - * @description {zh} 获取矩形区域或者框选区域的截图。返回base64格式的图片。 - * @param mode - * - {en} screenshot mode("Default", "BoxSelection" and "PickMarkup"). - * - {zh} 截图模式("全屏", "框选" 和 "选中批注")。 - * @example - * ``` typescript - * // {en} Click on markup to take screenshot. - * // {zh} 点击批注截屏。 - * const mode = ScreenshotMode.PickMarkup; - * viewer.getScreenshot(mode).then(data => console.log(data)); - * // {en} Take screenshot by box selecting an area. - * // {zh} 根据用户的框选截屏。 - * const mode = ScreenshotMode.BoxSelection; - * viewer.getScreenshot(mode).then(data => console.log(data)); - * // {en} Take screenshot of the whole view. - * // {zh} 全屏截屏。 - * const mode = ScreenshotMode.Default; - * viewer.getScreenshot(mode).then(data => console.log(data)); - * ``` - * @deprecated use ScreenshotPlugin instead. - */ - getScreenshot(mode?: ScreenshotMode): Promise; - /** - * @description Compatible with older versions, use MeasurePlugin instead - * @internal - */ - get measurePlugin(): MeasurementPlugin | undefined; - /** - * @description {en} Activates one of "Distance", "Area" or "Angle" measurement - * @description {zh} 激活"距离", "面积" 或者 "角度"测量 - * @param type - * - "Distance", "Area" or "Angle" - * @example - * ``` typescript - * viewer.activateMeasurement(MeasurementType.Distance); - * ``` - * @deprecated use MeasurePlugin instead - */ - activateMeasurement(type: MeasurementType): void; - /** - * @description {en} Deactivates measurement. - * @description {zh} 退出测量。 - * @example - * ``` typescript - * viewer.deactivateMeasurement(); - * ``` - * @deprecated use MeasurePlugin instead - */ - deactivateMeasurement(): void; - /** - * @description {en} Gets active measurement type. - * @description {zh} 获取当前激活的测量类型。 - * @returns - * - "Distance", "Area" or "Angle" or undefined - * @example - * ``` typescript - * const measurementType = viewer.getActiveMeasurementType(); - * console.log(measurementType); - * ``` - * @deprecated use MeasurePlugin instead - */ - getActiveMeasurementType(): MeasurementType | undefined; - /** - * @description {en} Gets all measurements. - * @description {zh} 获取所有测量数据。 - * @returns - * - {en} measurement data array. - * - {zh} 测量数据数组。 - * @example - * ``` typescript - * const measurementData = viewer.getMeasurements(); - * console.log(measurementData); - * ``` - * @deprecated use MeasurePlugin instead - */ - getMeasurements(): MeasurementData[]; - /** - * @description {en} Cancels current measurement. This won't deactivate measurement, rather, you can start a new measurement. - * @description {zh} 取消当前的测量绘制。这并不会退出测量,用户可以开始一个新的测量。 - * @deprecated use MeasurePlugin instead - */ - cancelMeasurement(): void; - /** - * @description {en} Sets measurement data. - * @description {zh} 设置测量数据。 - * @param measurementData - * - {en} measurement data array. - * - {zh} 测量数据数组。 - * @example - * ``` typescript - * const measurementData = [{ - * type: "Distance", - * id: "c6ea70a3-ddb0-4dd0-87c8-bd2491936428", - * points: [[0, 1000], [5000, 1000]], - * }]; - * viewer.setMeasurements(measurementData); - * ``` - * @deprecated use MeasurePlugin instead - */ - setMeasurements(measurementData: MeasurementData[]): void; - /** - * Selects a measurement by id - * @internal - * @deprecated use MeasurePlugin instead - */ - selectMeasurement(id: string): void; - /** - * Unselects a measurement. - * @internal - * @deprecated use MeasurePlugin instead - */ - unselectMeasurement(): void; - /** - * @description {en} Removes a measurement by id. - * @description {zh} 根据id删除测量数据。 - * @param id - * - {en} Measurement data id. - * - {zh} 测量数据id。 - * @example - * ``` typescript - * const id = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428"; - * viewer.removeMeasurement(id); - * ``` - * @deprecated use MeasurePlugin instead - */ - removeMeasurement(id: string): void; - /** - * Sets a measurement's visibility. - * Note that, the markup should belong to active layout. You shouldn't update a markup of an inactive layout. - * @internal - * @deprecated use MeasurePlugin instead - */ - setMeasurementVisibility(id: string, visible: boolean): boolean; - /** - * @description {en} Clears measurement results. - * @description {zh} 清除测量结果。 - * @example - * ``` typescript - * viewer.clearMeasurements(); - * ``` - * @deprecated use MeasurePlugin instead - */ - clearMeasurements(): void; - /** markup start **/ - /** - * @internal - */ - getMarkupManager(): MarkupManager | undefined; - /** - * @description {en} Activates markup feature. - * @description {zh} 激活标注功能。 - * @param type - * - {en} markup type. - * - {zh} 标注类型。 - * @example - * ``` typescript - * const markupType = MarkupType.Arrow; - * viewer.activateMarkup(markupType); - * ``` - * @deprecated - */ - activateMarkup(type: MarkupType): void; - /** - * @description {en} Deactivates markup feature. - * @description {zh} 退出标注功能。 - * @example - * ``` typescript - * viewer.deactivateMarkup(); - * ``` - */ - deactivateMarkup(): void; - /** - * @description {en} Gets active markup type. - * @description {zh} 获取激活的标注类型。 - * @returns - * - {en} markup type. - * - {zh} 标注类型。 - * @example - * ``` typescript - * const markupType = viewer.getActiveMarkupType(); - * console.log(markupType); - * ``` - */ - getActiveMarkupType(): MarkupType | undefined; - /** - * Set markup stroke color - * @internal - */ - setMarkupLineColor(r: number, g: number, b: number, a: number): void; - /** - * @internal - */ - getMarkupLineColor(): number[] | undefined; - /** - * Set markup fill color - * @internal - */ - setMarkupFillColor(r: number, g: number, b: number, a: number): void; - /** - * @internal - */ - getMarkupFillColor(): number[] | undefined; - /** - * Set markup stroke line width - * @internal - */ - setMarkupLineWidth(lineWidth: number): void; - /** - * @internal - */ - getMarkupLineWidth(): number | undefined; - /** - * Set markup font size - * @internal - */ - setMarkupFontSize(fontSize: number): void; - /** - * @internal - */ - getMarkupFontSize(): number | undefined; - /** - * @description {en} Gets all markups. - * @description {zh} 获取所有标注数据。 - * @returns - * - {en} markup data array. - * - {zh} 标注数据数组。 - * @example - * ``` typescript - * const markupData = viewer.getMarkups(); - * console.log(markupData); - * ``` - */ - getMarkups(): MarkupData[]; - /** - * @description {en} Adds markups to active layout. - * @description {zh} 添加标注到当前布局。 - * @param markupDataArray - * - {en} markup data array. - * - {zh} 标注数据数组。 - * @example - * ``` typescript - * const markupData = [{ - * type: "ArrowMarkup", - * id: "c6ea70a3-ddb0-4dd0-87c8-bd2491936428", - * lineWidth: 2, - * strokeStyle: "#ff0000", - * fillStyle: "#ff000030", - * points: [[0, 0], [1000, 1000]], - * }]; - * viewer.setMarkups(markupData); - * ``` - */ - setMarkups(markupDataArray: MarkupData[]): void; - /** - * Sets a markup's visibility by id. - * Note that, the markup should belong to active layout. You shouldn't update a markup of an inactive layout. - * @internal - */ - setMarkupVisibility(id: string, visible: boolean): boolean; - /** - * @description {en} Updates a markup. - * @description {zh} 更新标注。 - * @param {MarkupData} markup - * - {en} markup data. - * - {zh} 标注数据。 - * @returns - * - {en} Whether update successfully, true means success, false means failure. - * - {zh} 是否更新成功,true表示成功,false表示失败。 - * @example - * ``` typescript - * const markupData = { - * type: "ArrowMarkup", - * id: "c6ea70a3-ddb0-4dd0-87c8-bd2491936428", - * lineWidth: 3, - * strokeStyle: "#ff0000", - * fillStyle: "#ff000030", - * points: [[0, 0], [1000, 1000]], - * }; - * viewer.updateMarkup(markupData); - */ - updateMarkup(markup: MarkupData): boolean; - /** - * @description {en} Removes a markup by markup id. - * @description {zh} 根据标注id删除标注。 - * @param {string} id - * - {en} markup id. - * - {zh} 标注id。 - * @returns - * - {en} Whether remove successfully, true means success, false means failure. - * - {zh} 是否删除成功,true表示成功,false表示失败。 - * @example - * ``` typescript - * const markupId = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428"; - * viewer.removeMarkup(markupId); - * ``` - */ - removeMarkup(id: string): boolean; - /** - * @description {en} Clears markups. - * @description {zh} 清除所有标注。 - * @example - * ``` typescript - * viewer.clearMarkups(); - * ``` - */ - clearMarkups(): void; - /** markup end **/ - /** - * Gets mouse hit result in world coordinate - * @example - * ``` typescript - * document.addEventListener("click", (event) => { - * const result = viewer.getHitResult(event); - * const loc = result?.location; - * if (loc) { - * console.log(`Clicked at x: ${loc[0]}, y: ${loc[1]}`); - * } - * }); - * ``` - * @internal - */ - getHitResult(event: MouseEvent | PointerEvent | EventInfo): Vector2 | undefined; - /** - * Gets hit result by Normalized Device Coordinates. - * Lower left coordinate: (-1, -1) - * Upper right coordinate: (1, 1) - */ - protected getHitResultByNdcCoordinate(coord: Vector2): Vector2 | undefined; - /** - * @description {en} Asks user to select a box area, and zooms to it. - * @description {zh} 询问用户选择一个框选区域,然后缩放到该区域。 - * @example - * ``` typescript - * viewer.zoomToRect(); - * ``` - */ - zoomToRect(): void; - /** - * @internal - */ - deactivateZoomRect(): void; - private getLayoutByName; - private getActiveLayoutInfo; - private getMsTransformMatrix; - private switchTransformMs; - private getLayoutExtentEx; - private getModelSpaceExtent; - private getLayoutExtent; - /** - * Shows objects for given layout, and hide any other layouts. - */ - private showLayoutObjects; - private getLayoutViewports; - private setMaterialUniforms; - /** - * Checks if a layer is frozen for viewport (VP Freeze) - */ - private isLayerFrozenForViewport; - private getFilteredViewports; - private generateObjectsByViewport; - private findSpatialFilter; - private getAnyMaterial; - private addSpatialFilterSection; - private getObjectsByBoundingBox; - private getDxfUnits; - private generateSectionsBySpatialFilter; - /** - * @description {en} resize viewer - * @description {zh} 重置视图大小 - * @param {number} width - * - {en} width of viewer - * - {zh} 视图宽度。 - * @param {number} height - * - {en} height of viewer - * - {zh} 视图高度。 - * @example - * ```typescript - * const width = 800; - * const height = 600; - * viewer.resize(width, height); - * ``` - */ - protected resize(width: number, height: number): void; - /** - * @internal - */ - getRaycaster(): THREE.Raycaster | undefined; - /** - * TODO: Remove it later. - * Gets raycast-able objects. - * Raycast-able objects should be visible objects and is snap object in scene. - */ - private getRaycastableObjects; - /** - * Gets the corresponding viewport by judging that the point is in the viewport - */ - private getViewportByPoint; - /** - * Gets raycast-able objects by mouseEvent. - * @internal - */ - getRaycastableObjectsByMouse(event?: EventInfo): THREE.Object3D[]; - /** - * Gets intersections by given mouse location. - * If no MouseEvent is passed in, use (0, 0) as the raycaster's origin. - */ - private getIntersections; - /** - * Handles mouse click event - */ - private handleMouseClick; - private selectDrawableByEvent; - /** - * Select or unselect an object. - * depthTest is turned off by default. The highlighting is more pronounced when objects cover each other. - */ - protected selectObject(object?: THREE.Object3D, depthTest?: boolean): void; - /** - * Clears the current selection - * @internal - */ - clearSelection(): void; - /** - * Makes camera fly to objects - */ - protected flyToObjects(objects: THREE.Object3D[]): void; - /** - * Make camera fly to an object - */ - protected flyToObject(object: THREE.Object3D): void; - /** - * Flies to current selected object if any - */ - protected flyToSelectedObject(): void; - /** - * Flies to a random object (by alt + r). - * It is useful when either the data is wrong or there is bug in program, - * then we cannot see anything in the scene! - */ - protected flyToRandomObject(): void; - /** - * Makes camera fly to target position with given lookAt position - * @param position camera's target position - * @param lookAt camera's new lookAt position - * @param targetCameraZoom camera's target zoom value - * @internal - */ - flyTo(position: THREE.Vector3, lookAt: THREE.Vector3, targetCameraZoom?: number, animate?: boolean): void; - /** - * Moves camera to target position - * @param position 2d position - * @internal - */ - goTo(position: Vector2, targetCameraZoom?: number, animate?: boolean): void; - /** - * @description {en} Moves camera to home view. - * @description {zh} 移动相机到主视图. - * @example - * ``` typescript - * viewer.goToHomeView(); - * ``` - */ - goToHomeView(): void; - /** - * @description {en} Zooms to specific bounding box. - * @description {zh} 缩放到指定的包围盒. - * @param bbox - * - {en} 2d bounding box - * - {zh} 2d 包围盒。 - * @example - * ``` typescript - * const box = { min: { x: 0, y: 0 }, max: { x: 10000, y: 10000} }; - * viewer.zoomToBBox(box); - * ``` - */ - zoomToBBox(bbox: Box2): void; - /** - * @description {en} Zooms to view extent. - * @description {zh} 缩放到视图范围. - * @example - * ``` typescript - * viewer.zoomToExtent(); - * ``` - */ - zoomToExtent(): void; - /** - * @description {en} Zooms to a compare change. - * @description {zh} 聚焦到图纸的一处变动。 - * @param changeId - * - {en} Change id, which is an incremental integer starts from 1. - * - {zh} 变动id,该id是从数字1开始自增的整数。 - * @example - * ``` typescript - * const changeId = 1; - * viewer.zoomToCompareChange(changeId); - * ``` - * @internal - * @deprecated use DxfCompareHelper2 instead - */ - zoomToCompareChange(changeId: number): void; - /** - * @description {en} Gets compare changes. - * @description {zh} 获取对比变动. - * @returns - * - {en} Compare changes. - * - {zh} 对比变动列表。 - * @example - * ``` typescript - * const changes = viewer.getCompareChanges(); - * console.log(changes); - * ``` - * @internal - * @deprecated use DxfCompareHelper2 instead - */ - getCompareChanges(): Record | undefined; - /** - * @description {en} Sets background color. - * @description {zh} 设置背景颜色。 - * @param r - * - {en} Red channel value between 0 and 1. - * - {zh} 红色通道值,介于 0 和 1 之间。 - * @param g - * - {en} Green channel value between 0 and 1. - * - {zh} 绿色通道值,介于 0 和 1 之间。 - * @param b - * - {en} Blue channel value between 0 and 1. - * -{zh} 蓝色通道值,介于 0 和 1 之间。 - * @example - * ``` typescript - * // {en} Sets background to gray - * // {zh} 设置背景为灰色 - * viewer.setBackgroundColor(0.5, 0.5, 0.5); - * ``` - */ - setBackgroundColor(r: number, g: number, b: number): void; - /** - * Gets LayoutInfo by layoutName. It creats LayoutInfo if doesn't exist. - */ - private getLayoutInfo; - /** - * Creates a ground plane which is much bigger than bbox. - */ - private updateGroundPlane; - /** - * Compute bounding box of loaded models for active layout - * @internal - */ - computeBoundingBox(): THREE.Box3; - /** - * Checks if an expected zoom value is valid, and adjust its value if necessary. - */ - private checkAndGetLimitedCameraZoom; - private getVisiblePixelSize; - private setLayoutHidableObjectArray; - private statObjects; - /** - * Updates hidable objects' visibility once camera.zoom changed. - */ - private updateHidableObjectsVisibility; - /** - * Updates raycaster threshold to a proper value, so user can easily pick points and lines - */ - private updateRaycasterThreshold; - /** - * Updates camera zoom value for shader materials, which are created in DxfLoader - */ - private updateCameraZoomUniform; -} +import * as THREE from "three"; +import { CSS2DRenderer } from "three/examples/jsm/renderers/CSS2DRenderer.js"; +import { DxfCompareConfig, DxfModelConfig, DxfViewerConfig } from "../../core/Configs"; +import { Box2, Vector2 } from "../../core/Constants"; +import { Drawable, DrawableData } from "../../core/canvas"; +import { DxfChange, DxfData, DxfLayer } from "../../core/dxf"; +import { ILayoutObject } from "../../core/dxf-parser"; +import { FontManager } from "../../core/font"; +import { EventInfo } from "../../core/input/InputManager"; +import { MarkupManager, MarkupType } from "../../core/markup"; +import { BaseViewer, ViewerName } from "../../core/viewers/BaseViewer"; +import { MeasurementData, MeasurementType } from "../../plugins/measure"; +import type { MeasurementPlugin } from "../../plugins/measure"; +/** + * Markup for DxfViewer contains additional information, e.g. layoutName. + * + * DxfViewer doesn't maintain the relationship between model and markup data, + * business logic should knows which model a set of markup data belong to. + */ +export declare type MarkupData = DrawableData; +export interface EntityData { + modelId: string; + layerName: string; +} +/** + * A group of dxf/dwg layers for a drawing. + */ +export interface DxfLayers { + modelId: string; + layers: Record; +} +export interface PdfLayers { + modelId: string; + layers: Record; +} +export interface PdfLayer { + name: string; + id: string; + index: string; + visible: boolean; +} +export interface PdfData { + threejsObject: THREE.Object3D; + layers: Record; + layersAndThreejsObjects?: Record; + loadedEntityCount: number; +} +/** + * Loaded 2d model info for DxfViewer. + */ +export interface Model2d { + /** + * modelId that is unique for loaded models + */ + modelId: string; + /** + * Used for dxf data. + */ + dxfData?: DxfData; + /** + * Used for pdf data. + */ + pdfData?: PdfData; + /** + * Model space transform matrix. + * @internal + */ + msTransformMatrix?: THREE.Matrix4; +} +/** + * Threejs objects are organized in tree view as below: + * + * - modelLevelObject1 (THREE.Group, name = ) + * - layoutLevelObject1 (THREE.Group, name = , used to control layout visibility) + * - entityLevelObject1 (THREE.Point/Line/Mesh/Group) + * + * - Layer threejs objects + * { + * layerName:[threejsObject1,threejsObject2,threejsObject3,...] (THREE.Point/Line/Mesh) + * } + */ +/** + * "dwg" is short for "drawing", it is a file format saved by AutoCAD. + * And "dxf" is data exchange format, which can be converted from a dwg file. + * We cannot read dwg directly, and need to convert it to dxf first via ODA. + * + * Supported dxf version: AutoCAD 2018. Both binary and ascii are supported. + * + * Json Encoding: UTF-8 encoding without BOM + * + * Coordinate system: right-handed, y-up + * + * About units: + * - The unit of distance follows the master dxf file's unit + * - The unit of area follows the master dxf file's unit + * - The unit of angle is "degree", counterclockwise + * - The unit of time is "second" + * + * Color: use rgb/rgba, values between 0-1 + * + * About Measurement in DxfViewer: + * - A measurement is generated by DxfViewer. + * - Measurements data should be stored by users, so users can restore measurements data into DxfViewer later. + * - DxfViewer manages measurements data, it can be created, removed, hidden, etc. + * - DxfViewer doesn't maintain the relationship between measurement and layout. + * + * About Markup in DxfViewer: + * Markup is pretty similar to measurement. + * + * About Hotpoint in DxfViewer: + * - A hotpoint is created and stored by user. + * - A hotpoint can be added to, and removed from DxfViewer. + * - Caller should set a hotpointId that is unique in the session of current DxfViewer. + * - DxfViewer doesn't hide a hotpoint, user is able to do it. + * - DxfViewer doesn't maintain the relationship between hotpoint and layout. + * + * About layouts + * - Each layout has its own home view. + * - When switching to another layout, it clears all measurements, markups and hotpoints. + * - When switching to another layout, it deactivates any in-progress operation like measurement, markup, etc. + * + * About overlay + * - It supports to add as many models as user want, as long as the browser has sufficient memory, cpu/gpu, etc. + * - The first model is called "master" model, others are called "overlay" models. + * - It ignores an overlay model's paper space. + * - An overlay model's unit should be converted to master model's unit if they are not the same. + * - We'll append modelId as prefix for getLayers() + * + * About comparision + * - It compares just "Model" spaces. + * - It compares entities with the same handles and types. + * - It compares entities' geometries, positions, scales, etc. + * - It ignores a layer's visibility, freeze settings. + * - It ignores an entity's properties, like linetype, line width, fill pattern, font, color, etc. + * - It ignores spatial filters (xclip) of block references. + * - It ignores layer relative operations, like moving an entity to another layer, changing a layer color, etc. + * - By default, an "Added" entity is rendered in green, a "Removed" entity is in red, a "Modified" entity is composed by two parts, one "Removed" and another "Added". + * + * About undo/redo + * - It supports undo/redo for measurement and markup operations. E.g., creating/deleting/moving a markup. + * - Setting/removing a batch of measurements or markups will be taken as one operation. + * - Switching to another layout clears all undo/redo history. + * + * About OSnap + * - It supports snapping to the end points and middle point of a line. + * - It supports snapping to the intersection point of two lines. + * - It supports snapping to the foot of perpendicular against a line. + * - It supports snapping to any point along a line. + * + * @example + * ``` typescript + * const viewerCfg = { + * containerId: "myCanvas", + * enableSpinner: true, + * enableLayoutBar: true, + * }; + * const modelCfg = { + * modelId: "id_0", + * name: "sample", + * src: "http://www.abc.com/sample.dxf", + * } + * const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"]; + * + * const viewer = new DxfViewer(viewerCfg); + * await viewer.setFont(fontFiles); + * await viewer.loadModelAsync(modelCfg); + * ``` + */ +export declare class DxfViewer extends BaseViewer { + /** + * @internal + */ + name: ViewerName; + private readonly CAMERA_Z_POSITION; + private readonly CAMERA_MIN_ZOOM; + private timer; + protected css2dRenderer?: CSS2DRenderer; + protected fontManager?: FontManager; + protected enableSelection?: boolean; + protected selectedObject?: THREE.Object3D | Drawable; + /** + * The record "key" is modelId or src. + * @internal + */ + loadedModels: Model2d[]; + /** + * @internal + */ + masterModelId: string; + private dxfLayoutBar?; + private loadingManager?; + private raycaster?; + private cameraUpdateInterval?; + protected selected: boolean; + private markupManager?; + private zoomToRectHelper?; + private raf?; + private clock; + protected renderEnabled: boolean; + private timeoutSymbol?; + private enableHideVisuallySmallObjects; + private sortedHidableObjects; + private lastCameraZoom; + private lastFrame; + private activeLayoutName; + private layoutInfos; + private units; + private raycastableObjects; + /** + * @deprecated + */ + private changes; + private fpsUtils; + constructor(viewerCfg: DxfViewerConfig); + /** + * Initialize everything it needs + * @internal + */ + protected init(): void; + private initInputManager; + private initThree; + private initDom; + private initScene; + private initRenderer; + protected initCSS2DRenderer(): void; + private initCamera; + /** + * @internal + */ + protected initControls(): void; + private onResize; + protected onControlsChange(viewer: DxfViewer): () => void; + /** + * Initialize mouse/pointer events + */ + private initEvents; + protected initOthers(): void; + private initLoadingProgressBar; + /** + * Shows the layout bar + * @internal + */ + showLayoutBar(): void; + /** + * Hides the layout bar + * @internal + */ + hideLayoutBar(): void; + protected animate(): void; + /** + * In order to have a better performance, it should only render when necessary. + * Usually, we should enable render for these cases: + * - Anything added to, removed from scene, or objects' position, scale, rotation, opacity, material, etc. changed + * - Anything selected/unselected + * - Camera changed + * - Render area resized + * @internal + */ + enableRender: (time?: number) => void; + /** + * Gets current FPS value + * @internal + */ + getFps(): number; + /** + * @internal + */ + is3d(): boolean; + /** + * @description {en} Destroys DxfViewer. + * @description {zh} 销毁 DxfViewer。 + * @example + * ```typescript + * viewer.destroy(); + * ``` + */ + destroy(): void; + /** + * Used to indicate how many dxf is loading + */ + private loadingDxfCount; + /** + * @description {en} Loads a dxf file. + * The first loaded file will be taken as a "master" model. + * Any other files are non-master, we call "overlay" model. + * We'll load everything of a master model, including model and paper space. + * For an overlay model, we'll only load its model space. And its model space can only + * overly to master model's model space. + * @description {zh} 加载 dxf 文件。 + * 第一个加载的文件将被视为“主”模型。 + * 任何其他文件都是非主文件,我们称之为“叠加”模型。 + * 我们将加载主模型的所有内容,包括模型和图纸空间。 + * 对于叠加模型,我们只会加载其模型空间。并且它的模型空间只能叠加到主模型的模型空间上。 + * @param modelCfg + * - {en} The configuration of the model to be loaded. + * - {zh} 要加载的模型的配置。 + * @param onProgress + * - {en} A callback function to indicate the loading progress. + * - {zh} 用于指示加载进度的回调函数。 + * @example + * ``` typescript + * const viewerCfg = { + * containerId: "myCanvas", + * }; + * const modelCfg = { + * modelId: "id_0", + * name: "dxf 0", + * src: "http://www.abc.com/sample.dxf", + * } + * const viewer = new DxfViewer(viewerCfg); + * await viewer.loadModelAsync(modelCfg, (event) => { + * const progress = (event.loaded * 100) / event.total; + * console.log(`Loading progress: ${progress}%`); + * }); + * console.log("Loaded"); + * ``` + */ + loadModelAsync(modelCfg: DxfModelConfig, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * Unloads a dxf + * @internal + */ + unloadDxf(): void; + /** + * + * @param model + * @returns + * @description Add model data to viewer. + */ + addModel(model: Model2d): void; + /** + * If it is under compare mode + * @deprecated use DxfCompareHelper2 instead + */ + private compareMode; + /** + * If it is under compare mode + * @internal + * @deprecated use DxfCompareHelper2 instead + */ + isCompareMode(): boolean; + /** + * Compares two dxf files. Note that: + * - It only compares model spaces. + * - It shouldn't load anything else before and after compare. + * @param modelCfg1 The first dxf to be compared + * @param modelCfg2 The second dxf to be compared + * @param {DxfCompareConfig} compareCfg The compare config + * @param onProgress loading progress + * @internal + * @deprecated use DxfCompareHelper instead + */ + compare(modelCfg1: DxfModelConfig, modelCfg2: DxfModelConfig, compareCfg?: DxfCompareConfig, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * Gets loaded entity count + * @internal + * @returns {number} + */ + getEntitiesCount(): number; + /** + * Gets loaded dxf model id array + */ + protected getLoadedDxfModelIds(): string[]; + /** + * @description {en} Gets layout names of the master model. + * @description {zh} 获取主模型的布局名称。 + * @returns + * - {en} Layout names of the master model. + * - {zh} 主模型的布局名称。 + * @example + * ```typescript + * const layoutNames = dxfViewer.getLayoutNames(); + * console.log(layoutNames); // ['Model', 'Layout1', 'Layout2'] + * ``` + */ + getLayoutNames(): string[]; + /** + * Gets layouts. + * Only returns master model's layouts. + */ + protected getLayouts(): ILayoutObject[]; + private handleOverlayDxf; + /** + * @description {en} Activates a layout. + * @description {zh} 激活布局。 + * @param layoutName + * - {en} The name of the layout to be activated. + * - {zh} 要激活的布局名称。 + * @example + * ```typescript + * viewer.activateLayout('Layout1'); + * ``` + */ + activateLayout(layoutName: string): void; + private cancelAllOperations; + /** + * @description {en} Gets active layout. + * @description {zh} 获取当前布局。 + * @returns + * - {en} Active layout name or undefined. + * - {zh} 当前激活的布局名称或undefined。 + * @example + * ``` typescript + * const activeLayout = viewer.getActiveLayoutName(); + * console.log(activeLayout); + * ``` + */ + getActiveLayoutName(): string | undefined; + /** + * @description {en} Gets dxf layers. + * @description {zh} 获取dxf图层。 + * @returns + * - {en} Dxf layers. + * - {zh} dxf图层。 + * @example + * ``` typescript + * const dxfLayers = viewer.getLayers(); + * for (let i = 0; i < dxfLayers.length; ++i) { + * const layers = dxfLayers[i].layers; + * const layerNames = Object.keys(layers).sort(); + * console.log(layerNames); + * } + * ``` + */ + getLayers(): (DxfLayers | PdfLayers)[]; + /** + * Sets model's (aka, a dxf file) visibility. + * @throws Throws exception if modelId doesn't exist. + * @internal + */ + setModelVisibility(modelId: string, visible: boolean): void; + /** + * @description {en} Sets layer's visibility. + * @description {zh} 设置图层的可见性。 + * @param layerName + * - {en} Layer's name to show or hide. + * - {zh} 要显示或隐藏的图层名称。 + * @param visible + * - {en} Layer's target visibility. + * - {zh} 图层的目标可见性。 + * @param modelId + * - {en} Useful when more than one model is loaded, if not specified, will use the master model. + * - {zh} 当加载了多个模型时有用,如果未指定,将使用主模型。 + * @throws Error + * - {en}: Throws exception if given modelId doesn't exist. + * - {zh} 如果给定的modelId不存在,则抛出异常。 + * @example + * ``` typescript + * // Hides layer "0" + * viewer.setLayerVisibility("0", false); + * ``` + */ + setLayerVisibility(layerName: string, visible: boolean, modelId?: string): void; + /** + * Sets layer's opacity + * @internal + */ + setLayerOpacity(): void; + /** + * Sets layer's color + * @throws Throws exception if layer doesn't exist. + * @internal + */ + setLayerColor(layerName: string, color: number, modelId?: string): void; + /** + * Resets a layer's color. + * @internal + */ + resetLayerColor(layerName: string, modelId?: string): void; + /** + * @description {en} Sets font. + * This needs to be called before loading a dxf, it won't affect any loaded text. + * It accepts shx or typeface formats. For typeface, it only support passing in 1 font file in the array for now. + * @description {zh} 设置字体。 + * 需要在加载dxf之前调用,不会影响已加载的文字。 + * 支持shx或typeface格式。对于typeface,目前只支持传入1个字体文件。 + * @param urls + * - {en} font file urls. + * - {zh} 字体文件链接。 + * @example + * ```typescript + * viewer.setFont(["https://example.com/xxx.shx"]); + * ``` + */ + setFont(urls: string[]): Promise; + getFont(): FontManager | undefined; + /** + * Sets loading manager. + * @internal + * This needs to be called before loading a dxf, used to load local external links. + * @param manager + */ + setLoadingManager(manager: THREE.LoadingManager): void; + /** + * Sets display length units. + * @internal Not implemented yet! + * @default Millimeters + */ + setDisplayLengthUnits(): void; + /** + * Sets display area units + * @internal Not implemented yet! + * @default Meters + */ + setDisplayAreaUnits(): void; + /** + * Sets display decimal digits + * @internal Not implemented yet! + * @default 2 + */ + setDisplayPrecision(): void; + /** + * @description {en} Gets current view extent. + * This is useful for user to save this value as a viewpoint, and jump to this viewpoint next time. + * @description {zh} 获取当前视图范围。 + * 用户可使用该接口获取当前视口范围,并在适当的场景下跳转到该视口范围。 + * @example + * ``` typescript + * const box = viewer.getCurrentViewExtent(); + * console.log("Current view extent:", box); + * ``` + */ + getCurrentViewExtent(): Box2; + /** + * @description {en} Gets screenshot of a rectangular area, or by box selecting an area. Returns an image in format of base64 string. + * @description {zh} 获取矩形区域或者框选区域的截图。返回base64格式的图片。 + * @param mode + * - {en} screenshot mode("Default", "BoxSelection" and "PickMarkup"). + * - {zh} 截图模式("全屏", "框选" 和 "选中批注")。 + * @example + * ``` typescript + * // {en} Click on markup to take screenshot. + * // {zh} 点击批注截屏。 + * const mode = ScreenshotMode.PickMarkup; + * viewer.getScreenshot(mode).then(data => console.log(data)); + * // {en} Take screenshot by box selecting an area. + * // {zh} 根据用户的框选截屏。 + * const mode = ScreenshotMode.BoxSelection; + * viewer.getScreenshot(mode).then(data => console.log(data)); + * // {en} Take screenshot of the whole view. + * // {zh} 全屏截屏。 + * const mode = ScreenshotMode.Default; + * viewer.getScreenshot(mode).then(data => console.log(data)); + * ``` + * @deprecated use ScreenshotPlugin instead. + */ + /** + * @description Compatible with older versions, use MeasurePlugin instead + * @internal + * @deprecated use MeasurePlugin instead + */ + get measurePlugin(): MeasurementPlugin | undefined; + /** + * @description {en} Activates one of "Distance", "Area" or "Angle" measurement + * @description {zh} 激活"距离", "面积" 或者 "角度"测量 + * @param type + * - "Distance", "Area" or "Angle" + * @example + * ``` typescript + * viewer.activateMeasurement(MeasurementType.Distance); + * ``` + * @deprecated use MeasurePlugin instead + */ + activateMeasurement(type: MeasurementType): void; + /** + * @description {en} Deactivates measurement. + * @description {zh} 退出测量。 + * @example + * ``` typescript + * viewer.deactivateMeasurement(); + * ``` + * @deprecated use MeasurePlugin instead + */ + deactivateMeasurement(): void; + /** + * @description {en} Gets active measurement type. + * @description {zh} 获取当前激活的测量类型。 + * @returns + * - "Distance", "Area" or "Angle" or undefined + * @example + * ``` typescript + * const measurementType = viewer.getActiveMeasurementType(); + * console.log(measurementType); + * ``` + * @deprecated use MeasurePlugin instead + */ + getActiveMeasurementType(): MeasurementType | undefined; + /** + * @description {en} Gets all measurements. + * @description {zh} 获取所有测量数据。 + * @returns + * - {en} measurement data array. + * - {zh} 测量数据数组。 + * @example + * ``` typescript + * const measurementData = viewer.getMeasurements(); + * console.log(measurementData); + * ``` + * @deprecated use MeasurePlugin instead + */ + getMeasurements(): MeasurementData[]; + /** + * @description {en} Cancels current measurement. This won't deactivate measurement, rather, you can start a new measurement. + * @description {zh} 取消当前的测量绘制。这并不会退出测量,用户可以开始一个新的测量。 + * @deprecated use MeasurePlugin instead + */ + cancelMeasurement(): void; + /** + * @description {en} Sets measurement data. + * @description {zh} 设置测量数据。 + * @param measurementData + * - {en} measurement data array. + * - {zh} 测量数据数组。 + * @example + * ``` typescript + * const measurementData = [{ + * type: "Distance", + * id: "c6ea70a3-ddb0-4dd0-87c8-bd2491936428", + * points: [[0, 1000], [5000, 1000]], + * }]; + * viewer.setMeasurements(measurementData); + * ``` + * @deprecated use MeasurePlugin instead + */ + setMeasurements(measurementData: MeasurementData[]): void; + /** + * Selects a measurement by id + * @internal + * @deprecated use MeasurePlugin instead + */ + selectMeasurement(id: string): void; + /** + * Unselects a measurement. + * @internal + * @deprecated use MeasurePlugin instead + */ + unselectMeasurement(): void; + /** + * @description {en} Removes a measurement by id. + * @description {zh} 根据id删除测量数据。 + * @param id + * - {en} Measurement data id. + * - {zh} 测量数据id。 + * @example + * ``` typescript + * const id = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428"; + * viewer.removeMeasurement(id); + * ``` + * @deprecated use MeasurePlugin instead + */ + removeMeasurement(id: string): void; + /** + * Sets a measurement's visibility. + * Note that, the markup should belong to active layout. You shouldn't update a markup of an inactive layout. + * @internal + * @deprecated use MeasurePlugin instead + */ + setMeasurementVisibility(id: string, visible: boolean): boolean; + /** + * @description {en} Clears measurement results. + * @description {zh} 清除测量结果。 + * @example + * ``` typescript + * viewer.clearMeasurements(); + * ``` + * @deprecated use MeasurePlugin instead + */ + clearMeasurements(): void; + /** markup start **/ + /** + * @internal + */ + getMarkupManager(): MarkupManager | undefined; + /** + * @description {en} Activates markup feature. + * @description {zh} 激活标注功能。 + * @param type + * - {en} markup type. + * - {zh} 标注类型。 + * @example + * ``` typescript + * const markupType = MarkupType.Arrow; + * viewer.activateMarkup(markupType); + * ``` + * @deprecated + */ + activateMarkup(type: MarkupType): void; + /** + * @description {en} Deactivates markup feature. + * @description {zh} 退出标注功能。 + * @example + * ``` typescript + * viewer.deactivateMarkup(); + * ``` + */ + deactivateMarkup(): void; + /** + * @description {en} Gets active markup type. + * @description {zh} 获取激活的标注类型。 + * @returns + * - {en} markup type. + * - {zh} 标注类型。 + * @example + * ``` typescript + * const markupType = viewer.getActiveMarkupType(); + * console.log(markupType); + * ``` + */ + getActiveMarkupType(): MarkupType | undefined; + /** + * Set markup stroke color + * @internal + */ + setMarkupLineColor(r: number, g: number, b: number, a: number): void; + /** + * @internal + */ + getMarkupLineColor(): number[] | undefined; + /** + * Set markup fill color + * @internal + */ + setMarkupFillColor(r: number, g: number, b: number, a: number): void; + /** + * @internal + */ + getMarkupFillColor(): number[] | undefined; + /** + * Set markup stroke line width + * @internal + */ + setMarkupLineWidth(lineWidth: number): void; + /** + * @internal + */ + getMarkupLineWidth(): number | undefined; + /** + * Set markup font size + * @internal + */ + setMarkupFontSize(fontSize: number): void; + /** + * @internal + */ + getMarkupFontSize(): number | undefined; + /** + * @description {en} Gets all markups. + * @description {zh} 获取所有标注数据。 + * @returns + * - {en} markup data array. + * - {zh} 标注数据数组。 + * @example + * ``` typescript + * const markupData = viewer.getMarkups(); + * console.log(markupData); + * ``` + */ + getMarkups(): MarkupData[]; + /** + * @description {en} Adds markups to active layout. + * @description {zh} 添加标注到当前布局。 + * @param markupDataArray + * - {en} markup data array. + * - {zh} 标注数据数组。 + * @example + * ``` typescript + * const markupData = [{ + * type: "ArrowMarkup", + * id: "c6ea70a3-ddb0-4dd0-87c8-bd2491936428", + * lineWidth: 2, + * strokeStyle: "#ff0000", + * fillStyle: "#ff000030", + * points: [[0, 0], [1000, 1000]], + * }]; + * viewer.setMarkups(markupData); + * ``` + */ + setMarkups(markupDataArray: MarkupData[]): void; + /** + * Sets a markup's visibility by id. + * Note that, the markup should belong to active layout. You shouldn't update a markup of an inactive layout. + * @internal + */ + setMarkupVisibility(id: string, visible: boolean): boolean; + /** + * @description {en} Updates a markup. + * @description {zh} 更新标注。 + * @param {MarkupData} markup + * - {en} markup data. + * - {zh} 标注数据。 + * @returns + * - {en} Whether update successfully, true means success, false means failure. + * - {zh} 是否更新成功,true表示成功,false表示失败。 + * @example + * ``` typescript + * const markupData = { + * type: "ArrowMarkup", + * id: "c6ea70a3-ddb0-4dd0-87c8-bd2491936428", + * lineWidth: 3, + * strokeStyle: "#ff0000", + * fillStyle: "#ff000030", + * points: [[0, 0], [1000, 1000]], + * }; + * viewer.updateMarkup(markupData); + */ + updateMarkup(markup: MarkupData): boolean; + /** + * @description {en} Removes a markup by markup id. + * @description {zh} 根据标注id删除标注。 + * @param {string} id + * - {en} markup id. + * - {zh} 标注id。 + * @returns + * - {en} Whether remove successfully, true means success, false means failure. + * - {zh} 是否删除成功,true表示成功,false表示失败。 + * @example + * ``` typescript + * const markupId = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428"; + * viewer.removeMarkup(markupId); + * ``` + */ + removeMarkup(id: string): boolean; + /** + * @description {en} Clears markups. + * @description {zh} 清除所有标注。 + * @example + * ``` typescript + * viewer.clearMarkups(); + * ``` + */ + clearMarkups(): void; + /** markup end **/ + /** + * Gets mouse hit result in world coordinate + * @example + * ``` typescript + * document.addEventListener("click", (event) => { + * const result = viewer.getHitResult(event); + * const loc = result?.location; + * if (loc) { + * console.log(`Clicked at x: ${loc[0]}, y: ${loc[1]}`); + * } + * }); + * ``` + * @internal + */ + getHitResult(event: MouseEvent | PointerEvent | EventInfo): Vector2 | undefined; + /** + * Gets hit result by Normalized Device Coordinates. + * Lower left coordinate: (-1, -1) + * Upper right coordinate: (1, 1) + */ + protected getHitResultByNdcCoordinate(coord: Vector2): Vector2 | undefined; + /** + * @description {en} Asks user to select a box area, and zooms to it. + * @description {zh} 询问用户选择一个框选区域,然后缩放到该区域。 + * @example + * ``` typescript + * viewer.zoomToRect(); + * ``` + */ + zoomToRect(): void; + /** + * @internal + */ + deactivateZoomRect(): void; + private getLayoutByName; + private getActiveLayoutInfo; + private getMsTransformMatrix; + private switchTransformMs; + private getLayoutExtentEx; + private getModelSpaceExtent; + private getLayoutExtent; + /** + * Shows objects for given layout, and hide any other layouts. + */ + private showLayoutObjects; + private getLayoutViewports; + private setMaterialUniforms; + /** + * Checks if a layer is frozen for viewport (VP Freeze) + */ + private isLayerFrozenForViewport; + private getFilteredViewports; + private generateObjectsByViewport; + private findSpatialFilter; + private getAnyMaterial; + private addSpatialFilterSection; + private getObjectsByBoundingBox; + private getDxfUnits; + private generateSectionsBySpatialFilter; + /** + * @description {en} resize viewer + * @description {zh} 重置视图大小 + * @param {number} width + * - {en} width of viewer + * - {zh} 视图宽度。 + * @param {number} height + * - {en} height of viewer + * - {zh} 视图高度。 + * @example + * ```typescript + * const width = 800; + * const height = 600; + * viewer.resize(width, height); + * ``` + */ + protected resize(width: number, height: number): void; + /** + * @internal + */ + getRaycaster(): THREE.Raycaster | undefined; + /** + * TODO: Remove it later. + * Gets raycast-able objects. + * Raycast-able objects should be visible objects and is snap object in scene. + */ + private getRaycastableObjects; + /** + * Gets the corresponding viewport by judging that the point is in the viewport + */ + private getViewportByPoint; + /** + * Gets raycast-able objects by mouseEvent. + * @internal + */ + getRaycastableObjectsByMouse(event?: EventInfo): THREE.Object3D[]; + /** + * Gets intersections by given mouse location. + * If no MouseEvent is passed in, use (0, 0) as the raycaster's origin. + */ + private getIntersections; + /** + * Handles mouse click event + */ + private handleMouseClick; + private selectDrawableByEvent; + /** + * Select or unselect an object. + * depthTest is turned off by default. The highlighting is more pronounced when objects cover each other. + */ + protected selectObject(object?: THREE.Object3D, depthTest?: boolean): void; + /** + * Clears the current selection + * @internal + */ + clearSelection(): void; + /** + * Makes camera fly to objects + */ + protected flyToObjects(objects: THREE.Object3D[]): void; + /** + * Make camera fly to an object + */ + protected flyToObject(object: THREE.Object3D): void; + /** + * Flies to current selected object if any + */ + protected flyToSelectedObject(): void; + /** + * Flies to a random object (by alt + r). + * It is useful when either the data is wrong or there is bug in program, + * then we cannot see anything in the scene! + */ + protected flyToRandomObject(): void; + /** + * Makes camera fly to target position with given lookAt position + * @param position camera's target position + * @param lookAt camera's new lookAt position + * @param targetCameraZoom camera's target zoom value + * @internal + */ + flyTo(position: THREE.Vector3, lookAt: THREE.Vector3, targetCameraZoom?: number, animate?: boolean): void; + /** + * Moves camera to target position + * @param position 2d position + * @internal + */ + goTo(position: Vector2, targetCameraZoom?: number, animate?: boolean): void; + /** + * @description {en} Moves camera to home view. + * @description {zh} 移动相机到主视图. + * @example + * ``` typescript + * viewer.goToHomeView(); + * ``` + */ + goToHomeView(): void; + /** + * @description {en} Zooms to specific bounding box. + * @description {zh} 缩放到指定的包围盒. + * @param bbox + * - {en} 2d bounding box + * - {zh} 2d 包围盒。 + * @example + * ``` typescript + * const box = { min: { x: 0, y: 0 }, max: { x: 10000, y: 10000} }; + * viewer.zoomToBBox(box); + * ``` + */ + zoomToBBox(bbox: Box2): void; + /** + * @description {en} Zooms to view extent. + * @description {zh} 缩放到视图范围. + * @example + * ``` typescript + * viewer.zoomToExtent(); + * ``` + */ + zoomToExtent(): void; + /** + * @description {en} Zooms to a compare change. + * @description {zh} 聚焦到图纸的一处变动。 + * @param changeId + * - {en} Change id, which is an incremental integer starts from 1. + * - {zh} 变动id,该id是从数字1开始自增的整数。 + * @example + * ``` typescript + * const changeId = 1; + * viewer.zoomToCompareChange(changeId); + * ``` + * @internal + * @deprecated use DxfCompareHelper2 instead + */ + zoomToCompareChange(changeId: number): void; + /** + * @description {en} Gets compare changes. + * @description {zh} 获取对比变动. + * @returns + * - {en} Compare changes. + * - {zh} 对比变动列表。 + * @example + * ``` typescript + * const changes = viewer.getCompareChanges(); + * console.log(changes); + * ``` + * @internal + * @deprecated use DxfCompareHelper2 instead + */ + getCompareChanges(): Record | undefined; + /** + * @description {en} Sets background color. + * @description {zh} 设置背景颜色。 + * @param r + * - {en} Red channel value between 0 and 1. + * - {zh} 红色通道值,介于 0 和 1 之间。 + * @param g + * - {en} Green channel value between 0 and 1. + * - {zh} 绿色通道值,介于 0 和 1 之间。 + * @param b + * - {en} Blue channel value between 0 and 1. + * -{zh} 蓝色通道值,介于 0 和 1 之间。 + * @example + * ``` typescript + * // {en} Sets background to gray + * // {zh} 设置背景为灰色 + * viewer.setBackgroundColor(0.5, 0.5, 0.5); + * ``` + */ + setBackgroundColor(r: number, g: number, b: number): void; + /** + * Gets LayoutInfo by layoutName. It creats LayoutInfo if doesn't exist. + */ + private getLayoutInfo; + /** + * Creates a ground plane which is much bigger than bbox. + */ + private updateGroundPlane; + /** + * Compute bounding box of loaded models for active layout + * @internal + */ + computeBoundingBox(): THREE.Box3; + /** + * Checks if an expected zoom value is valid, and adjust its value if necessary. + */ + private checkAndGetLimitedCameraZoom; + private getVisiblePixelSize; + private setLayoutHidableObjectArray; + private statObjects; + /** + * Updates hidable objects' visibility once camera.zoom changed. + */ + private updateHidableObjectsVisibility; + /** + * Updates raycaster threshold to a proper value, so user can easily pick points and lines + */ + private updateRaycasterThreshold; + /** + * Updates camera zoom value for shader materials, which are created in DxfLoader + */ + private updateCameraZoomUniform; +} diff --git a/demo/libs/types/core/viewers/Plugin.d.ts b/demo/libs/types/core/viewers/Plugin.d.ts index ae74890..4331461 100644 --- a/demo/libs/types/core/viewers/Plugin.d.ts +++ b/demo/libs/types/core/viewers/Plugin.d.ts @@ -1,30 +1,29 @@ -import { Event } from "../utils"; -import { type BaseViewer } from "./BaseViewer"; -/** - * Base plugin config. - */ -export interface PluginConfig { - /** - * ID for this Plugin, unique within its viewer. - */ - id: string; -} -/** - * Base plugin class. - */ -export declare abstract class Plugin = {}> extends Event { - readonly id: string; - protected viewer: BaseViewer; - /** - * Creates this Plugin and installs it into the given {@link Viewer}. - * - * @param {string} id ID for this plugin, unique among all plugins in the viewer. - * @param {Viewer} viewer The viewer. - * @param {Object} [cfg] Options - */ - constructor(viewer: BaseViewer, cfg: PluginConfig); - /** - * Destroys this Plugin and removes it from its viewer. - */ - destroy(): void; -} +import { Event } from "../utils"; +/** + * Base plugin config. + */ +export interface PluginConfig { + /** + * ID for this Plugin, unique within its viewer. + */ + id: string; +} +/** + * Base plugin class. + */ +export declare abstract class Plugin = {}> extends Event { + readonly id: string; + protected viewer: any; + /** + * Creates this Plugin and installs it into the given {@link Viewer}. + * + * @param {string} id ID for this plugin, unique among all plugins in the viewer. + * @param {Viewer} viewer The viewer. + * @param {Object} [cfg] Options + */ + constructor(viewer: any, cfg: PluginConfig); + /** + * Destroys this Plugin and removes it from its viewer. + */ + destroy(): void; +} diff --git a/demo/libs/types/core/viewers/SimplifiedBimViewer.d.ts b/demo/libs/types/core/viewers/SimplifiedBimViewer.d.ts index 2e202ff..f7b17e0 100644 --- a/demo/libs/types/core/viewers/SimplifiedBimViewer.d.ts +++ b/demo/libs/types/core/viewers/SimplifiedBimViewer.d.ts @@ -1,142 +1,142 @@ -import * as THREE from "three"; -import { Model3d, IsolateObjectsParam, ModelConfig } from "../../core/Configs"; -import { CameraControlsEx } from "../../core/controls/CameraControlsEx"; -/** - * @internal - */ -export declare enum ViewerMode { - Browser = 0, - Browserless = 1, - Headless = 2 -} -/** - * @internal - */ -export declare class SimplifiedBimViewer { - containerOrCanvas: HTMLDivElement | any; - glContext?: WebGLRenderingContext | WebGL2RenderingContext; - camera?: THREE.PerspectiveCamera; - scene: THREE.Scene; - renderer?: THREE.WebGLRenderer; - renderTarget?: THREE.WebGLRenderTarget; - controls?: CameraControlsEx; - selectedObject: any | undefined; - loadedModels: Model3d[]; - pmremGenerator?: THREE.PMREMGenerator; - private clock; - private viewerMode; - private raycaster?; - private savedMaterialsForOpacity?; - private jobCount; - private bbox; - private outlineMaterial; - private outlineRoot; - private transparentObjectIds; - private requestAnimationFrameHandle?; - constructor(containerOrCanvas: HTMLDivElement | any, viewerMode?: ViewerMode, glContext?: WebGLRenderingContext | WebGL2RenderingContext); - /** - * Initialize everything it needs - */ - init(): void; - private initScene; - private isBrowserlessMode; - private isBrowserMode; - private initRenderer; - private initCamera; - private initControls; - private initLights; - /** - * Initialize mouse/pointer events - */ - private initPointerEvents; - animate(): void; - destroy(): void; - loadLocalModel(url: string, modelCfg: ModelConfig, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * We don't plan to support onProgress really well in this class. - */ - loadModel(modelCfg: ModelConfig, onProgress?: (event: ProgressEvent) => void): Promise; - parseGltf(data: ArrayBuffer | string, modelCfg: ModelConfig, onSuccess: (object: THREE.Object3D) => void, onError?: (event: ErrorEvent) => void): void; - /** - * Applies options and add object to scene. - */ - applyOptionsAndAddToScene: (url: string, object: THREE.Object3D, modelCfg: ModelConfig, onProgress?: ((event: ProgressEvent) => void) | undefined) => Promise; - /** - * - * @param model - * @returns - * @description Add model data to viewer. - */ - addModel(model: Model3d): void; - /** - * We won't set a opacity or highlight directly, because that way will lose model's original opacity or color value - * @param isAdd is add or remove the opacity we added - * @param opacity - */ - addOrRemoveObjectOpacity(isAdd?: boolean, opacity?: number, includeObjectIds?: number[], excludeObjectIds?: number[]): void; - hasTransparentObject(): boolean; - /** - * Gets intersections by given mouse location. - * If no MouseEvent is passed in, use (0, 0) as the raycaster's origin. - */ - private getIntersections; - /** - * Handles mouse click event - */ - private handleMouseClick; - selectObject(object?: THREE.Object3D): void; - /** - * Clears the current selection - */ - clearSelection(): void; - /** - * Make camera fly to objects - */ - flyToObjects(objects: THREE.Object3D[]): void; - /** - * Make camera fly to an object - */ - flyToObject(object: THREE.Object3D): void; - /** - * Flies to current selected object if any - */ - flyToSelectedObject(): void; - /** - * Make camera fly to target position with given lookAt position - * @param position camera's target position - * @param lookAt camera's new lookAt position - */ - flyTo(position: THREE.Vector3 | number[], lookAt: THREE.Vector3 | number[], onCompleteCallback?: () => void): void; - goToHomeView(): void; - /** - * Sets environment for the scene. - * @param data Uint16Array of the hdr content - */ - setEnvironmentFromDataArray(data?: Uint16Array): void; - /** - * Tries to adjust camera near/far clip plane according to objects size in scene. - * Do this to avoid the case when objects are too small or big thus clipped! - */ - private tryAdjustCameraNearAndFar; - isolateObjects(params: IsolateObjectsParam[]): void; - private getMeshes; - /** - * Increases job count, and show spinner accordingly - */ - increaseJobCount(): void; - /** - * Decreases job count, and hide spinner accordingly - */ - decreaseJobCount(): void; - /** - * Compute bounding box of loaded models - */ - computeBoundingBox(): THREE.Box3; - getContext(): WebGLRenderingContext | WebGL2RenderingContext | undefined; - getCameraDirection(): { - x: number; - y: number; - z: number; - }; - setFov(fov: number): void; -} +import * as THREE from "three"; +import { Model3d, IsolateObjectsParam, ModelConfig } from "../../core/Configs"; +import { CameraControlsEx } from "../../core/controls/CameraControlsEx"; +/** + * @internal + */ +export declare enum ViewerMode { + Browser = 0, + Browserless = 1, + Headless = 2 +} +/** + * @internal + */ +export declare class SimplifiedBimViewer { + containerOrCanvas: HTMLDivElement | any; + glContext?: WebGLRenderingContext | WebGL2RenderingContext; + camera?: THREE.PerspectiveCamera; + scene: THREE.Scene; + renderer?: THREE.WebGLRenderer; + renderTarget?: THREE.WebGLRenderTarget; + controls?: CameraControlsEx; + selectedObject: any | undefined; + loadedModels: Model3d[]; + pmremGenerator?: THREE.PMREMGenerator; + private clock; + private viewerMode; + private raycaster?; + private savedMaterialsForOpacity?; + private jobCount; + private bbox; + private outlineMaterial; + private outlineRoot; + private transparentObjectIds; + private requestAnimationFrameHandle?; + constructor(containerOrCanvas: HTMLDivElement | any, viewerMode?: ViewerMode, glContext?: WebGLRenderingContext | WebGL2RenderingContext); + /** + * Initialize everything it needs + */ + init(): void; + private initScene; + private isBrowserlessMode; + private isBrowserMode; + private initRenderer; + private initCamera; + private initControls; + private initLights; + /** + * Initialize mouse/pointer events + */ + private initPointerEvents; + animate(): void; + destroy(): void; + loadLocalModel(url: string, modelCfg: ModelConfig, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * We don't plan to support onProgress really well in this class. + */ + loadModel(modelCfg: ModelConfig, onProgress?: (event: ProgressEvent) => void): Promise; + parseGltf(data: ArrayBuffer | string, modelCfg: ModelConfig, onSuccess: (object: THREE.Object3D) => void, onError?: (event: ErrorEvent) => void): void; + /** + * Applies options and add object to scene. + */ + applyOptionsAndAddToScene: (url: string, object: THREE.Object3D, modelCfg: ModelConfig, onProgress?: ((event: ProgressEvent) => void) | undefined) => Promise; + /** + * + * @param model + * @returns + * @description Add model data to viewer. + */ + addModel(model: Model3d): void; + /** + * We won't set a opacity or highlight directly, because that way will lose model's original opacity or color value + * @param isAdd is add or remove the opacity we added + * @param opacity + */ + addOrRemoveObjectOpacity(isAdd?: boolean, opacity?: number, includeObjectIds?: number[], excludeObjectIds?: number[]): void; + hasTransparentObject(): boolean; + /** + * Gets intersections by given mouse location. + * If no MouseEvent is passed in, use (0, 0) as the raycaster's origin. + */ + private getIntersections; + /** + * Handles mouse click event + */ + private handleMouseClick; + selectObject(object?: THREE.Object3D): void; + /** + * Clears the current selection + */ + clearSelection(): void; + /** + * Make camera fly to objects + */ + flyToObjects(objects: THREE.Object3D[]): void; + /** + * Make camera fly to an object + */ + flyToObject(object: THREE.Object3D): void; + /** + * Flies to current selected object if any + */ + flyToSelectedObject(): void; + /** + * Make camera fly to target position with given lookAt position + * @param position camera's target position + * @param lookAt camera's new lookAt position + */ + flyTo(position: THREE.Vector3 | number[], lookAt: THREE.Vector3 | number[], onCompleteCallback?: () => void): void; + goToHomeView(): void; + /** + * Sets environment for the scene. + * @param data Uint16Array of the hdr content + */ + setEnvironmentFromDataArray(data?: Uint16Array): void; + /** + * Tries to adjust camera near/far clip plane according to objects size in scene. + * Do this to avoid the case when objects are too small or big thus clipped! + */ + private tryAdjustCameraNearAndFar; + isolateObjects(params: IsolateObjectsParam[]): void; + private getMeshes; + /** + * Increases job count, and show spinner accordingly + */ + increaseJobCount(): void; + /** + * Decreases job count, and hide spinner accordingly + */ + decreaseJobCount(): void; + /** + * Compute bounding box of loaded models + */ + computeBoundingBox(): THREE.Box3; + getContext(): WebGLRenderingContext | WebGL2RenderingContext | undefined; + getCameraDirection(): { + x: number; + y: number; + z: number; + }; + setFov(fov: number): void; +} diff --git a/demo/libs/types/core/viewers/VRViewer.d.ts b/demo/libs/types/core/viewers/VRViewer.d.ts index c283d01..b09d172 100644 --- a/demo/libs/types/core/viewers/VRViewer.d.ts +++ b/demo/libs/types/core/viewers/VRViewer.d.ts @@ -1,229 +1,229 @@ -import { CSS2DObject, CSS2DRenderer } from "three/examples/jsm/renderers/CSS2DRenderer.js"; -import { CSS3DRenderer } from "three/examples/jsm/renderers/CSS3DRenderer.js"; -import { Model3d, CameraConfig, Hotpoint, ModelConfig, Panorama, VRViewerConfig, VRViewpoint } from "../../core/Configs"; -import { Vector3 } from "../../core/Constants"; -import { BaseViewer, ViewerName } from "../../core/viewers/BaseViewer"; -import { BaseVRMesh } from "../../core/vr"; -interface ViewpointAssets { - panoramas: [ - { - id: string; - box: BaseVRMesh; - } - ]; - css2dObjects: CSS2DObject[]; -} -export declare class VRViewer extends BaseViewer { - /** - * @internal - */ - name: ViewerName; - private timer; - /** - * @internal - */ - loadedModels: Model3d[]; - /** - * @internal - */ - css2dRenderer?: CSS2DRenderer; - /** - * @internal - */ - css3dRenderer?: CSS3DRenderer; - /** - * @internal - */ - minFov: number; - /** - * @internal - */ - maxFov: number; - private raycaster; - private autoRotate; - private events; - private isMousePressing; - private settings; - private viewpoints; - private activeViewpointId; - private activePanoramaId; - viewpointAssetsMap: Map; - private controlsHelper?; - private cameraUpdateInterval?; - private fianlCameraPosition?; - private finalCameraTarget?; - private loadingPanos; - onHotpointClicked?: (hotpoint: Hotpoint) => void; - handleDragEnd?: () => void; - constructor(vrViewerCfg: VRViewerConfig, cameraCfg?: CameraConfig); - /** - * Initialize everything it needs - */ - private init; - private initScene; - private initRenderer; - private initCamera; - private initControls; - private onKeyDown; - private initLights; - private initInputManager; - private initEvents; - private initOthers; - protected animate(): void; - clearAllCachedPanoramas(): void; - destroy(): void; - private onResize; - private onMouseWheel; - private updateFov; - setMinAndMaxFov(minFov: number, maxFov: number): void; - protected resize(width: number, height: number): void; - /** - * Enables/Disables orbit controls to automatically rotate. - */ - enableAutoRotate(enable: boolean): void; - /** - * Sets orbit controls' rotate speed. - * It requires (3600 / speed / fps) seconds for a around - * When speed is 1, 60fps, it requires 60s; - * When speed is 2, 60fps, it requires 30s; - */ - setAutoRotateSpeed(speed?: number): void; - /** - * Sets camera fov. Usually 45 - 90. - */ - setCameraFov(fov?: number): void; - /** - * Calls addEventListener of a node. - * This makes sure to removeEventListener properly - * @param node window, dom element, etc. - * @param type 'change', 'keydown', etc. - * @param func event callback - */ - private addEvent; - /** - * Sets camera position and direction. - */ - setCameraPositionAndDirection(position: Vector3 | number[], direction?: Vector3 | number[], animate?: boolean): void; - /** - * Gets camera position and direction. - */ - getCameraPositionAndDirection(): { - position: Vector3; - direction: Vector3; - } | undefined; - /** - * Gets camera's fov value. - */ - getCameraFov(): number | undefined; - /** - * Sets a group of viewpoints - */ - setViewpoints(viewpoints: VRViewpoint[]): void; - /** - * Loads a 3d model. - * @internal - */ - loadModel(modelCfg: ModelConfig, onProgress?: (event: ProgressEvent) => void): Promise; - /** - * Sets a model's visibility. - * @throws Throws exception if modelId doesn't exist. - * @internal - */ - setModelVisibility(modelId: string, visible: boolean): void; - /** - * Applies options and add object to scene. - */ - private applyOptionsAndAddToScene; - /** - * - * @param model - * @returns - * @description Add model data to viewer. - */ - addModel(model: Model3d): void; - /** - * Adds a panorama to a viewpoint - */ - addPanorama(viewpointId: string, panorama: Panorama): void; - /** - * Checks if a panorama exists in a viewpoint - */ - findPanorama(viewpointId: string, panoramaId: string): Panorama | undefined; - /** - * Sets hotpoints visibility for one or all viewpoints - * @param visible true or false - * @param viewpointId target viewpointId. Will apply to all if no viewpointId is specified - * @param hotpointIds target hotpointIds. Will apply to all if no hotpointIds is specified - */ - setHotpointsVisibility(visible: boolean, viewpointId?: string, hotpointIds?: string[]): void; - /** - * Adds hotpoint to active viewpoint - */ - addHotpoints(hotpoints: Hotpoint[]): void; - /** - * Removes hotpoint of active viewpoint - */ - removeHotpoints(hotpointIds: string[]): void; - /** - * @deprecated use activatePanoramaById() instead - */ - activeViewpointById(viewpointId: string, animate?: boolean, onSuccess?: (viewpoint: VRViewpoint) => void, onError?: (event: ErrorEvent) => void): void; - /** - * Activates a panorama by viewpointId and panoramaId - */ - activatePanoramaById(viewpointId: string, panoramaId: string, setCameraToInitialDirection?: boolean, animate?: boolean, onSuccess?: (viewpoint: VRViewpoint) => void, onError?: (event: ErrorEvent) => void): void; - removeCachedPanoramas(excludePanoramas?: Record): void; - /** - * Unlimits controls and show all assets. This is useful for debugging. - * @internal - */ - unlimitControlsAndShowAssets(showAllHotpoints?: boolean): void; - private relocateAnchorIfTooCloseToCamera; - /** - * Activates a viewpoint - */ - private activatePanorama; - /** - * Creates box by 1, 6 or 24 images. - * For 6/24 images, caller must make sure the order is correct. The reason is that, - * the url can be really complex that we cannot order them here! - * 6 images must be in order of: right, left, top, bottom, front, back - * 24 images must be in order of: 4 for right(1_1, 1_2, 2_1, 2_2), 4 for left, top, bottom, front, back... - */ - private createBoxByImageOrImages; - /** - * Creates a box with proper size and texture from an image. - */ - private createBoxByImage; - /** - * Creates a box with proper size and texture from 6 images. - */ - private createBoxBy6Images; - private createBoxBy24Images; - /** - * Gets intersection by given mouse location. - * If no MouseEvent is passed in, use (0, 0) as the raycaster's origin. - */ - private getIntersection; - private fadeIn; - private fadeOut; - private handleCameraUpdateInterval; - /** - * Gets mouse hit result - */ - getHitResult(event: MouseEvent): { - location: Vector3 | null; - }; - /** - * Makes camera look to specific position - * @param position target position to look to - */ - lookToPosition(position: [number, number, number]): void; - /** - * Merges leaf nodes of given object. - * If objects' materials are the same, they can be merged. - * @param object - */ - private merge; -} -export {}; +import { CSS2DObject, CSS2DRenderer } from "three/examples/jsm/renderers/CSS2DRenderer.js"; +import { CSS3DRenderer } from "three/examples/jsm/renderers/CSS3DRenderer.js"; +import { Model3d, CameraConfig, Hotpoint, ModelConfig, Panorama, VRViewerConfig, VRViewpoint } from "../../core/Configs"; +import { Vector3 } from "../../core/Constants"; +import { BaseViewer, ViewerName } from "../../core/viewers/BaseViewer"; +import { BaseVRMesh } from "../../core/vr"; +interface ViewpointAssets { + panoramas: [ + { + id: string; + box: BaseVRMesh; + } + ]; + css2dObjects: CSS2DObject[]; +} +export declare class VRViewer extends BaseViewer { + /** + * @internal + */ + name: ViewerName; + private timer; + /** + * @internal + */ + loadedModels: Model3d[]; + /** + * @internal + */ + css2dRenderer?: CSS2DRenderer; + /** + * @internal + */ + css3dRenderer?: CSS3DRenderer; + /** + * @internal + */ + minFov: number; + /** + * @internal + */ + maxFov: number; + private raycaster; + private autoRotate; + private events; + private isMousePressing; + private settings; + private viewpoints; + private activeViewpointId; + private activePanoramaId; + viewpointAssetsMap: Map; + private controlsHelper?; + private cameraUpdateInterval?; + private fianlCameraPosition?; + private finalCameraTarget?; + private loadingPanos; + onHotpointClicked?: (hotpoint: Hotpoint) => void; + handleDragEnd?: () => void; + constructor(vrViewerCfg: VRViewerConfig, cameraCfg?: CameraConfig); + /** + * Initialize everything it needs + */ + private init; + private initScene; + private initRenderer; + private initCamera; + private initControls; + private onKeyDown; + private initLights; + private initInputManager; + private initEvents; + private initOthers; + protected animate(): void; + clearAllCachedPanoramas(): void; + destroy(): void; + private onResize; + private onMouseWheel; + private updateFov; + setMinAndMaxFov(minFov: number, maxFov: number): void; + protected resize(width: number, height: number): void; + /** + * Enables/Disables orbit controls to automatically rotate. + */ + enableAutoRotate(enable: boolean): void; + /** + * Sets orbit controls' rotate speed. + * It requires (3600 / speed / fps) seconds for a around + * When speed is 1, 60fps, it requires 60s; + * When speed is 2, 60fps, it requires 30s; + */ + setAutoRotateSpeed(speed?: number): void; + /** + * Sets camera fov. Usually 45 - 90. + */ + setCameraFov(fov?: number): void; + /** + * Calls addEventListener of a node. + * This makes sure to removeEventListener properly + * @param node window, dom element, etc. + * @param type 'change', 'keydown', etc. + * @param func event callback + */ + private addEvent; + /** + * Sets camera position and direction. + */ + setCameraPositionAndDirection(position: Vector3 | number[], direction?: Vector3 | number[], animate?: boolean): void; + /** + * Gets camera position and direction. + */ + getCameraPositionAndDirection(): { + position: Vector3; + direction: Vector3; + } | undefined; + /** + * Gets camera's fov value. + */ + getCameraFov(): number | undefined; + /** + * Sets a group of viewpoints + */ + setViewpoints(viewpoints: VRViewpoint[]): void; + /** + * Loads a 3d model. + * @internal + */ + loadModel(modelCfg: ModelConfig, onProgress?: (event: ProgressEvent) => void): Promise; + /** + * Sets a model's visibility. + * @throws Throws exception if modelId doesn't exist. + * @internal + */ + setModelVisibility(modelId: string, visible: boolean): void; + /** + * Applies options and add object to scene. + */ + private applyOptionsAndAddToScene; + /** + * + * @param model + * @returns + * @description Add model data to viewer. + */ + addModel(model: Model3d): void; + /** + * Adds a panorama to a viewpoint + */ + addPanorama(viewpointId: string, panorama: Panorama): void; + /** + * Checks if a panorama exists in a viewpoint + */ + findPanorama(viewpointId: string, panoramaId: string): Panorama | undefined; + /** + * Sets hotpoints visibility for one or all viewpoints + * @param visible true or false + * @param viewpointId target viewpointId. Will apply to all if no viewpointId is specified + * @param hotpointIds target hotpointIds. Will apply to all if no hotpointIds is specified + */ + setHotpointsVisibility(visible: boolean, viewpointId?: string, hotpointIds?: string[]): void; + /** + * Adds hotpoint to active viewpoint + */ + addHotpoints(hotpoints: Hotpoint[]): void; + /** + * Removes hotpoint of active viewpoint + */ + removeHotpoints(hotpointIds: string[]): void; + /** + * @deprecated use activatePanoramaById() instead + */ + activeViewpointById(viewpointId: string, animate?: boolean, onSuccess?: (viewpoint: VRViewpoint) => void, onError?: (event: ErrorEvent) => void): void; + /** + * Activates a panorama by viewpointId and panoramaId + */ + activatePanoramaById(viewpointId: string, panoramaId: string, setCameraToInitialDirection?: boolean, animate?: boolean, onSuccess?: (viewpoint: VRViewpoint) => void, onError?: (event: ErrorEvent) => void): void; + removeCachedPanoramas(excludePanoramas?: Record): void; + /** + * Unlimits controls and show all assets. This is useful for debugging. + * @internal + */ + unlimitControlsAndShowAssets(showAllHotpoints?: boolean): void; + private relocateAnchorIfTooCloseToCamera; + /** + * Activates a viewpoint + */ + private activatePanorama; + /** + * Creates box by 1, 6 or 24 images. + * For 6/24 images, caller must make sure the order is correct. The reason is that, + * the url can be really complex that we cannot order them here! + * 6 images must be in order of: right, left, top, bottom, front, back + * 24 images must be in order of: 4 for right(1_1, 1_2, 2_1, 2_2), 4 for left, top, bottom, front, back... + */ + private createBoxByImageOrImages; + /** + * Creates a box with proper size and texture from an image. + */ + private createBoxByImage; + /** + * Creates a box with proper size and texture from 6 images. + */ + private createBoxBy6Images; + private createBoxBy24Images; + /** + * Gets intersection by given mouse location. + * If no MouseEvent is passed in, use (0, 0) as the raycaster's origin. + */ + private getIntersection; + private fadeIn; + private fadeOut; + private handleCameraUpdateInterval; + /** + * Gets mouse hit result + */ + getHitResult(event: MouseEvent): { + location: Vector3 | null; + }; + /** + * Makes camera look to specific position + * @param position target position to look to + */ + lookToPosition(position: [number, number, number]): void; + /** + * Merges leaf nodes of given object. + * If objects' materials are the same, they can be merged. + * @param object + */ + private merge; +} +export {}; diff --git a/demo/libs/types/core/viewers/ViewerEvent.d.ts b/demo/libs/types/core/viewers/ViewerEvent.d.ts index c1a29ba..060de70 100644 --- a/demo/libs/types/core/viewers/ViewerEvent.d.ts +++ b/demo/libs/types/core/viewers/ViewerEvent.d.ts @@ -1,87 +1,87 @@ -/** - * Viewer events - * TODO: dxf event and bim event - */ -export declare enum ViewerEvent { - /** - * Triggered when click viewer - */ - MouseClicked = "MouseClicked", - /** - * Triggered when layout is changed. - * It is specific for DxfViewer. - */ - LayoutChanged = "LayoutChanged", - /** - * @internal - * TODO:bimviewer need too. - * Triggered when a model is loaded. - */ - ModelLoaded = "ModelLoaded", - /** - * Triggered before rendered. - */ - BeforeRender = "BeforeRender", - /** - * Triggered when rendered - * @internal - */ - AfterRender = "AfterRender", - /** - * Triggered when animate() is executed. - * @internal - */ - OnAnimate = "OnAnimate", - /** - * Triggered when bimviewer switch camera - * @internal - */ - CameraChanged = "CameraChanged", - /** - * Triggered when box select activated - */ - BoxSelectActivated = "BoxSelectActivated", - /** - * Triggered when box select deactivated - */ - BoxSelectDeactivated = "BoxSelectDeactivated", - /** - * Triggered when pick markup activated - */ - PickMarkupActivated = "PickMarkupActivated", - /** - * Triggered when pick markup deactivated - */ - PickMarkupDeactivated = "PickMarkupDeactivated", - MarkupActivated = "MarkupActivated", - /** - * Triggered when markup feature is deactivated - */ - MarkupDeactivated = "MarkupDeactivated", - /** - * Triggered when a markup is added - */ - MarkupAdded = "MarkupAdded", - /** - * Triggered when a markup is updated - */ - MarkupUpdated = "MarkupUpdated", - /** - * Triggered when a markup is removed - */ - MarkupRemoved = "MarkupRemoved", - /** - * Triggered before a markup is being removed - */ - BeforeRemoveMarkup = "BeforeRemoveMarkup", - MeasurementActivated = "MeasurementActivated", - MeasurementDeactivated = "MeasurementDeactivated", - /** - * Triggered when a measure is added - */ - MeasurementAdded = "MeasurementAdded", - /** - * Triggered when a measure is removed - */ - MeasurementRemoved = "MeasurementRemoved" -} +/** + * Viewer events + * TODO: dxf event and bim event + */ +export declare enum ViewerEvent { + /** + * Triggered when click viewer + */ + MouseClicked = "MouseClicked", + /** + * Triggered when layout is changed. + * It is specific for DxfViewer. + */ + LayoutChanged = "LayoutChanged", + /** + * @internal + * TODO:bimviewer need too. + * Triggered when a model is loaded. + */ + ModelLoaded = "ModelLoaded", + /** + * Triggered before rendered. + */ + BeforeRender = "BeforeRender", + /** + * Triggered when rendered + * @internal + */ + AfterRender = "AfterRender", + /** + * Triggered when animate() is executed. + * @internal + */ + OnAnimate = "OnAnimate", + /** + * Triggered when bimviewer switch camera + * @internal + */ + CameraChanged = "CameraChanged", + /** + * Triggered when box select activated + */ + BoxSelectActivated = "BoxSelectActivated", + /** + * Triggered when box select deactivated + */ + BoxSelectDeactivated = "BoxSelectDeactivated", + /** + * Triggered when pick markup activated + */ + PickMarkupActivated = "PickMarkupActivated", + /** + * Triggered when pick markup deactivated + */ + PickMarkupDeactivated = "PickMarkupDeactivated", + MarkupActivated = "MarkupActivated", + /** + * Triggered when markup feature is deactivated + */ + MarkupDeactivated = "MarkupDeactivated", + /** + * Triggered when a markup is added + */ + MarkupAdded = "MarkupAdded", + /** + * Triggered when a markup is updated + */ + MarkupUpdated = "MarkupUpdated", + /** + * Triggered when a markup is removed + */ + MarkupRemoved = "MarkupRemoved", + /** + * Triggered before a markup is being removed + */ + BeforeRemoveMarkup = "BeforeRemoveMarkup", + MeasurementActivated = "MeasurementActivated", + MeasurementDeactivated = "MeasurementDeactivated", + /** + * Triggered when a measure is added + */ + MeasurementAdded = "MeasurementAdded", + /** + * Triggered when a measure is removed + */ + MeasurementRemoved = "MeasurementRemoved" +} diff --git a/demo/libs/types/core/viewers/index.d.ts b/demo/libs/types/core/viewers/index.d.ts index e5342d3..c1af4bd 100644 --- a/demo/libs/types/core/viewers/index.d.ts +++ b/demo/libs/types/core/viewers/index.d.ts @@ -1,7 +1,7 @@ -export * from "./BaseViewer"; -export * from "./BimViewer"; -export * from "./DxfViewer"; -export * from "./Plugin"; -export * from "./SimplifiedBimViewer"; -export * from "./VRViewer"; -export * from "./ViewerEvent"; +export * from "./BaseViewer"; +export * from "./BimViewer"; +export * from "./DxfViewer"; +export * from "./Plugin"; +export * from "./SimplifiedBimViewer"; +export * from "./VRViewer"; +export * from "./ViewerEvent"; diff --git a/demo/libs/types/core/vr/BaseVRMesh.d.ts b/demo/libs/types/core/vr/BaseVRMesh.d.ts index 1c9fd68..6a1592d 100644 --- a/demo/libs/types/core/vr/BaseVRMesh.d.ts +++ b/demo/libs/types/core/vr/BaseVRMesh.d.ts @@ -1,37 +1,37 @@ -import * as THREE from "three"; -/** - * The base class of vr mesh. - */ -export declare class BaseVRMesh extends THREE.Group { - protected textureLoader: THREE.TextureLoader; - protected images: string[]; - protected mesh?: THREE.Object3D; - protected thumbnailImages?: string[]; - protected thumbnailMesh?: THREE.Mesh; - protected size: number; - private fadingInInterval?; - private fadingOutInterval?; - constructor(images: string[], thumbnailImages?: string[], size?: number); - /** - * Fades in by changing its opacity - */ - fadeIn(durationInMs?: number): void; - protected materialEquals(materials1: THREE.Material[], materials2: THREE.Material[]): boolean; - /** - * Fades out by changing its opacity. - * In the meantime, will dynamically change its scale. We do this because there is - * bug in threejs that when two or more pictures are transparent, it may render improperly! - */ - fadeOut(durationInMs?: number): void; - /** - * Clears existing fadeIn/fadeOut intervals if any - */ - private clearFading; - protected getMaterials(): THREE.Material[]; - protected create(): void; - protected createThumbnailMesh(size: number): Promise; - protected loadTextures(images: string[]): THREE.Texture[]; - protected loadTexturesAsync(images: string[]): Promise; - destroyMesh(mesh: THREE.Mesh): void; - destroy(): void; -} +import * as THREE from "three"; +/** + * The base class of vr mesh. + */ +export declare class BaseVRMesh extends THREE.Group { + protected textureLoader: THREE.TextureLoader; + protected images: string[]; + protected mesh?: THREE.Object3D; + protected thumbnailImages?: string[]; + protected thumbnailMesh?: THREE.Mesh; + protected size: number; + private fadingInInterval?; + private fadingOutInterval?; + constructor(images: string[], thumbnailImages?: string[], size?: number); + /** + * Fades in by changing its opacity + */ + fadeIn(durationInMs?: number): void; + protected materialEquals(materials1: THREE.Material[], materials2: THREE.Material[]): boolean; + /** + * Fades out by changing its opacity. + * In the meantime, will dynamically change its scale. We do this because there is + * bug in threejs that when two or more pictures are transparent, it may render improperly! + */ + fadeOut(durationInMs?: number): void; + /** + * Clears existing fadeIn/fadeOut intervals if any + */ + private clearFading; + protected getMaterials(): THREE.Material[]; + protected create(): void; + protected createThumbnailMesh(size: number): Promise; + protected loadTextures(images: string[]): THREE.Texture[]; + protected loadTexturesAsync(images: string[]): Promise; + destroyMesh(mesh: THREE.Mesh): void; + destroy(): void; +} diff --git a/demo/libs/types/core/vr/VRCube.d.ts b/demo/libs/types/core/vr/VRCube.d.ts index 1bf13ae..1c72624 100644 --- a/demo/libs/types/core/vr/VRCube.d.ts +++ b/demo/libs/types/core/vr/VRCube.d.ts @@ -1,12 +1,12 @@ -import { BaseVRMesh } from "./BaseVRMesh"; -/** - * A cube contains 6 planes - * "r" | "l" | "u" | "d" | "f" | "b": means left, right, up, down, front, back - * x, -x, y, -y, z, -z, aka, right, left, up/top, down/bottom, front, back - */ -export declare class VRCube extends BaseVRMesh { - constructor(images: string[], thumbnailImages?: string[], size?: number); - create(): Promise; - private updateMesh; - protected createMesh(): Promise; -} +import { BaseVRMesh } from "./BaseVRMesh"; +/** + * A cube contains 6 planes + * "r" | "l" | "u" | "d" | "f" | "b": means left, right, up, down, front, back + * x, -x, y, -y, z, -z, aka, right, left, up/top, down/bottom, front, back + */ +export declare class VRCube extends BaseVRMesh { + constructor(images: string[], thumbnailImages?: string[], size?: number); + create(): Promise; + private updateMesh; + protected createMesh(): Promise; +} diff --git a/demo/libs/types/core/vr/VRCube24Faces.d.ts b/demo/libs/types/core/vr/VRCube24Faces.d.ts index ef08b67..d0d8a3e 100644 --- a/demo/libs/types/core/vr/VRCube24Faces.d.ts +++ b/demo/libs/types/core/vr/VRCube24Faces.d.ts @@ -1,44 +1,44 @@ -import { BaseVRMesh } from "./BaseVRMesh"; -/** - * A cube contains 6 planes, each plane contains 4 sub-planes as bellow: - * ratio, 1 : 1 - * width0 : width1 - * ______________________ - * | | | - * | 1024x1024 | | - * | _1_1.jpg | _1_2.jpg | - * |___________|__________| - * | | | - * | | | - * | _2_1.jpg | _2_2.jpg | - * |___________|__________| - * - * ratio, 4 : 1 - * width0 : width1 - * ________________ - * | | | - * | 1024x1024 | | - * | _1_1.jpg | | _1_2.jpg - * |___________|____| - * | | | 256x256 - * |___________|____| _2_2.jpg - * _2_1.jpg - * - * An example of image name is l1_b_1_2.jpg - * l: level; - * "r" | "l" | "u" | "d" | "f" | "b": means left, right, up, down, front, back - * x, -x, y, -y, z, -z, aka, right, left, up/top, down/bottom, front, back - */ -export declare class VRCube24Faces extends BaseVRMesh { - private ratio; - private subPlaneWidth0; - private subPlaneWidth1; - /** - * @param images must be in order of right, left, up/top, down/bottom, front, back - * And the 4 images for each side, must be in order of 1_1, 1_2, 2_1, 2_2. - */ - constructor(images: string[], thumbnailImages?: string[], size?: number); - create(): Promise; - protected createMesh(): Promise; - private createPlaneOfAFace; -} +import { BaseVRMesh } from "./BaseVRMesh"; +/** + * A cube contains 6 planes, each plane contains 4 sub-planes as bellow: + * ratio, 1 : 1 + * width0 : width1 + * ______________________ + * | | | + * | 1024x1024 | | + * | _1_1.jpg | _1_2.jpg | + * |___________|__________| + * | | | + * | | | + * | _2_1.jpg | _2_2.jpg | + * |___________|__________| + * + * ratio, 4 : 1 + * width0 : width1 + * ________________ + * | | | + * | 1024x1024 | | + * | _1_1.jpg | | _1_2.jpg + * |___________|____| + * | | | 256x256 + * |___________|____| _2_2.jpg + * _2_1.jpg + * + * An example of image name is l1_b_1_2.jpg + * l: level; + * "r" | "l" | "u" | "d" | "f" | "b": means left, right, up, down, front, back + * x, -x, y, -y, z, -z, aka, right, left, up/top, down/bottom, front, back + */ +export declare class VRCube24Faces extends BaseVRMesh { + private ratio; + private subPlaneWidth0; + private subPlaneWidth1; + /** + * @param images must be in order of right, left, up/top, down/bottom, front, back + * And the 4 images for each side, must be in order of 1_1, 1_2, 2_1, 2_2. + */ + constructor(images: string[], thumbnailImages?: string[], size?: number); + create(): Promise; + protected createMesh(): Promise; + private createPlaneOfAFace; +} diff --git a/demo/libs/types/core/vr/VRSphere.d.ts b/demo/libs/types/core/vr/VRSphere.d.ts index 59099a9..6cc89b7 100644 --- a/demo/libs/types/core/vr/VRSphere.d.ts +++ b/demo/libs/types/core/vr/VRSphere.d.ts @@ -1,9 +1,9 @@ -import { BaseVRMesh } from "./BaseVRMesh"; -/** - * A sphere that maps the one image. More than one may be included later. - */ -export declare class VRSphere extends BaseVRMesh { - constructor(images: string[], thumbnailImages?: string[], size?: number); - create(): Promise; - protected createMesh(): Promise; -} +import { BaseVRMesh } from "./BaseVRMesh"; +/** + * A sphere that maps the one image. More than one may be included later. + */ +export declare class VRSphere extends BaseVRMesh { + constructor(images: string[], thumbnailImages?: string[], size?: number); + create(): Promise; + protected createMesh(): Promise; +} diff --git a/demo/libs/types/core/vr/index.d.ts b/demo/libs/types/core/vr/index.d.ts index 74d5a5e..fd24c88 100644 --- a/demo/libs/types/core/vr/index.d.ts +++ b/demo/libs/types/core/vr/index.d.ts @@ -1,4 +1,4 @@ -export * from "./BaseVRMesh"; -export * from "./VRCube"; -export * from "./VRCube24Faces"; -export * from "./VRSphere"; +export * from "./BaseVRMesh"; +export * from "./VRCube"; +export * from "./VRCube24Faces"; +export * from "./VRSphere"; diff --git a/demo/libs/types/core/webcam/WebCam.d.ts b/demo/libs/types/core/webcam/WebCam.d.ts index 36652fb..ae63d73 100644 --- a/demo/libs/types/core/webcam/WebCam.d.ts +++ b/demo/libs/types/core/webcam/WebCam.d.ts @@ -1,28 +1,28 @@ -import * as THREE from "three"; -/** - * This class is just a demo yet - * Reference to https://sbcode.net/threejs/webcam/ - * @internal - */ -export declare class WebCam { - private webcamCanvas; - private webcam; - private canvasCtx; - private webcamTexture; - private shaderMaterial; - readonly vertexShader = "\n varying vec2 vUv;\n void main( void ) {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }"; - readonly fragmentShader = "\n uniform vec3 keyColor;\n uniform float similarity;\n uniform float smoothness;\n varying vec2 vUv;\n uniform sampler2D map;\n void main() {\n vec4 videoColor = texture2D(map, vUv);\n\n float Y1 = 0.299 * keyColor.r + 0.587 * keyColor.g + 0.114 * keyColor.b;\n float Cr1 = keyColor.r - Y1;\n float Cb1 = keyColor.b - Y1;\n \n float Y2 = 0.299 * videoColor.r + 0.587 * videoColor.g + 0.114 * videoColor.b;\n float Cr2 = videoColor.r - Y2; \n float Cb2 = videoColor.b - Y2; \n \n float blend = smoothstep(similarity, similarity + smoothness, distance(vec2(Cr2, Cb2), vec2(Cr1, Cb1)));\n gl_FragColor = vec4(videoColor.rgb, videoColor.a * blend); \n }"; - constructor(); - /** - * Returns THREE.ShaderMaterial that can be used for PlaneGeometry, Mesh, etc. - */ - getShaderMaterial(): THREE.ShaderMaterial; - /** - * Creates a plane to display webcam stream - */ - createWebCamPlane(width?: number, height?: number): THREE.Mesh; - /** - * This should be called in renderer's animate method - */ - animate(): void; -} +import * as THREE from "three"; +/** + * This class is just a demo yet + * Reference to https://sbcode.net/threejs/webcam/ + * @internal + */ +export declare class WebCam { + private webcamCanvas; + private webcam; + private canvasCtx; + private webcamTexture; + private shaderMaterial; + readonly vertexShader = "\n varying vec2 vUv;\n void main( void ) {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }"; + readonly fragmentShader = "\n uniform vec3 keyColor;\n uniform float similarity;\n uniform float smoothness;\n varying vec2 vUv;\n uniform sampler2D map;\n void main() {\n vec4 videoColor = texture2D(map, vUv);\n\n float Y1 = 0.299 * keyColor.r + 0.587 * keyColor.g + 0.114 * keyColor.b;\n float Cr1 = keyColor.r - Y1;\n float Cb1 = keyColor.b - Y1;\n \n float Y2 = 0.299 * videoColor.r + 0.587 * videoColor.g + 0.114 * videoColor.b;\n float Cr2 = videoColor.r - Y2; \n float Cb2 = videoColor.b - Y2; \n \n float blend = smoothstep(similarity, similarity + smoothness, distance(vec2(Cr2, Cb2), vec2(Cr1, Cb1)));\n gl_FragColor = vec4(videoColor.rgb, videoColor.a * blend); \n }"; + constructor(); + /** + * Returns THREE.ShaderMaterial that can be used for PlaneGeometry, Mesh, etc. + */ + getShaderMaterial(): THREE.ShaderMaterial; + /** + * Creates a plane to display webcam stream + */ + createWebCamPlane(width?: number, height?: number): THREE.Mesh; + /** + * This should be called in renderer's animate method + */ + animate(): void; +} diff --git a/demo/libs/types/core/webcam/index.d.ts b/demo/libs/types/core/webcam/index.d.ts index 34b7dce..a77f789 100644 --- a/demo/libs/types/core/webcam/index.d.ts +++ b/demo/libs/types/core/webcam/index.d.ts @@ -1 +1 @@ -export * from "./WebCam"; +export * from "./WebCam"; diff --git a/demo/libs/types/core/workers/CreateMeshBvh.worker.d.ts b/demo/libs/types/core/workers/CreateMeshBvh.worker.d.ts index 509db18..cb0ff5c 100644 --- a/demo/libs/types/core/workers/CreateMeshBvh.worker.d.ts +++ b/demo/libs/types/core/workers/CreateMeshBvh.worker.d.ts @@ -1 +1 @@ -export {}; +export {}; diff --git a/demo/libs/types/core/workers/GenerateMeshBvhWorker.d.ts b/demo/libs/types/core/workers/GenerateMeshBvhWorker.d.ts index 508c164..0afcf1f 100644 --- a/demo/libs/types/core/workers/GenerateMeshBvhWorker.d.ts +++ b/demo/libs/types/core/workers/GenerateMeshBvhWorker.d.ts @@ -1,17 +1,17 @@ -import { BufferGeometry } from "three"; -export interface BvhParameter { - maxDepth?: number; - maxLeafTris?: number; - setBoundingBox?: boolean; - saveOriginalIndex?: boolean; - transferred?: boolean; - onProgress?: (progress: number) => void; -} -export declare class GenerateMeshBvhWorker { - private running; - private worker; - constructor(); - isRunning(): boolean; - generate(geometries: BufferGeometry[], params?: BvhParameter): Promise | undefined; - dispose(): void; -} +import { BufferGeometry } from "three"; +export interface BvhParameter { + maxDepth?: number; + maxLeafTris?: number; + setBoundingBox?: boolean; + saveOriginalIndex?: boolean; + transferred?: boolean; + onProgress?: (progress: number) => void; +} +export declare class GenerateMeshBvhWorker { + private running; + private worker; + constructor(); + isRunning(): boolean; + generate(geometries: BufferGeometry[], params?: BvhParameter): Promise | undefined; + dispose(): void; +} diff --git a/demo/libs/types/core/workers/index.d.ts b/demo/libs/types/core/workers/index.d.ts index c4bfd49..2ac1719 100644 --- a/demo/libs/types/core/workers/index.d.ts +++ b/demo/libs/types/core/workers/index.d.ts @@ -1 +1 @@ -export * from "./GenerateMeshBvhWorker"; +export * from "./GenerateMeshBvhWorker"; diff --git a/demo/libs/types/export.doc.d.ts b/demo/libs/types/export.doc.d.ts index e7083fb..8e4bf88 100644 --- a/demo/libs/types/export.doc.d.ts +++ b/demo/libs/types/export.doc.d.ts @@ -1,9 +1,9 @@ -export { SectionType, Vector2, Vector3, Box2, DrawableData, InputManager, Model3d, ScreenshotMode } from "./core"; -export { BaseDxfCompareHelper, DxfCompareHelper } from "./core/compare"; -export { BaseViewerConfig, BimViewerConfig, CameraConfig, DxfCompareConfig, DxfModelConfig, DxfViewerConfig, Hotpoint, ModelConfig, Panorama, VRViewerConfig, VRViewpoint, } from "./core/Configs"; -export { BaseViewer, BimViewer, DxfLayers, DxfViewer, MarkupData, Model2d, Plugin, PluginConfig, ScreenshotResult, SimplifiedBimViewer, ViewerEvent, VRViewer, } from "./core/viewers"; -export { DxfDetailChanges, DxfChangeType, DxfChange, DxfLayer } from "./core/dxf"; -export { ILayer } from "./core/dxf-parser"; -export { MarkupType } from "./core/markup"; -export { ProgressBar } from "./components/progress-bar"; -export { AxisGizmoPlugin, AxisGizmoPluginConfig, BaseMeasureDrawable, BaseSection, BimViewerToolbarPlugin, BimViewerToolbarPluginConfig, ContextMenuPlugin, DxfViewerToolbarPlugin, DxfViewerToolbarPluginConfig, ExplodePlugin, GroundShadowPlugin, GroundShadowConfig, HotpointPlugin, LocalDxfUploader, LocalModelUploader, LocalImageUploader, MeasurementData, MeasurementPlugin, MeasurementType, NavCubePlugin, NavCubePluginConfig, SectionPlugin, SkyboxPlugin, SkyboxPluginConfig, Toolbar, ToolbarConfig, ToolbarMenuConfig, ToolbarMenu, ToolbarMenuId, ViewCubePlugin, ViewCubePluginConfig, } from "./plugins"; +export { SectionType, Vector2, Vector3, Box2, DrawableData, InputManager, Model3d, ScreenshotMode } from "./core"; +export { BaseDxfCompareHelper, DxfCompareHelper } from "./core/compare"; +export { BaseViewerConfig, BimViewerConfig, CameraConfig, DxfCompareConfig, DxfModelConfig, DxfViewerConfig, Hotpoint, ModelConfig, Panorama, VRViewerConfig, VRViewpoint, } from "./core/Configs"; +export { BaseViewer, BimViewer, DxfLayers, DxfViewer, MarkupData, Model2d, Plugin, PluginConfig, ScreenshotResult, SimplifiedBimViewer, ViewerEvent, VRViewer, } from "./core/viewers"; +export { DxfDetailChanges, DxfChangeType, DxfChange, DxfLayer } from "./core/dxf"; +export { ILayer } from "./core/dxf-parser"; +export { MarkupType } from "./core/markup"; +export { ProgressBar } from "./components/progress-bar"; +export { AxisGizmoPlugin, AxisGizmoPluginConfig, BaseMeasureDrawable, BaseSection, BimViewerToolbarPlugin, BimViewerToolbarPluginConfig, ContextMenuPlugin, DxfViewerToolbarPlugin, DxfViewerToolbarPluginConfig, ExplodePlugin, GroundShadowPlugin, GroundShadowPluginConfig, HotpointPlugin, LocalDxfUploader, LocalModelUploader, LocalImageUploader, MeasurementData, MeasurementPlugin, MeasurementType, NavCubePlugin, NavCubePluginConfig, SectionPlugin, SkyboxPlugin, SkyboxPluginConfig, Toolbar, ToolbarConfig, ToolbarMenuConfig, ToolbarMenu, ToolbarMenuId, ViewCubePlugin, ViewCubePluginConfig, } from "./plugins"; diff --git a/demo/libs/types/fetch-polyfill.d.ts b/demo/libs/types/fetch-polyfill.d.ts index 76aa821..d87c485 100644 --- a/demo/libs/types/fetch-polyfill.d.ts +++ b/demo/libs/types/fetch-polyfill.d.ts @@ -1,2 +1,2 @@ -declare const _default: {}; -export default _default; +declare const _default: {}; +export default _default; diff --git a/demo/libs/types/index.d.ts b/demo/libs/types/index.d.ts index aa5e4d7..201ccde 100644 --- a/demo/libs/types/index.d.ts +++ b/demo/libs/types/index.d.ts @@ -1,8 +1,8 @@ -import "./css/main.scss"; -import "./fetch-polyfill"; -import "intl-pluralrules"; -import "core-js/stable"; -import "regenerator-runtime/runtime"; -export * from "./core"; -export * from "./components/progress-bar"; -export * from "./plugins"; +import "./css/main.scss"; +import "./fetch-polyfill"; +import "intl-pluralrules"; +import "core-js/stable"; +import "regenerator-runtime/runtime"; +export * from "./core"; +export * from "./components/progress-bar"; +export * from "./plugins"; diff --git a/demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts b/demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts index 010dad1..5f1a119 100644 --- a/demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts +++ b/demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts @@ -1,48 +1,49 @@ -import { BaseViewer, Plugin, PluginConfig } from "../../core"; -/** - * AxisGizmo plugin config. - */ -export interface AxisGizmoPluginConfig extends PluginConfig { - /** - * UI element id to contain the plugin. - */ - containerId: string; - /** - * Ignores z-axis. It is useful for DxfViewer. - */ - ignoreZAxis: boolean; -} -/** - * This renderer monitors the host renderer's camera, and keeps a coordinate axes - * the same direction as host renderer's - */ -export declare class AxisGizmoPlugin extends Plugin { - private cfg; - private hostCamera?; - private container?; - private coordinateAxes?; - private ignoreZAxis; - private camera?; - private scene?; - private renderer?; - private css2dRenderer?; - constructor(viewer: BaseViewer, cfg: AxisGizmoPluginConfig); - private init; - private initRenderer; - private initScene; - /** - * Sets hostCamera in case it is changed. - * It is possible for a viewer to switch camera between a OrthographicCamera and a PerspectiveCamera. - */ - private setHostCamera; - private render; - private animate; - private update; - /** - * Update axes according to camera direction. - * Camera's direction is the only input factor for this class. It always look at the origin. - * @param direction - */ - private updateCameraDirection; - destroy(): void; -} +import { BaseViewer, Plugin, PluginConfig } from "../../core"; +/** + * AxisGizmo plugin config. + */ +export interface AxisGizmoPluginConfig extends Partial { + /** + * UI element id to contain the plugin. + */ + containerId?: string; + /** + * Ignores z-axis. It is useful for DxfViewer. + */ + ignoreZAxis: boolean; +} +/** + * This renderer monitors the host renderer's camera, and keeps a coordinate axes + * the same direction as host renderer's + */ +export declare class AxisGizmoPlugin extends Plugin { + static DEFAULT_ID: string; + private cfg; + private hostCamera?; + private container?; + private coordinateAxes?; + private ignoreZAxis; + private camera?; + private scene?; + private renderer?; + private css2dRenderer?; + constructor(viewer: BaseViewer, cfg: AxisGizmoPluginConfig); + private init; + private initRenderer; + private initScene; + /** + * Sets hostCamera in case it is changed. + * It is possible for a viewer to switch camera between a OrthographicCamera and a PerspectiveCamera. + */ + private setHostCamera; + private render; + private animate; + private update; + /** + * Update axes according to camera direction. + * Camera's direction is the only input factor for this class. It always look at the origin. + * @param direction + */ + private updateCameraDirection; + destroy(): void; +} diff --git a/demo/libs/types/plugins/axis-gizmo/CoordinateAxes.d.ts b/demo/libs/types/plugins/axis-gizmo/CoordinateAxes.d.ts index d3a0cd4..7d8ca7a 100644 --- a/demo/libs/types/plugins/axis-gizmo/CoordinateAxes.d.ts +++ b/demo/libs/types/plugins/axis-gizmo/CoordinateAxes.d.ts @@ -1,12 +1,12 @@ -import * as THREE from "three"; -import { CSS2DObject } from "three/examples/jsm/renderers/CSS2DRenderer.js"; -export declare class CoordinateAxes extends THREE.Object3D { - name: string; - private readonly AXIS_LENGTH; - private readonly AXIS_COLOR_X; - private readonly AXIS_COLOR_Y; - private readonly AXIS_COLOR_Z; - constructor(addTexts?: boolean, ignoreZAxis?: boolean); - addTexts(ignoreZAxis?: boolean): void; - createText(text: string, color: string, size?: number): CSS2DObject; -} +import * as THREE from "three"; +import { CSS2DObject } from "three/examples/jsm/renderers/CSS2DRenderer.js"; +export declare class CoordinateAxes extends THREE.Object3D { + name: string; + private readonly AXIS_LENGTH; + private readonly AXIS_COLOR_X; + private readonly AXIS_COLOR_Y; + private readonly AXIS_COLOR_Z; + constructor(addTexts?: boolean, ignoreZAxis?: boolean); + addTexts(ignoreZAxis?: boolean): void; + createText(text: string, color: string, size?: number): CSS2DObject; +} diff --git a/demo/libs/types/plugins/axis-gizmo/index.d.ts b/demo/libs/types/plugins/axis-gizmo/index.d.ts index 27d200a..33b325c 100644 --- a/demo/libs/types/plugins/axis-gizmo/index.d.ts +++ b/demo/libs/types/plugins/axis-gizmo/index.d.ts @@ -1 +1 @@ -export * from "./AxisGizmoPlugin"; +export * from "./AxisGizmoPlugin"; diff --git a/demo/libs/types/plugins/bottom-bar/BottomBarPlugin.d.ts b/demo/libs/types/plugins/bottom-bar/BottomBarPlugin.d.ts index 0e6a25c..5fbf1de 100644 --- a/demo/libs/types/plugins/bottom-bar/BottomBarPlugin.d.ts +++ b/demo/libs/types/plugins/bottom-bar/BottomBarPlugin.d.ts @@ -1,44 +1,44 @@ -import { Tooltip } from "../../components/tool-tip"; -import { IconClass } from "../../core"; -import { BaseViewer } from "../../core/viewers/BaseViewer"; -import { Plugin } from "../../core/viewers/Plugin"; -declare enum BottomBarItemId { - statistics = "gemini-viewer-threejs-statistics", - cameraInfo = "gemini-viewer-threejs-cameraInfo", - tips = "gemini-viewer-threejs-tips" -} -interface BottomBarItemConfig { - icon: IconClass; - mutexIds?: BottomBarItemId[]; - onActive?: (item: BottomBarItem) => void; - onDeactive?: (item: BottomBarItem) => void; - onClick?: (item: BottomBarItem) => void; - onUpdate?: (item: BottomBarItem) => void; -} -/** - * Bottom bar plugin is a debug tool for developers. - */ -export declare class BottomBarPlugin extends Plugin { - private element; - itemList: Map; - constructor(viewer: BaseViewer); - update(): void; - private init; - private createItem; -} -declare class BottomBarItem { - readonly viewer: BaseViewer; - private readonly bottomBar; - protected readonly menuId: string; - protected cfg: BottomBarItemConfig; - private eventBus; - private itemconfig; - tooltip: Tooltip; - element: HTMLElement; - active: boolean; - constructor(viewer: BaseViewer, bottomBar: BottomBarPlugin, menuId: string, cfg: BottomBarItemConfig); - private createButton; - setActive(active: boolean): void; - update(): void; -} -export {}; +import { Tooltip } from "../../components/tool-tip"; +import { IconClass } from "../../core"; +import { BaseViewer } from "../../core/viewers/BaseViewer"; +import { Plugin } from "../../core/viewers/Plugin"; +declare enum BottomBarItemId { + statistics = "gemini-viewer-threejs-statistics", + cameraInfo = "gemini-viewer-threejs-cameraInfo", + tips = "gemini-viewer-threejs-tips" +} +interface BottomBarItemConfig { + icon: IconClass; + mutexIds?: BottomBarItemId[]; + onActive?: (item: BottomBarItem) => void; + onDeactive?: (item: BottomBarItem) => void; + onClick?: (item: BottomBarItem) => void; + onUpdate?: (item: BottomBarItem) => void; +} +/** + * Bottom bar plugin is a debug tool for developers. + */ +export declare class BottomBarPlugin extends Plugin { + private element; + itemList: Map; + constructor(viewer: BaseViewer); + update(): void; + private init; + private createItem; +} +declare class BottomBarItem { + readonly viewer: BaseViewer; + private readonly bottomBar; + protected readonly menuId: string; + protected cfg: BottomBarItemConfig; + private eventBus; + private itemconfig; + tooltip: Tooltip; + element: HTMLElement; + active: boolean; + constructor(viewer: BaseViewer, bottomBar: BottomBarPlugin, menuId: string, cfg: BottomBarItemConfig); + private createButton; + setActive(active: boolean): void; + update(): void; +} +export {}; diff --git a/demo/libs/types/plugins/bottom-bar/index.d.ts b/demo/libs/types/plugins/bottom-bar/index.d.ts index 6a54d3b..d905b6f 100644 --- a/demo/libs/types/plugins/bottom-bar/index.d.ts +++ b/demo/libs/types/plugins/bottom-bar/index.d.ts @@ -1 +1 @@ -export * from "./BottomBarPlugin"; +export * from "./BottomBarPlugin"; diff --git a/demo/libs/types/plugins/context-menu/Constants.d.ts b/demo/libs/types/plugins/context-menu/Constants.d.ts index bbb9898..c623792 100644 --- a/demo/libs/types/plugins/context-menu/Constants.d.ts +++ b/demo/libs/types/plugins/context-menu/Constants.d.ts @@ -1,37 +1,37 @@ -import type { AxisPlaneSection, ObjectsBoxSection, PickPlaneSection } from "../sections"; -import type { Toolbar } from "../toolbars"; -import type { BaseViewer } from "../../core"; -/** - * @internal - */ -/** - * Context for ContextMenu - * @internal - */ -export interface Context { - viewer: BaseViewer; - hit?: any; - instanceId?: number; - batchId?: number; - /** - * For BimViewer - * @internal - */ - section?: ObjectsBoxSection | PickPlaneSection | AxisPlaneSection; - toolbar?: Toolbar; -} -/** - * @internal - */ -/** - * @internal - */ -export interface ContextMenuItem { - title?: string; - enabled?: boolean; - shown?: boolean; - getTitle?: (context: Context) => string; - getEnabled?: (context: Context) => boolean; - getShown?: (context: Context) => boolean; - doAction?: (context: Context) => void; -} +import type { AxisPlaneSection, ObjectsBoxSection, PickPlaneSection } from "../sections"; +import type { Toolbar } from "../toolbars"; +import type { BaseViewer } from "../../core"; +/** + * @internal + */ +/** + * Context for ContextMenu + * @internal + */ +export interface Context { + viewer: BaseViewer; + hit?: any; + instanceId?: number; + batchId?: number; + /** + * For BimViewer + * @internal + */ + section?: ObjectsBoxSection | PickPlaneSection | AxisPlaneSection; + toolbar?: Toolbar; +} +/** + * @internal + */ +/** + * @internal + */ +export interface ContextMenuItem { + title?: string; + enabled?: boolean; + shown?: boolean; + getTitle?: (context: Context) => string; + getEnabled?: (context: Context) => boolean; + getShown?: (context: Context) => boolean; + doAction?: (context: Context) => void; +} diff --git a/demo/libs/types/plugins/context-menu/ContextMenu.config.d.ts b/demo/libs/types/plugins/context-menu/ContextMenu.config.d.ts index b307113..4bf0de1 100644 --- a/demo/libs/types/plugins/context-menu/ContextMenu.config.d.ts +++ b/demo/libs/types/plugins/context-menu/ContextMenu.config.d.ts @@ -1,2 +1,2 @@ -import { ContextMenuItem } from "./Constants"; -export declare const contextMenuItems: ContextMenuItem[][]; +import { ContextMenuItem } from "./Constants"; +export declare const contextMenuItems: ContextMenuItem[][]; diff --git a/demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts b/demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts index 81c1463..2e961a7 100644 --- a/demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts +++ b/demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts @@ -1,27 +1,27 @@ -import { Context, ContextMenuItem } from "./Constants"; -import { type BaseViewer, Plugin } from "../../core"; -/** - * Context menu plugin. - * Can be used by BimViewer. - */ -export declare class ContextMenuPlugin extends Plugin { - protected container: HTMLElement; - protected element: HTMLDivElement; - protected context: Context; - protected itemList: [ContextMenuItem, HTMLElement][]; - constructor(viewer: BaseViewer); - private initEvents; - protected handleClick: () => void; - private showContextMenu; - private isEnabled; - private isShown; - private getTitle; - private createMenuUI; - private createMenuGroup; - private createMenuItem; - private updateMenuItems; - private showMenuElement; - show(pageX: number, pageY: number): void; - hide(): void; - destroy(): void; -} +import { Context, ContextMenuItem } from "./Constants"; +import { type BaseViewer, Plugin } from "../../core"; +/** + * Context menu plugin. + * Can be used by BimViewer. + */ +export declare class ContextMenuPlugin extends Plugin { + protected container: HTMLElement; + protected element: HTMLDivElement; + protected context: Context; + protected itemList: [ContextMenuItem, HTMLElement][]; + constructor(viewer: BaseViewer); + private initEvents; + protected handleClick: () => void; + private showContextMenu; + private isEnabled; + private isShown; + private getTitle; + private createMenuUI; + private createMenuGroup; + private createMenuItem; + private updateMenuItems; + private showMenuElement; + show(pageX: number, pageY: number): void; + hide(): void; + destroy(): void; +} diff --git a/demo/libs/types/plugins/context-menu/index.d.ts b/demo/libs/types/plugins/context-menu/index.d.ts index 135269e..5c963f4 100644 --- a/demo/libs/types/plugins/context-menu/index.d.ts +++ b/demo/libs/types/plugins/context-menu/index.d.ts @@ -1,3 +1,3 @@ -export * from "./Constants"; -export * from "./ContextMenuPlugin"; -export * from "./ContextMenu.config"; +export * from "./Constants"; +export * from "./ContextMenuPlugin"; +export * from "./ContextMenu.config"; diff --git a/demo/libs/types/plugins/dat-gui/BimViewerDatGui.d.ts b/demo/libs/types/plugins/dat-gui/BimViewerDatGui.d.ts index 1e7e5bd..e63afcd 100644 --- a/demo/libs/types/plugins/dat-gui/BimViewerDatGui.d.ts +++ b/demo/libs/types/plugins/dat-gui/BimViewerDatGui.d.ts @@ -1,71 +1,72 @@ -import * as dat from "dat.gui"; -import { Plugin, type BimViewer } from "../../core/viewers"; -/** - * @internal - */ -export declare class BimViewerDatGuiPlugin extends Plugin { - protected viewer: BimViewer; - gui?: dat.GUI; - /** - * - * @param viewer pass in the Viewer3D, so we can reference its data members - */ - constructor(viewer: BimViewer); - /** - * Defined all controls here, which will be displyed in dat.GUI - * Color should follow these formats: - * '#ffffff', [0, 0, 0], [0, 0, 0, 0.5], \{ h: 100, s: 0.9, v: 0.3 \} - */ - readonly controls: { - showGroundGrid: boolean; - showGroundGrass: boolean; - skyMode: string[]; - environments: string[]; - homeView: () => void; - views: string[]; - OrthographicCamera: boolean; - viewpoints: boolean; - annotations: boolean; - takeSnapshot: () => void; - fullScreen: () => void; - webcam: boolean; - uploadFile: () => void; - showBimTree: boolean; - showPropertyPanel: boolean; - transparentMode: boolean; - showVertexNormals: boolean; - explode: number; - sectionMode: string[]; - alVisible: boolean; - alColor: string; - alIntensity: number; - dlColor: string; - showDlHelper: boolean; - hlVisible: boolean; - hlIntensity: number; - hlColor: number[]; - hlGroundColor: number[]; - fogEnabled: boolean; - fogColor: number; - fogNearDistance: number; - fogFarDistance: number; - composerEnabled: boolean; - renderPassEnabled: boolean; - fxaaEnabled: boolean; - saoEnabled: boolean; - ssaoEnabled: boolean; - outlineEnabled: boolean; - ssaaEnabled: boolean; - bloomEnabled: boolean; - unrealBloomEnabled: boolean; - enableFastOperation: boolean; - distanceCullingFactor: number; - }; - /** - * Init dat.GUI - */ - init(): void; - open(): void; - close(): void; - destroy(): void; -} +import * as dat from "dat.gui"; +import { Plugin, type BimViewer } from "../../core/viewers"; +/** + * @internal + */ +export declare class BimViewerDatGuiPlugin extends Plugin { + protected viewer: BimViewer; + gui?: dat.GUI; + /** + * + * @param viewer pass in the Viewer3D, so we can reference its data members + */ + constructor(viewer: BimViewer); + /** + * Defined all controls here, which will be displyed in dat.GUI + * Color should follow these formats: + * '#ffffff', [0, 0, 0], [0, 0, 0, 0.5], \{ h: 100, s: 0.9, v: 0.3 \} + */ + readonly controls: { + showGroundGrid: boolean; + showGroundGrass: boolean; + skyMode: string[]; + environments: string[]; + homeView: () => void; + views: string[]; + OrthographicCamera: boolean; + viewpoints: boolean; + annotations: boolean; + takeSnapshot: () => void; + takeSnapshotForViewerBBox: () => void; + fullScreen: () => void; + webcam: boolean; + uploadFile: () => void; + showBimTree: boolean; + showPropertyPanel: boolean; + transparentMode: boolean; + showVertexNormals: boolean; + explode: number; + sectionMode: string[]; + alVisible: boolean; + alColor: string; + alIntensity: number; + dlColor: string; + showDlHelper: boolean; + hlVisible: boolean; + hlIntensity: number; + hlColor: number[]; + hlGroundColor: number[]; + fogEnabled: boolean; + fogColor: number; + fogNearDistance: number; + fogFarDistance: number; + composerEnabled: boolean; + renderPassEnabled: boolean; + fxaaEnabled: boolean; + saoEnabled: boolean; + ssaoEnabled: boolean; + outlineEnabled: boolean; + ssaaEnabled: boolean; + bloomEnabled: boolean; + unrealBloomEnabled: boolean; + enableFastOperation: boolean; + distanceCullingFactor: number; + }; + /** + * Init dat.GUI + */ + init(): void; + open(): void; + close(): void; + destroy(): void; +} diff --git a/demo/libs/types/plugins/dat-gui/index.d.ts b/demo/libs/types/plugins/dat-gui/index.d.ts index 0005797..1d5e53d 100644 --- a/demo/libs/types/plugins/dat-gui/index.d.ts +++ b/demo/libs/types/plugins/dat-gui/index.d.ts @@ -1 +1 @@ -export * from "./BimViewerDatGui"; +export * from "./BimViewerDatGui"; diff --git a/demo/libs/types/plugins/explode/ExplodePlugin.d.ts b/demo/libs/types/plugins/explode/ExplodePlugin.d.ts index 1ecd3ca..8901462 100644 --- a/demo/libs/types/plugins/explode/ExplodePlugin.d.ts +++ b/demo/libs/types/plugins/explode/ExplodePlugin.d.ts @@ -1,46 +1,47 @@ -import * as THREE from "three"; -import { ObjectExploder } from "./ObjectExploder"; -import { BaseViewer, Plugin, PluginConfig, Vector3 } from "../../core"; -export interface ExplodePluginConfig extends PluginConfig { - /** - * Explode center. - * If specified, each object explode based on this position. Otherwise, - * each object explode based on its own center. - */ - explodeCenter?: Vector3; - /** - * By default, it explodes to every direction. In some scenarios, user may want to - * explode only in up/down direction. - */ - explodeUp?: boolean; -} -/** - * Exploder class is used to explode objects in a viewer. - * Can be used by BimViewer. - * @internal - */ -export declare class ExplodePlugin extends Plugin { - protected cfg: ExplodePluginConfig; - protected exploders: ObjectExploder[]; - constructor(viewer: BaseViewer, cfg?: ExplodePluginConfig); - get scene(): THREE.Scene; - /** - * Initialize the - */ - init(): void; - /** - * Explode objects - * @param scale 1 means do not explode at all, recommended value between 1-5. - */ - explode(scale: number): void; - /** - * Unexplode objects - */ - unexplode(): void; - protected onModelLoaded: () => void; - /** - * Checks if exploder already exists for a model/object. - */ - protected hasExploderForModel(modelObjectId: number): boolean; - destroy(): void; -} +import * as THREE from "three"; +import { ObjectExploder } from "./ObjectExploder"; +import { BaseViewer, Plugin, PluginConfig, Vector3 } from "../../core"; +export interface ExplodePluginConfig extends Partial { + /** + * Explode center. + * If specified, each object explode based on this position. Otherwise, + * each object explode based on its own center. + */ + explodeCenter?: Vector3; + /** + * By default, it explodes to every direction. In some scenarios, user may want to + * explode only in up/down direction. + */ + explodeUp?: boolean; +} +/** + * Exploder class is used to explode objects in a viewer. + * Can be used by BimViewer. + * @internal + */ +export declare class ExplodePlugin extends Plugin { + static DEFAULT_ID: string; + protected cfg: ExplodePluginConfig; + protected exploders: ObjectExploder[]; + constructor(viewer: BaseViewer, cfg?: ExplodePluginConfig); + get scene(): THREE.Scene; + /** + * Initialize the + */ + init(): void; + /** + * Explode objects + * @param scale 1 means do not explode at all, recommended value between 1-5. + */ + explode(scale: number): void; + /** + * Unexplode objects + */ + unexplode(): void; + protected onModelLoaded: () => void; + /** + * Checks if exploder already exists for a model/object. + */ + protected hasExploderForModel(modelObjectId: number): boolean; + destroy(): void; +} diff --git a/demo/libs/types/plugins/explode/ObjectExploder.d.ts b/demo/libs/types/plugins/explode/ObjectExploder.d.ts index 3a028dd..f7aabe6 100644 --- a/demo/libs/types/plugins/explode/ObjectExploder.d.ts +++ b/demo/libs/types/plugins/explode/ObjectExploder.d.ts @@ -1,48 +1,48 @@ -import * as THREE from "three"; -/** - * ObjectExploder class is used to explode an object - * @internal - */ -export declare class ObjectExploder { - private scene; - objectId: number; - explodeCenter: THREE.Vector3; - private scale; - private explodeUp; - /** - * Constructor of Explode - * @param objectId target object id, that is going to be exploded - * @param explodeCenter if undefined, will explode object by its center - * @param scale scale factor, 1 means 1 time farer away from exploder's position - */ - constructor(scene: THREE.Scene, objectId: number, explodeCenter?: THREE.Vector3 | undefined); - /** - * Explodes the object - */ - explode(scale: number): void; - /** - * Explodes a parent or leaf object. - * If an object has both geometry and children, we'll move itself - * and we shouldn't move its children again. - */ - private explodeObject; - /** - * Explodes a leaf object (that has geometry, and ususally no children). - * It doesn't support THREE.InstancedMesh. - */ - private explodeLeafObject; - /** - * Unexplodes the object - */ - unexplode(): void; - /** - * Unexplodes a parent or leaf object - */ - private unexplodeObject; - /** - * Unexplodes a leaf object - */ - private unexplodeLeafObject; - setExplodeUp(explodeUp: boolean): void; - private getObjectCenter; -} +import * as THREE from "three"; +/** + * ObjectExploder class is used to explode an object + * @internal + */ +export declare class ObjectExploder { + private scene; + objectId: number; + explodeCenter: THREE.Vector3; + private scale; + private explodeUp; + /** + * Constructor of Explode + * @param objectId target object id, that is going to be exploded + * @param explodeCenter if undefined, will explode object by its center + * @param scale scale factor, 1 means 1 time farer away from exploder's position + */ + constructor(scene: THREE.Scene, objectId: number, explodeCenter?: THREE.Vector3 | undefined); + /** + * Explodes the object + */ + explode(scale: number): void; + /** + * Explodes a parent or leaf object. + * If an object has both geometry and children, we'll move itself + * and we shouldn't move its children again. + */ + private explodeObject; + /** + * Explodes a leaf object (that has geometry, and ususally no children). + * It doesn't support THREE.InstancedMesh. + */ + private explodeLeafObject; + /** + * Unexplodes the object + */ + unexplode(): void; + /** + * Unexplodes a parent or leaf object + */ + private unexplodeObject; + /** + * Unexplodes a leaf object + */ + private unexplodeLeafObject; + setExplodeUp(explodeUp: boolean): void; + private getObjectCenter; +} diff --git a/demo/libs/types/plugins/explode/index.d.ts b/demo/libs/types/plugins/explode/index.d.ts index 615bdd5..eaae6ef 100644 --- a/demo/libs/types/plugins/explode/index.d.ts +++ b/demo/libs/types/plugins/explode/index.d.ts @@ -1 +1 @@ -export * from "./ExplodePlugin"; +export * from "./ExplodePlugin"; diff --git a/demo/libs/types/plugins/ground-grass/GroundGrassPlugin.d.ts b/demo/libs/types/plugins/ground-grass/GroundGrassPlugin.d.ts index e2d6029..62e87bb 100644 --- a/demo/libs/types/plugins/ground-grass/GroundGrassPlugin.d.ts +++ b/demo/libs/types/plugins/ground-grass/GroundGrassPlugin.d.ts @@ -1,45 +1,46 @@ -import * as THREE from "three"; -import { BaseViewer, Plugin, PluginConfig } from "../../core"; -export interface GroundGrassPluginConfig extends PluginConfig { - /** - * Url of a texture image. - */ - texture?: string; - /** - * Ground width. - */ - width?: number; - /** - * Ground height. - */ - height?: number; - /** - * How many times the texture is repeated. - */ - repeatX?: number; - /** - * How many times the texture is repeated. - */ - repeatY?: number; - /** - * If ground grass is visible. It is visible by default. - */ - visible?: boolean; -} -/** - * Ground grass plugin. - * Can be used by BimViewer. - */ -export declare class GroundGrassPlugin extends Plugin { - protected cfg: GroundGrassPluginConfig; - protected NAME: string; - protected DEFAULT_SIZE: number; - protected DEFAULT_REPEAT: number; - protected groundGrass?: THREE.Mesh; - constructor(viewer: BaseViewer, cfg?: GroundGrassPluginConfig); - protected init(): void; - setVisible(visible: boolean): void; - protected onModelLoaded: () => void; - protected createGrassGround(texture: string, width: number, height: number, repeatX: number, repeatY: number): Promise; - destroy(): void; -} +import * as THREE from "three"; +import { BaseViewer, Plugin, PluginConfig } from "../../core"; +export interface GroundGrassPluginConfig extends Partial { + /** + * Url of a texture image. + */ + texture?: string; + /** + * Ground width. + */ + width?: number; + /** + * Ground height. + */ + height?: number; + /** + * How many times the texture is repeated. + */ + repeatX?: number; + /** + * How many times the texture is repeated. + */ + repeatY?: number; + /** + * If ground grass is visible. It is visible by default. + */ + visible?: boolean; +} +/** + * Ground grass plugin. + * Can be used by BimViewer. + */ +export declare class GroundGrassPlugin extends Plugin { + static DEFAULT_ID: string; + protected cfg: GroundGrassPluginConfig; + protected NAME: string; + protected DEFAULT_SIZE: number; + protected DEFAULT_REPEAT: number; + protected groundGrass?: THREE.Mesh; + constructor(viewer: BaseViewer, cfg?: GroundGrassPluginConfig); + protected init(): void; + setVisible(visible: boolean): void; + protected onModelLoaded: () => void; + protected createGrassGround(texture: string, width: number, height: number, repeatX: number, repeatY: number): Promise; + destroy(): void; +} diff --git a/demo/libs/types/plugins/ground-grass/index.d.ts b/demo/libs/types/plugins/ground-grass/index.d.ts index a346dc3..e124626 100644 --- a/demo/libs/types/plugins/ground-grass/index.d.ts +++ b/demo/libs/types/plugins/ground-grass/index.d.ts @@ -1 +1 @@ -export * from "./GroundGrassPlugin"; +export * from "./GroundGrassPlugin"; diff --git a/demo/libs/types/plugins/ground-grid/GroundGridPlugin.d.ts b/demo/libs/types/plugins/ground-grid/GroundGridPlugin.d.ts index 1204bcf..e658f9a 100644 --- a/demo/libs/types/plugins/ground-grid/GroundGridPlugin.d.ts +++ b/demo/libs/types/plugins/ground-grid/GroundGridPlugin.d.ts @@ -1,45 +1,46 @@ -import * as THREE from "three"; -import { BaseViewer, Plugin, PluginConfig } from "../../core"; -/** - * Ground grid plugin. - */ -export interface GroundGridPluginConfig extends PluginConfig { - /** - * Ground size. - */ - size?: number; - /** - * Number of divisions. - */ - divisions?: number; - /** - * If ground grid is visible. It is visible by default. - */ - visible?: boolean; -} -/** - * Ground grid plugin. - * Can be used by BimViewer. - */ -export declare class GroundGridPlugin extends Plugin { - protected cfg: GroundGridPluginConfig; - protected NAME: string; - protected DEFAULT_SIZE: number; - protected DEFAULT_DIVISIONS: number; - protected DEFAULT_MAT_PARAMS: { - color: number; - transparent: boolean; - opacity: number; - wireframeLinewidth: number; - }; - protected gridHelper?: THREE.GridHelper; - constructor(viewer: BaseViewer, cfg?: GroundGridPluginConfig); - protected init(): void; - setVisible(visible: boolean): void; - protected onModelLoaded: () => void; - /** - * Creates ground grid - */ - protected createGroundGrid(size?: number, divisions?: number, groundCenter?: THREE.Vector3): THREE.GridHelper; - destroy(): void; -} +import * as THREE from "three"; +import { BaseViewer, Plugin, PluginConfig } from "../../core"; +/** + * Ground grid plugin. + */ +export interface GroundGridPluginConfig extends Partial { + /** + * Ground size. + */ + size?: number; + /** + * Number of divisions. + */ + divisions?: number; + /** + * If ground grid is visible. It is visible by default. + */ + visible?: boolean; +} +/** + * Ground grid plugin. + * Can be used by BimViewer. + */ +export declare class GroundGridPlugin extends Plugin { + static DEFAULT_ID: string; + protected cfg: GroundGridPluginConfig; + protected NAME: string; + protected DEFAULT_SIZE: number; + protected DEFAULT_DIVISIONS: number; + protected DEFAULT_MAT_PARAMS: { + color: number; + transparent: boolean; + opacity: number; + wireframeLinewidth: number; + }; + protected gridHelper?: THREE.GridHelper; + constructor(viewer: BaseViewer, cfg?: GroundGridPluginConfig); + protected init(): void; + setVisible(visible: boolean): void; + protected onModelLoaded: () => void; + /** + * Creates ground grid + */ + protected createGroundGrid(size?: number, divisions?: number, groundCenter?: THREE.Vector3): THREE.GridHelper; + destroy(): void; +} diff --git a/demo/libs/types/plugins/ground-grid/index.d.ts b/demo/libs/types/plugins/ground-grid/index.d.ts index 188247e..126f505 100644 --- a/demo/libs/types/plugins/ground-grid/index.d.ts +++ b/demo/libs/types/plugins/ground-grid/index.d.ts @@ -1 +1 @@ -export * from "./GroundGridPlugin"; +export * from "./GroundGridPlugin"; diff --git a/demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts b/demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts index b36b7c0..87d4025 100644 --- a/demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts +++ b/demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts @@ -1,46 +1,43 @@ -import * as THREE from "three"; -import { BaseViewer, Plugin } from "../../core"; -/** - * Ground shadow config. - */ -export interface GroundShadowConfig { - blur: number; - darkness: number; -} -/** - * Ground shadow plugin is used to show shadow for models. - * Can be used by BimViewer. - * @description - */ -export declare class GroundShadowPlugin extends Plugin { - protected cfg: GroundShadowConfig; - protected shadowGroup?: THREE.Group; - protected blurPlane?: THREE.Mesh; - protected depthMaterial?: THREE.MeshDepthMaterial; - protected horizontalBlurMaterial?: THREE.ShaderMaterial; - protected verticalBlurMaterial?: THREE.ShaderMaterial; - protected shadowCamera?: THREE.OrthographicCamera; - protected renderTarget?: THREE.WebGLRenderTarget; - protected renderTargetBlur?: THREE.WebGLRenderTarget; - private modelCount; - constructor(viewer: BaseViewer, cfg?: GroundShadowConfig); - protected get scene(): THREE.Scene | undefined; - protected get renderer(): THREE.WebGLRenderer | undefined; - /** - * We'll need to update shadow when - * - Model loaded/unloaded - * - Any object's visibility, position, etc. changed - */ - protected shouldUpdateShadow(): boolean; - protected onModelLoaded: ({ modelId, bbox }: { - modelId: string; - bbox: THREE.Box3; - }) => void; - protected onShadowRender: () => void; - private initMaterial; - private initRenderTarget; - private createGroundShadowByBBox; - private blurShadow; - protected render(): void; - destroy(): void; -} +import * as THREE from "three"; +import { BaseViewer, Plugin, PluginConfig } from "../../core"; +/** + * Ground shadow config. + */ +export interface GroundShadowPluginConfig extends Partial { + blur: number; + darkness: number; +} +/** + * Ground shadow plugin is used to show shadow for models. + * Can be used by BimViewer. + * @description + */ +export declare class GroundShadowPlugin extends Plugin { + static DEFAULT_ID: string; + protected cfg: GroundShadowPluginConfig; + protected shadowGroup?: THREE.Group; + protected blurPlane?: THREE.Mesh; + protected depthMaterial?: THREE.MeshDepthMaterial; + protected horizontalBlurMaterial?: THREE.ShaderMaterial; + protected verticalBlurMaterial?: THREE.ShaderMaterial; + protected shadowCamera?: THREE.OrthographicCamera; + protected renderTarget?: THREE.WebGLRenderTarget; + protected renderTargetBlur?: THREE.WebGLRenderTarget; + private shouldRender; + private timeout?; + constructor(viewer: BaseViewer, cfg?: GroundShadowPluginConfig); + protected get scene(): any; + protected get renderer(): any; + /** + * Updates ground shadow. + */ + update(): void; + protected onModelLoaded: () => void; + protected onShadowRender: () => void; + private initMaterial; + private initRenderTarget; + private updateGroundShadow; + private blurShadow; + protected render(): void; + destroy(): void; +} diff --git a/demo/libs/types/plugins/ground-shaow/index.d.ts b/demo/libs/types/plugins/ground-shaow/index.d.ts index 7f1663b..3781e6b 100644 --- a/demo/libs/types/plugins/ground-shaow/index.d.ts +++ b/demo/libs/types/plugins/ground-shaow/index.d.ts @@ -1 +1 @@ -export * from "./GroundShadowPlugin"; +export * from "./GroundShadowPlugin"; diff --git a/demo/libs/types/plugins/hotpoint/HotpointPlugin.d.ts b/demo/libs/types/plugins/hotpoint/HotpointPlugin.d.ts index 1bf9ae2..df4d2ec 100644 --- a/demo/libs/types/plugins/hotpoint/HotpointPlugin.d.ts +++ b/demo/libs/types/plugins/hotpoint/HotpointPlugin.d.ts @@ -1,93 +1,93 @@ -import * as THREE from "three"; -import { CSS2DObject, CSS2DRenderer } from "three/examples/jsm/renderers/CSS2DRenderer.js"; -import { BaseViewer, Hotpoint, Plugin, Vector2, Vector3 } from "../../core"; -/** - * Hotpoint plugin manages hotpoints in a viewer. - * It can be used by DxfViewer and BimViewer. - * The hotpoint feature in VRViewer is more complex, that one has nothing to do with this plugin. - * VRViewer is able to use this plugin though. - * - A hotpoint is created and stored by user. User define its html and css. - * - A hotpoint can be added to, and removed from viewer. - * - Caller should set a hotpointId that is unique in the session of current viewer. - * - DxfViewer doesn't maintain the relationship between hotpoint and layout. - */ -export declare class HotpointPlugin extends Plugin { - protected hotpointRoot?: THREE.Group; - protected css2dRenderer: CSS2DRenderer; - constructor(viewer: BaseViewer); - /** - * @description {en} Adds a hotpoint. - * Caller should set a hotpointId that is unique in the session of current viewer. - * @description {zh} 添加热点。 - * 调用者应该设置一个在当前Viewer会话中唯一的热点id。 - * @param hotpoint - * - {en} hotpoint data. - * - {zh} 热点数据。 - * @example - * ``` typescript - * const hotpoint = { - * hotpointId: "c6ea70a3-ddb0-4dd0-87c8-bd2491936428", - * anchorPosition: [0, 0, 0], - * html: "
hotpoint
", - * visible: true, - * }; - * const plugin = new HotpointPlugin(viewer); - * plugin.add(hotpoint); - * ``` - */ - add(hotpoint: Hotpoint): void; - /** - * @description {en} Removes a hotpoint by given hotpointId. - * @description {zh} 根据热点id删除热点。 - * @param {string} hotpointId - * - {en} hotpoint id. - * - {zh} 热点id。 - * @example - * ``` typescript - * const hotpointId = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428"; - * const plugin = new HotpointPlugin(viewer); - * plugin.remove(hotpointId); - * ``` - */ - remove(hotpointId: string): void; - /** - * @description {en} Clears all hotpoints. - * @description {zh} 清除所有热点。 - * @example - * ``` typescript - * const plugin = new HotpointPlugin(viewer); - * plugin.clear(); - * ``` - */ - clear(): void; - /** - * Checks if hotpoint with specific id already exist - * Caller should set a hotpointId that is unique in the session of current DxfViewer. - * @internal - */ - has(hotpointId: string): boolean; - /** - * @description {en} Moves a hotpoint. - * @description {zh} 移动热点的位置。 - * @example - * ``` typescript - * const hotpointId = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428"; - * const plugin = new HotpointPlugin(viewer); - * plugin.move(hotpointId, [10, 10, 0]); - * ``` - */ - move(hotpointId: string, position: Vector2 | Vector3): void; - /** - * @description {en} Hides or show a hotpoint. - * @description {zh} 显示或隐藏一个热点。 - * @example - * ``` typescript - * const hotpointId = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428"; - * const plugin = new HotpointPlugin(viewer); - * plugin.setVisible(hotpointId, false); - * ``` - */ - setVisible(hotpointId: string, visible: boolean): void; - protected findHotpointObject(hotpointId: string): CSS2DObject | undefined; - protected onAfterRender: () => void; -} +import * as THREE from "three"; +import { CSS2DObject, CSS2DRenderer } from "three/examples/jsm/renderers/CSS2DRenderer.js"; +import { BaseViewer, Hotpoint, Plugin, Vector2, Vector3 } from "../../core"; +/** + * Hotpoint plugin manages hotpoints in a viewer. + * It can be used by DxfViewer and BimViewer. + * The hotpoint feature in VRViewer is more complex, that one has nothing to do with this plugin. + * VRViewer is able to use this plugin though. + * - A hotpoint is created and stored by user. User define its html and css. + * - A hotpoint can be added to, and removed from viewer. + * - Caller should set a hotpointId that is unique in the session of current viewer. + * - DxfViewer doesn't maintain the relationship between hotpoint and layout. + */ +export declare class HotpointPlugin extends Plugin { + protected hotpointRoot?: THREE.Group; + protected css2dRenderer: CSS2DRenderer; + constructor(viewer: BaseViewer); + /** + * @description {en} Adds a hotpoint. + * Caller should set a hotpointId that is unique in the session of current viewer. + * @description {zh} 添加热点。 + * 调用者应该设置一个在当前Viewer会话中唯一的热点id。 + * @param hotpoint + * - {en} hotpoint data. + * - {zh} 热点数据。 + * @example + * ``` typescript + * const hotpoint = { + * hotpointId: "c6ea70a3-ddb0-4dd0-87c8-bd2491936428", + * anchorPosition: [0, 0, 0], + * html: "
hotpoint
", + * visible: true, + * }; + * const plugin = new HotpointPlugin(viewer); + * plugin.add(hotpoint); + * ``` + */ + add(hotpoint: Hotpoint): void; + /** + * @description {en} Removes a hotpoint by given hotpointId. + * @description {zh} 根据热点id删除热点。 + * @param {string} hotpointId + * - {en} hotpoint id. + * - {zh} 热点id。 + * @example + * ``` typescript + * const hotpointId = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428"; + * const plugin = new HotpointPlugin(viewer); + * plugin.remove(hotpointId); + * ``` + */ + remove(hotpointId: string): void; + /** + * @description {en} Clears all hotpoints. + * @description {zh} 清除所有热点。 + * @example + * ``` typescript + * const plugin = new HotpointPlugin(viewer); + * plugin.clear(); + * ``` + */ + clear(): void; + /** + * Checks if hotpoint with specific id already exist + * Caller should set a hotpointId that is unique in the session of current DxfViewer. + * @internal + */ + has(hotpointId: string): boolean; + /** + * @description {en} Moves a hotpoint. + * @description {zh} 移动热点的位置。 + * @example + * ``` typescript + * const hotpointId = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428"; + * const plugin = new HotpointPlugin(viewer); + * plugin.move(hotpointId, [10, 10, 0]); + * ``` + */ + move(hotpointId: string, position: Vector2 | Vector3): void; + /** + * @description {en} Hides or show a hotpoint. + * @description {zh} 显示或隐藏一个热点。 + * @example + * ``` typescript + * const hotpointId = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428"; + * const plugin = new HotpointPlugin(viewer); + * plugin.setVisible(hotpointId, false); + * ``` + */ + setVisible(hotpointId: string, visible: boolean): void; + protected findHotpointObject(hotpointId: string): CSS2DObject | undefined; + protected onAfterRender: () => void; +} diff --git a/demo/libs/types/plugins/hotpoint/index.d.ts b/demo/libs/types/plugins/hotpoint/index.d.ts index 6c145a7..f8a0aba 100644 --- a/demo/libs/types/plugins/hotpoint/index.d.ts +++ b/demo/libs/types/plugins/hotpoint/index.d.ts @@ -1 +1 @@ -export * from "./HotpointPlugin"; +export * from "./HotpointPlugin"; diff --git a/demo/libs/types/plugins/index.d.ts b/demo/libs/types/plugins/index.d.ts index fdee985..ab58ace 100644 --- a/demo/libs/types/plugins/index.d.ts +++ b/demo/libs/types/plugins/index.d.ts @@ -1,21 +1,21 @@ -export * from "./axis-gizmo"; -export * from "./bottom-bar"; -export * from "./context-menu"; -export * from "./dat-gui"; -export * from "./layer-manager"; -export * from "./explode"; -export * from "./ground-grass"; -export * from "./ground-grid"; -export * from "./ground-shaow"; -export * from "./hotpoint"; -export * from "./local-model-uploader"; -export * from "./measure"; -export * from "./nav-cube"; -export * from "./pdf"; -export * from "./screenshot"; -export * from "./stats"; -export * from "./skybox"; -export * from "./sections"; -export * from "./toolbars"; -export * from "./view-cube"; -export * from "./overview-map"; +export * from "./axis-gizmo"; +export * from "./bottom-bar"; +export * from "./context-menu"; +export * from "./dat-gui"; +export * from "./layer-manager"; +export * from "./explode"; +export * from "./ground-grass"; +export * from "./ground-grid"; +export * from "./ground-shaow"; +export * from "./hotpoint"; +export * from "./local-model-uploader"; +export * from "./measure"; +export * from "./nav-cube"; +export * from "./pdf"; +export * from "./screenshot"; +export * from "./stats"; +export * from "./skybox"; +export * from "./sections"; +export * from "./toolbars"; +export * from "./view-cube"; +export * from "./overview-map"; diff --git a/demo/libs/types/plugins/layer-manager/LayerManagerPlugin.d.ts b/demo/libs/types/plugins/layer-manager/LayerManagerPlugin.d.ts index 4b549f8..c6fde53 100644 --- a/demo/libs/types/plugins/layer-manager/LayerManagerPlugin.d.ts +++ b/demo/libs/types/plugins/layer-manager/LayerManagerPlugin.d.ts @@ -1,58 +1,59 @@ -import { DxfLayers, DxfViewer, PdfLayers, Plugin, PluginConfig } from "../../core"; -/** - * Dxf layer manager config. - */ -export interface LayerManagerPluginConfig extends PluginConfig { - /** - * Container div id. - */ - containerId: string; - /** - * If panel is visible. It is visible by default. - */ - visible?: boolean; -} -/** - * Layer manager plugin events. - */ -declare type LayerManagerPluginEvents = { - /** - * Panel visibility change handler. - */ - Visibilitychange: boolean; -}; -/** - * Dxf layer manager. - * Can be used by DxfViewer. - */ -export declare class LayerManagerPlugin extends Plugin { - protected cfg: LayerManagerPluginConfig; - protected container?: HTMLDivElement; - protected layerMgrRoot?: HTMLDivElement; - protected layerList?: HTMLDivElement; - protected headerText?: HTMLSpanElement; - protected closeBtn?: HTMLSpanElement; - protected dxfLayersArray?: (DxfLayers | PdfLayers)[]; - protected checkboxes?: HTMLInputElement[]; - protected mouseDownPositionX: number; - protected mouseDownPositionY: number; - constructor(viewer: DxfViewer, cfg?: LayerManagerPluginConfig); - protected init(): void; - setVisible(visible: boolean): void; - protected show(): void; - protected hide(): void; - destroy(): void; - buildPage(): void; - addContent(): void; - generateListItem(layer: string, visible: boolean, color?: string): string; - closePanel(): void; - addEventHandlers(): void; - protected onPointerDown: (e: MouseEvent) => void; - protected onPointerMove: (e: MouseEvent) => void; - protected onPointerUp: () => void; - checkboxHandler(checkbox: HTMLInputElement): void; - updatePage(): void; - updateHeaderText(): void; - convertDecimalToHex(decimal: number): string | undefined; -} -export {}; +import { DxfLayers, DxfViewer, PdfLayers, Plugin, PluginConfig } from "../../core"; +/** + * Dxf layer manager config. + */ +export interface LayerManagerPluginConfig extends Partial { + /** + * Container div id. + */ + containerId: string; + /** + * If panel is visible. It is visible by default. + */ + visible?: boolean; +} +/** + * Layer manager plugin events. + */ +declare type LayerManagerPluginEvents = { + /** + * Panel visibility change handler. + */ + Visibilitychange: boolean; +}; +/** + * Dxf layer manager. + * Can be used by DxfViewer. + */ +export declare class LayerManagerPlugin extends Plugin { + static DEFAULT_ID: string; + protected cfg: LayerManagerPluginConfig; + protected container?: HTMLDivElement; + protected layerMgrRoot?: HTMLDivElement; + protected layerList?: HTMLDivElement; + protected headerText?: HTMLSpanElement; + protected closeBtn?: HTMLSpanElement; + protected dxfLayersArray?: (DxfLayers | PdfLayers)[]; + protected checkboxes?: HTMLInputElement[]; + protected mouseDownPositionX: number; + protected mouseDownPositionY: number; + constructor(viewer: DxfViewer, cfg?: LayerManagerPluginConfig); + protected init(): void; + setVisible(visible: boolean): void; + protected show(): void; + protected hide(): void; + destroy(): void; + buildPage(): void; + addContent(): void; + generateListItem(layer: string, visible: boolean, color?: string): string; + closePanel(): void; + addEventHandlers(): void; + protected onPointerDown: (e: MouseEvent) => void; + protected onPointerMove: (e: MouseEvent) => void; + protected onPointerUp: () => void; + checkboxHandler(checkbox: HTMLInputElement): void; + updatePage(): void; + updateHeaderText(): void; + convertDecimalToHex(decimal: number): string | undefined; +} +export {}; diff --git a/demo/libs/types/plugins/layer-manager/index.d.ts b/demo/libs/types/plugins/layer-manager/index.d.ts index 1b854ca..f891351 100644 --- a/demo/libs/types/plugins/layer-manager/index.d.ts +++ b/demo/libs/types/plugins/layer-manager/index.d.ts @@ -1 +1 @@ -export * from "./LayerManagerPlugin"; +export * from "./LayerManagerPlugin"; diff --git a/demo/libs/types/plugins/local-model-uploader/IUploader.d.ts b/demo/libs/types/plugins/local-model-uploader/IUploader.d.ts index 00d2c18..73b9886 100644 --- a/demo/libs/types/plugins/local-model-uploader/IUploader.d.ts +++ b/demo/libs/types/plugins/local-model-uploader/IUploader.d.ts @@ -1,10 +1,10 @@ -/** - * @internal - */ -export declare class IUploader { - protected input: HTMLInputElement; - constructor(elementId?: string); - protected formats(): string[]; - protected uploadFiles(files: FileList): void; - openFileBrowserToUpload(): void; -} +/** + * @internal + */ +export declare class IUploader { + protected input: HTMLInputElement; + constructor(elementId?: string); + protected formats(): string[]; + protected uploadFiles(files: FileList): void; + openFileBrowserToUpload(): void; +} diff --git a/demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts b/demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts index 4e18ed4..2a97c39 100644 --- a/demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts +++ b/demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts @@ -1,23 +1,23 @@ -import { IUploader } from "./IUploader"; -import type { DxfViewer, ModelConfig } from "../../core"; -/** - * @internal - */ -export declare class LocalDxfUploader extends IUploader { - private viewer; - private pdfWorker; - onSuccess?: (event: any) => void; - readonly defaultModelConfig: ModelConfig; - constructor(viewer: DxfViewer, elementId?: string); - setPdfWorker(pdfWorker: string): void; - protected formats(): string[]; - protected uploadFiles(files: FileList): void; - /** - * Upload single dxf file. - */ - private uploadSingleDxf; - /** - * Upload single dxf file. - */ - private uploadSinglePdf; -} +import { IUploader } from "./IUploader"; +import type { DxfViewer, ModelConfig } from "../../core"; +/** + * @internal + */ +export declare class LocalDxfUploader extends IUploader { + private viewer; + private pdfWorker; + onSuccess?: (event: any) => void; + readonly defaultModelConfig: ModelConfig; + constructor(viewer: DxfViewer, elementId?: string); + setPdfWorker(pdfWorker: string): void; + protected formats(): string[]; + protected uploadFiles(files: FileList): void; + /** + * Upload single dxf file. + */ + private uploadSingleDxf; + /** + * Upload single dxf file. + */ + private uploadSinglePdf; +} diff --git a/demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts b/demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts index 11cfa3f..73cbd3d 100644 --- a/demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts +++ b/demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts @@ -1,11 +1,11 @@ -import { IUploader } from "./IUploader"; -import type { VRViewer } from "../../core"; -/** - * @internal - */ -export declare class LocalImageUploader extends IUploader { - viewer: VRViewer; - constructor(viewer: VRViewer, elementId: string); - protected formats(): string[]; - protected uploadFiles(files: FileList): void; -} +import { IUploader } from "./IUploader"; +import type { VRViewer } from "../../core"; +/** + * @internal + */ +export declare class LocalImageUploader extends IUploader { + viewer: VRViewer; + constructor(viewer: VRViewer, elementId: string); + protected formats(): string[]; + protected uploadFiles(files: FileList): void; +} diff --git a/demo/libs/types/plugins/local-model-uploader/LocalModelUploader.d.ts b/demo/libs/types/plugins/local-model-uploader/LocalModelUploader.d.ts index ee5be90..c9e42b1 100644 --- a/demo/libs/types/plugins/local-model-uploader/LocalModelUploader.d.ts +++ b/demo/libs/types/plugins/local-model-uploader/LocalModelUploader.d.ts @@ -1,25 +1,25 @@ -import { IUploader } from "./IUploader"; -import type { ModelConfig, BimViewer } from "../../core"; -/** - * @internal - */ -export declare class LocalModelUploader extends IUploader { - private viewer; - readonly defaultModelConfig: ModelConfig; - constructor(viewer: BimViewer, elementId?: string); - protected formats(): string[]; - /** - * Uploads model files. There are several cases: - * - Upload a single file, a glTF, obj, etc. - * - Upload a model with external (bin, texture) files. - * - Upload many model files with the same format, a number of glTF without external bin or texture. - * It doesn't support the case to upload many model files, and one or more of them contains external files. - */ - protected uploadFiles(files: FileList): void; - private checkAllFilesWithTheSameFormat; - /** - * Upload single model file without external texture/bin, etc. - * With this function, caller can upload many gltf/glb at one time. - */ - private uploadSingleFile; -} +import { IUploader } from "./IUploader"; +import type { ModelConfig, BimViewer } from "../../core"; +/** + * @internal + */ +export declare class LocalModelUploader extends IUploader { + private viewer; + readonly defaultModelConfig: ModelConfig; + constructor(viewer: BimViewer, elementId?: string); + protected formats(): string[]; + /** + * Uploads model files. There are several cases: + * - Upload a single file, a glTF, obj, etc. + * - Upload a model with external (bin, texture) files. + * - Upload many model files with the same format, a number of glTF without external bin or texture. + * It doesn't support the case to upload many model files, and one or more of them contains external files. + */ + protected uploadFiles(files: FileList): void; + private checkAllFilesWithTheSameFormat; + /** + * Upload single model file without external texture/bin, etc. + * With this function, caller can upload many gltf/glb at one time. + */ + private uploadSingleFile; +} diff --git a/demo/libs/types/plugins/local-model-uploader/index.d.ts b/demo/libs/types/plugins/local-model-uploader/index.d.ts index 80fd633..ecc7068 100644 --- a/demo/libs/types/plugins/local-model-uploader/index.d.ts +++ b/demo/libs/types/plugins/local-model-uploader/index.d.ts @@ -1,3 +1,3 @@ -export * from "./LocalModelUploader"; -export * from "./LocalDxfUploader"; -export * from "./LocalImageUploader"; +export * from "./LocalModelUploader"; +export * from "./LocalDxfUploader"; +export * from "./LocalImageUploader"; diff --git a/demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts b/demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts index 59e5896..b6b145f 100644 --- a/demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts +++ b/demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts @@ -1,12 +1,12 @@ -import * as THREE from "three"; -import { BaseMeasureDrawable } from "./BaseMeasureDrawable"; -import { MeasurementType } from "./BaseMeasurement"; -export declare class AngleMeasureDrawable extends BaseMeasureDrawable { - type: MeasurementType; - constructor(id: string, points: THREE.Vector3[]); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - getAngleBisector(startPoint: THREE.Vector3, middlePoint: THREE.Vector3, endPoint: THREE.Vector3): THREE.Vector3; - calculateAngle(startPoint: THREE.Vector3, middlePoint: THREE.Vector3, endPoint: THREE.Vector3): number; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMeasureDrawable } from "./BaseMeasureDrawable"; +import { MeasurementType } from "./BaseMeasurement"; +export declare class AngleMeasureDrawable extends BaseMeasureDrawable { + type: MeasurementType; + constructor(id: string, points: THREE.Vector3[]); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + getAngleBisector(startPoint: THREE.Vector3, middlePoint: THREE.Vector3, endPoint: THREE.Vector3): THREE.Vector3; + calculateAngle(startPoint: THREE.Vector3, middlePoint: THREE.Vector3, endPoint: THREE.Vector3): number; + getClassType(): string; +} diff --git a/demo/libs/types/plugins/measure/AngleMeasurement.d.ts b/demo/libs/types/plugins/measure/AngleMeasurement.d.ts index fb838dd..b7bb169 100644 --- a/demo/libs/types/plugins/measure/AngleMeasurement.d.ts +++ b/demo/libs/types/plugins/measure/AngleMeasurement.d.ts @@ -1,16 +1,16 @@ -import { AngleMeasureDrawable } from "./AngleMeasureDrawable"; -import { BaseMeasurement } from "./BaseMeasurement"; -import { DrawableList } from "../../core/canvas"; -import type { OSnapHelper } from "../../core/helpers"; -import { EventInfo, InputManager } from "../../core/input/InputManager"; -import type { BaseViewer } from "../../core/viewers"; -export declare class AngleMeasurement extends BaseMeasurement { - constructor(viewer: BaseViewer, input: InputManager, drawList: DrawableList, osnapHelper: OSnapHelper); - protected createMeasureDrawable(): AngleMeasureDrawable | undefined; - protected onMouseClick(e: EventInfo): void; - exitDrawing(): void; - protected complete(): void; - cancel(): void; - deactivate(): void; - protected setTooltipContent(): void; -} +import { AngleMeasureDrawable } from "./AngleMeasureDrawable"; +import { BaseMeasurement } from "./BaseMeasurement"; +import { DrawableList } from "../../core/canvas"; +import type { OSnapHelper } from "../../core/helpers"; +import { EventInfo, InputManager } from "../../core/input/InputManager"; +import type { BaseViewer } from "../../core/viewers"; +export declare class AngleMeasurement extends BaseMeasurement { + constructor(viewer: BaseViewer, input: InputManager, drawList: DrawableList, osnapHelper: OSnapHelper); + protected createMeasureDrawable(): AngleMeasureDrawable | undefined; + protected onMouseClick(e: EventInfo): void; + exitDrawing(): void; + protected complete(): void; + cancel(): void; + deactivate(): void; + protected setTooltipContent(): void; +} diff --git a/demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts b/demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts index 846a0c1..ff77ca9 100644 --- a/demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts +++ b/demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts @@ -1,14 +1,14 @@ -import * as THREE from "three"; -import { BaseMeasureDrawable } from "./BaseMeasureDrawable"; -import { MeasurementType } from "./BaseMeasurement"; -export declare class AreaMeasureDrawable extends BaseMeasureDrawable { - type: MeasurementType; - scale?: number; - constructor(id: string, points: THREE.Vector3[], scale?: number); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - calculateArea(points: THREE.Vector3[]): number; - getBarycenter(points: THREE.Vector3[]): THREE.Vector3; - isPointInPath(p: THREE.Vector3, raycaster?: THREE.Raycaster): boolean; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMeasureDrawable } from "./BaseMeasureDrawable"; +import { MeasurementType } from "./BaseMeasurement"; +export declare class AreaMeasureDrawable extends BaseMeasureDrawable { + type: MeasurementType; + scale?: number; + constructor(id: string, points: THREE.Vector3[], scale?: number); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + calculateArea(points: THREE.Vector3[]): number; + getBarycenter(points: THREE.Vector3[]): THREE.Vector3; + isPointInPath(p: THREE.Vector3, raycaster?: THREE.Raycaster): boolean; + getClassType(): string; +} diff --git a/demo/libs/types/plugins/measure/AreaMeasurement.d.ts b/demo/libs/types/plugins/measure/AreaMeasurement.d.ts index 86ce149..cc63d32 100644 --- a/demo/libs/types/plugins/measure/AreaMeasurement.d.ts +++ b/demo/libs/types/plugins/measure/AreaMeasurement.d.ts @@ -1,31 +1,31 @@ -import * as THREE from "three"; -import { AreaMeasureDrawable } from "./AreaMeasureDrawable"; -import { BaseMeasurement } from "./BaseMeasurement"; -import { DrawableList } from "../../core/canvas"; -import { OSnapHelper } from "../../core/helpers"; -import { EventInfo, InputManager } from "../../core/input/InputManager"; -import type { BaseViewer } from "../../core/viewers"; -export declare class AreaMeasurement extends BaseMeasurement { - /** - * The ratio of real world value and the value in three.js(pdf, a map, etc.). - */ - private scale?; - constructor(viewer: BaseViewer, input: InputManager, drawList: DrawableList, osnapHelper: OSnapHelper); - activate(): void; - deactivate(): void; - protected createMeasureDrawable(): AreaMeasureDrawable | undefined; - protected onMouseMove(position: THREE.Vector3): void; - protected onMouseClick(e: EventInfo): void; - exitDrawing(): void; - protected complete(): void; - cancel(): void; - protected setTooltipContent(): void; - /** - * Gets the scale value. - */ - getScale(): number | undefined; - /** - * Sets the scale value. - */ - setScale(scale: number): void; -} +import * as THREE from "three"; +import { AreaMeasureDrawable } from "./AreaMeasureDrawable"; +import { BaseMeasurement } from "./BaseMeasurement"; +import { DrawableList } from "../../core/canvas"; +import { OSnapHelper } from "../../core/helpers"; +import { EventInfo, InputManager } from "../../core/input/InputManager"; +import type { BaseViewer } from "../../core/viewers"; +export declare class AreaMeasurement extends BaseMeasurement { + /** + * The ratio of real world value and the value in three.js(pdf, a map, etc.). + */ + private scale?; + constructor(viewer: BaseViewer, input: InputManager, drawList: DrawableList, osnapHelper: OSnapHelper); + activate(): void; + deactivate(): void; + protected createMeasureDrawable(): AreaMeasureDrawable | undefined; + protected onMouseMove(position: THREE.Vector3): void; + protected onMouseClick(e: EventInfo): void; + exitDrawing(): void; + protected complete(): void; + cancel(): void; + protected setTooltipContent(): void; + /** + * Gets the scale value. + */ + getScale(): number | undefined; + /** + * Sets the scale value. + */ + setScale(scale: number): void; +} diff --git a/demo/libs/types/plugins/measure/BaseMeasureDrawable.d.ts b/demo/libs/types/plugins/measure/BaseMeasureDrawable.d.ts index eaea8e8..6ac1a00 100644 --- a/demo/libs/types/plugins/measure/BaseMeasureDrawable.d.ts +++ b/demo/libs/types/plugins/measure/BaseMeasureDrawable.d.ts @@ -1,30 +1,30 @@ -import * as THREE from "three"; -import { MeasurementType } from "./BaseMeasurement"; -import type { MeasurementData } from "./BaseMeasurement"; -import { Drawable } from "../../core/canvas/Drawable"; -export declare abstract class BaseMeasureDrawable extends Drawable { - type: MeasurementType; - static readonly MAJOR_COLOR = "rgba(249, 157, 11, 0.9)"; - static readonly MINOR_COLOR = "rgb(255, 255, 255)"; - static readonly AREA_FILL_COLOR = "rgba(249, 157, 11, 0.3)"; - static readonly LINE_WIDTH = 2; - static readonly POINT_RADIUS = 5; - static readonly LABEL_FONT_SIZE = 14; - label?: string; - labelPositon?: THREE.Vector2; - labelBounds: THREE.Box2; - drawing: boolean; - constructor(id: string, points: THREE.Vector3[]); - setDrawingState(isDrawing: boolean): void; - drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawPoints(ctx: CanvasRenderingContext2D, camera: THREE.Camera, points: THREE.Vector3[]): void; - drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawRoundRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, radius: number): void; - getVertexes(): THREE.Vector3[]; - update(points: THREE.Vector3[]): this; - getBounds(): THREE.Box3; - getData(): MeasurementData; - setData(data: MeasurementData): void; - isPointInPath(p: THREE.Vector3, raycaster?: THREE.Raycaster): boolean; - getUnitString(): string; -} +import * as THREE from "three"; +import { MeasurementType } from "./BaseMeasurement"; +import type { MeasurementData } from "./BaseMeasurement"; +import { Drawable } from "../../core/canvas/Drawable"; +export declare abstract class BaseMeasureDrawable extends Drawable { + type: MeasurementType; + static readonly MAJOR_COLOR = "rgba(249, 157, 11, 0.9)"; + static readonly MINOR_COLOR = "rgb(255, 255, 255)"; + static readonly AREA_FILL_COLOR = "rgba(249, 157, 11, 0.3)"; + static readonly LINE_WIDTH = 2; + static readonly POINT_RADIUS = 5; + static readonly LABEL_FONT_SIZE = 14; + label?: string; + labelPositon?: THREE.Vector2; + labelBounds: THREE.Box2; + drawing: boolean; + constructor(id: string, points: THREE.Vector3[]); + setDrawingState(isDrawing: boolean): void; + drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawPoints(ctx: CanvasRenderingContext2D, camera: THREE.Camera, points: THREE.Vector3[]): void; + drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawRoundRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, radius: number): void; + getVertexes(): THREE.Vector3[]; + update(points: THREE.Vector3[]): this; + getBounds(): THREE.Box3; + getData(): MeasurementData; + setData(data: MeasurementData): void; + isPointInPath(p: THREE.Vector3, raycaster?: THREE.Raycaster): boolean; + getUnitString(): string; +} diff --git a/demo/libs/types/plugins/measure/BaseMeasurement.d.ts b/demo/libs/types/plugins/measure/BaseMeasurement.d.ts index 142dad5..d6668a2 100644 --- a/demo/libs/types/plugins/measure/BaseMeasurement.d.ts +++ b/demo/libs/types/plugins/measure/BaseMeasurement.d.ts @@ -1,126 +1,126 @@ -import * as THREE from "three"; -import type { BaseMeasureDrawable } from "./BaseMeasureDrawable"; -import { Tooltip } from "../../components/tool-tip"; -import { DrawableData } from "../../core/canvas/Constants"; -import { DrawableList } from "../../core/canvas/DrawableList"; -import type { MobileTouchHelperDrawable, OSnapHelper } from "../../core/helpers"; -import { EventInfo, InputManager } from "../../core/input/InputManager"; -import { Event } from "../../core/utils"; -import type { BaseViewer } from "../../core/viewers"; -/** - * Measurement type. e.g. distance measurement, area measurement, etc. - */ -export declare enum MeasurementType { - Distance = "Distance", - Area = "Area", - Angle = "Angle", - /** - * @internal - */ - Coordinate = "Coordinate" -} -/** - * Serializable measurement data - */ -export declare type MeasurementData = DrawableData; -declare type MeasurementEvents = { - /** - * Triggered when clicked measure - */ - ClickedOnMeasurement: BaseMeasureDrawable; - /** - * Triggered when draw measure completed - */ - Completed: BaseMeasureDrawable; - /** - * Triggered when deactivate measure - */ - Deactivate: MeasurementType; - /** - * Triggered when draw first point - */ - FirstPointPicked: BaseMeasureDrawable; - /** - * Triggered when draw measure will be added - */ - WillBeAdded: BaseMeasureDrawable; - /** - * Triggered when draw measure was updated - */ - Updated: BaseMeasureDrawable; - /** - * Triggered when draw measure will be removed - */ - WillBeRemoved: BaseMeasureDrawable; -}; -/** - * BaseMeasurement class - */ -export declare abstract class BaseMeasurement extends Event { - protected type: MeasurementType; - protected viewer: BaseViewer; - private inputManager; - protected drawList: DrawableList; - protected osnapHelper: OSnapHelper; - protected raycaster?: THREE.Raycaster; - protected mouseMoved: boolean; - protected mouseDowned: boolean; - protected touchDowned: boolean; - protected lastMoveEvent?: EventInfo; - protected lastMouseDownPosition?: THREE.Vector3; - protected mouseDownPositionX: number; - protected mouseDownPositionY: number; - protected currentMeasureDrawable?: BaseMeasureDrawable; - protected drawingPoints?: THREE.Vector3[]; - protected lastClickTime?: number; - protected tooltip?: Tooltip; - protected snapPoint?: THREE.Vector3 | undefined; - protected completed?: boolean; - protected clickedOnMeasurementDrawable?: BaseMeasureDrawable; - protected mobileTouchHelper?: MobileTouchHelperDrawable; - protected exitButton?: HTMLButtonElement; - protected firstPickedListener?: () => void; - protected completedListener?: () => void; - constructor(type: MeasurementType, viewer: BaseViewer, input: InputManager, drawList: DrawableList, osnapHelper: OSnapHelper); - get canvas(): HTMLCanvasElement; - get camera(): THREE.Camera; - get renderer(): THREE.WebGLRenderer; - /** - * If measurement is active. - * Here let's use raycaster to identify whether this measurement is active. - */ - get isActive(): boolean; - /** - * If it started to measure, but a measruement action is not completed yet. - */ - get isMeasuring(): boolean; - setTouchHelper(mobileTouchHelper: MobileTouchHelperDrawable): void; - protected createMobileExitButton(): HTMLButtonElement; - activate(): void; - deactivate(): void; - protected removeDrawable(drawable: BaseMeasureDrawable): void; - clearClickedDrawable(): void; - touchstart: (e: EventInfo) => void; - touchmove: (e: EventInfo) => void; - touchend: (e: EventInfo) => void; - mousedown: (e: EventInfo) => void; - mousemove: (e: EventInfo) => void; - mouseup: (e: EventInfo) => void; - dblclick: () => void; - protected onMouseClick(e: EventInfo): void; - protected selectMeasurementByEvent(e: EventInfo): void; - keydown: (e: EventInfo) => void; - abstract exitDrawing(): void; - abstract cancel(): void; - protected abstract complete(): void; - protected abstract setTooltipContent(): void; - protected abstract createMeasureDrawable(): BaseMeasureDrawable | undefined; - protected onMouseMove(position: THREE.Vector3): void; - protected createOrUpdateMeasureDrawable(position?: THREE.Vector3): void; - /** - * The closest intersection - * @param e - */ - getIntersections: (e: EventInfo) => THREE.Intersection[]; -} -export {}; +import * as THREE from "three"; +import type { BaseMeasureDrawable } from "./BaseMeasureDrawable"; +import { Tooltip } from "../../components/tool-tip"; +import { DrawableData } from "../../core/canvas/Constants"; +import { DrawableList } from "../../core/canvas/DrawableList"; +import type { MobileTouchHelperDrawable, OSnapHelper } from "../../core/helpers"; +import { EventInfo, InputManager } from "../../core/input/InputManager"; +import { Event } from "../../core/utils"; +import type { BaseViewer } from "../../core/viewers"; +/** + * Measurement type. e.g. distance measurement, area measurement, etc. + */ +export declare enum MeasurementType { + Distance = "Distance", + Area = "Area", + Angle = "Angle", + /** + * @internal + */ + Coordinate = "Coordinate" +} +/** + * Serializable measurement data + */ +export declare type MeasurementData = DrawableData; +declare type MeasurementEvents = { + /** + * Triggered when clicked measure + */ + ClickedOnMeasurement: BaseMeasureDrawable; + /** + * Triggered when draw measure completed + */ + Completed: BaseMeasureDrawable; + /** + * Triggered when deactivate measure + */ + Deactivate: MeasurementType; + /** + * Triggered when draw first point + */ + FirstPointPicked: BaseMeasureDrawable; + /** + * Triggered when draw measure will be added + */ + WillBeAdded: BaseMeasureDrawable; + /** + * Triggered when draw measure was updated + */ + Updated: BaseMeasureDrawable; + /** + * Triggered when draw measure will be removed + */ + WillBeRemoved: BaseMeasureDrawable; +}; +/** + * BaseMeasurement class + */ +export declare abstract class BaseMeasurement extends Event { + protected type: MeasurementType; + protected viewer: BaseViewer; + private inputManager; + protected drawList: DrawableList; + protected osnapHelper: OSnapHelper; + protected raycaster?: THREE.Raycaster; + protected mouseMoved: boolean; + protected mouseDowned: boolean; + protected touchDowned: boolean; + protected lastMoveEvent?: EventInfo; + protected lastMouseDownPosition?: THREE.Vector3; + protected mouseDownPositionX: number; + protected mouseDownPositionY: number; + protected currentMeasureDrawable?: BaseMeasureDrawable; + protected drawingPoints?: THREE.Vector3[]; + protected lastClickTime?: number; + protected tooltip?: Tooltip; + protected snapPoint?: THREE.Vector3 | undefined; + protected completed?: boolean; + protected clickedOnMeasurementDrawable?: BaseMeasureDrawable; + protected mobileTouchHelper?: MobileTouchHelperDrawable; + protected exitButton?: HTMLButtonElement; + protected firstPickedListener?: () => void; + protected completedListener?: () => void; + constructor(type: MeasurementType, viewer: BaseViewer, input: InputManager, drawList: DrawableList, osnapHelper: OSnapHelper); + get canvas(): HTMLCanvasElement; + get camera(): THREE.Camera; + get renderer(): THREE.WebGLRenderer; + /** + * If measurement is active. + * Here let's use raycaster to identify whether this measurement is active. + */ + get isActive(): boolean; + /** + * If it started to measure, but a measruement action is not completed yet. + */ + get isMeasuring(): boolean; + setTouchHelper(mobileTouchHelper: MobileTouchHelperDrawable): void; + protected createMobileExitButton(): HTMLButtonElement; + activate(): void; + deactivate(): void; + protected removeDrawable(drawable: BaseMeasureDrawable): void; + clearClickedDrawable(): void; + touchstart: (e: EventInfo) => void; + touchmove: (e: EventInfo) => void; + touchend: (e: EventInfo) => void; + mousedown: (e: EventInfo) => void; + mousemove: (e: EventInfo) => void; + mouseup: (e: EventInfo) => void; + dblclick: () => void; + protected onMouseClick(e: EventInfo): void; + protected selectMeasurementByEvent(e: EventInfo): void; + keydown: (e: EventInfo) => void; + abstract exitDrawing(): void; + abstract cancel(): void; + protected abstract complete(): void; + protected abstract setTooltipContent(): void; + protected abstract createMeasureDrawable(): BaseMeasureDrawable | undefined; + protected onMouseMove(position: THREE.Vector3): void; + protected createOrUpdateMeasureDrawable(position?: THREE.Vector3): void; + /** + * The closest intersection + * @param e + */ + getIntersections: (e: EventInfo) => THREE.Intersection[]; +} +export {}; diff --git a/demo/libs/types/plugins/measure/CoordinateMeasureDrawable.d.ts b/demo/libs/types/plugins/measure/CoordinateMeasureDrawable.d.ts index 2783552..ee3b4a3 100644 --- a/demo/libs/types/plugins/measure/CoordinateMeasureDrawable.d.ts +++ b/demo/libs/types/plugins/measure/CoordinateMeasureDrawable.d.ts @@ -1,10 +1,10 @@ -import * as THREE from "three"; -import { BaseMeasureDrawable } from "./BaseMeasureDrawable"; -import { MeasurementType } from "./BaseMeasurement"; -export declare class CoordinateMeasureDrawable extends BaseMeasureDrawable { - type: MeasurementType; - constructor(id: string, points: THREE.Vector3[]); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - getClassType(): string; -} +import * as THREE from "three"; +import { BaseMeasureDrawable } from "./BaseMeasureDrawable"; +import { MeasurementType } from "./BaseMeasurement"; +export declare class CoordinateMeasureDrawable extends BaseMeasureDrawable { + type: MeasurementType; + constructor(id: string, points: THREE.Vector3[]); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + getClassType(): string; +} diff --git a/demo/libs/types/plugins/measure/CoordinateMeasurement.d.ts b/demo/libs/types/plugins/measure/CoordinateMeasurement.d.ts index 0a06b24..18ff3e3 100644 --- a/demo/libs/types/plugins/measure/CoordinateMeasurement.d.ts +++ b/demo/libs/types/plugins/measure/CoordinateMeasurement.d.ts @@ -1,15 +1,15 @@ -import { BaseMeasurement } from "./BaseMeasurement"; -import { CoordinateMeasureDrawable } from "./CoordinateMeasureDrawable"; -import { DrawableList } from "../../core/canvas"; -import { OSnapHelper } from "../../core/helpers"; -import { EventInfo, InputManager } from "../../core/input/InputManager"; -import type { BaseViewer } from "../../core/viewers"; -export declare class CoordinateMeasurement extends BaseMeasurement { - constructor(viewer: BaseViewer, input: InputManager, drawList: DrawableList, osnapHelper: OSnapHelper); - protected createMeasureDrawable(): CoordinateMeasureDrawable | undefined; - protected onMouseClick(e: EventInfo): void; - exitDrawing(): void; - protected complete(): void; - cancel(): void; - protected setTooltipContent(): void; -} +import { BaseMeasurement } from "./BaseMeasurement"; +import { CoordinateMeasureDrawable } from "./CoordinateMeasureDrawable"; +import { DrawableList } from "../../core/canvas"; +import { OSnapHelper } from "../../core/helpers"; +import { EventInfo, InputManager } from "../../core/input/InputManager"; +import type { BaseViewer } from "../../core/viewers"; +export declare class CoordinateMeasurement extends BaseMeasurement { + constructor(viewer: BaseViewer, input: InputManager, drawList: DrawableList, osnapHelper: OSnapHelper); + protected createMeasureDrawable(): CoordinateMeasureDrawable | undefined; + protected onMouseClick(e: EventInfo): void; + exitDrawing(): void; + protected complete(): void; + cancel(): void; + protected setTooltipContent(): void; +} diff --git a/demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts b/demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts index 5ecf718..2b6ba29 100644 --- a/demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts +++ b/demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts @@ -1,15 +1,15 @@ -import * as THREE from "three"; -import { BaseMeasureDrawable } from "./BaseMeasureDrawable"; -import { MeasurementType } from "./BaseMeasurement"; -export declare class DistanceMeasureDrawable extends BaseMeasureDrawable { - static readonly SHORT_LINE_LENGTH = 12; - scale?: number; - type: MeasurementType; - constructor(id: string, points: THREE.Vector3[], scale?: number); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - private drawVerticalLine; - private getShortLineBySegments; - getClassType(): string; - setScale(scale: number): void; -} +import * as THREE from "three"; +import { BaseMeasureDrawable } from "./BaseMeasureDrawable"; +import { MeasurementType } from "./BaseMeasurement"; +export declare class DistanceMeasureDrawable extends BaseMeasureDrawable { + static readonly SHORT_LINE_LENGTH = 12; + scale?: number; + type: MeasurementType; + constructor(id: string, points: THREE.Vector3[], scale?: number); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawText(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + private drawVerticalLine; + private getShortLineBySegments; + getClassType(): string; + setScale(scale: number): void; +} diff --git a/demo/libs/types/plugins/measure/DistanceMeasurement.d.ts b/demo/libs/types/plugins/measure/DistanceMeasurement.d.ts index b741670..06443f8 100644 --- a/demo/libs/types/plugins/measure/DistanceMeasurement.d.ts +++ b/demo/libs/types/plugins/measure/DistanceMeasurement.d.ts @@ -1,28 +1,28 @@ -import { BaseMeasurement } from "./BaseMeasurement"; -import { DistanceMeasureDrawable } from "./DistanceMeasureDrawable"; -import { DrawableList } from "../../core/canvas"; -import { OSnapHelper } from "../../core/helpers"; -import { EventInfo, InputManager } from "../../core/input/InputManager"; -import type { BaseViewer } from "../../core/viewers"; -export declare class DistanceMeasurement extends BaseMeasurement { - /** - * The ratio of real world value and the value in three.js(pdf, a map, etc.). - */ - private scale?; - constructor(viewer: BaseViewer, input: InputManager, drawList: DrawableList, osnapHelper: OSnapHelper); - protected createMeasureDrawable(): DistanceMeasureDrawable | undefined; - protected onMouseClick(e: EventInfo): void; - exitDrawing(): void; - protected complete(): void; - cancel(): void; - deactivate(): void; - protected setTooltipContent(): void; - /** - * Gets the scale value. - */ - getScale(): number | undefined; - /** - * Sets the scale value. - */ - setScale(scale: number): void; -} +import { BaseMeasurement } from "./BaseMeasurement"; +import { DistanceMeasureDrawable } from "./DistanceMeasureDrawable"; +import { DrawableList } from "../../core/canvas"; +import { OSnapHelper } from "../../core/helpers"; +import { EventInfo, InputManager } from "../../core/input/InputManager"; +import type { BaseViewer } from "../../core/viewers"; +export declare class DistanceMeasurement extends BaseMeasurement { + /** + * The ratio of real world value and the value in three.js(pdf, a map, etc.). + */ + private scale?; + constructor(viewer: BaseViewer, input: InputManager, drawList: DrawableList, osnapHelper: OSnapHelper); + protected createMeasureDrawable(): DistanceMeasureDrawable | undefined; + protected onMouseClick(e: EventInfo): void; + exitDrawing(): void; + protected complete(): void; + cancel(): void; + deactivate(): void; + protected setTooltipContent(): void; + /** + * Gets the scale value. + */ + getScale(): number | undefined; + /** + * Sets the scale value. + */ + setScale(scale: number): void; +} diff --git a/demo/libs/types/plugins/measure/MeasurementPlugin.d.ts b/demo/libs/types/plugins/measure/MeasurementPlugin.d.ts index cf7bce4..8630438 100644 --- a/demo/libs/types/plugins/measure/MeasurementPlugin.d.ts +++ b/demo/libs/types/plugins/measure/MeasurementPlugin.d.ts @@ -1,131 +1,131 @@ -import * as THREE from "three"; -import { BaseMeasureDrawable } from "./BaseMeasureDrawable"; -import { MeasurementData, MeasurementType } from "./BaseMeasurement"; -import type { BaseViewer } from "../../core/viewers"; -import { Plugin } from "../../core/viewers/Plugin"; -export declare class MeasurementPlugin extends Plugin { - selectedDrawable: BaseMeasureDrawable | undefined; - private overlayRender?; - private drawableList; - private drawableHelperList; - private inputManager; - private osnapHelper; - private snapToleranceInPixel; - private measurements; - private activeMeasurementType; - private mobileTouchHelper?; - constructor(viewer: BaseViewer); - private initEvents; - protected get canvas(): HTMLCanvasElement; - protected get raycaster(): THREE.Raycaster | undefined; - add(drawable: BaseMeasureDrawable, needFireEvent?: boolean): void; - create(data: MeasurementData): BaseMeasureDrawable; - remove(drawable: BaseMeasureDrawable, needFireEvent?: boolean): void; - /** - * Set osnap tolerance in pixcel size. The pixcel size will be converted to a size in world coordinate and pass to OSnapHelper. - */ - setSnapTolerance(toleranceInPixel: number): void; - /** - * Updates osnap tolerance. - * We should call this once camera's zoom, fov or position/target changed, etc. - */ - private updateSnapTolerance; - /** - * - * @param {MeasurementType} type - * @description {en} Activates one of "Distance", "Area" or "Angle" measurement - * @description {zh} 激活"距离", "面积" 或者 "角度"测量 - */ - activate(type: MeasurementType): void; - /** - * @description {en} Deactivates measurement. - * @description {zh} 退出测量。 - */ - deactivate(): void; - getActiveMeasurementType(): MeasurementType | undefined; - /** - * - * @returns {boolean} - * @description Is measure plugin active - */ - isActive(): boolean; - /** - * - * @returns {boolean} Is measuring now - */ - isMeasuring(): boolean; - /** - * - * @returns {MeasurementData[]} - * @description {en} Gets all measurements. - * @description {zh} 获取所有测量数据。 - */ - getData(): MeasurementData[]; - /** - * @description {en} Cancels current measurement. This won't deactivate measurement, rather, you can start a new measurement. - * @description {zh} 取消当前的测量绘制。这并不会退出测量,用户可以开始一个新的测量。 - */ - cancel(): void; - /** - * - * @param {MeasurementData[]} dataArray - * @description {en} Sets measurement data. - * @description {zh} 设置测量数据。 - */ - setData(dataArray: MeasurementData[]): void; - /** - * Sets a measurement drawable's visibility by id. - * @param id - * @param visible - * @returns - * @description Sets a measurement's visibility. - */ - setVisibilityById(id: string, visible: boolean): boolean; - /** - * Sets all measurement drawables' visibilities. - */ - setVisibilities(visible: boolean): void; - /** - * @description {en} Clears measurement results. - * @description {zh} 清除测量结果。 - */ - clear(): void; - /** - * Gets a measurement drawable by id. - */ - getById(id: string): BaseMeasureDrawable; - removeById(id: string): void; - /** - * Selects a measurement drawable by id. - * @param {string} id - * @description Selects a measurement by id - */ - selectById(id: string): void; - /** - * Selects a measurement drawable. - */ - select(drawable: BaseMeasureDrawable): void; - /** - * - * @param renderEnabled If need render measurement - * @description Unselects a measurement. - */ - unselect(renderEnabled?: boolean): void; - /** - * Gets the scale value. - * Scale is the ratio of real world value and the value in three.js(pdf, a map, etc.). - * e.g., Real world distance is 1000, and the value in three.js is 1, then scale is 1000. - * We should display 1000 rather than 1 while measuring. - */ - getScale(): number | undefined; - /** - * Sets the scale value. - */ - setScale(scale: number | undefined): void; - /** - * @description Destroy measure plugin - */ - destroy(): void; - private keydown; - private render; -} +import { BaseMeasureDrawable } from "./BaseMeasureDrawable"; +import { MeasurementData, MeasurementType } from "./BaseMeasurement"; +import type { BaseViewer } from "../../core/viewers"; +import { Plugin } from "../../core/viewers/Plugin"; +export declare class MeasurementPlugin extends Plugin { + static DEFAULT_ID: string; + selectedDrawable: BaseMeasureDrawable | undefined; + private overlayRender?; + private drawableList; + private drawableHelperList; + private inputManager; + private osnapHelper; + private snapToleranceInPixel; + private measurements; + private activeMeasurementType; + private mobileTouchHelper?; + constructor(viewer: BaseViewer); + private initEvents; + protected get canvas(): HTMLCanvasElement; + protected get raycaster(): any; + add(drawable: BaseMeasureDrawable, needFireEvent?: boolean): void; + create(data: MeasurementData): BaseMeasureDrawable; + remove(drawable: BaseMeasureDrawable, needFireEvent?: boolean): void; + /** + * Set osnap tolerance in pixcel size. The pixcel size will be converted to a size in world coordinate and pass to OSnapHelper. + */ + setSnapTolerance(toleranceInPixel: number): void; + /** + * Updates osnap tolerance. + * We should call this once camera's zoom, fov or position/target changed, etc. + */ + private updateSnapTolerance; + /** + * + * @param {MeasurementType} type + * @description {en} Activates one of "Distance", "Area" or "Angle" measurement + * @description {zh} 激活"距离", "面积" 或者 "角度"测量 + */ + activate(type: MeasurementType): void; + /** + * @description {en} Deactivates measurement. + * @description {zh} 退出测量。 + */ + deactivate(): void; + getActiveMeasurementType(): MeasurementType | undefined; + /** + * + * @returns {boolean} + * @description Is measure plugin active + */ + isActive(): boolean; + /** + * + * @returns {boolean} Is measuring now + */ + isMeasuring(): boolean; + /** + * + * @returns {MeasurementData[]} + * @description {en} Gets all measurements. + * @description {zh} 获取所有测量数据。 + */ + getData(): MeasurementData[]; + /** + * @description {en} Cancels current measurement. This won't deactivate measurement, rather, you can start a new measurement. + * @description {zh} 取消当前的测量绘制。这并不会退出测量,用户可以开始一个新的测量。 + */ + cancel(): void; + /** + * + * @param {MeasurementData[]} dataArray + * @description {en} Sets measurement data. + * @description {zh} 设置测量数据。 + */ + setData(dataArray: MeasurementData[]): void; + /** + * Sets a measurement drawable's visibility by id. + * @param id + * @param visible + * @returns + * @description Sets a measurement's visibility. + */ + setVisibilityById(id: string, visible: boolean): boolean; + /** + * Sets all measurement drawables' visibilities. + */ + setVisibilities(visible: boolean): void; + /** + * @description {en} Clears measurement results. + * @description {zh} 清除测量结果。 + */ + clear(): void; + /** + * Gets a measurement drawable by id. + */ + getById(id: string): BaseMeasureDrawable; + removeById(id: string): void; + /** + * Selects a measurement drawable by id. + * @param {string} id + * @description Selects a measurement by id + */ + selectById(id: string): void; + /** + * Selects a measurement drawable. + */ + select(drawable: BaseMeasureDrawable): void; + /** + * + * @param renderEnabled If need render measurement + * @description Unselects a measurement. + */ + unselect(renderEnabled?: boolean): void; + /** + * Gets the scale value. + * Scale is the ratio of real world value and the value in three.js(pdf, a map, etc.). + * e.g., Real world distance is 1000, and the value in three.js is 1, then scale is 1000. + * We should display 1000 rather than 1 while measuring. + */ + getScale(): number | undefined; + /** + * Sets the scale value. + */ + setScale(scale: number | undefined): void; + /** + * @description Destroy measure plugin + */ + destroy(): void; + private keydown; + private render; +} diff --git a/demo/libs/types/plugins/measure/index.d.ts b/demo/libs/types/plugins/measure/index.d.ts index 4a397e6..0154043 100644 --- a/demo/libs/types/plugins/measure/index.d.ts +++ b/demo/libs/types/plugins/measure/index.d.ts @@ -1,3 +1,3 @@ -export * from "./BaseMeasureDrawable"; -export * from "./BaseMeasurement"; -export * from "./MeasurementPlugin"; +export * from "./BaseMeasureDrawable"; +export * from "./BaseMeasurement"; +export * from "./MeasurementPlugin"; diff --git a/demo/libs/types/plugins/nav-cube/NavCube.d.ts b/demo/libs/types/plugins/nav-cube/NavCube.d.ts index adf3703..1aa9e62 100644 --- a/demo/libs/types/plugins/nav-cube/NavCube.d.ts +++ b/demo/libs/types/plugins/nav-cube/NavCube.d.ts @@ -1,12 +1,12 @@ -import { Euler, Object3D, Vector3 } from "three"; -export interface NavCubeConfig { - onClick?: (direction: Vector3, rotation: Euler) => void; -} -export declare class NavCube extends Object3D { - NAVCUBE_SIZE: number; - private clickHandler; - constructor(cfg?: NavCubeConfig); - private createPlane; - private createEdge; - private createCorner; -} +import { Euler, Object3D, Vector3 } from "three"; +export interface NavCubeConfig { + onClick?: (direction: Vector3, rotation: Euler) => void; +} +export declare class NavCube extends Object3D { + NAVCUBE_SIZE: number; + private clickHandler; + constructor(cfg?: NavCubeConfig); + private createPlane; + private createEdge; + private createCorner; +} diff --git a/demo/libs/types/plugins/nav-cube/NavCubePlugin.d.ts b/demo/libs/types/plugins/nav-cube/NavCubePlugin.d.ts index 07345df..06c2dcd 100644 --- a/demo/libs/types/plugins/nav-cube/NavCubePlugin.d.ts +++ b/demo/libs/types/plugins/nav-cube/NavCubePlugin.d.ts @@ -1,35 +1,36 @@ -import { OrthographicCamera, Scene, Vector3 } from "three"; -import { CSS3DRenderer } from "three/examples/jsm/renderers/CSS3DRenderer.js"; -import { NavCube } from "./NavCube"; -import { Plugin, type BaseViewer, PluginConfig } from "../../core/viewers"; -/** - * ViewCube plugin config. - */ -export interface NavCubePluginConfig extends PluginConfig { - containerId: string; -} -/** - * This renderer monitors the host renderer's camera, and keeps a NavCube - * the same direction as host renderer's - */ -export declare class NavCubePlugin extends Plugin { - protected cfg: NavCubePluginConfig; - protected renderer?: CSS3DRenderer; - protected navCube?: NavCube; - protected camera?: OrthographicCamera; - protected scene?: Scene; - constructor(viewer: BaseViewer, cfg?: NavCubePluginConfig); - protected init(): void; - protected initRenderer(): void; - protected initScene(): void; - protected render(): void; - protected animate(): void; - protected update(): void; - /** - * Update navCube according to camera direction. - * Camera's direction is the only input factor for this class. It always look at the origin. - * @param direction - */ - protected updateCameraDirection(direction: Vector3, up: Vector3): void; - destroy(): void; -} +import { OrthographicCamera, Scene, Vector3 } from "three"; +import { CSS3DRenderer } from "three/examples/jsm/renderers/CSS3DRenderer.js"; +import { NavCube } from "./NavCube"; +import { Plugin, type BaseViewer, PluginConfig } from "../../core/viewers"; +/** + * ViewCube plugin config. + */ +export interface NavCubePluginConfig extends Partial { + containerId: string; +} +/** + * This renderer monitors the host renderer's camera, and keeps a NavCube + * the same direction as host renderer's + */ +export declare class NavCubePlugin extends Plugin { + static DEFAULT_ID: string; + protected cfg: NavCubePluginConfig; + protected renderer?: CSS3DRenderer; + protected navCube?: NavCube; + protected camera?: OrthographicCamera; + protected scene?: Scene; + constructor(viewer: BaseViewer, cfg?: NavCubePluginConfig); + protected init(): void; + protected initRenderer(): void; + protected initScene(): void; + protected render(): void; + protected animate(): void; + protected update(): void; + /** + * Update navCube according to camera direction. + * Camera's direction is the only input factor for this class. It always look at the origin. + * @param direction + */ + protected updateCameraDirection(direction: Vector3, up: Vector3): void; + destroy(): void; +} diff --git a/demo/libs/types/plugins/nav-cube/index.d.ts b/demo/libs/types/plugins/nav-cube/index.d.ts index a0a7c0f..d2298eb 100644 --- a/demo/libs/types/plugins/nav-cube/index.d.ts +++ b/demo/libs/types/plugins/nav-cube/index.d.ts @@ -1 +1 @@ -export * from "./NavCubePlugin"; +export * from "./NavCubePlugin"; diff --git a/demo/libs/types/plugins/overview-map/ImageDrawable.d.ts b/demo/libs/types/plugins/overview-map/ImageDrawable.d.ts index db33201..58dfdeb 100644 --- a/demo/libs/types/plugins/overview-map/ImageDrawable.d.ts +++ b/demo/libs/types/plugins/overview-map/ImageDrawable.d.ts @@ -1,40 +1,41 @@ -import * as THREE from "three"; -import { Vector3, Vector2 } from "../../core/Constants"; -import { Drawable } from "../../core/canvas/Drawable"; -export interface ImageDrawableConfig { - image: HTMLImageElement; - position: Vector3 | THREE.Vector3; - radius?: number; - displayRadius?: number; - enabledHover?: boolean; - direction?: Vector3 | THREE.Vector3; - rotation?: number; - hoverImage?: HTMLImageElement; - translate?: Vector2; - scale?: number; - isDirectionFromCamera?: boolean; -} -export declare class ImageDrawable extends Drawable { - enabledHover: boolean; - hover: boolean; - needsFrustumCulled: boolean; - position: THREE.Vector3; - displayRadius: number; - radius?: number; - direction?: THREE.Vector3; - rotation?: number; - image: HTMLImageElement; - hoverImage?: HTMLImageElement; - translate?: Vector2; - scale: number; - constructor(id: string, cfg: ImageDrawableConfig); - private direction2Rotation; - private getRotation; - private drawImage; - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawSelect(): void; - getBounds(): THREE.Box3; - getClassType(): string; - isPointInPath(mousePosition: THREE.Vector3, raycaster?: THREE.Raycaster): boolean; - getBBox(): THREE.Box3; -} +import * as THREE from "three"; +import { Vector3, Vector2 } from "../../core/Constants"; +import { Drawable } from "../../core/canvas/Drawable"; +export interface ImageDrawableConfig { + image: HTMLImageElement; + position: Vector3 | THREE.Vector3; + radius?: number; + displayRadius?: number; + enabledHover?: boolean; + direction?: Vector3 | THREE.Vector3; + rotation?: number; + hoverImage?: HTMLImageElement; + translate?: Vector2; + scale?: number; + isDirectionFromCamera?: boolean; + renderOrder?: number; +} +export declare class ImageDrawable extends Drawable { + renderOrder: number; + enabledHover: boolean; + hover: boolean; + needsFrustumCulled: boolean; + position: THREE.Vector3; + displayRadius: number; + radius?: number; + direction?: THREE.Vector3; + rotation?: number; + image: HTMLImageElement; + hoverImage?: HTMLImageElement; + translate?: Vector2; + scale: number; + constructor(id: string, cfg: ImageDrawableConfig); + private direction2Rotation; + private getRotation; + private drawImage; + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawSelect(): void; + getClassType(): string; + isPointInPath(mousePosition: THREE.Vector3, raycaster?: THREE.Raycaster): boolean; + getBBox(): THREE.Box3; +} diff --git a/demo/libs/types/plugins/overview-map/LineDrawable.d.ts b/demo/libs/types/plugins/overview-map/LineDrawable.d.ts index cada7c2..5f6c4c7 100644 --- a/demo/libs/types/plugins/overview-map/LineDrawable.d.ts +++ b/demo/libs/types/plugins/overview-map/LineDrawable.d.ts @@ -1,19 +1,20 @@ -import * as THREE from "three"; -import { Vector3 } from "../../core/Constants"; -import { Drawable } from "../../core/canvas/Drawable"; -export interface LineDrawableConfig { - positions: Vector3[]; - lineWidth?: number; - lineColor?: [number, number, number, number]; -} -export declare class LineDrawable extends Drawable { - positions: Vector3[]; - needsFrustumCulled: boolean; - constructor(id: string, cfg: LineDrawableConfig); - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - getBounds(): THREE.Box3; - drawSelect(): void; - getClassType(): string; - isPointInPath(): boolean; - getBBox(): THREE.Box3; -} +import * as THREE from "three"; +import { Vector3 } from "../../core/Constants"; +import { Drawable } from "../../core/canvas/Drawable"; +export interface LineDrawableConfig { + positions: Vector3[]; + lineWidth?: number; + lineColor?: [number, number, number, number]; + renderOrder?: number; +} +export declare class LineDrawable extends Drawable { + renderOrder: number; + positions: Vector3[]; + needsFrustumCulled: boolean; + constructor(id: string, cfg: LineDrawableConfig); + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawSelect(): void; + getClassType(): string; + isPointInPath(): boolean; + getBBox(): THREE.Box3; +} diff --git a/demo/libs/types/plugins/overview-map/OverviewMapDrawable.d.ts b/demo/libs/types/plugins/overview-map/OverviewMapDrawable.d.ts index b293c3b..2364706 100644 --- a/demo/libs/types/plugins/overview-map/OverviewMapDrawable.d.ts +++ b/demo/libs/types/plugins/overview-map/OverviewMapDrawable.d.ts @@ -1,23 +1,24 @@ -import * as THREE from "three"; -import { Drawable } from "../../core/canvas/Drawable"; -export interface OverviewMapDrawableConfig { - image: HTMLImageElement; - min: THREE.Vector3; - max: THREE.Vector3; - radius?: number; -} -export declare class OverviewMapDrawable extends Drawable { - image: HTMLImageElement; - min: THREE.Vector3; - max: THREE.Vector3; - radius?: number; - needsFrustumCulled: boolean; - constructor(id: string, config: OverviewMapDrawableConfig); - getClassType(): string; - private getImageScreenSize; - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - drawSelect(): void; - getBounds(): THREE.Box3; - isPointInPath(): boolean; - getBBox(): THREE.Box3; -} +import * as THREE from "three"; +import { Drawable } from "../../core/canvas/Drawable"; +export interface OverviewMapDrawableConfig { + image: HTMLImageElement; + min: THREE.Vector3; + max: THREE.Vector3; + radius?: number; + renderOrder?: number; +} +export declare class OverviewMapDrawable extends Drawable { + renderOrder: number; + image: HTMLImageElement; + min: THREE.Vector3; + max: THREE.Vector3; + radius?: number; + needsFrustumCulled: boolean; + constructor(id: string, config: OverviewMapDrawableConfig); + getClassType(): string; + private getImageScreenSize; + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawSelect(): void; + isPointInPath(): boolean; + getBBox(): THREE.Box3; +} diff --git a/demo/libs/types/plugins/overview-map/OverviewMapPlugin.d.ts b/demo/libs/types/plugins/overview-map/OverviewMapPlugin.d.ts index 792dd73..8eb8998 100644 --- a/demo/libs/types/plugins/overview-map/OverviewMapPlugin.d.ts +++ b/demo/libs/types/plugins/overview-map/OverviewMapPlugin.d.ts @@ -1,156 +1,156 @@ -import * as THREE from "three"; -import { ImageDrawable } from "./ImageDrawable"; -import { OverviewMapDrawable } from "./OverviewMapDrawable"; -import { Mat4, Vector2, Vector3 } from "../../core/Constants"; -import type { Drawable } from "../../core/canvas/Drawable"; -import { Event } from "../../core/utils"; -import { ViewerEvent } from "../../core/viewers/ViewerEvent"; -export interface OverviewMapPluginConfig { - containerId: string; - context?: WebGLRenderingContext | WebGL2RenderingContext; - transformMatrix?: Mat4; - enabled?: boolean; - lockCameraInViewCenter?: boolean; - radius?: number; - minZoomFactor?: number; - maxZoomFactor?: number; - size?: { - width: number; - height: number; - }; -} -export interface UpdateOverviewMapConfig { - image: string; - min: Vector3; - max: Vector3; -} -export declare enum OverviewMapPluginEvent { - ZoomChanged = "ZoomChanged", - SyncCamera = "SyncCamera", - CameraChanged = "CameraChanged" -} -export declare class OverviewMapPlugin extends Event<{ - [K in OverviewMapPluginEvent | ViewerEvent]: unknown; -}> { - private cfg; - private viewerContainer?; - private readonly CAMERA_Z_POSITION; - private width; - private height; - private frustumSize; - private renderEnabled; - private drawableList; - private clock; - private requestAnimationFrameHandle?; - private camera?; - private scene?; - private renderer?; - private overlayRender?; - private raf?; - private timeoutSymbol?; - private raycaster?; - private inputManager?; - private controls?; - private groundPlane?; - private transformMatrix; - private minZoomFactor; - private maxZoomFactor; - private radius?; - private size?; - private initialZoom?; - private cameraZoom?; - private imgBBox?; - private translateStart; - private rotateStart; - private markerRotateState; - private markerTranslateState; - private isMarkerRotating; - private isMarkerTranslating; - private isUpdateWhenPawnMove; - private timeout?; - private animationId?; - private animationParam?; - private boundaries?; - private allMarkersBBox; - tolerance: number; - enabled: boolean; - lockCameraInViewCenter: boolean; - enableLookToAllMarkers: boolean; - constructor(cfg?: OverviewMapPluginConfig); - get cameraDrawable(): ImageDrawable; - get cameraDirDrawable(): ImageDrawable; - get overviewMapDrawable(): OverviewMapDrawable; - private init; - private initDom; - private initInputManager; - private initScene; - private initCamera; - private initRenderer; - private initControls; - private onControlsChange; - private onControlsUpdate; - private initEvents; - /******* Overview map events ********/ - private getDrawableByEvent; - private onCameraHover; - private handlePointerDown; - private onCameraMove; - private handlePointerUp; - private handlePointerLeave; - private handlePointerEnter; - private handleDblClick; - private handlePointerMove; - private syncCamera; - /*****************************************************/ - /******* According radius to calculate zoom ********/ - private updateZoomFromRadius; - private getContainerRadius; - private screenDistance2WorldDistance; - /*****************************************************/ - /******* create ground plane for pick ********/ - protected initGroundPlane(bbox: THREE.Box3): void; - /*****************************************************/ - private initMaxAndMinZoom; - /************** create overviewMap ****************/ - getImageElementFromUrl(url: string): Promise; - updateOverviewMap(cfg: UpdateOverviewMapConfig): Promise; - private createCameraMarkers; - initCameraMarkers(position: Vector3, direction: Vector3): Promise; - /*****************************************************/ - /************** Upate overview map camera ****************/ - private updateOverviewMapCameraAnimation; - updateOverviewMapCamera(position: Vector3, direction: Vector3): void; - /*****************************************************/ - private zoomToBBox; - private enableRender; - addMarker(marker: Drawable): void; - getMarker(id: string): Drawable | undefined; - removeMarker(marker: Drawable): void; - dollyIn(zoomDelta?: number): void; - dollyOut(zoomDelta?: number): void; - goToHomeView(): void; - setRadius(radius: number): void; - registerBoundaries(boundries: { - id: string; - name: string; - points: Vector2[]; - }[]): void; - isPointInBoundary: (position: Vector2) => undefined; - screenShot(): Promise; - /** - * @internal - */ - getViewConfig(): OverviewMapPluginConfig; - /** - * Gets how long a pixel represents in world coordinate. - * This works fine for OrthographicCamera. - * As for PerspectiveCamera, a pixel represents different size for different position, - * depends on how far the camera is and its fov, etc. We'll simply take the camera target as the position to calculate. - * @internal - */ - getPixelSizeInWorldCoord(): number; - private lookToAllMarkers; - private resize; - private animate; - destroy(): void; -} +import * as THREE from "three"; +import { ImageDrawable } from "./ImageDrawable"; +import { OverviewMapDrawable } from "./OverviewMapDrawable"; +import { Mat4, Vector2, Vector3 } from "../../core/Constants"; +import type { Drawable } from "../../core/canvas/Drawable"; +import { Plugin, PluginConfig } from "../../core/viewers/Plugin"; +import { ViewerEvent } from "../../core/viewers/ViewerEvent"; +export interface OverviewMapPluginConfig extends Partial { + containerId?: string; + context?: WebGLRenderingContext | WebGL2RenderingContext; + transformMatrix?: Mat4; + enabled?: boolean; + lockCameraInViewCenter?: boolean; + radius?: number; + minZoomFactor?: number; + maxZoomFactor?: number; + size?: { + width: number; + height: number; + }; +} +export interface UpdateOverviewMapConfig { + image: string; + min: Vector3; + max: Vector3; +} +export declare enum OverviewMapPluginEvent { + ZoomChanged = "ZoomChanged", + SyncCamera = "SyncCamera", + CameraChanged = "CameraChanged" +} +export declare class OverviewMapPlugin extends Plugin> { + static DEFAULT_ID: string; + private cfg; + private viewerContainer?; + private readonly CAMERA_Z_POSITION; + private width; + private height; + private frustumSize; + private renderEnabled; + private drawableList; + private clock; + private requestAnimationFrameHandle?; + private camera?; + private scene?; + private renderer?; + private overlayRender?; + private raf?; + private timeoutSymbol?; + private raycaster?; + private inputManager?; + private controls?; + private groundPlane?; + private transformMatrix; + private minZoomFactor; + private maxZoomFactor; + private radius?; + private size?; + private initialZoom?; + private cameraZoom?; + private imgBBox?; + private translateStart; + private rotateStart; + private markerRotateState; + private markerTranslateState; + private isMarkerRotating; + private isMarkerTranslating; + private isUpdateWhenPawnMove; + private timeout?; + private animationId?; + private animationParam?; + private boundaries?; + private allMarkersBBox; + tolerance: number; + enabled: boolean; + lockCameraInViewCenter: boolean; + enableLookToAllMarkers: boolean; + constructor(viewer: any, cfg?: OverviewMapPluginConfig); + get cameraDrawable(): ImageDrawable; + get cameraDirDrawable(): ImageDrawable; + get overviewMapDrawable(): OverviewMapDrawable; + private init; + private initDom; + private initInputManager; + private initScene; + private initCamera; + private initRenderer; + private initControls; + private onControlsChange; + private onControlsUpdate; + private initEvents; + /******* Overview map events ********/ + private getDrawableByEvent; + private onCameraHover; + private handlePointerDown; + private onCameraMove; + private handlePointerUp; + private handlePointerLeave; + private handlePointerEnter; + private handleDblClick; + private handlePointerMove; + private syncCamera; + /*****************************************************/ + /******* According radius to calculate zoom ********/ + private updateZoomFromRadius; + private getContainerRadius; + private screenDistance2WorldDistance; + /*****************************************************/ + /******* create ground plane for pick ********/ + protected initGroundPlane(bbox: THREE.Box3): void; + /*****************************************************/ + private initMaxAndMinZoom; + /************** create overviewMap ****************/ + getImageElementFromUrl(url: string): Promise; + updateOverviewMap(cfg: UpdateOverviewMapConfig): Promise; + private createCameraMarkers; + initCameraMarkers(position: Vector3, direction: Vector3): Promise; + /*****************************************************/ + /************** Upate overview map camera ****************/ + private updateOverviewMapCameraAnimation; + updateOverviewMapCamera(position: Vector3, direction: Vector3): void; + /*****************************************************/ + private zoomToBBox; + private enableRender; + addMarker(marker: Drawable): void; + getMarker(id: string): Drawable | undefined; + removeMarker(marker: Drawable): void; + dollyIn(zoomDelta?: number): void; + dollyOut(zoomDelta?: number): void; + goToHomeView(): void; + setRadius(radius: number): void; + registerBoundaries(boundries: { + id: string; + name: string; + points: Vector2[]; + }[]): void; + isPointInBoundary: (position: Vector2) => undefined; + screenShot(): Promise; + /** + * @internal + */ + getViewConfig(): OverviewMapPluginConfig; + is3d(): boolean; + /** + * Gets how long a pixel represents in world coordinate. + * This works fine for OrthographicCamera. + * As for PerspectiveCamera, a pixel represents different size for different position, + * depends on how far the camera is and its fov, etc. We'll simply take the camera target as the position to calculate. + * @internal + */ + getPixelSizeInWorldCoord(): number; + private lookToAllMarkers; + private resize; + private animate; + destroy(): void; +} diff --git a/demo/libs/types/plugins/overview-map/TextDrawable.d.ts b/demo/libs/types/plugins/overview-map/TextDrawable.d.ts index 6f81d53..1ca087a 100644 --- a/demo/libs/types/plugins/overview-map/TextDrawable.d.ts +++ b/demo/libs/types/plugins/overview-map/TextDrawable.d.ts @@ -1,49 +1,50 @@ -import * as THREE from "three"; -import { Vector3, Vector2 } from "../../core/Constants"; -import { Drawable } from "../../core/canvas/Drawable"; -export interface TextStyle { - fontSize?: number; - fontWeight?: string; - fontFamily?: string; - fontColor?: string; - outlineColor?: string; - outlineWidth?: number; - backgroundColor?: string; - borderRadius?: number; - borderWidth?: number; - borderColor?: string; -} -export interface TextDrawableConfig { - text: string; - position: Vector3; - radius?: number; - displayRadius?: number; - offset?: Vector2; - textStyle?: TextStyle; - size?: { - width: number; - height: number; - }; -} -export declare class TextDrawable extends Drawable { - text: string; - position: Vector3; - offset: Vector2; - size: { - width: number; - height: number; - }; - textStyle: TextStyle; - displayRadius: number; - radius?: number; - needsFrustumCulled: boolean; - constructor(id: string, cfg: TextDrawableConfig); - private getFont; - drawRoundRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, cameraPosition: THREE.Vector2, bClippable: boolean): void; - draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; - getBounds(): THREE.Box3; - drawSelect(): void; - getClassType(): string; - isPointInPath(): boolean; - getBBox(): THREE.Box3; -} +import * as THREE from "three"; +import { Vector3, Vector2 } from "../../core/Constants"; +import { Drawable } from "../../core/canvas/Drawable"; +export interface TextStyle { + fontSize?: number; + fontWeight?: string; + fontFamily?: string; + fontColor?: string; + outlineColor?: string; + outlineWidth?: number; + backgroundColor?: string; + borderRadius?: number; + borderWidth?: number; + borderColor?: string; +} +export interface TextDrawableConfig { + text: string; + position: Vector3; + radius?: number; + displayRadius?: number; + offset?: Vector2; + textStyle?: TextStyle; + size?: { + width: number; + height: number; + }; + renderOrder?: number; +} +export declare class TextDrawable extends Drawable { + renderOrder: number; + text: string; + position: Vector3; + offset: Vector2; + size: { + width: number; + height: number; + }; + textStyle: TextStyle; + displayRadius: number; + radius?: number; + needsFrustumCulled: boolean; + constructor(id: string, cfg: TextDrawableConfig); + private getFont; + drawRoundRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, cameraPosition: THREE.Vector2, bClippable: boolean): void; + draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void; + drawSelect(): void; + getClassType(): string; + isPointInPath(): boolean; + getBBox(): THREE.Box3; +} diff --git a/demo/libs/types/plugins/overview-map/index.d.ts b/demo/libs/types/plugins/overview-map/index.d.ts index 9624315..f8b8ae2 100644 --- a/demo/libs/types/plugins/overview-map/index.d.ts +++ b/demo/libs/types/plugins/overview-map/index.d.ts @@ -1,5 +1,5 @@ -export * from "./OverviewMapDrawable"; -export * from "./OverviewMapPlugin"; -export * from "./ImageDrawable"; -export * from "./TextDrawable"; -export * from "./LineDrawable"; +export * from "./OverviewMapDrawable"; +export * from "./OverviewMapPlugin"; +export * from "./ImageDrawable"; +export * from "./TextDrawable"; +export * from "./LineDrawable"; diff --git a/demo/libs/types/plugins/pdf/PdfLoader.d.ts b/demo/libs/types/plugins/pdf/PdfLoader.d.ts index f2e462e..9c954b3 100644 --- a/demo/libs/types/plugins/pdf/PdfLoader.d.ts +++ b/demo/libs/types/plugins/pdf/PdfLoader.d.ts @@ -1,236 +1,236 @@ -import * as pdfjsLib from "pdfjs-dist"; -import type { PDFOperatorList } from "pdfjs-dist/types/src/display/api"; -import * as THREE from "three"; -import { DxfModelConfig } from "../../core/Configs"; -import { FontManager } from "../../core/font"; -import { Model2d, PdfLayer } from "../../core/viewers"; -export interface PdfLoaderConfig { - font: FontManager; - pdfWorker: string; -} -/** - * PdfLoader - * @description The pdf coordinate origin is in the lower left corner. - * @link https://zxyle.github.io/PDF-Explained/ - * @link https://github.com/mozilla/pdf.js/ - */ -export declare class PdfLoader extends THREE.Loader { - static readonly MODEL_LAYOUT_NAME = "Model"; - pdf?: pdfjsLib.PDFDocumentProxy; - pdfPage?: pdfjsLib.PDFPageProxy; - commonObjs?: any; - objs?: any; - operatorList?: PDFOperatorList; - contentVisible: boolean; - optionalContentConfig?: any; - markedContentStack: any[]; - stateStack: CanvasExtraState[]; - current: CanvasExtraState; - tempSMask: null; - pendingTextPaths?: any[]; - pendingClip?: any; - pendingEOFill: boolean; - activeLayoutName: string; - defaultLayerId: string; - currentLayerId: string; - layers: Record; - loadedEntityCount: number; - layersAndThreejsObjects?: Record; - viewportScale: number; - baseTransform: THREE.Matrix4; - pdfDocumentGroup?: THREE.Group; - pdfPageGroup?: THREE.Group; - currentTransform: THREE.Matrix4; - transformStack: THREE.Matrix4[]; - currentPath?: THREE.Shape; - clipPaths?: THREE.Shape[]; - clipType: any; - paths: THREE.Shape[]; - private pointsMaterials; - private lineBasicMaterials; - private meshBasicMaterials; - fontManager?: FontManager; - modelCfg?: DxfModelConfig; - private lineWithWidthCount; - constructor(cfg: PdfLoaderConfig); - load(modelCfg: DxfModelConfig, onLoad: (data: Model2d) => void, onProgress: (event: ProgressEvent) => void, onError: (error: any) => void): void; - /** - * - * @param modelCfg - * @param onProgress - * @returns - */ - loadAsync(modelCfg: DxfModelConfig, onProgress: (event: ProgressEvent) => void): Promise; - private getOperatorList; - private _pumpOperatorList; - private tryCleanup; - private mergePdfObjects; - private getPointsMaterial; - private getLineBasicMaterial; - private getMeshBasicMaterial; - getTransformByMatrix4(matrix: THREE.Matrix4): number[]; - getObject(data: any, fallback?: null): any; - beginDrawing(viewport: pdfjsLib.PageViewport): void; - endDrawing(): void; - private releaseData; - buildLayers(page: pdfjsLib.PDFPageProxy): Promise<{ - layerCount: number; - layersMap: Record; - layers: any; - } | undefined>; - private addObjectToModel; - executeOperatorList(operatorList: any, onProgress?: (event: ProgressEvent) => void): Promise; - setLineWidth(width: number): void; - setLineCap(style: number): void; - setLineJoin(style: number): void; - setMiterLimit(limit: number): void; - setDash(dashArray: number[], dashPhase: number): void; - setRenderingIntent(intent: any): void; - setFlatness(flatness: any): void; - setGState(states: any): void; - save(): void; - restore(): void; - /** - * - * a c e - * b d f - * 0 0 1 - */ - /** - * - * @param a is scale x. - * @param b is skew y. - * @param c is skew x. - * @param d is scale y - * @param e is translate x. - * @param f is translate y. - * @example - * a c e - * b d f - * 0 0 1 - */ - transform(a: number, b: number, c: number, d: number, e: number, f: number): void; - moveTo(): void; - lineTo(): void; - curveTo(): void; - curveTo2(): void; - curveTo3(): void; - closePath(): void; - rectangle(): void; - stroke(consumePath?: boolean): void; - closeStroke(): void; - fill(consumePath?: boolean): void; - eoFill(): void; - fillStroke(): void; - eoFillStroke(): void; - closeFillStroke(): void; - closeEOFillStroke(): void; - endPath(): void; - clip(): void; - eoClip(): void; - beginText(): void; - endText(): void; - setCharSpacing(spacing: number): void; - setWordSpacing(spacing: number): void; - setHScale(scale: number): void; - setLeading(leading: number): void; - setFont(fontRefName: string, size: number): void; - setTextRenderingMode(mode: number): void; - setTextRise(rise: number): void; - moveText(x: number, y: number): void; - setLeadingMoveText(): void; - setTextMatrix(a: number, b: number, c: number, d: number, e: number, f: number): void; - nextLine(): void; - paintChar(character: string, x: number, y: number): THREE.BufferGeometry | import("three/examples/jsm/geometries/TextGeometry").TextGeometry | undefined; - showText(glyphs: any[]): void; - showType3Text(glyphs: any): void; - setCharWidth(xWidth: any, yWidth: any): void; - setCharWidthAndBounds(xWidth: number, yWidth: number, llx: number, lly: number, urx: number, ury: number): void; - setStrokeColor(): void; - setStrokeColorN(): void; - setFillColorN(): void; - setStrokeRGBColor(r: number, g: number, b: number): void; - setFillRGBColor(r: number, g: number, b: number): void; - shadingFill(): void; - beginInlineImage(): void; - beginImageData(): void; - markPoint(tag: any): void; - markPointProps(tag: any, properties: any): void; - beginMarkedContent(tag: any): void; - beginMarkedContentProps(tag: any, properties: any): void; - endMarkedContent(): void; - beginCompat(): void; - endCompat(): void; - consumePath(clipBox?: number[]): void; - paintFormXObjectBegin(matrix: any, bbox: any): void; - paintFormXObjectEnd(): void; - beginGroup(): void; - endGroup(): void; - beginAnnotation(): void; - endAnnotation(): void; - paintImageMaskXObject(): void; - paintImageMaskXObjectGroup(): void; - paintImageXObject(objId: any): void; - paintInlineImageXObject(imgData: any): void; - paintInlineImageXObjectGroup(): void; - paintImageXObjectRepeat(): void; - paintImageMaskXObjectRepeat(): void; - paintSolidColorImageMask(): void; - _scaleImage(img: any, inverseTransform: THREE.Matrix4): { - paintWidth: any; - paintHeight: any; - }; - constructPath(ops: number[], args: number[], minMax: any): void; - isContentVisible(): boolean; -} -declare class CanvasExtraState { - alphaIsShape: boolean; - fontSize: number; - fontSizeScale: number; - browserFontSize: number; - textMatrix: number[]; - textMatrixScale: number; - fontMatrix: number[]; - leading: number; - x: number; - y: number; - lineX: number; - lineY: number; - charSpacing: number; - wordSpacing: number; - textHScale: number; - textRenderingMode: number; - textRise: number; - fillColor: number; - strokeColor: number; - patternFill: boolean; - fillAlpha: number; - strokeAlpha: number; - lineWidth: number; - activeSMask: null; - transferMaps: string; - ctxMatrix: THREE.Matrix3; - fontDirection?: number; - font?: any; - clipBox: number[]; - minX: number; - maxX: number; - minY: number; - maxY: number; - lineCap: number; - lineJoin: number; - miterLimit: number; - constructor(width: number, height: number); - clone(): any; - setCurrentPoint(x: number, y: number): void; - startNewPathAndClipBox(box: number[]): void; - updatePathMinMax(transform: number[], x: number, y: number): void; - getPathBoundingBox(pathType?: string, transform?: null): number[]; - updateRectMinMax(transform: number[], rect: any): void; - updateScalingPathMinMax(transform: number[], minMax: number[]): void; - updateCurvePathMinMax(transform: number[], x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, minMax: number[]): void; - updateClipFromPath(): void; - isEmptyClip(): boolean; - getClippedPathBoundingBox(pathType?: string, transform?: null): number[]; -} -export {}; +import * as pdfjsLib from "pdfjs-dist"; +import type { PDFOperatorList } from "pdfjs-dist/types/src/display/api"; +import * as THREE from "three"; +import { DxfModelConfig } from "../../core/Configs"; +import { FontManager } from "../../core/font"; +import { Model2d, PdfLayer } from "../../core/viewers"; +export interface PdfLoaderConfig { + font: FontManager; + pdfWorker: string; +} +/** + * PdfLoader + * @description The pdf coordinate origin is in the lower left corner. + * @link https://zxyle.github.io/PDF-Explained/ + * @link https://github.com/mozilla/pdf.js/ + */ +export declare class PdfLoader extends THREE.Loader { + static readonly MODEL_LAYOUT_NAME = "Model"; + pdf?: pdfjsLib.PDFDocumentProxy; + pdfPage?: pdfjsLib.PDFPageProxy; + commonObjs?: any; + objs?: any; + operatorList?: PDFOperatorList; + contentVisible: boolean; + optionalContentConfig?: any; + markedContentStack: any[]; + stateStack: CanvasExtraState[]; + current: CanvasExtraState; + tempSMask: null; + pendingTextPaths?: any[]; + pendingClip?: any; + pendingEOFill: boolean; + activeLayoutName: string; + defaultLayerId: string; + currentLayerId: string; + layers: Record; + loadedEntityCount: number; + layersAndThreejsObjects?: Record; + viewportScale: number; + baseTransform: THREE.Matrix4; + pdfDocumentGroup?: THREE.Group; + pdfPageGroup?: THREE.Group; + currentTransform: THREE.Matrix4; + transformStack: THREE.Matrix4[]; + currentPath?: THREE.Shape; + clipPaths?: THREE.Shape[]; + clipType: any; + paths: THREE.Shape[]; + private pointsMaterials; + private lineBasicMaterials; + private meshBasicMaterials; + fontManager?: FontManager; + modelCfg?: DxfModelConfig; + private lineWithWidthCount; + constructor(cfg: PdfLoaderConfig); + load(modelCfg: DxfModelConfig, onLoad: (data: Model2d) => void, onProgress: (event: ProgressEvent) => void, onError: (error: any) => void): void; + /** + * + * @param modelCfg + * @param onProgress + * @returns + */ + loadAsync(modelCfg: DxfModelConfig, onProgress: (event: ProgressEvent) => void): Promise; + private getOperatorList; + private _pumpOperatorList; + private tryCleanup; + private mergePdfObjects; + private getPointsMaterial; + private getLineBasicMaterial; + private getMeshBasicMaterial; + getTransformByMatrix4(matrix: THREE.Matrix4): number[]; + getObject(data: any, fallback?: null): any; + beginDrawing(viewport: pdfjsLib.PageViewport): void; + endDrawing(): void; + private releaseData; + buildLayers(page: pdfjsLib.PDFPageProxy): Promise<{ + layerCount: number; + layersMap: Record; + layers: any; + } | undefined>; + private addObjectToModel; + executeOperatorList(operatorList: any, onProgress?: (event: ProgressEvent) => void): Promise; + setLineWidth(width: number): void; + setLineCap(style: number): void; + setLineJoin(style: number): void; + setMiterLimit(limit: number): void; + setDash(dashArray: number[], dashPhase: number): void; + setRenderingIntent(intent: any): void; + setFlatness(flatness: any): void; + setGState(states: any): void; + save(): void; + restore(): void; + /** + * + * a c e + * b d f + * 0 0 1 + */ + /** + * + * @param a is scale x. + * @param b is skew y. + * @param c is skew x. + * @param d is scale y + * @param e is translate x. + * @param f is translate y. + * @example + * a c e + * b d f + * 0 0 1 + */ + transform(a: number, b: number, c: number, d: number, e: number, f: number): void; + moveTo(): void; + lineTo(): void; + curveTo(): void; + curveTo2(): void; + curveTo3(): void; + closePath(): void; + rectangle(): void; + stroke(consumePath?: boolean): void; + closeStroke(): void; + fill(consumePath?: boolean): void; + eoFill(): void; + fillStroke(): void; + eoFillStroke(): void; + closeFillStroke(): void; + closeEOFillStroke(): void; + endPath(): void; + clip(): void; + eoClip(): void; + beginText(): void; + endText(): void; + setCharSpacing(spacing: number): void; + setWordSpacing(spacing: number): void; + setHScale(scale: number): void; + setLeading(leading: number): void; + setFont(fontRefName: string, size: number): void; + setTextRenderingMode(mode: number): void; + setTextRise(rise: number): void; + moveText(x: number, y: number): void; + setLeadingMoveText(): void; + setTextMatrix(a: number, b: number, c: number, d: number, e: number, f: number): void; + nextLine(): void; + paintChar(character: string, x: number, y: number): THREE.BufferGeometry | import("three/examples/jsm/geometries/TextGeometry").TextGeometry | undefined; + showText(glyphs: any[]): void; + showType3Text(glyphs: any): void; + setCharWidth(xWidth: any, yWidth: any): void; + setCharWidthAndBounds(xWidth: number, yWidth: number, llx: number, lly: number, urx: number, ury: number): void; + setStrokeColor(): void; + setStrokeColorN(): void; + setFillColorN(): void; + setStrokeRGBColor(r: number, g: number, b: number): void; + setFillRGBColor(r: number, g: number, b: number): void; + shadingFill(): void; + beginInlineImage(): void; + beginImageData(): void; + markPoint(tag: any): void; + markPointProps(tag: any, properties: any): void; + beginMarkedContent(tag: any): void; + beginMarkedContentProps(tag: any, properties: any): void; + endMarkedContent(): void; + beginCompat(): void; + endCompat(): void; + consumePath(clipBox?: number[]): void; + paintFormXObjectBegin(matrix: any, bbox: any): void; + paintFormXObjectEnd(): void; + beginGroup(): void; + endGroup(): void; + beginAnnotation(): void; + endAnnotation(): void; + paintImageMaskXObject(): void; + paintImageMaskXObjectGroup(): void; + paintImageXObject(objId: any): void; + paintInlineImageXObject(imgData: any): void; + paintInlineImageXObjectGroup(): void; + paintImageXObjectRepeat(): void; + paintImageMaskXObjectRepeat(): void; + paintSolidColorImageMask(): void; + _scaleImage(img: any, inverseTransform: THREE.Matrix4): { + paintWidth: any; + paintHeight: any; + }; + constructPath(ops: number[], args: number[], minMax: any): void; + isContentVisible(): boolean; +} +declare class CanvasExtraState { + alphaIsShape: boolean; + fontSize: number; + fontSizeScale: number; + browserFontSize: number; + textMatrix: number[]; + textMatrixScale: number; + fontMatrix: number[]; + leading: number; + x: number; + y: number; + lineX: number; + lineY: number; + charSpacing: number; + wordSpacing: number; + textHScale: number; + textRenderingMode: number; + textRise: number; + fillColor: number; + strokeColor: number; + patternFill: boolean; + fillAlpha: number; + strokeAlpha: number; + lineWidth: number; + activeSMask: null; + transferMaps: string; + ctxMatrix: THREE.Matrix3; + fontDirection?: number; + font?: any; + clipBox: number[]; + minX: number; + maxX: number; + minY: number; + maxY: number; + lineCap: number; + lineJoin: number; + miterLimit: number; + constructor(width: number, height: number); + clone(): any; + setCurrentPoint(x: number, y: number): void; + startNewPathAndClipBox(box: number[]): void; + updatePathMinMax(transform: number[], x: number, y: number): void; + getPathBoundingBox(pathType?: string, transform?: null): number[]; + updateRectMinMax(transform: number[], rect: any): void; + updateScalingPathMinMax(transform: number[], minMax: number[]): void; + updateCurvePathMinMax(transform: number[], x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, minMax: number[]): void; + updateClipFromPath(): void; + isEmptyClip(): boolean; + getClippedPathBoundingBox(pathType?: string, transform?: null): number[]; +} +export {}; diff --git a/demo/libs/types/plugins/pdf/PdfLoaderPlugin.d.ts b/demo/libs/types/plugins/pdf/PdfLoaderPlugin.d.ts index 04fe5de..d8db015 100644 --- a/demo/libs/types/plugins/pdf/PdfLoaderPlugin.d.ts +++ b/demo/libs/types/plugins/pdf/PdfLoaderPlugin.d.ts @@ -1,22 +1,23 @@ -import { BaseViewer, DxfModelConfig, FontManager, Model2d, Plugin, PluginConfig } from "../../core"; -/** - * Pdf loader plugin config. - */ -export interface PdfLoaderPluginConfig extends PluginConfig { - font: FontManager; - pdfWorker: string; -} -/** - * Pdf loader plugin. - */ -export declare class PdfLoaderPlugin extends Plugin { - protected cfg: PdfLoaderPluginConfig; - constructor(viewer: BaseViewer, cfg: PdfLoaderPluginConfig); - /** - * Loads a pdf. - * @param modelCfg - * @param onProgress - * @returns - */ - loadAsync(modelCfg: DxfModelConfig, onProgress: (event: ProgressEvent) => void): Promise; -} +import { BaseViewer, DxfModelConfig, FontManager, Model2d, Plugin, PluginConfig } from "../../core"; +/** + * Pdf loader plugin config. + */ +export interface PdfLoaderPluginConfig extends Partial { + font: FontManager; + pdfWorker: string; +} +/** + * Pdf loader plugin. + */ +export declare class PdfLoaderPlugin extends Plugin { + static DEFAULT_ID: string; + protected cfg: PdfLoaderPluginConfig; + constructor(viewer: BaseViewer, cfg: PdfLoaderPluginConfig); + /** + * Loads a pdf. + * @param modelCfg + * @param onProgress + * @returns + */ + loadAsync(modelCfg: DxfModelConfig, onProgress: (event: ProgressEvent) => void): Promise; +} diff --git a/demo/libs/types/plugins/pdf/index.d.ts b/demo/libs/types/plugins/pdf/index.d.ts index 4c743cd..0b5dc73 100644 --- a/demo/libs/types/plugins/pdf/index.d.ts +++ b/demo/libs/types/plugins/pdf/index.d.ts @@ -1,2 +1,2 @@ -export * from "./PdfLoader"; -export * from "./PdfLoaderPlugin"; +export * from "./PdfLoader"; +export * from "./PdfLoaderPlugin"; diff --git a/demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts b/demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts index 68ff71a..655d97f 100644 --- a/demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts +++ b/demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts @@ -1,66 +1,88 @@ -import { BaseViewer, BoxSelectHelper, PickMarkupHelper, Plugin, PluginConfig, ScreenshotMode, ScreenshotResult } from "../../core"; -/** - * Screenshot plugin config. - */ -export interface ScreenshotPluginConfig extends PluginConfig { - /** - * Image type. - */ - type?: "image/png" | "image/jpg"; - /** - * Image quality. - */ - quality?: 0.8; -} -/** - * Screenshot plugin - */ -export declare class ScreenshotPlugin extends Plugin { - protected cfg: ScreenshotPluginConfig; - protected boxSelectHelper?: BoxSelectHelper; - protected pickMarkupHelper?: PickMarkupHelper; - constructor(viewer: BaseViewer, cfg?: ScreenshotPluginConfig); - /** - * @description {en} Gets screenshot of current canvas. Returns an image in format of base64 string. - * @description {zh} 获取画布的截屏。该方法返回一个 base64 类型的字符串。 - * @example - * ``` typescript - * const plugin = new ScreenshotPlugin(viewer); - * const base64Image = plugin.getScreenshot(); - * console.log(base64Image); - * ``` - */ - getScreenshot(): string | undefined; - /** - * @description {en} Gets screenshot of a rectangular area, or by box selecting an area. Returns an image in format of base64 string. - * @description {zh} 获取矩形区域或者框选区域的截图。返回base64格式的图片。 - * @param mode - * - {en} screenshot mode("Default", "BoxSelection" and "PickMarkup"). - * - {zh} 截图模式("全屏", "框选" 和 "选中批注")。 - * @example - * ``` typescript - * // {en} Click on markup to take screenshot. - * // {zh} 点击批注截屏。 - * const mode = ScreenshotMode.PickMarkup; - * viewer.getScreenshot(mode).then(data => console.log(data)); - * // {en} Take screenshot by box selecting an area. - * // {zh} 根据用户的框选截屏。 - * const mode = ScreenshotMode.BoxSelection; - * viewer.getScreenshot(mode).then(data => console.log(data)); - * // {en} Take screenshot of the whole view. - * // {zh} 全屏截屏。 - * const mode = ScreenshotMode.Default; - * const plugin = new ScreenshotPlugin(viewer); - * plugin.getScreenshotAsync(mode).then(data => console.log(data)); - * ``` - */ - getScreenshotAsync(mode?: ScreenshotMode): Promise; - /** - * If ScreenshotPlugin is active. - */ - isActive(): (() => boolean) | undefined; - /** - * Cancel current operation if any. - */ - cancel(): void; -} +import * as THREE from "three"; +import { BaseViewer, BoxSelectHelper, PickMarkupHelper, Plugin, PluginConfig, ScreenshotMode, ScreenshotResult } from "../../core"; +/** + * Screenshot plugin config. + */ +export interface ScreenshotPluginConfig extends Partial { + /** + * Image type. + */ + type?: "image/png" | "image/jpg"; + /** + * Image quality. + */ + quality?: 0.8; +} +/** + * Screenshot plugin + */ +export declare class ScreenshotPlugin extends Plugin { + static DEFAULT_ID: string; + protected cfg: ScreenshotPluginConfig; + protected boxSelectHelper?: BoxSelectHelper; + protected pickMarkupHelper?: PickMarkupHelper; + constructor(viewer: BaseViewer, cfg?: ScreenshotPluginConfig); + /** + * @description {en} Gets screenshot of current canvas. Returns an image in format of base64 string. + * @description {zh} 获取画布的截屏。该方法返回一个 base64 类型的字符串。 + * @example + * ``` typescript + * const plugin = new ScreenshotPlugin(viewer); + * const base64Image = plugin.getScreenshot(); + * console.log(base64Image); + * ``` + */ + getScreenshot(): string | undefined; + /** + * Gets screenshot by bbox under screen cooridinate. + */ + getScreenshotByScreenBBox(bbox: THREE.Box2): Promise; + /** + * Gets screenshot by bbox under world coordinate. + * It needs to convert world to screen coordinate, in order to get the + * screenshot range. Assume it maps to bboxA under screen coordinate, + * and current view boundary is bboxB (e.g., 0,0 - 1024,768). + * Since, a given world coordinate may not be in current view boundary. + * The finally screenshot is the overlap of bboxA and bboxB. When + * - bboxA includes bboxB, it get screenshot for bboxB + * - bboxB includes bboxA, it get screenshot for bboxA + * - bboxA overlaps with bboxB, it get screenshot for the overlapped area + * - bboxA doesn't overlap with bboxB, it get nothing + * + * A best practice to use this API is to use orthographic camera, under top view, + * and pass in viewer's bbox. + */ + getScreenshotByWorldBBox(bbox: THREE.Box3): Promise; + /** + * @description {en} Gets screenshot of a rectangular area, or by box selecting an area. Returns an image in format of base64 string. + * @description {zh} 获取矩形区域或者框选区域的截图。返回base64格式的图片。 + * @param mode + * - {en} screenshot mode("Default", "BoxSelection" and "PickMarkup"). + * - {zh} 截图模式("全屏", "框选" 和 "选中批注")。 + * @example + * ``` typescript + * // {en} Click on markup to take screenshot. + * // {zh} 点击批注截屏。 + * const mode = ScreenshotMode.PickMarkup; + * viewer.getScreenshot(mode).then(data => console.log(data)); + * // {en} Take screenshot by box selecting an area. + * // {zh} 根据用户的框选截屏。 + * const mode = ScreenshotMode.BoxSelection; + * viewer.getScreenshot(mode).then(data => console.log(data)); + * // {en} Take screenshot of the whole view. + * // {zh} 全屏截屏。 + * const mode = ScreenshotMode.Default; + * const plugin = new ScreenshotPlugin(viewer); + * plugin.getScreenshotAsync(mode).then(data => console.log(data)); + * ``` + */ + getScreenshotAsync(mode?: ScreenshotMode): Promise; + /** + * If ScreenshotPlugin is active. + */ + isActive(): (() => boolean) | undefined; + /** + * Cancel current operation if any. + */ + cancel(): void; +} diff --git a/demo/libs/types/plugins/screenshot/index.d.ts b/demo/libs/types/plugins/screenshot/index.d.ts index 13e192d..d2e7e93 100644 --- a/demo/libs/types/plugins/screenshot/index.d.ts +++ b/demo/libs/types/plugins/screenshot/index.d.ts @@ -1 +1 @@ -export * from "./ScreenshotPlugin"; +export * from "./ScreenshotPlugin"; diff --git a/demo/libs/types/plugins/sections/AxisPlaneSection.d.ts b/demo/libs/types/plugins/sections/AxisPlaneSection.d.ts index 838f1fa..c163a2e 100644 --- a/demo/libs/types/plugins/sections/AxisPlaneSection.d.ts +++ b/demo/libs/types/plugins/sections/AxisPlaneSection.d.ts @@ -1,38 +1,40 @@ -import * as THREE from "three"; -import { BaseSection } from "./BaseSection"; -import { EventInfo, InputManager } from "../../core/input/InputManager"; -import type { BaseViewer } from "../../core/viewers"; -import { SectionGizmo } from "../../plugins/sections/SectionGizmo"; -import { SectionPlane } from "../../plugins/sections/SectionPlane"; -export declare enum AxisType { - X = "X", - Y = "Y", - Z = "Z" -} -export declare class AxisPlaneSection extends BaseSection { - protected activeAxis: AxisType; - protected gizmo?: SectionGizmo; - protected planeMesh?: SectionPlane; - protected clipPlane?: THREE.Plane; - protected selectedObject?: SectionPlane | THREE.Mesh; - protected axisInfoMap: { - [key in AxisType]: { - normal: THREE.Vector3; - }; - }; - protected center: THREE.Vector3; - constructor(viewer: BaseViewer, input: InputManager); - activate(): void; - deactivate(): void; - resetSection(): void; - setActiveAxis(type: AxisType): void; - setSectionVisible(visible: boolean): void; - initOrUpdateClipPlane(): void; - initOrUpdateSectionPlane(): void; - initOrUpdateGizmo(): void; - onDragStart(e: EventInfo): void; - onDragMove(e: EventInfo): void; - onDragEnd(e: EventInfo): void; - getIntersectObjects(): THREE.Object3D[]; - activateSelectedObject(active: boolean): void; -} +import * as THREE from "three"; +import { BaseSection } from "./BaseSection"; +import { EventInfo, InputManager } from "../../core/input/InputManager"; +import type { BaseViewer } from "../../core/viewers"; +import { SectionGizmo } from "../../plugins/sections/SectionGizmo"; +import { SectionPlaneMesh } from "../../plugins/sections/SectionPlaneMesh"; +export declare enum AxisType { + X = "X", + Y = "Y", + Z = "Z" +} +export declare class AxisPlaneSection extends BaseSection { + protected activeAxis: AxisType; + protected gizmo?: SectionGizmo; + protected planeMesh?: SectionPlaneMesh; + protected clipPlane?: THREE.Plane; + protected selectedObject?: SectionPlaneMesh | THREE.Mesh | THREE.Object3D; + protected axisInfoMap: { + [key in AxisType]: { + normal: THREE.Vector3; + }; + }; + protected center: THREE.Vector3; + constructor(viewer: BaseViewer, input: InputManager); + activate(): void; + deactivate(): void; + resetSection(): void; + setActiveAxis(type: AxisType): void; + setSectionPlaneMeshVisible(visible: boolean): void; + protected initOrUpdateClipPlanes(): void; + protected initOrUpdateSectionPlaneMeshes(): void; + protected initOrUpdateGizmo(): void; + mousedown: (e: EventInfo) => void; + protected mousemove: (e: EventInfo) => void; + onDragStart(e: EventInfo): void; + onDragMove(e: EventInfo): void; + onDragEnd(e: EventInfo): void; + getIntersectObjects(): THREE.Object3D[]; + activateSelectedObject(active: boolean): void; +} diff --git a/demo/libs/types/plugins/sections/BaseBoxSection.d.ts b/demo/libs/types/plugins/sections/BaseBoxSection.d.ts index 0b34f46..6366838 100644 --- a/demo/libs/types/plugins/sections/BaseBoxSection.d.ts +++ b/demo/libs/types/plugins/sections/BaseBoxSection.d.ts @@ -1,152 +1,48 @@ -import { Box3, Group, LineSegments, Mesh, OrthographicCamera, PerspectiveCamera, Plane, Raycaster, Scene, Vector2, Vector3, WebGLRenderer } from "three"; -import { CameraControlsEx } from "../../core/controls/CameraControlsEx"; -import { Views } from "../../core/utils/Viewer3DUtils"; -/** - * Object's box section - */ -export declare class BaseBoxSection { - isOpen: boolean; - protected sectionBox?: Box3; - protected scene: Scene; - protected camera: PerspectiveCamera | OrthographicCamera; - protected renderer: WebGLRenderer; - protected controls: CameraControlsEx; - protected draggableArrowView: Views | string; - protected visibleArrowView: Views | string; - /** - * Constructor - */ - constructor(scene: Scene, camera: PerspectiveCamera | OrthographicCamera, renderer: WebGLRenderer, controls: CameraControlsEx); - /** - * If sectionBox is not assigned in constructor, then set it here. - * For now, we only support it to be set once. Otherwise, need to check isOpen status, and initSectionBox properly. - * @param sectionBox - */ - protected setSectionBox(sectionBox: Box3): void; - /** - * Starts to clip - */ - open(): void; - /** - * Close clipper - */ - close(): void; - /** - * reset clipper - */ - reset(): void; - protected sectionBoxBoundary: Box3; - protected group: Group; - protected arrows: Map; - protected planes: Array; - protected vertices: Vector3[]; - protected faces: Array; - protected lines: Array; - protected sectionPlaneMap: Map; - /** - * Initialize clip box - */ - protected initSectionBox(): void; - /** - * Initialize 6 section plane - */ - protected initPlanes(): void; - protected updatePlanes(): void; - /** - * Initialize or update 8 vertices of section box - */ - protected initOrUpdateVertices(): void; - /** - * Initialize 6 faces of section box - */ - protected initOrUpdateFaces(): void; - /** - * Initialize 12 lines of section box - */ - protected initOrUpdateLines(): void; - initArrowGizmos(): void; - protected setArrowPosition(setArrowDirection?: boolean): void; - protected localToWorldVec(localVec: Vector3, normalize?: boolean): Vector3; - protected worldToLocalVec(worldVec: Vector3): Vector3; - protected getTranslationPlane(worldAxis: Vector3): Vector3; - protected getPointerPlaneIntersect(mouse: number[], axis: Vector3, offset?: number): false | Vector3; - protected dragTranslateSectionPlane(baseAxis: Vector3, from: number[], to: number[]): void; - protected dragRotateSectionPlane(baseAxis: Vector3, from: number[], to: number[]): void; - protected getBoxFaceVerties(view: Views): Vector3[]; - /** - * Clears clip box - */ - protected clearSectionBox(): void; - protected raycaster: Raycaster; - protected mousePosition: Vector2; - protected activeFace: BoxFace | null; - /** - * Adds mouse event listener - */ - private addMouseListener; - /** - * Removes mouse event listener - */ - private removeMouseListener; - /** - * Converts mouse coordinates, and updates raycaster - */ - protected updateMouseAndRay(event: MouseEvent): void; - /** - * Handles mouse move event, highlights corresponding face/lines properly - */ - protected onMouseMove: (event: MouseEvent) => void; - protected isMouseDown: boolean; - /** - * Handles mouse down event, starts to drag a face using left button - */ - protected onMouseDown: (event: MouseEvent) => void; - protected lastCanvasPos?: number[]; - protected dragStart: () => void; - protected dragEnd: () => void; - protected dragMove: (event: MouseEvent) => void; -} -/** - * BoxLine of a section box - */ -export declare class BoxLine extends LineSegments { - private normalMaterial; - private activeMaterial; - /** - * @param vertices two points of a line - * @param faces two faces relative to a line - */ - constructor(vertices: Array, faces: Array); - /** - * Updates geometry - */ - setFromPoints(vertices: Vector3[]): void; - /** - * Sets to active or inactive - * @param isActive - */ - setActive(isActive: boolean): void; -} -/** - * BoxFace of a section box - */ -export declare class BoxFace extends Mesh { - axis: string; - lines: Array; - backFace: Mesh; - vertices: Vector3[]; - /** - * @param axis axis of a face - * @param vertices 4 points of a face - */ - constructor(axis: string, vertices: Array); - /** - * Updates geometry - */ - setFromPoints(vertices: Vector3[]): void; - /** - * Sets to active or inactive - * @param active - */ - setActive(active: boolean): void; -} +import { LineSegments, Mesh, Vector3 } from "three"; +/** + * Object's box section + */ +/** + * BoxLine of a section box + */ +export declare class BoxLine extends LineSegments { + private normalMaterial; + private activeMaterial; + /** + * @param vertices two points of a line + * @param faces two faces relative to a line + */ + constructor(vertices: Array, faces: Array); + /** + * Updates geometry + */ + setFromPoints(vertices: Vector3[]): void; + /** + * Sets to active or inactive + * @param isActive + */ + setActive(isActive: boolean): void; +} +/** + * BoxFace of a section box + */ +export declare class BoxFace extends Mesh { + axis: string; + lines: Array; + backFace: Mesh; + vertices: Vector3[]; + /** + * @param axis axis of a face + * @param vertices 4 points of a face + */ + constructor(axis: string, vertices: Array); + /** + * Updates geometry + */ + setFromPoints(vertices: Vector3[]): void; + /** + * Sets to active or inactive + * @param active + */ + setActive(active: boolean): void; +} diff --git a/demo/libs/types/plugins/sections/BasePlaneSection.d.ts b/demo/libs/types/plugins/sections/BasePlaneSection.d.ts index 0c47029..0d2b24f 100644 --- a/demo/libs/types/plugins/sections/BasePlaneSection.d.ts +++ b/demo/libs/types/plugins/sections/BasePlaneSection.d.ts @@ -1,182 +1,182 @@ -import * as THREE from "three"; -import { Box3, Group, LineSegments, Matrix4, Mesh, Plane, Raycaster, Scene, Vector2, Vector3, WebGLRenderer } from "three"; -import { CameraControlsEx } from "../../core/controls/CameraControlsEx"; -import { ObjectPixelSizeHelper } from "../../core/helpers/ObjectPixelSizeHelper"; -declare enum ActionType { - None = "", - TranslateX = "TranslateX", - TranslateY = "TranslateY", - TranslateZ = "TranslateZ", - RotateX = "RotateX", - RotateY = "RotateY", - RotateZ = "RotateZ" -} -/** - * Object's plane section - */ -export declare class BasePlaneSection { - isOpen: boolean; - protected scene: Scene; - protected camera: THREE.Camera; - protected renderer: WebGLRenderer; - protected controls: CameraControlsEx; - protected isSectionObjectVisible: boolean; - protected gizmo: THREE.Group; - protected objectPixelSizeHelper?: ObjectPixelSizeHelper; - canvasHeight: number; - /** - * Constructor - */ - constructor(scene: Scene, camera: THREE.Camera, renderer: WebGLRenderer, controls: CameraControlsEx); - /** - * If plane is not assigned in constructor, then set it here. - * For now, we only support it to be set once. Otherwise, need to check isOpen status, and initSectionPlane properly. - */ - setSectionPlane(box: Box3): void; - rotatePlane(axis: Vector3, angle: number): void; - movePlaneToCenter(center: Vector3): void; - /** - * Sets section object's visibility, in case caller don't want to see it - */ - setSectionObjectVisible(visible: boolean): void; - /** - * Starts to section - */ - open(): void; - /** - * Close section - */ - close(): void; - /** - * reset section - */ - reset(): void; - /** - * Sets a matrix for section planes, which constains rotation on x, y, z, scale, etc. - * Should call this after initSectionPlane() is called. - * The rotation can be any value, but the editor (drag tool) doesn't work well when rotation is too big! - * So, we'd better to limmit user from applying a big value. - */ - setMatrix(matrix: Matrix4): void; - protected boxMin: Vector3; - protected boxMax: Vector3; - protected group: Group; - protected hoverGroup: Group; - planes: Plane[]; - protected vertices: THREE.Vector3[]; - protected pointMarkers: Mesh[]; - protected face?: BoxFace; - protected lines: BoxLine[]; - /** - * Initialize section plane - */ - protected initSectionPlane(): void; - /** - * Initialize section planes - */ - protected initPlanes(): void; - /** - * Updates planes for section plane - */ - protected updatePlanes(): void; - /** - * Initialize or update 4 vertices of section plane - */ - protected initOrUpdateVertices(): void; - protected initControllerMarkers(): void; - protected updateControllerMarkers(): void; - /** - * Initialize 1 face of section plane - */ - protected initOrUpdateFace(): void; - protected updateHoverVisibles(): void; - protected initGizmo(): void; - /** - * Initialize 4 lines of section plane - */ - protected initOrUpdateLines(): void; - /** - * Clears section plane - */ - protected clearSectionPlane(): void; - protected raycaster: Raycaster; - protected mousePosition: Vector2; - protected activeFace: BoxFace | undefined; - protected activeMarker: Mesh | undefined; - protected isMouseDown: boolean; - protected activeActionType: ActionType; - protected lastCanvasPos?: number[]; - /** - * Adds mouse event listener - */ - private addMouseListener; - /** - * Removes mouse event listener - */ - private removeMouseListener; - /** - * Converts mouse coordinates, and updates raycaster - */ - protected updateMouseAndRay(event: MouseEvent): void; - protected getCanvasPos(event: MouseEvent): number[]; - protected localToWorldVec(localVec: Vector3, normalize?: boolean): THREE.Vector3; - protected getTranslationPlane(worldAxis: Vector3): THREE.Vector3; - protected getPointerPlaneIntersect(mouse: number[], axis: Vector3, offset?: number): THREE.Vector3 | undefined; - protected dragTranslateSectionPlane(baseAxis: Vector3, from: number[], to: number[]): void; - protected dragRotateSectionPlane(baseAxis: Vector3, from: number[], to: number[]): void; - protected updatePosition(): void; - /** - * Handles mouse move event, highlights corresponding face/lines properly - */ - protected onMouseMove: (event: MouseEvent) => void; - /** - * Handles mouse down event, starts to drag a face using left button - */ - protected onMouseDown: (event: MouseEvent) => void; - protected dragStart(): void; - protected dragMove: (event: MouseEvent) => void; - protected dragUp: () => void; -} -/** - * BoxLine of a section plane - */ -declare class BoxLine extends LineSegments { - private normalMaterial; - private activeMaterial; - /** - * @param vertices two points of a line - * @param faces two faces relative to a line - */ - constructor(vertices: Vector3[], faces: BoxFace[]); - /** - * Updates geometry - */ - setFromPoints(vertices: Vector3[]): void; - /** - * Sets to active or inactive - * @param active - */ - setActive(active: boolean): void; -} -/** - * BoxFace of a section plane - */ -declare class BoxFace extends Mesh { - axis: string; - lines: BoxLine[]; - /** - * @param axis axis of a face - * @param vertices 4 points of a face - */ - constructor(axis: string, vertices: Vector3[]); - /** - * Updates geometry - */ - setFromPoints(vertices: Vector3[]): void; - /** - * Sets to active or inactive - * @param active - */ - setActive(active: boolean): void; -} -export {}; +import * as THREE from "three"; +import { Box3, Group, LineSegments, Matrix4, Mesh, Plane, Raycaster, Scene, Vector2, Vector3, WebGLRenderer } from "three"; +import { CameraControlsEx } from "../../core/controls/CameraControlsEx"; +import { ObjectPixelSizeHelper } from "../../core/helpers/ObjectPixelSizeHelper"; +declare enum ActionType { + None = "", + TranslateX = "TranslateX", + TranslateY = "TranslateY", + TranslateZ = "TranslateZ", + RotateX = "RotateX", + RotateY = "RotateY", + RotateZ = "RotateZ" +} +/** + * Object's plane section + */ +export declare class BasePlaneSection { + isOpen: boolean; + protected scene: Scene; + protected camera: THREE.Camera; + protected renderer: WebGLRenderer; + protected controls: CameraControlsEx; + protected isSectionObjectVisible: boolean; + protected gizmo: THREE.Group; + protected objectPixelSizeHelper?: ObjectPixelSizeHelper; + canvasHeight: number; + /** + * Constructor + */ + constructor(scene: Scene, camera: THREE.Camera, renderer: WebGLRenderer, controls: CameraControlsEx); + /** + * If plane is not assigned in constructor, then set it here. + * For now, we only support it to be set once. Otherwise, need to check isOpen status, and initSectionPlane properly. + */ + setSectionPlane(box: Box3): void; + rotatePlane(axis: Vector3, angle: number): void; + movePlaneToCenter(center: Vector3): void; + /** + * Sets section object's visibility, in case caller don't want to see it + */ + setSectionObjectVisible(visible: boolean): void; + /** + * Starts to section + */ + open(): void; + /** + * Close section + */ + close(): void; + /** + * reset section + */ + reset(): void; + /** + * Sets a matrix for section planes, which constains rotation on x, y, z, scale, etc. + * Should call this after initSectionPlane() is called. + * The rotation can be any value, but the editor (drag tool) doesn't work well when rotation is too big! + * So, we'd better to limmit user from applying a big value. + */ + setMatrix(matrix: Matrix4): void; + protected boxMin: Vector3; + protected boxMax: Vector3; + protected group: Group; + protected hoverGroup: Group; + planes: Plane[]; + protected vertices: THREE.Vector3[]; + protected pointMarkers: Mesh[]; + protected face?: BoxFace; + protected lines: BoxLine[]; + /** + * Initialize section plane + */ + protected initSectionPlane(): void; + /** + * Initialize section planes + */ + protected initPlanes(): void; + /** + * Updates planes for section plane + */ + protected updatePlanes(): void; + /** + * Initialize or update 4 vertices of section plane + */ + protected initOrUpdateVertices(): void; + protected initControllerMarkers(): void; + protected updateControllerMarkers(): void; + /** + * Initialize 1 face of section plane + */ + protected initOrUpdateFace(): void; + protected updateHoverVisibles(): void; + protected initGizmo(): void; + /** + * Initialize 4 lines of section plane + */ + protected initOrUpdateLines(): void; + /** + * Clears section plane + */ + protected clearSectionPlane(): void; + protected raycaster: Raycaster; + protected mousePosition: Vector2; + protected activeFace: BoxFace | undefined; + protected activeMarker: Mesh | undefined; + protected isMouseDown: boolean; + protected activeActionType: ActionType; + protected lastCanvasPos?: number[]; + /** + * Adds mouse event listener + */ + private addMouseListener; + /** + * Removes mouse event listener + */ + private removeMouseListener; + /** + * Converts mouse coordinates, and updates raycaster + */ + protected updateMouseAndRay(event: MouseEvent): void; + protected getCanvasPos(event: MouseEvent): number[]; + protected localToWorldVec(localVec: Vector3, normalize?: boolean): THREE.Vector3; + protected getTranslationPlane(worldAxis: Vector3): THREE.Vector3; + protected getPointerPlaneIntersect(mouse: number[], axis: Vector3, offset?: number): THREE.Vector3 | undefined; + protected dragTranslateSectionPlane(baseAxis: Vector3, from: number[], to: number[]): void; + protected dragRotateSectionPlane(baseAxis: Vector3, from: number[], to: number[]): void; + protected updatePosition(): void; + /** + * Handles mouse move event, highlights corresponding face/lines properly + */ + protected onMouseMove: (event: MouseEvent) => void; + /** + * Handles mouse down event, starts to drag a face using left button + */ + protected onMouseDown: (event: MouseEvent) => void; + protected dragStart(): void; + protected dragMove: (event: MouseEvent) => void; + protected dragUp: () => void; +} +/** + * BoxLine of a section plane + */ +declare class BoxLine extends LineSegments { + private normalMaterial; + private activeMaterial; + /** + * @param vertices two points of a line + * @param faces two faces relative to a line + */ + constructor(vertices: Vector3[], faces: BoxFace[]); + /** + * Updates geometry + */ + setFromPoints(vertices: Vector3[]): void; + /** + * Sets to active or inactive + * @param active + */ + setActive(active: boolean): void; +} +/** + * BoxFace of a section plane + */ +declare class BoxFace extends Mesh { + axis: string; + lines: BoxLine[]; + /** + * @param axis axis of a face + * @param vertices 4 points of a face + */ + constructor(axis: string, vertices: Vector3[]); + /** + * Updates geometry + */ + setFromPoints(vertices: Vector3[]): void; + /** + * Sets to active or inactive + * @param active + */ + setActive(active: boolean): void; +} +export {}; diff --git a/demo/libs/types/plugins/sections/BaseSection.d.ts b/demo/libs/types/plugins/sections/BaseSection.d.ts index 252fc0d..b1d0630 100644 --- a/demo/libs/types/plugins/sections/BaseSection.d.ts +++ b/demo/libs/types/plugins/sections/BaseSection.d.ts @@ -1,60 +1,59 @@ -import * as THREE from "three"; -import type { CameraControlsEx } from "../../core/controls/CameraControlsEx"; -import { EventInfo, InputManager } from "../../core/input/InputManager"; -import type { BaseViewer } from "../../core/viewers"; -/** - * Abstract base class for AxisPlaneSection, ObjectsBoxSection, etc. - */ -export declare abstract class BaseSection { - protected viewer: BaseViewer; - protected inputManager: InputManager; - protected scene: THREE.Scene; - protected renderer: THREE.WebGLRenderer; - protected raycaster: THREE.Raycaster; - protected sectionBox: THREE.Box3; - protected mouseDown: boolean; - protected lastWorldPos: THREE.Vector3; - protected mouseMoved: boolean; - protected dragStarted: boolean; - protected clipPlanes?: THREE.Plane[]; - protected vertices?: THREE.Vector3[]; - protected selectedObject?: THREE.Object3D; - protected refrencePlane: THREE.Plane; - protected active: boolean; - /** - * If to show section plane or not. - */ - showSectionPlane: boolean; - /** - * @internal - */ - clippingObjetIds?: number[]; - constructor(viewer: BaseViewer, input: InputManager); - protected get canvas(): HTMLCanvasElement; - get isActive(): boolean; - protected get camera(): THREE.Camera; - protected get controls(): CameraControlsEx; - private setGlobalClippingEnabled; - private setObjectClippingEnabled; - clearClippingObjectIds(): void; - setClippingEnabled(enable: boolean): void; - activate(): void; - deactivate(): void; - protected enableDefaultControl(enable: boolean): void; - protected mousedown: (e: EventInfo) => void; - protected mousemove: (e: EventInfo) => void; - protected mouseup: (e: EventInfo) => void; - protected keydown: (e: EventInfo) => void; - protected getIntersections(e: EventInfo): THREE.Intersection | undefined; - protected updateRaycasterByMouse(e: EventInfo): void; - destroy(): void; - protected abstract onDragStart(e: EventInfo): void; - protected abstract onDragMove(e: EventInfo): void; - protected abstract onDragEnd(e: EventInfo): void; - protected abstract getIntersectObjects(): THREE.Object3D[]; - protected abstract activateSelectedObject(active: boolean): void; - protected abstract initOrUpdateSectionPlane(): void; - protected abstract initOrUpdateClipPlane(): void; - protected abstract resetSection(): void; - protected abstract setSectionVisible(visible: boolean): void; -} +import * as THREE from "three"; +import type { CameraControlsEx } from "../../core/controls/CameraControlsEx"; +import { EventInfo, InputManager } from "../../core/input/InputManager"; +import type { BaseViewer } from "../../core/viewers"; +/** + * Abstract base class for AxisPlaneSection, ObjectsBoxSection, etc. + */ +export declare abstract class BaseSection { + protected viewer: BaseViewer; + protected inputManager: InputManager; + protected scene: THREE.Scene; + protected renderer: THREE.WebGLRenderer; + protected raycaster: THREE.Raycaster; + protected sectionBox: THREE.Box3; + protected lastWorldPos: THREE.Vector3; + protected mouseMoved: boolean; + protected dragStarted: boolean; + protected clipPlanes?: THREE.Plane[]; + protected vertices?: THREE.Vector3[]; + protected selectedObject?: THREE.Object3D; + protected refrencePlane: THREE.Plane; + protected active: boolean; + /** + * If to show section plane or not. + */ + showSectionPlane: boolean; + /** + * @internal + */ + clippingObjetIds?: number[]; + constructor(viewer: BaseViewer, input: InputManager); + protected get canvas(): HTMLCanvasElement; + get isActive(): boolean; + protected get camera(): THREE.Camera; + protected get controls(): CameraControlsEx; + private setGlobalClippingEnabled; + private setObjectClippingEnabled; + clearClippingObjectIds(): void; + setClippingEnabled(enable: boolean): void; + activate(): void; + deactivate(): void; + protected setControlsEnabled(enable: boolean): void; + protected mousedown: (e: EventInfo) => void; + protected mousemove: (e: EventInfo) => void; + protected mouseup: (e: EventInfo) => void; + protected keydown: (e: EventInfo) => void; + protected getIntersections(e: EventInfo): THREE.Intersection | undefined; + protected updateRaycasterByMouse(e: EventInfo): void; + destroy(): void; + protected abstract onDragStart(e: EventInfo): void; + protected abstract onDragMove(e: EventInfo): void; + protected abstract onDragEnd(e: EventInfo): void; + protected abstract getIntersectObjects(): THREE.Object3D[]; + protected abstract activateSelectedObject(active: boolean): void; + protected abstract initOrUpdateSectionPlaneMeshes(): void; + protected abstract initOrUpdateClipPlanes(): void; + protected abstract resetSection(): void; + protected abstract setSectionPlaneMeshVisible(visible: boolean): void; +} diff --git a/demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts b/demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts index 80d316e..8a58fb2 100644 --- a/demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts +++ b/demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts @@ -1,24 +1,24 @@ -import { Box3, OrthographicCamera, PerspectiveCamera, Scene, WebGLRenderer } from "three"; -import { CameraControlsEx } from "../../core/controls/CameraControlsEx"; -import { BasePlaneSection } from "./BasePlaneSection"; -/** - * GlobalPlaneSection section - */ -export declare class GlobalPlaneSection extends BasePlaneSection { - /** - * Constructor - */ - constructor(sectionBox: Box3, scene: Scene, camera: PerspectiveCamera | OrthographicCamera, renderer: WebGLRenderer, controls: CameraControlsEx); - /** - * Initialize section box - */ - protected initSectionPlane(): void; - /** - * Updates planes for section plane - */ - protected updatePlanes(): void; - /** - * Clears section planes - */ - protected clearSectionPlane(): void; -} +import { Box3, OrthographicCamera, PerspectiveCamera, Scene, WebGLRenderer } from "three"; +import { CameraControlsEx } from "../../core/controls/CameraControlsEx"; +import { BasePlaneSection } from "./BasePlaneSection"; +/** + * GlobalPlaneSection section + */ +export declare class GlobalPlaneSection extends BasePlaneSection { + /** + * Constructor + */ + constructor(sectionBox: Box3, scene: Scene, camera: PerspectiveCamera | OrthographicCamera, renderer: WebGLRenderer, controls: CameraControlsEx); + /** + * Initialize section box + */ + protected initSectionPlane(): void; + /** + * Updates planes for section plane + */ + protected updatePlanes(): void; + /** + * Clears section planes + */ + protected clearSectionPlane(): void; +} diff --git a/demo/libs/types/plugins/sections/ObjectsBoxSection.d.ts b/demo/libs/types/plugins/sections/ObjectsBoxSection.d.ts index 1dc0110..2adf7cf 100644 --- a/demo/libs/types/plugins/sections/ObjectsBoxSection.d.ts +++ b/demo/libs/types/plugins/sections/ObjectsBoxSection.d.ts @@ -1,27 +1,27 @@ -import * as THREE from "three"; -import { BaseSection } from "./BaseSection"; -import { SectionPlane } from "./SectionPlane"; -import { EventInfo, InputManager } from "../../core/input/InputManager"; -import { Views } from "../../core/utils/Viewer3DUtils"; -import { BaseViewer } from "../../core/viewers/BaseViewer"; -export declare class ObjectsBoxSection extends BaseSection { - protected selectedObject?: SectionPlane; - protected planesMesh?: SectionPlane[]; - protected sectionRange: Record; - constructor(viewer: BaseViewer, input: InputManager); - activate(): void; - deactivate(): void; - protected initOrUpdateVertices(): void; - initOrUpdateClipPlane(): void; - initOrUpdateSectionPlane(): void; - activateSelectedObject(active: boolean): void; - onDragStart(e: EventInfo): void; - onDragMove(e: EventInfo): void; - onDragEnd(e: EventInfo): void; - protected dragTranslateSectionPlane(axis: THREE.Vector3, from: THREE.Vector3, to: THREE.Vector3, actionType: Views): void; - protected isInRange(value: number, range: number[]): boolean; - protected getIntersections(e: EventInfo): THREE.Intersection | undefined; - getIntersectObjects(): SectionPlane[]; - resetSection(): void; - setSectionVisible(visible: boolean): void; -} +import * as THREE from "three"; +import { BaseSection } from "./BaseSection"; +import { SectionPlaneMesh } from "./SectionPlaneMesh"; +import { EventInfo, InputManager } from "../../core/input/InputManager"; +import { Views } from "../../core/utils/Viewer3DUtils"; +import { BaseViewer } from "../../core/viewers/BaseViewer"; +export declare class ObjectsBoxSection extends BaseSection { + protected selectedObject?: SectionPlaneMesh; + protected planeMeshes?: SectionPlaneMesh[]; + protected sectionRange: Record; + constructor(viewer: BaseViewer, input: InputManager); + activate(): void; + deactivate(): void; + protected initOrUpdateVertices(): void; + protected initOrUpdateClipPlanes(): void; + protected initOrUpdateSectionPlaneMeshes(): void; + activateSelectedObject(active: boolean): void; + onDragStart(e: EventInfo): void; + onDragMove(e: EventInfo): void; + onDragEnd(e: EventInfo): void; + protected dragTranslateSectionPlane(axis: THREE.Vector3, from: THREE.Vector3, to: THREE.Vector3, actionType: Views): void; + protected isInRange(value: number, range: number[]): boolean; + protected getIntersections(e: EventInfo): THREE.Intersection | undefined; + getIntersectObjects(): SectionPlaneMesh[]; + resetSection(): void; + setSectionPlaneMeshVisible(visible: boolean): void; +} diff --git a/demo/libs/types/plugins/sections/ObjectsPlaneSection.d.ts b/demo/libs/types/plugins/sections/ObjectsPlaneSection.d.ts index 324c137..bcb4489 100644 --- a/demo/libs/types/plugins/sections/ObjectsPlaneSection.d.ts +++ b/demo/libs/types/plugins/sections/ObjectsPlaneSection.d.ts @@ -1,21 +1,21 @@ -import { OrthographicCamera, PerspectiveCamera, Scene, WebGLRenderer } from "three"; -import { CameraControlsEx } from "../../core/controls/CameraControlsEx"; -import { BasePlaneSection } from "./BasePlaneSection"; -/** - * Objects' plane section - **/ -export declare class ObjectsPlaneSection extends BasePlaneSection { - private objectIds; - /** - * Constructor - */ - constructor(objectIds: number[], scene: Scene, camera: PerspectiveCamera | OrthographicCamera, renderer: WebGLRenderer, controls: CameraControlsEx); - /** - * Initialize 6 section plane - **/ - protected initSectionPlane(): void; - /** - * Clears section plane - **/ - protected clearSectionPlane(): void; -} +import { OrthographicCamera, PerspectiveCamera, Scene, WebGLRenderer } from "three"; +import { CameraControlsEx } from "../../core/controls/CameraControlsEx"; +import { BasePlaneSection } from "./BasePlaneSection"; +/** + * Objects' plane section + **/ +export declare class ObjectsPlaneSection extends BasePlaneSection { + private objectIds; + /** + * Constructor + */ + constructor(objectIds: number[], scene: Scene, camera: PerspectiveCamera | OrthographicCamera, renderer: WebGLRenderer, controls: CameraControlsEx); + /** + * Initialize 6 section plane + **/ + protected initSectionPlane(): void; + /** + * Clears section plane + **/ + protected clearSectionPlane(): void; +} diff --git a/demo/libs/types/plugins/sections/PickPlaneSection.d.ts b/demo/libs/types/plugins/sections/PickPlaneSection.d.ts index 3e04629..4ab34d0 100644 --- a/demo/libs/types/plugins/sections/PickPlaneSection.d.ts +++ b/demo/libs/types/plugins/sections/PickPlaneSection.d.ts @@ -1,36 +1,36 @@ -import * as THREE from "three"; -import { Tooltip } from "../../components/tool-tip"; -import { EventInfo, InputManager } from "../../core/input/InputManager"; -import type { BaseViewer } from "../../core/viewers"; -import { BaseSection } from "../../plugins/sections/BaseSection"; -import { SectionGizmo } from "../../plugins/sections/SectionGizmo"; -import { SectionPlane } from "../../plugins/sections/SectionPlane"; -export declare class PickPlaneSection extends BaseSection { - protected faceInfo?: { - position: THREE.Vector3; - normal: THREE.Vector3; - }; - protected gizmo?: SectionGizmo; - protected planeMesh?: SectionPlane; - protected clipPlane?: THREE.Plane; - protected selectedObject?: SectionPlane | THREE.Mesh | THREE.Object3D; - protected center: THREE.Vector3; - protected tooltip?: Tooltip; - constructor(viewer: BaseViewer, input: InputManager); - activate(): void; - deactivate(): void; - setSection(): void; - resetSection(): void; - setSectionVisible(visible: boolean): void; - initOrUpdateClipPlane(): void; - initOrUpdateSectionPlane(): void; - initOrUpdateGizmo(): void; - mousedown: (e: EventInfo) => void; - mousemove: (e: EventInfo) => void; - onDragStart(e: EventInfo): void; - onDragMove(e: EventInfo): void; - onDragEnd(e: EventInfo): void; - getIntersectObjects(): THREE.Object3D[]; - activateSelectedObject(active: boolean): void; - pickFace(e: EventInfo): THREE.Intersection> | undefined; -} +import * as THREE from "three"; +import { Tooltip } from "../../components/tool-tip"; +import { EventInfo, InputManager } from "../../core/input/InputManager"; +import type { BaseViewer } from "../../core/viewers"; +import { BaseSection } from "../../plugins/sections/BaseSection"; +import { SectionGizmo } from "../../plugins/sections/SectionGizmo"; +import { SectionPlaneMesh } from "../../plugins/sections/SectionPlaneMesh"; +export declare class PickPlaneSection extends BaseSection { + protected faceInfo?: { + position: THREE.Vector3; + normal: THREE.Vector3; + }; + protected gizmo?: SectionGizmo; + protected planeMesh?: SectionPlaneMesh; + protected clipPlane?: THREE.Plane; + protected selectedObject?: SectionPlaneMesh | THREE.Mesh | THREE.Object3D; + protected center: THREE.Vector3; + protected tooltip?: Tooltip; + constructor(viewer: BaseViewer, input: InputManager); + activate(): void; + deactivate(): void; + setSection(): void; + resetSection(): void; + setSectionPlaneMeshVisible(visible: boolean): void; + protected initOrUpdateClipPlanes(): void; + protected initOrUpdateSectionPlaneMeshes(): void; + protected initOrUpdateGizmo(): void; + mousedown: (e: EventInfo) => void; + mousemove: (e: EventInfo) => void; + onDragStart(e: EventInfo): void; + onDragMove(e: EventInfo): void; + onDragEnd(e: EventInfo): void; + getIntersectObjects(): THREE.Object3D[]; + activateSelectedObject(active: boolean): void; + pickFace(e: EventInfo): THREE.Intersection> | undefined; +} diff --git a/demo/libs/types/plugins/sections/Section.constants.d.ts b/demo/libs/types/plugins/sections/Section.constants.d.ts index d678816..46e5557 100644 --- a/demo/libs/types/plugins/sections/Section.constants.d.ts +++ b/demo/libs/types/plugins/sections/Section.constants.d.ts @@ -1,13 +1,13 @@ -import * as THREE from "three"; -export declare const xBaseAxis: THREE.Vector3; -export declare const yBaseAxis: THREE.Vector3; -export declare const zBaseAxis: THREE.Vector3; -export declare enum ActionType { - None = "", - TranslateX = "TranslateX", - TranslateY = "TranslateY", - TranslateZ = "TranslateZ", - RotateX = "RotateX", - RotateY = "RotateY", - RotateZ = "RotateZ" -} +import * as THREE from "three"; +export declare const xBaseAxis: THREE.Vector3; +export declare const yBaseAxis: THREE.Vector3; +export declare const zBaseAxis: THREE.Vector3; +export declare enum ActionType { + None = "", + TranslateX = "TranslateX", + TranslateY = "TranslateY", + TranslateZ = "TranslateZ", + RotateX = "RotateX", + RotateY = "RotateY", + RotateZ = "RotateZ" +} diff --git a/demo/libs/types/plugins/sections/SectionGizmo.d.ts b/demo/libs/types/plugins/sections/SectionGizmo.d.ts index 72b129d..9b1bdea 100644 --- a/demo/libs/types/plugins/sections/SectionGizmo.d.ts +++ b/demo/libs/types/plugins/sections/SectionGizmo.d.ts @@ -1,22 +1,22 @@ -import * as THREE from "three"; -import { ActionType } from "../../plugins/sections/Section.constants"; -export declare class SectionGizmo extends THREE.Group { - protected redMaterial: THREE.MeshBasicMaterial; - protected greenMaterial: THREE.MeshBasicMaterial; - protected blueMaterial: THREE.MeshBasicMaterial; - protected highlightMaterial: THREE.MeshBasicMaterial; - protected pickableMaterial: THREE.MeshBasicMaterial; - protected originalMaterial?: THREE.MeshBasicMaterial; - protected hoverObject?: THREE.Mesh; - constructor(normal?: THREE.Vector3); - initIgnoreClipMaterial(): void; - setDirection(normal: THREE.Vector3): void; - initOrUpdateByAxis(normal: THREE.Vector3): void; - createTranslateGizmo(actionType: ActionType, direction: THREE.Vector3, size: number, material: THREE.Material): THREE.Mesh, THREE.Material>; - createRotateGizmo(actionType: ActionType, direction: THREE.Vector3, size: number, material: THREE.Material, degree: number): THREE.Mesh; - createSphere(size: number, material: THREE.Material, position?: THREE.Vector3): void; - setActiveAxis(axis: THREE.Vector3): void; - private createHoverRotateObjectByAxis; - setActive(active: boolean, selectObject: THREE.Mesh): void; - adjustSize(camera: THREE.Camera): void; -} +import * as THREE from "three"; +import { ActionType } from "../../plugins/sections/Section.constants"; +export declare class SectionGizmo extends THREE.Group { + protected redMaterial: THREE.MeshBasicMaterial; + protected greenMaterial: THREE.MeshBasicMaterial; + protected blueMaterial: THREE.MeshBasicMaterial; + protected highlightMaterial: THREE.MeshBasicMaterial; + protected pickableMaterial: THREE.MeshBasicMaterial; + protected originalMaterial?: THREE.MeshBasicMaterial; + protected hoverObject?: THREE.Mesh; + constructor(normal?: THREE.Vector3); + initIgnoreClipMaterial(): void; + setDirection(normal: THREE.Vector3): void; + initOrUpdateByAxis(normal: THREE.Vector3): void; + createTranslateGizmo(actionType: ActionType, direction: THREE.Vector3, size: number, material: THREE.Material): THREE.Mesh, THREE.Material>; + createRotateGizmo(actionType: ActionType, direction: THREE.Vector3, size: number, material: THREE.Material, degree: number): THREE.Mesh; + createSphere(size: number, material: THREE.Material, position?: THREE.Vector3): void; + setActiveAxis(axis: THREE.Vector3): void; + private createHoverRotateObjectByAxis; + setActive(active: boolean, selectObject: THREE.Mesh): void; + adjustSize(camera: THREE.Camera): void; +} diff --git a/demo/libs/types/plugins/sections/SectionPlane.d.ts b/demo/libs/types/plugins/sections/SectionPlaneMesh.d.ts similarity index 88% rename from demo/libs/types/plugins/sections/SectionPlane.d.ts rename to demo/libs/types/plugins/sections/SectionPlaneMesh.d.ts index f926fdb..1598ffb 100644 --- a/demo/libs/types/plugins/sections/SectionPlane.d.ts +++ b/demo/libs/types/plugins/sections/SectionPlaneMesh.d.ts @@ -1,18 +1,21 @@ -import * as THREE from "three"; -export declare class SectionPlane extends THREE.Mesh { - static readonly normalPlaneColor: THREE.Color; - static readonly activePlaneColor: THREE.Color; - static readonly normalLineColor = 16777215; - actionType: string; - vertices: THREE.Vector3[]; - edge: THREE.Line; - constructor(actionType: string, vertices: THREE.Vector3[]); - private createIgnoreClipMaterials; - createEdge(vertices: THREE.Vector3[]): THREE.Line, THREE.LineBasicMaterial>; - update(vertices: THREE.Vector3[]): void; - rotatePlane(axis: THREE.Vector3, angle: number): void; - setDirection(normal: THREE.Vector3): void; - getPlaneNormal(): THREE.Vector3; - setActive(active: boolean): void; - getPlaneCenter(): THREE.Vector3; -} +import * as THREE from "three"; +/** + * Visible section plan mesh. + */ +export declare class SectionPlaneMesh extends THREE.Mesh { + static readonly normalPlaneColor: THREE.Color; + static readonly activePlaneColor: THREE.Color; + static readonly normalLineColor = 16777215; + actionType: string; + vertices: THREE.Vector3[]; + edge: THREE.Line; + constructor(actionType: string, vertices: THREE.Vector3[]); + private createIgnoreClipMaterials; + createEdge(vertices: THREE.Vector3[]): THREE.Line, THREE.LineBasicMaterial>; + update(vertices: THREE.Vector3[]): void; + rotatePlane(axis: THREE.Vector3, angle: number): void; + setDirection(normal: THREE.Vector3): void; + getPlaneNormal(): THREE.Vector3; + setActive(active: boolean): void; + getPlaneCenter(): THREE.Vector3; +} diff --git a/demo/libs/types/plugins/sections/SectionPlugin.d.ts b/demo/libs/types/plugins/sections/SectionPlugin.d.ts index 380e4d5..f5d5e61 100644 --- a/demo/libs/types/plugins/sections/SectionPlugin.d.ts +++ b/demo/libs/types/plugins/sections/SectionPlugin.d.ts @@ -1,51 +1,52 @@ -import { SectionType } from "../../core/Constants"; -import type { BaseViewer } from "../../core/viewers"; -import { Plugin } from "../../core/viewers/Plugin"; -import { BaseSection } from "../../plugins/sections/BaseSection"; -export declare class SectionPlugin extends Plugin { - private sections; - private activeSectionType?; - constructor(viewer: BaseViewer); - protected get raycaster(): import("three").Raycaster | undefined; - /** - * - * @param {SectionType} type - * @param clippingObjectIds - * @description {en} Activates one of "ObjectsBoxSection", "AxisPlaneSection" or "PickPlaneSection" Section - * @description {zh} 激活"剖切盒", "轴向剖切" 或者 "拾取面剖切" - */ - activate(type: SectionType): void; - /** - * @description Deactivate Section plugin - */ - deactivate(): void; - resetSection(): void; - /** - * - * @returns {boolean} Is Section active - */ - isActive(): boolean; - /** - * Gets the active section type. - */ - getActiveSectionType(): SectionType | undefined; - /** - * Gets the active section. - */ - getActiveSection(): BaseSection | undefined; - /** - * Sets clipping object ids for all sections. - * @param ids - * @returns - * @description Set the id of the object that needs to be clipping for all section - */ - protected setClippingObjectIds(ids?: number[]): void; - /** - * Sets clipping object ids for a specific SectionType. - * @param ids - * @returns - * @description Set the id of the object that needs to be clipping for section by section type - */ - protected setClippingObjectIdsForType(type: SectionType, ids?: number[]): void; - destroy(): void; -} +import { SectionType } from "../../core/Constants"; +import type { BaseViewer } from "../../core/viewers"; +import { Plugin } from "../../core/viewers/Plugin"; +import { BaseSection } from "../../plugins/sections/BaseSection"; +export declare class SectionPlugin extends Plugin { + static DEFAULT_ID: string; + private sections; + private activeSectionType?; + constructor(viewer: BaseViewer); + protected get raycaster(): any; + /** + * + * @param {SectionType} type + * @param clippingObjectIds + * @description {en} Activates one of "ObjectsBoxSection", "AxisPlaneSection" or "PickPlaneSection" Section + * @description {zh} 激活"剖切盒", "轴向剖切" 或者 "拾取面剖切" + */ + activate(type: SectionType): void; + /** + * @description Deactivate Section plugin + */ + deactivate(): void; + resetSection(): void; + /** + * + * @returns {boolean} Is Section active + */ + isActive(): boolean; + /** + * Gets the active section type. + */ + getActiveSectionType(): SectionType | undefined; + /** + * Gets the active section. + */ + getActiveSection(): BaseSection | undefined; + /** + * Sets clipping object ids for all sections. + * @param ids + * @returns + * @description Set the id of the object that needs to be clipping for all section + */ + protected setClippingObjectIds(ids?: number[]): void; + /** + * Sets clipping object ids for a specific SectionType. + * @param ids + * @returns + * @description Set the id of the object that needs to be clipping for section by section type + */ + protected setClippingObjectIdsForType(type: SectionType, ids?: number[]): void; + destroy(): void; +} diff --git a/demo/libs/types/plugins/sections/ViewportSection.d.ts b/demo/libs/types/plugins/sections/ViewportSection.d.ts index e6912c2..130daa1 100644 --- a/demo/libs/types/plugins/sections/ViewportSection.d.ts +++ b/demo/libs/types/plugins/sections/ViewportSection.d.ts @@ -1,55 +1,55 @@ -import { Box3, Group, Plane, Scene, Vector3 } from "three"; -import { Views } from "../../core/utils/Viewer3DUtils"; -import { BoxFace, BoxLine } from "./BaseBoxSection"; -/** - * For dxf viewport section, only 4 section planes are required. - */ -export declare class ViewportSection { - isOpen: boolean; - protected sectionBox?: Box3; - protected scene: Scene; - private objectIds; - private isShowSection; - constructor(scene: Scene, objectsIds: number[], isShowSection?: boolean); - setSectionBox(sectionBox: Box3): void; - /** - * Starts to clip - */ - open(): void; - /** - * Close clipper - */ - close(): void; - /** - * reset clipper - */ - reset(): void; - protected group: Group; - protected planes: Array; - protected vertices: Vector3[]; - protected faces: Array; - protected lines: Array; - protected sectionPlaneMap: Map; - /** - * Initialize clip box - */ - protected initSectionBox(): void; - /** - * Only 4 section planes - */ - protected initPlanes(): void; - /** - * Clears clip box - */ - protected clearSectionBox(): void; - private setObjectsSectionEnabled; - /** - * Initialize or update 8 vertices of section box - */ - protected initOrUpdateVertices(): void; - protected initOrUpdateFaces(): void; - /** - * Initialize 12 lines of section box - */ - protected initOrUpdateLines(): void; -} +import { Box3, Group, Plane, Scene, Vector3 } from "three"; +import { Views } from "../../core/utils/Viewer3DUtils"; +import { BoxFace, BoxLine } from "./BaseBoxSection"; +/** + * For dxf viewport section, only 4 section planes are required. + */ +export declare class ViewportSection { + isOpen: boolean; + protected sectionBox?: Box3; + protected scene: Scene; + private objectIds; + private isShowSection; + constructor(scene: Scene, objectsIds: number[], isShowSection?: boolean); + setSectionBox(sectionBox: Box3): void; + /** + * Starts to clip + */ + open(): void; + /** + * Close clipper + */ + close(): void; + /** + * reset clipper + */ + reset(): void; + protected group: Group; + protected planes: Array; + protected vertices: Vector3[]; + protected faces: Array; + protected lines: Array; + protected sectionPlaneMap: Map; + /** + * Initialize clip box + */ + protected initSectionBox(): void; + /** + * Only 4 section planes + */ + protected initPlanes(): void; + /** + * Clears clip box + */ + protected clearSectionBox(): void; + private setObjectsSectionEnabled; + /** + * Initialize or update 8 vertices of section box + */ + protected initOrUpdateVertices(): void; + protected initOrUpdateFaces(): void; + /** + * Initialize 12 lines of section box + */ + protected initOrUpdateLines(): void; +} diff --git a/demo/libs/types/plugins/sections/index.d.ts b/demo/libs/types/plugins/sections/index.d.ts index 7183e63..ac07438 100644 --- a/demo/libs/types/plugins/sections/index.d.ts +++ b/demo/libs/types/plugins/sections/index.d.ts @@ -1,5 +1,5 @@ -export * from "./BaseSection"; -export * from "./AxisPlaneSection"; -export * from "./ObjectsBoxSection"; -export * from "./PickPlaneSection"; -export * from "./SectionPlugin"; +export * from "./BaseSection"; +export * from "./AxisPlaneSection"; +export * from "./ObjectsBoxSection"; +export * from "./PickPlaneSection"; +export * from "./SectionPlugin"; diff --git a/demo/libs/types/plugins/skybox/GradientColorSkybox.d.ts b/demo/libs/types/plugins/skybox/GradientColorSkybox.d.ts index d4e8d70..47fb2dd 100644 --- a/demo/libs/types/plugins/skybox/GradientColorSkybox.d.ts +++ b/demo/libs/types/plugins/skybox/GradientColorSkybox.d.ts @@ -1,9 +1,9 @@ -import * as THREE from "three"; -export declare class GradientColorSkybox extends THREE.Mesh { - static NAME: string; - static MIN_SKY_RADIUS: number; - static MAX_SKY_RADIUS: number; - static vertexShader: string; - static fragmentShader: string; - constructor(topColor: THREE.Color, skylineColor: THREE.Color, bottomColor: THREE.Color, radius?: number, widthSegments?: number, heightSegments?: number, skyCenter?: THREE.Vector3, sunDirection?: THREE.Vector3); -} +import * as THREE from "three"; +export declare class GradientColorSkybox extends THREE.Mesh { + static NAME: string; + static MIN_SKY_RADIUS: number; + static MAX_SKY_RADIUS: number; + static vertexShader: string; + static fragmentShader: string; + constructor(topColor: THREE.Color, skylineColor: THREE.Color, bottomColor: THREE.Color, radius?: number, widthSegments?: number, heightSegments?: number, skyCenter?: THREE.Vector3, sunDirection?: THREE.Vector3); +} diff --git a/demo/libs/types/plugins/skybox/SkyboxPlugin.d.ts b/demo/libs/types/plugins/skybox/SkyboxPlugin.d.ts index 8611f83..bac3e42 100644 --- a/demo/libs/types/plugins/skybox/SkyboxPlugin.d.ts +++ b/demo/libs/types/plugins/skybox/SkyboxPlugin.d.ts @@ -1,49 +1,50 @@ -import * as THREE from "three"; -import { GradientColorSkybox } from "./GradientColorSkybox"; -import { BaseViewer, Plugin, PluginConfig } from "../../core"; -/** - * Skybox plugin config. - */ -export interface SkyboxPluginConfig extends PluginConfig { - /** - * Initial single color of the skybox. - * If specified, it initialize with a single color background. Otherwise, - * the skybox initialize with default gradient colors. - */ - color?: number[]; -} -/** - * Skybox plugin. It is mainly used by BimViewer, while can also be used by DxfViewer and VRViewer. - * You can set skybox in several means: - * 1) Single color, by using setSkyboxByColor(). - * 2) Gradient colors, by using setSkyboxByGradientColors(). - * 3) Cube texture, by using setSkyboxByCubeTexture(). - */ -export declare class SkyboxPlugin extends Plugin { - protected gradientColorSkybox?: GradientColorSkybox; - constructor(viewer: BaseViewer, cfg?: SkyboxPluginConfig); - /** - * Set skybox by a single color. - * @param color rgb number array, each value is between 0 and 1. e.g. [0.92, 0.95, 0.96] - */ - setSkyboxByColor(color?: number[]): void; - /** - * Sets skybox by 3 gradient colors (top, skyline, bottom). - */ - setSkyboxByGradientColors(topColor?: number[], // 0x86b6f5 - skylineColor?: number[], // 0xffffff - bottomColor?: number[]): void; - /** - * Sets skybox by cube texture (6 images). - */ - setSkyboxByCubeTexture(urls: string[]): void; - /** - * Updates gradient color skybox when models' bbox changed. - */ - private updateGradientColorSkybox; - destroy(): void; - /** - * Converts rgb color number array to THREE.Color. - */ - protected rgb2Color(color: number[]): THREE.Color; -} +import * as THREE from "three"; +import { GradientColorSkybox } from "./GradientColorSkybox"; +import { BaseViewer, Plugin, PluginConfig } from "../../core"; +/** + * Skybox plugin config. + */ +export interface SkyboxPluginConfig extends Partial { + /** + * Initial single color of the skybox. + * If specified, it initialize with a single color background. Otherwise, + * the skybox initialize with default gradient colors. + */ + color?: number[]; +} +/** + * Skybox plugin. It is mainly used by BimViewer, while can also be used by DxfViewer and VRViewer. + * You can set skybox in several means: + * 1) Single color, by using setSkyboxByColor(). + * 2) Gradient colors, by using setSkyboxByGradientColors(). + * 3) Cube texture, by using setSkyboxByCubeTexture(). + */ +export declare class SkyboxPlugin extends Plugin { + static DEFAULT_ID: string; + protected gradientColorSkybox?: GradientColorSkybox; + constructor(viewer: BaseViewer, cfg?: SkyboxPluginConfig); + /** + * Set skybox by a single color. + * @param color rgb number array, each value is between 0 and 1. e.g. [0.92, 0.95, 0.96] + */ + setSkyboxByColor(color?: number[]): void; + /** + * Sets skybox by 3 gradient colors (top, skyline, bottom). + */ + setSkyboxByGradientColors(topColor?: number[], // 0x86b6f5 + skylineColor?: number[], // 0xffffff + bottomColor?: number[]): void; + /** + * Sets skybox by cube texture (6 images). + */ + setSkyboxByCubeTexture(urls: string[]): void; + /** + * Updates gradient color skybox when models' bbox changed. + */ + private updateGradientColorSkybox; + destroy(): void; + /** + * Converts rgb color number array to THREE.Color. + */ + protected rgb2Color(color: number[]): THREE.Color; +} diff --git a/demo/libs/types/plugins/skybox/index.d.ts b/demo/libs/types/plugins/skybox/index.d.ts index 7ce1419..7180e0a 100644 --- a/demo/libs/types/plugins/skybox/index.d.ts +++ b/demo/libs/types/plugins/skybox/index.d.ts @@ -1 +1 @@ -export * from "./SkyboxPlugin"; +export * from "./SkyboxPlugin"; diff --git a/demo/libs/types/plugins/stats/StatsPlugin.d.ts b/demo/libs/types/plugins/stats/StatsPlugin.d.ts index db5f9f9..abd3927 100644 --- a/demo/libs/types/plugins/stats/StatsPlugin.d.ts +++ b/demo/libs/types/plugins/stats/StatsPlugin.d.ts @@ -1,20 +1,20 @@ -/// -import Stats from "three/examples/jsm/libs/stats.module.js"; -import { BaseViewer, Plugin } from "../../core"; -/** - * Stats plugin is a debug tool for developers to observe the performance of a page. - */ -export declare class StatsPlugin extends Plugin { - protected stats?: Stats; - constructor(viewer: BaseViewer); - private init; - /** - * Shows the stats panel, which indicates current FPS, MS, MB, etc. - */ - show(): void; - /** - * Shows the stats panel, which indicates current FPS, MS, MB, etc. - */ - hide(): void; - destroy(): void; -} +/// +import Stats from "three/examples/jsm/libs/stats.module.js"; +import { BaseViewer, Plugin } from "../../core"; +/** + * Stats plugin is a debug tool for developers to observe the performance of a page. + */ +export declare class StatsPlugin extends Plugin { + protected stats?: Stats; + constructor(viewer: BaseViewer); + private init; + /** + * Shows the stats panel, which indicates current FPS, MS, MB, etc. + */ + show(): void; + /** + * Shows the stats panel, which indicates current FPS, MS, MB, etc. + */ + hide(): void; + destroy(): void; +} diff --git a/demo/libs/types/plugins/stats/index.d.ts b/demo/libs/types/plugins/stats/index.d.ts index af2e92e..220b74f 100644 --- a/demo/libs/types/plugins/stats/index.d.ts +++ b/demo/libs/types/plugins/stats/index.d.ts @@ -1 +1 @@ -export * from "./StatsPlugin"; +export * from "./StatsPlugin"; diff --git a/demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts b/demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts index 27a7912..f33b88d 100644 --- a/demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts +++ b/demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts @@ -1,23 +1,25 @@ -import { Toolbar } from "./Toolbar"; -import { ToolbarConfig, ToolbarMenuId } from "./Toolbar.constants"; -import { Plugin, type BaseViewer, PluginConfig } from "../../core/viewers"; -/** - * BimViewer toolbar plugin config. - */ -export interface BimViewerToolbarPluginConfig extends PluginConfig { - menuConfig: ToolbarConfig; - groupConfig?: ToolbarMenuId[][] | string[][]; -} -/** - * BimViewer toolbar plugin. - */ -export declare class BimViewerToolbarPlugin extends Plugin { - protected cfg: BimViewerToolbarPluginConfig; - protected toolbar: Toolbar; - constructor(viewer: BaseViewer, cfg?: BimViewerToolbarPluginConfig); - /** - * Sets a menu item to be active or inactive. - */ - setActive(menuId: string, active: boolean): void; - destroy(): void; -} +import { Toolbar } from "./Toolbar"; +import { ToolbarConfig, ToolbarMenuId } from "./Toolbar.constants"; +import { Plugin, type BaseViewer, PluginConfig } from "../../core/viewers"; +/** + * BimViewer toolbar plugin config. + */ +export interface BimViewerToolbarPluginConfig extends Partial { + menuConfig: ToolbarConfig; + groupConfig?: ToolbarMenuId[][] | string[][]; +} +/** + * BimViewer toolbar plugin. + */ +export declare class BimViewerToolbarPlugin extends Plugin { + static DEFAULT_ID: string; + protected cfg: BimViewerToolbarPluginConfig; + private toolbar; + constructor(viewer: BaseViewer, cfg?: BimViewerToolbarPluginConfig); + getToolbar(): Toolbar; + /** + * Sets a menu item to be active or inactive. + */ + setActive(menuId: string, active: boolean): void; + destroy(): void; +} diff --git a/demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts b/demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts index 5e2f596..b20b4a5 100644 --- a/demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts +++ b/demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts @@ -1,28 +1,31 @@ -import { Toolbar } from "./Toolbar"; -import { ToolbarConfig, ToolbarMenuId } from "./Toolbar.constants"; -import { Plugin, type BaseViewer, PluginConfig } from "../../core/viewers"; -/** - * DxfViewer toolbar plugin config. - */ -export interface DxfViewerToolbarPluginConfig extends PluginConfig { - menuConfig: ToolbarConfig; - groupConfig?: ToolbarMenuId[][] | string[][]; - markupMenuCfg?: ToolbarConfig; - markupGroupCfg?: ToolbarMenuId[][] | string[][]; -} -/** - * DxfViewer toolbar plugin. - */ -export declare class DxfViewerToolbarPlugin extends Plugin { - protected cfg: DxfViewerToolbarPluginConfig; - protected toolbar: Toolbar; - protected markupToolbar?: Toolbar; - constructor(viewer: BaseViewer, cfg?: DxfViewerToolbarPluginConfig); - /** - * Sets a menu item to be active or inactive. - */ - setActive(menuId: string, active: boolean): void; - protected onMarkupActivated: () => void; - protected onMarkupDeactivated: () => void; - destroy(): void; -} +import { Toolbar } from "./Toolbar"; +import { ToolbarConfig, ToolbarMenuId } from "./Toolbar.constants"; +import { Plugin, type BaseViewer, PluginConfig } from "../../core/viewers"; +/** + * DxfViewer toolbar plugin config. + */ +export interface DxfViewerToolbarPluginConfig extends Partial { + menuConfig: ToolbarConfig; + groupConfig?: ToolbarMenuId[][] | string[][]; + markupMenuCfg?: ToolbarConfig; + markupGroupCfg?: ToolbarMenuId[][] | string[][]; +} +/** + * DxfViewer toolbar plugin. + */ +export declare class DxfViewerToolbarPlugin extends Plugin { + static DEFAULT_ID: string; + protected cfg: DxfViewerToolbarPluginConfig; + protected toolbar: Toolbar; + protected markupToolbar?: Toolbar; + constructor(viewer: BaseViewer, cfg?: DxfViewerToolbarPluginConfig); + getToolbar(): Toolbar; + getMarkupToolbar(): Toolbar | undefined; + /** + * Sets a menu item to be active or inactive. + */ + setActive(menuId: string, active: boolean): void; + protected onMarkupActivated: () => void; + protected onMarkupDeactivated: () => void; + destroy(): void; +} diff --git a/demo/libs/types/plugins/toolbars/MarkupToolbar.d.ts b/demo/libs/types/plugins/toolbars/MarkupToolbar.d.ts index 436be12..0716c8f 100644 --- a/demo/libs/types/plugins/toolbars/MarkupToolbar.d.ts +++ b/demo/libs/types/plugins/toolbars/MarkupToolbar.d.ts @@ -1,18 +1,18 @@ -import { Toolbar } from "./Toolbar"; -import { ToolbarConfig, ToolbarMenuId } from "./Toolbar.constants"; -import { type BaseViewer } from "../../core/viewers"; -/** - * @internal - */ -export declare const DEFAULT_MARKUP_TOOLBAR_CONFIG: ToolbarConfig; -/** - * @internal - */ -export declare const MARKUP_GROUP_CONFIG: ToolbarMenuId[][]; -/** - * @internal - */ -export declare class MarkupToolbar extends Toolbar { - constructor(viewer: BaseViewer, menuCfg: ToolbarConfig, groupCfg?: ToolbarMenuId[][] | string[][]); - keydown: () => void; -} +import { Toolbar } from "./Toolbar"; +import { ToolbarConfig, ToolbarMenuId } from "./Toolbar.constants"; +import { type BaseViewer } from "../../core/viewers"; +/** + * @internal + */ +export declare const DEFAULT_MARKUP_TOOLBAR_CONFIG: ToolbarConfig; +/** + * @internal + */ +export declare const MARKUP_GROUP_CONFIG: ToolbarMenuId[][]; +/** + * @internal + */ +export declare class MarkupToolbar extends Toolbar { + constructor(viewer: BaseViewer, menuCfg: ToolbarConfig, groupCfg?: ToolbarMenuId[][] | string[][]); + keydown: () => void; +} diff --git a/demo/libs/types/plugins/toolbars/Toolbar.config.d.ts b/demo/libs/types/plugins/toolbars/Toolbar.config.d.ts index c0e7917..e4e6b39 100644 --- a/demo/libs/types/plugins/toolbars/Toolbar.config.d.ts +++ b/demo/libs/types/plugins/toolbars/Toolbar.config.d.ts @@ -1,9 +1,9 @@ -import { ToolbarConfig } from "./Toolbar.constants"; -/** - * @internal - */ -export declare const DEFAULT_BIMVIEWER_TOOLBAR_CONFIG: ToolbarConfig; -/** - * @internal - */ -export declare const DEFAULT_DXFVIEWER_TOOLBAR_CONFIG: ToolbarConfig; +import { ToolbarConfig } from "./Toolbar.constants"; +/** + * @internal + */ +export declare const DEFAULT_BIMVIEWER_TOOLBAR_CONFIG: ToolbarConfig; +/** + * @internal + */ +export declare const DEFAULT_DXFVIEWER_TOOLBAR_CONFIG: ToolbarConfig; diff --git a/demo/libs/types/plugins/toolbars/Toolbar.constants.d.ts b/demo/libs/types/plugins/toolbars/Toolbar.constants.d.ts index 1a6d111..bb125c9 100644 --- a/demo/libs/types/plugins/toolbars/Toolbar.constants.d.ts +++ b/demo/libs/types/plugins/toolbars/Toolbar.constants.d.ts @@ -1,96 +1,96 @@ -import type { Toolbar } from "./Toolbar"; -import { IconClass } from "../../core"; -import type { BaseViewer } from "../../core/viewers"; -/** - * @type - * 1: click event - * 2:show popup - * 3:show submenu - * 4:turn on/off - */ -export declare enum MenuTypeEnums { - ClickEvent = 1, - Popup = 2, - SubMenu = 3, - Switch = 4 -} -/** - * Buildin toolbar ids - */ -export declare enum ToolbarMenuId { - HomeView = "HomeView", - OrthoMode = "OrthoMode", - Measure = "Measure", - MeasureDistance = "MeasureDistance", - MeasureArea = "MeasureArea", - MeasureAngle = "MeasureAngle", - MeasureCoordinate = "MeasureCoordinate", - MeasureClear = "MeasureClear", - MarkupVisibility = "MarkupVisibility", - Markup = "Markup", - MarkupArrow = "Arrow", - MarkupRect = "Rect", - MarkupCloudRect = "CloudRect", - MarkupPolyLine = "PolyLine", - MarkupCloudLine = "CloudLine", - MarkupEllipse = "Ellipse", - MarkupCircle = "Circle", - MarkupDot = "Dot", - MarkupText = "Text", - MarkupX = "X", - MarkupStrokeStyle = "StrokeStyle", - MarkupLineWidth = "LineWidth", - MarkupLineWidth2 = "LineWidth2", - MarkupLineWidth5 = "LineWidth5", - MarkupLineWidth10 = "LineWidth10", - MarkupFontSize = "FontSize", - MarkupFontSize14 = "FontSize14", - MarkupFontSize18 = "FontSize18", - MarkupFontSize24 = "FontSize24", - MarkupClear = "MarkupClear", - MarkupQuit = "MarkupQuit", - Section = "Section", - SectionBox = "SectionBox", - SectionPlane = "SectionPlane", - SectionAxis = "SectionAxis", - BimTree = "BimTree", - Viewpoint = "Viewpoint", - Annotation = "Annotation", - Property = "Property", - Settings = "Settings", - Compared = "Compared", - QuitCompare = "QuitCompare", - Fullscreen = "FullScreen", - SceneClear = "SceneClear", - Layers = "Layers", - ZoomToRectangle = "ZoomToRectangle", - Screenshot = "GetScreenshot" -} -/** - * Toolbar menu config. - * Used to define menu item name, icon, child items, etc. - */ -export interface ToolbarMenuConfig { - menuName?: string; - icon?: IconClass; - children?: ToolbarConfig; - visible?: boolean; - mutexIds?: ToolbarMenuId[]; - defaultActive?: boolean; - type?: MenuTypeEnums; - customElement?: (viewer: BaseViewer, menuId: string, cfg: ToolbarMenuConfig) => HTMLDivElement; - onActive?: (viewer: BaseViewer) => void; - onDeactive?: (viewer: BaseViewer) => void; - onClick?: (viewer: BaseViewer, toolbar: Toolbar, event: MouseEvent | TouchEvent) => void; -} -/** - * Toolbar config. - * The key is ToolbarMenuId, and the value is a ToolbarMenuConfig. - */ -export declare type ToolbarConfig = { - [key in ToolbarMenuId]?: ToolbarMenuConfig; -}; -/** - * @internal - */ -export declare const GROUP_CONFIG: ToolbarMenuId[][]; +import type { Toolbar } from "./Toolbar"; +import { IconClass } from "../../core"; +import type { BaseViewer } from "../../core/viewers"; +/** + * @type + * 1: click event + * 2:show popup + * 3:show submenu + * 4:turn on/off + */ +export declare enum MenuTypeEnums { + ClickEvent = 1, + Popup = 2, + SubMenu = 3, + Switch = 4 +} +/** + * Buildin toolbar ids + */ +export declare enum ToolbarMenuId { + HomeView = "HomeView", + OrthoMode = "OrthoMode", + Measure = "Measure", + MeasureDistance = "MeasureDistance", + MeasureArea = "MeasureArea", + MeasureAngle = "MeasureAngle", + MeasureCoordinate = "MeasureCoordinate", + MeasureClear = "MeasureClear", + MarkupVisibility = "MarkupVisibility", + Markup = "Markup", + MarkupArrow = "Arrow", + MarkupRect = "Rect", + MarkupCloudRect = "CloudRect", + MarkupPolyLine = "PolyLine", + MarkupCloudLine = "CloudLine", + MarkupEllipse = "Ellipse", + MarkupCircle = "Circle", + MarkupDot = "Dot", + MarkupText = "Text", + MarkupX = "X", + MarkupStrokeStyle = "StrokeStyle", + MarkupLineWidth = "LineWidth", + MarkupLineWidth2 = "LineWidth2", + MarkupLineWidth5 = "LineWidth5", + MarkupLineWidth10 = "LineWidth10", + MarkupFontSize = "FontSize", + MarkupFontSize14 = "FontSize14", + MarkupFontSize18 = "FontSize18", + MarkupFontSize24 = "FontSize24", + MarkupClear = "MarkupClear", + MarkupQuit = "MarkupQuit", + Section = "Section", + SectionBox = "SectionBox", + SectionPlane = "SectionPlane", + SectionAxis = "SectionAxis", + BimTree = "BimTree", + Viewpoint = "Viewpoint", + Annotation = "Annotation", + Property = "Property", + Settings = "Settings", + Compared = "Compared", + QuitCompare = "QuitCompare", + Fullscreen = "FullScreen", + SceneClear = "SceneClear", + Layers = "Layers", + ZoomToRectangle = "ZoomToRectangle", + Screenshot = "GetScreenshot" +} +/** + * Toolbar menu config. + * Used to define menu item name, icon, child items, etc. + */ +export interface ToolbarMenuConfig { + menuName?: string; + icon?: IconClass; + children?: ToolbarConfig; + visible?: boolean; + mutexIds?: ToolbarMenuId[]; + defaultActive?: boolean; + type?: MenuTypeEnums; + customElement?: (viewer: BaseViewer, menuId: string, cfg: ToolbarMenuConfig) => HTMLDivElement; + onActive?: (viewer: BaseViewer) => void; + onDeactive?: (viewer: BaseViewer) => void; + onClick?: (viewer: BaseViewer, toolbar: Toolbar, event: MouseEvent | TouchEvent) => void; +} +/** + * Toolbar config. + * The key is ToolbarMenuId, and the value is a ToolbarMenuConfig. + */ +export declare type ToolbarConfig = { + [key in ToolbarMenuId]?: ToolbarMenuConfig; +}; +/** + * @internal + */ +export declare const GROUP_CONFIG: ToolbarMenuId[][]; diff --git a/demo/libs/types/plugins/toolbars/Toolbar.d.ts b/demo/libs/types/plugins/toolbars/Toolbar.d.ts index 5fa052a..8ff6e3e 100644 --- a/demo/libs/types/plugins/toolbars/Toolbar.d.ts +++ b/demo/libs/types/plugins/toolbars/Toolbar.d.ts @@ -1,102 +1,102 @@ -import { ToolbarConfig, ToolbarMenuConfig, ToolbarMenuId } from "./Toolbar.constants"; -import { type BaseViewer } from "../../core/viewers"; -/** - * @class Toolbar - * @description A customized toolbar. - * - * For example: - * #### Example 1: - * Using {@link updateMenu} to modify the toolbar configuration - * ```typescript - * const toolbar = this.viewer.toolbar; - * toolbar.updateMenu(ToolbarMenuId.Viewpoint, { onActive: this.handleActive }); - * toolbar.updateMenu(ToolbarMenuId.Annotation, { visible: false }); - * ``` - * - * #### Example 2: - * Using {@link addMenu} to add a new menu to the toolbar with specific position. - * ```typescript - * const toolbar = this.viewer.toolbar; - * toolbar.addMenu( - * "newMenu", - * { icon: { default: "icon-new" }, menuName: "New menu item", controller: BimTreeController }, - * [2, 5] - * ); - * ``` - * - * #### Example 3: - * Modify the configuration in to custmize the toolbar directly, and then {@link refresh} the whole toolbar. - * ```typescript - * const toolbar = this.viewer.toolbar; - * const toolbarGroupConfig = [ - * [ToolbarMenuId.OrthoMode, ToolbarMenuId.FullScreen], - * [ToolbarMenuId.Measure, ToolbarMenuId.Section], - * [ToolbarMenuId.BimTree, ToolbarMenuId.Viewpoint, ToolbarMenuId.Annotation, ToolbarMenuId.Property], - * [ToolbarMenuId.Setting, "newMenu"], - * ]; - * toolbar.toolbarGroupConfig = toolbarGroupConfig; - * toolbar.refresh(); - * ``` - */ -export declare class Toolbar { - protected viewer: BaseViewer; - protected element: HTMLDivElement | undefined; - protected visible: boolean; - activateMenuId?: string; - menuList: Map; - protected menuCfg: ToolbarConfig; - protected groupCfg: ToolbarMenuId[][] | string[][]; - constructor(viewer: BaseViewer, menuCfg: ToolbarConfig, groupCfg?: ToolbarMenuId[][] | string[][]); - private init; - keydown: (e: KeyboardEvent) => void; - clearActive(): void; - setActive(menuId: string, active: boolean): void; - private createToolbarMenu; - /** - * @description Modify the menu configuration and update the toolbar. - * @param {ToolbarMenuId} menuId - * @param {Partial} config - * @memberof Toolbar - */ - updateMenu(menuId: ToolbarMenuId, config: Partial): void; - /** - * @description Modify the menu configuration and update the toolbar. - * @param {{ menuId: ToolbarMenuId; config: Partial }[]} configs - * @memberof Toolbar - */ - updateMenus(configs: { - menuId: ToolbarMenuId; - config: Partial; - }[]): void; - /** - * @description Add a custmized menu to toolbar. - * @param {string} menuId - * @param {ToolbarMenuConfig} config - * @param {[number, number]} [insertPosition] - * @return {*} - * @memberof Toolbar - */ - addMenu(menuId: string, config: ToolbarMenuConfig, insertPosition?: [number, number]): void; - /** - * @description Update the whole toolbar element with the current configuration. - * @memberof Toolbar - */ - refresh(): void; - show(): void; - hide(): void; - destroy(): void; -} -/** - * @internal - */ -export declare class ToolbarMenu { - private eventBus; - active: boolean; - element: HTMLDivElement; - toolbar: Toolbar; - markupToolbar?: Toolbar; - menuId: string; - constructor(viewer: BaseViewer, toolbar: Toolbar, menuId: string, cfg: ToolbarMenuConfig, parent?: ToolbarMenu); - private createButton; - setActive(active: boolean): void; -} +import { ToolbarConfig, ToolbarMenuConfig, ToolbarMenuId } from "./Toolbar.constants"; +import { type BaseViewer } from "../../core/viewers"; +/** + * @class Toolbar + * @description A customized toolbar. + * + * For example: + * #### Example 1: + * Using {@link updateMenu} to modify the toolbar configuration + * ```typescript + * const toolbar = this.viewer.toolbar; + * toolbar.updateMenu(ToolbarMenuId.Viewpoint, { onActive: this.handleActive }); + * toolbar.updateMenu(ToolbarMenuId.Annotation, { visible: false }); + * ``` + * + * #### Example 2: + * Using {@link addMenu} to add a new menu to the toolbar with specific position. + * ```typescript + * const toolbar = this.viewer.toolbar; + * toolbar.addMenu( + * "newMenu", + * { icon: { default: "icon-new" }, menuName: "New menu item", controller: BimTreeController }, + * [2, 5] + * ); + * ``` + * + * #### Example 3: + * Modify the configuration in to custmize the toolbar directly, and then {@link refresh} the whole toolbar. + * ```typescript + * const toolbar = this.viewer.toolbar; + * const toolbarGroupConfig = [ + * [ToolbarMenuId.OrthoMode, ToolbarMenuId.FullScreen], + * [ToolbarMenuId.Measure, ToolbarMenuId.Section], + * [ToolbarMenuId.BimTree, ToolbarMenuId.Viewpoint, ToolbarMenuId.Annotation, ToolbarMenuId.Property], + * [ToolbarMenuId.Setting, "newMenu"], + * ]; + * toolbar.toolbarGroupConfig = toolbarGroupConfig; + * toolbar.refresh(); + * ``` + */ +export declare class Toolbar { + protected viewer: BaseViewer; + protected element: HTMLDivElement | undefined; + protected visible: boolean; + activateMenuId?: string; + menuList: Map; + protected menuCfg: ToolbarConfig; + protected groupCfg: ToolbarMenuId[][] | string[][]; + constructor(viewer: BaseViewer, menuCfg: ToolbarConfig, groupCfg?: ToolbarMenuId[][] | string[][]); + private init; + keydown: (e: KeyboardEvent) => void; + clearActive(): void; + setActive(menuId: string, active: boolean): void; + private createToolbarMenu; + /** + * @description Modify the menu configuration and update the toolbar. + * @param {ToolbarMenuId} menuId + * @param {Partial} config + * @memberof Toolbar + */ + updateMenu(menuId: ToolbarMenuId, config: Partial): void; + /** + * @description Modify the menu configuration and update the toolbar. + * @param {{ menuId: ToolbarMenuId; config: Partial }[]} configs + * @memberof Toolbar + */ + updateMenus(configs: { + menuId: ToolbarMenuId; + config: Partial; + }[]): void; + /** + * @description Add a custmized menu to toolbar. + * @param {string} menuId + * @param {ToolbarMenuConfig} config + * @param {[number, number]} [insertPosition] + * @return {*} + * @memberof Toolbar + */ + addMenu(menuId: string, config: ToolbarMenuConfig, insertPosition?: [number, number]): void; + /** + * @description Update the whole toolbar element with the current configuration. + * @memberof Toolbar + */ + refresh(): void; + show(): void; + hide(): void; + destroy(): void; +} +/** + * @internal + */ +export declare class ToolbarMenu { + private eventBus; + active: boolean; + element: HTMLDivElement; + toolbar: Toolbar; + markupToolbar?: Toolbar; + menuId: string; + constructor(viewer: BaseViewer, toolbar: Toolbar, menuId: string, cfg: ToolbarMenuConfig, parent?: ToolbarMenu); + private createButton; + setActive(active: boolean): void; +} diff --git a/demo/libs/types/plugins/toolbars/index.d.ts b/demo/libs/types/plugins/toolbars/index.d.ts index 823db16..e1f6f58 100644 --- a/demo/libs/types/plugins/toolbars/index.d.ts +++ b/demo/libs/types/plugins/toolbars/index.d.ts @@ -1,6 +1,6 @@ -export * from "./DxfViewerToolbarPlugin"; -export * from "./Toolbar.config"; -export * from "./Toolbar.constants"; -export * from "./Toolbar"; -export * from "./BimViewerToolbarPlugin"; -export * from "./MarkupToolbar"; +export * from "./DxfViewerToolbarPlugin"; +export * from "./Toolbar.config"; +export * from "./Toolbar.constants"; +export * from "./Toolbar"; +export * from "./BimViewerToolbarPlugin"; +export * from "./MarkupToolbar"; diff --git a/demo/libs/types/plugins/view-cube/ViewCube.d.ts b/demo/libs/types/plugins/view-cube/ViewCube.d.ts index cd1b4f2..9079256 100644 --- a/demo/libs/types/plugins/view-cube/ViewCube.d.ts +++ b/demo/libs/types/plugins/view-cube/ViewCube.d.ts @@ -1,68 +1,68 @@ -import * as THREE from "three"; -export interface ViewCubeConfig { - showAxes?: boolean; - lineColor?: number; -} -export declare enum ViewCubeName { - TopFace = "TopFace", - FrontFace = "FrontFace", - RightFace = "RightFace", - BackFace = "BackFace", - LeftFace = "LeftFace", - BottomFace = "BottomFace", - TopFrontEdge = "TopFrontEdge", - TopRightEdge = "TopRightEdge", - TopBackEdge = "TopBackEdge", - TopLeftEdge = "TopLeftEdge", - FrontRightEdge = "FrontRightEdge", - BackRightEdge = "BackRightEdge", - BackLeftEdge = "BackLeftEdge", - FrontLeftEdge = "FrontLeftEdge", - BottomFrontEdge = "BottomFrontEdge", - BottomRightEdge = "BottomRightEdge", - BottomBackEdge = "BottomBackEdge", - BottomLeftEdge = "BottomLeftEdge", - TopFrontRightCorner = "TopFrontRightCorner", - TopBackRightCorner = "TopBackRightCorner", - TopBackLeftCorner = "TopBackLeftCorner", - TopFrontLeftCorner = "TopFrontLeftCorner", - BottomFrontRightCorner = "BottomFrontRightCorner", - BottomBackRightCorner = "BottomBackRightCorner", - BottomBackLeftCorner = "BottomBackLeftCorner", - BottomFrontLeftCorner = "BottomFrontLeftCorner" -} -export declare class ViewCube extends THREE.Object3D { - readonly name = "ViewCube"; - private readonly AXIS_LENGTH; - private readonly AXIS_COLOR_X; - private readonly AXIS_COLOR_Y; - private readonly AXIS_COLOR_Z; - private readonly FACE_BACKGROUND_COLOR; - private readonly FACE_HOVER_BACKGROUND_COLOR; - private readonly EDGE_COLOUR; - private readonly EDGE_OPACITY; - private readonly EDGE_SIZE; - private readonly CORNER_WIDTH; - private readonly CORNER_COLOR; - private readonly CORNER_OPACITY; - private faces; - private innerViewCubeMesh?; - private showAxes; - private lineColor; - dirty: boolean; - activateMeshName?: string; - constructor(cfg?: ViewCubeConfig); - private init; - private createAxes; - private createViewCubeFaces; - private createViewCubeFace; - private createViewCubeEdges; - private createEdge; - private createViewCubeCorners; - private createCorner; - getBbox(): THREE.Box3; - getDirectionByViewCubeName(viewCubeName: ViewCubeName): THREE.Vector3 | undefined; - update(): void; - private updateViewCube; - private updateMeshTick; -} +import * as THREE from "three"; +export interface ViewCubeConfig { + showAxes?: boolean; + lineColor?: number; +} +export declare enum ViewCubeName { + TopFace = "TopFace", + FrontFace = "FrontFace", + RightFace = "RightFace", + BackFace = "BackFace", + LeftFace = "LeftFace", + BottomFace = "BottomFace", + TopFrontEdge = "TopFrontEdge", + TopRightEdge = "TopRightEdge", + TopBackEdge = "TopBackEdge", + TopLeftEdge = "TopLeftEdge", + FrontRightEdge = "FrontRightEdge", + BackRightEdge = "BackRightEdge", + BackLeftEdge = "BackLeftEdge", + FrontLeftEdge = "FrontLeftEdge", + BottomFrontEdge = "BottomFrontEdge", + BottomRightEdge = "BottomRightEdge", + BottomBackEdge = "BottomBackEdge", + BottomLeftEdge = "BottomLeftEdge", + TopFrontRightCorner = "TopFrontRightCorner", + TopBackRightCorner = "TopBackRightCorner", + TopBackLeftCorner = "TopBackLeftCorner", + TopFrontLeftCorner = "TopFrontLeftCorner", + BottomFrontRightCorner = "BottomFrontRightCorner", + BottomBackRightCorner = "BottomBackRightCorner", + BottomBackLeftCorner = "BottomBackLeftCorner", + BottomFrontLeftCorner = "BottomFrontLeftCorner" +} +export declare class ViewCube extends THREE.Object3D { + readonly name = "ViewCube"; + private readonly AXIS_LENGTH; + private readonly AXIS_COLOR_X; + private readonly AXIS_COLOR_Y; + private readonly AXIS_COLOR_Z; + private readonly FACE_BACKGROUND_COLOR; + private readonly FACE_HOVER_BACKGROUND_COLOR; + private readonly EDGE_COLOUR; + private readonly EDGE_OPACITY; + private readonly EDGE_SIZE; + private readonly CORNER_WIDTH; + private readonly CORNER_COLOR; + private readonly CORNER_OPACITY; + private faces; + private innerViewCubeMesh?; + private showAxes; + private lineColor; + dirty: boolean; + activateMeshName?: string; + constructor(cfg?: ViewCubeConfig); + private init; + private createAxes; + private createViewCubeFaces; + private createViewCubeFace; + private createViewCubeEdges; + private createEdge; + private createViewCubeCorners; + private createCorner; + getBBox(): THREE.Box3; + getDirectionByViewCubeName(viewCubeName: ViewCubeName): THREE.Vector3 | undefined; + update(): void; + private updateViewCube; + private updateMeshTick; +} diff --git a/demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts b/demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts index c527575..df57eb3 100644 --- a/demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts +++ b/demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts @@ -1,55 +1,55 @@ -import { Plugin, type BaseViewer, PluginConfig } from "../../core/viewers"; -export interface ViewCubePluginConfig extends PluginConfig { - containerId: string; - context?: WebGLRenderingContext | WebGL2RenderingContext; - showAxes?: boolean; - lineColor?: number; -} -export declare class ViewCubePlugin extends Plugin { - /** - * @internal - */ - name: string; - private container?; - private scene?; - private camera?; - private cfg; - private renderer?; - private directionalLight?; - private width; - private height; - private requestAnimationFrameHandle?; - private raycaster; - private renderEnabled; - private inputManager?; - private viewCube?; - private lastCoords?; - constructor(viewer: BaseViewer, cfg?: ViewCubePluginConfig); - private init; - private initDom; - private initInputManager; - private initScene; - private initCamera; - private initRenderer; - private initLights; - private initViewCube; - private initEvents; - private onPointerDown; - private onPointerMove; - private onPointerleave; - private onClick; - private updateViewerCamera; - private updateActivateMeshName; - private getNdcPointByEvent; - private getIntersects; - private updateCameraAndMeshName; - /** - * Update viewCube according to camera direction. - * Camera's direction is the only input factor for this class. It always look at the origin. - * @param direction - */ - private updateCameraDirection; - private animate; - private zoomToBbox; - destroy(): void; -} +import { Plugin, type BaseViewer, PluginConfig } from "../../core/viewers"; +export interface ViewCubePluginConfig extends Partial { + containerId?: string; + context?: WebGLRenderingContext | WebGL2RenderingContext; + showAxes?: boolean; + lineColor?: number; +} +export declare class ViewCubePlugin extends Plugin { + static DEFAULT_ID: string; + /** + * @internal + */ + private container?; + private scene?; + private camera?; + private cfg; + private renderer?; + private directionalLight?; + private width; + private height; + private requestAnimationFrameHandle?; + private raycaster; + private renderEnabled; + private inputManager?; + private viewCube?; + private lastCoords?; + constructor(viewer: BaseViewer, cfg?: ViewCubePluginConfig); + private init; + private initDom; + private initInputManager; + private initScene; + private initCamera; + private initRenderer; + private initLights; + private initViewCube; + private initEvents; + private onPointerDown; + private onPointerMove; + private onPointerleave; + private onClick; + private updateViewerCamera; + private updateActivateMeshName; + private getNdcPointByEvent; + private getIntersects; + private updateCameraAndMeshName; + /** + * Update viewCube according to camera direction. + * Camera's direction is the only input factor for this class. It always look at the origin. + * @param direction + */ + private updateCameraDirection; + private animate; + private zoomToBBox; + destroy(): void; +} diff --git a/demo/libs/types/plugins/view-cube/index.d.ts b/demo/libs/types/plugins/view-cube/index.d.ts index 3b84569..6cd5691 100644 --- a/demo/libs/types/plugins/view-cube/index.d.ts +++ b/demo/libs/types/plugins/view-cube/index.d.ts @@ -1 +1 @@ -export * from "./ViewCubePlugin"; +export * from "./ViewCubePlugin"; diff --git a/demo/libs/types/version.d.ts b/demo/libs/types/version.d.ts index 06a4828..8f7563a 100644 --- a/demo/libs/types/version.d.ts +++ b/demo/libs/types/version.d.ts @@ -1,2 +1,2 @@ -declare const VERSION: string; -export { VERSION }; +declare const VERSION: string; +export { VERSION }; diff --git a/index.html b/index.html index 125b913..69ab82d 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -React App
\ No newline at end of file +React App
\ No newline at end of file diff --git a/static/css/main.352fe986.css.map b/static/css/main.352fe986.css.map deleted file mode 100644 index f70d31f..0000000 --- a/static/css/main.352fe986.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/main.352fe986.css","mappings":"AAAA,gBAEE,WAAY,CACZ,eAAgB,CAFhB,UAGF,CAEA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAKF,CAEA,oBACE,UAAW,CACX,SACF,CACA,0BACE,yBAA6B,CAC7B,kBACF,CACA,0BACE,kBAAmB,CACnB,iBACF;;AC1BA;;;;;;;EAOE,CCHA,gLAGE,YCIJ,CCXC,UCIC,YADA,UFcF,CGDA,mCAEE,YHGF,CGUA,iBAGE,qBHRF,CC1BC,KEwCC,6BAA8B,CAC9B,yBAA0B,CAC1B,4BAA6B,CAC7B,0CALA,sBAAuB,CACvB,gBHLF,CGaA,cACE,kBHXF,CGmBA,KAQE,oCADA,sBALA,sBAEA,yKADA,eAEA,0BACA,mBALA,QHVF,CGyBA,sBACE,sBHvBF,CG+BA,GACE,kBAAuB,CACvB,QAAS,CACT,gBH7BF,CGwCA,kBAQE,sBACA,eAAgB,CAFhB,kBAAoB,CADpB,YHnCF,CG6CA,EAEE,iBAAkB,CADlB,YH1CF,CGqDA,sCAKE,eAAgB,CAChB,WAAY,CAHZ,yBAA0B,CAC1B,yEHlDF,CGuDA,QAEE,iBAAkB,CAClB,mBAAoB,CAFpB,iBHnDF,CGwDA,kEAIE,uBHtDF,CGyDA,SAIE,iBAAkB,CADlB,YHtDF,CG0DA,wBAIE,eHxDF,CG2DA,GACE,eHzDF,CG4DA,GACE,kBAAoB,CACpB,aH1DF,CG6DA,WACE,cH3DF,CG8DA,IACE,iBH5DF,CG+DA,SAEE,kBH7DF,CGgEA,MACE,aH9DF,CGsEA,QAGE,aAAc,CACd,aAAc,CAFd,iBAAkB,CAGlB,sBHpEF,CGuEA,IACE,aHrEF,CGwEA,IACE,SHtEF,CG6EA,EAOE,oCAAqC,CAJrC,wBAA6B,CAF7B,cAIA,cAAe,CADf,YAAa,CAFb,qBAIA,oBH1EF,CG6EE,QACE,aH3EJ,CG8EE,SACE,aH5EJ,CGsFE,yBAEE,UADA,oBH9EJ,CGkFE,YACE,sBACA,kBHhFJ,CGwFA,kBAKE,4EADA,aHrFF,CGyFA,IAIE,iBAAkB,CAFlB,YAAa,CAIb,aH1FF,CGgGA,OAEE,cH/FF,CGsGA,IAEE,iBAAkB,CADlB,qBHnGF,CGiHA,kFASE,yBH/GF,CGsHA,MACE,wBHpHF,CGuHA,QAKE,mBAAoB,CAFpB,sBADA,mBAAqB,CADrB,iBAAmB,CAGnB,eHpHF,CG4HA,sCAME,aAAc,CAEd,mBAAoB,CADpB,iBAAkB,CAElB,mBAAoB,CAJpB,QHtHF,CG6HA,aAEE,gBH3HF,CG8HA,cAEE,mBH5HF,CC5NC,qDEkWC,yBHhIF,CGoIA,wHAKE,iBAAkB,CADlB,SHjIF,CGqIA,uCAEE,qBAAsB,CACtB,SHnIF,CGsIA,+EASE,0BHzIF,CG4IA,SACE,aAAc,CAEd,eH3IF,CG8IA,SAUE,QAAS,CAHT,QAAS,CADT,WAAY,CAGZ,SHjJF,CGuJA,OAME,aAAc,CALd,aAAc,CAMd,eAAgB,CAChB,mBAAoB,CAJpB,kBAAoB,CADpB,cAAe,CAEf,SAAU,CAIV,kBAAmB,CAPnB,UH9IF,CGwJA,SACE,sBHtJF,CG0JA,kFAEE,WHxJF,CG2JA,cAME,uBAAwB,CADxB,mBH5JF,CGoKA,qFAEE,uBHlKF,CG0KA,6BAEE,yBAA0B,CAD1B,YHvKF,CG+KA,OACE,oBH7KF,CGgLA,QACE,iBH9KF,CGiLA,SACE,YH/KF,CGoLA,SACE,sBHlLF,CGqLA,KAEE,yBADA,YHlLF,CGsLA,iBAEE,mBADA,UHnLF,CGkLA,YAEE,mBADA,UHnLF,CIvSE,iCAHE,UAAW,CADX,aJoTJ,CIhTE,gBAGE,UJ6SJ,CCzTC,SIUC,kCAAmC,CACnC,iCAAkC,CATlC,kBAAmB,CACnB,cAFA,mBAAoB,CAGpB,iBAAkB,CAClB,aAAc,CACd,iBAAkB,CAGlB,iCAAkC,CAFlC,mBAAoB,CACpB,sBL8TF,CCtUC,WIcG,aL2TJ,CCzUC,aIkBG,oBL0TJ,CKvTE,gBACE,YLyTJ,CKtTE,uBACE,aLwTJ,CM3UE,kBACE,aAAc,CACd,gBN6UJ,CM1UE,mBACE,cN4UJ,CCzVC,mCKoBC,0CAA2C,CAD3C,oBN2UF,CC9VC,iDMMC,uBACA,wBAAyB,CAavB,2BPqVJ,CCzWC,8EMwBG,yBACA,4BPqVJ,CC9WC,sCM4BG,0BACA,4BAA6B,CAC7B,mBPqVJ,CCnXC,iCOMG,gCAAiC,CADjC,SRmXJ,CCxXC,gBOSG,gCRkXJ,CQ5WA,qBACE,GACE,SR8WF,CQ3WA,GACE,SR6WF,CACF,CQ1WA,sBACE,GACE,SR4WF,CQzWA,GACE,SR2WF,CACF,CC3YC,0DMMC,uBACA,wBAAyB,CAavB,2BPkYJ,CCtZC,0FMwBG,2BACA,4BPkYJ,CC3ZC,4CM4BG,4BACA,4BAA6B,CAC7B,mBPkYJ,CChaC,uCQMG,sDADA,STgaJ,CCraC,mBQSG,sDT+ZJ,CCxaC,gEMMC,uBACA,wBAAyB,CAavB,2BP+ZJ,CCnbC,kGMwBG,6BACA,4BP+ZJ,CCxbC,gDM4BG,8BACA,4BAA6B,CAC7B,mBP+ZJ,CC7bC,2CQMG,sDADA,ST6bJ,CClcC,qBQSG,sDT4bJ,CCrcC,gEMMC,uBACA,wBAAyB,CAavB,2BP4bJ,CChdC,kGMwBG,6BACA,4BP4bJ,CCrdC,gDM4BG,8BACA,4BAA6B,CAC7B,mBP4bJ,CC1dC,2CQMG,sDADA,ST0dJ,CC/dC,qBQSG,sDTydJ,CCleC,mEMMC,uBACA,wBAAyB,CAavB,2BPydJ,CC7eC,sGMwBG,8BACA,4BPydJ,CClfC,kDM4BG,+BACA,4BAA6B,CAC7B,mBPydJ,CCvfC,6CQMG,sDADA,STufJ,CC5fC,sBQSG,sDTsfJ,CS7eA,yBACE,GAGE,SAAU,CAFV,0BAA2B,CAC3B,oBTgfF,CS5eA,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBT+eF,CACF,CS3eA,0BACE,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBT8eF,CS1eA,GAGE,SAAU,CAFV,0BAA2B,CAC3B,oBT6eF,CACF,CSzeA,yBACE,GAGE,SAAU,CAFV,2BAA4B,CAC5B,oBT4eF,CSxeA,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBT2eF,CACF,CSveA,0BACE,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBT0eF,CSteA,GAGE,SAAU,CAFV,2BAA4B,CAC5B,oBTyeF,CACF,CSreA,0BACE,GAGE,SAAU,CAFV,0BAA2B,CAC3B,oBTweF,CSpeA,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBTueF,CACF,CSneA,2BACE,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBTseF,CSleA,GAGE,SAAU,CAFV,0BAA2B,CAC3B,oBTqeF,CACF,CSjeA,uBACE,GAGE,SAAU,CAFV,2BAA4B,CAC5B,oBToeF,CSheA,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBTmeF,CACF,CS/dA,wBACE,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBTkeF,CS9dA,GAGE,SAAU,CAFV,2BAA4B,CAC5B,oBTieF,CACF,CU/lBA,yBACE,GACE,uBVimBF,CACF,CCpmBC,yESWC,iBV6lBF,CU1lBA,KACE,iCACA,cV4lBF,CC5mBC,8ESiCC,+FACA,4BAA6B,CAL7B,qBAAsB,CAHtB,QAAS,CAIT,2BACA,gDAAiD,CAIjD,UAAW,CAPX,aAAc,CADd,MAAO,CAKP,UAAY,CAIZ,mBAAoB,CAbpB,iBAAkB,CAElB,OAAQ,CADR,KVqmBF,CUtlBA,sBACE,GACE,yBACA,+EVwlBF,CACF,CUrlBA,sBACE,GACE,SVulBF,CACF,CCxoBC,6DMMC,uBACA,wBAAyB,CAavB,2BP+nBJ,CCnpBC,8FMwBG,4BACA,4BP+nBJ,CCxpBC,8CM4BG,6BACA,4BAA6B,CAC7B,mBP+nBJ,CC7pBC,yCUQG,oDADA,SAAU,CAFV,kBAAmB,CACnB,oBX8pBJ,CCpqBC,oBUWG,yDX4pBJ,CCvqBC,mEMMC,uBACA,wBAAyB,CAavB,2BP8pBJ,CClrBC,sGMwBG,8BACA,4BP8pBJ,CCvrBC,kDM4BG,+BACA,4BAA6B,CAC7B,mBP8pBJ,CC5rBC,6CUQG,oDADA,SAAU,CAFV,kBAAmB,CACnB,oBX6rBJ,CCnsBC,sBUWG,yDX2rBJ,CCtsBC,mEMMC,uBACA,wBAAyB,CAavB,2BP6rBJ,CCjtBC,sGMwBG,8BACA,4BP6rBJ,CCttBC,kDM4BG,+BACA,4BAA6B,CAC7B,mBP6rBJ,CC3tBC,6CUQG,oDADA,SAAU,CAFV,kBAAmB,CACnB,oBX4tBJ,CCluBC,sBUWG,yDX0tBJ,CCruBC,sEMMC,uBACA,wBAAyB,CAavB,2BP4tBJ,CChvBC,0GMwBG,+BACA,4BP4tBJ,CCrvBC,oDM4BG,gCACA,4BAA6B,CAC7B,mBP4tBJ,CC1vBC,+CUQG,oDADA,SAAU,CAFV,kBAAmB,CACnB,oBX2vBJ,CCjwBC,uBUWG,yDXyvBJ,CWhvBA,wBACE,GAGE,SAAU,CAFV,oBAAsB,CACtB,oBXmvBF,CW/uBA,GAGE,SAAU,CAFV,mBAAoB,CACpB,oBXkvBF,CACF,CW9uBA,yBACE,GAGE,SAAU,CAFV,mBAAoB,CACpB,oBXivBF,CW7uBA,GAGE,SAAU,CAFV,oBAAsB,CACtB,oBXgvBF,CACF,CW5uBA,0BACE,GAGE,SAAU,CAFV,oBAAsB,CACtB,0BX+uBF,CW3uBA,GAGE,SAAU,CAFV,mBAAoB,CACpB,0BX8uBF,CACF,CW1uBA,2BACE,GAGE,SAAU,CAFV,mBAAoB,CACpB,0BX6uBF,CWzuBA,GAGE,SAAU,CAFV,oBAAsB,CACtB,0BX4uBF,CACF,CWxuBA,0BACE,GAGE,SAAU,CAFV,oBAAsB,CACtB,oBX2uBF,CWvuBA,GAGE,SAAU,CAFV,mBAAoB,CACpB,oBX0uBF,CACF,CWtuBA,2BACE,GAGE,SAAU,CAFV,mBAAoB,CACpB,oBXyuBF,CWruBA,GAGE,SAAU,CAFV,oBAAsB,CACtB,oBXwuBF,CACF,CWpuBA,2BACE,GAGE,SAAU,CAFV,oBAAsB,CACtB,uBXuuBF,CWnuBA,GAGE,SAAU,CAFV,mBAAoB,CACpB,uBXsuBF,CACF,CWluBA,4BACE,GAGE,SAAU,CAFV,mBAAoB,CACpB,uBXquBF,CWjuBA,GAGE,SAAU,CAFV,oBAAsB,CACtB,uBXouBF,CACF,CCp2BC,iDMMC,uBACA,wBAAyB,CAavB,2BP21BJ,CC/2BC,8EMwBG,yBACA,4BP21BJ,CCp3BC,sCM4BG,0BACA,4BAA6B,CAC7B,mBP21BJ,CCz3BC,iCWOG,sDADA,SAAU,CADV,kBZ03BJ,CYt3BI,iDACE,cZy3BN,CCn4BC,gBWcG,uDZw3BJ,CCt4BC,6DMMC,uBACA,wBAAyB,CAavB,2BP63BJ,CCj5BC,8FMwBG,4BACA,4BP63BJ,CCt5BC,8CM4BG,6BACA,4BAA6B,CAC7B,mBP63BJ,CC35BC,yCWOG,sDADA,SAAU,CADV,kBZ45BJ,CYx5BI,yDACE,cZ25BN,CCr6BC,oBWcG,uDZ05BJ,CCx6BC,4EMMC,uBACA,wBAAyB,CAavB,2BP+5BJ,CCn7BC,kHMwBG,4BACA,4BP+5BJ,CCx7BC,wDM4BG,6BACA,4BAA6B,CAC7B,mBP+5BJ,CC77BC,mDWOG,sDADA,SAAU,CADV,kBZ87BJ,CY17BI,mEACE,cZ67BN,CCv8BC,yBWcG,uDZ47BJ,CC18BC,0DMMC,uBACA,wBAAyB,CAavB,2BPi8BJ,CCr9BC,0FMwBG,2BACA,4BPi8BJ,CC19BC,4CM4BG,4BACA,4BAA6B,CAC7B,mBPi8BJ,CC/9BC,uCWOG,sDADA,SAAU,CADV,kBZg+BJ,CY59BI,uDACE,cZ+9BN,CCz+BC,mBWcG,uDZ89BJ,CC5+BC,gEMMC,uBACA,wBAAyB,CAavB,2BPm+BJ,CCv/BC,kGMwBG,6BACA,4BPm+BJ,CC5/BC,gDM4BG,8BACA,4BAA6B,CAC7B,mBPm+BJ,CCjgCC,2CWOG,sDADA,SAAU,CADV,kBZkgCJ,CY9/BI,2DACE,cZigCN,CC3gCC,qBWcG,uDZggCJ,CC9gCC,gEMMC,uBACA,wBAAyB,CAavB,2BPqgCJ,CCzhCC,kGMwBG,6BACA,4BPqgCJ,CC9hCC,gDM4BG,8BACA,4BAA6B,CAC7B,mBPqgCJ,CCniCC,2CWOG,sDADA,SAAU,CADV,kBZoiCJ,CYhiCI,2DACE,cZmiCN,CC7iCC,qBWcG,uDZkiCJ,CChjCC,mEMMC,uBACA,wBAAyB,CAavB,2BPuiCJ,CC3jCC,sGMwBG,8BACA,4BPuiCJ,CChkCC,kDM4BG,+BACA,4BAA6B,CAC7B,mBPuiCJ,CCrkCC,6CWOG,sDADA,SAAU,CADV,kBZskCJ,CYlkCI,6DACE,cZqkCN,CC/kCC,sBWcG,uDZokCJ,CYpjCA,qBACE,GAEE,SAAU,CADV,mBZujCF,CYnjCA,GAEE,SAAU,CADV,kBZsjCF,CACF,CYljCA,sBACE,GACE,kBZojCF,CYjjCA,GAEE,SAAU,CADV,mBZojCF,CACF,CYhjCA,wBACE,GAEE,SAAU,CADV,mBZmjCF,CY/iCA,GAEE,SAAU,CADV,kBZkjCF,CACF,CY9iCA,yBACE,GACE,kBZgjCF,CY7iCA,GAEE,SAAU,CADV,mBZgjCF,CACF,CY5iCA,uBACE,GAGE,SAAU,CAFV,mBAAqB,CACrB,sBZ+iCF,CY3iCA,GACE,kBAAmB,CACnB,sBZ6iCF,CACF,CY1iCA,wBACE,GACE,kBAAmB,CACnB,sBZ4iCF,CYziCA,GAGE,SAAU,CAFV,mBAAqB,CACrB,sBZ4iCF,CACF,CYxiCA,yBACE,GAGE,SAAU,CAFV,mBAAqB,CACrB,sBZ2iCF,CYviCA,GACE,kBAAmB,CACnB,sBZyiCF,CACF,CYtiCA,0BACE,GACE,kBAAmB,CACnB,sBZwiCF,CYriCA,GAGE,SAAU,CAFV,mBAAqB,CACrB,sBZwiCF,CACF,CYpiCA,0BACE,GAGE,SAAU,CAFV,mBAAqB,CACrB,yBZuiCF,CYniCA,GACE,kBAAmB,CACnB,yBZqiCF,CACF,CYliCA,2BACE,GACE,kBAAmB,CACnB,yBZoiCF,CYjiCA,GAGE,SAAU,CAFV,mBAAqB,CACrB,yBZoiCF,CACF,CYhiCA,yBACE,GAGE,SAAU,CAFV,mBAAqB,CACrB,yBZmiCF,CY/hCA,GACE,kBAAmB,CACnB,yBZiiCF,CACF,CY9hCA,0BACE,GACE,kBAAmB,CACnB,yBZgiCF,CY7hCA,GAGE,SAAU,CAFV,mBAAqB,CACrB,yBZgiCF,CACF,CaxsCA,4BACE,eb0sCF,CalsCA,wDALI,yGb8sCJ,CazsCA,qBACE,ebwsCF,Cc1tCC,WCGC,cAAe,CACf,UAGF,CDPC,WESC,oCCGA,oBAAqB,CAFrB,kBAAmB,CAGnB,kBDZA,qBAAsB,CAGtB,sBCKA,YAAa,CDJb,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CCST,iBAHA,iBAYF,CALE,mBACE,SACA,WAOJ,CAJE,gBACE,gBAMJ,CAHE,uBACE,YAAa,CACb,eACA,gBAKJ,CAFE,mBACE,yBACA,wBAIJ,CANE,mCAII,aAKN,CADE,gBACE,yBACA,wBAGJ,CALE,gCAII,aAIN,CAAE,mBACE,yBACA,wBAEJ,CAJE,mCAII,aAGN,CACE,iBACE,yBACA,wBACJ,CAHE,iCAKI,aACN,CANE,4CASI,QAAS,CACT,SAAN,CAIE,kBACE,eAFJ,CAKE,sBAME,wBAA6B,CAC7B,WAAY,CAEZ,cAAe,CALf,eACA,iBAJA,gBAOA,YAAa,CALb,eAAgB,CADhB,SAIJ,CANE,qCAYI,sBACA,oBAHN,CAKM,2CACE,qBAHR,CAQE,sBACE,sBACA,oBANJ,CAQI,4BACE,qBANN,CAUE,4BACE,sBAAuB,CACvB,2BARJ,CAWE,8CACE,YATJ,CAYE,4CAEE,eADA,iBATJ,CAaE,+CAGE,sBAFA,aAAc,CAGd,eAFA,iBATJ,CAcE,mBACE,qBAZJ,CAeE,mDACE,aAbJ,CAgBE,kCAEE,SAAU,CADV,eAAgB,CAEhB,gPAdJ,CAmBE,yCAEE,yBAA2B,CAD3B,YAAa,CAIb,SAAU,CADV,gBAAiB,CADjB,aAfJ,CAoBE,kBAEE,QAAS,CACT,eAAgB,CAFhB,eAhBJ,CCnIE,yBACE,aDqIJ,CHvIC,+BIQK,gBADA,iBDoIN,CH3IC,sEIsBK,gBAAiB,CADjB,gBD8HN,CHnJC,0CI6BK,kBADA,kBD2HN,CHvJC,0DImCO,iBADA,iBDyHR,CH3JC,YESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CGOT,kBADA,iBAQF,CALE,oBAIE,yBAHA,gBAAiB,CAEjB,aAAc,CADd,gBASJ,CAJE,gBAIE,WAAY,CADZ,MAAO,CAFP,iBAAkB,CAClB,KAQJ,CAJI,uBAME,yBACA,WAAY,CALZ,aAAc,CAEd,WAAY,CACZ,aAAc,CAJd,iBAAkB,CAElB,SAUN,CAHI,qBAME,sBACA,yBACA,iBAAkB,CALlB,YAAa,CAEb,UAAW,CAHX,QAAS,CADT,iBAAkB,CAQlB,0BAA2B,CAC3B,8BAAgC,CANhC,SAWN,CLjDC,iDK+CO,oBAKR,CAAE,uDACE,YAEJ,CACE,iBACE,sBACJ,CACI,uBAKE,sBAHA,aAAc,CACd,iBAAkB,CAClB,eAAgB,CAHhB,iBAAkB,CAMlB,sBAAuB,CACvB,kBAAoB,CAFpB,kBAGN,CACM,kCACE,eACR,CAGI,+CACE,aADN,CAKE,kCAEE,kBAAmB,CADnB,eAFJ,CC7EE,gBACE,aD+EJ,CLjFC,mCMQK,aAAc,CADd,iBAAkB,CAGlB,cAAe,CADf,iBD8EN,CLvFC,gCMiBK,SAAU,CADV,OD2EN,CL3FC,qCMuBO,MAAO,CADP,SAAU,CAEV,yBDwER,CLhGC,iCM+BK,sBDoEN,CLnGC,0BESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SKWF,CPdC,4COaG,UAIJ,CPjBC,wCQQG,YCFJ,CTNC,qEQcK,QAAS,CACT,UAJA,iBAAkB,CAElB,WADA,KCCN,CDIM,2EACE,UCFR,CThBC,6IQyBK,iBADA,SAAU,CAEV,gCCJN,CTtBC,mEQ8BK,iBAAkB,CAClB,oFCLN,CT1BC,0EQoCK,mBAAoB,CADpB,eCLN,CT9BC,uMQgDK,aAAc,CAHd,oBAAqB,CAErB,iBAAkB,CADlB,OCRN,CTtCC,sEQsDG,UCbJ,CTzCC,+IQ2DG,kBCdJ,CT7CC,8DQgEG,aChBJ,CDuBE,yEAGI,YACA,eAFA,UCpBN,CDkBE,4GAOM,WCtBR,CDyBM,+EACE,gBCvBR,CD8BM,yEACE,YC5BR,CT9DC,gGQ8FO,eAAgB,CAChB,UC7BR,CTlEC,qGQqGO,MAAO,CACP,eAHA,iBAAkB,CAClB,OC5BR,CDgCQ,2GACE,YC9BV,CT3EC,uFQuHO,WCzCR,CT9EC,wUQ4HS,gBCzCV,CD8CM,sIAEI,WC7CV,CTtFC,uFQuHO,WC9BR,CTzFC,wUQ4HS,gBC9BV,CDmCM,sIAEI,WClCV,CD6CI,+FAGI,SADA,SC3CR,CDyCI,uFAOI,aC7CR,CTxGC,qHQ0JO,UC/CR,CT3GC,6OQ+JO,kBChDR,CDsDI,uFAEI,cCrDR,CTlHC,+BUoBC,YAAa,CACb,SAAU,CACV,cAAe,CACf,cAAe,CAJf,iBD0GF,CCpGE,oCAEE,iBAAkB,CADlB,SAAU,CAEV,cDsGJ,CCjGE,0CAKI,kBAAmB,CAFnB,YAAa,CACb,cAAe,CAGf,eDgGN,CTxIC,iEU2CO,WDgGR,CT3IC,8DU+CO,mBACA,kBD+FR,CC5FM,gDAME,aAAc,CALd,oBAAqB,CAGrB,iBADA,aAEA,iBAAkB,CAHlB,ODkGR,CTvJC,iIU+DK,kBD4FN,CC1HE,gDA6CI,mBACA,yBACA,kBATA,qBAAsB,CAUtB,cAAe,CAZf,YAAa,CACb,SAAU,CAIV,YAGA,iBADA,kBADA,eASA,sBAZA,cAAe,CAcf,uBADA,yBAjBA,iBAAkB,CAclB,mDAAyD,CACzD,oFD4FN,CT/KC,oEU0FO,qBADA,cAEA,kBDyFR,CCrFM,wDACE,oBAAqB,CACrB,iBACA,eAAgB,CAEhB,sBAAuB,CADvB,eDwFR,CCpFM,uDnB7FJ,kCAAmC,CACnC,iCAAkC,CmB+F5B,kBAAmB,CnBvGzB,cmBwGM,sBAIA,cAAe,CANf,mBAAoB,CAIpB,cAAe,CnBzGrB,iBAAkB,CmBwGZ,eAAiB,CnBvGvB,aAAc,CmByGR,mBAAoB,CnBxG1B,iBAAkB,CAGlB,iCAAkC,CAFlC,mBAAoB,CACpB,sBkBqMF,CCtGM,yDnBzFF,akBkMJ,CCzGM,2DnBrFF,oBkBiMJ,ClB9LE,8DACE,YkBgMJ,ClB7LE,mHACE,akB+LJ,CClHM,gEAWI,qBD0GV,CCvGQ,6DACE,qBDyGV,CC9LE,0HA6FM,qBDoGR,CCjME,kDAoGI,wBADA,cAAe,CADf,iBDoGN,CChGM,iHAGE,yKADA,YAEA,iBACA,kBDkGR,CC/FM,wDAEE,eAAgB,CADhB,UDkGR,CC9FM,yDAGE,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAIN,iBAAkB,CADlB,eAAgB,CADhB,WDkGR,CCzNE,uDAkII,UAHA,iBAAkB,CAElB,WADA,OAAQ,CAGR,0BAA2B,CAC3B,kBD6FN,CTlQC,8DUkLS,gBDmFV,CTrQC,8DUsLS,YACA,gBDkFV,CTzQC,gEU2LS,YACA,gBDiFV,CC/EU,6IAEE,YACA,gBDiFZ,CTlRC,8DUkLS,gBDmGV,CTrRC,8DUsLS,YACA,gBDkGV,CTzRC,gEU2LS,YACA,gBDiGV,CC/FU,6IAEE,YACA,gBDiGZ,CTlSC,qEU6MO,QDwFR,CTrSC,gEUiNO,uBDuFR,CTxSC,uDUuNG,YDoFJ,CT3SC,sJWcK,sBACA,8BFgSN,CT/SC,+UYsBG,qBAUF,uBAPE,wCAQF,SHqRF,CTtTC,wJWcK,sBACA,8BF2SN,CT1TC,mVYsBG,qBAUF,uBAPE,yCAQF,SHgSF,CTjUC,qRWwCO,UF+RR,CTvUC,iWW4CO,kBFiSR,CT7UC,YESC,oCARA,qBAAsB,CAGtB,sBOmEA,cAAe,CADf,oBAAqB,CPjErB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,COkEV,iBAuRF,CAnRE,kEA5DA,sBACA,yBACA,kBAHA,iBAAkB,CAIlB,iDAmVF,CA1RE,wEAtDE,cAmVJ,CTtWC,yFSuBG,WAkVJ,CTzWC,+FS0BK,WAkVN,CT5WC,+GYsBG,qBAUF,uBAPE,yCAQF,SHiVF,CTlXC,sFSoCG,mBADA,sBAEA,kBAkVJ,CTvXC,0GSwCK,kBAkVN,CT1XC,4FS4CK,kBAiVN,CApTE,qGAhBE,4DAAgB,CAHhB,sBAAuB,CACvB,WAAY,CAHZ,QAAS,CAIT,YAAa,CAHb,SAgVJ,CA1UI,mIAGE,uBAAwB,CAFxB,YA8UN,CA5TE,iEGxCA,qBACA,sBHuWF,CA3TE,2BACE,SAEA,eAAmB,CADnB,eAAgB,CAGhB,sBAAuB,CADvB,kBA8TJ,CA1TI,qGAGI,SA4TN,CACF,CAvTE,kCAGE,cAFA,SACA,eAAgB,CAIhB,mBAAoB,CADpB,sBAAuB,CADvB,kBA2TJ,CAtTI,mHAGI,SAwTN,CACF,CAnTE,kBlB5GA,kCAAmC,CACnC,iCAAkC,CkBiHhC,kBAAmB,ClBzHrB,ckB4HE,sBlB9HF,mBAAoB,CkB0HlB,YAAa,CAKb,elB5HF,iBAAkB,CkByHhB,YlBxHF,aAAc,CkB4HZ,aAAc,CAHd,gBAKA,mBAAoB,CAXpB,iBAAkB,CAElB,WAQA,iBAAkB,ClBzHpB,iCAAkC,CAFlC,mBAAoB,CkBkHlB,OAAQ,ClBjHV,sBkBwbF,CA1UE,oBlBxGE,akBqbJ,CA7UE,sBlBpGE,oBkBobJ,ClBjbE,yBACE,YkBmbJ,ClBhbE,yCACE,akBkbJ,CAtVE,2BAiBI,wBAA0B,CAD1B,kBA0UN,CA1VE,+BAoBM,kBAyUR,CAtUM,mDACE,mBAwUR,CTtdC,uCSmJK,kBAsUN,CAnWE,oCAiCI,qBAqUN,CAhUE,kBAeE,gBANA,sBAOA,cAAe,CAXf,oBAAqB,CAKrB,eACA,iBAAkB,CAJlB,YAKA,aAAc,CAJd,gBASA,SAAU,CAhBV,iBAAkB,CAElB,WAUA,iBAAkB,CAMlB,mBAAoB,CALpB,mBAAoB,CAZpB,OAAQ,CAgBR,2CAA+C,CAZ/C,WAFA,SAiVJ,CAhUI,yBACE,aAkUN,CA/TI,wBACE,qBAiUN,CTvfC,oCS0LK,SAgUN,CA3TE,qBPtLA,qCOoME,sBACA,kBAEA,sGAXA,qBAAsB,CPjMxB,sBOoME,ePlMF,0BOsME,mBAAqB,CATrB,YAAa,CP5Lf,mBACA,eAAgB,CANhB,QAAS,CO6MP,YAAa,CARb,eAAgB,CADhB,cALA,iBAAkB,CAClB,WAAY,CAEZ,YA4UJ,CThhBC,wNSoNK,2BAgUN,CTphBC,kNSyNK,6BA+TN,CTxhBC,2GS6NK,4BA8TN,CT3hBC,wGSiOK,8BA6TN,CA1TI,4BACE,YA4TN,CAzTI,2BACE,qBA2TN,CA3SE,uBANE,sBAQA,qBAoTJ,CAjTE,wCAdE,aAAc,CAKd,eADA,eAAmB,CAEnB,iBALA,gBACA,iBAHA,iBA4UJ,CA7TE,iBAXE,sBAcA,cAAe,CACf,8BAyTJ,CAtTI,uBACE,sBAEA,cAAe,CADf,cAyTN,CApTI,wBACE,YAsTN,CApTM,gCACE,SAAU,CACV,eAAgB,CAEhB,sBAAuB,CADvB,kBAuTR,CAnTM,8BACE,SAqTR,CAlTM,qEACE,wBAoTR,CAjTM,uEAGE,yBAFA,sBACA,eAoTR,CAtTM,qGAMI,aAmTV,CA/SM,iCAIE,sBACA,kBA8SR,CT3lBC,iES0SS,wBAoTV,CA9SM,gCACE,iBAgTR,CAxSE,eACE,cA0SJ,CAtSE,4CACE,kCAAwC,CACxC,kCAAoC,CACpC,yBAwSJ,CArSE,oCACE,UAuSJ,CI9gBI,4DACE,iBJghBN,CT/mBC,wFamGO,iBADA,cJihBR,CTnnBC,kJamHS,SJwgBV,CIpgBM,qCACE,SJsgBR,CT9nBC,gIaiCK,eJgmBN,CTjoBC,4JasCK,4BAA6B,CAD7B,yBJgmBN,CTroBC,kTaiDK,2BAA4B,CAD5B,wBJ6lBN,CT7oBC,sJauDK,4BAA6B,CAD7B,yBJ2lBN,CK1oBE,gBACE,aL4oBJ,CTppBC,oEcuBK,UADA,ULsoBN,CK/nBI,yBACE,aLioBN,CT/pBC,yDcwCS,kBADA,kBL4nBV,CTnqBC,+Jc6DK,kBADA,iBL4mBN,CTxqBC,+DcoEK,gBLumBN,CT3qBC,uEc0EO,gBADA,cAAe,CAEf,gBLqmBR,CThrBC,wEcqFO,SAAU,CADV,OLgmBR,CTprBC,sEc8FK,SAAU,CADV,UL2lBN,CTxrBC,oFc0GO,SLilBR,CT3rBC,2Kc0HO,QAAS,CADT,OAAQ,CAER,gBLskBR,CTjsBC,qFcoIK,UADA,ULkkBN,CTrsBC,6Kc4IK,kBADA,eL+jBN,CT1sBC,oIc0JS,SLmjBV,CT7sBC,2QckKS,kBADA,eLijBV,CTltBC,WeQC,eACA,mBAFA,YAAa,CAGb,iBADF,CAGE,iBACE,YAAa,CACb,iBADJ,CADE,qBAKI,WADN,CAJE,qBASI,WAAY,CACZ,WAFN,CAME,kBACE,eAJJ,CAQE,kBAEE,sBADA,aALJ,CAIE,mCAKI,WANN,CAUE,iBAEE,sBADA,YAPJ,CAME,kCAKI,WARN,CAgDI,+BACE,YAAa,CACb,eA9CN,CAkDM,8BACE,YAhDR,CAmDM,8BACE,2BAjDR,CAoDM,8BACE,YAlDR,CAyDM,4DACE,YApDR,CAwDI,yBACE,SAtDN,CA6EI,8BACE,YA3EN,CA8EI,wBACE,cA5EN,CA+EI,2BACE,YA7EN,CC9DE,eACE,aDgEJ,C5BvEC,YeSC,oCeMA,gBAoCA,iBAAkB,CflDlB,qBAAsB,CAGtB,sBeOA,WAFA,oBAAqB,CfJrB,eACA,0Be2CA,Yf1CA,mBe2CA,iBf1CA,eAAgB,CANhB,QAAS,CeQT,eAAgB,CfPhB,SAAU,CeKV,iBAAkB,CAKlB,iBAAkB,CAClB,qBAAsB,CAFtB,kBAAmB,CAoCnB,UAtBF,CATE,kBACE,sBAWJ,C9B7BC,2B8BsBG,aAUJ,CAqBE,mBAEE,QAAS,CADT,iBAAkB,CAElB,yBAnBJ,C9BrCC,4B8B4DG,cApBJ,C9BxCC,qC8B+DK,QApBN,CAhBE,eAwBA,iBAAkB,CAFlB,YACA,iBAFA,UACF,CAIE,sBAEE,QAAS,CADT,iBAAkB,CAElB,yBAFJ,C9BtDC,+B8B4DG,cAHJ,C9BzDC,wC8B+DK,QAHN,CA7BE,eAoBA,iBAAkB,CAFlB,YACA,iBAFA,UAkBF,CAbE,sBAEE,QAAS,CADT,iBAAkB,CAElB,yBAeJ,C9BvEC,+B8B4DG,cAcJ,C9B1EC,wC8B+DK,QAcN,CA1CE,mBACE,iBA4CJ,CAzCE,gBACE,aAAc,CAEd,WAAY,CACZ,oCAAiB,CAFjB,UA6CJ,C9BtFC,kB+BCC,mBDwFF,C9BzFC,8B+BIG,qBDwFJ,CCtFI,gDACE,gBDwFN,CCpFE,kDAEI,eDqFN,CEjGE,oDAGI,aAAc,CADd,iBFmGN,C9BtGC,kEgCWK,aAAc,CADd,gBFgGN,CjB1GC,aESC,oCARA,qBAAsB,CAGtB,sBkBiBA,WAAY,ClBhBZ,eACA,0BkBYA,eAAmB,CAHnB,MAAO,ClBRP,mBACA,eAAgB,CANhB,QAAS,CkBeT,eAAgB,ClBdhB,SAAU,CkBUV,iBAAkB,CAOlB,eAAgB,CANhB,KAAM,CAQN,oFAAiB,CAHjB,kBAAmB,CAHnB,YAQF,CAAE,qBACE,iBAEJ,CACE,mBAEE,+BACA,UAAW,CAFX,iBAGJ,CAEE,oBACE,YAAJ,CAIE,0FAGE,2BAFJ,CAKE,gGAGE,yBAHJ,CAME,mGAGE,wBAJJ,CAOE,6FAGE,0BALJ,CAQE,mBAEE,2BAA4B,CAD5B,sBAEA,kBACA,qGANJ,CASE,sEAEE,mBACE,qGALJ,CACF,CAQE,mBAOE,gCAFA,sBACA,eAAgB,CAHhB,QAAS,CADT,gBADA,gBAGA,oBAHJ,CASE,2BAIE,sBAFA,cAAe,CACf,kBAFA,wCAJJ,CAUE,qBAGE,sBAFA,YAAa,CAGb,eAFA,kBANJ,CAUI,0BAGE,cAFA,oBAAqB,CAGrB,eAFA,gBANN,CAYE,qBACE,iBAAkB,CAClB,gBAVJ,CAQE,8CAKI,eAVN,CAeE,mBAME,sBAAuB,CAJvB,aAAc,CAEd,YACA,eAAgB,CAEhB,mBAAoB,CANpB,iBAAkB,CAElB,UATJ,CAeI,2BACE,mCCxGJ,sBD4GI,QAAS,CAMT,UAAW,CAJX,aAAc,CAEd,oBAHA,MAAO,CAIP,WAAY,CAEZ,mBAAoB,CClHxB,mBAAoB,CDwGhB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,kBAPN,CCrGE,kCAME,8CAGA,gCADA,2BAA4B,CAG5B,yDAAyB,CACzB,ouBAFA,UAAW,CALX,oBAFA,mBAFA,iBAAkB,CAClB,kBAEA,kBD8GJ,CAGE,mJAGE,QAAS,CACT,0BADJ,CAGI,2KACE,uCACA,yCACN,CAGE,8CACE,QAAS,CACT,2CADJ,CAIE,kDACE,SAFJ,CAKE,mDACE,UAHJ,CAME,yJAGE,MAAO,CACP,2BAJJ,CAMI,iLACE,uCACA,yCAFN,CAME,gDACE,OAAQ,CACR,4CAJJ,CAOE,mDACE,QALJ,CAQE,sDACE,WANJ,CASE,4JAGE,KAAM,CACN,2BAPJ,CASI,oLACE,uCACA,0CALN,CASE,iDACE,QAAS,CACT,4CAPJ,CAUE,qDACE,SARJ,CAWE,sDACE,UATJ,CAYE,sJAGE,OAAQ,CACR,0BAVJ,CAYI,8KACE,uCACA,0CARN,CAYE,+CACE,OAAQ,CACR,2CAVJ,CAaE,kDACE,QAXJ,CAcE,qDACE,WAZJ,CAyBM,0KACE,wBAdR,CAaM,gFACE,wBARR,CAOM,wFACE,wBAFR,CACM,sFACE,wBAIR,CALM,sFACE,wBAUR,CAXM,kFACE,wBAgBR,CAjBM,kFACE,wBAsBR,CAvBM,kFACE,wBA4BR,CA7BM,oFACE,wBAkCR,CAnCM,kFACE,wBAwCR,CAzCM,0FACE,wBA8CR,CA/CM,sFACE,wBAoDR,CE7SE,iBACE,aAAc,CACd,gBF+SJ,CpBvTC,2CsBeO,eAAgB,CADhB,cF6SR,CpB3TC,4CsBqBO,iBFySR,CpB9TC,sCsB4BK,eFqSN,CpBjUC,6CsBkCO,aAAc,CADd,gBFoSR,CpBrUC,cESC,oCqBCA,WAAY,CrBTZ,qBAAsB,CAGtB,sBqBUA,cAAe,CrBTf,eACA,0BqBOA,WAAY,CrBNZ,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CqBKV,cAAe,CACf,WAAY,CAGZ,UAAW,CADX,UAUF,CALE,oBACE,YAOJ,CAJE,kBAGE,aAAc,CADd,UAAW,CADX,UAQJ,CAHE,sBAME,iCACA,kBAAmB,CAHnB,WAFA,WAAY,CACZ,eAAgB,CAEhB,iBAAkB,CAGlB,kBAAoB,CAPpB,UAYJ,CAHI,4BACE,iCACA,kBAKN,CADE,mBACE,cAAe,CACf,gBAGJ,CC/CA,oCxBAC,cwBEG,UDiDF,CC/CE,kBAEE,SAAU,CADV,UDkDJ,CACF,CC7CA,oCxBXC,cwBaG,UD+CF,CC7CE,kBAEE,SAAU,CADV,UDgDJ,CACF,CvBjEC,WESC,oCARA,qBAAsB,CAGtB,sBuBMA,oBAAqB,CvBLrB,eACA,0BACA,mBuBIA,aAAc,CvBHd,eAAgB,CANhB,QAAS,CACT,SAAU,CuBMV,iBAQF,CAJE,iBAWE,mBACA,mBACA,0BARA,WAEA,eADA,gBAHA,YAKA,iBANA,eAEA,aAAc,CAMd,iBAAkB,CADlB,kBAAmB,CARnB,YAkBJ,CAnBE,4CAiBI,UAMN,CAFE,oBAME,kBAFA,eAFA,YAGA,iBAJA,eAEA,SAOJ,CADE,0BACE,aAGJ,CAAE,eAKE,mBACA,kBAAmB,CACnB,0BAHA,WADA,cADA,UADA,YAQJ,CzBxDC,iCyB2DG,0BAAJ,CzB3DC,+EyBiEG,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAEN,6BAA+B,CAC/B,uBADJ,CzBpEC,sHyBwEK,kDACN,CAGE,kBACE,mBAAoB,CACpB,sBADJ,CAGI,sBAOE,iBAAkB,CAJlB,oBAAqB,CAErB,WAJA,iBAAkB,CAClB,QAAS,CAIT,qBAAsB,CAFtB,SAEN,CAII,0BACE,wBAFN,CAKI,6BAEE,yBADA,iBAFN,CAKM,mCAQE,uDAAwD,CAFxD,yBACA,iBAAkB,CAElB,UAAW,CAJX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAEN,UAER,CAOI,0BACE,wBALN,CAQI,wBACE,wBANN,CASI,0BACE,wBAPN,CzBjHC,iDyBiIO,kBAVR,CzBvHC,sByBiIO,kBAPR,CzB1HC,0ByBiIO,kBAJR,CzB7HC,yByBiIO,kBADR,CzBhIC,yByBiIO,kBAER,CzBnIC,uByBiIO,kBAKR,CzBtIC,uByBiIO,kBAQR,CzBzIC,uByBiIO,kBAWR,CzB5IC,wByBiIO,kBAcR,CzB/IC,uByBiIO,kBAiBR,CzBlJC,2ByBiIO,kBAoBR,CzBrJC,yByBiIO,kBAuBR,CAlBI,uBAEE,sBACA,eAFA,eAsBN,CAhBE,6CAEE,2DACA,wBAkBJ,CAfE,sBACE,4DACA,wBAiBJ,CAdE,+FAGI,mEAeN,CAlBE,+CAOI,oEAcN,CAXI,gDACE,qBAaN,CAxBE,uGAgBI,cAYN,CA5BE,yGAuBI,aAAc,CAFd,iBAAkB,CAClB,QAAS,CAET,wBAWN,CANA,+BACE,GAEE,UAAY,CADZ,mBASF,CALA,GAEE,SAAU,CADV,oBAQF,CACF,CzBrMC,mByB2MC,aAAc,CADd,eADF,CAIE,wBAEE,oBAAqB,CADrB,iBAAkB,CAGlB,iDAEJ,CANE,8EARA,kCAAmC,CAWjC,YAZF,mCAuBF,CAdE,sDASI,QAKN,CAAE,0BACE,kBAEJ,CAEA,0BACE,GAEE,SAAU,CADV,sCACF,CAGA,GACE,sCADF,CACF,CAIA,2BACE,GACE,sCAFF,CAKA,GAEE,SAAU,CADV,sCAFF,CACF,CAMA,mCACE,GAEE,SAAU,CADV,kBAHF,CAOA,GACE,kBALF,CACF,CAQA,oCACE,GACE,kBANF,CASA,GAEE,SAAU,CADV,kBANF,CACF,CAUA,iCACE,GACE,oBARF,CAWA,GACE,2CAA8C,CAC9C,oBATF,CACF,CzB3QC,oB0BOC,iBDuQF,CzB9QC,YESC,oCwBWA,yBACA,kBxBpBA,qBAAsB,CAGtB,sBwBaA,WxBZA,eACA,0BwBSA,WAAY,CxBRZ,mBwBWA,gBAAiB,CxBVjB,eAAgB,CANhB,QAAS,CwBcT,aAAc,CAHd,iBAAkB,CAClB,OAAQ,CAKR,kBD+QF,CC3QE,iBACE,UD6QJ,CC1QE,mBAME,gBAAiB,CADjB,kBAAmB,CADnB,UAAW,CAHX,iBAAkB,CAClB,QAAS,CAKT,qBAAuB,CACvB,oBAAqB,CALrB,SDiRJ,CC1QI,yBAOE,cAAe,CADf,qBAA0B,CAE1B,UAAW,CAHX,cAAe,CAFf,SAAU,CAFV,iBAAkB,CAClB,QAAS,CAET,aDgRN,CzBzTC,iD0ByDK,mBADA,aDyQN,CzBjUC,sB0ByDK,mBADA,aD6QN,CzBrUC,0B0ByDK,mBADA,aDiRN,CzBzUC,yB0ByDK,mBADA,aDqRN,CzB7UC,yB0ByDK,mBADA,aDyRN,CzBjVC,uB0ByDK,mBADA,aD6RN,CzBrVC,uB0ByDK,mBADA,aDiSN,CzBzVC,uB0ByDK,mBADA,aDqSN,CzB7VC,wB0ByDK,mBADA,aDySN,CzBjWC,uB0ByDK,mBADA,aD6SN,CzBrWC,2B0ByDK,mBADA,aDiTN,CzBzWC,yB0ByDK,mBADA,aDqTN,CzB7WC,qC0BiEG,4BAA6B,CAD7B,UDiTJ,CzBjXC,wD0BoEK,8DAA+D,CAD/D,ODkTN,CzBrXC,uC0B0EG,2BAA4B,CAD5B,SDgTJ,CzBzXC,0D0B6EK,8DAA+D,CAD/D,MDiTN,CE5XE,eACE,aF8XJ,CzBhYC,yO2BWK,aAAc,CADd,MAAO,CADP,UAAW,CAGX,8BAAgC,CAChC,oBF4XN,CzBzYC,2F2BmBG,MAAO,CADP,UAAW,CAEX,8BAAgC,CAChC,oBF0XJ,CzB/YC,sC2B4BO,aAAc,CADd,gBFwXR,CzBnZC,2J2BoCK,gCFmXN,CzBvZC,6E2BwCK,iCFkXN,CzB1ZC,gB2B8CC,aF+WF,CzB7ZC,yC2BmDG,2BAA4B,CAD5B,+BADA,SAAU,CADV,UFmXJ,CzBnaC,4D2BsDK,MAAO,CADP,UFmXN,CE/WM,8HAFA,8DFoXN,CzB3aC,2C2BkEG,8BADA,4BAA6B,CAD7B,UADA,UFkXJ,CzBjbC,8D2BqEK,UADA,OFkXN,CE9WM,kIAFA,8DFmXN,CE1WA,6BACE,GAEE,SAAU,CADV,uCF6WF,CEzWA,GACE,uCF2WF,CACF,CExWA,8BACE,GACE,uCF0WF,CEvWA,GAEE,SAAU,CADV,uCF0WF,CACF,CtC3cC,gBeSC,oCARA,qBAAsB,CAGtB,sB0BIA,sBACA,e1BHA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,S0BYF,CzCfC,yByCYG,cAMJ,CzClBC,mByCgBG,YAAa,CACb,cAAe,CAGf,eAAgB,CAFhB,QAAS,CACT,SAMJ,CzCzBC,kByCwBG,sBACA,oBAIJ,CzC7BC,sFyCoCK,qBAEN,CAEE,wCACE,YAAJ,CAGE,0BAEE,sBADA,YAAJ,CAWE,yGAEI,eANN,CCnDE,oBAEE,aDoDJ,CtCnDE,2BAEE,UAAW,CADX,asCsDJ,CtClDE,0BAGE,UAAW,CACX,UAAW,CAFX,asCqDJ,CC/DE,yBAKI,WD6DN,CzCnEC,qK0CwBO,aAAc,CADd,gBDqDR,CEvEE,sDACE,aCAJ,CDEI,4DAEE,yBADA,UCCN,C/BVC,cESC,oCARA,qBAAsB,CAGtB,sB6BSA,aAAc,C7BRd,eACA,0B6BKA,YAAa,C7BJb,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,C6BMV,iBAAkB,CAClB,WAAY,CAEZ,YAcF,CAXE,qBAIE,YAIA,WAAY,CAHZ,SAAU,CAEV,aAAe,CANf,iBAAkB,CAElB,OAAQ,CADR,SAIA,aAeJ,CAVE,mBACE,iBAYJ,CAbE,0CAII,cAYN,CAhBE,wCAQI,wBAWN,CAPE,6CAEI,wBAQN,CAJE,iFAGE,YAMJ,CAFE,qKAGE,2BAIJ,CADE,8KAGE,wBAGJ,CAGE,oBV1CA,sBU6CE,aAAc,CAEd,oBV9CF,mBAAoB,CU0ClB,iBAAkB,CAGlB,mBAFA,SAIJ,CV7CE,2BAME,gBAGA,gCADA,2BAA4B,CAG5B,yDAAyB,CACzB,ouBAFA,UAAW,CALX,oBAFA,mBAFA,iBAAkB,CAClB,kBAEA,kBUsDJ,CAVE,yJAGE,YACA,2CACA,uBAYJ,CATE,gDACE,QAAS,CACT,wCAWJ,CARE,oDACE,SAUJ,CAPE,qDACE,UASJ,CANE,kKAIE,2CADA,iBAEA,2CAQJ,CALE,mDACE,QAAS,CACT,4DAOJ,CAJE,uDACE,SAMJ,CAHE,wDACE,UAKJ,CAFE,mBAOE,2BAA4B,CAD5B,sBAEA,kBAEA,sGALA,oBAAqB,CAHrB,QAAS,CAOT,YAAa,CANb,cAFA,iBAAkB,CAGlB,eAUJ,CAFI,oCAEE,sBADA,iBAEA,kBAIN,CADI,iCAGE,sBAAuB,CACvB,eAAgB,CAHhB,iBAAkB,CAIlB,oBAAqB,CAHrB,YAMN,CARI,wEASI,eAGR,CAZI,oCAcI,gBAAkB,CADlB,iBAGR,CAGI,wBAGE,kBAAmB,CADnB,YAAa,CADb,iBACN,CAII,6BAGE,eADA,gBAAiB,CADjB,cAAN,CAKI,iCACE,SAHN,CAEI,mCAII,aAAc,CACd,kBAHR,CAKQ,yCACE,aAHV,CAMQ,yCAIE,QAAS,CAET,UAAW,CADX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAV,CAUI,yDAEE,UAAW,CAGX,sBAIA,cAAe,CAFf,eADA,eAAmB,CAEnB,iBALA,QAAS,CACT,iBAMA,kBARN,CAsBM,2EAEE,yBADA,aAlBR,CAsBM,iUAEE,wBAhBR,CAmBM,oQACE,sBACA,kBAdR,CAgBQ,4RAEE,sBADA,sBAEA,kBAXV,CAIM,4QAWI,mBATV,CAaM,yEAKE,yBAJA,UAAW,CAGX,aAAc,CAFd,YAAa,CACb,eARR,CA5CI,uIA0DI,iBAAkB,CAClB,SAVR,CAjDI,mNA+DM,sBACA,cAAe,CACf,iBAAkB,CAHlB,wBANV,CAcI,mCAGE,eAAgB,CAFhB,YAAa,CACb,SAXN,CAeI,iCACE,kBAbN,CAgBI,oCACE,iBAdN,CAiBI,uDAGE,SAAU,CAEV,eAAgB,CADhB,cAAe,CAHf,iBAAkB,CAClB,KAAM,CAIN,oBAfN,C/BxQC,oO+B8RO,sBADA,sBAEA,kBAjBR,CAsBI,qEACE,aApBN,C/BjRC,skB+B+SG,2BAtBJ,C/BzRC,4hB+BwTG,6BAvBJ,C/BjSC,gS+B8TG,4BAxBJ,C/BtSC,2Q+BoUG,8BAzBJ,C/B3SC,gI+B4UG,cAAe,CACf,sBA5BJ,C/BjTC,qB+BkVC,kBA9BF,C/BpTC,iH+BuVK,cAAe,CACf,mBA/BN,C/BzTC,oE+B4VK,aAhCN,CAmCI,iGAEE,iBADA,iBAhCN,C/BhUC,mE+B0WG,kBAtCJ,C/BpUC,klB+BkXK,yBAlCN,CAqCI,mPAEE,sBAAuB,CADvB,UA/BN,CAoCI,mLAIE,mBADA,UAjCN,CCvVE,kBACE,aDyVJ,C/BhWC,sCgCaK,MAAO,CADP,UDwVN,C/BpWC,kKgC0BO,aAAc,CACd,gBDkVR,C/B7WC,+DgCiCO,uBD+UR,C/BhXC,yMgC+CO,gBDyUR,C/BxXC,wRgCsDS,eAAgB,CADhB,cD0UV,C/B/XC,2KgC6DS,SADA,UDwUV,C/BpYC,uPgCkEW,uBAAyB,CACzB,oBDsUZ,C/BzYC,mDgC4EO,kBADA,kBDkUR,C/B7YC,yEgCmFO,MAAO,CAEP,aAAc,CADd,gBAAiB,CAFjB,UDiUR,C/BnZC,SiC6NC,qBAAsB,CA5MpB,gBAFF,yBALA,kBAqNA,oCAjNA,sBAkNA,cAAe,CAPf,oBAAqB,CAhNrB,eAiNA,gBAnNA,YCcA,mBDbA,iBAgNA,iBAAkB,CAIlB,iBAAkB,CAOlB,yBAA0B,CAF1B,kDACA,oFAAiB,CAPjB,kBClMF,ClCzBC,kBiCwOG,aC5MJ,CD+ME,wCAGE,SC7MJ,CDgNE,+BACE,oBC9MJ,CDiNE,gCAEE,eAAgB,CADhB,SC9MJ,CDkNE,mBACE,kBChNJ,CD+ME,qBAII,mBChNN,CDoNE,YAxPA,kBADA,eAFA,YACA,kBC4CF,CDoNE,YA9PA,kBADA,eAFA,YACA,aCkDF,ClC1DC,sBiCqBG,kBCwCJ,CDtCI,4BAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC6CN,CDwBE,8BA7EE,gBAFF,qBADA,aC8DF,CDkBE,wDAzEE,kBC2DJ,CDzDI,oEAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCiEN,CDoBE,gBA7FE,gBAFF,qBADA,aCiFF,CDeE,6BAzFE,kBC6EJ,CD3EI,mCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCkFN,CDtEI,+FApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBC0EN,CDhFI,mJAhBA,kBCsGJ,CDpGI,2KAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC8GN,CD+IE,8CAIE,gBADA,oBC5IJ,ClC7IC,ckC4BG,oBAoHJ,CAjHE,iBDdE,mBAFF,qBAsCA,oCAvCA,WAsCA,oCCmGF,CAxHE,8BDVE,kBCqIJ,CDnII,oCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC0IN,CD5GE,8CAtCE,mBAFF,qBADA,UC2JF,CDlHE,wEAlCE,kBCwJJ,CDtJI,oFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC8JN,CD/GE,wBAvDE,mBAFF,qBADA,UC8KF,CDpHE,qCAnDE,kBC0KJ,CDxKI,2CAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC+KN,CDnKI,+HApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBCuKN,CD7KI,mLAhBA,kBCmMJ,CDjMI,2MAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC2MN,ClCpOC,mEkCoCK,0BADA,0BAqMN,CAlMM,4EACE,oBAoMR,CA/LM,6DACE,0BAiMR,CA/LQ,uEACE,0BAiMV,ClCjPC,8GkCuDK,yBA8LN,CA5LM,kIACE,yBA+LR,CA1LE,eD9CE,uBAFF,qBADA,qBCgPF,CA/LE,4BD1CE,kBC4OJ,CD1OI,kCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCiPN,CD5KE,0CA7EE,uBAFF,qBADA,aCkQF,CDlLE,oEAzEE,kBC+PJ,CD7PI,gFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCqQN,CDhLE,sBA7FE,uBAFF,qBADA,aCqRF,CDrLE,mCAzFE,kBCiRJ,CD/QI,yCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCsRN,CD1QI,uHApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBC8QN,CDpRI,2KAhBA,kBC0SJ,CDxSI,mMAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCkTN,CAxQE,gBDlDE,gBAFF,qBAqRA,mBAAoB,CAtRpB,qBCmUF,CA9QE,6BD9CE,kBC+TJ,CD7TI,mCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCoUN,CD/PE,4CA7EE,gBAFF,qBADA,aCqVF,CDrQE,sEAzEE,kBCkVJ,CDhVI,kFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCwVN,CDnQE,uBA7FE,gBAFF,qBADA,aCwWF,CDxQE,oCAzFE,kBCoWJ,CDlWI,0CAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCyWN,CD7VI,2HApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBCiWN,CDvWI,+KAhBA,kBC6XJ,CD3XI,uMAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCqYN,CArVE,gBDxDE,mBAFF,qBAsCA,oCAvCA,WAsCA,oCCiXF,CA5VE,6BDpDE,kBCmZJ,CDjZI,mCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCwZN,CD1XE,4CAtCE,mBAFF,qBADA,UCyaF,CDhYE,sEAlCE,kBCsaJ,CDpaI,kFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC4aN,CD7XE,uBAvDE,mBAFF,qBADA,UC4bF,CDlYE,oCAnDE,kBCwbJ,CDtbI,0CAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC6bN,CDjbI,2HApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBCqbN,CD3bI,+KAhBA,kBCidJ,CD/cI,uMAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCydN,CAraE,cD5DE,uBAFF,yBAuWA,eAAgB,CAxWhB,aC0eF,CA3aE,2BDxDE,kBCseJ,CDpeI,iCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC2eN,CDtaE,wCA7EE,uBAFF,qBADA,aC4fF,CD5aE,kEAzEE,kBCyfJ,CDvfI,8EAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC+fN,CD1aE,qBA7FE,uBAFF,qBADA,aC+gBF,CD/aE,kCAzFE,kBC2gBJ,CDzgBI,wCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCghBN,CDpgBI,mHApBA,mBAFF,oBCoiBF,CD3LE,oBACE,sBC+MJ,CD5ME,6DAGE,wBC8MJ,CDxiBI,mHApBA,uBAFF,yBA6BI,eAAgB,CA9BpB,sBA6BI,gBC4iBN,CDljBI,uKAhBA,kBCwkBJ,CDtkBI,+LAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCglBN,CAxhBE,cDhEE,uBAFF,yBAyYA,eAAgB,CA1YhB,qBCimBF,CA9hBE,2BD5DE,kBC6lBJ,CD3lBI,iCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCkmBN,CD7hBE,wCA7EE,uBAFF,qBADA,aCmnBF,CDniBE,kEAzEE,kBCgnBJ,CD9mBI,8EAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCsnBN,CDjiBE,qBA7FE,uBAFF,qBADA,aCsoBF,CDtiBE,kCAzFE,kBCkoBJ,CDhoBI,wCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCuoBN,CD3nBI,mHApBA,mBAFF,oBC2pBF,CDhRE,wCAGE,4BACA,wBAAyB,CAFzB,qBCsSJ,CDjSE,qBAEE,4BACA,wBAAyB,CAFzB,qBCqSJ,CDlqBI,mHApBA,uBAFF,yBA6BI,eAAgB,CA9BpB,sBA6BI,gBCsqBN,CD5qBI,uKAhBA,kBCksBJ,CDhsBI,+LAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC0sBN,CA9oBE,mBDpEE,gBAFF,qBADA,aC0tBF,CAnpBE,gCDhEE,kBCstBJ,CDptBI,sCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC2tBN,CDtcE,kDA7RE,gBAFF,qBADA,aC4uBF,CD5cE,4EAzRE,kBCyuBJ,CDvuBI,wFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC+uBN,CDvcE,0BAhTE,gBAFF,qBADA,aC+vBF,CD5cE,uCA5SE,kBC2vBJ,CDzvBI,6CAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCgwBN,CDpvBI,uIApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBCwvBN,CD9vBI,2LAhBA,kBCoxBJ,CDlxBI,mNAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC4xBN,CA5tBE,mCDxEE,mBAFF,qBAsCA,oCAvCA,WAsCA,oCCwwBF,CAnuBE,gDDpEE,kBC0yBJ,CDxyBI,sDAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC+yBN,CDjxBE,kFAtCE,mBAFF,qBADA,UCg0BF,CDvxBE,4GAlCE,kBC6zBJ,CD3zBI,wHAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCm0BN,CDpxBE,0CAvDE,mBAFF,qBADA,UCm1BF,CDzxBE,uDAnDE,kBC+0BJ,CD70BI,6DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCo1BN,CDx0BI,uMApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBC40BN,CDl1BI,2PAhBA,kBCw2BJ,CDt2BI,mRAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCg3BN,CA5yBE,gCD5EE,uBAFF,yBAwUA,eAAgB,CAzUhB,aCi4BF,CAlzBE,6CDxEE,kBC63BJ,CD33BI,mDAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCk4BN,CD7zBE,4EA/EA,qBADA,aCm5BF,CDnzBE,uCA/FA,qBADA,aCs6BF,CD/4BI,2LApBA,mBAFF,oBC27BF,CDjnBE,4EAxUE,uBAFF,yBADA,aCo9BF,CDzoBE,sGApUE,kBCi9BJ,CD/8BI,kHAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCu9BN,CD1oBE,uCArVE,uBAFF,yBADA,aCu+BF,CD/oBE,oDAjVE,kBCm+BJ,CDj+BI,0DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCw+BN,CD59BI,2LApBA,uBAFF,yBA6BI,eAAgB,CA9BpB,sBA6BI,gBCg+BN,CDt+BI,+OAhBA,kBC4/BJ,CD1/BI,uQAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCogCN,CA57BE,gCDhFE,uBAFF,yBA4ZA,eAAgB,CA7ZhB,aCqhCF,CAl8BE,6CD5EE,kBCihCJ,CD/gCI,mDAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCshCN,CDj9BE,4EA7EE,uBAFF,qBADA,aCuiCF,CDv8BE,uCA7FE,uBAFF,qBADA,aC0jCF,CDniCI,2LApBA,mBAFF,oBC+kCF,CDjrBE,4EA5ZE,4BAFF,yBADA,aCwmCF,CDzsBE,sGAxZE,kBCqmCJ,CDnmCI,kHAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC2mCN,CD1sBE,uCAzaE,4BAFF,yBADA,aC2nCF,CD/sBE,oDAraE,kBCunCJ,CDrnCI,0DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC4nCN,CDhnCI,2LApBA,uBAFF,yBA6BI,eAAgB,CA9BpB,sBA6BI,gBConCN,CD1nCI,+OAhBA,kBCgpCJ,CD9oCI,uQAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCwpCN,CA5kCE,mBD3FA,kBADA,eAFA,YACA,gBC+FE,mBAAoB,C9CpGtB,U8CsrCF,CD/tBE,qBACE,cCiuBJ,ClC5rCC,8BiCUC,kBADA,eAFA,YACA,gB7CLA,U8CgsCF,CDluBI,gCACE,cCouBN,ClCtsCC,8BiCUC,kBADA,eAFA,YACA,U7CLA,U8C0sCF,CDpuBI,gCACE,cCsuBN,CA3mCE,4BAKI,YAAa,CACb,sBAymCN,CA/mCE,oCAUI,mBAwmCN,CAnmCE,oBACE,mBAqmCJ,CAtmCE,6BAII,cAqmCN,CAjmCE,eDlHA,mBADA,eAFA,YACA,gBC2tCF,ClCnuCC,0BiCUC,mBADA,eAFA,YACA,kBCiuCF,ClCzuCC,0BiCUC,mBADA,eAFA,YACA,cCuuCF,ClC/uCC,iCkC+HK,UAmnCN,CA/mCE,gBDiXA,iBAAkB,CAJlB,eAEA,cAAe,CADf,eAAgB,CAEhB,iBCswBF,ClCzvCC,2BiCufG,iBAAkB,CADlB,cCuwBJ,ClC7vCC,2BiC2fG,iBAAkB,CADlB,cCuwBJ,CA1nCE,gBAQE,gBACA,qBAAsB,CALtB,YAQA,UAAW,CALX,YAAa,CAFb,UAKA,WAAa,CAGb,mBAAoB,CAZpB,iBAAkB,CAElB,WADA,SASA,sBAAwB,CALxB,SAmoCJ,ClChxCC,kBkCwJG,yDA2nCJ,ClCnxCC,uEkC+JO,6BAwnCR,CAnnCE,yBAEE,cAAe,CADf,iBAsnCJ,CAnnCI,gCACE,aAqnCN,CAjnCE,+BACE,8FAmnCJ,CApnCE,wCAKI,cAAe,CADf,iBAonCN,CAxnCE,4CAQM,0CAmnCR,CA9mCE,eDQA,mBC0mCF,CAlnCE,oEDOA,iBC+mCF,CDzmCI,qMAGE,SC8mCN,CD3mCI,yEACE,SC8mCN,CAloCE,kCDwBE,cC6mCJ,CAroCE,kMD+UE,gBC+zBJ,CA9oCE,+EDkVE,6BC+zBJ,CAjpCE,wBDqVE,eC+zBJ,CAppCE,6EDyVE,aC+zBJ,CAxpCE,2ED+VE,iBC+zBJ,CA9pCE,+GDoWE,8BADA,0BCg0BJ,CAnqCE,+GDyWE,+BADA,2BCg0BJ,CD5zBE,iFAKI,iBC6zBN,CDl0BE,qHAUI,8BADA,0BC8zBN,CDv0BE,qHAeI,+BADA,2BC8zBN,CDzzBE,8BACE,UC2zBJ,ClCr3CC,0EiC6jBG,eC2zBJ,CDxzBE,+EAII,4BAA6B,CAD7B,yBAA0B,CAD1B,iBC2zBN,ClC73CC,gFiC0kBG,2BAA4B,CAD5B,wBAAyB,CADzB,gBC0zBJ,ClCl4CC,slBmCoDK,gBAAiB,CADjB,iBDg2CN,ClCn5CC,iCmCyDG,aD61CJ,ClCt5CC,mJmC+DK,yBD21CN,ClC15CC,mJmCsEK,yBDw1CN,ClC95CC,yJmC8EO,yBDo1CR,ClCl6CC,yJmCqFO,yBDi1CR,CAvuCE,yCAEE,iBAyuCJ,ClC16CC,8CkCuMG,eAuuCJ,CApuCE,kCAEE,kBADA,UAuuCJ,CApuCI,2JAIE,sBAsuCN,CAnuCI,gFAGE,qBADA,aAsuCN,CAluCI,yCAEE,qBADA,aAquCN,CAjuCI,4CAEE,uBACA,qBAFA,qBAquCN,CA/tCE,0CDxNA,qBADA,cAmHA,gBC00CF,CApuCE,uDDlNE,kBCy7CJ,CDv7CI,6DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC87CN,CDp1CE,gGApHA,qBADA,aC88CF,CDz1CE,0HA9GE,kBC28CJ,CDz8CI,sIAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCi9CN,CDz0CE,iDAlJA,qBADA,aCg+CF,CD70CE,8DA5IE,kBC49CJ,CD19CI,oEAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCi+CN,CDr9CI,mOApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBCy9CN,CD/9CI,uRAhBA,kBCq/CJ,CDn/CI,+SAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC6/CN,CA3yCE,yCD5NA,qBADA,cAmHA,gBC05CF,CAhzCE,sDDtNE,kBCygDJ,CDvgDI,4DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC8gDN,CDp6CE,8FApHA,qBADA,aC8hDF,CDz6CE,wHA9GE,kBC2hDJ,CDzhDI,oIAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCiiDN,CDz5CE,gDAlJA,qBADA,aCgjDF,CD75CE,6DA5IE,kBC4iDJ,CD1iDI,mEAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCijDN,CDriDI,+NApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBCyiDN,CD/iDI,mRAhBA,kBCqkDJ,CDnkDI,2SAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC6kDN,CAv3CE,4CDhOA,qBADA,cAmHA,gBC0+CF,CA53CE,yDD1NE,kBCylDJ,CDvlDI,+DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC8lDN,CDp/CE,oGApHA,qBADA,aC8mDF,CDz/CE,8HA9GE,kBC2mDJ,CDzmDI,0IAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCinDN,CDz+CE,mDAlJA,qBADA,aCgoDF,CD7+CE,gEA5IE,kBC4nDJ,CD1nDI,sEAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCioDN,CDrnDI,2OApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBCynDN,CD/nDI,+RAhBA,kBCqpDJ,CDnpDI,uTAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC6pDN,CAn8CE,yDDpOA,yBADA,cAmHA,gBC0jDF,CAx8CE,sED9NE,kBCyqDJ,CDvqDI,4EAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC8qDN,CDpkDE,8HApHA,yBADA,aC8rDF,CDzkDE,wJA9GE,kBC2rDJ,CDzrDI,oKAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCisDN,CDzjDE,gEAlJA,yBADA,aCgtDF,CD7jDE,6EA5IE,kBC4sDJ,CD1sDI,mFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCitDN,CDrsDI,+RApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBCysDN,CD/sDI,mVAhBA,kBCquDJ,CDnuDI,2WAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KC6uDN,CA/gDE,wCACE,oBAihDJ,CA9gDE,0CAEE,oBAAsB,CADtB,mBAihDJ,CA7gDE,uBACE,UA+gDJ,CA1gDE,eAIE,aAAc,CAHd,oBAAqB,CAErB,iBAAkB,CADlB,OA8gDJ,ClCtxDC,UkCoRC,iBADA,2BAugDF,CApgDE,mBD+GA,kBCw5CF,CAvgDE,qBDkHE,mBCw5CJ,CDr5CE,+FA1XE,uBAFF,yBAmYE,eAAgB,CApYlB,sBAmYE,gBCy5CJ,CD/5CE,mJAtXE,kBC2xDJ,CDzxDI,2KAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KCmyDN,CAliDE,aACE,gBAoiDJ,CAjiDE,aACE,gBAmiDJ,CrBnwDI,qFACE,iBqBqwDN,CrBjwDI,+EACE,gBqBmwDN,CrB/vDM,qFAGE,SqBiwDR,CrBvvDM,gCACE,SqByvDR,ClCh1DC,+FaIK,eqB+0DN,ClCn1DC,wHaSK,4BAA6B,CAD7B,yBqB+0DN,ClCv1DC,0OaoBK,2BAA4B,CAD5B,wBqB40DN,ClC/1DC,kHa0BK,4BAA6B,CAD7B,yBqB00DN,CE11DE,wCACE,SF41DJ,CEv1DI,4GACE,iBFy1DN,CEv1DM,kHAOE,yBACA,WAAY,CAJZ,oBAAqB,CAErB,wBAHA,UAFA,iBAAkB,CAClB,SAGA,SF41DR,ClCn3DC,8GoCmCK,2BAA4B,CAD5B,wBFq1DN,ClCv3DC,8GoCwCK,4BAA6B,CAD7B,yBFo1DN,ClC33DC,oIoC8CO,2BAA4B,CAD5B,wBFk1DR,ClC/3DC,oIoCmDO,4BAA6B,CAD7B,yBFi1DR,CEz0DQ,0HACE,UF20DV,CGp3DE,wEACE,kBHs3DJ,CGl3DI,gHAGE,SHo3DN,CGj3DI,yCACE,SHm3DN,CGh5DE,kHACE,eHk5DJ,CG/4DE,4GAEE,2BAA4B,CAD5B,4BHk5DJ,CG94DE,4GACE,wBAAyB,CACzB,yBHg5DJ,CEr1DM,8HACE,iBFu1DR,CEr1DQ,oIAOE,yBACA,WAAY,CAJZ,oBAAqB,CAErB,WAHA,UAFA,iBAAkB,CAClB,SAGA,sBF01DV,CCx6DE,aACE,aD06DJ,ClC56DC,kJmCUO,0BADA,0BDw6DR,ClCj7DC,sKmCgBS,0BADA,0BDu6DV,ClCt7DC,oDmC0BO,iBADA,eDi6DR,ClC17DC,sEmCmCK,aAAc,CADd,gBD65DN,CIv7DI,yHAEE,aCAN,CDGI,2CACE,kBCDN,CDII,iJAKI,aCFR,CvCpBC,iFsC2BK,wBCJN,CvCvBC,2DsC+BK,0BCLN,CDWI,iKAGE,aCTN,CDaE,oGAEE,yBADA,UCVJ,CvCnCC,UESC,oCqCeA,gBAEA,sGrCzBA,qBAAsB,CqCkBtB,sBACA,erCdA,0BACA,mBqCcA,aAAc,CAEd,eAAgB,CANhB,QAAgB,CAQhB,YAAa,CAPb,SAAe,CAIf,eAAgB,CAKhB,6DA2BF,CjD7CE,iCAHE,UAAW,CADX,aiD0DJ,CjDtDE,gBAGE,UiDmDJ,CAhCE,sCAvBA,4BA0DF,CvClEC,0BuCuCG,eAAgB,CAFhB,QAAS,CACT,SAkCJ,CA7BE,mBACE,YA+BJ,CA7BI,wBACE,SA+BN,CA3BE,0CAEE,YA6BJ,CA1BE,2BAGE,sBACA,eAHA,cAIA,mBAHA,gBAAiB,CAIjB,kBA4BJ,CAzBE,uCACE,wGA2BJ,CAvBE,2CAEE,oJAyBJ,CApBE,2BACE,aAsBJ,CAnBE,qDAEE,kBAqBJ,CAlBE,gCACE,WAAe,CACf,mGAoBJ,CAhBE,wBACE,oBAkBJ,CAfE,iBACE,qBAiBJ,CAfI,uBACE,aAiBN,CAdI,wBAME,wBAA6B,CAF7B,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAqBN,CvC9HC,4BuCoHG,qBAaJ,CAXI,kCACE,aAaN,CATE,uBAKE,oBAAqB,CAArB,oBAAqB,CAHrB,aAAc,CADd,eAeJ,CARE,8BACE,mBAUJ,CAPE,2EAEE,eASJ,CANE,0JAGE,wBAQJ,CALE,kFAKI,aAON,CAHE,4DACE,wBAKJ,CAFE,4DAGE,8BAIJ,CADE,yBACE,6BAGJ,CAAE,2GAOE,cAAe,CAHf,8BAA+B,CAD/B,eAAgB,CAGhB,eAAgB,CADhB,SAIJ,CAEI,6KACE,iBAAkB,CAClB,eAEN,CAfE,wJAmBI,cAAe,CAFf,MAAO,CACP,aAIN,CADM,0KACE,cAKR,CA3BE,yTA2BI,oBAQN,CAJE,kCACE,eAMJ,CAHE,iFAEE,0CAKJ,CAFE,uCAOE,cAAe,CAJf,aAAc,CACd,QAAS,CACT,eAHA,iBAAkB,CAMlB,sFAFA,kBAMJ,CAZE,wIAcI,eADA,cAAe,CAEf,2GAKN,CApBE,4JAmBM,iBACA,SAAU,CACV,0EAOR,CA5BE,uFA2BI,sBAKN,CvCjPC,4OuCkPO,cAKR,CADI,6HA9OF,4BAmPF,CAAE,iCACE,YAAa,CACb,SAEJ,CAEI,wBAGE,sBAAuB,CACvB,kBACA,eAAgB,CAJhB,iBAAkB,CAKlB,oBAAqB,CAJrB,YAIN,CAGM,+BAIE,QAAS,CAMT,WAAY,CAFZ,WAAY,CAHZ,MAAO,CAIP,aAAe,CARf,iBAAkB,CAElB,OAAQ,CADR,QAAS,CAKT,UAAW,CADX,UAGR,CAMI,4CAEE,SAAU,CADV,KAHN,CAvBE,4BA+BI,sBACA,iBALN,CAOM,gDACE,uDALR,CvC9RC,kCuCwSK,qBAPN,CAUI,sDAME,sBAJA,iBAAkB,CAElB,UAAW,CADX,OAAQ,CAIR,0BAA2B,CAC3B,wDAHA,UALN,CAaM,6DAKE,6BAA8B,CAC9B,iBAAkB,CAIlB,UAAW,CANX,YAAa,CAFb,iBAAkB,CAKlB,sLAJA,SANR,CAgBM,+BACE,0CAdR,CAiBM,8BACE,0CAfR,CAmBI,sJAEE,aAjBN,CAuBM,kHACE,0CApBR,CAuBM,gHACE,0CApBR,CAwBI,qDACE,YAtBN,CAyBI,+FAEE,0BAxBN,CA0BM,qGACE,2CAxBR,CA2BM,sGACE,yCAzBR,CA8BE,qJAGE,aA5BJ,CA+BE,qBAEE,QAAS,CACT,gCACA,eAAgB,CAHhB,gBA1BJ,CA+BI,mHAII,eAAgB,CADhB,eAAgB,CAEhB,cA9BR,CAgCQ,kgBAIE,aA1BV,CA4BU,kjBACE,+BAnBZ,CADE,2EA8BI,oBAAqB,CAFrB,iBAAkB,CAClB,OAAQ,CAER,qBAvBN,CAyBM,uFAKE,mCAAoC,CAFpC,QAAS,CAIT,UAAW,CAHX,UAHA,iBAAkB,CAClB,WAIA,0DArBR,CAlBE,+DA6CI,SAxBN,CArBE,sCAkDM,qBA1BR,CA4BQ,4CACE,aA1BV,CA6BQ,6CACE,WA3BV,CA+BM,+CACE,aA7BR,CAiCI,2BAEE,UAAW,CAEX,aAAc,CAHd,aAAc,CAEd,QA9BN,CAmCE,iJAKI,iBAlCN,CAoCM,yKAKE,+BADA,QAAS,CAMT,UAAW,CAHX,SAAU,CANV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,uBAAyB,CAEzB,kGA9BR,CAeE,sUAuBI,YAKA,iBAHA,kBADA,eAGA,eAAgB,CADhB,cAAe,CAGf,sBA5BN,CADE,6JAkCI,oBA3BN,CAPE,qNAsCI,iBAzBN,CAbE,8YA2CI,YACA,gBApBN,CAwBE,gHAGI,kBAvBN,CA2BE,iBACE,UAzBJ,CA4BM,yFAEE,SAAU,CADV,mBAAoB,CAEpB,oGAzBR,CAkBE,yEAcI,sBA5BN,CAcE,4GAmBI,kBA7BN,CvC9eC,qGuCmhBO,kBAAmB,CADnB,YAAa,CAEb,oFAhCR,CvCpfC,qJuCwhBS,SAAU,CACV,WAAY,CACZ,eAAgB,CAChB,sBAhCV,CvC3fC,yGuC+hBS,SAhCV,CAsCE,oCACE,UApCJ,CAmCE,gWAYI,MAAO,CACP,0BACA,kBAzCN,CA2BE,gcAiBM,SAtCR,CAqBE,ozBAuBM,eACA,iBAFA,QA/BR,CASE,41BA2BQ,oBAAqB,CACrB,SA1BV,CAFE,qGAmCI,oBA7BN,CAgCI,4CACE,mBA9BN,CA6BI,qHAKI,YA9BR,CAyBI,8CASI,yBA/BR,CAhBE,+DAsDI,eAAgB,CADhB,gBAAiB,CADjB,iBAAkB,CAIlB,sBAAuB,CADvB,kBAhCN,CAqCE,0BACE,QAAS,CACT,SAnCJ,CAiCE,2FAKI,qBAlCN,CAsCE,6IAIE,eApCJ,CAuCE,+MAIM,eACA,iBAvCR,CA4CE,8BAEE,mBAEA,eAAgB,CAChB,eAAgB,CAJhB,SAtCJ,CvCtlBC,qHuCmoBK,YACA,iBACA,0BAA2B,CAC3B,oBAzCN,CvC7lBC,yDuC0oBK,iBA1CN,CA+CE,mDAGE,eAAgB,CADhB,gCAEA,kBA7CJ,CA+CI,+DACE,kCA5CN,CAqCE,uDAWI,gCACA,mBA5CN,CAgCE,mGAgBI,gCACA,kBA5CN,CA8CQ,gUAEE,oCA1CV,CvC1nBC,6BuC8qBG,mBAjDJ,CvC7nBC,gFuCsrBG,UArDJ,CC/nBE,yOAMI,aDgoBN,CEnoBE,sCAJA,4BF0oBF,CEhoBI,iGAVF,4BF8oBF,CE9nBE,2FAIE,mBADA,yBFioBJ,CEpoBE,2OAMI,WAAa,CACb,kBFmoBN,CEjoBM,6fAEE,eFuoBR,CEloBE,sCACE,sBFooBJ,CEjoBE,6CACE,kBFmoBJ,CEhoBE,mCACE,eFkoBJ,CE/nBE,uGAKE,qBACA,eAAgB,CAHhB,YAAa,CACb,eAFA,KFqoBJ,CE9nBE,wDACE,wBFgoBJ,CE7nBE,2DACE,QF+nBJ,CE5nBE,6IAIE,yBF8nBJ,CE3nBE,6IAIE,cF6nBJ,CE1nBE,yMAME,cAAe,CAFf,MAAO,CACP,aF6nBJ,CE1nBI,iOACE,cF+nBN,CE3nBE,qGAEE,UF6nBJ,CE1nBE,8OAOE,wBAA6B,CAD7B,UF6nBJ,CEnoBE,khBAWI,UFsoBN,CEjpBE,8gBAeM,SF0oBR,CExoBQ,0mCAEE,eFopBV,CE9oBE,oCACE,wBFgpBJ,CE7oBE,+EACE,wBF+oBJ,CE5oBE,uCAEE,cAAe,CADf,UF+oBJ,CE5oBI,6CACE,cF8oBN,CEnpBE,0ZAoBM,UF6oBR,CExoBE,8GAEE,wBF0oBJ,CEpoBI,qQAGE,oCACA,UFyoBN,CE/oBE,iIASI,mCF0oBN,CExoBQ,4XAEE,wCF4oBV,CGjzBE,uBACE,aAAc,CACd,gBHmzBJ,CvC3zBC,yC0CaK,gBHizBN,CvC9zBC,8D0CqBK,8BADA,iBH+yBN,CvCn0BC,0F0C4BK,gBH2yBN,CvCv0BC,uY0CsCO,0BHyyBR,CvC/0BC,gM0CiDO,iBADA,iBHsyBR,CvCt1BC,oS0CyDS,aHmyBV,CvC51BC,6C0CiEK,uBH8xBN,CvC/1BC,6W0C2ES,SAAU,CADV,UH4xBV,CvCt2BC,2S0CsFW,yCHqxBZ,CvC32BC,wS0C4FW,uCHoxBZ,CvCh3BC,6N0C2GS,MAAO,CADP,UH6wBV,CvCv3BC,8a0CmHO,gBH8wBR,CvCj4BC,sD0C4HO,iBAAkB,CADlB,eH0wBR,CvCr4BC,wD0CqIO,iBAAkB,CADlB,kBHqwBR,CvCz4BC,kF0C6IO,yBH+vBR,CvC54BC,uH0CsJO,qBH0vBR,CGrvBE,8BACE,QHuvBJ,CvCn5BC,sE0CgKO,cAAe,CADf,kBHwvBR,CvCv5BC,aESC,oCARA,qBAAsB,CAGtB,sByCeA,aAAc,CzCdd,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CyCoBT,gBzCnBA,SAAU,CyCcV,iBAAkB,CAMlB,kBAAmB,CAHnB,wCAAkB,CAClB,eAAgB,CAHhB,YAGF,CAIE,qBACE,iBAFJ,CAKE,oBACE,YAHJ,CAME,0FAGE,2BAJJ,CAOE,gGAGE,yBALJ,CAQE,mGAGE,wBANJ,CASE,6FAGE,0BAPJ,CAWE,mBAOE,oBAAqB,CACrB,iCACA,kBACA,sGANA,WAFA,eAAgB,CADhB,cAAe,CAEf,eAAgB,CAEhB,eAAgB,CAChB,oBALJ,CAaE,mBAOE,sBAAuB,CAJvB,aAAc,CAEd,YACA,eAAgB,CAEhB,mBAAoB,CAPpB,iBAAkB,CAGlB,WAFA,SALJ,CAaI,2BAEE,+FtB5DJ,sBsBqEI,QAAS,CAMT,UAAW,CAJX,aAAc,CAEd,oBAHA,MAAO,CAIP,WAAY,CAEZ,mBAAoB,CtB3ExB,mBAAoB,CsBiEhB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,kBAXN,CtB1DE,kCAME,8CAGA,gCADA,2BAA4B,CAG5B,yDAAyB,CACzB,ouBAFA,UAAW,CALX,oBAFA,mBAFA,iBAAkB,CAClB,kBAEA,kBsBmEJ,CAOE,mJAGE,QAAS,CACT,0BALJ,CAOI,2KACE,uCACA,yCAHN,CAOE,8CACE,QAAS,CACT,2CALJ,CAQE,kDACE,SANJ,CASE,mDACE,UAPJ,CAUE,yJAGE,MAAO,CACP,2BARJ,CAUI,iLACE,wCACA,yCANN,CAUE,gDACE,OAAQ,CACR,4CARJ,CAWE,mDACE,OATJ,CAYE,sDACE,UAVJ,CAaE,sJAGE,OAAQ,CACR,0BAXJ,CAaI,8KACE,wCACA,0CATN,CAaE,+CACE,OAAQ,CACR,2CAXJ,CAcE,kDACE,OAZJ,CAeE,qDACE,UAbJ,CAgBE,4JAGE,KAAM,CACN,2BAdJ,CAgBI,oLACE,yCACA,yCAZN,CAgBE,iDACE,QAAS,CACT,4CAdJ,CAiBE,qDACE,SAfJ,CAkBE,sDACE,UAhBJ,C3C1LC,qC2CoNK,wBAvBN,CA0BM,oDACE,kBAxBR,C3ChMC,wC2CoNK,wBAjBN,CAoBM,uDACE,kBAlBR,C3CtMC,oC2CoNK,wBAXN,CAcM,mDACE,kBAZR,C3C5MC,wC2CoNK,wBALN,CAQM,uDACE,kBANR,C3ClNC,uC2CoNK,wBACN,CAEM,sDACE,kBAAR,C3CxNC,uC2CoNK,wBAON,CAJM,sDACE,kBAMR,C3C9NC,qC2CoNK,wBAaN,CAVM,oDACE,kBAYR,C3CpOC,qC2CoNK,wBAmBN,CAhBM,oDACE,kBAkBR,C3C1OC,qC2CoNK,wBAyBN,CAtBM,oDACE,kBAwBR,C3ChPC,sC2CoNK,wBA+BN,CA5BM,qDACE,kBA8BR,C3CtPC,qC2CoNK,wBAqCN,CAlCM,oDACE,kBAoCR,C3C5PC,yC2CoNK,wBA2CN,CAxCM,wDACE,kBA0CR,C3ClQC,uC2CoNK,wBAiDN,CA9CM,sDACE,kBAgDR,CCpQE,iBACE,aDsQJ,C3C3QC,oC4CUK,gBDoQN,C3C9QC,W6COC,mBADF,CAGE,oBACE,qBADJ,CAKI,wBACE,kBAHN,CAMI,uBACE,sBAJN,CAOI,qBACE,oBALN,CAQI,0BACE,oBANN,CAYE,sBACE,YAVJ,C7CxBC,mB8CMC,mBDqBF,CCnBE,yBACE,YAAa,CACb,UDqBJ,CClBE,4BACE,qBDoBJ,CExBE,sCACE,aF6BJ,C7CxCC,qBESC,oC8CDA,gB9CPA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,S8CYF,CAJE,4BACE,YAAa,CACb,wBAAyB,CACzB,cAMJ,CATE,6DAMI,cAMN,CAZE,8DAWI,gBADA,cAMN,CAhBE,6DAeI,eAIN,ChD9BC,uCgD+BG,gBACA,QAAS,CAET,eAAgB,CADhB,4BAGJ,ChDpCC,6HgDsCK,UAEN,ChDxCC,wDgD0CK,aACN,ChD3CC,2DgD8CK,UAAN,CAKE,0BACE,iBAHJ,CAEE,sDAKI,iBADA,iBAFN,CAFE,4CASI,yBAJN,CALE,8CAaI,YALN,CARE,iDAgBM,WAAY,CAEZ,gBAAiB,CADjB,SAJR,CAbE,kDAuBI,mBAPN,CAYE,4CAKI,gBACA,QAAS,CAJT,aAAc,CAEd,gBAAiB,CADjB,UARN,CAKE,gIAWQ,SAZV,CACE,gEAeQ,WAAY,CAEZ,gBAAiB,CADjB,oBAZV,CAmBQ,oEACE,YAjBV,CAoBQ,6FAEI,kBAnBZ,CAVE,oGAkCQ,YArBV,CAwBQ,wZAII,kBAtBZ,CAkBQ,whBAOM,aAnBd,CAzBE,sEAyDM,QAAS,CAET,eAAgB,CADhB,6BANA,aAAc,CAEd,WAAY,CACZ,aACA,kBAIA,yBAA2B,CAP3B,UAjBR,CA0BQ,4EACE,gBAAiB,CACjB,oBAxBV,CA2BQ,8EAKE,sBAFA,WAAY,CAGZ,mBAFA,eAAgB,CAHhB,eAAgB,CAMhB,eAAgB,CALhB,UApBV,CA4BQ,4EACE,oBA1BV,CAyBQ,4GAII,qBA1BZ,CAkCA,yCAEI,4BACE,aAjCJ,CAgCE,6DAII,SAjCN,CA6BE,8DAQI,qBAlCN,CA0BE,6DAcI,aAAc,CADd,eADA,UAjCN,CAqBE,mEAkBM,iBAAkB,CADlB,SAlCR,CACF,CCzJE,yBACE,aD2JJ,ChD7JC,6KiDgBO,aAAc,CADd,gBDsJR,ChDrKC,oEiDyBO,eD+IR,ChDxKC,wFiD+BW,oBD4IZ,ChD3KC,sGiDuCW,gBDuIZ,CElKI,8FAEE,sBACA,oBCPN,CDUI,sFtCIA,qBAUF,uBAPE,wCAQF,SuClBF,ChEfC,2D+DwBK,kBCNN,CDNI,kGAEE,sBACA,oBCQN,CDLI,0FtCIA,qBAUF,uBAPE,yCAQF,SuCHF,ChE9BC,6D+DwBK,kBCSN,ChEjCC,YeSC,oCiDaA,kBAAmB,CACnB,gBACA,yBACA,kBjDxBA,qBAAsB,CAGtB,sBiDiBA,mBAAoB,CjDhBpB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CiDUT,iBAQA,iBAAkB,CAMlB,oCA0BF,CAnBE,sCvCKA,qBACA,sBuCwBF,CA9BE,oBvCRE,yCAQF,SuC8BF,CA1BE,gCACE,mBACA,qBACA,kBA4BJ,CAzBE,mDACE,qBA2BJ,CAxBE,kCACE,kCAAwC,CACxC,kCAAoC,CACpC,yBA0BJ,CAtBE,kBAGE,kBAAmB,CADnB,mBAAoB,CADpB,iBAAkB,CAGlB,UAwBJ,CA5BE,wBvCWA,sBACA,qBAAsB,CuCGlB,sBAAuB,CAEvB,QAAS,CvCHb,kBANA,sBAJA,oBAAqB,CuCIjB,SAAU,CvCCd,euCII,WAAY,CvCHhB,mBAJA,WAAY,CuCMR,aAAc,CAEd,SAAU,CvCXd,iBAAkB,CAYlB,kBAAoB,CAVpB,UuC4CF,CCnGE,0CACE,cACA,sCDqGJ,CCvGE,8CACE,cACA,qCDqGJ,CCvGE,qCACE,cACA,oFDqGJ,CClGE,+CACE,sBDoGJ,CCrGE,8CACE,sBDoGJ,CCrGE,0CACE,sBDoGJ,CvCtCE,8BAlCA,qBACA,sBuC2EF,CvCtCE,8DAtDE,qBAUF,uBAPE,yCAQF,SuCwFF,CvCxCE,iCArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,SuCiFF,CvC/EE,uCAZA,qBACA,sBuC8FF,CvChDE,kCAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,SuC6FF,CvC3FE,wCAZA,qBACA,sBuC0GF,CvCvDI,yPAME,wBAA6B,CAC7B,WAAY,CACZ,euCyDN,CvCpDE,gCAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qBuCuDJ,CvClDE,2BAzGA,eADA,kBuCgKF,CvClDE,2BAzGA,auC8JF,CAjGM,8BACE,eAmGR,CAhGM,kCACE,sBAkGR,CA9FI,0CAEI,SA+FR,CA3FI,oCAEI,aA4FR,CAtFE,kBApFA,kBA6KF,CAzFE,0CAII,cAwFN,CApFE,kBA5FA,aAmLF,CAnFE,mBAGE,iBAAkB,CAElB,sBAJA,YAAa,CACb,SAAU,CAIV,aAAc,CAFd,gBAGA,mBAqFJ,CA5FE,qBAUI,kBAqFN,CAnFM,qCACE,gBAqFR,CAhFE,kBAME,gBAFA,sBAIA,cAAe,CAHf,aAAc,CAId,SAAU,CARV,iBAAkB,CAElB,OAAQ,CADR,OAAQ,CAKR,0BAA2B,CAG3B,gCAkFJ,CA5FE,oBAaI,kBAkFN,CA/EI,wBACE,qBAiFN,CA7EE,sBAKE,sBAGA,cAAe,CANf,oBAAqB,CAIrB,eAFA,YAHA,iBAAkB,CAMlB,kBAAmB,CAJnB,SAoFJ,ChE1OC,0CgE8JK,qBA+EN,ChE7OC,uEgEmKO,kBA6ER,CAvEE,kBAEE,mBAAoB,CADpB,iBA0EJ,CA3EE,oCAMI,UAwEN,CArEI,0CAEI,SAsER,CAjFE,yCAoBI,mBAHA,YACA,UAAW,CACX,iBAEA,SAAU,CAEV,mBAAoB,CADpB,2BAoEN,ChEnQC,4DgEqMO,SAiER,CA7DI,4BACE,kBAAmB,CAEnB,aAAc,CADd,aAgEN,ChE3QC,qDgEiNO,SA6DR,ChE9QC,0DgEqNO,eA4DR,CAtDE,qBjDlNA,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BiD2NE,YAAa,CjD1Nf,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CiD0NR,iBAAkB,CAGlB,WAAY,CAEZ,YA8DJ,CA5DI,4BACE,YA8DN,CA3DI,kEAGI,aAAc,CADd,iBAEA,yCA4DR,CAxDI,+DAEI,oBACA,aAAc,CACd,uBAyDR,ChE7SC,sagE4PK,6BAuDN,ChEnTC,kbgEmQK,2BAsDN,ChEzTC,iNgEwQK,8BAqDN,ChE7TC,uNgE6QK,4BAoDN,CAhDE,2BACE,sBAkDJ,CAhDI,kCACE,YAkDN,CA7CE,8DACE,eA+CJ,CA3CE,mBAIE,iBAEA,eAAgB,CALhB,eAAgB,CAEhB,eAAgB,CADhB,iBAGA,eA8CJ,CAnDE,sBASI,oBA6CN,CAtDE,oDAeI,mBACA,qBAFA,cAGA,cA2CN,CA5DE,kCAqBI,WAAY,CACZ,eA0CN,CAtCE,0BACE,YAwCJ,CArCE,wB9BrSA,sB8B2SE,2CAFA,oBACA,mB9BzSF,mBAAoB,C8BqSlB,iBAAkB,CAMlB,6BAJA,mBADA,SA8CJ,C9BlVE,+BAME,gBAGA,gCADA,2BAA4B,CAG5B,yDAAyB,CACzB,ouBAFA,UAAW,CALX,oBAFA,mBAFA,iBAAkB,CAClB,kBAEA,kB8B2VJ,CAlDE,4BAGE,gBACA,kBACA,sGAJA,eAAgB,CAKhB,sBAJA,kBAwDJ,CA1DE,+CAWI,aAAc,CAFd,mBAAoB,CACpB,gBAqDN,CA/DE,8CAgBI,sBAAuB,CAEvB,eAAgB,CADhB,qBAFA,kBAsDN,CArEE,sHAsBM,iBAmDR,CAhDM,sDACE,oBAkDR,CtCrVI,8FACE,iBsCuVN,CtCnVI,wFACE,gBsCqVN,ChE1ZC,0I0BkFS,SsCgVV,CtC5UM,mCACE,SsC8UR,ChEraC,2G0BIK,esCoaN,ChExaC,uI0BSK,4BAA6B,CAD7B,yBsCoaN,ChE5aC,wQ0BoBK,2BAA4B,CAD5B,wBsCiaN,ChEpbC,iI0B0BK,4BAA6B,CAD7B,yBsC+ZN,CEjbE,kBAIE,gBACA,yBACA,kBALA,mBAAoB,CACpB,qBAAsB,CAKtB,YAAa,CAJb,iBFubJ,CEjbI,0BACE,oBFmbN,CE5aE,uKAOE,YAAa,CACb,qBAAsB,CACtB,WF8aJ,CE1aE,mBAIE,gCADA,sBAFA,YAAa,CACb,aF8aJ,CEhbE,qBAOI,SF4aN,CEnbE,0BAcI,sBAAuB,CACvB,QAAS,CAHT,sBAIA,cAAe,CAHf,iBAFA,SAAU,CAMV,oBF2aN,CE5bE,0BAsBI,eADA,eF2aN,CExaM,gCACE,qBF0aR,CEtaI,wBACE,SAAU,CACV,eAAgB,CAChB,gBFwaN,CE3aI,+BAMI,aAAc,CACd,mBFwaR,CEtaQ,iDACE,eFwaV,CEraQ,qCACE,aFuaV,CEhaE,oGAKE,oBAAqB,CAErB,WAHA,iBAAkB,CAElB,SFmaJ,CEhaI,gIAQE,cAA6B,CAA7B,4BAA6B,CAC7B,UAAW,CALX,oBAAqB,CAErB,WAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAGN,SFyaN,CE/ZI,oEAQE,cAA6B,CAA7B,4BAA6B,CAC7B,UAAW,CALX,oBAAqB,CAErB,WAHA,SAFA,iBAAkB,CAClB,QAGA,SFsaN,CE9ZE,kDAEE,wBFgaJ,CE7ZE,kDAEE,wBF+ZJ,CE3ZE,oBAGE,wBAAyB,CADzB,kBAAmB,CADnB,UF+ZJ,CEhaE,8CASI,eAAgB,CADhB,cAAe,CADf,iBF+ZN,CEtaE,uBAcI,sBADA,WAAY,CAEZ,gBF4ZN,CErME,iBAEE,sBACA,cAAe,CAFf,aFyMJ,CEpMI,yBACE,qBFsMN,CE/ZI,wBASE,UAAW,CAHX,YAFA,MAAO,CAHP,iBAAkB,CAElB,OAAQ,CADR,OAAQ,CAKR,0BAA2B,CAC3B,mBAHA,SFqaN,CEjZI,ySAGI,kBF4ZR,CEtZM,6EAOE,yBACA,kBAJA,QAAS,CAKT,UAAW,CAJX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,SF2ZR,CEnZI,kDACE,iBFqZN,CEnZM,yDACE,kBFqZR,ChEpmBC,+NkEwNK,mBADA,UFmZN,CE7YM,sMACE,kBFgZR,CE5YI,4DACE,QF8YN,CE3YI,0DACE,SF6YN,CElYM,w5BAME,iCADA,8BAIA,UAAW,CALX,WAAY,CAHZ,iBAAkB,CAClB,OAAQ,CAKR,0BAA2B,CAC3B,mBALA,SFgZR,CErYI,mHAIE,QAAS,CADT,OFwYN,ChE3oBC,6xBkEmRK,kBFiYN,ChEppBC,qJkEwRK,yBF+XN,ChEvpBC,mJkE6RK,yBF6XN,CEvXM,8QAKE,mBAFA,QAAS,CAIT,UAAW,CANX,iBAAkB,CAClB,KAAM,CAIN,mBAFA,UF6XR,ChEpqBC,wIkEkTK,MAAO,CADP,UFuXN,ChExqBC,sIkEuTK,UADA,OFsXN,CEjXI,+DACE,SFmXN,CEhXI,6DACE,QFkXN,CE9WI,qeAQE,8BAFA,+BACA,2BAFA,QFmXN,CE5WI,ydAQE,+BAFA,gCACA,4BAFA,SFiXN,CE1WI,0BACE,sBACA,mBF4WN,CE9WI,iDAKI,sBF4WR,CEzWM,iCACE,0BF2WR,ChEhtBC,8EkEyWK,4BF0WN,CEzVE,kLAKI,YF0VN,CE/VE,8LASI,aF4VN,CExVE,8CAEI,WFyVN,CEpVE,mBAKE,oCAFA,iBADA,cAAe,CAEf,iBAAkB,CAHlB,wCF0VJ,ChEzuBC,qCkEsZK,4BFsVN,CEnVI,yBAEE,iBADA,eAEA,eFqVN,CEnVM,0CACE,+BFqVR,CEhVE,gBACE,eFkVJ,CE/UE,sBACE,aFiVJ,CE/UI,4BACE,aFiVN,CE9UI,6BACE,aFgVN,CE7UI,oDACE,sBACA,kBF+UN,CEtUE,gDAEI,aFuUN,CEzUE,iDAMI,YFsUN,CEjUE,4HAQI,aF8TN,CEtUE,8IAYI,UF+TN,CE3UE,oMAiBI,+BACA,0BAFA,SFkUN,CElVE,ocA6BI,0BADA,gCADA,UFqUN,ChEzyBC,gQkE0eO,+BACA,0BAFA,SFuUR,CE/TE,wCAEI,gBFgUN,ChEnzBC,4MkE2fO,gCF6TR,CEzTI,8BAEI,yBF0TR,CEvTM,oCACE,kBFyTR,CEtTM,oFAEE,kBFwTR,ChEl0BC,8HkE6gBS,wBFyTV,ChEt0BC,4LkEihBS,iBFyTV,CElUM,kIAaI,UFyTV,CElTE,wCAEI,gBFmTN,CErTE,2CAMI,WFkTN,CExTE,8CASM,UFkTR,CE5SE,2BACE,YF8SJ,CE/SE,kDAII,6BF8SN,CElTE,oGASI,sBF6SN,CEzSI,kHAGI,UF0SR,CExSQ,gIACE,SF2SV,CEpSE,uBAEE,cAAe,CADf,UFuSJ,CExSE,2CAKI,YAAa,CACb,SAAU,CACV,YFsSN,CEnSI,8BACE,aAAc,CAMd,eAAgB,CAJhB,QAAS,CAET,iBAAkB,CADlB,SAAU,CAEV,eAAgB,CAEhB,0BANA,UF2SN,CEnSM,oCAGE,UAAW,CAFX,aAAc,CACd,YFsSR,ChEj4BC,+DkE8lBS,YFsSV,CEjSM,gDACE,6BFmSR,CEhSM,qCACE,+BFkSR,CE/RM,oCACE,eFiSR,CE9TI,iCAiCI,QAAS,CACT,SFgSR,ChEj5BC,8FkE4nBW,eAAgB,CAFhB,sBAGA,cAAe,CARf,aAAc,CAEd,YAIA,iBAHA,QAAS,CACT,mBAKA,0BARA,UFuSZ,CE7RY,oGACE,kBF+Rd,CE3RU,uGAEI,kBF4Rd,CExRU,uGAGI,sBAAuB,CADvB,sBAEA,kBFyRd,CE5QA,wTAKM,cF8QN,CG96BE,gBACE,aHg7BJ,ChEl7BC,mCmEQK,aAAc,CADd,gBH+6BN,ChEt7BC,kCmEeK,MAAO,CADP,UH46BN,ChE17BC,sCmEqBK,wBHw6BN,ChE77BC,uEmE+BW,aAAc,CADd,gBHm6BZ,ChEj8BC,mDmE4CO,UADA,UH05BR,ChEr8BC,wDmEoDO,aAAc,CADd,iBHs5BR,ChEz8BC,yEmE2DS,gBHi5BV,ChE58BC,4CmEoEK,gBH24BN,ChE/8BC,2DmEyEO,UAAW,CAEX,aAAc,CADd,gBH04BR,CGl4BI,sBACE,aHo4BN,ChEv9BC,8FmE0FK,wBHi4BN,ChE39BC,8FmEiGK,wBH83BN,CG13BE,wCAaI,kBAJA,oBAAqB,CAErB,YACA,iBAFA,eAHA,iBAAkB,CAOlB,qCANA,SH43BN,ChEz+BC,kFmEyHO,MAAO,CADP,SHq3BR,ChE7+BC,gFmEgIO,QAAS,CADT,OHk3BR,ChEj/BC,4GmEuIO,QAAS,CADT,SH+2BR,ChEr/BC,8JmEgJO,UADA,OH02BR,ChEz/BC,4JmEuJO,MAAO,CADP,UHu2BR,ChE7/BC,qFmE+JO,QAAS,CADT,OHm2BR,ChEjgCC,mFmEsKO,MAAO,CADP,SHg2BR,ChErgCC,2KmE6KO,yBH21BR,ChExgCC,yKmEoLO,yBHu1BR,ChE3gCC,8gBmEiMO,gBAAiB,CACjB,0BAFA,gCADA,MAAO,CADP,SHu1BR,ChErhCC,igBmE+MO,+BACA,0BAFA,iBAAkB,CADlB,QAAS,CADT,OHm1BR,ChE/hCC,w/BmE+NO,+BACA,kBAFA,gCADA,QAAS,CADT,SHg1BR,ChE5iCC,kDmEyOO,aAAc,CACd,gBHs0BR,ChEhjCC,6CmEkPK,aHi0BN,CnDnjCC,SESC,oCqDMA,mBACA,yBACA,kBrDhBA,qBAAsB,CqDOtB,oBAAqB,CrDHrB,eqDOA,erDNA,0BqDGA,WAAY,CrDFZ,mBqDMA,iBrDLA,eAAgB,CqDEhB,gBAAiB,CAQjB,SAAU,CAPV,aAAc,CAQd,kBAAoB,CALpB,kBAYF,CALE,qCrDjBA,qBqD2BF,CvD/BC,kCuD4BG,oBAAqB,CACrB,aAAc,CACd,aAMJ,CAHE,oBAEE,sBAEA,cAAe,CADf,cAAe,CAFf,eAAgB,CAIhB,kBAKJ,CAHI,0BACE,qBAKN,CADE,mBACE,wBAGJ,CvDjDC,6IuDoDK,UAIN,CAAE,mBACE,wBAA6B,CAC7B,wBAAyB,CACzB,cAEJ,CAAI,yDACE,aAEN,CACI,qDAEE,UACN,CAEI,2BACE,wBAAN,CAGI,0BACE,wBADN,CAKE,gBACE,YAHJ,CvD7EC,cuD6FK,mBACA,qBAFA,aAVN,CvDlFC,sBuDkGK,mBACA,qBAFA,UAVN,CvDvFC,iBuD6FK,mBACA,qBAFA,aAAN,CvD5FC,yBuDkGK,mBACA,qBAFA,UAAN,CvDjGC,auD6FK,mBACA,qBAFA,aAUN,CvDtGC,qBuDkGK,mBACA,qBAFA,UAUN,CvD3GC,iBuD6FK,mBACA,qBAFA,aAoBN,CvDhHC,yBuDkGK,mBACA,qBAFA,UAoBN,CvDrHC,gBuD6FK,mBACA,qBAFA,aA8BN,CvD1HC,wBuDkGK,mBACA,qBAFA,UA8BN,CvD/HC,gBuD6FK,mBACA,qBAFA,aAwCN,CvDpIC,wBuDkGK,mBACA,qBAFA,UAwCN,CvDzIC,cuD6FK,mBACA,qBAFA,aAkDN,CvD9IC,sBuDkGK,mBACA,qBAFA,UAkDN,CvDnJC,cuD6FK,mBACA,qBAFA,aA4DN,CvDxJC,sBuDkGK,mBACA,qBAFA,UA4DN,CvD7JC,cuD6FK,mBACA,qBAFA,aAsEN,CvDlKC,sBuDkGK,mBACA,qBAFA,UAsEN,CvDvKC,euD6FK,mBACA,qBAFA,aAgFN,CvD5KC,uBuDkGK,mBACA,qBAFA,UAgFN,CvDjLC,cuD6FK,mBACA,qBAFA,aA0FN,CvDtLC,sBuDkGK,mBACA,qBAFA,UA0FN,CvD3LC,kBuD6FK,mBACA,qBAFA,aAoGN,CvDhMC,0BuDkGK,mBACA,qBAFA,UAoGN,CvDrMC,gBuD6FK,mBACA,qBAFA,aA8GN,CvD1MC,wBuDkGK,mBACA,qBAFA,UA8GN,CvD/MC,iBuD6GK,mBACA,qBAFA,aAwGN,CvDpNC,oBuD6GK,mBACA,qBAFA,aA6GN,CvDzNC,euD6GK,mBACA,qBAFA,aAkHN,CvD9NC,iBuD6GK,mBACA,qBAFA,aAuHN,CvDnOC,8CuD4HG,eA2GJ,CCjOE,qBAGE,aAAc,CADd,eAAgB,CADhB,cAAe,CAGf,gBDmOJ,CvD7OC,iCwDgBK,aAAc,CADd,gBDkON,CvDjPC,sEwDwBK,aAAc,CADd,gBD+NN,CpEtPC,iBeSC,oCARA,qBAAsB,CAGtB,sBuDSA,oBAAqB,CvDRrB,euDSA,WAAY,CvDRZ,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SuDaF,CtEhBC,kCsEiBG,SAEJ,CtEnBC,wEsEqBG,gBACJ,CtEtBC,mBeSC,oCuDqBA,oBAAqB,CvD7BrB,qBAAsB,CAGtB,sBuD4BA,cAAe,CAHf,mBAAoB,CvDxBpB,eACA,0BACA,mBACA,eAAgB,CuDuBhB,iBvD5BA,SAAU,CuDyBV,iBAUF,CAJE,4BACE,kBAMJ,CAHE,yBAIE,aAAc,CAHd,oBAAqB,CAErB,eAAgB,CADhB,OAOJ,CAFE,oEAGI,WAAY,CADZ,UAIN,CtEnDC,WeSC,oCARA,qBAAsB,CAGtB,sBuDwDA,cAAe,CAFf,oBAAqB,CvDrDrB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CuDyDT,YAAa,CvDxDb,SAAU,CuDqDV,iBAAkB,CAClB,QAUF,CtEnEC,8GsEiEG,oBAOJ,CtExEC,wCsEqEG,yCAMJ,CAHE,yBASE,yCAA2C,CAC3C,wBAAyB,CAJzB,yBACA,iBAAkB,CAIlB,UAAW,CANX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAMN,iBAAkB,CAJlB,UAYJ,CtExFC,iEsEwFG,kBAIJ,CADE,iBA0BE,sBAGA,yBACA,iBAAkB,CAPlB,aAAc,CAEd,YAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAUN,mBAPA,UATJ,CAdI,uBASE,yBAEA,aAAc,CACd,mBAFA,YAAa,CAMb,WAAY,CAZZ,aAAc,CAEd,YAHA,QAAS,CAKT,iBADA,gBAOA,SAAU,CAbV,iBAAkB,CAClB,OAAQ,CAWR,kBAAmB,CAEnB,iDAVA,UA2BN,CACE,iBAIE,QAAS,CAGT,cAAe,CAFf,MAAO,CAGP,SAAU,CAPV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,SAGJ,CAEE,+CAEI,oBADN,CtEzIC,oCsEkJG,oBANJ,CAQI,0CAEE,SAAU,CADV,oBAEA,gDANN,CtEjJC,oBsE6JC,kBATF,CtEpJC,qCsEgKG,yBACA,kBATJ,CAWI,2CACE,+BATN,CtE3JC,qCsEyKG,kBAXJ,CAcE,yBACE,sBACA,kBAZJ,CtElKC,iBsEoLC,gBAAiB,CADjB,iBAbF,CtEtKC,0BsEgMC,gBAKA,oBAAoB,CAApB,kBAAoB,CAApB,6BAAoB,CARpB,sBASA,cAAe,CAbf,oBAAqB,CAKrB,eAJA,YAKA,iBAJA,QAAS,CACT,eAJA,iBAAkB,CAelB,mEAjBF,CtEtLC,4BsE0MG,qBAjBJ,CtEzLC,4CsEmNG,WAAY,CAHZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAGN,UAAW,CADX,UAhBJ,CtEjMC,iDsEwNG,eADA,YAEA,gBAnBJ,CtEtMC,iDsE6NG,YAEA,iBADA,aAnBJ,CAwBI,mDASE,yBAJA,kBAAuB,CAMvB,UAAW,CAPX,aAAc,CAGd,WAAY,CAJZ,SAAU,CAKV,cAPA,iBAAkB,CAClB,SAQA,+BAAiC,CAJjC,SAjBN,CA0BE,sCACE,8BACA,yBAxBJ,CA2BE,qCACE,yBAzBJ,CA4BE,iDACE,iBA1BJ,CA6BE,gCAEE,cADA,iBA1BJ,CA8BE,uCACE,yCA5BJ,CtEzOC,sIsE4QG,QAAS,CACT,SAAU,CACV,mBAAoB,CAHpB,OA1BJ,CAgCE,0EAGE,gBACA,qBAFA,cADA,SA3BJ,CAgCI,iFACE,wBA9BN,CAiCI,sFACE,oBA/BN,CAkCI,gFAEE,qBADA,aA/BN,CAkCM,uFACE,wBAhCR,CAoCI,iFAEE,qBADA,aAjCN,CAoCM,wFACE,wBAlCR,CAsCI,uFACE,yCApCN,CtE9QC,iGsEwTG,mBACA,qBAFA,UApCJ,CAwCI,uGAEE,mBACA,qBAFA,UApCN,CAyCI,wGAEE,mBACA,qBAFA,UArCN,CA0CI,8GACE,yCAxCN,CA4CE,mCAIE,kBA1CJ,CA4CI,2HAJA,yBACA,qBAFA,qBAjCJ,CA6CI,+CACE,yBA3CN,CA+CE,oEAEE,yBACA,qBACA,eAAgB,CAHhB,qBA1CJ,CAiDA,0BACE,GAEE,UAAY,CADZ,kBA9CF,CAkDA,GAEE,SAAU,CADV,oBA/CF,CACF,CCvTE,qCACE,aDyTJ,CCnTE,yCAGE,aAAc,CADd,gBADA,cDuTJ,CChTE,uDAEE,sBADA,oBDmTJ,CtE3UC,yGuEgCO,MAAO,CADP,UDgTR,CtE/UC,4FuEwCK,0BADA,8BD4SN,CtEnVC,0HuE2CK,0BD2SN,CtEtVC,2FuEiDK,yBDwSN,CtEzVC,qGuEwDO,0BDoSR,CzD5VC,UESC,oCyDKA,gBACA,kBzDdA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CyDUV,iBAIF,CAAE,cACE,aAEJ,CACE,oBACE,cAAe,CACf,0CACJ,CACI,0BACE,yBACA,oGACN,CAGE,mBACE,wBADJ,CAIE,eAOE,uBACA,gCACA,0BALA,sBAEA,eADA,eAAgB,CAHhB,kBAAmB,CADnB,gBAEA,cAIJ,CrEjCE,2CAHE,UAAW,CADX,aqE8CJ,CrE1CE,qBAGE,UqEuCJ,CAJI,uBAEE,kBAAmB,CADnB,YAON,CAHI,qBACE,oBAAqB,CACrB,SAEA,eAAgB,CADhB,eAGA,sBAAuB,CADvB,kBAMN,CAXI,uFAUI,MAAO,CAEP,eAAgB,CADhB,YAMR,CAlCE,6BAkCI,UAAW,CAEX,sBAEA,eADA,eAAmB,CAFnB,mBAMN,CADM,iCACE,+BAGR,CAEE,gBAIE,sBAEA,eADA,eAAmB,CAHnB,gBAAiB,CACjB,cAEJ,C3DtFC,8B2D2FK,aAAc,CADd,iBAAN,CAKE,eACE,YAHJ,CrEpFE,2CAHE,UAAW,CADX,aqEiGJ,CrE7FE,qBAGE,UqE0FJ,CAFE,sCACE,YAAa,CACb,cAIJ,CADE,6DACE,oBAAqB,CACrB,SAGJ,CAAE,eAGE,QAAS,CACT,eAAgB,CAChB,mHAHA,aAMA,kBAAoB,CAPpB,YAOJ,CAGM,+BAGE,qGAFA,iBAAkB,CAClB,SAAR,CAME,2DACE,gBACA,gBAJJ,CAOE,sDACE,gBALJ,CAQE,mCAGE,gBAAiB,CADjB,iBAAkB,CADlB,eAJJ,CASE,kBAEI,aAAc,CACd,UARN,CAKE,oBAOI,yBATN,CAaE,kBAKE,gBACA,6BALA,YAAa,CAGb,eAAgB,CAFhB,QAAS,CACT,SARJ,CrE7IE,iDAHE,UAAW,CADX,aqE0JJ,CrEtJE,wBAGE,UqEmJJ,CAKI,qBAEE,sBADA,cAEA,iBAHN,CAAI,0BAWI,cAAe,CAJf,aAAc,CAEd,eACA,mBAFA,cAAe,CAFf,iBAER,CAKQ,gCACE,cACA,oBAHV,CAZI,6EAsBM,sBAFA,oBAAqB,CAGrB,gBAAiB,CACjB,oBAAsB,CAHtB,UADV,CAMU,yFACE,aAHZ,CAxBI,mCAgCM,eACA,gBALV,CASM,sCACE,8BAPR,C3DnMC,oD2D8MS,8BADA,iBANV,CAaE,oCAEE,mBADA,cAVJ,CAaI,0CAEE,eADA,cAVN,CAeE,oCACE,iBAbJ,CAgBE,qCACE,gBAdJ,CAiBE,eACE,YAAa,CACb,aAfJ,CrEhNE,2CAHE,UAAW,CADX,aqE6NJ,CrEzNE,qBAGE,UqEsNJ,CASI,sBACE,kBAPN,C3DrOC,oC2DgPO,iBAAkB,CADlB,eANR,CAWI,sBACE,SACA,eATN,CAOI,2CAKI,iBATR,CAaI,qBAEE,sBAEA,eADA,eAAgB,CAFhB,eAAgB,CAKhB,sBAAuB,CADvB,kBAVN,CAcI,2BACE,qBAZN,CAgBE,kBACE,eAdJ,CAiBE,iCACE,oFAfJ,C3DjQC,+B4DIG,eAFA,gBACA,cDmQJ,C3DtQC,2E4DQO,aDiQR,C3DzQC,sE4DYO,eADA,aDkQR,C3D7QC,+B4DiBG,YD+PJ,C3DhRC,c6DaC,aAAc,CACd,UAPF,CASE,qBACE,kBAAmB,CACnB,mBACA,kBAPJ,CAIE,0CAwIA,6BAFA,oBAAqB,CAmGrB,YACA,iBAnGA,kBAAmB,CAqDnB,UAxLF,C7DpBC,qE6DgNG,iBAzLJ,CAqIE,6CA6FA,YACA,iBA9CA,UAhLF,C7D5BC,wE6DgNG,iBAjLJ,CAiIE,6CAyFA,YACA,iBA9CA,UAxKF,C7DpCC,wE6DgNG,iBAzKJ,CAZE,sBACE,kBAAmB,CAEnB,kBAAmB,CADnB,UAeJ,CAjBE,0CASI,6BACA,kBAFA,YADA,UAgBN,CAvBE,kEAaM,eAaR,CA1BE,8CAmBI,SAUN,CA7BE,iDAyBM,6BACA,kBAHA,YACA,eAAgB,CAFhB,UAcR,CARQ,iGACE,SAUV,CAvCE,oDAiCQ,eASV,CAHE,oEAGI,eAGN,CANE,4FAMM,eAGR,CAEE,mIAGI,mBADN,CAME,+PA+KA,sBAAuB,CADvB,eAAgB,CALhB,iBAAkB,CAIlB,SAvKF,CA2KE,mSAYE,kDANA,qGAFA,QAAS,CAST,UAAW,CARX,UAAW,CAJX,iBAAkB,CAElB,WAAY,CADZ,KA9JJ,C7D1GC,4I6DyGK,UAUN,CALE,sBACE,oBAAqB,CACrB,UAOJ,CATE,2CAyBA,6BACA,kBAHA,oBAAqB,CAoHrB,YACA,iBApCA,eAhFA,kBAAmB,CA+EnB,UApFF,C7DjIC,sE6D2NG,eADA,UArFJ,C7DrIC,sE6DiOG,iBAAkB,CADlB,eADA,UArFJ,C7D1IC,qE6DqOG,kBAxFJ,CADE,8CA6GA,YACA,iBApCA,eADA,UAlEF,C7DnJC,yE6D2NG,eADA,UAnEJ,C7DvJC,yE6DiOG,iBAAkB,CADlB,eADA,UAnEJ,C7D5JC,wE6DqOG,kBAtEJ,CAfE,8CAyGA,YACA,iBApCA,eADA,UAhDF,C7DrKC,yE6D2NG,eADA,UAjDJ,C7DzKC,yE6DiOG,iBAAkB,CADlB,eADA,UAjDJ,C7D9KC,wE6DqOG,kBApDJ,CAnEE,2CA0CA,6BAFA,oBAAqB,CAmGrB,YACA,iBAnGA,kBAAmB,CAqDnB,UAnBF,C7DzLC,sE6DgNG,iBApBJ,CAhCE,8CA6FA,YACA,iBA9CA,UAXF,C7DjMC,yE6DgNG,iBAZJ,CApCE,8CAyFA,YACA,iBA9CA,UAHF,C7DzMC,yE6DgNG,iBAJJ,CA9FE,0CA2DA,6BAFA,oBAAqB,CAkFrB,YACA,iBAfA,gBAnEA,kBAAmB,CAkEnB,WArBF,CAxCE,6CA4EA,YACA,iBAfA,gBADA,WAfF,CA1CE,6CAwEA,YACA,iBAfA,gBADA,WATF,CAnHE,0CA2EA,kBAAmB,CAGnB,6BAJA,YAAa,CAiEb,YA/DA,sBAAuB,CAgEvB,iBA/DA,kBAAmB,CAqDnB,UALF,C7D3OC,oE6DoPG,iBANJ,CA9CE,+CACE,YAgDJ,CA7CE,8CAqDA,YACA,iBAnDE,iBADA,gBA0CF,UAQF,C7DxPC,wE6DoPG,iBAOJ,CA4BA,gCACE,GACE,4BA1BF,CA6BA,GACE,2BA3BF,CACF,CC1PE,kBACE,aD4PJ,C7DtQC,uC8DgBK,iBAAkB,CADlB,eD2PN,C7D1QC,yQ8DiCO,uCDgPR,CC1OA,oCACE,GACE,yBD4OF,CCzOA,GACE,4BD2OF,CACF,CEnRE,4CAIM,eADA,aCFR,CDQE,4CAIM,eADA,cCPR,ChEXC,0D+D4BS,gBCdV,ChEdC,0D+DoCS,oBCnBV,CCXE,cACE,aDaJ,CCdE,0CAKM,iBDYR,CCVQ,uDACE,aDYV,CCpBE,mDAaQ,iBADA,cDYV,CCxBE,+DAkBQ,iBADA,gBDWV,CC5BE,wEAqBU,QDUZ,ChErCC,0CiEmCO,ODKR,ChExCC,gGiE4CO,ODER,ChE9CC,sDiE+CO,ODER,ChEjDC,4oBiEmEW,aAAc,CADd,gBDHZ,CCaE,uBACE,aDXJ,ChElEC,oDiEkFK,gBDbN,CEhEE,+BAEE,qBFkEJ,CEpEE,8HAMI,eFoEN,CElEM,0JAIE,gCACA,UAAW,CAFX,MAAO,CAFP,iBAAkB,CAClB,OF0ER,CEpFE,sMAiBM,UFyER,CEvEQ,0OACE,uCF4EV,CEtEQ,wcAGE,QAAS,CADT,KAAM,CAEN,UF8EV,CE3EQ,sOAEE,iDADA,MFiFV,CE7EQ,kOAEE,kDADA,OFmFV,ChE/HC,4qBkEoDS,SFuFV,CEjFE,0KAQM,QFiFR,CE5EE,kEAKI,eAAgB,CADhB,gBADA,OF+EN,CElFE,sLAYM,KF8ER,CE1FE,wFAkBI,OF4EN,CEvEE,8HAII,qBAAsB,CACtB,cFyEN,CE9EE,sLASM,iBACA,iBF2ER,CErFE,8OAcM,eF6ER,CE3FE,0MAmBM,qBF8ER,CE5EQ,wcAIE,WAAY,CADZ,MAAO,CADP,OFsFV,CEjFQ,sOAEE,iDADA,KFuFV,CEnFQ,kOACE,QAAS,CACT,iDFwFV,ChEzNC,4qBkEwIS,SF6FV,CEvIE,sMAgDM,SF6FR,CE3FQ,0OACE,6BFgGV,CEnJE,4aAyDM,aAAc,CACd,qBFoGR,CE/FE,kGAIM,OF+FR,CEnGE,oFAWI,8BADA,gBF8FN,CExGE,4JAcM,iBF8FR,CEzFE,gEAGI,OF0FN,CE7FE,oGAMM,MF2FR,CEjGE,sFAcI,+BADA,kBADA,OF2FN,CEvGE,8JAiBM,kBF0FR,ChE3RC,mBESC,oCARA,qBAAsB,CAGtB,sBiEQA,aAAc,CjEPd,eACA,0BiEIA,YAAa,CjEHb,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CiEKV,iBAAkB,CAClB,WAAY,CAEZ,YHgSF,CG7RE,0BACE,YH+RJ,CG5RE,wBASE,2BAA4B,CAD5B,sBAEA,kBAEA,sGALA,oBAAqB,CALrB,QAAS,CADT,gBAAiB,CAUjB,YAAa,CAPb,iBAAkB,CAClB,eAAgB,CAFhB,cAGA,eHoSJ,CG5RI,6BAEE,kBAAmB,CAKnB,sBAMA,cAAe,CAZf,YAAa,CAQb,eADA,eAAmB,CAEnB,iBANA,QAAS,CADT,eAAgB,CAGhB,eAAgB,CADhB,iBAOA,sBAAuB,CAEvB,kBAAoB,CAHpB,kBHiSN,CG5SI,kCAiBI,SACA,kBH8RR,CG3RM,oCAKE,sBAAuB,CACvB,QAAS,CAHT,sBAIA,cAAe,CANf,SAAU,CAGV,eAFA,gBHkSR,CG3RQ,0CACE,aH6RV,CGzRM,mCACE,kBH2RR,CGvRQ,kFAGE,sBAAuB,CADvB,sBAEA,kBHyRV,ChErWC,0FoEWK,mBACA,yBAHA,QAAS,CACT,iBAGA,iDJgWN,CI9VM,wGAEE,gBADA,aJkWR,ChElXC,kGoEsBK,iBJgWN,ChEtXC,sSoEgCO,eJ4VR,ChE5XC,oHoEyCO,yBJuVR,CIrVQ,kIACE,wBJwVV,ChEpYC,0HoEqDO,yBJmVR,CIjVQ,wIACE,qBJoVV,ChE5YC,sSoEoEO,cJ8UR,ChElZC,sHoE6EO,yBJyUR,CIvUQ,oIACE,uBJ0UV,ChE1ZC,wHoEyFO,yBJqUR,CInUQ,sIACE,sBJsUV,ChElaC,UESC,oCARA,qBAAsB,CAGtB,sB8DSA,YAAa,C9DRb,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,S8D2aF,ChE9aC,oDgEqBG,kBAAmB,CAFnB,YAAa,CACb,SAAU,CAFV,iBAmaJ,ChErbC,0FgE4BK,kBAAmB,CAHnB,oBAAqB,CACrB,YAAa,CACb,SAAU,CAEV,eAAgB,CALhB,iBAAkB,CAOlB,sBAAuB,CADvB,kBAkaN,CA9ZM,8MAME,UAAW,CAFX,SAAU,CAGV,mBAAoB,CALpB,iBAAkB,CAGlB,uBAFA,SAsaR,ChE3cC,0FgE+CK,YAAa,CADb,iBAAkB,CAElB,wBAiaN,ChEjdC,sGgEsDK,kBAAmB,CADnB,YAiaN,CA9ZM,oHAGE,mBAAoB,CAFpB,iBAAkB,CAClB,iBAkaR,ChE5dC,0FgEkEK,sBAAuB,CACvB,QAAS,CAFT,iBADA,iBAmaN,CA9ZM,sGAGE,QAAS,CAIT,UAAW,CAFX,UAAW,CADX,MAAO,CAHP,iBAAkB,CAClB,OAAQ,CAIR,0BAkaR,ChE7eC,wFgEoFK,mBACA,yBACA,0BAEA,cAAe,CANf,gBADA,eAMA,YAAa,CAJb,cAMA,iDAgaN,CA9ZM,oGACE,aAiaR,CA9ZM,0MAEE,aAkaR,CA7ZE,wBACE,SA+ZJ,CAxZQ,sLACE,sBA2ZV,CApZE,kBAEE,mBACA,mBAAoB,CAFpB,iBAwZJ,CAlZE,cAGE,kBAAmB,CAGnB,sBAAuB,CACvB,QAAS,CAET,cAAe,CAPf,mBAAoB,CAGpB,eAGA,YAAa,CAJb,eAHA,iBA4ZJ,CAhZM,wGAEE,aAoZR,CA3YI,uCAJE,YAAa,CACb,kBA8ZN,CA3ZI,qBAME,sBAAuB,CACvB,WAAY,CAHZ,sBAKA,cAAe,CARf,SAAU,CAIV,eAFA,gBADA,iBAyZN,CA/YM,2BACE,qBAiZR,CA7YI,oBACE,aA+YN,CA5YI,oDACE,cACA,kCA8YN,CA3YI,oCACE,sBACA,kBA6YN,CAxYM,wPAEE,qBA4YR,ChEpkBC,4CgE6LK,QA0YN,CA1cE,uBAoEI,iBAyYN,CArYE,4BACE,iBAuYJ,CAnYE,kBAOE,iBAAkB,CAClB,UA+XJ,CAtYI,yBACE,SAAU,CAEV,YAAa,CADb,WAyYN,CAjYE,kBACE,YAmYJ,CAjYI,yBACE,YAmYN,CA7XI,+CAEE,eA+XN,CA7XM,2DACE,SAgYR,CA7XM,6DACE,SAAU,CACV,sBAgYR,CA5XI,uBAGE,OAAQ,CAFR,iBAAkB,CAClB,eA+XN,CA5XM,6BACE,SA8XR,CA3XM,8BACE,SAAU,CACV,sBA6XR,ChErnBC,cESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SmEWF,CrEdC,4BqEcG,0BAA2B,CAC3B,uCAAwC,CAHxC,qBAAsB,CADtB,aAAc,CADd,iBAAkB,CAGlB,kBASJ,CrEtBC,0BqEoBG,aAAc,CACd,QAAS,CAET,eAAgB,CADhB,SAAU,CAHV,iBAUJ,CAJI,gCACE,YAMN,CAHI,mCACE,cAKN,CrEnCC,uCqEkCK,mBAIN,CrEtCC,6HqEuCO,iBAGR,CAAM,oDACE,mBAER,CAHM,uJAKI,kBAEV,CrEjDC,+CqEuDO,qBAHR,CrEpDC,iFqE+DG,kBAAmB,CADnB,uBALJ,CrEzDC,2BqEsEG,aAAc,CADd,MAAO,CAFP,iBAAkB,CAClB,KALJ,CASI,mEAGE,UAAW,CADX,aANN,CAUI,iCACE,UARN,CAWI,0CACE,iBATN,CrE1EC,2BqEwFG,YAAa,CACb,UAAW,CACX,WAAY,CACZ,cAXJ,CrEhFC,+BqE8FK,aAXN,CAcI,6CACE,YAZN,CAeI,wCACE,mBAbN,CrEzFC,8CqE2GG,aAfJ,CrE5FC,0CqE+GG,iBAhBJ,CrE/FC,2CqEmHG,aAAc,CACd,WAjBJ,CrEnGC,wCqEwHG,YAlBJ,CrEtGC,oDqEyIG,QAAS,CAET,cAAe,CAXf,aAAc,CAMd,WAAY,CAJZ,WAAY,CAKZ,aAAc,CAJd,gBAAiB,CACjB,SAAU,CANV,iBAAkB,CAClB,OAAQ,CAER,UAVJ,CAsBI,oLALA,sBAAuB,CAHvB,iBAAkB,CAKlB,YAXJ,CAoBM,4JACE,SAfR,CAmBI,gGACE,WAhBN,CrEzIC,0BqE8JG,UAlBJ,CAoBI,iCACE,WAlBN,CrE/IC,0BqEsKG,WApBJ,CAsBI,iCACE,WApBN,CrErJC,0BqEiLG,QAAS,CAGT,sBAAwB,CACxB,sBAAuB,CAHvB,MAAO,CAQP,eAAgB,CAHhB,eAAgB,CAChB,eAAgB,CAFhB,gBAAiB,CAGjB,cAAe,CAVf,iBAAkB,CAClB,OAAQ,CAGR,UAhBJ,CAyBI,iCACE,WAvBN,CA0BI,8BAEE,WAAY,CADZ,QAvBN,CrE1KC,6BqEyMK,kBAAuB,CAFvB,oBAAqB,CACrB,aAAc,CAGd,WACA,aACA,SAAU,CAPV,iBAAkB,CAQlB,iBAAkB,CAClB,kBAAmB,CAEnB,kBAAoB,CADpB,kBAAmB,CANnB,UAlBN,CrExLC,oCqE2NO,gBACA,QAAS,CACT,iBAAkB,CAJlB,iBAAkB,CAMlB,cAAe,CAVf,aAAc,CAKd,WAAY,CAHZ,WASA,UAAY,CAFZ,YAAa,CANb,SAAU,CAJV,iBAAkB,CAalB,kBAAoB,CAXpB,UAdR,CA2BQ,oFAEE,WAzBV,CA4BQ,0CAIE,YAEA,UAAW,CADX,UAJA,iBAAkB,CAElB,WADA,QAtBV,CA8BM,0CACE,UA5BR,CA8BQ,iDACE,gBACA,SA5BV,CA+BQ,gGAEE,SA7BV,CrE/NC,mCqEsQG,WAAY,CACZ,qBAAsB,CAEtB,WAAY,CACZ,QAAS,CALT,OAAQ,CAMR,0BAA2B,CAH3B,SAhCJ,CAqCI,wCAEE,SAAU,CADV,UAlCN,CAsCI,yCAEE,SAAU,CADV,UAnCN,CrEhPC,sCqEyRK,YACA,aACA,sBAAwB,CAHxB,SAlCN,CrEtPC,6CqE+RO,YADA,SApCR,CAwCM,6GAEE,YADA,SAjCR,CC5PE,kBACE,aD8PJ,CrErQC,6CsEaK,SAAU,CADV,OD6PN,CrEzQC,4CsEoBK,SAAU,CADV,WD0PN,CCvPM,mDACE,WDyPR,CrEhRC,4CsE+BK,UAAW,CADX,UDsPN,CCnPM,mDACE,WDqPR,CrEvRC,2CsE0CK,0BDgPN,CrE1RC,oDsEkDK,qBD2ON,CrE7RC,uBESC,oCARA,qBAAsB,CAGtB,sBqESE,cAAe,CrERjB,eACA,0BACA,mBqEGE,aAAc,CrEFhB,eAAgB,CANhB,QAAS,CqEUP,YAAa,CrETf,SAAU,CqEKR,iBAAkB,CAClB,QAAU,CAEV,kBCmBJ,CxE9BC,4LuEkBK,oBCiBN,CDdI,qCASE,4CAA8C,CAC9C,6BAA8B,CAJ9B,yBACA,kBAIA,UAAW,CANX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAMN,iBAAkB,CAJlB,UCuBN,CxEhDC,qGuEqCK,kBCeN,CDZI,6BAQE,sBACA,yBAIA,uBAAyB,CAHzB,kBAHA,aAAc,CAHd,aAAc,CAEd,YAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAYN,kBAAoB,CATpB,UCqBN,CDVM,mCAYE,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CATZ,aAAc,CAEd,oBAHA,UAAW,CAQX,SAAU,CAZV,iBAAkB,CAClB,OAAQ,CAUR,qDAAuD,CAEvD,6DAPA,kBCeR,CDHI,6BAIE,QAAS,CAKT,cAAe,CADf,WAAY,CAHZ,MAAO,CAKP,SAAU,CATV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,UAAW,CADX,SCSN,CxE7FC,kEuEgGG,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CAPZ,aAAc,CAKd,SAAU,CANV,iBAAkB,CAKlB,qDAAuD,CAEvD,oDCGJ,CxExGC,4DuE2GK,yBACA,oBCAN,CxE5GC,gCuEiHG,kBCFJ,CxE/GC,iGuEsHO,mBAAoB,CADpB,4BCFR,CxEnHC,6DuE2HK,kBAAmB,CACnB,mBCLN,CxEvHC,6DuEgIK,yBACA,8BCNN,CDQM,mEAGE,mBAAoB,CADpB,uBAAyB,CADzB,oBCJR,CDUI,qCACE,sBACA,kBCRN,CxEpIC,uHuEkJK,iBCVN,CxExIC,+BESC,oCqEgJE,oBAAqB,CrExJvB,qBAAsB,CAGtB,sBqEuJE,cAAe,CAHf,mBAAoB,CrEnJtB,eACA,0BACA,mBqEmJE,oBrElJF,eAAgB,CANhB,QAAS,CACT,SsEoJF,CDMI,qCAIE,aAAc,CAHd,oBAAqB,CAErB,eAAgB,CADhB,OCFN,CxE7JC,sEuEqKK,kBCLN,CDQI,8DACE,eCNN,CDSI,+FAGI,WAAY,CADZ,UCPR,CxEvKC,4BuEsLG,gBAAiB,CADjB,iBCVJ,CxE3KC,6BESC,oCARA,qBAAsB,CAGtB,sBqEuLE,oBAAqB,CrEtLvB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SsEoLF,CDMI,kCACE,gBCJN,CDMM,6CACE,cCJR,CDQI,oEACE,aCNN,CxEhMC,kEuE6MK,sBACA,oBCVN,CxEpMC,wEuEwNK,yBACA,QAAS,CAGT,WAAY,CALZ,WAFA,QAAS,CAMT,SAAU,CAPV,OAAQ,CAMR,uCAAyC,CAJzC,SCPN,CxE/MC,uGuEgOK,iCACA,4BCdN,CxEnNC,cwEUC,WA4MF,CA1ME,uBAEE,iBADA,KA6MJ,CAzME,oBAGE,sBAAuB,CAFvB,YAAa,CACb,gBA4MJ,CxE/NC,+DwEyBO,WAAY,CADZ,UA2MR,CArME,mBAWE,2CAA4C,CAD5C,+BATA,WAAY,CAEZ,YAAa,CAMb,eAAgB,CAJhB,cAHA,eAAgB,CAKhB,aAAc,CADd,cAEA,kBA0MJ,CArMI,wBAGE,kBAAmB,CAMnB,cAAe,CARf,YAAa,CACb,gBAAiB,CAIjB,iBADA,eAAgB,CADhB,iBAIA,sBAAuB,CAEvB,kBAAoB,CAHpB,kBA0MN,CArMM,8BACE,kBAuMR,CApMM,iCACE,sBACA,kBAsMR,CApMQ,uCACE,sBAsMV,CxEtQC,iDwEqEO,sBACA,cAAe,CACf,mBAoMR,CAhMQ,gJAGE,yBADA,eAmMV,CA9LM,gCACE,SAgMR,CA7LM,wGAGE,sBACA,cAAe,CAFf,eAiMR,CxEzRC,wKwE6FS,qBAgMV,CA5LM,gCACE,aA8LR,C3DjOI,oGACE,iB2DmON,C3D/NI,8FACE,gB2DiON,C3D7NM,oGAGE,S2D+NR,C3DrNM,qCACE,S2DuNR,CxE9SC,mHaIK,e2D6SN,CxEjTC,iJaSK,4BAA6B,CAD7B,yB2D6SN,CxErTC,4RaoBK,2BAA4B,CAD5B,wB2D0SN,CxE7TC,2Ia0BK,4BAA6B,CAD7B,yB2DwSN,CC3TI,6GAGE,aAAc,CADd,gBD8TN,CxEtUC,yCyEgBG,gBADA,cAAe,CADf,KD6TJ,CrF3UC,ceSC,oCARA,qBAAsB,CAGtB,sBqESE,cAAe,CrERjB,eACA,0BACA,mBqEGE,aAAc,CrEFhB,eAAgB,CANhB,QAAS,CqEUP,YAAa,CrETf,SAAU,CqEKR,iBAAkB,CAClB,QAAU,CAEV,kBGmBJ,CvF9BC,sIoFkBK,oBGiBN,CHdI,4BASE,4CAA8C,CAC9C,6BAA8B,CAJ9B,yBACA,kBAIA,UAAW,CANX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAMN,iBAAkB,CAJlB,UGuBN,CvFhDC,0EoFqCK,kBGeN,CHZI,oBAQE,sBACA,yBAIA,uBAAyB,CAHzB,kBAHA,aAAc,CAHd,aAAc,CAEd,YAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAYN,kBAAoB,CATpB,UGqBN,CHVM,0BAYE,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CATZ,aAAc,CAEd,oBAHA,UAAW,CAQX,SAAU,CAZV,iBAAkB,CAClB,OAAQ,CAUR,qDAAuD,CAEvD,6DAPA,kBGeR,CHHI,oBAIE,QAAS,CAKT,cAAe,CADf,WAAY,CAHZ,MAAO,CAKP,SAAU,CATV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,UAAW,CADX,SGSN,CvF7FC,gDoFgGG,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CAPZ,aAAc,CAKd,SAAU,CANV,iBAAkB,CAKlB,qDAAuD,CAEvD,oDGGJ,CvFxGC,0CoF2GK,yBACA,oBGAN,CvF5GC,uBoFiHG,kBGFJ,CvF/GC,sEoFsHO,mBAAoB,CADpB,4BGFR,CvFnHC,2CoF2HK,kBAAmB,CACnB,mBGLN,CvFvHC,2CoFgIK,yBACA,8BGNN,CHQM,iDAGE,mBAAoB,CADpB,uBAAyB,CADzB,oBGJR,CHUI,4BACE,sBACA,kBGRN,CvFpIC,4FoFkJK,iBGVN,CvFxIC,sBeSC,oCqEgJE,oBAAqB,CrExJvB,qBAAsB,CAGtB,sBqEuJE,cAAe,CAHf,mBAAoB,CrEnJtB,eACA,0BACA,mBqEmJE,oBrElJF,eAAgB,CANhB,QAAS,CACT,SwEoJF,CHMI,4BAIE,aAAc,CAHd,oBAAqB,CAErB,eAAgB,CADhB,OGFN,CvF7JC,oDoFqKK,kBGLN,CHQI,4CACE,eGNN,CHSI,6EAGI,WAAY,CADZ,UGPR,CvFvKC,mBoFsLG,gBAAiB,CADjB,iBGVJ,CvF3KC,oBeSC,oCARA,qBAAsB,CAGtB,sBqEuLE,oBAAqB,CrEtLvB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SwEoLF,CHMI,yBACE,gBGJN,CHMM,oCACE,cGJR,CHQI,kDACE,aGNN,CvFhMC,gDoF6MK,sBACA,oBGVN,CvFpMC,sDoFwNK,yBACA,QAAS,CAGT,WAAY,CALZ,WAFA,QAAS,CAMT,SAAU,CAPV,OAAQ,CAMR,uCAAyC,CAJzC,SGPN,CvF/MC,4EoFgOK,iCACA,4BGdN,CvFnNC,kBwFIG,aDkNJ,CvFtNC,iDwFWO,gBADA,cDgNR,CvF1NC,4DwFgBS,uBD6MV,CvF7NC,0EwFuBO,eDyMR,C1EhOC,S4EOC,kBAAmB,CACnB,WAAF,CAEE,wCAJA,YAMF,CAIE,iBACE,gBAFJ,C5EfC,e4EuBC,0BALF,C5ElBC,gB4E4BC,sBAPF,C5ErBC,a4EiCC,wBATF,C5ExBC,uB4EsCC,6BAXF,C5E3BC,sB4E2CC,4BAbF,C5E9BC,sB4EgDC,4BAfF,C5EjCC,a4EqDC,sBAjBF,C5EpCC,gB4E0DC,kBAnBF,C5EvCC,gB4E+DC,oBArBF,C5E1CC,S4EoEC,cAAe,CAEf,cAAe,CAHf,iBApBF,C5E/CC,Y6EUG,aAAc,CACd,cACA,cDwCJ,C5EpDC,iB6EeG,SDwCJ,C5EvDC,iB6EkBG,UDwCJ,C5E1DC,mB6EqBG,gBDwCJ,C5E7DC,kB6EwBG,QDwCJ,C5EhEC,Y6EUG,aAAc,CACd,sBACA,sBDyDJ,C5ErEC,iB6EeG,iBDyDJ,C5ExEC,iB6EkBG,kBDyDJ,C5E3EC,mB6EqBG,wBDyDJ,C5E9EC,kB6EwBG,QDyDJ,C5EjFC,Y6EUG,aAAc,CACd,sBACA,sBD0EJ,C5EtFC,iB6EeG,iBD0EJ,C5EzFC,iB6EkBG,kBD0EJ,C5E5FC,mB6EqBG,wBD0EJ,C5E/FC,kB6EwBG,QD0EJ,C5ElGC,Y6EUG,aAAc,CACd,eACA,eD2FJ,C5EvGC,iB6EeG,UD2FJ,C5E1GC,iB6EkBG,WD2FJ,C5E7GC,mB6EqBG,iBD2FJ,C5EhHC,kB6EwBG,QD2FJ,C5EnHC,Y6EUG,aAAc,CACd,sBACA,sBD4GJ,C5ExHC,iB6EeG,iBD4GJ,C5E3HC,iB6EkBG,kBD4GJ,C5E9HC,mB6EqBG,wBD4GJ,C5EjIC,kB6EwBG,QD4GJ,C5EpIC,Y6EUG,aAAc,CACd,sBACA,sBD6HJ,C5EzIC,iB6EeG,iBD6HJ,C5E5IC,iB6EkBG,kBD6HJ,C5E/IC,mB6EqBG,wBD6HJ,C5ElJC,kB6EwBG,QD6HJ,C5ErJC,Y6EUG,aAAc,CACd,aACA,aD8IJ,C5E1JC,iB6EeG,QD8IJ,C5E7JC,iB6EkBG,SD8IJ,C5EhKC,mB6EqBG,eD8IJ,C5EnKC,kB6EwBG,QD8IJ,C5EtKC,Y6EUG,aAAc,CACd,sBACA,sBD+JJ,C5E3KC,iB6EeG,iBD+JJ,C5E9KC,iB6EkBG,kBD+JJ,C5EjLC,mB6EqBG,wBD+JJ,C5EpLC,kB6EwBG,QD+JJ,C5EvLC,Y6EUG,aAAc,CACd,sBACA,sBDgLJ,C5E5LC,iB6EeG,iBDgLJ,C5E/LC,iB6EkBG,kBDgLJ,C5ElMC,mB6EqBG,wBDgLJ,C5ErMC,kB6EwBG,QDgLJ,C5ExMC,Y6EUG,aAAc,CACd,eACA,eDiMJ,C5E7MC,iB6EeG,UDiMJ,C5EhNC,iB6EkBG,WDiMJ,C5EnNC,mB6EqBG,iBDiMJ,C5EtNC,kB6EwBG,QDiMJ,C5EzNC,Y6EUG,aAAc,CACd,sBACA,sBDkNJ,C5E9NC,iB6EeG,iBDkNJ,C5EjOC,iB6EkBG,kBDkNJ,C5EpOC,mB6EqBG,wBDkNJ,C5EvOC,kB6EwBG,QDkNJ,C5E1OC,Y6EUG,aAAc,CACd,sBACA,sBDmOJ,C5E/OC,iB6EeG,iBDmOJ,C5ElPC,iB6EkBG,kBDmOJ,C5ErPC,mB6EqBG,wBDmOJ,C5ExPC,kB6EwBG,QDmOJ,C5E3PC,Y6EUG,aAAc,CACd,aACA,aDoPJ,C5EhQC,iB6EeG,QDoPJ,C5EnQC,iB6EkBG,SDoPJ,C5EtQC,mB6EqBG,eDoPJ,C5EzQC,kB6EwBG,QDoPJ,C5E5QC,Y6EUG,aAAc,CACd,sBACA,sBDqQJ,C5EjRC,iB6EeG,iBDqQJ,C5EpRC,iB6EkBG,kBDqQJ,C5EvRC,mB6EqBG,wBDqQJ,C5E1RC,kB6EwBG,QDqQJ,C5E7RC,Y6EUG,aAAc,CACd,sBACA,sBDsRJ,C5ElSC,iB6EeG,iBDsRJ,C5ErSC,iB6EkBG,kBDsRJ,C5ExSC,mB6EqBG,wBDsRJ,C5E3SC,kB6EwBG,QDsRJ,C5E9SC,W6EUG,aAAc,CACd,eACA,eDuSJ,C5EnTC,gB6EeG,UDuSJ,C5EtTC,gB6EkBG,WDuSJ,C5EzTC,kB6EqBG,iBDuSJ,C5E5TC,iB6EwBG,ODuSJ,C5E/TC,W6EUG,aAAc,CACd,sBACA,sBDwTJ,C5EpUC,gB6EeG,iBDwTJ,C5EvUC,gB6EkBG,kBDwTJ,C5E1UC,kB6EqBG,wBDwTJ,C5E7UC,iB6EwBG,ODwTJ,C5EhVC,W6EUG,aAAc,CACd,sBACA,sBDyUJ,C5ErVC,gB6EeG,iBDyUJ,C5ExVC,gB6EkBG,kBDyUJ,C5E3VC,kB6EqBG,wBDyUJ,C5E9VC,iB6EwBG,ODyUJ,C5EjWC,W6EUG,aAAc,CACd,aACA,aD0VJ,C5EtWC,gB6EeG,QD0VJ,C5EzWC,gB6EkBG,SD0VJ,C5E5WC,kB6EqBG,eD0VJ,C5E/WC,iB6EwBG,OD0VJ,C5ElXC,W6EUG,aAAc,CACd,sBACA,sBD2WJ,C5EvXC,gB6EeG,iBD2WJ,C5E1XC,gB6EkBG,kBD2WJ,C5E7XC,kB6EqBG,wBD2WJ,C5EhYC,iB6EwBG,OD2WJ,C5EnYC,W6EUG,aAAc,CACd,sBACA,sBD4XJ,C5ExYC,gB6EeG,iBD4XJ,C5E3YC,gB6EkBG,kBD4XJ,C5E9YC,kB6EqBG,wBD4XJ,C5EjZC,iB6EwBG,OD4XJ,C5EpZC,W6EUG,aAAc,CACd,eACA,eD6YJ,C5EzZC,gB6EeG,UD6YJ,C5E5ZC,gB6EkBG,WD6YJ,C5E/ZC,kB6EqBG,iBD6YJ,C5ElaC,iB6EwBG,OD6YJ,C5EraC,W6EUG,aAAc,CACd,qBACA,qBD8ZJ,C5E1aC,gB6EeG,gBD8ZJ,C5E7aC,gB6EkBG,iBD8ZJ,C5EhbC,kB6EqBG,uBD8ZJ,C5EnbC,iB6EwBG,OD8ZJ,C5EtbC,W6EUG,aAAc,CACd,qBACA,qBD+aJ,C5E3bC,gB6EeG,gBD+aJ,C5E9bC,gB6EkBG,iBD+aJ,C5EjcC,kB6EqBG,uBD+aJ,C5EpcC,iB6EwBG,OD+aJ,C5EvcC,W6E+BG,YD2aJ,C5E1cC,kB6E8CG,aD2aJ,C5EzdC,iB6EiDG,OD2aJ,C5E5dC,8B8EiEK,cF0aN,C5E3eC,4B8EgBK,SAAU,CADV,iBFgeN,C5E/eC,4B8EwBK,iBADA,UF4dN,C5EnfC,8B8EgCK,aAAc,CADd,wBFwdN,C5EvfC,4B8EgBK,SAAU,CADV,iBF4eN,C5E3fC,4B8EwBK,iBADA,UFweN,C5E/fC,8B8EgCK,aAAc,CADd,wBFoeN,C5EngBC,4B8EgBK,SAAU,CADV,WFwfN,C5EvgBC,4B8EwBK,WADA,UFofN,C5E3gBC,8B8EgCK,aAAc,CADd,kBFgfN,C5E/gBC,4B8EgBK,SAAU,CADV,kBFogBN,C5EnhBC,4B8EwBK,kBADA,UFggBN,C5EvhBC,8B8EgCK,aAAc,CADd,yBF4fN,C5E3hBC,4B8EgBK,SAAU,CADV,kBFghBN,C5E/hBC,4B8EwBK,kBADA,UF4gBN,C5EniBC,8B8EgCK,aAAc,CADd,yBFwgBN,C5EviBC,4B8EgBK,SAAU,CADV,SF4hBN,C5E3iBC,4B8EwBK,SADA,UFwhBN,C5E/iBC,8B8EgCK,aAAc,CADd,gBFohBN,C5EnjBC,4B8EgBK,SAAU,CADV,kBFwiBN,C5EvjBC,4B8EwBK,kBADA,UFoiBN,C5E3jBC,8B8EgCK,aAAc,CADd,yBFgiBN,C5E/jBC,4B8EgBK,SAAU,CADV,kBFojBN,C5EnkBC,4B8EwBK,kBADA,UFgjBN,C5EvkBC,8B8EgCK,aAAc,CADd,yBF4iBN,C5E3kBC,4B8EgBK,SAAU,CADV,WFgkBN,C5E/kBC,4B8EwBK,WADA,UF4jBN,C5EnlBC,8B8EgCK,aAAc,CADd,kBFwjBN,C5EvlBC,6B8EgBK,SAAU,CADV,kBF4kBN,C5E3lBC,6B8EwBK,kBADA,UFwkBN,C5E/lBC,+B8EgCK,aAAc,CADd,yBFokBN,C5EnmBC,6B8EgBK,SAAU,CADV,kBFwlBN,C5EvmBC,6B8EwBK,kBADA,UFolBN,C5E3mBC,+B8EgCK,aAAc,CADd,yBFglBN,C5E/mBC,6B8EgBK,SAAU,CADV,SFomBN,C5EnnBC,6B8EwBK,SADA,UFgmBN,C5EvnBC,+B8EgCK,aAAc,CADd,gBF4lBN,C5E3nBC,6B8EgBK,SAAU,CADV,kBFgnBN,C5E/nBC,6B8EwBK,kBADA,UF4mBN,C5EnoBC,+B8EgCK,aAAc,CADd,yBFwmBN,C5EvoBC,6B8EgBK,SAAU,CADV,kBF4nBN,C5E3oBC,6B8EwBK,kBADA,UFwnBN,C5E/oBC,+B8EgCK,aAAc,CADd,yBFonBN,C5EnpBC,6B8EgBK,SAAU,CADV,WFwoBN,C5EvpBC,6B8EwBK,WADA,UFooBN,C5E3pBC,+B8EgCK,aAAc,CADd,kBFgoBN,C5E/pBC,6B8EgBK,SAAU,CADV,kBFopBN,C5EnqBC,6B8EwBK,kBADA,UFgpBN,C5EvqBC,+B8EgCK,aAAc,CADd,yBF4oBN,C5E3qBC,6B8EgBK,SAAU,CADV,kBFgqBN,C5E/qBC,6B8EwBK,kBADA,UF4pBN,C5EnrBC,+B8EgCK,aAAc,CADd,yBFwpBN,C5EvrBC,6B8EgBK,SAAU,CADV,SF4qBN,C5E3rBC,6B8EwBK,SADA,UFwqBN,C5E/rBC,+B8EgCK,aAAc,CADd,gBFoqBN,C5EnsBC,6B8EgBK,SAAU,CADV,kBFwrBN,C5EvsBC,6B8EwBK,kBADA,UForBN,C5E3sBC,+B8EgCK,aAAc,CADd,yBFgrBN,C5E/sBC,6B8EgBK,SAAU,CADV,kBFosBN,C5EntBC,6B8EwBK,kBADA,UFgsBN,C5EvtBC,+B8EgCK,aAAc,CADd,yBF4rBN,C5E3tBC,6B8EgBK,SAAU,CADV,WFgtBN,C5E/tBC,6B8EwBK,WADA,UF4sBN,C5EnuBC,+B8EgCK,aAAc,CADd,kBFwsBN,C5EvuBC,6B8EgBK,SAAU,CADV,kBF4tBN,C5E3uBC,6B8EwBK,kBADA,UFwtBN,C5E/uBC,+B8EgCK,aAAc,CADd,yBFotBN,C5EnvBC,6B8EgBK,SAAU,CADV,kBFwuBN,C5EvvBC,6B8EwBK,kBADA,UFouBN,C5E3vBC,+B8EgCK,aAAc,CADd,yBFguBN,C5E/vBC,6B8EgBK,SAAU,CADV,UFovBN,C5EnwBC,6B8EwBK,UADA,UFgvBN,C5EvwBC,+B8EgCK,aAAc,CADd,iBF4uBN,C5E3wBC,e6EUG,aAAc,CACd,cACA,cDowBJ,C5EhxBC,oB6EeG,SDowBJ,C5EnxBC,oB6EkBG,UDowBJ,C5EtxBC,sB6EqBG,gBDowBJ,C5EzxBC,qB6EwBG,QDowBJ,C5E5xBC,e6EUG,aAAc,CACd,sBACA,sBDqxBJ,C5EjyBC,oB6EeG,iBDqxBJ,C5EpyBC,oB6EkBG,kBDqxBJ,C5EvyBC,sB6EqBG,wBDqxBJ,C5E1yBC,qB6EwBG,QDqxBJ,C5E7yBC,e6EUG,aAAc,CACd,sBACA,sBDsyBJ,C5ElzBC,oB6EeG,iBDsyBJ,C5ErzBC,oB6EkBG,kBDsyBJ,C5ExzBC,sB6EqBG,wBDsyBJ,C5E3zBC,qB6EwBG,QDsyBJ,C5E9zBC,e6EUG,aAAc,CACd,eACA,eDuzBJ,C5En0BC,oB6EeG,UDuzBJ,C5Et0BC,oB6EkBG,WDuzBJ,C5Ez0BC,sB6EqBG,iBDuzBJ,C5E50BC,qB6EwBG,QDuzBJ,C5E/0BC,e6EUG,aAAc,CACd,sBACA,sBDw0BJ,C5Ep1BC,oB6EeG,iBDw0BJ,C5Ev1BC,oB6EkBG,kBDw0BJ,C5E11BC,sB6EqBG,wBDw0BJ,C5E71BC,qB6EwBG,QDw0BJ,C5Eh2BC,e6EUG,aAAc,CACd,sBACA,sBDy1BJ,C5Er2BC,oB6EeG,iBDy1BJ,C5Ex2BC,oB6EkBG,kBDy1BJ,C5E32BC,sB6EqBG,wBDy1BJ,C5E92BC,qB6EwBG,QDy1BJ,C5Ej3BC,e6EUG,aAAc,CACd,aACA,aD02BJ,C5Et3BC,oB6EeG,QD02BJ,C5Ez3BC,oB6EkBG,SD02BJ,C5E53BC,sB6EqBG,eD02BJ,C5E/3BC,qB6EwBG,QD02BJ,C5El4BC,e6EUG,aAAc,CACd,sBACA,sBD23BJ,C5Ev4BC,oB6EeG,iBD23BJ,C5E14BC,oB6EkBG,kBD23BJ,C5E74BC,sB6EqBG,wBD23BJ,C5Eh5BC,qB6EwBG,QD23BJ,C5En5BC,e6EUG,aAAc,CACd,sBACA,sBD44BJ,C5Ex5BC,oB6EeG,iBD44BJ,C5E35BC,oB6EkBG,kBD44BJ,C5E95BC,sB6EqBG,wBD44BJ,C5Ej6BC,qB6EwBG,QD44BJ,C5Ep6BC,e6EUG,aAAc,CACd,eACA,eD65BJ,C5Ez6BC,oB6EeG,UD65BJ,C5E56BC,oB6EkBG,WD65BJ,C5E/6BC,sB6EqBG,iBD65BJ,C5El7BC,qB6EwBG,QD65BJ,C5Er7BC,e6EUG,aAAc,CACd,sBACA,sBD86BJ,C5E17BC,oB6EeG,iBD86BJ,C5E77BC,oB6EkBG,kBD86BJ,C5Eh8BC,sB6EqBG,wBD86BJ,C5En8BC,qB6EwBG,QD86BJ,C5Et8BC,e6EUG,aAAc,CACd,sBACA,sBD+7BJ,C5E38BC,oB6EeG,iBD+7BJ,C5E98BC,oB6EkBG,kBD+7BJ,C5Ej9BC,sB6EqBG,wBD+7BJ,C5Ep9BC,qB6EwBG,QD+7BJ,C5Ev9BC,e6EUG,aAAc,CACd,aACA,aDg9BJ,C5E59BC,oB6EeG,QDg9BJ,C5E/9BC,oB6EkBG,SDg9BJ,C5El+BC,sB6EqBG,eDg9BJ,C5Er+BC,qB6EwBG,QDg9BJ,C5Ex+BC,e6EUG,aAAc,CACd,sBACA,sBDi+BJ,C5E7+BC,oB6EeG,iBDi+BJ,C5Eh/BC,oB6EkBG,kBDi+BJ,C5En/BC,sB6EqBG,wBDi+BJ,C5Et/BC,qB6EwBG,QDi+BJ,C5Ez/BC,e6EUG,aAAc,CACd,sBACA,sBDk/BJ,C5E9/BC,oB6EeG,iBDk/BJ,C5EjgCC,oB6EkBG,kBDk/BJ,C5EpgCC,sB6EqBG,wBDk/BJ,C5EvgCC,qB6EwBG,QDk/BJ,C5E1gCC,c6EUG,aAAc,CACd,eACA,eDmgCJ,C5E/gCC,mB6EeG,UDmgCJ,C5ElhCC,mB6EkBG,WDmgCJ,C5ErhCC,qB6EqBG,iBDmgCJ,C5ExhCC,oB6EwBG,ODmgCJ,C5E3hCC,c6EUG,aAAc,CACd,sBACA,sBDohCJ,C5EhiCC,mB6EeG,iBDohCJ,C5EniCC,mB6EkBG,kBDohCJ,C5EtiCC,qB6EqBG,wBDohCJ,C5EziCC,oB6EwBG,ODohCJ,C5E5iCC,c6EUG,aAAc,CACd,sBACA,sBDqiCJ,C5EjjCC,mB6EeG,iBDqiCJ,C5EpjCC,mB6EkBG,kBDqiCJ,C5EvjCC,qB6EqBG,wBDqiCJ,C5E1jCC,oB6EwBG,ODqiCJ,C5E7jCC,c6EUG,aAAc,CACd,aACA,aDsjCJ,C5ElkCC,mB6EeG,QDsjCJ,C5ErkCC,mB6EkBG,SDsjCJ,C5ExkCC,qB6EqBG,eDsjCJ,C5E3kCC,oB6EwBG,ODsjCJ,C5E9kCC,c6EUG,aAAc,CACd,sBACA,sBDukCJ,C5EnlCC,mB6EeG,iBDukCJ,C5EtlCC,mB6EkBG,kBDukCJ,C5EzlCC,qB6EqBG,wBDukCJ,C5E5lCC,oB6EwBG,ODukCJ,C5E/lCC,c6EUG,aAAc,CACd,sBACA,sBDwlCJ,C5EpmCC,mB6EeG,iBDwlCJ,C5EvmCC,mB6EkBG,kBDwlCJ,C5E1mCC,qB6EqBG,wBDwlCJ,C5E7mCC,oB6EwBG,ODwlCJ,C5EhnCC,c6EUG,aAAc,CACd,eACA,eDymCJ,C5ErnCC,mB6EeG,UDymCJ,C5ExnCC,mB6EkBG,WDymCJ,C5E3nCC,qB6EqBG,iBDymCJ,C5E9nCC,oB6EwBG,ODymCJ,C5EjoCC,c6EUG,aAAc,CACd,qBACA,qBD0nCJ,C5EtoCC,mB6EeG,gBD0nCJ,C5EzoCC,mB6EkBG,iBD0nCJ,C5E5oCC,qB6EqBG,uBD0nCJ,C5E/oCC,oB6EwBG,OD0nCJ,C5ElpCC,c6EUG,aAAc,CACd,qBACA,qBD2oCJ,C5EvpCC,mB6EeG,gBD2oCJ,C5E1pCC,mB6EkBG,iBD2oCJ,C5E7pCC,qB6EqBG,uBD2oCJ,C5EhqCC,oB6EwBG,OD2oCJ,C5EnqCC,c6E+BG,YDuoCJ,C5EtqCC,gB6EkCG,SDuoCJ,C5EzqCC,gB6EqCG,UDuoCJ,C5E5qCC,mB6EwCG,SDuoCJ,C5E/qCC,mB6E2CG,UDuoCJ,C5ElrCC,qB6E8CG,aDuoCJ,C5ErrCC,oB6EiDG,ODuoCJ,C5ExrCC,4B8EyCK,UFkpCN,C5E3rCC,4B8E+CK,SF+oCN,C5E9rCC,+B8EqDK,UF4oCN,C5EjsCC,+B8E2DK,SFyoCN,C5EpsCC,iC8EiEK,cFsoCN,C5EvsCC,+B8EgBK,SAAU,CADV,iBF4rCN,C5E3sCC,+B8EwBK,iBADA,UFwrCN,C5E/sCC,iC8EgCK,aAAc,CADd,wBForCN,C5EntCC,+B8EgBK,SAAU,CADV,iBFwsCN,C5EvtCC,+B8EwBK,iBADA,UFosCN,C5E3tCC,iC8EgCK,aAAc,CADd,wBFgsCN,C5E/tCC,+B8EgBK,SAAU,CADV,WFotCN,C5EnuCC,+B8EwBK,WADA,UFgtCN,C5EvuCC,iC8EgCK,aAAc,CADd,kBF4sCN,C5E3uCC,+B8EgBK,SAAU,CADV,kBFguCN,C5E/uCC,+B8EwBK,kBADA,UF4tCN,C5EnvCC,iC8EgCK,aAAc,CADd,yBFwtCN,C5EvvCC,+B8EgBK,SAAU,CADV,kBF4uCN,C5E3vCC,+B8EwBK,kBADA,UFwuCN,C5E/vCC,iC8EgCK,aAAc,CADd,yBFouCN,C5EnwCC,+B8EgBK,SAAU,CADV,SFwvCN,C5EvwCC,+B8EwBK,SADA,UFovCN,C5E3wCC,iC8EgCK,aAAc,CADd,gBFgvCN,C5E/wCC,+B8EgBK,SAAU,CADV,kBFowCN,C5EnxCC,+B8EwBK,kBADA,UFgwCN,C5EvxCC,iC8EgCK,aAAc,CADd,yBF4vCN,C5E3xCC,+B8EgBK,SAAU,CADV,kBFgxCN,C5E/xCC,+B8EwBK,kBADA,UF4wCN,C5EnyCC,iC8EgCK,aAAc,CADd,yBFwwCN,C5EvyCC,+B8EgBK,SAAU,CADV,WF4xCN,C5E3yCC,+B8EwBK,WADA,UFwxCN,C5E/yCC,iC8EgCK,aAAc,CADd,kBFoxCN,C5EnzCC,gC8EgBK,SAAU,CADV,kBFwyCN,C5EvzCC,gC8EwBK,kBADA,UFoyCN,C5E3zCC,kC8EgCK,aAAc,CADd,yBFgyCN,C5E/zCC,gC8EgBK,SAAU,CADV,kBFozCN,C5En0CC,gC8EwBK,kBADA,UFgzCN,C5Ev0CC,kC8EgCK,aAAc,CADd,yBF4yCN,C5E30CC,gC8EgBK,SAAU,CADV,SFg0CN,C5E/0CC,gC8EwBK,SADA,UF4zCN,C5En1CC,kC8EgCK,aAAc,CADd,gBFwzCN,C5Ev1CC,gC8EgBK,SAAU,CADV,kBF40CN,C5E31CC,gC8EwBK,kBADA,UFw0CN,C5E/1CC,kC8EgCK,aAAc,CADd,yBFo0CN,C5En2CC,gC8EgBK,SAAU,CADV,kBFw1CN,C5Ev2CC,gC8EwBK,kBADA,UFo1CN,C5E32CC,kC8EgCK,aAAc,CADd,yBFg1CN,C5E/2CC,gC8EgBK,SAAU,CADV,WFo2CN,C5En3CC,gC8EwBK,WADA,UFg2CN,C5Ev3CC,kC8EgCK,aAAc,CADd,kBF41CN,C5E33CC,gC8EgBK,SAAU,CADV,kBFg3CN,C5E/3CC,gC8EwBK,kBADA,UF42CN,C5En4CC,kC8EgCK,aAAc,CADd,yBFw2CN,C5Ev4CC,gC8EgBK,SAAU,CADV,kBF43CN,C5E34CC,gC8EwBK,kBADA,UFw3CN,C5E/4CC,kC8EgCK,aAAc,CADd,yBFo3CN,C5En5CC,gC8EgBK,SAAU,CADV,SFw4CN,C5Ev5CC,gC8EwBK,SADA,UFo4CN,C5E35CC,kC8EgCK,aAAc,CADd,gBFg4CN,C5E/5CC,gC8EgBK,SAAU,CADV,kBFo5CN,C5En6CC,gC8EwBK,kBADA,UFg5CN,C5Ev6CC,kC8EgCK,aAAc,CADd,yBF44CN,C5E36CC,gC8EgBK,SAAU,CADV,kBFg6CN,C5E/6CC,gC8EwBK,kBADA,UF45CN,C5En7CC,kC8EgCK,aAAc,CADd,yBFw5CN,C5Ev7CC,gC8EgBK,SAAU,CADV,WF46CN,C5E37CC,gC8EwBK,WADA,UFw6CN,C5E/7CC,kC8EgCK,aAAc,CADd,kBFo6CN,C5En8CC,gC8EgBK,SAAU,CADV,kBFw7CN,C5Ev8CC,gC8EwBK,kBADA,UFo7CN,C5E38CC,kC8EgCK,aAAc,CADd,yBFg7CN,C5E/8CC,gC8EgBK,SAAU,CADV,kBFo8CN,C5En9CC,gC8EwBK,kBADA,UFg8CN,C5Ev9CC,kC8EgCK,aAAc,CADd,yBF47CN,C5E39CC,gC8EgBK,SAAU,CADV,UFg9CN,C5E/9CC,gC8EwBK,UADA,UF48CN,C5En+CC,kC8EgCK,aAAc,CADd,iBFw8CN,CAh5CA,yB5EvFC,e6EUG,aAAc,CACd,cACA,cDi+CF,C5E7+CD,oB6EeG,SDi+CF,C5Eh/CD,oB6EkBG,UDi+CF,C5En/CD,sB6EqBG,gBDi+CF,C5Et/CD,qB6EwBG,QDi+CF,C5Ez/CD,e6EUG,aAAc,CACd,sBACA,sBDk/CF,C5E9/CD,oB6EeG,iBDk/CF,C5EjgDD,oB6EkBG,kBDk/CF,C5EpgDD,sB6EqBG,wBDk/CF,C5EvgDD,qB6EwBG,QDk/CF,C5E1gDD,e6EUG,aAAc,CACd,sBACA,sBDmgDF,C5E/gDD,oB6EeG,iBDmgDF,C5ElhDD,oB6EkBG,kBDmgDF,C5ErhDD,sB6EqBG,wBDmgDF,C5ExhDD,qB6EwBG,QDmgDF,C5E3hDD,e6EUG,aAAc,CACd,eACA,eDohDF,C5EhiDD,oB6EeG,UDohDF,C5EniDD,oB6EkBG,WDohDF,C5EtiDD,sB6EqBG,iBDohDF,C5EziDD,qB6EwBG,QDohDF,C5E5iDD,e6EUG,aAAc,CACd,sBACA,sBDqiDF,C5EjjDD,oB6EeG,iBDqiDF,C5EpjDD,oB6EkBG,kBDqiDF,C5EvjDD,sB6EqBG,wBDqiDF,C5E1jDD,qB6EwBG,QDqiDF,C5E7jDD,e6EUG,aAAc,CACd,sBACA,sBDsjDF,C5ElkDD,oB6EeG,iBDsjDF,C5ErkDD,oB6EkBG,kBDsjDF,C5ExkDD,sB6EqBG,wBDsjDF,C5E3kDD,qB6EwBG,QDsjDF,C5E9kDD,e6EUG,aAAc,CACd,aACA,aDukDF,C5EnlDD,oB6EeG,QDukDF,C5EtlDD,oB6EkBG,SDukDF,C5EzlDD,sB6EqBG,eDukDF,C5E5lDD,qB6EwBG,QDukDF,C5E/lDD,e6EUG,aAAc,CACd,sBACA,sBDwlDF,C5EpmDD,oB6EeG,iBDwlDF,C5EvmDD,oB6EkBG,kBDwlDF,C5E1mDD,sB6EqBG,wBDwlDF,C5E7mDD,qB6EwBG,QDwlDF,C5EhnDD,e6EUG,aAAc,CACd,sBACA,sBDymDF,C5ErnDD,oB6EeG,iBDymDF,C5ExnDD,oB6EkBG,kBDymDF,C5E3nDD,sB6EqBG,wBDymDF,C5E9nDD,qB6EwBG,QDymDF,C5EjoDD,e6EUG,aAAc,CACd,eACA,eD0nDF,C5EtoDD,oB6EeG,UD0nDF,C5EzoDD,oB6EkBG,WD0nDF,C5E5oDD,sB6EqBG,iBD0nDF,C5E/oDD,qB6EwBG,QD0nDF,C5ElpDD,e6EUG,aAAc,CACd,sBACA,sBD2oDF,C5EvpDD,oB6EeG,iBD2oDF,C5E1pDD,oB6EkBG,kBD2oDF,C5E7pDD,sB6EqBG,wBD2oDF,C5EhqDD,qB6EwBG,QD2oDF,C5EnqDD,e6EUG,aAAc,CACd,sBACA,sBD4pDF,C5ExqDD,oB6EeG,iBD4pDF,C5E3qDD,oB6EkBG,kBD4pDF,C5E9qDD,sB6EqBG,wBD4pDF,C5EjrDD,qB6EwBG,QD4pDF,C5EprDD,e6EUG,aAAc,CACd,aACA,aD6qDF,C5EzrDD,oB6EeG,QD6qDF,C5E5rDD,oB6EkBG,SD6qDF,C5E/rDD,sB6EqBG,eD6qDF,C5ElsDD,qB6EwBG,QD6qDF,C5ErsDD,e6EUG,aAAc,CACd,sBACA,sBD8rDF,C5E1sDD,oB6EeG,iBD8rDF,C5E7sDD,oB6EkBG,kBD8rDF,C5EhtDD,sB6EqBG,wBD8rDF,C5EntDD,qB6EwBG,QD8rDF,C5EttDD,e6EUG,aAAc,CACd,sBACA,sBD+sDF,C5E3tDD,oB6EeG,iBD+sDF,C5E9tDD,oB6EkBG,kBD+sDF,C5EjuDD,sB6EqBG,wBD+sDF,C5EpuDD,qB6EwBG,QD+sDF,C5EvuDD,c6EUG,aAAc,CACd,eACA,eDguDF,C5E5uDD,mB6EeG,UDguDF,C5E/uDD,mB6EkBG,WDguDF,C5ElvDD,qB6EqBG,iBDguDF,C5ErvDD,oB6EwBG,ODguDF,C5ExvDD,c6EUG,aAAc,CACd,sBACA,sBDivDF,C5E7vDD,mB6EeG,iBDivDF,C5EhwDD,mB6EkBG,kBDivDF,C5EnwDD,qB6EqBG,wBDivDF,C5EtwDD,oB6EwBG,ODivDF,C5EzwDD,c6EUG,aAAc,CACd,sBACA,sBDkwDF,C5E9wDD,mB6EeG,iBDkwDF,C5EjxDD,mB6EkBG,kBDkwDF,C5EpxDD,qB6EqBG,wBDkwDF,C5EvxDD,oB6EwBG,ODkwDF,C5E1xDD,c6EUG,aAAc,CACd,aACA,aDmxDF,C5E/xDD,mB6EeG,QDmxDF,C5ElyDD,mB6EkBG,SDmxDF,C5EryDD,qB6EqBG,eDmxDF,C5ExyDD,oB6EwBG,ODmxDF,C5E3yDD,c6EUG,aAAc,CACd,sBACA,sBDoyDF,C5EhzDD,mB6EeG,iBDoyDF,C5EnzDD,mB6EkBG,kBDoyDF,C5EtzDD,qB6EqBG,wBDoyDF,C5EzzDD,oB6EwBG,ODoyDF,C5E5zDD,c6EUG,aAAc,CACd,sBACA,sBDqzDF,C5Ej0DD,mB6EeG,iBDqzDF,C5Ep0DD,mB6EkBG,kBDqzDF,C5Ev0DD,qB6EqBG,wBDqzDF,C5E10DD,oB6EwBG,ODqzDF,C5E70DD,c6EUG,aAAc,CACd,eACA,eDs0DF,C5El1DD,mB6EeG,UDs0DF,C5Er1DD,mB6EkBG,WDs0DF,C5Ex1DD,qB6EqBG,iBDs0DF,C5E31DD,oB6EwBG,ODs0DF,C5E91DD,c6EUG,aAAc,CACd,qBACA,qBDu1DF,C5En2DD,mB6EeG,gBDu1DF,C5Et2DD,mB6EkBG,iBDu1DF,C5Ez2DD,qB6EqBG,uBDu1DF,C5E52DD,oB6EwBG,ODu1DF,C5E/2DD,c6EUG,aAAc,CACd,qBACA,qBDw2DF,C5Ep3DD,mB6EeG,gBDw2DF,C5Ev3DD,mB6EkBG,iBDw2DF,C5E13DD,qB6EqBG,uBDw2DF,C5E73DD,oB6EwBG,ODw2DF,C5Eh4DD,c6E+BG,YDo2DF,C5En4DD,gB6EkCG,SDo2DF,C5Et4DD,gB6EqCG,UDo2DF,C5Ez4DD,mB6EwCG,SDo2DF,C5E54DD,mB6E2CG,UDo2DF,C5E/4DD,qB6E8CG,aDo2DF,C5El5DD,oB6EiDG,ODo2DF,C5Er5DD,4B8EyCK,UF+2DJ,C5Ex5DD,4B8E+CK,SF42DJ,C5E35DD,+B8EqDK,UFy2DJ,C5E95DD,+B8E2DK,SFs2DJ,C5Ej6DD,iC8EiEK,cFm2DJ,C5Ep6DD,+B8EgBK,SAAU,CADV,iBFy5DJ,C5Ex6DD,+B8EwBK,iBADA,UFq5DJ,C5E56DD,iC8EgCK,aAAc,CADd,wBFi5DJ,C5Eh7DD,+B8EgBK,SAAU,CADV,iBFq6DJ,C5Ep7DD,+B8EwBK,iBADA,UFi6DJ,C5Ex7DD,iC8EgCK,aAAc,CADd,wBF65DJ,C5E57DD,+B8EgBK,SAAU,CADV,WFi7DJ,C5Eh8DD,+B8EwBK,WADA,UF66DJ,C5Ep8DD,iC8EgCK,aAAc,CADd,kBFy6DJ,C5Ex8DD,+B8EgBK,SAAU,CADV,kBF67DJ,C5E58DD,+B8EwBK,kBADA,UFy7DJ,C5Eh9DD,iC8EgCK,aAAc,CADd,yBFq7DJ,C5Ep9DD,+B8EgBK,SAAU,CADV,kBFy8DJ,C5Ex9DD,+B8EwBK,kBADA,UFq8DJ,C5E59DD,iC8EgCK,aAAc,CADd,yBFi8DJ,C5Eh+DD,+B8EgBK,SAAU,CADV,SFq9DJ,C5Ep+DD,+B8EwBK,SADA,UFi9DJ,C5Ex+DD,iC8EgCK,aAAc,CADd,gBF68DJ,C5E5+DD,+B8EgBK,SAAU,CADV,kBFi+DJ,C5Eh/DD,+B8EwBK,kBADA,UF69DJ,C5Ep/DD,iC8EgCK,aAAc,CADd,yBFy9DJ,C5Ex/DD,+B8EgBK,SAAU,CADV,kBF6+DJ,C5E5/DD,+B8EwBK,kBADA,UFy+DJ,C5EhgED,iC8EgCK,aAAc,CADd,yBFq+DJ,C5EpgED,+B8EgBK,SAAU,CADV,WFy/DJ,C5ExgED,+B8EwBK,WADA,UFq/DJ,C5E5gED,iC8EgCK,aAAc,CADd,kBFi/DJ,C5EhhED,gC8EgBK,SAAU,CADV,kBFqgEJ,C5EphED,gC8EwBK,kBADA,UFigEJ,C5ExhED,kC8EgCK,aAAc,CADd,yBF6/DJ,C5E5hED,gC8EgBK,SAAU,CADV,kBFihEJ,C5EhiED,gC8EwBK,kBADA,UF6gEJ,C5EpiED,kC8EgCK,aAAc,CADd,yBFygEJ,C5ExiED,gC8EgBK,SAAU,CADV,SF6hEJ,C5E5iED,gC8EwBK,SADA,UFyhEJ,C5EhjED,kC8EgCK,aAAc,CADd,gBFqhEJ,C5EpjED,gC8EgBK,SAAU,CADV,kBFyiEJ,C5ExjED,gC8EwBK,kBADA,UFqiEJ,C5E5jED,kC8EgCK,aAAc,CADd,yBFiiEJ,C5EhkED,gC8EgBK,SAAU,CADV,kBFqjEJ,C5EpkED,gC8EwBK,kBADA,UFijEJ,C5ExkED,kC8EgCK,aAAc,CADd,yBF6iEJ,C5E5kED,gC8EgBK,SAAU,CADV,WFikEJ,C5EhlED,gC8EwBK,WADA,UF6jEJ,C5EplED,kC8EgCK,aAAc,CADd,kBFyjEJ,C5ExlED,gC8EgBK,SAAU,CADV,kBF6kEJ,C5E5lED,gC8EwBK,kBADA,UFykEJ,C5EhmED,kC8EgCK,aAAc,CADd,yBFqkEJ,C5EpmED,gC8EgBK,SAAU,CADV,kBFylEJ,C5ExmED,gC8EwBK,kBADA,UFqlEJ,C5E5mED,kC8EgCK,aAAc,CADd,yBFilEJ,C5EhnED,gC8EgBK,SAAU,CADV,SFqmEJ,C5EpnED,gC8EwBK,SADA,UFimEJ,C5ExnED,kC8EgCK,aAAc,CADd,gBF6lEJ,C5E5nED,gC8EgBK,SAAU,CADV,kBFinEJ,C5EhoED,gC8EwBK,kBADA,UF6mEJ,C5EpoED,kC8EgCK,aAAc,CADd,yBFymEJ,C5ExoED,gC8EgBK,SAAU,CADV,kBF6nEJ,C5E5oED,gC8EwBK,kBADA,UFynEJ,C5EhpED,kC8EgCK,aAAc,CADd,yBFqnEJ,C5EppED,gC8EgBK,SAAU,CADV,WFyoEJ,C5ExpED,gC8EwBK,WADA,UFqoEJ,C5E5pED,kC8EgCK,aAAc,CADd,kBFioEJ,C5EhqED,gC8EgBK,SAAU,CADV,kBFqpEJ,C5EpqED,gC8EwBK,kBADA,UFipEJ,C5ExqED,kC8EgCK,aAAc,CADd,yBF6oEJ,C5E5qED,gC8EgBK,SAAU,CADV,kBFiqEJ,C5EhrED,gC8EwBK,kBADA,UF6pEJ,C5EprED,kC8EgCK,aAAc,CADd,yBFypEJ,C5ExrED,gC8EgBK,SAAU,CADV,UF6qEJ,C5E5rED,gC8EwBK,UADA,UFyqEJ,C5EhsED,kC8EgCK,aAAc,CADd,iBFqqEJ,CACF,CAtmEA,yB5E/FC,e6EUG,aAAc,CACd,cACA,cD+rEF,C5E3sED,oB6EeG,SD+rEF,C5E9sED,oB6EkBG,UD+rEF,C5EjtED,sB6EqBG,gBD+rEF,C5EptED,qB6EwBG,QD+rEF,C5EvtED,e6EUG,aAAc,CACd,sBACA,sBDgtEF,C5E5tED,oB6EeG,iBDgtEF,C5E/tED,oB6EkBG,kBDgtEF,C5EluED,sB6EqBG,wBDgtEF,C5EruED,qB6EwBG,QDgtEF,C5ExuED,e6EUG,aAAc,CACd,sBACA,sBDiuEF,C5E7uED,oB6EeG,iBDiuEF,C5EhvED,oB6EkBG,kBDiuEF,C5EnvED,sB6EqBG,wBDiuEF,C5EtvED,qB6EwBG,QDiuEF,C5EzvED,e6EUG,aAAc,CACd,eACA,eDkvEF,C5E9vED,oB6EeG,UDkvEF,C5EjwED,oB6EkBG,WDkvEF,C5EpwED,sB6EqBG,iBDkvEF,C5EvwED,qB6EwBG,QDkvEF,C5E1wED,e6EUG,aAAc,CACd,sBACA,sBDmwEF,C5E/wED,oB6EeG,iBDmwEF,C5ElxED,oB6EkBG,kBDmwEF,C5ErxED,sB6EqBG,wBDmwEF,C5ExxED,qB6EwBG,QDmwEF,C5E3xED,e6EUG,aAAc,CACd,sBACA,sBDoxEF,C5EhyED,oB6EeG,iBDoxEF,C5EnyED,oB6EkBG,kBDoxEF,C5EtyED,sB6EqBG,wBDoxEF,C5EzyED,qB6EwBG,QDoxEF,C5E5yED,e6EUG,aAAc,CACd,aACA,aDqyEF,C5EjzED,oB6EeG,QDqyEF,C5EpzED,oB6EkBG,SDqyEF,C5EvzED,sB6EqBG,eDqyEF,C5E1zED,qB6EwBG,QDqyEF,C5E7zED,e6EUG,aAAc,CACd,sBACA,sBDszEF,C5El0ED,oB6EeG,iBDszEF,C5Er0ED,oB6EkBG,kBDszEF,C5Ex0ED,sB6EqBG,wBDszEF,C5E30ED,qB6EwBG,QDszEF,C5E90ED,e6EUG,aAAc,CACd,sBACA,sBDu0EF,C5En1ED,oB6EeG,iBDu0EF,C5Et1ED,oB6EkBG,kBDu0EF,C5Ez1ED,sB6EqBG,wBDu0EF,C5E51ED,qB6EwBG,QDu0EF,C5E/1ED,e6EUG,aAAc,CACd,eACA,eDw1EF,C5Ep2ED,oB6EeG,UDw1EF,C5Ev2ED,oB6EkBG,WDw1EF,C5E12ED,sB6EqBG,iBDw1EF,C5E72ED,qB6EwBG,QDw1EF,C5Eh3ED,e6EUG,aAAc,CACd,sBACA,sBDy2EF,C5Er3ED,oB6EeG,iBDy2EF,C5Ex3ED,oB6EkBG,kBDy2EF,C5E33ED,sB6EqBG,wBDy2EF,C5E93ED,qB6EwBG,QDy2EF,C5Ej4ED,e6EUG,aAAc,CACd,sBACA,sBD03EF,C5Et4ED,oB6EeG,iBD03EF,C5Ez4ED,oB6EkBG,kBD03EF,C5E54ED,sB6EqBG,wBD03EF,C5E/4ED,qB6EwBG,QD03EF,C5El5ED,e6EUG,aAAc,CACd,aACA,aD24EF,C5Ev5ED,oB6EeG,QD24EF,C5E15ED,oB6EkBG,SD24EF,C5E75ED,sB6EqBG,eD24EF,C5Eh6ED,qB6EwBG,QD24EF,C5En6ED,e6EUG,aAAc,CACd,sBACA,sBD45EF,C5Ex6ED,oB6EeG,iBD45EF,C5E36ED,oB6EkBG,kBD45EF,C5E96ED,sB6EqBG,wBD45EF,C5Ej7ED,qB6EwBG,QD45EF,C5Ep7ED,e6EUG,aAAc,CACd,sBACA,sBD66EF,C5Ez7ED,oB6EeG,iBD66EF,C5E57ED,oB6EkBG,kBD66EF,C5E/7ED,sB6EqBG,wBD66EF,C5El8ED,qB6EwBG,QD66EF,C5Er8ED,c6EUG,aAAc,CACd,eACA,eD87EF,C5E18ED,mB6EeG,UD87EF,C5E78ED,mB6EkBG,WD87EF,C5Eh9ED,qB6EqBG,iBD87EF,C5En9ED,oB6EwBG,OD87EF,C5Et9ED,c6EUG,aAAc,CACd,sBACA,sBD+8EF,C5E39ED,mB6EeG,iBD+8EF,C5E99ED,mB6EkBG,kBD+8EF,C5Ej+ED,qB6EqBG,wBD+8EF,C5Ep+ED,oB6EwBG,OD+8EF,C5Ev+ED,c6EUG,aAAc,CACd,sBACA,sBDg+EF,C5E5+ED,mB6EeG,iBDg+EF,C5E/+ED,mB6EkBG,kBDg+EF,C5El/ED,qB6EqBG,wBDg+EF,C5Er/ED,oB6EwBG,ODg+EF,C5Ex/ED,c6EUG,aAAc,CACd,aACA,aDi/EF,C5E7/ED,mB6EeG,QDi/EF,C5EhgFD,mB6EkBG,SDi/EF,C5EngFD,qB6EqBG,eDi/EF,C5EtgFD,oB6EwBG,ODi/EF,C5EzgFD,c6EUG,aAAc,CACd,sBACA,sBDkgFF,C5E9gFD,mB6EeG,iBDkgFF,C5EjhFD,mB6EkBG,kBDkgFF,C5EphFD,qB6EqBG,wBDkgFF,C5EvhFD,oB6EwBG,ODkgFF,C5E1hFD,c6EUG,aAAc,CACd,sBACA,sBDmhFF,C5E/hFD,mB6EeG,iBDmhFF,C5EliFD,mB6EkBG,kBDmhFF,C5EriFD,qB6EqBG,wBDmhFF,C5ExiFD,oB6EwBG,ODmhFF,C5E3iFD,c6EUG,aAAc,CACd,eACA,eDoiFF,C5EhjFD,mB6EeG,UDoiFF,C5EnjFD,mB6EkBG,WDoiFF,C5EtjFD,qB6EqBG,iBDoiFF,C5EzjFD,oB6EwBG,ODoiFF,C5E5jFD,c6EUG,aAAc,CACd,qBACA,qBDqjFF,C5EjkFD,mB6EeG,gBDqjFF,C5EpkFD,mB6EkBG,iBDqjFF,C5EvkFD,qB6EqBG,uBDqjFF,C5E1kFD,oB6EwBG,ODqjFF,C5E7kFD,c6EUG,aAAc,CACd,qBACA,qBDskFF,C5EllFD,mB6EeG,gBDskFF,C5ErlFD,mB6EkBG,iBDskFF,C5ExlFD,qB6EqBG,uBDskFF,C5E3lFD,oB6EwBG,ODskFF,C5E9lFD,c6E+BG,YDkkFF,C5EjmFD,gB6EkCG,SDkkFF,C5EpmFD,gB6EqCG,UDkkFF,C5EvmFD,mB6EwCG,SDkkFF,C5E1mFD,mB6E2CG,UDkkFF,C5E7mFD,qB6E8CG,aDkkFF,C5EhnFD,oB6EiDG,ODkkFF,C5EnnFD,4B8EyCK,UF6kFJ,C5EtnFD,4B8E+CK,SF0kFJ,C5EznFD,+B8EqDK,UFukFJ,C5E5nFD,+B8E2DK,SFokFJ,C5E/nFD,iC8EiEK,cFikFJ,C5EloFD,+B8EgBK,SAAU,CADV,iBFunFJ,C5EtoFD,+B8EwBK,iBADA,UFmnFJ,C5E1oFD,iC8EgCK,aAAc,CADd,wBF+mFJ,C5E9oFD,+B8EgBK,SAAU,CADV,iBFmoFJ,C5ElpFD,+B8EwBK,iBADA,UF+nFJ,C5EtpFD,iC8EgCK,aAAc,CADd,wBF2nFJ,C5E1pFD,+B8EgBK,SAAU,CADV,WF+oFJ,C5E9pFD,+B8EwBK,WADA,UF2oFJ,C5ElqFD,iC8EgCK,aAAc,CADd,kBFuoFJ,C5EtqFD,+B8EgBK,SAAU,CADV,kBF2pFJ,C5E1qFD,+B8EwBK,kBADA,UFupFJ,C5E9qFD,iC8EgCK,aAAc,CADd,yBFmpFJ,C5ElrFD,+B8EgBK,SAAU,CADV,kBFuqFJ,C5EtrFD,+B8EwBK,kBADA,UFmqFJ,C5E1rFD,iC8EgCK,aAAc,CADd,yBF+pFJ,C5E9rFD,+B8EgBK,SAAU,CADV,SFmrFJ,C5ElsFD,+B8EwBK,SADA,UF+qFJ,C5EtsFD,iC8EgCK,aAAc,CADd,gBF2qFJ,C5E1sFD,+B8EgBK,SAAU,CADV,kBF+rFJ,C5E9sFD,+B8EwBK,kBADA,UF2rFJ,C5EltFD,iC8EgCK,aAAc,CADd,yBFurFJ,C5EttFD,+B8EgBK,SAAU,CADV,kBF2sFJ,C5E1tFD,+B8EwBK,kBADA,UFusFJ,C5E9tFD,iC8EgCK,aAAc,CADd,yBFmsFJ,C5EluFD,+B8EgBK,SAAU,CADV,WFutFJ,C5EtuFD,+B8EwBK,WADA,UFmtFJ,C5E1uFD,iC8EgCK,aAAc,CADd,kBF+sFJ,C5E9uFD,gC8EgBK,SAAU,CADV,kBFmuFJ,C5ElvFD,gC8EwBK,kBADA,UF+tFJ,C5EtvFD,kC8EgCK,aAAc,CADd,yBF2tFJ,C5E1vFD,gC8EgBK,SAAU,CADV,kBF+uFJ,C5E9vFD,gC8EwBK,kBADA,UF2uFJ,C5ElwFD,kC8EgCK,aAAc,CADd,yBFuuFJ,C5EtwFD,gC8EgBK,SAAU,CADV,SF2vFJ,C5E1wFD,gC8EwBK,SADA,UFuvFJ,C5E9wFD,kC8EgCK,aAAc,CADd,gBFmvFJ,C5ElxFD,gC8EgBK,SAAU,CADV,kBFuwFJ,C5EtxFD,gC8EwBK,kBADA,UFmwFJ,C5E1xFD,kC8EgCK,aAAc,CADd,yBF+vFJ,C5E9xFD,gC8EgBK,SAAU,CADV,kBFmxFJ,C5ElyFD,gC8EwBK,kBADA,UF+wFJ,C5EtyFD,kC8EgCK,aAAc,CADd,yBF2wFJ,C5E1yFD,gC8EgBK,SAAU,CADV,WF+xFJ,C5E9yFD,gC8EwBK,WADA,UF2xFJ,C5ElzFD,kC8EgCK,aAAc,CADd,kBFuxFJ,C5EtzFD,gC8EgBK,SAAU,CADV,kBF2yFJ,C5E1zFD,gC8EwBK,kBADA,UFuyFJ,C5E9zFD,kC8EgCK,aAAc,CADd,yBFmyFJ,C5El0FD,gC8EgBK,SAAU,CADV,kBFuzFJ,C5Et0FD,gC8EwBK,kBADA,UFmzFJ,C5E10FD,kC8EgCK,aAAc,CADd,yBF+yFJ,C5E90FD,gC8EgBK,SAAU,CADV,SFm0FJ,C5El1FD,gC8EwBK,SADA,UF+zFJ,C5Et1FD,kC8EgCK,aAAc,CADd,gBF2zFJ,C5E11FD,gC8EgBK,SAAU,CADV,kBF+0FJ,C5E91FD,gC8EwBK,kBADA,UF20FJ,C5El2FD,kC8EgCK,aAAc,CADd,yBFu0FJ,C5Et2FD,gC8EgBK,SAAU,CADV,kBF21FJ,C5E12FD,gC8EwBK,kBADA,UFu1FJ,C5E92FD,kC8EgCK,aAAc,CADd,yBFm1FJ,C5El3FD,gC8EgBK,SAAU,CADV,WFu2FJ,C5Et3FD,gC8EwBK,WADA,UFm2FJ,C5E13FD,kC8EgCK,aAAc,CADd,kBF+1FJ,C5E93FD,gC8EgBK,SAAU,CADV,kBFm3FJ,C5El4FD,gC8EwBK,kBADA,UF+2FJ,C5Et4FD,kC8EgCK,aAAc,CADd,yBF22FJ,C5E14FD,gC8EgBK,SAAU,CADV,kBF+3FJ,C5E94FD,gC8EwBK,kBADA,UF23FJ,C5El5FD,kC8EgCK,aAAc,CADd,yBFu3FJ,C5Et5FD,gC8EgBK,SAAU,CADV,UF24FJ,C5E15FD,gC8EwBK,UADA,UFu4FJ,C5E95FD,kC8EgCK,aAAc,CADd,iBFm4FJ,CACF,CA5zFA,yB5EvGC,e6EUG,aAAc,CACd,cACA,cD65FF,C5Ez6FD,oB6EeG,SD65FF,C5E56FD,oB6EkBG,UD65FF,C5E/6FD,sB6EqBG,gBD65FF,C5El7FD,qB6EwBG,QD65FF,C5Er7FD,e6EUG,aAAc,CACd,sBACA,sBD86FF,C5E17FD,oB6EeG,iBD86FF,C5E77FD,oB6EkBG,kBD86FF,C5Eh8FD,sB6EqBG,wBD86FF,C5En8FD,qB6EwBG,QD86FF,C5Et8FD,e6EUG,aAAc,CACd,sBACA,sBD+7FF,C5E38FD,oB6EeG,iBD+7FF,C5E98FD,oB6EkBG,kBD+7FF,C5Ej9FD,sB6EqBG,wBD+7FF,C5Ep9FD,qB6EwBG,QD+7FF,C5Ev9FD,e6EUG,aAAc,CACd,eACA,eDg9FF,C5E59FD,oB6EeG,UDg9FF,C5E/9FD,oB6EkBG,WDg9FF,C5El+FD,sB6EqBG,iBDg9FF,C5Er+FD,qB6EwBG,QDg9FF,C5Ex+FD,e6EUG,aAAc,CACd,sBACA,sBDi+FF,C5E7+FD,oB6EeG,iBDi+FF,C5Eh/FD,oB6EkBG,kBDi+FF,C5En/FD,sB6EqBG,wBDi+FF,C5Et/FD,qB6EwBG,QDi+FF,C5Ez/FD,e6EUG,aAAc,CACd,sBACA,sBDk/FF,C5E9/FD,oB6EeG,iBDk/FF,C5EjgGD,oB6EkBG,kBDk/FF,C5EpgGD,sB6EqBG,wBDk/FF,C5EvgGD,qB6EwBG,QDk/FF,C5E1gGD,e6EUG,aAAc,CACd,aACA,aDmgGF,C5E/gGD,oB6EeG,QDmgGF,C5ElhGD,oB6EkBG,SDmgGF,C5ErhGD,sB6EqBG,eDmgGF,C5ExhGD,qB6EwBG,QDmgGF,C5E3hGD,e6EUG,aAAc,CACd,sBACA,sBDohGF,C5EhiGD,oB6EeG,iBDohGF,C5EniGD,oB6EkBG,kBDohGF,C5EtiGD,sB6EqBG,wBDohGF,C5EziGD,qB6EwBG,QDohGF,C5E5iGD,e6EUG,aAAc,CACd,sBACA,sBDqiGF,C5EjjGD,oB6EeG,iBDqiGF,C5EpjGD,oB6EkBG,kBDqiGF,C5EvjGD,sB6EqBG,wBDqiGF,C5E1jGD,qB6EwBG,QDqiGF,C5E7jGD,e6EUG,aAAc,CACd,eACA,eDsjGF,C5ElkGD,oB6EeG,UDsjGF,C5ErkGD,oB6EkBG,WDsjGF,C5ExkGD,sB6EqBG,iBDsjGF,C5E3kGD,qB6EwBG,QDsjGF,C5E9kGD,e6EUG,aAAc,CACd,sBACA,sBDukGF,C5EnlGD,oB6EeG,iBDukGF,C5EtlGD,oB6EkBG,kBDukGF,C5EzlGD,sB6EqBG,wBDukGF,C5E5lGD,qB6EwBG,QDukGF,C5E/lGD,e6EUG,aAAc,CACd,sBACA,sBDwlGF,C5EpmGD,oB6EeG,iBDwlGF,C5EvmGD,oB6EkBG,kBDwlGF,C5E1mGD,sB6EqBG,wBDwlGF,C5E7mGD,qB6EwBG,QDwlGF,C5EhnGD,e6EUG,aAAc,CACd,aACA,aDymGF,C5ErnGD,oB6EeG,QDymGF,C5ExnGD,oB6EkBG,SDymGF,C5E3nGD,sB6EqBG,eDymGF,C5E9nGD,qB6EwBG,QDymGF,C5EjoGD,e6EUG,aAAc,CACd,sBACA,sBD0nGF,C5EtoGD,oB6EeG,iBD0nGF,C5EzoGD,oB6EkBG,kBD0nGF,C5E5oGD,sB6EqBG,wBD0nGF,C5E/oGD,qB6EwBG,QD0nGF,C5ElpGD,e6EUG,aAAc,CACd,sBACA,sBD2oGF,C5EvpGD,oB6EeG,iBD2oGF,C5E1pGD,oB6EkBG,kBD2oGF,C5E7pGD,sB6EqBG,wBD2oGF,C5EhqGD,qB6EwBG,QD2oGF,C5EnqGD,c6EUG,aAAc,CACd,eACA,eD4pGF,C5ExqGD,mB6EeG,UD4pGF,C5E3qGD,mB6EkBG,WD4pGF,C5E9qGD,qB6EqBG,iBD4pGF,C5EjrGD,oB6EwBG,OD4pGF,C5EprGD,c6EUG,aAAc,CACd,sBACA,sBD6qGF,C5EzrGD,mB6EeG,iBD6qGF,C5E5rGD,mB6EkBG,kBD6qGF,C5E/rGD,qB6EqBG,wBD6qGF,C5ElsGD,oB6EwBG,OD6qGF,C5ErsGD,c6EUG,aAAc,CACd,sBACA,sBD8rGF,C5E1sGD,mB6EeG,iBD8rGF,C5E7sGD,mB6EkBG,kBD8rGF,C5EhtGD,qB6EqBG,wBD8rGF,C5EntGD,oB6EwBG,OD8rGF,C5EttGD,c6EUG,aAAc,CACd,aACA,aD+sGF,C5E3tGD,mB6EeG,QD+sGF,C5E9tGD,mB6EkBG,SD+sGF,C5EjuGD,qB6EqBG,eD+sGF,C5EpuGD,oB6EwBG,OD+sGF,C5EvuGD,c6EUG,aAAc,CACd,sBACA,sBDguGF,C5E5uGD,mB6EeG,iBDguGF,C5E/uGD,mB6EkBG,kBDguGF,C5ElvGD,qB6EqBG,wBDguGF,C5ErvGD,oB6EwBG,ODguGF,C5ExvGD,c6EUG,aAAc,CACd,sBACA,sBDivGF,C5E7vGD,mB6EeG,iBDivGF,C5EhwGD,mB6EkBG,kBDivGF,C5EnwGD,qB6EqBG,wBDivGF,C5EtwGD,oB6EwBG,ODivGF,C5EzwGD,c6EUG,aAAc,CACd,eACA,eDkwGF,C5E9wGD,mB6EeG,UDkwGF,C5EjxGD,mB6EkBG,WDkwGF,C5EpxGD,qB6EqBG,iBDkwGF,C5EvxGD,oB6EwBG,ODkwGF,C5E1xGD,c6EUG,aAAc,CACd,qBACA,qBDmxGF,C5E/xGD,mB6EeG,gBDmxGF,C5ElyGD,mB6EkBG,iBDmxGF,C5EryGD,qB6EqBG,uBDmxGF,C5ExyGD,oB6EwBG,ODmxGF,C5E3yGD,c6EUG,aAAc,CACd,qBACA,qBDoyGF,C5EhzGD,mB6EeG,gBDoyGF,C5EnzGD,mB6EkBG,iBDoyGF,C5EtzGD,qB6EqBG,uBDoyGF,C5EzzGD,oB6EwBG,ODoyGF,C5E5zGD,c6E+BG,YDgyGF,C5E/zGD,gB6EkCG,SDgyGF,C5El0GD,gB6EqCG,UDgyGF,C5Er0GD,mB6EwCG,SDgyGF,C5Ex0GD,mB6E2CG,UDgyGF,C5E30GD,qB6E8CG,aDgyGF,C5E90GD,oB6EiDG,ODgyGF,C5Ej1GD,4B8EyCK,UF2yGJ,C5Ep1GD,4B8E+CK,SFwyGJ,C5Ev1GD,+B8EqDK,UFqyGJ,C5E11GD,+B8E2DK,SFkyGJ,C5E71GD,iC8EiEK,cF+xGJ,C5Eh2GD,+B8EgBK,SAAU,CADV,iBFq1GJ,C5Ep2GD,+B8EwBK,iBADA,UFi1GJ,C5Ex2GD,iC8EgCK,aAAc,CADd,wBF60GJ,C5E52GD,+B8EgBK,SAAU,CADV,iBFi2GJ,C5Eh3GD,+B8EwBK,iBADA,UF61GJ,C5Ep3GD,iC8EgCK,aAAc,CADd,wBFy1GJ,C5Ex3GD,+B8EgBK,SAAU,CADV,WF62GJ,C5E53GD,+B8EwBK,WADA,UFy2GJ,C5Eh4GD,iC8EgCK,aAAc,CADd,kBFq2GJ,C5Ep4GD,+B8EgBK,SAAU,CADV,kBFy3GJ,C5Ex4GD,+B8EwBK,kBADA,UFq3GJ,C5E54GD,iC8EgCK,aAAc,CADd,yBFi3GJ,C5Eh5GD,+B8EgBK,SAAU,CADV,kBFq4GJ,C5Ep5GD,+B8EwBK,kBADA,UFi4GJ,C5Ex5GD,iC8EgCK,aAAc,CADd,yBF63GJ,C5E55GD,+B8EgBK,SAAU,CADV,SFi5GJ,C5Eh6GD,+B8EwBK,SADA,UF64GJ,C5Ep6GD,iC8EgCK,aAAc,CADd,gBFy4GJ,C5Ex6GD,+B8EgBK,SAAU,CADV,kBF65GJ,C5E56GD,+B8EwBK,kBADA,UFy5GJ,C5Eh7GD,iC8EgCK,aAAc,CADd,yBFq5GJ,C5Ep7GD,+B8EgBK,SAAU,CADV,kBFy6GJ,C5Ex7GD,+B8EwBK,kBADA,UFq6GJ,C5E57GD,iC8EgCK,aAAc,CADd,yBFi6GJ,C5Eh8GD,+B8EgBK,SAAU,CADV,WFq7GJ,C5Ep8GD,+B8EwBK,WADA,UFi7GJ,C5Ex8GD,iC8EgCK,aAAc,CADd,kBF66GJ,C5E58GD,gC8EgBK,SAAU,CADV,kBFi8GJ,C5Eh9GD,gC8EwBK,kBADA,UF67GJ,C5Ep9GD,kC8EgCK,aAAc,CADd,yBFy7GJ,C5Ex9GD,gC8EgBK,SAAU,CADV,kBF68GJ,C5E59GD,gC8EwBK,kBADA,UFy8GJ,C5Eh+GD,kC8EgCK,aAAc,CADd,yBFq8GJ,C5Ep+GD,gC8EgBK,SAAU,CADV,SFy9GJ,C5Ex+GD,gC8EwBK,SADA,UFq9GJ,C5E5+GD,kC8EgCK,aAAc,CADd,gBFi9GJ,C5Eh/GD,gC8EgBK,SAAU,CADV,kBFq+GJ,C5Ep/GD,gC8EwBK,kBADA,UFi+GJ,C5Ex/GD,kC8EgCK,aAAc,CADd,yBF69GJ,C5E5/GD,gC8EgBK,SAAU,CADV,kBFi/GJ,C5EhgHD,gC8EwBK,kBADA,UF6+GJ,C5EpgHD,kC8EgCK,aAAc,CADd,yBFy+GJ,C5ExgHD,gC8EgBK,SAAU,CADV,WF6/GJ,C5E5gHD,gC8EwBK,WADA,UFy/GJ,C5EhhHD,kC8EgCK,aAAc,CADd,kBFq/GJ,C5EphHD,gC8EgBK,SAAU,CADV,kBFygHJ,C5ExhHD,gC8EwBK,kBADA,UFqgHJ,C5E5hHD,kC8EgCK,aAAc,CADd,yBFigHJ,C5EhiHD,gC8EgBK,SAAU,CADV,kBFqhHJ,C5EpiHD,gC8EwBK,kBADA,UFihHJ,C5ExiHD,kC8EgCK,aAAc,CADd,yBF6gHJ,C5E5iHD,gC8EgBK,SAAU,CADV,SFiiHJ,C5EhjHD,gC8EwBK,SADA,UF6hHJ,C5EpjHD,kC8EgCK,aAAc,CADd,gBFyhHJ,C5ExjHD,gC8EgBK,SAAU,CADV,kBF6iHJ,C5E5jHD,gC8EwBK,kBADA,UFyiHJ,C5EhkHD,kC8EgCK,aAAc,CADd,yBFqiHJ,C5EpkHD,gC8EgBK,SAAU,CADV,kBFyjHJ,C5ExkHD,gC8EwBK,kBADA,UFqjHJ,C5E5kHD,kC8EgCK,aAAc,CADd,yBFijHJ,C5EhlHD,gC8EgBK,SAAU,CADV,WFqkHJ,C5EplHD,gC8EwBK,WADA,UFikHJ,C5ExlHD,kC8EgCK,aAAc,CADd,kBF6jHJ,C5E5lHD,gC8EgBK,SAAU,CADV,kBFilHJ,C5EhmHD,gC8EwBK,kBADA,UF6kHJ,C5EpmHD,kC8EgCK,aAAc,CADd,yBFykHJ,C5ExmHD,gC8EgBK,SAAU,CADV,kBF6lHJ,C5E5mHD,gC8EwBK,kBADA,UFylHJ,C5EhnHD,kC8EgCK,aAAc,CADd,yBFqlHJ,C5EpnHD,gC8EgBK,SAAU,CADV,UFymHJ,C5ExnHD,gC8EwBK,UADA,UFqmHJ,C5E5nHD,kC8EgCK,aAAc,CADd,iBFimHJ,CACF,CAlhHA,0B5E/GC,e6EUG,aAAc,CACd,cACA,cD2nHF,C5EvoHD,oB6EeG,SD2nHF,C5E1oHD,oB6EkBG,UD2nHF,C5E7oHD,sB6EqBG,gBD2nHF,C5EhpHD,qB6EwBG,QD2nHF,C5EnpHD,e6EUG,aAAc,CACd,sBACA,sBD4oHF,C5ExpHD,oB6EeG,iBD4oHF,C5E3pHD,oB6EkBG,kBD4oHF,C5E9pHD,sB6EqBG,wBD4oHF,C5EjqHD,qB6EwBG,QD4oHF,C5EpqHD,e6EUG,aAAc,CACd,sBACA,sBD6pHF,C5EzqHD,oB6EeG,iBD6pHF,C5E5qHD,oB6EkBG,kBD6pHF,C5E/qHD,sB6EqBG,wBD6pHF,C5ElrHD,qB6EwBG,QD6pHF,C5ErrHD,e6EUG,aAAc,CACd,eACA,eD8qHF,C5E1rHD,oB6EeG,UD8qHF,C5E7rHD,oB6EkBG,WD8qHF,C5EhsHD,sB6EqBG,iBD8qHF,C5EnsHD,qB6EwBG,QD8qHF,C5EtsHD,e6EUG,aAAc,CACd,sBACA,sBD+rHF,C5E3sHD,oB6EeG,iBD+rHF,C5E9sHD,oB6EkBG,kBD+rHF,C5EjtHD,sB6EqBG,wBD+rHF,C5EptHD,qB6EwBG,QD+rHF,C5EvtHD,e6EUG,aAAc,CACd,sBACA,sBDgtHF,C5E5tHD,oB6EeG,iBDgtHF,C5E/tHD,oB6EkBG,kBDgtHF,C5EluHD,sB6EqBG,wBDgtHF,C5EruHD,qB6EwBG,QDgtHF,C5ExuHD,e6EUG,aAAc,CACd,aACA,aDiuHF,C5E7uHD,oB6EeG,QDiuHF,C5EhvHD,oB6EkBG,SDiuHF,C5EnvHD,sB6EqBG,eDiuHF,C5EtvHD,qB6EwBG,QDiuHF,C5EzvHD,e6EUG,aAAc,CACd,sBACA,sBDkvHF,C5E9vHD,oB6EeG,iBDkvHF,C5EjwHD,oB6EkBG,kBDkvHF,C5EpwHD,sB6EqBG,wBDkvHF,C5EvwHD,qB6EwBG,QDkvHF,C5E1wHD,e6EUG,aAAc,CACd,sBACA,sBDmwHF,C5E/wHD,oB6EeG,iBDmwHF,C5ElxHD,oB6EkBG,kBDmwHF,C5ErxHD,sB6EqBG,wBDmwHF,C5ExxHD,qB6EwBG,QDmwHF,C5E3xHD,e6EUG,aAAc,CACd,eACA,eDoxHF,C5EhyHD,oB6EeG,UDoxHF,C5EnyHD,oB6EkBG,WDoxHF,C5EtyHD,sB6EqBG,iBDoxHF,C5EzyHD,qB6EwBG,QDoxHF,C5E5yHD,e6EUG,aAAc,CACd,sBACA,sBDqyHF,C5EjzHD,oB6EeG,iBDqyHF,C5EpzHD,oB6EkBG,kBDqyHF,C5EvzHD,sB6EqBG,wBDqyHF,C5E1zHD,qB6EwBG,QDqyHF,C5E7zHD,e6EUG,aAAc,CACd,sBACA,sBDszHF,C5El0HD,oB6EeG,iBDszHF,C5Er0HD,oB6EkBG,kBDszHF,C5Ex0HD,sB6EqBG,wBDszHF,C5E30HD,qB6EwBG,QDszHF,C5E90HD,e6EUG,aAAc,CACd,aACA,aDu0HF,C5En1HD,oB6EeG,QDu0HF,C5Et1HD,oB6EkBG,SDu0HF,C5Ez1HD,sB6EqBG,eDu0HF,C5E51HD,qB6EwBG,QDu0HF,C5E/1HD,e6EUG,aAAc,CACd,sBACA,sBDw1HF,C5Ep2HD,oB6EeG,iBDw1HF,C5Ev2HD,oB6EkBG,kBDw1HF,C5E12HD,sB6EqBG,wBDw1HF,C5E72HD,qB6EwBG,QDw1HF,C5Eh3HD,e6EUG,aAAc,CACd,sBACA,sBDy2HF,C5Er3HD,oB6EeG,iBDy2HF,C5Ex3HD,oB6EkBG,kBDy2HF,C5E33HD,sB6EqBG,wBDy2HF,C5E93HD,qB6EwBG,QDy2HF,C5Ej4HD,c6EUG,aAAc,CACd,eACA,eD03HF,C5Et4HD,mB6EeG,UD03HF,C5Ez4HD,mB6EkBG,WD03HF,C5E54HD,qB6EqBG,iBD03HF,C5E/4HD,oB6EwBG,OD03HF,C5El5HD,c6EUG,aAAc,CACd,sBACA,sBD24HF,C5Ev5HD,mB6EeG,iBD24HF,C5E15HD,mB6EkBG,kBD24HF,C5E75HD,qB6EqBG,wBD24HF,C5Eh6HD,oB6EwBG,OD24HF,C5En6HD,c6EUG,aAAc,CACd,sBACA,sBD45HF,C5Ex6HD,mB6EeG,iBD45HF,C5E36HD,mB6EkBG,kBD45HF,C5E96HD,qB6EqBG,wBD45HF,C5Ej7HD,oB6EwBG,OD45HF,C5Ep7HD,c6EUG,aAAc,CACd,aACA,aD66HF,C5Ez7HD,mB6EeG,QD66HF,C5E57HD,mB6EkBG,SD66HF,C5E/7HD,qB6EqBG,eD66HF,C5El8HD,oB6EwBG,OD66HF,C5Er8HD,c6EUG,aAAc,CACd,sBACA,sBD87HF,C5E18HD,mB6EeG,iBD87HF,C5E78HD,mB6EkBG,kBD87HF,C5Eh9HD,qB6EqBG,wBD87HF,C5En9HD,oB6EwBG,OD87HF,C5Et9HD,c6EUG,aAAc,CACd,sBACA,sBD+8HF,C5E39HD,mB6EeG,iBD+8HF,C5E99HD,mB6EkBG,kBD+8HF,C5Ej+HD,qB6EqBG,wBD+8HF,C5Ep+HD,oB6EwBG,OD+8HF,C5Ev+HD,c6EUG,aAAc,CACd,eACA,eDg+HF,C5E5+HD,mB6EeG,UDg+HF,C5E/+HD,mB6EkBG,WDg+HF,C5El/HD,qB6EqBG,iBDg+HF,C5Er/HD,oB6EwBG,ODg+HF,C5Ex/HD,c6EUG,aAAc,CACd,qBACA,qBDi/HF,C5E7/HD,mB6EeG,gBDi/HF,C5EhgID,mB6EkBG,iBDi/HF,C5EngID,qB6EqBG,uBDi/HF,C5EtgID,oB6EwBG,ODi/HF,C5EzgID,c6EUG,aAAc,CACd,qBACA,qBDkgIF,C5E9gID,mB6EeG,gBDkgIF,C5EjhID,mB6EkBG,iBDkgIF,C5EphID,qB6EqBG,uBDkgIF,C5EvhID,oB6EwBG,ODkgIF,C5E1hID,c6E+BG,YD8/HF,C5E7hID,gB6EkCG,SD8/HF,C5EhiID,gB6EqCG,UD8/HF,C5EniID,mB6EwCG,SD8/HF,C5EtiID,mB6E2CG,UD8/HF,C5EziID,qB6E8CG,aD8/HF,C5E5iID,oB6EiDG,OD8/HF,C5E/iID,4B8EyCK,UFygIJ,C5EljID,4B8E+CK,SFsgIJ,C5ErjID,+B8EqDK,UFmgIJ,C5ExjID,+B8E2DK,SFggIJ,C5E3jID,iC8EiEK,cF6/HJ,C5E9jID,+B8EgBK,SAAU,CADV,iBFmjIJ,C5ElkID,+B8EwBK,iBADA,UF+iIJ,C5EtkID,iC8EgCK,aAAc,CADd,wBF2iIJ,C5E1kID,+B8EgBK,SAAU,CADV,iBF+jIJ,C5E9kID,+B8EwBK,iBADA,UF2jIJ,C5EllID,iC8EgCK,aAAc,CADd,wBFujIJ,C5EtlID,+B8EgBK,SAAU,CADV,WF2kIJ,C5E1lID,+B8EwBK,WADA,UFukIJ,C5E9lID,iC8EgCK,aAAc,CADd,kBFmkIJ,C5ElmID,+B8EgBK,SAAU,CADV,kBFulIJ,C5EtmID,+B8EwBK,kBADA,UFmlIJ,C5E1mID,iC8EgCK,aAAc,CADd,yBF+kIJ,C5E9mID,+B8EgBK,SAAU,CADV,kBFmmIJ,C5ElnID,+B8EwBK,kBADA,UF+lIJ,C5EtnID,iC8EgCK,aAAc,CADd,yBF2lIJ,C5E1nID,+B8EgBK,SAAU,CADV,SF+mIJ,C5E9nID,+B8EwBK,SADA,UF2mIJ,C5EloID,iC8EgCK,aAAc,CADd,gBFumIJ,C5EtoID,+B8EgBK,SAAU,CADV,kBF2nIJ,C5E1oID,+B8EwBK,kBADA,UFunIJ,C5E9oID,iC8EgCK,aAAc,CADd,yBFmnIJ,C5ElpID,+B8EgBK,SAAU,CADV,kBFuoIJ,C5EtpID,+B8EwBK,kBADA,UFmoIJ,C5E1pID,iC8EgCK,aAAc,CADd,yBF+nIJ,C5E9pID,+B8EgBK,SAAU,CADV,WFmpIJ,C5ElqID,+B8EwBK,WADA,UF+oIJ,C5EtqID,iC8EgCK,aAAc,CADd,kBF2oIJ,C5E1qID,gC8EgBK,SAAU,CADV,kBF+pIJ,C5E9qID,gC8EwBK,kBADA,UF2pIJ,C5ElrID,kC8EgCK,aAAc,CADd,yBFupIJ,C5EtrID,gC8EgBK,SAAU,CADV,kBF2qIJ,C5E1rID,gC8EwBK,kBADA,UFuqIJ,C5E9rID,kC8EgCK,aAAc,CADd,yBFmqIJ,C5ElsID,gC8EgBK,SAAU,CADV,SFurIJ,C5EtsID,gC8EwBK,SADA,UFmrIJ,C5E1sID,kC8EgCK,aAAc,CADd,gBF+qIJ,C5E9sID,gC8EgBK,SAAU,CADV,kBFmsIJ,C5EltID,gC8EwBK,kBADA,UF+rIJ,C5EttID,kC8EgCK,aAAc,CADd,yBF2rIJ,C5E1tID,gC8EgBK,SAAU,CADV,kBF+sIJ,C5E9tID,gC8EwBK,kBADA,UF2sIJ,C5EluID,kC8EgCK,aAAc,CADd,yBFusIJ,C5EtuID,gC8EgBK,SAAU,CADV,WF2tIJ,C5E1uID,gC8EwBK,WADA,UFutIJ,C5E9uID,kC8EgCK,aAAc,CADd,kBFmtIJ,C5ElvID,gC8EgBK,SAAU,CADV,kBFuuIJ,C5EtvID,gC8EwBK,kBADA,UFmuIJ,C5E1vID,kC8EgCK,aAAc,CADd,yBF+tIJ,C5E9vID,gC8EgBK,SAAU,CADV,kBFmvIJ,C5ElwID,gC8EwBK,kBADA,UF+uIJ,C5EtwID,kC8EgCK,aAAc,CADd,yBF2uIJ,C5E1wID,gC8EgBK,SAAU,CADV,SF+vIJ,C5E9wID,gC8EwBK,SADA,UF2vIJ,C5ElxID,kC8EgCK,aAAc,CADd,gBFuvIJ,C5EtxID,gC8EgBK,SAAU,CADV,kBF2wIJ,C5E1xID,gC8EwBK,kBADA,UFuwIJ,C5E9xID,kC8EgCK,aAAc,CADd,yBFmwIJ,C5ElyID,gC8EgBK,SAAU,CADV,kBFuxIJ,C5EtyID,gC8EwBK,kBADA,UFmxIJ,C5E1yID,kC8EgCK,aAAc,CADd,yBF+wIJ,C5E9yID,gC8EgBK,SAAU,CADV,WFmyIJ,C5ElzID,gC8EwBK,WADA,UF+xIJ,C5EtzID,kC8EgCK,aAAc,CADd,kBF2xIJ,C5E1zID,gC8EgBK,SAAU,CADV,kBF+yIJ,C5E9zID,gC8EwBK,kBADA,UF2yIJ,C5El0ID,kC8EgCK,aAAc,CADd,yBFuyIJ,C5Et0ID,gC8EgBK,SAAU,CADV,kBF2zIJ,C5E10ID,gC8EwBK,kBADA,UFuzIJ,C5E90ID,kC8EgCK,aAAc,CADd,yBFmzIJ,C5El1ID,gC8EgBK,SAAU,CADV,UFu0IJ,C5Et1ID,gC8EwBK,UADA,UFm0IJ,C5E11ID,kC8EgCK,aAAc,CADd,iBF+zIJ,CACF,CAxuIA,0B5EvHC,gB6EUG,aAAc,CACd,cACA,cDy1IF,C5Er2ID,qB6EeG,SDy1IF,C5Ex2ID,qB6EkBG,UDy1IF,C5E32ID,uB6EqBG,gBDy1IF,C5E92ID,sB6EwBG,QDy1IF,C5Ej3ID,gB6EUG,aAAc,CACd,sBACA,sBD02IF,C5Et3ID,qB6EeG,iBD02IF,C5Ez3ID,qB6EkBG,kBD02IF,C5E53ID,uB6EqBG,wBD02IF,C5E/3ID,sB6EwBG,QD02IF,C5El4ID,gB6EUG,aAAc,CACd,sBACA,sBD23IF,C5Ev4ID,qB6EeG,iBD23IF,C5E14ID,qB6EkBG,kBD23IF,C5E74ID,uB6EqBG,wBD23IF,C5Eh5ID,sB6EwBG,QD23IF,C5En5ID,gB6EUG,aAAc,CACd,eACA,eD44IF,C5Ex5ID,qB6EeG,UD44IF,C5E35ID,qB6EkBG,WD44IF,C5E95ID,uB6EqBG,iBD44IF,C5Ej6ID,sB6EwBG,QD44IF,C5Ep6ID,gB6EUG,aAAc,CACd,sBACA,sBD65IF,C5Ez6ID,qB6EeG,iBD65IF,C5E56ID,qB6EkBG,kBD65IF,C5E/6ID,uB6EqBG,wBD65IF,C5El7ID,sB6EwBG,QD65IF,C5Er7ID,gB6EUG,aAAc,CACd,sBACA,sBD86IF,C5E17ID,qB6EeG,iBD86IF,C5E77ID,qB6EkBG,kBD86IF,C5Eh8ID,uB6EqBG,wBD86IF,C5En8ID,sB6EwBG,QD86IF,C5Et8ID,gB6EUG,aAAc,CACd,aACA,aD+7IF,C5E38ID,qB6EeG,QD+7IF,C5E98ID,qB6EkBG,SD+7IF,C5Ej9ID,uB6EqBG,eD+7IF,C5Ep9ID,sB6EwBG,QD+7IF,C5Ev9ID,gB6EUG,aAAc,CACd,sBACA,sBDg9IF,C5E59ID,qB6EeG,iBDg9IF,C5E/9ID,qB6EkBG,kBDg9IF,C5El+ID,uB6EqBG,wBDg9IF,C5Er+ID,sB6EwBG,QDg9IF,C5Ex+ID,gB6EUG,aAAc,CACd,sBACA,sBDi+IF,C5E7+ID,qB6EeG,iBDi+IF,C5Eh/ID,qB6EkBG,kBDi+IF,C5En/ID,uB6EqBG,wBDi+IF,C5Et/ID,sB6EwBG,QDi+IF,C5Ez/ID,gB6EUG,aAAc,CACd,eACA,eDk/IF,C5E9/ID,qB6EeG,UDk/IF,C5EjgJD,qB6EkBG,WDk/IF,C5EpgJD,uB6EqBG,iBDk/IF,C5EvgJD,sB6EwBG,QDk/IF,C5E1gJD,gB6EUG,aAAc,CACd,sBACA,sBDmgJF,C5E/gJD,qB6EeG,iBDmgJF,C5ElhJD,qB6EkBG,kBDmgJF,C5ErhJD,uB6EqBG,wBDmgJF,C5ExhJD,sB6EwBG,QDmgJF,C5E3hJD,gB6EUG,aAAc,CACd,sBACA,sBDohJF,C5EhiJD,qB6EeG,iBDohJF,C5EniJD,qB6EkBG,kBDohJF,C5EtiJD,uB6EqBG,wBDohJF,C5EziJD,sB6EwBG,QDohJF,C5E5iJD,gB6EUG,aAAc,CACd,aACA,aDqiJF,C5EjjJD,qB6EeG,QDqiJF,C5EpjJD,qB6EkBG,SDqiJF,C5EvjJD,uB6EqBG,eDqiJF,C5E1jJD,sB6EwBG,QDqiJF,C5E7jJD,gB6EUG,aAAc,CACd,sBACA,sBDsjJF,C5ElkJD,qB6EeG,iBDsjJF,C5ErkJD,qB6EkBG,kBDsjJF,C5ExkJD,uB6EqBG,wBDsjJF,C5E3kJD,sB6EwBG,QDsjJF,C5E9kJD,gB6EUG,aAAc,CACd,sBACA,sBDukJF,C5EnlJD,qB6EeG,iBDukJF,C5EtlJD,qB6EkBG,kBDukJF,C5EzlJD,uB6EqBG,wBDukJF,C5E5lJD,sB6EwBG,QDukJF,C5E/lJD,e6EUG,aAAc,CACd,eACA,eDwlJF,C5EpmJD,oB6EeG,UDwlJF,C5EvmJD,oB6EkBG,WDwlJF,C5E1mJD,sB6EqBG,iBDwlJF,C5E7mJD,qB6EwBG,ODwlJF,C5EhnJD,e6EUG,aAAc,CACd,sBACA,sBDymJF,C5ErnJD,oB6EeG,iBDymJF,C5ExnJD,oB6EkBG,kBDymJF,C5E3nJD,sB6EqBG,wBDymJF,C5E9nJD,qB6EwBG,ODymJF,C5EjoJD,e6EUG,aAAc,CACd,sBACA,sBD0nJF,C5EtoJD,oB6EeG,iBD0nJF,C5EzoJD,oB6EkBG,kBD0nJF,C5E5oJD,sB6EqBG,wBD0nJF,C5E/oJD,qB6EwBG,OD0nJF,C5ElpJD,e6EUG,aAAc,CACd,aACA,aD2oJF,C5EvpJD,oB6EeG,QD2oJF,C5E1pJD,oB6EkBG,SD2oJF,C5E7pJD,sB6EqBG,eD2oJF,C5EhqJD,qB6EwBG,OD2oJF,C5EnqJD,e6EUG,aAAc,CACd,sBACA,sBD4pJF,C5ExqJD,oB6EeG,iBD4pJF,C5E3qJD,oB6EkBG,kBD4pJF,C5E9qJD,sB6EqBG,wBD4pJF,C5EjrJD,qB6EwBG,OD4pJF,C5EprJD,e6EUG,aAAc,CACd,sBACA,sBD6qJF,C5EzrJD,oB6EeG,iBD6qJF,C5E5rJD,oB6EkBG,kBD6qJF,C5E/rJD,sB6EqBG,wBD6qJF,C5ElsJD,qB6EwBG,OD6qJF,C5ErsJD,e6EUG,aAAc,CACd,eACA,eD8rJF,C5E1sJD,oB6EeG,UD8rJF,C5E7sJD,oB6EkBG,WD8rJF,C5EhtJD,sB6EqBG,iBD8rJF,C5EntJD,qB6EwBG,OD8rJF,C5EttJD,e6EUG,aAAc,CACd,qBACA,qBD+sJF,C5E3tJD,oB6EeG,gBD+sJF,C5E9tJD,oB6EkBG,iBD+sJF,C5EjuJD,sB6EqBG,uBD+sJF,C5EpuJD,qB6EwBG,OD+sJF,C5EvuJD,e6EUG,aAAc,CACd,qBACA,qBDguJF,C5E5uJD,oB6EeG,gBDguJF,C5E/uJD,oB6EkBG,iBDguJF,C5ElvJD,sB6EqBG,uBDguJF,C5ErvJD,qB6EwBG,ODguJF,C5ExvJD,e6E+BG,YD4tJF,C5E3vJD,gB6EkCG,SD4tJF,C5E9vJD,gB6EqCG,UD4tJF,C5EjwJD,oB6EwCG,SD4tJF,C5EpwJD,oB6E2CG,UD4tJF,C5EvwJD,sB6E8CG,aD4tJF,C5E1wJD,qB6EiDG,OD4tJF,C5E7wJD,4B8EyCK,UFuuJJ,C5EhxJD,4B8E+CK,SFouJJ,C5EnxJD,gC8EqDK,UFiuJJ,C5EtxJD,gC8E2DK,SF8tJJ,C5EzxJD,kC8EiEK,cF2tJJ,C5E5xJD,gC8EgBK,SAAU,CADV,iBFixJJ,C5EhyJD,gC8EwBK,iBADA,UF6wJJ,C5EpyJD,kC8EgCK,aAAc,CADd,wBFywJJ,C5ExyJD,gC8EgBK,SAAU,CADV,iBF6xJJ,C5E5yJD,gC8EwBK,iBADA,UFyxJJ,C5EhzJD,kC8EgCK,aAAc,CADd,wBFqxJJ,C5EpzJD,gC8EgBK,SAAU,CADV,WFyyJJ,C5ExzJD,gC8EwBK,WADA,UFqyJJ,C5E5zJD,kC8EgCK,aAAc,CADd,kBFiyJJ,C5Eh0JD,gC8EgBK,SAAU,CADV,kBFqzJJ,C5Ep0JD,gC8EwBK,kBADA,UFizJJ,C5Ex0JD,kC8EgCK,aAAc,CADd,yBF6yJJ,C5E50JD,gC8EgBK,SAAU,CADV,kBFi0JJ,C5Eh1JD,gC8EwBK,kBADA,UF6zJJ,C5Ep1JD,kC8EgCK,aAAc,CADd,yBFyzJJ,C5Ex1JD,gC8EgBK,SAAU,CADV,SF60JJ,C5E51JD,gC8EwBK,SADA,UFy0JJ,C5Eh2JD,kC8EgCK,aAAc,CADd,gBFq0JJ,C5Ep2JD,gC8EgBK,SAAU,CADV,kBFy1JJ,C5Ex2JD,gC8EwBK,kBADA,UFq1JJ,C5E52JD,kC8EgCK,aAAc,CADd,yBFi1JJ,C5Eh3JD,gC8EgBK,SAAU,CADV,kBFq2JJ,C5Ep3JD,gC8EwBK,kBADA,UFi2JJ,C5Ex3JD,kC8EgCK,aAAc,CADd,yBF61JJ,C5E53JD,gC8EgBK,SAAU,CADV,WFi3JJ,C5Eh4JD,gC8EwBK,WADA,UF62JJ,C5Ep4JD,kC8EgCK,aAAc,CADd,kBFy2JJ,C5Ex4JD,iC8EgBK,SAAU,CADV,kBF63JJ,C5E54JD,iC8EwBK,kBADA,UFy3JJ,C5Eh5JD,mC8EgCK,aAAc,CADd,yBFq3JJ,C5Ep5JD,iC8EgBK,SAAU,CADV,kBFy4JJ,C5Ex5JD,iC8EwBK,kBADA,UFq4JJ,C5E55JD,mC8EgCK,aAAc,CADd,yBFi4JJ,C5Eh6JD,iC8EgBK,SAAU,CADV,SFq5JJ,C5Ep6JD,iC8EwBK,SADA,UFi5JJ,C5Ex6JD,mC8EgCK,aAAc,CADd,gBF64JJ,C5E56JD,iC8EgBK,SAAU,CADV,kBFi6JJ,C5Eh7JD,iC8EwBK,kBADA,UF65JJ,C5Ep7JD,mC8EgCK,aAAc,CADd,yBFy5JJ,C5Ex7JD,iC8EgBK,SAAU,CADV,kBF66JJ,C5E57JD,iC8EwBK,kBADA,UFy6JJ,C5Eh8JD,mC8EgCK,aAAc,CADd,yBFq6JJ,C5Ep8JD,iC8EgBK,SAAU,CADV,WFy7JJ,C5Ex8JD,iC8EwBK,WADA,UFq7JJ,C5E58JD,mC8EgCK,aAAc,CADd,kBFi7JJ,C5Eh9JD,iC8EgBK,SAAU,CADV,kBFq8JJ,C5Ep9JD,iC8EwBK,kBADA,UFi8JJ,C5Ex9JD,mC8EgCK,aAAc,CADd,yBF67JJ,C5E59JD,iC8EgBK,SAAU,CADV,kBFi9JJ,C5Eh+JD,iC8EwBK,kBADA,UF68JJ,C5Ep+JD,mC8EgCK,aAAc,CADd,yBFy8JJ,C5Ex+JD,iC8EgBK,SAAU,CADV,SF69JJ,C5E5+JD,iC8EwBK,SADA,UFy9JJ,C5Eh/JD,mC8EgCK,aAAc,CADd,gBFq9JJ,C5Ep/JD,iC8EgBK,SAAU,CADV,kBFy+JJ,C5Ex/JD,iC8EwBK,kBADA,UFq+JJ,C5E5/JD,mC8EgCK,aAAc,CADd,yBFi+JJ,C5EhgKD,iC8EgBK,SAAU,CADV,kBFq/JJ,C5EpgKD,iC8EwBK,kBADA,UFi/JJ,C5ExgKD,mC8EgCK,aAAc,CADd,yBF6+JJ,C5E5gKD,iC8EgBK,SAAU,CADV,WFigKJ,C5EhhKD,iC8EwBK,WADA,UF6/JJ,C5EphKD,mC8EgCK,aAAc,CADd,kBFy/JJ,C5ExhKD,iC8EgBK,SAAU,CADV,kBF6gKJ,C5E5hKD,iC8EwBK,kBADA,UFygKJ,C5EhiKD,mC8EgCK,aAAc,CADd,yBFqgKJ,C5EpiKD,iC8EgBK,SAAU,CADV,kBFyhKJ,C5ExiKD,iC8EwBK,kBADA,UFqhKJ,C5E5iKD,mC8EgCK,aAAc,CADd,yBFihKJ,C5EhjKD,iC8EgBK,SAAU,CADV,UFqiKJ,C5EpjKD,iC8EwBK,UADA,UFiiKJ,C5ExjKD,mC8EgCK,aAAc,CADd,iBF6hKJ,CACF,CExjKE,aACE,aF0jKJ,C5EhkKC,cESC,oC6EDA,yBACA,yBACA,eAAgB,CAChB,kB7EVA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,S6EeF,CALE,iCACE,+BAOJ,C/ErBC,6G+EmBO,yBAMR,CAZE,sDAcI,sBAAuB,CAEvB,sBAEA,cAAe,CANf,YAAa,CACb,gBAAiB,CAIjB,mBAFA,kBAJA,iBAAkB,CAQlB,gCAIN,CAvBE,0EAsBM,oBAAqB,CAErB,eADA,kBAEA,mBAIR,CAFQ,8EACE,yBAIV,CAhCE,gFAiCM,SAER,CAnCE,0EAqCM,gBACR,CAEM,4DACE,YAAR,CAzCE,uEA8CI,cAFN,CA5CE,iGAiDM,cAAe,CADf,SAAR,CAhDE,qEAsDI,cAHN,CAnDE,+FAwDM,cAFR,C/EnEC,4E+E2EO,iBALR,C/EtEC,wE+EsFO,4BAFA,iBATR,C/E3EC,4F+E4FS,SAAU,CACV,QAAS,CAJT,iBAAkB,CAElB,WADA,OAAQ,CAIR,0BAXV,CAiBE,sBAEE,sBACA,6BAFA,qBAbJ,CAiBI,gDACE,YAfN,CAkBI,6BACE,YAhBN,CAoBE,oDAEI,yBAnBN,CAuBE,yBACE,yBACA,QArBJ,CAwBE,4CACE,+BAtBJ,CAyBE,mIAEE,eAvBJ,CA2BE,uDACE,eAzBJ,CA4BE,kEACE,wBAA6B,CAC7B,YA1BJ,CA6BE,4FACE,eA3BJ,CA8BE,oBACE,wBAA6B,CAC7B,QA5BJ,CA0BE,uCAII,eA3BN,CAuBE,6DAMM,wBAA6B,CAC7B,YA1BR,CAmBE,uFAUQ,mBAAoB,CADpB,gBAxBV,CAgCI,qIAEE,sBACA,kBA9BN,CCpIE,kBACE,aDsIJ,C/E7IC,sGgFeS,4BAFA,iBDqIV,C/ElJC,0HgFqBW,UACA,QAAS,CAJT,iBAAkB,CAElB,UAAW,CADX,OAAQ,CAIR,0BDmIZ,C/E1JC,wEgFkCO,2BD4HR,C/E9JC,2FgFwCS,iBADA,cD2HV,C/ElKC,+FgF6CW,wBDwHZ,C/ErKC,2FgFqDS,aAAc,CADd,iBDqHV,C/EzKC,6FgF8DS,cAAe,CADf,kBDgHV,C/E7KC,aiFOC,yBADA,iBACF,CAEE,mBACE,YAAa,CACb,cAAJ,CAGE,oBAIE,cAAe,CAFf,aAAc,CACd,kBAFA,iBAEJ,CAHE,wBASI,iBAAkB,CADlB,WAAY,CADZ,UACN,CAKE,qBAKE,oBAAqB,CAHrB,aAAc,CAEd,eADA,aAAc,CAFd,iBACJ,CAKI,4BACE,YAAa,CACb,cAAe,CAGf,eAFA,0BAA2B,CAC3B,iBAFN,CAKM,+DAGE,eACA,gBAAiB,CAFjB,iBADR,CAMM,iCACE,sBACA,eACA,oBAJR,CASU,2EACE,qBAJZ,CASM,iCACE,WAEA,WAAY,CADZ,kBANR,CAWI,8BACE,sBACA,oBATN,CAaE,qBAEE,sBADA,gBAEA,cAXJ,CAQE,wBAOI,sBADA,oBAVN,CAIE,6BAWM,sBAEA,cAAe,CADf,eAFA,iBAAkB,CAIlB,oBAAsB,CACtB,oFAXR,CAaQ,mCACE,aAXV,CAiBE,oBACE,gBAfJ,CC/EE,iBACE,aDiFJ,CjFxFC,qCkFaK,gBAAiB,CADjB,cDgFN,CjF5FC,iGkFuBS,gBAAiB,CADjB,eD2EV,CjFjGC,sCkF+BK,eDqEN,CjFpGC,8CkFsCS,gBAAiB,CADjB,cDmEV,CjFxGC,qCkF+CK,aAAc,CADd,iBD8DN,CEtGE,yBAEE,kBAAmB,CADnB,YAAa,CAEb,kBADJ,CAIE,wBAGE,sBAFA,SAAU,CAIV,eADA,eAAiB,CAEjB,mBAJA,eAAgB,CAMhB,sBAAuB,CADvB,kBADJ,CAKE,wBAEE,sBACA,eAFA,gBADJ,CAME,uBAEE,kBADA,UAHJ,CAEE,6BAMI,kBAAmB,CADnB,UAHN,CAQE,kDAGI,mBAPN,CAUI,iCACE,kBARN,CAYE,6BACE,sBAEA,eADA,eAAmB,CAEnB,mBACA,gBAVJ,CAYI,mCAEI,WAAY,CAQd,mBAFA,iBAAkB,CAClB,SAfN,ChGnDC,kEgGwEK,WAlBN,CAuBI,sCAEE,UAAW,CADX,QApBN,CAyBE,+BAGE,sBAFA,kBAAmB,CACnB,SAEA,eACA,mBAEA,wBAAyB,CADzB,qBAtBJ,CA0BE,uBACE,gBAAiB,CACjB,kBAxBJ,CA0BI,iCACE,YAxBN,CAuBI,8HAMI,oBAAqB,CADrB,mBAvBR,CA6BE,oGAIM,mBA7BR,CAkCE,kGAIM,kBAlCR,CAuCE,kDAEI,wBAtCN,CAoCE,wDAMM,wBAAyB,CADzB,iBArCR,CAgCE,kHAaI,+BADA,iBAvCN,CA0CM,wIACE,iBAvCR,CAuBE,wDAqBI,wBAzCN,CA2CM,8DACE,YAzCR,CAiBE,iDA6BI,+BA3CN,CA6CM,4DACE,kBA3CR,ChGnHC,kKgGqKO,iBA9CR,ChGvHC,gKgG4KO,gBAjDR,CCrHE,sBACE,aDuHJ,ChG9HC,yDiGaO,kBDoHR,ChGjIC,4JiGwBO,8BADA,iBD+GR,CC5GQ,kLACE,gBD+GV,CnF1IC,aESC,oCmFDA,qCnFPA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SmFYF,CALE,sBAQE,sCADA,YAAa,CAJb,oBAAqB,CACrB,WAAa,CACb,aAJA,iBAAkB,CAClB,UAAY,CAIZ,qBASJ,CAJE,wBAEE,UAAW,CADX,YAAa,CAIb,aAAc,CADd,cAAe,CADf,UAQJ,CAHE,8CAEE,kBAAmB,CAOnB,YAAa,CACb,iCANA,sBAHA,YAAa,CAKb,eADA,eAAgB,CAFhB,aAAc,CAKd,iBAAkB,CADlB,kBAQJ,CAHI,yGAOE,eAAgB,CAHhB,iCAEA,wBAAyB,CAGzB,UAAW,CAPX,iBAAkB,CAMlB,yBAA0B,CAL1B,SAUN,CACI,0DACE,QACN,CAQI,oHACE,SAHN,CAMI,0DACE,QAJN,CAQE,wBACE,oBAAqB,CACrB,aANJ,CASE,oBACE,eAAgB,CAGhB,kDAPJ,CAWI,+IAEE,6BATN,CAaE,yCACE,sBAXJ,CAcE,yCACE,sBAEA,eADA,eAXJ,CAgBI,yGACE,OAdN,CAiBI,wGACE,UAfN,CASE,0HAUI,cAhBN,CAqBI,2GACE,UAnBN,CAsBI,0GACE,OApBN,CAcE,4HAUI,eArBN,CCpGE,iBACE,aDsGJ,CrF7GC,0EsFaO,SDmGR,CrFhHC,oJsF2BO,QD2FR,CrFtHC,0EsFiCO,SDwFR,CrFzHC,YuFUC,QAAS,CACT,MAAO,CAEP,mBAAoB,CANpB,cAAe,CAEf,OAAQ,CADR,KAAM,CAIN,YCAF,CDGE,mBACE,iBCDJ,CDKE,iBAOE,2BAHA,QAAS,CACT,MAAO,CAGP,mBAAoB,CAPpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,YCDJ,CDOE,4BACE,iBAAkB,CAElB,mBADA,YCJJ,CDOI,mCACE,YCLN,CxFjCC,6CuF4CK,QAAS,CAET,yGADA,MAAO,CAFP,KCJN,CxFvCC,8CuFoDK,QAAS,CACT,4GAFA,OAAQ,CADR,KCLN,CxF7CC,4CuF4DK,yGADA,MAAO,CADP,OAAQ,CADR,KCNN,CxFnDC,+CuFiEK,QAAS,CAET,4GADA,MAAO,CAFP,OCPN,CDcE,oBAIE,gBAFA,WAAY,CACZ,aAAc,CAEd,mBAAoB,CAJpB,UCRJ,CDgBE,yBACE,YAAa,CACb,qBAAsB,CAEtB,WAAY,CADZ,UCbJ,CDkBE,mBAGE,kBAAmB,CAInB,gCANA,YAAa,CACb,SAGA,eACA,iBAFA,iBCbJ,CDkBI,yBAGE,kBAAmB,CAFnB,YAAa,CACb,SAGA,YAAa,CADb,WCfN,CDoBE,kBACE,SClBJ,CDqBE,kBAWE,sBAAuB,CACvB,QAAS,CATT,sBAWA,cAAe,CAbf,oBAAqB,CAIrB,eACA,iBAAkB,CAFlB,eAAgB,CAGhB,aAAc,CALd,iBAAkB,CAWlB,SAAU,CALV,iBAAkB,CAElB,oBAAqB,CAMrB,mBAAoB,CAPpB,mBAAoB,CAMpB,oBClBJ,CDqBI,gDAEE,sBACA,oBCnBN,CDuBE,kBAGE,sBAFA,SAIA,eADA,eAAgB,CAEhB,iBAJA,QCjBJ,CDyBE,iBACE,SAEA,YAAa,CADb,WAAY,CAGZ,aAAc,CADd,YCtBJ,CD2BE,mBAGE,6BAFA,aAAc,CACd,iBCxBJ,CC5HI,+EACE,eDgIN,CCjHM,kMACE,kBD0HR,CCtHI,6DAEE,SDwHN,CCjHI,yGACE,SDuHN,CCrHM,qCACE,SDuHR,CCzJI,+HACE,eD6JN,CC1JI,kIACE,kBD8JN,CCpHQ,qFACE,qCDuHV,CC/GM,2HACE,uBDqHR,CCnHQ,2CACE,2BDqHV,CCjLI,kIACE,eDqLN,CClLI,qIACE,kBDsLN,CCpHQ,uFACE,oCDuHV,CC/GM,8HACE,uBDqHR,CCnHQ,4CACE,0BDqHV,CCzMI,4HACE,eD6MN,CC1MI,+HACE,kBD8MN,CCpHQ,mFACE,qCDuHV,CC/GM,wHACE,uBDqHR,CCnHQ,0CACE,2BDqHV,CCjOI,qIACE,eDqON,CClOI,wIACE,kBDsON,CCpHQ,yFACE,oCDuHV,CC/GM,iIACE,uBDqHR,CCnHQ,6CACE,0BDqHV,CE5PE,gBACE,aF8PJ,CxFpQC,kC0FYK,gBAAiB,CADjB,cF6PN,CxFxQC,gD2FYK,eCNN,C5FNC,iB6FMC,YAAa,CACb,cDGF,C5FVC,gC6FUG,SAAU,CACV,gBAAiB,CAEjB,eAAgB,CADhB,iBDIJ,CCDI,0CACE,kBDGN,C5FnBC,4G6FqBK,oBAAqB,CACrB,kBDEN,C5FxBC,qD6F0BK,SDCN,C5F3BC,2G6FkCK,oBDDN,C5FjCC,0C8FOG,WF6BJ,C5FpCC,4C8FUG,QAAS,CAGT,WF2BJ,C5FxCC,+J8FmBG,0BFyBJ,CGFI,sCACE,qBHIN,CGDI,8CACE,WHGN,C5FlDC,yD+FmDK,UHEN,C5FrDC,2G+FWC,mBADA,gBAGA,eAAgB,CADhB,kBHiDF,C5F7DC,6H+FgBG,QHkDJ,CGhDI,+IACE,YHoDN,C5FvEC,kJgGyMG,gBJ7HJ,CGbA,yB/F/DC,oC+FWC,mBADA,gBAGA,eAAgB,CADhB,kBHuEA,C5FnFD,0C+FgBG,QHsEF,CGpEE,gDACE,YHsEJ,C5FzFD,iDgGyMG,gBJ7GF,C5F5FD,yB+F8BK,cHiEJ,C5F/FD,8F+FiCO,aAAc,CACd,cHkEN,C5FpGD,mC+FWC,mBADA,gBAGA,eAAgB,CADhB,kBH8FA,C5F1GD,yC+FgBG,QH6FF,CG3FE,+CACE,YH6FJ,C5FhHD,gDgGyMG,gBJtFF,CACF,CG9CA,yB/FtEC,mC+FWC,mBADA,gBAGA,eAAgB,CADhB,kBH+GA,C5F3HD,yC+FgBG,QH8GF,CG5GE,+CACE,YH8GJ,C5FjID,gDgGyMG,gBJrEF,CACF,CGzDA,yB/F5EC,mC+FWC,mBADA,gBAGA,eAAgB,CADhB,kBHgIA,C5F5ID,yC+FgBG,QH+HF,CG7HE,+CACE,YH+HJ,C5FlJD,gDgGyMG,gBJpDF,CACF,CGpEA,0B/FlFC,mC+FWC,mBADA,gBAGA,eAAgB,CADhB,kBHiJA,C5F7JD,yC+FgBG,QHgJF,CG9IE,+CACE,YHgJJ,C5FnKD,gDgGyMG,gBJnCF,CACF,CG/EA,0B/FxFC,mC+FWC,mBADA,gBAGA,eAAgB,CADhB,kBHkKA,C5F9KD,yC+FgBG,QHiKF,CG/JE,+CACE,YHiKJ,C5FpLD,gDgGyMG,gBJlBF,CACF,CKxKI,6BACE,aL8KN,CK3KI,+BACE,aL6KN,CKzKE,wCAGI,gBLyKN,CKpKE,gDCvBE,aN8LJ,CKlKE,8CC5BE,aNiMJ,C5F3MC,UESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,S0FmNF,C5FtNC,iBkG0BG,QAAS,CACT,gCAJA,sBAJA,aAAc,CAKd,eACA,mBAAoB,CAJpB,kBAAmB,CACnB,SAAU,CAFV,UN6MJ,C5FjOC,gBkG+BG,cNqMJ,C5FpOC,6BkGmCG,qBNoMJ,C5FvOC,2DkGyCG,kBNkMJ,C5F3OC,2BkG6CG,aNiMJ,C5F9OC,4BkGkDG,aAAc,CACd,UN+LJ,C5FlPC,kDkGyDG,WN6LJ,C5FtPC,wGkGgEG,mBAAoB,CACpB,yCAA0C,CAC1C,mBN2LJ,C5F7PC,iBkGyEG,sBAFA,aAAc,CAGd,eACA,mBAHA,gBN4LJ,C5FpQC,yB4FqBG,oBAAqB,CACrB,iBAkPJ,CAlOE,2CARI,WA6ON,CArOE,6CAJI,eA4ON,CApOE,2CAZI,WAmPN,CAvOE,6CARI,eAkPN,C5FpRC,eESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,C0FsDhB,gB1F3DA,SAAU,C0F4DV,kBAkOF,CAhOE,yBACE,eAkOJ,C5FpSC,oD4FwEG,YAgOJ,CA1NE,qBACE,oBAAqB,CACrB,WAAY,CACZ,eAAgB,CAEhB,gBAAiB,CACjB,qBAAsB,CAFtB,kBA8NJ,CA1NI,0BACE,eA4NN,CAzNI,0BAEE,qBADA,kCAEA,mBA2NN,CA1OE,2BAqBI,kBAAmB,CAGnB,sBAJA,mBAAoB,CAKpB,eAFA,YADA,cAAe,CAHf,iBAgON,CAnPE,oCA4BM,eACA,kBA0NR,C5FrUC,oG4FkHO,cAIA,WAAY,CANZ,oBAAqB,CAIrB,6BAA+B,CAD/B,eAEA,aAAc,CAJd,gBA6NR,C5F9UC,iI4FyHS,YAwNV,CAnQE,mDAmDM,sBAFA,oBAAqB,CACrB,eAsNR,C5FtVC,gF4FoIS,YAqNV,CA3QE,kDA4DM,sBACA,WAAY,CAEZ,wBADA,iDAmNR,CA/MM,iCAEI,WAAY,CAQd,mBAFA,iBAAkB,CAClB,SA4MR,C5FrWC,wD4F8JO,WA0MR,CAlME,uBACE,YAAa,CACb,qBAAsB,CACtB,WAoMJ,CAlMI,oFACE,UAoMN,CAhME,6BAGE,kBAAmB,CADnB,YAAa,CAEb,gBAHA,iBAqMJ,CAhMI,qCACE,SAAU,CACV,cAkMN,CA3LE,4CAEE,UAAW,CACX,sBACA,eACA,mBACA,kDA6LJ,CAzLE,iCACE,UA2LJ,CAxLE,qBACE,eA0LJ,CAvLE,gDACE,WAAY,CAEZ,SAwLJ,CAlLE,6BAIE,mDAHA,eAIA,mBAAoB,CAHpB,iBAAkB,CAClB,kBAsLJ,CAlLI,qCACE,aAoLN,CAjLI,mCACE,aAmLN,CAhLI,qCACE,aAkLN,CA/KI,wCACE,aAiLN,C5F/ZC,e4FsPC,qDA4KF,CA1KE,2CAEE,SA4KJ,CArKE,8EACE,SA2KJ,CAzKI,4BACE,SA2KN,C5FhbC,oB4F4QC,eAAgB,CAChB,sJAuKF,CApKE,qDAGE,SAAU,CADV,0BAuKJ,CApKI,mEAEE,SAAU,CADV,uBAwKN,CAnKE,0BACE,sJAqKJ,CAjKE,iCACE,0BAmKJ,CA7JA,uBACE,GAEE,SAAU,CADV,kBAgKF,CA5JA,GAEE,SAAU,CADV,kBA+JF,CACF,CA3JA,uBACE,GAEE,SAAU,CADV,kBA8JF,CA1JA,GAEE,SAAU,CADV,kBA6JF,CACF,CAzJA,uBACE,GAEE,SAAU,CADV,kBA4JF,CAxJA,GAEE,SAAU,CADV,kBA2JF,CACF,CIxdE,cACE,aJ0dJ,C5FreC,mCgGwBK,eJgdN,C5FxeC,uEgG+BS,eAAgB,CADhB,cJ8cV,C5F5eC,+CgGqCS,kBJ0cV,C5F/eC,iEgG4CS,aAAc,CADd,gBJwcV,C5FnfC,gDgGuDK,UJ+bN,C5FtfC,qDgGgEO,iBAAkB,CADlB,kBJ2bR,C5F1fC,qFgGwES,iBAAkB,CADlB,kBJubV,C5F9fC,0KgGqFS,SJ+aV,C5FpgBC,kHgG8FS,SAAU,CADV,UJ2aV,C5FxgBC,4DgGqGO,iBJsaR,C5F3gBC,kjBgGqHO,SAAU,CADV,UJgaR,C5FphBC,kVgGkIO,iBAAkB,CADlB,eJyZR,C5F1hBC,qEgG0IS,gBAAiB,CADjB,cJqZV,C5F9hBC,qEgGiJS,SAAU,CADV,UJkZV,C5FliBC,kHgG+JS,oBADA,kBJ4YV,C5F1iBC,4DgGsKS,oBADA,iBJyYV,C5F9iBC,oYgGoLW,MAAO,CADP,UJkYZ,C5FrjBC,6CgGiMK,gBAAiB,CADjB,cJyXN,CzGzjBC,WgHQC,oBAAqB,CADrB,iBAAF,CAGE,eAEE,WAAY,CACZ,qBAAsB,CAFtB,UACJ,CAGI,2BACE,yBACA,ymBAEA,uBAAkC,CADlC,2BAA4B,CAE5B,mBADN,CAKE,gBAOE,kBAAmB,CAGnB,0BANA,QAAS,CAKT,WAEA,cAAe,CALf,YAAa,CAEb,sBAAuB,CAHvB,MAAO,CAOP,SAAU,CAXV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAWN,sBAHJ,CAKI,qBAEE,eAAgB,CADhB,cAGA,sBAAuB,CADvB,kBAFN,CADI,8BAMI,qBAFR,CAMI,sBACE,SAJN,CAQE,uBClDA,QAAS,CACT,MAAO,CAJP,kBAEA,OAAQ,CADR,KDmDF,CAKE,mBAGE,WAAY,CE1Dd,mBAAoB,CF2DlB,iBAJJ,ChH1DC,qEkHSG,uBADA,SAAU,CADV,cAAe,CAGf,oFFuDJ,CEpDE,wBAIE,iCDbF,QAAS,CCYP,WAAY,CDXd,MAAO,CAJP,eAEA,OAAQ,CADR,KAAM,CCaJ,YF4DJ,CExDI,+BACE,YF0DN,CEtDE,wBDpBA,QAAS,CACT,MAAO,CCsBL,SAAU,CADV,aAAc,CDzBhB,eAEA,OAAQ,CADR,KDqFF,CAvBI,wBC5DF,QAAS,CACT,MAAO,CD6DH,eAAgB,CCjEpB,kBAEA,OAAQ,CADR,KD6FF,CA1BI,uBAKE,WAAY,CAHZ,eAAgB,CADhB,cAAe,CAOf,mBAAoB,CAJpB,mBAA2B,CAG3B,oFAAiB,CAJjB,qBAiCN,CA1BM,sDAJA,yDAsCN,CAlCM,+BC3EJ,QAAS,CACT,MAAO,CAJP,kBAEA,OAAQ,CADR,KD+GF,CA9BQ,sCAKE,UAAW,CAJX,oBAAqB,CAErB,UAAW,CACX,iBAAkB,CAFlB,SAmCV,CA3BI,iDAEI,eA4BR,CA1BQ,yDACE,sBA4BV,CAvBI,wBACE,YAyBN,CAtBI,sCACE,cAAe,CAEf,OAAQ,CADR,KAAM,CAGN,UAAW,CADX,YAyBN,CArBI,8BjG1GF,oCiG8GI,kBAAmB,CAGnB,0BjGzHJ,qBAAsB,CAGtB,sBiGoHI,0BAHA,YAAa,CACb,0BAA2B,CjGjH/B,eACA,0BACA,mBiGkHI,eAAgB,CjGvHpB,QAAS,CACT,SAAU,CiGwHN,mBA8BN,CA5BM,wCAGE,cAAe,CAFf,iBACA,aAEA,kBA8BR,CA5BQ,8CACE,yBA8BV,CA3BQ,iDACE,0BACA,mBA6BV,CA1BQ,qDACE,aA4BV,CAxBM,uCAEE,QAAS,CADT,iBAAkB,CAElB,0BA0BR,CAvBM,mCACE,cAyBR,CArBI,+DAOE,kBAAmB,CAKnB,0BACA,iBAAkB,CAFlB,0BAIA,cAAe,CATf,YAAa,CAIb,WAAY,CAFZ,sBAAuB,CASvB,mBAAoB,CAfpB,cAAe,CAEf,SAAU,CADV,OAAQ,CAWR,0BAA2B,CAE3B,kBAAoB,CAPpB,UAAW,CAJX,YAmCN,CArBM,2EACE,yBAwBR,CArBM,8KAGE,0BADA,0BAEA,kBAyBR,CA7BM,kNAMI,kBA6BV,CA1DI,iFAkCI,cA4BR,CAxBI,+BACE,QA0BN,CAvBI,gCACE,SAyBN,CGzNE,gC1F0DA,sBACA,qBAAsB,CACtB,yBACA,kBANA,sBAJA,oBAAqB,C0F/CnB,mBAAoB,C1FoDtB,eACA,mBAJA,WAAY,C0F/CV,SAAU,CACV,0BAJA,iBAAkB,C1F2DpB,kBAAoB,CAVpB,UAAW,C0F/CT,UCUJ,CnDlBE,kDACE,cACA,sCmDoBJ,CnDtBE,sDACE,cACA,qCmDoBJ,CnDtBE,6CACE,cACA,oFmDoBJ,CnDjBE,uDACE,sBmDmBJ,CnDpBE,sDACE,sBmDmBJ,CnDpBE,kDACE,sBmDmBJ,C3F2CE,sCAlCA,qBACA,sB2FNF,C3F2CE,8EAtDE,qBAUF,uBAPE,yCAQF,S2FOF,C3FyCE,yCArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S2FAF,C3FEE,+CAZA,qBACA,sB2FaF,C3FiCE,0CAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S2FYF,C3FVE,gDAZA,qBACA,sB2FyBF,C3F0BI,ySAME,wBAA6B,CAC7B,WAAY,CACZ,e2FxBN,C3F6BE,wCAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qB2F1BJ,C3F+BE,mCAzGA,eADA,kB2F+EF,C3F+BE,mCAzGA,a2F6EF,CDzEI,oF1FsBF,qBACA,uB0FrBI,SC4EN,CDzEI,8EAEE,SC2EN,CDxEI,qEAEI,sBCyER,CD9FE,qDA2BI,WAAY,CACZ,YAAa,CAFb,UCyEN,CpH1GC,8EmHsCO,yBCuER,CDtGE,6DAoCI,SCqEN,CDlEI,uCAIE,aAAc,CAHd,oBAAqB,CAErB,iBAAkB,CADlB,OCsEN,CD/GE,+DA+CI,SCmEN,CD/DE,kDAIE,kBAAmB,CAFnB,YAAa,CACb,SAAU,CAEV,mBCiEJ,CD9DE,yBACE,qBCgEJ,CD7DE,yBAKE,WAAY,CAEZ,gBADA,kBALA,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAEN,SCkEJ,CpH5IC,gEmHkFC,UC6DF,C3FiSI,0OAEE,gBACA,oB2F/RN,C3FkSI,kPAhaA,qBAUF,uBAPE,wCAQF,S2F0HF,CCnJI,wD5F8bA,a2FxSJ,C3FkRI,8OAEE,gBACA,oB2FhRN,C3FmRI,sPAhaA,qBAUF,uBAPE,yCAQF,S2FyIF,CC7JI,0D5FybA,a2FzRJ,C3FmQI,0VAEE,gBACA,oB2FjQN,C3FoQI,kWAhaA,qBAUF,uBAPE,wCAQF,S2FwJF,CCjLI,sE5F8bA,a2F1QJ,C3FoPI,8VAEE,gBACA,oB2FlPN,C3FqPI,sWAhaA,qBAUF,uBAPE,yCAQF,S2FuKF,CC3LI,wE5FybA,a2F3PJ,CCtLE,2E5F4bE,qBADA,a2FjQJ,CCtLE,6E5FwbE,qBADA,a2F7PJ,CpHnNC,kBeSC,oCUwDA,sBACA,qBAAsB,C2FrCtB,yBACA,kBrG7BA,qBAAsB,CU6DtB,sB2FrCA,oBAAqB,C3FsCrB,eVzDA,0BU0DA,mBVxDA,eAAgB,CqGmBhB,QAAS,C3FiCT,WAAY,C2FhCZ,SAAU,C3F6BV,iBAAkB,CAYlB,kBAAoB,CAVpB,UAAW,C2FjCX,UA+MF,CnDrOE,oCACE,cACA,sCmDuOJ,CnDzOE,wCACE,cACA,qCmDuOJ,CnDzOE,+BACE,cACA,oFmDuOJ,CnDpOE,yCACE,sBmDsOJ,CnDvOE,wCACE,sBmDsOJ,CnDvOE,oCACE,sBmDsOJ,C3FpKE,kDAtDE,qBAUF,uBAPE,yCAQF,S2F0NF,C3FtKE,4BAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S2F+NF,C3F7NE,kCAZA,qBACA,sB2F4OF,C3FzLI,qNAME,wBAA6B,CAC7B,WAAY,CACZ,e2F2LN,C3FtLE,0BAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qB2FyLJ,C3FpLE,qBA1GA,kB2FkSF,C3FpLE,qBAzGA,a2FgSF,CA9RE,wBrGLA,oCUsHA,uBAAyB,CACzB,gBAAiB,CV/HjB,qBAAsB,CAGtB,sBUyHA,aAAc,CVxHd,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CUyHV,iBAAkB,CAElB,U2F8LF,C3FzLE,qCACE,UAAW,CAEX,cAAe,CADf,e2F4LJ,CAnTE,sC3F4HE,iB2F0LJ,C3FxLI,iDACE,e2F0LN,CpHvUC,qGyBoJG,kB2FwLJ,C3FtLI,8MACE,e2F0LN,C3FtLE,2DAIE,qBAAsB,CADtB,kBAAmB,CADnB,S2F0LJ,C3FrLE,+BACE,uB2FuLJ,CA5UE,0C3FyJE,UAAW,CAEX,eAAgB,CAChB,kBAAmB,CAFnB,U2FwLJ,C3F/KI,gGAEE,sBAAuB,CADvB,S2FsLN,CpHxWC,8EyBqLO,S2FsLR,C3FjLE,8BAOE,yBACA,yBACA,kBANA,sBAEA,eADA,eAAmB,CAFnB,eADA,iBAAkB,CAKlB,iBAAkB,CAIlB,kB2FmLJ,C3F7LE,0CAcI,iB2FkLN,CpH1XC,kHyB4MO,wBAAyB,CACzB,6BACA,e2FiLR,C3F9KM,2IAGI,a2F+KV,C3FzME,mDAkCI,wBAA6B,CAD7B,iB2F4KN,C3F7ME,uEAqCM,QAAS,CACT,eAAgB,CAFhB,e2F8KR,CA9XE,kQ3FgOI,4BAA6B,CAD7B,yB2FyKN,CpHtZC,4FyBqPK,2BAA4B,CAD5B,wB2FsKN,CpH1ZC,2FyB0PK,4BAA6B,CAD7B,yB2FqKN,C3FhKE,0CACE,c2FkKJ,C3F/JE,yCACE,a2FiKJ,CAtZE,8P3FgQI,2BAA4B,CAD5B,wB2FiKN,CpH9aC,sGyBQC,eADA,kB2F4aF,CpHnbC,sGyBYC,a2F2aF,CpHvbC,mEyB+RG,W2F2JJ,CpH1bC,mEyBmSG,W2F0JJ,C3FtJI,yEAEE,4BAA6B,CAD7B,yB2FyJN,CpHjcC,2FyB4SO,8BADA,0B2F0JR,CpHrcC,sKyBmTK,2BAA4B,CAD5B,wB2FwJN,C3FnJE,uDACE,a2FqJJ,CjHzcE,8DAEE,UAAW,CADX,aiH4cJ,CjHxcE,6DAGE,UAAW,CACX,UAAW,CAFX,aiH2cJ,C3FxJM,2SACE,sB2F4JR,C3FtJQ,0nBACE,S2F+JV,C3F1JI,yDAIE,eAAgB,CAHhB,oBAAqB,CACrB,UAAW,CACX,kB2F6JN,CpH3eC,8PyBqVK,mB2F2JN,C3FxJI,yEAEE,uBADA,iB2F2JN,C3F7LE,yEAwCI,U2FwJN,CpHvfC,sWyBwWK,eAAgB,CADhB,sB2FuJN,CpH9fC,45ByByXK,S2FuJN,CpHhhBC,mXyBiYK,8BADA,0B2FuJN,CpHvhBC,kXyB0YK,+BAFA,uBACA,2B2FsJN,CpH/hBC,4FyB+YK,kB2FmJN,C3F3OE,yGA4FI,gB2FkJN,CpHriBC,qTyB4ZS,e2F+IV,CpH3iBC,8IyBgaS,yB2F8IV,CAhiBE,0DEsCE,yBF6fJ,CAniBE,yDEyCE,yBF6fJ,CpHpjBC,sEsH6DK,aAAc,CACd,0BAFA,8BF6fN,CpHzjBC,qEsHkEK,8BACA,0BAFA,cF6fN,CA5iBI,gCACE,oBAAqB,CACrB,gBAAiB,CACjB,kBA8iBN,CAniBE,0BAUE,8BAJA,sBAJA,aAAc,CAKd,eAAiB,CAHjB,UAAW,CAIX,aAAc,CAHd,eAAgB,CAJhB,iBAAkB,CAQlB,iBAAkB,CAElB,yBAA2B,CAR3B,UA6iBJ,CAniBI,iCACE,kBAqiBN,CAliBI,wIAEE,aAoiBN,CAhiBE,wEhH7CA,kCAAmC,CACnC,iCAAkC,CATlC,kBAAmB,CACnB,cgH4DE,sBhH9DF,mBAAoB,CAGpB,iBAAkB,CgH0DhB,WAAY,ChHzDd,aAAc,CgH2DZ,gBAAiB,CALjB,iBAAkB,CAClB,SAAU,ChHtDZ,iBAAkB,CAGlB,iCAAkC,CAFlC,mBAAoB,CgH0DlB,yBAA2B,CAC3B,oFAAiB,ChH1DnB,sBAAwB,CgHqDtB,UAgjBJ,CAtjBE,4EhHzCE,agHmmBJ,CA1jBE,gFhHrCE,oBgHmmBJ,ChHhmBE,sFACE,YgHmmBJ,ChHhmBE,oTACE,agHqmBJ,CA1jBE,wB3F/BA,qBACA,sB2F4lBF,CpHnoBC,qDoHwEK,SAAU,CACV,mCA8jBN,CA1jBE,0B3FvDE,qBAUF,uBAPE,yCAQF,S2F4mBF,CA5jBE,2B3FrCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S2FqmBF,C3FnmBE,iCAZA,qBACA,sB2FknBF,CAxkBE,mDAGI,kBAwkBN,CAjkBE,oHAEI,YAqkBN,CAjkBE,wBAUE,yGAAgC,CALhC,wBAA6B,CAC7B,QAAS,CACT,kBALA,YAMA,SAAU,CALV,eACA,eAAgB,CAKhB,yBAA2B,CAR3B,UA4kBJ,CnD1qBE,0CACE,cACA,sCmD4qBJ,CnD9qBE,8CACE,cACA,qCmD4qBJ,CnD9qBE,qCACE,cACA,oFmD4qBJ,CnDzqBE,+CACE,sBmD2qBJ,CnD5qBE,8CACE,sBmD2qBJ,CnD5qBE,0CACE,sBmD2qBJ,CAvkBI,gIAIE,uBAAwB,CACxB,eAAgB,CAHhB,QA4kBN,CArkBE,qBAEE,eADA,SAwkBJ,CAzkBE,2BAKI,WAukBN,CAnkBE,qBACE,SAqkBJ,CAtkBE,2BAII,YACA,aAqkBN,CAjkBE,+BAME,gBACA,0BAFA,WAAY,CAGZ,SAAU,CAPV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAON,kCAAqC,CALrC,UAwkBJ,CA5kBE,0LAkBM,kBAAmB,CADnB,YAAa,CAKb,aAAc,CAHd,sBAAuB,CAEvB,cAAe,CADf,cAikBR,CpH9tBC,4DoHoKK,mBA6jBN,CAzjBE,+DACE,UA2jBJ,CAxjBE,gHAEE,SA0jBJ,CAvjBE,6BACE,4BACA,cAyjBJ,CAvjBI,mCAEE,eAAgB,CAChB,iBAAkB,CAFlB,OA2jBN,CAtjBI,mCACE,oBAwjBN,CApjBE,+BAGE,+BADA,6BAEA,cAAe,CAHf,KAyjBJ,CApjBI,qCAEE,iBAAkB,CADlB,OAAQ,CAER,0BAsjBN,CAnjBI,qCACE,oBAqjBN,CpHlwBC,4DoHgNK,kBAqjBN,CAjjBE,oLAEE,4BAmjBJ,CAhjBE,8EAEE,kBAkjBJ,CA/iBE,kKAEE,qBAijBJ,CA9iBE,6BACE,eAgjBJ,CA5iBE,qCAEI,aA6iBN,C1FxtBI,gHACE,iB0F0tBN,C1FttBI,0GACE,gB0FwtBN,CpH7xBC,wK0BkFS,S0FmtBV,C1F/sBM,yCACE,S0FitBR,CpHxyBC,mI0BIK,e0FuyBN,CpH3yBC,qK0BSK,4BAA6B,CAD7B,yB0FuyBN,CpH/yBC,oU0BoBK,2BAA4B,CAD5B,wB0FoyBN,CpHvzBC,+J0B0BK,4BAA6B,CAD7B,yB0FkyBN,CEpzBE,sBACE,aFszBJ,CpH9zBC,gDsHcK,aAAc,CADd,8BFqzBN,CpHl0BC,qDsHoBO,MAAO,CADP,UFmzBR,CpHt0BC,iFsHwBO,oBFizBR,CpHz0BC,mDsH8BO,yBF8yBR,CpH50BC,qDsHoCO,4BF2yBR,CpH/0BC,8CsH2CK,aAAc,CACd,gBFuyBN,CG50BE,yB9F0DA,sBACA,qBAAsB,CACtB,yBACA,kBANA,sBAJA,oBAAqB,C8FjDnB,mBAAoB,C9FsDtB,eACA,mBAJA,WAAY,CACZ,iBAJA,iBAAkB,CAYlB,kBAAoB,CAVpB,U+FxCF,CvDfE,2CACE,cACA,sCuDiBJ,CvDnBE,+CACE,cACA,qCuDiBJ,CvDnBE,sCACE,cACA,oFuDiBJ,CvDdE,gDACE,sBuDgBJ,CvDjBE,+CACE,sBuDgBJ,CvDjBE,2CACE,sBuDgBJ,C/F8CE,+BAlCA,qBACA,sB+FTF,C3G9BC,8C4G4EG,gCADA,oBDzCJ,C/F0CE,gEAtDE,qBAUF,uBAPE,yCAQF,S+FQF,C3GzCC,8F4GqEG,gCADA,oBDtBJ,C/FmCE,kCArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S+FMF,C/FJE,wCAZA,qBACA,sB+FmBF,C/F2BE,mCAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S+FkBF,C/FhBE,yCAZA,qBACA,sB+F+BF,C/FoBI,+PAME,wBAA6B,CAC7B,WAAY,CACZ,e+FlBN,C/FuBE,iCAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qB+FpBJ,C/FyBE,4BAzGA,eADA,kB+FqFF,C/FyBE,4BAzGA,a+FmFF,CCdE,6BACE,aDgBJ,CDvFI,sE9F2BF,qBACA,uB8F1BI,SC0FN,C3GvGC,qF4G4EG,gCADA,oBDgCJ,C3G3GC,oG0GeO,SC+FR,CD3FI,gEAEE,SC6FN,CD1FI,uDAEI,4BC2FR,CD9GE,oCAyBI,WAAY,CADZ,iBAAkB,CAElB,YCyFN,CDvFM,0CACE,yBCyFR,CDtFM,kDACE,SCwFR,CDpFI,gCAIE,aAAc,CAHd,oBAAqB,CAErB,iBAAkB,CADlB,OCwFN,CDlFE,oCAIE,kBAAmB,CAFnB,YAAa,CACb,SCqFJ,CDxFE,wEAOI,gBCqFN,CDjFE,6BACE,qBCmFJ,CDhFE,iCACE,gBCkFJ,CD/EE,kBACE,gBCiFJ,CD9EE,kBACE,eCgFJ,C3G5JC,oD6GOC,sBAKA,cAAe,CAJf,eAFA,QAAS,CAOT,oBAAsB,CAJtB,mBF4JF,CEtJE,gEACE,qBFyJJ,CEtJE,kEACE,qBFyJJ,CEtJE,kEACE,iBFyJJ,CEtJE,0EACE,YFyJJ,C3GrLC,yE6GkCC,SFsJF,C3GxLC,+F6GqCG,iBAAkB,CAElB,SAAU,CADV,OAAQ,CAER,SFsJJ,C/FkPI,kLAEE,gBACA,oB+FhPN,C/FmPI,0LAhaA,qBAUF,uBAPE,wCAQF,S+FyKF,CGlMI,0ClG8bA,a+FzPJ,C/FmOI,sLAEE,gBACA,oB+FjON,C/FoOI,8LAhaA,qBAUF,uBAPE,yCAQF,S+FwLF,CG5MI,4ClGybA,a+F1OJ,C/FoNI,kSAEE,gBACA,oB+FlNN,C/FqNI,0SAhaA,qBAUF,uBAPE,wCAQF,S+FuMF,CGhOI,wDlG8bA,a+F3NJ,C/FqMI,sSAEE,gBACA,oB+FnMN,C/FsMI,8SAhaA,qBAUF,uBAPE,yCAQF,S+FsNF,CG1OI,0DlGybA,a+F5MJ,C3G1PC,yT8G2BO,kBHqOR,CG9NE,6DlG+aE,qBADA,a+F5MJ,CG9NE,+DlG2aE,qBADA,a+FxMJ,C3GxQC,WESC,oCUwDA,sBACA,qBAAsB,CACtB,yBACA,kBVnEA,qBAAsB,CU6DtB,sBAJA,oBAAqB,CAKrB,eVzDA,0BU0DA,mBVxDA,eAAgB,CANhB,QAAS,CU0DT,WAAY,CACZ,iBAJA,iBAAkB,CAYlB,kBAAoB,CAVpB,U+FkOF,CvDzRE,6BACE,cACA,sCuD2RJ,CvD7RE,iCACE,cACA,qCuD2RJ,CvD7RE,wBACE,cACA,oFuD2RJ,CvDxRE,kCACE,sBuD0RJ,CvD3RE,iCACE,sBuD0RJ,CvD3RE,6BACE,sBuD0RJ,C/F5NE,iBAlCA,qBACA,sB+FiQF,C3GxSC,gC4G4EG,gCADA,oBDiOJ,C/FhOE,oCAtDE,qBAUF,uBAPE,yCAQF,S+FkRF,C3GnTC,kE4GqEG,gCADA,oBDoPJ,C/FvOE,oBArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S+FgRF,C/F9QE,0BAZA,qBACA,sB+F6RF,C/F/OE,qBAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S+F4RF,C/F1RE,2BAZA,qBACA,sB+FySF,C/FtPI,2KAME,wBAA6B,CAC7B,WAAY,CACZ,e+FwPN,C/FnPE,mBAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qB+FsPJ,C/FjPE,cAzGA,eADA,kB+F+VF,C/FjPE,cAzGA,a+F6VF,CCxRE,eACE,aD0RJ,CA9VE,iBzGLA,oCUsHA,uBAAyB,CACzB,gBAAiB,CV/HjB,qBAAsB,CAGtB,sBUyHA,aAAc,CVxHd,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CUyHV,iBAAkB,CAElB,U+F8PF,C/FzPE,8BACE,UAAW,CAEX,cAAe,CADf,e+F4PJ,CAnXE,+B/F4HE,iB+F0PJ,C/FxPI,0CACE,e+F0PN,C3GvYC,yEYoJG,kB+FwPJ,C/FtPI,kLACE,e+F0PN,C/FtPE,6CAIE,qBAAsB,CADtB,kBAAmB,CADnB,S+F0PJ,C/FrPE,wBACE,uB+FuPJ,CA5YE,4B/FyJE,UAAW,CAEX,eAAgB,CAChB,kBAAmB,CAFnB,U+FwPJ,C/F/OI,oEAEE,sBAAuB,CADvB,S+FsPN,C3GxaC,gEYqLO,S+FsPR,C/FjPE,uBAOE,yBACA,yBACA,kBANA,sBAEA,eADA,eAAmB,CAFnB,eADA,iBAAkB,CAKlB,iBAAkB,CAIlB,kB+FmPJ,C/F7PE,mCAcI,iB+FkPN,C3G1bC,2GY4MO,wBAAyB,CACzB,6BACA,e+FiPR,C/F9OM,6HAGI,a+F+OV,C/FzQE,4CAkCI,wBAA6B,CAD7B,iB+F4ON,C/F7QE,gEAqCM,QAAS,CACT,eAAgB,CAFhB,e+F8OR,CA9bE,wN/FgOI,4BAA6B,CAD7B,yB+FyON,C3GtdC,uEYqPK,2BAA4B,CAD5B,wB+FsON,C3G1dC,sEY0PK,4BAA6B,CAD7B,yB+FqON,C/FhOE,mCACE,c+FkOJ,C/F/NE,kCACE,a+FiOJ,CAtdE,oN/FgQI,2BAA4B,CAD5B,wB+FiON,C3G9eC,0EYQC,eADA,kB+F4eF,C3GnfC,0EYYC,a+F2eF,C3GvfC,4DY+RG,W+F2NJ,C3G1fC,4DYmSG,W+F0NJ,C/FtNI,2DAEE,4BAA6B,CAD7B,yB+FyNN,C3GjgBC,6EY4SO,8BADA,0B+F0NR,C3GrgBC,0IYmTK,2BAA4B,CAD5B,wB+FwNN,C/FnNE,yCACE,a+FqNJ,CrHzgBE,gDAEE,UAAW,CADX,aqH4gBJ,CrHxgBE,+CAGE,UAAW,CACX,UAAW,CAFX,aqH2gBJ,C/FxNM,0PACE,sB+F4NR,C/FtNQ,whBACE,S+F+NV,C/F1NI,2CAIE,eAAgB,CAHhB,oBAAqB,CACrB,UAAW,CACX,kB+F6NN,C3G3iBC,sMYqVK,mB+F2NN,C/FxNI,2DAEE,uBADA,iB+F2NN,C/F7PE,oDAwCI,U+FwNN,C3GvjBC,8SYwWK,eAAgB,CADhB,sB+FuNN,C3G9jBC,gxBYyXK,S+FuNN,C3GhlBC,2TYiYK,8BADA,0B+FuNN,C3GvlBC,0TY0YK,+BAFA,uBACA,2B+FsNN,C3G/lBC,8EY+YK,kB+FmNN,C/F3SE,2FA4FI,gB+FkNN,C3GrmBC,yRY4ZS,e+F+MV,C3G3mBC,gIYgaS,yB+F8MV,CAhmBE,oGC4EE,yBDwhBJ,C3GlnBC,wD4GgGK,aAAc,CADd,8BDuhBN,C3GtnBC,uD4GuGK,8BACA,0BAFA,cDqhBN,C3G3nBC,iM4GsHO,yBD4gBR,C3GloBC,+E4G4HO,yBDygBR,C3GroBC,+E4GsIO,sBADA,iBADA,cDsgBR,C3G1oBC,2Y4G+IO,yBDigBR,C3GhpBC,uf4GyJO,sBACA,yBD8fR,CCvhBE,mGA+BI,aAAc,CADd,iBD6fN,C3G5pBC,oI4GsKS,yBDyfV,CA7oBI,yBACE,oBAAqB,CAErB,gBAAiB,CACjB,kBAAmB,CAFnB,UAipBN,C3GrqBC,iC2G2BG,sBACA,cAAe,CACf,kBA6oBJ,CA3oBI,uCACE,qBA6oBN,CAzoBE,uBACE,WA2oBJ,C3GhrBC,oC2GwCK,WA2oBN,C3GnrBC,oC2G2CK,YAEA,kBAAmB,CADnB,eA4oBN,CAvoBE,0CAGI,WAuoBN,CApoBI,qCAEE,sBAEA,wBAAyB,CAHzB,WAAY,CAIZ,mBAAoB,CAFpB,kBAwoBN,CAloBM,qEACE,mBAooBR,CA/nBE,2BAOE,kBAAmB,CAHnB,QAAS,CAET,mBAAoB,CAEpB,WAAY,CAPZ,iBAAkB,CAElB,WADA,KAAM,CAGN,SAooBJ,C9FhpBI,2FACE,iB8FkpBN,C9F9oBI,qFACE,gB8FgpBN,C9F5oBM,2FAGE,S8F8oBR,C9FpoBM,kCACE,S8FsoBR,C3G7tBC,uGaIK,e8F4tBN,C3GhuBC,kIaSK,4BAA6B,CAD7B,yB8F4tBN,C3GpuBC,8PaoBK,2BAA4B,CAD5B,wB8FytBN,C3G5uBC,4Ha0BK,4BAA6B,CAD7B,yB8FutBN,CIvuBI,sEAEE,oBJyuBN,CI3uBI,kNAKI,yBJ0uBR,C3GxvBC,2C+GoBG,eJuuBJ,C3G3vBC,gC+G0BG,kBJouBJ,C3G9vBC,qE+GiCK,QAAS,CAFT,SAAU,CACV,SJmuBN,C3GnwBC,8F+GsCO,0BADA,gBAAiB,CADjB,aJouBR,C3GxwBC,oH+G0CO,qBJiuBR,C3G3wBC,2I+G+CS,QAAS,CACT,MAAO,CAFP,OAAQ,CADR,KJouBV,CI3tBE,yBACE,WJ6tBJ,CI3tBI,8DAEE,SJ6tBN,CIztBE,iDACE,WJ2tBJ,CIxtBE,iDACE,WJ0tBJ,CIptBM,4JAIM,eAAgB,CADhB,iBJqtBZ,CI9sBI,4LAGI,eJ+sBR,C3GtyBC,gvB+GsGK,SJ8sBN,CIzsBI,0IAIM,eAAgB,CADhB,gBJ0sBV,CC7yBE,kDACE,aDkzBJ,CC1yBE,qEAEI,WAAY,CACZ,YD2yBN,CCvyBE,+CAEI,gBDwyBN,CC1yBE,+CAMI,gBDuyBN,CClyBI,wBACE,aDoyBN,CCjyBI,4DACE,eDmyBN,C3G90BC,8D4GqDK,gBADA,cD8xBN,C3Gl1BC,mD4G2DG,QAAS,CADT,UD4xBJ,C3Gt1BC,sB4GkLC,aDuqBF,CCpqBI,0NAGI,yBDqqBR,CCnqBQ,sOACE,yBDsqBV,CC9pBM,8IAEE,0BDgqBR,C3Gr2BC,yE4G2MK,SAAU,CADV,UD+pBN,C3Gz2BC,kG4G6MO,yBD+pBR,CK32BA,sEhHDC,WgHGG,WL62BF,CK32BE,cACE,WL62BJ,CK12BE,cACE,WL42BJ,CKz2BE,yCAEI,WL02BN,CACF,CxH13BC,Y8HaC,mBANA,YAAa,CACb,SAAU,CACV,qBAAsB,CAGtB,YADF,CAIE,0BAEE,qBAFJ,CAKE,iCACE,kBAHJ,CAEE,kGAKI,OAHN,CAOE,sCAEE,aALJ,CAQE,mBAKE,mBAFA,sBAFA,YAGA,iBAFA,cAHJ,CASE,mBAIE,mBAFA,sBACA,eAFA,iBAJJ,CAUE,oBACE,SAAU,CAGV,YATJ,CAYE,kBAKE,mBADA,WAAY,CAHZ,iBAAkB,CAKlB,kBAXJ,CAaI,2BACE,WAAY,CACZ,gBAAkB,CAIlB,gBAdN,CAQI,+DASI,UAdR,CAkBI,8BACE,mBAhBN,CAmBI,wBACE,OAjBN,CAoBI,0BAQE,mBANA,QAAS,CAGT,WAIA,cAAe,CALf,YAEA,iBALA,cAAe,CAMf,iBAAkB,CAGlB,kBAAoB,CAPpB,SAXN,CAqBI,+BAEI,eApBR,CAuBM,qCAWE,mBACA,0BALA,WAMA,cAAe,CALf,eAFA,YAGA,iBARA,iBAAkB,CAElB,YAOA,iBAAkB,CARlB,SAYA,8BAAgC,CAThC,WADA,SAXR,CAuBQ,2CAME,sBAAuB,CAFvB,QAAS,CAIT,UAAW,CAHX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,kBApBV,CAwBQ,iDACE,6BAtBV,CAyBQ,2CAEE,0BADA,UAtBV,C9HjHC,wB+HCC,eDmHF,C9HpHC,+G+HIG,gBADA,qBDyHJ,CEtHE,gBACE,aFwHJ,CjH/HC,UESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CkHMV,iBAMF,CpHfC,YoHYG,YAMJ,CAHE,qBACE,gBACA,gBAKJ,CAPE,6CAMI,eAIN,CAAE,eACE,gBACA,iBAEJ,CAJE,sBAMI,iBAAkB,CADlB,kBAGN,CAEE,eACE,eAAgB,CAChB,iBAAJ,CAGE,qBAEE,sBACA,eAFA,aAGA,iBADJ,CAIE,gBAGE,eAAgB,CAFhB,QAAS,CACT,SADJ,CAKE,eAEE,kBAAmB,CAGnB,sBAJA,YAAa,CAEb,6BAA8B,CAC9B,cAFJ,CAKI,oBAGE,sBAAuB,CAFvB,YAAa,CACb,SAEA,cAHN,CAKM,2BACE,iBAHR,CAMM,4BAGE,sBAFA,QAAS,CACT,OAHR,CAOM,0BAEE,sBACA,eACA,mBAHA,iBAFR,CACM,4BAOI,sBACA,kBALV,CAOU,kCACE,aALZ,CAUM,gCACE,sBACA,eACA,kBARR,CAYI,sBACE,aAAc,CAGd,WAAY,CACZ,eAAgB,CAHhB,gBAAiB,CACjB,SARN,CAYM,yBAIE,sBAFA,oBAAqB,CAGrB,eACA,mBAHA,cAFA,iBAAkB,CAMlB,iBAVR,CAYQ,qCACE,cAVV,CAcM,4BAOE,yBAFA,WAAY,CACZ,eAAgB,CALhB,iBAAkB,CAElB,OAAQ,CADR,OAAQ,CAER,SATR,CAqBE,kCACE,sBAhBJ,CAmBE,kCAGE,oBADA,gBAhBJ,CAoBE,gBAEE,sBACA,cAAe,CAFf,eAGA,iBAlBJ,CAqBE,+BACE,+BAnBJ,CAqBI,0CACE,kBAnBN,CAuBE,iCACE,+BArBJ,CAwBE,gDACE,4BAtBJ,CAyBE,gDACE,eAvBJ,CpHnJC,iHoH8KG,+BAxBJ,CA2BE,4BACE,iBAzBJ,CA4BE,4BACE,gBA1BJ,CA6BE,kCACE,kBA3BJ,CA6BI,uCACE,aAAc,CACd,QA3BN,CA8BI,wCACE,gBA5BN,CA+BI,uCACE,kBA7BN,CA+BM,6CAEE,sBACA,eACA,gBAAiB,CAHjB,kBA1BR,CAiCI,yCAEE,gBAAiB,CADjB,eA9BN,CA6BI,4CAKI,cA/BR,CAiCQ,wDACE,cA/BV,CpHzLC,uCoHoOG,kBAAmB,CALnB,aAAc,CAEd,mBADA,cAAe,CAGf,gBAAiB,CADjB,aAjCJ,CAuCE,uBACE,aArCJ,CAyCE,+EAGM,WAzCR,CpHvMC,mBqHGC,yBACA,iBDuMF,CpH3MC,0GqHiBG,kBADA,kBDuMJ,CpHvNC,wCqHqBG,gBDqMJ,CpH1NC,8IqH8BK,gBDmMN,CpHjOC,8IqHwCK,iBDgMN,CExOA,oCAWM,8DACE,gBFmON,CACF,CE9NA,oCAEI,eACE,cF+NJ,CE7NI,sBACE,gBF+NN,CpHvPD,kCsH+BK,sBF2NJ,CEzNI,uCACE,eF2NN,CExNI,wCACE,qBF0NN,CACF,CG1PE,cACE,aAAc,CACd,gBH4PJ,CG9PE,qDAMI,aH2PN,CpHxQC,mCuHmBK,eHwPN,CpH3QC,yCuH4BS,iBADA,cHoPV,CpH/QC,oCuHoCO,aAAc,CADd,iBHgPR,CpHnRC,4DuH0CS,kBADA,eH8OV,CpHvRC,0CuHiDS,MAAO,CADP,UH2OV,CpH3RC,qDuH2DO,aAAc,CADd,iBHqOR,CpH/RC,sDuHiEO,iBHiOR,CpHlSC,sEuHwEW,kBADA,eH+NZ,CpHtSC,6FuHoFS,UHqNV,CG7MA,oCvH5FC,0FuH6GS,aAAc,CADd,iBHsMR,CACF,CG/LA,oCvHpHC,oCuH0HS,aAAc,CADd,iBH+LR,CpHxTD,qDuHqIS,qBHsLR,CACF,CpH5TC,gBESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,kBsHOF,CxHdC,sDEQC,eAAgB,CANhB,QAAS,CACT,SsHiBF,CAJE,sBAEE,UAAW,CAIX,WAAY,CALZ,aAAc,CAEd,QAAS,CACT,eAAgB,CAChB,iBAOJ,CAKE,gDAPE,oBAAqB,CACrB,YAEA,iBADA,gBAAiB,CAEjB,qBAsBJ,CAnBE,qBAUE,sBACA,yBACA,kBAEA,cAAe,CATf,yKAIA,eAAgB,CAPhB,eAWA,SAAU,CANV,iBAAkB,CAQlB,oFAIJ,CAnBE,uBAoBI,sBAFA,aAAc,CACd,aAAc,CAEd,eAIN,CAFM,6BACE,oBAIR,CAAI,2BACE,qBACA,kBAEN,CAJI,6BAKI,aAER,CAII,mCACE,qBACA,kBAFN,CAAI,qCAKI,aAFR,CAMI,4BAEE,gBACA,qBAFA,eAFN,CACI,8BAMI,aAJR,CAOM,kCACE,oBALR,CAQM,0CACE,oBANR,CASM,oCACE,aAPR,CAUM,4CACE,aARR,CAaE,oDAEE,SAXJ,CASE,kHAII,iBATN,CAKE,gLAOM,cACA,eACA,mBAAoB,CACpB,SAAU,CACV,kBARR,CAUQ,wLAGE,QAAS,CACT,MAAO,CACP,WAAY,CAHZ,OAAQ,CADR,KAHV,CAXE,8KA0BM,QAAS,CAIT,sBAFA,aAAc,CAGd,sCAAyC,CAJzC,MAAO,CAKP,kBAAmB,CAHnB,WAAY,CAMZ,SAAU,CAZV,iBAAkB,CAElB,OAAQ,CAQR,iBAAkB,CAClB,iBAAmB,CAVnB,KAAM,CAYN,kBARR,CAYI,8HAEI,SAVR,CAQI,4HAKI,SATR,CAaI,8IAEI,SAXR,CASI,4IAKI,SAVR,CAeE,yEAGE,gBAbJ,CAgBE,8FAaE,kBANA,sBAOA,cAAe,CAVf,oBAAqB,CAIrB,yKAFA,YAGA,iBAGA,eAAgB,CAPhB,eAKA,iBAAkB,CAKlB,kBAAoB,CAJpB,qBAVJ,CAiBE,0CAEE,sCAAyC,CACzC,SAfJ,CAYE,wDAMI,sBACA,cAAe,CACf,oFAdN,CAiBI,oEACE,oBAdN,CAEE,8FAsBI,sBACA,yBACA,kBARA,aAAc,CAId,cAAe,CAFf,WAAY,CAOZ,YAAa,CANb,SAAU,CAEV,iBAAkB,CAKlB,kBAAoB,CATpB,UALN,CxH3MC,0HwH8NK,qBADA,aAbN,CxHhNC,0GwHmOK,qBADA,aAbN,CAmBI,wDAEE,kBAjBN,CAeI,4GAKI,qBADA,sBAEA,kBAfR,CAmBI,uCACE,kBAjBN,CAgBI,iEAII,qBADA,sBAEA,kBAhBR,CAqBE,sBACE,mBAnBJ,CAsBE,wBACE,oBAAqB,CACrB,gBAAiB,CACjB,qBApBJ,CAuBI,+FAGI,kBArBN,CACF,CxHrPC,gDwH8QK,oBAAqB,CACrB,UAtBN,CAyBI,qCACE,oBAAqB,CACrB,YAEA,iBADA,gBAEA,kBAvBN,CAkBI,2C5GjNF,sBACA,qBAAsB,CACtB,yBACA,kBANA,sBAJA,oBAAqB,CAKrB,e4G8NM,Y5G7NN,mB4G8NM,YAAa,C5GlOnB,WAAY,CACZ,iBAJA,iBAAkB,CAYlB,kBAAoB,CAVpB,UAAW,C4GiOL,UAVR,CpE9QE,6DACE,cACA,sCoEgRJ,CpElRE,iEACE,cACA,qCoEgRJ,CpElRE,wDACE,cACA,oFoEgRJ,CpE7QE,kEACE,sBoE+QJ,CpEhRE,iEACE,sBoE+QJ,CpEhRE,6DACE,sBoE+QJ,C5GjNE,iDAlCA,qBACA,sB4GsPF,C5GjNE,oGAtDE,qBAUF,uBAPE,yCAQF,S4GmQF,C5GnNE,oDArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S4G4PF,C5G1PE,0DAZA,qBACA,sB4GyQF,C5G3NE,qDAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S4GwQF,C5GtQE,2DAZA,qBACA,sB4GqRF,C5GlOI,2WAME,wBAA6B,CAC7B,WAAY,CACZ,e4GoON,C5G/NE,mDAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qB4GkOJ,C5G7NE,8CAzGA,eADA,kB4G2UF,C5G7NE,8CAzGA,a4GyUF,CAlDE,wFAEE,YACA,iBACA,kBAoDJ,CAxDE,4IAOI,wBAA6B,CAC7B,QAAS,CAFT,WAwDN,CApDM,wJACE,YACA,gBAuDR,CAlDE,oDACE,oBAAqB,CACrB,YACA,gBAoDJ,CAvDE,0DAWI,sBACA,yBACA,kBAPA,qBAAsB,CACtB,WAAY,CACZ,gBAAiB,CAMjB,YAAa,CALb,aAAc,CACd,iBAAkB,CAKlB,2BAoDN,CAlDM,gEACE,oBAoDR,CAjDM,gEACE,qBACA,wCAmDR,CAhDM,oEAEE,mBACA,qBAFA,sBAGA,kBAkDR,CA7CE,gIAEE,YACA,gBA+CJ,CA5CE,yDAEE,YAEA,iBADA,QAAS,CAFT,cAiDJ,CA3CE,0FACE,sBAAuB,CACvB,wBA6CJ,CA1CE,kHAGE,YAEA,iBADA,QAAS,CAFT,cA+CJ,CAzCE,sKAEE,sBAAuB,CACvB,wBA2CJ,CAzCI,kLACE,YACA,gBA4CN,CAxCE,4HAEE,YAEA,iBADA,cA2CJ,CAvCE,4DACE,eAyCJ,CAvCI,yEACE,KAyCN,CAtCI,yEACE,YACA,gBAwCN,CA1CI,+EAQI,Y5GtYN,c4GqYM,UAwCR,CAjCE,wCACE,kBAmCJ,CApCE,6DAII,mBACA,qBACA,kBAmCN,CAzCE,+DAUM,sBAAuB,CACvB,WAAY,CAFZ,sBAGA,kBAmCR,CAhCM,oEACE,kBAkCR,CAnCM,sEAII,qBAkCV,CArDE,kEA0BI,mBACA,qBAFA,sBAGA,kBA+BN,CxHndC,wFwHsbO,sBAgCR,CA9DE,uEAmCI,SA8BN,CAjEE,sEAuCI,SA6BN,CApEE,qEA2CI,qBA4BN,CAvBA,yCAEI,2EAEE,YAwBJ,CACF,CApBA,yCxHjdC,wBwHmdG,YAsBF,CACF,CxH1eC,6NyHiBG,eAAgB,CADhB,cDqeJ,CxHrfC,0CyHqBG,mBDmeJ,CxHxfC,4CyH0BG,aAAc,CADd,iBDmeJ,CxH5fC,4FyH8BK,eAAgB,CADhB,cDmeN,CxHhgBC,iFyHkCK,aDieN,CxHngBC,oJyH6CO,eAAgB,CADhB,cD+dR,CxH3gBC,gEyHoDG,aAAc,CADd,gBD4dJ,CxH/gBC,UESC,oCARA,qBAAsB,CAGtB,sBwHOA,cADA,YAAa,CxHLb,ewHOA,WAAY,CxHNZ,0BACA,mBACA,eAAgB,CANhB,QAAS,CwHaT,SAAU,CxHZV,SAAU,CwHMV,iBAAkB,CAIlB,iBAAkB,CAGlB,uDAFA,qBAQF,CAJE,mBAEE,oBAAqB,CACrB,SAAU,CAFV,eAQJ,CAHE,yBACE,iBAKJ,CANE,uCAOI,aAAc,CAEd,WAAY,CAJZ,MAAO,CAKP,gBAAiB,CAPjB,iBAAkB,CAClB,KAAM,CAIN,UAAW,CAFX,SAUN,CAhBE,qDAcM,QAAS,CACT,aAHA,iBAAkB,CAClB,OASR,CAtBE,sDAsBM,eADA,gBAHA,iBAAkB,CAKlB,2BAJA,OAAQ,CACR,UAUR,C1HtDC,wE0HkDO,gBAOR,CAjCE,wDAgCM,WAIR,CApCE,yDAmCM,eAIR,C1H/DC,2E0H8DO,gBAIR,CA1CE,wDA4CM,YACR,CA7CE,yDA+CM,gBACR,C1HxEC,2E0H0EO,gBACR,CAIE,oBACE,iBAAkB,CAClB,sBAFJ,CAII,0BAUE,gBANA,QAAS,CAST,UAAW,CANX,eAEA,WAAY,CAJZ,MAAO,CAMP,SAAU,CAGV,mBAAoB,CAbpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAUN,kBAAoB,CAJpB,UAAW,CAFX,UAMN,CAME,eACE,UAAW,CACX,UAAY,CAEZ,mBAAoB,CADpB,oFAHJ,CAMI,qBACE,UAAY,CACZ,mBAJN,CAUE,cACE,qBARJ,CAcE,cAEE,oBAAqB,CACrB,etIzHF,WsIuHE,iBAAkB,CtIxHpB,SsIgHF,CAcI,mBAUE,kDAAmD,CALnD,yBACA,kBAAmB,CAJnB,aAAc,CAEd,UAAW,CAKX,UAAY,CARZ,iBAAkB,CAMlB,oBAAsB,CACtB,wBAAyB,CALzB,SALN,CAcM,+BAEE,MAAO,CADP,KAXR,CAeM,gCAGE,mBAAqB,CADrB,OAAQ,CADR,KAXR,CAgBM,gCAGE,mBAAqB,CADrB,QAAS,CADT,OAZR,CAiBM,gCAGE,oBAAqB,CAFrB,QAAS,CACT,MAdR,CAmBI,mBAEE,wCAAyC,CADzC,sBAhBN,CAyBE,2BACE,cAvBJ,CAsBE,6BAKI,UAAW,CADX,SAtBN,CA4BE,2BACE,cA1BJ,CAyBE,6BAKI,WAAY,CADZ,UAzBN,CA8BE,4CACE,aA5BJ,CAgCA,2D1HvMC,e0H0MG,gBACA,UA9BF,CACF,CAiCA,uBACE,GACE,SA/BF,CACF,CAkCA,qBACE,GACE,uBAhCF,CACF,CCvLE,cACE,aDyLJ,C1H3LC,iC2HSO,2BAA4B,CAD5B,wBDuLR,CChLA,wBACE,GACE,yBDkLF,CACF,C9G4OI,0MAEE,gBACA,oBgH3aN,ChH8aI,kNAhaA,qBAUF,uBAPE,wCAQF,SgHlBF,CCTE,6CjHgcE,agHpbJ,ChH8ZI,8MAEE,gBACA,oBgH5ZN,ChH+ZI,sNAhaA,qBAUF,uBAPE,yCAQF,SgHHF,CCnBE,+CjH2bE,agHraJ,CzIjCC,ceSC,oCUwDA,sBACA,qBAAsB,CACtB,yBACA,kBVnEA,qBAAsB,CU6DtB,sBgHlDA,oBAAqB,ChHmDrB,eVzDA,0B0HOA,WAAY,CAGZ,mB1HRA,eAAgB,CANhB,QAAS,CU0DT,WAAY,CgH7CZ,eAAgB,CADhB,SAAU,CAHV,iBAAkB,ChH0DlB,kBAAoB,CgHnDpB,qBAAsB,CADtB,oBAAqB,ChH0CrB,UgHDF,CxEtDE,gCACE,cACA,sCwEwDJ,CxE1DE,oCACE,cACA,qCwEwDJ,CxE1DE,2BACE,cACA,oFwEwDJ,CxErDE,qCACE,sBwEuDJ,CxExDE,oCACE,sBwEuDJ,CxExDE,gCACE,sBwEuDJ,ChHWE,8DAtCA,qBACA,sBgHqCF,ChHAE,0CAnDE,yCAQF,SgH2CF,ChHKE,uBArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,SgHoCF,ChHlCE,6BAZA,qBACA,sBgHiDF,ChHHE,wBAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,SgHgDF,ChH9CE,8BAZA,qBACA,sBgH6DF,ChHVI,6LAME,wBAA6B,CAC7B,WAAY,CACZ,egHYN,ChHPE,sBAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qBgHUJ,ChHLE,iBAzGA,eADA,kBgHmHF,ChHLE,iBAzGA,agHiHF,CAxGE,gChHuBA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,SgHqFF,ChHnFE,sCAZA,qBACA,sBgHkGF,CA9GE,sBhHLE,qBAUF,uBAPE,yCAQF,SgH8GF,CzI/IC,6CyI6CG,8BAUA,oBAAqB,CALrB,iBAAkB,CAPlB,mBAAoB,CADpB,iBAAkB,CAIlB,wBAAyB,CACzB,oBAAqB,CAHrB,kBAAmB,CACnB,oBAAqB,CAJrB,mBAAoB,CAUpB,sBAAuB,CAHvB,mBAAoB,CAbpB,QAAS,CADT,gBAGA,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CAHhB,iBAqBA,0DAAiB,CAJjB,kBAAmB,CACnB,kBAAmB,CAFnB,mBAAoB,CAIpB,kBAkHJ,CzI1KC,uByI8DG,WAAY,CACZ,YAAa,CACb,WAAY,CAHZ,UAmHJ,CxE5KE,yCACE,cACA,sCwE8KJ,CxEhLE,6CACE,cACA,qCwE8KJ,CxEhLE,oCACE,cACA,oFwE8KJ,CxE3KE,8CACE,sBwE6KJ,CxE9KE,6CACE,sBwE6KJ,CxE9KE,yCACE,sBwE6KJ,CAhHE,sBAIE,QAAS,CAGT,iBAAkB,CAFlB,MAAO,CAGP,mBAAoB,CAPpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,UAoHJ,CA1HE,2BAWI,oBAAqB,CACrB,cAkHN,CA7GE,uB1H/EA,qC0H0FE,sBACA,kBAEA,sGANA,qBAAsB,C1H5FxB,sB0H6FE,e1H3FF,0B0H4FE,mBAAqB,CAJrB,YAAa,C1HvFf,mBACA,eAAgB,CANhB,QAAS,C0HmGP,YAAa,C1HlGf,SAAU,C0HyFR,iBAAkB,CAClB,WAAY,CAEZ,YA0HJ,CAjHI,8BACE,YAmHN,CAhHI,4BAKE,eAAgB,CAHhB,eAAgB,CADhB,gBAAiB,CAKjB,YAAa,CAFb,aAAc,CADd,cAqHN,CAhHM,iCAME,sBAKA,cAAe,CATf,aAAc,CAKd,eAAmB,CACnB,mBALA,eAAgB,CAEhB,eAAgB,CADhB,iBAHA,iBAAkB,CASlB,sBAAuB,CAEvB,8BAAgC,CAHhC,kBAqHR,CAhHQ,uCACE,wBAkHV,CA/GQ,6CACE,yBAiHV,CA9GQ,4CACE,yBAgHV,CA7GQ,0CACE,sBACA,kBA+GV,CA7GU,gDAEE,sBADA,sBAEA,kBA+GZ,CA3GQ,0CAGE,yBAFA,sBACA,eA8GV,CA1GQ,wCACE,wBA4GV,CAtGE,qBAOE,kBAAmB,CAHnB,QAAS,CAET,mBAAoB,CAEpB,WAAY,CAPZ,iBAAkB,CAElB,WADA,KAAM,CAGN,SA2GJ,CEhRE,kBACE,aFkRJ,C5HzRC,aESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0B6HIA,MAAO,C7HHP,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,C6HUV,mBAAoB,CALpB,cAAe,CACf,OAAQ,CAGR,UAAW,CADX,YASF,CALE,oBACE,WAAY,CACZ,iBAOJ,CAJE,4BAGE,gBACA,kBACA,sGAJA,oBAAqB,CACrB,kBAIA,kBAMJ,C/HhCC,8B+H8BG,aAKJ,C/HnCC,4B+HkCG,aAIJ,C/HtCC,8B+HsCG,aAGJ,C/HzCC,yD+H2CG,aAEJ,C/H7CC,sB+HkDG,eADA,gBAAiB,CAFjB,iBAAkB,CAClB,OAGJ,C/HnDC,+D+HuDG,sBAAwB,CADxB,6BACJ,CAIA,0BACE,GACE,gBAAiB,CAEjB,SAAU,CADV,WADF,CAKA,GACE,YAAa,CAEb,SAAU,CADV,SAFF,CACF,C/HnEC,uCgISG,aDgEJ,C/HzEC,0BgIcG,eAAgB,CADhB,cDgEJ,C/H7EC,WESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,C+HEhB,aAAc,CADd,4BAA6B,CAE7B,gBAAoB,C5BRpB,mBAAoB,C4BGpB,iBAAkB,CAClB,SAAU,CACV,UCaF,ClIrBC,qDqGSG,uBADA,SAAU,CADV,cAAe,CAGf,oF6BkBJ,C7BfE,gBAIE,iCDbF,QAAS,CCYP,WAAY,CDXd,MAAO,CAJP,eAEA,OAAQ,CADR,KAAM,CCaJ,Y6BuBJ,C7BnBI,uBACE,Y6BqBN,C7BjBE,gBDpBA,QAAS,CACT,MAAO,CCsBL,SAAU,CADV,aAAc,CDzBhB,eAEA,OAAQ,CADR,KAAM,C6BYJ,YCoCJ,CDjCE,iBAME,oBAAqB,CAJrB,sBAEA,eADA,eAAgB,CAEhB,iBAJA,QC2CJ,CDnCE,mBAGE,2BAA4B,CAD5B,sBAEA,QAAS,CACT,kBACA,sGACA,mBAAoB,CANpB,iBC2CJ,CDlCE,iBAUE,sBAAuB,CACvB,QAAS,CALT,sBAOA,cAAe,CANf,eAAgB,CAChB,aAAc,CAId,SAAU,CAPV,SAAU,CAJV,iBAAkB,CAElB,OAAQ,CAMR,oBAAqB,CAPrB,KAAM,CAYN,oBAAsB,CAVtB,UC8CJ,CDlCI,mBACE,aAAc,CAGd,eACA,iBAAkB,CAFlB,YAGA,iBACA,iBAAkB,CAElB,mBAAoB,CADpB,mBAAoB,CANpB,UC2CN,CDjCI,8CAEE,sBACA,oBCmCN,CD/BE,kBAGE,gBACA,gCAEA,0BAJA,sBADA,iBCqCJ,CD7BE,gBAIE,oBAAqB,CAFrB,eACA,mBAFA,YCkCJ,CD5BE,kBAGE,uBAGA,0BAFA,6BAHA,kBACA,gBCiCJ,CDnCE,+DASI,eAAgB,CAChB,eC6BN,CDzBE,gBACE,eC2BJ,ClIjIC,oBiI2GC,iBCyBF,CDvBE,2BAKE,UAAW,CAJX,oBAAqB,CAErB,WAAY,CACZ,qBAAsB,CAFtB,OC4BJ,ClI3IC,+BiIsHG,oBAAqB,CACrB,gBAAiB,CACjB,eAAgB,CAHhB,KAAM,CAIN,qBCyBJ,CDrBA,yBjI7HC,WiIgIG,eAAgB,CADhB,4BCwBF,ClIvJD,+BiIoIK,QCsBJ,CACF,ClI3JC,qCmIMG,YDwJJ,ClI9JC,mCmIUG,sBDuJJ,C5I7JE,uCAEE,UAAW,CADX,a4IgKJ,C5I5JE,sCAGE,UAAW,CACX,UAAW,CAFX,a4I+JJ,CCzJE,iDAMI,sBAJA,aAAc,CAMd,eADA,eAAgB,CAEhB,eAAgB,CAJhB,eD4JN,CCjKE,mDAcI,sBACA,eAFA,cDyJN,CCtKE,iCAmBI,UAAW,CAEX,cAAe,CADf,iBDuJN,CC3KE,qFAyBM,gBDqJR,ClI/LC,2CmIgDG,eAAgB,CAChB,gBDkJJ,ClInMC,6DmIoDK,eAAgB,CAChB,eDkJN,ClIvMC,0DmI0DG,aDgJJ,ClI1MC,wHmI+DG,aD+IJ,ClI9MC,yDmImEG,aD8IJ,ClIjNC,4DmIuEG,aD6IJ,ClIpNC,2DmI4EG,mBD2IJ,CE9MI,oBACE,aFgNN,ClI1NC,qCoIiBK,MAAO,CADP,UF8MN,ClI9NC,sCoIuBK,eF0MN,ClIjOC,wDoI4BO,aAAc,CADd,gBF0MR,ClIrOC,4CoIoCO,aFoMR,ClIxOC,qDoIwCS,WAAY,CAEZ,gBAAiB,CADjB,cFoMV,ClI7OC,yGoI+CW,aAAc,CADd,iBFmMZ,ClIjPC,4CoIuDO,eF6LR,ClIpPC,8DoI4DS,aAAc,CADd,gBF6LV,ClIxPC,kDoIsEK,gBFqLN,ClI3PC,kBESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CmIQhB,kBnIbA,SAAU,CmIWV,cAAe,CACf,YAEF,CACE,6BAEE,cAAe,CADf,cAEJ,CAEE,8BACE,iBAAJ,CAGE,yBASE,oBAAqB,CACrB,gBACA,kBACA,sGAJA,mBAJA,mBACA,gBAAiB,CAFjB,6BAIA,eAAgB,CADhB,kBALA,iBAAkB,CAClB,WASJ,CrItCC,iGqI4CK,gBAAiB,CADjB,iBAAN,CrI3CC,yGqIkDK,aAAc,CADd,iBADN,CAKI,iCAEE,sBACA,eACA,gBAAiB,CAHjB,iBAAN,CAMM,yDAIE,wBAA6B,CAH7B,aAAc,CAEd,aAAc,CAEd,mBAAoB,CAHpB,wBADR,CAMQ,gEAEE,UAAW,CADX,aAHV,CASI,qCACE,cAPN,CAUI,mEACE,kBARN,CAWI,oEAGE,eAFA,iBAAkB,CAClB,gBARN,CAYI,wEAEE,eADA,gBATN,CAgBI,8BAGE,cAAe,CACf,gBAAiB,CAFjB,eAAgB,CADhB,iBAXN,CAkBM,8CACE,aAhBR,CAmBM,2CACE,aAjBR,CAoBM,8CACE,aAlBR,CAqBM,4CACE,aAnBR,CAuBI,+BAIE,sBACA,YAAa,CAJb,iBAAkB,CAElB,UAAW,CADX,QAlBN,CAuBM,qCAKI,qBAzBV,CA8BI,6BACE,WAAY,CACZ,eA5BN,CrIhHC,4CqIiJG,uBAAyB,CAEzB,wBAAyB,CADzB,wDA7BJ,CAiCE,2DAKE,2BAA4B,CAD5B,SA7BJ,CAiCE,wFAbE,uBAAyB,CAEzB,wBAAyB,CADzB,wDAdJ,CA0BE,6BAGE,sBAAwB,CACxB,2BA9BJ,CAiCE,kIAEE,iCAAkC,CAClC,4BA/BJ,CAkCE,gEACE,kCAAmC,CACnC,4BAhCJ,CAoCA,8BACE,GACE,WACA,SAlCF,CAqCA,GACE,MAAO,CACP,SAnCF,CACF,CAsCA,+BACE,GAEE,mBADA,gBAAiB,CAEjB,SApCF,CAuCA,GAEE,eAAgB,CADhB,YAAa,CAIb,SAAU,CADV,gBAAiB,CADjB,aAnCF,CACF,CC/JE,sBACE,aDiKJ,CrIxKC,yFsIcO,iBAAkB,CADlB,eD+JR,CrI5KC,wLsI4BO,aAAc,CADd,iBDyJR,CrIpLC,oDsImCO,aAAc,CADd,gBDsJR,CrIxLC,qDsI0CO,SAAU,CADV,UDmJR,CrI5LC,mDsIgDO,UD+IR,CE9LE,+CAGE,aAAc,CADd,cFiMJ,CE7LE,8KAGI,oCF8LN,CE1LE,oLAGI,uCF2LN,CEvLE,uDAGE,iBADA,cF0LJ,CE5LE,kXAOI,qCF2LN,CEtLA,iCACE,GACE,gBAAiB,CACjB,SFwLF,CErLA,GACE,YAAa,CACb,SFuLF,CACF,CEpLA,oCACE,GACE,mBAAoB,CACpB,SFsLF,CEnLA,GACE,eAAgB,CAChB,SFqLF,CACF,CElLA,kCACE,GAEE,SAAU,CADV,WFqLF,CEjLA,GAEE,SAAU,CADV,OFoLF,CACF,CrIrPC,iBESC,oCsIAA,sBtIRA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CsIMT,kBADA,iBAUF,CANE,uBACE,wBAQJ,CALE,gCACE,gBAOJ,CAJE,4BACE,gBAMJ,CAHE,sBAEE,cAAe,CACf,aAAc,CAFd,iBAOJ,CAHI,6BC3BF,cD6BI,WC3BJ,cAAe,CADf,YAAa,CAEb,oBDkCF,CChCE,8EAEE,aDkCJ,CC/BE,oCACE,aDiCJ,CxI7CC,uCwImCG,WAAY,CACZ,cACA,qBAaJ,CxIlDC,yCwIyCG,cAYJ,CAHE,yBACE,YAAa,CACb,6BAKJ,CAHI,8BAEE,kBAAmB,CADnB,YAAa,CAEb,aACA,eAKN,CAFI,+BAGE,sBAEA,eADA,eAAgB,CAEhB,iBAJA,eAAgB,CADhB,kBAjBF,eAAgB,CAEhB,sBAAuB,CADvB,kBA4BJ,CAxBE,qCAsBI,iBAKN,CAFI,mCAEE,sBACA,eACA,mBAHA,kBA/BF,eAAgB,CAEhB,sBAAuB,CADvB,kBAwCJ,CAHI,+BACE,aACA,kBAKN,CAPI,iCAKI,mBAKR,CAAE,yBACE,gBAEJ,CACE,wBACE,eACJ,CAFE,gDAIM,QACR,CACQ,uDACE,WACV,CARE,gDAcM,eADA,mBADA,eACR,CAME,kDACE,cAJJ,CE3GE,qBACE,aF6GJ,CxIpHC,2C0IYK,WAAY,CAEZ,gBAAiB,CADjB,cF4GN,CxIzHC,8G0IsBO,iBADA,cF4GR,CxIjIC,wD0ImCO,WAAY,CAEZ,gBAAiB,CADjB,cFkGR,CxItIC,mD0I2CO,WF8FR,CxIzIC,oD0IiDO,UF2FR,CxI5IC,sD0IuDS,aAAc,CADd,iBF0FV,CxIhJC,iE0I6DS,cFsFV,CxInJC,yE0IuES,WF+EV,CxItJC,gB2IMC,YAAF,C3INC,cESC,oCARA,qBAAsB,CAGtB,sB0IIA,oBAAqB,C1IHrB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,S0IYF,CALE,mBAGE,eAFA,iBAAkB,CAClB,UAQJ,CAJE,oBACE,oBAMJ,CAJI,0BAGE,kBAAmB,CAFnB,YAAa,CACb,kBAON,CAHI,yBAIE,mBAHA,aAAc,CAEd,gBAAiB,CADjB,aAAc,CAGd,kBAKN,CAHM,gCACE,kBAKR,C5ItCC,wG4IwCG,cAEJ,CACE,oBACE,oBAAqB,CAErB,cAAe,CACf,eAAgB,CAFhB,UAGJ,C5IhDC,4C4IiDK,8BACA,6BAEN,CAEE,oBAME,yBACA,oBALA,oBAAqB,CAErB,eAAgB,CAHhB,iBAAkB,CAIlB,qBAAsB,CAFtB,UAIJ,CAGE,2BACE,cADJ,CAIE,0BACE,iCAFJ,CAKE,iFAEI,cAJN,CAQE,0CAGE,yBACA,oBAFA,iBAAkB,CAGlB,iDANJ,CASE,yBAIE,yBADA,MAAO,CAFP,iBAAkB,CAClB,KALJ,CAUE,mBAIE,sBAHA,oBAAqB,CAIrB,cACA,aAAc,CAHd,eAAgB,CAKhB,eAAgB,CAChB,qBAAsB,CAFtB,kBAAmB,CALnB,SAAU,CAQV,iBARJ,CAFE,4BAYI,cAPN,CAWE,oDAUI,sEAHA,gBACA,kBAAmB,CAHnB,QAAS,CAMT,UAAW,CALX,MAAO,CAGP,SAAU,CAPV,iBAAkB,CAElB,OAAQ,CADR,KAFN,CAcE,gDAEI,wBAbN,CAWE,kDAKI,aAbN,CAiBE,gHAEI,cAhBN,CAoBE,8CAEI,wBAnBN,CAiBE,gDAKI,aAnBN,CAuBE,8GAEI,cAtBN,CA0BE,yCAGE,wBAA6B,CAD7B,aAAc,CADd,iBAtBJ,CA2BE,wCAOE,sBACA,cALA,QAAS,CAMT,aAAc,CAJd,QAAS,CACT,SAAU,CALV,iBAAkB,CAUlB,iBAAkB,CATlB,OAAQ,CAUR,8BAAgC,CAFhC,kBAAmB,CANnB,UAjBJ,CAaE,iDAeI,sBAzBN,CA6BE,sEAEI,aA5BN,CAgCE,oEAEI,aA/BN,CAoCA,+BACE,GAEE,UAAY,CADZ,qCAjCF,CAqCA,IAEE,UAAY,CADZ,qCAlCF,CAsCA,GAEE,SAAU,CADV,iCAnCF,CACF,CCpKE,kBACE,aDsKJ,C5I7KC,6D6IcO,6BADA,cAAe,CAGf,6BADA,eDoKR,C5InLC,2C6IwBK,SAAU,CADV,ODgKN,C5IvLC,+G6IgCK,aAAc,CADd,gBAAiB,CAEjB,gBD4JN,C5I7LC,UESC,oCARA,qBAAsB,CAGtB,sB4IOA,cAHA,oBAAqB,C5IHrB,e4IOA,e5INA,0BACA,mB4IMA,oBACA,eAAgB,CALhB,QAAS,CAMT,YAAa,CALb,SASF,CAFE,kCACE,cAIJ,CALE,4CAII,kBAIN,CAAE,eAGE,aAAc,CACd,cAAe,CAFf,oBAAqB,CADrB,iBAKJ,CAAI,gCACE,gBAEN,CATE,mBAWI,6BACN,CACM,yBACE,oBACR,CAEM,yBACE,SAAR,CAGM,iCACE,2BACA,oBADR,CAKI,2CAEE,cACA,kBAAoB,CACpB,oFAHN,CADI,6DAMI,qBADR,CAKI,qBAKE,WAAY,CAFZ,MAAO,CAIP,SAAU,CADV,eAAgB,CALhB,iBAAkB,CAClB,KAAM,CAEN,SAAN,CAMI,mFAEE,SAJN,CAOI,mFAEE,aALN,CASE,eACE,oBAAqB,CAErB,eADA,YANJ,CC9EE,cACE,aDgFJ,C9IlFC,8C+ISO,eAAgB,CADhB,cD8ER,C9ItFC,mC+IgBO,SAAU,CADV,OD2ER,C3J1FC,Y6JMC,iBAAF,C7JNC,8C6JSG,aAAJ,C7JTC,4C6JaG,aADJ,C7JZC,2C6JiBG,aAFJ,C7JfC,8C6JqBG,aAHJ,CAOE,kBAEE,YAAa,CACb,WAAY,CAFZ,WAHJ,CAQE,iBACE,kBAAmB,CACnB,iBANJ,CAIE,0BAKI,cANN,CAUE,kBACE,sBACA,eACA,eAAgB,CAChB,iBARJ,CAWE,qBACE,sBACA,eACA,eAAgB,CAChB,iBATJ,CAYE,kBACE,gBACA,iBAVJ,CAQE,oBAKI,gBAVN,CAYM,8BACE,cAVR,CAeE,oBAGE,yBAFA,eAAgB,CAChB,iBAZJ,CCnDE,gBACE,aDqDJ,C7J5DC,oC8JcO,eAAgB,CADhB,cDmDR,C7JhEC,8C8JmBS,aDgDV,CEjEE,uFAGE,sBACA,kBCGJ,CDCA,yBACE,sBACA,kBACA,kGCCF,CDGA,yBACE,eAAgB,CAGhB,sBAAuB,CADvB,kBAAmB,CAEnB,mBCFF,CnJpBC,eESC,oCiJIA,iCACA,kBjJbA,qBAAsB,CAGtB,sBiJQA,sBAFA,oBAAqB,CjJLrB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CiJST,YAIA,iDAsBF,CApBE,qBAGE,mBAAoB,CADpB,YAAa,CAEb,wBAAyB,CAHzB,iBAAkB,CAIlB,UAsBJ,CAlBE,mCACE,YAoBJ,CAjBE,uDACE,SACA,WAmBJ,CAdI,oGAEE,gCAgBN,CAXE,oBAGE,cAAe,CAFf,iBAAkB,CAClB,iBAAkB,CAElB,mDAaJ,CAXI,6BDvCF,sBACA,kBACA,mGCuCI,aAeN,CAZI,oDAEE,aAcN,CAXI,0BAGE,iBAFA,gBD3CJ,eAAgB,CC4CZ,eDzCJ,sBAAuB,CADvB,kBAAmB,CAEnB,mBC0DF,CAZI,2BACE,eAcN,CAXI,0BAKE,QAAS,CAFT,MAAO,CAGP,SAAU,CACV,mBAAoB,CANpB,iBAAkB,CAClB,KAAM,CAEN,OAgBN,CARE,0DAGE,eACA,iBAHA,gBACA,cAYJ,CAPE,0DAGE,iBAFA,gBACA,aAUJ,CDrGE,mGAGE,sBACA,kBCuGJ,CANE,qBD5FA,sBACA,kBACA,mGCiGE,WAAY,CAFZ,MAAO,CAGP,aAAc,CALd,iBAAkB,CAClB,KAAM,CAEN,OAWJ,CALE,0CACE,iGACA,2BAOJ,CCtHE,iCACE,aDwHJ,CCrHE,0DAEE,eAAgB,CADhB,cDwHJ,CnJnIC,YESC,oCARA,qBAAsB,CAGtB,sBmJQA,cAAe,CnJPf,eACA,0BmJGA,WAAY,CnJFZ,mBACA,eAAgB,CmJEhB,gBACA,aAAc,CAHd,iBAAkB,CAKlB,iBAOF,CA+IE,qBAEE,WAAY,CACZ,eAAgB,CAChB,aAAc,CAHd,UA1IJ,CAyIE,sCAQI,WAAY,CADZ,SA5IN,CAqIE,uCAYI,SA9IN,CAkIE,wCAiBI,iBADA,eA9IN,CA8HE,sCAwBI,WAAY,CAFZ,SAAU,CADV,KAAM,CAEN,UA/IN,CAwHE,2CA4BI,QAAS,CACT,kBAjJN,CAoHE,sCAkCI,WAAY,CADZ,SAjJN,CAgHE,qCAuCI,gBAAiB,CADjB,QAlJN,CAuJE,uCAGI,0BAvJN,CrJ1DC,uDsJuBO,aAAc,CADd,iBDwCR,CrJ9DC,qDsJ8BO,SAAU,CADV,UDqCR,CrJlEC,0DsJqCO,SAAU,CADV,SDkCR,CrJtEC,oDsJ4CO,SAAU,CADV,SD+BR,CAzDE,uBACE,kBA2DJ,CAxDE,iBAIE,yBAFA,UA8DJ,CAvDE,mCAJE,kBAFA,UAAW,CAFX,iBAAkB,CAKlB,+BAiEJ,CA9DE,kBAGE,wBA2DJ,CAtDE,mBAKE,sBACA,yBACA,iBAAkB,CAClB,aACA,cAAe,CANf,YACA,gBAHA,iBAAkB,CASlB,wFARA,UAgEJ,CAjDI,4BACE,SAmDN,CAhDI,yBACE,qBAEA,0CADA,YAmDN,CrJhHC,oCqJkEK,oBAiDN,CA9CI,yBAIE,WAAY,CAEZ,UAAW,CADX,SAAU,CAJV,iBAAkB,CAElB,UAAW,CADX,QAoDN,CA5CE,mCAEI,wBA6CN,CA/CE,oCAKI,wBA6CN,CAlDE,4DAQI,oBA6CN,CAzCE,iBAKE,eAFA,MAAO,CAFP,iBAAkB,CAClB,QAAS,CAET,UA4CJ,CAxCE,sBAGE,sBAGA,cAAe,CAJf,oBAAqB,CADrB,iBAAkB,CAGlB,iBAAkB,CAGlB,oFAAiB,CAFjB,mBA4CJ,CAxCI,6BACE,qBA0CN,CAtCE,iBAIE,sBAAuB,CADvB,UAAW,CAEX,mBAAoB,CAJpB,iBAAkB,CAClB,UA2CJ,CArCE,gBAKE,sBACA,yBACA,iBAAkB,CAClB,cAAe,CAJf,UAAW,CAHX,iBAAkB,CAClB,QAAS,CACT,SA4CJ,CArCI,uBACE,oBAuCN,CAnCE,qBACE,kBAqCJ,CAtCE,sCAII,kCAqCN,CAzCE,uCAQI,0CAoCN,CA5CE,6EAaI,sBACA,uCACA,eAAgB,CAChB,kBAmCN,CAnDE,gFAqBI,4BAkCN,CCzLE,gBACE,aD2LJ,CrJlMC,iCsJaK,SAAU,CADV,OD0LN,CrJtMC,eESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SqJWF,CANE,qBAEE,sBACA,eAFA,iBAUJ,CALE,wBACE,gBAOJ,CAJE,uBACE,sBAEA,yKADA,cAOJ,CAJI,6BAEE,aAAc,CADd,oBAON,CAHI,4DAEE,oBAKN,CAFI,8BACE,gBAIN,CADI,8BACE,eAGN,CCxCE,mBACE,aD0CJ,CvJ5CC,iDwJSO,eAAgB,CADhB,cDwCR,CvJhDC,iDwJgBO,aAAc,CADd,gBDqCR,CvJpDC,WESC,oCARA,qBAAsB,CAGtB,sBuJqBA,YAAa,CvJpBb,euJsBA,WAAY,CvJrBZ,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CuJyBV,kCAAmB,CAFnB,UARF,CzJlBC,gByJiCC,oBAAqB,CACrB,SACA,eAAgB,CAHhB,iBAAkB,CAIlB,kBAXF,CAaE,0BACE,YAXJ,CAcE,2BACE,SAZJ,CAeE,mLAEE,YAbJ,CAgBE,6CAEE,oBAAqB,CACrB,kBAdJ,CAiBE,qBAQE,iCACA,mBAJA,yKADA,eAFA,YAIA,iBAHA,iBAIA,iBAAkB,CAGlB,gDAAoD,CATpD,UANJ,CAKE,qCAeI,cACA,aAAc,CAHd,iBAAkB,CAClB,SAbN,CAmBE,qBAGE,MAAO,CAEP,cAAe,CAJf,iBAAkB,CAClB,QAAS,CAET,UAhBJ,CAmBI,2BAIE,mBACA,iBAAkB,CAElB,UAAW,CANX,oBAAqB,CAErB,UAAW,CAGX,yBAA2B,CAJ3B,UAZN,CAqBE,sBAIE,sBAFA,oBAAqB,CAGrB,eACA,iBAHA,kBAAmB,CAFnB,iBAdJ,CAqBI,4BAOE,mBACA,UAAW,CAJX,aAAc,CAEd,UAAW,CAHX,SAAU,CAFV,iBAAkB,CAClB,SAGA,YAhBN,CAuBE,yBACE,cAAe,CAGf,eAAmB,CAFnB,eAlBJ,CAwBE,qDALE,sBAEA,cAjBJ,CzJvGC,0CyJ+NG,sBACA,4BArHJ,CzJ3GC,0DyJkOK,qBApHN,CzJ9GC,8EyJoOO,0BAnHR,CzJjHC,6FyJyOG,qBArHJ,CAuHI,mGACE,wBArHN,CzJvHC,mGyJgPG,qBAtHJ,CzJ1HC,0EyJmPG,wBAtHJ,CzJ7HC,6CyJ+NG,sBACA,oBA/FJ,CzJjIC,6DyJkOK,aA9FN,CzJpIC,iFyJoOO,kBA7FR,CzJvIC,gGyJyOG,qBA/FJ,CAiGI,sGACE,wBA/FN,CzJ7IC,sGyJgPG,qBAhGJ,CzJhJC,6EyJmPG,wBAhGJ,CAjBE,uEACE,kBAmBJ,CApBE,uFAGI,UAoBN,CAhBE,wEACE,eAkBJ,CzJ5JC,4CyJ+NG,sBACA,oBAhEJ,CzJhKC,4DyJkOK,aA/DN,CzJnKC,gFyJoOO,kBA9DR,CzJtKC,+FyJyOG,qBAhEJ,CAkEI,qGACE,wBAhEN,CzJ5KC,qGyJgPG,qBAjEJ,CzJ/KC,4EyJmPG,wBAjEJ,CzJlLC,2CyJ+NG,sBACA,oBA1CJ,CzJtLC,2DyJkOK,aAzCN,CzJzLC,+EyJoOO,kBAxCR,CzJ5LC,8FyJyOG,aA1CJ,CA4CI,oGACE,wBA1CN,CzJlMC,oGyJgPG,aA3CJ,CzJrMC,2EyJmPG,wBA3CJ,CzJxMC,iEyJgJG,kBA2DJ,CAxDE,yBACE,kBA0DJ,CzJ9MC,8FyJ4JK,cAqDN,CzJjNC,weyJmKS,oBAoDV,CA9CU,uXAGE,aAgDZ,CAvCU,sJACE,oBAyCZ,CA1CU,sKAII,aAyCd,CzJlOC,qEyJoMG,iBAAkB,CAClB,kBAiCJ,CA/BI,iFACE,cAiCN,CzJzOC,sGyJ2MK,eAiCN,CA9BI,0EACE,YAgCN,CA7BI,iFACE,gBACA,kBA+BN,CzJnPC,sE0JGG,eAAgB,CAChB,QAAS,CAFT,WDsPJ,CzJxPC,sF0JUK,eADA,YAFA,SAAW,CAIX,iBALA,MAEA,UDwPN,CzJhQC,mF0JgBK,aDmPN,CC5OE,gFAIM,eAAgB,CADhB,UD6OR,CzJvQC,qF2JGG,iBFuQJ,CErQI,iGACE,cFuQN,CzJ7QC,sC2JgBG,mBAHA,eAFA,YAGA,iBAFA,iBAGA,iBAAkB,CALlB,UF4QJ,CzJtRC,uC2JoBG,eACA,iBAFA,kBFwQJ,CEpQI,6CACE,QFsQN,CzJ9RC,6C2J4BG,sBACA,cFqQJ,CzJlSC,sC2JgCG,OFqQJ,CzJrSC,6D2JsCG,eAAgB,CAChB,QAAS,CACT,eAAgB,CAJhB,cAAe,CACf,mBAAoB,CAFpB,aF0QJ,CzJ7SC,6E2J0CK,eACA,iBACA,cFsQN,CzJlTC,oB4JCC,YAAa,CACb,qBHoTF,CzJtTC,oC4JKG,aAAc,CACd,aAAc,CAEd,gBAAiB,CADjB,cHqTJ,CzJ5TC,yD4JWK,UAAW,CACX,iBHoTN,CzJhUC,4D4JgBK,aAAc,CACd,eAAgB,CAChB,eHmTN,CzJrUC,0D4JsBK,gBHkTN,CzJxUC,gE4J0BK,mBHiTN,CzJ3UC,mF4JqCG,WAAY,CAFZ,UAGA,mBALA,iBAAkB,CAClB,KAAM,CAEN,SH+SJ,CG3SI,yFAEE,WAAY,CADZ,SH8SN,CzJvVC,oG4JiDG,aHySJ,CGlSI,kHACE,YHoSN,CzJ7VC,mF4JiEK,UACA,mBAHA,iBAAkB,CAClB,KHmSN,CzJnWC,oF4JqEK,gBHiSN,CzJtWC,0C6JEG,gBJuWJ,CIrWI,+CACE,gBAAiB,CACjB,kBJuWN,CIpWI,kDACE,aAAc,CAEd,cAAe,CACf,iBAAkB,CAFlB,WJwWN,CInWI,+CACE,oBAAqB,CACrB,gBJqWN,CIlWI,gDAEE,cAAe,CADf,eJqWN,CIlWM,sDACE,YJoWR,CIhWI,mDACE,aAAc,CAGd,mBAFA,iBAAkB,CAClB,aJmWN,CI7VM,mFACE,gBJ+VR,CKpYI,0FACE,kBLuYN,CKpYI,wFAGE,kBACA,SAAU,CAHV,QACA,ULyYN,CKrYM,oGAEE,UAAW,CACX,gBAAiB,CAFjB,uBL0YR,CzJxZC,8I8JoBK,QLwYN,CKrYI,wFAME,sBAAuB,CACvB,QAAS,CALT,WAGA,gBAFA,gBAAiB,CACjB,eAAgB,CAHhB,SL8YN,CK/YI,gIAcI,mBAAoB,CAHpB,UAAW,CAEX,WAAY,CAHZ,iBAAkB,CAKlB,kBAAoB,CAHpB,UL6YR,CKvYQ,4IAME,4BACA,UAAW,CAFX,WAAY,CAFZ,UAAW,CAFX,iBAAkB,CAClB,SAAU,CAEV,UL6YV,CKrYI,8FACE,WLwYN,CzJ9bC,wI8J8DK,eAAgB,CAFhB,YACA,iBAJA,iBAAkB,CAClB,QAAS,CACT,UL4YN,CzJvcC,8L8JkEO,MLyYR,CzJ3cC,uD8J4EG,eAAgB,CADhB,aAAc,CADd,eLsYJ,CzJhdC,iG8JkFG,SAAU,CACV,QAAS,CACT,kBAAmB,CAHnB,SLqYJ,CzJtdC,uE8JyFK,eLgYN,CzJzdC,iH8J+FK,SL6XN,CzJ5dC,kF8JoGG,ML2XJ,CzJ/dC,0D8JuGG,aL2XJ,CzJleC,6H8J8GG,SAAU,CADV,QLyXJ,CzJteC,sB+JCC,gBNweF,CMpeM,gEACE,iBNseR,CzJ5eC,sC+JYG,gBAAiB,CACjB,iBNmeJ,CMjeI,gDACE,oBAAqB,CACrB,WAAY,CACZ,iBAAkB,CAClB,mBAAoB,CACpB,eAAgB,CAChB,sBNmeN,CMzeI,wEASI,cNmeR,CM5eI,sEAaI,cAAe,CAEf,eAAgB,CADhB,eAAgB,CAGhB,sBAAuB,CADvB,kBNmeR,CMheQ,4EACE,YNkeV,CM7dI,yGAEI,cN8dR,CM5dQ,+GACE,WN8dV,CMzdI,iDACE,QN2dN,CMzdM,uDACE,YN2dR,CMvdI,4CAWE,gCAAiB,CAAjB,kBAAiB,CAAjB,gBAAiB,CAEjB,UAAW,CATX,oBAAqB,CAErB,WAAY,CAHZ,SAAU,CAKV,gBAAiB,CADjB,gBAAiB,CANjB,iBAAkB,CAClB,OAAQ,CAUR,uBAAwB,CAPxB,UNieN,CMtdI,6CAOE,yBALA,QAAS,CAQT,UAAW,CANX,oBAAqB,CAErB,UAAW,CAHX,QAAS,CAFT,iBAAkB,CAOlB,6BAAiC,CACjC,mCAAoC,CAJpC,ON6dN,CzJ5iBC,mE+JyFG,MAAO,CACP,UNsdJ,CzJhjBC,yD+JgGG,wBNmdJ,CMjdI,gEACE,YNmdN,CzJtjBC,sF+JyGK,aAAc,CAEd,wBAAyB,CAHzB,UADA,OAAQ,CADR,KAAM,CAIN,SNodN,CMhdI,+DAIE,aAAc,CAEd,UAAW,CAHX,QAAS,CAIT,iBAAkB,CANlB,iBAAkB,CAOlB,iBAAkB,CANlB,QAAS,CAOT,wBAAyB,CAJzB,SNsdN,CzJzkBC,kN+JmIG,iBN4cJ,CO9kBE,eACE,aPglBJ,CzJllBC,8CgKUK,eAAgB,CADhB,cP6kBN,CzJtlBC,oCgKiBK,SAAU,CADV,OP0kBN,CzJ1lBC,qCgKwBK,iBAAkB,CADlB,ePukBN,CzJ9lBC,8DgK6BO,UAAW,CAEX,aAAc,CADd,gBPqkBR,CzJnmBC,2CgKsCO,SAAU,CADV,UPkkBR,CzJvmBC,mFgKgDK,cAAe,CADf,kBP4jBN,CzJ3mBC,+FgKqDO,ePyjBR,CzJ9mBC,oHgK2DO,cPsjBR,CzJjnBC,2EgKuEO,SAAU,CADV,UP+iBR,CzJrnBC,8EgKoFS,aAAc,CADd,kBPsiBV,CzJznBC,8DgK8FO,aAAc,CADd,kBAAmB,CAEnB,gBP+hBR,CzJ9nBC,oFgKoGS,cP6hBV,CzJjoBC,0DgK4GO,SAAU,CAEV,aAAc,CADd,iBAAkB,CAFlB,UAAW,CAIX,wBPyhBR,CzJxoBC,mGgK2HK,cAAe,CADf,kBPkhBN,CzJ5oBC,+GgKgIO,eP+gBR,CzJ/oBC,qDgKwIK,iBAAkB,CADlB,eP4gBN,CzJnpBC,uEgKkJO,WAAY,CAEZ,iBADA,cPqgBR,CzJxpBC,iGgK8JK,SAAU,CADV,UP+fN,CzJ5pBC,iGgKsKO,SAAU,CADV,UP2fR,CzJhqBC,8DgKiLO,cPkfR,CzJnqBC,oHgK6LO,iBP0eR,CzJvqBC,gIgKmMS,aAAc,CADd,iBP0eV,CzJ5qBC,0KgK2MO,SAAU,CADV,SPueR,CzJjrBC,oHgKkNO,aAAc,CADd,iBPqeR,CzJtrBC,4JgKuNS,WPueV,CzJ9rBC,wKgK8NW,SAAU,CADV,WPseZ,CzJnsBC,qEgK0OK,gBAAiB,CADjB,cP8dN,CzJvsBC,+GgKkPK,SAAU,CADV,UP0dN,CzJ3sBC,gGgKyPK,SAAU,CADV,OPudN,CzJ/sBC,4FgKgQK,SAAU,CADV,UPodN,CzJntBC,0EgKwQG,iBP8cJ,CzJttBC,yHgK0QK,UP+cN,CzJztBC,yIgKgRK,UP4cN,CzJ5tBC,mHgKuRK,cAAe,CADf,iBP0cN,CzJhuBC,yIgK0RO,iBPycR,CzJnuBC,yCiKIG,eRkuBJ,CzJtuBC,wFiKQK,UADA,ORmuBN,CzJ1uBC,oKiKeK,kBAAmB,CACnB,gBR+tBN,CzJ/uBC,wGiKwBG,SR0tBJ,CzJlvBC,4DiK4BG,gBRytBJ,CzJrvBC,uFiKiCK,kBRutBN,CzJxvBC,8CiKsCG,iBRqtBJ,CzJ3vBC,4DiK4CK,WAAY,CACZ,SAAU,CAJV,iBAAkB,CAElB,UAAW,CADX,QRwtBN,CzJlwBC,YESC,oCgKUA,iCACA,QAAS,CACT,mBAAoB,CAPpB,qBAAsB,ChKVtB,sBgKkBA,cAAe,CATf,oBAAqB,ChKRrB,eACA,0BgKUA,YhKTA,mBgKUA,iBhKTA,eAAgB,CANhB,QAAS,CgKaT,ehKZA,SAAU,CgKSV,iBAAkB,CAWlB,mBACA,oFAAiB,CANjB,qBAQF,CAAE,kBAEE,oCADA,SAGJ,CACE,0BACE,4BACJ,CAEE,wBACE,eAAJ,CAGE,oBACE,wBADJ,CAIE,yCAEE,kBAAmB,CACnB,UAFJ,CADE,6CAMI,eAAgB,CAChB,kBADN,CAME,kBAGE,WAFA,aAAc,CAGd,eAFA,oBAGA,qBAJJ,CAOE,sCACE,mBALJ,CASE,mBAKE,YAFA,SADA,QAEA,UALJ,CASI,6CAPA,iBAAkB,CAKlB,8BAKJ,CAHI,0BAME,sBACA,kBAHA,QAAS,CAIT,wCAEA,UAAW,CALX,MAAO,CAFP,OAAQ,CADR,KACN,CAWE,uCACE,sBATJ,CAYE,uEAGI,MAAO,CADP,UAVN,ClKtFC,0FkKuGO,SAAU,CADV,OAZR,ClK1FC,iCkKgHG,qBAA0B,CAF1B,iBAAkB,CAClB,QAEA,kBAjBJ,CAoBE,6CACE,aAlBJ,CAsBE,kBAEE,YACA,iBAFA,cAlBJ,CAiBE,oCAOI,eADA,mBAnBN,CAaE,qCAYI,YADA,UApBN,CASE,2CAiBI,aAAc,CADd,SArBN,ClKpHC,uDkK+IO,mBAxBR,ClKvHC,wDkKmJO,sBAzBR,ClK1HC,gBmKSC,aDoHF,ClK7HC,kCmKYG,mBDoHJ,ClKhIC,mCmKiBG,SAAU,CADV,SDoHJ,CChHE,+EAGI,SAAU,CADV,ODkHN,ClKxIC,kGmK6BO,MAAO,CADP,UDgHR,ClK5IC,qDmKoCK,mBD2GN,ClK/IC,sDmKwCK,uBD0GN,ClKlJC,uEmK+CO,uBDsGR,ClKrJC,4BoKMG,cCAJ,CrKNC,iRoKcK,gBCAN,CrKdC,sDoKkBK,iBCDN,CrKjBC,0DoKsBK,iBCFN,CrKpBC,sFoK6BS,4BCNV,CrKvBC,wDoKqCK,wBCXN,CrK1BC,2BoKMG,cCuBJ,CrK7BC,2QoKcK,WCuBN,CrKrCC,qDoKkBK,iBCsBN,CrKxCC,yDoKsBK,WCqBN,CrK3CC,qFoK6BS,0BCiBV,CrK9CC,uDoKqCK,wBCYN,CrKjDC,+CsKSG,yBACA,eD2CJ,CrKrDC,mDsKeG,6BDyCJ,CrKxDC,g3CsK2BS,8BD+CV,CrK1EC,gasKgCW,+BDgDZ,CC5CY,wXACE,kCDiDd,CrKtFC,w7CsK+CW,8BDqDZ,CrKpGC,odsKuDS,kBDmDV,CCjDU,4eAKE,+BADA,QAAS,CAET,UAAW,CALX,iBAAkB,CAElB,UADA,KD0DZ,CrKrHC,uJsKwEO,4BDiDR,CrKzHC,+QsKmFW,cD0CZ,CrK7HC,2QsKiGW,iBDgCZ,CrKjIC,yQsK8GW,gBDuBZ,CrKrIC,gDsKuHG,yBACA,YDiBJ,CrKzIC,iDsKgIG,YDYJ,CCRE,yCACE,8BDUJ,CrK/IC,mBqKiBC,UAAW,CACX,cAiIF,C/K/IE,0BAEE,UAAW,CADX,a+KkJJ,C/K9IE,yBAGE,UAAW,CACX,UAAW,CAFX,a+KiJJ,CrK5JC,WESC,oCmKiBA,gBACA,kBnK1BA,qBAAsB,CAGtB,sBmKqBA,enKnBA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CmKqBV,iBAkJF,CrK1KC,iBqKkCG,uBAAyB,CADzB,0BAEA,gBAAiB,CAHjB,eAAgB,CADhB,UAkJJ,CA1IE,4FAME,wBAAyB,CADzB,aADA,iBA8IJ,CAzIE,yBACE,eAAgB,CAEhB,sBAAuB,CADvB,kBAAmB,CAEnB,mBA2IJ,CrK/LC,8GqKyDK,gBA0IN,CrKnMC,8JqK4DO,aAAc,CACd,eAAgB,CAChB,sBA2IR,CAzJE,iDAmBI,eAAgB,CAChB,sBAAuB,CACvB,mBAyIN,CApIE,iBACE,YAsIJ,CAlIE,kBAGE,mBADA,sBADA,YAsIJ,CAhIE,uBAOM,mBACA,gCAJA,sBACA,eAAgB,CAFhB,iBAAkB,CAGlB,eAAgB,CAGhB,8BAgIR,CA9HQ,mDACE,iBAgIV,CA7HQ,oIAME,iCAGA,UAAW,CAJX,YAAa,CAJb,iBAAkB,CAElB,OAAQ,CADR,OAAQ,CAKR,0BAA2B,CAC3B,+BAAiC,CAJjC,SAoIV,CAzHM,iDACE,eA2HR,CArHE,uBAGM,gCACA,yBAqHR,CAzHE,8JAUU,6BAmHZ,CAhHY,4MACE,eAmHd,CAjHc,scAEE,eAqHhB,CrKlQC,2FqKsJO,kBAgHR,CrKtQC,8CqK2JS,mBACA,4BA8GV,CA3GQ,oDAEI,kBA4GZ,CApGE,mBAGE,gBAFA,iBAAkB,CAClB,SAuGJ,CApGI,sBACE,2BAsGN,CA5GE,kDAYM,+BAoGR,CrKzRC,qCqK4LG,aAgGJ,CA7FE,sBACE,YAAa,CACb,cAAe,CACf,WA+FJ,CAlGE,wBAMI,SA+FN,CA5FI,2BACE,0BA8FN,CA3FI,6BACE,sBA6FN,CA1FI,4BACE,wBA4FN,CrK7SC,iDqK4NG,cAAe,CADf,YAAa,CAEb,kBAqFJ,CAnFI,uDACE,0BAqFN,CAnFM,8DACE,kCAqFR,CAjFI,+DACE,aAmFN,CrK3TC,yMqKmPG,kBA+EJ,CA7EI,iDACE,kCA+EN,CA3EE,yBACE,kBA6EJ,CA1EE,wBAGE,SAFA,iBAAkB,CAClB,SA6EJ,CAzEE,0BAGE,kBAAmB,CAFnB,YAAa,CACb,SAAU,CAEV,6BA2EJ,CAzEI,gCAIE,QAAS,CAIT,UAAW,CADX,WAAY,CAFZ,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,UA6EN,CAvEE,yBAEE,cACA,WAAY,CAFZ,eAAgB,CAGhB,oBAyEJ,CAvEI,+BAGE,kBAAmB,CAFnB,mBAAoB,CACpB,qBA0EN,CAtEI,0DAEE,cAwEN,CAtEM,wEACE,aAyER,CArEI,0DACE,gBAuEN,CAnEE,yDACE,aAqEJ,CAjEE,yBACE,YAAa,CACb,6BAmEJ,CAhEE,0BAGE,kBAAmB,CAKnB,kBAFA,cAGA,cAAe,CAPf,YAAa,CAKb,eAHA,0BACA,aAAc,CAJd,iBAAkB,CASlB,kBAkEJ,CAhEI,gCAEE,2BADA,qBAmEN,CA/DI,iCACE,aAiEN,CA5DE,2BnKxUA,oCmK4UE,sBACA,kBACA,sGnKtVF,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CmKkVP,eAAgB,CnKjVlB,SmKyZF,CA3EE,8CAcI,QAAS,CACT,eAAgB,CAHhB,iBACA,iBAoEN,CAhEM,0DAGE,sBAGA,mBAAoB,CALpB,aAAc,CAGd,eAFA,aAAc,CAGd,iBAmER,CA9DI,gCACE,iBAgEN,CAjEI,wFAII,wBAgER,CA5DQ,4MAEE,wBA8DV,CAzDI,kCAEE,gCADA,WA4DN,CAzDM,8CAEI,eA0DV,CA5DM,iDAKI,qBA0DV,CArDI,oCAEE,iBAAkB,CAClB,eAAgB,CAFhB,UAyDN,CApDI,sCACE,8BAA+B,CAC/B,iBAAkB,CAClB,eAsDN,CAlDI,oHAGI,gBAmDR,CA9CI,gCAKE,yBACA,6BALA,YAAa,CACb,6BAA8B,CAE9B,eAAgB,CADhB,eAmDN,CA3CE,yBACE,UA6CJ,CA1CE,6CACE,UA4CJ,CAzCE,8EAGE,iBADA,kBAEA,iBA2CJ,CA/CE,oHAOI,cA4CN,CAxCE,+DACE,SA0CJ,CAvCE,6CACE,kCAyCJ,CAtCE,qBAEE,mBAAoB,CACpB,qBAAsB,CAFtB,iBA0CJ,CAtCI,2BAIE,cAAe,CAEf,wBAAyB,CACzB,yBANA,iBAAkB,CAClB,KAAM,CAGN,kBAAoB,CAFpB,SA4CN,CA/CI,oCAUI,cACA,cAwCR,CAtCQ,0CACE,aAwCV,CAjCE,2BACE,UAmCJ,CAhCE,gCACE,iBAkCJ,CAnCE,2DAII,mBAAoB,CACpB,UAAW,CACX,kBAkCN,CA9BE,sBACE,UAAW,CACX,UAgCJ,CA7BE,2BAWE,gBACA,yBACA,kBATA,qBAAsB,C5BpfxB,c4BwfE,aAAc,C5BtfhB,cAAe,C4Bifb,UAAW,CAGX,YAGA,iB5BxfF,YAAa,C4BsfX,SAAU,CALV,iBAAkB,CAYlB,2B5B3fF,oBAAsB,C4B4fpB,kBAAoB,CACpB,oFAAiB,CAXjB,UA4CJ,C5B5hBE,0EAEE,a4B8hBJ,C5B3hBE,kCACE,a4B6hBJ,CApCI,oGAGE,yBAsCN,CAnCI,mEAGE,uBAAwB,CAExB,UAAW,CAHX,iBAAkB,CAElB,iCAsCN,CAlCI,kCAIE,WADA,QAAS,CADT,SAAU,CADV,OAuCN,CAjCI,iCAEE,UAAW,CACX,SAFA,OAAQ,CAIR,uBAAwB,CADxB,SAoCN,CA/BI,4CACE,yBAiCN,CA9BI,2CACE,sBAgCN,CA7BI,kCAME,sBAAuB,CACvB,QAAS,CACT,iBA0BN,CAjCM,iFAGE,YAAa,CADb,YAoCR,CrKllBC,iDqKyjBK,iBAFA,mBA+BN,CAxBI,gEAGI,kBAyBR,CA7BE,iDAUI,YAsBN,CAhCE,uDAaM,SAAU,CACV,UAsBR,CrKjmBC,yCqKmlBG,aACA,aAFA,iBAoBJ,CAdE,0CACE,iBAgBJ,CrKzmBC,2DqK2lBK,qBAiBN,CAdI,mDAEI,eAeR,CATE,mDAIE,gBAFA,yBAA2B,CAC3B,SAYJ,CARE,yEAKE,WAAY,CAIZ,UAAW,CACX,mBAAoB,CARpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,0BAA2B,CAC3B,yBAA2B,CAF3B,UAcJ,CAPE,mCACE,YASJ,CANE,2EAIE,WAAY,CAKZ,UAAW,CAJX,MAAO,CAKP,mBAAoB,CARpB,iBAAkB,CAClB,KAAM,CAIN,2BAA4B,CAC5B,yBAA2B,CAF3B,UAYJ,CAJI,6EAIE,QAAS,CAIT,UAAW,CACX,mBAAoB,CAPpB,iBAAkB,CAClB,KAAM,CAIN,yBAA2B,CAD3B,UAAW,CADX,SAUN,CAHI,uCACE,MAKN,CAFI,sCACE,OAIN,CrKjqBC,uEqKmqBK,iBACN,CAHE,iMAWI,gDADN,CAVE,0DAeI,kCAFN,CrK9qBC,yEqKsrBK,iBALN,CAGE,sMAWI,iDAPN,CAkBI,kDAHE,gBAFA,eAAgB,CAChB,SACN,CAGI,yBAKE,kBAAmB,CAEnB,6BALA,QAAS,CAET,YAAa,CAIb,UAXN,CAaM,+BACE,8BAXR,CAcM,6BAEE,iCACA,kBAFA,UAVR,CAkBQ,uEACE,+BAbV,CAoBA,gCAQI,qHAEI,yBAvBN,CACF,CExtBE,iBACE,yBF+tBJ,CE5tBE,sCACE,wBAAyB,CACzB,yBF8tBJ,CEhuBE,2MAaQ,eF4tBV,CErtBE,qBAEE,2BFutBJ,CEztBE,oFACE,0BF2tBJ,CE5tBE,8DAUM,2BFqtBR,CE/sBE,kBACE,yBFitBJ,CGjvBE,sCACE,aHsvBJ,CrKrwBC,wCwKoBK,gBHovBN,CrKxwBC,0EwK8BW,iBH6uBZ,CrK3wBC,2JwKqCW,MAAO,CADP,UH2uBZ,CrK/wBC,8CwK0CS,gBHwuBV,CGjuBE,2EAKQ,6BH+tBV,CrKrxBC,oEwKgEO,wBHwtBR,CrKxxBC,qEwKsEO,0BHqtBR,CrK3xBC,gDwKmFK,aAAc,CADd,gBH6sBN,CrK/xBC,sDwK0FK,4BHwsBN,CrKlyBC,kGwKiGO,mBHosBR,CrKryBC,iDwKwGK,yBHgsBN,CrKxyBC,wUwKqHS,cAAe,CADf,iBH2rBV,CrK/yBC,4CwK8HK,iBHorBN,CrKlzBC,+FwK2IK,WH6qBN,CrKxzBC,wEwKiJO,gBADA,cH4qBR,CrK5zBC,wDwKuJO,wBHwqBR,CrK/zBC,mEwK6JO,wBHqqBR,CrKl0BC,kEwKmKO,sBHkqBR,CrKr0BC,gDyKOG,iBCiBJ,CDdI,uDAIE,UAAW,CAGX,UAAW,CAFX,MAAO,CAGP,mBAAoB,CAPpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,+BCkBN,CDZM,6DACE,kBCcR,C1KrCC,kDyK6BK,SCWN,C1KxCC,mEyKkCK,oBCSN,C1K3CC,+EyKuCK,eAAgB,CAChB,oFCON,CDLM,qFACE,sBCOR,C1KlDC,sGyKgDO,sBAAuB,CADvB,UCOR,CDAM,sIAEE,kBCER,CDLI,4EAQI,UCAR,CDRI,wFAcI,sBAAuB,CADvB,UCDR,C1KjEC,mBESC,oCARA,qBAAsB,CAGtB,sBqESE,cAAe,CrERjB,eACA,0BACA,mBqEGE,aAAc,CrEFhB,eAAgB,CANhB,QAAS,CqEUP,YAAa,CrETf,SAAU,CqEKR,iBAAkB,CAClB,QAAU,CAEV,kBmGuEJ,C1KlFC,oKuEkBK,oBmGqEN,CnGlEI,iCASE,4CAA8C,CAC9C,6BAA8B,CAJ9B,yBACA,kBAIA,UAAW,CANX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAMN,iBAAkB,CAJlB,UmG2EN,C1KpGC,yFuEqCK,kBmGmEN,CnGhEI,yBAQE,sBACA,yBAIA,uBAAyB,CAHzB,kBAHA,aAAc,CAHd,aAAc,CAEd,YAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAYN,kBAAoB,CATpB,UmGyEN,CnG9DM,+BAYE,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CATZ,aAAc,CAEd,oBAHA,UAAW,CAQX,SAAU,CAZV,iBAAkB,CAClB,OAAQ,CAUR,qDAAuD,CAEvD,6DAPA,kBmGmER,CnGvDI,yBAIE,QAAS,CAKT,cAAe,CADf,WAAY,CAHZ,MAAO,CAKP,SAAU,CATV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,UAAW,CADX,SmG6DN,C1KjJC,0DuEgGG,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CAPZ,aAAc,CAKd,SAAU,CANV,iBAAkB,CAKlB,qDAAuD,CAEvD,oDmGuDJ,C1K5JC,oDuE2GK,yBACA,oBmGoDN,C1KhKC,4BuEiHG,kBmGkDJ,C1KnKC,qFuEsHO,mBAAoB,CADpB,4BmGkDR,C1KvKC,qDuE2HK,kBAAmB,CACnB,mBmG+CN,C1K3KC,qDuEgIK,yBACA,8BmG8CN,CnG5CM,2DAGE,mBAAoB,CADpB,uBAAyB,CADzB,oBmGgDR,CnG1CI,iCACE,sBACA,kBmG4CN,C1KxLC,2GuEkJK,iBmG0CN,C1K5LC,2BESC,oCqEgJE,oBAAqB,CrExJvB,qBAAsB,CAGtB,sBqEuJE,cAAe,CAHf,mBAAoB,CrEnJtB,eACA,0BACA,mBqEmJE,oBrElJF,eAAgB,CANhB,QAAS,CACT,SwKwMF,CnG9CI,iCAIE,aAAc,CAHd,oBAAqB,CAErB,eAAgB,CADhB,OmGkDN,C1KjNC,8DuEqKK,kBmG+CN,CnG5CI,sDACE,emG8CN,CnG3CI,uFAGI,WAAY,CADZ,UmG6CR,C1K3NC,wBuEsLG,gBAAiB,CADjB,iBmG0CJ,C1K/NC,yBESC,oCARA,qBAAsB,CAGtB,sBqEuLE,oBAAqB,CrEtLvB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SwKwOF,CnG9CI,8BACE,gBmGgDN,CnG9CM,yCACE,cmGgDR,CnG5CI,4DACE,amG8CN,C1KpPC,0DuE6MK,sBACA,oBmG0CN,C1KxPC,gEuEwNK,yBACA,QAAS,CAGT,WAAY,CALZ,WAFA,QAAS,CAMT,SAAU,CAPV,OAAQ,CAMR,uCAAyC,CAJzC,SmG6CN,C1KnQC,2FuEgOK,iCACA,4BmGsCN,C1KvQC,UESC,oCyKyCA,gBACA,kBzKlDA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CyKiDV,+BDiOF,CC/NE,4DACE,kBDiOJ,CC7NE,4BACE,sBD+NJ,C1K3RC,0D2KiEK,mBD6NN,C1K9RC,yF2KqEO,SD4NR,C1KjSC,sF2K0EO,iBD0NR,CCxNQ,4FAQE,yCAA2C,CAE3C,4BAA6B,CAD7B,4BAA6B,CAH7B,yBAFA,WAOA,UAAW,CANX,MAAO,CAEP,SAAU,CAKV,mBAAoB,CAXpB,iBAAkB,CAElB,OAAQ,CADR,KDoOV,C1KlTC,6B2KiGG,sBAAuB,CADvB,YAAa,CAGb,YAAa,CADb,eDsNJ,CCnNI,qEAGI,sBACA,kBDmNR,CCjNQ,2EACE,sBDmNV,C1K/TC,mE2KkHK,kBDgNN,C1KlUC,oG2KsHK,cACA,eD+MN,CC5MI,gEAGI,iBAGA,UAAY,CAFZ,iBAAkB,CAGlB,uBAFA,kBAAmB,CAHnB,UDkNR,C1K9UC,yF2KoIS,WD6MV,C1KjVC,2F2K0IS,iBD0MV,CCnME,iBACE,kBAAmB,CAEnB,oFAAiB,CADjB,kBDsMJ,CCnMI,sBACE,oBAAqB,CACrB,UDqMN,CChME,yBACE,iBDkMJ,CC9LE,mBAIE,kBAAmB,CAKnB,cAAe,CANf,SAAU,CAIV,iBADA,QAAS,CAJT,iBAAkB,CAMlB,iBAAkB,CAElB,oFAAiB,CALjB,UDoMJ,CCzME,6FArJE,oBAAqB,CACrB,cAAe,CACf,sBDkWJ,CC/ME,qGAhJI,wBDmWN,CCvMI,wBACE,cDyMN,CCtMI,qDAGM,wBDsMV,CCjMI,gCACE,aDmMN,CChMI,6BAGE,oBAAqB,CAErB,WAAY,CAJZ,iBAAkB,CAGlB,UAAW,CAFX,SDqMN,CChMM,oCAME,+BAFA,YAGA,WAAY,CAFZ,gBAAiB,CAJjB,iBAAkB,CAElB,UAAW,CADX,KDuMR,CC/LM,mCAIE,gCACA,WAAY,CAFZ,YAFA,iBAAkB,CAClB,UDoMR,CC3LE,mBAEE,mBADA,QD8LJ,CCzLE,yCAQE,sBAAuB,CACvB,kBAHA,aAAc,CAId,cAAe,CAHf,iBAHA,QAAS,CADT,gBAEA,aAAc,CAJd,iBAAkB,CAUlB,yDAA8D,CAT9D,YDoMJ,CCzLI,+CACE,wBD2LN,C1KzaC,gE2KkPK,wBD0LN,CC5ME,2DAuBI,oBAAqB,CAErB,YACA,iBACA,iBAAkB,CAClB,kBAAmB,CAJnB,UD4LN,CCtLM,iEACE,YDwLR,CClLE,4DACE,wBDoLJ,CChLE,+BACE,iBACA,oFDkLJ,CCpLE,wDA7OE,yBACA,iBAAkB,CAFlB,UAAW,CAGX,mBAAoB,CANpB,iBAAkB,CAElB,SD2aJ,CCraI,8DAME,wBAA6B,CAC7B,yBACA,iBAAkB,CAClB,UAAW,CAJX,UAAW,CAFX,SAAU,CAFV,iBAAkB,CAClB,QAAS,CAET,SD4aN,C1KjdC,wD2KmRK,4BDiMN,CCzLM,0CAEE,WAAY,CADZ,iBD4LR,CCzLQ,iDAKE,+BADA,YAEA,UAAW,CALX,iBAAkB,CAElB,WADA,KD+LV,CCvLU,qDACE,YDyLZ,CC3ME,uCA0BI,eDoLN,CClLM,iDAEE,qBDmLR,CC3KQ,2EAEE,qBAAuB,CACvB,sBAFA,kBD+KV,CEreE,cACE,aFueJ,CEpeQ,4FAEE,UADA,UFueV,CE9dI,iCACE,aFgeN,C1KxfC,mE4KkCW,uBFydZ,C1K3fC,8D4KkDW,8BADA,iBAAkB,CADlB,WADA,UFkdZ,C1KjgBC,yF4KoEK,kBFmcN,CvLvgBC,ceSC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mB2KGA,eAAgB,CAFhB,QAAS,CACT,SAKF,CAFE,mBAIE,eACA,eAAgB,CAHhB,QAAS,CACT,oBAFA,iBAQJ,CAFI,wBAKE,8BADA,wBAAyB,CADzB,QAAS,CAFT,iBAAkB,CAClB,QAON,CADI,mDAEE,wBAA6B,CAD7B,cAIN,CAAI,mDACE,YAEN,CACI,wBAIE,sBACA,6BACA,mBAAoB,CAHpB,WAAY,CAFZ,iBAAkB,CAClB,UAKN,CACM,6BAEE,qBADA,aAER,CAEM,4BAEE,qBADA,aACR,CAGM,8BAEE,qBADA,aAAR,CAIM,6BAEE,6BADA,qBADR,CAMI,+BAUE,QAAS,CACT,eAAgB,CANhB,WAAY,CAFZ,QAAS,CAKT,aAAc,CAFd,YAAa,CACb,eAAgB,CANhB,iBAAkB,CAQlB,iBAAkB,CAPlB,SAAU,CAUV,8BAAgC,CARhC,UAIN,CAOI,2BAGE,kBAFA,iBAAkB,CAClB,aAEA,qBALN,CAQI,gDAEI,YAPR,CAKI,mDAKI,eAPR,CAgBM,kiBAGE,QARR,CAWM,+KACE,gBAPR,CASQ,oMACE,eALV,CASM,gQAEI,oBAAqB,CAErB,eAAgB,CADhB,sBALV,CAUM,mQAGI,QAAS,CACT,gBAAiB,CAFjB,sBALV,C1LxHC,6P0L0IO,qBAbR,C1L7HC,qF0L6IO,uBAbR,CAkBE,mFAGE,+BAFA,aAAc,CACd,wBAfJ,CAmBE,mFACE,YAjBJ,CAoBE,sFAKI,+BAFA,aAAc,CACd,wBAAyB,CAFzB,QAhBN,CAcE,yFAQI,eAnBN,C1LjJC,0D0LyKK,iBAAkB,CAGlB,gBAAiB,CAFjB,aACA,sBApBN,C1LvJC,mF0LgLO,qBAAsB,CAEtB,eAAgB,CADhB,sBArBR,CCtJE,kBACE,aDwJJ,C1L/JC,0C2LgBO,gBAAiB,CADjB,+BADA,SAAU,CADV,SDwJR,C1LrKC,iD2LuBO,SAAU,CADV,SAAU,CAEV,6BDkJR,C1L1KC,6C2L8BO,iBD+IR,C1L7KC,2rB2L4CS,SAAU,CADV,SD8IV,C1LzLC,kO2LmDS,aAAc,CADd,iBD6IV,C1L/LC,uP2LyDW,aAAc,CADd,gBD6IZ,C1LrMC,mT2LkEW,SAAU,CADV,qBAAsB,CAEtB,gBDyIZ,C1L5MC,sT2L2EW,eDsIZ,C1LjNC,gT2LyFS,SAAU,CADV,OD+HV,C1LvNC,sG2LgGS,iBAAkB,CAClB,gBAAiB,CAFjB,UD6HV,C1L5NC,2M2LkHO,gBAAiB,CADjB,+BDmHR,C1LpOC,2E2L0HO,eD6GR,C1LvOC,oG2LgIS,sBAAuB,CACvB,gBD0GV,C7K3OC,gD+KSG,YAAa,CAEb,WAAY,CACZ,iBAFA,UCSJ,ChLnBC,iE+KkBK,QAAS,CACT,eCIN,ChLvBC,6F+KuBO,cAAe,CADf,UCKR,ChL3BC,iI+K6BS,kBCCV,ChL9BC,iH+KiCS,+BCAV,ChLjCC,iF+KsCO,QCFR,ChLpCC,qF+K2CK,iBCJN,CDQI,kDACE,wBCNN,CCnBE,8CAjBE,oBDuCJ,CCrCI,qEACE,oBDuCN,CCrCM,2ErK2BJ,qBACA,sBoKaF,CCrCM,2ErKOF,qBAUF,uBAPE,yCAQF,SoKyBF,CC/BE,gDArBE,oBDuDJ,CCrDI,uEACE,oBDuDN,CCrDM,6ErK2BJ,qBACA,sBoK6BF,CCrDM,6ErKOF,qBAUF,uBAPE,yCAQF,SoKyCF,ChL1EC,cESC,oC8KQA,mBAAoB,C9KhBpB,qBAAsB,CAGtB,sB8KYA,YAAa,C9KXb,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,C8KYV,iBAyEF,CArEE,0CAEI,kBAsEN,CAlEE,mBAKE,yBACA,kBALA,YAAa,CACb,qBAAsB,CAEtB,aADA,WAuEJ,CAlEI,mCAEE,WAAY,CADZ,WAqEN,CAjEI,0CAEI,qBAkER,CA9DI,0BAGE,kBAAmB,CAMnB,gBACA,gCACA,0BAHA,sBAPA,YAAa,CACb,SAAU,CAEV,YAEA,oBAmEN,CAzEI,4CAcI,gBA8DR,CA5EI,4BAkBI,SA6DR,CA1DM,gCACE,SAAU,CACV,eAAgB,CAEhB,gBAAiB,CACjB,sBAAuB,CAFvB,kBA8DR,CAzDM,mCAGE,cAAe,CAFf,cAAe,CACf,yBA4DR,CAzDQ,6CACE,kBA2DV,CAtDI,wBACE,YAAa,CACb,SAAU,CACV,qBAAsB,CAEtB,eADA,eAyDN,CAtDM,uCAEE,SAAU,CACV,aAFA,iBA0DR,CApDI,2BACE,SAAU,CAIV,eAAgB,CAHhB,QAAS,CAET,aAAc,CADd,SAwDN,CApDM,gCAEE,kBAAmB,CADnB,YAAa,CAIb,iBAFA,gBACA,iBAEA,kBAsDR,CA5DM,kDASI,gBAsDV,CA/DM,kCAaI,SAqDV,CAlDQ,qCACE,SAAU,CACV,eAAgB,CAEhB,sBAAuB,CADvB,kBAqDV,CAjDQ,uCAEE,cACA,cAAe,CAFf,iBAAkB,CAGlB,kBAmDV,CAjDU,6CACE,aAmDZ,CAhDU,6CAIE,YAEA,UAAW,CADX,SAAU,CAJV,iBAAkB,CAElB,UAAW,CADX,QAsDZ,CA5CQ,oFACE,yBACA,cA8CV,ChLtMC,2HgL4JS,wBA6CV,CAxCM,2HACE,sBAAuB,CACvB,cA0CR,CAvCM,wCACE,wBAyCR,CAtCM,yCACE,sBACA,kBAwCR,CApCI,8BAGE,6BAFA,cACA,gBAuCN,CAnCI,kCAIE,sBAHA,SAAU,CAEV,aAAc,CAEd,iBAAkB,CAHlB,UAwCN,CAlCI,0BACE,4BAoCN,CAhCE,wBAIE,iBAAkB,CAHlB,YAAa,CACb,SAAU,CACV,qBAAsB,CAEtB,YAAa,CACb,qBAkCJ,CAxCE,iCASI,aAkCN,CAhCM,6CACE,iBAkCR,CA9CE,0CAgBM,cAiCR,ChLpPC,+BgLyNG,eA8BJ,CEhPE,kBACE,aFkPJ,ChL1PC,4CkLeO,iBAAkB,CADlB,iBFgPR,ChL9PC,mDkLqBS,SAAU,CADV,UF8OV,ChLlQC,8DkL8BS,eAAgB,CADhB,cFyOV,ChLtQC,4CkLoCO,SAAU,CADV,OFuOR,ChL1QC,kDkLyCS,eFoOV,ChL7QC,oEkLmDW,eAAgB,CADhB,cF+NZ,ChLjRC,gDkL2DO,eFyNR,ChLpRC,4CkLkEO,SAAU,CADV,OFuNR,CLgDA,uCACE,GACE,SQnUF,CRsUA,GACE,SQpUF,CACF,C5G2NA,6BACE,GAEE,UAAY,CADZ,kB4GxNF,C5G4NA,GAEE,SAAU,CADV,oB4GzNF,CACF,CnLrBC,0BESC,oCARA,qBAAsB,CAGtB,sBqESE,cAAe,CrERjB,eACA,0BACA,mBqEGE,aAAc,CrEFhB,eAAgB,CANhB,QAAS,CqEUP,YAAa,CrETf,SAAU,CqEKR,iBAAkB,CAClB,QAAU,CAEV,kB4G2BJ,CnLtCC,8MuEkBK,oB4GyBN,C5GtBI,wCASE,4CAA8C,CAC9C,6BAA8B,CAJ9B,yBACA,kBAIA,UAAW,CANX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAMN,iBAAkB,CAJlB,U4G+BN,CnLxDC,8GuEqCK,kB4GuBN,C5GpBI,gCAQE,sBACA,yBAIA,uBAAyB,CAHzB,kBAHA,aAAc,CAHd,aAAc,CAEd,YAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAYN,kBAAoB,CATpB,U4G6BN,C5GlBM,sCAYE,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CATZ,aAAc,CAEd,oBAHA,UAAW,CAQX,SAAU,CAZV,iBAAkB,CAClB,OAAQ,CAUR,qDAAuD,CAEvD,6DAPA,kB4GuBR,C5GXI,gCAIE,QAAS,CAKT,cAAe,CADf,WAAY,CAHZ,MAAO,CAKP,SAAU,CATV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,UAAW,CADX,S4GiBN,CnLrGC,wEuEgGG,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CAPZ,aAAc,CAKd,SAAU,CANV,iBAAkB,CAKlB,qDAAuD,CAEvD,oD4GWJ,CnLhHC,kEuE2GK,yBACA,oB4GQN,CnLpHC,mCuEiHG,kB4GMJ,CnLvHC,0GuEsHO,mBAAoB,CADpB,4B4GMR,CnL3HC,mEuE2HK,kBAAmB,CACnB,mB4GGN,CnL/HC,mEuEgIK,yBACA,8B4GEN,C5GAM,yEAGE,mBAAoB,CADpB,uBAAyB,CADzB,oB4GIR,C5GEI,wCACE,sBACA,kB4GAN,CnL5IC,gIuEkJK,iB4GFN,CnLhJC,kCESC,oCqEgJE,oBAAqB,CrExJvB,qBAAsB,CAGtB,sBqEuJE,cAAe,CAHf,mBAAoB,CrEnJtB,eACA,0BACA,mBqEmJE,oBrElJF,eAAgB,CANhB,QAAS,CACT,SiL4JF,C5GFI,wCAIE,aAAc,CAHd,oBAAqB,CAErB,eAAgB,CADhB,O4GMN,CnLrKC,4EuEqKK,kB4GGN,C5GAI,oEACE,e4GEN,C5GCI,qGAGI,WAAY,CADZ,U4GCR,CnL/KC,+BuEsLG,gBAAiB,CADjB,iB4GFJ,CnLnLC,gCESC,oCARA,qBAAsB,CAGtB,sBqEuLE,oBAAqB,CrEtLvB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SiL4LF,C5GFI,qCACE,gB4GIN,C5GFM,gDACE,c4GIR,C5GAI,0EACE,a4GEN,CnLxMC,wEuE6MK,sBACA,oB4GFN,CnL5MC,8EuEwNK,yBACA,QAAS,CAGT,WAAY,CALZ,WAFA,QAAS,CAMT,SAAU,CAPV,OAAQ,CAMR,uCAAyC,CAJzC,S4GCN,CnLvNC,gHuEgOK,iCACA,4B4GNN,CA/ME,0BACE,eAiNJ,CA/MI,8BACE,aAiNN,CArNE,2CAQI,eAgNN,CA9MM,6DACE,mBAgNR,CAjNM,6HAKM,SA+MZ,CnL1OC,iBESC,oCyKyCA,gBACA,kBzKlDA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CyKiDV,+BQoMF,CRlME,0EACE,kBQoMJ,CRhME,mCACE,sBQkMJ,CnL9PC,+E2KiEK,mBQgMN,CnLjQC,qH2KqEO,SQ+LR,CnLpQC,kH2K0EO,iBQ6LR,CR3LQ,wHAQE,yCAA2C,CAE3C,4BAA6B,CAD7B,4BAA6B,CAH7B,yBAFA,WAOA,UAAW,CANX,MAAO,CAEP,SAAU,CAKV,mBAAoB,CAXpB,iBAAkB,CAElB,OAAQ,CADR,KQuMV,CnLrRC,2C2KiGG,sBAAuB,CADvB,YAAa,CAGb,YAAa,CADb,eQyLJ,CRtLI,0FAGI,sBACA,kBQsLR,CRpLQ,gGACE,sBQsLV,CnLlSC,wF2KkHK,kBQmLN,CnLrSC,uI2KsHK,cACA,eQkLN,CR/KI,qFAGI,iBAGA,UAAY,CAFZ,iBAAkB,CAGlB,uBAFA,kBAAmB,CAHnB,UQqLR,CnLjTC,qH2KoIS,WQgLV,CnLpTC,uH2K0IS,iBQ6KV,CRtKE,wBACE,kBAAmB,CAEnB,oFAAiB,CADjB,kBQyKJ,CRtKI,6BACE,oBAAqB,CACrB,UQwKN,CRnKE,gCACE,iBQqKJ,CRjKE,0BAIE,kBAAmB,CAKnB,cAAe,CANf,SAAU,CAIV,iBADA,QAAS,CAJT,iBAAkB,CAMlB,iBAAkB,CAElB,oFAAiB,CALjB,UQuKJ,CR5KE,2GArJE,oBAAqB,CACrB,cAAe,CACf,sBQqUJ,CRlLE,mHAhJI,wBQsUN,CR1KI,+BACE,cQ4KN,CRzKI,mEAGM,wBQyKV,CRpKI,uCACE,aQsKN,CRnKI,oCAGE,oBAAqB,CAErB,WAAY,CAJZ,iBAAkB,CAGlB,UAAW,CAFX,SQwKN,CRnKM,2CAME,+BAFA,YAGA,WAAY,CAFZ,gBAAiB,CAJjB,iBAAkB,CAElB,UAAW,CADX,KQ0KR,CRlKM,0CAIE,gCACA,WAAY,CAFZ,YAFA,iBAAkB,CAClB,UQuKR,CR9JE,0BAEE,mBADA,QQiKJ,CR5JE,uDAQE,sBAAuB,CACvB,kBAHA,aAAc,CAId,cAAe,CAHf,iBAHA,QAAS,CADT,gBAEA,aAAc,CAJd,iBAAkB,CAUlB,yDAA8D,CAT9D,YQuKJ,CR5JI,6DACE,wBQ8JN,CnL5YC,qF2KkPK,wBQ6JN,CR/KE,gFAuBI,oBAAqB,CAErB,YACA,iBACA,iBAAkB,CAClB,kBAAmB,CAJnB,UQ+JN,CRzJM,sFACE,YQ2JR,CRrJE,0EACE,wBQuJJ,CRnJE,sCACE,iBACA,oFQqJJ,CRvJE,+DA7OE,yBACA,iBAAkB,CAFlB,UAAW,CAGX,mBAAoB,CANpB,iBAAkB,CAElB,SQ8YJ,CRxYI,qEAME,wBAA6B,CAC7B,yBACA,iBAAkB,CAClB,UAAW,CAJX,UAAW,CAFX,SAAU,CAFV,iBAAkB,CAClB,QAAS,CAET,SQ+YN,CnLpbC,sE2KmRK,4BQoKN,CR5JM,wDAEE,WAAY,CADZ,iBQ+JR,CR5JQ,+DAKE,+BADA,YAEA,UAAW,CALX,iBAAkB,CAElB,WADA,KQkKV,CR1JU,mEACE,YQ4JZ,CR9KE,qDA0BI,eQuJN,CRrJM,+DAEE,qBQsJR,CR9IQ,gGAEE,qBAAuB,CACvB,sBAFA,kBQkJV,CnLjdC,kHmL4CW,uBAwaZ,CnLpdC,sFmLoDO,oBAmaR,CnLvdC,gBoLOC,sBACA,qBADF,CAGE,yCACE,qBADJ,CAIE,uCACE,aAFJ,CAKE,uCACE,aAHJ,CAME,sCACE,aAJJ,CAMI,2FAEE,aAJN,CAOI,6CACE,aALN,CASE,wCACE,sBACA,kBAAmB,CACnB,oFAPJ,CAWE,qCCxCA,iBDiCF,CAYE,0FCxCA,sBAEA,eADA,gBAEA,iBAJA,kBDuCF,CASE,0FC/CA,sBAEA,eADA,gBAEA,iBAJA,kBDiDF,CAME,0FCtDA,sBAEA,eADA,gBAEA,iBAJA,kBD2DF,CAGE,0FC7DA,sBAEA,eADA,gBAEA,gBAJA,kBDqEF,CAAE,0FCpEA,sBAEA,eADA,gBAEA,gBAJA,kBD+EF,CpLrFC,woCoL0GK,gBAiCN,CA7BE,uDAEE,oBAAqB,CACrB,cA+BJ,CA5BE,mC3CnHA,cAEA,cAAe,CADf,YAAa,C2CqHX,qB3CnHF,oB2CoJF,C3ClJE,8GAEE,a2CsJJ,C3CnJE,iDACE,a2CsJJ,CAzCI,gGAEE,oBA6CN,CpLxKC,0IoLgIK,sBACA,kBA8CN,CA5CM,wUAEE,qBAoDR,CAjDM,sKACE,mBAsDR,CpL/LC,qBoLkJG,4BAAoC,CACpC,kCAA0C,CAC1C,iBAAkB,CAHlB,aAAc,CAFd,aAAe,CACf,sBAuDJ,CpLvMC,oBoL2JG,6BAAqC,CAErC,8BAAwB,CACxB,iBAAkB,CADlB,wBAAwB,CAHxB,aAAc,CAFd,aAAe,CACf,uBAuDJ,CpLhNC,qBoLmKG,yBADA,SAkDJ,CpLpNC,sCoLyKG,iCADA,yBAA0B,CAC1B,6BAgDJ,CpLzNC,sCoL8KG,4BA+CJ,CpL7NC,uBoLkLG,eA8CJ,CA1CE,iE3CrLA,cAEA,cAAe,C2CwLb,eAAgB,C3CzLlB,YAAa,CAEb,oB2CqOF,C3CnOE,8LAEE,a2CyOJ,C3CtOE,sFACE,a2C0OJ,CAvDI,mGAGE,aAyDN,CApDE,6BACE,iBAsDJ,CApDI,gCACE,WAEA,8BADA,eAuDN,CAnDI,qCAGE,UAAW,CACX,sBAGA,eACA,iBAAkB,CAFlB,eAAmB,CAGnB,mBAAoB,CARpB,iBAAkB,CAClB,UA2DN,CAtEE,sCAwBI,UAAW,CACX,kBAAoB,CAEpB,oBAiDN,CpLnRC,sCoLyOG,cAAe,CACf,SA8CJ,CpLxRC,4CoL6OK,iBAAkB,CAClB,iBA+CN,CpL7RC,mBoLmPG,sBA6CJ,CpLhSC,sBoLsPK,oBA6CN,CpLnSC,mBoL2PG,uBA2CJ,CpLtSC,+CoLiQG,YAyCJ,CpL1SC,oBoLuQG,oBAAqB,CACrB,4BAAoC,CACpC,kCAA0C,CAC1C,iBAAkB,CALlB,iBAAoB,CACpB,oBA4CJ,CpLlTC,yBoLmRK,sBAAuB,CACvB,QAAS,CANT,cAAe,CAIf,mBAAoB,CADpB,iBAAkB,CAFlB,QAAS,CACT,SA2CN,CpL3TC,2BoL0RG,uCAA+C,CAC/C,WAAa,CAFb,kBAuCJ,CAjCE,4BACE,kBAmCJ,CAhCE,qCACE,eAAgB,CAChB,sBAkCJ,CA/BI,+EAEE,qBAiCN,CA7BE,uCAIE,oBAAqB;EA+BvB,+BAA+B,CA5B7B,2BAA4B,CAL5B,mBAAoB,CACpB,eAkCJ,CE7UE,oBACE,aF+UJ,CpLtVC,6HsLgBK,aAAc,CADd,gBF6UN,CpL5VC,2CsLsBK,UFyUN,CpL/VC,mDsL+BO,SAAU,CADV,WFqUR,CpLnWC,yDsLsCO,SAAU,CADV,UFkUR,CpLvWC,kFsLgDO,iBAAkB,CAClB,iBF2TR,CpL5WC,YESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CqLST,SAAU,CrLRV,SqLYF,CvLfC,cuLcG,QAIJ,CADE,gBACE,aAAc,CAEd,YAAa,CADb,UAIJ,CvLvBC,6BuLwBG,cAEJ,CACE,8BACE,oBACJ,CAEE,gCACE,sBACA,kBAAJ,CAGE,2CAOE,yBACA,0BACA,kBACA,cAAe,CARf,aAEA,iBAAkB,CADlB,gBAAiB,CAEjB,iBAAkB,CAMlB,2BAA6B,CAL7B,kBAAmB,CALnB,WASJ,CAVE,uDAeI,kBAAmB,CADnB,YAAa,CAGb,WAAY,CADZ,sBAAuB,CAEvB,iBADN,CAII,iDACE,oBAFN,CvLxDC,qEuL4DO,oBADR,CAME,4BAKE,mBACA,0BACA,kBACA,cAAe,CALf,WAAY,CAFZ,iBAAkB,CAGlB,iBAAkB,CAKlB,2BAA6B,CAP7B,UAGJ,CALE,wCAYI,cAJN,CvLzEC,4EuLiFK,oBALN,CvL5EC,gDuLqFK,kBANN,CAdE,4CAwBI,aAAc,CACd,WAPN,CAlBE,uDA6BI,kBAAmB,CACnB,qBARN,CAWI,4DACE,oBATN,CAzBE,mDA2CI,kBAfN,CA5BE,4DAuCM,cACA,cARR,CAhCE,8CA+CI,sBACA,eAFA,cATN,CArCE,8CAmDI,sBACA,cAXN,CAzCE,0CAwDI,sBACA,cAAe,CACf,kBAZN,CvL/GC,gGuLkIK,qBAbN,CAiBE,iCAGE,oBAAqB,CACrB,UAjBJ,CjMrHE,wCAEE,UAAW,CADX,aiMwHJ,CjMpHE,uCAGE,UAAW,CACX,UAAW,CAFX,aiMuHJ,CvLlIC,iBESC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BqL2IA,mBrLzIA,eAAgB,CANhB,QAAS,CACT,SqL0IF,CjMpIE,+CAHE,UAAW,CADX,aiMiJJ,CjM7IE,uBAGE,UiM0IJ,CAFE,sBAIE,eAFA,gBACA,eAFA,iBAOJ,CAFI,2BACE,oBAAqB,CAIrB,mBADA,eAAgB,CADhB,kBAIA,sBAAuB,CADvB,kBAAmB,CAJnB,UASN,CADI,mCACE,iBAAkB,CAClB,OAGN,CADM,uCACE,SAGR,CvL5KC,kDuL6KO,gBACA,aAAc,CACd,kBAER,CACM,2CAEE,aAAc,CADd,QAER,CAEM,+HAEE,SAAR,CArBI,4CAyBI,sBACA,kBADR,CvL7LC,kDuLkMO,qBAFR,CAMI,2BACE,WAAY,CACZ,+BAJN,CAEI,gCAKI,aAAc,CAEd,WAAY,CADZ,UAHR,CAHI,+GAeM,sBACA,eAHA,iBAAkB,CAClB,OAJV,CAWI,uDACE,wBATN,CAYI,mEACE,SAVN,CAmBI,sNAEI,aAbR,CAgBM,mEACE,SAdR,CAkBI,+BAEE,YAAa,CAGb,eACA,aAAc,CAFd,kBAHA,iBAAkB,CAElB,UAbN,CAqBE,mGAMI,yBACA,kBAHA,WAAY,CACZ,YAFA,iBAhBN,CAsBM,+GACE,sBAnBR,CAsBM,+GACE,oBAnBR,CAKE,qKAuBI,sBApBN,CAHE,uHA2BI,mBApBN,CAPE,uHAgCI,WAAY,CACZ,gBAAiB,CAEjB,UAAY,CADZ,iBAAkB,CAHlB,UAhBN,CAfE,yIAsCM,cAnBR,CA2BU,mPACE,YAxBZ,CA2BU,mPACE,YAxBZ,CA3BE,6GA6DI,cAAe,CADf,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAGR,8BA3BN,CAnCE,+HAiEM,cA1BR,CAvCE,+GAsEI,cA3BN,CA3CE,+HA0EI,aAAc,CAEd,WAAY,CACZ,eAAgB,CAFhB,UAzBN,CAlDE,6GAkFI,qBAAsB,CADtB,oBAAqB,CAOrB,gBAAiB,CAJjB,gBAAiB,CADjB,cAAe,CAIf,eAAgB,CADhB,iBAAkB,CADlB,iBAAkB,CAKlB,sBAAuB,CACvB,kBAAoB,CAFpB,kBAzBN,CAhEE,6KA+FI,kBA3BN,CApEE,qHAmGI,WAAY,CAEZ,YAAa,CACb,iBAAkB,CAFlB,uBAzBN,CAiCI,wCACE,oBAAqB,CAErB,aACA,mBACA,kBAAmB,CAHnB,WA5BN,CAyBE,oDAUI,WAAY,CACZ,QAhCN,CAqBE,yDAgBI,WAAY,CACZ,eAAgB,CAFhB,iBA/BN,CAmCM,gEAKE,gCAGA,WAAY,CAJZ,WAAY,CAEZ,SAAU,CALV,iBAAkB,CAMlB,kBAAoB,CAJpB,UAAW,CADX,SA3BR,CAME,4FAgCI,SAnCN,CAGE,4DAsCI,QAAS,CAIT,SAAU,CANV,iBAAkB,CAClB,OAAQ,CAIR,8BAAgC,CAEhC,kBAAoB,CAHpB,kBAAmB,CADnB,UAhCN,CAPE,mOAmDM,0BAEA,cAAe,CADf,cAAe,CAFf,YAAa,CAIb,kBAAoB,CALpB,UAAW,CADX,UA9BR,CAsCQ,qPACE,UAlCV,CAvBE,+JAgEI,SArCN,CA3BE,gIAsEI,aAAc,CAEd,WAAY,CACZ,wCAAmB,CAJnB,eAAgB,CAEhB,UApCN,CAnCE,yDA6EI,YAAa,CAGb,mBAFA,cAAe,CACf,SAAU,CAEV,iBAvCN,CA1CE,oFAsFI,WAAY,CACZ,aAAc,CAFd,iBAtCN,CvLxZC,mFuLqcO,wBA1CR,CAlDE,yFAgGM,WA3CR,CvL9ZC,+SuL8cS,YA3CV,CA1DE,6DA2GI,WAAY,CAEZ,cAAe,CADf,uBA7CN,CAqDI,mEACE,iCAlDN,CAoDM,iFAIE,UAAW,CAHX,aAAc,CAEd,QAAS,CADT,OA/CR,CA0CI,qGAYI,aAAc,CACd,SAlDR,CAmCE,iFAuBI,kBAAmB,CADnB,YApDN,CA8BE,qFA0BM,SApDR,CA0BE,qGA+BI,SAAU,CACV,QAAS,CACT,aArDN,CA8DE,0KAGM,eA1DR,CvL9cC,uJuLihBG,uBAEA,4BAA6B,CAD7B,uDA7DJ,CvLrdC,qGuLwhBG,oCA/DJ,CvLzdC,kDuL4hBG,qCAhEJ,CAoEA,iCACE,GAEE,QAAS,CACT,QAAS,CAET,SAAU,CADV,SAAU,CAHV,OA9DF,CACF,CAqEA,kCACE,GAEE,QAAS,CACT,QAAS,CAET,SAAU,CADV,SAAU,CAHV,OA/DF,CACF,CCveE,gBACE,aDyeJ,CvLjfC,0DwLcK,eAAgB,CADhB,iBDweN,CCjeE,qBACE,aDmeJ,CvLxfC,wGwL6BS,iBAAkB,CADlB,kBDgeV,CvL5fC,wGwLmCS,iBAAkB,CADlB,kBD8dV,CvLhgBC,gDwL6CO,cAAe,CADf,kBDwdR,CvLpgBC,6DwLmDO,iBDodR,CvLvgBC,wDwL0DO,MAAO,CADP,UDkdR,CvL3gBC,iEwL+DS,gBAAiB,CADjB,eDidV,CvL/gBC,gDwLsEO,oBD4cR,CvLlhBC,6FwL8ES,gBAAiB,CADjB,eDycV,CvLthBC,oDwLsFO,cAAe,CADf,kBDqcR,CC/bE,6GAGI,SDgcN,CvL9hBC,+JwLoGO,SAAU,CADV,SDgcR,CvLniBC,qJwL2GO,SAAU,CADV,SAAU,CAEV,6BD6bR,CvLziBC,qJwLkHO,gBAAiB,CAEjB,gBAAiB,CADjB,kBD4bR,CvL/iBC,+KwL2HO,iBAAkB,CADlB,kBD0bR,CvLpjBC,+KwLkIO,iBAAkB,CADlB,kBDwbR,CvLzjBC,6JwLyIO,cAAe,CADf,eDsbR,CvL9jBC,6DwLiJO,kBDgbR,CvLjkBC,gFwLwJO,SAAU,CADV,SAAU,CAEV,6BD6aR,CvLtkBC,wGwL+JO,cAAe,CACf,SD0aR,CExkBA,KAEE,WAAY,CACZ,eAAgB,CAFhB,UAGF,CCNA,SAEI,mBAAqB,CACrB,yBAA0B,CAF1B,WAGJ,CAEA,gBACI,OACJ,CCRA,aAEI,WAAY,CACZ,eAAgB,CAFhB,UAGJ,CAEA,uBACI,UAAW,CAEX,iBAAkB,CADlB,WAAY,CAEZ,YACJ,CAEA,gCAEI,qBAAsB,CAEtB,WAAY,CAHZ,gBAAiB,CAEjB,kBAEJ,CAEA,4BAII,cAAe,CAEf,wBAAyB,CAHzB,iBAAkB,CAElB,aAAc,CAMd,cAAe,CAVf,WAAY,CASZ,cAAe,CAFf,gBAAiB,CANjB,gBAAiB,CAOjB,cAAe,CAFf,cAKJ,CAEA,mCACI,YAAa,CACb,eACJ,CAEA,yCAMI,cAAe,CAHf,WAAY,CAEZ,MAAO,CAJP,iBAAkB,CAGlB,KAAM,CAFN,UAAW,CAKX,YACJ,CAEA,4CACI,YACJ,CAMA,2FACI,WACJ,CAEA,uBAGI,qBAAsB,CADtB,iBAAkB,CADlB,UAAW,CAIX,YAAa,CADb,SAAU,CAEV,UACJ,CAEA,uBAGI,qBAAsB,CADtB,wBAA2B,CAE3B,YAAa,CAHb,eAIJ,CAEA,8BACI,QAAS,CACT,WAAY,CACZ,UACJ,CCjFA,MAEI,WAAY,CACZ,eAAgB,CAFhB,UAGJ,CAEA,YAII,8BAA+B,CAF/B,UAAW,CACX,eAAgB,CAFhB,iBAIJ,CAEA,eAEI,WAAY,CACZ,eAAgB,CAFhB,iBAGJ,CAEA,aAII,0BAA2B,CAF3B,QAAW,CAKX,cAAe,CAJf,MAAS,CAET,aAAc,CAJd,iBAAkB,CAKlB,oBAEJ,CAEA,eAEI,UAAY,CADZ,cAEJ,CAEA,qBACI,yBACJ,CCpCA,UAII,qBAAyB,CAFzB,WAAY,CACZ,eAAgB,CAFhB,UAIJ,CAEA,gBAMI,WAAY,CAHZ,WAAY,CAIZ,SAAU,CANV,cAAe,CACf,KAAM,CAMN,8BAAiC,CAHjC,WAAY,CADZ,UAKJ,CAEA,qBACI,MAAO,CACP,UACJ,CAEA,2BACI,MAAO,CACP,SACJ,CAEA,wBAaI,sBAAuB,CADvB,QAAS,CAGT,UAAW,CADX,cAAe,CAZf,cAAe,CAEf,SAAU,CAHV,iBAAkB,CAIlB,iBAAkB,CAFlB,QAAS,CAQT,8BAAiC,CAJjC,wBAAyB,CAEzB,gBAAiB,CAHjB,qBAAsB,CAItB,UAMJ,CAEA,6BACI,UAEJ,CAEA,6BAWI,kBAAqB,CACrB,8FAA+F,CAC/F,qBAAsB,CAPtB,aAAc,CAEd,SAAY,CALZ,SAAU,CAMV,kBAAmB,CARnB,iBAAkB,CASlB,8BAAiC,CARjC,SAYJ,CAOA,iEAhBI,WAAY,CAEZ,eAAgB,CAHhB,UAqBJ,CAmBA,sBAaI,UAAW,CAXX,gBAAiB,CAEjB,SAAU,CAOV,4BAA6B,CAC7B,mBAAoB,CAXpB,iBAAkB,CAIlB,eAAgB,CAFhB,QAAS,CAOT,8BAAiC,CAJjC,wBAAyB,CAEzB,gBAAiB,CACjB,SAKJ,CAEA,2BACI,UAEJ,CAEA,uBAII,kBAAmB,CAEnB,8BAA+B,CAH/B,WAAY,CAQZ,MAAO,CANP,aAAc,CAGd,uBAAqB,CAPrB,iBAAkB,CASlB,KAAM,CADN,wBAAiB,CAAjB,gBAAiB,CAPjB,UAUJ,CAEA,UAGI,gBAAiB,CACjB,eAAmB,CAFnB,eAAgB,CADhB,YAAa,CAIb,8BACJ,CAEA,UACI,gBAAiB,CACjB,eAAmB,CAEnB,mBAAoB,CADpB,gBAAiB,CAEjB,oBACJ,CAEA,UAGI,0BAAyB,CACzB,yBAAuB,CACvB,yBAAyB,CACzB,uBAAuB,CAEvB,kBAAmB,CACnB,gBAAiB,CARjB,aAAc,CAGd,qBAAuB,CADvB,uBAAyB,CAGzB,sBAAuB,CADvB,wBAAyB,CAEzB,eAAgB,CALhB,4BAAqB,CAArB,oBAQJ,CAEA,aAMI,kBAAmB,CACnB,cAAe,CAEf,cAAe,CAJf,eAAmB,CAGnB,iBAAkB,CAPlB,uBAAyB,CACzB,wBAA0B,CAC1B,eAAgB,CAChB,oBAMJ,CAKA,mBACI,yBACJ,CAEA,iBAII,0BAA2B,CAF3B,QAAW,CAKX,cAAe,CAJf,MAAS,CAET,aAAc,CAJd,iBAAkB,CAKlB,oBAEJ,CAEA,mBAEI,UAAY,CADZ,cAEJ,CAEA,yBACI,yBACJ","sources":["index.css","../node_modules/antd/dist/antd.css","../antd/components/style/core/base.less","../antd/components/style/index.less","../antd/components/style/color/bezierEasing.less","../antd/components/style/mixins/size.less","../antd/components/style/core/global.less","../antd/components/style/mixins/clearfix.less","../antd/components/style/mixins/iconfont.less","../antd/components/style/core/iconfont.less","../antd/components/style/mixins/motion.less","../antd/components/style/core/motion/fade.less","../antd/components/style/core/motion/move.less","../antd/components/style/core/motion/other.less","../antd/components/style/core/motion/slide.less","../antd/components/style/core/motion/zoom.less","../antd/components/style/core/motion.less","../antd/components/style/color/tinyColor.less","../antd/components/affix/style/index.less","../antd/components/style/mixins/reset.less","../antd/components/alert/style/index.less","../antd/components/alert/style/rtl.less","../antd/components/anchor/style/index.less","../antd/components/anchor/style/rtl.less","../antd/components/auto-complete/style/index.less","../antd/components/select/style/single.less","../antd/components/select/style/index.less","../antd/components/select/style/multiple.less","../antd/components/select/style/status.less","../antd/components/input/style/mixin.less","../antd/components/style/mixins/compact-item.less","../antd/components/select/style/rtl.less","../antd/components/empty/style/index.less","../antd/components/empty/style/rtl.less","../antd/components/avatar/style/index.less","../antd/components/avatar/style/group.less","../antd/components/avatar/style/rtl.less","../antd/components/popover/style/index.less","../antd/components/style/mixins/rounded-arrow.less","../antd/components/popover/style/rtl.less","../antd/components/back-top/style/index.less","../antd/components/back-top/style/responsive.less","../antd/components/badge/style/index.less","../antd/components/badge/style/ribbon.less","../antd/components/badge/style/rtl.less","../antd/components/breadcrumb/style/index.less","../antd/components/breadcrumb/style/rtl.less","../antd/components/dropdown/style/status.less","../antd/components/dropdown/style/index.less","../antd/components/dropdown/style/rtl.less","../antd/components/button/style/mixin.less","../antd/components/button/style/index.less","../antd/components/button/style/rtl.less","../antd/components/button/style/space-compact.less","../antd/components/style/mixins/compact-item-vertical.less","../antd/components/menu/style/status.less","../antd/components/menu/style/index.less","../antd/components/menu/style/light.less","../antd/components/menu/style/dark.less","../antd/components/menu/style/rtl.less","../antd/components/tooltip/style/index.less","../antd/components/tooltip/style/rtl.less","../antd/components/space/style/index.less","../antd/components/space/style/compact.less","../antd/components/space/style/rtl.less","../antd/components/calendar/style/index.less","../antd/components/calendar/style/rtl.less","../antd/components/date-picker/style/status.less","../antd/components/date-picker/style/index.less","../antd/components/style/mixins/compatibility.less","../antd/components/date-picker/style/panel.less","../antd/components/date-picker/style/rtl.less","../antd/components/tag/style/index.less","../antd/components/tag/style/rtl.less","../antd/components/radio/style/index.less","../antd/components/radio/style/rtl.less","../antd/components/card/style/index.less","../antd/components/card/style/size.less","../antd/components/skeleton/style/index.less","../antd/components/skeleton/style/rtl.less","../antd/components/tabs/style/size.less","../antd/components/tabs/style/index.less","../antd/components/tabs/style/rtl.less","../antd/components/tabs/style/position.less","../antd/components/tabs/style/dropdown.less","../antd/components/tabs/style/card.less","../antd/components/carousel/style/index.less","../antd/components/carousel/style/rtl.less","../antd/components/checkbox/style/mixin.less","../antd/components/cascader/style/index.less","../antd/components/cascader/style/rtl.less","../antd/components/checkbox/style/index.less","../antd/components/checkbox/style/rtl.less","../antd/components/grid/style/index.less","../antd/components/grid/style/mixin.less","../antd/components/grid/style/rtl.less","../antd/components/collapse/style/index.less","../antd/components/collapse/style/rtl.less","../antd/components/comment/style/index.less","../antd/components/comment/style/rtl.less","../antd/components/descriptions/style/index.less","../antd/components/descriptions/style/rtl.less","../antd/components/divider/style/index.less","../antd/components/divider/style/rtl.less","../antd/components/drawer/style/drawer.less","../antd/components/drawer/style/index.less","../antd/components/drawer/style/motion.less","../antd/components/drawer/style/rtl.less","../antd/components/form/style/components.less","../antd/components/form/style/index.less","../antd/components/form/style/inline.less","../antd/components/form/style/horizontal.less","../antd/components/form/style/vertical.less","../antd/components/form/style/rtl.less","../antd/components/form/style/status.less","../antd/components/form/style/mixin.less","../antd/components/image/style/index.less","../antd/components/style/mixins/box.less","../antd/components/style/mixins/modal-mask.less","../antd/components/input-number/style/affix.less","../antd/components/input-number/style/index.less","../antd/components/input-number/style/status.less","../antd/components/input-number/style/rtl.less","../antd/components/input/style/affix.less","../antd/components/input/style/index.less","../antd/components/input/style/rtl.less","../antd/components/input/style/allow-clear.less","../antd/components/input/style/status.less","../antd/components/input/style/search-input.less","../antd/components/input/style/IE11.less","../antd/components/layout/style/index.less","../antd/components/layout/style/light.less","../antd/components/layout/style/rtl.less","../antd/components/list/style/index.less","../antd/components/list/style/bordered.less","../antd/components/list/style/responsive.less","../antd/components/list/style/rtl.less","../antd/components/pagination/style/index.less","../antd/components/pagination/style/rtl.less","../antd/components/spin/style/index.less","../antd/components/spin/style/rtl.less","../antd/components/mentions/style/index.less","../antd/components/mentions/style/status.less","../antd/components/mentions/style/rtl.less","../antd/components/message/style/index.less","../antd/components/message/style/rtl.less","../antd/components/modal/style/modal.less","../antd/components/modal/style/index.less","../antd/components/modal/style/confirm.less","../antd/components/modal/style/rtl.less","../antd/components/notification/style/index.less","../antd/components/notification/style/rtl.less","../antd/components/notification/style/placement.less","../antd/components/page-header/style/index.less","../antd/components/style/mixins/operation-unit.less","../antd/components/page-header/style/rtl.less","../antd/components/popconfirm/style/index.less","../antd/components/progress/style/index.less","../antd/components/progress/style/rtl.less","../antd/components/rate/style/index.less","../antd/components/rate/style/rtl.less","../antd/components/result/style/index.less","../antd/components/result/style/rtl.less","../antd/components/segmented/style/mixins.less","../antd/components/segmented/style/index.less","../antd/components/segmented/style/rtl.less","../antd/components/slider/style/index.less","../antd/components/slider/style/rtl.less","../antd/components/statistic/style/index.less","../antd/components/statistic/style/rtl.less","../antd/components/steps/style/index.less","../antd/components/steps/style/custom-icon.less","../antd/components/steps/style/small.less","../antd/components/steps/style/vertical.less","../antd/components/steps/style/label-placement.less","../antd/components/steps/style/progress-dot.less","../antd/components/steps/style/nav.less","../antd/components/steps/style/rtl.less","../antd/components/steps/style/progress.less","../antd/components/switch/style/index.less","../antd/components/switch/style/rtl.less","../antd/components/table/style/size.less","../antd/components/table/style/index.less","../antd/components/table/style/bordered.less","../antd/components/table/style/radius.less","../antd/components/table/style/rtl.less","../antd/components/tree/style/directory.less","../antd/components/tree/style/index.less","../antd/components/tree/style/mixin.less","../antd/components/tree/style/rtl.less","../antd/components/timeline/style/index.less","../antd/components/timeline/style/rtl.less","../antd/components/transfer/style/customize.less","../antd/components/transfer/style/index.less","../antd/components/transfer/style/status.less","../antd/components/transfer/style/rtl.less","../antd/components/tree-select/style/index.less","../antd/components/typography/style/index.less","../antd/components/style/mixins/typography.less","../antd/components/typography/style/rtl.less","../antd/components/upload/style/index.less","../antd/components/upload/style/rtl.less","App.css","pages/demo/components/NavMenu/NavMenu.css","pages/demo/components/CodeEditor/CodeEditor.css","pages/demo/index.css","pages/examples/index.css"],"sourcesContent":["html, body, #root {\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n::-webkit-scrollbar {\n height: 1px;\n width: 5px;\n}\n::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, .1);\n border-radius: 10px;\n}\n::-webkit-scrollbar-track {\n background: #ededed;\n border-radius: 4px;\n}\n","/*!\n * \n * antd v4.24.13\n * \n * Copyright 2015-present, Alipay, Inc.\n * All rights reserved.\n * \n */\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n[class^=ant-]::-ms-clear,\n[class*= ant-]::-ms-clear,\n[class^=ant-] input::-ms-clear,\n[class*= ant-] input::-ms-clear,\n[class^=ant-] input::-ms-reveal,\n[class*= ant-] input::-ms-reveal {\n display: none;\n}\n/* stylelint-disable property-no-vendor-prefix, at-rule-no-vendor-prefix */\nhtml,\nbody {\n width: 100%;\n height: 100%;\n}\ninput::-ms-clear,\ninput::-ms-reveal {\n display: none;\n}\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n@-ms-viewport {\n width: device-width;\n}\nbody {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n font-variant: tabular-nums;\n line-height: 1.5715;\n background-color: #fff;\n font-feature-settings: 'tnum';\n}\n[tabindex='-1']:focus {\n outline: none !important;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n}\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n border-bottom: 0;\n cursor: help;\n}\naddress {\n margin-bottom: 1em;\n font-style: normal;\n line-height: inherit;\n}\ninput[type='text'],\ninput[type='password'],\ninput[type='number'],\ntextarea {\n -webkit-appearance: none;\n}\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1em;\n}\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\ndt {\n font-weight: 500;\n}\ndd {\n margin-bottom: 0.5em;\n margin-left: 0;\n}\nblockquote {\n margin: 0 0 1em;\n}\ndfn {\n font-style: italic;\n}\nb,\nstrong {\n font-weight: bolder;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\na {\n color: #1890ff;\n text-decoration: none;\n background-color: transparent;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n -webkit-text-decoration-skip: objects;\n}\na:hover {\n color: #40a9ff;\n}\na:active {\n color: #096dd9;\n}\na:active,\na:hover {\n text-decoration: none;\n outline: 0;\n}\na:focus {\n text-decoration: none;\n outline: 0;\n}\na[disabled] {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\npre,\ncode,\nkbd,\nsamp {\n font-size: 1em;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;\n}\npre {\n margin-top: 0;\n margin-bottom: 1em;\n overflow: auto;\n}\nfigure {\n margin: 0 0 1em;\n}\nimg {\n vertical-align: middle;\n border-style: none;\n}\na,\narea,\nbutton,\n[role='button'],\ninput:not([type='range']),\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\ntable {\n border-collapse: collapse;\n}\ncaption {\n padding-top: 0.75em;\n padding-bottom: 0.3em;\n color: rgba(0, 0, 0, 0.45);\n text-align: left;\n caption-side: bottom;\n}\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\nbutton,\ninput {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\nbutton::-moz-focus-inner,\n[type='button']::-moz-focus-inner,\n[type='reset']::-moz-focus-inner,\n[type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\ninput[type='radio'],\ninput[type='checkbox'] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type='date'],\ninput[type='time'],\ninput[type='datetime-local'],\ninput[type='month'] {\n -webkit-appearance: listbox;\n}\ntextarea {\n overflow: auto;\n resize: vertical;\n}\nfieldset {\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: 0.5em;\n padding: 0;\n color: inherit;\n font-size: 1.5em;\n line-height: inherit;\n white-space: normal;\n}\nprogress {\n vertical-align: baseline;\n}\n[type='number']::-webkit-inner-spin-button,\n[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n[type='search'] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n[type='search']::-webkit-search-cancel-button,\n[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\noutput {\n display: inline-block;\n}\nsummary {\n display: list-item;\n}\ntemplate {\n display: none;\n}\n[hidden] {\n display: none !important;\n}\nmark {\n padding: 0.2em;\n background-color: #feffe6;\n}\n::-moz-selection {\n color: #fff;\n background: #1890ff;\n}\n::selection {\n color: #fff;\n background: #1890ff;\n}\n.clearfix::before {\n display: table;\n content: '';\n}\n.clearfix::after {\n display: table;\n clear: both;\n content: '';\n}\n.anticon {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.anticon > * {\n line-height: 1;\n}\n.anticon svg {\n display: inline-block;\n}\n.anticon::before {\n display: none;\n}\n.anticon .anticon-icon {\n display: block;\n}\n.anticon > .anticon {\n line-height: 0;\n vertical-align: 0;\n}\n.anticon[tabindex] {\n cursor: pointer;\n}\n.anticon-spin,\n.anticon-spin::before {\n display: inline-block;\n animation: loadingCircle 1s infinite linear;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-fade-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-fade-enter.ant-fade-enter-active,\n.ant-fade-appear.ant-fade-appear-active {\n animation-name: antFadeIn;\n animation-play-state: running;\n}\n.ant-fade-leave.ant-fade-leave-active {\n animation-name: antFadeOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n opacity: 0;\n animation-timing-function: linear;\n}\n.ant-fade-leave {\n animation-timing-function: linear;\n}\n@keyframes antFadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes antFadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-up-enter.ant-move-up-enter-active,\n.ant-move-up-appear.ant-move-up-appear-active {\n animation-name: antMoveUpIn;\n animation-play-state: running;\n}\n.ant-move-up-leave.ant-move-up-leave-active {\n animation-name: antMoveUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-up-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-down-enter.ant-move-down-enter-active,\n.ant-move-down-appear.ant-move-down-appear-active {\n animation-name: antMoveDownIn;\n animation-play-state: running;\n}\n.ant-move-down-leave.ant-move-down-leave-active {\n animation-name: antMoveDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-down-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-left-enter.ant-move-left-enter-active,\n.ant-move-left-appear.ant-move-left-appear-active {\n animation-name: antMoveLeftIn;\n animation-play-state: running;\n}\n.ant-move-left-leave.ant-move-left-leave-active {\n animation-name: antMoveLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-left-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-right-enter.ant-move-right-enter-active,\n.ant-move-right-appear.ant-move-right-appear-active {\n animation-name: antMoveRightIn;\n animation-play-state: running;\n}\n.ant-move-right-leave.ant-move-right-leave-active {\n animation-name: antMoveRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-right-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n@keyframes antMoveDownIn {\n 0% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveDownOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveLeftIn {\n 0% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveLeftOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveRightIn {\n 0% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveRightOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveUpIn {\n 0% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveUpOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes loadingCircle {\n 100% {\n transform: rotate(360deg);\n }\n}\n[ant-click-animating='true'],\n[ant-click-animating-without-extra-node='true'] {\n position: relative;\n}\nhtml {\n --antd-wave-shadow-color: #1890ff;\n --scroll-bar: 0;\n}\n[ant-click-animating-without-extra-node='true']::after,\n.ant-click-animating-node {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n border-radius: inherit;\n box-shadow: 0 0 0 0 #1890ff;\n box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);\n opacity: 0.2;\n animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n@keyframes waveEffect {\n 100% {\n box-shadow: 0 0 0 #1890ff;\n box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);\n }\n}\n@keyframes fadeEffect {\n 100% {\n opacity: 0;\n }\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-up-enter.ant-slide-up-enter-active,\n.ant-slide-up-appear.ant-slide-up-appear-active {\n animation-name: antSlideUpIn;\n animation-play-state: running;\n}\n.ant-slide-up-leave.ant-slide-up-leave-active {\n animation-name: antSlideUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-up-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-down-enter.ant-slide-down-enter-active,\n.ant-slide-down-appear.ant-slide-down-appear-active {\n animation-name: antSlideDownIn;\n animation-play-state: running;\n}\n.ant-slide-down-leave.ant-slide-down-leave-active {\n animation-name: antSlideDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-down-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-left-enter.ant-slide-left-enter-active,\n.ant-slide-left-appear.ant-slide-left-appear-active {\n animation-name: antSlideLeftIn;\n animation-play-state: running;\n}\n.ant-slide-left-leave.ant-slide-left-leave-active {\n animation-name: antSlideLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-left-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-right-enter.ant-slide-right-enter-active,\n.ant-slide-right-appear.ant-slide-right-appear-active {\n animation-name: antSlideRightIn;\n animation-play-state: running;\n}\n.ant-slide-right-leave.ant-slide-right-leave-active {\n animation-name: antSlideRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-right-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n@keyframes antSlideUpIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideUpOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideDownIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n}\n@keyframes antSlideDownOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n}\n@keyframes antSlideLeftIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideLeftOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideRightIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideRightOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-enter.ant-zoom-enter-active,\n.ant-zoom-appear.ant-zoom-appear-active {\n animation-name: antZoomIn;\n animation-play-state: running;\n}\n.ant-zoom-leave.ant-zoom-leave-active {\n animation-name: antZoomOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-enter-prepare,\n.ant-zoom-appear-prepare {\n transform: none;\n}\n.ant-zoom-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-enter.ant-zoom-big-enter-active,\n.ant-zoom-big-appear.ant-zoom-big-appear-active {\n animation-name: antZoomBigIn;\n animation-play-state: running;\n}\n.ant-zoom-big-leave.ant-zoom-big-leave-active {\n animation-name: antZoomBigOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-enter-prepare,\n.ant-zoom-big-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n animation-duration: 0.1s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-leave {\n animation-duration: 0.1s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active,\n.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active {\n animation-name: antZoomBigIn;\n animation-play-state: running;\n}\n.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active {\n animation-name: antZoomBigOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-fast-enter-prepare,\n.ant-zoom-big-fast-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-fast-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-up-enter.ant-zoom-up-enter-active,\n.ant-zoom-up-appear.ant-zoom-up-appear-active {\n animation-name: antZoomUpIn;\n animation-play-state: running;\n}\n.ant-zoom-up-leave.ant-zoom-up-leave-active {\n animation-name: antZoomUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-up-enter-prepare,\n.ant-zoom-up-appear-prepare {\n transform: none;\n}\n.ant-zoom-up-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-down-enter.ant-zoom-down-enter-active,\n.ant-zoom-down-appear.ant-zoom-down-appear-active {\n animation-name: antZoomDownIn;\n animation-play-state: running;\n}\n.ant-zoom-down-leave.ant-zoom-down-leave-active {\n animation-name: antZoomDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-down-enter-prepare,\n.ant-zoom-down-appear-prepare {\n transform: none;\n}\n.ant-zoom-down-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-left-enter.ant-zoom-left-enter-active,\n.ant-zoom-left-appear.ant-zoom-left-appear-active {\n animation-name: antZoomLeftIn;\n animation-play-state: running;\n}\n.ant-zoom-left-leave.ant-zoom-left-leave-active {\n animation-name: antZoomLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-left-enter-prepare,\n.ant-zoom-left-appear-prepare {\n transform: none;\n}\n.ant-zoom-left-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-right-enter.ant-zoom-right-enter-active,\n.ant-zoom-right-appear.ant-zoom-right-appear-active {\n animation-name: antZoomRightIn;\n animation-play-state: running;\n}\n.ant-zoom-right-leave.ant-zoom-right-leave-active {\n animation-name: antZoomRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-right-enter-prepare,\n.ant-zoom-right-appear-prepare {\n transform: none;\n}\n.ant-zoom-right-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n@keyframes antZoomIn {\n 0% {\n transform: scale(0.2);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.2);\n opacity: 0;\n }\n}\n@keyframes antZoomBigIn {\n 0% {\n transform: scale(0.8);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomBigOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n@keyframes antZoomUpIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n}\n@keyframes antZoomUpOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n}\n@keyframes antZoomLeftIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n}\n@keyframes antZoomLeftOut {\n 0% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomRightIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n}\n@keyframes antZoomRightOut {\n 0% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomDownIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n}\n@keyframes antZoomDownOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n}\n.ant-motion-collapse-legacy {\n overflow: hidden;\n}\n.ant-motion-collapse-legacy-active {\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n.ant-motion-collapse {\n overflow: hidden;\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-affix {\n position: fixed;\n z-index: 10;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-alert {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: flex;\n align-items: center;\n padding: 8px 15px;\n word-wrap: break-word;\n border-radius: 2px;\n}\n.ant-alert-content {\n flex: 1;\n min-width: 0;\n}\n.ant-alert-icon {\n margin-right: 8px;\n}\n.ant-alert-description {\n display: none;\n font-size: 14px;\n line-height: 22px;\n}\n.ant-alert-success {\n background-color: #f6ffed;\n border: 1px solid #b7eb8f;\n}\n.ant-alert-success .ant-alert-icon {\n color: #52c41a;\n}\n.ant-alert-info {\n background-color: #e6f7ff;\n border: 1px solid #91d5ff;\n}\n.ant-alert-info .ant-alert-icon {\n color: #1890ff;\n}\n.ant-alert-warning {\n background-color: #fffbe6;\n border: 1px solid #ffe58f;\n}\n.ant-alert-warning .ant-alert-icon {\n color: #faad14;\n}\n.ant-alert-error {\n background-color: #fff2f0;\n border: 1px solid #ffccc7;\n}\n.ant-alert-error .ant-alert-icon {\n color: #ff4d4f;\n}\n.ant-alert-error .ant-alert-description > pre {\n margin: 0;\n padding: 0;\n}\n.ant-alert-action {\n margin-left: 8px;\n}\n.ant-alert-close-icon {\n margin-left: 8px;\n padding: 0;\n overflow: hidden;\n font-size: 12px;\n line-height: 12px;\n background-color: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n}\n.ant-alert-close-icon .anticon-close {\n color: rgba(0, 0, 0, 0.45);\n transition: color 0.3s;\n}\n.ant-alert-close-icon .anticon-close:hover {\n color: rgba(0, 0, 0, 0.75);\n}\n.ant-alert-close-text {\n color: rgba(0, 0, 0, 0.45);\n transition: color 0.3s;\n}\n.ant-alert-close-text:hover {\n color: rgba(0, 0, 0, 0.75);\n}\n.ant-alert-with-description {\n align-items: flex-start;\n padding: 15px 15px 15px 24px;\n}\n.ant-alert-with-description.ant-alert-no-icon {\n padding: 15px 15px;\n}\n.ant-alert-with-description .ant-alert-icon {\n margin-right: 15px;\n font-size: 24px;\n}\n.ant-alert-with-description .ant-alert-message {\n display: block;\n margin-bottom: 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n}\n.ant-alert-message {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-alert-with-description .ant-alert-description {\n display: block;\n}\n.ant-alert.ant-alert-motion-leave {\n overflow: hidden;\n opacity: 1;\n transition: max-height 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), opacity 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), padding-top 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), padding-bottom 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), margin-bottom 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-alert.ant-alert-motion-leave-active {\n max-height: 0;\n margin-bottom: 0 !important;\n padding-top: 0;\n padding-bottom: 0;\n opacity: 0;\n}\n.ant-alert-banner {\n margin-bottom: 0;\n border: 0;\n border-radius: 0;\n}\n.ant-alert.ant-alert-rtl {\n direction: rtl;\n}\n.ant-alert-rtl .ant-alert-icon {\n margin-right: auto;\n margin-left: 8px;\n}\n.ant-alert-rtl .ant-alert-action {\n margin-right: 8px;\n margin-left: auto;\n}\n.ant-alert-rtl .ant-alert-close-icon {\n margin-right: 8px;\n margin-left: auto;\n}\n.ant-alert-rtl.ant-alert-with-description {\n padding-right: 24px;\n padding-left: 15px;\n}\n.ant-alert-rtl.ant-alert-with-description .ant-alert-icon {\n margin-right: auto;\n margin-left: 15px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-anchor {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n padding-left: 2px;\n}\n.ant-anchor-wrapper {\n margin-left: -4px;\n padding-left: 4px;\n overflow: auto;\n background-color: transparent;\n}\n.ant-anchor-ink {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n}\n.ant-anchor-ink::before {\n position: relative;\n display: block;\n width: 2px;\n height: 100%;\n margin: 0 auto;\n background-color: #f0f0f0;\n content: ' ';\n}\n.ant-anchor-ink-ball {\n position: absolute;\n left: 50%;\n display: none;\n width: 8px;\n height: 8px;\n background-color: #fff;\n border: 2px solid #1890ff;\n border-radius: 8px;\n transform: translateX(-50%);\n transition: top 0.3s ease-in-out;\n}\n.ant-anchor-ink-ball.ant-anchor-ink-ball-visible {\n display: inline-block;\n}\n.ant-anchor-fixed .ant-anchor-ink .ant-anchor-ink-ball {\n display: none;\n}\n.ant-anchor-link {\n padding: 4px 0 4px 16px;\n}\n.ant-anchor-link-title {\n position: relative;\n display: block;\n margin-bottom: 3px;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n white-space: nowrap;\n text-overflow: ellipsis;\n transition: all 0.3s;\n}\n.ant-anchor-link-title:only-child {\n margin-bottom: 0;\n}\n.ant-anchor-link-active > .ant-anchor-link-title {\n color: #1890ff;\n}\n.ant-anchor-link .ant-anchor-link {\n padding-top: 2px;\n padding-bottom: 2px;\n}\n.ant-anchor-rtl {\n direction: rtl;\n}\n.ant-anchor-rtl.ant-anchor-wrapper {\n margin-right: -4px;\n margin-left: 0;\n padding-right: 4px;\n padding-left: 0;\n}\n.ant-anchor-rtl .ant-anchor-ink {\n right: 0;\n left: auto;\n}\n.ant-anchor-rtl .ant-anchor-ink-ball {\n right: 50%;\n left: 0;\n transform: translateX(50%);\n}\n.ant-anchor-rtl .ant-anchor-link {\n padding: 4px 16px 4px 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-select-auto-complete {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-select-auto-complete .ant-select-clear {\n right: 13px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-select-single .ant-select-selector {\n display: flex;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-search {\n position: absolute;\n top: 0;\n right: 11px;\n bottom: 0;\n left: 11px;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-search-input {\n width: 100%;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-item,\n.ant-select-single .ant-select-selector .ant-select-selection-placeholder {\n padding: 0;\n line-height: 30px;\n transition: all 0.3s, visibility 0s;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-item {\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-placeholder {\n transition: none;\n pointer-events: none;\n}\n.ant-select-single .ant-select-selector::after,\n.ant-select-single .ant-select-selector .ant-select-selection-item::after,\n.ant-select-single .ant-select-selector .ant-select-selection-placeholder::after {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n}\n.ant-select-single.ant-select-show-arrow .ant-select-selection-search {\n right: 25px;\n}\n.ant-select-single.ant-select-show-arrow .ant-select-selection-item,\n.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 18px;\n}\n.ant-select-single.ant-select-open .ant-select-selection-item {\n color: #bfbfbf;\n}\n.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {\n width: 100%;\n height: 32px;\n padding: 0 11px;\n}\n.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {\n height: 30px;\n}\n.ant-select-single:not(.ant-select-customize-input) .ant-select-selector::after {\n line-height: 30px;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector::after {\n display: none;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search {\n position: static;\n width: 100%;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder {\n position: absolute;\n right: 0;\n left: 0;\n padding: 0 11px;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder::after {\n display: none;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector {\n height: 40px;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector::after,\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder {\n line-height: 38px;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input {\n height: 38px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector {\n height: 24px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector::after,\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder {\n line-height: 22px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input {\n height: 22px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search {\n right: 7px;\n left: 7px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector {\n padding: 0 7px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search {\n right: 28px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 21px;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector {\n padding: 0 11px;\n}\n/**\n * Do not merge `height` & `line-height` under style with `selection` & `search`,\n * since chrome may update to redesign with its align logic.\n */\n.ant-select-selection-overflow {\n position: relative;\n display: flex;\n flex: auto;\n flex-wrap: wrap;\n max-width: 100%;\n}\n.ant-select-selection-overflow-item {\n flex: none;\n align-self: center;\n max-width: 100%;\n}\n.ant-select-multiple .ant-select-selector {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: 1px 4px;\n}\n.ant-select-show-search.ant-select-multiple .ant-select-selector {\n cursor: text;\n}\n.ant-select-disabled.ant-select-multiple .ant-select-selector {\n background: #f5f5f5;\n cursor: not-allowed;\n}\n.ant-select-multiple .ant-select-selector::after {\n display: inline-block;\n width: 0;\n margin: 2px 0;\n line-height: 24px;\n visibility: hidden;\n content: '\\a0';\n}\n.ant-select-multiple.ant-select-show-arrow .ant-select-selector,\n.ant-select-multiple.ant-select-allow-clear .ant-select-selector {\n padding-right: 24px;\n}\n.ant-select-multiple .ant-select-selection-item {\n position: relative;\n display: flex;\n flex: none;\n box-sizing: border-box;\n max-width: 100%;\n height: 24px;\n margin-top: 2px;\n margin-bottom: 2px;\n line-height: 22px;\n background: #f5f5f5;\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n cursor: default;\n transition: font-size 0.3s, line-height 0.3s, height 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n margin-inline-end: 4px;\n padding-inline-start: 8px;\n padding-inline-end: 4px;\n}\n.ant-select-disabled.ant-select-multiple .ant-select-selection-item {\n color: #bfbfbf;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-select-multiple .ant-select-selection-item-content {\n display: inline-block;\n margin-right: 4px;\n overflow: hidden;\n white-space: pre;\n text-overflow: ellipsis;\n}\n.ant-select-multiple .ant-select-selection-item-remove {\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n display: inline-flex;\n align-items: center;\n color: rgba(0, 0, 0, 0.45);\n font-weight: bold;\n font-size: 10px;\n line-height: inherit;\n cursor: pointer;\n}\n.ant-select-multiple .ant-select-selection-item-remove > * {\n line-height: 1;\n}\n.ant-select-multiple .ant-select-selection-item-remove svg {\n display: inline-block;\n}\n.ant-select-multiple .ant-select-selection-item-remove::before {\n display: none;\n}\n.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon {\n display: block;\n}\n.ant-select-multiple .ant-select-selection-item-remove > .anticon {\n vertical-align: middle;\n}\n.ant-select-multiple .ant-select-selection-item-remove:hover {\n color: rgba(0, 0, 0, 0.75);\n}\n.ant-select-multiple .ant-select-selection-overflow-item + .ant-select-selection-overflow-item .ant-select-selection-search {\n margin-inline-start: 0;\n}\n.ant-select-multiple .ant-select-selection-search {\n position: relative;\n max-width: 100%;\n margin-inline-start: 7px;\n}\n.ant-select-multiple .ant-select-selection-search-input,\n.ant-select-multiple .ant-select-selection-search-mirror {\n height: 24px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n line-height: 24px;\n transition: all 0.3s;\n}\n.ant-select-multiple .ant-select-selection-search-input {\n width: 100%;\n min-width: 4.1px;\n}\n.ant-select-multiple .ant-select-selection-search-mirror {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 999;\n white-space: pre;\n visibility: hidden;\n}\n.ant-select-multiple .ant-select-selection-placeholder {\n position: absolute;\n top: 50%;\n right: 11px;\n left: 11px;\n transform: translateY(-50%);\n transition: all 0.3s;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selector::after {\n line-height: 32px;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selection-item {\n height: 32px;\n line-height: 30px;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selection-search {\n height: 32px;\n line-height: 32px;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,\n.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror {\n height: 32px;\n line-height: 30px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selector::after {\n line-height: 16px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-item {\n height: 16px;\n line-height: 14px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-search {\n height: 16px;\n line-height: 16px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,\n.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror {\n height: 16px;\n line-height: 14px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder {\n left: 7px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-search {\n margin-inline-start: 3px;\n}\n.ant-select-disabled .ant-select-selection-item-remove {\n display: none;\n}\n.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector {\n background-color: #fff;\n border-color: #ff4d4f !important;\n}\n.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-open .ant-select-selector,\n.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-focused .ant-select-selector {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector {\n background-color: #fff;\n border-color: #faad14 !important;\n}\n.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-open .ant-select-selector,\n.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-focused .ant-select-selector {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-select-status-error.ant-select-has-feedback .ant-select-clear,\n.ant-select-status-warning.ant-select-has-feedback .ant-select-clear,\n.ant-select-status-success.ant-select-has-feedback .ant-select-clear,\n.ant-select-status-validating.ant-select-has-feedback .ant-select-clear {\n right: 32px;\n}\n.ant-select-status-error.ant-select-has-feedback .ant-select-selection-selected-value,\n.ant-select-status-warning.ant-select-has-feedback .ant-select-selection-selected-value,\n.ant-select-status-success.ant-select-has-feedback .ant-select-selection-selected-value,\n.ant-select-status-validating.ant-select-has-feedback .ant-select-selection-selected-value {\n padding-right: 42px;\n}\n/* Reset search input style */\n.ant-select {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n cursor: pointer;\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n position: relative;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector input {\n cursor: pointer;\n}\n.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n cursor: text;\n}\n.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input {\n cursor: auto;\n}\n.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n color: rgba(0, 0, 0, 0.25);\n background: #f5f5f5;\n cursor: not-allowed;\n}\n.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n background: #f5f5f5;\n}\n.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input {\n cursor: not-allowed;\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {\n margin: 0;\n padding: 0;\n background: transparent;\n border: none;\n outline: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button {\n display: none;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n}\n.ant-select:not(.ant-select-disabled):hover .ant-select-selector {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-select-selection-item {\n flex: 1;\n overflow: hidden;\n font-weight: normal;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n@media all and (-ms-high-contrast: none) {\n .ant-select-selection-item *::-ms-backdrop,\n .ant-select-selection-item {\n flex: auto;\n }\n}\n.ant-select-selection-placeholder {\n flex: 1;\n overflow: hidden;\n color: #bfbfbf;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n@media all and (-ms-high-contrast: none) {\n .ant-select-selection-placeholder *::-ms-backdrop,\n .ant-select-selection-placeholder {\n flex: auto;\n }\n}\n.ant-select-arrow {\n display: inline-flex;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n position: absolute;\n top: 50%;\n right: 11px;\n display: flex;\n align-items: center;\n height: 12px;\n margin-top: -6px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 12px;\n line-height: 1;\n text-align: center;\n pointer-events: none;\n}\n.ant-select-arrow > * {\n line-height: 1;\n}\n.ant-select-arrow svg {\n display: inline-block;\n}\n.ant-select-arrow::before {\n display: none;\n}\n.ant-select-arrow .ant-select-arrow-icon {\n display: block;\n}\n.ant-select-arrow .anticon {\n vertical-align: top;\n transition: transform 0.3s;\n}\n.ant-select-arrow .anticon > svg {\n vertical-align: top;\n}\n.ant-select-arrow .anticon:not(.ant-select-suffix) {\n pointer-events: auto;\n}\n.ant-select-disabled .ant-select-arrow {\n cursor: not-allowed;\n}\n.ant-select-arrow > *:not(:last-child) {\n margin-inline-end: 8px;\n}\n.ant-select-clear {\n position: absolute;\n top: 50%;\n right: 11px;\n z-index: 1;\n display: inline-block;\n width: 12px;\n height: 12px;\n margin-top: -6px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 12px;\n font-style: normal;\n line-height: 1;\n text-align: center;\n text-transform: none;\n background: #fff;\n cursor: pointer;\n opacity: 0;\n transition: color 0.3s ease, opacity 0.15s ease;\n text-rendering: auto;\n}\n.ant-select-clear::before {\n display: block;\n}\n.ant-select-clear:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-select:hover .ant-select-clear {\n opacity: 1;\n}\n.ant-select-dropdown {\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n box-sizing: border-box;\n padding: 4px 0;\n overflow: hidden;\n font-size: 14px;\n font-variant: initial;\n background-color: #fff;\n border-radius: 2px;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft,\n.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft {\n animation-name: antSlideUpIn;\n}\n.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft,\n.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft {\n animation-name: antSlideDownIn;\n}\n.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft {\n animation-name: antSlideUpOut;\n}\n.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft {\n animation-name: antSlideDownOut;\n}\n.ant-select-dropdown-hidden {\n display: none;\n}\n.ant-select-dropdown-empty {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-select-item-empty {\n position: relative;\n display: block;\n min-height: 32px;\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 22px;\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-select-item {\n position: relative;\n display: block;\n min-height: 32px;\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 22px;\n cursor: pointer;\n transition: background 0.3s ease;\n}\n.ant-select-item-group {\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n cursor: default;\n}\n.ant-select-item-option {\n display: flex;\n}\n.ant-select-item-option-content {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-select-item-option-state {\n flex: none;\n}\n.ant-select-item-option-active:not(.ant-select-item-option-disabled) {\n background-color: #f5f5f5;\n}\n.ant-select-item-option-selected:not(.ant-select-item-option-disabled) {\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n background-color: #e6f7ff;\n}\n.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state {\n color: #1890ff;\n}\n.ant-select-item-option-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-select-item-option-disabled.ant-select-item-option-selected {\n background-color: #f5f5f5;\n}\n.ant-select-item-option-grouped {\n padding-left: 24px;\n}\n.ant-select-lg {\n font-size: 16px;\n}\n.ant-select-borderless .ant-select-selector {\n background-color: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n}\n.ant-select.ant-select-in-form-item {\n width: 100%;\n}\n.ant-select-compact-item:not(.ant-select-compact-last-item) {\n margin-right: -1px;\n}\n.ant-select-compact-item:not(.ant-select-compact-last-item).ant-select-compact-item-rtl {\n margin-right: 0;\n margin-left: -1px;\n}\n.ant-select-compact-item:hover > *,\n.ant-select-compact-item:focus > *,\n.ant-select-compact-item:active > * {\n z-index: 2;\n}\n.ant-select-compact-item.ant-select-focused > * {\n z-index: 2;\n}\n.ant-select-compact-item[disabled] > * {\n z-index: 0;\n}\n.ant-select-compact-item:not(.ant-select-compact-first-item):not(.ant-select-compact-last-item).ant-select > .ant-select-selector {\n border-radius: 0;\n}\n.ant-select-compact-item.ant-select-compact-first-item.ant-select:not(.ant-select-compact-last-item):not(.ant-select-compact-item-rtl) > .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-select-compact-item.ant-select-compact-last-item.ant-select:not(.ant-select-compact-first-item):not(.ant-select-compact-item-rtl) > .ant-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-select-compact-item.ant-select.ant-select-compact-first-item.ant-select-compact-item-rtl:not(.ant-select-compact-last-item) > .ant-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-select-compact-item.ant-select.ant-select-compact-last-item.ant-select-compact-item-rtl:not(.ant-select-compact-first-item) > .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-select-rtl {\n direction: rtl;\n}\n.ant-select-rtl .ant-select-arrow {\n right: initial;\n left: 11px;\n}\n.ant-select-rtl .ant-select-clear {\n right: initial;\n left: 11px;\n}\n.ant-select-dropdown-rtl {\n direction: rtl;\n}\n.ant-select-dropdown-rtl .ant-select-item-option-grouped {\n padding-right: 24px;\n padding-left: 12px;\n}\n.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector,\n.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector {\n padding-right: 4px;\n padding-left: 24px;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-item {\n text-align: right;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content {\n margin-right: 0;\n margin-left: 4px;\n text-align: right;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror {\n right: 0;\n left: auto;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder {\n right: 11px;\n left: auto;\n}\n.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder {\n right: 7px;\n}\n.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,\n.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder {\n right: 0;\n left: 9px;\n text-align: right;\n}\n.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search {\n right: 11px;\n left: 25px;\n}\n.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,\n.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 0;\n padding-left: 18px;\n}\n.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search {\n right: 6px;\n}\n.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,\n.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 0;\n padding-left: 21px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-empty {\n margin: 0 8px;\n font-size: 14px;\n line-height: 1.5715;\n text-align: center;\n}\n.ant-empty-image {\n height: 100px;\n margin-bottom: 8px;\n}\n.ant-empty-image img {\n height: 100%;\n}\n.ant-empty-image svg {\n height: 100%;\n margin: auto;\n}\n.ant-empty-footer {\n margin-top: 16px;\n}\n.ant-empty-normal {\n margin: 32px 0;\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-empty-normal .ant-empty-image {\n height: 40px;\n}\n.ant-empty-small {\n margin: 8px 0;\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-empty-small .ant-empty-image {\n height: 35px;\n}\n.ant-empty-img-default-ellipse {\n fill: #f5f5f5;\n fill-opacity: 0.8;\n}\n.ant-empty-img-default-path-1 {\n fill: #aeb8c2;\n}\n.ant-empty-img-default-path-2 {\n fill: url('#linearGradient-1');\n}\n.ant-empty-img-default-path-3 {\n fill: #f5f5f7;\n}\n.ant-empty-img-default-path-4 {\n fill: #dce0e6;\n}\n.ant-empty-img-default-path-5 {\n fill: #dce0e6;\n}\n.ant-empty-img-default-g {\n fill: #fff;\n}\n.ant-empty-img-simple-ellipse {\n fill: #f5f5f5;\n}\n.ant-empty-img-simple-g {\n stroke: #d9d9d9;\n}\n.ant-empty-img-simple-path {\n fill: #fafafa;\n}\n.ant-empty-rtl {\n direction: rtl;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-avatar {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n overflow: hidden;\n color: #fff;\n white-space: nowrap;\n text-align: center;\n vertical-align: middle;\n background: #ccc;\n width: 32px;\n height: 32px;\n line-height: 32px;\n border-radius: 50%;\n}\n.ant-avatar-image {\n background: transparent;\n}\n.ant-avatar .ant-image-img {\n display: block;\n}\n.ant-avatar-string {\n position: absolute;\n left: 50%;\n transform-origin: 0 center;\n}\n.ant-avatar.ant-avatar-icon {\n font-size: 18px;\n}\n.ant-avatar.ant-avatar-icon > .anticon {\n margin: 0;\n}\n.ant-avatar-lg {\n width: 40px;\n height: 40px;\n line-height: 40px;\n border-radius: 50%;\n}\n.ant-avatar-lg-string {\n position: absolute;\n left: 50%;\n transform-origin: 0 center;\n}\n.ant-avatar-lg.ant-avatar-icon {\n font-size: 24px;\n}\n.ant-avatar-lg.ant-avatar-icon > .anticon {\n margin: 0;\n}\n.ant-avatar-sm {\n width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 50%;\n}\n.ant-avatar-sm-string {\n position: absolute;\n left: 50%;\n transform-origin: 0 center;\n}\n.ant-avatar-sm.ant-avatar-icon {\n font-size: 14px;\n}\n.ant-avatar-sm.ant-avatar-icon > .anticon {\n margin: 0;\n}\n.ant-avatar-square {\n border-radius: 2px;\n}\n.ant-avatar > img {\n display: block;\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.ant-avatar-group {\n display: inline-flex;\n}\n.ant-avatar-group .ant-avatar {\n border: 1px solid #fff;\n}\n.ant-avatar-group .ant-avatar:not(:first-child) {\n margin-left: -8px;\n}\n.ant-avatar-group-popover .ant-avatar + .ant-avatar {\n margin-left: 3px;\n}\n.ant-avatar-group-rtl .ant-avatar:not(:first-child) {\n margin-right: -8px;\n margin-left: 0;\n}\n.ant-avatar-group-popover.ant-popover-rtl .ant-avatar + .ant-avatar {\n margin-right: 3px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-popover {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1030;\n max-width: 100vw;\n font-weight: normal;\n white-space: normal;\n text-align: left;\n cursor: auto;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n}\n.ant-popover-content {\n position: relative;\n}\n.ant-popover::after {\n position: absolute;\n background: rgba(255, 255, 255, 0.01);\n content: '';\n}\n.ant-popover-hidden {\n display: none;\n}\n.ant-popover-placement-top,\n.ant-popover-placement-topLeft,\n.ant-popover-placement-topRight {\n padding-bottom: 15.3137085px;\n}\n.ant-popover-placement-right,\n.ant-popover-placement-rightTop,\n.ant-popover-placement-rightBottom {\n padding-left: 15.3137085px;\n}\n.ant-popover-placement-bottom,\n.ant-popover-placement-bottomLeft,\n.ant-popover-placement-bottomRight {\n padding-top: 15.3137085px;\n}\n.ant-popover-placement-left,\n.ant-popover-placement-leftTop,\n.ant-popover-placement-leftBottom {\n padding-right: 15.3137085px;\n}\n.ant-popover-inner {\n background-color: #fff;\n background-clip: padding-box;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .ant-popover {\n /* IE10+ */\n }\n .ant-popover-inner {\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n }\n}\n.ant-popover-title {\n min-width: 177px;\n min-height: 32px;\n margin: 0;\n padding: 5px 16px 4px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-popover-inner-content {\n width: -moz-max-content;\n width: max-content;\n max-width: 100%;\n padding: 12px 16px;\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-popover-message {\n display: flex;\n padding: 4px 0 12px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-popover-message-icon {\n display: inline-block;\n margin-right: 8px;\n color: #faad14;\n font-size: 14px;\n}\n.ant-popover-buttons {\n margin-bottom: 4px;\n text-align: right;\n}\n.ant-popover-buttons button:not(:first-child) {\n margin-left: 8px;\n}\n.ant-popover-arrow {\n position: absolute;\n display: block;\n width: 22px;\n height: 22px;\n overflow: hidden;\n background: transparent;\n pointer-events: none;\n}\n.ant-popover-arrow-content {\n --antd-arrow-background-color: #fff;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n width: 11.3137085px;\n height: 11.3137085px;\n margin: auto;\n content: '';\n pointer-events: auto;\n border-radius: 0 0 2px;\n pointer-events: none;\n}\n.ant-popover-arrow-content::before {\n position: absolute;\n top: -11.3137085px;\n left: -11.3137085px;\n width: 33.9411255px;\n height: 33.9411255px;\n background: var(--antd-arrow-background-color);\n background-repeat: no-repeat;\n background-position: -10px -10px;\n content: '';\n -webkit-clip-path: inset(33% 33%);\n clip-path: inset(33% 33%);\n -webkit-clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n}\n.ant-popover-placement-top .ant-popover-arrow,\n.ant-popover-placement-topLeft .ant-popover-arrow,\n.ant-popover-placement-topRight .ant-popover-arrow {\n bottom: 0;\n transform: translateY(100%);\n}\n.ant-popover-placement-top .ant-popover-arrow-content,\n.ant-popover-placement-topLeft .ant-popover-arrow-content,\n.ant-popover-placement-topRight .ant-popover-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateY(-11px) rotate(45deg);\n}\n.ant-popover-placement-top .ant-popover-arrow {\n left: 50%;\n transform: translateY(100%) translateX(-50%);\n}\n.ant-popover-placement-topLeft .ant-popover-arrow {\n left: 16px;\n}\n.ant-popover-placement-topRight .ant-popover-arrow {\n right: 16px;\n}\n.ant-popover-placement-right .ant-popover-arrow,\n.ant-popover-placement-rightTop .ant-popover-arrow,\n.ant-popover-placement-rightBottom .ant-popover-arrow {\n left: 0;\n transform: translateX(-100%);\n}\n.ant-popover-placement-right .ant-popover-arrow-content,\n.ant-popover-placement-rightTop .ant-popover-arrow-content,\n.ant-popover-placement-rightBottom .ant-popover-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(11px) rotate(135deg);\n}\n.ant-popover-placement-right .ant-popover-arrow {\n top: 50%;\n transform: translateX(-100%) translateY(-50%);\n}\n.ant-popover-placement-rightTop .ant-popover-arrow {\n top: 12px;\n}\n.ant-popover-placement-rightBottom .ant-popover-arrow {\n bottom: 12px;\n}\n.ant-popover-placement-bottom .ant-popover-arrow,\n.ant-popover-placement-bottomLeft .ant-popover-arrow,\n.ant-popover-placement-bottomRight .ant-popover-arrow {\n top: 0;\n transform: translateY(-100%);\n}\n.ant-popover-placement-bottom .ant-popover-arrow-content,\n.ant-popover-placement-bottomLeft .ant-popover-arrow-content,\n.ant-popover-placement-bottomRight .ant-popover-arrow-content {\n box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.06);\n transform: translateY(11px) rotate(-135deg);\n}\n.ant-popover-placement-bottom .ant-popover-arrow {\n left: 50%;\n transform: translateY(-100%) translateX(-50%);\n}\n.ant-popover-placement-bottomLeft .ant-popover-arrow {\n left: 16px;\n}\n.ant-popover-placement-bottomRight .ant-popover-arrow {\n right: 16px;\n}\n.ant-popover-placement-left .ant-popover-arrow,\n.ant-popover-placement-leftTop .ant-popover-arrow,\n.ant-popover-placement-leftBottom .ant-popover-arrow {\n right: 0;\n transform: translateX(100%);\n}\n.ant-popover-placement-left .ant-popover-arrow-content,\n.ant-popover-placement-leftTop .ant-popover-arrow-content,\n.ant-popover-placement-leftBottom .ant-popover-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(-11px) rotate(-45deg);\n}\n.ant-popover-placement-left .ant-popover-arrow {\n top: 50%;\n transform: translateX(100%) translateY(-50%);\n}\n.ant-popover-placement-leftTop .ant-popover-arrow {\n top: 12px;\n}\n.ant-popover-placement-leftBottom .ant-popover-arrow {\n bottom: 12px;\n}\n.ant-popover-pink .ant-popover-inner {\n background-color: #eb2f96;\n}\n.ant-popover-pink .ant-popover-arrow-content {\n background-color: #eb2f96;\n}\n.ant-popover-magenta .ant-popover-inner {\n background-color: #eb2f96;\n}\n.ant-popover-magenta .ant-popover-arrow-content {\n background-color: #eb2f96;\n}\n.ant-popover-red .ant-popover-inner {\n background-color: #f5222d;\n}\n.ant-popover-red .ant-popover-arrow-content {\n background-color: #f5222d;\n}\n.ant-popover-volcano .ant-popover-inner {\n background-color: #fa541c;\n}\n.ant-popover-volcano .ant-popover-arrow-content {\n background-color: #fa541c;\n}\n.ant-popover-orange .ant-popover-inner {\n background-color: #fa8c16;\n}\n.ant-popover-orange .ant-popover-arrow-content {\n background-color: #fa8c16;\n}\n.ant-popover-yellow .ant-popover-inner {\n background-color: #fadb14;\n}\n.ant-popover-yellow .ant-popover-arrow-content {\n background-color: #fadb14;\n}\n.ant-popover-gold .ant-popover-inner {\n background-color: #faad14;\n}\n.ant-popover-gold .ant-popover-arrow-content {\n background-color: #faad14;\n}\n.ant-popover-cyan .ant-popover-inner {\n background-color: #13c2c2;\n}\n.ant-popover-cyan .ant-popover-arrow-content {\n background-color: #13c2c2;\n}\n.ant-popover-lime .ant-popover-inner {\n background-color: #a0d911;\n}\n.ant-popover-lime .ant-popover-arrow-content {\n background-color: #a0d911;\n}\n.ant-popover-green .ant-popover-inner {\n background-color: #52c41a;\n}\n.ant-popover-green .ant-popover-arrow-content {\n background-color: #52c41a;\n}\n.ant-popover-blue .ant-popover-inner {\n background-color: #1890ff;\n}\n.ant-popover-blue .ant-popover-arrow-content {\n background-color: #1890ff;\n}\n.ant-popover-geekblue .ant-popover-inner {\n background-color: #2f54eb;\n}\n.ant-popover-geekblue .ant-popover-arrow-content {\n background-color: #2f54eb;\n}\n.ant-popover-purple .ant-popover-inner {\n background-color: #722ed1;\n}\n.ant-popover-purple .ant-popover-arrow-content {\n background-color: #722ed1;\n}\n.ant-popover-rtl {\n direction: rtl;\n text-align: right;\n}\n.ant-popover-rtl .ant-popover-message-icon {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-popover-rtl .ant-popover-message-title {\n padding-left: 16px;\n}\n.ant-popover-rtl .ant-popover-buttons {\n text-align: left;\n}\n.ant-popover-rtl .ant-popover-buttons button {\n margin-right: 8px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-back-top {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: fixed;\n right: 100px;\n bottom: 50px;\n z-index: 10;\n width: 40px;\n height: 40px;\n cursor: pointer;\n}\n.ant-back-top:empty {\n display: none;\n}\n.ant-back-top-rtl {\n right: auto;\n left: 100px;\n direction: rtl;\n}\n.ant-back-top-content {\n width: 40px;\n height: 40px;\n overflow: hidden;\n color: #fff;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.45);\n border-radius: 20px;\n transition: all 0.3s;\n}\n.ant-back-top-content:hover {\n background-color: rgba(0, 0, 0, 0.85);\n transition: all 0.3s;\n}\n.ant-back-top-icon {\n font-size: 24px;\n line-height: 40px;\n}\n@media screen and (max-width: 768px) {\n .ant-back-top {\n right: 60px;\n }\n .ant-back-top-rtl {\n right: auto;\n left: 60px;\n }\n}\n@media screen and (max-width: 480px) {\n .ant-back-top {\n right: 20px;\n }\n .ant-back-top-rtl {\n right: auto;\n left: 20px;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-badge {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n line-height: 1;\n}\n.ant-badge-count {\n z-index: auto;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n color: #fff;\n font-weight: normal;\n font-size: 12px;\n line-height: 20px;\n white-space: nowrap;\n text-align: center;\n background: #ff4d4f;\n border-radius: 10px;\n box-shadow: 0 0 0 1px #fff;\n}\n.ant-badge-count a,\n.ant-badge-count a:hover {\n color: #fff;\n}\n.ant-badge-count-sm {\n min-width: 14px;\n height: 14px;\n padding: 0;\n font-size: 12px;\n line-height: 14px;\n border-radius: 7px;\n}\n.ant-badge-multiple-words {\n padding: 0 8px;\n}\n.ant-badge-dot {\n z-index: auto;\n width: 6px;\n min-width: 6px;\n height: 6px;\n background: #ff4d4f;\n border-radius: 100%;\n box-shadow: 0 0 0 1px #fff;\n}\n.ant-badge-dot.ant-scroll-number {\n transition: background 1.5s;\n}\n.ant-badge-count,\n.ant-badge-dot,\n.ant-badge .ant-scroll-number-custom-component {\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n transform-origin: 100% 0%;\n}\n.ant-badge-count.anticon-spin,\n.ant-badge-dot.anticon-spin,\n.ant-badge .ant-scroll-number-custom-component.anticon-spin {\n animation: antBadgeLoadingCircle 1s infinite linear;\n}\n.ant-badge-status {\n line-height: inherit;\n vertical-align: baseline;\n}\n.ant-badge-status-dot {\n position: relative;\n top: -1px;\n display: inline-block;\n width: 6px;\n height: 6px;\n vertical-align: middle;\n border-radius: 50%;\n}\n.ant-badge-status-success {\n background-color: #52c41a;\n}\n.ant-badge-status-processing {\n position: relative;\n background-color: #1890ff;\n}\n.ant-badge-status-processing::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 50%;\n animation: antStatusProcessing 1.2s infinite ease-in-out;\n content: '';\n}\n.ant-badge-status-default {\n background-color: #d9d9d9;\n}\n.ant-badge-status-error {\n background-color: #ff4d4f;\n}\n.ant-badge-status-warning {\n background-color: #faad14;\n}\n.ant-badge-status-pink {\n background: #eb2f96;\n}\n.ant-badge-status-magenta {\n background: #eb2f96;\n}\n.ant-badge-status-red {\n background: #f5222d;\n}\n.ant-badge-status-volcano {\n background: #fa541c;\n}\n.ant-badge-status-orange {\n background: #fa8c16;\n}\n.ant-badge-status-yellow {\n background: #fadb14;\n}\n.ant-badge-status-gold {\n background: #faad14;\n}\n.ant-badge-status-cyan {\n background: #13c2c2;\n}\n.ant-badge-status-lime {\n background: #a0d911;\n}\n.ant-badge-status-green {\n background: #52c41a;\n}\n.ant-badge-status-blue {\n background: #1890ff;\n}\n.ant-badge-status-geekblue {\n background: #2f54eb;\n}\n.ant-badge-status-purple {\n background: #722ed1;\n}\n.ant-badge-status-text {\n margin-left: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-badge-zoom-appear,\n.ant-badge-zoom-enter {\n animation: antZoomBadgeIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\n animation-fill-mode: both;\n}\n.ant-badge-zoom-leave {\n animation: antZoomBadgeOut 0.3s cubic-bezier(0.71, -0.46, 0.88, 0.6);\n animation-fill-mode: both;\n}\n.ant-badge-not-a-wrapper .ant-badge-zoom-appear,\n.ant-badge-not-a-wrapper .ant-badge-zoom-enter {\n animation: antNoWrapperZoomBadgeIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\n}\n.ant-badge-not-a-wrapper .ant-badge-zoom-leave {\n animation: antNoWrapperZoomBadgeOut 0.3s cubic-bezier(0.71, -0.46, 0.88, 0.6);\n}\n.ant-badge-not-a-wrapper:not(.ant-badge-status) {\n vertical-align: middle;\n}\n.ant-badge-not-a-wrapper .ant-scroll-number-custom-component,\n.ant-badge-not-a-wrapper .ant-badge-count {\n transform: none;\n}\n.ant-badge-not-a-wrapper .ant-scroll-number-custom-component,\n.ant-badge-not-a-wrapper .ant-scroll-number {\n position: relative;\n top: auto;\n display: block;\n transform-origin: 50% 50%;\n}\n@keyframes antStatusProcessing {\n 0% {\n transform: scale(0.8);\n opacity: 0.5;\n }\n 100% {\n transform: scale(2.4);\n opacity: 0;\n }\n}\n.ant-scroll-number {\n overflow: hidden;\n direction: ltr;\n}\n.ant-scroll-number-only {\n position: relative;\n display: inline-block;\n height: 20px;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n /* stylelint-disable property-no-vendor-prefix */\n -webkit-transform-style: preserve-3d;\n -webkit-backface-visibility: hidden;\n /* stylelint-enable property-no-vendor-prefix */\n}\n.ant-scroll-number-only > p.ant-scroll-number-only-unit {\n height: 20px;\n margin: 0;\n /* stylelint-disable property-no-vendor-prefix */\n -webkit-transform-style: preserve-3d;\n -webkit-backface-visibility: hidden;\n /* stylelint-enable property-no-vendor-prefix */\n}\n.ant-scroll-number-symbol {\n vertical-align: top;\n}\n@keyframes antZoomBadgeIn {\n 0% {\n transform: scale(0) translate(50%, -50%);\n opacity: 0;\n }\n 100% {\n transform: scale(1) translate(50%, -50%);\n }\n}\n@keyframes antZoomBadgeOut {\n 0% {\n transform: scale(1) translate(50%, -50%);\n }\n 100% {\n transform: scale(0) translate(50%, -50%);\n opacity: 0;\n }\n}\n@keyframes antNoWrapperZoomBadgeIn {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n }\n}\n@keyframes antNoWrapperZoomBadgeOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0);\n opacity: 0;\n }\n}\n@keyframes antBadgeLoadingCircle {\n 0% {\n transform-origin: 50%;\n }\n 100% {\n transform: translate(50%, -50%) rotate(360deg);\n transform-origin: 50%;\n }\n}\n.ant-ribbon-wrapper {\n position: relative;\n}\n.ant-ribbon {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: 8px;\n height: 22px;\n padding: 0 8px;\n color: #fff;\n line-height: 22px;\n white-space: nowrap;\n background-color: #1890ff;\n border-radius: 2px;\n}\n.ant-ribbon-text {\n color: #fff;\n}\n.ant-ribbon-corner {\n position: absolute;\n top: 100%;\n width: 8px;\n height: 8px;\n color: currentcolor;\n border: 4px solid;\n transform: scaleY(0.75);\n transform-origin: top;\n}\n.ant-ribbon-corner::after {\n position: absolute;\n top: -4px;\n left: -4px;\n width: inherit;\n height: inherit;\n color: rgba(0, 0, 0, 0.25);\n border: inherit;\n content: '';\n}\n.ant-ribbon-color-pink {\n color: #eb2f96;\n background: #eb2f96;\n}\n.ant-ribbon-color-magenta {\n color: #eb2f96;\n background: #eb2f96;\n}\n.ant-ribbon-color-red {\n color: #f5222d;\n background: #f5222d;\n}\n.ant-ribbon-color-volcano {\n color: #fa541c;\n background: #fa541c;\n}\n.ant-ribbon-color-orange {\n color: #fa8c16;\n background: #fa8c16;\n}\n.ant-ribbon-color-yellow {\n color: #fadb14;\n background: #fadb14;\n}\n.ant-ribbon-color-gold {\n color: #faad14;\n background: #faad14;\n}\n.ant-ribbon-color-cyan {\n color: #13c2c2;\n background: #13c2c2;\n}\n.ant-ribbon-color-lime {\n color: #a0d911;\n background: #a0d911;\n}\n.ant-ribbon-color-green {\n color: #52c41a;\n background: #52c41a;\n}\n.ant-ribbon-color-blue {\n color: #1890ff;\n background: #1890ff;\n}\n.ant-ribbon-color-geekblue {\n color: #2f54eb;\n background: #2f54eb;\n}\n.ant-ribbon-color-purple {\n color: #722ed1;\n background: #722ed1;\n}\n.ant-ribbon.ant-ribbon-placement-end {\n right: -8px;\n border-bottom-right-radius: 0;\n}\n.ant-ribbon.ant-ribbon-placement-end .ant-ribbon-corner {\n right: 0;\n border-color: currentcolor transparent transparent currentcolor;\n}\n.ant-ribbon.ant-ribbon-placement-start {\n left: -8px;\n border-bottom-left-radius: 0;\n}\n.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner {\n left: 0;\n border-color: currentcolor currentcolor transparent transparent;\n}\n.ant-badge-rtl {\n direction: rtl;\n}\n.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-count,\n.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-dot,\n.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component {\n right: auto;\n left: 0;\n direction: ltr;\n transform: translate(-50%, -50%);\n transform-origin: 0% 0%;\n}\n.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component {\n right: auto;\n left: 0;\n transform: translate(-50%, -50%);\n transform-origin: 0% 0%;\n}\n.ant-badge-rtl .ant-badge-status-text {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-badge:not(.ant-badge-not-a-wrapper).ant-badge-rtl .ant-badge-zoom-appear,\n.ant-badge:not(.ant-badge-not-a-wrapper).ant-badge-rtl .ant-badge-zoom-enter {\n animation-name: antZoomBadgeInRtl;\n}\n.ant-badge:not(.ant-badge-not-a-wrapper).ant-badge-rtl .ant-badge-zoom-leave {\n animation-name: antZoomBadgeOutRtl;\n}\n.ant-ribbon-rtl {\n direction: rtl;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-end {\n right: unset;\n left: -8px;\n border-bottom-right-radius: 2px;\n border-bottom-left-radius: 0;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner {\n right: unset;\n left: 0;\n border-color: currentcolor currentcolor transparent transparent;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner::after {\n border-color: currentcolor currentcolor transparent transparent;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-start {\n right: -8px;\n left: unset;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 2px;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner {\n right: 0;\n left: unset;\n border-color: currentcolor transparent transparent currentcolor;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner::after {\n border-color: currentcolor transparent transparent currentcolor;\n}\n@keyframes antZoomBadgeInRtl {\n 0% {\n transform: scale(0) translate(-50%, -50%);\n opacity: 0;\n }\n 100% {\n transform: scale(1) translate(-50%, -50%);\n }\n}\n@keyframes antZoomBadgeOutRtl {\n 0% {\n transform: scale(1) translate(-50%, -50%);\n }\n 100% {\n transform: scale(0) translate(-50%, -50%);\n opacity: 0;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-breadcrumb {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-breadcrumb .anticon {\n font-size: 14px;\n}\n.ant-breadcrumb ol {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-breadcrumb a {\n color: rgba(0, 0, 0, 0.45);\n transition: color 0.3s;\n}\n.ant-breadcrumb a:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-breadcrumb li:last-child {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-breadcrumb li:last-child a {\n color: rgba(0, 0, 0, 0.85);\n}\nli:last-child > .ant-breadcrumb-separator {\n display: none;\n}\n.ant-breadcrumb-separator {\n margin: 0 8px;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-breadcrumb-link > .anticon + span,\n.ant-breadcrumb-link > .anticon + a {\n margin-left: 4px;\n}\n.ant-breadcrumb-overlay-link > .anticon {\n margin-left: 4px;\n}\n.ant-breadcrumb-rtl {\n direction: rtl;\n}\n.ant-breadcrumb-rtl::before {\n display: table;\n content: '';\n}\n.ant-breadcrumb-rtl::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-breadcrumb-rtl > span {\n float: right;\n}\n.ant-breadcrumb-rtl .ant-breadcrumb-link > .anticon + span,\n.ant-breadcrumb-rtl .ant-breadcrumb-link > .anticon + a {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link > .anticon {\n margin-right: 4px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-dropdown-menu-item.ant-dropdown-menu-item-danger {\n color: #ff4d4f;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover {\n color: #fff;\n background-color: #ff4d4f;\n}\n.ant-dropdown {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n display: block;\n}\n.ant-dropdown::before {\n position: absolute;\n top: -4px;\n right: 0;\n bottom: -4px;\n left: -7px;\n z-index: -9999;\n opacity: 0.0001;\n content: ' ';\n}\n.ant-dropdown-wrap {\n position: relative;\n}\n.ant-dropdown-wrap .ant-btn > .anticon-down {\n font-size: 10px;\n}\n.ant-dropdown-wrap .anticon-down::before {\n transition: transform 0.2s;\n}\n.ant-dropdown-wrap-open .anticon-down::before {\n transform: rotate(180deg);\n}\n.ant-dropdown-hidden,\n.ant-dropdown-menu-hidden,\n.ant-dropdown-menu-submenu-hidden {\n display: none;\n}\n.ant-dropdown-show-arrow.ant-dropdown-placement-topLeft,\n.ant-dropdown-show-arrow.ant-dropdown-placement-top,\n.ant-dropdown-show-arrow.ant-dropdown-placement-topRight {\n padding-bottom: 15.3137085px;\n}\n.ant-dropdown-show-arrow.ant-dropdown-placement-bottomLeft,\n.ant-dropdown-show-arrow.ant-dropdown-placement-bottom,\n.ant-dropdown-show-arrow.ant-dropdown-placement-bottomRight {\n padding-top: 15.3137085px;\n}\n.ant-dropdown-arrow {\n position: absolute;\n z-index: 1;\n display: block;\n width: 11.3137085px;\n height: 11.3137085px;\n border-radius: 0 0 2px;\n pointer-events: none;\n}\n.ant-dropdown-arrow::before {\n position: absolute;\n top: -11.3137085px;\n left: -11.3137085px;\n width: 33.9411255px;\n height: 33.9411255px;\n background: #fff;\n background-repeat: no-repeat;\n background-position: -10px -10px;\n content: '';\n -webkit-clip-path: inset(33% 33%);\n clip-path: inset(33% 33%);\n -webkit-clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n}\n.ant-dropdown-placement-top > .ant-dropdown-arrow,\n.ant-dropdown-placement-topLeft > .ant-dropdown-arrow,\n.ant-dropdown-placement-topRight > .ant-dropdown-arrow {\n bottom: 10px;\n box-shadow: 3px 3px 7px -3px rgba(0, 0, 0, 0.1);\n transform: rotate(45deg);\n}\n.ant-dropdown-placement-top > .ant-dropdown-arrow {\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n.ant-dropdown-placement-topLeft > .ant-dropdown-arrow {\n left: 16px;\n}\n.ant-dropdown-placement-topRight > .ant-dropdown-arrow {\n right: 16px;\n}\n.ant-dropdown-placement-bottom > .ant-dropdown-arrow,\n.ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow,\n.ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {\n top: 9.41421356px;\n box-shadow: 2px 2px 5px -2px rgba(0, 0, 0, 0.1);\n transform: rotate(-135deg) translateY(-0.5px);\n}\n.ant-dropdown-placement-bottom > .ant-dropdown-arrow {\n left: 50%;\n transform: translateX(-50%) rotate(-135deg) translateY(-0.5px);\n}\n.ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow {\n left: 16px;\n}\n.ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {\n right: 16px;\n}\n.ant-dropdown-menu {\n position: relative;\n margin: 0;\n padding: 4px 0;\n text-align: left;\n list-style-type: none;\n background-color: #fff;\n background-clip: padding-box;\n border-radius: 2px;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-dropdown-menu-item-group-title {\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.45);\n transition: all 0.3s;\n}\n.ant-dropdown-menu-submenu-popup {\n position: absolute;\n z-index: 1050;\n background: transparent;\n box-shadow: none;\n transform-origin: 0 0;\n}\n.ant-dropdown-menu-submenu-popup ul,\n.ant-dropdown-menu-submenu-popup li {\n list-style: none;\n}\n.ant-dropdown-menu-submenu-popup ul {\n margin-right: 0.3em;\n margin-left: 0.3em;\n}\n.ant-dropdown-menu-item {\n position: relative;\n display: flex;\n align-items: center;\n}\n.ant-dropdown-menu-item-icon {\n min-width: 12px;\n margin-right: 8px;\n font-size: 12px;\n}\n.ant-dropdown-menu-title-content {\n flex: auto;\n}\n.ant-dropdown-menu-title-content > a {\n color: inherit;\n transition: all 0.3s;\n}\n.ant-dropdown-menu-title-content > a:hover {\n color: inherit;\n}\n.ant-dropdown-menu-title-content > a::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n content: '';\n}\n.ant-dropdown-menu-item,\n.ant-dropdown-menu-submenu-title {\n clear: both;\n margin: 0;\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 22px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-dropdown-menu-item-selected,\n.ant-dropdown-menu-submenu-title-selected {\n color: #1890ff;\n background-color: #e6f7ff;\n}\n.ant-dropdown-menu-item:hover,\n.ant-dropdown-menu-submenu-title:hover,\n.ant-dropdown-menu-item.ant-dropdown-menu-item-active,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-active,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-active,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-active {\n background-color: #f5f5f5;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled:hover,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled:hover,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled:hover,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n background-color: #fff;\n cursor: not-allowed;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled a,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled a,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled a,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled a {\n pointer-events: none;\n}\n.ant-dropdown-menu-item-divider,\n.ant-dropdown-menu-submenu-title-divider {\n height: 1px;\n margin: 4px 0;\n overflow: hidden;\n line-height: 0;\n background-color: #f0f0f0;\n}\n.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,\n.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon {\n position: absolute;\n right: 8px;\n}\n.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,\n.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon {\n margin-right: 0 !important;\n color: rgba(0, 0, 0, 0.45);\n font-size: 10px;\n font-style: normal;\n}\n.ant-dropdown-menu-item-group-list {\n margin: 0 8px;\n padding: 0;\n list-style: none;\n}\n.ant-dropdown-menu-submenu-title {\n padding-right: 24px;\n}\n.ant-dropdown-menu-submenu-vertical {\n position: relative;\n}\n.ant-dropdown-menu-submenu-vertical > .ant-dropdown-menu {\n position: absolute;\n top: 0;\n left: 100%;\n min-width: 100%;\n margin-left: 4px;\n transform-origin: 0 0;\n}\n.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,\n.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon {\n color: rgba(0, 0, 0, 0.25);\n background-color: #fff;\n cursor: not-allowed;\n}\n.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title {\n color: #1890ff;\n}\n.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,\n.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,\n.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottom,\n.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottom,\n.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight,\n.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight {\n animation-name: antSlideUpIn;\n}\n.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,\n.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,\n.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-top,\n.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-top,\n.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight,\n.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight {\n animation-name: antSlideDownIn;\n}\n.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,\n.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottom,\n.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight {\n animation-name: antSlideUpOut;\n}\n.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,\n.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-top,\n.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight {\n animation-name: antSlideDownOut;\n}\n.ant-dropdown-trigger > .anticon.anticon-down,\n.ant-dropdown-link > .anticon.anticon-down,\n.ant-dropdown-button > .anticon.anticon-down {\n font-size: 10px;\n vertical-align: baseline;\n}\n.ant-dropdown-button {\n white-space: nowrap;\n}\n.ant-dropdown-button.ant-btn-group > .ant-btn-loading,\n.ant-dropdown-button.ant-btn-group > .ant-btn-loading + .ant-btn {\n cursor: default;\n pointer-events: none;\n}\n.ant-dropdown-button.ant-btn-group > .ant-btn-loading + .ant-btn::before {\n display: block;\n}\n.ant-dropdown-button.ant-btn-group > .ant-btn:last-child:not(:first-child):not(.ant-btn-icon-only) {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-dropdown-menu-dark,\n.ant-dropdown-menu-dark .ant-dropdown-menu {\n background: #001529;\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item,\n.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > a,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a {\n color: rgba(255, 255, 255, 0.65);\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow::after,\n.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > a .ant-dropdown-menu-submenu-arrow::after,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a .ant-dropdown-menu-submenu-arrow::after {\n color: rgba(255, 255, 255, 0.65);\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > a:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a:hover {\n color: #fff;\n background: transparent;\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected > a {\n color: #fff;\n background: #1890ff;\n}\n.ant-dropdown-rtl {\n direction: rtl;\n}\n.ant-dropdown-rtl.ant-dropdown::before {\n right: -7px;\n left: 0;\n}\n.ant-dropdown-menu.ant-dropdown-menu-rtl {\n direction: rtl;\n text-align: right;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item-group-title,\n.ant-dropdown-menu-submenu-rtl .ant-dropdown-menu-item-group-title {\n direction: rtl;\n text-align: right;\n}\n.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl {\n transform-origin: 100% 0;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li {\n text-align: right;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title {\n text-align: right;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item > .anticon:first-child,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title > .anticon:first-child,\n.ant-dropdown-rtl .ant-dropdown-menu-item > span > .anticon:first-child,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title > span > .anticon:first-child {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon {\n right: auto;\n left: 8px;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon {\n margin-left: 0 !important;\n transform: scaleX(-1);\n}\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title {\n padding-right: 12px;\n padding-left: 24px;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical > .ant-dropdown-menu {\n right: 100%;\n left: 0;\n margin-right: 4px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-btn {\n line-height: 1.5715;\n position: relative;\n display: inline-block;\n font-weight: 400;\n white-space: nowrap;\n text-align: center;\n background-image: none;\n border: 1px solid transparent;\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: manipulation;\n height: 32px;\n padding: 4px 15px;\n font-size: 14px;\n border-radius: 2px;\n color: rgba(0, 0, 0, 0.85);\n border-color: #d9d9d9;\n background: #fff;\n}\n.ant-btn > .anticon {\n line-height: 1;\n}\n.ant-btn,\n.ant-btn:active,\n.ant-btn:focus {\n outline: 0;\n}\n.ant-btn:not([disabled]):hover {\n text-decoration: none;\n}\n.ant-btn:not([disabled]):active {\n outline: 0;\n box-shadow: none;\n}\n.ant-btn[disabled] {\n cursor: not-allowed;\n}\n.ant-btn[disabled] > * {\n pointer-events: none;\n}\n.ant-btn-lg {\n height: 40px;\n padding: 6.4px 15px;\n font-size: 16px;\n border-radius: 2px;\n}\n.ant-btn-sm {\n height: 24px;\n padding: 0px 7px;\n font-size: 14px;\n border-radius: 2px;\n}\n.ant-btn > a:only-child {\n color: currentcolor;\n}\n.ant-btn > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn:hover,\n.ant-btn:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: #fff;\n}\n.ant-btn:hover > a:only-child,\n.ant-btn:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn:hover > a:only-child::after,\n.ant-btn:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn:active {\n color: #096dd9;\n border-color: #096dd9;\n background: #fff;\n}\n.ant-btn:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn[disabled],\n.ant-btn[disabled]:hover,\n.ant-btn[disabled]:focus,\n.ant-btn[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn[disabled] > a:only-child,\n.ant-btn[disabled]:hover > a:only-child,\n.ant-btn[disabled]:focus > a:only-child,\n.ant-btn[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn[disabled] > a:only-child::after,\n.ant-btn[disabled]:hover > a:only-child::after,\n.ant-btn[disabled]:focus > a:only-child::after,\n.ant-btn[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn:hover,\n.ant-btn:focus,\n.ant-btn:active {\n text-decoration: none;\n background: #fff;\n}\n.ant-btn > span {\n display: inline-block;\n}\n.ant-btn-primary {\n color: #fff;\n border-color: #1890ff;\n background: #1890ff;\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\n}\n.ant-btn-primary > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-primary:hover,\n.ant-btn-primary:focus {\n color: #fff;\n border-color: #40a9ff;\n background: #40a9ff;\n}\n.ant-btn-primary:hover > a:only-child,\n.ant-btn-primary:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary:hover > a:only-child::after,\n.ant-btn-primary:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-primary:active {\n color: #fff;\n border-color: #096dd9;\n background: #096dd9;\n}\n.ant-btn-primary:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-primary[disabled],\n.ant-btn-primary[disabled]:hover,\n.ant-btn-primary[disabled]:focus,\n.ant-btn-primary[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-primary[disabled] > a:only-child,\n.ant-btn-primary[disabled]:hover > a:only-child,\n.ant-btn-primary[disabled]:focus > a:only-child,\n.ant-btn-primary[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary[disabled] > a:only-child::after,\n.ant-btn-primary[disabled]:hover > a:only-child::after,\n.ant-btn-primary[disabled]:focus > a:only-child::after,\n.ant-btn-primary[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child) {\n border-right-color: #40a9ff;\n border-left-color: #40a9ff;\n}\n.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled {\n border-color: #d9d9d9;\n}\n.ant-btn-group .ant-btn-primary:first-child:not(:last-child) {\n border-right-color: #40a9ff;\n}\n.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled] {\n border-right-color: #d9d9d9;\n}\n.ant-btn-group .ant-btn-primary:last-child:not(:first-child),\n.ant-btn-group .ant-btn-primary + .ant-btn-primary {\n border-left-color: #40a9ff;\n}\n.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],\n.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {\n border-left-color: #d9d9d9;\n}\n.ant-btn-ghost {\n color: rgba(0, 0, 0, 0.85);\n border-color: #d9d9d9;\n background: transparent;\n}\n.ant-btn-ghost > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-ghost:hover,\n.ant-btn-ghost:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-ghost:hover > a:only-child,\n.ant-btn-ghost:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost:hover > a:only-child::after,\n.ant-btn-ghost:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-ghost:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-ghost:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-ghost[disabled],\n.ant-btn-ghost[disabled]:hover,\n.ant-btn-ghost[disabled]:focus,\n.ant-btn-ghost[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-ghost[disabled] > a:only-child,\n.ant-btn-ghost[disabled]:hover > a:only-child,\n.ant-btn-ghost[disabled]:focus > a:only-child,\n.ant-btn-ghost[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost[disabled] > a:only-child::after,\n.ant-btn-ghost[disabled]:hover > a:only-child::after,\n.ant-btn-ghost[disabled]:focus > a:only-child::after,\n.ant-btn-ghost[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed {\n color: rgba(0, 0, 0, 0.85);\n border-color: #d9d9d9;\n background: #fff;\n border-style: dashed;\n}\n.ant-btn-dashed > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed:hover,\n.ant-btn-dashed:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: #fff;\n}\n.ant-btn-dashed:hover > a:only-child,\n.ant-btn-dashed:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed:hover > a:only-child::after,\n.ant-btn-dashed:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed:active {\n color: #096dd9;\n border-color: #096dd9;\n background: #fff;\n}\n.ant-btn-dashed:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed[disabled],\n.ant-btn-dashed[disabled]:hover,\n.ant-btn-dashed[disabled]:focus,\n.ant-btn-dashed[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dashed[disabled] > a:only-child,\n.ant-btn-dashed[disabled]:hover > a:only-child,\n.ant-btn-dashed[disabled]:focus > a:only-child,\n.ant-btn-dashed[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed[disabled] > a:only-child::after,\n.ant-btn-dashed[disabled]:hover > a:only-child::after,\n.ant-btn-dashed[disabled]:focus > a:only-child::after,\n.ant-btn-dashed[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger {\n color: #fff;\n border-color: #ff4d4f;\n background: #ff4d4f;\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\n}\n.ant-btn-danger > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger:hover,\n.ant-btn-danger:focus {\n color: #fff;\n border-color: #ff7875;\n background: #ff7875;\n}\n.ant-btn-danger:hover > a:only-child,\n.ant-btn-danger:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger:hover > a:only-child::after,\n.ant-btn-danger:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger:active {\n color: #fff;\n border-color: #d9363e;\n background: #d9363e;\n}\n.ant-btn-danger:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger[disabled],\n.ant-btn-danger[disabled]:hover,\n.ant-btn-danger[disabled]:focus,\n.ant-btn-danger[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-danger[disabled] > a:only-child,\n.ant-btn-danger[disabled]:hover > a:only-child,\n.ant-btn-danger[disabled]:focus > a:only-child,\n.ant-btn-danger[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger[disabled] > a:only-child::after,\n.ant-btn-danger[disabled]:hover > a:only-child::after,\n.ant-btn-danger[disabled]:focus > a:only-child::after,\n.ant-btn-danger[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link {\n color: #1890ff;\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-link > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link:hover,\n.ant-btn-link:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-link:hover > a:only-child,\n.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link:hover > a:only-child::after,\n.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link[disabled],\n.ant-btn-link[disabled]:hover,\n.ant-btn-link[disabled]:focus,\n.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-link[disabled] > a:only-child,\n.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link:hover {\n background: transparent;\n}\n.ant-btn-link:hover,\n.ant-btn-link:focus,\n.ant-btn-link:active {\n border-color: transparent;\n}\n.ant-btn-link[disabled],\n.ant-btn-link[disabled]:hover,\n.ant-btn-link[disabled]:focus,\n.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-link[disabled] > a:only-child,\n.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text {\n color: rgba(0, 0, 0, 0.85);\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-text > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text:hover,\n.ant-btn-text:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-text:hover > a:only-child,\n.ant-btn-text:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text:hover > a:only-child::after,\n.ant-btn-text:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-text:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text[disabled],\n.ant-btn-text[disabled]:hover,\n.ant-btn-text[disabled]:focus,\n.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-text[disabled] > a:only-child,\n.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text:hover,\n.ant-btn-text:focus {\n color: rgba(0, 0, 0, 0.85);\n background: rgba(0, 0, 0, 0.018);\n border-color: transparent;\n}\n.ant-btn-text:active {\n color: rgba(0, 0, 0, 0.85);\n background: rgba(0, 0, 0, 0.028);\n border-color: transparent;\n}\n.ant-btn-text[disabled],\n.ant-btn-text[disabled]:hover,\n.ant-btn-text[disabled]:focus,\n.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-text[disabled] > a:only-child,\n.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous {\n color: #ff4d4f;\n border-color: #ff4d4f;\n background: #fff;\n}\n.ant-btn-dangerous > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous:hover,\n.ant-btn-dangerous:focus {\n color: #ff7875;\n border-color: #ff7875;\n background: #fff;\n}\n.ant-btn-dangerous:hover > a:only-child,\n.ant-btn-dangerous:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous:hover > a:only-child::after,\n.ant-btn-dangerous:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous:active {\n color: #d9363e;\n border-color: #d9363e;\n background: #fff;\n}\n.ant-btn-dangerous:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous[disabled],\n.ant-btn-dangerous[disabled]:hover,\n.ant-btn-dangerous[disabled]:focus,\n.ant-btn-dangerous[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous[disabled] > a:only-child,\n.ant-btn-dangerous[disabled]:hover > a:only-child,\n.ant-btn-dangerous[disabled]:focus > a:only-child,\n.ant-btn-dangerous[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous[disabled] > a:only-child::after,\n.ant-btn-dangerous[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary {\n color: #fff;\n border-color: #ff4d4f;\n background: #ff4d4f;\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\n}\n.ant-btn-dangerous.ant-btn-primary > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary:hover,\n.ant-btn-dangerous.ant-btn-primary:focus {\n color: #fff;\n border-color: #ff7875;\n background: #ff7875;\n}\n.ant-btn-dangerous.ant-btn-primary:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-primary:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary:active {\n color: #fff;\n border-color: #d9363e;\n background: #d9363e;\n}\n.ant-btn-dangerous.ant-btn-primary:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary[disabled],\n.ant-btn-dangerous.ant-btn-primary[disabled]:hover,\n.ant-btn-dangerous.ant-btn-primary[disabled]:focus,\n.ant-btn-dangerous.ant-btn-primary[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-primary[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-primary[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-primary[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-primary[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link {\n color: #ff4d4f;\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-link > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:hover,\n.ant-btn-dangerous.ant-btn-link:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link[disabled],\n.ant-btn-dangerous.ant-btn-link[disabled]:hover,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus,\n.ant-btn-dangerous.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:hover,\n.ant-btn-dangerous.ant-btn-link:focus {\n color: #ff7875;\n border-color: transparent;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:active {\n color: #d9363e;\n border-color: transparent;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link[disabled],\n.ant-btn-dangerous.ant-btn-link[disabled]:hover,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus,\n.ant-btn-dangerous.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text {\n color: #ff4d4f;\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-text > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:hover,\n.ant-btn-dangerous.ant-btn-text:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text[disabled],\n.ant-btn-dangerous.ant-btn-text[disabled]:hover,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus,\n.ant-btn-dangerous.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:hover,\n.ant-btn-dangerous.ant-btn-text:focus {\n color: #ff7875;\n border-color: transparent;\n background: rgba(0, 0, 0, 0.018);\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:active {\n color: #d9363e;\n border-color: transparent;\n background: rgba(0, 0, 0, 0.028);\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text[disabled],\n.ant-btn-dangerous.ant-btn-text[disabled]:hover,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus,\n.ant-btn-dangerous.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-icon-only {\n width: 32px;\n height: 32px;\n padding: 2.4px 0;\n font-size: 16px;\n border-radius: 2px;\n vertical-align: -3px;\n}\n.ant-btn-icon-only > * {\n font-size: 16px;\n}\n.ant-btn-icon-only.ant-btn-lg {\n width: 40px;\n height: 40px;\n padding: 4.9px 0;\n font-size: 18px;\n border-radius: 2px;\n}\n.ant-btn-icon-only.ant-btn-lg > * {\n font-size: 18px;\n}\n.ant-btn-icon-only.ant-btn-sm {\n width: 24px;\n height: 24px;\n padding: 0px 0;\n font-size: 14px;\n border-radius: 2px;\n}\n.ant-btn-icon-only.ant-btn-sm > * {\n font-size: 14px;\n}\n.ant-btn-icon-only > .anticon {\n display: flex;\n justify-content: center;\n}\n.ant-btn-icon-only .anticon-loading {\n padding: 0 !important;\n}\na.ant-btn-icon-only {\n vertical-align: -1px;\n}\na.ant-btn-icon-only > .anticon {\n display: inline;\n}\n.ant-btn-round {\n height: 32px;\n padding: 4px 16px;\n font-size: 14px;\n border-radius: 32px;\n}\n.ant-btn-round.ant-btn-lg {\n height: 40px;\n padding: 6.4px 20px;\n font-size: 16px;\n border-radius: 40px;\n}\n.ant-btn-round.ant-btn-sm {\n height: 24px;\n padding: 0px 12px;\n font-size: 14px;\n border-radius: 24px;\n}\n.ant-btn-round.ant-btn-icon-only {\n width: auto;\n}\n.ant-btn-circle {\n min-width: 32px;\n padding-right: 0;\n padding-left: 0;\n text-align: center;\n border-radius: 50%;\n}\n.ant-btn-circle.ant-btn-lg {\n min-width: 40px;\n border-radius: 50%;\n}\n.ant-btn-circle.ant-btn-sm {\n min-width: 24px;\n border-radius: 50%;\n}\n.ant-btn::before {\n position: absolute;\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n z-index: 1;\n display: none;\n background: #fff;\n border-radius: inherit;\n opacity: 0.35;\n transition: opacity 0.2s;\n content: '';\n pointer-events: none;\n}\n.ant-btn .anticon {\n transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-btn .anticon.anticon-plus > svg,\n.ant-btn .anticon.anticon-minus > svg {\n shape-rendering: optimizespeed;\n}\n.ant-btn.ant-btn-loading {\n position: relative;\n cursor: default;\n}\n.ant-btn.ant-btn-loading::before {\n display: block;\n}\n.ant-btn > .ant-btn-loading-icon {\n transition: width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-btn > .ant-btn-loading-icon .anticon {\n padding-right: 8px;\n animation: none;\n}\n.ant-btn > .ant-btn-loading-icon .anticon svg {\n animation: loadingCircle 1s infinite linear;\n}\n.ant-btn-group {\n position: relative;\n display: inline-flex;\n}\n.ant-btn-group > .ant-btn,\n.ant-btn-group > span > .ant-btn {\n position: relative;\n}\n.ant-btn-group > .ant-btn:hover,\n.ant-btn-group > span > .ant-btn:hover,\n.ant-btn-group > .ant-btn:focus,\n.ant-btn-group > span > .ant-btn:focus,\n.ant-btn-group > .ant-btn:active,\n.ant-btn-group > span > .ant-btn:active {\n z-index: 2;\n}\n.ant-btn-group > .ant-btn[disabled],\n.ant-btn-group > span > .ant-btn[disabled] {\n z-index: 0;\n}\n.ant-btn-group .ant-btn-icon-only {\n font-size: 14px;\n}\n.ant-btn-group .ant-btn + .ant-btn,\n.ant-btn + .ant-btn-group,\n.ant-btn-group span + .ant-btn,\n.ant-btn-group .ant-btn + span,\n.ant-btn-group > span + span,\n.ant-btn-group + .ant-btn,\n.ant-btn-group + .ant-btn-group {\n margin-left: -1px;\n}\n.ant-btn-group .ant-btn-primary + .ant-btn:not(.ant-btn-primary):not([disabled]) {\n border-left-color: transparent;\n}\n.ant-btn-group .ant-btn {\n border-radius: 0;\n}\n.ant-btn-group > .ant-btn:first-child,\n.ant-btn-group > span:first-child > .ant-btn {\n margin-left: 0;\n}\n.ant-btn-group > .ant-btn:only-child {\n border-radius: 2px;\n}\n.ant-btn-group > span:only-child > .ant-btn {\n border-radius: 2px;\n}\n.ant-btn-group > .ant-btn:first-child:not(:last-child),\n.ant-btn-group > span:first-child:not(:last-child) > .ant-btn {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-btn-group > .ant-btn:last-child:not(:first-child),\n.ant-btn-group > span:last-child:not(:first-child) > .ant-btn {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-btn-group-sm > .ant-btn:only-child {\n border-radius: 2px;\n}\n.ant-btn-group-sm > span:only-child > .ant-btn {\n border-radius: 2px;\n}\n.ant-btn-group-sm > .ant-btn:first-child:not(:last-child),\n.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-btn-group-sm > .ant-btn:last-child:not(:first-child),\n.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-btn-group > .ant-btn-group {\n float: left;\n}\n.ant-btn-group > .ant-btn-group:not(:first-child):not(:last-child) > .ant-btn {\n border-radius: 0;\n}\n.ant-btn-group > .ant-btn-group:first-child:not(:last-child) > .ant-btn:last-child {\n padding-right: 8px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-group > .ant-btn-group:last-child:not(:first-child) > .ant-btn:first-child {\n padding-left: 8px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-rtl.ant-btn-group .ant-btn + .ant-btn,\n.ant-btn-rtl.ant-btn + .ant-btn-group,\n.ant-btn-rtl.ant-btn-group span + .ant-btn,\n.ant-btn-rtl.ant-btn-group .ant-btn + span,\n.ant-btn-rtl.ant-btn-group > span + span,\n.ant-btn-rtl.ant-btn-group + .ant-btn,\n.ant-btn-rtl.ant-btn-group + .ant-btn-group,\n.ant-btn-group-rtl.ant-btn-group .ant-btn + .ant-btn,\n.ant-btn-group-rtl.ant-btn + .ant-btn-group,\n.ant-btn-group-rtl.ant-btn-group span + .ant-btn,\n.ant-btn-group-rtl.ant-btn-group .ant-btn + span,\n.ant-btn-group-rtl.ant-btn-group > span + span,\n.ant-btn-group-rtl.ant-btn-group + .ant-btn,\n.ant-btn-group-rtl.ant-btn-group + .ant-btn-group {\n margin-right: -1px;\n margin-left: auto;\n}\n.ant-btn-group.ant-btn-group-rtl {\n direction: rtl;\n}\n.ant-btn-group-rtl.ant-btn-group > .ant-btn:first-child:not(:last-child),\n.ant-btn-group-rtl.ant-btn-group > span:first-child:not(:last-child) > .ant-btn {\n border-radius: 0 2px 2px 0;\n}\n.ant-btn-group-rtl.ant-btn-group > .ant-btn:last-child:not(:first-child),\n.ant-btn-group-rtl.ant-btn-group > span:last-child:not(:first-child) > .ant-btn {\n border-radius: 2px 0 0 2px;\n}\n.ant-btn-group-rtl.ant-btn-group-sm > .ant-btn:first-child:not(:last-child),\n.ant-btn-group-rtl.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn {\n border-radius: 0 2px 2px 0;\n}\n.ant-btn-group-rtl.ant-btn-group-sm > .ant-btn:last-child:not(:first-child),\n.ant-btn-group-rtl.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn {\n border-radius: 2px 0 0 2px;\n}\n.ant-btn:focus > span,\n.ant-btn:active > span {\n position: relative;\n}\n.ant-btn > .anticon + span,\n.ant-btn > span + .anticon {\n margin-left: 8px;\n}\n.ant-btn.ant-btn-background-ghost {\n color: #fff;\n border-color: #fff;\n}\n.ant-btn.ant-btn-background-ghost,\n.ant-btn.ant-btn-background-ghost:hover,\n.ant-btn.ant-btn-background-ghost:active,\n.ant-btn.ant-btn-background-ghost:focus {\n background: transparent;\n}\n.ant-btn.ant-btn-background-ghost:hover,\n.ant-btn.ant-btn-background-ghost:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n}\n.ant-btn.ant-btn-background-ghost:active {\n color: #096dd9;\n border-color: #096dd9;\n}\n.ant-btn.ant-btn-background-ghost[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background: transparent;\n border-color: #d9d9d9;\n}\n.ant-btn-background-ghost.ant-btn-primary {\n color: #1890ff;\n border-color: #1890ff;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-primary > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-primary:hover,\n.ant-btn-background-ghost.ant-btn-primary:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n}\n.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-primary:active {\n color: #096dd9;\n border-color: #096dd9;\n}\n.ant-btn-background-ghost.ant-btn-primary:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-primary[disabled],\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger {\n color: #ff4d4f;\n border-color: #ff4d4f;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-danger > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger:hover,\n.ant-btn-background-ghost.ant-btn-danger:focus {\n color: #ff7875;\n border-color: #ff7875;\n}\n.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger:active {\n color: #d9363e;\n border-color: #d9363e;\n}\n.ant-btn-background-ghost.ant-btn-danger:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger[disabled],\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous {\n color: #ff4d4f;\n border-color: #ff4d4f;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous:hover,\n.ant-btn-background-ghost.ant-btn-dangerous:focus {\n color: #ff7875;\n border-color: #ff7875;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous:active {\n color: #d9363e;\n border-color: #d9363e;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous[disabled],\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link {\n color: #ff4d4f;\n border-color: transparent;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus {\n color: #ff7875;\n border-color: transparent;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active {\n color: #d9363e;\n border-color: transparent;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-two-chinese-chars::first-letter {\n letter-spacing: 0.34em;\n}\n.ant-btn-two-chinese-chars > *:not(.anticon) {\n margin-right: -0.34em;\n letter-spacing: 0.34em;\n}\n.ant-btn.ant-btn-block {\n width: 100%;\n}\n.ant-btn:empty {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n}\na.ant-btn {\n padding-top: 0.01px !important;\n line-height: 30px;\n}\na.ant-btn-disabled {\n cursor: not-allowed;\n}\na.ant-btn-disabled > * {\n pointer-events: none;\n}\na.ant-btn-disabled,\na.ant-btn-disabled:hover,\na.ant-btn-disabled:focus,\na.ant-btn-disabled:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\na.ant-btn-disabled > a:only-child,\na.ant-btn-disabled:hover > a:only-child,\na.ant-btn-disabled:focus > a:only-child,\na.ant-btn-disabled:active > a:only-child {\n color: currentcolor;\n}\na.ant-btn-disabled > a:only-child::after,\na.ant-btn-disabled:hover > a:only-child::after,\na.ant-btn-disabled:focus > a:only-child::after,\na.ant-btn-disabled:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\na.ant-btn-lg {\n line-height: 38px;\n}\na.ant-btn-sm {\n line-height: 22px;\n}\n.ant-btn-compact-item:not(.ant-btn-compact-last-item):not(.ant-btn-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-btn-compact-item:not(.ant-btn-compact-last-item).ant-btn-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-btn-compact-item:hover,\n.ant-btn-compact-item:focus,\n.ant-btn-compact-item:active {\n z-index: 2;\n}\n.ant-btn-compact-item[disabled] {\n z-index: 0;\n}\n.ant-btn-compact-item:not(.ant-btn-compact-first-item):not(.ant-btn-compact-last-item).ant-btn {\n border-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-first-item:not(.ant-btn-compact-last-item):not(.ant-btn-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-last-item:not(.ant-btn-compact-first-item):not(.ant-btn-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-item-rtl.ant-btn-compact-first-item:not(.ant-btn-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-item-rtl.ant-btn-compact-last-item:not(.ant-btn-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-icon-only.ant-btn-compact-item {\n flex: none;\n}\n.ant-btn-compact-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-item.ant-btn-primary:not([disabled]) {\n position: relative;\n}\n.ant-btn-compact-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-item.ant-btn-primary:not([disabled])::after {\n position: absolute;\n top: -1px;\n left: -1px;\n display: inline-block;\n width: 1px;\n height: calc(100% + 1px * 2);\n background-color: #40a9ff;\n content: ' ';\n}\n.ant-btn-compact-item-rtl.ant-btn-compact-first-item.ant-btn-compact-item-rtl:not(.ant-btn-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-compact-last-item.ant-btn-compact-item-rtl:not(.ant-btn-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-sm.ant-btn-compact-first-item.ant-btn-compact-item-rtl.ant-btn-sm:not(.ant-btn-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-sm.ant-btn-compact-last-item.ant-btn-compact-item-rtl.ant-btn-sm:not(.ant-btn-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-primary:not([disabled]) + .ant-btn-compact-item-rtl.ant-btn-primary:not([disabled])::after {\n right: -1px;\n}\n.ant-btn-compact-vertical-item:not(.ant-btn-compact-vertical-last-item) {\n margin-bottom: -1px;\n}\n.ant-btn-compact-vertical-item:hover,\n.ant-btn-compact-vertical-item:focus,\n.ant-btn-compact-vertical-item:active {\n z-index: 2;\n}\n.ant-btn-compact-vertical-item[disabled] {\n z-index: 0;\n}\n.ant-btn-compact-vertical-item:not(.ant-btn-compact-vertical-first-item):not(.ant-btn-compact-vertical-last-item) {\n border-radius: 0;\n}\n.ant-btn-compact-vertical-item.ant-btn-compact-vertical-first-item:not(.ant-btn-compact-vertical-last-item) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-vertical-item.ant-btn-compact-vertical-last-item:not(.ant-btn-compact-vertical-first-item) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]) {\n position: relative;\n}\n.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-vertical-item.ant-btn-primary:not([disabled])::after {\n position: absolute;\n top: -1px;\n left: -1px;\n display: inline-block;\n width: calc(100% + 1px * 2);\n height: 1px;\n background-color: #40a9ff;\n content: ' ';\n}\n.ant-btn-rtl {\n direction: rtl;\n}\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child),\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary {\n border-right-color: #40a9ff;\n border-left-color: #d9d9d9;\n}\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {\n border-right-color: #d9d9d9;\n border-left-color: #40a9ff;\n}\n.ant-btn-rtl.ant-btn > .ant-btn-loading-icon .anticon {\n padding-right: 0;\n padding-left: 8px;\n}\n.ant-btn-rtl.ant-btn > .anticon + span,\n.ant-btn-rtl.ant-btn > span + .anticon {\n margin-right: 8px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-menu-item-danger.ant-menu-item {\n color: #ff4d4f;\n}\n.ant-menu-item-danger.ant-menu-item:hover,\n.ant-menu-item-danger.ant-menu-item-active {\n color: #ff4d4f;\n}\n.ant-menu-item-danger.ant-menu-item:active {\n background: #fff1f0;\n}\n.ant-menu-item-danger.ant-menu-item-selected {\n color: #ff4d4f;\n}\n.ant-menu-item-danger.ant-menu-item-selected > a,\n.ant-menu-item-danger.ant-menu-item-selected > a:hover {\n color: #ff4d4f;\n}\n.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {\n background-color: #fff1f0;\n}\n.ant-menu-inline .ant-menu-item-danger.ant-menu-item::after {\n border-right-color: #ff4d4f;\n}\n.ant-menu-dark .ant-menu-item-danger.ant-menu-item,\n.ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover,\n.ant-menu-dark .ant-menu-item-danger.ant-menu-item > a {\n color: #ff4d4f;\n}\n.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {\n color: #fff;\n background-color: #ff4d4f;\n}\n.ant-menu {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n font-variant: tabular-nums;\n line-height: 1.5715;\n font-feature-settings: 'tnum';\n margin-bottom: 0;\n padding-left: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 0;\n text-align: left;\n list-style: none;\n background: #fff;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n transition: background 0.3s, width 0.3s cubic-bezier(0.2, 0, 0, 1) 0s;\n}\n.ant-menu::before {\n display: table;\n content: '';\n}\n.ant-menu::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-menu.ant-menu-root:focus-visible {\n box-shadow: 0 0 0 2px #bae7ff;\n}\n.ant-menu ul,\n.ant-menu ol {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-menu-overflow {\n display: flex;\n}\n.ant-menu-overflow-item {\n flex: none;\n}\n.ant-menu-hidden,\n.ant-menu-submenu-hidden {\n display: none;\n}\n.ant-menu-item-group-title {\n height: 1.5715;\n padding: 8px 16px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.5715;\n transition: all 0.3s;\n}\n.ant-menu-horizontal .ant-menu-submenu {\n transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu,\n.ant-menu-submenu-inline {\n transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu-selected {\n color: #1890ff;\n}\n.ant-menu-item:active,\n.ant-menu-submenu-title:active {\n background: #e6f7ff;\n}\n.ant-menu-submenu .ant-menu-sub {\n cursor: initial;\n transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-title-content {\n transition: color 0.3s;\n}\n.ant-menu-item a {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-menu-item a:hover {\n color: #1890ff;\n}\n.ant-menu-item a::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: transparent;\n content: '';\n}\n.ant-menu-item > .ant-badge a {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-menu-item > .ant-badge a:hover {\n color: #1890ff;\n}\n.ant-menu-item-divider {\n overflow: hidden;\n line-height: 0;\n border-color: #f0f0f0;\n border-style: solid;\n border-width: 1px 0 0;\n}\n.ant-menu-item-divider-dashed {\n border-style: dashed;\n}\n.ant-menu-horizontal .ant-menu-item,\n.ant-menu-horizontal .ant-menu-submenu {\n margin-top: -1px;\n}\n.ant-menu-horizontal > .ant-menu-item:hover,\n.ant-menu-horizontal > .ant-menu-item-active,\n.ant-menu-horizontal > .ant-menu-submenu .ant-menu-submenu-title:hover {\n background-color: transparent;\n}\n.ant-menu-item-selected {\n color: #1890ff;\n}\n.ant-menu-item-selected a,\n.ant-menu-item-selected a:hover {\n color: #1890ff;\n}\n.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {\n background-color: #e6f7ff;\n}\n.ant-menu-inline,\n.ant-menu-vertical,\n.ant-menu-vertical-left {\n border-right: 1px solid #f0f0f0;\n}\n.ant-menu-vertical-right {\n border-left: 1px solid #f0f0f0;\n}\n.ant-menu-vertical.ant-menu-sub,\n.ant-menu-vertical-left.ant-menu-sub,\n.ant-menu-vertical-right.ant-menu-sub {\n min-width: 160px;\n max-height: calc(100vh - 100px);\n padding: 0;\n overflow: hidden;\n border-right: 0;\n}\n.ant-menu-vertical.ant-menu-sub:not([class*='-active']),\n.ant-menu-vertical-left.ant-menu-sub:not([class*='-active']),\n.ant-menu-vertical-right.ant-menu-sub:not([class*='-active']) {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.ant-menu-vertical.ant-menu-sub .ant-menu-item,\n.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,\n.ant-menu-vertical-right.ant-menu-sub .ant-menu-item {\n left: 0;\n margin-left: 0;\n border-right: 0;\n}\n.ant-menu-vertical.ant-menu-sub .ant-menu-item::after,\n.ant-menu-vertical-left.ant-menu-sub .ant-menu-item::after,\n.ant-menu-vertical-right.ant-menu-sub .ant-menu-item::after {\n border-right: 0;\n}\n.ant-menu-vertical.ant-menu-sub > .ant-menu-item,\n.ant-menu-vertical-left.ant-menu-sub > .ant-menu-item,\n.ant-menu-vertical-right.ant-menu-sub > .ant-menu-item,\n.ant-menu-vertical.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-vertical-left.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-vertical-right.ant-menu-sub > .ant-menu-submenu {\n transform-origin: 0 0;\n}\n.ant-menu-horizontal.ant-menu-sub {\n min-width: 114px;\n}\n.ant-menu-horizontal .ant-menu-item,\n.ant-menu-horizontal .ant-menu-submenu-title {\n transition: border-color 0.3s, background 0.3s;\n}\n.ant-menu-item,\n.ant-menu-submenu-title {\n position: relative;\n display: block;\n margin: 0;\n padding: 0 20px;\n white-space: nowrap;\n cursor: pointer;\n transition: border-color 0.3s, background 0.3s, padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-item .ant-menu-item-icon,\n.ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu-item .anticon,\n.ant-menu-submenu-title .anticon {\n min-width: 14px;\n font-size: 14px;\n transition: font-size 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), color 0.3s;\n}\n.ant-menu-item .ant-menu-item-icon + span,\n.ant-menu-submenu-title .ant-menu-item-icon + span,\n.ant-menu-item .anticon + span,\n.ant-menu-submenu-title .anticon + span {\n margin-left: 10px;\n opacity: 1;\n transition: opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), margin 0.3s, color 0.3s;\n}\n.ant-menu-item .ant-menu-item-icon.svg,\n.ant-menu-submenu-title .ant-menu-item-icon.svg {\n vertical-align: -0.125em;\n}\n.ant-menu-item.ant-menu-item-only-child > .anticon,\n.ant-menu-submenu-title.ant-menu-item-only-child > .anticon,\n.ant-menu-item.ant-menu-item-only-child > .ant-menu-item-icon,\n.ant-menu-submenu-title.ant-menu-item-only-child > .ant-menu-item-icon {\n margin-right: 0;\n}\n.ant-menu-item:not(.ant-menu-item-disabled):focus-visible,\n.ant-menu-submenu-title:not(.ant-menu-item-disabled):focus-visible {\n box-shadow: 0 0 0 2px #bae7ff;\n}\n.ant-menu > .ant-menu-item-divider {\n margin: 1px 0;\n padding: 0;\n}\n.ant-menu-submenu-popup {\n position: absolute;\n z-index: 1050;\n background: transparent;\n border-radius: 2px;\n box-shadow: none;\n transform-origin: 0 0;\n}\n.ant-menu-submenu-popup::before {\n position: absolute;\n top: -7px;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n opacity: 0.0001;\n content: ' ';\n}\n.ant-menu-submenu-placement-rightTop::before {\n top: 0;\n left: -7px;\n}\n.ant-menu-submenu > .ant-menu {\n background-color: #fff;\n border-radius: 2px;\n}\n.ant-menu-submenu > .ant-menu-submenu-title::after {\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu-popup > .ant-menu {\n background-color: #fff;\n}\n.ant-menu-submenu-expand-icon,\n.ant-menu-submenu-arrow {\n position: absolute;\n top: 50%;\n right: 16px;\n width: 10px;\n color: rgba(0, 0, 0, 0.85);\n transform: translateY(-50%);\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu-arrow::before,\n.ant-menu-submenu-arrow::after {\n position: absolute;\n width: 6px;\n height: 1.5px;\n background-color: currentcolor;\n border-radius: 2px;\n transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n content: '';\n}\n.ant-menu-submenu-arrow::before {\n transform: rotate(45deg) translateY(-2.5px);\n}\n.ant-menu-submenu-arrow::after {\n transform: rotate(-45deg) translateY(2.5px);\n}\n.ant-menu-submenu:hover > .ant-menu-submenu-title > .ant-menu-submenu-expand-icon,\n.ant-menu-submenu:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow {\n color: #1890ff;\n}\n.ant-menu-inline-collapsed .ant-menu-submenu-arrow::before,\n.ant-menu-submenu-inline .ant-menu-submenu-arrow::before {\n transform: rotate(-45deg) translateX(2.5px);\n}\n.ant-menu-inline-collapsed .ant-menu-submenu-arrow::after,\n.ant-menu-submenu-inline .ant-menu-submenu-arrow::after {\n transform: rotate(45deg) translateX(-2.5px);\n}\n.ant-menu-submenu-horizontal .ant-menu-submenu-arrow {\n display: none;\n}\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title > .ant-menu-submenu-arrow {\n transform: translateY(-2px);\n}\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {\n transform: rotate(-45deg) translateX(-2.5px);\n}\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before {\n transform: rotate(45deg) translateX(2.5px);\n}\n.ant-menu-vertical .ant-menu-submenu-selected,\n.ant-menu-vertical-left .ant-menu-submenu-selected,\n.ant-menu-vertical-right .ant-menu-submenu-selected {\n color: #1890ff;\n}\n.ant-menu-horizontal {\n line-height: 46px;\n border: 0;\n border-bottom: 1px solid #f0f0f0;\n box-shadow: none;\n}\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu {\n margin-top: -1px;\n margin-bottom: 0;\n padding: 0 20px;\n}\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-active,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-active,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-open,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-open,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-selected,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected {\n color: #1890ff;\n}\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-active::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-active::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-open::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-open::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-selected::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected::after {\n border-bottom: 2px solid #1890ff;\n}\n.ant-menu-horizontal > .ant-menu-item,\n.ant-menu-horizontal > .ant-menu-submenu {\n position: relative;\n top: 1px;\n display: inline-block;\n vertical-align: bottom;\n}\n.ant-menu-horizontal > .ant-menu-item::after,\n.ant-menu-horizontal > .ant-menu-submenu::after {\n position: absolute;\n right: 20px;\n bottom: 0;\n left: 20px;\n border-bottom: 2px solid transparent;\n transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n content: '';\n}\n.ant-menu-horizontal > .ant-menu-submenu > .ant-menu-submenu-title {\n padding: 0;\n}\n.ant-menu-horizontal > .ant-menu-item a {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-menu-horizontal > .ant-menu-item a:hover {\n color: #1890ff;\n}\n.ant-menu-horizontal > .ant-menu-item a::before {\n bottom: -2px;\n}\n.ant-menu-horizontal > .ant-menu-item-selected a {\n color: #1890ff;\n}\n.ant-menu-horizontal::after {\n display: block;\n clear: both;\n height: 0;\n content: '\\20';\n}\n.ant-menu-vertical .ant-menu-item,\n.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-vertical-right .ant-menu-item,\n.ant-menu-inline .ant-menu-item {\n position: relative;\n}\n.ant-menu-vertical .ant-menu-item::after,\n.ant-menu-vertical-left .ant-menu-item::after,\n.ant-menu-vertical-right .ant-menu-item::after,\n.ant-menu-inline .ant-menu-item::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n border-right: 3px solid #1890ff;\n transform: scaleY(0.0001);\n opacity: 0;\n transition: transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);\n content: '';\n}\n.ant-menu-vertical .ant-menu-item,\n.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-vertical-right .ant-menu-item,\n.ant-menu-inline .ant-menu-item,\n.ant-menu-vertical .ant-menu-submenu-title,\n.ant-menu-vertical-left .ant-menu-submenu-title,\n.ant-menu-vertical-right .ant-menu-submenu-title,\n.ant-menu-inline .ant-menu-submenu-title {\n height: 40px;\n margin-top: 4px;\n margin-bottom: 4px;\n padding: 0 16px;\n overflow: hidden;\n line-height: 40px;\n text-overflow: ellipsis;\n}\n.ant-menu-vertical .ant-menu-submenu,\n.ant-menu-vertical-left .ant-menu-submenu,\n.ant-menu-vertical-right .ant-menu-submenu,\n.ant-menu-inline .ant-menu-submenu {\n padding-bottom: 0.02px;\n}\n.ant-menu-vertical .ant-menu-item:not(:last-child),\n.ant-menu-vertical-left .ant-menu-item:not(:last-child),\n.ant-menu-vertical-right .ant-menu-item:not(:last-child),\n.ant-menu-inline .ant-menu-item:not(:last-child) {\n margin-bottom: 8px;\n}\n.ant-menu-vertical > .ant-menu-item,\n.ant-menu-vertical-left > .ant-menu-item,\n.ant-menu-vertical-right > .ant-menu-item,\n.ant-menu-inline > .ant-menu-item,\n.ant-menu-vertical > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu-vertical-left > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu-vertical-right > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {\n height: 40px;\n line-height: 40px;\n}\n.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,\n.ant-menu-vertical .ant-menu-submenu-title {\n padding-right: 34px;\n}\n.ant-menu-inline {\n width: 100%;\n}\n.ant-menu-inline .ant-menu-selected::after,\n.ant-menu-inline .ant-menu-item-selected::after {\n transform: scaleY(1);\n opacity: 1;\n transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-inline .ant-menu-item,\n.ant-menu-inline .ant-menu-submenu-title {\n width: calc(100% + 1px);\n}\n.ant-menu-inline .ant-menu-item-group-list .ant-menu-submenu-title,\n.ant-menu-inline .ant-menu-submenu-title {\n padding-right: 34px;\n}\n.ant-menu-inline.ant-menu-root .ant-menu-item,\n.ant-menu-inline.ant-menu-root .ant-menu-submenu-title {\n display: flex;\n align-items: center;\n transition: border-color 0.3s, background 0.3s, padding 0.1s cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n.ant-menu-inline.ant-menu-root .ant-menu-item > .ant-menu-title-content,\n.ant-menu-inline.ant-menu-root .ant-menu-submenu-title > .ant-menu-title-content {\n flex: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ant-menu-inline.ant-menu-root .ant-menu-item > *,\n.ant-menu-inline.ant-menu-root .ant-menu-submenu-title > * {\n flex: none;\n}\n.ant-menu.ant-menu-inline-collapsed {\n width: 80px;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {\n left: 0;\n padding: 0 calc(50% - 16px / 2);\n text-overflow: clip;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-submenu-arrow {\n opacity: 0;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .anticon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .anticon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .anticon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .anticon {\n margin: 0;\n font-size: 16px;\n line-height: 40px;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .anticon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .anticon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .anticon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .anticon + span {\n display: inline-block;\n opacity: 0;\n}\n.ant-menu.ant-menu-inline-collapsed .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed .anticon {\n display: inline-block;\n}\n.ant-menu.ant-menu-inline-collapsed-tooltip {\n pointer-events: none;\n}\n.ant-menu.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed-tooltip .anticon {\n display: none;\n}\n.ant-menu.ant-menu-inline-collapsed-tooltip a {\n color: rgba(255, 255, 255, 0.85);\n}\n.ant-menu.ant-menu-inline-collapsed .ant-menu-item-group-title {\n padding-right: 4px;\n padding-left: 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-menu-item-group-list {\n margin: 0;\n padding: 0;\n}\n.ant-menu-item-group-list .ant-menu-item,\n.ant-menu-item-group-list .ant-menu-submenu-title {\n padding: 0 16px 0 28px;\n}\n.ant-menu-root.ant-menu-vertical,\n.ant-menu-root.ant-menu-vertical-left,\n.ant-menu-root.ant-menu-vertical-right,\n.ant-menu-root.ant-menu-inline {\n box-shadow: none;\n}\n.ant-menu-root.ant-menu-inline-collapsed .ant-menu-item > .ant-menu-inline-collapsed-noicon,\n.ant-menu-root.ant-menu-inline-collapsed .ant-menu-submenu .ant-menu-submenu-title > .ant-menu-inline-collapsed-noicon {\n font-size: 16px;\n text-align: center;\n}\n.ant-menu-sub.ant-menu-inline {\n padding: 0;\n background: #fafafa;\n border: 0;\n border-radius: 0;\n box-shadow: none;\n}\n.ant-menu-sub.ant-menu-inline > .ant-menu-item,\n.ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {\n height: 40px;\n line-height: 40px;\n list-style-position: inside;\n list-style-type: disc;\n}\n.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title {\n padding-left: 32px;\n}\n.ant-menu-item-disabled,\n.ant-menu-submenu-disabled {\n color: rgba(0, 0, 0, 0.25) !important;\n background: none;\n cursor: not-allowed;\n}\n.ant-menu-item-disabled::after,\n.ant-menu-submenu-disabled::after {\n border-color: transparent !important;\n}\n.ant-menu-item-disabled a,\n.ant-menu-submenu-disabled a {\n color: rgba(0, 0, 0, 0.25) !important;\n pointer-events: none;\n}\n.ant-menu-item-disabled > .ant-menu-submenu-title,\n.ant-menu-submenu-disabled > .ant-menu-submenu-title {\n color: rgba(0, 0, 0, 0.25) !important;\n cursor: not-allowed;\n}\n.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {\n background: rgba(0, 0, 0, 0.25) !important;\n}\n.ant-layout-header .ant-menu {\n line-height: inherit;\n}\n.ant-menu-inline-collapsed-tooltip a,\n.ant-menu-inline-collapsed-tooltip a:hover {\n color: #fff;\n}\n.ant-menu-light .ant-menu-item:hover,\n.ant-menu-light .ant-menu-item-active,\n.ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,\n.ant-menu-light .ant-menu-submenu-active,\n.ant-menu-light .ant-menu-submenu-title:hover {\n color: #1890ff;\n}\n.ant-menu.ant-menu-root:focus-visible {\n box-shadow: 0 0 0 2px #096dd9;\n}\n.ant-menu-dark .ant-menu-item:focus-visible,\n.ant-menu-dark .ant-menu-submenu-title:focus-visible {\n box-shadow: 0 0 0 2px #096dd9;\n}\n.ant-menu.ant-menu-dark,\n.ant-menu-dark .ant-menu-sub,\n.ant-menu.ant-menu-dark .ant-menu-sub {\n color: rgba(255, 255, 255, 0.65);\n background: #001529;\n}\n.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow {\n opacity: 0.45;\n transition: all 0.3s;\n}\n.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before {\n background: #fff;\n}\n.ant-menu-dark.ant-menu-submenu-popup {\n background: transparent;\n}\n.ant-menu-dark .ant-menu-inline.ant-menu-sub {\n background: #000c17;\n}\n.ant-menu-dark.ant-menu-horizontal {\n border-bottom: 0;\n}\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-item,\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-submenu {\n top: 0;\n margin-top: 0;\n padding: 0 20px;\n border-color: #001529;\n border-bottom: 0;\n}\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-item:hover {\n background-color: #1890ff;\n}\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-item > a::before {\n bottom: 0;\n}\n.ant-menu-dark .ant-menu-item,\n.ant-menu-dark .ant-menu-item-group-title,\n.ant-menu-dark .ant-menu-item > a,\n.ant-menu-dark .ant-menu-item > span > a {\n color: rgba(255, 255, 255, 0.65);\n}\n.ant-menu-dark.ant-menu-inline,\n.ant-menu-dark.ant-menu-vertical,\n.ant-menu-dark.ant-menu-vertical-left,\n.ant-menu-dark.ant-menu-vertical-right {\n border-right: 0;\n}\n.ant-menu-dark.ant-menu-inline .ant-menu-item,\n.ant-menu-dark.ant-menu-vertical .ant-menu-item,\n.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-dark.ant-menu-vertical-right .ant-menu-item {\n left: 0;\n margin-left: 0;\n border-right: 0;\n}\n.ant-menu-dark.ant-menu-inline .ant-menu-item::after,\n.ant-menu-dark.ant-menu-vertical .ant-menu-item::after,\n.ant-menu-dark.ant-menu-vertical-left .ant-menu-item::after,\n.ant-menu-dark.ant-menu-vertical-right .ant-menu-item::after {\n border-right: 0;\n}\n.ant-menu-dark.ant-menu-inline .ant-menu-item,\n.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title {\n width: 100%;\n}\n.ant-menu-dark .ant-menu-item:hover,\n.ant-menu-dark .ant-menu-item-active,\n.ant-menu-dark .ant-menu-submenu-active,\n.ant-menu-dark .ant-menu-submenu-open,\n.ant-menu-dark .ant-menu-submenu-selected,\n.ant-menu-dark .ant-menu-submenu-title:hover {\n color: #fff;\n background-color: transparent;\n}\n.ant-menu-dark .ant-menu-item:hover > a,\n.ant-menu-dark .ant-menu-item-active > a,\n.ant-menu-dark .ant-menu-submenu-active > a,\n.ant-menu-dark .ant-menu-submenu-open > a,\n.ant-menu-dark .ant-menu-submenu-selected > a,\n.ant-menu-dark .ant-menu-submenu-title:hover > a,\n.ant-menu-dark .ant-menu-item:hover > span > a,\n.ant-menu-dark .ant-menu-item-active > span > a,\n.ant-menu-dark .ant-menu-submenu-active > span > a,\n.ant-menu-dark .ant-menu-submenu-open > span > a,\n.ant-menu-dark .ant-menu-submenu-selected > span > a,\n.ant-menu-dark .ant-menu-submenu-title:hover > span > a {\n color: #fff;\n}\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow {\n opacity: 1;\n}\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before {\n background: #fff;\n}\n.ant-menu-dark .ant-menu-item:hover {\n background-color: transparent;\n}\n.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected {\n background-color: #1890ff;\n}\n.ant-menu-dark .ant-menu-item-selected {\n color: #fff;\n border-right: 0;\n}\n.ant-menu-dark .ant-menu-item-selected::after {\n border-right: 0;\n}\n.ant-menu-dark .ant-menu-item-selected > a,\n.ant-menu-dark .ant-menu-item-selected > span > a,\n.ant-menu-dark .ant-menu-item-selected > a:hover,\n.ant-menu-dark .ant-menu-item-selected > span > a:hover {\n color: #fff;\n}\n.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon,\n.ant-menu-dark .ant-menu-item-selected .anticon {\n color: #fff;\n}\n.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon + span,\n.ant-menu-dark .ant-menu-item-selected .anticon + span {\n color: #fff;\n}\n.ant-menu.ant-menu-dark .ant-menu-item-selected,\n.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected {\n background-color: #1890ff;\n}\n.ant-menu-dark .ant-menu-item-disabled,\n.ant-menu-dark .ant-menu-submenu-disabled,\n.ant-menu-dark .ant-menu-item-disabled > a,\n.ant-menu-dark .ant-menu-submenu-disabled > a,\n.ant-menu-dark .ant-menu-item-disabled > span > a,\n.ant-menu-dark .ant-menu-submenu-disabled > span > a {\n color: rgba(255, 255, 255, 0.35) !important;\n opacity: 0.8;\n}\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title,\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title {\n color: rgba(255, 255, 255, 0.35) !important;\n}\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {\n background: rgba(255, 255, 255, 0.35) !important;\n}\n.ant-menu.ant-menu-rtl {\n direction: rtl;\n text-align: right;\n}\n.ant-menu-rtl .ant-menu-item-group-title {\n text-align: right;\n}\n.ant-menu-rtl.ant-menu-inline,\n.ant-menu-rtl.ant-menu-vertical {\n border-right: none;\n border-left: 1px solid #f0f0f0;\n}\n.ant-menu-rtl.ant-menu-dark.ant-menu-inline,\n.ant-menu-rtl.ant-menu-dark.ant-menu-vertical {\n border-left: none;\n}\n.ant-menu-rtl.ant-menu-vertical.ant-menu-sub > .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub > .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub > .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub > .ant-menu-submenu {\n transform-origin: top right;\n}\n.ant-menu-rtl .ant-menu-item .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-item .anticon,\n.ant-menu-rtl .ant-menu-submenu-title .anticon {\n margin-right: auto;\n margin-left: 10px;\n}\n.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child > .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child > .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child > .anticon,\n.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child > .anticon {\n margin-left: 0;\n}\n.ant-menu-submenu-rtl.ant-menu-submenu-popup {\n transform-origin: 100% 0;\n}\n.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-rtl .ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow {\n right: auto;\n left: 16px;\n}\n.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::before {\n transform: rotate(-45deg) translateY(-2px);\n}\n.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {\n transform: rotate(45deg) translateY(2px);\n}\n.ant-menu-rtl.ant-menu-vertical .ant-menu-item::after,\n.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item::after,\n.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item::after,\n.ant-menu-rtl.ant-menu-inline .ant-menu-item::after {\n right: auto;\n left: 0;\n}\n.ant-menu-rtl.ant-menu-vertical .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,\n.ant-menu-rtl.ant-menu-inline .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title,\n.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,\n.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title,\n.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title {\n text-align: right;\n}\n.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title {\n padding-right: 0;\n padding-left: 34px;\n}\n.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title {\n padding-right: 16px;\n padding-left: 34px;\n}\n.ant-menu-rtl.ant-menu-inline-collapsed.ant-menu-vertical .ant-menu-submenu-title {\n padding: 0 calc(50% - 16px / 2);\n}\n.ant-menu-rtl .ant-menu-item-group-list .ant-menu-item,\n.ant-menu-rtl .ant-menu-item-group-list .ant-menu-submenu-title {\n padding: 0 28px 0 16px;\n}\n.ant-menu-sub.ant-menu-inline {\n border: 0;\n}\n.ant-menu-rtl.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title {\n padding-right: 32px;\n padding-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-tooltip {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n z-index: 1070;\n display: block;\n width: -moz-max-content;\n width: max-content;\n width: intrinsic;\n max-width: 250px;\n visibility: visible;\n}\n.ant-tooltip-content {\n position: relative;\n}\n.ant-tooltip-hidden {\n display: none;\n}\n.ant-tooltip-placement-top,\n.ant-tooltip-placement-topLeft,\n.ant-tooltip-placement-topRight {\n padding-bottom: 14.3137085px;\n}\n.ant-tooltip-placement-right,\n.ant-tooltip-placement-rightTop,\n.ant-tooltip-placement-rightBottom {\n padding-left: 14.3137085px;\n}\n.ant-tooltip-placement-bottom,\n.ant-tooltip-placement-bottomLeft,\n.ant-tooltip-placement-bottomRight {\n padding-top: 14.3137085px;\n}\n.ant-tooltip-placement-left,\n.ant-tooltip-placement-leftTop,\n.ant-tooltip-placement-leftBottom {\n padding-right: 14.3137085px;\n}\n.ant-tooltip-inner {\n min-width: 30px;\n min-height: 32px;\n padding: 6px 8px;\n color: #fff;\n text-align: left;\n text-decoration: none;\n word-wrap: break-word;\n background-color: rgba(0, 0, 0, 0.75);\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-tooltip-arrow {\n position: absolute;\n z-index: 2;\n display: block;\n width: 22px;\n height: 22px;\n overflow: hidden;\n background: transparent;\n pointer-events: none;\n}\n.ant-tooltip-arrow-content {\n --antd-arrow-background-color: linear-gradient(to right bottom, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.75));\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n width: 11.3137085px;\n height: 11.3137085px;\n margin: auto;\n content: '';\n pointer-events: auto;\n border-radius: 0 0 2px;\n pointer-events: none;\n}\n.ant-tooltip-arrow-content::before {\n position: absolute;\n top: -11.3137085px;\n left: -11.3137085px;\n width: 33.9411255px;\n height: 33.9411255px;\n background: var(--antd-arrow-background-color);\n background-repeat: no-repeat;\n background-position: -10px -10px;\n content: '';\n -webkit-clip-path: inset(33% 33%);\n clip-path: inset(33% 33%);\n -webkit-clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n}\n.ant-tooltip-placement-top .ant-tooltip-arrow,\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow,\n.ant-tooltip-placement-topRight .ant-tooltip-arrow {\n bottom: 0;\n transform: translateY(100%);\n}\n.ant-tooltip-placement-top .ant-tooltip-arrow-content,\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,\n.ant-tooltip-placement-topRight .ant-tooltip-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateY(-11px) rotate(45deg);\n}\n.ant-tooltip-placement-top .ant-tooltip-arrow {\n left: 50%;\n transform: translateY(100%) translateX(-50%);\n}\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow {\n left: 13px;\n}\n.ant-tooltip-placement-topRight .ant-tooltip-arrow {\n right: 13px;\n}\n.ant-tooltip-placement-right .ant-tooltip-arrow,\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow,\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {\n left: 0;\n transform: translateX(-100%);\n}\n.ant-tooltip-placement-right .ant-tooltip-arrow-content,\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content,\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content {\n box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(11px) rotate(135deg);\n}\n.ant-tooltip-placement-right .ant-tooltip-arrow {\n top: 50%;\n transform: translateX(-100%) translateY(-50%);\n}\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow {\n top: 5px;\n}\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {\n bottom: 5px;\n}\n.ant-tooltip-placement-left .ant-tooltip-arrow,\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow,\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {\n right: 0;\n transform: translateX(100%);\n}\n.ant-tooltip-placement-left .ant-tooltip-arrow-content,\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content,\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content {\n box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(-11px) rotate(315deg);\n}\n.ant-tooltip-placement-left .ant-tooltip-arrow {\n top: 50%;\n transform: translateX(100%) translateY(-50%);\n}\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow {\n top: 5px;\n}\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {\n bottom: 5px;\n}\n.ant-tooltip-placement-bottom .ant-tooltip-arrow,\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {\n top: 0;\n transform: translateY(-100%);\n}\n.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content {\n box-shadow: -3px -3px 7px rgba(0, 0, 0, 0.07);\n transform: translateY(11px) rotate(225deg);\n}\n.ant-tooltip-placement-bottom .ant-tooltip-arrow {\n left: 50%;\n transform: translateY(-100%) translateX(-50%);\n}\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow {\n left: 13px;\n}\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {\n right: 13px;\n}\n.ant-tooltip-pink .ant-tooltip-inner {\n background-color: #eb2f96;\n}\n.ant-tooltip-pink .ant-tooltip-arrow-content::before {\n background: #eb2f96;\n}\n.ant-tooltip-magenta .ant-tooltip-inner {\n background-color: #eb2f96;\n}\n.ant-tooltip-magenta .ant-tooltip-arrow-content::before {\n background: #eb2f96;\n}\n.ant-tooltip-red .ant-tooltip-inner {\n background-color: #f5222d;\n}\n.ant-tooltip-red .ant-tooltip-arrow-content::before {\n background: #f5222d;\n}\n.ant-tooltip-volcano .ant-tooltip-inner {\n background-color: #fa541c;\n}\n.ant-tooltip-volcano .ant-tooltip-arrow-content::before {\n background: #fa541c;\n}\n.ant-tooltip-orange .ant-tooltip-inner {\n background-color: #fa8c16;\n}\n.ant-tooltip-orange .ant-tooltip-arrow-content::before {\n background: #fa8c16;\n}\n.ant-tooltip-yellow .ant-tooltip-inner {\n background-color: #fadb14;\n}\n.ant-tooltip-yellow .ant-tooltip-arrow-content::before {\n background: #fadb14;\n}\n.ant-tooltip-gold .ant-tooltip-inner {\n background-color: #faad14;\n}\n.ant-tooltip-gold .ant-tooltip-arrow-content::before {\n background: #faad14;\n}\n.ant-tooltip-cyan .ant-tooltip-inner {\n background-color: #13c2c2;\n}\n.ant-tooltip-cyan .ant-tooltip-arrow-content::before {\n background: #13c2c2;\n}\n.ant-tooltip-lime .ant-tooltip-inner {\n background-color: #a0d911;\n}\n.ant-tooltip-lime .ant-tooltip-arrow-content::before {\n background: #a0d911;\n}\n.ant-tooltip-green .ant-tooltip-inner {\n background-color: #52c41a;\n}\n.ant-tooltip-green .ant-tooltip-arrow-content::before {\n background: #52c41a;\n}\n.ant-tooltip-blue .ant-tooltip-inner {\n background-color: #1890ff;\n}\n.ant-tooltip-blue .ant-tooltip-arrow-content::before {\n background: #1890ff;\n}\n.ant-tooltip-geekblue .ant-tooltip-inner {\n background-color: #2f54eb;\n}\n.ant-tooltip-geekblue .ant-tooltip-arrow-content::before {\n background: #2f54eb;\n}\n.ant-tooltip-purple .ant-tooltip-inner {\n background-color: #722ed1;\n}\n.ant-tooltip-purple .ant-tooltip-arrow-content::before {\n background: #722ed1;\n}\n.ant-tooltip-rtl {\n direction: rtl;\n}\n.ant-tooltip-rtl .ant-tooltip-inner {\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-space {\n display: inline-flex;\n}\n.ant-space-vertical {\n flex-direction: column;\n}\n.ant-space-align-center {\n align-items: center;\n}\n.ant-space-align-start {\n align-items: flex-start;\n}\n.ant-space-align-end {\n align-items: flex-end;\n}\n.ant-space-align-baseline {\n align-items: baseline;\n}\n.ant-space-item:empty {\n display: none;\n}\n.ant-space-compact {\n display: inline-flex;\n}\n.ant-space-compact-block {\n display: flex;\n width: 100%;\n}\n.ant-space-compact-vertical {\n flex-direction: column;\n}\n.ant-space-rtl {\n direction: rtl;\n}\n.ant-space-compact-rtl {\n direction: rtl;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-picker-calendar {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n background: #fff;\n}\n.ant-picker-calendar-header {\n display: flex;\n justify-content: flex-end;\n padding: 12px 0;\n}\n.ant-picker-calendar-header .ant-picker-calendar-year-select {\n min-width: 80px;\n}\n.ant-picker-calendar-header .ant-picker-calendar-month-select {\n min-width: 70px;\n margin-left: 8px;\n}\n.ant-picker-calendar-header .ant-picker-calendar-mode-switch {\n margin-left: 8px;\n}\n.ant-picker-calendar .ant-picker-panel {\n background: #fff;\n border: 0;\n border-top: 1px solid #f0f0f0;\n border-radius: 0;\n}\n.ant-picker-calendar .ant-picker-panel .ant-picker-month-panel,\n.ant-picker-calendar .ant-picker-panel .ant-picker-date-panel {\n width: auto;\n}\n.ant-picker-calendar .ant-picker-panel .ant-picker-body {\n padding: 8px 0;\n}\n.ant-picker-calendar .ant-picker-panel .ant-picker-content {\n width: 100%;\n}\n.ant-picker-calendar-mini {\n border-radius: 2px;\n}\n.ant-picker-calendar-mini .ant-picker-calendar-header {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-picker-calendar-mini .ant-picker-panel {\n border-radius: 0 0 2px 2px;\n}\n.ant-picker-calendar-mini .ant-picker-content {\n height: 256px;\n}\n.ant-picker-calendar-mini .ant-picker-content th {\n height: auto;\n padding: 0;\n line-height: 18px;\n}\n.ant-picker-calendar-mini .ant-picker-cell::before {\n pointer-events: none;\n}\n.ant-picker-calendar-full .ant-picker-panel {\n display: block;\n width: 100%;\n text-align: right;\n background: #fff;\n border: 0;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-body td {\n padding: 0;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th {\n height: auto;\n padding: 0 12px 5px 0;\n line-height: 18px;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell::before {\n display: none;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:hover .ant-picker-calendar-date {\n background: #f5f5f5;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell .ant-picker-calendar-date-today::before {\n display: none;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today {\n background: #e6f7ff;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date .ant-picker-calendar-date-value,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date .ant-picker-calendar-date-value,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today .ant-picker-calendar-date-value,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today .ant-picker-calendar-date-value {\n color: #1890ff;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date {\n display: block;\n width: auto;\n height: auto;\n margin: 0 4px;\n padding: 4px 8px 0;\n border: 0;\n border-top: 2px solid #f0f0f0;\n border-radius: 0;\n transition: background 0.3s;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-value {\n line-height: 24px;\n transition: color 0.3s;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content {\n position: static;\n width: auto;\n height: 86px;\n overflow-y: auto;\n color: rgba(0, 0, 0, 0.85);\n line-height: 1.5715;\n text-align: left;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today {\n border-color: #1890ff;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today .ant-picker-calendar-date-value {\n color: rgba(0, 0, 0, 0.85);\n}\n@media only screen and (max-width: 480px) {\n .ant-picker-calendar-header {\n display: block;\n }\n .ant-picker-calendar-header .ant-picker-calendar-year-select {\n width: 50%;\n }\n .ant-picker-calendar-header .ant-picker-calendar-month-select {\n width: calc(50% - 8px);\n }\n .ant-picker-calendar-header .ant-picker-calendar-mode-switch {\n width: 100%;\n margin-top: 8px;\n margin-left: 0;\n }\n .ant-picker-calendar-header .ant-picker-calendar-mode-switch > label {\n width: 50%;\n text-align: center;\n }\n}\n.ant-picker-calendar-rtl {\n direction: rtl;\n}\n.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-month-select {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-mode-switch {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel {\n text-align: left;\n}\n.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th {\n padding: 0 0 5px 12px;\n}\n.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content {\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-picker-status-error.ant-picker,\n.ant-picker-status-error.ant-picker:not([disabled]):hover {\n background-color: #fff;\n border-color: #ff4d4f;\n}\n.ant-picker-status-error.ant-picker-focused,\n.ant-picker-status-error.ant-picker:focus {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-picker-status-error.ant-picker .ant-picker-active-bar {\n background: #ff7875;\n}\n.ant-picker-status-warning.ant-picker,\n.ant-picker-status-warning.ant-picker:not([disabled]):hover {\n background-color: #fff;\n border-color: #faad14;\n}\n.ant-picker-status-warning.ant-picker-focused,\n.ant-picker-status-warning.ant-picker:focus {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-picker-status-warning.ant-picker .ant-picker-active-bar {\n background: #ffc53d;\n}\n.ant-picker {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n padding: 4px 11px 4px;\n position: relative;\n display: inline-flex;\n align-items: center;\n background: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: border 0.3s, box-shadow 0.3s;\n}\n.ant-picker:hover,\n.ant-picker-focused {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-picker-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-picker.ant-picker-disabled {\n background: #f5f5f5;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-picker.ant-picker-disabled .ant-picker-suffix {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-picker.ant-picker-borderless {\n background-color: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n}\n.ant-picker-input {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 100%;\n}\n.ant-picker-input > input {\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n flex: auto;\n min-width: 1px;\n height: auto;\n padding: 0;\n background: transparent;\n border: 0;\n}\n.ant-picker-input > input::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-picker-input > input:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-picker-input > input::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-picker-input > input:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-picker-input > input:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-picker-input > input:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-picker-input > input:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-picker-input > input:focus,\n.ant-picker-input > input-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-picker-input > input-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-picker-input > input-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-picker-input > input[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-picker-input > input[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-picker-input > input-borderless,\n.ant-picker-input > input-borderless:hover,\n.ant-picker-input > input-borderless:focus,\n.ant-picker-input > input-borderless-focused,\n.ant-picker-input > input-borderless-disabled,\n.ant-picker-input > input-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-picker-input > input {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-picker-input > input-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-picker-input > input-sm {\n padding: 0px 7px;\n}\n.ant-picker-input > input:focus {\n box-shadow: none;\n}\n.ant-picker-input > input[disabled] {\n background: transparent;\n}\n.ant-picker-input:hover .ant-picker-clear {\n opacity: 1;\n}\n.ant-picker-input-placeholder > input {\n color: #bfbfbf;\n}\n.ant-picker-large {\n padding: 6.5px 11px 6.5px;\n}\n.ant-picker-large .ant-picker-input > input {\n font-size: 16px;\n}\n.ant-picker-small {\n padding: 0px 7px 0px;\n}\n.ant-picker-suffix {\n display: flex;\n flex: none;\n align-self: center;\n margin-left: 4px;\n color: rgba(0, 0, 0, 0.25);\n line-height: 1;\n pointer-events: none;\n}\n.ant-picker-suffix > * {\n vertical-align: top;\n}\n.ant-picker-suffix > *:not(:last-child) {\n margin-right: 8px;\n}\n.ant-picker-clear {\n position: absolute;\n top: 50%;\n right: 0;\n color: rgba(0, 0, 0, 0.25);\n line-height: 1;\n background: #fff;\n transform: translateY(-50%);\n cursor: pointer;\n opacity: 0;\n transition: opacity 0.3s, color 0.3s;\n}\n.ant-picker-clear > * {\n vertical-align: top;\n}\n.ant-picker-clear:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-picker-separator {\n position: relative;\n display: inline-block;\n width: 1em;\n height: 16px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 16px;\n vertical-align: top;\n cursor: default;\n}\n.ant-picker-focused .ant-picker-separator {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-picker-disabled .ant-picker-range-separator .ant-picker-separator {\n cursor: not-allowed;\n}\n.ant-picker-range {\n position: relative;\n display: inline-flex;\n}\n.ant-picker-range .ant-picker-clear {\n right: 11px;\n}\n.ant-picker-range:hover .ant-picker-clear {\n opacity: 1;\n}\n.ant-picker-range .ant-picker-active-bar {\n bottom: -1px;\n height: 2px;\n margin-left: 11px;\n background: #1890ff;\n opacity: 0;\n transition: all 0.3s ease-out;\n pointer-events: none;\n}\n.ant-picker-range.ant-picker-focused .ant-picker-active-bar {\n opacity: 1;\n}\n.ant-picker-range-separator {\n align-items: center;\n padding: 0 8px;\n line-height: 1;\n}\n.ant-picker-range.ant-picker-small .ant-picker-clear {\n right: 7px;\n}\n.ant-picker-range.ant-picker-small .ant-picker-active-bar {\n margin-left: 7px;\n}\n.ant-picker-dropdown {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n}\n.ant-picker-dropdown-hidden {\n display: none;\n}\n.ant-picker-dropdown-placement-bottomLeft .ant-picker-range-arrow {\n top: 2.58561808px;\n display: block;\n transform: rotate(-135deg) translateY(1px);\n}\n.ant-picker-dropdown-placement-topLeft .ant-picker-range-arrow {\n bottom: 2.58561808px;\n display: block;\n transform: rotate(45deg);\n}\n.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topLeft,\n.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topRight,\n.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topLeft,\n.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topRight {\n animation-name: antSlideDownIn;\n}\n.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomLeft,\n.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomRight,\n.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomLeft,\n.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomRight {\n animation-name: antSlideUpIn;\n}\n.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topLeft,\n.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topRight {\n animation-name: antSlideDownOut;\n}\n.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomLeft,\n.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomRight {\n animation-name: antSlideUpOut;\n}\n.ant-picker-dropdown-range {\n padding: 7.54247233px 0;\n}\n.ant-picker-dropdown-range-hidden {\n display: none;\n}\n.ant-picker-dropdown .ant-picker-panel > .ant-picker-time-panel {\n padding-top: 4px;\n}\n.ant-picker-ranges {\n margin-bottom: 0;\n padding: 4px 12px;\n overflow: hidden;\n line-height: 34px;\n text-align: left;\n list-style: none;\n}\n.ant-picker-ranges > li {\n display: inline-block;\n}\n.ant-picker-ranges .ant-picker-preset > .ant-tag-blue {\n color: #1890ff;\n background: #e6f7ff;\n border-color: #91d5ff;\n cursor: pointer;\n}\n.ant-picker-ranges .ant-picker-ok {\n float: right;\n margin-left: 8px;\n}\n.ant-picker-range-wrapper {\n display: flex;\n}\n.ant-picker-range-arrow {\n position: absolute;\n z-index: 1;\n width: 11.3137085px;\n height: 11.3137085px;\n margin-left: 16.5px;\n box-shadow: 2px 2px 6px -2px rgba(0, 0, 0, 0.1);\n transition: left 0.3s ease-out;\n border-radius: 0 0 2px;\n pointer-events: none;\n}\n.ant-picker-range-arrow::before {\n position: absolute;\n top: -11.3137085px;\n left: -11.3137085px;\n width: 33.9411255px;\n height: 33.9411255px;\n background: #fff;\n background-repeat: no-repeat;\n background-position: -10px -10px;\n content: '';\n -webkit-clip-path: inset(33% 33%);\n clip-path: inset(33% 33%);\n -webkit-clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n}\n.ant-picker-panel-container {\n overflow: hidden;\n vertical-align: top;\n background: #fff;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n transition: margin 0.3s;\n}\n.ant-picker-panel-container .ant-picker-panels {\n display: inline-flex;\n flex-wrap: nowrap;\n direction: ltr;\n}\n.ant-picker-panel-container .ant-picker-panel {\n vertical-align: top;\n background: transparent;\n border-width: 0 0 1px 0;\n border-radius: 0;\n}\n.ant-picker-panel-container .ant-picker-panel .ant-picker-content,\n.ant-picker-panel-container .ant-picker-panel table {\n text-align: center;\n}\n.ant-picker-panel-container .ant-picker-panel-focused {\n border-color: #f0f0f0;\n}\n.ant-picker-compact-item:not(.ant-picker-compact-last-item):not(.ant-picker-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-picker-compact-item:not(.ant-picker-compact-last-item).ant-picker-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-picker-compact-item:hover,\n.ant-picker-compact-item:focus,\n.ant-picker-compact-item:active {\n z-index: 2;\n}\n.ant-picker-compact-item.ant-picker-focused {\n z-index: 2;\n}\n.ant-picker-compact-item[disabled] {\n z-index: 0;\n}\n.ant-picker-compact-item:not(.ant-picker-compact-first-item):not(.ant-picker-compact-last-item).ant-picker {\n border-radius: 0;\n}\n.ant-picker-compact-item.ant-picker.ant-picker-compact-first-item:not(.ant-picker-compact-last-item):not(.ant-picker-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-picker-compact-item.ant-picker.ant-picker-compact-last-item:not(.ant-picker-compact-first-item):not(.ant-picker-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-picker-compact-item.ant-picker.ant-picker-compact-item-rtl.ant-picker-compact-first-item:not(.ant-picker-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-picker-compact-item.ant-picker.ant-picker-compact-item-rtl.ant-picker-compact-last-item:not(.ant-picker-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-picker-panel {\n display: inline-flex;\n flex-direction: column;\n text-align: center;\n background: #fff;\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n outline: none;\n}\n.ant-picker-panel-focused {\n border-color: #1890ff;\n}\n.ant-picker-decade-panel,\n.ant-picker-year-panel,\n.ant-picker-quarter-panel,\n.ant-picker-month-panel,\n.ant-picker-week-panel,\n.ant-picker-date-panel,\n.ant-picker-time-panel {\n display: flex;\n flex-direction: column;\n width: 280px;\n}\n.ant-picker-header {\n display: flex;\n padding: 0 8px;\n color: rgba(0, 0, 0, 0.85);\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-picker-header > * {\n flex: none;\n}\n.ant-picker-header button {\n padding: 0;\n color: rgba(0, 0, 0, 0.25);\n line-height: 40px;\n background: transparent;\n border: 0;\n cursor: pointer;\n transition: color 0.3s;\n}\n.ant-picker-header > button {\n min-width: 1.6em;\n font-size: 14px;\n}\n.ant-picker-header > button:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-picker-header-view {\n flex: auto;\n font-weight: 500;\n line-height: 40px;\n}\n.ant-picker-header-view button {\n color: inherit;\n font-weight: inherit;\n}\n.ant-picker-header-view button:not(:first-child) {\n margin-left: 8px;\n}\n.ant-picker-header-view button:hover {\n color: #1890ff;\n}\n.ant-picker-prev-icon,\n.ant-picker-next-icon,\n.ant-picker-super-prev-icon,\n.ant-picker-super-next-icon {\n position: relative;\n display: inline-block;\n width: 7px;\n height: 7px;\n}\n.ant-picker-prev-icon::before,\n.ant-picker-next-icon::before,\n.ant-picker-super-prev-icon::before,\n.ant-picker-super-next-icon::before {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n width: 7px;\n height: 7px;\n border: 0 solid currentcolor;\n border-width: 1.5px 0 0 1.5px;\n content: '';\n}\n.ant-picker-super-prev-icon::after,\n.ant-picker-super-next-icon::after {\n position: absolute;\n top: 4px;\n left: 4px;\n display: inline-block;\n width: 7px;\n height: 7px;\n border: 0 solid currentcolor;\n border-width: 1.5px 0 0 1.5px;\n content: '';\n}\n.ant-picker-prev-icon,\n.ant-picker-super-prev-icon {\n transform: rotate(-45deg);\n}\n.ant-picker-next-icon,\n.ant-picker-super-next-icon {\n transform: rotate(135deg);\n}\n.ant-picker-content {\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n}\n.ant-picker-content th,\n.ant-picker-content td {\n position: relative;\n min-width: 24px;\n font-weight: 400;\n}\n.ant-picker-content th {\n height: 30px;\n color: rgba(0, 0, 0, 0.85);\n line-height: 30px;\n}\n.ant-picker-cell {\n padding: 3px 0;\n color: rgba(0, 0, 0, 0.25);\n cursor: pointer;\n}\n.ant-picker-cell-in-view {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-picker-cell::before {\n position: absolute;\n top: 50%;\n right: 0;\n left: 0;\n z-index: 1;\n height: 24px;\n transform: translateY(-50%);\n transition: all 0.3s;\n content: '';\n}\n.ant-picker-cell .ant-picker-cell-inner {\n position: relative;\n z-index: 2;\n display: inline-block;\n min-width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 2px;\n transition: background 0.3s, border 0.3s;\n}\n.ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner,\n.ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner {\n background: #f5f5f5;\n}\n.ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n border: 1px solid #1890ff;\n border-radius: 2px;\n content: '';\n}\n.ant-picker-cell-in-view.ant-picker-cell-in-range {\n position: relative;\n}\n.ant-picker-cell-in-view.ant-picker-cell-in-range::before {\n background: #e6f7ff;\n}\n.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner,\n.ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,\n.ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner {\n color: #fff;\n background: #1890ff;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single)::before,\n.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single)::before {\n background: #e6f7ff;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-start::before {\n left: 50%;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-end::before {\n right: 50%;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end)::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end)::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start-single::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-end-near-hover::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-start-near-hover::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-end-single::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-in-range)::after {\n position: absolute;\n top: 50%;\n z-index: 0;\n height: 24px;\n border-top: 1px dashed #7ec1ff;\n border-bottom: 1px dashed #7ec1ff;\n transform: translateY(-50%);\n transition: all 0.3s;\n content: '';\n}\n.ant-picker-cell-range-hover-start::after,\n.ant-picker-cell-range-hover-end::after,\n.ant-picker-cell-range-hover::after {\n right: 0;\n left: 2px;\n}\n.ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover::before,\n.ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-hover::before,\n.ant-picker-cell-in-view.ant-picker-cell-range-end.ant-picker-cell-range-hover::before,\n.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single).ant-picker-cell-range-hover-start::before,\n.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single).ant-picker-cell-range-hover-end::before,\n.ant-picker-panel > :not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start::before,\n.ant-picker-panel > :not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end::before {\n background: #cbe6ff;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner {\n border-radius: 2px 0 0 2px;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner {\n border-radius: 0 2px 2px 0;\n}\n.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner::after,\n.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner::after {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: -1;\n background: #cbe6ff;\n transition: all 0.3s;\n content: '';\n}\n.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner::after {\n right: -6px;\n left: 0;\n}\n.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner::after {\n right: 0;\n left: -6px;\n}\n.ant-picker-cell-range-hover.ant-picker-cell-range-start::after {\n right: 50%;\n}\n.ant-picker-cell-range-hover.ant-picker-cell-range-end::after {\n left: 50%;\n}\ntr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:first-child::after,\ntr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child::after,\n.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range)::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-start::after {\n left: 6px;\n border-left: 1px dashed #7ec1ff;\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\ntr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:last-child::after,\ntr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::after,\n.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range)::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-end::after {\n right: 6px;\n border-right: 1px dashed #7ec1ff;\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-picker-cell-disabled {\n color: rgba(0, 0, 0, 0.25);\n pointer-events: none;\n}\n.ant-picker-cell-disabled .ant-picker-cell-inner {\n background: transparent;\n}\n.ant-picker-cell-disabled::before {\n background: rgba(0, 0, 0, 0.04);\n}\n.ant-picker-cell-disabled.ant-picker-cell-today .ant-picker-cell-inner::before {\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-picker-decade-panel .ant-picker-content,\n.ant-picker-year-panel .ant-picker-content,\n.ant-picker-quarter-panel .ant-picker-content,\n.ant-picker-month-panel .ant-picker-content {\n height: 264px;\n}\n.ant-picker-decade-panel .ant-picker-cell-inner,\n.ant-picker-year-panel .ant-picker-cell-inner,\n.ant-picker-quarter-panel .ant-picker-cell-inner,\n.ant-picker-month-panel .ant-picker-cell-inner {\n padding: 0 8px;\n}\n.ant-picker-quarter-panel .ant-picker-content {\n height: 56px;\n}\n.ant-picker-footer {\n width: -moz-min-content;\n width: min-content;\n min-width: 100%;\n line-height: 38px;\n text-align: center;\n border-bottom: 1px solid transparent;\n}\n.ant-picker-panel .ant-picker-footer {\n border-top: 1px solid #f0f0f0;\n}\n.ant-picker-footer-extra {\n padding: 0 12px;\n line-height: 38px;\n text-align: left;\n}\n.ant-picker-footer-extra:not(:last-child) {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-picker-now {\n text-align: left;\n}\n.ant-picker-today-btn {\n color: #1890ff;\n}\n.ant-picker-today-btn:hover {\n color: #40a9ff;\n}\n.ant-picker-today-btn:active {\n color: #096dd9;\n}\n.ant-picker-today-btn.ant-picker-today-btn-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-picker-decade-panel .ant-picker-cell-inner {\n padding: 0 4px;\n}\n.ant-picker-decade-panel .ant-picker-cell::before {\n display: none;\n}\n.ant-picker-year-panel .ant-picker-body,\n.ant-picker-quarter-panel .ant-picker-body,\n.ant-picker-month-panel .ant-picker-body {\n padding: 0 8px;\n}\n.ant-picker-year-panel .ant-picker-cell-inner,\n.ant-picker-quarter-panel .ant-picker-cell-inner,\n.ant-picker-month-panel .ant-picker-cell-inner {\n width: 60px;\n}\n.ant-picker-year-panel .ant-picker-cell-range-hover-start::after,\n.ant-picker-quarter-panel .ant-picker-cell-range-hover-start::after,\n.ant-picker-month-panel .ant-picker-cell-range-hover-start::after {\n left: 14px;\n border-left: 1px dashed #7ec1ff;\n border-radius: 2px 0 0 2px;\n}\n.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-start::after,\n.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-start::after,\n.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-start::after {\n right: 14px;\n border-right: 1px dashed #7ec1ff;\n border-radius: 0 2px 2px 0;\n}\n.ant-picker-year-panel .ant-picker-cell-range-hover-end::after,\n.ant-picker-quarter-panel .ant-picker-cell-range-hover-end::after,\n.ant-picker-month-panel .ant-picker-cell-range-hover-end::after {\n right: 14px;\n border-right: 1px dashed #7ec1ff;\n border-radius: 0 2px 2px 0;\n}\n.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-end::after,\n.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-end::after,\n.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-end::after {\n left: 14px;\n border-left: 1px dashed #7ec1ff;\n border-radius: 2px 0 0 2px;\n}\n.ant-picker-week-panel .ant-picker-body {\n padding: 8px 12px;\n}\n.ant-picker-week-panel .ant-picker-cell:hover .ant-picker-cell-inner,\n.ant-picker-week-panel .ant-picker-cell-selected .ant-picker-cell-inner,\n.ant-picker-week-panel .ant-picker-cell .ant-picker-cell-inner {\n background: transparent !important;\n}\n.ant-picker-week-panel-row td {\n transition: background 0.3s;\n}\n.ant-picker-week-panel-row:hover td {\n background: #f5f5f5;\n}\n.ant-picker-week-panel-row-selected td,\n.ant-picker-week-panel-row-selected:hover td {\n background: #1890ff;\n}\n.ant-picker-week-panel-row-selected td.ant-picker-cell-week,\n.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-week {\n color: rgba(255, 255, 255, 0.5);\n}\n.ant-picker-week-panel-row-selected td.ant-picker-cell-today .ant-picker-cell-inner::before,\n.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-today .ant-picker-cell-inner::before {\n border-color: #fff;\n}\n.ant-picker-week-panel-row-selected td .ant-picker-cell-inner,\n.ant-picker-week-panel-row-selected:hover td .ant-picker-cell-inner {\n color: #fff;\n}\n.ant-picker-date-panel .ant-picker-body {\n padding: 8px 12px;\n}\n.ant-picker-date-panel .ant-picker-content {\n width: 252px;\n}\n.ant-picker-date-panel .ant-picker-content th {\n width: 36px;\n}\n.ant-picker-datetime-panel {\n display: flex;\n}\n.ant-picker-datetime-panel .ant-picker-time-panel {\n border-left: 1px solid #f0f0f0;\n}\n.ant-picker-datetime-panel .ant-picker-date-panel,\n.ant-picker-datetime-panel .ant-picker-time-panel {\n transition: opacity 0.3s;\n}\n.ant-picker-datetime-panel-active .ant-picker-date-panel,\n.ant-picker-datetime-panel-active .ant-picker-time-panel {\n opacity: 0.3;\n}\n.ant-picker-datetime-panel-active .ant-picker-date-panel-active,\n.ant-picker-datetime-panel-active .ant-picker-time-panel-active {\n opacity: 1;\n}\n.ant-picker-time-panel {\n width: auto;\n min-width: auto;\n}\n.ant-picker-time-panel .ant-picker-content {\n display: flex;\n flex: auto;\n height: 224px;\n}\n.ant-picker-time-panel-column {\n flex: 1 0 auto;\n width: 56px;\n margin: 0;\n padding: 0;\n overflow-y: hidden;\n text-align: left;\n list-style: none;\n transition: background 0.3s;\n}\n.ant-picker-time-panel-column::after {\n display: block;\n height: 196px;\n content: '';\n}\n.ant-picker-datetime-panel .ant-picker-time-panel-column::after {\n height: 198px;\n}\n.ant-picker-time-panel-column:not(:first-child) {\n border-left: 1px solid #f0f0f0;\n}\n.ant-picker-time-panel-column-active {\n background: rgba(230, 247, 255, 0.2);\n}\n.ant-picker-time-panel-column:hover {\n overflow-y: auto;\n}\n.ant-picker-time-panel-column > li {\n margin: 0;\n padding: 0;\n}\n.ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner {\n display: block;\n width: 100%;\n height: 28px;\n margin: 0;\n padding: 0 0 0 14px;\n color: rgba(0, 0, 0, 0.85);\n line-height: 28px;\n border-radius: 0;\n cursor: pointer;\n transition: background 0.3s;\n}\n.ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover {\n background: #f5f5f5;\n}\n.ant-picker-time-panel-column > li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner {\n background: #e6f7ff;\n}\n.ant-picker-time-panel-column > li.ant-picker-time-panel-cell-disabled .ant-picker-time-panel-cell-inner {\n color: rgba(0, 0, 0, 0.25);\n background: transparent;\n cursor: not-allowed;\n}\n/* stylelint-disable selector-type-no-unknown,selector-no-vendor-prefix */\n_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,\n:root .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,\n_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell,\n:root .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell {\n padding: 21px 0;\n}\n.ant-picker-rtl {\n direction: rtl;\n}\n.ant-picker-rtl .ant-picker-suffix {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-picker-rtl .ant-picker-clear {\n right: auto;\n left: 0;\n}\n.ant-picker-rtl .ant-picker-separator {\n transform: rotate(180deg);\n}\n.ant-picker-panel-rtl .ant-picker-header-view button:not(:first-child) {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-picker-rtl.ant-picker-range .ant-picker-clear {\n right: auto;\n left: 11px;\n}\n.ant-picker-rtl.ant-picker-range .ant-picker-active-bar {\n margin-right: 11px;\n margin-left: 0;\n}\n.ant-picker-rtl.ant-picker-range.ant-picker-small .ant-picker-active-bar {\n margin-right: 7px;\n}\n.ant-picker-dropdown-rtl .ant-picker-ranges {\n text-align: right;\n}\n.ant-picker-dropdown-rtl .ant-picker-ranges .ant-picker-ok {\n float: left;\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-picker-panel-rtl {\n direction: rtl;\n}\n.ant-picker-panel-rtl .ant-picker-prev-icon,\n.ant-picker-panel-rtl .ant-picker-super-prev-icon {\n transform: rotate(135deg);\n}\n.ant-picker-panel-rtl .ant-picker-next-icon,\n.ant-picker-panel-rtl .ant-picker-super-next-icon {\n transform: rotate(-45deg);\n}\n.ant-picker-cell .ant-picker-cell-inner {\n position: relative;\n z-index: 2;\n display: inline-block;\n min-width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 2px;\n transition: background 0.3s, border 0.3s;\n}\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start::before {\n right: 50%;\n left: 0;\n}\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end::before {\n right: 0;\n left: 50%;\n}\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-end::before {\n right: 50%;\n left: 50%;\n}\n.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner::after {\n right: 0;\n left: -6px;\n}\n.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner::after {\n right: -6px;\n left: 0;\n}\n.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-start::after {\n right: 0;\n left: 50%;\n}\n.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-end::after {\n right: 50%;\n left: 0;\n}\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner {\n border-radius: 0 2px 2px 0;\n}\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner {\n border-radius: 2px 0 0 2px;\n}\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):first-child::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range)::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-start::after {\n right: 6px;\n left: 0;\n border-right: 1px dashed #7ec1ff;\n border-left: none;\n border-radius: 0 2px 2px 0;\n}\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):last-child::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range)::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-end::after {\n right: 0;\n left: 6px;\n border-right: none;\n border-left: 1px dashed #7ec1ff;\n border-radius: 2px 0 0 2px;\n}\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::after,\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover)::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-end.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover)::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-start.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover)::after,\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-start:last-child::after,\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-end:first-child::after {\n right: 6px;\n left: 6px;\n border-right: 1px dashed #7ec1ff;\n border-left: 1px dashed #7ec1ff;\n border-radius: 2px;\n}\n.ant-picker-dropdown-rtl .ant-picker-footer-extra {\n direction: rtl;\n text-align: right;\n}\n.ant-picker-panel-rtl .ant-picker-time-panel {\n direction: ltr;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-tag {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n height: auto;\n margin-right: 8px;\n padding: 0 7px;\n font-size: 12px;\n line-height: 20px;\n white-space: nowrap;\n background: #fafafa;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n opacity: 1;\n transition: all 0.3s;\n}\n.ant-tag,\n.ant-tag a,\n.ant-tag a:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-tag > a:first-child:last-child {\n display: inline-block;\n margin: 0 -8px;\n padding: 0 8px;\n}\n.ant-tag-close-icon {\n margin-left: 3px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 10px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-tag-close-icon:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-tag-has-color {\n border-color: transparent;\n}\n.ant-tag-has-color,\n.ant-tag-has-color a,\n.ant-tag-has-color a:hover,\n.ant-tag-has-color .anticon-close,\n.ant-tag-has-color .anticon-close:hover {\n color: #fff;\n}\n.ant-tag-checkable {\n background-color: transparent;\n border-color: transparent;\n cursor: pointer;\n}\n.ant-tag-checkable:not(.ant-tag-checkable-checked):hover {\n color: #1890ff;\n}\n.ant-tag-checkable:active,\n.ant-tag-checkable-checked {\n color: #fff;\n}\n.ant-tag-checkable-checked {\n background-color: #1890ff;\n}\n.ant-tag-checkable:active {\n background-color: #096dd9;\n}\n.ant-tag-hidden {\n display: none;\n}\n.ant-tag-pink {\n color: #c41d7f;\n background: #fff0f6;\n border-color: #ffadd2;\n}\n.ant-tag-pink-inverse {\n color: #fff;\n background: #eb2f96;\n border-color: #eb2f96;\n}\n.ant-tag-magenta {\n color: #c41d7f;\n background: #fff0f6;\n border-color: #ffadd2;\n}\n.ant-tag-magenta-inverse {\n color: #fff;\n background: #eb2f96;\n border-color: #eb2f96;\n}\n.ant-tag-red {\n color: #cf1322;\n background: #fff1f0;\n border-color: #ffa39e;\n}\n.ant-tag-red-inverse {\n color: #fff;\n background: #f5222d;\n border-color: #f5222d;\n}\n.ant-tag-volcano {\n color: #d4380d;\n background: #fff2e8;\n border-color: #ffbb96;\n}\n.ant-tag-volcano-inverse {\n color: #fff;\n background: #fa541c;\n border-color: #fa541c;\n}\n.ant-tag-orange {\n color: #d46b08;\n background: #fff7e6;\n border-color: #ffd591;\n}\n.ant-tag-orange-inverse {\n color: #fff;\n background: #fa8c16;\n border-color: #fa8c16;\n}\n.ant-tag-yellow {\n color: #d4b106;\n background: #feffe6;\n border-color: #fffb8f;\n}\n.ant-tag-yellow-inverse {\n color: #fff;\n background: #fadb14;\n border-color: #fadb14;\n}\n.ant-tag-gold {\n color: #d48806;\n background: #fffbe6;\n border-color: #ffe58f;\n}\n.ant-tag-gold-inverse {\n color: #fff;\n background: #faad14;\n border-color: #faad14;\n}\n.ant-tag-cyan {\n color: #08979c;\n background: #e6fffb;\n border-color: #87e8de;\n}\n.ant-tag-cyan-inverse {\n color: #fff;\n background: #13c2c2;\n border-color: #13c2c2;\n}\n.ant-tag-lime {\n color: #7cb305;\n background: #fcffe6;\n border-color: #eaff8f;\n}\n.ant-tag-lime-inverse {\n color: #fff;\n background: #a0d911;\n border-color: #a0d911;\n}\n.ant-tag-green {\n color: #389e0d;\n background: #f6ffed;\n border-color: #b7eb8f;\n}\n.ant-tag-green-inverse {\n color: #fff;\n background: #52c41a;\n border-color: #52c41a;\n}\n.ant-tag-blue {\n color: #096dd9;\n background: #e6f7ff;\n border-color: #91d5ff;\n}\n.ant-tag-blue-inverse {\n color: #fff;\n background: #1890ff;\n border-color: #1890ff;\n}\n.ant-tag-geekblue {\n color: #1d39c4;\n background: #f0f5ff;\n border-color: #adc6ff;\n}\n.ant-tag-geekblue-inverse {\n color: #fff;\n background: #2f54eb;\n border-color: #2f54eb;\n}\n.ant-tag-purple {\n color: #531dab;\n background: #f9f0ff;\n border-color: #d3adf7;\n}\n.ant-tag-purple-inverse {\n color: #fff;\n background: #722ed1;\n border-color: #722ed1;\n}\n.ant-tag-success {\n color: #52c41a;\n background: #f6ffed;\n border-color: #b7eb8f;\n}\n.ant-tag-processing {\n color: #1890ff;\n background: #e6f7ff;\n border-color: #91d5ff;\n}\n.ant-tag-error {\n color: #ff4d4f;\n background: #fff2f0;\n border-color: #ffccc7;\n}\n.ant-tag-warning {\n color: #faad14;\n background: #fffbe6;\n border-color: #ffe58f;\n}\n.ant-tag > .anticon + span,\n.ant-tag > span + .anticon {\n margin-left: 7px;\n}\n.ant-tag.ant-tag-rtl {\n margin-right: 0;\n margin-left: 8px;\n direction: rtl;\n text-align: right;\n}\n.ant-tag-rtl .ant-tag-close-icon {\n margin-right: 3px;\n margin-left: 0;\n}\n.ant-tag-rtl.ant-tag > .anticon + span,\n.ant-tag-rtl.ant-tag > span + .anticon {\n margin-right: 7px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-radio-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n font-size: 0;\n}\n.ant-radio-group .ant-badge-count {\n z-index: 1;\n}\n.ant-radio-group > .ant-badge:not(:first-child) > .ant-radio-button-wrapper {\n border-left: none;\n}\n.ant-radio-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-flex;\n align-items: baseline;\n margin-right: 8px;\n cursor: pointer;\n}\n.ant-radio-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-radio-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-radio-wrapper.ant-radio-wrapper-in-form-item input[type='radio'] {\n width: 14px;\n height: 14px;\n}\n.ant-radio {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n display: inline-block;\n outline: none;\n cursor: pointer;\n}\n.ant-radio-wrapper:hover .ant-radio,\n.ant-radio:hover .ant-radio-inner,\n.ant-radio-input:focus + .ant-radio-inner {\n border-color: #1890ff;\n}\n.ant-radio-input:focus + .ant-radio-inner {\n box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.12);\n}\n.ant-radio-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 50%;\n visibility: hidden;\n animation: antRadioEffect 0.36s ease-in-out;\n animation-fill-mode: both;\n content: '';\n}\n.ant-radio:hover::after,\n.ant-radio-wrapper:hover .ant-radio::after {\n visibility: visible;\n}\n.ant-radio-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n background-color: #fff;\n border-color: #d9d9d9;\n border-style: solid;\n border-width: 1px;\n border-radius: 50%;\n transition: all 0.3s;\n}\n.ant-radio-inner::after {\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n width: 16px;\n height: 16px;\n margin-top: -8px;\n margin-left: -8px;\n background-color: #1890ff;\n border-top: 0;\n border-left: 0;\n border-radius: 16px;\n transform: scale(0);\n opacity: 0;\n transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n content: ' ';\n}\n.ant-radio-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n cursor: pointer;\n opacity: 0;\n}\n.ant-radio.ant-radio-disabled .ant-radio-inner {\n border-color: #d9d9d9;\n}\n.ant-radio-checked .ant-radio-inner {\n border-color: #1890ff;\n}\n.ant-radio-checked .ant-radio-inner::after {\n transform: scale(0.5);\n opacity: 1;\n transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-radio-disabled {\n cursor: not-allowed;\n}\n.ant-radio-disabled .ant-radio-inner {\n background-color: #f5f5f5;\n cursor: not-allowed;\n}\n.ant-radio-disabled .ant-radio-inner::after {\n background-color: rgba(0, 0, 0, 0.2);\n}\n.ant-radio-disabled .ant-radio-input {\n cursor: not-allowed;\n}\n.ant-radio-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\nspan.ant-radio + * {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-radio-button-wrapper {\n position: relative;\n display: inline-block;\n height: 32px;\n margin: 0;\n padding: 0 15px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 30px;\n background: #fff;\n border: 1px solid #d9d9d9;\n border-top-width: 1.02px;\n border-left-width: 0;\n cursor: pointer;\n transition: color 0.3s, background 0.3s, border-color 0.3s, box-shadow 0.3s;\n}\n.ant-radio-button-wrapper a {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-radio-button-wrapper > .ant-radio-button {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n}\n.ant-radio-group-large .ant-radio-button-wrapper {\n height: 40px;\n font-size: 16px;\n line-height: 38px;\n}\n.ant-radio-group-small .ant-radio-button-wrapper {\n height: 24px;\n padding: 0 7px;\n line-height: 22px;\n}\n.ant-radio-button-wrapper:not(:first-child)::before {\n position: absolute;\n top: -1px;\n left: -1px;\n display: block;\n box-sizing: content-box;\n width: 1px;\n height: 100%;\n padding: 1px 0;\n background-color: #d9d9d9;\n transition: background-color 0.3s;\n content: '';\n}\n.ant-radio-button-wrapper:first-child {\n border-left: 1px solid #d9d9d9;\n border-radius: 2px 0 0 2px;\n}\n.ant-radio-button-wrapper:last-child {\n border-radius: 0 2px 2px 0;\n}\n.ant-radio-button-wrapper:first-child:last-child {\n border-radius: 2px;\n}\n.ant-radio-button-wrapper:hover {\n position: relative;\n color: #1890ff;\n}\n.ant-radio-button-wrapper:focus-within {\n box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.12);\n}\n.ant-radio-button-wrapper .ant-radio-inner,\n.ant-radio-button-wrapper input[type='checkbox'],\n.ant-radio-button-wrapper input[type='radio'] {\n width: 0;\n height: 0;\n opacity: 0;\n pointer-events: none;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {\n z-index: 1;\n color: #1890ff;\n background: #fff;\n border-color: #1890ff;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before {\n background-color: #1890ff;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child {\n border-color: #1890ff;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {\n color: #40a9ff;\n border-color: #40a9ff;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover::before {\n background-color: #40a9ff;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {\n color: #096dd9;\n border-color: #096dd9;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active::before {\n background-color: #096dd9;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {\n box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.12);\n}\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {\n color: #fff;\n background: #1890ff;\n border-color: #1890ff;\n}\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {\n color: #fff;\n background: #40a9ff;\n border-color: #40a9ff;\n}\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {\n color: #fff;\n background: #096dd9;\n border-color: #096dd9;\n}\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {\n box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.12);\n}\n.ant-radio-button-wrapper-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-radio-button-wrapper-disabled:first-child,\n.ant-radio-button-wrapper-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n}\n.ant-radio-button-wrapper-disabled:first-child {\n border-left-color: #d9d9d9;\n}\n.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked {\n color: rgba(0, 0, 0, 0.25);\n background-color: #e6e6e6;\n border-color: #d9d9d9;\n box-shadow: none;\n}\n@keyframes antRadioEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-radio-group.ant-radio-group-rtl {\n direction: rtl;\n}\n.ant-radio-wrapper.ant-radio-wrapper-rtl {\n margin-right: 0;\n margin-left: 8px;\n direction: rtl;\n}\n.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl {\n border-right-width: 0;\n border-left-width: 1px;\n}\n.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:not(:first-child)::before {\n right: -1px;\n left: 0;\n}\n.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:first-child {\n border-right: 1px solid #d9d9d9;\n border-radius: 0 2px 2px 0;\n}\n.ant-radio-button-wrapper-checked:not([class*=' ant-radio-button-wrapper-disabled']).ant-radio-button-wrapper:first-child {\n border-right-color: #40a9ff;\n}\n.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:last-child {\n border-radius: 2px 0 0 2px;\n}\n.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper-disabled:first-child {\n border-right-color: #d9d9d9;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-card {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n background: #fff;\n border-radius: 2px;\n}\n.ant-card-rtl {\n direction: rtl;\n}\n.ant-card-hoverable {\n cursor: pointer;\n transition: box-shadow 0.3s, border-color 0.3s;\n}\n.ant-card-hoverable:hover {\n border-color: transparent;\n box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);\n}\n.ant-card-bordered {\n border: 1px solid #f0f0f0;\n}\n.ant-card-head {\n min-height: 48px;\n margin-bottom: -1px;\n padding: 0 24px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n background: transparent;\n border-bottom: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n}\n.ant-card-head::before {\n display: table;\n content: '';\n}\n.ant-card-head::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-card-head-wrapper {\n display: flex;\n align-items: center;\n}\n.ant-card-head-title {\n display: inline-block;\n flex: 1;\n padding: 16px 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-card-head-title > .ant-typography,\n.ant-card-head-title > .ant-typography-edit-content {\n left: 0;\n margin-top: 0;\n margin-bottom: 0;\n}\n.ant-card-head .ant-tabs-top {\n clear: both;\n margin-bottom: -17px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n}\n.ant-card-head .ant-tabs-top-bar {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-card-extra {\n margin-left: auto;\n padding: 16px 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n}\n.ant-card-rtl .ant-card-extra {\n margin-right: auto;\n margin-left: 0;\n}\n.ant-card-body {\n padding: 24px;\n}\n.ant-card-body::before {\n display: table;\n content: '';\n}\n.ant-card-body::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-card-contain-grid .ant-card-body {\n display: flex;\n flex-wrap: wrap;\n}\n.ant-card-contain-grid:not(.ant-card-loading) .ant-card-body {\n margin: -1px 0 0 -1px;\n padding: 0;\n}\n.ant-card-grid {\n width: 33.33%;\n padding: 24px;\n border: 0;\n border-radius: 0;\n box-shadow: 1px 0 0 0 #f0f0f0, 0 1px 0 0 #f0f0f0, 1px 1px 0 0 #f0f0f0, 1px 0 0 0 #f0f0f0 inset, 0 1px 0 0 #f0f0f0 inset;\n transition: all 0.3s;\n}\n.ant-card-grid-hoverable:hover {\n position: relative;\n z-index: 1;\n box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);\n}\n.ant-card-contain-tabs > .ant-card-head .ant-card-head-title {\n min-height: 32px;\n padding-bottom: 0;\n}\n.ant-card-contain-tabs > .ant-card-head .ant-card-extra {\n padding-bottom: 0;\n}\n.ant-card-bordered .ant-card-cover {\n margin-top: -1px;\n margin-right: -1px;\n margin-left: -1px;\n}\n.ant-card-cover > * {\n display: block;\n width: 100%;\n}\n.ant-card-cover img {\n border-radius: 2px 2px 0 0;\n}\n.ant-card-actions {\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n background: #fff;\n border-top: 1px solid #f0f0f0;\n}\n.ant-card-actions::before {\n display: table;\n content: '';\n}\n.ant-card-actions::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-card-actions > li {\n margin: 12px 0;\n color: rgba(0, 0, 0, 0.45);\n text-align: center;\n}\n.ant-card-actions > li > span {\n position: relative;\n display: block;\n min-width: 32px;\n font-size: 14px;\n line-height: 1.5715;\n cursor: pointer;\n}\n.ant-card-actions > li > span:hover {\n color: #1890ff;\n transition: color 0.3s;\n}\n.ant-card-actions > li > span a:not(.ant-btn),\n.ant-card-actions > li > span > .anticon {\n display: inline-block;\n width: 100%;\n color: rgba(0, 0, 0, 0.45);\n line-height: 22px;\n transition: color 0.3s;\n}\n.ant-card-actions > li > span a:not(.ant-btn):hover,\n.ant-card-actions > li > span > .anticon:hover {\n color: #1890ff;\n}\n.ant-card-actions > li > span > .anticon {\n font-size: 16px;\n line-height: 22px;\n}\n.ant-card-actions > li:not(:last-child) {\n border-right: 1px solid #f0f0f0;\n}\n.ant-card-rtl .ant-card-actions > li:not(:last-child) {\n border-right: none;\n border-left: 1px solid #f0f0f0;\n}\n.ant-card-type-inner .ant-card-head {\n padding: 0 24px;\n background: #fafafa;\n}\n.ant-card-type-inner .ant-card-head-title {\n padding: 12px 0;\n font-size: 14px;\n}\n.ant-card-type-inner .ant-card-body {\n padding: 16px 24px;\n}\n.ant-card-type-inner .ant-card-extra {\n padding: 13.5px 0;\n}\n.ant-card-meta {\n display: flex;\n margin: -4px 0;\n}\n.ant-card-meta::before {\n display: table;\n content: '';\n}\n.ant-card-meta::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-card-meta-avatar {\n padding-right: 16px;\n}\n.ant-card-rtl .ant-card-meta-avatar {\n padding-right: 0;\n padding-left: 16px;\n}\n.ant-card-meta-detail {\n flex: 1;\n overflow: hidden;\n}\n.ant-card-meta-detail > div:not(:last-child) {\n margin-bottom: 8px;\n}\n.ant-card-meta-title {\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-card-meta-description {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-card-loading {\n overflow: hidden;\n}\n.ant-card-loading .ant-card-body {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-card-small > .ant-card-head {\n min-height: 36px;\n padding: 0 12px;\n font-size: 14px;\n}\n.ant-card-small > .ant-card-head > .ant-card-head-wrapper > .ant-card-head-title {\n padding: 8px 0;\n}\n.ant-card-small > .ant-card-head > .ant-card-head-wrapper > .ant-card-extra {\n padding: 8px 0;\n font-size: 14px;\n}\n.ant-card-small > .ant-card-body {\n padding: 12px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-skeleton {\n display: table;\n width: 100%;\n}\n.ant-skeleton-header {\n display: table-cell;\n padding-right: 16px;\n vertical-align: top;\n}\n.ant-skeleton-header .ant-skeleton-avatar {\n display: inline-block;\n vertical-align: top;\n background: rgba(190, 190, 190, 0.2);\n width: 32px;\n height: 32px;\n line-height: 32px;\n}\n.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-header .ant-skeleton-avatar-lg {\n width: 40px;\n height: 40px;\n line-height: 40px;\n}\n.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-header .ant-skeleton-avatar-sm {\n width: 24px;\n height: 24px;\n line-height: 24px;\n}\n.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-content {\n display: table-cell;\n width: 100%;\n vertical-align: top;\n}\n.ant-skeleton-content .ant-skeleton-title {\n width: 100%;\n height: 16px;\n background: rgba(190, 190, 190, 0.2);\n border-radius: 2px;\n}\n.ant-skeleton-content .ant-skeleton-title + .ant-skeleton-paragraph {\n margin-top: 24px;\n}\n.ant-skeleton-content .ant-skeleton-paragraph {\n padding: 0;\n}\n.ant-skeleton-content .ant-skeleton-paragraph > li {\n width: 100%;\n height: 16px;\n list-style: none;\n background: rgba(190, 190, 190, 0.2);\n border-radius: 2px;\n}\n.ant-skeleton-content .ant-skeleton-paragraph > li:last-child:not(:first-child):not(:nth-child(2)) {\n width: 61%;\n}\n.ant-skeleton-content .ant-skeleton-paragraph > li + li {\n margin-top: 16px;\n}\n.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title {\n margin-top: 12px;\n}\n.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title + .ant-skeleton-paragraph {\n margin-top: 28px;\n}\n.ant-skeleton-round .ant-skeleton-content .ant-skeleton-title,\n.ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph > li {\n border-radius: 100px;\n}\n.ant-skeleton-active .ant-skeleton-title,\n.ant-skeleton-active .ant-skeleton-paragraph > li,\n.ant-skeleton-active .ant-skeleton-avatar,\n.ant-skeleton-active .ant-skeleton-button,\n.ant-skeleton-active .ant-skeleton-input,\n.ant-skeleton-active .ant-skeleton-image {\n position: relative;\n /* stylelint-disable-next-line property-no-vendor-prefix,value-no-vendor-prefix */\n z-index: 0;\n overflow: hidden;\n background: transparent;\n}\n.ant-skeleton-active .ant-skeleton-title::after,\n.ant-skeleton-active .ant-skeleton-paragraph > li::after,\n.ant-skeleton-active .ant-skeleton-avatar::after,\n.ant-skeleton-active .ant-skeleton-button::after,\n.ant-skeleton-active .ant-skeleton-input::after,\n.ant-skeleton-active .ant-skeleton-image::after {\n position: absolute;\n top: 0;\n right: -150%;\n bottom: 0;\n left: -150%;\n background: linear-gradient(90deg, rgba(190, 190, 190, 0.2) 25%, rgba(129, 129, 129, 0.24) 37%, rgba(190, 190, 190, 0.2) 63%);\n animation: ant-skeleton-loading 1.4s ease infinite;\n content: '';\n}\n.ant-skeleton.ant-skeleton-block {\n width: 100%;\n}\n.ant-skeleton.ant-skeleton-block .ant-skeleton-button {\n width: 100%;\n}\n.ant-skeleton.ant-skeleton-block .ant-skeleton-input {\n width: 100%;\n}\n.ant-skeleton-element {\n display: inline-block;\n width: auto;\n}\n.ant-skeleton-element .ant-skeleton-button {\n display: inline-block;\n vertical-align: top;\n background: rgba(190, 190, 190, 0.2);\n border-radius: 2px;\n width: 64px;\n min-width: 64px;\n height: 32px;\n line-height: 32px;\n}\n.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-square {\n width: 32px;\n min-width: 32px;\n}\n.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle {\n width: 32px;\n min-width: 32px;\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round {\n border-radius: 32px;\n}\n.ant-skeleton-element .ant-skeleton-button-lg {\n width: 80px;\n min-width: 80px;\n height: 40px;\n line-height: 40px;\n}\n.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-square {\n width: 40px;\n min-width: 40px;\n}\n.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-circle {\n width: 40px;\n min-width: 40px;\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-round {\n border-radius: 40px;\n}\n.ant-skeleton-element .ant-skeleton-button-sm {\n width: 48px;\n min-width: 48px;\n height: 24px;\n line-height: 24px;\n}\n.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-square {\n width: 24px;\n min-width: 24px;\n}\n.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-circle {\n width: 24px;\n min-width: 24px;\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-round {\n border-radius: 24px;\n}\n.ant-skeleton-element .ant-skeleton-avatar {\n display: inline-block;\n vertical-align: top;\n background: rgba(190, 190, 190, 0.2);\n width: 32px;\n height: 32px;\n line-height: 32px;\n}\n.ant-skeleton-element .ant-skeleton-avatar.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-avatar-lg {\n width: 40px;\n height: 40px;\n line-height: 40px;\n}\n.ant-skeleton-element .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-avatar-sm {\n width: 24px;\n height: 24px;\n line-height: 24px;\n}\n.ant-skeleton-element .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-input {\n display: inline-block;\n vertical-align: top;\n background: rgba(190, 190, 190, 0.2);\n width: 160px;\n min-width: 160px;\n height: 32px;\n line-height: 32px;\n}\n.ant-skeleton-element .ant-skeleton-input-lg {\n width: 200px;\n min-width: 200px;\n height: 40px;\n line-height: 40px;\n}\n.ant-skeleton-element .ant-skeleton-input-sm {\n width: 120px;\n min-width: 120px;\n height: 24px;\n line-height: 24px;\n}\n.ant-skeleton-element .ant-skeleton-image {\n display: flex;\n align-items: center;\n justify-content: center;\n vertical-align: top;\n background: rgba(190, 190, 190, 0.2);\n width: 96px;\n height: 96px;\n line-height: 96px;\n}\n.ant-skeleton-element .ant-skeleton-image.ant-skeleton-image-circle {\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-image-path {\n fill: #bfbfbf;\n}\n.ant-skeleton-element .ant-skeleton-image-svg {\n width: 48px;\n height: 48px;\n line-height: 48px;\n max-width: 192px;\n max-height: 192px;\n}\n.ant-skeleton-element .ant-skeleton-image-svg.ant-skeleton-image-circle {\n border-radius: 50%;\n}\n@keyframes ant-skeleton-loading {\n 0% {\n transform: translateX(-37.5%);\n }\n 100% {\n transform: translateX(37.5%);\n }\n}\n.ant-skeleton-rtl {\n direction: rtl;\n}\n.ant-skeleton-rtl .ant-skeleton-header {\n padding-right: 0;\n padding-left: 16px;\n}\n.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,\n.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph > li {\n animation-name: ant-skeleton-loading-rtl;\n}\n.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar {\n animation-name: ant-skeleton-loading-rtl;\n}\n@keyframes ant-skeleton-loading-rtl {\n 0% {\n background-position: 0% 50%;\n }\n 100% {\n background-position: 100% 50%;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-tabs-small > .ant-tabs-nav .ant-tabs-tab {\n padding: 8px 0;\n font-size: 14px;\n}\n.ant-tabs-large > .ant-tabs-nav .ant-tabs-tab {\n padding: 16px 0;\n font-size: 16px;\n}\n.ant-tabs-card.ant-tabs-small > .ant-tabs-nav .ant-tabs-tab {\n padding: 6px 16px;\n}\n.ant-tabs-card.ant-tabs-large > .ant-tabs-nav .ant-tabs-tab {\n padding: 7px 16px 6px;\n}\n.ant-tabs-rtl {\n direction: rtl;\n}\n.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab {\n margin: 0 0 0 32px;\n}\n.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab:last-of-type {\n margin-left: 0;\n}\n.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .anticon {\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove {\n margin-right: 8px;\n margin-left: -4px;\n}\n.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove .anticon {\n margin: 0;\n}\n.ant-tabs-rtl.ant-tabs-left > .ant-tabs-nav {\n order: 1;\n}\n.ant-tabs-rtl.ant-tabs-left > .ant-tabs-content-holder {\n order: 0;\n}\n.ant-tabs-rtl.ant-tabs-right > .ant-tabs-nav {\n order: 0;\n}\n.ant-tabs-rtl.ant-tabs-right > .ant-tabs-content-holder {\n order: 1;\n}\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab {\n margin-right: 2px;\n margin-left: 0;\n}\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-add,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-add,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-add,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-add {\n margin-right: 2px;\n margin-left: 0;\n}\n.ant-tabs-dropdown-rtl {\n direction: rtl;\n}\n.ant-tabs-dropdown-rtl .ant-tabs-dropdown-menu-item {\n text-align: right;\n}\n.ant-tabs-top,\n.ant-tabs-bottom {\n flex-direction: column;\n}\n.ant-tabs-top > .ant-tabs-nav,\n.ant-tabs-bottom > .ant-tabs-nav,\n.ant-tabs-top > div > .ant-tabs-nav,\n.ant-tabs-bottom > div > .ant-tabs-nav {\n margin: 0 0 16px 0;\n}\n.ant-tabs-top > .ant-tabs-nav::before,\n.ant-tabs-bottom > .ant-tabs-nav::before,\n.ant-tabs-top > div > .ant-tabs-nav::before,\n.ant-tabs-bottom > div > .ant-tabs-nav::before {\n position: absolute;\n right: 0;\n left: 0;\n border-bottom: 1px solid #f0f0f0;\n content: '';\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-ink-bar {\n height: 2px;\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-ink-bar-animated {\n transition: width 0.3s, left 0.3s, right 0.3s;\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {\n top: 0;\n bottom: 0;\n width: 30px;\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::before {\n left: 0;\n box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {\n right: 0;\n box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before {\n opacity: 1;\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after {\n opacity: 1;\n}\n.ant-tabs-top > .ant-tabs-nav::before,\n.ant-tabs-top > div > .ant-tabs-nav::before {\n bottom: 0;\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-ink-bar {\n bottom: 0;\n}\n.ant-tabs-bottom > .ant-tabs-nav,\n.ant-tabs-bottom > div > .ant-tabs-nav {\n order: 1;\n margin-top: 16px;\n margin-bottom: 0;\n}\n.ant-tabs-bottom > .ant-tabs-nav::before,\n.ant-tabs-bottom > div > .ant-tabs-nav::before {\n top: 0;\n}\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-ink-bar {\n top: 0;\n}\n.ant-tabs-bottom > .ant-tabs-content-holder,\n.ant-tabs-bottom > div > .ant-tabs-content-holder {\n order: 0;\n}\n.ant-tabs-left > .ant-tabs-nav,\n.ant-tabs-right > .ant-tabs-nav,\n.ant-tabs-left > div > .ant-tabs-nav,\n.ant-tabs-right > div > .ant-tabs-nav {\n flex-direction: column;\n min-width: 50px;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab {\n padding: 8px 24px;\n text-align: center;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab {\n margin: 16px 0 0 0;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap {\n flex-direction: column;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {\n right: 0;\n left: 0;\n height: 30px;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::before {\n top: 0;\n box-shadow: inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {\n bottom: 0;\n box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before {\n opacity: 1;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after {\n opacity: 1;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-ink-bar {\n width: 2px;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-ink-bar-animated {\n transition: height 0.3s, top 0.3s;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-list,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-list,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-list,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-list,\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-operations,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-operations,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-operations,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-operations {\n flex: 1 0 auto;\n flex-direction: column;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-ink-bar {\n right: 0;\n}\n.ant-tabs-left > .ant-tabs-content-holder,\n.ant-tabs-left > div > .ant-tabs-content-holder {\n margin-left: -1px;\n border-left: 1px solid #f0f0f0;\n}\n.ant-tabs-left > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane,\n.ant-tabs-left > div > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane {\n padding-left: 24px;\n}\n.ant-tabs-right > .ant-tabs-nav,\n.ant-tabs-right > div > .ant-tabs-nav {\n order: 1;\n}\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-ink-bar {\n left: 0;\n}\n.ant-tabs-right > .ant-tabs-content-holder,\n.ant-tabs-right > div > .ant-tabs-content-holder {\n order: 0;\n margin-right: -1px;\n border-right: 1px solid #f0f0f0;\n}\n.ant-tabs-right > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane,\n.ant-tabs-right > div > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane {\n padding-right: 24px;\n}\n.ant-tabs-dropdown {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n display: block;\n}\n.ant-tabs-dropdown-hidden {\n display: none;\n}\n.ant-tabs-dropdown-menu {\n max-height: 200px;\n margin: 0;\n padding: 4px 0;\n overflow-x: hidden;\n overflow-y: auto;\n text-align: left;\n list-style-type: none;\n background-color: #fff;\n background-clip: padding-box;\n border-radius: 2px;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-tabs-dropdown-menu-item {\n display: flex;\n align-items: center;\n min-width: 120px;\n margin: 0;\n padding: 5px 12px;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 22px;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-tabs-dropdown-menu-item > span {\n flex: 1;\n white-space: nowrap;\n}\n.ant-tabs-dropdown-menu-item-remove {\n flex: none;\n margin-left: 12px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n background: transparent;\n border: 0;\n cursor: pointer;\n}\n.ant-tabs-dropdown-menu-item-remove:hover {\n color: #40a9ff;\n}\n.ant-tabs-dropdown-menu-item:hover {\n background: #f5f5f5;\n}\n.ant-tabs-dropdown-menu-item-disabled,\n.ant-tabs-dropdown-menu-item-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n background: transparent;\n cursor: not-allowed;\n}\n.ant-tabs-card > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-card > div > .ant-tabs-nav .ant-tabs-tab {\n margin: 0;\n padding: 8px 16px;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs-card > .ant-tabs-nav .ant-tabs-tab-active,\n.ant-tabs-card > div > .ant-tabs-nav .ant-tabs-tab-active {\n color: #1890ff;\n background: #fff;\n}\n.ant-tabs-card > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-card > div > .ant-tabs-nav .ant-tabs-ink-bar {\n visibility: hidden;\n}\n.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab {\n margin-left: 2px;\n}\n.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-tab {\n border-radius: 2px 2px 0 0;\n}\n.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab-active,\n.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-tab-active {\n border-bottom-color: #fff;\n}\n.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-tab {\n border-radius: 0 0 2px 2px;\n}\n.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-tab-active,\n.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-tab-active {\n border-top-color: #fff;\n}\n.ant-tabs-card.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab {\n margin-top: 2px;\n}\n.ant-tabs-card.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab {\n border-radius: 2px 0 0 2px;\n}\n.ant-tabs-card.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab-active,\n.ant-tabs-card.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab-active {\n border-right-color: #fff;\n}\n.ant-tabs-card.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab {\n border-radius: 0 2px 2px 0;\n}\n.ant-tabs-card.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab-active,\n.ant-tabs-card.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab-active {\n border-left-color: #fff;\n}\n.ant-tabs {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: flex;\n}\n.ant-tabs > .ant-tabs-nav,\n.ant-tabs > div > .ant-tabs-nav {\n position: relative;\n display: flex;\n flex: none;\n align-items: center;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-wrap {\n position: relative;\n display: inline-block;\n display: flex;\n flex: auto;\n align-self: stretch;\n overflow: hidden;\n white-space: nowrap;\n transform: translate(0);\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {\n position: absolute;\n z-index: 1;\n opacity: 0;\n transition: opacity 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-list,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-list {\n position: relative;\n display: flex;\n transition: transform 0.3s;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-operations,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-operations {\n display: flex;\n align-self: stretch;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-operations-hidden,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-operations-hidden {\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-more,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-more {\n position: relative;\n padding: 8px 16px;\n background: transparent;\n border: 0;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-more::after,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-more::after {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 5px;\n transform: translateY(100%);\n content: '';\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add {\n min-width: 40px;\n margin-left: 2px;\n padding: 0 8px;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n outline: none;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add:hover,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add:hover {\n color: #40a9ff;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add:active,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add:active,\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add:focus,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add:focus {\n color: #096dd9;\n}\n.ant-tabs-extra-content {\n flex: none;\n}\n.ant-tabs-centered > .ant-tabs-nav .ant-tabs-nav-wrap:not([class*='ant-tabs-nav-wrap-ping']),\n.ant-tabs-centered > div > .ant-tabs-nav .ant-tabs-nav-wrap:not([class*='ant-tabs-nav-wrap-ping']) {\n justify-content: center;\n}\n.ant-tabs-ink-bar {\n position: absolute;\n background: #1890ff;\n pointer-events: none;\n}\n.ant-tabs-tab {\n position: relative;\n display: inline-flex;\n align-items: center;\n padding: 12px 0;\n font-size: 14px;\n background: transparent;\n border: 0;\n outline: none;\n cursor: pointer;\n}\n.ant-tabs-tab-btn:focus,\n.ant-tabs-tab-remove:focus,\n.ant-tabs-tab-btn:active,\n.ant-tabs-tab-remove:active {\n color: #096dd9;\n}\n.ant-tabs-tab-btn {\n outline: none;\n transition: all 0.3s;\n}\n.ant-tabs-tab-remove {\n flex: none;\n margin-right: -4px;\n margin-left: 8px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n background: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-tabs-tab-remove:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-tabs-tab:hover {\n color: #40a9ff;\n}\n.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {\n color: #1890ff;\n text-shadow: 0 0 0.25px currentcolor;\n}\n.ant-tabs-tab.ant-tabs-tab-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:focus,\n.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:focus,\n.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:active,\n.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:active {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-tabs-tab .ant-tabs-tab-remove .anticon {\n margin: 0;\n}\n.ant-tabs-tab .anticon {\n margin-right: 12px;\n}\n.ant-tabs-tab + .ant-tabs-tab {\n margin: 0 0 0 32px;\n}\n.ant-tabs-content {\n position: relative;\n width: 100%;\n}\n.ant-tabs-content-holder {\n flex: auto;\n min-width: 0;\n min-height: 0;\n}\n.ant-tabs-tabpane {\n outline: none;\n}\n.ant-tabs-tabpane-hidden {\n display: none;\n}\n.ant-tabs-switch-appear,\n.ant-tabs-switch-enter {\n transition: none;\n}\n.ant-tabs-switch-appear-start,\n.ant-tabs-switch-enter-start {\n opacity: 0;\n}\n.ant-tabs-switch-appear-active,\n.ant-tabs-switch-enter-active {\n opacity: 1;\n transition: opacity 0.3s;\n}\n.ant-tabs-switch-leave {\n position: absolute;\n transition: none;\n inset: 0;\n}\n.ant-tabs-switch-leave-start {\n opacity: 1;\n}\n.ant-tabs-switch-leave-active {\n opacity: 0;\n transition: opacity 0.3s;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-carousel {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-carousel .slick-slider {\n position: relative;\n display: block;\n box-sizing: border-box;\n touch-action: pan-y;\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: transparent;\n}\n.ant-carousel .slick-list {\n position: relative;\n display: block;\n margin: 0;\n padding: 0;\n overflow: hidden;\n}\n.ant-carousel .slick-list:focus {\n outline: none;\n}\n.ant-carousel .slick-list.dragging {\n cursor: pointer;\n}\n.ant-carousel .slick-list .slick-slide {\n pointer-events: none;\n}\n.ant-carousel .slick-list .slick-slide input.ant-radio-input,\n.ant-carousel .slick-list .slick-slide input.ant-checkbox-input {\n visibility: hidden;\n}\n.ant-carousel .slick-list .slick-slide.slick-active {\n pointer-events: auto;\n}\n.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input,\n.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input {\n visibility: visible;\n}\n.ant-carousel .slick-list .slick-slide > div > div {\n vertical-align: bottom;\n}\n.ant-carousel .slick-slider .slick-track,\n.ant-carousel .slick-slider .slick-list {\n transform: translate3d(0, 0, 0);\n touch-action: pan-y;\n}\n.ant-carousel .slick-track {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n}\n.ant-carousel .slick-track::before,\n.ant-carousel .slick-track::after {\n display: table;\n content: '';\n}\n.ant-carousel .slick-track::after {\n clear: both;\n}\n.slick-loading .ant-carousel .slick-track {\n visibility: hidden;\n}\n.ant-carousel .slick-slide {\n display: none;\n float: left;\n height: 100%;\n min-height: 1px;\n}\n.ant-carousel .slick-slide img {\n display: block;\n}\n.ant-carousel .slick-slide.slick-loading img {\n display: none;\n}\n.ant-carousel .slick-slide.dragging img {\n pointer-events: none;\n}\n.ant-carousel .slick-initialized .slick-slide {\n display: block;\n}\n.ant-carousel .slick-loading .slick-slide {\n visibility: hidden;\n}\n.ant-carousel .slick-vertical .slick-slide {\n display: block;\n height: auto;\n}\n.ant-carousel .slick-arrow.slick-hidden {\n display: none;\n}\n.ant-carousel .slick-prev,\n.ant-carousel .slick-next {\n position: absolute;\n top: 50%;\n display: block;\n width: 20px;\n height: 20px;\n margin-top: -10px;\n padding: 0;\n color: transparent;\n font-size: 0;\n line-height: 0;\n background: transparent;\n border: 0;\n outline: none;\n cursor: pointer;\n}\n.ant-carousel .slick-prev:hover,\n.ant-carousel .slick-next:hover,\n.ant-carousel .slick-prev:focus,\n.ant-carousel .slick-next:focus {\n color: transparent;\n background: transparent;\n outline: none;\n}\n.ant-carousel .slick-prev:hover::before,\n.ant-carousel .slick-next:hover::before,\n.ant-carousel .slick-prev:focus::before,\n.ant-carousel .slick-next:focus::before {\n opacity: 1;\n}\n.ant-carousel .slick-prev.slick-disabled::before,\n.ant-carousel .slick-next.slick-disabled::before {\n opacity: 0.25;\n}\n.ant-carousel .slick-prev {\n left: -25px;\n}\n.ant-carousel .slick-prev::before {\n content: '←';\n}\n.ant-carousel .slick-next {\n right: -25px;\n}\n.ant-carousel .slick-next::before {\n content: '→';\n}\n.ant-carousel .slick-dots {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex !important;\n justify-content: center;\n margin-right: 15%;\n margin-bottom: 0;\n margin-left: 15%;\n padding-left: 0;\n list-style: none;\n}\n.ant-carousel .slick-dots-bottom {\n bottom: 12px;\n}\n.ant-carousel .slick-dots-top {\n top: 12px;\n bottom: auto;\n}\n.ant-carousel .slick-dots li {\n position: relative;\n display: inline-block;\n flex: 0 1 auto;\n box-sizing: content-box;\n width: 16px;\n height: 3px;\n margin: 0 4px;\n padding: 0;\n text-align: center;\n text-indent: -999px;\n vertical-align: top;\n transition: all 0.5s;\n}\n.ant-carousel .slick-dots li button {\n position: relative;\n display: block;\n width: 100%;\n height: 3px;\n padding: 0;\n color: transparent;\n font-size: 0;\n background: #fff;\n border: 0;\n border-radius: 1px;\n outline: none;\n cursor: pointer;\n opacity: 0.3;\n transition: all 0.5s;\n}\n.ant-carousel .slick-dots li button:hover,\n.ant-carousel .slick-dots li button:focus {\n opacity: 0.75;\n}\n.ant-carousel .slick-dots li button::after {\n position: absolute;\n top: -4px;\n right: -4px;\n bottom: -4px;\n left: -4px;\n content: '';\n}\n.ant-carousel .slick-dots li.slick-active {\n width: 24px;\n}\n.ant-carousel .slick-dots li.slick-active button {\n background: #fff;\n opacity: 1;\n}\n.ant-carousel .slick-dots li.slick-active:hover,\n.ant-carousel .slick-dots li.slick-active:focus {\n opacity: 1;\n}\n.ant-carousel-vertical .slick-dots {\n top: 50%;\n bottom: auto;\n flex-direction: column;\n width: 3px;\n height: auto;\n margin: 0;\n transform: translateY(-50%);\n}\n.ant-carousel-vertical .slick-dots-left {\n right: auto;\n left: 12px;\n}\n.ant-carousel-vertical .slick-dots-right {\n right: 12px;\n left: auto;\n}\n.ant-carousel-vertical .slick-dots li {\n width: 3px;\n height: 16px;\n margin: 4px 0;\n vertical-align: baseline;\n}\n.ant-carousel-vertical .slick-dots li button {\n width: 3px;\n height: 16px;\n}\n.ant-carousel-vertical .slick-dots li.slick-active {\n width: 3px;\n height: 24px;\n}\n.ant-carousel-vertical .slick-dots li.slick-active button {\n width: 3px;\n height: 24px;\n}\n.ant-carousel-rtl {\n direction: rtl;\n}\n.ant-carousel-rtl .ant-carousel .slick-track {\n right: 0;\n left: auto;\n}\n.ant-carousel-rtl .ant-carousel .slick-prev {\n right: -25px;\n left: auto;\n}\n.ant-carousel-rtl .ant-carousel .slick-prev::before {\n content: '→';\n}\n.ant-carousel-rtl .ant-carousel .slick-next {\n right: auto;\n left: -25px;\n}\n.ant-carousel-rtl .ant-carousel .slick-next::before {\n content: '←';\n}\n.ant-carousel-rtl.ant-carousel .slick-dots {\n flex-direction: row-reverse;\n}\n.ant-carousel-rtl.ant-carousel-vertical .slick-dots {\n flex-direction: column;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-cascader-checkbox {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-inner,\n.ant-cascader-checkbox:hover .ant-cascader-checkbox-inner,\n.ant-cascader-checkbox-input:focus + .ant-cascader-checkbox-inner {\n border-color: #1890ff;\n}\n.ant-cascader-checkbox-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 2px;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n}\n.ant-cascader-checkbox:hover::after,\n.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox::after {\n visibility: visible;\n}\n.ant-cascader-checkbox-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n direction: ltr;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n border-collapse: separate;\n transition: all 0.3s;\n}\n.ant-cascader-checkbox-inner::after {\n position: absolute;\n top: 50%;\n left: 21.5%;\n display: table;\n width: 5.71428571px;\n height: 9.14285714px;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\n content: ' ';\n}\n.ant-cascader-checkbox-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner::after {\n position: absolute;\n display: table;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\n content: ' ';\n}\n.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.ant-cascader-checkbox-disabled {\n cursor: not-allowed;\n}\n.ant-cascader-checkbox-disabled.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner::after {\n border-color: rgba(0, 0, 0, 0.25);\n animation-name: none;\n}\n.ant-cascader-checkbox-disabled .ant-cascader-checkbox-input {\n cursor: not-allowed;\n pointer-events: none;\n}\n.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner {\n background-color: #f5f5f5;\n border-color: #d9d9d9 !important;\n}\n.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner::after {\n border-color: #f5f5f5;\n border-collapse: separate;\n animation-name: none;\n}\n.ant-cascader-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-cascader-checkbox-disabled:hover::after,\n.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-disabled::after {\n visibility: hidden;\n}\n.ant-cascader-checkbox-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n}\n.ant-cascader-checkbox-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-cascader-checkbox-wrapper.ant-cascader-checkbox-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-cascader-checkbox-wrapper + .ant-cascader-checkbox-wrapper {\n margin-left: 8px;\n}\n.ant-cascader-checkbox-wrapper.ant-cascader-checkbox-wrapper-in-form-item input[type='checkbox'] {\n width: 14px;\n height: 14px;\n}\n.ant-cascader-checkbox + span {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-cascader-checkbox-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-cascader-checkbox-group-item {\n margin-right: 8px;\n}\n.ant-cascader-checkbox-group-item:last-child {\n margin-right: 0;\n}\n.ant-cascader-checkbox-group-item + .ant-cascader-checkbox-group-item {\n margin-left: 0;\n}\n.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner {\n background-color: #fff;\n border-color: #d9d9d9;\n}\n.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner::after {\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n background-color: #1890ff;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n}\n.ant-cascader-checkbox-indeterminate.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner::after {\n background-color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-cascader {\n width: 184px;\n}\n.ant-cascader-checkbox {\n top: 0;\n margin-right: 8px;\n}\n.ant-cascader-menus {\n display: flex;\n flex-wrap: nowrap;\n align-items: flex-start;\n}\n.ant-cascader-menus.ant-cascader-menu-empty .ant-cascader-menu {\n width: 100%;\n height: auto;\n}\n.ant-cascader-menu {\n flex-grow: 1;\n min-width: 111px;\n height: 180px;\n margin: 0;\n margin: -4px 0;\n padding: 4px 0;\n overflow: auto;\n vertical-align: top;\n list-style: none;\n border-right: 1px solid #f0f0f0;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n.ant-cascader-menu-item {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: 5px 12px;\n overflow: hidden;\n line-height: 22px;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-cascader-menu-item:hover {\n background: #f5f5f5;\n}\n.ant-cascader-menu-item-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-cascader-menu-item-disabled:hover {\n background: transparent;\n}\n.ant-cascader-menu-empty .ant-cascader-menu-item {\n color: rgba(0, 0, 0, 0.25);\n cursor: default;\n pointer-events: none;\n}\n.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),\n.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover {\n font-weight: 600;\n background-color: #e6f7ff;\n}\n.ant-cascader-menu-item-content {\n flex: auto;\n}\n.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,\n.ant-cascader-menu-item-loading-icon {\n margin-left: 4px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 10px;\n}\n.ant-cascader-menu-item-disabled.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,\n.ant-cascader-menu-item-disabled.ant-cascader-menu-item-loading-icon {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-cascader-menu-item-keyword {\n color: #ff4d4f;\n}\n.ant-cascader-compact-item:not(.ant-cascader-compact-last-item):not(.ant-cascader-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-cascader-compact-item:not(.ant-cascader-compact-last-item).ant-cascader-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-cascader-compact-item:hover,\n.ant-cascader-compact-item:focus,\n.ant-cascader-compact-item:active {\n z-index: 2;\n}\n.ant-cascader-compact-item[disabled] {\n z-index: 0;\n}\n.ant-cascader-compact-item:not(.ant-cascader-compact-first-item):not(.ant-cascader-compact-last-item).ant-cascader {\n border-radius: 0;\n}\n.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-first-item:not(.ant-cascader-compact-last-item):not(.ant-cascader-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-last-item:not(.ant-cascader-compact-first-item):not(.ant-cascader-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-item-rtl.ant-cascader-compact-first-item:not(.ant-cascader-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-item-rtl.ant-cascader-compact-last-item:not(.ant-cascader-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-cascader-rtl .ant-cascader-menu-item-expand-icon,\n.ant-cascader-rtl .ant-cascader-menu-item-loading-icon {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-cascader-rtl .ant-cascader-checkbox {\n top: 0;\n margin-right: 0;\n margin-left: 8px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-checkbox {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ant-checkbox-wrapper:hover .ant-checkbox-inner,\n.ant-checkbox:hover .ant-checkbox-inner,\n.ant-checkbox-input:focus + .ant-checkbox-inner {\n border-color: #1890ff;\n}\n.ant-checkbox-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 2px;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n}\n.ant-checkbox:hover::after,\n.ant-checkbox-wrapper:hover .ant-checkbox::after {\n visibility: visible;\n}\n.ant-checkbox-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n direction: ltr;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n border-collapse: separate;\n transition: all 0.3s;\n}\n.ant-checkbox-inner::after {\n position: absolute;\n top: 50%;\n left: 21.5%;\n display: table;\n width: 5.71428571px;\n height: 9.14285714px;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\n content: ' ';\n}\n.ant-checkbox-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n.ant-checkbox-checked .ant-checkbox-inner::after {\n position: absolute;\n display: table;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\n content: ' ';\n}\n.ant-checkbox-checked .ant-checkbox-inner {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.ant-checkbox-disabled {\n cursor: not-allowed;\n}\n.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {\n border-color: rgba(0, 0, 0, 0.25);\n animation-name: none;\n}\n.ant-checkbox-disabled .ant-checkbox-input {\n cursor: not-allowed;\n pointer-events: none;\n}\n.ant-checkbox-disabled .ant-checkbox-inner {\n background-color: #f5f5f5;\n border-color: #d9d9d9 !important;\n}\n.ant-checkbox-disabled .ant-checkbox-inner::after {\n border-color: #f5f5f5;\n border-collapse: separate;\n animation-name: none;\n}\n.ant-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-checkbox-disabled:hover::after,\n.ant-checkbox-wrapper:hover .ant-checkbox-disabled::after {\n visibility: hidden;\n}\n.ant-checkbox-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n}\n.ant-checkbox-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-checkbox-wrapper + .ant-checkbox-wrapper {\n margin-left: 8px;\n}\n.ant-checkbox-wrapper.ant-checkbox-wrapper-in-form-item input[type='checkbox'] {\n width: 14px;\n height: 14px;\n}\n.ant-checkbox + span {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-checkbox-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-checkbox-group-item {\n margin-right: 8px;\n}\n.ant-checkbox-group-item:last-child {\n margin-right: 0;\n}\n.ant-checkbox-group-item + .ant-checkbox-group-item {\n margin-left: 0;\n}\n.ant-checkbox-indeterminate .ant-checkbox-inner {\n background-color: #fff;\n border-color: #d9d9d9;\n}\n.ant-checkbox-indeterminate .ant-checkbox-inner::after {\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n background-color: #1890ff;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n}\n.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after {\n background-color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-checkbox-rtl {\n direction: rtl;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child {\n margin-left: 0 !important;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item + .ant-checkbox-group-item {\n margin-left: 8px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-row {\n display: flex;\n flex-flow: row wrap;\n min-width: 0;\n}\n.ant-row::before,\n.ant-row::after {\n display: flex;\n}\n.ant-row-no-wrap {\n flex-wrap: nowrap;\n}\n.ant-row-start {\n justify-content: flex-start;\n}\n.ant-row-center {\n justify-content: center;\n}\n.ant-row-end {\n justify-content: flex-end;\n}\n.ant-row-space-between {\n justify-content: space-between;\n}\n.ant-row-space-around {\n justify-content: space-around;\n}\n.ant-row-space-evenly {\n justify-content: space-evenly;\n}\n.ant-row-top {\n align-items: flex-start;\n}\n.ant-row-middle {\n align-items: center;\n}\n.ant-row-bottom {\n align-items: flex-end;\n}\n.ant-col {\n position: relative;\n max-width: 100%;\n min-height: 1px;\n}\n.ant-col-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n}\n.ant-col-push-24 {\n left: 100%;\n}\n.ant-col-pull-24 {\n right: 100%;\n}\n.ant-col-offset-24 {\n margin-left: 100%;\n}\n.ant-col-order-24 {\n order: 24;\n}\n.ant-col-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n}\n.ant-col-push-23 {\n left: 95.83333333%;\n}\n.ant-col-pull-23 {\n right: 95.83333333%;\n}\n.ant-col-offset-23 {\n margin-left: 95.83333333%;\n}\n.ant-col-order-23 {\n order: 23;\n}\n.ant-col-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n}\n.ant-col-push-22 {\n left: 91.66666667%;\n}\n.ant-col-pull-22 {\n right: 91.66666667%;\n}\n.ant-col-offset-22 {\n margin-left: 91.66666667%;\n}\n.ant-col-order-22 {\n order: 22;\n}\n.ant-col-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n}\n.ant-col-push-21 {\n left: 87.5%;\n}\n.ant-col-pull-21 {\n right: 87.5%;\n}\n.ant-col-offset-21 {\n margin-left: 87.5%;\n}\n.ant-col-order-21 {\n order: 21;\n}\n.ant-col-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n}\n.ant-col-push-20 {\n left: 83.33333333%;\n}\n.ant-col-pull-20 {\n right: 83.33333333%;\n}\n.ant-col-offset-20 {\n margin-left: 83.33333333%;\n}\n.ant-col-order-20 {\n order: 20;\n}\n.ant-col-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n}\n.ant-col-push-19 {\n left: 79.16666667%;\n}\n.ant-col-pull-19 {\n right: 79.16666667%;\n}\n.ant-col-offset-19 {\n margin-left: 79.16666667%;\n}\n.ant-col-order-19 {\n order: 19;\n}\n.ant-col-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n}\n.ant-col-push-18 {\n left: 75%;\n}\n.ant-col-pull-18 {\n right: 75%;\n}\n.ant-col-offset-18 {\n margin-left: 75%;\n}\n.ant-col-order-18 {\n order: 18;\n}\n.ant-col-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n}\n.ant-col-push-17 {\n left: 70.83333333%;\n}\n.ant-col-pull-17 {\n right: 70.83333333%;\n}\n.ant-col-offset-17 {\n margin-left: 70.83333333%;\n}\n.ant-col-order-17 {\n order: 17;\n}\n.ant-col-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n}\n.ant-col-push-16 {\n left: 66.66666667%;\n}\n.ant-col-pull-16 {\n right: 66.66666667%;\n}\n.ant-col-offset-16 {\n margin-left: 66.66666667%;\n}\n.ant-col-order-16 {\n order: 16;\n}\n.ant-col-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n}\n.ant-col-push-15 {\n left: 62.5%;\n}\n.ant-col-pull-15 {\n right: 62.5%;\n}\n.ant-col-offset-15 {\n margin-left: 62.5%;\n}\n.ant-col-order-15 {\n order: 15;\n}\n.ant-col-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n}\n.ant-col-push-14 {\n left: 58.33333333%;\n}\n.ant-col-pull-14 {\n right: 58.33333333%;\n}\n.ant-col-offset-14 {\n margin-left: 58.33333333%;\n}\n.ant-col-order-14 {\n order: 14;\n}\n.ant-col-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n}\n.ant-col-push-13 {\n left: 54.16666667%;\n}\n.ant-col-pull-13 {\n right: 54.16666667%;\n}\n.ant-col-offset-13 {\n margin-left: 54.16666667%;\n}\n.ant-col-order-13 {\n order: 13;\n}\n.ant-col-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n}\n.ant-col-push-12 {\n left: 50%;\n}\n.ant-col-pull-12 {\n right: 50%;\n}\n.ant-col-offset-12 {\n margin-left: 50%;\n}\n.ant-col-order-12 {\n order: 12;\n}\n.ant-col-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n}\n.ant-col-push-11 {\n left: 45.83333333%;\n}\n.ant-col-pull-11 {\n right: 45.83333333%;\n}\n.ant-col-offset-11 {\n margin-left: 45.83333333%;\n}\n.ant-col-order-11 {\n order: 11;\n}\n.ant-col-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n}\n.ant-col-push-10 {\n left: 41.66666667%;\n}\n.ant-col-pull-10 {\n right: 41.66666667%;\n}\n.ant-col-offset-10 {\n margin-left: 41.66666667%;\n}\n.ant-col-order-10 {\n order: 10;\n}\n.ant-col-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n}\n.ant-col-push-9 {\n left: 37.5%;\n}\n.ant-col-pull-9 {\n right: 37.5%;\n}\n.ant-col-offset-9 {\n margin-left: 37.5%;\n}\n.ant-col-order-9 {\n order: 9;\n}\n.ant-col-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n}\n.ant-col-push-8 {\n left: 33.33333333%;\n}\n.ant-col-pull-8 {\n right: 33.33333333%;\n}\n.ant-col-offset-8 {\n margin-left: 33.33333333%;\n}\n.ant-col-order-8 {\n order: 8;\n}\n.ant-col-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n}\n.ant-col-push-7 {\n left: 29.16666667%;\n}\n.ant-col-pull-7 {\n right: 29.16666667%;\n}\n.ant-col-offset-7 {\n margin-left: 29.16666667%;\n}\n.ant-col-order-7 {\n order: 7;\n}\n.ant-col-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n}\n.ant-col-push-6 {\n left: 25%;\n}\n.ant-col-pull-6 {\n right: 25%;\n}\n.ant-col-offset-6 {\n margin-left: 25%;\n}\n.ant-col-order-6 {\n order: 6;\n}\n.ant-col-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n}\n.ant-col-push-5 {\n left: 20.83333333%;\n}\n.ant-col-pull-5 {\n right: 20.83333333%;\n}\n.ant-col-offset-5 {\n margin-left: 20.83333333%;\n}\n.ant-col-order-5 {\n order: 5;\n}\n.ant-col-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n}\n.ant-col-push-4 {\n left: 16.66666667%;\n}\n.ant-col-pull-4 {\n right: 16.66666667%;\n}\n.ant-col-offset-4 {\n margin-left: 16.66666667%;\n}\n.ant-col-order-4 {\n order: 4;\n}\n.ant-col-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n}\n.ant-col-push-3 {\n left: 12.5%;\n}\n.ant-col-pull-3 {\n right: 12.5%;\n}\n.ant-col-offset-3 {\n margin-left: 12.5%;\n}\n.ant-col-order-3 {\n order: 3;\n}\n.ant-col-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n}\n.ant-col-push-2 {\n left: 8.33333333%;\n}\n.ant-col-pull-2 {\n right: 8.33333333%;\n}\n.ant-col-offset-2 {\n margin-left: 8.33333333%;\n}\n.ant-col-order-2 {\n order: 2;\n}\n.ant-col-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n}\n.ant-col-push-1 {\n left: 4.16666667%;\n}\n.ant-col-pull-1 {\n right: 4.16666667%;\n}\n.ant-col-offset-1 {\n margin-left: 4.16666667%;\n}\n.ant-col-order-1 {\n order: 1;\n}\n.ant-col-0 {\n display: none;\n}\n.ant-col-push-0 {\n left: auto;\n}\n.ant-col-pull-0 {\n right: auto;\n}\n.ant-col-push-0 {\n left: auto;\n}\n.ant-col-pull-0 {\n right: auto;\n}\n.ant-col-offset-0 {\n margin-left: 0;\n}\n.ant-col-order-0 {\n order: 0;\n}\n.ant-col-push-0.ant-col-rtl {\n right: auto;\n}\n.ant-col-pull-0.ant-col-rtl {\n left: auto;\n}\n.ant-col-push-0.ant-col-rtl {\n right: auto;\n}\n.ant-col-pull-0.ant-col-rtl {\n left: auto;\n}\n.ant-col-offset-0.ant-col-rtl {\n margin-right: 0;\n}\n.ant-col-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n}\n.ant-col-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n}\n.ant-col-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n}\n.ant-col-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n}\n.ant-col-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n}\n.ant-col-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n}\n.ant-col-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n}\n.ant-col-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n}\n.ant-col-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n}\n.ant-col-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n}\n.ant-col-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n}\n.ant-col-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n}\n.ant-col-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n}\n.ant-col-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n}\n.ant-col-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n}\n.ant-col-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n}\n.ant-col-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n}\n.ant-col-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n}\n.ant-col-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n}\n.ant-col-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n}\n.ant-col-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n}\n.ant-col-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n}\n.ant-col-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n}\n.ant-col-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n}\n.ant-col-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n}\n.ant-col-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n}\n.ant-col-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n}\n.ant-col-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n}\n.ant-col-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n}\n.ant-col-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n}\n.ant-col-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n}\n.ant-col-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n}\n.ant-col-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n}\n.ant-col-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n}\n.ant-col-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n}\n.ant-col-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n}\n.ant-col-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n}\n.ant-col-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n}\n.ant-col-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n}\n.ant-col-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n}\n.ant-col-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n}\n.ant-col-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n}\n.ant-col-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n}\n.ant-col-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n}\n.ant-col-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n}\n.ant-col-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n}\n.ant-col-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n}\n.ant-col-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n}\n.ant-col-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n}\n.ant-col-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n}\n.ant-col-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n}\n.ant-col-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n}\n.ant-col-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n}\n.ant-col-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n}\n.ant-col-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n}\n.ant-col-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n}\n.ant-col-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n}\n.ant-col-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n}\n.ant-col-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n}\n.ant-col-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n}\n.ant-col-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n}\n.ant-col-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n}\n.ant-col-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n}\n.ant-col-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n}\n.ant-col-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n}\n.ant-col-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n}\n.ant-col-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n}\n.ant-col-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n}\n.ant-col-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n}\n.ant-col-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n}\n.ant-col-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n}\n.ant-col-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n}\n.ant-col-xs-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n}\n.ant-col-xs-push-24 {\n left: 100%;\n}\n.ant-col-xs-pull-24 {\n right: 100%;\n}\n.ant-col-xs-offset-24 {\n margin-left: 100%;\n}\n.ant-col-xs-order-24 {\n order: 24;\n}\n.ant-col-xs-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n}\n.ant-col-xs-push-23 {\n left: 95.83333333%;\n}\n.ant-col-xs-pull-23 {\n right: 95.83333333%;\n}\n.ant-col-xs-offset-23 {\n margin-left: 95.83333333%;\n}\n.ant-col-xs-order-23 {\n order: 23;\n}\n.ant-col-xs-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n}\n.ant-col-xs-push-22 {\n left: 91.66666667%;\n}\n.ant-col-xs-pull-22 {\n right: 91.66666667%;\n}\n.ant-col-xs-offset-22 {\n margin-left: 91.66666667%;\n}\n.ant-col-xs-order-22 {\n order: 22;\n}\n.ant-col-xs-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n}\n.ant-col-xs-push-21 {\n left: 87.5%;\n}\n.ant-col-xs-pull-21 {\n right: 87.5%;\n}\n.ant-col-xs-offset-21 {\n margin-left: 87.5%;\n}\n.ant-col-xs-order-21 {\n order: 21;\n}\n.ant-col-xs-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n}\n.ant-col-xs-push-20 {\n left: 83.33333333%;\n}\n.ant-col-xs-pull-20 {\n right: 83.33333333%;\n}\n.ant-col-xs-offset-20 {\n margin-left: 83.33333333%;\n}\n.ant-col-xs-order-20 {\n order: 20;\n}\n.ant-col-xs-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n}\n.ant-col-xs-push-19 {\n left: 79.16666667%;\n}\n.ant-col-xs-pull-19 {\n right: 79.16666667%;\n}\n.ant-col-xs-offset-19 {\n margin-left: 79.16666667%;\n}\n.ant-col-xs-order-19 {\n order: 19;\n}\n.ant-col-xs-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n}\n.ant-col-xs-push-18 {\n left: 75%;\n}\n.ant-col-xs-pull-18 {\n right: 75%;\n}\n.ant-col-xs-offset-18 {\n margin-left: 75%;\n}\n.ant-col-xs-order-18 {\n order: 18;\n}\n.ant-col-xs-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n}\n.ant-col-xs-push-17 {\n left: 70.83333333%;\n}\n.ant-col-xs-pull-17 {\n right: 70.83333333%;\n}\n.ant-col-xs-offset-17 {\n margin-left: 70.83333333%;\n}\n.ant-col-xs-order-17 {\n order: 17;\n}\n.ant-col-xs-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n}\n.ant-col-xs-push-16 {\n left: 66.66666667%;\n}\n.ant-col-xs-pull-16 {\n right: 66.66666667%;\n}\n.ant-col-xs-offset-16 {\n margin-left: 66.66666667%;\n}\n.ant-col-xs-order-16 {\n order: 16;\n}\n.ant-col-xs-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n}\n.ant-col-xs-push-15 {\n left: 62.5%;\n}\n.ant-col-xs-pull-15 {\n right: 62.5%;\n}\n.ant-col-xs-offset-15 {\n margin-left: 62.5%;\n}\n.ant-col-xs-order-15 {\n order: 15;\n}\n.ant-col-xs-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n}\n.ant-col-xs-push-14 {\n left: 58.33333333%;\n}\n.ant-col-xs-pull-14 {\n right: 58.33333333%;\n}\n.ant-col-xs-offset-14 {\n margin-left: 58.33333333%;\n}\n.ant-col-xs-order-14 {\n order: 14;\n}\n.ant-col-xs-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n}\n.ant-col-xs-push-13 {\n left: 54.16666667%;\n}\n.ant-col-xs-pull-13 {\n right: 54.16666667%;\n}\n.ant-col-xs-offset-13 {\n margin-left: 54.16666667%;\n}\n.ant-col-xs-order-13 {\n order: 13;\n}\n.ant-col-xs-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n}\n.ant-col-xs-push-12 {\n left: 50%;\n}\n.ant-col-xs-pull-12 {\n right: 50%;\n}\n.ant-col-xs-offset-12 {\n margin-left: 50%;\n}\n.ant-col-xs-order-12 {\n order: 12;\n}\n.ant-col-xs-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n}\n.ant-col-xs-push-11 {\n left: 45.83333333%;\n}\n.ant-col-xs-pull-11 {\n right: 45.83333333%;\n}\n.ant-col-xs-offset-11 {\n margin-left: 45.83333333%;\n}\n.ant-col-xs-order-11 {\n order: 11;\n}\n.ant-col-xs-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n}\n.ant-col-xs-push-10 {\n left: 41.66666667%;\n}\n.ant-col-xs-pull-10 {\n right: 41.66666667%;\n}\n.ant-col-xs-offset-10 {\n margin-left: 41.66666667%;\n}\n.ant-col-xs-order-10 {\n order: 10;\n}\n.ant-col-xs-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n}\n.ant-col-xs-push-9 {\n left: 37.5%;\n}\n.ant-col-xs-pull-9 {\n right: 37.5%;\n}\n.ant-col-xs-offset-9 {\n margin-left: 37.5%;\n}\n.ant-col-xs-order-9 {\n order: 9;\n}\n.ant-col-xs-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n}\n.ant-col-xs-push-8 {\n left: 33.33333333%;\n}\n.ant-col-xs-pull-8 {\n right: 33.33333333%;\n}\n.ant-col-xs-offset-8 {\n margin-left: 33.33333333%;\n}\n.ant-col-xs-order-8 {\n order: 8;\n}\n.ant-col-xs-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n}\n.ant-col-xs-push-7 {\n left: 29.16666667%;\n}\n.ant-col-xs-pull-7 {\n right: 29.16666667%;\n}\n.ant-col-xs-offset-7 {\n margin-left: 29.16666667%;\n}\n.ant-col-xs-order-7 {\n order: 7;\n}\n.ant-col-xs-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n}\n.ant-col-xs-push-6 {\n left: 25%;\n}\n.ant-col-xs-pull-6 {\n right: 25%;\n}\n.ant-col-xs-offset-6 {\n margin-left: 25%;\n}\n.ant-col-xs-order-6 {\n order: 6;\n}\n.ant-col-xs-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n}\n.ant-col-xs-push-5 {\n left: 20.83333333%;\n}\n.ant-col-xs-pull-5 {\n right: 20.83333333%;\n}\n.ant-col-xs-offset-5 {\n margin-left: 20.83333333%;\n}\n.ant-col-xs-order-5 {\n order: 5;\n}\n.ant-col-xs-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n}\n.ant-col-xs-push-4 {\n left: 16.66666667%;\n}\n.ant-col-xs-pull-4 {\n right: 16.66666667%;\n}\n.ant-col-xs-offset-4 {\n margin-left: 16.66666667%;\n}\n.ant-col-xs-order-4 {\n order: 4;\n}\n.ant-col-xs-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n}\n.ant-col-xs-push-3 {\n left: 12.5%;\n}\n.ant-col-xs-pull-3 {\n right: 12.5%;\n}\n.ant-col-xs-offset-3 {\n margin-left: 12.5%;\n}\n.ant-col-xs-order-3 {\n order: 3;\n}\n.ant-col-xs-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n}\n.ant-col-xs-push-2 {\n left: 8.33333333%;\n}\n.ant-col-xs-pull-2 {\n right: 8.33333333%;\n}\n.ant-col-xs-offset-2 {\n margin-left: 8.33333333%;\n}\n.ant-col-xs-order-2 {\n order: 2;\n}\n.ant-col-xs-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n}\n.ant-col-xs-push-1 {\n left: 4.16666667%;\n}\n.ant-col-xs-pull-1 {\n right: 4.16666667%;\n}\n.ant-col-xs-offset-1 {\n margin-left: 4.16666667%;\n}\n.ant-col-xs-order-1 {\n order: 1;\n}\n.ant-col-xs-0 {\n display: none;\n}\n.ant-col-push-0 {\n left: auto;\n}\n.ant-col-pull-0 {\n right: auto;\n}\n.ant-col-xs-push-0 {\n left: auto;\n}\n.ant-col-xs-pull-0 {\n right: auto;\n}\n.ant-col-xs-offset-0 {\n margin-left: 0;\n}\n.ant-col-xs-order-0 {\n order: 0;\n}\n.ant-col-push-0.ant-col-rtl {\n right: auto;\n}\n.ant-col-pull-0.ant-col-rtl {\n left: auto;\n}\n.ant-col-xs-push-0.ant-col-rtl {\n right: auto;\n}\n.ant-col-xs-pull-0.ant-col-rtl {\n left: auto;\n}\n.ant-col-xs-offset-0.ant-col-rtl {\n margin-right: 0;\n}\n.ant-col-xs-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n}\n.ant-col-xs-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n}\n.ant-col-xs-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n}\n.ant-col-xs-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n}\n.ant-col-xs-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n}\n.ant-col-xs-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n}\n.ant-col-xs-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n}\n.ant-col-xs-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n}\n.ant-col-xs-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n}\n.ant-col-xs-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n}\n.ant-col-xs-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n}\n.ant-col-xs-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n}\n.ant-col-xs-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n}\n.ant-col-xs-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n}\n.ant-col-xs-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n}\n.ant-col-xs-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n}\n.ant-col-xs-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n}\n.ant-col-xs-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n}\n.ant-col-xs-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n}\n.ant-col-xs-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n}\n.ant-col-xs-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n}\n.ant-col-xs-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n}\n.ant-col-xs-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n}\n.ant-col-xs-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n}\n.ant-col-xs-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n}\n.ant-col-xs-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n}\n.ant-col-xs-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n}\n.ant-col-xs-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n}\n.ant-col-xs-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n}\n.ant-col-xs-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n}\n.ant-col-xs-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n}\n.ant-col-xs-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n}\n.ant-col-xs-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n}\n.ant-col-xs-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n}\n.ant-col-xs-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n}\n.ant-col-xs-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n}\n.ant-col-xs-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n}\n.ant-col-xs-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n}\n.ant-col-xs-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n}\n.ant-col-xs-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n}\n.ant-col-xs-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n}\n.ant-col-xs-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n}\n.ant-col-xs-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n}\n.ant-col-xs-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n}\n.ant-col-xs-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n}\n.ant-col-xs-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n}\n.ant-col-xs-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n}\n.ant-col-xs-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n}\n.ant-col-xs-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n}\n.ant-col-xs-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n}\n.ant-col-xs-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n}\n.ant-col-xs-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n}\n.ant-col-xs-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n}\n.ant-col-xs-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n}\n.ant-col-xs-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n}\n.ant-col-xs-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n}\n@media (min-width: 576px) {\n .ant-col-sm-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-sm-push-24 {\n left: 100%;\n }\n .ant-col-sm-pull-24 {\n right: 100%;\n }\n .ant-col-sm-offset-24 {\n margin-left: 100%;\n }\n .ant-col-sm-order-24 {\n order: 24;\n }\n .ant-col-sm-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n }\n .ant-col-sm-push-23 {\n left: 95.83333333%;\n }\n .ant-col-sm-pull-23 {\n right: 95.83333333%;\n }\n .ant-col-sm-offset-23 {\n margin-left: 95.83333333%;\n }\n .ant-col-sm-order-23 {\n order: 23;\n }\n .ant-col-sm-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .ant-col-sm-push-22 {\n left: 91.66666667%;\n }\n .ant-col-sm-pull-22 {\n right: 91.66666667%;\n }\n .ant-col-sm-offset-22 {\n margin-left: 91.66666667%;\n }\n .ant-col-sm-order-22 {\n order: 22;\n }\n .ant-col-sm-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n }\n .ant-col-sm-push-21 {\n left: 87.5%;\n }\n .ant-col-sm-pull-21 {\n right: 87.5%;\n }\n .ant-col-sm-offset-21 {\n margin-left: 87.5%;\n }\n .ant-col-sm-order-21 {\n order: 21;\n }\n .ant-col-sm-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .ant-col-sm-push-20 {\n left: 83.33333333%;\n }\n .ant-col-sm-pull-20 {\n right: 83.33333333%;\n }\n .ant-col-sm-offset-20 {\n margin-left: 83.33333333%;\n }\n .ant-col-sm-order-20 {\n order: 20;\n }\n .ant-col-sm-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n }\n .ant-col-sm-push-19 {\n left: 79.16666667%;\n }\n .ant-col-sm-pull-19 {\n right: 79.16666667%;\n }\n .ant-col-sm-offset-19 {\n margin-left: 79.16666667%;\n }\n .ant-col-sm-order-19 {\n order: 19;\n }\n .ant-col-sm-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .ant-col-sm-push-18 {\n left: 75%;\n }\n .ant-col-sm-pull-18 {\n right: 75%;\n }\n .ant-col-sm-offset-18 {\n margin-left: 75%;\n }\n .ant-col-sm-order-18 {\n order: 18;\n }\n .ant-col-sm-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n }\n .ant-col-sm-push-17 {\n left: 70.83333333%;\n }\n .ant-col-sm-pull-17 {\n right: 70.83333333%;\n }\n .ant-col-sm-offset-17 {\n margin-left: 70.83333333%;\n }\n .ant-col-sm-order-17 {\n order: 17;\n }\n .ant-col-sm-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .ant-col-sm-push-16 {\n left: 66.66666667%;\n }\n .ant-col-sm-pull-16 {\n right: 66.66666667%;\n }\n .ant-col-sm-offset-16 {\n margin-left: 66.66666667%;\n }\n .ant-col-sm-order-16 {\n order: 16;\n }\n .ant-col-sm-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n }\n .ant-col-sm-push-15 {\n left: 62.5%;\n }\n .ant-col-sm-pull-15 {\n right: 62.5%;\n }\n .ant-col-sm-offset-15 {\n margin-left: 62.5%;\n }\n .ant-col-sm-order-15 {\n order: 15;\n }\n .ant-col-sm-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .ant-col-sm-push-14 {\n left: 58.33333333%;\n }\n .ant-col-sm-pull-14 {\n right: 58.33333333%;\n }\n .ant-col-sm-offset-14 {\n margin-left: 58.33333333%;\n }\n .ant-col-sm-order-14 {\n order: 14;\n }\n .ant-col-sm-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n }\n .ant-col-sm-push-13 {\n left: 54.16666667%;\n }\n .ant-col-sm-pull-13 {\n right: 54.16666667%;\n }\n .ant-col-sm-offset-13 {\n margin-left: 54.16666667%;\n }\n .ant-col-sm-order-13 {\n order: 13;\n }\n .ant-col-sm-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .ant-col-sm-push-12 {\n left: 50%;\n }\n .ant-col-sm-pull-12 {\n right: 50%;\n }\n .ant-col-sm-offset-12 {\n margin-left: 50%;\n }\n .ant-col-sm-order-12 {\n order: 12;\n }\n .ant-col-sm-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n }\n .ant-col-sm-push-11 {\n left: 45.83333333%;\n }\n .ant-col-sm-pull-11 {\n right: 45.83333333%;\n }\n .ant-col-sm-offset-11 {\n margin-left: 45.83333333%;\n }\n .ant-col-sm-order-11 {\n order: 11;\n }\n .ant-col-sm-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .ant-col-sm-push-10 {\n left: 41.66666667%;\n }\n .ant-col-sm-pull-10 {\n right: 41.66666667%;\n }\n .ant-col-sm-offset-10 {\n margin-left: 41.66666667%;\n }\n .ant-col-sm-order-10 {\n order: 10;\n }\n .ant-col-sm-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n }\n .ant-col-sm-push-9 {\n left: 37.5%;\n }\n .ant-col-sm-pull-9 {\n right: 37.5%;\n }\n .ant-col-sm-offset-9 {\n margin-left: 37.5%;\n }\n .ant-col-sm-order-9 {\n order: 9;\n }\n .ant-col-sm-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .ant-col-sm-push-8 {\n left: 33.33333333%;\n }\n .ant-col-sm-pull-8 {\n right: 33.33333333%;\n }\n .ant-col-sm-offset-8 {\n margin-left: 33.33333333%;\n }\n .ant-col-sm-order-8 {\n order: 8;\n }\n .ant-col-sm-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n }\n .ant-col-sm-push-7 {\n left: 29.16666667%;\n }\n .ant-col-sm-pull-7 {\n right: 29.16666667%;\n }\n .ant-col-sm-offset-7 {\n margin-left: 29.16666667%;\n }\n .ant-col-sm-order-7 {\n order: 7;\n }\n .ant-col-sm-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .ant-col-sm-push-6 {\n left: 25%;\n }\n .ant-col-sm-pull-6 {\n right: 25%;\n }\n .ant-col-sm-offset-6 {\n margin-left: 25%;\n }\n .ant-col-sm-order-6 {\n order: 6;\n }\n .ant-col-sm-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n }\n .ant-col-sm-push-5 {\n left: 20.83333333%;\n }\n .ant-col-sm-pull-5 {\n right: 20.83333333%;\n }\n .ant-col-sm-offset-5 {\n margin-left: 20.83333333%;\n }\n .ant-col-sm-order-5 {\n order: 5;\n }\n .ant-col-sm-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .ant-col-sm-push-4 {\n left: 16.66666667%;\n }\n .ant-col-sm-pull-4 {\n right: 16.66666667%;\n }\n .ant-col-sm-offset-4 {\n margin-left: 16.66666667%;\n }\n .ant-col-sm-order-4 {\n order: 4;\n }\n .ant-col-sm-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n }\n .ant-col-sm-push-3 {\n left: 12.5%;\n }\n .ant-col-sm-pull-3 {\n right: 12.5%;\n }\n .ant-col-sm-offset-3 {\n margin-left: 12.5%;\n }\n .ant-col-sm-order-3 {\n order: 3;\n }\n .ant-col-sm-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .ant-col-sm-push-2 {\n left: 8.33333333%;\n }\n .ant-col-sm-pull-2 {\n right: 8.33333333%;\n }\n .ant-col-sm-offset-2 {\n margin-left: 8.33333333%;\n }\n .ant-col-sm-order-2 {\n order: 2;\n }\n .ant-col-sm-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n }\n .ant-col-sm-push-1 {\n left: 4.16666667%;\n }\n .ant-col-sm-pull-1 {\n right: 4.16666667%;\n }\n .ant-col-sm-offset-1 {\n margin-left: 4.16666667%;\n }\n .ant-col-sm-order-1 {\n order: 1;\n }\n .ant-col-sm-0 {\n display: none;\n }\n .ant-col-push-0 {\n left: auto;\n }\n .ant-col-pull-0 {\n right: auto;\n }\n .ant-col-sm-push-0 {\n left: auto;\n }\n .ant-col-sm-pull-0 {\n right: auto;\n }\n .ant-col-sm-offset-0 {\n margin-left: 0;\n }\n .ant-col-sm-order-0 {\n order: 0;\n }\n .ant-col-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-sm-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-sm-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-sm-offset-0.ant-col-rtl {\n margin-right: 0;\n }\n .ant-col-sm-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n }\n .ant-col-sm-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n }\n .ant-col-sm-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n }\n .ant-col-sm-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n }\n .ant-col-sm-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n }\n .ant-col-sm-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n }\n .ant-col-sm-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n }\n .ant-col-sm-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n }\n .ant-col-sm-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n }\n .ant-col-sm-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n }\n .ant-col-sm-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n }\n .ant-col-sm-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n }\n .ant-col-sm-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n }\n .ant-col-sm-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n }\n .ant-col-sm-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n }\n .ant-col-sm-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n }\n .ant-col-sm-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n }\n .ant-col-sm-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n }\n .ant-col-sm-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n }\n .ant-col-sm-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n }\n .ant-col-sm-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n }\n .ant-col-sm-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n }\n .ant-col-sm-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n }\n .ant-col-sm-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n }\n .ant-col-sm-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n }\n .ant-col-sm-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n }\n .ant-col-sm-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n }\n .ant-col-sm-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n }\n .ant-col-sm-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n }\n .ant-col-sm-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n }\n .ant-col-sm-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n }\n .ant-col-sm-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n }\n .ant-col-sm-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n }\n .ant-col-sm-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n }\n .ant-col-sm-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n }\n .ant-col-sm-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n }\n .ant-col-sm-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n }\n .ant-col-sm-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n }\n .ant-col-sm-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n }\n .ant-col-sm-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n }\n .ant-col-sm-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n }\n .ant-col-sm-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n }\n .ant-col-sm-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n }\n .ant-col-sm-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n }\n .ant-col-sm-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n }\n .ant-col-sm-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n }\n .ant-col-sm-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n }\n .ant-col-sm-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n }\n .ant-col-sm-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n }\n .ant-col-sm-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n }\n .ant-col-sm-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n }\n .ant-col-sm-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n }\n .ant-col-sm-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n }\n .ant-col-sm-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n }\n .ant-col-sm-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n }\n .ant-col-sm-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n }\n}\n@media (min-width: 768px) {\n .ant-col-md-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-md-push-24 {\n left: 100%;\n }\n .ant-col-md-pull-24 {\n right: 100%;\n }\n .ant-col-md-offset-24 {\n margin-left: 100%;\n }\n .ant-col-md-order-24 {\n order: 24;\n }\n .ant-col-md-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n }\n .ant-col-md-push-23 {\n left: 95.83333333%;\n }\n .ant-col-md-pull-23 {\n right: 95.83333333%;\n }\n .ant-col-md-offset-23 {\n margin-left: 95.83333333%;\n }\n .ant-col-md-order-23 {\n order: 23;\n }\n .ant-col-md-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .ant-col-md-push-22 {\n left: 91.66666667%;\n }\n .ant-col-md-pull-22 {\n right: 91.66666667%;\n }\n .ant-col-md-offset-22 {\n margin-left: 91.66666667%;\n }\n .ant-col-md-order-22 {\n order: 22;\n }\n .ant-col-md-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n }\n .ant-col-md-push-21 {\n left: 87.5%;\n }\n .ant-col-md-pull-21 {\n right: 87.5%;\n }\n .ant-col-md-offset-21 {\n margin-left: 87.5%;\n }\n .ant-col-md-order-21 {\n order: 21;\n }\n .ant-col-md-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .ant-col-md-push-20 {\n left: 83.33333333%;\n }\n .ant-col-md-pull-20 {\n right: 83.33333333%;\n }\n .ant-col-md-offset-20 {\n margin-left: 83.33333333%;\n }\n .ant-col-md-order-20 {\n order: 20;\n }\n .ant-col-md-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n }\n .ant-col-md-push-19 {\n left: 79.16666667%;\n }\n .ant-col-md-pull-19 {\n right: 79.16666667%;\n }\n .ant-col-md-offset-19 {\n margin-left: 79.16666667%;\n }\n .ant-col-md-order-19 {\n order: 19;\n }\n .ant-col-md-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .ant-col-md-push-18 {\n left: 75%;\n }\n .ant-col-md-pull-18 {\n right: 75%;\n }\n .ant-col-md-offset-18 {\n margin-left: 75%;\n }\n .ant-col-md-order-18 {\n order: 18;\n }\n .ant-col-md-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n }\n .ant-col-md-push-17 {\n left: 70.83333333%;\n }\n .ant-col-md-pull-17 {\n right: 70.83333333%;\n }\n .ant-col-md-offset-17 {\n margin-left: 70.83333333%;\n }\n .ant-col-md-order-17 {\n order: 17;\n }\n .ant-col-md-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .ant-col-md-push-16 {\n left: 66.66666667%;\n }\n .ant-col-md-pull-16 {\n right: 66.66666667%;\n }\n .ant-col-md-offset-16 {\n margin-left: 66.66666667%;\n }\n .ant-col-md-order-16 {\n order: 16;\n }\n .ant-col-md-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n }\n .ant-col-md-push-15 {\n left: 62.5%;\n }\n .ant-col-md-pull-15 {\n right: 62.5%;\n }\n .ant-col-md-offset-15 {\n margin-left: 62.5%;\n }\n .ant-col-md-order-15 {\n order: 15;\n }\n .ant-col-md-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .ant-col-md-push-14 {\n left: 58.33333333%;\n }\n .ant-col-md-pull-14 {\n right: 58.33333333%;\n }\n .ant-col-md-offset-14 {\n margin-left: 58.33333333%;\n }\n .ant-col-md-order-14 {\n order: 14;\n }\n .ant-col-md-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n }\n .ant-col-md-push-13 {\n left: 54.16666667%;\n }\n .ant-col-md-pull-13 {\n right: 54.16666667%;\n }\n .ant-col-md-offset-13 {\n margin-left: 54.16666667%;\n }\n .ant-col-md-order-13 {\n order: 13;\n }\n .ant-col-md-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .ant-col-md-push-12 {\n left: 50%;\n }\n .ant-col-md-pull-12 {\n right: 50%;\n }\n .ant-col-md-offset-12 {\n margin-left: 50%;\n }\n .ant-col-md-order-12 {\n order: 12;\n }\n .ant-col-md-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n }\n .ant-col-md-push-11 {\n left: 45.83333333%;\n }\n .ant-col-md-pull-11 {\n right: 45.83333333%;\n }\n .ant-col-md-offset-11 {\n margin-left: 45.83333333%;\n }\n .ant-col-md-order-11 {\n order: 11;\n }\n .ant-col-md-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .ant-col-md-push-10 {\n left: 41.66666667%;\n }\n .ant-col-md-pull-10 {\n right: 41.66666667%;\n }\n .ant-col-md-offset-10 {\n margin-left: 41.66666667%;\n }\n .ant-col-md-order-10 {\n order: 10;\n }\n .ant-col-md-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n }\n .ant-col-md-push-9 {\n left: 37.5%;\n }\n .ant-col-md-pull-9 {\n right: 37.5%;\n }\n .ant-col-md-offset-9 {\n margin-left: 37.5%;\n }\n .ant-col-md-order-9 {\n order: 9;\n }\n .ant-col-md-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .ant-col-md-push-8 {\n left: 33.33333333%;\n }\n .ant-col-md-pull-8 {\n right: 33.33333333%;\n }\n .ant-col-md-offset-8 {\n margin-left: 33.33333333%;\n }\n .ant-col-md-order-8 {\n order: 8;\n }\n .ant-col-md-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n }\n .ant-col-md-push-7 {\n left: 29.16666667%;\n }\n .ant-col-md-pull-7 {\n right: 29.16666667%;\n }\n .ant-col-md-offset-7 {\n margin-left: 29.16666667%;\n }\n .ant-col-md-order-7 {\n order: 7;\n }\n .ant-col-md-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .ant-col-md-push-6 {\n left: 25%;\n }\n .ant-col-md-pull-6 {\n right: 25%;\n }\n .ant-col-md-offset-6 {\n margin-left: 25%;\n }\n .ant-col-md-order-6 {\n order: 6;\n }\n .ant-col-md-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n }\n .ant-col-md-push-5 {\n left: 20.83333333%;\n }\n .ant-col-md-pull-5 {\n right: 20.83333333%;\n }\n .ant-col-md-offset-5 {\n margin-left: 20.83333333%;\n }\n .ant-col-md-order-5 {\n order: 5;\n }\n .ant-col-md-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .ant-col-md-push-4 {\n left: 16.66666667%;\n }\n .ant-col-md-pull-4 {\n right: 16.66666667%;\n }\n .ant-col-md-offset-4 {\n margin-left: 16.66666667%;\n }\n .ant-col-md-order-4 {\n order: 4;\n }\n .ant-col-md-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n }\n .ant-col-md-push-3 {\n left: 12.5%;\n }\n .ant-col-md-pull-3 {\n right: 12.5%;\n }\n .ant-col-md-offset-3 {\n margin-left: 12.5%;\n }\n .ant-col-md-order-3 {\n order: 3;\n }\n .ant-col-md-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .ant-col-md-push-2 {\n left: 8.33333333%;\n }\n .ant-col-md-pull-2 {\n right: 8.33333333%;\n }\n .ant-col-md-offset-2 {\n margin-left: 8.33333333%;\n }\n .ant-col-md-order-2 {\n order: 2;\n }\n .ant-col-md-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n }\n .ant-col-md-push-1 {\n left: 4.16666667%;\n }\n .ant-col-md-pull-1 {\n right: 4.16666667%;\n }\n .ant-col-md-offset-1 {\n margin-left: 4.16666667%;\n }\n .ant-col-md-order-1 {\n order: 1;\n }\n .ant-col-md-0 {\n display: none;\n }\n .ant-col-push-0 {\n left: auto;\n }\n .ant-col-pull-0 {\n right: auto;\n }\n .ant-col-md-push-0 {\n left: auto;\n }\n .ant-col-md-pull-0 {\n right: auto;\n }\n .ant-col-md-offset-0 {\n margin-left: 0;\n }\n .ant-col-md-order-0 {\n order: 0;\n }\n .ant-col-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-md-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-md-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-md-offset-0.ant-col-rtl {\n margin-right: 0;\n }\n .ant-col-md-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n }\n .ant-col-md-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n }\n .ant-col-md-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n }\n .ant-col-md-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n }\n .ant-col-md-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n }\n .ant-col-md-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .ant-col-md-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n }\n .ant-col-md-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n }\n .ant-col-md-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n }\n .ant-col-md-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n }\n .ant-col-md-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n }\n .ant-col-md-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .ant-col-md-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n }\n .ant-col-md-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n }\n .ant-col-md-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n }\n .ant-col-md-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n }\n .ant-col-md-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n }\n .ant-col-md-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n }\n .ant-col-md-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n }\n .ant-col-md-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n }\n .ant-col-md-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n }\n .ant-col-md-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n }\n .ant-col-md-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n }\n .ant-col-md-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .ant-col-md-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n }\n .ant-col-md-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n }\n .ant-col-md-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n }\n .ant-col-md-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n }\n .ant-col-md-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n }\n .ant-col-md-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .ant-col-md-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n }\n .ant-col-md-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n }\n .ant-col-md-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n }\n .ant-col-md-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n }\n .ant-col-md-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n }\n .ant-col-md-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n }\n .ant-col-md-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n }\n .ant-col-md-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n }\n .ant-col-md-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n }\n .ant-col-md-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n }\n .ant-col-md-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n }\n .ant-col-md-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .ant-col-md-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n }\n .ant-col-md-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n }\n .ant-col-md-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n }\n .ant-col-md-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n }\n .ant-col-md-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n }\n .ant-col-md-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .ant-col-md-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n }\n .ant-col-md-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n }\n .ant-col-md-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n }\n .ant-col-md-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n }\n .ant-col-md-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n }\n .ant-col-md-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n }\n .ant-col-md-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n }\n .ant-col-md-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n }\n .ant-col-md-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n }\n .ant-col-md-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n }\n .ant-col-md-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n }\n .ant-col-md-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .ant-col-md-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n }\n .ant-col-md-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n }\n .ant-col-md-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n }\n .ant-col-md-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n }\n .ant-col-md-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n }\n .ant-col-md-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .ant-col-md-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n }\n .ant-col-md-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n }\n .ant-col-md-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n }\n .ant-col-md-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n }\n .ant-col-md-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n }\n .ant-col-md-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n }\n}\n@media (min-width: 992px) {\n .ant-col-lg-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-lg-push-24 {\n left: 100%;\n }\n .ant-col-lg-pull-24 {\n right: 100%;\n }\n .ant-col-lg-offset-24 {\n margin-left: 100%;\n }\n .ant-col-lg-order-24 {\n order: 24;\n }\n .ant-col-lg-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n }\n .ant-col-lg-push-23 {\n left: 95.83333333%;\n }\n .ant-col-lg-pull-23 {\n right: 95.83333333%;\n }\n .ant-col-lg-offset-23 {\n margin-left: 95.83333333%;\n }\n .ant-col-lg-order-23 {\n order: 23;\n }\n .ant-col-lg-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .ant-col-lg-push-22 {\n left: 91.66666667%;\n }\n .ant-col-lg-pull-22 {\n right: 91.66666667%;\n }\n .ant-col-lg-offset-22 {\n margin-left: 91.66666667%;\n }\n .ant-col-lg-order-22 {\n order: 22;\n }\n .ant-col-lg-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n }\n .ant-col-lg-push-21 {\n left: 87.5%;\n }\n .ant-col-lg-pull-21 {\n right: 87.5%;\n }\n .ant-col-lg-offset-21 {\n margin-left: 87.5%;\n }\n .ant-col-lg-order-21 {\n order: 21;\n }\n .ant-col-lg-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .ant-col-lg-push-20 {\n left: 83.33333333%;\n }\n .ant-col-lg-pull-20 {\n right: 83.33333333%;\n }\n .ant-col-lg-offset-20 {\n margin-left: 83.33333333%;\n }\n .ant-col-lg-order-20 {\n order: 20;\n }\n .ant-col-lg-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n }\n .ant-col-lg-push-19 {\n left: 79.16666667%;\n }\n .ant-col-lg-pull-19 {\n right: 79.16666667%;\n }\n .ant-col-lg-offset-19 {\n margin-left: 79.16666667%;\n }\n .ant-col-lg-order-19 {\n order: 19;\n }\n .ant-col-lg-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .ant-col-lg-push-18 {\n left: 75%;\n }\n .ant-col-lg-pull-18 {\n right: 75%;\n }\n .ant-col-lg-offset-18 {\n margin-left: 75%;\n }\n .ant-col-lg-order-18 {\n order: 18;\n }\n .ant-col-lg-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n }\n .ant-col-lg-push-17 {\n left: 70.83333333%;\n }\n .ant-col-lg-pull-17 {\n right: 70.83333333%;\n }\n .ant-col-lg-offset-17 {\n margin-left: 70.83333333%;\n }\n .ant-col-lg-order-17 {\n order: 17;\n }\n .ant-col-lg-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .ant-col-lg-push-16 {\n left: 66.66666667%;\n }\n .ant-col-lg-pull-16 {\n right: 66.66666667%;\n }\n .ant-col-lg-offset-16 {\n margin-left: 66.66666667%;\n }\n .ant-col-lg-order-16 {\n order: 16;\n }\n .ant-col-lg-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n }\n .ant-col-lg-push-15 {\n left: 62.5%;\n }\n .ant-col-lg-pull-15 {\n right: 62.5%;\n }\n .ant-col-lg-offset-15 {\n margin-left: 62.5%;\n }\n .ant-col-lg-order-15 {\n order: 15;\n }\n .ant-col-lg-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .ant-col-lg-push-14 {\n left: 58.33333333%;\n }\n .ant-col-lg-pull-14 {\n right: 58.33333333%;\n }\n .ant-col-lg-offset-14 {\n margin-left: 58.33333333%;\n }\n .ant-col-lg-order-14 {\n order: 14;\n }\n .ant-col-lg-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n }\n .ant-col-lg-push-13 {\n left: 54.16666667%;\n }\n .ant-col-lg-pull-13 {\n right: 54.16666667%;\n }\n .ant-col-lg-offset-13 {\n margin-left: 54.16666667%;\n }\n .ant-col-lg-order-13 {\n order: 13;\n }\n .ant-col-lg-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .ant-col-lg-push-12 {\n left: 50%;\n }\n .ant-col-lg-pull-12 {\n right: 50%;\n }\n .ant-col-lg-offset-12 {\n margin-left: 50%;\n }\n .ant-col-lg-order-12 {\n order: 12;\n }\n .ant-col-lg-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n }\n .ant-col-lg-push-11 {\n left: 45.83333333%;\n }\n .ant-col-lg-pull-11 {\n right: 45.83333333%;\n }\n .ant-col-lg-offset-11 {\n margin-left: 45.83333333%;\n }\n .ant-col-lg-order-11 {\n order: 11;\n }\n .ant-col-lg-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .ant-col-lg-push-10 {\n left: 41.66666667%;\n }\n .ant-col-lg-pull-10 {\n right: 41.66666667%;\n }\n .ant-col-lg-offset-10 {\n margin-left: 41.66666667%;\n }\n .ant-col-lg-order-10 {\n order: 10;\n }\n .ant-col-lg-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n }\n .ant-col-lg-push-9 {\n left: 37.5%;\n }\n .ant-col-lg-pull-9 {\n right: 37.5%;\n }\n .ant-col-lg-offset-9 {\n margin-left: 37.5%;\n }\n .ant-col-lg-order-9 {\n order: 9;\n }\n .ant-col-lg-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .ant-col-lg-push-8 {\n left: 33.33333333%;\n }\n .ant-col-lg-pull-8 {\n right: 33.33333333%;\n }\n .ant-col-lg-offset-8 {\n margin-left: 33.33333333%;\n }\n .ant-col-lg-order-8 {\n order: 8;\n }\n .ant-col-lg-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n }\n .ant-col-lg-push-7 {\n left: 29.16666667%;\n }\n .ant-col-lg-pull-7 {\n right: 29.16666667%;\n }\n .ant-col-lg-offset-7 {\n margin-left: 29.16666667%;\n }\n .ant-col-lg-order-7 {\n order: 7;\n }\n .ant-col-lg-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .ant-col-lg-push-6 {\n left: 25%;\n }\n .ant-col-lg-pull-6 {\n right: 25%;\n }\n .ant-col-lg-offset-6 {\n margin-left: 25%;\n }\n .ant-col-lg-order-6 {\n order: 6;\n }\n .ant-col-lg-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n }\n .ant-col-lg-push-5 {\n left: 20.83333333%;\n }\n .ant-col-lg-pull-5 {\n right: 20.83333333%;\n }\n .ant-col-lg-offset-5 {\n margin-left: 20.83333333%;\n }\n .ant-col-lg-order-5 {\n order: 5;\n }\n .ant-col-lg-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .ant-col-lg-push-4 {\n left: 16.66666667%;\n }\n .ant-col-lg-pull-4 {\n right: 16.66666667%;\n }\n .ant-col-lg-offset-4 {\n margin-left: 16.66666667%;\n }\n .ant-col-lg-order-4 {\n order: 4;\n }\n .ant-col-lg-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n }\n .ant-col-lg-push-3 {\n left: 12.5%;\n }\n .ant-col-lg-pull-3 {\n right: 12.5%;\n }\n .ant-col-lg-offset-3 {\n margin-left: 12.5%;\n }\n .ant-col-lg-order-3 {\n order: 3;\n }\n .ant-col-lg-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .ant-col-lg-push-2 {\n left: 8.33333333%;\n }\n .ant-col-lg-pull-2 {\n right: 8.33333333%;\n }\n .ant-col-lg-offset-2 {\n margin-left: 8.33333333%;\n }\n .ant-col-lg-order-2 {\n order: 2;\n }\n .ant-col-lg-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n }\n .ant-col-lg-push-1 {\n left: 4.16666667%;\n }\n .ant-col-lg-pull-1 {\n right: 4.16666667%;\n }\n .ant-col-lg-offset-1 {\n margin-left: 4.16666667%;\n }\n .ant-col-lg-order-1 {\n order: 1;\n }\n .ant-col-lg-0 {\n display: none;\n }\n .ant-col-push-0 {\n left: auto;\n }\n .ant-col-pull-0 {\n right: auto;\n }\n .ant-col-lg-push-0 {\n left: auto;\n }\n .ant-col-lg-pull-0 {\n right: auto;\n }\n .ant-col-lg-offset-0 {\n margin-left: 0;\n }\n .ant-col-lg-order-0 {\n order: 0;\n }\n .ant-col-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-lg-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-lg-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-lg-offset-0.ant-col-rtl {\n margin-right: 0;\n }\n .ant-col-lg-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n }\n .ant-col-lg-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n }\n .ant-col-lg-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n }\n .ant-col-lg-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n }\n .ant-col-lg-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n }\n .ant-col-lg-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n }\n .ant-col-lg-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n }\n .ant-col-lg-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n }\n .ant-col-lg-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n }\n .ant-col-lg-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n }\n .ant-col-lg-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n }\n .ant-col-lg-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n }\n .ant-col-lg-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n }\n .ant-col-lg-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n }\n .ant-col-lg-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n }\n .ant-col-lg-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n }\n .ant-col-lg-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n }\n .ant-col-lg-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n }\n .ant-col-lg-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n }\n .ant-col-lg-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n }\n .ant-col-lg-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n }\n .ant-col-lg-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n }\n .ant-col-lg-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n }\n .ant-col-lg-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n }\n .ant-col-lg-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n }\n .ant-col-lg-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n }\n .ant-col-lg-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n }\n .ant-col-lg-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n }\n .ant-col-lg-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n }\n .ant-col-lg-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n }\n .ant-col-lg-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n }\n .ant-col-lg-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n }\n .ant-col-lg-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n }\n .ant-col-lg-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n }\n .ant-col-lg-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n }\n .ant-col-lg-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n }\n .ant-col-lg-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n }\n .ant-col-lg-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n }\n .ant-col-lg-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n }\n .ant-col-lg-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n }\n .ant-col-lg-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n }\n .ant-col-lg-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n }\n .ant-col-lg-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n }\n .ant-col-lg-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n }\n .ant-col-lg-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n }\n .ant-col-lg-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n }\n .ant-col-lg-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n }\n .ant-col-lg-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n }\n .ant-col-lg-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n }\n .ant-col-lg-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n }\n .ant-col-lg-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n }\n .ant-col-lg-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n }\n .ant-col-lg-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n }\n .ant-col-lg-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n }\n .ant-col-lg-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n }\n .ant-col-lg-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n }\n}\n@media (min-width: 1200px) {\n .ant-col-xl-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-xl-push-24 {\n left: 100%;\n }\n .ant-col-xl-pull-24 {\n right: 100%;\n }\n .ant-col-xl-offset-24 {\n margin-left: 100%;\n }\n .ant-col-xl-order-24 {\n order: 24;\n }\n .ant-col-xl-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n }\n .ant-col-xl-push-23 {\n left: 95.83333333%;\n }\n .ant-col-xl-pull-23 {\n right: 95.83333333%;\n }\n .ant-col-xl-offset-23 {\n margin-left: 95.83333333%;\n }\n .ant-col-xl-order-23 {\n order: 23;\n }\n .ant-col-xl-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .ant-col-xl-push-22 {\n left: 91.66666667%;\n }\n .ant-col-xl-pull-22 {\n right: 91.66666667%;\n }\n .ant-col-xl-offset-22 {\n margin-left: 91.66666667%;\n }\n .ant-col-xl-order-22 {\n order: 22;\n }\n .ant-col-xl-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n }\n .ant-col-xl-push-21 {\n left: 87.5%;\n }\n .ant-col-xl-pull-21 {\n right: 87.5%;\n }\n .ant-col-xl-offset-21 {\n margin-left: 87.5%;\n }\n .ant-col-xl-order-21 {\n order: 21;\n }\n .ant-col-xl-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .ant-col-xl-push-20 {\n left: 83.33333333%;\n }\n .ant-col-xl-pull-20 {\n right: 83.33333333%;\n }\n .ant-col-xl-offset-20 {\n margin-left: 83.33333333%;\n }\n .ant-col-xl-order-20 {\n order: 20;\n }\n .ant-col-xl-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n }\n .ant-col-xl-push-19 {\n left: 79.16666667%;\n }\n .ant-col-xl-pull-19 {\n right: 79.16666667%;\n }\n .ant-col-xl-offset-19 {\n margin-left: 79.16666667%;\n }\n .ant-col-xl-order-19 {\n order: 19;\n }\n .ant-col-xl-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .ant-col-xl-push-18 {\n left: 75%;\n }\n .ant-col-xl-pull-18 {\n right: 75%;\n }\n .ant-col-xl-offset-18 {\n margin-left: 75%;\n }\n .ant-col-xl-order-18 {\n order: 18;\n }\n .ant-col-xl-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n }\n .ant-col-xl-push-17 {\n left: 70.83333333%;\n }\n .ant-col-xl-pull-17 {\n right: 70.83333333%;\n }\n .ant-col-xl-offset-17 {\n margin-left: 70.83333333%;\n }\n .ant-col-xl-order-17 {\n order: 17;\n }\n .ant-col-xl-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .ant-col-xl-push-16 {\n left: 66.66666667%;\n }\n .ant-col-xl-pull-16 {\n right: 66.66666667%;\n }\n .ant-col-xl-offset-16 {\n margin-left: 66.66666667%;\n }\n .ant-col-xl-order-16 {\n order: 16;\n }\n .ant-col-xl-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n }\n .ant-col-xl-push-15 {\n left: 62.5%;\n }\n .ant-col-xl-pull-15 {\n right: 62.5%;\n }\n .ant-col-xl-offset-15 {\n margin-left: 62.5%;\n }\n .ant-col-xl-order-15 {\n order: 15;\n }\n .ant-col-xl-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .ant-col-xl-push-14 {\n left: 58.33333333%;\n }\n .ant-col-xl-pull-14 {\n right: 58.33333333%;\n }\n .ant-col-xl-offset-14 {\n margin-left: 58.33333333%;\n }\n .ant-col-xl-order-14 {\n order: 14;\n }\n .ant-col-xl-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n }\n .ant-col-xl-push-13 {\n left: 54.16666667%;\n }\n .ant-col-xl-pull-13 {\n right: 54.16666667%;\n }\n .ant-col-xl-offset-13 {\n margin-left: 54.16666667%;\n }\n .ant-col-xl-order-13 {\n order: 13;\n }\n .ant-col-xl-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .ant-col-xl-push-12 {\n left: 50%;\n }\n .ant-col-xl-pull-12 {\n right: 50%;\n }\n .ant-col-xl-offset-12 {\n margin-left: 50%;\n }\n .ant-col-xl-order-12 {\n order: 12;\n }\n .ant-col-xl-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n }\n .ant-col-xl-push-11 {\n left: 45.83333333%;\n }\n .ant-col-xl-pull-11 {\n right: 45.83333333%;\n }\n .ant-col-xl-offset-11 {\n margin-left: 45.83333333%;\n }\n .ant-col-xl-order-11 {\n order: 11;\n }\n .ant-col-xl-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .ant-col-xl-push-10 {\n left: 41.66666667%;\n }\n .ant-col-xl-pull-10 {\n right: 41.66666667%;\n }\n .ant-col-xl-offset-10 {\n margin-left: 41.66666667%;\n }\n .ant-col-xl-order-10 {\n order: 10;\n }\n .ant-col-xl-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n }\n .ant-col-xl-push-9 {\n left: 37.5%;\n }\n .ant-col-xl-pull-9 {\n right: 37.5%;\n }\n .ant-col-xl-offset-9 {\n margin-left: 37.5%;\n }\n .ant-col-xl-order-9 {\n order: 9;\n }\n .ant-col-xl-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .ant-col-xl-push-8 {\n left: 33.33333333%;\n }\n .ant-col-xl-pull-8 {\n right: 33.33333333%;\n }\n .ant-col-xl-offset-8 {\n margin-left: 33.33333333%;\n }\n .ant-col-xl-order-8 {\n order: 8;\n }\n .ant-col-xl-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n }\n .ant-col-xl-push-7 {\n left: 29.16666667%;\n }\n .ant-col-xl-pull-7 {\n right: 29.16666667%;\n }\n .ant-col-xl-offset-7 {\n margin-left: 29.16666667%;\n }\n .ant-col-xl-order-7 {\n order: 7;\n }\n .ant-col-xl-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .ant-col-xl-push-6 {\n left: 25%;\n }\n .ant-col-xl-pull-6 {\n right: 25%;\n }\n .ant-col-xl-offset-6 {\n margin-left: 25%;\n }\n .ant-col-xl-order-6 {\n order: 6;\n }\n .ant-col-xl-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n }\n .ant-col-xl-push-5 {\n left: 20.83333333%;\n }\n .ant-col-xl-pull-5 {\n right: 20.83333333%;\n }\n .ant-col-xl-offset-5 {\n margin-left: 20.83333333%;\n }\n .ant-col-xl-order-5 {\n order: 5;\n }\n .ant-col-xl-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .ant-col-xl-push-4 {\n left: 16.66666667%;\n }\n .ant-col-xl-pull-4 {\n right: 16.66666667%;\n }\n .ant-col-xl-offset-4 {\n margin-left: 16.66666667%;\n }\n .ant-col-xl-order-4 {\n order: 4;\n }\n .ant-col-xl-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n }\n .ant-col-xl-push-3 {\n left: 12.5%;\n }\n .ant-col-xl-pull-3 {\n right: 12.5%;\n }\n .ant-col-xl-offset-3 {\n margin-left: 12.5%;\n }\n .ant-col-xl-order-3 {\n order: 3;\n }\n .ant-col-xl-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .ant-col-xl-push-2 {\n left: 8.33333333%;\n }\n .ant-col-xl-pull-2 {\n right: 8.33333333%;\n }\n .ant-col-xl-offset-2 {\n margin-left: 8.33333333%;\n }\n .ant-col-xl-order-2 {\n order: 2;\n }\n .ant-col-xl-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n }\n .ant-col-xl-push-1 {\n left: 4.16666667%;\n }\n .ant-col-xl-pull-1 {\n right: 4.16666667%;\n }\n .ant-col-xl-offset-1 {\n margin-left: 4.16666667%;\n }\n .ant-col-xl-order-1 {\n order: 1;\n }\n .ant-col-xl-0 {\n display: none;\n }\n .ant-col-push-0 {\n left: auto;\n }\n .ant-col-pull-0 {\n right: auto;\n }\n .ant-col-xl-push-0 {\n left: auto;\n }\n .ant-col-xl-pull-0 {\n right: auto;\n }\n .ant-col-xl-offset-0 {\n margin-left: 0;\n }\n .ant-col-xl-order-0 {\n order: 0;\n }\n .ant-col-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-xl-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-xl-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-xl-offset-0.ant-col-rtl {\n margin-right: 0;\n }\n .ant-col-xl-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n }\n .ant-col-xl-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n }\n .ant-col-xl-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n }\n .ant-col-xl-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n }\n .ant-col-xl-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n }\n .ant-col-xl-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n }\n .ant-col-xl-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n }\n .ant-col-xl-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n }\n .ant-col-xl-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n }\n .ant-col-xl-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n }\n .ant-col-xl-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n }\n .ant-col-xl-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n }\n .ant-col-xl-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n }\n .ant-col-xl-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n }\n .ant-col-xl-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n }\n .ant-col-xl-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n }\n .ant-col-xl-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n }\n .ant-col-xl-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n }\n .ant-col-xl-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n }\n .ant-col-xl-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n }\n .ant-col-xl-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n }\n .ant-col-xl-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n }\n .ant-col-xl-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n }\n .ant-col-xl-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n }\n .ant-col-xl-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n }\n .ant-col-xl-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n }\n .ant-col-xl-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n }\n .ant-col-xl-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n }\n .ant-col-xl-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n }\n .ant-col-xl-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n }\n .ant-col-xl-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n }\n .ant-col-xl-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n }\n .ant-col-xl-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n }\n .ant-col-xl-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n }\n .ant-col-xl-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n }\n .ant-col-xl-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n }\n .ant-col-xl-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n }\n .ant-col-xl-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n }\n .ant-col-xl-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n }\n .ant-col-xl-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n }\n .ant-col-xl-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n }\n .ant-col-xl-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n }\n .ant-col-xl-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n }\n .ant-col-xl-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n }\n .ant-col-xl-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n }\n .ant-col-xl-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n }\n .ant-col-xl-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n }\n .ant-col-xl-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n }\n .ant-col-xl-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n }\n .ant-col-xl-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n }\n .ant-col-xl-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n }\n .ant-col-xl-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n }\n .ant-col-xl-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n }\n .ant-col-xl-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n }\n .ant-col-xl-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n }\n .ant-col-xl-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n }\n}\n@media (min-width: 1600px) {\n .ant-col-xxl-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-xxl-push-24 {\n left: 100%;\n }\n .ant-col-xxl-pull-24 {\n right: 100%;\n }\n .ant-col-xxl-offset-24 {\n margin-left: 100%;\n }\n .ant-col-xxl-order-24 {\n order: 24;\n }\n .ant-col-xxl-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n }\n .ant-col-xxl-push-23 {\n left: 95.83333333%;\n }\n .ant-col-xxl-pull-23 {\n right: 95.83333333%;\n }\n .ant-col-xxl-offset-23 {\n margin-left: 95.83333333%;\n }\n .ant-col-xxl-order-23 {\n order: 23;\n }\n .ant-col-xxl-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .ant-col-xxl-push-22 {\n left: 91.66666667%;\n }\n .ant-col-xxl-pull-22 {\n right: 91.66666667%;\n }\n .ant-col-xxl-offset-22 {\n margin-left: 91.66666667%;\n }\n .ant-col-xxl-order-22 {\n order: 22;\n }\n .ant-col-xxl-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n }\n .ant-col-xxl-push-21 {\n left: 87.5%;\n }\n .ant-col-xxl-pull-21 {\n right: 87.5%;\n }\n .ant-col-xxl-offset-21 {\n margin-left: 87.5%;\n }\n .ant-col-xxl-order-21 {\n order: 21;\n }\n .ant-col-xxl-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .ant-col-xxl-push-20 {\n left: 83.33333333%;\n }\n .ant-col-xxl-pull-20 {\n right: 83.33333333%;\n }\n .ant-col-xxl-offset-20 {\n margin-left: 83.33333333%;\n }\n .ant-col-xxl-order-20 {\n order: 20;\n }\n .ant-col-xxl-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n }\n .ant-col-xxl-push-19 {\n left: 79.16666667%;\n }\n .ant-col-xxl-pull-19 {\n right: 79.16666667%;\n }\n .ant-col-xxl-offset-19 {\n margin-left: 79.16666667%;\n }\n .ant-col-xxl-order-19 {\n order: 19;\n }\n .ant-col-xxl-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .ant-col-xxl-push-18 {\n left: 75%;\n }\n .ant-col-xxl-pull-18 {\n right: 75%;\n }\n .ant-col-xxl-offset-18 {\n margin-left: 75%;\n }\n .ant-col-xxl-order-18 {\n order: 18;\n }\n .ant-col-xxl-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n }\n .ant-col-xxl-push-17 {\n left: 70.83333333%;\n }\n .ant-col-xxl-pull-17 {\n right: 70.83333333%;\n }\n .ant-col-xxl-offset-17 {\n margin-left: 70.83333333%;\n }\n .ant-col-xxl-order-17 {\n order: 17;\n }\n .ant-col-xxl-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .ant-col-xxl-push-16 {\n left: 66.66666667%;\n }\n .ant-col-xxl-pull-16 {\n right: 66.66666667%;\n }\n .ant-col-xxl-offset-16 {\n margin-left: 66.66666667%;\n }\n .ant-col-xxl-order-16 {\n order: 16;\n }\n .ant-col-xxl-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n }\n .ant-col-xxl-push-15 {\n left: 62.5%;\n }\n .ant-col-xxl-pull-15 {\n right: 62.5%;\n }\n .ant-col-xxl-offset-15 {\n margin-left: 62.5%;\n }\n .ant-col-xxl-order-15 {\n order: 15;\n }\n .ant-col-xxl-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .ant-col-xxl-push-14 {\n left: 58.33333333%;\n }\n .ant-col-xxl-pull-14 {\n right: 58.33333333%;\n }\n .ant-col-xxl-offset-14 {\n margin-left: 58.33333333%;\n }\n .ant-col-xxl-order-14 {\n order: 14;\n }\n .ant-col-xxl-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n }\n .ant-col-xxl-push-13 {\n left: 54.16666667%;\n }\n .ant-col-xxl-pull-13 {\n right: 54.16666667%;\n }\n .ant-col-xxl-offset-13 {\n margin-left: 54.16666667%;\n }\n .ant-col-xxl-order-13 {\n order: 13;\n }\n .ant-col-xxl-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .ant-col-xxl-push-12 {\n left: 50%;\n }\n .ant-col-xxl-pull-12 {\n right: 50%;\n }\n .ant-col-xxl-offset-12 {\n margin-left: 50%;\n }\n .ant-col-xxl-order-12 {\n order: 12;\n }\n .ant-col-xxl-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n }\n .ant-col-xxl-push-11 {\n left: 45.83333333%;\n }\n .ant-col-xxl-pull-11 {\n right: 45.83333333%;\n }\n .ant-col-xxl-offset-11 {\n margin-left: 45.83333333%;\n }\n .ant-col-xxl-order-11 {\n order: 11;\n }\n .ant-col-xxl-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .ant-col-xxl-push-10 {\n left: 41.66666667%;\n }\n .ant-col-xxl-pull-10 {\n right: 41.66666667%;\n }\n .ant-col-xxl-offset-10 {\n margin-left: 41.66666667%;\n }\n .ant-col-xxl-order-10 {\n order: 10;\n }\n .ant-col-xxl-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n }\n .ant-col-xxl-push-9 {\n left: 37.5%;\n }\n .ant-col-xxl-pull-9 {\n right: 37.5%;\n }\n .ant-col-xxl-offset-9 {\n margin-left: 37.5%;\n }\n .ant-col-xxl-order-9 {\n order: 9;\n }\n .ant-col-xxl-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .ant-col-xxl-push-8 {\n left: 33.33333333%;\n }\n .ant-col-xxl-pull-8 {\n right: 33.33333333%;\n }\n .ant-col-xxl-offset-8 {\n margin-left: 33.33333333%;\n }\n .ant-col-xxl-order-8 {\n order: 8;\n }\n .ant-col-xxl-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n }\n .ant-col-xxl-push-7 {\n left: 29.16666667%;\n }\n .ant-col-xxl-pull-7 {\n right: 29.16666667%;\n }\n .ant-col-xxl-offset-7 {\n margin-left: 29.16666667%;\n }\n .ant-col-xxl-order-7 {\n order: 7;\n }\n .ant-col-xxl-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .ant-col-xxl-push-6 {\n left: 25%;\n }\n .ant-col-xxl-pull-6 {\n right: 25%;\n }\n .ant-col-xxl-offset-6 {\n margin-left: 25%;\n }\n .ant-col-xxl-order-6 {\n order: 6;\n }\n .ant-col-xxl-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n }\n .ant-col-xxl-push-5 {\n left: 20.83333333%;\n }\n .ant-col-xxl-pull-5 {\n right: 20.83333333%;\n }\n .ant-col-xxl-offset-5 {\n margin-left: 20.83333333%;\n }\n .ant-col-xxl-order-5 {\n order: 5;\n }\n .ant-col-xxl-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .ant-col-xxl-push-4 {\n left: 16.66666667%;\n }\n .ant-col-xxl-pull-4 {\n right: 16.66666667%;\n }\n .ant-col-xxl-offset-4 {\n margin-left: 16.66666667%;\n }\n .ant-col-xxl-order-4 {\n order: 4;\n }\n .ant-col-xxl-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n }\n .ant-col-xxl-push-3 {\n left: 12.5%;\n }\n .ant-col-xxl-pull-3 {\n right: 12.5%;\n }\n .ant-col-xxl-offset-3 {\n margin-left: 12.5%;\n }\n .ant-col-xxl-order-3 {\n order: 3;\n }\n .ant-col-xxl-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .ant-col-xxl-push-2 {\n left: 8.33333333%;\n }\n .ant-col-xxl-pull-2 {\n right: 8.33333333%;\n }\n .ant-col-xxl-offset-2 {\n margin-left: 8.33333333%;\n }\n .ant-col-xxl-order-2 {\n order: 2;\n }\n .ant-col-xxl-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n }\n .ant-col-xxl-push-1 {\n left: 4.16666667%;\n }\n .ant-col-xxl-pull-1 {\n right: 4.16666667%;\n }\n .ant-col-xxl-offset-1 {\n margin-left: 4.16666667%;\n }\n .ant-col-xxl-order-1 {\n order: 1;\n }\n .ant-col-xxl-0 {\n display: none;\n }\n .ant-col-push-0 {\n left: auto;\n }\n .ant-col-pull-0 {\n right: auto;\n }\n .ant-col-xxl-push-0 {\n left: auto;\n }\n .ant-col-xxl-pull-0 {\n right: auto;\n }\n .ant-col-xxl-offset-0 {\n margin-left: 0;\n }\n .ant-col-xxl-order-0 {\n order: 0;\n }\n .ant-col-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-xxl-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-xxl-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-xxl-offset-0.ant-col-rtl {\n margin-right: 0;\n }\n .ant-col-xxl-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n }\n .ant-col-xxl-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n }\n .ant-col-xxl-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n }\n .ant-col-xxl-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n }\n .ant-col-xxl-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n }\n .ant-col-xxl-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n }\n .ant-col-xxl-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n }\n .ant-col-xxl-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n }\n .ant-col-xxl-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n }\n .ant-col-xxl-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n }\n .ant-col-xxl-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n }\n .ant-col-xxl-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n }\n .ant-col-xxl-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n }\n .ant-col-xxl-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n }\n .ant-col-xxl-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n }\n .ant-col-xxl-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n }\n .ant-col-xxl-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n }\n .ant-col-xxl-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n }\n .ant-col-xxl-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n }\n .ant-col-xxl-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n }\n .ant-col-xxl-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n }\n .ant-col-xxl-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n }\n .ant-col-xxl-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n }\n .ant-col-xxl-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n }\n .ant-col-xxl-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n }\n .ant-col-xxl-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n }\n .ant-col-xxl-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n }\n .ant-col-xxl-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n }\n .ant-col-xxl-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n }\n .ant-col-xxl-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n }\n .ant-col-xxl-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n }\n .ant-col-xxl-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n }\n .ant-col-xxl-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n }\n .ant-col-xxl-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n }\n .ant-col-xxl-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n }\n .ant-col-xxl-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n }\n .ant-col-xxl-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n }\n .ant-col-xxl-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n }\n .ant-col-xxl-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n }\n .ant-col-xxl-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n }\n .ant-col-xxl-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n }\n .ant-col-xxl-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n }\n .ant-col-xxl-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n }\n .ant-col-xxl-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n }\n .ant-col-xxl-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n }\n .ant-col-xxl-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n }\n .ant-col-xxl-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n }\n .ant-col-xxl-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n }\n .ant-col-xxl-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n }\n .ant-col-xxl-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n }\n .ant-col-xxl-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n }\n .ant-col-xxl-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n }\n .ant-col-xxl-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n }\n .ant-col-xxl-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n }\n .ant-col-xxl-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n }\n .ant-col-xxl-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n }\n}\n.ant-row-rtl {\n direction: rtl;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-collapse {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n background-color: #fafafa;\n border: 1px solid #d9d9d9;\n border-bottom: 0;\n border-radius: 2px;\n}\n.ant-collapse > .ant-collapse-item {\n border-bottom: 1px solid #d9d9d9;\n}\n.ant-collapse > .ant-collapse-item:last-child,\n.ant-collapse > .ant-collapse-item:last-child > .ant-collapse-header {\n border-radius: 0 0 2px 2px;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header {\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n align-items: flex-start;\n padding: 12px 16px;\n color: rgba(0, 0, 0, 0.85);\n line-height: 1.5715;\n cursor: pointer;\n transition: all 0.3s, visibility 0s;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {\n display: inline-block;\n margin-right: 12px;\n font-size: 12px;\n vertical-align: -1px;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow svg {\n transition: transform 0.24s;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-header-text {\n flex: auto;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-extra {\n margin-left: auto;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header:focus {\n outline: none;\n}\n.ant-collapse > .ant-collapse-item .ant-collapse-header-collapsible-only {\n cursor: default;\n}\n.ant-collapse > .ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text {\n flex: none;\n cursor: pointer;\n}\n.ant-collapse > .ant-collapse-item .ant-collapse-icon-collapsible-only {\n cursor: default;\n}\n.ant-collapse > .ant-collapse-item .ant-collapse-icon-collapsible-only .ant-collapse-expand-icon {\n cursor: pointer;\n}\n.ant-collapse > .ant-collapse-item.ant-collapse-no-arrow > .ant-collapse-header {\n padding-left: 12px;\n}\n.ant-collapse-icon-position-end > .ant-collapse-item > .ant-collapse-header {\n position: relative;\n padding: 12px 16px;\n padding-right: 40px;\n}\n.ant-collapse-icon-position-end > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {\n position: absolute;\n top: 50%;\n right: 16px;\n left: auto;\n margin: 0;\n transform: translateY(-50%);\n}\n.ant-collapse-content {\n color: rgba(0, 0, 0, 0.85);\n background-color: #fff;\n border-top: 1px solid #d9d9d9;\n}\n.ant-collapse-content > .ant-collapse-content-box {\n padding: 16px;\n}\n.ant-collapse-content-hidden {\n display: none;\n}\n.ant-collapse-item:last-child > .ant-collapse-content {\n border-radius: 0 0 2px 2px;\n}\n.ant-collapse-borderless {\n background-color: #fafafa;\n border: 0;\n}\n.ant-collapse-borderless > .ant-collapse-item {\n border-bottom: 1px solid #d9d9d9;\n}\n.ant-collapse-borderless > .ant-collapse-item:last-child,\n.ant-collapse-borderless > .ant-collapse-item:last-child .ant-collapse-header {\n border-radius: 0;\n}\n.ant-collapse-borderless > .ant-collapse-item:last-child {\n border-bottom: 0;\n}\n.ant-collapse-borderless > .ant-collapse-item > .ant-collapse-content {\n background-color: transparent;\n border-top: 0;\n}\n.ant-collapse-borderless > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\n padding-top: 4px;\n}\n.ant-collapse-ghost {\n background-color: transparent;\n border: 0;\n}\n.ant-collapse-ghost > .ant-collapse-item {\n border-bottom: 0;\n}\n.ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content {\n background-color: transparent;\n border-top: 0;\n}\n.ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\n padding-top: 12px;\n padding-bottom: 12px;\n}\n.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header,\n.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header > .arrow {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-collapse-rtl {\n direction: rtl;\n}\n.ant-collapse-rtl.ant-collapse.ant-collapse-icon-position-end > .ant-collapse-item > .ant-collapse-header {\n position: relative;\n padding: 12px 16px;\n padding-left: 40px;\n}\n.ant-collapse-rtl.ant-collapse.ant-collapse-icon-position-end > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {\n position: absolute;\n top: 50%;\n right: auto;\n left: 16px;\n margin: 0;\n transform: translateY(-50%);\n}\n.ant-collapse-rtl .ant-collapse > .ant-collapse-item > .ant-collapse-header {\n padding: 12px 16px;\n padding-right: 40px;\n}\n.ant-collapse-rtl.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-collapse-rtl.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow svg {\n transform: rotate(180deg);\n}\n.ant-collapse-rtl.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-extra {\n margin-right: auto;\n margin-left: 0;\n}\n.ant-collapse-rtl.ant-collapse > .ant-collapse-item.ant-collapse-no-arrow > .ant-collapse-header {\n padding-right: 12px;\n padding-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-comment {\n position: relative;\n background-color: inherit;\n}\n.ant-comment-inner {\n display: flex;\n padding: 16px 0;\n}\n.ant-comment-avatar {\n position: relative;\n flex-shrink: 0;\n margin-right: 12px;\n cursor: pointer;\n}\n.ant-comment-avatar img {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n}\n.ant-comment-content {\n position: relative;\n flex: 1 1 auto;\n min-width: 1px;\n font-size: 14px;\n word-wrap: break-word;\n}\n.ant-comment-content-author {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin-bottom: 4px;\n font-size: 14px;\n}\n.ant-comment-content-author > a,\n.ant-comment-content-author > span {\n padding-right: 8px;\n font-size: 12px;\n line-height: 18px;\n}\n.ant-comment-content-author-name {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n transition: color 0.3s;\n}\n.ant-comment-content-author-name > * {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-comment-content-author-name > *:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-comment-content-author-time {\n color: #ccc;\n white-space: nowrap;\n cursor: auto;\n}\n.ant-comment-content-detail p {\n margin-bottom: inherit;\n white-space: pre-wrap;\n}\n.ant-comment-actions {\n margin-top: 12px;\n margin-bottom: inherit;\n padding-left: 0;\n}\n.ant-comment-actions > li {\n display: inline-block;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-comment-actions > li > span {\n margin-right: 10px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n cursor: pointer;\n transition: color 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-comment-actions > li > span:hover {\n color: #595959;\n}\n.ant-comment-nested {\n margin-left: 44px;\n}\n.ant-comment-rtl {\n direction: rtl;\n}\n.ant-comment-rtl .ant-comment-avatar {\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-comment-rtl .ant-comment-content-author > a,\n.ant-comment-rtl .ant-comment-content-author > span {\n padding-right: 0;\n padding-left: 8px;\n}\n.ant-comment-rtl .ant-comment-actions {\n padding-right: 0;\n}\n.ant-comment-rtl .ant-comment-actions > li > span {\n margin-right: 0;\n margin-left: 10px;\n}\n.ant-comment-rtl .ant-comment-nested {\n margin-right: 44px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-descriptions-header {\n display: flex;\n align-items: center;\n margin-bottom: 20px;\n}\n.ant-descriptions-title {\n flex: auto;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: bold;\n font-size: 16px;\n line-height: 1.5715;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-descriptions-extra {\n margin-left: auto;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-descriptions-view {\n width: 100%;\n border-radius: 2px;\n}\n.ant-descriptions-view table {\n width: 100%;\n table-layout: fixed;\n}\n.ant-descriptions-row > th,\n.ant-descriptions-row > td {\n padding-bottom: 16px;\n}\n.ant-descriptions-row:last-child {\n border-bottom: none;\n}\n.ant-descriptions-item-label {\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 1.5715;\n text-align: start;\n}\n.ant-descriptions-item-label::after {\n content: ':';\n position: relative;\n top: -0.5px;\n margin: 0 8px 0 2px;\n}\n.ant-descriptions-item-label.ant-descriptions-item-no-colon::after {\n content: ' ';\n}\n.ant-descriptions-item-no-label::after {\n margin: 0;\n content: '';\n}\n.ant-descriptions-item-content {\n display: table-cell;\n flex: 1;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n.ant-descriptions-item {\n padding-bottom: 0;\n vertical-align: top;\n}\n.ant-descriptions-item-container {\n display: flex;\n}\n.ant-descriptions-item-container .ant-descriptions-item-label,\n.ant-descriptions-item-container .ant-descriptions-item-content {\n display: inline-flex;\n align-items: baseline;\n}\n.ant-descriptions-middle .ant-descriptions-row > th,\n.ant-descriptions-middle .ant-descriptions-row > td {\n padding-bottom: 12px;\n}\n.ant-descriptions-small .ant-descriptions-row > th,\n.ant-descriptions-small .ant-descriptions-row > td {\n padding-bottom: 8px;\n}\n.ant-descriptions-bordered .ant-descriptions-view {\n border: 1px solid #f0f0f0;\n}\n.ant-descriptions-bordered .ant-descriptions-view > table {\n table-layout: auto;\n border-collapse: collapse;\n}\n.ant-descriptions-bordered .ant-descriptions-item-label,\n.ant-descriptions-bordered .ant-descriptions-item-content {\n padding: 16px 24px;\n border-right: 1px solid #f0f0f0;\n}\n.ant-descriptions-bordered .ant-descriptions-item-label:last-child,\n.ant-descriptions-bordered .ant-descriptions-item-content:last-child {\n border-right: none;\n}\n.ant-descriptions-bordered .ant-descriptions-item-label {\n background-color: #fafafa;\n}\n.ant-descriptions-bordered .ant-descriptions-item-label::after {\n display: none;\n}\n.ant-descriptions-bordered .ant-descriptions-row {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-descriptions-bordered .ant-descriptions-row:last-child {\n border-bottom: none;\n}\n.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-label,\n.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-content {\n padding: 12px 24px;\n}\n.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label,\n.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-content {\n padding: 8px 16px;\n}\n.ant-descriptions-rtl {\n direction: rtl;\n}\n.ant-descriptions-rtl .ant-descriptions-item-label::after {\n margin: 0 2px 0 8px;\n}\n.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label,\n.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content {\n border-right: none;\n border-left: 1px solid #f0f0f0;\n}\n.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label:last-child,\n.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content:last-child {\n border-left: none;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-divider {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n}\n.ant-divider-vertical {\n position: relative;\n top: -0.06em;\n display: inline-block;\n height: 0.9em;\n margin: 0 8px;\n vertical-align: middle;\n border-top: 0;\n border-left: 1px solid rgba(0, 0, 0, 0.06);\n}\n.ant-divider-horizontal {\n display: flex;\n clear: both;\n width: 100%;\n min-width: 100%;\n margin: 24px 0;\n}\n.ant-divider-horizontal.ant-divider-with-text {\n display: flex;\n align-items: center;\n margin: 16px 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n white-space: nowrap;\n text-align: center;\n border-top: 0;\n border-top-color: rgba(0, 0, 0, 0.06);\n}\n.ant-divider-horizontal.ant-divider-with-text::before,\n.ant-divider-horizontal.ant-divider-with-text::after {\n position: relative;\n width: 50%;\n border-top: 1px solid transparent;\n border-top-color: inherit;\n border-bottom: 0;\n transform: translateY(50%);\n content: '';\n}\n.ant-divider-horizontal.ant-divider-with-text-left::before {\n width: 5%;\n}\n.ant-divider-horizontal.ant-divider-with-text-left::after {\n width: 95%;\n}\n.ant-divider-horizontal.ant-divider-with-text-right::before {\n width: 95%;\n}\n.ant-divider-horizontal.ant-divider-with-text-right::after {\n width: 5%;\n}\n.ant-divider-inner-text {\n display: inline-block;\n padding: 0 1em;\n}\n.ant-divider-dashed {\n background: none;\n border-color: rgba(0, 0, 0, 0.06);\n border-style: dashed;\n border-width: 1px 0 0;\n}\n.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed::before,\n.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed::after {\n border-style: dashed none none;\n}\n.ant-divider-vertical.ant-divider-dashed {\n border-width: 0 0 0 1px;\n}\n.ant-divider-plain.ant-divider-with-text {\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n}\n.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left::before {\n width: 0;\n}\n.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left::after {\n width: 100%;\n}\n.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left .ant-divider-inner-text {\n padding-left: 0;\n}\n.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right::before {\n width: 100%;\n}\n.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right::after {\n width: 0;\n}\n.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right .ant-divider-inner-text {\n padding-right: 0;\n}\n.ant-divider-rtl {\n direction: rtl;\n}\n.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left::before {\n width: 95%;\n}\n.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left::after {\n width: 5%;\n}\n.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right::before {\n width: 5%;\n}\n.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right::after {\n width: 95%;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-drawer {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n pointer-events: none;\n}\n.ant-drawer-inline {\n position: absolute;\n}\n.ant-drawer-mask {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n background: rgba(0, 0, 0, 0.45);\n pointer-events: auto;\n}\n.ant-drawer-content-wrapper {\n position: absolute;\n z-index: 1000;\n transition: all 0.3s;\n}\n.ant-drawer-content-wrapper-hidden {\n display: none;\n}\n.ant-drawer-left > .ant-drawer-content-wrapper {\n top: 0;\n bottom: 0;\n left: 0;\n box-shadow: 6px 0 16px -8px rgba(0, 0, 0, 0.08), 9px 0 28px 0 rgba(0, 0, 0, 0.05), 12px 0 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-right > .ant-drawer-content-wrapper {\n top: 0;\n right: 0;\n bottom: 0;\n box-shadow: -6px 0 16px -8px rgba(0, 0, 0, 0.08), -9px 0 28px 0 rgba(0, 0, 0, 0.05), -12px 0 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-top > .ant-drawer-content-wrapper {\n top: 0;\n right: 0;\n left: 0;\n box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.08), 0 9px 28px 0 rgba(0, 0, 0, 0.05), 0 12px 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-bottom > .ant-drawer-content-wrapper {\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 0 -6px 16px -8px rgba(0, 0, 0, 0.08), 0 -9px 28px 0 rgba(0, 0, 0, 0.05), 0 -12px 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n pointer-events: auto;\n}\n.ant-drawer-wrapper-body {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n.ant-drawer-header {\n display: flex;\n flex: 0;\n align-items: center;\n padding: 16px 24px;\n font-size: 16px;\n line-height: 22px;\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-drawer-header-title {\n display: flex;\n flex: 1;\n align-items: center;\n min-width: 0;\n min-height: 0;\n}\n.ant-drawer-extra {\n flex: none;\n}\n.ant-drawer-close {\n display: inline-block;\n margin-right: 12px;\n color: rgba(0, 0, 0, 0.45);\n font-weight: 700;\n font-size: 16px;\n font-style: normal;\n line-height: 1;\n text-align: center;\n text-transform: none;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n text-rendering: auto;\n}\n.ant-drawer-close:focus,\n.ant-drawer-close:hover {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n}\n.ant-drawer-title {\n flex: 1;\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n}\n.ant-drawer-body {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 24px;\n overflow: auto;\n}\n.ant-drawer-footer {\n flex-shrink: 0;\n padding: 10px 16px;\n border-top: 1px solid #f0f0f0;\n}\n.panel-motion-enter-start,\n.panel-motion-appear-start,\n.panel-motion-leave-start {\n transition: none;\n}\n.panel-motion-enter-active,\n.panel-motion-appear-active,\n.panel-motion-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-mask-motion-enter-active,\n.ant-drawer-mask-motion-appear-active,\n.ant-drawer-mask-motion-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-mask-motion-enter,\n.ant-drawer-mask-motion-appear {\n opacity: 0;\n}\n.ant-drawer-mask-motion-enter-active,\n.ant-drawer-mask-motion-appear-active {\n opacity: 1;\n}\n.ant-drawer-mask-motion-leave {\n opacity: 1;\n}\n.ant-drawer-mask-motion-leave-active {\n opacity: 0;\n}\n.ant-drawer-panel-motion-left-enter-start,\n.ant-drawer-panel-motion-left-appear-start,\n.ant-drawer-panel-motion-left-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-left-enter-active,\n.ant-drawer-panel-motion-left-appear-active,\n.ant-drawer-panel-motion-left-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-left-enter-start,\n.ant-drawer-panel-motion-left-appear-start {\n transform: translateX(-100%) !important;\n}\n.ant-drawer-panel-motion-left-enter-active,\n.ant-drawer-panel-motion-left-appear-active {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-left-leave {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-left-leave-active {\n transform: translateX(-100%);\n}\n.ant-drawer-panel-motion-right-enter-start,\n.ant-drawer-panel-motion-right-appear-start,\n.ant-drawer-panel-motion-right-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-right-enter-active,\n.ant-drawer-panel-motion-right-appear-active,\n.ant-drawer-panel-motion-right-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-right-enter-start,\n.ant-drawer-panel-motion-right-appear-start {\n transform: translateX(100%) !important;\n}\n.ant-drawer-panel-motion-right-enter-active,\n.ant-drawer-panel-motion-right-appear-active {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-right-leave {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-right-leave-active {\n transform: translateX(100%);\n}\n.ant-drawer-panel-motion-top-enter-start,\n.ant-drawer-panel-motion-top-appear-start,\n.ant-drawer-panel-motion-top-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-top-enter-active,\n.ant-drawer-panel-motion-top-appear-active,\n.ant-drawer-panel-motion-top-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-top-enter-start,\n.ant-drawer-panel-motion-top-appear-start {\n transform: translateY(-100%) !important;\n}\n.ant-drawer-panel-motion-top-enter-active,\n.ant-drawer-panel-motion-top-appear-active {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-top-leave {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-top-leave-active {\n transform: translateY(-100%);\n}\n.ant-drawer-panel-motion-bottom-enter-start,\n.ant-drawer-panel-motion-bottom-appear-start,\n.ant-drawer-panel-motion-bottom-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-bottom-enter-active,\n.ant-drawer-panel-motion-bottom-appear-active,\n.ant-drawer-panel-motion-bottom-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-bottom-enter-start,\n.ant-drawer-panel-motion-bottom-appear-start {\n transform: translateY(100%) !important;\n}\n.ant-drawer-panel-motion-bottom-enter-active,\n.ant-drawer-panel-motion-bottom-appear-active {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-bottom-leave {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-bottom-leave-active {\n transform: translateY(100%);\n}\n.ant-drawer-rtl {\n direction: rtl;\n}\n.ant-drawer-rtl .ant-drawer-close {\n margin-right: 0;\n margin-left: 12px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-form-item .ant-input-number + .ant-form-text {\n margin-left: 8px;\n}\n.ant-form-inline {\n display: flex;\n flex-wrap: wrap;\n}\n.ant-form-inline .ant-form-item {\n flex: none;\n flex-wrap: nowrap;\n margin-right: 16px;\n margin-bottom: 0;\n}\n.ant-form-inline .ant-form-item-with-help {\n margin-bottom: 24px;\n}\n.ant-form-inline .ant-form-item > .ant-form-item-label,\n.ant-form-inline .ant-form-item > .ant-form-item-control {\n display: inline-block;\n vertical-align: top;\n}\n.ant-form-inline .ant-form-item > .ant-form-item-label {\n flex: none;\n}\n.ant-form-inline .ant-form-item .ant-form-text {\n display: inline-block;\n}\n.ant-form-inline .ant-form-item .ant-form-item-has-feedback {\n display: inline-block;\n}\n.ant-form-horizontal .ant-form-item-label {\n flex-grow: 0;\n}\n.ant-form-horizontal .ant-form-item-control {\n flex: 1 1 0;\n min-width: 0;\n}\n.ant-form-horizontal .ant-form-item-label[class$='-24'] + .ant-form-item-control,\n.ant-form-horizontal .ant-form-item-label[class*='-24 '] + .ant-form-item-control {\n min-width: unset;\n}\n.ant-form-vertical .ant-form-item-row {\n flex-direction: column;\n}\n.ant-form-vertical .ant-form-item-label > label {\n height: auto;\n}\n.ant-form-vertical .ant-form-item .ant-form-item-control {\n width: 100%;\n}\n.ant-form-vertical .ant-form-item-label,\n.ant-col-24.ant-form-item-label,\n.ant-col-xl-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n}\n.ant-form-vertical .ant-form-item-label > label,\n.ant-col-24.ant-form-item-label > label,\n.ant-col-xl-24.ant-form-item-label > label {\n margin: 0;\n}\n.ant-form-vertical .ant-form-item-label > label::after,\n.ant-col-24.ant-form-item-label > label::after,\n.ant-col-xl-24.ant-form-item-label > label::after {\n display: none;\n}\n.ant-form-rtl.ant-form-vertical .ant-form-item-label,\n.ant-form-rtl.ant-col-24.ant-form-item-label,\n.ant-form-rtl.ant-col-xl-24.ant-form-item-label {\n text-align: right;\n}\n@media (max-width: 575px) {\n .ant-form-item .ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-form-item .ant-form-item-label > label {\n margin: 0;\n }\n .ant-form-item .ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-form-item .ant-form-item-label {\n text-align: right;\n }\n .ant-form .ant-form-item {\n flex-wrap: wrap;\n }\n .ant-form .ant-form-item .ant-form-item-label,\n .ant-form .ant-form-item .ant-form-item-control {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-xs-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-col-xs-24.ant-form-item-label > label {\n margin: 0;\n }\n .ant-col-xs-24.ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-col-xs-24.ant-form-item-label {\n text-align: right;\n }\n}\n@media (max-width: 767px) {\n .ant-col-sm-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-col-sm-24.ant-form-item-label > label {\n margin: 0;\n }\n .ant-col-sm-24.ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-col-sm-24.ant-form-item-label {\n text-align: right;\n }\n}\n@media (max-width: 991px) {\n .ant-col-md-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-col-md-24.ant-form-item-label > label {\n margin: 0;\n }\n .ant-col-md-24.ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-col-md-24.ant-form-item-label {\n text-align: right;\n }\n}\n@media (max-width: 1199px) {\n .ant-col-lg-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-col-lg-24.ant-form-item-label > label {\n margin: 0;\n }\n .ant-col-lg-24.ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-col-lg-24.ant-form-item-label {\n text-align: right;\n }\n}\n@media (max-width: 1599px) {\n .ant-col-xl-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-col-xl-24.ant-form-item-label > label {\n margin: 0;\n }\n .ant-col-xl-24.ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-col-xl-24.ant-form-item-label {\n text-align: right;\n }\n}\n.ant-form-item {\n /* Some non-status related component style is in `components.less` */\n /* To support leave along ErrorList. We add additional className to handle explain style */\n}\n.ant-form-item-explain-error {\n color: #ff4d4f;\n}\n.ant-form-item-explain-warning {\n color: #faad14;\n}\n.ant-form-item-has-feedback .ant-switch {\n margin: 2px 0 4px;\n}\n.ant-form-item-has-warning .ant-form-item-split {\n color: #faad14;\n}\n.ant-form-item-has-error .ant-form-item-split {\n color: #ff4d4f;\n}\n.ant-form {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-form legend {\n display: block;\n width: 100%;\n margin-bottom: 20px;\n padding: 0;\n color: rgba(0, 0, 0, 0.45);\n font-size: 16px;\n line-height: inherit;\n border: 0;\n border-bottom: 1px solid #d9d9d9;\n}\n.ant-form label {\n font-size: 14px;\n}\n.ant-form input[type='search'] {\n box-sizing: border-box;\n}\n.ant-form input[type='radio'],\n.ant-form input[type='checkbox'] {\n line-height: normal;\n}\n.ant-form input[type='file'] {\n display: block;\n}\n.ant-form input[type='range'] {\n display: block;\n width: 100%;\n}\n.ant-form select[multiple],\n.ant-form select[size] {\n height: auto;\n}\n.ant-form input[type='file']:focus,\n.ant-form input[type='radio']:focus,\n.ant-form input[type='checkbox']:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.ant-form output {\n display: block;\n padding-top: 15px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n}\n.ant-form .ant-form-text {\n display: inline-block;\n padding-right: 8px;\n}\n.ant-form-small .ant-form-item-label > label {\n height: 24px;\n}\n.ant-form-small .ant-form-item-control-input {\n min-height: 24px;\n}\n.ant-form-large .ant-form-item-label > label {\n height: 40px;\n}\n.ant-form-large .ant-form-item-control-input {\n min-height: 40px;\n}\n.ant-form-item {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n margin-bottom: 24px;\n vertical-align: top;\n}\n.ant-form-item-with-help {\n transition: none;\n}\n.ant-form-item-hidden,\n.ant-form-item-hidden.ant-row {\n display: none;\n}\n.ant-form-item-label {\n display: inline-block;\n flex-grow: 0;\n overflow: hidden;\n white-space: nowrap;\n text-align: right;\n vertical-align: middle;\n}\n.ant-form-item-label-left {\n text-align: left;\n}\n.ant-form-item-label-wrap {\n overflow: unset;\n line-height: 1.3215em;\n white-space: unset;\n}\n.ant-form-item-label > label {\n position: relative;\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n height: 32px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-form-item-label > label > .anticon {\n font-size: 14px;\n vertical-align: top;\n}\n.ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before {\n display: inline-block;\n margin-right: 4px;\n color: #ff4d4f;\n font-size: 14px;\n font-family: SimSun, sans-serif;\n line-height: 1;\n content: '*';\n}\n.ant-form-hide-required-mark .ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before {\n display: none;\n}\n.ant-form-item-label > label .ant-form-item-optional {\n display: inline-block;\n margin-left: 4px;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-form-hide-required-mark .ant-form-item-label > label .ant-form-item-optional {\n display: none;\n}\n.ant-form-item-label > label .ant-form-item-tooltip {\n color: rgba(0, 0, 0, 0.45);\n cursor: help;\n -ms-writing-mode: lr-tb;\n writing-mode: horizontal-tb;\n margin-inline-start: 4px;\n}\n.ant-form-item-label > label::after {\n content: ':';\n position: relative;\n top: -0.5px;\n margin: 0 8px 0 2px;\n}\n.ant-form-item-label > label.ant-form-item-no-colon::after {\n content: ' ';\n}\n.ant-form-item-control {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n}\n.ant-form-item-control:first-child:not([class^='ant-col-']):not([class*=' ant-col-']) {\n width: 100%;\n}\n.ant-form-item-control-input {\n position: relative;\n display: flex;\n align-items: center;\n min-height: 32px;\n}\n.ant-form-item-control-input-content {\n flex: auto;\n max-width: 100%;\n}\n.ant-form-item-explain,\n.ant-form-item-extra {\n clear: both;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.5715;\n transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n.ant-form-item-explain-connected {\n width: 100%;\n}\n.ant-form-item-extra {\n min-height: 24px;\n}\n.ant-form-item-with-help .ant-form-item-explain {\n height: auto;\n opacity: 1;\n}\n.ant-form-item-feedback-icon {\n font-size: 14px;\n text-align: center;\n visibility: visible;\n animation: zoomIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\n pointer-events: none;\n}\n.ant-form-item-feedback-icon-success {\n color: #52c41a;\n}\n.ant-form-item-feedback-icon-error {\n color: #ff4d4f;\n}\n.ant-form-item-feedback-icon-warning {\n color: #faad14;\n}\n.ant-form-item-feedback-icon-validating {\n color: #1890ff;\n}\n.ant-show-help {\n transition: opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-show-help-appear,\n.ant-show-help-enter {\n opacity: 0;\n}\n.ant-show-help-appear-active,\n.ant-show-help-enter-active {\n opacity: 1;\n}\n.ant-show-help-leave {\n opacity: 1;\n}\n.ant-show-help-leave-active {\n opacity: 0;\n}\n.ant-show-help-item {\n overflow: hidden;\n transition: height 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n.ant-show-help-item-appear,\n.ant-show-help-item-enter {\n transform: translateY(-5px);\n opacity: 0;\n}\n.ant-show-help-item-appear-active,\n.ant-show-help-item-enter-active {\n transform: translateY(0);\n opacity: 1;\n}\n.ant-show-help-item-leave {\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n.ant-show-help-item-leave-active {\n transform: translateY(-5px);\n}\n@keyframes diffZoomIn1 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes diffZoomIn2 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes diffZoomIn3 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.ant-form-rtl {\n direction: rtl;\n}\n.ant-form-rtl .ant-form-item-label {\n text-align: left;\n}\n.ant-form-rtl .ant-form-item-label > label.ant-form-item-required::before {\n margin-right: 0;\n margin-left: 4px;\n}\n.ant-form-rtl .ant-form-item-label > label::after {\n margin: 0 2px 0 8px;\n}\n.ant-form-rtl .ant-form-item-label > label .ant-form-item-optional {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-col-rtl .ant-form-item-control:first-child {\n width: 100%;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input {\n padding-right: 11px;\n padding-left: 24px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix {\n padding-right: 11px;\n padding-left: 18px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input {\n padding: 0;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input-number-affix-wrapper .ant-input-number {\n padding: 0;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix {\n right: auto;\n left: 28px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input-number {\n padding-left: 18px;\n}\n.ant-form-rtl .ant-form-item-has-feedback > .ant-select .ant-select-arrow,\n.ant-form-rtl .ant-form-item-has-feedback > .ant-select .ant-select-clear,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-arrow,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-clear,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon) > .ant-select .ant-select-arrow,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon) > .ant-select .ant-select-clear {\n right: auto;\n left: 32px;\n}\n.ant-form-rtl .ant-form-item-has-feedback > .ant-select .ant-select-selection-selected-value,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-selection-selected-value,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon) > .ant-select .ant-select-selection-selected-value {\n padding-right: 0;\n padding-left: 42px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-arrow {\n margin-right: 0;\n margin-left: 19px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-clear {\n right: auto;\n left: 32px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-picker {\n padding-right: 11px;\n padding-left: 29.2px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-picker-large {\n padding-right: 11px;\n padding-left: 29.2px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-picker-small {\n padding-right: 7px;\n padding-left: 25.2px;\n}\n.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,\n.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,\n.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,\n.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon {\n right: auto;\n left: 0;\n}\n.ant-form-rtl.ant-form-inline .ant-form-item {\n margin-right: 0;\n margin-left: 16px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-image {\n position: relative;\n display: inline-block;\n}\n.ant-image-img {\n width: 100%;\n height: auto;\n vertical-align: middle;\n}\n.ant-image-img-placeholder {\n background-color: #f5f5f5;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=');\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 30%;\n}\n.ant-image-mask {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #fff;\n background: rgba(0, 0, 0, 0.5);\n cursor: pointer;\n opacity: 0;\n transition: opacity 0.3s;\n}\n.ant-image-mask-info {\n padding: 0 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-image-mask-info .anticon {\n margin-inline-end: 4px;\n}\n.ant-image-mask:hover {\n opacity: 1;\n}\n.ant-image-placeholder {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.ant-image-preview {\n pointer-events: none;\n height: 100%;\n text-align: center;\n}\n.ant-image-preview.ant-zoom-enter,\n.ant-image-preview.ant-zoom-appear {\n transform: none;\n opacity: 0;\n animation-duration: 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-image-preview-mask {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.45);\n}\n.ant-image-preview-mask-hidden {\n display: none;\n}\n.ant-image-preview-wrap {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: auto;\n outline: 0;\n}\n.ant-image-preview-body {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: hidden;\n}\n.ant-image-preview-img {\n max-width: 100%;\n max-height: 100%;\n vertical-align: middle;\n transform: scale3d(1, 1, 1);\n cursor: grab;\n transition: transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n pointer-events: auto;\n}\n.ant-image-preview-img-wrapper {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n transition: transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;\n}\n.ant-image-preview-img-wrapper::before {\n display: inline-block;\n width: 1px;\n height: 50%;\n margin-right: -1px;\n content: '';\n}\n.ant-image-preview-moving .ant-image-preview-img {\n cursor: grabbing;\n}\n.ant-image-preview-moving .ant-image-preview-img-wrapper {\n transition-duration: 0s;\n}\n.ant-image-preview-wrap {\n z-index: 1080;\n}\n.ant-image-preview-operations-wrapper {\n position: fixed;\n top: 0;\n right: 0;\n z-index: 1081;\n width: 100%;\n}\n.ant-image-preview-operations {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n font-feature-settings: 'tnum';\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n color: rgba(255, 255, 255, 0.85);\n list-style: none;\n background: rgba(0, 0, 0, 0.1);\n pointer-events: auto;\n}\n.ant-image-preview-operations-operation {\n margin-left: 12px;\n padding: 12px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-image-preview-operations-operation:hover {\n background: rgba(0, 0, 0, 0.2);\n}\n.ant-image-preview-operations-operation-disabled {\n color: rgba(255, 255, 255, 0.25);\n pointer-events: none;\n}\n.ant-image-preview-operations-operation:last-of-type {\n margin-left: 0;\n}\n.ant-image-preview-operations-progress {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n}\n.ant-image-preview-operations-icon {\n font-size: 18px;\n}\n.ant-image-preview-switch-left,\n.ant-image-preview-switch-right {\n position: fixed;\n top: 50%;\n right: 8px;\n z-index: 1081;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n color: rgba(255, 255, 255, 0.85);\n background: rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n transform: translateY(-50%);\n cursor: pointer;\n transition: all 0.3s;\n pointer-events: auto;\n}\n.ant-image-preview-switch-left:hover,\n.ant-image-preview-switch-right:hover {\n background: rgba(0, 0, 0, 0.2);\n}\n.ant-image-preview-switch-left-disabled,\n.ant-image-preview-switch-right-disabled,\n.ant-image-preview-switch-left-disabled:hover,\n.ant-image-preview-switch-right-disabled:hover {\n color: rgba(255, 255, 255, 0.25);\n background: rgba(0, 0, 0, 0.1);\n cursor: not-allowed;\n}\n.ant-image-preview-switch-left-disabled > .anticon,\n.ant-image-preview-switch-right-disabled > .anticon,\n.ant-image-preview-switch-left-disabled:hover > .anticon,\n.ant-image-preview-switch-right-disabled:hover > .anticon {\n cursor: not-allowed;\n}\n.ant-image-preview-switch-left > .anticon,\n.ant-image-preview-switch-right > .anticon {\n font-size: 18px;\n}\n.ant-image-preview-switch-left {\n left: 8px;\n}\n.ant-image-preview-switch-right {\n right: 8px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-input-number-affix-wrapper {\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n position: relative;\n display: inline-flex;\n width: 90px;\n padding: 0;\n padding-inline-start: 11px;\n}\n.ant-input-number-affix-wrapper::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input-number-affix-wrapper:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number-affix-wrapper::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number-affix-wrapper:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number-affix-wrapper:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input-number-affix-wrapper:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number-affix-wrapper:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-number-affix-wrapper:focus,\n.ant-input-number-affix-wrapper-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-affix-wrapper-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-number-affix-wrapper-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-number-affix-wrapper[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-number-affix-wrapper[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-number-affix-wrapper-borderless,\n.ant-input-number-affix-wrapper-borderless:hover,\n.ant-input-number-affix-wrapper-borderless:focus,\n.ant-input-number-affix-wrapper-borderless-focused,\n.ant-input-number-affix-wrapper-borderless-disabled,\n.ant-input-number-affix-wrapper-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-input-number-affix-wrapper {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-input-number-affix-wrapper-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-number-affix-wrapper-sm {\n padding: 0px 7px;\n}\n.ant-input-number-affix-wrapper:not(.ant-input-number-affix-wrapper-disabled):hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n z-index: 1;\n}\n.ant-input-number-affix-wrapper-focused,\n.ant-input-number-affix-wrapper:focus {\n z-index: 1;\n}\n.ant-input-number-affix-wrapper-disabled .ant-input-number[disabled] {\n background: transparent;\n}\n.ant-input-number-affix-wrapper > div.ant-input-number {\n width: 100%;\n border: none;\n outline: none;\n}\n.ant-input-number-affix-wrapper > div.ant-input-number.ant-input-number-focused {\n box-shadow: none !important;\n}\n.ant-input-number-affix-wrapper input.ant-input-number-input {\n padding: 0;\n}\n.ant-input-number-affix-wrapper::before {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n}\n.ant-input-number-affix-wrapper .ant-input-number-handler-wrap {\n z-index: 2;\n}\n.ant-input-number-prefix,\n.ant-input-number-suffix {\n display: flex;\n flex: none;\n align-items: center;\n pointer-events: none;\n}\n.ant-input-number-prefix {\n margin-inline-end: 4px;\n}\n.ant-input-number-suffix {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 1;\n height: 100%;\n margin-right: 11px;\n margin-left: 4px;\n}\n.ant-input-number-group-wrapper .ant-input-number-affix-wrapper {\n width: 100%;\n}\n.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number,\n.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:focus,\n.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-status-error .ant-input-number-prefix {\n color: #ff4d4f;\n}\n.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number,\n.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:focus,\n.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-status-warning .ant-input-number-prefix {\n color: #faad14;\n}\n.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,\n.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus,\n.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-affix-wrapper-status-error .ant-input-number-prefix {\n color: #ff4d4f;\n}\n.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,\n.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus,\n.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-affix-wrapper-status-warning .ant-input-number-prefix {\n color: #faad14;\n}\n.ant-input-number-group-wrapper-status-error .ant-input-number-group-addon {\n color: #ff4d4f;\n border-color: #ff4d4f;\n}\n.ant-input-number-group-wrapper-status-warning .ant-input-number-group-addon {\n color: #faad14;\n border-color: #faad14;\n}\n.ant-input-number {\n box-sizing: border-box;\n font-variant: tabular-nums;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n transition: all 0.3s;\n display: inline-block;\n width: 90px;\n margin: 0;\n padding: 0;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n}\n.ant-input-number::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input-number:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input-number:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-number:focus,\n.ant-input-number-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-number-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-number[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-number[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-number-borderless,\n.ant-input-number-borderless:hover,\n.ant-input-number-borderless:focus,\n.ant-input-number-borderless-focused,\n.ant-input-number-borderless-disabled,\n.ant-input-number-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-input-number {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-input-number-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-number-sm {\n padding: 0px 7px;\n}\n.ant-input-number-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: table;\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n}\n.ant-input-number-group[class*='col-'] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.ant-input-number-group > [class*='col-'] {\n padding-right: 8px;\n}\n.ant-input-number-group > [class*='col-']:last-child {\n padding-right: 0;\n}\n.ant-input-number-group-addon,\n.ant-input-number-group-wrap,\n.ant-input-number-group > .ant-input-number {\n display: table-cell;\n}\n.ant-input-number-group-addon:not(:first-child):not(:last-child),\n.ant-input-number-group-wrap:not(:first-child):not(:last-child),\n.ant-input-number-group > .ant-input-number:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.ant-input-number-group-addon,\n.ant-input-number-group-wrap {\n width: 1px;\n white-space: nowrap;\n vertical-align: middle;\n}\n.ant-input-number-group-wrap > * {\n display: block !important;\n}\n.ant-input-number-group .ant-input-number {\n float: left;\n width: 100%;\n margin-bottom: 0;\n text-align: inherit;\n}\n.ant-input-number-group .ant-input-number:focus {\n z-index: 1;\n border-right-width: 1px;\n}\n.ant-input-number-group .ant-input-number:hover {\n z-index: 1;\n border-right-width: 1px;\n}\n.ant-input-search-with-button .ant-input-number-group .ant-input-number:hover {\n z-index: 0;\n}\n.ant-input-number-group-addon {\n position: relative;\n padding: 0 11px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n text-align: center;\n background-color: #fafafa;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n}\n.ant-input-number-group-addon .ant-select {\n margin: -5px -11px;\n}\n.ant-input-number-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {\n background-color: inherit;\n border: 1px solid transparent;\n box-shadow: none;\n}\n.ant-input-number-group-addon .ant-select-open .ant-select-selector,\n.ant-input-number-group-addon .ant-select-focused .ant-select-selector {\n color: #1890ff;\n}\n.ant-input-number-group-addon .ant-cascader-picker {\n margin: -9px -12px;\n background-color: transparent;\n}\n.ant-input-number-group-addon .ant-cascader-picker .ant-cascader-input {\n text-align: left;\n border: 0;\n box-shadow: none;\n}\n.ant-input-number-group > .ant-input-number:first-child,\n.ant-input-number-group-addon:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-number-group > .ant-input-number:first-child .ant-select .ant-select-selector,\n.ant-input-number-group-addon:first-child .ant-select .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-number-group > .ant-input-number-affix-wrapper:not(:first-child) .ant-input-number {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-group > .ant-input-number-affix-wrapper:not(:last-child) .ant-input-number {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-number-group-addon:first-child {\n border-right: 0;\n}\n.ant-input-number-group-addon:last-child {\n border-left: 0;\n}\n.ant-input-number-group > .ant-input-number:last-child,\n.ant-input-number-group-addon:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-group > .ant-input-number:last-child .ant-select .ant-select-selector,\n.ant-input-number-group-addon:last-child .ant-select .ant-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-group-lg .ant-input-number,\n.ant-input-number-group-lg > .ant-input-number-group-addon {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-number-group-sm .ant-input-number,\n.ant-input-number-group-sm > .ant-input-number-group-addon {\n padding: 0px 7px;\n}\n.ant-input-number-group-lg .ant-select-single .ant-select-selector {\n height: 40px;\n}\n.ant-input-number-group-sm .ant-select-single .ant-select-selector {\n height: 24px;\n}\n.ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child) {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child),\n.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-group.ant-input-number-group-compact {\n display: block;\n}\n.ant-input-number-group.ant-input-number-group-compact::before {\n display: table;\n content: '';\n}\n.ant-input-number-group.ant-input-number-group-compact::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child),\n.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child),\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-number:not(:first-child):not(:last-child) {\n border-right-width: 1px;\n}\n.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):hover,\n.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):hover,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-number:not(:first-child):not(:last-child):hover {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):focus,\n.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):focus,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-number:not(:first-child):not(:last-child):focus {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact > * {\n display: inline-block;\n float: none;\n vertical-align: top;\n border-radius: 0;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-number-affix-wrapper,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-number-number-affix-wrapper,\n.ant-input-number-group.ant-input-number-group-compact > .ant-picker-range {\n display: inline-flex;\n}\n.ant-input-number-group.ant-input-number-group-compact > *:not(:last-child) {\n margin-right: -1px;\n border-right-width: 1px;\n}\n.ant-input-number-group.ant-input-number-group-compact .ant-input-number {\n float: none;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select > .ant-select-selector,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete .ant-input,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker .ant-input,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-group-wrapper .ant-input {\n border-right-width: 1px;\n border-radius: 0;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select > .ant-select-selector:hover,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete .ant-input:hover,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker .ant-input:hover,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-group-wrapper .ant-input:hover {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select > .ant-select-selector:focus,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete .ant-input:focus,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker .ant-input:focus,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-group-wrapper .ant-input:focus {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-focused {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select > .ant-select-arrow {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact > *:first-child,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select:first-child > .ant-select-selector,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete:first-child .ant-input,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker:first-child .ant-input {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-input-number-group.ant-input-number-group-compact > *:last-child,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select:last-child > .ant-select-selector,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker:last-child .ant-input,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker-focused:last-child .ant-input {\n border-right-width: 1px;\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete .ant-input {\n vertical-align: top;\n}\n.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper {\n margin-left: -1px;\n}\n.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper .ant-input-affix-wrapper {\n border-radius: 0;\n}\n.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input-group-addon > .ant-input-search-button {\n border-radius: 0;\n}\n.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-number-group > .ant-input-number-rtl:first-child {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-number-group > .ant-input-number-rtl:last-child {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-number-group-rtl .ant-input-number-group-addon:first-child {\n border-right: 1px solid #d9d9d9;\n border-left: 0;\n border-radius: 0 2px 2px 0;\n}\n.ant-input-number-group-rtl .ant-input-number-group-addon:last-child {\n border-right: 0;\n border-left: 1px solid #d9d9d9;\n border-radius: 2px 0 0 2px;\n}\n.ant-input-number-group-wrapper {\n display: inline-block;\n text-align: start;\n vertical-align: top;\n}\n.ant-input-number-handler {\n position: relative;\n display: block;\n width: 100%;\n height: 50%;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.45);\n font-weight: bold;\n line-height: 0;\n text-align: center;\n border-left: 1px solid #d9d9d9;\n transition: all 0.1s linear;\n}\n.ant-input-number-handler:active {\n background: #f4f4f4;\n}\n.ant-input-number-handler:hover .ant-input-number-handler-up-inner,\n.ant-input-number-handler:hover .ant-input-number-handler-down-inner {\n color: #40a9ff;\n}\n.ant-input-number-handler-up-inner,\n.ant-input-number-handler-down-inner {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n position: absolute;\n right: 4px;\n width: 12px;\n height: 12px;\n color: rgba(0, 0, 0, 0.45);\n line-height: 12px;\n transition: all 0.1s linear;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number-handler-up-inner > *,\n.ant-input-number-handler-down-inner > * {\n line-height: 1;\n}\n.ant-input-number-handler-up-inner svg,\n.ant-input-number-handler-down-inner svg {\n display: inline-block;\n}\n.ant-input-number-handler-up-inner::before,\n.ant-input-number-handler-down-inner::before {\n display: none;\n}\n.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon,\n.ant-input-number-handler-up-inner .ant-input-number-handler-down-inner-icon,\n.ant-input-number-handler-down-inner .ant-input-number-handler-up-inner-icon,\n.ant-input-number-handler-down-inner .ant-input-number-handler-down-inner-icon {\n display: block;\n}\n.ant-input-number:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-number:hover + .ant-form-item-children-icon {\n opacity: 0;\n transition: opacity 0.24s linear 0.24s;\n}\n.ant-input-number-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-number-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-number-disabled .ant-input-number-input {\n cursor: not-allowed;\n}\n.ant-input-number-disabled .ant-input-number-handler-wrap {\n display: none;\n}\n.ant-input-number-readonly .ant-input-number-handler-wrap {\n display: none;\n}\n.ant-input-number-input {\n width: 100%;\n height: 30px;\n padding: 0 11px;\n text-align: left;\n background-color: transparent;\n border: 0;\n border-radius: 2px;\n outline: 0;\n transition: all 0.3s linear;\n -webkit-appearance: textfield !important;\n -moz-appearance: textfield !important;\n appearance: textfield !important;\n}\n.ant-input-number-input::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input-number-input:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number-input::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number-input:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number-input:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input-number-input:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number-input[type='number']::-webkit-inner-spin-button,\n.ant-input-number-input[type='number']::-webkit-outer-spin-button {\n margin: 0;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n appearance: none;\n}\n.ant-input-number-lg {\n padding: 0;\n font-size: 16px;\n}\n.ant-input-number-lg input {\n height: 38px;\n}\n.ant-input-number-sm {\n padding: 0;\n}\n.ant-input-number-sm input {\n height: 22px;\n padding: 0 7px;\n}\n.ant-input-number-handler-wrap {\n position: absolute;\n top: 0;\n right: 0;\n width: 22px;\n height: 100%;\n background: #fff;\n border-radius: 0 2px 2px 0;\n opacity: 0;\n transition: opacity 0.24s linear 0.1s;\n}\n.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner,\n.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: auto;\n margin-right: 0;\n font-size: 7px;\n}\n.ant-input-number-borderless .ant-input-number-handler-wrap {\n border-left-width: 0;\n}\n.ant-input-number-handler-wrap:hover .ant-input-number-handler {\n height: 40%;\n}\n.ant-input-number:hover .ant-input-number-handler-wrap,\n.ant-input-number-focused .ant-input-number-handler-wrap {\n opacity: 1;\n}\n.ant-input-number-handler-up {\n border-top-right-radius: 2px;\n cursor: pointer;\n}\n.ant-input-number-handler-up-inner {\n top: 50%;\n margin-top: -5px;\n text-align: center;\n}\n.ant-input-number-handler-up:hover {\n height: 60% !important;\n}\n.ant-input-number-handler-down {\n top: 0;\n border-top: 1px solid #d9d9d9;\n border-bottom-right-radius: 2px;\n cursor: pointer;\n}\n.ant-input-number-handler-down-inner {\n top: 50%;\n text-align: center;\n transform: translateY(-50%);\n}\n.ant-input-number-handler-down:hover {\n height: 60% !important;\n}\n.ant-input-number-borderless .ant-input-number-handler-down {\n border-top-width: 0;\n}\n.ant-input-number:hover:not(.ant-input-number-borderless) .ant-input-number-handler-down,\n.ant-input-number-focused:not(.ant-input-number-borderless) .ant-input-number-handler-down {\n border-top: 1px solid #d9d9d9;\n}\n.ant-input-number-handler-up-disabled,\n.ant-input-number-handler-down-disabled {\n cursor: not-allowed;\n}\n.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner,\n.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-input-number-borderless {\n box-shadow: none;\n}\n.ant-input-number-out-of-range input {\n color: #ff4d4f;\n}\n.ant-input-number-compact-item:not(.ant-input-number-compact-last-item):not(.ant-input-number-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-input-number-compact-item:not(.ant-input-number-compact-last-item).ant-input-number-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-input-number-compact-item:hover,\n.ant-input-number-compact-item:focus,\n.ant-input-number-compact-item:active {\n z-index: 2;\n}\n.ant-input-number-compact-item.ant-input-number-focused {\n z-index: 2;\n}\n.ant-input-number-compact-item[disabled] {\n z-index: 0;\n}\n.ant-input-number-compact-item:not(.ant-input-number-compact-first-item):not(.ant-input-number-compact-last-item).ant-input-number {\n border-radius: 0;\n}\n.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-first-item:not(.ant-input-number-compact-last-item):not(.ant-input-number-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-last-item:not(.ant-input-number-compact-first-item):not(.ant-input-number-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-item-rtl.ant-input-number-compact-first-item:not(.ant-input-number-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-item-rtl.ant-input-number-compact-last-item:not(.ant-input-number-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-number-rtl {\n direction: rtl;\n}\n.ant-input-number-rtl .ant-input-number-handler {\n border-right: 1px solid #d9d9d9;\n border-left: 0;\n}\n.ant-input-number-rtl .ant-input-number-handler-wrap {\n right: auto;\n left: 0;\n}\n.ant-input-number-rtl.ant-input-number-borderless .ant-input-number-handler-wrap {\n border-right-width: 0;\n}\n.ant-input-number-rtl .ant-input-number-handler-up {\n border-top-right-radius: 0;\n}\n.ant-input-number-rtl .ant-input-number-handler-down {\n border-bottom-right-radius: 0;\n}\n.ant-input-number-rtl .ant-input-number-input {\n direction: ltr;\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-input-affix-wrapper {\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n display: inline-flex;\n}\n.ant-input-affix-wrapper::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input-affix-wrapper:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-affix-wrapper::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-affix-wrapper:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-affix-wrapper:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input-affix-wrapper:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-affix-wrapper:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-rtl .ant-input-affix-wrapper:hover {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-affix-wrapper:focus,\n.ant-input-affix-wrapper-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-rtl .ant-input-affix-wrapper:focus,\n.ant-input-rtl .ant-input-affix-wrapper-focused {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-affix-wrapper-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-affix-wrapper-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-affix-wrapper[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-affix-wrapper[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-affix-wrapper-borderless,\n.ant-input-affix-wrapper-borderless:hover,\n.ant-input-affix-wrapper-borderless:focus,\n.ant-input-affix-wrapper-borderless-focused,\n.ant-input-affix-wrapper-borderless-disabled,\n.ant-input-affix-wrapper-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-input-affix-wrapper {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-input-affix-wrapper-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-affix-wrapper-sm {\n padding: 0px 7px;\n}\n.ant-input-affix-wrapper-rtl {\n direction: rtl;\n}\n.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n z-index: 1;\n}\n.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {\n z-index: 0;\n}\n.ant-input-affix-wrapper-focused,\n.ant-input-affix-wrapper:focus {\n z-index: 1;\n}\n.ant-input-affix-wrapper-disabled .ant-input[disabled] {\n background: rgba(255, 255, 255, 0);\n}\n.ant-input-affix-wrapper > .ant-input {\n font-size: inherit;\n border: none;\n outline: none;\n}\n.ant-input-affix-wrapper > .ant-input:focus {\n box-shadow: none !important;\n}\n.ant-input-affix-wrapper > .ant-input:not(textarea) {\n padding: 0;\n}\n.ant-input-affix-wrapper::before {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n}\n.ant-input-prefix,\n.ant-input-suffix {\n display: flex;\n flex: none;\n align-items: center;\n}\n.ant-input-prefix > *:not(:last-child),\n.ant-input-suffix > *:not(:last-child) {\n margin-right: 8px;\n}\n.ant-input-show-count-suffix {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-input-show-count-has-suffix {\n margin-right: 2px;\n}\n.ant-input-prefix {\n margin-right: 4px;\n}\n.ant-input-suffix {\n margin-left: 4px;\n}\n.anticon.ant-input-clear-icon,\n.ant-input-clear-icon {\n margin: 0;\n color: rgba(0, 0, 0, 0.25);\n font-size: 12px;\n vertical-align: -1px;\n cursor: pointer;\n transition: color 0.3s;\n}\n.anticon.ant-input-clear-icon:hover,\n.ant-input-clear-icon:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.anticon.ant-input-clear-icon:active,\n.ant-input-clear-icon:active {\n color: rgba(0, 0, 0, 0.85);\n}\n.anticon.ant-input-clear-icon-hidden,\n.ant-input-clear-icon-hidden {\n visibility: hidden;\n}\n.anticon.ant-input-clear-icon-has-suffix,\n.ant-input-clear-icon-has-suffix {\n margin: 0 4px;\n}\n.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn {\n padding: 0;\n}\n.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 1;\n}\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-status-error .ant-input-prefix {\n color: #ff4d4f;\n}\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-status-warning .ant-input-prefix {\n color: #faad14;\n}\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-affix-wrapper-status-error .ant-input-prefix {\n color: #ff4d4f;\n}\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-affix-wrapper-status-warning .ant-input-prefix {\n color: #faad14;\n}\n.ant-input-textarea-status-error.ant-input-textarea-has-feedback .ant-input,\n.ant-input-textarea-status-warning.ant-input-textarea-has-feedback .ant-input,\n.ant-input-textarea-status-success.ant-input-textarea-has-feedback .ant-input,\n.ant-input-textarea-status-validating.ant-input-textarea-has-feedback .ant-input {\n padding-right: 24px;\n}\n.ant-input-group-wrapper-status-error .ant-input-group-addon {\n color: #ff4d4f;\n border-color: #ff4d4f;\n}\n.ant-input-group-wrapper-status-warning .ant-input-group-addon {\n color: #faad14;\n border-color: #faad14;\n}\n.ant-input {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n font-variant: tabular-nums;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n}\n.ant-input::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-rtl .ant-input:hover {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input:focus,\n.ant-input-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-rtl .ant-input:focus,\n.ant-input-rtl .ant-input-focused {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-borderless,\n.ant-input-borderless:hover,\n.ant-input-borderless:focus,\n.ant-input-borderless-focused,\n.ant-input-borderless-disabled,\n.ant-input-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-input {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-input-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-sm {\n padding: 0px 7px;\n}\n.ant-input-rtl {\n direction: rtl;\n}\n.ant-input-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: table;\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n}\n.ant-input-group[class*='col-'] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.ant-input-group > [class*='col-'] {\n padding-right: 8px;\n}\n.ant-input-group > [class*='col-']:last-child {\n padding-right: 0;\n}\n.ant-input-group-addon,\n.ant-input-group-wrap,\n.ant-input-group > .ant-input {\n display: table-cell;\n}\n.ant-input-group-addon:not(:first-child):not(:last-child),\n.ant-input-group-wrap:not(:first-child):not(:last-child),\n.ant-input-group > .ant-input:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.ant-input-group-addon,\n.ant-input-group-wrap {\n width: 1px;\n white-space: nowrap;\n vertical-align: middle;\n}\n.ant-input-group-wrap > * {\n display: block !important;\n}\n.ant-input-group .ant-input {\n float: left;\n width: 100%;\n margin-bottom: 0;\n text-align: inherit;\n}\n.ant-input-group .ant-input:focus {\n z-index: 1;\n border-right-width: 1px;\n}\n.ant-input-group .ant-input:hover {\n z-index: 1;\n border-right-width: 1px;\n}\n.ant-input-search-with-button .ant-input-group .ant-input:hover {\n z-index: 0;\n}\n.ant-input-group-addon {\n position: relative;\n padding: 0 11px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n text-align: center;\n background-color: #fafafa;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n}\n.ant-input-group-addon .ant-select {\n margin: -5px -11px;\n}\n.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {\n background-color: inherit;\n border: 1px solid transparent;\n box-shadow: none;\n}\n.ant-input-group-addon .ant-select-open .ant-select-selector,\n.ant-input-group-addon .ant-select-focused .ant-select-selector {\n color: #1890ff;\n}\n.ant-input-group-addon .ant-cascader-picker {\n margin: -9px -12px;\n background-color: transparent;\n}\n.ant-input-group-addon .ant-cascader-picker .ant-cascader-input {\n text-align: left;\n border: 0;\n box-shadow: none;\n}\n.ant-input-group > .ant-input:first-child,\n.ant-input-group-addon:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-group > .ant-input:first-child .ant-select .ant-select-selector,\n.ant-input-group-addon:first-child .ant-select .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-group > .ant-input-affix-wrapper:not(:first-child) .ant-input {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group > .ant-input-affix-wrapper:not(:last-child) .ant-input {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-group-addon:first-child {\n border-right: 0;\n}\n.ant-input-group-addon:last-child {\n border-left: 0;\n}\n.ant-input-group > .ant-input:last-child,\n.ant-input-group-addon:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group > .ant-input:last-child .ant-select .ant-select-selector,\n.ant-input-group-addon:last-child .ant-select .ant-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group-lg .ant-input,\n.ant-input-group-lg > .ant-input-group-addon {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-group-sm .ant-input,\n.ant-input-group-sm > .ant-input-group-addon {\n padding: 0px 7px;\n}\n.ant-input-group-lg .ant-select-single .ant-select-selector {\n height: 40px;\n}\n.ant-input-group-sm .ant-select-single .ant-select-selector {\n height: 24px;\n}\n.ant-input-group .ant-input-affix-wrapper:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child) {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-input-group .ant-input-affix-wrapper:not(:first-child),\n.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group.ant-input-group-compact {\n display: block;\n}\n.ant-input-group.ant-input-group-compact::before {\n display: table;\n content: '';\n}\n.ant-input-group.ant-input-group-compact::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child) {\n border-right-width: 1px;\n}\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):hover {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):focus {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > * {\n display: inline-block;\n float: none;\n vertical-align: top;\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact > .ant-input-affix-wrapper,\n.ant-input-group.ant-input-group-compact > .ant-input-number-affix-wrapper,\n.ant-input-group.ant-input-group-compact > .ant-picker-range {\n display: inline-flex;\n}\n.ant-input-group.ant-input-group-compact > *:not(:last-child) {\n margin-right: -1px;\n border-right-width: 1px;\n}\n.ant-input-group.ant-input-group-compact .ant-input {\n float: none;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input {\n border-right-width: 1px;\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector:hover,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover,\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:hover {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector:focus,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus,\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:focus {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > .ant-select-focused {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-arrow {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > *:first-child,\n.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-input-group.ant-input-group-compact > *:last-child,\n.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {\n border-right-width: 1px;\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input {\n vertical-align: top;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper {\n margin-left: -1px;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper .ant-input-affix-wrapper {\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input-group-addon > .ant-input-search-button {\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group > .ant-input-rtl:first-child,\n.ant-input-group-rtl .ant-input-group-addon:first-child {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-rtl .ant-input-group-addon:first-child {\n border-right: 1px solid #d9d9d9;\n border-left: 0;\n}\n.ant-input-group-rtl .ant-input-group-addon:last-child {\n border-right: 0;\n border-left: 1px solid #d9d9d9;\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group-rtl.ant-input-group > .ant-input:last-child,\n.ant-input-group-rtl.ant-input-group-addon:last-child {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child) {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child) {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:not(:last-child) {\n margin-right: 0;\n margin-left: -1px;\n border-left-width: 1px;\n}\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:first-child,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:last-child,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {\n border-left-width: 1px;\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl + .ant-input-group-wrapper-rtl {\n margin-right: -1px;\n margin-left: 0;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search > .ant-input-group > .ant-input {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-wrapper {\n display: inline-block;\n width: 100%;\n text-align: start;\n vertical-align: top;\n}\n.ant-input-password-icon.anticon {\n color: rgba(0, 0, 0, 0.45);\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-input-password-icon.anticon:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-input[type='color'] {\n height: 32px;\n}\n.ant-input[type='color'].ant-input-lg {\n height: 40px;\n}\n.ant-input[type='color'].ant-input-sm {\n height: 24px;\n padding-top: 3px;\n padding-bottom: 3px;\n}\n.ant-input-textarea-show-count > .ant-input {\n height: 100%;\n}\n.ant-input-textarea-show-count::after {\n float: right;\n color: rgba(0, 0, 0, 0.45);\n white-space: nowrap;\n content: attr(data-count);\n pointer-events: none;\n}\n.ant-input-textarea-show-count.ant-input-textarea-in-form-item::after {\n margin-bottom: -22px;\n}\n.ant-input-textarea-suffix {\n position: absolute;\n top: 0;\n right: 11px;\n bottom: 0;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: auto;\n}\n.ant-input-compact-item:not(.ant-input-compact-last-item):not(.ant-input-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-input-compact-item:not(.ant-input-compact-last-item).ant-input-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-input-compact-item:hover,\n.ant-input-compact-item:focus,\n.ant-input-compact-item:active {\n z-index: 2;\n}\n.ant-input-compact-item[disabled] {\n z-index: 0;\n}\n.ant-input-compact-item:not(.ant-input-compact-first-item):not(.ant-input-compact-last-item).ant-input {\n border-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-first-item:not(.ant-input-compact-last-item):not(.ant-input-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-last-item:not(.ant-input-compact-first-item):not(.ant-input-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-item-rtl.ant-input-compact-first-item:not(.ant-input-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-item-rtl.ant-input-compact-last-item:not(.ant-input-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-search .ant-input:hover,\n.ant-input-search .ant-input:focus {\n border-color: #40a9ff;\n}\n.ant-input-search .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),\n.ant-input-search .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary) {\n border-left-color: #40a9ff;\n}\n.ant-input-search .ant-input-affix-wrapper {\n border-radius: 0;\n}\n.ant-input-search .ant-input-lg {\n line-height: 1.5713;\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child {\n left: -1px;\n padding: 0;\n border: 0;\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button {\n padding-top: 0;\n padding-bottom: 0;\n border-radius: 0 2px 2px 0;\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary) {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading::before {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.ant-input-search-button {\n height: 32px;\n}\n.ant-input-search-button:hover,\n.ant-input-search-button:focus {\n z-index: 1;\n}\n.ant-input-search-large .ant-input-search-button {\n height: 40px;\n}\n.ant-input-search-small .ant-input-search-button {\n height: 24px;\n}\n.ant-input-search.ant-input-compact-item:not(.ant-input-compact-item-rtl):not(.ant-input-compact-last-item) .ant-input-group-addon .ant-input-search-button {\n margin-right: -1px;\n border-radius: 0;\n}\n.ant-input-search.ant-input-compact-item:not(.ant-input-compact-first-item) .ant-input,\n.ant-input-search.ant-input-compact-item:not(.ant-input-compact-first-item) .ant-input-affix-wrapper {\n border-radius: 0;\n}\n.ant-input-search.ant-input-compact-item > .ant-input-group-addon .ant-input-search-button:hover,\n.ant-input-search.ant-input-compact-item > .ant-input:hover,\n.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:hover,\n.ant-input-search.ant-input-compact-item > .ant-input-group-addon .ant-input-search-button:focus,\n.ant-input-search.ant-input-compact-item > .ant-input:focus,\n.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:focus,\n.ant-input-search.ant-input-compact-item > .ant-input-group-addon .ant-input-search-button:active,\n.ant-input-search.ant-input-compact-item > .ant-input:active,\n.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:active {\n z-index: 2;\n}\n.ant-input-search.ant-input-compact-item > .ant-input-affix-wrapper-focused {\n z-index: 2;\n}\n.ant-input-search.ant-input-compact-item-rtl:not(.ant-input-compact-last-item) .ant-input-group-addon:last-child .ant-input-search-button {\n margin-left: -1px;\n border-radius: 0;\n}\n.ant-input-group-wrapper-rtl {\n direction: rtl;\n}\n.ant-input-group-rtl {\n direction: rtl;\n}\n.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl > input.ant-input {\n border: none;\n outline: none;\n}\n.ant-input-affix-wrapper-rtl .ant-input-prefix {\n margin: 0 0 0 4px;\n}\n.ant-input-affix-wrapper-rtl .ant-input-suffix {\n margin: 0 4px 0 0;\n}\n.ant-input-textarea-rtl {\n direction: rtl;\n}\n.ant-input-textarea-rtl.ant-input-textarea-show-count::after {\n text-align: left;\n}\n.ant-input-affix-wrapper-rtl .ant-input-clear-icon-has-suffix {\n margin-right: 0;\n margin-left: 4px;\n}\n.ant-input-affix-wrapper-rtl .ant-input-clear-icon {\n right: auto;\n left: 8px;\n}\n.ant-input-search-rtl {\n direction: rtl;\n}\n.ant-input-search-rtl .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),\n.ant-input-search-rtl .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary) {\n border-left-color: #d9d9d9;\n}\n.ant-input-search-rtl .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary):hover,\n.ant-input-search-rtl .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary):hover {\n border-left-color: #40a9ff;\n}\n.ant-input-search-rtl > .ant-input-group > .ant-input-affix-wrapper:hover,\n.ant-input-search-rtl > .ant-input-group > .ant-input-affix-wrapper-focused {\n border-right-color: #40a9ff;\n}\n.ant-input-search-rtl > .ant-input-group > .ant-input-group-addon:last-child {\n right: -1px;\n left: auto;\n}\n.ant-input-search-rtl > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button {\n border-radius: 2px 0 0 2px;\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .ant-input {\n height: 32px;\n }\n .ant-input-lg {\n height: 40px;\n }\n .ant-input-sm {\n height: 24px;\n }\n .ant-input-affix-wrapper > input.ant-input {\n height: auto;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-layout {\n display: flex;\n flex: auto;\n flex-direction: column;\n /* fix firefox can't set height smaller than content on flex item */\n min-height: 0;\n background: #f0f2f5;\n}\n.ant-layout,\n.ant-layout * {\n box-sizing: border-box;\n}\n.ant-layout.ant-layout-has-sider {\n flex-direction: row;\n}\n.ant-layout.ant-layout-has-sider > .ant-layout,\n.ant-layout.ant-layout-has-sider > .ant-layout-content {\n width: 0;\n}\n.ant-layout-header,\n.ant-layout-footer {\n flex: 0 0 auto;\n}\n.ant-layout-header {\n height: 64px;\n padding: 0 50px;\n color: rgba(0, 0, 0, 0.85);\n line-height: 64px;\n background: #001529;\n}\n.ant-layout-footer {\n padding: 24px 50px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n background: #f0f2f5;\n}\n.ant-layout-content {\n flex: auto;\n /* fix firefox can't set height smaller than content on flex item */\n min-height: 0;\n}\n.ant-layout-sider {\n position: relative;\n /* fix firefox can't set width smaller than content on flex item */\n min-width: 0;\n background: #001529;\n transition: all 0.2s;\n}\n.ant-layout-sider-children {\n height: 100%;\n margin-top: -0.1px;\n padding-top: 0.1px;\n}\n.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed {\n width: auto;\n}\n.ant-layout-sider-has-trigger {\n padding-bottom: 48px;\n}\n.ant-layout-sider-right {\n order: 1;\n}\n.ant-layout-sider-trigger {\n position: fixed;\n bottom: 0;\n z-index: 1;\n height: 48px;\n color: #fff;\n line-height: 48px;\n text-align: center;\n background: #002140;\n cursor: pointer;\n transition: all 0.2s;\n}\n.ant-layout-sider-zero-width > * {\n overflow: hidden;\n}\n.ant-layout-sider-zero-width-trigger {\n position: absolute;\n top: 64px;\n right: -36px;\n z-index: 1;\n width: 36px;\n height: 42px;\n color: #fff;\n font-size: 18px;\n line-height: 42px;\n text-align: center;\n background: #001529;\n border-radius: 0 2px 2px 0;\n cursor: pointer;\n transition: background 0.3s ease;\n}\n.ant-layout-sider-zero-width-trigger::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n transition: all 0.3s;\n content: '';\n}\n.ant-layout-sider-zero-width-trigger:hover::after {\n background: rgba(255, 255, 255, 0.1);\n}\n.ant-layout-sider-zero-width-trigger-right {\n left: -36px;\n border-radius: 2px 0 0 2px;\n}\n.ant-layout-sider-light {\n background: #fff;\n}\n.ant-layout-sider-light .ant-layout-sider-trigger {\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n}\n.ant-layout-sider-light .ant-layout-sider-zero-width-trigger {\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n}\n.ant-layout-rtl {\n direction: rtl;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-list {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n}\n.ant-list * {\n outline: none;\n}\n.ant-list-pagination {\n margin-top: 24px;\n text-align: right;\n}\n.ant-list-pagination .ant-pagination-options {\n text-align: left;\n}\n.ant-list-more {\n margin-top: 12px;\n text-align: center;\n}\n.ant-list-more button {\n padding-right: 32px;\n padding-left: 32px;\n}\n.ant-list-spin {\n min-height: 40px;\n text-align: center;\n}\n.ant-list-empty-text {\n padding: 16px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 14px;\n text-align: center;\n}\n.ant-list-items {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-list-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 0;\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-list-item-meta {\n display: flex;\n flex: 1;\n align-items: flex-start;\n max-width: 100%;\n}\n.ant-list-item-meta-avatar {\n margin-right: 16px;\n}\n.ant-list-item-meta-content {\n flex: 1 0;\n width: 0;\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-list-item-meta-title {\n margin-bottom: 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n}\n.ant-list-item-meta-title > a {\n color: rgba(0, 0, 0, 0.85);\n transition: all 0.3s;\n}\n.ant-list-item-meta-title > a:hover {\n color: #1890ff;\n}\n.ant-list-item-meta-description {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.5715;\n}\n.ant-list-item-action {\n flex: 0 0 auto;\n margin-left: 48px;\n padding: 0;\n font-size: 0;\n list-style: none;\n}\n.ant-list-item-action > li {\n position: relative;\n display: inline-block;\n padding: 0 8px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.5715;\n text-align: center;\n}\n.ant-list-item-action > li:first-child {\n padding-left: 0;\n}\n.ant-list-item-action-split {\n position: absolute;\n top: 50%;\n right: 0;\n width: 1px;\n height: 14px;\n margin-top: -7px;\n background-color: #f0f0f0;\n}\n.ant-list-header {\n background: transparent;\n}\n.ant-list-footer {\n background: transparent;\n}\n.ant-list-header,\n.ant-list-footer {\n padding-top: 12px;\n padding-bottom: 12px;\n}\n.ant-list-empty {\n padding: 16px 0;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n text-align: center;\n}\n.ant-list-split .ant-list-item {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-list-split .ant-list-item:last-child {\n border-bottom: none;\n}\n.ant-list-split .ant-list-header {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-list-split.ant-list-empty .ant-list-footer {\n border-top: 1px solid #f0f0f0;\n}\n.ant-list-loading .ant-list-spin-nested-loading {\n min-height: 32px;\n}\n.ant-list-split.ant-list-something-after-last-item .ant-spin-container > .ant-list-items > .ant-list-item:last-child {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-list-lg .ant-list-item {\n padding: 16px 24px;\n}\n.ant-list-sm .ant-list-item {\n padding: 8px 16px;\n}\n.ant-list-vertical .ant-list-item {\n align-items: initial;\n}\n.ant-list-vertical .ant-list-item-main {\n display: block;\n flex: 1;\n}\n.ant-list-vertical .ant-list-item-extra {\n margin-left: 40px;\n}\n.ant-list-vertical .ant-list-item-meta {\n margin-bottom: 16px;\n}\n.ant-list-vertical .ant-list-item-meta-title {\n margin-bottom: 12px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n line-height: 24px;\n}\n.ant-list-vertical .ant-list-item-action {\n margin-top: 16px;\n margin-left: auto;\n}\n.ant-list-vertical .ant-list-item-action > li {\n padding: 0 16px;\n}\n.ant-list-vertical .ant-list-item-action > li:first-child {\n padding-left: 0;\n}\n.ant-list-grid .ant-col > .ant-list-item {\n display: block;\n max-width: 100%;\n margin-bottom: 16px;\n padding-top: 0;\n padding-bottom: 0;\n border-bottom: none;\n}\n.ant-list-item-no-flex {\n display: block;\n}\n.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action {\n float: right;\n}\n.ant-list-bordered {\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n}\n.ant-list-bordered .ant-list-header {\n padding-right: 24px;\n padding-left: 24px;\n}\n.ant-list-bordered .ant-list-footer {\n padding-right: 24px;\n padding-left: 24px;\n}\n.ant-list-bordered .ant-list-item {\n padding-right: 24px;\n padding-left: 24px;\n}\n.ant-list-bordered .ant-list-pagination {\n margin: 16px 24px;\n}\n.ant-list-bordered.ant-list-sm .ant-list-item {\n padding: 8px 16px;\n}\n.ant-list-bordered.ant-list-sm .ant-list-header,\n.ant-list-bordered.ant-list-sm .ant-list-footer {\n padding: 8px 16px;\n}\n.ant-list-bordered.ant-list-lg .ant-list-item {\n padding: 16px 24px;\n}\n.ant-list-bordered.ant-list-lg .ant-list-header,\n.ant-list-bordered.ant-list-lg .ant-list-footer {\n padding: 16px 24px;\n}\n@media screen and (max-width: 768px) {\n .ant-list-item-action {\n margin-left: 24px;\n }\n .ant-list-vertical .ant-list-item-extra {\n margin-left: 24px;\n }\n}\n@media screen and (max-width: 576px) {\n .ant-list-item {\n flex-wrap: wrap;\n }\n .ant-list-item-action {\n margin-left: 12px;\n }\n .ant-list-vertical .ant-list-item {\n flex-wrap: wrap-reverse;\n }\n .ant-list-vertical .ant-list-item-main {\n min-width: 220px;\n }\n .ant-list-vertical .ant-list-item-extra {\n margin: auto auto 16px;\n }\n}\n.ant-list-rtl {\n direction: rtl;\n text-align: right;\n}\n.ant-list-rtl .ReactVirtualized__List .ant-list-item {\n direction: rtl;\n}\n.ant-list-rtl .ant-list-pagination {\n text-align: left;\n}\n.ant-list-rtl .ant-list-item-meta-avatar {\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-list-rtl .ant-list-item-action {\n margin-right: 48px;\n margin-left: 0;\n}\n.ant-list.ant-list-rtl .ant-list-item-action > li:first-child {\n padding-right: 0;\n padding-left: 16px;\n}\n.ant-list-rtl .ant-list-item-action-split {\n right: auto;\n left: 0;\n}\n.ant-list-rtl.ant-list-vertical .ant-list-item-extra {\n margin-right: 40px;\n margin-left: 0;\n}\n.ant-list-rtl.ant-list-vertical .ant-list-item-action {\n margin-right: auto;\n}\n.ant-list-rtl .ant-list-vertical .ant-list-item-action > li:first-child {\n padding-right: 0;\n padding-left: 16px;\n}\n.ant-list-rtl .ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action {\n float: left;\n}\n@media screen and (max-width: 768px) {\n .ant-list-rtl .ant-list-item-action {\n margin-right: 24px;\n margin-left: 0;\n }\n .ant-list-rtl .ant-list-vertical .ant-list-item-extra {\n margin-right: 24px;\n margin-left: 0;\n }\n}\n@media screen and (max-width: 576px) {\n .ant-list-rtl .ant-list-item-action {\n margin-right: 22px;\n margin-left: 0;\n }\n .ant-list-rtl.ant-list-vertical .ant-list-item-extra {\n margin: auto auto 16px;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-pagination {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-pagination ul,\n.ant-pagination ol {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-pagination::after {\n display: block;\n clear: both;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n content: ' ';\n}\n.ant-pagination-total-text {\n display: inline-block;\n height: 32px;\n margin-right: 8px;\n line-height: 30px;\n vertical-align: middle;\n}\n.ant-pagination-item {\n display: inline-block;\n min-width: 32px;\n height: 32px;\n margin-right: 8px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n line-height: 30px;\n text-align: center;\n vertical-align: middle;\n list-style: none;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n outline: 0;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-pagination-item a {\n display: block;\n padding: 0 6px;\n color: rgba(0, 0, 0, 0.85);\n transition: none;\n}\n.ant-pagination-item a:hover {\n text-decoration: none;\n}\n.ant-pagination-item:hover {\n border-color: #1890ff;\n transition: all 0.3s;\n}\n.ant-pagination-item:hover a {\n color: #1890ff;\n}\n.ant-pagination-item:focus-visible {\n border-color: #1890ff;\n transition: all 0.3s;\n}\n.ant-pagination-item:focus-visible a {\n color: #1890ff;\n}\n.ant-pagination-item-active {\n font-weight: 500;\n background: #fff;\n border-color: #1890ff;\n}\n.ant-pagination-item-active a {\n color: #1890ff;\n}\n.ant-pagination-item-active:hover {\n border-color: #40a9ff;\n}\n.ant-pagination-item-active:focus-visible {\n border-color: #40a9ff;\n}\n.ant-pagination-item-active:hover a {\n color: #40a9ff;\n}\n.ant-pagination-item-active:focus-visible a {\n color: #40a9ff;\n}\n.ant-pagination-jump-prev,\n.ant-pagination-jump-next {\n outline: 0;\n}\n.ant-pagination-jump-prev .ant-pagination-item-container,\n.ant-pagination-jump-next .ant-pagination-item-container {\n position: relative;\n}\n.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,\n.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon {\n color: #1890ff;\n font-size: 12px;\n letter-spacing: -1px;\n opacity: 0;\n transition: all 0.2s;\n}\n.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg,\n.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n}\n.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis,\n.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n margin: auto;\n color: rgba(0, 0, 0, 0.25);\n font-family: Arial, Helvetica, sans-serif;\n letter-spacing: 2px;\n text-align: center;\n text-indent: 0.13em;\n opacity: 1;\n transition: all 0.2s;\n}\n.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon,\n.ant-pagination-jump-next:hover .ant-pagination-item-link-icon {\n opacity: 1;\n}\n.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis,\n.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis {\n opacity: 0;\n}\n.ant-pagination-jump-prev:focus-visible .ant-pagination-item-link-icon,\n.ant-pagination-jump-next:focus-visible .ant-pagination-item-link-icon {\n opacity: 1;\n}\n.ant-pagination-jump-prev:focus-visible .ant-pagination-item-ellipsis,\n.ant-pagination-jump-next:focus-visible .ant-pagination-item-ellipsis {\n opacity: 0;\n}\n.ant-pagination-prev,\n.ant-pagination-jump-prev,\n.ant-pagination-jump-next {\n margin-right: 8px;\n}\n.ant-pagination-prev,\n.ant-pagination-next,\n.ant-pagination-jump-prev,\n.ant-pagination-jump-next {\n display: inline-block;\n min-width: 32px;\n height: 32px;\n color: rgba(0, 0, 0, 0.85);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n line-height: 32px;\n text-align: center;\n vertical-align: middle;\n list-style: none;\n border-radius: 2px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-pagination-prev,\n.ant-pagination-next {\n font-family: Arial, Helvetica, sans-serif;\n outline: 0;\n}\n.ant-pagination-prev button,\n.ant-pagination-next button {\n color: rgba(0, 0, 0, 0.85);\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-pagination-prev:hover button,\n.ant-pagination-next:hover button {\n border-color: #40a9ff;\n}\n.ant-pagination-prev .ant-pagination-item-link,\n.ant-pagination-next .ant-pagination-item-link {\n display: block;\n width: 100%;\n height: 100%;\n padding: 0;\n font-size: 12px;\n text-align: center;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n outline: none;\n transition: all 0.3s;\n}\n.ant-pagination-prev:focus-visible .ant-pagination-item-link,\n.ant-pagination-next:focus-visible .ant-pagination-item-link {\n color: #1890ff;\n border-color: #1890ff;\n}\n.ant-pagination-prev:hover .ant-pagination-item-link,\n.ant-pagination-next:hover .ant-pagination-item-link {\n color: #1890ff;\n border-color: #1890ff;\n}\n.ant-pagination-disabled,\n.ant-pagination-disabled:hover {\n cursor: not-allowed;\n}\n.ant-pagination-disabled .ant-pagination-item-link,\n.ant-pagination-disabled:hover .ant-pagination-item-link {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-pagination-disabled:focus-visible {\n cursor: not-allowed;\n}\n.ant-pagination-disabled:focus-visible .ant-pagination-item-link {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-pagination-slash {\n margin: 0 10px 0 5px;\n}\n.ant-pagination-options {\n display: inline-block;\n margin-left: 16px;\n vertical-align: middle;\n}\n@media all and (-ms-high-contrast: none) {\n .ant-pagination-options *::-ms-backdrop,\n .ant-pagination-options {\n vertical-align: top;\n }\n}\n.ant-pagination-options-size-changer.ant-select {\n display: inline-block;\n width: auto;\n}\n.ant-pagination-options-quick-jumper {\n display: inline-block;\n height: 32px;\n margin-left: 8px;\n line-height: 32px;\n vertical-align: top;\n}\n.ant-pagination-options-quick-jumper input {\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n width: 50px;\n height: 32px;\n margin: 0 8px;\n}\n.ant-pagination-options-quick-jumper input::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-pagination-options-quick-jumper input:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-pagination-options-quick-jumper input::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-pagination-options-quick-jumper input:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-pagination-options-quick-jumper input:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-pagination-options-quick-jumper input:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-pagination-options-quick-jumper input:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-pagination-options-quick-jumper input:focus,\n.ant-pagination-options-quick-jumper input-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-pagination-options-quick-jumper input-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-pagination-options-quick-jumper input-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-pagination-options-quick-jumper input[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-pagination-options-quick-jumper input[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-pagination-options-quick-jumper input-borderless,\n.ant-pagination-options-quick-jumper input-borderless:hover,\n.ant-pagination-options-quick-jumper input-borderless:focus,\n.ant-pagination-options-quick-jumper input-borderless-focused,\n.ant-pagination-options-quick-jumper input-borderless-disabled,\n.ant-pagination-options-quick-jumper input-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-pagination-options-quick-jumper input {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-pagination-options-quick-jumper input-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-pagination-options-quick-jumper input-sm {\n padding: 0px 7px;\n}\n.ant-pagination-simple .ant-pagination-prev,\n.ant-pagination-simple .ant-pagination-next {\n height: 24px;\n line-height: 24px;\n vertical-align: top;\n}\n.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link,\n.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link {\n height: 24px;\n background-color: transparent;\n border: 0;\n}\n.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link::after,\n.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link::after {\n height: 24px;\n line-height: 24px;\n}\n.ant-pagination-simple .ant-pagination-simple-pager {\n display: inline-block;\n height: 24px;\n margin-right: 8px;\n}\n.ant-pagination-simple .ant-pagination-simple-pager input {\n box-sizing: border-box;\n height: 100%;\n margin-right: 8px;\n padding: 0 6px;\n text-align: center;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n outline: none;\n transition: border-color 0.3s;\n}\n.ant-pagination-simple .ant-pagination-simple-pager input:hover {\n border-color: #1890ff;\n}\n.ant-pagination-simple .ant-pagination-simple-pager input:focus {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n}\n.ant-pagination-simple .ant-pagination-simple-pager input[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background: #f5f5f5;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-total-text,\n.ant-pagination.ant-pagination-mini .ant-pagination-simple-pager {\n height: 24px;\n line-height: 24px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-item {\n min-width: 24px;\n height: 24px;\n margin: 0;\n line-height: 22px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-item:not(.ant-pagination-item-active) {\n background: transparent;\n border-color: transparent;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-prev,\n.ant-pagination.ant-pagination-mini .ant-pagination-next {\n min-width: 24px;\n height: 24px;\n margin: 0;\n line-height: 24px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-prev .ant-pagination-item-link,\n.ant-pagination.ant-pagination-mini .ant-pagination-next .ant-pagination-item-link {\n background: transparent;\n border-color: transparent;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-prev .ant-pagination-item-link::after,\n.ant-pagination.ant-pagination-mini .ant-pagination-next .ant-pagination-item-link::after {\n height: 24px;\n line-height: 24px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-jump-prev,\n.ant-pagination.ant-pagination-mini .ant-pagination-jump-next {\n height: 24px;\n margin-right: 0;\n line-height: 24px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-options {\n margin-left: 2px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-options-size-changer {\n top: 0px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper {\n height: 24px;\n line-height: 24px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper input {\n padding: 0px 7px;\n width: 44px;\n height: 24px;\n}\n.ant-pagination.ant-pagination-disabled {\n cursor: not-allowed;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item {\n background: #f5f5f5;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item a {\n color: rgba(0, 0, 0, 0.25);\n background: transparent;\n border: none;\n cursor: not-allowed;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-active {\n background: #e6e6e6;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-link {\n color: rgba(0, 0, 0, 0.25);\n background: #f5f5f5;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-pagination-simple.ant-pagination.ant-pagination-disabled .ant-pagination-item-link {\n background: transparent;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-link-icon {\n opacity: 0;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-ellipsis {\n opacity: 1;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-simple-pager {\n color: rgba(0, 0, 0, 0.25);\n}\n@media only screen and (max-width: 992px) {\n .ant-pagination-item-after-jump-prev,\n .ant-pagination-item-before-jump-next {\n display: none;\n }\n}\n@media only screen and (max-width: 576px) {\n .ant-pagination-options {\n display: none;\n }\n}\n.ant-pagination-rtl .ant-pagination-total-text {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-pagination-rtl .ant-pagination-item,\n.ant-pagination-rtl .ant-pagination-prev,\n.ant-pagination-rtl .ant-pagination-jump-prev,\n.ant-pagination-rtl .ant-pagination-jump-next {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-pagination-rtl .ant-pagination-slash {\n margin: 0 5px 0 10px;\n}\n.ant-pagination-rtl .ant-pagination-options {\n margin-right: 16px;\n margin-left: 0;\n}\n.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-size-changer.ant-select {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-quick-jumper {\n margin-left: 0;\n}\n.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager input {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-pagination-rtl.ant-pagination.mini .ant-pagination-options {\n margin-right: 2px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-spin {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n display: none;\n color: #1890ff;\n font-size: 0;\n text-align: center;\n vertical-align: middle;\n opacity: 0;\n transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-spin-spinning {\n position: static;\n display: inline-block;\n opacity: 1;\n}\n.ant-spin-nested-loading {\n position: relative;\n}\n.ant-spin-nested-loading > div > .ant-spin {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 4;\n display: block;\n width: 100%;\n height: 100%;\n max-height: 400px;\n}\n.ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {\n position: absolute;\n top: 50%;\n left: 50%;\n margin: -10px;\n}\n.ant-spin-nested-loading > div > .ant-spin .ant-spin-text {\n position: absolute;\n top: 50%;\n width: 100%;\n padding-top: 5px;\n font-size: 14px;\n text-shadow: 0 1px 2px #fff;\n}\n.ant-spin-nested-loading > div > .ant-spin.ant-spin-show-text .ant-spin-dot {\n margin-top: -20px;\n}\n.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-dot {\n margin: -7px;\n}\n.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-text {\n padding-top: 2px;\n}\n.ant-spin-nested-loading > div > .ant-spin-sm.ant-spin-show-text .ant-spin-dot {\n margin-top: -17px;\n}\n.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-dot {\n margin: -16px;\n}\n.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-text {\n padding-top: 11px;\n}\n.ant-spin-nested-loading > div > .ant-spin-lg.ant-spin-show-text .ant-spin-dot {\n margin-top: -26px;\n}\n.ant-spin-container {\n position: relative;\n transition: opacity 0.3s;\n}\n.ant-spin-container::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n display: none \\9;\n width: 100%;\n height: 100%;\n background: #fff;\n opacity: 0;\n transition: all 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-spin-blur {\n clear: both;\n opacity: 0.5;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n pointer-events: none;\n}\n.ant-spin-blur::after {\n opacity: 0.4;\n pointer-events: auto;\n}\n.ant-spin-tip {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-spin-dot {\n position: relative;\n display: inline-block;\n font-size: 20px;\n width: 1em;\n height: 1em;\n}\n.ant-spin-dot-item {\n position: absolute;\n display: block;\n width: 9px;\n height: 9px;\n background-color: #1890ff;\n border-radius: 100%;\n transform: scale(0.75);\n transform-origin: 50% 50%;\n opacity: 0.3;\n animation: antSpinMove 1s infinite linear alternate;\n}\n.ant-spin-dot-item:nth-child(1) {\n top: 0;\n left: 0;\n}\n.ant-spin-dot-item:nth-child(2) {\n top: 0;\n right: 0;\n animation-delay: 0.4s;\n}\n.ant-spin-dot-item:nth-child(3) {\n right: 0;\n bottom: 0;\n animation-delay: 0.8s;\n}\n.ant-spin-dot-item:nth-child(4) {\n bottom: 0;\n left: 0;\n animation-delay: 1.2s;\n}\n.ant-spin-dot-spin {\n transform: rotate(0deg);\n animation: antRotate 1.2s infinite linear;\n}\n.ant-spin-sm .ant-spin-dot {\n font-size: 14px;\n}\n.ant-spin-sm .ant-spin-dot i {\n width: 6px;\n height: 6px;\n}\n.ant-spin-lg .ant-spin-dot {\n font-size: 32px;\n}\n.ant-spin-lg .ant-spin-dot i {\n width: 14px;\n height: 14px;\n}\n.ant-spin.ant-spin-show-text .ant-spin-text {\n display: block;\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n /* IE10+ */\n .ant-spin-blur {\n background: #fff;\n opacity: 0.5;\n }\n}\n@keyframes antSpinMove {\n to {\n opacity: 1;\n }\n}\n@keyframes antRotate {\n to {\n transform: rotate(360deg);\n }\n}\n.ant-spin-rtl {\n direction: rtl;\n}\n.ant-spin-rtl .ant-spin-dot-spin {\n transform: rotate(-45deg);\n animation-name: antRotateRtl;\n}\n@keyframes antRotateRtl {\n to {\n transform: rotate(-405deg);\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions,\n.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:focus,\n.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-mentions-status-error .ant-input-prefix {\n color: #ff4d4f;\n}\n.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions,\n.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:focus,\n.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-mentions-status-warning .ant-input-prefix {\n color: #faad14;\n}\n.ant-mentions {\n box-sizing: border-box;\n margin: 0;\n font-variant: tabular-nums;\n list-style: none;\n font-feature-settings: 'tnum';\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n position: relative;\n display: inline-block;\n height: auto;\n padding: 0;\n overflow: hidden;\n line-height: 1.5715;\n white-space: pre-wrap;\n vertical-align: bottom;\n}\n.ant-mentions::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-mentions:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-mentions::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-mentions:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-mentions:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-mentions:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-mentions:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-mentions:focus,\n.ant-mentions-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-mentions-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-mentions-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-mentions[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-mentions[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-mentions-borderless,\n.ant-mentions-borderless:hover,\n.ant-mentions-borderless:focus,\n.ant-mentions-borderless-focused,\n.ant-mentions-borderless-disabled,\n.ant-mentions-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-mentions {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-mentions-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-mentions-sm {\n padding: 0px 7px;\n}\n.ant-mentions-disabled > textarea {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-mentions-disabled > textarea:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-mentions-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-mentions > textarea,\n.ant-mentions-measure {\n min-height: 30px;\n margin: 0;\n padding: 4px 11px;\n overflow: inherit;\n overflow-x: hidden;\n overflow-y: auto;\n /* stylelint-disable declaration-block-no-redundant-longhand-properties */\n font-weight: inherit;\n font-size: inherit;\n font-family: inherit;\n font-style: inherit;\n font-variant: inherit;\n font-size-adjust: inherit;\n font-stretch: inherit;\n line-height: inherit;\n /* stylelint-enable declaration-block-no-redundant-longhand-properties */\n direction: inherit;\n letter-spacing: inherit;\n white-space: inherit;\n text-align: inherit;\n vertical-align: top;\n word-wrap: break-word;\n word-break: inherit;\n -moz-tab-size: inherit;\n -o-tab-size: inherit;\n tab-size: inherit;\n}\n.ant-mentions > textarea {\n width: 100%;\n border: none;\n outline: none;\n resize: none;\n}\n.ant-mentions > textarea::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-mentions > textarea:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-mentions > textarea::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-mentions > textarea:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-mentions > textarea:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-mentions > textarea:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-mentions-measure {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n color: transparent;\n pointer-events: none;\n}\n.ant-mentions-measure > span {\n display: inline-block;\n min-height: 1em;\n}\n.ant-mentions-dropdown {\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n box-sizing: border-box;\n font-size: 14px;\n font-variant: initial;\n background-color: #fff;\n border-radius: 2px;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-mentions-dropdown-hidden {\n display: none;\n}\n.ant-mentions-dropdown-menu {\n max-height: 250px;\n margin-bottom: 0;\n padding-left: 0;\n overflow: auto;\n list-style: none;\n outline: none;\n}\n.ant-mentions-dropdown-menu-item {\n position: relative;\n display: block;\n min-width: 100px;\n padding: 5px 12px;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n line-height: 1.5715;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: background 0.3s ease;\n}\n.ant-mentions-dropdown-menu-item:hover {\n background-color: #f5f5f5;\n}\n.ant-mentions-dropdown-menu-item:first-child {\n border-radius: 2px 2px 0 0;\n}\n.ant-mentions-dropdown-menu-item:last-child {\n border-radius: 0 0 2px 2px;\n}\n.ant-mentions-dropdown-menu-item-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-mentions-dropdown-menu-item-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n background-color: #fff;\n cursor: not-allowed;\n}\n.ant-mentions-dropdown-menu-item-selected {\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n background-color: #fafafa;\n}\n.ant-mentions-dropdown-menu-item-active {\n background-color: #f5f5f5;\n}\n.ant-mentions-suffix {\n position: absolute;\n top: 0;\n right: 11px;\n bottom: 0;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: auto;\n}\n.ant-mentions-rtl {\n direction: rtl;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-message {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: fixed;\n top: 8px;\n left: 0;\n z-index: 1010;\n width: 100%;\n pointer-events: none;\n}\n.ant-message-notice {\n padding: 8px;\n text-align: center;\n}\n.ant-message-notice-content {\n display: inline-block;\n padding: 10px 16px;\n background: #fff;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n pointer-events: all;\n}\n.ant-message-success .anticon {\n color: #52c41a;\n}\n.ant-message-error .anticon {\n color: #ff4d4f;\n}\n.ant-message-warning .anticon {\n color: #faad14;\n}\n.ant-message-info .anticon,\n.ant-message-loading .anticon {\n color: #1890ff;\n}\n.ant-message .anticon {\n position: relative;\n top: 1px;\n margin-right: 8px;\n font-size: 16px;\n}\n.ant-message-notice.ant-move-up-leave.ant-move-up-leave-active {\n animation-name: MessageMoveOut;\n animation-duration: 0.3s;\n}\n@keyframes MessageMoveOut {\n 0% {\n max-height: 150px;\n padding: 8px;\n opacity: 1;\n }\n 100% {\n max-height: 0;\n padding: 0;\n opacity: 0;\n }\n}\n.ant-message-rtl {\n direction: rtl;\n}\n.ant-message-rtl span {\n direction: rtl;\n}\n.ant-message-rtl .anticon {\n margin-right: 0;\n margin-left: 8px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-modal {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n pointer-events: none;\n position: relative;\n top: 100px;\n width: auto;\n max-width: calc(100vw - 32px);\n margin: 0 auto;\n padding-bottom: 24px;\n}\n.ant-modal.ant-zoom-enter,\n.ant-modal.ant-zoom-appear {\n transform: none;\n opacity: 0;\n animation-duration: 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-modal-mask {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.45);\n}\n.ant-modal-mask-hidden {\n display: none;\n}\n.ant-modal-wrap {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: auto;\n outline: 0;\n}\n.ant-modal-wrap {\n z-index: 1000;\n}\n.ant-modal-title {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n word-wrap: break-word;\n}\n.ant-modal-content {\n position: relative;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n pointer-events: auto;\n}\n.ant-modal-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 10;\n padding: 0;\n color: rgba(0, 0, 0, 0.45);\n font-weight: 700;\n line-height: 1;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n}\n.ant-modal-close-x {\n display: block;\n width: 54px;\n height: 54px;\n font-size: 16px;\n font-style: normal;\n line-height: 54px;\n text-align: center;\n text-transform: none;\n text-rendering: auto;\n}\n.ant-modal-close:focus,\n.ant-modal-close:hover {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n}\n.ant-modal-header {\n padding: 16px 24px;\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n}\n.ant-modal-body {\n padding: 24px;\n font-size: 14px;\n line-height: 1.5715;\n word-wrap: break-word;\n}\n.ant-modal-footer {\n padding: 10px 16px;\n text-align: right;\n background: transparent;\n border-top: 1px solid #f0f0f0;\n border-radius: 0 0 2px 2px;\n}\n.ant-modal-footer .ant-btn + .ant-btn:not(.ant-dropdown-trigger) {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-open {\n overflow: hidden;\n}\n.ant-modal-centered {\n text-align: center;\n}\n.ant-modal-centered::before {\n display: inline-block;\n width: 0;\n height: 100%;\n vertical-align: middle;\n content: '';\n}\n.ant-modal-centered .ant-modal {\n top: 0;\n display: inline-block;\n padding-bottom: 0;\n text-align: left;\n vertical-align: middle;\n}\n@media (max-width: 767px) {\n .ant-modal {\n max-width: calc(100vw - 16px);\n margin: 8px auto;\n }\n .ant-modal-centered .ant-modal {\n flex: 1;\n }\n}\n.ant-modal-confirm .ant-modal-header {\n display: none;\n}\n.ant-modal-confirm .ant-modal-body {\n padding: 32px 32px 24px;\n}\n.ant-modal-confirm-body-wrapper::before {\n display: table;\n content: '';\n}\n.ant-modal-confirm-body-wrapper::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-modal-confirm-body .ant-modal-confirm-title {\n display: block;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 1.4;\n}\n.ant-modal-confirm-body .ant-modal-confirm-content {\n margin-top: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-modal-confirm-body > .anticon {\n float: left;\n margin-right: 16px;\n font-size: 22px;\n}\n.ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-left: 38px;\n}\n.ant-modal-confirm .ant-modal-confirm-btns {\n margin-top: 24px;\n text-align: right;\n}\n.ant-modal-confirm .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-confirm-error .ant-modal-confirm-body > .anticon {\n color: #ff4d4f;\n}\n.ant-modal-confirm-warning .ant-modal-confirm-body > .anticon,\n.ant-modal-confirm-confirm .ant-modal-confirm-body > .anticon {\n color: #faad14;\n}\n.ant-modal-confirm-info .ant-modal-confirm-body > .anticon {\n color: #1890ff;\n}\n.ant-modal-confirm-success .ant-modal-confirm-body > .anticon {\n color: #52c41a;\n}\n.ant-modal-confirm .ant-zoom-leave .ant-modal-confirm-btns {\n pointer-events: none;\n}\n.ant-modal-wrap-rtl {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-close {\n right: initial;\n left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-footer {\n text-align: left;\n}\n.ant-modal-wrap-rtl .ant-modal-footer .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-right: 38px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns {\n text-align: left;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl.ant-modal-centered .ant-modal {\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-notification {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: fixed;\n z-index: 1010;\n margin-right: 24px;\n}\n.ant-notification-close-icon {\n font-size: 14px;\n cursor: pointer;\n}\n.ant-notification-hook-holder {\n position: relative;\n}\n.ant-notification-notice {\n position: relative;\n width: 384px;\n max-width: calc(100vw - 24px * 2);\n margin-bottom: 16px;\n margin-left: auto;\n padding: 16px 24px;\n overflow: hidden;\n line-height: 1.5715;\n word-wrap: break-word;\n background: #fff;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-notification-top .ant-notification-notice,\n.ant-notification-bottom .ant-notification-notice {\n margin-right: auto;\n margin-left: auto;\n}\n.ant-notification-topLeft .ant-notification-notice,\n.ant-notification-bottomLeft .ant-notification-notice {\n margin-right: auto;\n margin-left: 0;\n}\n.ant-notification-notice-message {\n margin-bottom: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n line-height: 24px;\n}\n.ant-notification-notice-message-single-line-auto-margin {\n display: block;\n width: calc(384px - 24px * 2 - 24px - 48px - 100%);\n max-width: 4px;\n background-color: transparent;\n pointer-events: none;\n}\n.ant-notification-notice-message-single-line-auto-margin::before {\n display: block;\n content: '';\n}\n.ant-notification-notice-description {\n font-size: 14px;\n}\n.ant-notification-notice-closable .ant-notification-notice-message {\n padding-right: 24px;\n}\n.ant-notification-notice-with-icon .ant-notification-notice-message {\n margin-bottom: 4px;\n margin-left: 48px;\n font-size: 16px;\n}\n.ant-notification-notice-with-icon .ant-notification-notice-description {\n margin-left: 48px;\n font-size: 14px;\n}\n.ant-notification-notice-icon {\n position: absolute;\n margin-left: 4px;\n font-size: 24px;\n line-height: 24px;\n}\n.anticon.ant-notification-notice-icon-success {\n color: #52c41a;\n}\n.anticon.ant-notification-notice-icon-info {\n color: #1890ff;\n}\n.anticon.ant-notification-notice-icon-warning {\n color: #faad14;\n}\n.anticon.ant-notification-notice-icon-error {\n color: #ff4d4f;\n}\n.ant-notification-notice-close {\n position: absolute;\n top: 16px;\n right: 22px;\n color: rgba(0, 0, 0, 0.45);\n outline: none;\n}\n.ant-notification-notice-close:hover {\n color: rgba(0, 0, 0, 0.67);\n}\n.ant-notification-notice-btn {\n float: right;\n margin-top: 16px;\n}\n.ant-notification .notification-fade-effect {\n animation-duration: 0.24s;\n animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\n animation-fill-mode: both;\n}\n.ant-notification-fade-enter,\n.ant-notification-fade-appear {\n animation-duration: 0.24s;\n animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\n animation-fill-mode: both;\n opacity: 0;\n animation-play-state: paused;\n}\n.ant-notification-fade-leave {\n animation-duration: 0.24s;\n animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\n animation-fill-mode: both;\n animation-duration: 0.2s;\n animation-play-state: paused;\n}\n.ant-notification-fade-enter.ant-notification-fade-enter-active,\n.ant-notification-fade-appear.ant-notification-fade-appear-active {\n animation-name: NotificationFadeIn;\n animation-play-state: running;\n}\n.ant-notification-fade-leave.ant-notification-fade-leave-active {\n animation-name: NotificationFadeOut;\n animation-play-state: running;\n}\n@keyframes NotificationFadeIn {\n 0% {\n left: 384px;\n opacity: 0;\n }\n 100% {\n left: 0;\n opacity: 1;\n }\n}\n@keyframes NotificationFadeOut {\n 0% {\n max-height: 150px;\n margin-bottom: 16px;\n opacity: 1;\n }\n 100% {\n max-height: 0;\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n opacity: 0;\n }\n}\n.ant-notification-rtl {\n direction: rtl;\n}\n.ant-notification-rtl .ant-notification-notice-closable .ant-notification-notice-message {\n padding-right: 0;\n padding-left: 24px;\n}\n.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-message {\n margin-right: 48px;\n margin-left: 0;\n}\n.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-description {\n margin-right: 48px;\n margin-left: 0;\n}\n.ant-notification-rtl .ant-notification-notice-icon {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-notification-rtl .ant-notification-notice-close {\n right: auto;\n left: 22px;\n}\n.ant-notification-rtl .ant-notification-notice-btn {\n float: left;\n}\n.ant-notification-top,\n.ant-notification-bottom {\n margin-right: 0;\n margin-left: 0;\n}\n.ant-notification-top .ant-notification-fade-enter.ant-notification-fade-enter-active,\n.ant-notification-top .ant-notification-fade-appear.ant-notification-fade-appear-active {\n animation-name: NotificationTopFadeIn;\n}\n.ant-notification-bottom .ant-notification-fade-enter.ant-notification-fade-enter-active,\n.ant-notification-bottom .ant-notification-fade-appear.ant-notification-fade-appear-active {\n animation-name: NotificationBottomFadeIn;\n}\n.ant-notification-topLeft,\n.ant-notification-bottomLeft {\n margin-right: 0;\n margin-left: 24px;\n}\n.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,\n.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,\n.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,\n.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active {\n animation-name: NotificationLeftFadeIn;\n}\n@keyframes NotificationTopFadeIn {\n 0% {\n margin-top: -100%;\n opacity: 0;\n }\n 100% {\n margin-top: 0;\n opacity: 1;\n }\n}\n@keyframes NotificationBottomFadeIn {\n 0% {\n margin-bottom: -100%;\n opacity: 0;\n }\n 100% {\n margin-bottom: 0;\n opacity: 1;\n }\n}\n@keyframes NotificationLeftFadeIn {\n 0% {\n right: 384px;\n opacity: 0;\n }\n 100% {\n right: 0;\n opacity: 1;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-page-header {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n padding: 16px 24px;\n background-color: #fff;\n}\n.ant-page-header-ghost {\n background-color: inherit;\n}\n.ant-page-header.has-breadcrumb {\n padding-top: 12px;\n}\n.ant-page-header.has-footer {\n padding-bottom: 0;\n}\n.ant-page-header-back {\n margin-right: 16px;\n font-size: 16px;\n line-height: 1;\n}\n.ant-page-header-back-button {\n color: #1890ff;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n color: #000;\n}\n.ant-page-header-back-button:focus-visible,\n.ant-page-header-back-button:hover {\n color: #40a9ff;\n}\n.ant-page-header-back-button:active {\n color: #096dd9;\n}\n.ant-page-header .ant-divider-vertical {\n height: 14px;\n margin: 0 12px;\n vertical-align: middle;\n}\n.ant-breadcrumb + .ant-page-header-heading {\n margin-top: 8px;\n}\n.ant-page-header-heading {\n display: flex;\n justify-content: space-between;\n}\n.ant-page-header-heading-left {\n display: flex;\n align-items: center;\n margin: 4px 0;\n overflow: hidden;\n}\n.ant-page-header-heading-title {\n margin-right: 12px;\n margin-bottom: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 20px;\n line-height: 32px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-page-header-heading .ant-avatar {\n margin-right: 12px;\n}\n.ant-page-header-heading-sub-title {\n margin-right: 12px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.5715;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-page-header-heading-extra {\n margin: 4px 0;\n white-space: nowrap;\n}\n.ant-page-header-heading-extra > * {\n white-space: unset;\n}\n.ant-page-header-content {\n padding-top: 12px;\n}\n.ant-page-header-footer {\n margin-top: 16px;\n}\n.ant-page-header-footer .ant-tabs > .ant-tabs-nav {\n margin: 0;\n}\n.ant-page-header-footer .ant-tabs > .ant-tabs-nav::before {\n border: none;\n}\n.ant-page-header-footer .ant-tabs .ant-tabs-tab {\n padding-top: 8px;\n padding-bottom: 8px;\n font-size: 16px;\n}\n.ant-page-header-compact .ant-page-header-heading {\n flex-wrap: wrap;\n}\n.ant-page-header-rtl {\n direction: rtl;\n}\n.ant-page-header-rtl .ant-page-header-back {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-page-header-rtl .ant-page-header-heading-title {\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-page-header-rtl .ant-page-header-heading .ant-avatar {\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-page-header-rtl .ant-page-header-heading-sub-title {\n float: right;\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-page-header-rtl .ant-page-header-heading-tags {\n float: right;\n}\n.ant-page-header-rtl .ant-page-header-heading-extra {\n float: left;\n}\n.ant-page-header-rtl .ant-page-header-heading-extra > * {\n margin-right: 12px;\n margin-left: 0;\n}\n.ant-page-header-rtl .ant-page-header-heading-extra > *:first-child {\n margin-right: 0;\n}\n.ant-page-header-rtl .ant-page-header-footer .ant-tabs-bar .ant-tabs-nav {\n float: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-popconfirm {\n z-index: 1060;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-progress {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-progress-line {\n position: relative;\n width: 100%;\n font-size: 14px;\n}\n.ant-progress-steps {\n display: inline-block;\n}\n.ant-progress-steps-outer {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.ant-progress-steps-item {\n flex-shrink: 0;\n min-width: 2px;\n margin-right: 2px;\n background: #f3f3f3;\n transition: all 0.3s;\n}\n.ant-progress-steps-item-active {\n background: #1890ff;\n}\n.ant-progress-small.ant-progress-line,\n.ant-progress-small.ant-progress-line .ant-progress-text .anticon {\n font-size: 12px;\n}\n.ant-progress-outer {\n display: inline-block;\n width: 100%;\n margin-right: 0;\n padding-right: 0;\n}\n.ant-progress-show-info .ant-progress-outer {\n margin-right: calc(-2em - 8px);\n padding-right: calc(2em + 8px);\n}\n.ant-progress-inner {\n position: relative;\n display: inline-block;\n width: 100%;\n overflow: hidden;\n vertical-align: middle;\n background-color: #f5f5f5;\n border-radius: 100px;\n}\n.ant-progress-circle-trail {\n stroke: #f5f5f5;\n}\n.ant-progress-circle-path {\n animation: ant-progress-appear 0.3s;\n}\n.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path {\n stroke: #1890ff;\n}\n.ant-progress-success-bg,\n.ant-progress-bg {\n position: relative;\n background-color: #1890ff;\n border-radius: 100px;\n transition: all 0.4s cubic-bezier(0.08, 0.82, 0.17, 1) 0s;\n}\n.ant-progress-success-bg {\n position: absolute;\n top: 0;\n left: 0;\n background-color: #52c41a;\n}\n.ant-progress-text {\n display: inline-block;\n width: 2em;\n margin-left: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 1em;\n line-height: 1;\n white-space: nowrap;\n text-align: left;\n vertical-align: middle;\n word-break: normal;\n}\n.ant-progress-text .anticon {\n font-size: 14px;\n}\n.ant-progress-status-active .ant-progress-bg::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: #fff;\n border-radius: 10px;\n opacity: 0;\n animation: ant-progress-active 2.4s cubic-bezier(0.23, 1, 0.32, 1) infinite;\n content: '';\n}\n.ant-progress-status-exception .ant-progress-bg {\n background-color: #ff4d4f;\n}\n.ant-progress-status-exception .ant-progress-text {\n color: #ff4d4f;\n}\n.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path {\n stroke: #ff4d4f;\n}\n.ant-progress-status-success .ant-progress-bg {\n background-color: #52c41a;\n}\n.ant-progress-status-success .ant-progress-text {\n color: #52c41a;\n}\n.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path {\n stroke: #52c41a;\n}\n.ant-progress-circle .ant-progress-inner {\n position: relative;\n line-height: 1;\n background-color: transparent;\n}\n.ant-progress-circle .ant-progress-text {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 1em;\n line-height: 1;\n white-space: normal;\n text-align: center;\n transform: translate(-50%, -50%);\n}\n.ant-progress-circle .ant-progress-text .anticon {\n font-size: 1.16666667em;\n}\n.ant-progress-circle.ant-progress-status-exception .ant-progress-text {\n color: #ff4d4f;\n}\n.ant-progress-circle.ant-progress-status-success .ant-progress-text {\n color: #52c41a;\n}\n@keyframes ant-progress-active {\n 0% {\n transform: translateX(-100%) scaleX(0);\n opacity: 0.1;\n }\n 20% {\n transform: translateX(-100%) scaleX(0);\n opacity: 0.5;\n }\n 100% {\n transform: translateX(0) scaleX(1);\n opacity: 0;\n }\n}\n.ant-progress-rtl {\n direction: rtl;\n}\n.ant-progress-rtl.ant-progress-show-info .ant-progress-outer {\n margin-right: 0;\n margin-left: calc(-2em - 8px);\n padding-right: 0;\n padding-left: calc(2em + 8px);\n}\n.ant-progress-rtl .ant-progress-success-bg {\n right: 0;\n left: auto;\n}\n.ant-progress-rtl.ant-progress-line .ant-progress-text,\n.ant-progress-rtl.ant-progress-steps .ant-progress-text {\n margin-right: 8px;\n margin-left: 0;\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-rate {\n box-sizing: border-box;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n font-feature-settings: 'tnum';\n display: inline-block;\n margin: 0;\n padding: 0;\n color: #fadb14;\n font-size: 20px;\n line-height: unset;\n list-style: none;\n outline: none;\n}\n.ant-rate-disabled .ant-rate-star {\n cursor: default;\n}\n.ant-rate-disabled .ant-rate-star > div:hover {\n transform: scale(1);\n}\n.ant-rate-star {\n position: relative;\n display: inline-block;\n color: inherit;\n cursor: pointer;\n}\n.ant-rate-star:not(:last-child) {\n margin-right: 8px;\n}\n.ant-rate-star > div {\n transition: all 0.3s, outline 0s;\n}\n.ant-rate-star > div:hover {\n transform: scale(1.1);\n}\n.ant-rate-star > div:focus {\n outline: 0;\n}\n.ant-rate-star > div:focus-visible {\n outline: 1px dashed #fadb14;\n transform: scale(1.1);\n}\n.ant-rate-star-first,\n.ant-rate-star-second {\n color: #f0f0f0;\n transition: all 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-rate-star-first .anticon,\n.ant-rate-star-second .anticon {\n vertical-align: middle;\n}\n.ant-rate-star-first {\n position: absolute;\n top: 0;\n left: 0;\n width: 50%;\n height: 100%;\n overflow: hidden;\n opacity: 0;\n}\n.ant-rate-star-half .ant-rate-star-first,\n.ant-rate-star-half .ant-rate-star-second {\n opacity: 1;\n}\n.ant-rate-star-half .ant-rate-star-first,\n.ant-rate-star-full .ant-rate-star-second {\n color: inherit;\n}\n.ant-rate-text {\n display: inline-block;\n margin: 0 8px;\n font-size: 14px;\n}\n.ant-rate-rtl {\n direction: rtl;\n}\n.ant-rate-rtl .ant-rate-star:not(:last-child) {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-rate-rtl .ant-rate-star-first {\n right: 0;\n left: auto;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-result {\n padding: 48px 32px;\n}\n.ant-result-success .ant-result-icon > .anticon {\n color: #52c41a;\n}\n.ant-result-error .ant-result-icon > .anticon {\n color: #ff4d4f;\n}\n.ant-result-info .ant-result-icon > .anticon {\n color: #1890ff;\n}\n.ant-result-warning .ant-result-icon > .anticon {\n color: #faad14;\n}\n.ant-result-image {\n width: 250px;\n height: 295px;\n margin: auto;\n}\n.ant-result-icon {\n margin-bottom: 24px;\n text-align: center;\n}\n.ant-result-icon > .anticon {\n font-size: 72px;\n}\n.ant-result-title {\n color: rgba(0, 0, 0, 0.85);\n font-size: 24px;\n line-height: 1.8;\n text-align: center;\n}\n.ant-result-subtitle {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.6;\n text-align: center;\n}\n.ant-result-extra {\n margin: 24px 0 0 0;\n text-align: center;\n}\n.ant-result-extra > * {\n margin-right: 8px;\n}\n.ant-result-extra > *:last-child {\n margin-right: 0;\n}\n.ant-result-content {\n margin-top: 24px;\n padding: 24px 40px;\n background-color: #fafafa;\n}\n.ant-result-rtl {\n direction: rtl;\n}\n.ant-result-rtl .ant-result-extra > * {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-result-rtl .ant-result-extra > *:last-child {\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.segmented-disabled-item,\n.segmented-disabled-item:hover,\n.segmented-disabled-item:focus {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.segmented-item-selected {\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.05), 0 1px 4px -1px rgba(0, 0, 0, 0.07), 0 0 1px 0 rgba(0, 0, 0, 0.08);\n}\n.segmented-text-ellipsis {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n.ant-segmented {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n padding: 2px;\n color: rgba(0, 0, 0, 0.65);\n background-color: rgba(0, 0, 0, 0.04);\n border-radius: 2px;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-segmented-group {\n position: relative;\n display: flex;\n align-items: stretch;\n justify-items: flex-start;\n width: 100%;\n}\n.ant-segmented.ant-segmented-block {\n display: flex;\n}\n.ant-segmented.ant-segmented-block .ant-segmented-item {\n flex: 1;\n min-width: 0;\n}\n.ant-segmented:not(.ant-segmented-disabled):hover,\n.ant-segmented:not(.ant-segmented-disabled):focus {\n background-color: rgba(0, 0, 0, 0.06);\n}\n.ant-segmented-item {\n position: relative;\n text-align: center;\n cursor: pointer;\n transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-segmented-item-selected {\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.05), 0 1px 4px -1px rgba(0, 0, 0, 0.07), 0 0 1px 0 rgba(0, 0, 0, 0.08);\n color: #262626;\n}\n.ant-segmented-item:hover,\n.ant-segmented-item:focus {\n color: #262626;\n}\n.ant-segmented-item-label {\n min-height: 28px;\n padding: 0 11px;\n line-height: 28px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n.ant-segmented-item-icon + * {\n margin-left: 6px;\n}\n.ant-segmented-item-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n opacity: 0;\n pointer-events: none;\n}\n.ant-segmented.ant-segmented-lg .ant-segmented-item-label {\n min-height: 36px;\n padding: 0 11px;\n font-size: 16px;\n line-height: 36px;\n}\n.ant-segmented.ant-segmented-sm .ant-segmented-item-label {\n min-height: 20px;\n padding: 0 7px;\n line-height: 20px;\n}\n.ant-segmented-item-disabled,\n.ant-segmented-item-disabled:hover,\n.ant-segmented-item-disabled:focus {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-segmented-thumb {\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.05), 0 1px 4px -1px rgba(0, 0, 0, 0.07), 0 0 1px 0 rgba(0, 0, 0, 0.08);\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 100%;\n padding: 4px 0;\n}\n.ant-segmented-thumb-motion-appear-active {\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n will-change: transform, width;\n}\n.ant-segmented.ant-segmented-rtl {\n direction: rtl;\n}\n.ant-segmented.ant-segmented-rtl .ant-segmented-item-icon {\n margin-right: 0;\n margin-left: 6px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-slider {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n height: 12px;\n margin: 10px 6px 10px;\n padding: 4px 0;\n cursor: pointer;\n touch-action: none;\n}\n.ant-slider-vertical {\n width: 12px;\n height: 100%;\n margin: 6px 10px;\n padding: 0 4px;\n}\n.ant-slider-vertical .ant-slider-rail {\n width: 4px;\n height: 100%;\n}\n.ant-slider-vertical .ant-slider-track {\n width: 4px;\n}\n.ant-slider-vertical .ant-slider-handle {\n margin-top: -6px;\n margin-left: -5px;\n}\n.ant-slider-vertical .ant-slider-mark {\n top: 0;\n left: 12px;\n width: 18px;\n height: 100%;\n}\n.ant-slider-vertical .ant-slider-mark-text {\n left: 4px;\n white-space: nowrap;\n}\n.ant-slider-vertical .ant-slider-step {\n width: 4px;\n height: 100%;\n}\n.ant-slider-vertical .ant-slider-dot {\n top: auto;\n margin-left: -2px;\n}\n.ant-slider-tooltip .ant-tooltip-inner {\n min-width: unset;\n}\n.ant-slider-rtl.ant-slider-vertical .ant-slider-handle {\n margin-right: -5px;\n margin-left: 0;\n}\n.ant-slider-rtl.ant-slider-vertical .ant-slider-mark {\n right: 12px;\n left: auto;\n}\n.ant-slider-rtl.ant-slider-vertical .ant-slider-mark-text {\n right: 4px;\n left: auto;\n}\n.ant-slider-rtl.ant-slider-vertical .ant-slider-dot {\n right: 2px;\n left: auto;\n}\n.ant-slider-with-marks {\n margin-bottom: 28px;\n}\n.ant-slider-rail {\n position: absolute;\n width: 100%;\n height: 4px;\n background-color: #f5f5f5;\n border-radius: 2px;\n transition: background-color 0.3s;\n}\n.ant-slider-track {\n position: absolute;\n height: 4px;\n background-color: #91d5ff;\n border-radius: 2px;\n transition: background-color 0.3s;\n}\n.ant-slider-handle {\n position: absolute;\n width: 14px;\n height: 14px;\n margin-top: -5px;\n background-color: #fff;\n border: solid 2px #91d5ff;\n border-radius: 50%;\n box-shadow: 0;\n cursor: pointer;\n transition: border-color 0.3s, box-shadow 0.6s, transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);\n}\n.ant-slider-handle-dragging {\n z-index: 1;\n}\n.ant-slider-handle:focus {\n border-color: #46a6ff;\n outline: none;\n box-shadow: 0 0 0 5px rgba(24, 144, 255, 0.12);\n}\n.ant-slider-handle.ant-tooltip-open {\n border-color: #1890ff;\n}\n.ant-slider-handle::after {\n position: absolute;\n top: -6px;\n right: -6px;\n bottom: -6px;\n left: -6px;\n content: '';\n}\n.ant-slider:hover .ant-slider-rail {\n background-color: #e1e1e1;\n}\n.ant-slider:hover .ant-slider-track {\n background-color: #69c0ff;\n}\n.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open) {\n border-color: #69c0ff;\n}\n.ant-slider-mark {\n position: absolute;\n top: 14px;\n left: 0;\n width: 100%;\n font-size: 14px;\n}\n.ant-slider-mark-text {\n position: absolute;\n display: inline-block;\n color: rgba(0, 0, 0, 0.45);\n text-align: center;\n word-break: keep-all;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-slider-mark-text-active {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-slider-step {\n position: absolute;\n width: 100%;\n height: 4px;\n background: transparent;\n pointer-events: none;\n}\n.ant-slider-dot {\n position: absolute;\n top: -2px;\n width: 8px;\n height: 8px;\n background-color: #fff;\n border: 2px solid #f0f0f0;\n border-radius: 50%;\n cursor: pointer;\n}\n.ant-slider-dot-active {\n border-color: #8cc8ff;\n}\n.ant-slider-disabled {\n cursor: not-allowed;\n}\n.ant-slider-disabled .ant-slider-rail {\n background-color: #f5f5f5 !important;\n}\n.ant-slider-disabled .ant-slider-track {\n background-color: rgba(0, 0, 0, 0.25) !important;\n}\n.ant-slider-disabled .ant-slider-handle,\n.ant-slider-disabled .ant-slider-dot {\n background-color: #fff;\n border-color: rgba(0, 0, 0, 0.25) !important;\n box-shadow: none;\n cursor: not-allowed;\n}\n.ant-slider-disabled .ant-slider-mark-text,\n.ant-slider-disabled .ant-slider-dot {\n cursor: not-allowed !important;\n}\n.ant-slider-rtl {\n direction: rtl;\n}\n.ant-slider-rtl .ant-slider-mark {\n right: 0;\n left: auto;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-statistic {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-statistic-title {\n margin-bottom: 4px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-statistic-skeleton {\n padding-top: 16px;\n}\n.ant-statistic-content {\n color: rgba(0, 0, 0, 0.85);\n font-size: 24px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n}\n.ant-statistic-content-value {\n display: inline-block;\n direction: ltr;\n}\n.ant-statistic-content-prefix,\n.ant-statistic-content-suffix {\n display: inline-block;\n}\n.ant-statistic-content-prefix {\n margin-right: 4px;\n}\n.ant-statistic-content-suffix {\n margin-left: 4px;\n}\n.ant-statistic-rtl {\n direction: rtl;\n}\n.ant-statistic-rtl .ant-statistic-content-prefix {\n margin-right: 0;\n margin-left: 4px;\n}\n.ant-statistic-rtl .ant-statistic-content-suffix {\n margin-right: 4px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-steps {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: flex;\n width: 100%;\n font-size: 0;\n text-align: initial;\n}\n.ant-steps-item {\n position: relative;\n display: inline-block;\n flex: 1;\n overflow: hidden;\n vertical-align: top;\n}\n.ant-steps-item-container {\n outline: none;\n}\n.ant-steps-item:last-child {\n flex: none;\n}\n.ant-steps-item:last-child > .ant-steps-item-container > .ant-steps-item-tail,\n.ant-steps-item:last-child > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n display: none;\n}\n.ant-steps-item-icon,\n.ant-steps-item-content {\n display: inline-block;\n vertical-align: top;\n}\n.ant-steps-item-icon {\n width: 32px;\n height: 32px;\n margin: 0 8px 0 0;\n font-size: 16px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n line-height: 32px;\n text-align: center;\n border: 1px solid rgba(0, 0, 0, 0.25);\n border-radius: 32px;\n transition: background-color 0.3s, border-color 0.3s;\n}\n.ant-steps-item-icon .ant-steps-icon {\n position: relative;\n top: -0.5px;\n color: #1890ff;\n line-height: 1;\n}\n.ant-steps-item-tail {\n position: absolute;\n top: 12px;\n left: 0;\n width: 100%;\n padding: 0 10px;\n}\n.ant-steps-item-tail::after {\n display: inline-block;\n width: 100%;\n height: 1px;\n background: #f0f0f0;\n border-radius: 1px;\n transition: background 0.3s;\n content: '';\n}\n.ant-steps-item-title {\n position: relative;\n display: inline-block;\n padding-right: 16px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n line-height: 32px;\n}\n.ant-steps-item-title::after {\n position: absolute;\n top: 16px;\n left: 100%;\n display: block;\n width: 9999px;\n height: 1px;\n background: #f0f0f0;\n content: '';\n}\n.ant-steps-item-subtitle {\n display: inline;\n margin-left: 8px;\n color: rgba(0, 0, 0, 0.45);\n font-weight: normal;\n font-size: 14px;\n}\n.ant-steps-item-description {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-steps-item-wait .ant-steps-item-icon {\n background-color: #fff;\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-steps-item-wait .ant-steps-item-icon > .ant-steps-icon {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-steps-item-wait .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {\n background: rgba(0, 0, 0, 0.25);\n}\n.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-tail::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item-process .ant-steps-item-icon {\n background-color: #fff;\n border-color: #1890ff;\n}\n.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon {\n color: #1890ff;\n}\n.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {\n background: #1890ff;\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-tail::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-icon {\n background: #1890ff;\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-icon .ant-steps-icon {\n color: #fff;\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-title {\n font-weight: 500;\n}\n.ant-steps-item-finish .ant-steps-item-icon {\n background-color: #fff;\n border-color: #1890ff;\n}\n.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon {\n color: #1890ff;\n}\n.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {\n background: #1890ff;\n}\n.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n background-color: #1890ff;\n}\n.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-tail::after {\n background-color: #1890ff;\n}\n.ant-steps-item-error .ant-steps-item-icon {\n background-color: #fff;\n border-color: #ff4d4f;\n}\n.ant-steps-item-error .ant-steps-item-icon > .ant-steps-icon {\n color: #ff4d4f;\n}\n.ant-steps-item-error .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {\n background: #ff4d4f;\n}\n.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {\n color: #ff4d4f;\n}\n.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {\n color: #ff4d4f;\n}\n.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-tail::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item.ant-steps-next-error .ant-steps-item-title::after {\n background: #ff4d4f;\n}\n.ant-steps-item-disabled {\n cursor: not-allowed;\n}\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] {\n cursor: pointer;\n}\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-title,\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-subtitle,\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-description,\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-icon .ant-steps-icon {\n transition: color 0.3s;\n}\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button']:hover .ant-steps-item-title,\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button']:hover .ant-steps-item-subtitle,\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button']:hover .ant-steps-item-description {\n color: #1890ff;\n}\n.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process) > .ant-steps-item-container[role='button']:hover .ant-steps-item-icon {\n border-color: #1890ff;\n}\n.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process) > .ant-steps-item-container[role='button']:hover .ant-steps-item-icon .ant-steps-icon {\n color: #1890ff;\n}\n.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {\n padding-left: 16px;\n white-space: nowrap;\n}\n.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child {\n padding-left: 0;\n}\n.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title {\n padding-right: 0;\n}\n.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-tail {\n display: none;\n}\n.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description {\n max-width: 140px;\n white-space: normal;\n}\n.ant-steps-item-custom > .ant-steps-item-container > .ant-steps-item-icon {\n height: auto;\n background: none;\n border: 0;\n}\n.ant-steps-item-custom > .ant-steps-item-container > .ant-steps-item-icon > .ant-steps-icon {\n top: 0px;\n left: 0.5px;\n width: 32px;\n height: 32px;\n font-size: 24px;\n line-height: 32px;\n}\n.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon {\n color: #1890ff;\n}\n.ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon {\n width: auto;\n background: none;\n}\n.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {\n padding-left: 12px;\n}\n.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child {\n padding-left: 0;\n}\n.ant-steps-small .ant-steps-item-icon {\n width: 24px;\n height: 24px;\n margin: 0 8px 0 0;\n font-size: 12px;\n line-height: 24px;\n text-align: center;\n border-radius: 24px;\n}\n.ant-steps-small .ant-steps-item-title {\n padding-right: 12px;\n font-size: 14px;\n line-height: 24px;\n}\n.ant-steps-small .ant-steps-item-title::after {\n top: 12px;\n}\n.ant-steps-small .ant-steps-item-description {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-steps-small .ant-steps-item-tail {\n top: 8px;\n}\n.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon {\n width: inherit;\n height: inherit;\n line-height: inherit;\n background: none;\n border: 0;\n border-radius: 0;\n}\n.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon > .ant-steps-icon {\n font-size: 24px;\n line-height: 24px;\n transform: none;\n}\n.ant-steps-vertical {\n display: flex;\n flex-direction: column;\n}\n.ant-steps-vertical > .ant-steps-item {\n display: block;\n flex: 1 0 auto;\n padding-left: 0;\n overflow: visible;\n}\n.ant-steps-vertical > .ant-steps-item .ant-steps-item-icon {\n float: left;\n margin-right: 16px;\n}\n.ant-steps-vertical > .ant-steps-item .ant-steps-item-content {\n display: block;\n min-height: 48px;\n overflow: hidden;\n}\n.ant-steps-vertical > .ant-steps-item .ant-steps-item-title {\n line-height: 32px;\n}\n.ant-steps-vertical > .ant-steps-item .ant-steps-item-description {\n padding-bottom: 12px;\n}\n.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n position: absolute;\n top: 0;\n left: 15px;\n width: 1px;\n height: 100%;\n padding: 38px 0 6px;\n}\n.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail::after {\n width: 1px;\n height: 100%;\n}\n.ant-steps-vertical > .ant-steps-item:not(:last-child) > .ant-steps-item-container > .ant-steps-item-tail {\n display: block;\n}\n.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n display: none;\n}\n.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail {\n position: absolute;\n top: 0;\n left: 11px;\n padding: 30px 0 6px;\n}\n.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title {\n line-height: 24px;\n}\n.ant-steps-label-vertical .ant-steps-item {\n overflow: visible;\n}\n.ant-steps-label-vertical .ant-steps-item-tail {\n margin-left: 58px;\n padding: 3.5px 24px;\n}\n.ant-steps-label-vertical .ant-steps-item-content {\n display: block;\n width: 116px;\n margin-top: 8px;\n text-align: center;\n}\n.ant-steps-label-vertical .ant-steps-item-icon {\n display: inline-block;\n margin-left: 42px;\n}\n.ant-steps-label-vertical .ant-steps-item-title {\n padding-right: 0;\n padding-left: 0;\n}\n.ant-steps-label-vertical .ant-steps-item-title::after {\n display: none;\n}\n.ant-steps-label-vertical .ant-steps-item-subtitle {\n display: block;\n margin-bottom: 4px;\n margin-left: 0;\n line-height: 1.5715;\n}\n.ant-steps-label-vertical.ant-steps-small:not(.ant-steps-dot) .ant-steps-item-icon {\n margin-left: 46px;\n}\n.ant-steps-dot .ant-steps-item-title,\n.ant-steps-dot.ant-steps-small .ant-steps-item-title {\n line-height: 1.5715;\n}\n.ant-steps-dot .ant-steps-item-tail,\n.ant-steps-dot.ant-steps-small .ant-steps-item-tail {\n top: 2px;\n width: 100%;\n margin: 0 0 0 70px;\n padding: 0;\n}\n.ant-steps-dot .ant-steps-item-tail::after,\n.ant-steps-dot.ant-steps-small .ant-steps-item-tail::after {\n width: calc(100% - 20px);\n height: 3px;\n margin-left: 12px;\n}\n.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,\n.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot {\n left: 2px;\n}\n.ant-steps-dot .ant-steps-item-icon,\n.ant-steps-dot.ant-steps-small .ant-steps-item-icon {\n width: 8px;\n height: 8px;\n margin-left: 67px;\n padding-right: 0;\n line-height: 8px;\n background: transparent;\n border: 0;\n}\n.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,\n.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot {\n position: relative;\n float: left;\n width: 100%;\n height: 100%;\n border-radius: 100px;\n transition: all 0.3s;\n /* expand hover area */\n}\n.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot::after,\n.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot::after {\n position: absolute;\n top: -12px;\n left: -26px;\n width: 60px;\n height: 32px;\n background: rgba(0, 0, 0, 0.001);\n content: '';\n}\n.ant-steps-dot .ant-steps-item-content,\n.ant-steps-dot.ant-steps-small .ant-steps-item-content {\n width: 140px;\n}\n.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,\n.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon {\n position: relative;\n top: -1px;\n width: 10px;\n height: 10px;\n line-height: 10px;\n background: none;\n}\n.ant-steps-dot .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot,\n.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot {\n left: 0;\n}\n.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon {\n margin-top: 13px;\n margin-left: 0;\n background: none;\n}\n.ant-steps-vertical.ant-steps-dot .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n top: 6.5px;\n left: -9px;\n margin: 0;\n padding: 22px 0 4px;\n}\n.ant-steps-vertical.ant-steps-dot.ant-steps-small .ant-steps-item-icon {\n margin-top: 10px;\n}\n.ant-steps-vertical.ant-steps-dot.ant-steps-small .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n top: 3.5px;\n}\n.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot {\n left: 0;\n}\n.ant-steps-vertical.ant-steps-dot .ant-steps-item-content {\n width: inherit;\n}\n.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-item-container .ant-steps-item-icon .ant-steps-icon-dot {\n top: -1px;\n left: -1px;\n}\n.ant-steps-navigation {\n padding-top: 12px;\n}\n.ant-steps-navigation.ant-steps-small .ant-steps-item-container {\n margin-left: -12px;\n}\n.ant-steps-navigation .ant-steps-item {\n overflow: visible;\n text-align: center;\n}\n.ant-steps-navigation .ant-steps-item-container {\n display: inline-block;\n height: 100%;\n margin-left: -16px;\n padding-bottom: 12px;\n text-align: left;\n transition: opacity 0.3s;\n}\n.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content {\n max-width: auto;\n}\n.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title {\n max-width: 100%;\n padding-right: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title::after {\n display: none;\n}\n.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role='button'] {\n cursor: pointer;\n}\n.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role='button']:hover {\n opacity: 0.85;\n}\n.ant-steps-navigation .ant-steps-item:last-child {\n flex: 1;\n}\n.ant-steps-navigation .ant-steps-item:last-child::after {\n display: none;\n}\n.ant-steps-navigation .ant-steps-item::after {\n position: absolute;\n top: 50%;\n left: 100%;\n display: inline-block;\n width: 12px;\n height: 12px;\n margin-top: -14px;\n margin-left: -2px;\n border: 1px solid rgba(0, 0, 0, 0.25);\n border-bottom: none;\n border-left: none;\n transform: rotate(45deg);\n content: '';\n}\n.ant-steps-navigation .ant-steps-item::before {\n position: absolute;\n bottom: 0;\n left: 50%;\n display: inline-block;\n width: 0;\n height: 2px;\n background-color: #1890ff;\n transition: width 0.3s, left 0.3s;\n transition-timing-function: ease-out;\n content: '';\n}\n.ant-steps-navigation .ant-steps-item.ant-steps-item-active::before {\n left: 0;\n width: 100%;\n}\n.ant-steps-navigation.ant-steps-vertical > .ant-steps-item {\n margin-right: 0 !important;\n}\n.ant-steps-navigation.ant-steps-vertical > .ant-steps-item::before {\n display: none;\n}\n.ant-steps-navigation.ant-steps-vertical > .ant-steps-item.ant-steps-item-active::before {\n top: 0;\n right: 0;\n left: unset;\n display: block;\n width: 3px;\n height: calc(100% - 24px);\n}\n.ant-steps-navigation.ant-steps-vertical > .ant-steps-item::after {\n position: relative;\n top: -2px;\n left: 50%;\n display: block;\n width: 8px;\n height: 8px;\n margin-bottom: 8px;\n text-align: center;\n transform: rotate(135deg);\n}\n.ant-steps-navigation.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n visibility: hidden;\n}\n.ant-steps-navigation.ant-steps-horizontal > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n visibility: hidden;\n}\n.ant-steps-rtl {\n direction: rtl;\n}\n.ant-steps.ant-steps-rtl .ant-steps-item-icon {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-steps-rtl .ant-steps-item-tail {\n right: 0;\n left: auto;\n}\n.ant-steps-rtl .ant-steps-item-title {\n padding-right: 0;\n padding-left: 16px;\n}\n.ant-steps-rtl .ant-steps-item-title .ant-steps-item-subtitle {\n float: left;\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-steps-rtl .ant-steps-item-title::after {\n right: 100%;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {\n padding-right: 16px;\n padding-left: 0;\n}\n.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child {\n padding-right: 0;\n}\n.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title {\n padding-left: 0;\n}\n.ant-steps-rtl .ant-steps-item-custom .ant-steps-item-icon > .ant-steps-icon {\n right: 0.5px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-navigation.ant-steps-small .ant-steps-item-container {\n margin-right: -12px;\n margin-left: 0;\n}\n.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container {\n margin-right: -16px;\n margin-left: 0;\n text-align: right;\n}\n.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title {\n padding-left: 0;\n}\n.ant-steps-rtl.ant-steps-navigation .ant-steps-item::after {\n right: 100%;\n left: auto;\n margin-right: -2px;\n margin-left: 0;\n transform: rotate(225deg);\n}\n.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {\n padding-right: 12px;\n padding-left: 0;\n}\n.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child {\n padding-right: 0;\n}\n.ant-steps-rtl.ant-steps-small .ant-steps-item-title {\n padding-right: 0;\n padding-left: 12px;\n}\n.ant-steps-rtl.ant-steps-vertical > .ant-steps-item .ant-steps-item-icon {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-steps-rtl.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n right: 16px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail {\n right: 12px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-label-vertical .ant-steps-item-title {\n padding-left: 0;\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail {\n margin: 0 70px 0 0;\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail::after,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail::after {\n margin-right: 12px;\n margin-left: 0;\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot {\n right: 2px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon {\n margin-right: 67px;\n margin-left: 0;\n}\n.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,\n.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot {\n /* expand hover area */\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot {\n float: right;\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot::after,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot::after {\n right: -26px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon {\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n right: -9px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot {\n right: 0;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-icon-dot {\n right: -2px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-with-progress.ant-steps-vertical > .ant-steps-item {\n padding-right: 4px;\n}\n.ant-steps-rtl.ant-steps-with-progress.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n right: 19px;\n}\n.ant-steps-rtl.ant-steps-with-progress.ant-steps-small.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n right: 15px;\n}\n.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child {\n padding-right: 4px;\n padding-left: 0;\n}\n.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child.ant-steps-item-active {\n padding-right: 4px;\n}\n.ant-steps-with-progress .ant-steps-item {\n padding-top: 4px;\n}\n.ant-steps-with-progress .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n top: 4px;\n left: 19px;\n}\n.ant-steps-with-progress.ant-steps-horizontal .ant-steps-item:first-child,\n.ant-steps-with-progress.ant-steps-small.ant-steps-horizontal .ant-steps-item:first-child {\n padding-bottom: 4px;\n padding-left: 4px;\n}\n.ant-steps-with-progress.ant-steps-small > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n left: 15px;\n}\n.ant-steps-with-progress.ant-steps-vertical .ant-steps-item {\n padding-left: 4px;\n}\n.ant-steps-with-progress.ant-steps-label-vertical .ant-steps-item .ant-steps-item-tail {\n top: 14px !important;\n}\n.ant-steps-with-progress .ant-steps-item-icon {\n position: relative;\n}\n.ant-steps-with-progress .ant-steps-item-icon .ant-progress {\n position: absolute;\n top: -5px;\n right: -5px;\n bottom: -5px;\n left: -5px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-switch {\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: 44px;\n height: 22px;\n line-height: 22px;\n vertical-align: middle;\n background-color: rgba(0, 0, 0, 0.25);\n border: 0;\n border-radius: 100px;\n cursor: pointer;\n transition: all 0.2s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-switch:focus {\n outline: 0;\n box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n}\n.ant-switch-checked:focus {\n box-shadow: 0 0 0 2px #e6f7ff;\n}\n.ant-switch:focus:hover {\n box-shadow: none;\n}\n.ant-switch-checked {\n background-color: #1890ff;\n}\n.ant-switch-loading,\n.ant-switch-disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n.ant-switch-loading *,\n.ant-switch-disabled * {\n box-shadow: none;\n cursor: not-allowed;\n}\n.ant-switch-inner {\n display: block;\n margin: 0 7px 0 25px;\n color: #fff;\n font-size: 12px;\n transition: margin 0.2s;\n}\n.ant-switch-checked .ant-switch-inner {\n margin: 0 25px 0 7px;\n}\n.ant-switch-handle {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 18px;\n height: 18px;\n transition: all 0.2s ease-in-out;\n}\n.ant-switch-handle::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #fff;\n border-radius: 9px;\n box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);\n transition: all 0.2s ease-in-out;\n content: '';\n}\n.ant-switch-checked .ant-switch-handle {\n left: calc(100% - 18px - 2px);\n}\n.ant-switch:not(.ant-switch-disabled):active .ant-switch-handle::before {\n right: -30%;\n left: 0;\n}\n.ant-switch:not(.ant-switch-disabled):active.ant-switch-checked .ant-switch-handle::before {\n right: 0;\n left: -30%;\n}\n.ant-switch-loading-icon.anticon {\n position: relative;\n top: 2px;\n color: rgba(0, 0, 0, 0.65);\n vertical-align: top;\n}\n.ant-switch-checked .ant-switch-loading-icon {\n color: #1890ff;\n}\n.ant-switch-small {\n min-width: 28px;\n height: 16px;\n line-height: 16px;\n}\n.ant-switch-small .ant-switch-inner {\n margin: 0 5px 0 18px;\n font-size: 12px;\n}\n.ant-switch-small .ant-switch-handle {\n width: 12px;\n height: 12px;\n}\n.ant-switch-small .ant-switch-loading-icon {\n top: 1.5px;\n font-size: 9px;\n}\n.ant-switch-small.ant-switch-checked .ant-switch-inner {\n margin: 0 18px 0 5px;\n}\n.ant-switch-small.ant-switch-checked .ant-switch-handle {\n left: calc(100% - 12px - 2px);\n}\n.ant-switch-rtl {\n direction: rtl;\n}\n.ant-switch-rtl .ant-switch-inner {\n margin: 0 25px 0 7px;\n}\n.ant-switch-rtl .ant-switch-handle {\n right: 2px;\n left: auto;\n}\n.ant-switch-rtl:not(.ant-switch-rtl-disabled):active .ant-switch-handle::before {\n right: 0;\n left: -30%;\n}\n.ant-switch-rtl:not(.ant-switch-rtl-disabled):active.ant-switch-checked .ant-switch-handle::before {\n right: -30%;\n left: 0;\n}\n.ant-switch-rtl.ant-switch-checked .ant-switch-inner {\n margin: 0 7px 0 25px;\n}\n.ant-switch-rtl.ant-switch-checked .ant-switch-handle {\n right: calc(100% - 18px - 2px);\n}\n.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-handle {\n right: calc(100% - 12px - 2px);\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-table.ant-table-middle {\n font-size: 14px;\n}\n.ant-table.ant-table-middle .ant-table-title,\n.ant-table.ant-table-middle .ant-table-footer,\n.ant-table.ant-table-middle .ant-table-thead > tr > th,\n.ant-table.ant-table-middle .ant-table-tbody > tr > td,\n.ant-table.ant-table-middle tfoot > tr > th,\n.ant-table.ant-table-middle tfoot > tr > td {\n padding: 12px 8px;\n}\n.ant-table.ant-table-middle .ant-table-filter-trigger {\n margin-right: -4px;\n}\n.ant-table.ant-table-middle .ant-table-expanded-row-fixed {\n margin: -12px -8px;\n}\n.ant-table.ant-table-middle .ant-table-tbody .ant-table-wrapper:only-child .ant-table {\n margin: -12px -8px -12px 40px;\n}\n.ant-table.ant-table-middle .ant-table-selection-column {\n padding-inline-start: 2px;\n}\n.ant-table.ant-table-small {\n font-size: 14px;\n}\n.ant-table.ant-table-small .ant-table-title,\n.ant-table.ant-table-small .ant-table-footer,\n.ant-table.ant-table-small .ant-table-thead > tr > th,\n.ant-table.ant-table-small .ant-table-tbody > tr > td,\n.ant-table.ant-table-small tfoot > tr > th,\n.ant-table.ant-table-small tfoot > tr > td {\n padding: 8px 8px;\n}\n.ant-table.ant-table-small .ant-table-filter-trigger {\n margin-right: -4px;\n}\n.ant-table.ant-table-small .ant-table-expanded-row-fixed {\n margin: -8px -8px;\n}\n.ant-table.ant-table-small .ant-table-tbody .ant-table-wrapper:only-child .ant-table {\n margin: -8px -8px -8px 40px;\n}\n.ant-table.ant-table-small .ant-table-selection-column {\n padding-inline-start: 2px;\n}\n.ant-table.ant-table-bordered > .ant-table-title {\n border: 1px solid #f0f0f0;\n border-bottom: 0;\n}\n.ant-table.ant-table-bordered > .ant-table-container {\n border-left: 1px solid #f0f0f0;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > thead > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tbody > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tfoot > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tfoot > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tfoot > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tfoot > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tfoot > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tfoot > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tfoot > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tfoot > tr > td {\n border-right: 1px solid #f0f0f0;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr:not(:last-child) > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr:not(:last-child) > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr:not(:last-child) > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > thead > tr:not(:last-child) > th {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > th::before,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr > th::before,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr > th::before,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > thead > tr > th::before {\n background-color: transparent !important;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > thead > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tbody > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tfoot > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tfoot > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tfoot > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tfoot > tr > .ant-table-cell-fix-right-first::after {\n border-right: 1px solid #f0f0f0;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > td > .ant-table-expanded-row-fixed,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tbody > tr > td > .ant-table-expanded-row-fixed {\n margin: -16px -17px;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > td > .ant-table-expanded-row-fixed::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tbody > tr > td > .ant-table-expanded-row-fixed::after {\n position: absolute;\n top: 0;\n right: 1px;\n bottom: 0;\n border-right: 1px solid #f0f0f0;\n content: '';\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #f0f0f0;\n}\n.ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-expanded-row > td,\n.ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-placeholder > td {\n border-right: 0;\n}\n.ant-table.ant-table-bordered.ant-table-middle > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed,\n.ant-table.ant-table-bordered.ant-table-middle > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed {\n margin: -12px -9px;\n}\n.ant-table.ant-table-bordered.ant-table-small > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed,\n.ant-table.ant-table-bordered.ant-table-small > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed {\n margin: -8px -9px;\n}\n.ant-table.ant-table-bordered > .ant-table-footer {\n border: 1px solid #f0f0f0;\n border-top: 0;\n}\n.ant-table-cell .ant-table-container:first-child {\n border-top: 0;\n}\n.ant-table-cell-scrollbar:not([rowspan]) {\n box-shadow: 0 1px 0 1px #fafafa;\n}\n.ant-table-wrapper {\n clear: both;\n max-width: 100%;\n}\n.ant-table-wrapper::before {\n display: table;\n content: '';\n}\n.ant-table-wrapper::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-table {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n font-size: 14px;\n background: #fff;\n border-radius: 2px;\n}\n.ant-table table {\n width: 100%;\n text-align: left;\n border-radius: 2px 2px 0 0;\n border-collapse: separate;\n border-spacing: 0;\n}\n.ant-table-thead > tr > th,\n.ant-table-tbody > tr > td,\n.ant-table tfoot > tr > th,\n.ant-table tfoot > tr > td {\n position: relative;\n padding: 16px 16px;\n overflow-wrap: break-word;\n}\n.ant-table-cell-ellipsis {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n.ant-table-cell-ellipsis.ant-table-cell-fix-left-last,\n.ant-table-cell-ellipsis.ant-table-cell-fix-right-first {\n overflow: visible;\n}\n.ant-table-cell-ellipsis.ant-table-cell-fix-left-last .ant-table-cell-content,\n.ant-table-cell-ellipsis.ant-table-cell-fix-right-first .ant-table-cell-content {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ant-table-cell-ellipsis .ant-table-column-title {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n.ant-table-title {\n padding: 16px 16px;\n}\n.ant-table-footer {\n padding: 16px 16px;\n color: rgba(0, 0, 0, 0.85);\n background: #fafafa;\n}\n.ant-table-thead > tr > th {\n position: relative;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n text-align: left;\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n transition: background 0.3s ease;\n}\n.ant-table-thead > tr > th[colspan]:not([colspan='1']) {\n text-align: center;\n}\n.ant-table-thead > tr > th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before {\n position: absolute;\n top: 50%;\n right: 0;\n width: 1px;\n height: 1.6em;\n background-color: rgba(0, 0, 0, 0.06);\n transform: translateY(-50%);\n transition: background-color 0.3s;\n content: '';\n}\n.ant-table-thead > tr:not(:last-child) > th[colspan] {\n border-bottom: 0;\n}\n.ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n transition: background 0.3s;\n}\n.ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table,\n.ant-table-tbody > tr > td > .ant-table-expanded-row-fixed > .ant-table-wrapper:only-child .ant-table {\n margin: -16px -16px -16px 32px;\n}\n.ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td,\n.ant-table-tbody > tr > td > .ant-table-expanded-row-fixed > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td {\n border-bottom: 0;\n}\n.ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:first-child,\n.ant-table-tbody > tr > td > .ant-table-expanded-row-fixed > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:first-child,\n.ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:last-child,\n.ant-table-tbody > tr > td > .ant-table-expanded-row-fixed > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:last-child {\n border-radius: 0;\n}\n.ant-table-tbody > tr.ant-table-row:hover > td,\n.ant-table-tbody > tr > td.ant-table-cell-row-hover {\n background: #fafafa;\n}\n.ant-table-tbody > tr.ant-table-row-selected > td {\n background: #e6f7ff;\n border-color: rgba(0, 0, 0, 0.03);\n}\n.ant-table-tbody > tr.ant-table-row-selected:hover > td {\n background: #dcf4ff;\n}\n.ant-table-summary {\n position: relative;\n z-index: 2;\n background: #fff;\n}\ndiv.ant-table-summary {\n box-shadow: 0 -1px 0 #f0f0f0;\n}\n.ant-table-summary > tr > th,\n.ant-table-summary > tr > td {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-table-pagination.ant-pagination {\n margin: 16px 0;\n}\n.ant-table-pagination {\n display: flex;\n flex-wrap: wrap;\n row-gap: 8px;\n}\n.ant-table-pagination > * {\n flex: none;\n}\n.ant-table-pagination-left {\n justify-content: flex-start;\n}\n.ant-table-pagination-center {\n justify-content: center;\n}\n.ant-table-pagination-right {\n justify-content: flex-end;\n}\n.ant-table-thead th.ant-table-column-has-sorters {\n outline: none;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-table-thead th.ant-table-column-has-sorters:hover {\n background: rgba(0, 0, 0, 0.04);\n}\n.ant-table-thead th.ant-table-column-has-sorters:hover::before {\n background-color: transparent !important;\n}\n.ant-table-thead th.ant-table-column-has-sorters:focus-visible {\n color: #1890ff;\n}\n.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-left:hover,\n.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-right:hover {\n background: #f5f5f5;\n}\n.ant-table-thead th.ant-table-column-sort {\n background: #f5f5f5;\n}\n.ant-table-thead th.ant-table-column-sort::before {\n background-color: transparent !important;\n}\ntd.ant-table-column-sort {\n background: #fafafa;\n}\n.ant-table-column-title {\n position: relative;\n z-index: 1;\n flex: 1;\n}\n.ant-table-column-sorters {\n display: flex;\n flex: auto;\n align-items: center;\n justify-content: space-between;\n}\n.ant-table-column-sorters::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n content: '';\n}\n.ant-table-column-sorter {\n margin-left: 4px;\n color: #bfbfbf;\n font-size: 0;\n transition: color 0.3s;\n}\n.ant-table-column-sorter-inner {\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n}\n.ant-table-column-sorter-up,\n.ant-table-column-sorter-down {\n font-size: 11px;\n}\n.ant-table-column-sorter-up.active,\n.ant-table-column-sorter-down.active {\n color: #1890ff;\n}\n.ant-table-column-sorter-up + .ant-table-column-sorter-down {\n margin-top: -0.3em;\n}\n.ant-table-column-sorters:hover .ant-table-column-sorter {\n color: #a6a6a6;\n}\n.ant-table-filter-column {\n display: flex;\n justify-content: space-between;\n}\n.ant-table-filter-trigger {\n position: relative;\n display: flex;\n align-items: center;\n margin: -4px -8px -4px 4px;\n padding: 0 4px;\n color: #bfbfbf;\n font-size: 12px;\n border-radius: 2px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-table-filter-trigger:hover {\n color: rgba(0, 0, 0, 0.45);\n background: rgba(0, 0, 0, 0.04);\n}\n.ant-table-filter-trigger.active {\n color: #1890ff;\n}\n.ant-table-filter-dropdown {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n min-width: 120px;\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-table-filter-dropdown .ant-dropdown-menu {\n max-height: 264px;\n overflow-x: hidden;\n border: 0;\n box-shadow: none;\n}\n.ant-table-filter-dropdown .ant-dropdown-menu:empty::after {\n display: block;\n padding: 8px 0;\n color: rgba(0, 0, 0, 0.25);\n font-size: 12px;\n text-align: center;\n content: 'Not Found';\n}\n.ant-table-filter-dropdown-tree {\n padding: 8px 8px 0;\n}\n.ant-table-filter-dropdown-tree .ant-tree-treenode .ant-tree-node-content-wrapper:hover {\n background-color: #f5f5f5;\n}\n.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper,\n.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper:hover {\n background-color: #bae7ff;\n}\n.ant-table-filter-dropdown-search {\n padding: 8px;\n border-bottom: 1px #f0f0f0 solid;\n}\n.ant-table-filter-dropdown-search-input input {\n min-width: 140px;\n}\n.ant-table-filter-dropdown-search-input .anticon {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-table-filter-dropdown-checkall {\n width: 100%;\n margin-bottom: 4px;\n margin-left: 4px;\n}\n.ant-table-filter-dropdown-submenu > ul {\n max-height: calc(100vh - 130px);\n overflow-x: hidden;\n overflow-y: auto;\n}\n.ant-table-filter-dropdown .ant-checkbox-wrapper + span,\n.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper + span {\n padding-left: 8px;\n}\n.ant-table-filter-dropdown-btns {\n display: flex;\n justify-content: space-between;\n padding: 7px 8px;\n overflow: hidden;\n background-color: inherit;\n border-top: 1px solid #f0f0f0;\n}\n.ant-table-selection-col {\n width: 32px;\n}\n.ant-table-bordered .ant-table-selection-col {\n width: 50px;\n}\ntable tr th.ant-table-selection-column,\ntable tr td.ant-table-selection-column {\n padding-right: 8px;\n padding-left: 8px;\n text-align: center;\n}\ntable tr th.ant-table-selection-column .ant-radio-wrapper,\ntable tr td.ant-table-selection-column .ant-radio-wrapper {\n margin-right: 0;\n}\ntable tr th.ant-table-selection-column.ant-table-cell-fix-left {\n z-index: 3;\n}\ntable tr th.ant-table-selection-column::after {\n background-color: transparent !important;\n}\n.ant-table-selection {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n}\n.ant-table-selection-extra {\n position: absolute;\n top: 0;\n z-index: 1;\n cursor: pointer;\n transition: all 0.3s;\n margin-inline-start: 100%;\n padding-inline-start: 4px;\n}\n.ant-table-selection-extra .anticon {\n color: #bfbfbf;\n font-size: 10px;\n}\n.ant-table-selection-extra .anticon:hover {\n color: #a6a6a6;\n}\n.ant-table-expand-icon-col {\n width: 48px;\n}\n.ant-table-row-expand-icon-cell {\n text-align: center;\n}\n.ant-table-row-expand-icon-cell .ant-table-row-expand-icon {\n display: inline-flex;\n float: none;\n vertical-align: sub;\n}\n.ant-table-row-indent {\n float: left;\n height: 1px;\n}\n.ant-table-row-expand-icon {\n color: #1890ff;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n position: relative;\n float: left;\n box-sizing: border-box;\n width: 17px;\n height: 17px;\n padding: 0;\n color: inherit;\n line-height: 17px;\n background: #fff;\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n transform: scale(0.94117647);\n transition: all 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-table-row-expand-icon:focus-visible,\n.ant-table-row-expand-icon:hover {\n color: #40a9ff;\n}\n.ant-table-row-expand-icon:active {\n color: #096dd9;\n}\n.ant-table-row-expand-icon:focus,\n.ant-table-row-expand-icon:hover,\n.ant-table-row-expand-icon:active {\n border-color: currentcolor;\n}\n.ant-table-row-expand-icon::before,\n.ant-table-row-expand-icon::after {\n position: absolute;\n background: currentcolor;\n transition: transform 0.3s ease-out;\n content: '';\n}\n.ant-table-row-expand-icon::before {\n top: 7px;\n right: 3px;\n left: 3px;\n height: 1px;\n}\n.ant-table-row-expand-icon::after {\n top: 3px;\n bottom: 3px;\n left: 7px;\n width: 1px;\n transform: rotate(90deg);\n}\n.ant-table-row-expand-icon-collapsed::before {\n transform: rotate(-180deg);\n}\n.ant-table-row-expand-icon-collapsed::after {\n transform: rotate(0deg);\n}\n.ant-table-row-expand-icon-spaced {\n background: transparent;\n border: 0;\n visibility: hidden;\n}\n.ant-table-row-expand-icon-spaced::before,\n.ant-table-row-expand-icon-spaced::after {\n display: none;\n content: none;\n}\n.ant-table-row-indent + .ant-table-row-expand-icon {\n margin-top: 2.5005px;\n margin-right: 8px;\n}\ntr.ant-table-expanded-row > td,\ntr.ant-table-expanded-row:hover > td {\n background: #fbfbfb;\n}\ntr.ant-table-expanded-row .ant-descriptions-view {\n display: flex;\n}\ntr.ant-table-expanded-row .ant-descriptions-view table {\n flex: auto;\n width: auto;\n}\n.ant-table .ant-table-expanded-row-fixed {\n position: relative;\n margin: -16px -16px;\n padding: 16px 16px;\n}\n.ant-table-tbody > tr.ant-table-placeholder {\n text-align: center;\n}\n.ant-table-empty .ant-table-tbody > tr.ant-table-placeholder {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-table-tbody > tr.ant-table-placeholder:hover > td {\n background: #fff;\n}\n.ant-table-cell-fix-left,\n.ant-table-cell-fix-right {\n position: sticky !important;\n z-index: 2;\n background: #fff;\n}\n.ant-table-cell-fix-left-first::after,\n.ant-table-cell-fix-left-last::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n width: 30px;\n transform: translateX(100%);\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-table-cell-fix-left-all::after {\n display: none;\n}\n.ant-table-cell-fix-right-first::after,\n.ant-table-cell-fix-right-last::after {\n position: absolute;\n top: 0;\n bottom: -1px;\n left: 0;\n width: 30px;\n transform: translateX(-100%);\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-table .ant-table-container::before,\n.ant-table .ant-table-container::after {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: calc(calc(2 + 1) + 1);\n width: 30px;\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-table .ant-table-container::before {\n left: 0;\n}\n.ant-table .ant-table-container::after {\n right: 0;\n}\n.ant-table-ping-left:not(.ant-table-has-fix-left) > .ant-table-container {\n position: relative;\n}\n.ant-table-ping-left:not(.ant-table-has-fix-left) > .ant-table-container::before {\n box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);\n}\n.ant-table-ping-left .ant-table-cell-fix-left-first::after,\n.ant-table-ping-left .ant-table-cell-fix-left-last::after {\n box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);\n}\n.ant-table-ping-left .ant-table-cell-fix-left-last::before {\n background-color: transparent !important;\n}\n.ant-table-ping-right:not(.ant-table-has-fix-right) > .ant-table-container {\n position: relative;\n}\n.ant-table-ping-right:not(.ant-table-has-fix-right) > .ant-table-container::after {\n box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);\n}\n.ant-table-ping-right .ant-table-cell-fix-right-first::after,\n.ant-table-ping-right .ant-table-cell-fix-right-last::after {\n box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);\n}\n.ant-table-sticky-holder {\n position: sticky;\n z-index: calc(2 + 1);\n background: #fff;\n}\n.ant-table-sticky-scroll {\n position: sticky;\n bottom: 0;\n z-index: calc(2 + 1);\n display: flex;\n align-items: center;\n background: #ffffff;\n border-top: 1px solid #f0f0f0;\n opacity: 0.6;\n}\n.ant-table-sticky-scroll:hover {\n transform-origin: center bottom;\n}\n.ant-table-sticky-scroll-bar {\n height: 8px;\n background-color: rgba(0, 0, 0, 0.35);\n border-radius: 4px;\n}\n.ant-table-sticky-scroll-bar:hover {\n background-color: rgba(0, 0, 0, 0.8);\n}\n.ant-table-sticky-scroll-bar-active {\n background-color: rgba(0, 0, 0, 0.8);\n}\n@media all and (-ms-high-contrast: none) {\n .ant-table-ping-left .ant-table-cell-fix-left-last::after {\n box-shadow: none !important;\n }\n .ant-table-ping-right .ant-table-cell-fix-right-first::after {\n box-shadow: none !important;\n }\n}\n.ant-table {\n /* title + table */\n /* table */\n /* table + footer */\n}\n.ant-table-title {\n border-radius: 2px 2px 0 0;\n}\n.ant-table-title + .ant-table-container {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.ant-table-title + .ant-table-container table {\n border-radius: 0;\n}\n.ant-table-title + .ant-table-container table > thead > tr:first-child th:first-child {\n border-radius: 0;\n}\n.ant-table-title + .ant-table-container table > thead > tr:first-child th:last-child {\n border-radius: 0;\n}\n.ant-table-container {\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n}\n.ant-table-container table > thead > tr:first-child th:first-child {\n border-top-left-radius: 2px;\n}\n.ant-table-container table > thead > tr:first-child th:last-child {\n border-top-right-radius: 2px;\n}\n.ant-table-footer {\n border-radius: 0 0 2px 2px;\n}\n.ant-table-wrapper-rtl {\n direction: rtl;\n}\n.ant-table-rtl {\n direction: rtl;\n}\n.ant-table-wrapper-rtl .ant-table table {\n text-align: right;\n}\n.ant-table-wrapper-rtl .ant-table-thead > tr > th[colspan]:not([colspan='1']) {\n text-align: center;\n}\n.ant-table-wrapper-rtl .ant-table-thead > tr > th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before {\n right: auto;\n left: 0;\n}\n.ant-table-wrapper-rtl .ant-table-thead > tr > th {\n text-align: right;\n}\n.ant-table-tbody > tr .ant-table-wrapper:only-child .ant-table.ant-table-rtl {\n margin: -16px 33px -16px -16px;\n}\n.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-left {\n justify-content: flex-end;\n}\n.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-right {\n justify-content: flex-start;\n}\n.ant-table-wrapper-rtl .ant-table-column-sorter {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-table-wrapper-rtl .ant-table-filter-column-title {\n padding: 16px 16px 16px 2.3em;\n}\n.ant-table-rtl .ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column-title {\n padding: 0 0 0 2.3em;\n}\n.ant-table-wrapper-rtl .ant-table-filter-trigger {\n margin: -4px 4px -4px -8px;\n}\n.ant-dropdown-rtl .ant-table-filter-dropdown .ant-checkbox-wrapper + span,\n.ant-dropdown-rtl .ant-table-filter-dropdown-submenu .ant-checkbox-wrapper + span,\n.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown .ant-checkbox-wrapper + span,\n.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper + span {\n padding-right: 8px;\n padding-left: 0;\n}\n.ant-table-wrapper-rtl .ant-table-selection {\n text-align: center;\n}\n.ant-table-wrapper-rtl .ant-table-row-indent {\n float: right;\n}\n.ant-table-wrapper-rtl .ant-table-row-expand-icon {\n float: right;\n}\n.ant-table-wrapper-rtl .ant-table-row-indent + .ant-table-row-expand-icon {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-table-wrapper-rtl .ant-table-row-expand-icon::after {\n transform: rotate(-90deg);\n}\n.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed::before {\n transform: rotate(180deg);\n}\n.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed::after {\n transform: rotate(0deg);\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n@keyframes ant-tree-node-fx-do-not-use {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode {\n position: relative;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 4px;\n left: 0;\n transition: background-color 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode:hover::before {\n background: #f5f5f5;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode > * {\n z-index: 1;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-switcher {\n transition: color 0.3s;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper {\n border-radius: 0;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper:hover {\n background: transparent;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected {\n color: #fff;\n background: transparent;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover::before,\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected::before {\n background: #1890ff;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-switcher {\n color: #fff;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-node-content-wrapper {\n color: #fff;\n background: transparent;\n}\n.ant-tree-checkbox {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,\n.ant-tree-checkbox:hover .ant-tree-checkbox-inner,\n.ant-tree-checkbox-input:focus + .ant-tree-checkbox-inner {\n border-color: #1890ff;\n}\n.ant-tree-checkbox-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 2px;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n}\n.ant-tree-checkbox:hover::after,\n.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox::after {\n visibility: visible;\n}\n.ant-tree-checkbox-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n direction: ltr;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n border-collapse: separate;\n transition: all 0.3s;\n}\n.ant-tree-checkbox-inner::after {\n position: absolute;\n top: 50%;\n left: 21.5%;\n display: table;\n width: 5.71428571px;\n height: 9.14285714px;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\n content: ' ';\n}\n.ant-tree-checkbox-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after {\n position: absolute;\n display: table;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\n content: ' ';\n}\n.ant-tree-checkbox-checked .ant-tree-checkbox-inner {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.ant-tree-checkbox-disabled {\n cursor: not-allowed;\n}\n.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after {\n border-color: rgba(0, 0, 0, 0.25);\n animation-name: none;\n}\n.ant-tree-checkbox-disabled .ant-tree-checkbox-input {\n cursor: not-allowed;\n pointer-events: none;\n}\n.ant-tree-checkbox-disabled .ant-tree-checkbox-inner {\n background-color: #f5f5f5;\n border-color: #d9d9d9 !important;\n}\n.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after {\n border-color: #f5f5f5;\n border-collapse: separate;\n animation-name: none;\n}\n.ant-tree-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-tree-checkbox-disabled:hover::after,\n.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled::after {\n visibility: hidden;\n}\n.ant-tree-checkbox-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n}\n.ant-tree-checkbox-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-tree-checkbox-wrapper + .ant-tree-checkbox-wrapper {\n margin-left: 8px;\n}\n.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-in-form-item input[type='checkbox'] {\n width: 14px;\n height: 14px;\n}\n.ant-tree-checkbox + span {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-tree-checkbox-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-tree-checkbox-group-item {\n margin-right: 8px;\n}\n.ant-tree-checkbox-group-item:last-child {\n margin-right: 0;\n}\n.ant-tree-checkbox-group-item + .ant-tree-checkbox-group-item {\n margin-left: 0;\n}\n.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner {\n background-color: #fff;\n border-color: #d9d9d9;\n}\n.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner::after {\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n background-color: #1890ff;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n}\n.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after {\n background-color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-tree {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n background: #fff;\n border-radius: 2px;\n transition: background-color 0.3s;\n}\n.ant-tree-focused:not(:hover):not(.ant-tree-active-focused) {\n background: #e6f7ff;\n}\n.ant-tree-list-holder-inner {\n align-items: flex-start;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner {\n align-items: stretch;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-node-content-wrapper {\n flex: auto;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging {\n position: relative;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 4px;\n left: 0;\n border: 1px solid #1890ff;\n opacity: 0;\n animation: ant-tree-node-fx-do-not-use 0.3s;\n animation-play-state: running;\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n.ant-tree .ant-tree-treenode {\n display: flex;\n align-items: flex-start;\n padding: 0 0 4px 0;\n outline: none;\n}\n.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper:hover {\n background: transparent;\n}\n.ant-tree .ant-tree-treenode-active .ant-tree-node-content-wrapper {\n background: #f5f5f5;\n}\n.ant-tree .ant-tree-treenode:not(.ant-tree .ant-tree-treenode-disabled).filter-node .ant-tree-title {\n color: inherit;\n font-weight: 500;\n}\n.ant-tree .ant-tree-treenode-draggable .ant-tree-draggable-icon {\n width: 24px;\n line-height: 24px;\n text-align: center;\n visibility: visible;\n opacity: 0.2;\n transition: opacity 0.3s;\n}\n.ant-tree-treenode:hover .ant-tree .ant-tree-treenode-draggable .ant-tree-draggable-icon {\n opacity: 0.45;\n}\n.ant-tree .ant-tree-treenode-draggable.ant-tree-treenode-disabled .ant-tree-draggable-icon {\n visibility: hidden;\n}\n.ant-tree-indent {\n align-self: stretch;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-tree-indent-unit {\n display: inline-block;\n width: 24px;\n}\n.ant-tree-draggable-icon {\n visibility: hidden;\n}\n.ant-tree-switcher {\n position: relative;\n flex: none;\n align-self: stretch;\n width: 24px;\n margin: 0;\n line-height: 24px;\n text-align: center;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-tree-switcher .ant-tree-switcher-icon,\n.ant-tree-switcher .ant-select-tree-switcher-icon {\n display: inline-block;\n font-size: 10px;\n vertical-align: baseline;\n}\n.ant-tree-switcher .ant-tree-switcher-icon svg,\n.ant-tree-switcher .ant-select-tree-switcher-icon svg {\n transition: transform 0.3s;\n}\n.ant-tree-switcher-noop {\n cursor: default;\n}\n.ant-tree-switcher_close .ant-tree-switcher-icon svg {\n transform: rotate(-90deg);\n}\n.ant-tree-switcher-loading-icon {\n color: #1890ff;\n}\n.ant-tree-switcher-leaf-line {\n position: relative;\n z-index: 1;\n display: inline-block;\n width: 100%;\n height: 100%;\n}\n.ant-tree-switcher-leaf-line::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -4px;\n margin-left: -1px;\n border-right: 1px solid #d9d9d9;\n content: ' ';\n}\n.ant-tree-switcher-leaf-line::after {\n position: absolute;\n width: 10px;\n height: 14px;\n border-bottom: 1px solid #d9d9d9;\n content: ' ';\n}\n.ant-tree-checkbox {\n top: initial;\n margin: 4px 8px 0 0;\n}\n.ant-tree .ant-tree-node-content-wrapper {\n position: relative;\n z-index: auto;\n min-height: 24px;\n margin: 0;\n padding: 0 4px;\n color: inherit;\n line-height: 24px;\n background: transparent;\n border-radius: 2px;\n cursor: pointer;\n transition: all 0.3s, border 0s, line-height 0s, box-shadow 0s;\n}\n.ant-tree .ant-tree-node-content-wrapper:hover {\n background-color: #f5f5f5;\n}\n.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected {\n background-color: #bae7ff;\n}\n.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle {\n display: inline-block;\n width: 24px;\n height: 24px;\n line-height: 24px;\n text-align: center;\n vertical-align: top;\n}\n.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle:empty {\n display: none;\n}\n.ant-tree-unselectable .ant-tree-node-content-wrapper:hover {\n background-color: transparent;\n}\n.ant-tree-node-content-wrapper {\n line-height: 24px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-tree-node-content-wrapper .ant-tree-drop-indicator {\n position: absolute;\n z-index: 1;\n height: 2px;\n background-color: #1890ff;\n border-radius: 1px;\n pointer-events: none;\n}\n.ant-tree-node-content-wrapper .ant-tree-drop-indicator::after {\n position: absolute;\n top: -3px;\n left: -6px;\n width: 8px;\n height: 8px;\n background-color: transparent;\n border: 2px solid #1890ff;\n border-radius: 50%;\n content: '';\n}\n.ant-tree .ant-tree-treenode.drop-container > [draggable] {\n box-shadow: 0 0 0 2px #1890ff;\n}\n.ant-tree-show-line .ant-tree-indent-unit {\n position: relative;\n height: 100%;\n}\n.ant-tree-show-line .ant-tree-indent-unit::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -4px;\n border-right: 1px solid #d9d9d9;\n content: '';\n}\n.ant-tree-show-line .ant-tree-indent-unit-end::before {\n display: none;\n}\n.ant-tree-show-line .ant-tree-switcher {\n background: #fff;\n}\n.ant-tree-show-line .ant-tree-switcher-line-icon {\n vertical-align: -0.15em;\n}\n.ant-tree .ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line::before {\n top: auto !important;\n bottom: auto !important;\n height: 14px !important;\n}\n.ant-tree-rtl {\n direction: rtl;\n}\n.ant-tree-rtl .ant-tree-node-content-wrapper[draggable='true'] .ant-tree-drop-indicator::after {\n right: -6px;\n left: unset;\n}\n.ant-tree .ant-tree-treenode-rtl {\n direction: rtl;\n}\n.ant-tree-rtl .ant-tree-switcher_close .ant-tree-switcher-icon svg {\n transform: rotate(90deg);\n}\n.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit::before {\n right: auto;\n left: -13px;\n border-right: none;\n border-left: 1px solid #d9d9d9;\n}\n.ant-tree-rtl .ant-tree-checkbox {\n margin: 4px 0 0 8px;\n}\n.ant-tree-select-dropdown-rtl .ant-select-tree-checkbox {\n margin: 4px 0 0 8px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-timeline {\n box-sizing: border-box;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n font-feature-settings: 'tnum';\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-timeline-item {\n position: relative;\n margin: 0;\n padding-bottom: 20px;\n font-size: 14px;\n list-style: none;\n}\n.ant-timeline-item-tail {\n position: absolute;\n top: 10px;\n left: 4px;\n height: calc(100% - 10px);\n border-left: 2px solid #f0f0f0;\n}\n.ant-timeline-item-pending .ant-timeline-item-head {\n font-size: 12px;\n background-color: transparent;\n}\n.ant-timeline-item-pending .ant-timeline-item-tail {\n display: none;\n}\n.ant-timeline-item-head {\n position: absolute;\n width: 10px;\n height: 10px;\n background-color: #fff;\n border: 2px solid transparent;\n border-radius: 100px;\n}\n.ant-timeline-item-head-blue {\n color: #1890ff;\n border-color: #1890ff;\n}\n.ant-timeline-item-head-red {\n color: #ff4d4f;\n border-color: #ff4d4f;\n}\n.ant-timeline-item-head-green {\n color: #52c41a;\n border-color: #52c41a;\n}\n.ant-timeline-item-head-gray {\n color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-timeline-item-head-custom {\n position: absolute;\n top: 5.5px;\n left: 5px;\n width: auto;\n height: auto;\n margin-top: 0;\n padding: 3px 1px;\n line-height: 1;\n text-align: center;\n border: 0;\n border-radius: 0;\n transform: translate(-50%, -50%);\n}\n.ant-timeline-item-content {\n position: relative;\n top: -7.001px;\n margin: 0 0 0 26px;\n word-break: break-word;\n}\n.ant-timeline-item-last > .ant-timeline-item-tail {\n display: none;\n}\n.ant-timeline-item-last > .ant-timeline-item-content {\n min-height: 48px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-right .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-label .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head,\n.ant-timeline.ant-timeline-label .ant-timeline-item-head,\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {\n left: 50%;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head,\n.ant-timeline.ant-timeline-label .ant-timeline-item-head {\n margin-left: -4px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {\n margin-left: 1px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,\n.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content,\n.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content {\n left: calc(50% - 4px);\n width: calc(50% - 14px);\n text-align: left;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content,\n.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content {\n width: calc(50% - 12px);\n margin: 0;\n text-align: right;\n}\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom {\n left: calc(100% - 4px - 2px);\n}\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content {\n width: calc(100% - 18px);\n}\n.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail {\n display: block;\n height: calc(100% - 14px);\n border-left: 2px dotted #f0f0f0;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-last .ant-timeline-item-tail {\n display: none;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail {\n top: 15px;\n display: block;\n height: calc(100% - 15px);\n border-left: 2px dotted #f0f0f0;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-content {\n min-height: 48px;\n}\n.ant-timeline.ant-timeline-label .ant-timeline-item-label {\n position: absolute;\n top: -7.001px;\n width: calc(50% - 12px);\n text-align: right;\n}\n.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label {\n left: calc(50% + 14px);\n width: calc(50% - 14px);\n text-align: left;\n}\n.ant-timeline-rtl {\n direction: rtl;\n}\n.ant-timeline-rtl .ant-timeline-item-tail {\n right: 4px;\n left: auto;\n border-right: 2px solid #f0f0f0;\n border-left: none;\n}\n.ant-timeline-rtl .ant-timeline-item-head-custom {\n right: 5px;\n left: auto;\n transform: translate(50%, -50%);\n}\n.ant-timeline-rtl .ant-timeline-item-content {\n margin: 0 18px 0 0;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-tail,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-tail,\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {\n right: 50%;\n left: auto;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head {\n margin-right: -4px;\n margin-left: 0;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {\n margin-right: 1px;\n margin-left: 0;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content {\n right: calc(50% - 4px);\n left: auto;\n text-align: right;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content {\n text-align: left;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom {\n right: 0;\n left: auto;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content {\n width: 100%;\n margin-right: 18px;\n text-align: right;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail {\n border-right: 2px dotted #f0f0f0;\n border-left: none;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail {\n border-right: 2px dotted #f0f0f0;\n border-left: none;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-label {\n text-align: left;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label {\n right: calc(50% + 14px);\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-transfer-customize-list .ant-transfer-list {\n flex: 1 1 50%;\n width: auto;\n height: auto;\n min-height: 200px;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-small {\n border: 0;\n border-radius: 0;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-selection-column {\n width: 40px;\n min-width: 40px;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-small > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th {\n background: #fafafa;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-small > .ant-table-content .ant-table-row:last-child td {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-body {\n margin: 0;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-pagination.ant-pagination {\n margin: 16px 0 4px;\n}\n.ant-transfer-customize-list .ant-input[disabled] {\n background-color: transparent;\n}\n.ant-transfer-status-error .ant-transfer-list {\n border-color: #ff4d4f;\n}\n.ant-transfer-status-error .ant-transfer-list-search:not([disabled]) {\n border-color: #d9d9d9;\n}\n.ant-transfer-status-error .ant-transfer-list-search:not([disabled]):hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-transfer-status-error .ant-transfer-list-search:not([disabled]):focus {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-transfer-status-warning .ant-transfer-list {\n border-color: #faad14;\n}\n.ant-transfer-status-warning .ant-transfer-list-search:not([disabled]) {\n border-color: #d9d9d9;\n}\n.ant-transfer-status-warning .ant-transfer-list-search:not([disabled]):hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-transfer-status-warning .ant-transfer-list-search:not([disabled]):focus {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-transfer {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: flex;\n align-items: stretch;\n}\n.ant-transfer-disabled .ant-transfer-list {\n background: #f5f5f5;\n}\n.ant-transfer-list {\n display: flex;\n flex-direction: column;\n width: 180px;\n height: 200px;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n}\n.ant-transfer-list-with-pagination {\n width: 250px;\n height: auto;\n}\n.ant-transfer-list-search .anticon-search {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-transfer-list-header {\n display: flex;\n flex: none;\n align-items: center;\n height: 40px;\n padding: 8px 12px 9px;\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n}\n.ant-transfer-list-header > *:not(:last-child) {\n margin-right: 4px;\n}\n.ant-transfer-list-header > * {\n flex: none;\n}\n.ant-transfer-list-header-title {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-align: right;\n text-overflow: ellipsis;\n}\n.ant-transfer-list-header-dropdown {\n font-size: 10px;\n transform: translateY(10%);\n cursor: pointer;\n}\n.ant-transfer-list-header-dropdown[disabled] {\n cursor: not-allowed;\n}\n.ant-transfer-list-body {\n display: flex;\n flex: auto;\n flex-direction: column;\n overflow: hidden;\n font-size: 14px;\n}\n.ant-transfer-list-body-search-wrapper {\n position: relative;\n flex: none;\n padding: 12px;\n}\n.ant-transfer-list-content {\n flex: auto;\n margin: 0;\n padding: 0;\n overflow: auto;\n list-style: none;\n}\n.ant-transfer-list-content-item {\n display: flex;\n align-items: center;\n min-height: 32px;\n padding: 6px 12px;\n line-height: 20px;\n transition: all 0.3s;\n}\n.ant-transfer-list-content-item > *:not(:last-child) {\n margin-right: 8px;\n}\n.ant-transfer-list-content-item > * {\n flex: none;\n}\n.ant-transfer-list-content-item-text {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-transfer-list-content-item-remove {\n position: relative;\n color: #d9d9d9;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-transfer-list-content-item-remove:hover {\n color: #40a9ff;\n}\n.ant-transfer-list-content-item-remove::after {\n position: absolute;\n top: -6px;\n right: -50%;\n bottom: -6px;\n left: -50%;\n content: '';\n}\n.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover {\n background-color: #f5f5f5;\n cursor: pointer;\n}\n.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled).ant-transfer-list-content-item-checked:hover {\n background-color: #dcf4ff;\n}\n.ant-transfer-list-content-show-remove .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover {\n background: transparent;\n cursor: default;\n}\n.ant-transfer-list-content-item-checked {\n background-color: #e6f7ff;\n}\n.ant-transfer-list-content-item-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-transfer-list-pagination {\n padding: 8px 0;\n text-align: right;\n border-top: 1px solid #f0f0f0;\n}\n.ant-transfer-list-body-not-found {\n flex: none;\n width: 100%;\n margin: auto 0;\n color: rgba(0, 0, 0, 0.25);\n text-align: center;\n}\n.ant-transfer-list-footer {\n border-top: 1px solid #f0f0f0;\n}\n.ant-transfer-operation {\n display: flex;\n flex: none;\n flex-direction: column;\n align-self: center;\n margin: 0 8px;\n vertical-align: middle;\n}\n.ant-transfer-operation .ant-btn {\n display: block;\n}\n.ant-transfer-operation .ant-btn:first-child {\n margin-bottom: 4px;\n}\n.ant-transfer-operation .ant-btn .anticon {\n font-size: 12px;\n}\n.ant-transfer .ant-empty-image {\n max-height: -2px;\n}\n.ant-transfer-rtl {\n direction: rtl;\n}\n.ant-transfer-rtl .ant-transfer-list-search {\n padding-right: 8px;\n padding-left: 24px;\n}\n.ant-transfer-rtl .ant-transfer-list-search-action {\n right: auto;\n left: 12px;\n}\n.ant-transfer-rtl .ant-transfer-list-header > *:not(:last-child) {\n margin-right: 0;\n margin-left: 4px;\n}\n.ant-transfer-rtl .ant-transfer-list-header {\n right: 0;\n left: auto;\n}\n.ant-transfer-rtl .ant-transfer-list-header-title {\n text-align: left;\n}\n.ant-transfer-rtl .ant-transfer-list-content-item > *:not(:last-child) {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-transfer-rtl .ant-transfer-list-pagination {\n text-align: left;\n}\n.ant-transfer-rtl .ant-transfer-list-footer {\n right: 0;\n left: auto;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes ant-tree-node-fx-do-not-use {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-select-tree-checkbox {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,\n.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner,\n.ant-select-tree-checkbox-input:focus + .ant-select-tree-checkbox-inner {\n border-color: #1890ff;\n}\n.ant-select-tree-checkbox-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 2px;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n}\n.ant-select-tree-checkbox:hover::after,\n.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox::after {\n visibility: visible;\n}\n.ant-select-tree-checkbox-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n direction: ltr;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n border-collapse: separate;\n transition: all 0.3s;\n}\n.ant-select-tree-checkbox-inner::after {\n position: absolute;\n top: 50%;\n left: 21.5%;\n display: table;\n width: 5.71428571px;\n height: 9.14285714px;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\n content: ' ';\n}\n.ant-select-tree-checkbox-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after {\n position: absolute;\n display: table;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\n content: ' ';\n}\n.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.ant-select-tree-checkbox-disabled {\n cursor: not-allowed;\n}\n.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after {\n border-color: rgba(0, 0, 0, 0.25);\n animation-name: none;\n}\n.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-input {\n cursor: not-allowed;\n pointer-events: none;\n}\n.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner {\n background-color: #f5f5f5;\n border-color: #d9d9d9 !important;\n}\n.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after {\n border-color: #f5f5f5;\n border-collapse: separate;\n animation-name: none;\n}\n.ant-select-tree-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-select-tree-checkbox-disabled:hover::after,\n.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-disabled::after {\n visibility: hidden;\n}\n.ant-select-tree-checkbox-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n}\n.ant-select-tree-checkbox-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-select-tree-checkbox-wrapper + .ant-select-tree-checkbox-wrapper {\n margin-left: 8px;\n}\n.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-in-form-item input[type='checkbox'] {\n width: 14px;\n height: 14px;\n}\n.ant-select-tree-checkbox + span {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-select-tree-checkbox-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-select-tree-checkbox-group-item {\n margin-right: 8px;\n}\n.ant-select-tree-checkbox-group-item:last-child {\n margin-right: 0;\n}\n.ant-select-tree-checkbox-group-item + .ant-select-tree-checkbox-group-item {\n margin-left: 0;\n}\n.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner {\n background-color: #fff;\n border-color: #d9d9d9;\n}\n.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner::after {\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n background-color: #1890ff;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n}\n.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after {\n background-color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-tree-select-dropdown {\n padding: 8px 4px;\n}\n.ant-tree-select-dropdown-rtl {\n direction: rtl;\n}\n.ant-tree-select-dropdown .ant-select-tree {\n border-radius: 0;\n}\n.ant-tree-select-dropdown .ant-select-tree-list-holder-inner {\n align-items: stretch;\n}\n.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode .ant-select-tree-node-content-wrapper {\n flex: auto;\n}\n.ant-select-tree {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n background: #fff;\n border-radius: 2px;\n transition: background-color 0.3s;\n}\n.ant-select-tree-focused:not(:hover):not(.ant-select-tree-active-focused) {\n background: #e6f7ff;\n}\n.ant-select-tree-list-holder-inner {\n align-items: flex-start;\n}\n.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner {\n align-items: stretch;\n}\n.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-node-content-wrapper {\n flex: auto;\n}\n.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging {\n position: relative;\n}\n.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 4px;\n left: 0;\n border: 1px solid #1890ff;\n opacity: 0;\n animation: ant-tree-node-fx-do-not-use 0.3s;\n animation-play-state: running;\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n.ant-select-tree .ant-select-tree-treenode {\n display: flex;\n align-items: flex-start;\n padding: 0 0 4px 0;\n outline: none;\n}\n.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper:hover {\n background: transparent;\n}\n.ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper {\n background: #f5f5f5;\n}\n.ant-select-tree .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title {\n color: inherit;\n font-weight: 500;\n}\n.ant-select-tree .ant-select-tree-treenode-draggable .ant-select-tree-draggable-icon {\n width: 24px;\n line-height: 24px;\n text-align: center;\n visibility: visible;\n opacity: 0.2;\n transition: opacity 0.3s;\n}\n.ant-select-tree-treenode:hover .ant-select-tree .ant-select-tree-treenode-draggable .ant-select-tree-draggable-icon {\n opacity: 0.45;\n}\n.ant-select-tree .ant-select-tree-treenode-draggable.ant-select-tree-treenode-disabled .ant-select-tree-draggable-icon {\n visibility: hidden;\n}\n.ant-select-tree-indent {\n align-self: stretch;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-select-tree-indent-unit {\n display: inline-block;\n width: 24px;\n}\n.ant-select-tree-draggable-icon {\n visibility: hidden;\n}\n.ant-select-tree-switcher {\n position: relative;\n flex: none;\n align-self: stretch;\n width: 24px;\n margin: 0;\n line-height: 24px;\n text-align: center;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-select-tree-switcher .ant-tree-switcher-icon,\n.ant-select-tree-switcher .ant-select-tree-switcher-icon {\n display: inline-block;\n font-size: 10px;\n vertical-align: baseline;\n}\n.ant-select-tree-switcher .ant-tree-switcher-icon svg,\n.ant-select-tree-switcher .ant-select-tree-switcher-icon svg {\n transition: transform 0.3s;\n}\n.ant-select-tree-switcher-noop {\n cursor: default;\n}\n.ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg {\n transform: rotate(-90deg);\n}\n.ant-select-tree-switcher-loading-icon {\n color: #1890ff;\n}\n.ant-select-tree-switcher-leaf-line {\n position: relative;\n z-index: 1;\n display: inline-block;\n width: 100%;\n height: 100%;\n}\n.ant-select-tree-switcher-leaf-line::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -4px;\n margin-left: -1px;\n border-right: 1px solid #d9d9d9;\n content: ' ';\n}\n.ant-select-tree-switcher-leaf-line::after {\n position: absolute;\n width: 10px;\n height: 14px;\n border-bottom: 1px solid #d9d9d9;\n content: ' ';\n}\n.ant-select-tree-checkbox {\n top: initial;\n margin: 4px 8px 0 0;\n}\n.ant-select-tree .ant-select-tree-node-content-wrapper {\n position: relative;\n z-index: auto;\n min-height: 24px;\n margin: 0;\n padding: 0 4px;\n color: inherit;\n line-height: 24px;\n background: transparent;\n border-radius: 2px;\n cursor: pointer;\n transition: all 0.3s, border 0s, line-height 0s, box-shadow 0s;\n}\n.ant-select-tree .ant-select-tree-node-content-wrapper:hover {\n background-color: #f5f5f5;\n}\n.ant-select-tree .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected {\n background-color: #bae7ff;\n}\n.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle {\n display: inline-block;\n width: 24px;\n height: 24px;\n line-height: 24px;\n text-align: center;\n vertical-align: top;\n}\n.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle:empty {\n display: none;\n}\n.ant-select-tree-unselectable .ant-select-tree-node-content-wrapper:hover {\n background-color: transparent;\n}\n.ant-select-tree-node-content-wrapper {\n line-height: 24px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator {\n position: absolute;\n z-index: 1;\n height: 2px;\n background-color: #1890ff;\n border-radius: 1px;\n pointer-events: none;\n}\n.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator::after {\n position: absolute;\n top: -3px;\n left: -6px;\n width: 8px;\n height: 8px;\n background-color: transparent;\n border: 2px solid #1890ff;\n border-radius: 50%;\n content: '';\n}\n.ant-select-tree .ant-select-tree-treenode.drop-container > [draggable] {\n box-shadow: 0 0 0 2px #1890ff;\n}\n.ant-select-tree-show-line .ant-select-tree-indent-unit {\n position: relative;\n height: 100%;\n}\n.ant-select-tree-show-line .ant-select-tree-indent-unit::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -4px;\n border-right: 1px solid #d9d9d9;\n content: '';\n}\n.ant-select-tree-show-line .ant-select-tree-indent-unit-end::before {\n display: none;\n}\n.ant-select-tree-show-line .ant-select-tree-switcher {\n background: #fff;\n}\n.ant-select-tree-show-line .ant-select-tree-switcher-line-icon {\n vertical-align: -0.15em;\n}\n.ant-select-tree .ant-select-tree-treenode-leaf-last .ant-select-tree-switcher-leaf-line::before {\n top: auto !important;\n bottom: auto !important;\n height: 14px !important;\n}\n.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg {\n transform: rotate(90deg);\n}\n.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher-loading-icon {\n transform: scaleY(-1);\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-typography {\n color: rgba(0, 0, 0, 0.85);\n word-break: break-word;\n}\n.ant-typography.ant-typography-secondary {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-typography.ant-typography-success {\n color: #52c41a;\n}\n.ant-typography.ant-typography-warning {\n color: #faad14;\n}\n.ant-typography.ant-typography-danger {\n color: #ff4d4f;\n}\na.ant-typography.ant-typography-danger:active,\na.ant-typography.ant-typography-danger:focus {\n color: #d9363e;\n}\na.ant-typography.ant-typography-danger:hover {\n color: #ff7875;\n}\n.ant-typography.ant-typography-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\ndiv.ant-typography,\n.ant-typography p {\n margin-bottom: 1em;\n}\nh1.ant-typography,\ndiv.ant-typography-h1,\ndiv.ant-typography-h1 > textarea,\n.ant-typography h1 {\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 38px;\n line-height: 1.23;\n}\nh2.ant-typography,\ndiv.ant-typography-h2,\ndiv.ant-typography-h2 > textarea,\n.ant-typography h2 {\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 30px;\n line-height: 1.35;\n}\nh3.ant-typography,\ndiv.ant-typography-h3,\ndiv.ant-typography-h3 > textarea,\n.ant-typography h3 {\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 24px;\n line-height: 1.35;\n}\nh4.ant-typography,\ndiv.ant-typography-h4,\ndiv.ant-typography-h4 > textarea,\n.ant-typography h4 {\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 20px;\n line-height: 1.4;\n}\nh5.ant-typography,\ndiv.ant-typography-h5,\ndiv.ant-typography-h5 > textarea,\n.ant-typography h5 {\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 16px;\n line-height: 1.5;\n}\n.ant-typography + h1.ant-typography,\n.ant-typography + h2.ant-typography,\n.ant-typography + h3.ant-typography,\n.ant-typography + h4.ant-typography,\n.ant-typography + h5.ant-typography {\n margin-top: 1.2em;\n}\n.ant-typography div + h1,\n.ant-typography ul + h1,\n.ant-typography li + h1,\n.ant-typography p + h1,\n.ant-typography h1 + h1,\n.ant-typography h2 + h1,\n.ant-typography h3 + h1,\n.ant-typography h4 + h1,\n.ant-typography h5 + h1,\n.ant-typography div + h2,\n.ant-typography ul + h2,\n.ant-typography li + h2,\n.ant-typography p + h2,\n.ant-typography h1 + h2,\n.ant-typography h2 + h2,\n.ant-typography h3 + h2,\n.ant-typography h4 + h2,\n.ant-typography h5 + h2,\n.ant-typography div + h3,\n.ant-typography ul + h3,\n.ant-typography li + h3,\n.ant-typography p + h3,\n.ant-typography h1 + h3,\n.ant-typography h2 + h3,\n.ant-typography h3 + h3,\n.ant-typography h4 + h3,\n.ant-typography h5 + h3,\n.ant-typography div + h4,\n.ant-typography ul + h4,\n.ant-typography li + h4,\n.ant-typography p + h4,\n.ant-typography h1 + h4,\n.ant-typography h2 + h4,\n.ant-typography h3 + h4,\n.ant-typography h4 + h4,\n.ant-typography h5 + h4,\n.ant-typography div + h5,\n.ant-typography ul + h5,\n.ant-typography li + h5,\n.ant-typography p + h5,\n.ant-typography h1 + h5,\n.ant-typography h2 + h5,\n.ant-typography h3 + h5,\n.ant-typography h4 + h5,\n.ant-typography h5 + h5 {\n margin-top: 1.2em;\n}\na.ant-typography-ellipsis,\nspan.ant-typography-ellipsis {\n display: inline-block;\n max-width: 100%;\n}\na.ant-typography,\n.ant-typography a {\n color: #1890ff;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n text-decoration: none;\n}\na.ant-typography:focus-visible,\n.ant-typography a:focus-visible,\na.ant-typography:hover,\n.ant-typography a:hover {\n color: #40a9ff;\n}\na.ant-typography:active,\n.ant-typography a:active {\n color: #096dd9;\n}\na.ant-typography:active,\n.ant-typography a:active,\na.ant-typography:hover,\n.ant-typography a:hover {\n text-decoration: none;\n}\na.ant-typography[disabled],\n.ant-typography a[disabled],\na.ant-typography.ant-typography-disabled,\n.ant-typography a.ant-typography-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\na.ant-typography[disabled]:active,\n.ant-typography a[disabled]:active,\na.ant-typography.ant-typography-disabled:active,\n.ant-typography a.ant-typography-disabled:active,\na.ant-typography[disabled]:hover,\n.ant-typography a[disabled]:hover,\na.ant-typography.ant-typography-disabled:hover,\n.ant-typography a.ant-typography-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n}\na.ant-typography[disabled]:active,\n.ant-typography a[disabled]:active,\na.ant-typography.ant-typography-disabled:active,\n.ant-typography a.ant-typography-disabled:active {\n pointer-events: none;\n}\n.ant-typography code {\n margin: 0 0.2em;\n padding: 0.2em 0.4em 0.1em;\n font-size: 85%;\n background: rgba(150, 150, 150, 0.1);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-radius: 3px;\n}\n.ant-typography kbd {\n margin: 0 0.2em;\n padding: 0.15em 0.4em 0.1em;\n font-size: 90%;\n background: rgba(150, 150, 150, 0.06);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-bottom-width: 2px;\n border-radius: 3px;\n}\n.ant-typography mark {\n padding: 0;\n background-color: #ffe58f;\n}\n.ant-typography u,\n.ant-typography ins {\n text-decoration: underline;\n -webkit-text-decoration-skip: ink;\n text-decoration-skip-ink: auto;\n}\n.ant-typography s,\n.ant-typography del {\n text-decoration: line-through;\n}\n.ant-typography strong {\n font-weight: 600;\n}\n.ant-typography-expand,\n.ant-typography-edit,\n.ant-typography-copy {\n color: #1890ff;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n margin-left: 4px;\n}\n.ant-typography-expand:focus-visible,\n.ant-typography-edit:focus-visible,\n.ant-typography-copy:focus-visible,\n.ant-typography-expand:hover,\n.ant-typography-edit:hover,\n.ant-typography-copy:hover {\n color: #40a9ff;\n}\n.ant-typography-expand:active,\n.ant-typography-edit:active,\n.ant-typography-copy:active {\n color: #096dd9;\n}\n.ant-typography-copy-success,\n.ant-typography-copy-success:hover,\n.ant-typography-copy-success:focus {\n color: #52c41a;\n}\n.ant-typography-edit-content {\n position: relative;\n}\ndiv.ant-typography-edit-content {\n left: -12px;\n margin-top: -5px;\n margin-bottom: calc(1em - 4px - 1px);\n}\n.ant-typography-edit-content-confirm {\n position: absolute;\n right: 10px;\n bottom: 8px;\n color: rgba(0, 0, 0, 0.45);\n font-weight: normal;\n font-size: 14px;\n font-style: normal;\n pointer-events: none;\n}\n.ant-typography-edit-content textarea {\n height: 1em;\n margin: 0 !important;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -moz-transition: none;\n}\n.ant-typography ul,\n.ant-typography ol {\n margin: 0 0 1em;\n padding: 0;\n}\n.ant-typography ul li,\n.ant-typography ol li {\n margin: 0 0 0 20px;\n padding: 0 0 0 4px;\n}\n.ant-typography ul {\n list-style-type: circle;\n}\n.ant-typography ul ul {\n list-style-type: disc;\n}\n.ant-typography ol {\n list-style-type: decimal;\n}\n.ant-typography pre,\n.ant-typography blockquote {\n margin: 1em 0;\n}\n.ant-typography pre {\n padding: 0.4em 0.6em;\n white-space: pre-wrap;\n word-wrap: break-word;\n background: rgba(150, 150, 150, 0.1);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-radius: 3px;\n}\n.ant-typography pre code {\n display: inline;\n margin: 0;\n padding: 0;\n font-size: inherit;\n font-family: inherit;\n background: transparent;\n border: 0;\n}\n.ant-typography blockquote {\n padding: 0 0 0 0.6em;\n border-left: 4px solid rgba(100, 100, 100, 0.2);\n opacity: 0.85;\n}\n.ant-typography-single-line {\n white-space: nowrap;\n}\n.ant-typography-ellipsis-single-line {\n overflow: hidden;\n text-overflow: ellipsis;\n}\na.ant-typography-ellipsis-single-line,\nspan.ant-typography-ellipsis-single-line {\n vertical-align: bottom;\n}\n.ant-typography-ellipsis-multiple-line {\n /* stylelint-disable-next-line value-no-vendor-prefix */\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 3;\n /*! autoprefixer: ignore next */\n -webkit-box-orient: vertical;\n}\n.ant-typography-rtl {\n direction: rtl;\n}\n.ant-typography-rtl .ant-typography-expand,\n.ant-typography-rtl .ant-typography-edit,\n.ant-typography-rtl .ant-typography-copy {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-typography-rtl .ant-typography-expand {\n float: left;\n}\ndiv.ant-typography-edit-content.ant-typography-rtl {\n right: -12px;\n left: auto;\n}\n.ant-typography-rtl .ant-typography-edit-content-confirm {\n right: auto;\n left: 10px;\n}\n.ant-typography-rtl.ant-typography ul li,\n.ant-typography-rtl.ant-typography ol li {\n margin: 0 20px 0 0;\n padding: 0 4px 0 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-upload {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n outline: 0;\n}\n.ant-upload p {\n margin: 0;\n}\n.ant-upload-btn {\n display: block;\n width: 100%;\n outline: none;\n}\n.ant-upload input[type='file'] {\n cursor: pointer;\n}\n.ant-upload.ant-upload-select {\n display: inline-block;\n}\n.ant-upload.ant-upload-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-upload.ant-upload-select-picture-card {\n width: 104px;\n height: 104px;\n margin-right: 8px;\n margin-bottom: 8px;\n text-align: center;\n vertical-align: top;\n background-color: #fafafa;\n border: 1px dashed #d9d9d9;\n border-radius: 2px;\n cursor: pointer;\n transition: border-color 0.3s;\n}\n.ant-upload.ant-upload-select-picture-card > .ant-upload {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n}\n.ant-upload.ant-upload-select-picture-card:hover {\n border-color: #1890ff;\n}\n.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover {\n border-color: #d9d9d9;\n}\n.ant-upload.ant-upload-drag {\n position: relative;\n width: 100%;\n height: 100%;\n text-align: center;\n background: #fafafa;\n border: 1px dashed #d9d9d9;\n border-radius: 2px;\n cursor: pointer;\n transition: border-color 0.3s;\n}\n.ant-upload.ant-upload-drag .ant-upload {\n padding: 16px 0;\n}\n.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled) {\n border-color: #096dd9;\n}\n.ant-upload.ant-upload-drag.ant-upload-disabled {\n cursor: not-allowed;\n}\n.ant-upload.ant-upload-drag .ant-upload-btn {\n display: table;\n height: 100%;\n}\n.ant-upload.ant-upload-drag .ant-upload-drag-container {\n display: table-cell;\n vertical-align: middle;\n}\n.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover {\n border-color: #40a9ff;\n}\n.ant-upload.ant-upload-drag p.ant-upload-drag-icon {\n margin-bottom: 20px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon {\n color: #40a9ff;\n font-size: 48px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-text {\n margin: 0 0 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-hint {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-upload.ant-upload-drag .anticon-plus {\n color: rgba(0, 0, 0, 0.25);\n font-size: 30px;\n transition: all 0.3s;\n}\n.ant-upload.ant-upload-drag .anticon-plus:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload.ant-upload-drag:hover .anticon-plus {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload-picture-card-wrapper {\n display: inline-block;\n width: 100%;\n}\n.ant-upload-picture-card-wrapper::before {\n display: table;\n content: '';\n}\n.ant-upload-picture-card-wrapper::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-upload-list {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n list-style: none;\n font-feature-settings: 'tnum';\n line-height: 1.5715;\n}\n.ant-upload-list::before {\n display: table;\n content: '';\n}\n.ant-upload-list::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-upload-list-item {\n position: relative;\n height: 22.001px;\n margin-top: 8px;\n font-size: 14px;\n}\n.ant-upload-list-item-name {\n display: inline-block;\n width: 100%;\n padding-left: 22px;\n overflow: hidden;\n line-height: 1.5715;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-upload-list-item-card-actions {\n position: absolute;\n right: 0;\n}\n.ant-upload-list-item-card-actions-btn {\n opacity: 0;\n}\n.ant-upload-list-item-card-actions-btn.ant-btn-sm {\n height: 22.001px;\n line-height: 1;\n vertical-align: top;\n}\n.ant-upload-list-item-card-actions.picture {\n top: 22px;\n line-height: 0;\n}\n.ant-upload-list-item-card-actions-btn:focus,\n.ant-upload-list-item-card-actions.picture .ant-upload-list-item-card-actions-btn {\n opacity: 1;\n}\n.ant-upload-list-item-card-actions .anticon {\n color: rgba(0, 0, 0, 0.45);\n transition: all 0.3s;\n}\n.ant-upload-list-item-card-actions:hover .anticon {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-upload-list-item-info {\n height: 100%;\n transition: background-color 0.3s;\n}\n.ant-upload-list-item-info > span {\n display: block;\n width: 100%;\n height: 100%;\n}\n.ant-upload-list-item-info .anticon-loading .anticon,\n.ant-upload-list-item-info .ant-upload-text-icon .anticon {\n position: absolute;\n top: 5px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-upload-list-item:hover .ant-upload-list-item-info {\n background-color: #f5f5f5;\n}\n.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn {\n opacity: 1;\n}\n.ant-upload-list-item-error,\n.ant-upload-list-item-error .ant-upload-text-icon > .anticon,\n.ant-upload-list-item-error .ant-upload-list-item-name {\n color: #ff4d4f;\n}\n.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon {\n color: #ff4d4f;\n}\n.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn {\n opacity: 1;\n}\n.ant-upload-list-item-progress {\n position: absolute;\n bottom: -12px;\n width: 100%;\n padding-left: 26px;\n font-size: 14px;\n line-height: 0;\n}\n.ant-upload-list-picture .ant-upload-list-item,\n.ant-upload-list-picture-card .ant-upload-list-item {\n position: relative;\n height: 66px;\n padding: 8px;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n}\n.ant-upload-list-picture .ant-upload-list-item:hover,\n.ant-upload-list-picture-card .ant-upload-list-item:hover {\n background: transparent;\n}\n.ant-upload-list-picture .ant-upload-list-item-error,\n.ant-upload-list-picture-card .ant-upload-list-item-error {\n border-color: #ff4d4f;\n}\n.ant-upload-list-picture .ant-upload-list-item-info,\n.ant-upload-list-picture-card .ant-upload-list-item-info {\n padding: 0;\n}\n.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info,\n.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {\n background: transparent;\n}\n.ant-upload-list-picture .ant-upload-list-item-uploading,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading {\n border-style: dashed;\n}\n.ant-upload-list-picture .ant-upload-list-item-thumbnail,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail {\n width: 48px;\n height: 48px;\n line-height: 60px;\n text-align: center;\n opacity: 0.8;\n}\n.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon {\n font-size: 26px;\n}\n.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'],\n.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {\n fill: #fff2f0;\n}\n.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'],\n.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'] {\n fill: #ff4d4f;\n}\n.ant-upload-list-picture .ant-upload-list-item-icon,\n.ant-upload-list-picture-card .ant-upload-list-item-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n font-size: 26px;\n transform: translate(-50%, -50%);\n}\n.ant-upload-list-picture .ant-upload-list-item-icon .anticon,\n.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon {\n font-size: 26px;\n}\n.ant-upload-list-picture .ant-upload-list-item-image,\n.ant-upload-list-picture-card .ant-upload-list-item-image {\n max-width: 100%;\n}\n.ant-upload-list-picture .ant-upload-list-item-thumbnail img,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img {\n display: block;\n width: 48px;\n height: 48px;\n overflow: hidden;\n}\n.ant-upload-list-picture .ant-upload-list-item-name,\n.ant-upload-list-picture-card .ant-upload-list-item-name {\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n margin: 0 0 0 8px;\n padding-right: 8px;\n padding-left: 48px;\n overflow: hidden;\n line-height: 44px;\n white-space: nowrap;\n text-overflow: ellipsis;\n transition: all 0.3s;\n}\n.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name {\n margin-bottom: 12px;\n}\n.ant-upload-list-picture .ant-upload-list-item-progress,\n.ant-upload-list-picture-card .ant-upload-list-item-progress {\n bottom: 14px;\n width: calc(100% - 24px);\n margin-top: 0;\n padding-left: 56px;\n}\n.ant-upload-list-picture-card-container {\n display: inline-block;\n width: 104px;\n height: 104px;\n margin: 0 8px 8px 0;\n vertical-align: top;\n}\n.ant-upload-list-picture-card .ant-upload-list-item {\n height: 100%;\n margin: 0;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info {\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info::before {\n position: absolute;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: all 0.3s;\n content: ' ';\n}\n.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info::before {\n opacity: 1;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions {\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 10;\n white-space: nowrap;\n transform: translate(-50%, -50%);\n opacity: 0;\n transition: all 0.3s;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete {\n z-index: 10;\n width: 16px;\n margin: 0 4px;\n color: rgba(255, 255, 255, 0.85);\n font-size: 16px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover {\n color: #fff;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info:hover + .ant-upload-list-item-actions,\n.ant-upload-list-picture-card .ant-upload-list-item-actions:hover {\n opacity: 1;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img {\n position: static;\n display: block;\n width: 100%;\n height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-name {\n display: none;\n margin: 8px 0 0;\n padding: 0;\n line-height: 1.5715;\n text-align: center;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-file + .ant-upload-list-item-name {\n position: absolute;\n bottom: 10px;\n display: block;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {\n background-color: #fafafa;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info {\n height: auto;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info::before,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete {\n display: none;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-progress {\n bottom: 32px;\n width: calc(100% - 14px);\n padding-left: 0;\n}\n.ant-upload-list-text-container,\n.ant-upload-list-picture-container {\n transition: opacity 0.3s, height 0.3s;\n}\n.ant-upload-list-text-container::before,\n.ant-upload-list-picture-container::before {\n display: table;\n width: 0;\n height: 0;\n content: '';\n}\n.ant-upload-list-text-container .ant-upload-span,\n.ant-upload-list-picture-container .ant-upload-span {\n display: block;\n flex: auto;\n}\n.ant-upload-list-text .ant-upload-span,\n.ant-upload-list-picture .ant-upload-span {\n display: flex;\n align-items: center;\n}\n.ant-upload-list-text .ant-upload-span > *,\n.ant-upload-list-picture .ant-upload-span > * {\n flex: none;\n}\n.ant-upload-list-text .ant-upload-list-item-name,\n.ant-upload-list-picture .ant-upload-list-item-name {\n flex: auto;\n margin: 0;\n padding: 0 8px;\n}\n.ant-upload-list-text .ant-upload-list-item-card-actions,\n.ant-upload-list-picture .ant-upload-list-item-card-actions {\n position: static;\n}\n.ant-upload-list-text .ant-upload-text-icon .anticon {\n position: static;\n}\n.ant-upload-list .ant-upload-animate-inline-appear,\n.ant-upload-list .ant-upload-animate-inline-enter,\n.ant-upload-list .ant-upload-animate-inline-leave {\n animation-duration: 0.3s;\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n animation-fill-mode: forwards;\n}\n.ant-upload-list .ant-upload-animate-inline-appear,\n.ant-upload-list .ant-upload-animate-inline-enter {\n animation-name: uploadAnimateInlineIn;\n}\n.ant-upload-list .ant-upload-animate-inline-leave {\n animation-name: uploadAnimateInlineOut;\n}\n@keyframes uploadAnimateInlineIn {\n from {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n@keyframes uploadAnimateInlineOut {\n to {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n.ant-upload-rtl {\n direction: rtl;\n}\n.ant-upload-rtl.ant-upload.ant-upload-select-picture-card {\n margin-right: auto;\n margin-left: 8px;\n}\n.ant-upload-list-rtl {\n direction: rtl;\n}\n.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1 {\n padding-right: 22px;\n padding-left: 14px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2 {\n padding-right: 22px;\n padding-left: 28px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-name {\n padding-right: 22px;\n padding-left: 0;\n}\n.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1 {\n padding-left: 14px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-card-actions {\n right: auto;\n left: 0;\n}\n.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon {\n padding-right: 0;\n padding-left: 5px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-info {\n padding: 0 4px 0 12px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon {\n padding-right: 0;\n padding-left: 5px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-progress {\n padding-right: 26px;\n padding-left: 0;\n}\n.ant-upload-list-picture .ant-upload-list-item-info,\n.ant-upload-list-picture-card .ant-upload-list-item-info {\n padding: 0;\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail {\n right: 8px;\n left: auto;\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon {\n right: 50%;\n left: auto;\n transform: translate(50%, -50%);\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name {\n margin: 0 8px 0 0;\n padding-right: 48px;\n padding-left: 8px;\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1 {\n padding-right: 48px;\n padding-left: 18px;\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2 {\n padding-right: 48px;\n padding-left: 36px;\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress {\n padding-right: 0;\n padding-left: 0;\n}\n.ant-upload-list-rtl .ant-upload-list-picture-card-container {\n margin: 0 0 8px 8px;\n}\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions {\n right: 50%;\n left: auto;\n transform: translate(50%, -50%);\n}\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file + .ant-upload-list-item-name {\n margin: 8px 0 0;\n padding: 0;\n}\n\n\n/*# sourceMappingURL=antd.css.map*/","// Config global less under antd\n[class^=~'@{ant-prefix}-'],\n[class*=~' @{ant-prefix}-'] {\n // remove the clear button of a text input control in IE10+\n &::-ms-clear,\n input::-ms-clear,\n input::-ms-reveal {\n display: none;\n }\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n[class^=ant-]::-ms-clear,\n[class*= ant-]::-ms-clear,\n[class^=ant-] input::-ms-clear,\n[class*= ant-] input::-ms-clear,\n[class^=ant-] input::-ms-reveal,\n[class*= ant-] input::-ms-reveal {\n display: none;\n}\n/* stylelint-disable property-no-vendor-prefix, at-rule-no-vendor-prefix */\nhtml,\nbody {\n width: 100%;\n height: 100%;\n}\ninput::-ms-clear,\ninput::-ms-reveal {\n display: none;\n}\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n@-ms-viewport {\n width: device-width;\n}\nbody {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n font-variant: tabular-nums;\n line-height: 1.5715;\n background-color: #fff;\n font-feature-settings: 'tnum';\n}\n[tabindex='-1']:focus {\n outline: none !important;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n}\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n border-bottom: 0;\n cursor: help;\n}\naddress {\n margin-bottom: 1em;\n font-style: normal;\n line-height: inherit;\n}\ninput[type='text'],\ninput[type='password'],\ninput[type='number'],\ntextarea {\n -webkit-appearance: none;\n}\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1em;\n}\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\ndt {\n font-weight: 500;\n}\ndd {\n margin-bottom: 0.5em;\n margin-left: 0;\n}\nblockquote {\n margin: 0 0 1em;\n}\ndfn {\n font-style: italic;\n}\nb,\nstrong {\n font-weight: bolder;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\na {\n color: #1890ff;\n text-decoration: none;\n background-color: transparent;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n -webkit-text-decoration-skip: objects;\n}\na:hover {\n color: #40a9ff;\n}\na:active {\n color: #096dd9;\n}\na:active,\na:hover {\n text-decoration: none;\n outline: 0;\n}\na:focus {\n text-decoration: none;\n outline: 0;\n}\na[disabled] {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\npre,\ncode,\nkbd,\nsamp {\n font-size: 1em;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;\n}\npre {\n margin-top: 0;\n margin-bottom: 1em;\n overflow: auto;\n}\nfigure {\n margin: 0 0 1em;\n}\nimg {\n vertical-align: middle;\n border-style: none;\n}\na,\narea,\nbutton,\n[role='button'],\ninput:not([type='range']),\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\ntable {\n border-collapse: collapse;\n}\ncaption {\n padding-top: 0.75em;\n padding-bottom: 0.3em;\n color: rgba(0, 0, 0, 0.45);\n text-align: left;\n caption-side: bottom;\n}\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\nbutton,\ninput {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\nbutton::-moz-focus-inner,\n[type='button']::-moz-focus-inner,\n[type='reset']::-moz-focus-inner,\n[type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\ninput[type='radio'],\ninput[type='checkbox'] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type='date'],\ninput[type='time'],\ninput[type='datetime-local'],\ninput[type='month'] {\n -webkit-appearance: listbox;\n}\ntextarea {\n overflow: auto;\n resize: vertical;\n}\nfieldset {\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: 0.5em;\n padding: 0;\n color: inherit;\n font-size: 1.5em;\n line-height: inherit;\n white-space: normal;\n}\nprogress {\n vertical-align: baseline;\n}\n[type='number']::-webkit-inner-spin-button,\n[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n[type='search'] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n[type='search']::-webkit-search-cancel-button,\n[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\noutput {\n display: inline-block;\n}\nsummary {\n display: list-item;\n}\ntemplate {\n display: none;\n}\n[hidden] {\n display: none !important;\n}\nmark {\n padding: 0.2em;\n background-color: #feffe6;\n}\n::selection {\n color: #fff;\n background: #1890ff;\n}\n.clearfix::before {\n display: table;\n content: '';\n}\n.clearfix::after {\n display: table;\n clear: both;\n content: '';\n}\n.anticon {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.anticon > * {\n line-height: 1;\n}\n.anticon svg {\n display: inline-block;\n}\n.anticon::before {\n display: none;\n}\n.anticon .anticon-icon {\n display: block;\n}\n.anticon > .anticon {\n line-height: 0;\n vertical-align: 0;\n}\n.anticon[tabindex] {\n cursor: pointer;\n}\n.anticon-spin,\n.anticon-spin::before {\n display: inline-block;\n animation: loadingCircle 1s infinite linear;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-fade-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-fade-enter.ant-fade-enter-active,\n.ant-fade-appear.ant-fade-appear-active {\n animation-name: antFadeIn;\n animation-play-state: running;\n}\n.ant-fade-leave.ant-fade-leave-active {\n animation-name: antFadeOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n opacity: 0;\n animation-timing-function: linear;\n}\n.ant-fade-leave {\n animation-timing-function: linear;\n}\n@keyframes antFadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes antFadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-up-enter.ant-move-up-enter-active,\n.ant-move-up-appear.ant-move-up-appear-active {\n animation-name: antMoveUpIn;\n animation-play-state: running;\n}\n.ant-move-up-leave.ant-move-up-leave-active {\n animation-name: antMoveUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-up-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-down-enter.ant-move-down-enter-active,\n.ant-move-down-appear.ant-move-down-appear-active {\n animation-name: antMoveDownIn;\n animation-play-state: running;\n}\n.ant-move-down-leave.ant-move-down-leave-active {\n animation-name: antMoveDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-down-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-left-enter.ant-move-left-enter-active,\n.ant-move-left-appear.ant-move-left-appear-active {\n animation-name: antMoveLeftIn;\n animation-play-state: running;\n}\n.ant-move-left-leave.ant-move-left-leave-active {\n animation-name: antMoveLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-left-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-right-enter.ant-move-right-enter-active,\n.ant-move-right-appear.ant-move-right-appear-active {\n animation-name: antMoveRightIn;\n animation-play-state: running;\n}\n.ant-move-right-leave.ant-move-right-leave-active {\n animation-name: antMoveRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-right-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n@keyframes antMoveDownIn {\n 0% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveDownOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveLeftIn {\n 0% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveLeftOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveRightIn {\n 0% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveRightOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveUpIn {\n 0% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveUpOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes loadingCircle {\n 100% {\n transform: rotate(360deg);\n }\n}\n[ant-click-animating='true'],\n[ant-click-animating-without-extra-node='true'] {\n position: relative;\n}\nhtml {\n --antd-wave-shadow-color: #1890ff;\n --scroll-bar: 0;\n}\n[ant-click-animating-without-extra-node='true']::after,\n.ant-click-animating-node {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n border-radius: inherit;\n box-shadow: 0 0 0 0 #1890ff;\n box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);\n opacity: 0.2;\n animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n@keyframes waveEffect {\n 100% {\n box-shadow: 0 0 0 #1890ff;\n box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);\n }\n}\n@keyframes fadeEffect {\n 100% {\n opacity: 0;\n }\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-up-enter.ant-slide-up-enter-active,\n.ant-slide-up-appear.ant-slide-up-appear-active {\n animation-name: antSlideUpIn;\n animation-play-state: running;\n}\n.ant-slide-up-leave.ant-slide-up-leave-active {\n animation-name: antSlideUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-up-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-down-enter.ant-slide-down-enter-active,\n.ant-slide-down-appear.ant-slide-down-appear-active {\n animation-name: antSlideDownIn;\n animation-play-state: running;\n}\n.ant-slide-down-leave.ant-slide-down-leave-active {\n animation-name: antSlideDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-down-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-left-enter.ant-slide-left-enter-active,\n.ant-slide-left-appear.ant-slide-left-appear-active {\n animation-name: antSlideLeftIn;\n animation-play-state: running;\n}\n.ant-slide-left-leave.ant-slide-left-leave-active {\n animation-name: antSlideLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-left-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-right-enter.ant-slide-right-enter-active,\n.ant-slide-right-appear.ant-slide-right-appear-active {\n animation-name: antSlideRightIn;\n animation-play-state: running;\n}\n.ant-slide-right-leave.ant-slide-right-leave-active {\n animation-name: antSlideRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-right-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n@keyframes antSlideUpIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideUpOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideDownIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n}\n@keyframes antSlideDownOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n}\n@keyframes antSlideLeftIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideLeftOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideRightIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideRightOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-enter.ant-zoom-enter-active,\n.ant-zoom-appear.ant-zoom-appear-active {\n animation-name: antZoomIn;\n animation-play-state: running;\n}\n.ant-zoom-leave.ant-zoom-leave-active {\n animation-name: antZoomOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-enter-prepare,\n.ant-zoom-appear-prepare {\n transform: none;\n}\n.ant-zoom-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-enter.ant-zoom-big-enter-active,\n.ant-zoom-big-appear.ant-zoom-big-appear-active {\n animation-name: antZoomBigIn;\n animation-play-state: running;\n}\n.ant-zoom-big-leave.ant-zoom-big-leave-active {\n animation-name: antZoomBigOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-enter-prepare,\n.ant-zoom-big-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n animation-duration: 0.1s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-leave {\n animation-duration: 0.1s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active,\n.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active {\n animation-name: antZoomBigIn;\n animation-play-state: running;\n}\n.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active {\n animation-name: antZoomBigOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-fast-enter-prepare,\n.ant-zoom-big-fast-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-fast-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-up-enter.ant-zoom-up-enter-active,\n.ant-zoom-up-appear.ant-zoom-up-appear-active {\n animation-name: antZoomUpIn;\n animation-play-state: running;\n}\n.ant-zoom-up-leave.ant-zoom-up-leave-active {\n animation-name: antZoomUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-up-enter-prepare,\n.ant-zoom-up-appear-prepare {\n transform: none;\n}\n.ant-zoom-up-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-down-enter.ant-zoom-down-enter-active,\n.ant-zoom-down-appear.ant-zoom-down-appear-active {\n animation-name: antZoomDownIn;\n animation-play-state: running;\n}\n.ant-zoom-down-leave.ant-zoom-down-leave-active {\n animation-name: antZoomDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-down-enter-prepare,\n.ant-zoom-down-appear-prepare {\n transform: none;\n}\n.ant-zoom-down-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-left-enter.ant-zoom-left-enter-active,\n.ant-zoom-left-appear.ant-zoom-left-appear-active {\n animation-name: antZoomLeftIn;\n animation-play-state: running;\n}\n.ant-zoom-left-leave.ant-zoom-left-leave-active {\n animation-name: antZoomLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-left-enter-prepare,\n.ant-zoom-left-appear-prepare {\n transform: none;\n}\n.ant-zoom-left-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-right-enter.ant-zoom-right-enter-active,\n.ant-zoom-right-appear.ant-zoom-right-appear-active {\n animation-name: antZoomRightIn;\n animation-play-state: running;\n}\n.ant-zoom-right-leave.ant-zoom-right-leave-active {\n animation-name: antZoomRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-right-enter-prepare,\n.ant-zoom-right-appear-prepare {\n transform: none;\n}\n.ant-zoom-right-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n@keyframes antZoomIn {\n 0% {\n transform: scale(0.2);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.2);\n opacity: 0;\n }\n}\n@keyframes antZoomBigIn {\n 0% {\n transform: scale(0.8);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomBigOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n@keyframes antZoomUpIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n}\n@keyframes antZoomUpOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n}\n@keyframes antZoomLeftIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n}\n@keyframes antZoomLeftOut {\n 0% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomRightIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n}\n@keyframes antZoomRightOut {\n 0% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomDownIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n}\n@keyframes antZoomDownOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n}\n.ant-motion-collapse-legacy {\n overflow: hidden;\n}\n.ant-motion-collapse-legacy-active {\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n.ant-motion-collapse {\n overflow: hidden;\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n","/* stylelint-disable */\n.bezierEasingMixin() {\n@functions: ~`(function() {\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\n function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\n function C (aA1) { return 3.0 * aA1; }\n\n // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; }\n\n // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); }\n\n function binarySubdivide (aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n }\n\n function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n\n var BezierEasing = function (mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n // Precompute samples table\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX (aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing (x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n };\n\n this.colorEasing = BezierEasing(0.26, 0.09, 0.37, 0.18);\n // less 3 requires a return\n return '';\n})()`;\n}\n// It is hacky way to make this function will be compiled preferentially by less\n// resolve error: `ReferenceError: colorPalette is not defined`\n// https://github.com/ant-design/ant-motion/issues/44\n.bezierEasingMixin();\n","// Sizing shortcuts\n\n.size(@width; @height) {\n width: @width;\n height: @height;\n}\n\n.square(@size) {\n .size(@size; @size);\n}\n","/* stylelint-disable property-no-vendor-prefix, at-rule-no-vendor-prefix */\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n// HTML & Body reset\n@{html-selector},\nbody {\n .square(100%);\n}\n\n// remove the clear button of a text input control in IE10+\ninput::-ms-clear,\ninput::-ms-reveal {\n display: none;\n}\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\n@{html-selector} {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: fade(@black, 0%); // 6\n}\n\n// IE10+ doesn't honor `` in some cases.\n@-ms-viewport {\n width: device-width;\n}\n\n// Body\n//\n// 1. remove the margin in all browsers.\n// 2. As a best practice, apply a default `body-background`.\n\nbody {\n margin: 0; // 1\n color: @text-color;\n font-size: @font-size-base;\n font-family: @font-family;\n font-variant: @font-variant-base;\n line-height: @line-height-base;\n background-color: @body-background; // 2\n font-feature-settings: @font-feature-settings-base;\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex='-1']:focus {\n outline: none !important;\n}\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n//\n// Typography\n//\n\n// remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 0.5em;\n color: @heading-color;\n font-weight: 500;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `em` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\n// Abbreviations\n//\n// 1. remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] {\n // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n border-bottom: 0; // 1\n cursor: help; // 3\n}\n\naddress {\n margin-bottom: 1em;\n font-style: normal;\n line-height: inherit;\n}\n\ninput[type='text'],\ninput[type='password'],\ninput[type='number'],\ntextarea {\n -webkit-appearance: none;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 500;\n}\n\ndd {\n margin-bottom: 0.5em;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1em;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n//\n// Links\n//\n\na {\n color: @link-color;\n text-decoration: @link-decoration;\n background-color: transparent; // remove the gray background on active links in IE 10.\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n -webkit-text-decoration-skip: objects; // remove gaps in links underline in iOS 8+ and Safari 8+.\n\n &:hover {\n color: @link-hover-color;\n }\n\n &:active {\n color: @link-active-color;\n }\n\n &:active,\n &:hover {\n text-decoration: @link-hover-decoration;\n outline: 0;\n }\n\n // https://github.com/ant-design/ant-design/issues/22503\n &:focus {\n text-decoration: @link-focus-decoration;\n outline: @link-focus-outline;\n }\n\n &[disabled] {\n color: @disabled-color;\n cursor: not-allowed;\n }\n}\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n font-family: @code-family;\n}\n\npre {\n // remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `em`s\n margin-bottom: 1em;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n//\n// Figures\n//\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1em;\n}\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // remove the border on images inside links in IE 10-.\n}\n\n// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.\n//\n// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11\n// DON'T remove the click delay when `` is present.\n// However, they DO support emoving the click delay via `touch-action: manipulation`.\n// See:\n// * https://getbootstrap.com/docs/4.0/content/reboot/#click-delay-optimization-for-touch\n// * http://caniuse.com/#feat=css-touch-action\n// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay\n\na,\narea,\nbutton,\n[role='button'],\ninput:not([type='range']),\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: 0.75em;\n padding-bottom: 0.3em;\n color: @text-color-secondary;\n text-align: left;\n caption-side: bottom;\n}\n\n//\n// Forms\n//\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // remove the margin in Firefox and Safari\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n@{html-selector} [type=\"button\"], /* 1 */\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type='button']::-moz-focus-inner,\n[type='reset']::-moz-focus-inner,\n[type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type='radio'],\ninput[type='checkbox'] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. remove the padding in IE 10-\n}\n\ninput[type='date'],\ninput[type='time'],\ninput[type='datetime-local'],\ninput[type='month'] {\n // remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n margin: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n margin-bottom: 0.5em;\n padding: 0;\n color: inherit; // 2\n font-size: 1.5em;\n line-height: inherit;\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of incement and decement buttons in Chrome.\n[type='number']::-webkit-inner-spin-button,\n[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type='search'] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type='search']::-webkit-search-cancel-button,\n[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n\nmark {\n padding: 0.2em;\n background-color: @yellow-1;\n}\n\n::selection {\n color: @text-color-inverse;\n background: @text-selection-bg;\n}\n\n// Utility classes\n.clearfix {\n .clearfix();\n}\n","// mixins for clearfix\n// ------------------------\n.clearfix() {\n // https://github.com/ant-design/ant-design/issues/21301#issuecomment-583955229\n &::before {\n display: table;\n content: '';\n }\n\n &::after {\n // https://github.com/ant-design/ant-design/issues/21864\n display: table;\n clear: both;\n content: '';\n }\n}\n",".iconfont-mixin() {\n display: inline-flex;\n align-items: center;\n color: @icon-color;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em; // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n > * {\n line-height: 1;\n }\n\n svg {\n display: inline-block;\n }\n\n &::before {\n display: none; // dont display old icon.\n }\n\n & &-icon {\n display: block;\n }\n}\n","@import '../themes/index';\n@import '../mixins/iconfont';\n\n.@{iconfont-css-prefix} {\n .iconfont-mixin();\n\n // https://github.com/ant-design/ant-design/issues/33703\n & > & {\n line-height: 0;\n vertical-align: 0;\n }\n\n &[tabindex] {\n cursor: pointer;\n }\n}\n\n.@{iconfont-css-prefix}-spin,\n.@{iconfont-css-prefix}-spin::before {\n display: inline-block;\n animation: loadingCircle 1s infinite linear;\n}\n",".motion-common(@duration: @animation-duration-base) {\n animation-duration: @duration;\n animation-fill-mode: both;\n}\n\n.motion-common-leave(@duration: @animation-duration-base) {\n animation-duration: @duration;\n animation-fill-mode: both;\n}\n\n.make-motion(@className, @keyframeName, @duration: @animation-duration-base) {\n .@{className}-enter,\n .@{className}-appear {\n .motion-common(@duration);\n\n animation-play-state: paused;\n }\n .@{className}-leave {\n .motion-common-leave(@duration);\n\n animation-play-state: paused;\n }\n .@{className}-enter.@{className}-enter-active,\n .@{className}-appear.@{className}-appear-active {\n animation-name: ~'@{keyframeName}In';\n animation-play-state: running;\n }\n .@{className}-leave.@{className}-leave-active {\n animation-name: ~'@{keyframeName}Out';\n animation-play-state: running;\n pointer-events: none;\n }\n}\n",".fade-motion(@className, @keyframeName) {\n @name: ~'@{ant-prefix}-@{className}';\n .make-motion(@name, @keyframeName);\n .@{name}-enter,\n .@{name}-appear {\n opacity: 0;\n animation-timing-function: linear;\n }\n .@{name}-leave {\n animation-timing-function: linear;\n }\n}\n\n.fade-motion(fade, antFade);\n\n@keyframes antFadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes antFadeOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n",".move-motion(@className, @keyframeName) {\n @name: ~'@{ant-prefix}-@{className}';\n .make-motion(@name, @keyframeName);\n .@{name}-enter,\n .@{name}-appear {\n opacity: 0;\n animation-timing-function: @ease-out-circ;\n }\n .@{name}-leave {\n animation-timing-function: @ease-in-circ;\n }\n}\n\n.move-motion(move-up, antMoveUp);\n.move-motion(move-down, antMoveDown);\n.move-motion(move-left, antMoveLeft);\n.move-motion(move-right, antMoveRight);\n\n@keyframes antMoveDownIn {\n 0% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n\n@keyframes antMoveDownOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n\n 100% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n\n@keyframes antMoveLeftIn {\n 0% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n\n@keyframes antMoveLeftOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n\n 100% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n\n@keyframes antMoveRightIn {\n 0% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n\n@keyframes antMoveRightOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n\n 100% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n\n@keyframes antMoveUpIn {\n 0% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n\n@keyframes antMoveUpOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n\n 100% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n","@keyframes loadingCircle {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@click-animating-true: ~\"[@{ant-prefix}-click-animating='true']\";\n@click-animating-with-extra-node-true: ~\"[@{ant-prefix}-click-animating-without-extra-node='true']\";\n\n@{click-animating-true},\n@{click-animating-with-extra-node-true} {\n position: relative;\n}\n\nhtml {\n --antd-wave-shadow-color: @primary-color;\n --scroll-bar: 0;\n}\n\n@click-animating-with-extra-node-true-after: ~'@{click-animating-with-extra-node-true}::after';\n\n@{click-animating-with-extra-node-true-after},\n.@{ant-prefix}-click-animating-node {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n border-radius: inherit;\n box-shadow: 0 0 0 0 @primary-color;\n box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);\n opacity: 0.2;\n animation: fadeEffect 2s @ease-out-circ, waveEffect 0.4s @ease-out-circ;\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n\n@keyframes waveEffect {\n 100% {\n box-shadow: 0 0 0 @primary-color;\n box-shadow: 0 0 0 @wave-animation-width var(--antd-wave-shadow-color);\n }\n}\n\n@keyframes fadeEffect {\n 100% {\n opacity: 0;\n }\n}\n",".slide-motion(@className, @keyframeName) {\n @name: ~'@{ant-prefix}-@{className}';\n .make-motion(@name, @keyframeName);\n .@{name}-enter,\n .@{name}-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: @ease-out-quint;\n }\n .@{name}-leave {\n animation-timing-function: @ease-in-quint;\n }\n}\n\n.slide-motion(slide-up, antSlideUp);\n.slide-motion(slide-down, antSlideDown);\n.slide-motion(slide-left, antSlideLeft);\n.slide-motion(slide-right, antSlideRight);\n\n@keyframes antSlideUpIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n\n 100% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n\n@keyframes antSlideUpOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n\n 100% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n\n@keyframes antSlideDownIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n\n 100% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n}\n\n@keyframes antSlideDownOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n\n 100% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n}\n\n@keyframes antSlideLeftIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n\n 100% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n\n@keyframes antSlideLeftOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n\n 100% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n\n@keyframes antSlideRightIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n\n 100% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n}\n\n@keyframes antSlideRightOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n\n 100% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n}\n",".zoom-motion(@className, @keyframeName, @duration: @animation-duration-base) {\n @name: ~'@{ant-prefix}-@{className}';\n .make-motion(@name, @keyframeName, @duration);\n .@{name}-enter,\n .@{name}-appear {\n transform: scale(0); // need this by yiminghe\n opacity: 0;\n animation-timing-function: @ease-out-circ;\n\n &-prepare {\n transform: none;\n }\n }\n .@{name}-leave {\n animation-timing-function: @ease-in-out-circ;\n }\n}\n\n// For Modal, Select choosen item\n.zoom-motion(zoom, antZoom);\n// For Popover, Popconfirm, Dropdown\n.zoom-motion(zoom-big, antZoomBig);\n// For Tooltip\n.zoom-motion(zoom-big-fast, antZoomBig, @animation-duration-fast);\n\n.zoom-motion(zoom-up, antZoomUp);\n.zoom-motion(zoom-down, antZoomDown);\n.zoom-motion(zoom-left, antZoomLeft);\n.zoom-motion(zoom-right, antZoomRight);\n\n@keyframes antZoomIn {\n 0% {\n transform: scale(0.2);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes antZoomOut {\n 0% {\n transform: scale(1);\n }\n\n 100% {\n transform: scale(0.2);\n opacity: 0;\n }\n}\n\n@keyframes antZoomBigIn {\n 0% {\n transform: scale(0.8);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes antZoomBigOut {\n 0% {\n transform: scale(1);\n }\n\n 100% {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n\n@keyframes antZoomUpIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n}\n\n@keyframes antZoomUpOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n}\n\n@keyframes antZoomLeftIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n}\n\n@keyframes antZoomLeftOut {\n 0% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n\n 100% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n}\n\n@keyframes antZoomRightIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n}\n\n@keyframes antZoomRightOut {\n 0% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n\n 100% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n}\n\n@keyframes antZoomDownIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n}\n\n@keyframes antZoomDownOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n}\n","// @import '../mixins/motion'; This has moved to theme/xxx inside.\n@import 'motion/fade';\n@import 'motion/move';\n@import 'motion/other';\n@import 'motion/slide';\n@import 'motion/zoom';\n\n// For common/openAnimation\n.ant-motion-collapse-legacy {\n overflow: hidden;\n\n &-active {\n transition: height @animation-duration-base @ease-in-out,\n opacity @animation-duration-base @ease-in-out !important;\n }\n}\n\n.ant-motion-collapse {\n overflow: hidden;\n transition: height @animation-duration-base @ease-in-out,\n opacity @animation-duration-base @ease-in-out !important;\n}\n","/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.tinyColorMixin() {\n@functions: ~`(function() {\n// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// 2016-07-07, Brian Grinstead, MIT License\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by inputToRgb\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// rgbToHsl, rgbToHsv, hslToRgb, hsvToRgb modified from:\n// \n\n// rgbToRgb\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// rgbToHsl\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// hslToRgb\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// rgbToHsv\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// hsvToRgb\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// rgbToHex\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// rgbaToHex\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// rgbaToArgbHex\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// equals\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// mostReadable\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via hexNames[hex]\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// { 'name1': 'val1' } becomes { 'val1': 'name1' }\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// isValidCSSUnit\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see matchers above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// stringInputToObject\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns { r, g, b } or { h, s, l } or { h, s, v}\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\nthis.tinycolor = tinycolor;\n\n})()`;\n}\n// It is hacky way to make this function will be compiled preferentially by less\n// resolve error: `ReferenceError: colorPalette is not defined`\n// https://github.com/ant-design/ant-motion/issues/44\n.tinyColorMixin();\n","@import '../../style/themes/index';\n\n.@{ant-prefix}-affix {\n position: fixed;\n z-index: @zindex-affix;\n}\n\n@root-entry-name: default;",".reset-component() {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: @text-color;\n font-size: @font-size-base;\n font-variant: @font-variant-base;\n line-height: @line-height-base;\n list-style: none;\n font-feature-settings: @font-feature-settings-base;\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@alert-prefix-cls: ~'@{ant-prefix}-alert';\n\n.@{alert-prefix-cls} {\n .reset-component();\n\n position: relative;\n display: flex;\n align-items: center;\n padding: @alert-padding-vertical @alert-padding-horizontal;\n word-wrap: break-word;\n border-radius: @border-radius-base;\n\n &-content {\n flex: 1;\n min-width: 0;\n }\n\n &-icon {\n margin-right: @margin-xs;\n }\n\n &-description {\n display: none;\n font-size: @font-size-base;\n line-height: @font-size-base + 8px;\n }\n\n &-success {\n background-color: @alert-success-bg-color;\n border: @border-width-base @border-style-base @alert-success-border-color;\n .@{alert-prefix-cls}-icon {\n color: @alert-success-icon-color;\n }\n }\n\n &-info {\n background-color: @alert-info-bg-color;\n border: @border-width-base @border-style-base @alert-info-border-color;\n .@{alert-prefix-cls}-icon {\n color: @alert-info-icon-color;\n }\n }\n\n &-warning {\n background-color: @alert-warning-bg-color;\n border: @border-width-base @border-style-base @alert-warning-border-color;\n .@{alert-prefix-cls}-icon {\n color: @alert-warning-icon-color;\n }\n }\n\n &-error {\n background-color: @alert-error-bg-color;\n border: @border-width-base @border-style-base @alert-error-border-color;\n\n .@{alert-prefix-cls}-icon {\n color: @alert-error-icon-color;\n }\n\n .@{alert-prefix-cls}-description > pre {\n margin: 0;\n padding: 0;\n }\n }\n\n &-action {\n margin-left: @margin-xs;\n }\n\n &-close-icon {\n margin-left: @margin-xs;\n padding: 0;\n overflow: hidden;\n font-size: @font-size-sm;\n line-height: @font-size-sm;\n background-color: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n\n .@{iconfont-css-prefix}-close {\n color: @alert-close-color;\n transition: color 0.3s;\n\n &:hover {\n color: @alert-close-hover-color;\n }\n }\n }\n\n &-close-text {\n color: @alert-close-color;\n transition: color 0.3s;\n\n &:hover {\n color: @alert-close-hover-color;\n }\n }\n\n &-with-description {\n align-items: flex-start;\n padding: @alert-with-description-padding;\n }\n\n &-with-description&-no-icon {\n padding: @alert-with-description-no-icon-padding-vertical 15px;\n }\n\n &-with-description &-icon {\n margin-right: @alert-with-description-padding-vertical;\n font-size: @alert-with-description-icon-size;\n }\n\n &-with-description &-message {\n display: block;\n margin-bottom: 4px;\n color: @alert-message-color;\n font-size: @font-size-lg;\n }\n\n &-message {\n color: @alert-message-color;\n }\n\n &-with-description &-description {\n display: block;\n }\n\n &&-motion-leave {\n overflow: hidden;\n opacity: 1;\n transition: max-height 0.3s @ease-in-out-circ, opacity 0.3s @ease-in-out-circ,\n padding-top 0.3s @ease-in-out-circ, padding-bottom 0.3s @ease-in-out-circ,\n margin-bottom 0.3s @ease-in-out-circ;\n }\n\n &&-motion-leave-active {\n max-height: 0;\n margin-bottom: 0 !important;\n padding-top: 0;\n padding-bottom: 0;\n opacity: 0;\n }\n\n &-banner {\n margin-bottom: 0;\n border: 0;\n border-radius: 0;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{alert-prefix-cls} {\n &&-rtl {\n direction: rtl;\n }\n\n &-icon {\n .@{alert-prefix-cls}-rtl & {\n margin-right: auto;\n margin-left: @margin-xs;\n }\n }\n\n &-action {\n .@{alert-prefix-cls}-rtl & {\n margin-right: @margin-xs;\n margin-left: auto;\n }\n }\n\n &-close-icon {\n .@{alert-prefix-cls}-rtl & {\n margin-right: @margin-xs;\n margin-left: auto;\n }\n }\n\n &-with-description {\n .@{alert-prefix-cls}-rtl& {\n padding-right: @alert-with-description-icon-size;\n padding-left: @alert-with-description-padding-vertical;\n }\n\n .@{alert-prefix-cls}-icon {\n .@{alert-prefix-cls}-rtl& {\n margin-right: auto;\n margin-left: @alert-with-description-padding-vertical;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@anchor-border-width: 2px;\n\n.@{ant-prefix}-anchor {\n .reset-component();\n\n position: relative;\n padding-left: @anchor-border-width;\n\n &-wrapper {\n margin-left: -4px;\n padding-left: 4px;\n overflow: auto;\n background-color: @anchor-bg;\n }\n\n &-ink {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n\n &::before {\n position: relative;\n display: block;\n width: @anchor-border-width;\n height: 100%;\n margin: 0 auto;\n background-color: @anchor-border-color;\n content: ' ';\n }\n\n &-ball {\n position: absolute;\n left: 50%;\n display: none;\n width: 8px;\n height: 8px;\n background-color: @component-background;\n border: 2px solid @primary-color;\n border-radius: 8px;\n transform: translateX(-50%);\n transition: top 0.3s ease-in-out;\n\n &.@{ant-prefix}-anchor-ink-ball-visible {\n display: inline-block;\n }\n }\n }\n\n &-fixed &-ink &-ink-ball {\n display: none;\n }\n\n &-link {\n padding: @anchor-link-padding;\n\n &-title {\n position: relative;\n display: block;\n margin-bottom: 3px;\n overflow: hidden;\n color: @text-color;\n white-space: nowrap;\n text-overflow: ellipsis;\n transition: all 0.3s;\n\n &:only-child {\n margin-bottom: 0;\n }\n }\n\n &-active > &-title {\n color: @primary-color;\n }\n }\n\n &-link &-link {\n padding-top: 2px;\n padding-bottom: 2px;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{ant-prefix}-anchor {\n &-rtl {\n direction: rtl;\n }\n\n &-wrapper {\n .@{ant-prefix}-anchor-rtl& {\n margin-right: -4px;\n margin-left: 0;\n padding-right: 4px;\n padding-left: 0;\n }\n }\n\n &-ink {\n .@{ant-prefix}-anchor-rtl & {\n right: 0;\n left: auto;\n }\n\n &-ball {\n .@{ant-prefix}-anchor-rtl & {\n right: 50%;\n left: 0;\n transform: translateX(50%);\n }\n }\n }\n\n &-link {\n .@{ant-prefix}-anchor-rtl & {\n padding: @anchor-link-top @anchor-link-left @anchor-link-top 0;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n\n@input-prefix-cls: ~'@{ant-prefix}-input';\n@select-prefix-cls: ~'@{ant-prefix}-select';\n@autocomplete-prefix-cls: ~'@{select-prefix-cls}-auto-complete';\n\n.@{autocomplete-prefix-cls} {\n .reset-component();\n\n // https://github.com/ant-design/ant-design/issues/22302\n .@{select-prefix-cls}-clear {\n right: 13px;\n }\n}\n\n@root-entry-name: default;","@import (reference) '../../style/themes/index';\n@select-prefix-cls: ~'@{ant-prefix}-select';\n\n@selection-item-padding: ceil(@font-size-base * 1.25);\n\n.@{select-prefix-cls}-single {\n // ========================= Selector =========================\n .@{select-prefix-cls}-selector {\n display: flex;\n\n .@{select-prefix-cls}-selection-search {\n position: absolute;\n top: 0;\n right: @input-padding-horizontal-base;\n bottom: 0;\n left: @input-padding-horizontal-base;\n\n &-input {\n width: 100%;\n }\n }\n\n .@{select-prefix-cls}-selection-item,\n .@{select-prefix-cls}-selection-placeholder {\n padding: 0;\n line-height: @select-height-without-border;\n transition: all .3s, visibility 0s;\n }\n\n .@{select-prefix-cls}-selection-item {\n position: relative;\n user-select: none;\n }\n\n .@{select-prefix-cls}-selection-placeholder {\n transition: none;\n pointer-events: none;\n }\n\n // For common baseline align\n &::after,\n /* For '' value baseline align */\n .@{select-prefix-cls}-selection-item::after,\n /* For undefined value baseline align */\n .@{select-prefix-cls}-selection-placeholder::after {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n }\n }\n\n // With arrow should provides `padding-right` to show the arrow\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-search {\n right: @input-padding-horizontal-base + @font-size-base;\n }\n\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-item,\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-placeholder {\n padding-right: @selection-item-padding;\n }\n\n // Opacity selection if open\n &.@{select-prefix-cls}-open .@{select-prefix-cls}-selection-item {\n color: @input-placeholder-color;\n }\n\n // ========================== Input ==========================\n // We only change the style of non-customize input which is only support by `combobox` mode.\n\n // Not customize\n &:not(.@{select-prefix-cls}-customize-input) {\n .@{select-prefix-cls}-selector {\n width: 100%;\n height: @input-height-base;\n padding: 0 @input-padding-horizontal-base;\n\n .@{select-prefix-cls}-selection-search-input {\n height: @select-height-without-border;\n }\n\n &::after {\n line-height: @select-height-without-border;\n }\n }\n }\n\n &.@{select-prefix-cls}-customize-input {\n .@{select-prefix-cls}-selector {\n &::after {\n display: none;\n }\n\n .@{select-prefix-cls}-selection-search {\n position: static;\n width: 100%;\n }\n\n .@{select-prefix-cls}-selection-placeholder {\n position: absolute;\n right: 0;\n left: 0;\n padding: 0 @input-padding-horizontal-base;\n\n &::after {\n display: none;\n }\n }\n }\n }\n\n // ============================================================\n // == Size ==\n // ============================================================\n .select-size(@suffix, @input-height) {\n @merged-cls: ~'@{select-prefix-cls}-@{suffix}';\n\n &.@{merged-cls}:not(.@{select-prefix-cls}-customize-input) {\n .@{select-prefix-cls}-selector {\n height: @input-height;\n\n &::after,\n .@{select-prefix-cls}-selection-item,\n .@{select-prefix-cls}-selection-placeholder {\n line-height: @input-height - 2 * @border-width-base;\n }\n }\n\n // Not customize\n &:not(.@{select-prefix-cls}-customize-input) {\n .@{select-prefix-cls}-selection-search-input {\n height: @input-height - 2 * @border-width-base;\n }\n }\n }\n }\n\n .select-size('lg', @select-single-item-height-lg);\n .select-size('sm', @input-height-sm);\n\n // Size small need additional set padding\n &.@{select-prefix-cls}-sm {\n &:not(.@{select-prefix-cls}-customize-input) {\n .@{select-prefix-cls}-selection-search {\n right: @input-padding-horizontal-sm;\n left: @input-padding-horizontal-sm;\n }\n\n .@{select-prefix-cls}-selector {\n padding: 0 @input-padding-horizontal-sm;\n }\n\n // With arrow should provides `padding-right` to show the arrow\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-search {\n right: @input-padding-horizontal-sm + @font-size-base * 1.5;\n }\n\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-item,\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-placeholder {\n padding-right: @font-size-base * 1.5;\n }\n }\n }\n\n &.@{select-prefix-cls}-lg {\n &:not(.@{select-prefix-cls}-customize-input) {\n .@{select-prefix-cls}-selector {\n padding: 0 @input-padding-horizontal-lg;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import './single';\n@import './multiple';\n@import './status';\n\n@select-prefix-cls: ~'@{ant-prefix}-select';\n@select-height-without-border: @input-height-base - 2 * @border-width-base;\n@select-dropdown-edge-child-vertical-padding: @dropdown-edge-child-vertical-padding;\n\n.select-selector() {\n position: relative;\n background-color: @select-background;\n border: @border-width-base @border-style-base @select-border-color;\n border-radius: @control-border-radius;\n transition: all 0.3s @ease-in-out;\n\n input {\n cursor: pointer;\n }\n\n .@{select-prefix-cls}-show-search& {\n cursor: text;\n\n input {\n cursor: auto;\n }\n }\n\n .@{select-prefix-cls}-focused:not(.@{select-prefix-cls}-disabled)& {\n .active();\n }\n\n .@{select-prefix-cls}-disabled& {\n color: @disabled-color;\n background: @input-disabled-bg;\n cursor: not-allowed;\n\n .@{select-prefix-cls}-multiple& {\n background: @select-multiple-disabled-background;\n }\n\n input {\n cursor: not-allowed;\n }\n }\n}\n\n/* Reset search input style */\n.select-search-input-without-border() {\n .@{select-prefix-cls}-selection-search-input {\n margin: 0;\n padding: 0;\n background: transparent;\n border: none;\n outline: none;\n appearance: none;\n\n &::-webkit-search-cancel-button {\n display: none;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n }\n }\n}\n\n.@{select-prefix-cls} {\n .reset-component();\n position: relative;\n display: inline-block;\n cursor: pointer;\n\n &:not(&-customize-input) &-selector {\n .select-selector();\n .select-search-input-without-border();\n }\n\n &:not(&-disabled):hover &-selector {\n .hover();\n }\n\n // ======================== Selection ========================\n &-selection-item {\n flex: 1;\n overflow: hidden;\n font-weight: normal;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n // IE11 css hack. `*::-ms-backdrop,` is a must have\n @media all and (-ms-high-contrast: none) {\n *::-ms-backdrop,\n & {\n flex: auto;\n }\n }\n }\n\n // ======================= Placeholder =======================\n &-selection-placeholder {\n flex: 1;\n overflow: hidden;\n color: @input-placeholder-color;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n\n // IE11 css hack. `*::-ms-backdrop,` is a must have\n @media all and (-ms-high-contrast: none) {\n *::-ms-backdrop,\n & {\n flex: auto;\n }\n }\n }\n\n // ========================== Arrow ==========================\n &-arrow {\n .iconfont-mixin();\n position: absolute;\n top: 50%;\n right: @control-padding-horizontal - 1px;\n display: flex;\n align-items: center;\n height: @font-size-sm;\n margin-top: (-@font-size-sm / 2);\n color: @disabled-color;\n font-size: @font-size-sm;\n line-height: 1;\n text-align: center;\n pointer-events: none;\n\n .@{iconfont-css-prefix} {\n vertical-align: top;\n transition: transform 0.3s;\n\n > svg {\n vertical-align: top;\n }\n\n &:not(.@{select-prefix-cls}-suffix) {\n pointer-events: auto;\n }\n }\n\n .@{select-prefix-cls}-disabled & {\n cursor: not-allowed;\n }\n\n > *:not(:last-child) {\n margin-inline-end: @padding-xs;\n }\n }\n\n // ========================== Clear ==========================\n &-clear {\n position: absolute;\n top: 50%;\n right: @control-padding-horizontal - 1px;\n z-index: 1;\n display: inline-block;\n width: @font-size-sm;\n height: @font-size-sm;\n margin-top: (-@font-size-sm / 2);\n color: @disabled-color;\n font-size: @font-size-sm;\n font-style: normal;\n line-height: 1;\n text-align: center;\n text-transform: none;\n background: @select-clear-background;\n cursor: pointer;\n opacity: 0;\n transition: color 0.3s ease, opacity 0.15s ease;\n text-rendering: auto;\n\n &::before {\n display: block;\n }\n\n &:hover {\n color: @text-color-secondary;\n }\n\n .@{select-prefix-cls}:hover & {\n opacity: 1;\n }\n }\n\n // ========================== Popup ==========================\n &-dropdown {\n .reset-component();\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: @zindex-dropdown;\n box-sizing: border-box;\n padding: @select-dropdown-edge-child-vertical-padding 0;\n overflow: hidden;\n font-size: @font-size-base;\n // Fix select render lag of long text in chrome\n // https://github.com/ant-design/ant-design/issues/11456\n // https://github.com/ant-design/ant-design/issues/11843\n font-variant: initial;\n background-color: @select-dropdown-bg;\n border-radius: @border-radius-base;\n outline: none;\n box-shadow: @box-shadow-base;\n\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-bottomLeft {\n animation-name: antSlideUpIn;\n }\n\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-topLeft {\n animation-name: antSlideDownIn;\n }\n\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-bottomLeft {\n animation-name: antSlideUpOut;\n }\n\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-topLeft {\n animation-name: antSlideDownOut;\n }\n\n &-hidden {\n display: none;\n }\n\n &-empty {\n color: @disabled-color;\n }\n }\n\n // ========================= Options =========================\n .item() {\n position: relative;\n display: block;\n min-height: @select-dropdown-height;\n padding: @select-dropdown-vertical-padding @control-padding-horizontal;\n color: @text-color;\n font-weight: normal;\n font-size: @select-dropdown-font-size;\n line-height: @select-dropdown-line-height;\n }\n\n &-item-empty {\n .item();\n color: @disabled-color;\n }\n\n &-item {\n .item();\n\n cursor: pointer;\n transition: background 0.3s ease;\n\n // =========== Group ============\n &-group {\n color: @text-color-secondary;\n font-size: @font-size-sm;\n cursor: default;\n }\n\n // =========== Option ===========\n &-option {\n display: flex;\n\n &-content {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-state {\n flex: none;\n }\n\n &-active:not(&-disabled) {\n background-color: @select-item-active-bg;\n }\n\n &-selected:not(&-disabled) {\n color: @select-item-selected-color;\n font-weight: @select-item-selected-font-weight;\n background-color: @select-item-selected-bg;\n\n .@{select-prefix-cls}-item-option-state {\n color: @primary-color;\n }\n }\n\n &-disabled {\n &.@{select-prefix-cls}-item-option-selected {\n background-color: @select-multiple-disabled-background;\n }\n color: @disabled-color;\n cursor: not-allowed;\n }\n\n &-grouped {\n padding-left: @control-padding-horizontal * 2;\n }\n }\n }\n\n // ============================================================\n // == Size ==\n // ============================================================\n &-lg {\n font-size: @font-size-lg;\n }\n\n // no border style\n &-borderless &-selector {\n background-color: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n }\n\n &&-in-form-item {\n width: 100%;\n }\n\n // ===================== Compact Item Styles =====================\n .compact-item(@select-prefix-cls, ~'@{select-prefix-cls}-selector', ~'@{select-prefix-cls}-focused');\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import (reference) '../../style/themes/index';\n@select-prefix-cls: ~'@{ant-prefix}-select';\n\n@select-overflow-prefix-cls: ~'@{select-prefix-cls}-selection-overflow';\n@select-multiple-item-border-width: 1px;\n\n@select-multiple-padding: max(\n @input-padding-vertical-base - @select-multiple-item-border-width -\n @select-multiple-item-spacing-half,\n 0\n);\n\n/**\n * Do not merge `height` & `line-height` under style with `selection` & `search`,\n * since chrome may update to redesign with its align logic.\n */\n\n// =========================== Overflow ===========================\n.@{select-overflow-prefix-cls} {\n position: relative;\n display: flex;\n flex: auto;\n flex-wrap: wrap;\n max-width: 100%;\n\n &-item {\n flex: none;\n align-self: center;\n max-width: 100%;\n }\n}\n\n.@{select-prefix-cls} {\n &-multiple {\n // ========================= Selector =========================\n .@{select-prefix-cls}-selector {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n // Multiple is little different that horizontal is follow the vertical\n padding: @select-multiple-padding @input-padding-vertical-base;\n\n .@{select-prefix-cls}-show-search& {\n cursor: text;\n }\n\n .@{select-prefix-cls}-disabled& {\n background: @select-multiple-disabled-background;\n cursor: not-allowed;\n }\n\n &::after {\n display: inline-block;\n width: 0;\n margin: @select-multiple-item-spacing-half 0;\n line-height: @select-multiple-item-height;\n visibility: hidden;\n content: '\\a0';\n }\n }\n\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selector,\n &.@{select-prefix-cls}-allow-clear .@{select-prefix-cls}-selector {\n padding-right: @font-size-sm + @control-padding-horizontal;\n }\n\n // ======================== Selections ========================\n .@{select-prefix-cls}-selection-item {\n position: relative;\n display: flex;\n flex: none;\n box-sizing: border-box;\n max-width: 100%;\n\n height: @select-multiple-item-height;\n margin-top: @select-multiple-item-spacing-half;\n margin-bottom: @select-multiple-item-spacing-half;\n line-height: @select-multiple-item-height - @select-multiple-item-border-width * 2;\n background: @select-selection-item-bg;\n border: 1px solid @select-selection-item-border-color;\n border-radius: @border-radius-base;\n cursor: default;\n transition: font-size 0.3s, line-height 0.3s, height 0.3s;\n user-select: none;\n margin-inline-end: @input-padding-vertical-base;\n padding-inline-start: @padding-xs;\n padding-inline-end: (@padding-xs / 2);\n\n .@{select-prefix-cls}-disabled& {\n color: @select-multiple-item-disabled-color;\n border-color: @select-multiple-item-disabled-border-color;\n cursor: not-allowed;\n }\n\n // It's ok not to do this, but 24px makes bottom narrow in view should adjust\n &-content {\n display: inline-block;\n margin-right: (@padding-xs / 2);\n overflow: hidden;\n white-space: pre; // fix whitespace wrapping. custom tags display all whitespace within.\n text-overflow: ellipsis;\n }\n\n &-remove {\n .iconfont-mixin();\n display: inline-flex;\n align-items: center;\n color: @text-color-secondary;\n font-weight: bold;\n font-size: 10px;\n line-height: inherit;\n cursor: pointer;\n\n > .@{iconfont-css-prefix} {\n vertical-align: middle;\n }\n\n &:hover {\n color: @icon-color-hover;\n }\n }\n }\n\n // ========================== Input ==========================\n .@{select-overflow-prefix-cls}-item + .@{select-overflow-prefix-cls}-item {\n .@{select-prefix-cls}-selection-search {\n margin-inline-start: 0;\n }\n }\n\n .@{select-prefix-cls}-selection-search {\n position: relative;\n max-width: 100%;\n margin-inline-start: @input-padding-horizontal-base - @input-padding-vertical-base;\n\n &-input,\n &-mirror {\n height: @select-multiple-item-height;\n font-family: @font-family;\n line-height: @select-multiple-item-height;\n transition: all 0.3s;\n }\n\n &-input {\n width: 100%;\n min-width: 4.1px; // fix search cursor missing\n }\n\n &-mirror {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 999;\n white-space: pre; // fix whitespace wrapping caused width calculation bug\n visibility: hidden;\n }\n }\n\n // ======================= Placeholder =======================\n .@{select-prefix-cls}-selection-placeholder {\n position: absolute;\n top: 50%;\n right: @input-padding-horizontal;\n left: @input-padding-horizontal;\n transform: translateY(-50%);\n transition: all 0.3s;\n }\n\n // ============================================================\n // == Size ==\n // ============================================================\n .select-size(@suffix, @input-height) {\n @merged-cls: ~'@{select-prefix-cls}-@{suffix}';\n &.@{merged-cls} {\n @select-selection-height: @input-height - @input-padding-vertical-base * 2;\n @select-height-without-border: @input-height - @border-width-base * 2;\n\n .@{select-prefix-cls}-selector::after {\n line-height: @select-selection-height;\n }\n\n .@{select-prefix-cls}-selection-item {\n height: @select-selection-height;\n line-height: @select-selection-height - @border-width-base * 2;\n }\n\n .@{select-prefix-cls}-selection-search {\n height: @select-selection-height;\n line-height: @select-selection-height;\n\n &-input,\n &-mirror {\n height: @select-selection-height;\n line-height: @select-selection-height - @border-width-base * 2;\n }\n }\n }\n }\n\n .select-size('lg', @input-height-lg);\n .select-size('sm', @input-height-sm);\n\n // Size small need additional set padding\n &.@{select-prefix-cls}-sm {\n .@{select-prefix-cls}-selection-placeholder {\n left: @input-padding-horizontal-sm;\n }\n // https://github.com/ant-design/ant-design/issues/29559\n .@{select-prefix-cls}-selection-search {\n margin-inline-start: 3px;\n }\n }\n }\n\n &-disabled .@{select-prefix-cls}-selection-item-remove {\n display: none;\n }\n}\n","@import '../../input/style/mixin';\n\n@select-prefix-cls: ~'@{ant-prefix}-select';\n@pagination-prefix-cls: ~'@{ant-prefix}-pagination';\n\n.select-status-color(\n @text-color;\n @border-color;\n @background-color;\n @hoverBorderColor;\n @outlineColor;\n) {\n &.@{select-prefix-cls}:not(.@{select-prefix-cls}-disabled):not(.@{select-prefix-cls}-customize-input):not(.@{pagination-prefix-cls}-size-changer) {\n .@{select-prefix-cls}-selector {\n background-color: @background-color;\n border-color: @border-color !important;\n }\n &.@{select-prefix-cls}-open .@{select-prefix-cls}-selector,\n &.@{select-prefix-cls}-focused .@{select-prefix-cls}-selector {\n .active(@border-color, @hoverBorderColor, @outlineColor);\n }\n }\n}\n\n.@{select-prefix-cls} {\n &-status-error {\n .select-status-color(@error-color, @error-color, @select-background, @error-color-hover, @error-color-outline);\n }\n\n &-status-warning {\n .select-status-color(@warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n }\n\n &-status-error,\n &-status-warning,\n &-status-success,\n &-status-validating {\n &.@{select-prefix-cls}-has-feedback {\n //.@{prefix-cls}-arrow,\n .@{select-prefix-cls}-clear {\n right: 32px;\n }\n\n .@{select-prefix-cls}-selection-selected-value {\n padding-right: 42px;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@input-affix-with-clear-btn-width: 38px;\n\n// size mixins for input\n.input-lg() {\n padding: @input-padding-vertical-lg @input-padding-horizontal-lg;\n font-size: @font-size-lg;\n}\n\n.input-sm() {\n padding: @input-padding-vertical-sm @input-padding-horizontal-sm;\n}\n\n// input status\n// == when focus or active\n.active(@borderColor: @primary-color; @hoverBorderColor: @primary-color-hover; @outlineColor: @primary-color-outline) {\n & when (@theme = dark) {\n border-color: @borderColor;\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n border-color: @hoverBorderColor;\n }\n & when not (@theme = variable) {\n box-shadow: @input-outline-offset @outline-blur-size @outline-width\n fade(@borderColor, @outline-fade);\n }\n & when (@theme = variable) {\n border-color: @hoverBorderColor;\n box-shadow: @input-outline-offset @outline-blur-size @outline-width @outlineColor;\n }\n border-right-width: @border-width-base;\n outline: 0;\n}\n\n// == when hover\n.hover(@color: @input-hover-border-color) {\n border-color: @color;\n border-right-width: @border-width-base;\n}\n\n.disabled() {\n color: @input-disabled-color;\n background-color: @input-disabled-bg;\n border-color: @input-border-color;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n\n &:hover {\n .hover(@input-border-color);\n }\n}\n\n// Basic style for input\n.input() {\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: @input-padding-vertical-base @input-padding-horizontal-base;\n color: @input-color;\n font-size: @font-size-base;\n line-height: @line-height-base;\n background-color: @input-bg;\n background-image: none;\n border: @border-width-base @border-style-base @input-border-color;\n border-radius: @control-border-radius;\n transition: all 0.3s;\n .placeholder(); // Reset placeholder\n\n &:hover {\n .hover();\n }\n\n &:focus,\n &-focused {\n .active();\n }\n\n &-disabled {\n .disabled();\n }\n\n &[disabled] {\n .disabled();\n }\n\n &-borderless {\n &,\n &:hover,\n &:focus,\n &-focused,\n &-disabled,\n &[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n }\n }\n\n // Reset height for `textarea`s\n textarea& {\n max-width: 100%; // prevent textearea resize from coming out of its container\n height: auto;\n min-height: @input-height-base;\n line-height: @line-height-base;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n }\n\n // Size\n &-lg {\n .input-lg();\n }\n\n &-sm {\n .input-sm();\n }\n}\n\n// label input\n.input-group(@inputClass) {\n position: relative;\n display: table;\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n\n // Undo padding and float of grid classes\n &[class*='col-'] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n }\n\n > [class*='col-'] {\n padding-right: 8px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n\n &-addon,\n &-wrap,\n > .@{inputClass} {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n }\n\n &-addon,\n &-wrap {\n width: 1px; // To make addon/wrap as small as possible\n white-space: nowrap;\n vertical-align: middle;\n }\n\n &-wrap > * {\n display: block !important;\n }\n\n .@{inputClass} {\n float: left;\n width: 100%;\n margin-bottom: 0;\n text-align: inherit;\n\n &:focus {\n z-index: 1; // Fix https://gw.alipayobjects.com/zos/rmsportal/DHNpoqfMXSfrSnlZvhsJ.png\n border-right-width: 1px;\n }\n\n &:hover {\n z-index: 1;\n border-right-width: 1px;\n .@{ant-prefix}-input-search-with-button & {\n z-index: 0;\n }\n }\n }\n\n &-addon {\n position: relative;\n padding: 0 @input-padding-horizontal-base;\n color: @input-color;\n font-weight: normal;\n font-size: @font-size-base;\n text-align: center;\n background-color: @input-addon-bg;\n border: @border-width-base @border-style-base @input-border-color;\n border-radius: @control-border-radius;\n transition: all 0.3s;\n\n // Reset Select's style in addon\n .@{ant-prefix}-select {\n margin: -(@input-padding-vertical-base + 1px) (-@input-padding-horizontal-base);\n\n &.@{ant-prefix}-select-single:not(.@{ant-prefix}-select-customize-input)\n .@{ant-prefix}-select-selector {\n background-color: inherit;\n border: @border-width-base @border-style-base transparent;\n box-shadow: none;\n }\n\n &-open,\n &-focused {\n .@{ant-prefix}-select-selector {\n color: @primary-color;\n }\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/31333\n .@{ant-prefix}-cascader-picker {\n margin: -9px (-@control-padding-horizontal);\n background-color: transparent;\n .@{ant-prefix}-cascader-input {\n text-align: left;\n border: 0;\n box-shadow: none;\n }\n }\n }\n\n // Reset rounded corners\n > .@{inputClass}:first-child,\n &-addon:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n // Reset Select's style in addon\n .@{ant-prefix}-select .@{ant-prefix}-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n > .@{inputClass}-affix-wrapper {\n &:not(:first-child) .@{inputClass} {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n &:not(:last-child) .@{inputClass} {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n &-addon:first-child {\n border-right: 0;\n }\n\n &-addon:last-child {\n border-left: 0;\n }\n\n > .@{inputClass}:last-child,\n &-addon:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n // Reset Select's style in addon\n .@{ant-prefix}-select .@{ant-prefix}-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n\n // Sizing options\n &-lg .@{inputClass},\n &-lg > &-addon {\n .input-lg();\n }\n\n &-sm .@{inputClass},\n &-sm > &-addon {\n .input-sm();\n }\n\n // Fix https://github.com/ant-design/ant-design/issues/5754\n &-lg .@{ant-prefix}-select-single .@{ant-prefix}-select-selector {\n height: @input-height-lg;\n }\n\n &-sm .@{ant-prefix}-select-single .@{ant-prefix}-select-selector {\n height: @input-height-sm;\n }\n\n .@{inputClass}-affix-wrapper {\n &:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n .@{ant-prefix}-input-search & {\n border-top-left-radius: @control-border-radius;\n border-bottom-left-radius: @control-border-radius;\n }\n }\n\n &:not(:first-child),\n .@{ant-prefix}-input-search &:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n\n &&-compact {\n display: block;\n .clearfix();\n\n &-addon,\n &-wrap,\n > .@{inputClass} {\n &:not(:first-child):not(:last-child) {\n border-right-width: @border-width-base;\n\n &:hover {\n z-index: 1;\n }\n\n &:focus {\n z-index: 1;\n }\n }\n }\n\n & > * {\n display: inline-block;\n float: none;\n vertical-align: top; // https://github.com/ant-design/ant-design-pro/issues/139\n border-radius: 0;\n }\n\n & > .@{inputClass}-affix-wrapper,\n & > .@{inputClass}-number-affix-wrapper,\n & > .@{ant-prefix}-picker-range {\n display: inline-flex;\n }\n\n & > *:not(:last-child) {\n margin-right: -@border-width-base;\n border-right-width: @border-width-base;\n }\n\n // Undo float for .ant-input-group .ant-input\n .@{inputClass} {\n float: none;\n }\n\n // reset border for Select, DatePicker, AutoComplete, Cascader, Mention, TimePicker, Input\n & > .@{ant-prefix}-select > .@{ant-prefix}-select-selector,\n & > .@{ant-prefix}-select-auto-complete .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker .@{ant-prefix}-input,\n & > .@{ant-prefix}-input-group-wrapper .@{ant-prefix}-input {\n border-right-width: @border-width-base;\n border-radius: 0;\n\n &:hover {\n z-index: 1;\n }\n\n &:focus {\n z-index: 1;\n }\n }\n\n & > .@{ant-prefix}-select-focused {\n z-index: 1;\n }\n\n // update z-index for arrow icon\n & > .@{ant-prefix}-select > .@{ant-prefix}-select-arrow {\n z-index: 1; // https://github.com/ant-design/ant-design/issues/20371\n }\n\n & > *:first-child,\n & > .@{ant-prefix}-select:first-child > .@{ant-prefix}-select-selector,\n & > .@{ant-prefix}-select-auto-complete:first-child .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker:first-child .@{ant-prefix}-input {\n border-top-left-radius: @control-border-radius;\n border-bottom-left-radius: @control-border-radius;\n }\n\n & > *:last-child,\n & > .@{ant-prefix}-select:last-child > .@{ant-prefix}-select-selector,\n & > .@{ant-prefix}-cascader-picker:last-child .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker-focused:last-child .@{ant-prefix}-input {\n border-right-width: @border-width-base;\n border-top-right-radius: @control-border-radius;\n border-bottom-right-radius: @control-border-radius;\n }\n\n // https://github.com/ant-design/ant-design/issues/12493\n & > .@{ant-prefix}-select-auto-complete .@{ant-prefix}-input {\n vertical-align: top;\n }\n\n .@{ant-prefix}-input-group-wrapper + .@{ant-prefix}-input-group-wrapper {\n margin-left: -1px;\n .@{ant-prefix}-input-affix-wrapper {\n border-radius: 0;\n }\n }\n\n .@{ant-prefix}-input-group-wrapper:not(:last-child) {\n &.@{ant-prefix}-input-search > .@{ant-prefix}-input-group {\n & > .@{ant-prefix}-input-group-addon > .@{ant-prefix}-input-search-button {\n border-radius: 0;\n }\n\n & > .@{ant-prefix}-input {\n border-radius: @control-border-radius 0 0 @control-border-radius;\n }\n }\n }\n }\n}\n\n.status-color(\n @prefix-cls: @input-prefix-cls;\n @text-color: @input-color;\n @border-color: @input-border-color;\n @background-color: @input-bg;\n @hoverBorderColor: @primary-color-hover;\n @outlineColor: @primary-color-outline;\n) {\n &:not(.@{prefix-cls}-disabled):not(.@{prefix-cls}-borderless).@{prefix-cls} {\n &,\n &:hover {\n background: @background-color;\n border-color: @border-color;\n }\n\n &:focus,\n &-focused {\n .active(@text-color, @hoverBorderColor, @outlineColor);\n }\n }\n}\n\n.status-color-common(\n @prefix-cls: @input-prefix-cls;\n @text-color: @input-color;\n @border-color: @input-border-color;\n @background-color: @input-bg;\n @hoverBorderColor: @primary-color-hover;\n @outlineColor: @primary-color-outline;\n) {\n .@{prefix-cls}-prefix {\n color: @text-color;\n }\n}\n\n.group-status-color(\n @prefix-cls: @input-prefix-cls;\n @text-color: @input-color;\n @border-color: @input-border-color;\n) {\n .@{prefix-cls}-group-addon {\n color: @text-color;\n border-color: @border-color;\n }\n}\n",".compact-item-border-radius(@prefix-cls, @bordered-item-cls: null) {\n & when (@bordered-item-cls = null) {\n // border-radius\n &-item:not(&-first-item):not(&-last-item).@{prefix-cls} {\n border-radius: 0;\n }\n\n &-item.@{prefix-cls}&-first-item:not(&-last-item):not(&-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &-item.@{prefix-cls}&-last-item:not(&-first-item):not(&-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n // ----------rtl for first item----------\n &-item.@{prefix-cls}&-item-rtl&-first-item:not(&-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n // ----------rtl for last item----------\n &-item.@{prefix-cls}&-item-rtl&-last-item:not(&-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n & when (not (@bordered-item-cls = null)) {\n // border-radius\n &-item:not(&-first-item):not(&-last-item).@{prefix-cls} > .@{bordered-item-cls} {\n border-radius: 0;\n }\n\n &-item&-first-item.@{prefix-cls}:not(&-last-item):not(&-item-rtl) > .@{bordered-item-cls} {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &-item&-last-item.@{prefix-cls}:not(&-first-item):not(&-item-rtl) > .@{bordered-item-cls} {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n // ----------rtl for first item----------\n &-item.@{prefix-cls}&-first-item&-item-rtl:not(&-last-item) > .@{bordered-item-cls} {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n // ----------rtl for last item----------\n &-item.@{prefix-cls}&-last-item&-item-rtl:not(&-first-item) > .@{bordered-item-cls} {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n}\n\n.compact-item-border(@prefix-cls, @bordered-item-cls: null, @special-open-cls) {\n & when (@bordered-item-cls = null) {\n // border collapse\n &-item:not(&-last-item):not(&-item-rtl) {\n margin-right: -@border-width-base;\n }\n\n // rtl border collapse\n &-item:not(&-last-item)&-item-rtl {\n margin-left: -@border-width-base;\n }\n\n &-item {\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n\n // Select has an extra focus className\n & when (not (@special-item-cls = null)) {\n &.@{special-item-cls} {\n z-index: 2;\n }\n }\n\n &[disabled] {\n z-index: 0;\n }\n }\n }\n\n & when (not (@bordered-item-cls = null)) {\n // border collapse\n &-item:not(&-last-item) {\n margin-right: -@border-width-base;\n\n &.@{prefix-cls}-compact-item-rtl {\n margin-right: 0;\n margin-left: -@border-width-base;\n }\n }\n\n &-item {\n &:hover,\n &:focus,\n &:active {\n > * {\n z-index: 2;\n }\n }\n\n // Select has an special focus-item\n & when (not (@special-item-cls = null)) {\n &.@{special-item-cls} > * {\n z-index: 2;\n }\n }\n\n &[disabled] > * {\n z-index: 0;\n }\n }\n }\n}\n\n.compact-item(@prefix-cls, @bordered-item-cls: null, @special-item-cls: null) {\n &-compact {\n .compact-item-border(@prefix-cls, @bordered-item-cls, @special-item-cls);\n\n .compact-item-border-radius(@prefix-cls, @bordered-item-cls);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n\n@select-prefix-cls: ~'@{ant-prefix}-select';\n\n.@{select-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n // ========================== Arrow ==========================\n &-arrow {\n .@{select-prefix-cls}-rtl & {\n right: initial;\n left: @control-padding-horizontal - 1px;\n }\n }\n\n // ========================== Clear ==========================\n &-clear {\n .@{select-prefix-cls}-rtl & {\n right: initial;\n left: @control-padding-horizontal - 1px;\n }\n }\n\n // ========================== Popup ==========================\n &-dropdown {\n &-rtl {\n direction: rtl;\n }\n }\n\n // ========================= Options =========================\n &-item {\n &-option {\n &-grouped {\n .@{select-prefix-cls}-dropdown-rtl & {\n padding-right: @control-padding-horizontal * 2;\n padding-left: @control-padding-horizontal;\n }\n }\n }\n }\n}\n\n// multiple\n@select-multiple-item-border-width: 1px;\n@select-multiple-item-spacing-half: ceil((@input-padding-vertical-base / 2));\n@select-multiple-padding: max(\n @input-padding-vertical-base - @select-multiple-item-border-width -\n @select-multiple-item-spacing-half,\n 0\n);\n\n.@{select-prefix-cls}-multiple {\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selector,\n &.@{select-prefix-cls}-allow-clear .@{select-prefix-cls}-selector {\n .@{select-prefix-cls}-rtl& {\n padding-right: @input-padding-vertical-base;\n padding-left: @font-size-sm + @control-padding-horizontal;\n }\n }\n\n // ======================== Selections ========================\n .@{select-prefix-cls}-selection-item {\n .@{select-prefix-cls}-rtl& {\n text-align: right;\n }\n // It's ok not to do this, but 24px makes bottom narrow in view should adjust\n &-content {\n .@{select-prefix-cls}-rtl& {\n margin-right: 0;\n margin-left: (@padding-xs / 2);\n text-align: right;\n }\n }\n }\n\n // ========================== Input ==========================\n .@{select-prefix-cls}-selection-search {\n &-mirror {\n .@{select-prefix-cls}-rtl& {\n right: 0;\n left: auto;\n }\n }\n }\n\n // ======================= Placeholder =======================\n .@{select-prefix-cls}-selection-placeholder {\n .@{select-prefix-cls}-rtl& {\n right: @input-padding-horizontal;\n left: auto;\n }\n }\n\n // ============================================================\n // == Size ==\n // ============================================================\n\n // Size small need additional set padding\n &.@{select-prefix-cls}-sm {\n .@{select-prefix-cls}-selection-placeholder {\n .@{select-prefix-cls}-rtl& {\n right: @input-padding-horizontal-sm;\n }\n }\n }\n}\n\n// single\n@selection-item-padding: ceil(@font-size-base * 1.25);\n\n.@{select-prefix-cls}-single {\n // ========================= Selector =========================\n .@{select-prefix-cls}-selector {\n .@{select-prefix-cls}-selection-item,\n .@{select-prefix-cls}-selection-placeholder {\n .@{select-prefix-cls}-rtl& {\n right: 0;\n left: 9px;\n text-align: right;\n }\n }\n }\n\n // With arrow should provides `padding-right` to show the arrow\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-search {\n .@{select-prefix-cls}-rtl& {\n right: @input-padding-horizontal-base;\n left: @input-padding-horizontal-base + @font-size-base;\n }\n }\n\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-item,\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-placeholder {\n .@{select-prefix-cls}-rtl& {\n padding-right: 0;\n padding-left: @selection-item-padding;\n }\n }\n\n // ============================================================\n // == Size ==\n // ============================================================\n\n // Size small need additional set padding\n &.@{select-prefix-cls}-sm {\n &:not(.@{select-prefix-cls}-customize-input) {\n // With arrow should provides `padding-right` to show the arrow\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-search {\n .@{select-prefix-cls}-rtl& {\n right: @input-padding-horizontal-sm - 1px;\n }\n }\n\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-item,\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-placeholder {\n .@{select-prefix-cls}-rtl& {\n padding-right: 0;\n padding-left: @font-size-base * 1.5;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@empty-prefix-cls: ~'@{ant-prefix}-empty';\n@empty-img-prefix-cls: ~'@{ant-prefix}-empty-img';\n\n.@{empty-prefix-cls} {\n margin: 0 8px;\n font-size: @empty-font-size;\n line-height: @line-height-base;\n text-align: center;\n\n &-image {\n height: 100px;\n margin-bottom: 8px;\n\n img {\n height: 100%;\n }\n\n svg {\n height: 100%;\n margin: auto;\n }\n }\n\n &-footer {\n margin-top: 16px;\n }\n\n // antd internal empty style\n &-normal {\n margin: 32px 0;\n color: @disabled-color;\n\n .@{empty-prefix-cls}-image {\n height: 40px;\n }\n }\n\n &-small {\n margin: 8px 0;\n color: @disabled-color;\n\n .@{empty-prefix-cls}-image {\n height: 35px;\n }\n }\n}\n\n.@{empty-img-prefix-cls}-default {\n // not support the definition because the less variables have no meaning\n & when (@theme = dark) {\n &-ellipse {\n fill: @white;\n fill-opacity: 0.08;\n }\n\n &-path {\n &-1 {\n fill: #262626;\n }\n\n &-2 {\n fill: url('#linearGradient-1');\n }\n\n &-3 {\n fill: #595959;\n }\n\n &-4 {\n fill: #434343;\n }\n\n &-5 {\n fill: #595959;\n }\n }\n\n &-g {\n fill: #434343;\n }\n }\n & when not (@theme = dark) {\n &-ellipse {\n fill: #f5f5f5;\n fill-opacity: 0.8;\n }\n\n &-path {\n &-1 {\n fill: #aeb8c2;\n }\n\n &-2 {\n fill: url('#linearGradient-1');\n }\n\n &-3 {\n fill: #f5f5f7;\n }\n\n &-4 {\n fill: #dce0e6;\n }\n\n &-5 {\n fill: #dce0e6;\n }\n }\n\n &-g {\n fill: @white;\n }\n }\n}\n\n.@{empty-img-prefix-cls}-simple {\n // not support the definition because the less variables have no meaning\n & when (@theme = dark) {\n &-ellipse {\n fill: @white;\n fill-opacity: 0.08;\n }\n\n &-g {\n stroke: #434343;\n }\n\n &-path {\n fill: #262626;\n stroke: #434343;\n }\n }\n & when not (@theme = dark) {\n &-ellipse {\n fill: #f5f5f5;\n }\n\n &-g {\n stroke: #d9d9d9;\n }\n\n &-path {\n fill: #fafafa;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@empty-prefix-cls: ~'@{ant-prefix}-empty';\n\n.@{empty-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@avatar-prefix-cls: ~'@{ant-prefix}-avatar';\n\n.@{avatar-prefix-cls} {\n .reset-component();\n\n position: relative;\n display: inline-block;\n overflow: hidden;\n color: @avatar-color;\n white-space: nowrap;\n text-align: center;\n vertical-align: middle;\n background: @avatar-bg;\n\n &-image {\n background: transparent;\n }\n\n .@{ant-prefix}-image-img {\n display: block;\n }\n\n .avatar-size(@avatar-size-base, @avatar-font-size-base);\n\n &-lg {\n .avatar-size(@avatar-size-lg, @avatar-font-size-lg);\n }\n\n &-sm {\n .avatar-size(@avatar-size-sm, @avatar-font-size-sm);\n }\n\n &-square {\n border-radius: @avatar-border-radius;\n }\n\n & > img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n}\n\n.avatar-size(@size, @font-size) {\n width: @size;\n height: @size;\n line-height: @size;\n border-radius: 50%;\n\n &-string {\n position: absolute;\n left: 50%;\n transform-origin: 0 center;\n }\n\n &.@{avatar-prefix-cls}-icon {\n font-size: @font-size;\n\n > .@{iconfont-css-prefix} {\n margin: 0;\n }\n }\n}\n\n@import './group';\n@import './rtl';\n\n@root-entry-name: default;",".@{avatar-prefix-cls}-group {\n display: inline-flex;\n\n .@{avatar-prefix-cls} {\n border: 1px solid @avatar-group-border-color;\n\n &:not(:first-child) {\n margin-left: @avatar-group-overlapping;\n }\n }\n\n &-popover {\n .@{ant-prefix}-avatar + .@{ant-prefix}-avatar {\n margin-left: @avatar-group-space;\n }\n }\n}\n",".@{avatar-prefix-cls}-group {\n &-rtl {\n .@{avatar-prefix-cls}:not(:first-child) {\n margin-right: @avatar-group-overlapping;\n margin-left: 0;\n }\n }\n\n &-popover.@{ant-prefix}-popover-rtl {\n .@{ant-prefix}-avatar + .@{ant-prefix}-avatar {\n margin-right: @avatar-group-space;\n margin-left: 0;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@popover-prefix-cls: ~'@{ant-prefix}-popover';\n\n@popover-arrow-rotate-width: sqrt(@popover-arrow-width * @popover-arrow-width * 2) + 6px;\n\n@popover-arrow-offset-vertical: 12px;\n@popover-arrow-offset-horizontal: 16px;\n\n.@{popover-prefix-cls} {\n .reset-component();\n\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n max-width: 100vw;\n font-weight: normal;\n white-space: normal;\n text-align: left;\n cursor: auto;\n user-select: text;\n\n &-content {\n position: relative;\n }\n\n &::after {\n position: absolute;\n background: fade(@white, 1%);\n content: '';\n }\n\n &-hidden {\n display: none;\n }\n\n // Offset the popover to account for the popover arrow\n &-placement-top,\n &-placement-topLeft,\n &-placement-topRight {\n padding-bottom: @popover-distance;\n }\n\n &-placement-right,\n &-placement-rightTop,\n &-placement-rightBottom {\n padding-left: @popover-distance;\n }\n\n &-placement-bottom,\n &-placement-bottomLeft,\n &-placement-bottomRight {\n padding-top: @popover-distance;\n }\n\n &-placement-left,\n &-placement-leftTop,\n &-placement-leftBottom {\n padding-right: @popover-distance;\n }\n\n &-inner {\n background-color: @popover-bg;\n background-clip: padding-box;\n border-radius: @border-radius-base;\n box-shadow: @box-shadow-base;\n }\n\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n /* IE10+ */\n &-inner {\n box-shadow: @box-shadow-base;\n }\n }\n\n &-title {\n min-width: @popover-min-width;\n min-height: @popover-min-height;\n margin: 0; // reset heading margin\n padding: 5px @popover-padding-horizontal 4px;\n color: @heading-color;\n font-weight: 500;\n border-bottom: 1px solid @border-color-split;\n }\n\n &-inner-content {\n width: max-content;\n max-width: 100%;\n padding: @padding-sm @popover-padding-horizontal;\n color: @popover-color;\n }\n\n &-message {\n display: flex;\n padding: 4px 0 12px;\n color: @popover-color;\n font-size: @font-size-base;\n\n &-icon {\n display: inline-block;\n margin-right: 8px;\n color: @warning-color;\n font-size: @font-size-base;\n }\n }\n\n &-buttons {\n margin-bottom: 4px;\n text-align: right;\n\n button:not(:first-child) {\n margin-left: 8px;\n }\n }\n\n // Arrows\n &-arrow {\n position: absolute;\n display: block;\n width: @popover-arrow-rotate-width;\n height: @popover-arrow-rotate-width;\n overflow: hidden;\n background: transparent;\n pointer-events: none;\n\n &-content {\n --antd-arrow-background-color: @popover-bg;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n width: @popover-arrow-width;\n height: @popover-arrow-width;\n margin: auto;\n content: '';\n pointer-events: auto;\n .roundedArrow(@popover-arrow-width, 5px);\n }\n }\n\n &-placement-top &-arrow,\n &-placement-topLeft &-arrow,\n &-placement-topRight &-arrow {\n bottom: 0;\n transform: translateY(100%);\n\n &-content {\n box-shadow: 3px 3px 7px fade(@black, 7%);\n transform: translateY((-@popover-arrow-rotate-width / 2)) rotate(45deg);\n }\n }\n\n &-placement-top &-arrow {\n left: 50%;\n transform: translateY(100%) translateX(-50%);\n }\n\n &-placement-topLeft &-arrow {\n left: @popover-arrow-offset-horizontal;\n }\n\n &-placement-topRight &-arrow {\n right: @popover-arrow-offset-horizontal;\n }\n\n &-placement-right &-arrow,\n &-placement-rightTop &-arrow,\n &-placement-rightBottom &-arrow {\n left: 0;\n transform: translateX(-100%);\n\n &-content {\n box-shadow: 3px 3px 7px fade(@black, 7%);\n transform: translateX((@popover-arrow-rotate-width / 2)) rotate(135deg);\n }\n }\n\n &-placement-right &-arrow {\n top: 50%;\n transform: translateX(-100%) translateY(-50%);\n }\n\n &-placement-rightTop &-arrow {\n top: @popover-arrow-offset-vertical;\n }\n\n &-placement-rightBottom &-arrow {\n bottom: @popover-arrow-offset-vertical;\n }\n\n &-placement-bottom &-arrow,\n &-placement-bottomLeft &-arrow,\n &-placement-bottomRight &-arrow {\n top: 0;\n transform: translateY(-100%);\n\n &-content {\n box-shadow: 2px 2px 5px fade(@black, 6%);\n transform: translateY((@popover-arrow-rotate-width / 2)) rotate(-135deg);\n }\n }\n\n &-placement-bottom &-arrow {\n left: 50%;\n transform: translateY(-100%) translateX(-50%);\n }\n\n &-placement-bottomLeft &-arrow {\n left: @popover-arrow-offset-horizontal;\n }\n\n &-placement-bottomRight &-arrow {\n right: @popover-arrow-offset-horizontal;\n }\n\n &-placement-left &-arrow,\n &-placement-leftTop &-arrow,\n &-placement-leftBottom &-arrow {\n right: 0;\n transform: translateX(100%);\n\n &-content {\n box-shadow: 3px 3px 7px fade(@black, 7%);\n transform: translateX((-@popover-arrow-rotate-width / 2)) rotate(-45deg);\n }\n }\n\n &-placement-left &-arrow {\n top: 50%;\n transform: translateX(100%) translateY(-50%);\n }\n\n &-placement-leftTop &-arrow {\n top: @popover-arrow-offset-vertical;\n }\n\n &-placement-leftBottom &-arrow {\n bottom: @popover-arrow-offset-vertical;\n }\n}\n\n.generator-popover-preset-color(@i: length(@preset-colors)) when (@i > 0) {\n .generator-popover-preset-color(@i - 1);\n @color: extract(@preset-colors, @i);\n @lightColor: '@{color}-6';\n .@{popover-prefix-cls}-@{color} {\n .@{popover-prefix-cls}-inner {\n background-color: @@lightColor;\n }\n .@{popover-prefix-cls}-arrow {\n &-content {\n background-color: @@lightColor;\n }\n }\n }\n}\n.generator-popover-preset-color();\n\n@import './rtl';\n\n@root-entry-name: default;",".roundedArrow(@width, @outer-radius, @bg-color: var(--antd-arrow-background-color)) {\n @corner-height: unit(((@outer-radius) * (1 - 1 / sqrt(2))));\n\n @width-without-unit: unit(@width);\n @outer-radius-without-unit: unit(@outer-radius);\n @inner-radius-without-unit: unit(@arrow-border-radius);\n\n @a-x: @width-without-unit - @corner-height;\n @a-y: 2 * @width-without-unit + @corner-height;\n @b-x: @a-x + @outer-radius-without-unit * (1 / sqrt(2));\n @b-y: 2 * @width-without-unit;\n @c-x: 2 * @width-without-unit - @inner-radius-without-unit;\n @c-y: 2 * @width-without-unit;\n @d-x: 2 * @width-without-unit;\n @d-y: 2 * @width-without-unit - @inner-radius-without-unit;\n @e-x: 2 * @width-without-unit;\n @e-y: @f-y + @outer-radius-without-unit * (1 / sqrt(2));\n @f-x: 2 * @width-without-unit + @corner-height;\n @f-y: @width-without-unit - @corner-height;\n @g-x: @f-x - 1;\n @g-y: @f-y;\n @h-x: @a-x;\n @h-y: @a-y - 1;\n\n border-radius: 0 0 @arrow-border-radius;\n pointer-events: none;\n\n &::before {\n position: absolute;\n top: -@width;\n left: -@width;\n width: @width * 3;\n height: @width * 3;\n background: @bg-color;\n // Hack firefox: https://github.com/ant-design/ant-design/pull/33710#issuecomment-1015287825\n background-repeat: no-repeat;\n background-position: ceil(-@width + 1px) ceil(-@width + 1px);\n content: '';\n clip-path: inset(33% 33%); // For browsers that do not support path()\n clip-path: path(\n 'M @{a-x} @{a-y} A @{outer-radius-without-unit} @{outer-radius-without-unit} 0 0 1 @{b-x} @{b-y} L @{c-x} @{c-y} A @{inner-radius-without-unit} @{inner-radius-without-unit} 0 0 0 @{d-x} @{d-y} L @{e-x} @{e-y} A @{outer-radius-without-unit} @{outer-radius-without-unit} 0 0 1 @{f-x} @{f-y} L @{g-x} @{g-y} L @{h-x} @{h-y} Z'\n );\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@popover-prefix-cls: ~'@{ant-prefix}-popover';\n\n.@{popover-prefix-cls} {\n &-rtl {\n direction: rtl;\n text-align: right;\n }\n\n &-message {\n &-icon {\n .@{popover-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n\n &-title {\n .@{popover-prefix-cls}-rtl & {\n padding-left: @padding-md;\n }\n }\n }\n\n &-buttons {\n .@{popover-prefix-cls}-rtl & {\n text-align: left;\n }\n\n button {\n .@{popover-prefix-cls}-rtl & {\n margin-right: 8px;\n margin-left: 0;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@backtop-prefix-cls: ~'@{ant-prefix}-back-top';\n\n.@{backtop-prefix-cls} {\n .reset-component();\n\n position: fixed;\n right: 100px;\n bottom: 50px;\n z-index: @zindex-back-top;\n width: 40px;\n height: 40px;\n cursor: pointer;\n\n &:empty {\n display: none;\n }\n\n &-rtl {\n right: auto;\n left: 100px;\n direction: rtl;\n }\n\n &-content {\n width: 40px;\n height: 40px;\n overflow: hidden;\n color: @back-top-color;\n text-align: center;\n background-color: @back-top-bg;\n border-radius: 20px;\n transition: all 0.3s;\n\n &:hover {\n background-color: @back-top-hover-bg;\n transition: all 0.3s;\n }\n }\n\n &-icon {\n font-size: 24px;\n line-height: 40px;\n }\n}\n\n@import './responsive';\n\n@root-entry-name: default;","@media screen and (max-width: @screen-md) {\n .@{backtop-prefix-cls} {\n right: 60px;\n\n &-rtl {\n right: auto;\n left: 60px;\n }\n }\n}\n\n@media screen and (max-width: @screen-xs) {\n .@{backtop-prefix-cls} {\n right: 20px;\n\n &-rtl {\n right: auto;\n left: 20px;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@badge-prefix-cls: ~'@{ant-prefix}-badge';\n@number-prefix-cls: ~'@{ant-prefix}-scroll-number';\n\n.@{badge-prefix-cls} {\n .reset-component();\n\n position: relative;\n display: inline-block;\n line-height: 1;\n\n &-count {\n z-index: @zindex-badge;\n min-width: @badge-height;\n height: @badge-height;\n padding: 0 6px;\n color: @badge-text-color;\n font-weight: @badge-font-weight;\n font-size: @badge-font-size;\n line-height: @badge-height;\n white-space: nowrap;\n text-align: center;\n background: @badge-color;\n border-radius: (@badge-height / 2);\n box-shadow: 0 0 0 1px @shadow-color-inverse;\n\n a,\n a:hover {\n color: @badge-text-color;\n }\n }\n\n &-count-sm {\n min-width: @badge-height-sm;\n height: @badge-height-sm;\n padding: 0;\n font-size: @badge-font-size-sm;\n line-height: @badge-height-sm;\n border-radius: (@badge-height-sm / 2);\n }\n\n &-multiple-words {\n padding: 0 8px;\n }\n\n &-dot {\n z-index: @zindex-badge;\n width: @badge-dot-size;\n min-width: @badge-dot-size;\n height: @badge-dot-size;\n background: @highlight-color;\n border-radius: 100%;\n box-shadow: 0 0 0 1px @shadow-color-inverse;\n }\n\n // Tricky way to resolve https://github.com/ant-design/ant-design/issues/30088\n &-dot.@{number-prefix-cls} {\n transition: background 1.5s;\n }\n\n &-count,\n &-dot,\n .@{number-prefix-cls}-custom-component {\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n transform-origin: 100% 0%;\n\n &.@{iconfont-css-prefix}-spin {\n animation: antBadgeLoadingCircle 1s infinite linear;\n }\n }\n\n &-status {\n line-height: inherit;\n vertical-align: baseline;\n\n &-dot {\n position: relative;\n top: -1px;\n display: inline-block;\n width: @badge-status-size;\n height: @badge-status-size;\n vertical-align: middle;\n border-radius: 50%;\n }\n\n &-success {\n background-color: @success-color;\n }\n\n &-processing {\n position: relative;\n background-color: @processing-color;\n\n &::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid @processing-color;\n border-radius: 50%;\n animation: antStatusProcessing 1.2s infinite ease-in-out;\n content: '';\n }\n }\n\n &-default {\n background-color: @normal-color;\n }\n\n &-error {\n background-color: @error-color;\n }\n\n &-warning {\n background-color: @warning-color;\n }\n\n // mixin to iterate over colors and create CSS class for each one\n .make-color-classes(@i: length(@preset-colors)) when (@i > 0) {\n .make-color-classes(@i - 1);\n @color: extract(@preset-colors, @i);\n @darkColor: '@{color}-6';\n &-@{color} {\n background: @@darkColor;\n }\n }\n .make-color-classes();\n\n &-text {\n margin-left: 8px;\n color: @text-color;\n font-size: @font-size-base;\n }\n }\n\n &-zoom-appear,\n &-zoom-enter {\n animation: antZoomBadgeIn @animation-duration-slow @ease-out-back;\n animation-fill-mode: both;\n }\n\n &-zoom-leave {\n animation: antZoomBadgeOut @animation-duration-slow @ease-in-back;\n animation-fill-mode: both;\n }\n\n &-not-a-wrapper {\n .@{badge-prefix-cls}-zoom-appear,\n .@{badge-prefix-cls}-zoom-enter {\n animation: antNoWrapperZoomBadgeIn @animation-duration-slow @ease-out-back;\n }\n\n .@{badge-prefix-cls}-zoom-leave {\n animation: antNoWrapperZoomBadgeOut @animation-duration-slow @ease-in-back;\n }\n\n &:not(.@{badge-prefix-cls}-status) {\n vertical-align: middle;\n }\n\n .@{number-prefix-cls}-custom-component,\n .@{badge-prefix-cls}-count {\n transform: none;\n }\n\n .@{number-prefix-cls}-custom-component,\n .@{number-prefix-cls} {\n position: relative;\n top: auto;\n display: block;\n transform-origin: 50% 50%;\n }\n }\n}\n\n@keyframes antStatusProcessing {\n 0% {\n transform: scale(0.8);\n opacity: 0.5;\n }\n\n 100% {\n transform: scale(2.4);\n opacity: 0;\n }\n}\n\n// Safari will blink with transform when inner element has absolute style.\n.safari-fix-motion() {\n /* stylelint-disable property-no-vendor-prefix */\n -webkit-transform-style: preserve-3d;\n -webkit-backface-visibility: hidden;\n /* stylelint-enable property-no-vendor-prefix */\n}\n\n.@{number-prefix-cls} {\n overflow: hidden;\n direction: ltr;\n\n &-only {\n position: relative;\n display: inline-block;\n height: @badge-height;\n transition: all @animation-duration-slow @ease-in-out;\n .safari-fix-motion;\n\n > p.@{number-prefix-cls}-only-unit {\n height: @badge-height;\n margin: 0;\n .safari-fix-motion;\n }\n }\n\n &-symbol {\n vertical-align: top;\n }\n}\n\n@keyframes antZoomBadgeIn {\n 0% {\n transform: scale(0) translate(50%, -50%);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1) translate(50%, -50%);\n }\n}\n\n@keyframes antZoomBadgeOut {\n 0% {\n transform: scale(1) translate(50%, -50%);\n }\n\n 100% {\n transform: scale(0) translate(50%, -50%);\n opacity: 0;\n }\n}\n\n@keyframes antNoWrapperZoomBadgeIn {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes antNoWrapperZoomBadgeOut {\n 0% {\n transform: scale(1);\n }\n\n 100% {\n transform: scale(0);\n opacity: 0;\n }\n}\n\n@keyframes antBadgeLoadingCircle {\n 0% {\n transform-origin: 50%;\n }\n\n 100% {\n transform: translate(50%, -50%) rotate(360deg);\n transform-origin: 50%;\n }\n}\n\n@import './ribbon';\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@ribbon-prefix-cls: ~'@{ant-prefix}-ribbon';\n@ribbon-wrapper-prefix-cls: ~'@{ant-prefix}-ribbon-wrapper';\n\n.@{ribbon-wrapper-prefix-cls} {\n position: relative;\n}\n\n.@{ribbon-prefix-cls} {\n .reset-component();\n\n position: absolute;\n top: 8px;\n height: 22px;\n padding: 0 8px;\n color: @badge-text-color;\n line-height: 22px;\n white-space: nowrap;\n background-color: @primary-color;\n border-radius: @border-radius-sm;\n\n &-text {\n color: @white;\n }\n\n &-corner {\n position: absolute;\n top: 100%;\n width: 8px;\n height: 8px;\n color: currentcolor;\n border: 4px solid;\n transform: scaleY(0.75);\n transform-origin: top;\n // If not support IE 11, use filter: brightness(75%) instead\n &::after {\n position: absolute;\n top: -4px;\n left: -4px;\n width: inherit;\n height: inherit;\n color: rgba(0, 0, 0, 0.25);\n border: inherit;\n content: '';\n }\n }\n\n // colors\n // mixin to iterate over colors and create CSS class for each one\n .make-color-classes(@i: length(@preset-colors)) when (@i > 0) {\n .make-color-classes(@i - 1);\n @color: extract(@preset-colors, @i);\n @darkColor: '@{color}-6';\n &-color-@{color} {\n color: @@darkColor;\n background: @@darkColor;\n }\n }\n .make-color-classes();\n\n // placement\n &.@{ribbon-prefix-cls}-placement-end {\n right: -8px;\n border-bottom-right-radius: 0;\n .@{ribbon-prefix-cls}-corner {\n right: 0;\n border-color: currentcolor transparent transparent currentcolor;\n }\n }\n\n &.@{ribbon-prefix-cls}-placement-start {\n left: -8px;\n border-bottom-left-radius: 0;\n .@{ribbon-prefix-cls}-corner {\n left: 0;\n border-color: currentcolor currentcolor transparent transparent;\n }\n }\n}\n",".@{badge-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &:not(&-not-a-wrapper) &-count,\n &:not(&-not-a-wrapper) &-dot,\n &:not(&-not-a-wrapper) .@{number-prefix-cls}-custom-component {\n .@{badge-prefix-cls}-rtl& {\n right: auto;\n left: 0;\n direction: ltr;\n transform: translate(-50%, -50%);\n transform-origin: 0% 0%;\n }\n }\n\n &-rtl&:not(&-not-a-wrapper) .@{number-prefix-cls}-custom-component {\n right: auto;\n left: 0;\n transform: translate(-50%, -50%);\n transform-origin: 0% 0%;\n }\n\n &-status {\n &-text {\n .@{badge-prefix-cls}-rtl & {\n margin-right: 8px;\n margin-left: 0;\n }\n }\n }\n\n &:not(&-not-a-wrapper).@{badge-prefix-cls}-rtl {\n .@{badge-prefix-cls}-zoom-appear,\n .@{badge-prefix-cls}-zoom-enter {\n animation-name: antZoomBadgeInRtl;\n }\n\n .@{badge-prefix-cls}-zoom-leave {\n animation-name: antZoomBadgeOutRtl;\n }\n }\n}\n\n.@{ribbon-prefix-cls}-rtl {\n direction: rtl;\n &.@{ribbon-prefix-cls}-placement-end {\n right: unset;\n left: -8px;\n border-bottom-right-radius: @border-radius-sm;\n border-bottom-left-radius: 0;\n .@{ribbon-prefix-cls}-corner {\n right: unset;\n left: 0;\n border-color: currentcolor currentcolor transparent transparent;\n\n &::after {\n border-color: currentcolor currentcolor transparent transparent;\n }\n }\n }\n &.@{ribbon-prefix-cls}-placement-start {\n right: -8px;\n left: unset;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: @border-radius-sm;\n .@{ribbon-prefix-cls}-corner {\n right: 0;\n left: unset;\n border-color: currentcolor transparent transparent currentcolor;\n\n &::after {\n border-color: currentcolor transparent transparent currentcolor;\n }\n }\n }\n}\n\n@keyframes antZoomBadgeInRtl {\n 0% {\n transform: scale(0) translate(-50%, -50%);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1) translate(-50%, -50%);\n }\n}\n\n@keyframes antZoomBadgeOutRtl {\n 0% {\n transform: scale(1) translate(-50%, -50%);\n }\n\n 100% {\n transform: scale(0) translate(-50%, -50%);\n opacity: 0;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@breadcrumb-prefix-cls: ~'@{ant-prefix}-breadcrumb';\n\n.@{breadcrumb-prefix-cls} {\n .reset-component();\n\n color: @breadcrumb-base-color;\n font-size: @breadcrumb-font-size;\n\n .@{iconfont-css-prefix} {\n font-size: @breadcrumb-icon-font-size;\n }\n\n ol {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n a {\n color: @breadcrumb-link-color;\n transition: color 0.3s;\n\n &:hover {\n color: @breadcrumb-link-color-hover;\n }\n }\n\n li:last-child {\n color: @breadcrumb-last-item-color;\n\n a {\n color: @breadcrumb-last-item-color;\n }\n }\n\n li:last-child > &-separator {\n display: none;\n }\n\n &-separator {\n margin: @breadcrumb-separator-margin;\n color: @breadcrumb-separator-color;\n }\n\n &-link {\n > .@{iconfont-css-prefix} + span,\n > .@{iconfont-css-prefix} + a {\n margin-left: 4px;\n }\n }\n\n &-overlay-link {\n > .@{iconfont-css-prefix} {\n margin-left: 4px;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{breadcrumb-prefix-cls} {\n &-rtl {\n .clearfix();\n direction: rtl;\n\n > span {\n float: right;\n }\n }\n\n &-link {\n > .@{iconfont-css-prefix} + span,\n > .@{iconfont-css-prefix} + a {\n .@{breadcrumb-prefix-cls}-rtl & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n }\n\n &-overlay-link {\n > .@{iconfont-css-prefix} {\n .@{breadcrumb-prefix-cls}-rtl & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@dropdown-prefix-cls: ~'@{ant-prefix}-dropdown';\n\n.@{dropdown-prefix-cls}-menu-item {\n &&-danger {\n color: @error-color;\n\n &:hover {\n color: @text-color-inverse;\n background-color: @error-color;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './status';\n\n@dropdown-prefix-cls: ~'@{ant-prefix}-dropdown';\n\n.@{dropdown-prefix-cls} {\n .reset-component();\n\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: @zindex-dropdown;\n display: block;\n\n &::before {\n position: absolute;\n top: -@popover-distance + @popover-arrow-width;\n right: 0;\n bottom: -@popover-distance + @popover-arrow-width;\n left: -7px;\n z-index: -9999;\n opacity: 0.0001;\n content: ' ';\n }\n\n &-wrap {\n position: relative;\n\n .@{ant-prefix}-btn > .@{iconfont-css-prefix}-down {\n font-size: 10px;\n }\n\n .@{iconfont-css-prefix}-down::before {\n transition: transform @animation-duration-base;\n }\n }\n\n &-wrap-open {\n .@{iconfont-css-prefix}-down::before {\n transform: rotate(180deg);\n }\n }\n\n &-hidden,\n &-menu-hidden,\n &-menu-submenu-hidden {\n display: none;\n }\n\n // Offset the popover to account for the dropdown arrow\n &-show-arrow&-placement-topLeft,\n &-show-arrow&-placement-top,\n &-show-arrow&-placement-topRight {\n padding-bottom: @popover-distance;\n }\n\n &-show-arrow&-placement-bottomLeft,\n &-show-arrow&-placement-bottom,\n &-show-arrow&-placement-bottomRight {\n padding-top: @popover-distance;\n }\n\n // Arrows\n // .popover-arrow is outer, .popover-arrow:after is inner\n\n &-arrow {\n position: absolute;\n z-index: 1; // lift it up so the menu wouldn't cask shadow on it\n display: block;\n width: @popover-arrow-width;\n height: @popover-arrow-width;\n .roundedArrow(@popover-arrow-width, 5px, @popover-bg);\n }\n\n &-placement-top > &-arrow,\n &-placement-topLeft > &-arrow,\n &-placement-topRight > &-arrow {\n bottom: @popover-arrow-width * sqrt((1 / 2)) + 2px;\n box-shadow: 3px 3px 7px -3px fade(@black, 10%);\n transform: rotate(45deg);\n }\n\n &-placement-top > &-arrow {\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n }\n\n &-placement-topLeft > &-arrow {\n left: 16px;\n }\n\n &-placement-topRight > &-arrow {\n right: 16px;\n }\n\n &-placement-bottom > &-arrow,\n &-placement-bottomLeft > &-arrow,\n &-placement-bottomRight > &-arrow {\n top: (@popover-arrow-width + 2px) * sqrt((1 / 2));\n box-shadow: 2px 2px 5px -2px fade(@black, 10%);\n transform: rotate(-135deg) translateY(-0.5px);\n }\n\n &-placement-bottom > &-arrow {\n left: 50%;\n transform: translateX(-50%) rotate(-135deg) translateY(-0.5px);\n }\n\n &-placement-bottomLeft > &-arrow {\n left: 16px;\n }\n\n &-placement-bottomRight > &-arrow {\n right: 16px;\n }\n\n &-menu {\n position: relative;\n margin: 0;\n padding: @dropdown-edge-child-vertical-padding 0;\n text-align: left;\n list-style-type: none;\n background-color: @dropdown-menu-bg;\n background-clip: padding-box;\n border-radius: @border-radius-base;\n outline: none;\n box-shadow: @box-shadow-base;\n\n &-item-group-title {\n padding: 5px @control-padding-horizontal;\n color: @text-color-secondary;\n transition: all @animation-duration-slow;\n }\n\n &-submenu-popup {\n position: absolute;\n z-index: @zindex-dropdown;\n background: transparent;\n box-shadow: none;\n transform-origin: 0 0;\n\n ul,\n li {\n list-style: none;\n }\n\n ul {\n margin-right: 0.3em;\n margin-left: 0.3em;\n }\n }\n\n // ======================= Item Content =======================\n &-item {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n &-item-icon {\n min-width: 12px;\n margin-right: 8px;\n font-size: @font-size-sm;\n }\n\n &-title-content {\n flex: auto;\n\n > a {\n color: inherit;\n transition: all @animation-duration-slow;\n\n &:hover {\n color: inherit;\n }\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n content: '';\n }\n }\n }\n\n // =========================== Item ===========================\n &-item,\n &-submenu-title {\n clear: both;\n margin: 0;\n padding: @dropdown-vertical-padding @control-padding-horizontal;\n color: @text-color;\n font-weight: normal;\n font-size: @dropdown-font-size;\n line-height: @dropdown-line-height;\n cursor: pointer;\n transition: all @animation-duration-slow;\n\n &:first-child {\n & when (@dropdown-edge-child-vertical-padding = 0) {\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n }\n\n &:last-child {\n & when (@dropdown-edge-child-vertical-padding = 0) {\n border-radius: 0 0 @border-radius-base @border-radius-base;\n }\n }\n\n &-selected {\n color: @dropdown-selected-color;\n background-color: @dropdown-selected-bg;\n }\n\n &:hover,\n &&-active {\n background-color: @item-hover-bg;\n }\n\n &&-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n\n &:hover {\n color: @disabled-color;\n background-color: @dropdown-menu-submenu-disabled-bg;\n cursor: not-allowed;\n }\n\n a {\n pointer-events: none;\n }\n }\n\n &-divider {\n height: 1px;\n margin: 4px 0;\n overflow: hidden;\n line-height: 0;\n background-color: @border-color-split;\n }\n\n .@{dropdown-prefix-cls}-menu-submenu-expand-icon {\n position: absolute;\n right: @padding-xs;\n\n .@{dropdown-prefix-cls}-menu-submenu-arrow-icon {\n margin-right: 0 !important;\n color: @text-color-secondary;\n font-size: 10px;\n font-style: normal;\n }\n }\n }\n\n &-item-group-list {\n margin: 0 8px;\n padding: 0;\n list-style: none;\n }\n\n &-submenu-title {\n padding-right: @control-padding-horizontal + @font-size-sm;\n }\n\n &-submenu-vertical {\n position: relative;\n }\n\n &-submenu-vertical > & {\n position: absolute;\n top: 0;\n left: 100%;\n min-width: 100%;\n margin-left: 4px;\n transform-origin: 0 0;\n }\n\n &-submenu&-submenu-disabled .@{dropdown-prefix-cls}-menu-submenu-title {\n &,\n .@{dropdown-prefix-cls}-menu-submenu-arrow-icon {\n color: @disabled-color;\n background-color: @dropdown-menu-submenu-disabled-bg;\n cursor: not-allowed;\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/19264\n &-submenu-selected &-submenu-title {\n color: @primary-color;\n }\n }\n\n &.@{ant-prefix}-slide-down-enter.@{ant-prefix}-slide-down-enter-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-down-appear.@{ant-prefix}-slide-down-appear-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-down-enter.@{ant-prefix}-slide-down-enter-active&-placement-bottom,\n &.@{ant-prefix}-slide-down-appear.@{ant-prefix}-slide-down-appear-active&-placement-bottom,\n &.@{ant-prefix}-slide-down-enter.@{ant-prefix}-slide-down-enter-active&-placement-bottomRight,\n &.@{ant-prefix}-slide-down-appear.@{ant-prefix}-slide-down-appear-active&-placement-bottomRight {\n animation-name: antSlideUpIn;\n }\n\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-top,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-top,\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-topRight,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-topRight {\n animation-name: antSlideDownIn;\n }\n\n &.@{ant-prefix}-slide-down-leave.@{ant-prefix}-slide-down-leave-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-down-leave.@{ant-prefix}-slide-down-leave-active&-placement-bottom,\n &.@{ant-prefix}-slide-down-leave.@{ant-prefix}-slide-down-leave-active&-placement-bottomRight {\n animation-name: antSlideUpOut;\n }\n\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-top,\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-topRight {\n animation-name: antSlideDownOut;\n }\n}\n\n.@{dropdown-prefix-cls}-trigger,\n.@{dropdown-prefix-cls}-link,\n.@{dropdown-prefix-cls}-button {\n > .@{iconfont-css-prefix}.@{iconfont-css-prefix}-down {\n font-size: 10px;\n vertical-align: baseline;\n }\n}\n\n.@{dropdown-prefix-cls}-button {\n white-space: nowrap;\n\n &.@{ant-prefix}-btn-group > .@{ant-prefix}-btn {\n &-loading,\n &-loading + .@{ant-prefix}-btn {\n cursor: default;\n pointer-events: none;\n }\n\n &-loading + .@{ant-prefix}-btn::before {\n display: block;\n }\n\n &:last-child:not(:first-child):not(.@{ant-prefix}-btn-icon-only) {\n padding-right: @padding-xs;\n padding-left: @padding-xs;\n }\n }\n}\n\n// https://github.com/ant-design/ant-design/issues/4903\n.@{dropdown-prefix-cls}-menu-dark {\n &,\n .@{dropdown-prefix-cls}-menu {\n background: @menu-dark-bg;\n }\n .@{dropdown-prefix-cls}-menu-item,\n .@{dropdown-prefix-cls}-menu-submenu-title,\n .@{dropdown-prefix-cls}-menu-item > a,\n .@{dropdown-prefix-cls}-menu-item > .@{iconfont-css-prefix} + span > a {\n color: @text-color-secondary-dark;\n .@{dropdown-prefix-cls}-menu-submenu-arrow::after {\n color: @text-color-secondary-dark;\n }\n\n &:hover {\n color: @text-color-inverse;\n background: transparent;\n }\n }\n .@{dropdown-prefix-cls}-menu-item-selected {\n &,\n &:hover,\n > a {\n color: @text-color-inverse;\n background: @primary-color;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@dropdown-prefix-cls: ~'@{ant-prefix}-dropdown';\n\n.@{dropdown-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &::before {\n .@{dropdown-prefix-cls}-rtl& {\n right: -7px;\n left: 0;\n }\n }\n\n &-menu {\n &&-rtl {\n direction: rtl;\n text-align: right;\n }\n\n &-item-group-title {\n .@{dropdown-prefix-cls}-rtl &,\n .@{dropdown-prefix-cls}-menu-submenu-rtl & {\n direction: rtl;\n text-align: right;\n }\n }\n\n &-submenu-popup {\n &.@{dropdown-prefix-cls}-menu-submenu-rtl {\n transform-origin: 100% 0;\n }\n\n ul,\n li {\n .@{dropdown-prefix-cls}-rtl & {\n text-align: right;\n }\n }\n }\n\n &-item,\n &-submenu-title {\n .@{dropdown-prefix-cls}-rtl & {\n text-align: right;\n }\n\n > .@{iconfont-css-prefix}:first-child,\n > span > .@{iconfont-css-prefix}:first-child {\n .@{dropdown-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n\n .@{dropdown-prefix-cls}-menu-submenu-expand-icon {\n .@{dropdown-prefix-cls}-rtl & {\n right: auto;\n left: @padding-xs;\n }\n\n .@{dropdown-prefix-cls}-menu-submenu-arrow-icon {\n .@{dropdown-prefix-cls}-rtl & {\n margin-left: 0 !important;\n transform: scaleX(-1);\n }\n }\n }\n }\n\n &-submenu-title {\n .@{dropdown-prefix-cls}-rtl & {\n padding-right: @control-padding-horizontal;\n padding-left: @control-padding-horizontal + @font-size-sm;\n }\n }\n\n &-submenu-vertical > & {\n .@{dropdown-prefix-cls}-rtl & {\n right: 100%;\n left: 0;\n margin-right: 4px;\n margin-left: 0;\n }\n }\n }\n}\n","// mixins for button\n// ------------------------\n.button-size(@height; @padding-horizontal; @font-size; @border-radius) {\n @padding-vertical: max(\n (round(((@height - @font-size * @line-height-base) / 2) * 10) / 10) - @border-width-base,\n 0\n );\n height: @height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n border-radius: @border-radius;\n}\n\n.button-color(@color; @background; @border) {\n color: @color;\n border-color: @border; // a inside Button which only work in Chrome\n & when not(@background = null) {\n background: @background;\n }\n // http://stackoverflow.com/a/17253457\n > a:only-child {\n color: currentcolor;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n }\n }\n}\n\n.button-disabled(@color: @btn-disable-color; @background: @btn-disable-bg; @border: @btn-disable-border) {\n &[disabled] {\n &,\n &:hover,\n &:focus,\n &:active {\n .button-color(@color; @background; @border);\n\n text-shadow: none;\n box-shadow: none;\n }\n }\n}\n\n.button-variant-primary(@color; @background; @backgroundHover: yellow; @backgroundActive: yellow) {\n .button-color(@color; @background; @background);\n\n text-shadow: @btn-text-shadow;\n box-shadow: @btn-primary-shadow;\n\n &:hover,\n &:focus {\n & when (@theme = dark) {\n .button-color(\n @color; ~`colorPalette('@{background}', 7) `; ~`colorPalette('@{background}', 7) `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n @color; ~`colorPalette('@{background}', 5) `; ~`colorPalette('@{background}', 5) `\n );\n }\n & when (@theme = variable) {\n .button-color(@color; @backgroundHover; @backgroundHover);\n }\n }\n\n &:active {\n & when (@theme = dark) {\n .button-color(\n @color; ~`colorPalette('@{background}', 5) `; ~`colorPalette('@{background}', 5) `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n @color; ~`colorPalette('@{background}', 7) `; ~`colorPalette('@{background}', 7) `\n );\n }\n & when (@theme = variable) {\n .button-color(@color; @backgroundActive; @backgroundActive);\n }\n }\n\n .button-disabled();\n}\n\n.button-variant-other(@color; @background; @border) {\n .button-color(@color; @background; @border);\n\n &:hover,\n &:focus {\n & when (@theme = dark) {\n .button-color(@primary-5; @background; @primary-5);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{btn-primary-bg}', 5) `; @background;\n ~`colorPalette('@{btn-primary-bg}', 5) `\n );\n }\n & when (@theme = variable) {\n .button-color(@primary-color-hover; @background; @primary-color-hover);\n }\n }\n\n &:active {\n & when (@theme = dark) {\n .button-color(@primary-7; @background; @primary-7);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{btn-primary-bg}', 7) `; @background;\n ~`colorPalette('@{btn-primary-bg}', 7) `\n );\n }\n & when (@theme = variable) {\n .button-color(@primary-color-active; @background; @primary-color-active);\n }\n }\n .button-disabled();\n}\n\n.button-variant-ghost(@color; @border; @borderHover: yellow; @borderActive: yellow) {\n .button-color(@color; null; @border);\n text-shadow: none;\n\n &:hover,\n &:focus {\n & when (@border = transparent) {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{color}', 7) `; null; transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{color}', 5) `; null; transparent);\n }\n & when (@theme = variable) {\n .button-color(@borderActive; transparent; transparent);\n }\n }\n & when not (@border = transparent) {\n & when (@theme = dark) {\n .button-color(\n ~`colorPalette('@{color}', 7) `; null; ~`colorPalette('@{color}', 7) `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{color}', 5) `; null; ~`colorPalette('@{color}', 5) `\n );\n }\n & when (@theme = variable) {\n .button-color(@borderHover; transparent; @borderHover);\n }\n }\n }\n\n &:active {\n & when (@border = transparent) {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{color}', 5) `; null; transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{color}', 7) `; null; transparent);\n }\n & when (@theme = variable) {\n .button-color(@borderActive; transparent; transparent);\n }\n }\n & when not (@border = transparent) {\n & when (@theme = dark) {\n .button-color(\n ~`colorPalette('@{color}', 5) `; null; ~`colorPalette('@{color}', 5) `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{color}', 7) `; null; ~`colorPalette('@{color}', 7) `\n );\n }\n & when (@theme = variable) {\n .button-color(@borderActive; transparent; @borderActive);\n }\n }\n }\n .button-disabled();\n}\n\n.button-group-base(@btnClassName) {\n position: relative;\n display: inline-flex;\n > .@{btnClassName},\n > span > .@{btnClassName} {\n position: relative;\n\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n\n &[disabled] {\n z-index: 0;\n }\n }\n .@{btnClassName}-icon-only {\n font-size: @font-size-base;\n }\n}\n// Base styles of buttons\n// --------------------------------------------------\n.btn() {\n position: relative;\n display: inline-block;\n font-weight: @btn-font-weight;\n white-space: nowrap;\n text-align: center;\n background-image: none;\n border: @btn-border-width @btn-border-style transparent;\n box-shadow: @btn-shadow;\n cursor: pointer;\n transition: all 0.3s @ease-in-out;\n user-select: none;\n touch-action: manipulation;\n .button-size(\n @btn-height-base; @btn-padding-horizontal-base; @font-size-base; @btn-border-radius-base\n );\n > .@{iconfont-css-prefix} {\n line-height: 1;\n }\n\n &,\n &:active,\n &:focus {\n outline: 0;\n }\n\n &:not([disabled]):hover {\n text-decoration: none;\n }\n\n &:not([disabled]):active {\n outline: 0;\n box-shadow: none;\n }\n\n &[disabled] {\n cursor: not-allowed;\n\n > * {\n pointer-events: none;\n }\n }\n\n &-lg {\n .button-size(\n @btn-height-lg; @btn-padding-horizontal-lg; @btn-font-size-lg; @btn-border-radius-base\n );\n }\n\n &-sm {\n .button-size(\n @btn-height-sm; @btn-padding-horizontal-sm; @btn-font-size-sm; @btn-border-radius-sm\n );\n }\n}\n// primary button style\n.btn-primary() {\n .button-variant-primary(@btn-primary-color; @btn-primary-bg; @primary-color-hover; @primary-color-active);\n}\n// default button style\n.btn-default() {\n .button-variant-other(@btn-default-color; @btn-default-bg; @btn-default-border; );\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: @btn-default-bg;\n }\n}\n// ghost button style\n.btn-ghost() {\n .button-variant-other(@btn-ghost-color, @btn-ghost-bg, @btn-ghost-border);\n}\n// dashed button style\n.btn-dashed() {\n .button-variant-other(@btn-default-color, @btn-default-bg, @btn-default-border);\n border-style: dashed;\n}\n// danger button style\n.btn-danger() {\n .button-variant-primary(@btn-danger-color, @btn-danger-bg, @error-color-hover, @error-color-active);\n}\n// danger default button style\n.btn-danger-default() {\n .button-color(@error-color, @btn-default-bg, @error-color);\n\n &:hover,\n &:focus {\n & when (@theme = dark) {\n .button-color(\n ~`colorPalette('@{error-color}', 7) `; @btn-default-bg; ~`colorPalette('@{error-color}', 7)\n `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{error-color}', 5) `; @btn-default-bg; ~`colorPalette('@{error-color}', 5)\n `\n );\n }\n & when (@theme = variable) {\n .button-color(@error-color-hover, @btn-default-bg, @error-color-hover);\n }\n }\n\n &:active {\n & when (@theme = dark) {\n .button-color(\n ~`colorPalette('@{error-color}', 5) `; @btn-default-bg; ~`colorPalette('@{error-color}', 5)\n `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{error-color}', 7) `; @btn-default-bg; ~`colorPalette('@{error-color}', 7)\n `\n );\n }\n & when (@theme = variable) {\n .button-color(@error-color-active, @btn-default-bg, @error-color-active);\n }\n }\n .button-disabled();\n}\n// danger link button style\n.btn-danger-link() {\n .button-variant-other(@error-color, transparent, transparent);\n box-shadow: none;\n\n &:hover,\n &:focus {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{error-color}', 7) `; transparent; transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{error-color}', 5) `; transparent; transparent);\n }\n & when (@theme = variable) {\n .button-color(@error-color-hover; transparent; transparent);\n }\n }\n\n &:active {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{error-color}', 5) `; transparent; transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{error-color}', 7) `; transparent; transparent);\n }\n & when (@theme = variable) {\n .button-color(@error-color-active; transparent; transparent);\n }\n }\n .button-disabled(@disabled-color; transparent; transparent);\n}\n// link button style\n.btn-link() {\n .button-variant-other(@link-color, transparent, transparent);\n box-shadow: none;\n\n &:hover {\n background: @btn-link-hover-bg;\n }\n\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n .button-disabled(@disabled-color; transparent; transparent);\n}\n// link button disabled style\n.btn-href-disabled() {\n cursor: not-allowed;\n\n > * {\n pointer-events: none;\n }\n\n &,\n &:hover,\n &:focus,\n &:active {\n .button-color(@btn-disable-color,transparent, transparent);\n\n text-shadow: none;\n box-shadow: none;\n }\n}\n// text button style\n.btn-text() {\n .button-variant-other(@text-color, transparent, transparent);\n box-shadow: none;\n\n &:hover,\n &:focus {\n color: @text-color;\n background: @btn-text-hover-bg;\n border-color: transparent;\n }\n\n &:active {\n color: @text-color;\n background: fadein(@btn-text-hover-bg, 1%);\n border-color: transparent;\n }\n\n .button-disabled(@disabled-color; transparent; transparent);\n}\n.btn-danger-text() {\n .button-variant-other(@error-color, transparent, transparent);\n box-shadow: none;\n\n &:hover,\n &:focus {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{error-color}', 7) `; @btn-text-hover-bg; transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{error-color}', 5) `; @btn-text-hover-bg; transparent);\n }\n & when (@theme = variable) {\n .button-color(@error-color-hover; @btn-text-hover-bg; transparent);\n }\n }\n\n &:active {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{error-color}', 5) `; fadein(@btn-text-hover-bg, 1%); transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{error-color}', 7) `; fadein(@btn-text-hover-bg, 1%); transparent);\n }\n & when (@theme = variable) {\n .button-color(@error-color-active; fadein(@btn-text-hover-bg, 1%); transparent);\n }\n }\n .button-disabled(@disabled-color; transparent; transparent);\n}\n// round button\n.btn-round(@btnClassName: btn) {\n .button-size(@btn-circle-size; (@btn-circle-size / 2); @font-size-base; @btn-circle-size);\n &.@{btnClassName}-lg {\n .button-size(\n @btn-circle-size-lg; (@btn-circle-size-lg / 2); @btn-font-size-lg; @btn-circle-size-lg\n );\n }\n &.@{btnClassName}-sm {\n .button-size(\n @btn-circle-size-sm; (@btn-circle-size-sm / 2); @font-size-base; @btn-circle-size-sm\n );\n }\n}\n// square button: the content only contains icon\n.btn-square(@btnClassName: btn) {\n .square(@btn-square-size);\n .button-size(@btn-square-size; 0; @btn-square-only-icon-size; @btn-border-radius-base);\n\n & > * {\n font-size: @btn-square-only-icon-size;\n }\n &.@{btnClassName}-lg {\n .square(@btn-square-size-lg);\n .button-size(@btn-square-size-lg; 0; @btn-square-only-icon-size-lg; @btn-border-radius-base);\n\n & > * {\n font-size: @btn-square-only-icon-size-lg;\n }\n }\n &.@{btnClassName}-sm {\n .square(@btn-square-size-sm);\n .button-size(@btn-square-size-sm; 0; @btn-square-only-icon-size-sm; @btn-border-radius-base);\n\n & > * {\n font-size: @btn-square-only-icon-size-sm;\n }\n }\n}\n// circle button: the content only contains icon\n.btn-circle(@btnClassName: btn) {\n min-width: @btn-height-base;\n padding-right: 0;\n padding-left: 0;\n text-align: center;\n border-radius: 50%;\n &.@{btnClassName}-lg {\n min-width: @btn-height-lg;\n border-radius: 50%;\n }\n &.@{btnClassName}-sm {\n min-width: @btn-height-sm;\n border-radius: 50%;\n }\n}\n// Horizontal button groups style\n// --------------------------------------------------\n.btn-group(@btnClassName: btn) {\n .button-group-base(@btnClassName);\n .@{btnClassName} + .@{btnClassName},\n .@{btnClassName} + &,\n span + .@{btnClassName},\n .@{btnClassName} + span,\n > span + span,\n & + .@{btnClassName},\n & + & {\n margin-left: -1px;\n }\n .@{btnClassName}-primary + .@{btnClassName}:not(.@{btnClassName}-primary):not([disabled]) {\n border-left-color: transparent;\n }\n .@{btnClassName} {\n border-radius: 0;\n }\n > .@{btnClassName}:first-child,\n > span:first-child > .@{btnClassName} {\n margin-left: 0;\n }\n > .@{btnClassName}:only-child {\n border-radius: @btn-border-radius-base;\n }\n > span:only-child > .@{btnClassName} {\n border-radius: @btn-border-radius-base;\n }\n > .@{btnClassName}:first-child:not(:last-child),\n > span:first-child:not(:last-child) > .@{btnClassName} {\n border-top-left-radius: @btn-border-radius-base;\n border-bottom-left-radius: @btn-border-radius-base;\n }\n > .@{btnClassName}:last-child:not(:first-child),\n > span:last-child:not(:first-child) > .@{btnClassName} {\n border-top-right-radius: @btn-border-radius-base;\n border-bottom-right-radius: @btn-border-radius-base;\n }\n\n &-sm {\n > .@{btnClassName}:only-child {\n border-radius: @btn-border-radius-sm;\n }\n > span:only-child > .@{btnClassName} {\n border-radius: @btn-border-radius-sm;\n }\n > .@{btnClassName}:first-child:not(:last-child),\n > span:first-child:not(:last-child) > .@{btnClassName} {\n border-top-left-radius: @btn-border-radius-sm;\n border-bottom-left-radius: @btn-border-radius-sm;\n }\n > .@{btnClassName}:last-child:not(:first-child),\n > span:last-child:not(:first-child) > .@{btnClassName} {\n border-top-right-radius: @btn-border-radius-sm;\n border-bottom-right-radius: @btn-border-radius-sm;\n }\n }\n\n & > & {\n float: left;\n }\n & > &:not(:first-child):not(:last-child) > .@{btnClassName} {\n border-radius: 0;\n }\n\n & > &:first-child:not(:last-child) {\n > .@{btnClassName}:last-child {\n padding-right: 8px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n & > &:last-child:not(:first-child) > .@{btnClassName}:first-child {\n padding-left: 8px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './mixin';\n\n@btn-prefix-cls: ~'@{ant-prefix}-btn';\n\n// for compatible\n@btn-ghost-color: @text-color;\n@btn-ghost-bg: transparent;\n@btn-ghost-border: @border-color-base;\n\n// Button styles\n// -----------------------------\n.@{btn-prefix-cls} {\n // Fixing https://github.com/ant-design/ant-design/issues/12978\n // Fixing https://github.com/ant-design/ant-design/issues/20058\n // Fixing https://github.com/ant-design/ant-design/issues/19972\n // Fixing https://github.com/ant-design/ant-design/issues/18107\n // Fixing https://github.com/ant-design/ant-design/issues/13214\n // It is a render problem of chrome, which is only happened in the codesandbox demo\n // 0.001px solution works and I don't know why\n line-height: @btn-line-height;\n .btn();\n .btn-default();\n\n // Fix loading button animation\n // https://github.com/ant-design/ant-design/issues/24323\n > span {\n display: inline-block;\n }\n\n &-primary {\n .btn-primary();\n\n .@{btn-prefix-cls}-group &:not(:first-child):not(:last-child) {\n border-right-color: @btn-group-border;\n border-left-color: @btn-group-border;\n\n &:disabled {\n border-color: @btn-default-border;\n }\n }\n\n .@{btn-prefix-cls}-group &:first-child {\n &:not(:last-child) {\n border-right-color: @btn-group-border;\n\n &[disabled] {\n border-right-color: @btn-default-border;\n }\n }\n }\n\n .@{btn-prefix-cls}-group &:last-child:not(:first-child),\n .@{btn-prefix-cls}-group & + & {\n border-left-color: @btn-group-border;\n\n &[disabled] {\n border-left-color: @btn-default-border;\n }\n }\n }\n\n &-ghost {\n .btn-ghost();\n }\n\n &-dashed {\n .btn-dashed();\n }\n\n // type=\"danger\" will deprecated\n // use danger instead\n &-danger {\n .btn-danger();\n }\n\n &-link {\n .btn-link();\n }\n\n &-text {\n .btn-text();\n }\n\n &-dangerous {\n .btn-danger-default();\n }\n\n &-dangerous&-primary {\n .btn-danger();\n }\n\n &-dangerous&-link {\n .btn-danger-link();\n }\n\n &-dangerous&-text {\n .btn-danger-text();\n }\n\n &-icon-only {\n .btn-square(@btn-prefix-cls);\n vertical-align: -3px;\n\n > .@{iconfont-css-prefix} {\n display: flex;\n justify-content: center;\n }\n\n .@{iconfont-css-prefix}-loading {\n padding: 0 !important;\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/32365\n a&-icon-only {\n vertical-align: -1px;\n\n > .@{iconfont-css-prefix} {\n display: inline;\n }\n }\n\n &-round {\n .btn-round(@btn-prefix-cls);\n &.@{btn-prefix-cls}-icon-only {\n width: auto;\n }\n }\n\n &-circle {\n .btn-circle(@btn-prefix-cls);\n }\n\n &::before {\n position: absolute;\n top: -@btn-border-width;\n right: -@btn-border-width;\n bottom: -@btn-border-width;\n left: -@btn-border-width;\n z-index: 1;\n display: none;\n background: @component-background;\n border-radius: inherit;\n opacity: 0.35;\n transition: opacity 0.2s;\n content: '';\n pointer-events: none;\n }\n\n .@{iconfont-css-prefix} {\n transition: margin-left 0.3s @ease-in-out;\n\n // Follow icon blur under windows. Change the render.\n // https://github.com/ant-design/ant-design/issues/13924\n &.@{iconfont-css-prefix}-plus,\n &.@{iconfont-css-prefix}-minus {\n > svg {\n shape-rendering: optimizespeed;\n }\n }\n }\n\n &&-loading {\n position: relative;\n cursor: default;\n\n &::before {\n display: block;\n }\n }\n\n & > &-loading-icon {\n transition: width 0.3s @ease-in-out, opacity 0.3s @ease-in-out;\n\n .@{iconfont-css-prefix} {\n padding-right: @padding-xs;\n animation: none;\n // for smooth button padding transition\n svg {\n animation: loadingCircle 1s infinite linear;\n }\n }\n }\n\n &-group {\n .btn-group(@btn-prefix-cls);\n }\n\n // http://stackoverflow.com/a/21281554/3040605\n &:focus > span,\n &:active > span {\n position: relative;\n }\n\n // To ensure that a space will be placed between character and `Icon`.\n > .@{iconfont-css-prefix} + span,\n > span + .@{iconfont-css-prefix} {\n margin-left: @margin-xs;\n }\n\n &&-background-ghost {\n color: @btn-default-ghost-color;\n border-color: @btn-default-ghost-border;\n\n &,\n &:hover,\n &:active,\n &:focus {\n background: @btn-default-ghost-bg;\n }\n\n &:hover,\n &:focus {\n color: @primary-color-hover;\n border-color: @primary-color-hover;\n }\n\n &:active {\n color: @primary-color-active;\n border-color: @primary-color-active;\n }\n\n &[disabled] {\n color: @disabled-color;\n background: @btn-default-ghost-bg;\n border-color: @btn-default-border;\n }\n }\n\n &-background-ghost&-primary {\n .button-variant-ghost(@btn-primary-bg, @btn-primary-bg, @primary-color-hover, @primary-color-active);\n }\n\n &-background-ghost&-danger {\n .button-variant-ghost(@btn-danger-border, @btn-danger-border, @error-color-hover, @error-color-active);\n }\n\n &-background-ghost&-dangerous {\n .button-variant-ghost(@btn-danger-border, @btn-danger-border, @error-color-hover, @error-color-active);\n }\n\n &-background-ghost&-dangerous&-link {\n .button-variant-ghost(@btn-danger-border, transparent, @error-color-hover, @error-color-active);\n }\n\n &-two-chinese-chars::first-letter {\n letter-spacing: 0.34em;\n }\n\n &-two-chinese-chars > *:not(.@{iconfont-css-prefix}) {\n margin-right: -0.34em;\n letter-spacing: 0.34em;\n }\n\n &&-block {\n width: 100%;\n }\n\n // https://github.com/ant-design/ant-design/issues/12681\n // same method as Select\n &:empty {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n }\n}\n\na.@{btn-prefix-cls} {\n // Fixing https://github.com/ant-design/ant-design/issues/12978\n // https://github.com/ant-design/ant-design/issues/29978\n // It is a render problem of chrome, which is only happened in the codesandbox demo\n // 0.1px for padding-top solution works and I don't why\n padding-top: 0.01px !important;\n line-height: @btn-height-base - 2px;\n\n &-disabled {\n .btn-href-disabled();\n }\n\n &-lg {\n line-height: @btn-height-lg - 2px;\n }\n\n &-sm {\n line-height: @btn-height-sm - 2px;\n }\n}\n\n@import './space-compact';\n@import './rtl';\n\n@root-entry-name: default;",".@{btn-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-primary {\n .@{btn-prefix-cls}-group &:last-child:not(:first-child),\n .@{btn-prefix-cls}-group & + & {\n .@{btn-prefix-cls}-group-rtl& {\n border-right-color: @btn-group-border;\n border-left-color: @btn-default-border;\n }\n\n &[disabled] {\n .@{btn-prefix-cls}-group-rtl& {\n border-right-color: @btn-default-border;\n border-left-color: @btn-group-border;\n }\n }\n }\n }\n\n & > &-loading-icon {\n .@{iconfont-css-prefix} {\n .@{btn-prefix-cls}-rtl& {\n padding-right: 0;\n padding-left: @margin-xs;\n }\n }\n }\n\n > .@{iconfont-css-prefix} + span,\n > span + .@{iconfont-css-prefix} {\n .@{btn-prefix-cls}-rtl& {\n margin-right: 8px;\n margin-left: 0;\n }\n }\n}\n\n// mixin\n.btn-group(@btnClassName: btn) {\n .@{btnClassName} + .@{btnClassName},\n .@{btnClassName} + &,\n span + .@{btnClassName},\n .@{btnClassName} + span,\n > span + span,\n & + .@{btnClassName},\n & + & {\n .@{btnClassName}-rtl&,\n .@{btnClassName}-group-rtl& {\n margin-right: -1px;\n margin-left: auto;\n }\n }\n\n &.@{btnClassName}-group-rtl {\n direction: rtl;\n }\n\n > .@{btnClassName}:first-child:not(:last-child),\n > span:first-child:not(:last-child) > .@{btnClassName} {\n .@{btnClassName}-group-rtl& {\n border-radius: 0 @btn-border-radius-base @btn-border-radius-base 0;\n }\n }\n\n > .@{btnClassName}:last-child:not(:first-child),\n > span:last-child:not(:first-child) > .@{btnClassName} {\n .@{btnClassName}-group-rtl& {\n border-radius: @btn-border-radius-base 0 0 @btn-border-radius-base;\n }\n }\n\n &-sm {\n > .@{btnClassName}:first-child:not(:last-child),\n > span:first-child:not(:last-child) > .@{btnClassName} {\n .@{btnClassName}-group-rtl& {\n border-radius: 0 @btn-border-radius-sm @btn-border-radius-sm 0;\n }\n }\n\n > .@{btnClassName}:last-child:not(:first-child),\n > span:last-child:not(:first-child) > .@{btnClassName} {\n .@{btnClassName}-group-rtl& {\n border-radius: @btn-border-radius-sm 0 0 @btn-border-radius-sm;\n }\n }\n }\n}\n","@import '../../style/mixins/index';\n\n@btn-prefix-cls: ~'@{ant-prefix}-btn';\n\n// Button in Space.Compact\n.@{btn-prefix-cls} {\n .compact-item(@btn-prefix-cls);\n\n // make `btn-icon-only` not too narrow\n &-icon-only&-compact-item {\n flex: none;\n }\n\n // Special styles for Primary Button\n &-compact-item.@{btn-prefix-cls}-primary {\n &:not([disabled]) + &:not([disabled]) {\n position: relative;\n\n &::after {\n position: absolute;\n top: -@border-width-base;\n left: -@border-width-base;\n display: inline-block;\n width: @border-width-base;\n height: calc(100% + @border-width-base * 2);\n background-color: @btn-group-border;\n content: ' ';\n }\n }\n }\n\n // ----------RTL----------\n &-compact-item-rtl {\n &.@{btn-prefix-cls}-compact-first-item&:not(.@{btn-prefix-cls}-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n &.@{btn-prefix-cls}-compact-last-item&:not(.@{btn-prefix-cls}-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &.@{btn-prefix-cls}-sm {\n &.@{btn-prefix-cls}-compact-first-item&:not(.@{btn-prefix-cls}-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n &.@{btn-prefix-cls}-compact-last-item&:not(.@{btn-prefix-cls}-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n // ----------RTL Special styles for Primary Button----------\n &.@{btn-prefix-cls}-primary {\n &:not([disabled]) + &:not([disabled]) {\n &::after {\n right: -@border-width-base;\n }\n }\n }\n }\n\n // Button in Space.Compact when direction=vertical\n .compact-item-vertical(@btn-prefix-cls);\n\n // Special styles for Primary Button\n &-compact-vertical-item {\n &.@{btn-prefix-cls}-primary {\n &:not([disabled]) + &:not([disabled]) {\n position: relative;\n\n &::after {\n position: absolute;\n top: -@border-width-base;\n left: -@border-width-base;\n display: inline-block;\n width: calc(100% + @border-width-base * 2);\n height: @border-width-base;\n background-color: @btn-group-border;\n content: ' ';\n }\n }\n }\n }\n}\n",".compact-item-vertical-border-radius(@prefix-cls) {\n &-item:not(&-first-item):not(&-last-item) {\n border-radius: 0;\n }\n\n &-item&-first-item:not(&-last-item) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n &-item&-last-item:not(&-first-item) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n.compact-item-vertical-border(@prefix-cls) {\n // border collapse\n &-item:not(&-last-item) {\n margin-bottom: -@border-width-base;\n }\n\n &-item {\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n\n &[disabled] {\n z-index: 0;\n }\n }\n}\n\n.compact-item-vertical(@prefix-cls) {\n &-compact-vertical {\n .compact-item-vertical-border(@prefix-cls);\n .compact-item-vertical-border-radius(@prefix-cls);\n }\n}\n","@import (reference) '../../style/themes/index';\n@menu-prefix-cls: ~'@{ant-prefix}-menu';\n\n.@{menu-prefix-cls} {\n // Danger\n &-item-danger&-item {\n color: @menu-highlight-danger-color;\n\n &:hover,\n &-active {\n color: @menu-highlight-danger-color;\n }\n\n &:active {\n background: @menu-item-active-danger-bg;\n }\n\n &-selected {\n color: @menu-highlight-danger-color;\n\n > a,\n > a:hover {\n color: @menu-highlight-danger-color;\n }\n }\n\n .@{menu-prefix-cls}:not(.@{menu-prefix-cls}-horizontal) &-selected {\n background-color: @menu-item-active-danger-bg;\n }\n\n .@{menu-prefix-cls}-inline &::after {\n border-right-color: @menu-highlight-danger-color;\n }\n }\n\n // ==================== Dark ====================\n &-dark &-item-danger&-item {\n &,\n &:hover,\n & > a {\n color: @menu-dark-danger-color;\n }\n }\n\n &-dark&-dark:not(&-horizontal) &-item-danger&-item-selected {\n color: @menu-dark-highlight-color;\n background-color: @menu-dark-item-active-danger-bg;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './status';\n\n@menu-prefix-cls: ~'@{ant-prefix}-menu';\n@menu-animation-duration-normal: 0.15s;\n\n.accessibility-focus() {\n box-shadow: 0 0 0 2px @primary-2;\n}\n\n// TODO: Should remove icon style compatible in v5\n\n// default theme\n.@{menu-prefix-cls} {\n .reset-component();\n\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n color: @menu-item-color;\n font-size: @menu-item-font-size;\n line-height: 0; // Fix display inline-block gap\n text-align: left;\n list-style: none;\n background: @menu-bg;\n outline: none;\n box-shadow: @box-shadow-base;\n transition: background @animation-duration-slow,\n width @animation-duration-slow cubic-bezier(0.2, 0, 0, 1) 0s;\n .clearfix();\n\n &&-root:focus-visible {\n .accessibility-focus();\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n // Overflow ellipsis\n &-overflow {\n display: flex;\n\n &-item {\n flex: none;\n }\n }\n\n &-hidden,\n &-submenu-hidden {\n display: none;\n }\n\n &-item-group-title {\n height: @menu-item-group-height;\n padding: 8px 16px;\n color: @menu-item-group-title-color;\n font-size: @menu-item-group-title-font-size;\n line-height: @menu-item-group-height;\n transition: all @animation-duration-slow;\n }\n\n &-horizontal &-submenu {\n transition: border-color @animation-duration-slow @ease-in-out,\n background @animation-duration-slow @ease-in-out;\n }\n\n &-submenu,\n &-submenu-inline {\n transition: border-color @animation-duration-slow @ease-in-out,\n background @animation-duration-slow @ease-in-out,\n padding @menu-animation-duration-normal @ease-in-out;\n }\n\n &-submenu-selected {\n color: @menu-highlight-color;\n }\n\n &-item:active,\n &-submenu-title:active {\n background: @menu-item-active-bg;\n }\n\n &-submenu &-sub {\n cursor: initial;\n transition: background @animation-duration-slow @ease-in-out,\n padding @animation-duration-slow @ease-in-out;\n }\n\n &-title-content {\n transition: color @animation-duration-slow;\n }\n\n &-item a {\n color: @menu-item-color;\n\n &:hover {\n color: @menu-highlight-color;\n }\n\n &::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: transparent;\n content: '';\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/19809\n &-item > .@{ant-prefix}-badge a {\n color: @menu-item-color;\n\n &:hover {\n color: @menu-highlight-color;\n }\n }\n\n &-item-divider {\n overflow: hidden;\n line-height: 0;\n border-color: @border-color-split;\n border-style: solid;\n border-width: 1px 0 0;\n }\n\n &-item-divider-dashed {\n border-style: dashed;\n }\n\n &-horizontal &-item,\n &-horizontal &-submenu {\n margin-top: -1px;\n }\n\n &-horizontal > &-item:hover,\n &-horizontal > &-item-active,\n &-horizontal > &-submenu &-submenu-title:hover {\n background-color: transparent;\n }\n\n &-item-selected {\n color: @menu-highlight-color;\n\n a,\n a:hover {\n color: @menu-highlight-color;\n }\n }\n\n &:not(&-horizontal) &-item-selected {\n background-color: @menu-item-active-bg;\n }\n\n &-inline,\n &-vertical,\n &-vertical-left {\n border-right: @border-width-base @border-style-base @border-color-split;\n }\n\n &-vertical-right {\n border-left: @border-width-base @border-style-base @border-color-split;\n }\n\n &-vertical&-sub,\n &-vertical-left&-sub,\n &-vertical-right&-sub {\n min-width: 160px;\n max-height: calc(100vh - 100px);\n padding: 0;\n overflow: hidden;\n border-right: 0;\n\n // https://github.com/ant-design/ant-design/issues/22244\n // https://github.com/ant-design/ant-design/issues/26812\n &:not([class*='-active']) {\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .@{menu-prefix-cls}-item {\n left: 0;\n margin-left: 0;\n border-right: 0;\n\n &::after {\n border-right: 0;\n }\n }\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-submenu {\n transform-origin: 0 0;\n }\n }\n\n &-horizontal&-sub {\n min-width: 114px; // in case of submenu width is too big: https://codesandbox.io/s/qvpwm6mk66\n }\n\n &-horizontal &-item,\n &-horizontal &-submenu-title {\n transition: border-color @animation-duration-slow, background @animation-duration-slow;\n }\n\n &-item,\n &-submenu-title {\n position: relative;\n display: block;\n margin: 0;\n padding: @menu-item-padding;\n white-space: nowrap;\n cursor: pointer;\n transition: border-color @animation-duration-slow, background @animation-duration-slow,\n padding @animation-duration-slow @ease-in-out;\n\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n min-width: 14px;\n font-size: @menu-icon-size;\n transition: font-size @menu-animation-duration-normal @ease-out,\n margin @animation-duration-slow @ease-in-out, color @animation-duration-slow;\n\n + span {\n margin-left: @menu-icon-margin-right;\n opacity: 1;\n transition: opacity @animation-duration-slow @ease-in-out, margin @animation-duration-slow,\n color @animation-duration-slow;\n }\n }\n\n .@{menu-prefix-cls}-item-icon.svg {\n vertical-align: -0.125em;\n }\n\n &.@{menu-prefix-cls}-item-only-child {\n > .@{iconfont-css-prefix},\n > .@{menu-prefix-cls}-item-icon {\n margin-right: 0;\n }\n }\n\n &:not(.@{menu-prefix-cls}-item-disabled):focus-visible {\n .accessibility-focus();\n }\n }\n\n & > &-item-divider {\n margin: 1px 0;\n padding: 0;\n }\n\n &-submenu {\n &-popup {\n position: absolute;\n z-index: @zindex-dropdown;\n background: transparent;\n border-radius: @border-radius-base;\n box-shadow: none;\n transform-origin: 0 0;\n\n // https://github.com/ant-design/ant-design/issues/13955\n &::before {\n position: absolute;\n top: -7px;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n opacity: 0.0001;\n content: ' ';\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/13955\n &-placement-rightTop::before {\n top: 0;\n left: -7px;\n }\n\n > .@{menu-prefix-cls} {\n background-color: @menu-bg;\n border-radius: @border-radius-base;\n\n &-submenu-title::after {\n transition: transform @animation-duration-slow @ease-in-out;\n }\n }\n\n &-popup > .@{menu-prefix-cls} {\n background-color: @menu-popup-bg;\n }\n\n &-expand-icon,\n &-arrow {\n position: absolute;\n top: 50%;\n right: 16px;\n width: 10px;\n color: @menu-item-color;\n transform: translateY(-50%);\n transition: transform @animation-duration-slow @ease-in-out;\n }\n\n &-arrow {\n // →\n &::before,\n &::after {\n position: absolute;\n width: 6px;\n height: 1.5px;\n background-color: currentcolor;\n border-radius: 2px;\n transition: background @animation-duration-slow @ease-in-out,\n transform @animation-duration-slow @ease-in-out, top @animation-duration-slow @ease-in-out,\n color @animation-duration-slow @ease-in-out;\n content: '';\n }\n\n &::before {\n transform: rotate(45deg) translateY(-2.5px);\n }\n\n &::after {\n transform: rotate(-45deg) translateY(2.5px);\n }\n }\n\n &:hover > &-title > &-expand-icon,\n &:hover > &-title > &-arrow {\n color: @menu-highlight-color;\n }\n\n .@{menu-prefix-cls}-inline-collapsed &-arrow,\n &-inline &-arrow {\n // ↓\n &::before {\n transform: rotate(-45deg) translateX(2.5px);\n }\n\n &::after {\n transform: rotate(45deg) translateX(-2.5px);\n }\n }\n\n &-horizontal &-arrow {\n display: none;\n }\n\n &-open&-inline > &-title > &-arrow {\n // ↑\n transform: translateY(-2px);\n\n &::after {\n transform: rotate(-45deg) translateX(-2.5px);\n }\n\n &::before {\n transform: rotate(45deg) translateX(2.5px);\n }\n }\n }\n\n &-vertical &-submenu-selected,\n &-vertical-left &-submenu-selected,\n &-vertical-right &-submenu-selected {\n color: @menu-highlight-color;\n }\n\n &-horizontal {\n line-height: @menu-horizontal-line-height;\n border: 0;\n border-bottom: @border-width-base @border-style-base @border-color-split;\n box-shadow: none;\n\n &:not(.@{menu-prefix-cls}-dark) {\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-submenu {\n margin-top: -1px;\n margin-bottom: 0;\n padding: @menu-item-padding;\n\n &:hover,\n &-active,\n &-open,\n &-selected {\n color: @menu-highlight-color;\n\n &::after {\n border-bottom: 2px solid @menu-highlight-color;\n }\n }\n }\n }\n\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-submenu {\n position: relative;\n top: 1px;\n display: inline-block;\n vertical-align: bottom;\n\n &::after {\n position: absolute;\n right: @menu-item-padding-horizontal;\n bottom: 0;\n left: @menu-item-padding-horizontal;\n border-bottom: 2px solid transparent;\n transition: border-color @animation-duration-slow @ease-in-out;\n content: '';\n }\n }\n\n > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title {\n padding: 0;\n }\n\n > .@{menu-prefix-cls}-item {\n a {\n color: @menu-item-color;\n\n &:hover {\n color: @menu-highlight-color;\n }\n\n &::before {\n bottom: -2px;\n }\n }\n\n &-selected a {\n color: @menu-highlight-color;\n }\n }\n\n &::after {\n display: block;\n clear: both;\n height: 0;\n content: '\\20';\n }\n }\n\n &-vertical,\n &-vertical-left,\n &-vertical-right,\n &-inline {\n .@{menu-prefix-cls}-item {\n position: relative;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n border-right: @menu-item-active-border-width solid @menu-highlight-color;\n transform: scaleY(0.0001);\n opacity: 0;\n transition: transform @menu-animation-duration-normal @ease-out,\n opacity @menu-animation-duration-normal @ease-out;\n content: '';\n }\n }\n\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n height: @menu-item-height;\n margin-top: @menu-item-vertical-margin;\n margin-bottom: @menu-item-vertical-margin;\n padding: 0 16px;\n overflow: hidden;\n line-height: @menu-item-height;\n text-overflow: ellipsis;\n }\n\n // disable margin collapsed\n .@{menu-prefix-cls}-submenu {\n padding-bottom: 0.02px;\n }\n\n .@{menu-prefix-cls}-item:not(:last-child) {\n margin-bottom: @menu-item-boundary-margin;\n }\n\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title {\n height: @menu-inline-toplevel-item-height;\n line-height: @menu-inline-toplevel-item-height;\n }\n }\n\n &-vertical {\n .@{menu-prefix-cls}-item-group-list .@{menu-prefix-cls}-submenu-title,\n .@{menu-prefix-cls}-submenu-title {\n padding-right: 34px;\n }\n }\n\n &-inline {\n width: 100%;\n .@{menu-prefix-cls}-selected,\n .@{menu-prefix-cls}-item-selected {\n &::after {\n transform: scaleY(1);\n opacity: 1;\n transition: transform @menu-animation-duration-normal @ease-in-out,\n opacity @menu-animation-duration-normal @ease-in-out;\n }\n }\n\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n width: ~'calc(100% + 1px)';\n }\n\n .@{menu-prefix-cls}-item-group-list .@{menu-prefix-cls}-submenu-title,\n .@{menu-prefix-cls}-submenu-title {\n padding-right: 34px;\n }\n\n // Motion enhance for first level\n &.@{menu-prefix-cls}-root {\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n display: flex;\n align-items: center;\n transition: border-color @animation-duration-slow, background @animation-duration-slow,\n padding 0.1s @ease-out;\n\n > .@{menu-prefix-cls}-title-content {\n flex: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n > * {\n flex: none;\n }\n }\n }\n }\n\n &&-inline-collapsed {\n width: @menu-collapsed-width;\n\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-item-group\n > .@{menu-prefix-cls}-item-group-list\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-item-group\n > .@{menu-prefix-cls}-item-group-list\n > .@{menu-prefix-cls}-submenu\n > .@{menu-prefix-cls}-submenu-title,\n > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title {\n left: 0;\n padding: 0 ~'calc(50% - @{menu-icon-size-lg} / 2)';\n text-overflow: clip;\n\n .@{menu-prefix-cls}-submenu-arrow {\n opacity: 0;\n }\n\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n margin: 0;\n font-size: @menu-icon-size-lg;\n line-height: @menu-item-height;\n\n + span {\n display: inline-block;\n opacity: 0;\n }\n }\n }\n\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n display: inline-block;\n }\n\n &-tooltip {\n pointer-events: none;\n\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n display: none;\n }\n\n a {\n color: @text-color-dark;\n }\n }\n\n .@{menu-prefix-cls}-item-group-title {\n padding-right: 4px;\n padding-left: 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n\n &-item-group-list {\n margin: 0;\n padding: 0;\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n padding: 0 16px 0 28px;\n }\n }\n\n &-root&-vertical,\n &-root&-vertical-left,\n &-root&-vertical-right,\n &-root&-inline {\n box-shadow: none;\n }\n\n &-root&-inline-collapsed {\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu .@{menu-prefix-cls}-submenu-title {\n > .@{menu-prefix-cls}-inline-collapsed-noicon {\n font-size: @menu-icon-size-lg;\n text-align: center;\n }\n }\n }\n\n &-sub&-inline {\n padding: 0;\n background: @menu-inline-submenu-bg;\n border: 0;\n border-radius: 0;\n box-shadow: none;\n & > .@{menu-prefix-cls}-item,\n & > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title {\n height: @menu-item-height;\n line-height: @menu-item-height;\n list-style-position: inside;\n list-style-type: disc;\n }\n\n & .@{menu-prefix-cls}-item-group-title {\n padding-left: 32px;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &-item-disabled,\n &-submenu-disabled {\n color: @disabled-color !important;\n background: none;\n cursor: not-allowed;\n\n &::after {\n border-color: transparent !important;\n }\n\n a {\n color: @disabled-color !important;\n pointer-events: none;\n }\n\n > .@{menu-prefix-cls}-submenu-title {\n color: @disabled-color !important;\n cursor: not-allowed;\n > .@{menu-prefix-cls}-submenu-arrow {\n &::before,\n &::after {\n background: @disabled-color !important;\n }\n }\n }\n }\n}\n\n// Integration with header element so menu items have the same height\n.@{ant-prefix}-layout-header {\n .@{menu-prefix-cls} {\n line-height: inherit;\n }\n}\n\n// https://github.com/ant-design/ant-design/issues/32950\n.@{ant-prefix}-menu-inline-collapsed-tooltip {\n a,\n a:hover {\n color: @white;\n }\n}\n\n@import './light';\n@import './dark';\n@import './rtl';\n\n@root-entry-name: default;",".@{menu-prefix-cls} {\n // light theme\n &-light {\n .@{menu-prefix-cls}-item:hover,\n .@{menu-prefix-cls}-item-active,\n .@{menu-prefix-cls}:not(.@{menu-prefix-cls}-inline) .@{menu-prefix-cls}-submenu-open,\n .@{menu-prefix-cls}-submenu-active,\n .@{menu-prefix-cls}-submenu-title:hover {\n color: @menu-highlight-color;\n }\n }\n}\n",".accessibility-focus-dark() {\n box-shadow: 0 0 0 2px @primary-7;\n}\n\n.@{menu-prefix-cls} {\n &&-root:focus-visible {\n .accessibility-focus-dark();\n }\n\n &-dark &-item,\n &-dark &-submenu-title {\n &:focus-visible {\n .accessibility-focus-dark();\n }\n }\n\n // dark theme\n &&-dark,\n &-dark &-sub,\n &&-dark &-sub {\n color: @menu-dark-color;\n background: @menu-dark-bg;\n .@{menu-prefix-cls}-submenu-title .@{menu-prefix-cls}-submenu-arrow {\n opacity: 0.45;\n transition: all 0.3s;\n\n &::after,\n &::before {\n background: @menu-dark-arrow-color;\n }\n }\n }\n\n &-dark&-submenu-popup {\n background: transparent;\n }\n\n &-dark &-inline&-sub {\n background: @menu-dark-inline-submenu-bg;\n }\n\n &-dark&-horizontal {\n border-bottom: 0;\n }\n\n &-dark&-horizontal > &-item,\n &-dark&-horizontal > &-submenu {\n top: 0;\n margin-top: 0;\n padding: @menu-item-padding;\n border-color: @menu-dark-bg;\n border-bottom: 0;\n }\n\n &-dark&-horizontal > &-item:hover {\n background-color: @menu-dark-item-active-bg;\n }\n\n &-dark&-horizontal > &-item > a::before {\n bottom: 0;\n }\n\n &-dark &-item,\n &-dark &-item-group-title,\n &-dark &-item > a,\n &-dark &-item > span > a {\n color: @menu-dark-color;\n }\n\n &-dark&-inline,\n &-dark&-vertical,\n &-dark&-vertical-left,\n &-dark&-vertical-right {\n border-right: 0;\n }\n\n &-dark&-inline &-item,\n &-dark&-vertical &-item,\n &-dark&-vertical-left &-item,\n &-dark&-vertical-right &-item {\n left: 0;\n margin-left: 0;\n border-right: 0;\n\n &::after {\n border-right: 0;\n }\n }\n\n &-dark&-inline &-item,\n &-dark&-inline &-submenu-title {\n width: 100%;\n }\n\n &-dark &-item:hover,\n &-dark &-item-active,\n &-dark &-submenu-active,\n &-dark &-submenu-open,\n &-dark &-submenu-selected,\n &-dark &-submenu-title:hover {\n color: @menu-dark-highlight-color;\n background-color: transparent;\n\n > a,\n > span > a {\n color: @menu-dark-highlight-color;\n }\n > .@{menu-prefix-cls}-submenu-title {\n > .@{menu-prefix-cls}-submenu-arrow {\n opacity: 1;\n\n &::after,\n &::before {\n background: @menu-dark-highlight-color;\n }\n }\n }\n }\n\n &-dark &-item:hover {\n background-color: @menu-dark-item-hover-bg;\n }\n\n &-dark&-dark:not(&-horizontal) &-item-selected {\n background-color: @menu-dark-item-active-bg;\n }\n\n &-dark &-item-selected {\n color: @menu-dark-highlight-color;\n border-right: 0;\n\n &::after {\n border-right: 0;\n }\n\n > a,\n > span > a,\n > a:hover,\n > span > a:hover {\n color: @menu-dark-highlight-color;\n }\n\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n color: @menu-dark-selected-item-icon-color;\n\n + span {\n color: @menu-dark-selected-item-text-color;\n }\n }\n }\n\n &&-dark &-item-selected,\n &-submenu-popup&-dark &-item-selected {\n background-color: @menu-dark-item-active-bg;\n }\n\n // Disabled state sets text to dark gray and nukes hover/tab effects\n &-dark &-item-disabled,\n &-dark &-submenu-disabled {\n &,\n > a,\n > span > a {\n color: @disabled-color-dark !important;\n opacity: 0.8;\n }\n > .@{menu-prefix-cls}-submenu-title {\n color: @disabled-color-dark !important;\n > .@{menu-prefix-cls}-submenu-arrow {\n &::before,\n &::after {\n background: @disabled-color-dark !important;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@menu-prefix-cls: ~'@{ant-prefix}-menu';\n\n.@{menu-prefix-cls} {\n &&-rtl {\n direction: rtl;\n text-align: right;\n }\n\n &-item-group-title {\n .@{menu-prefix-cls}-rtl & {\n text-align: right;\n }\n }\n\n &-inline,\n &-vertical {\n .@{menu-prefix-cls}-rtl& {\n border-right: none;\n border-left: @border-width-base @border-style-base @border-color-split;\n }\n }\n\n &-dark&-inline,\n &-dark&-vertical {\n .@{menu-prefix-cls}-rtl& {\n border-left: none;\n }\n }\n\n &-vertical&-sub,\n &-vertical-left&-sub,\n &-vertical-right&-sub {\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-submenu {\n .@{menu-prefix-cls}-rtl& {\n transform-origin: top right;\n }\n }\n }\n\n &-item,\n &-submenu-title {\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n .@{menu-prefix-cls}-rtl & {\n margin-right: auto;\n margin-left: @menu-icon-margin-right;\n }\n }\n\n &.@{menu-prefix-cls}-item-only-child {\n > .@{menu-prefix-cls}-item-icon,\n > .@{iconfont-css-prefix} {\n .@{menu-prefix-cls}-rtl & {\n margin-left: 0;\n }\n }\n }\n }\n\n &-submenu {\n &-rtl.@{menu-prefix-cls}-submenu-popup {\n transform-origin: 100% 0;\n }\n\n &-vertical,\n &-vertical-left,\n &-vertical-right,\n &-inline {\n > .@{menu-prefix-cls}-submenu-title .@{menu-prefix-cls}-submenu-arrow {\n .@{menu-prefix-cls}-rtl & {\n right: auto;\n left: 16px;\n }\n }\n }\n\n &-vertical,\n &-vertical-left,\n &-vertical-right {\n > .@{menu-prefix-cls}-submenu-title .@{menu-prefix-cls}-submenu-arrow {\n &::before {\n .@{menu-prefix-cls}-rtl & {\n transform: rotate(-45deg) translateY(-2px);\n }\n }\n\n &::after {\n .@{menu-prefix-cls}-rtl & {\n transform: rotate(45deg) translateY(2px);\n }\n }\n }\n }\n }\n\n &-vertical,\n &-vertical-left,\n &-vertical-right,\n &-inline {\n .@{menu-prefix-cls}-item {\n &::after {\n .@{menu-prefix-cls}-rtl& {\n right: auto;\n left: 0;\n }\n }\n }\n\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n .@{menu-prefix-cls}-rtl& {\n text-align: right;\n }\n }\n }\n\n &-inline {\n .@{menu-prefix-cls}-submenu-title {\n .@{menu-prefix-cls}-rtl& {\n padding-right: 0;\n padding-left: 34px;\n }\n }\n }\n\n &-vertical {\n .@{menu-prefix-cls}-submenu-title {\n .@{menu-prefix-cls}-rtl& {\n padding-right: 16px;\n padding-left: 34px;\n }\n }\n }\n\n &-inline-collapsed&-vertical {\n .@{menu-prefix-cls}-submenu-title {\n .@{menu-prefix-cls}-rtl& {\n padding: 0 ~'calc(50% - @{menu-icon-size-lg} / 2)';\n }\n }\n }\n\n &-item-group-list {\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n .@{menu-prefix-cls}-rtl & {\n padding: 0 28px 0 16px;\n }\n }\n }\n\n &-sub&-inline {\n border: 0;\n & .@{menu-prefix-cls}-item-group-title {\n .@{menu-prefix-cls}-rtl& {\n padding-right: 32px;\n padding-left: 0;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tooltip-prefix-cls: ~'@{ant-prefix}-tooltip';\n\n@tooltip-arrow-shadow-width: 3px;\n\n@tooltip-arrow-rotate-width: sqrt(@tooltip-arrow-width * @tooltip-arrow-width * 2) +\n @tooltip-arrow-shadow-width * 2;\n\n@tooltip-arrow-offset-vertical: 5px; // 8 - 3px\n@tooltip-arrow-offset-horizontal: 13px; // 16 - 3px\n\n// Base class\n.@{tooltip-prefix-cls} {\n .reset-component();\n\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n width: max-content;\n width: intrinsic;\n max-width: @tooltip-max-width;\n visibility: visible;\n\n &-content {\n position: relative;\n }\n\n &-hidden {\n display: none;\n }\n\n &-placement-top,\n &-placement-topLeft,\n &-placement-topRight {\n padding-bottom: @tooltip-distance;\n }\n\n &-placement-right,\n &-placement-rightTop,\n &-placement-rightBottom {\n padding-left: @tooltip-distance;\n }\n\n &-placement-bottom,\n &-placement-bottomLeft,\n &-placement-bottomRight {\n padding-top: @tooltip-distance;\n }\n\n &-placement-left,\n &-placement-leftTop,\n &-placement-leftBottom {\n padding-right: @tooltip-distance;\n }\n\n // Wrapper for the tooltip content\n &-inner {\n min-width: 30px;\n min-height: 32px;\n padding: 6px 8px;\n color: @tooltip-color;\n text-align: left;\n text-decoration: none;\n word-wrap: break-word;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n box-shadow: @box-shadow-base;\n }\n\n // Arrows\n &-arrow {\n position: absolute;\n z-index: 2;\n display: block;\n width: @tooltip-arrow-rotate-width;\n height: @tooltip-arrow-rotate-width;\n overflow: hidden;\n background: transparent;\n pointer-events: none;\n\n &-content {\n // Use linear gradient to mix box shadow of tooltip inner\n --antd-arrow-background-color: linear-gradient(\n to right bottom,\n fadeout(@tooltip-bg, 10%),\n @tooltip-bg\n );\n\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n width: @tooltip-arrow-width;\n height: @tooltip-arrow-width;\n margin: auto;\n content: '';\n pointer-events: auto;\n .roundedArrow(@tooltip-arrow-width, 5px);\n }\n }\n\n &-placement-top &-arrow,\n &-placement-topLeft &-arrow,\n &-placement-topRight &-arrow {\n bottom: 0;\n transform: translateY(100%);\n\n &-content {\n box-shadow: @tooltip-arrow-shadow-width @tooltip-arrow-shadow-width 7px fade(@black, 7%);\n transform: translateY((-@tooltip-arrow-rotate-width / 2)) rotate(45deg);\n }\n }\n\n &-placement-top &-arrow {\n left: 50%;\n transform: translateY(100%) translateX(-50%);\n }\n\n &-placement-topLeft &-arrow {\n left: @tooltip-arrow-offset-horizontal;\n }\n\n &-placement-topRight &-arrow {\n right: @tooltip-arrow-offset-horizontal;\n }\n\n &-placement-right &-arrow,\n &-placement-rightTop &-arrow,\n &-placement-rightBottom &-arrow {\n left: 0;\n transform: translateX(-100%);\n\n &-content {\n box-shadow: -@tooltip-arrow-shadow-width @tooltip-arrow-shadow-width 7px fade(@black, 7%);\n transform: translateX((@tooltip-arrow-rotate-width / 2)) rotate(135deg);\n }\n }\n\n &-placement-right &-arrow {\n top: 50%;\n transform: translateX(-100%) translateY(-50%);\n }\n\n &-placement-rightTop &-arrow {\n top: @tooltip-arrow-offset-vertical;\n }\n\n &-placement-rightBottom &-arrow {\n bottom: @tooltip-arrow-offset-vertical;\n }\n\n &-placement-left &-arrow,\n &-placement-leftTop &-arrow,\n &-placement-leftBottom &-arrow {\n right: 0;\n transform: translateX(100%);\n\n &-content {\n box-shadow: @tooltip-arrow-shadow-width -@tooltip-arrow-shadow-width 7px fade(@black, 7%);\n transform: translateX((-@tooltip-arrow-rotate-width / 2)) rotate(315deg);\n }\n }\n\n &-placement-left &-arrow {\n top: 50%;\n transform: translateX(100%) translateY(-50%);\n }\n\n &-placement-leftTop &-arrow {\n top: @tooltip-arrow-offset-vertical;\n }\n\n &-placement-leftBottom &-arrow {\n bottom: @tooltip-arrow-offset-vertical;\n }\n\n &-placement-bottom &-arrow,\n &-placement-bottomLeft &-arrow,\n &-placement-bottomRight &-arrow {\n top: 0;\n transform: translateY(-100%);\n\n &-content {\n box-shadow: -@tooltip-arrow-shadow-width -@tooltip-arrow-shadow-width 7px fade(@black, 7%);\n transform: translateY((@tooltip-arrow-rotate-width / 2)) rotate(225deg);\n }\n }\n\n &-placement-bottom &-arrow {\n left: 50%;\n transform: translateY(-100%) translateX(-50%);\n }\n\n &-placement-bottomLeft &-arrow {\n left: @tooltip-arrow-offset-horizontal;\n }\n\n &-placement-bottomRight &-arrow {\n right: @tooltip-arrow-offset-horizontal;\n }\n}\n\n.generator-tooltip-preset-color(@i: length(@preset-colors)) when (@i > 0) {\n .generator-tooltip-preset-color(@i - 1);\n @color: extract(@preset-colors, @i);\n @lightColor: '@{color}-6';\n .@{tooltip-prefix-cls}-@{color} {\n .@{tooltip-prefix-cls}-inner {\n background-color: @@lightColor;\n }\n .@{tooltip-prefix-cls}-arrow {\n &-content::before {\n background: @@lightColor;\n }\n }\n }\n}\n.generator-tooltip-preset-color();\n\n@import './rtl';\n\n@root-entry-name: default;","@tooltip-prefix-cls: ~'@{ant-prefix}-tooltip';\n\n// Base class\n.@{tooltip-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n // Wrapper for the tooltip content\n &-inner {\n .@{tooltip-prefix-cls}-rtl & {\n text-align: right;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@space-prefix-cls: ~'@{ant-prefix}-space';\n@space-item-prefix-cls: ~'@{ant-prefix}-space-item';\n\n.@{space-prefix-cls} {\n display: inline-flex;\n\n &-vertical {\n flex-direction: column;\n }\n\n &-align {\n &-center {\n align-items: center;\n }\n\n &-start {\n align-items: flex-start;\n }\n\n &-end {\n align-items: flex-end;\n }\n\n &-baseline {\n align-items: baseline;\n }\n }\n}\n\n.@{space-item-prefix-cls} {\n &:empty {\n display: none;\n }\n}\n\n@import './compact';\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@space-compact-prefix-cls: ~'@{ant-prefix}-space-compact';\n\n.@{space-compact-prefix-cls} {\n display: inline-flex;\n\n &-block {\n display: flex;\n width: 100%;\n }\n\n &-vertical {\n flex-direction: column;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@space-prefix-cls: ~'@{ant-prefix}-space';\n\n.@{space-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-compact-rtl {\n direction: rtl;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@calendar-prefix-cls: ~'@{ant-prefix}-picker-calendar';\n@calendar-picker-prefix-cls: ~'@{ant-prefix}-picker';\n\n.@{calendar-prefix-cls} {\n .reset-component();\n background: @calendar-full-bg;\n\n // ========================= Header =========================\n &-header {\n display: flex;\n justify-content: flex-end;\n padding: @padding-sm 0;\n\n .@{calendar-prefix-cls}-year-select {\n min-width: 80px;\n }\n\n .@{calendar-prefix-cls}-month-select {\n min-width: 70px;\n margin-left: @padding-xs;\n }\n\n .@{calendar-prefix-cls}-mode-switch {\n margin-left: @padding-xs;\n }\n }\n\n .@{calendar-picker-prefix-cls}-panel {\n background: @calendar-full-panel-bg;\n border: 0;\n border-top: @border-width-base @border-style-base @border-color-split;\n border-radius: 0;\n\n .@{calendar-picker-prefix-cls}-month-panel,\n .@{calendar-picker-prefix-cls}-date-panel {\n width: auto;\n }\n\n .@{calendar-picker-prefix-cls}-body {\n padding: @padding-xs 0;\n }\n\n .@{calendar-picker-prefix-cls}-content {\n width: 100%;\n }\n }\n\n // ========================== Mini ==========================\n &-mini {\n border-radius: @border-radius-base;\n\n .@{calendar-picker-prefix-cls}-calendar-header {\n padding-right: @padding-xs;\n padding-left: @padding-xs;\n }\n\n .@{calendar-picker-prefix-cls}-panel {\n border-radius: 0 0 @border-radius-base @border-radius-base;\n }\n\n .@{calendar-picker-prefix-cls}-content {\n height: 256px;\n\n th {\n height: auto;\n padding: 0;\n line-height: 18px;\n }\n }\n\n .@{calendar-picker-prefix-cls}-cell::before {\n pointer-events: none;\n }\n }\n\n // ========================== Full ==========================\n &-full {\n .@{calendar-picker-prefix-cls}-panel {\n display: block;\n width: 100%;\n text-align: right;\n background: @calendar-full-bg;\n border: 0;\n\n .@{calendar-picker-prefix-cls}-body {\n th,\n td {\n padding: 0;\n }\n\n th {\n height: auto;\n padding: 0 12px 5px 0;\n line-height: 18px;\n }\n }\n\n // Cell\n .@{calendar-picker-prefix-cls}-cell {\n &::before {\n display: none;\n }\n\n &:hover {\n .@{calendar-prefix-cls}-date {\n background: @item-hover-bg;\n }\n }\n\n .@{calendar-prefix-cls}-date-today::before {\n display: none;\n }\n\n &-selected,\n &-selected:hover {\n .@{calendar-prefix-cls}-date,\n .@{calendar-prefix-cls}-date-today {\n background: @calendar-item-active-bg;\n\n .@{calendar-prefix-cls}-date-value {\n color: @primary-color;\n }\n }\n }\n }\n\n // Cell date\n .@{calendar-prefix-cls}-date {\n display: block;\n width: auto;\n height: auto;\n margin: 0 (@padding-xs / 2);\n padding: (@padding-xs / 2) @padding-xs 0;\n border: 0;\n border-top: 2px solid @border-color-split;\n border-radius: 0;\n transition: background 0.3s;\n\n &-value {\n line-height: 24px;\n transition: color 0.3s;\n }\n\n &-content {\n position: static;\n width: auto;\n height: 86px;\n overflow-y: auto;\n color: @text-color;\n line-height: @line-height-base;\n text-align: left;\n }\n\n &-today {\n border-color: @primary-color;\n\n .@{calendar-prefix-cls}-date-value {\n color: @text-color;\n }\n }\n }\n }\n }\n}\n\n@media only screen and (max-width: @screen-xs) {\n .@{calendar-prefix-cls} {\n &-header {\n display: block;\n\n .@{calendar-prefix-cls}-year-select {\n width: 50%;\n }\n\n .@{calendar-prefix-cls}-month-select {\n width: ~'calc(50% - @{padding-xs})';\n }\n\n .@{calendar-prefix-cls}-mode-switch {\n width: 100%;\n margin-top: @padding-xs;\n margin-left: 0;\n\n > label {\n width: 50%;\n text-align: center;\n }\n }\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{calendar-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-header {\n .@{calendar-prefix-cls}-month-select {\n .@{calendar-prefix-cls}-rtl & {\n margin-right: @padding-xs;\n margin-left: 0;\n }\n }\n\n .@{calendar-prefix-cls}-mode-switch {\n .@{calendar-prefix-cls}-rtl & {\n margin-right: @padding-xs;\n margin-left: 0;\n }\n }\n }\n\n // ========================== Full ==========================\n &-full {\n .@{calendar-picker-prefix-cls}-panel {\n .@{calendar-prefix-cls}-rtl& {\n text-align: left;\n }\n\n .@{calendar-picker-prefix-cls}-body {\n th {\n .@{calendar-prefix-cls}-rtl& {\n padding: 0 0 5px 12px;\n }\n }\n }\n\n .@{calendar-prefix-cls}-date {\n &-content {\n .@{calendar-prefix-cls}-rtl& {\n text-align: right;\n }\n }\n }\n }\n }\n}\n","@import '../../input/style/mixin';\n\n@picker-prefix-cls: ~'@{ant-prefix}-picker';\n\n.picker-status-color(\n @text-color: @input-color;\n @border-color: @input-border-color;\n @background-color: @input-bg;\n @hoverBorderColor: @primary-color-hover;\n @outlineColor: @primary-color-outline;\n) {\n &.@{picker-prefix-cls} {\n &,\n &:not([disabled]):hover {\n background-color: @background-color;\n border-color: @border-color;\n }\n\n &-focused,\n &:focus {\n .active(@text-color, @hoverBorderColor, @outlineColor);\n }\n\n .@{picker-prefix-cls}-active-bar {\n background: @hoverBorderColor;\n }\n }\n}\n\n.@{picker-prefix-cls} {\n &-status-error {\n .picker-status-color(@error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n }\n\n &-status-warning {\n .picker-status-color(@warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import './status';\n\n@picker-prefix-cls: ~'@{ant-prefix}-picker';\n\n.picker-padding(@input-height, @font-size, @padding-horizontal) {\n // font height probably 22.0001, So use floor better\n @font-height: floor(@font-size * @line-height-base) + 2;\n @padding-top: max(((@input-height - @font-height) / 2), 0);\n @padding-bottom: max(@input-height - @font-height - @padding-top, 0);\n padding: @padding-top @padding-horizontal @padding-bottom;\n}\n\n.@{picker-prefix-cls} {\n @arrow-size: @popover-arrow-width;\n\n .reset-component();\n .picker-padding(@input-height-base, @font-size-base, @input-padding-horizontal-base);\n position: relative;\n display: inline-flex;\n align-items: center;\n background: @picker-bg;\n border: @border-width-base @border-style-base @select-border-color;\n border-radius: @control-border-radius;\n transition: border @animation-duration-slow, box-shadow @animation-duration-slow;\n\n &:hover,\n &-focused {\n .hover();\n }\n\n &-focused {\n .active();\n }\n\n &&-disabled {\n background: @input-disabled-bg;\n border-color: @select-border-color;\n cursor: not-allowed;\n }\n\n &&-disabled &-suffix {\n color: @disabled-color;\n }\n\n &&-borderless {\n background-color: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n }\n\n // ======================== Input =========================\n &-input {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 100%;\n\n > input {\n .input();\n flex: auto;\n\n // Fix Firefox flex not correct:\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n min-width: 1px;\n height: auto;\n padding: 0;\n background: transparent;\n\n border: 0;\n\n &:focus {\n box-shadow: none;\n }\n\n &[disabled] {\n background: transparent;\n }\n }\n\n &:hover {\n .@{picker-prefix-cls}-clear {\n opacity: 1;\n }\n }\n\n &-placeholder {\n > input {\n color: @input-placeholder-color;\n }\n }\n }\n\n // Size\n &-large {\n .picker-padding(@input-height-lg, @font-size-lg, @input-padding-horizontal-lg);\n\n .@{picker-prefix-cls}-input > input {\n font-size: @font-size-lg;\n }\n }\n\n &-small {\n .picker-padding(@input-height-sm, @font-size-base, @input-padding-horizontal-sm);\n }\n\n &-suffix {\n display: flex;\n flex: none;\n align-self: center;\n margin-left: (@padding-xs / 2);\n color: @disabled-color;\n line-height: 1;\n pointer-events: none;\n\n > * {\n vertical-align: top;\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n }\n }\n\n &-clear {\n position: absolute;\n top: 50%;\n right: 0;\n color: @disabled-color;\n line-height: 1;\n background: @component-background;\n transform: translateY(-50%);\n cursor: pointer;\n opacity: 0;\n transition: opacity @animation-duration-slow, color @animation-duration-slow;\n\n > * {\n vertical-align: top;\n }\n\n &:hover {\n color: @text-color-secondary;\n }\n }\n\n &-separator {\n position: relative;\n display: inline-block;\n width: 1em;\n height: @font-size-lg;\n color: @disabled-color;\n font-size: @font-size-lg;\n vertical-align: top;\n cursor: default;\n\n .@{picker-prefix-cls}-focused & {\n color: @text-color-secondary;\n }\n\n .@{picker-prefix-cls}-range-separator & {\n .@{picker-prefix-cls}-disabled & {\n cursor: not-allowed;\n }\n }\n }\n\n // ======================== Range =========================\n &-range {\n position: relative;\n display: inline-flex;\n\n // Clear\n .@{picker-prefix-cls}-clear {\n right: @input-padding-horizontal-base;\n }\n\n &:hover {\n .@{picker-prefix-cls}-clear {\n opacity: 1;\n }\n }\n\n // Active bar\n .@{picker-prefix-cls}-active-bar {\n bottom: -@border-width-base;\n height: 2px;\n margin-left: @input-padding-horizontal-base;\n background: @primary-color;\n opacity: 0;\n transition: all @animation-duration-slow ease-out;\n pointer-events: none;\n }\n\n &.@{picker-prefix-cls}-focused {\n .@{picker-prefix-cls}-active-bar {\n opacity: 1;\n }\n }\n\n &-separator {\n align-items: center;\n padding: 0 @padding-xs;\n line-height: 1;\n }\n\n &.@{picker-prefix-cls}-small {\n .@{picker-prefix-cls}-clear {\n right: @input-padding-horizontal-sm;\n }\n\n .@{picker-prefix-cls}-active-bar {\n margin-left: @input-padding-horizontal-sm;\n }\n }\n }\n\n // ======================= Dropdown =======================\n &-dropdown {\n .reset-component();\n position: absolute;\n // Fix incorrect position of picker popup\n // https://github.com/ant-design/ant-design/issues/35590\n top: -9999px;\n left: -9999px;\n z-index: @zindex-picker;\n\n &-hidden {\n display: none;\n }\n\n &-placement-bottomLeft {\n .@{picker-prefix-cls}-range-arrow {\n top: (@arrow-size / 2) - (@arrow-size / 3) + 0.7px;\n display: block;\n transform: rotate(-135deg) translateY(1px);\n }\n }\n\n &-placement-topLeft {\n .@{picker-prefix-cls}-range-arrow {\n bottom: (@arrow-size / 2) - (@arrow-size / 3) + 0.7px;\n display: block;\n transform: rotate(45deg);\n }\n }\n\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-topRight,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-topRight {\n animation-name: antSlideDownIn;\n }\n\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-bottomRight,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-bottomRight {\n animation-name: antSlideUpIn;\n }\n\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-topRight {\n animation-name: antSlideDownOut;\n }\n\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-bottomRight {\n animation-name: antSlideUpOut;\n }\n }\n\n &-dropdown-range {\n padding: (@arrow-size * 2 / 3) 0;\n\n &-hidden {\n display: none;\n }\n }\n\n // Time picker with additional style\n &-dropdown &-panel > &-time-panel {\n padding-top: (@padding-xs / 2);\n }\n\n // ======================== Ranges ========================\n &-ranges {\n margin-bottom: 0;\n padding: (@padding-xs / 2) @padding-sm;\n overflow: hidden;\n line-height: @picker-text-height - 2 * @border-width-base - (@padding-xs / 2);\n text-align: left;\n list-style: none;\n\n > li {\n display: inline-block;\n }\n\n // https://github.com/ant-design/ant-design/issues/23687\n .@{picker-prefix-cls}-preset > .@{ant-prefix}-tag-blue {\n color: @primary-color;\n background: @primary-1;\n border-color: @primary-3;\n cursor: pointer;\n }\n\n .@{picker-prefix-cls}-ok {\n float: right;\n margin-left: @padding-xs;\n }\n }\n\n &-range-wrapper {\n display: flex;\n }\n\n &-range-arrow {\n position: absolute;\n z-index: 1;\n width: @arrow-size;\n height: @arrow-size;\n margin-left: @input-padding-horizontal-base * 1.5;\n box-shadow: 2px 2px 6px -2px fade(@black, 10%); // use spread radius to hide shadow over popover\n transition: left @animation-duration-slow ease-out;\n .roundedArrow(@arrow-size, 5px, @calendar-bg);\n }\n\n &-panel-container {\n overflow: hidden;\n vertical-align: top;\n background: @calendar-bg;\n border-radius: @border-radius-base;\n box-shadow: @box-shadow-base;\n transition: margin @animation-duration-slow;\n\n .@{picker-prefix-cls}-panels {\n display: inline-flex;\n flex-wrap: nowrap;\n direction: ltr;\n }\n\n .@{picker-prefix-cls}-panel {\n vertical-align: top;\n background: transparent;\n border-width: 0 0 @border-width-base 0;\n border-radius: 0;\n\n .@{picker-prefix-cls}-content,\n table {\n text-align: center;\n }\n\n &-focused {\n border-color: @border-color-split;\n }\n }\n }\n\n // ===================== Compact Item Styles =====================\n .compact-item(@picker-prefix-cls, null, ~'@{picker-prefix-cls}-focused');\n}\n\n@import './panel';\n@import './rtl';\n\n@root-entry-name: default;","// Compatibility for browsers.\n\n// Placeholder text\n.placeholder(@color: @input-placeholder-color) {\n &::placeholder {\n color: @color;\n user-select: none; // https://github.com/ant-design/ant-design/pull/32639\n }\n\n &:placeholder-shown {\n text-overflow: ellipsis;\n }\n}\n","@picker-cell-inner-cls: ~'@{picker-prefix-cls}-cell-inner';\n\n.@{picker-prefix-cls} {\n @picker-arrow-size: 7px;\n @picker-year-month-cell-width: 60px;\n @picker-panel-width: @picker-panel-cell-width * 7 + @padding-sm * 2 + 4;\n\n &-panel {\n display: inline-flex;\n flex-direction: column;\n text-align: center;\n background: @calendar-bg;\n border: @border-width-base @border-style-base @picker-border-color;\n border-radius: @border-radius-base;\n outline: none;\n\n &-focused {\n border-color: @primary-color;\n }\n }\n\n // ========================================================\n // = Shared Panel =\n // ========================================================\n &-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel,\n &-week-panel,\n &-date-panel,\n &-time-panel {\n display: flex;\n flex-direction: column;\n width: @picker-panel-width;\n }\n\n // ======================= Header =======================\n &-header {\n display: flex;\n padding: 0 @padding-xs;\n color: @heading-color;\n border-bottom: @border-width-base @border-style-base @picker-border-color;\n\n > * {\n flex: none;\n }\n\n button {\n padding: 0;\n color: @disabled-color;\n line-height: @picker-text-height;\n background: transparent;\n border: 0;\n cursor: pointer;\n transition: color @animation-duration-slow;\n }\n\n > button {\n min-width: 1.6em;\n font-size: @font-size-base;\n\n &:hover {\n color: @text-color;\n }\n }\n\n &-view {\n flex: auto;\n font-weight: 500;\n line-height: @picker-text-height;\n\n button {\n color: inherit;\n font-weight: inherit;\n\n &:not(:first-child) {\n margin-left: @padding-xs;\n }\n\n &:hover {\n color: @primary-color;\n }\n }\n }\n }\n\n // Arrow button\n &-prev-icon,\n &-next-icon,\n &-super-prev-icon,\n &-super-next-icon {\n position: relative;\n display: inline-block;\n width: @picker-arrow-size;\n height: @picker-arrow-size;\n\n &::before {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n width: @picker-arrow-size;\n height: @picker-arrow-size;\n border: 0 solid currentcolor;\n border-width: 1.5px 0 0 1.5px;\n content: '';\n }\n }\n\n &-super-prev-icon,\n &-super-next-icon {\n &::after {\n position: absolute;\n top: ceil((@picker-arrow-size / 2));\n left: ceil((@picker-arrow-size / 2));\n display: inline-block;\n width: @picker-arrow-size;\n height: @picker-arrow-size;\n border: 0 solid currentcolor;\n border-width: 1.5px 0 0 1.5px;\n content: '';\n }\n }\n\n &-prev-icon,\n &-super-prev-icon {\n transform: rotate(-45deg);\n }\n\n &-next-icon,\n &-super-next-icon {\n transform: rotate(135deg);\n }\n\n // ======================== Body ========================\n &-content {\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n\n th,\n td {\n position: relative;\n min-width: 24px;\n font-weight: 400;\n }\n\n th {\n height: 30px;\n color: @text-color;\n line-height: 30px;\n }\n }\n\n .picker-cell-inner(@cellClassName) {\n &::before {\n position: absolute;\n top: 50%;\n right: 0;\n left: 0;\n z-index: 1;\n height: @picker-panel-cell-height;\n transform: translateY(-50%);\n transition: all @animation-duration-slow;\n content: '';\n }\n\n // >>> Default\n .@{cellClassName} {\n position: relative;\n z-index: 2;\n display: inline-block;\n min-width: @picker-panel-cell-height;\n height: @picker-panel-cell-height;\n line-height: @picker-panel-cell-height;\n border-radius: @border-radius-base;\n transition: background @animation-duration-slow, border @animation-duration-slow;\n }\n\n // >>> Hover\n &:hover:not(&-in-view),\n &:hover:not(&-selected):not(&-range-start):not(&-range-end):not(&-range-hover-start):not(&-range-hover-end) {\n .@{cellClassName} {\n background: @picker-basic-cell-hover-color;\n }\n }\n\n // >>> Today\n &-in-view&-today .@{cellClassName} {\n &::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n border: @border-width-base @border-style-base @primary-color;\n border-radius: @border-radius-base;\n content: '';\n }\n }\n\n // >>> In Range\n &-in-view&-in-range {\n position: relative;\n\n &::before {\n background: @picker-basic-cell-active-with-range-color;\n }\n }\n\n // >>> Selected\n &-in-view&-selected .@{cellClassName},\n &-in-view&-range-start .@{cellClassName},\n &-in-view&-range-end .@{cellClassName} {\n color: @text-color-inverse;\n background: @primary-color;\n }\n\n &-in-view&-range-start:not(&-range-start-single),\n &-in-view&-range-end:not(&-range-end-single) {\n &::before {\n background: @picker-basic-cell-active-with-range-color;\n }\n }\n\n &-in-view&-range-start::before {\n left: 50%;\n }\n\n &-in-view&-range-end::before {\n right: 50%;\n }\n\n // >>> Range Hover\n &-in-view&-range-hover-start:not(&-in-range):not(&-range-start):not(&-range-end),\n &-in-view&-range-hover-end:not(&-in-range):not(&-range-start):not(&-range-end),\n &-in-view&-range-hover-start&-range-start-single,\n &-in-view&-range-hover-start&-range-start&-range-end&-range-end-near-hover,\n &-in-view&-range-hover-end&-range-start&-range-end&-range-start-near-hover,\n &-in-view&-range-hover-end&-range-end-single,\n &-in-view&-range-hover:not(&-in-range) {\n &::after {\n position: absolute;\n top: 50%;\n z-index: 0;\n height: 24px;\n border-top: @border-width-base dashed @picker-date-hover-range-border-color;\n border-bottom: @border-width-base dashed @picker-date-hover-range-border-color;\n transform: translateY(-50%);\n transition: all @animation-duration-slow;\n content: '';\n }\n }\n\n // Add space for stash\n &-range-hover-start::after,\n &-range-hover-end::after,\n &-range-hover::after {\n right: 0;\n left: 2px;\n }\n\n // Hover with in range\n &-in-view&-in-range&-range-hover::before,\n &-in-view&-range-start&-range-hover::before,\n &-in-view&-range-end&-range-hover::before,\n &-in-view&-range-start:not(&-range-start-single)&-range-hover-start::before,\n &-in-view&-range-end:not(&-range-end-single)&-range-hover-end::before,\n .@{picker-prefix-cls}-panel\n > :not(.@{picker-prefix-cls}-date-panel)\n &-in-view&-in-range&-range-hover-start::before,\n .@{picker-prefix-cls}-panel\n > :not(.@{picker-prefix-cls}-date-panel)\n &-in-view&-in-range&-range-hover-end::before {\n background: @picker-date-hover-range-color;\n }\n\n // range start border-radius\n &-in-view&-range-start:not(&-range-start-single):not(&-range-end) .@{cellClassName} {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n\n // range end border-radius\n &-in-view&-range-end:not(&-range-end-single):not(&-range-start) .@{cellClassName} {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n\n // DatePanel only\n .@{picker-prefix-cls}-date-panel &-in-view&-in-range&-range-hover-start .@{cellClassName},\n .@{picker-prefix-cls}-date-panel &-in-view&-in-range&-range-hover-end .@{cellClassName} {\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: -1;\n background: @picker-date-hover-range-color;\n transition: all @animation-duration-slow;\n content: '';\n }\n }\n\n .@{picker-prefix-cls}-date-panel\n &-in-view&-in-range&-range-hover-start\n .@{cellClassName}::after {\n right: -5px - @border-width-base;\n left: 0;\n }\n\n .@{picker-prefix-cls}-date-panel &-in-view&-in-range&-range-hover-end .@{cellClassName}::after {\n right: 0;\n left: -5px - @border-width-base;\n }\n\n // Hover with range start & end\n &-range-hover&-range-start::after {\n right: 50%;\n }\n\n &-range-hover&-range-end::after {\n left: 50%;\n }\n\n // Edge start\n tr > &-in-view&-range-hover:first-child::after,\n tr > &-in-view&-range-hover-end:first-child::after,\n &-in-view&-start&-range-hover-edge-start&-range-hover-edge-start-near-range::after,\n &-in-view&-range-hover-edge-start:not(&-range-hover-edge-start-near-range)::after,\n &-in-view&-range-hover-start::after {\n left: 6px;\n border-left: @border-width-base dashed @picker-date-hover-range-border-color;\n border-top-left-radius: @border-radius-base;\n border-bottom-left-radius: @border-radius-base;\n }\n\n // Edge end\n tr > &-in-view&-range-hover:last-child::after,\n tr > &-in-view&-range-hover-start:last-child::after,\n &-in-view&-end&-range-hover-edge-end&-range-hover-edge-end-near-range::after,\n &-in-view&-range-hover-edge-end:not(&-range-hover-edge-end-near-range)::after,\n &-in-view&-range-hover-end::after {\n right: 6px;\n border-right: @border-width-base dashed @picker-date-hover-range-border-color;\n border-top-right-radius: @border-radius-base;\n border-bottom-right-radius: @border-radius-base;\n }\n\n // >>> Disabled\n &-disabled {\n color: @disabled-color;\n pointer-events: none;\n\n .@{cellClassName} {\n background: transparent;\n }\n\n &::before {\n background: @picker-basic-cell-disabled-bg;\n }\n }\n &-disabled&-today .@{cellClassName}::before {\n border-color: @disabled-color;\n }\n }\n\n &-cell {\n padding: 3px 0;\n color: @disabled-color;\n cursor: pointer;\n\n // In view\n &-in-view {\n color: @text-color;\n }\n\n .picker-cell-inner(~'@{picker-cell-inner-cls}');\n }\n\n &-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel {\n .@{picker-prefix-cls}-content {\n height: @picker-panel-without-time-cell-height * 4;\n }\n\n .@{picker-cell-inner-cls} {\n padding: 0 @padding-xs;\n }\n }\n\n &-quarter-panel {\n .@{picker-prefix-cls}-content {\n height: 56px;\n }\n }\n\n // ======================== Footer ========================\n &-footer {\n width: min-content;\n min-width: 100%;\n line-height: @picker-text-height - 2 * @border-width-base;\n text-align: center;\n border-bottom: @border-width-base @border-style-base transparent;\n\n .@{picker-prefix-cls}-panel & {\n border-top: @border-width-base @border-style-base @picker-border-color;\n }\n\n &-extra {\n padding: 0 @padding-sm;\n line-height: @picker-text-height - 2 * @border-width-base;\n text-align: left;\n\n &:not(:last-child) {\n border-bottom: @border-width-base @border-style-base @picker-border-color;\n }\n }\n }\n\n &-now {\n text-align: left;\n }\n\n &-today-btn {\n color: @link-color;\n\n &:hover {\n color: @link-hover-color;\n }\n\n &:active {\n color: @link-active-color;\n }\n\n &&-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n }\n }\n\n // ========================================================\n // = Special =\n // ========================================================\n\n // ===================== Decade Panel =====================\n &-decade-panel {\n .@{picker-cell-inner-cls} {\n padding: 0 (@padding-xs / 2);\n }\n\n .@{picker-prefix-cls}-cell::before {\n display: none;\n }\n }\n\n // ============= Year & Quarter & Month Panel =============\n &-year-panel,\n &-quarter-panel,\n &-month-panel {\n @hover-cell-fixed-distance: (\n (((@picker-panel-width - @padding-xs * 2) / 3) - @picker-year-month-cell-width) / 2\n );\n\n .@{picker-prefix-cls}-body {\n padding: 0 @padding-xs;\n }\n\n .@{picker-cell-inner-cls} {\n width: @picker-year-month-cell-width;\n }\n\n .@{picker-prefix-cls}-cell-range-hover-start::after {\n left: @hover-cell-fixed-distance;\n border-left: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n\n .@{picker-prefix-cls}-panel-rtl & {\n right: @hover-cell-fixed-distance;\n border-right: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n .@{picker-prefix-cls}-cell-range-hover-end::after {\n right: @hover-cell-fixed-distance;\n border-right: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n\n .@{picker-prefix-cls}-panel-rtl & {\n left: @hover-cell-fixed-distance;\n border-left: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n }\n\n // ====================== Week Panel ======================\n &-week-panel {\n .@{picker-prefix-cls}-body {\n padding: @padding-xs @padding-sm;\n }\n\n // Clear cell style\n .@{picker-prefix-cls}-cell {\n &:hover .@{picker-cell-inner-cls},\n &-selected .@{picker-cell-inner-cls},\n .@{picker-cell-inner-cls} {\n background: transparent !important;\n }\n }\n\n &-row {\n td {\n transition: background @animation-duration-slow;\n }\n\n &:hover td {\n background: @picker-basic-cell-hover-color;\n }\n\n &-selected td,\n &-selected:hover td {\n background: @primary-color;\n\n &.@{picker-prefix-cls}-cell-week {\n color: fade(@text-color-inverse, 50%);\n }\n\n &.@{picker-prefix-cls}-cell-today .@{picker-cell-inner-cls}::before {\n border-color: @text-color-inverse;\n }\n\n .@{picker-cell-inner-cls} {\n color: @text-color-inverse;\n }\n }\n }\n }\n\n // ====================== Date Panel ======================\n &-date-panel {\n .@{picker-prefix-cls}-body {\n padding: @padding-xs @padding-sm;\n }\n\n .@{picker-prefix-cls}-content {\n width: @picker-panel-cell-width * 7;\n\n th {\n width: @picker-panel-cell-width;\n }\n }\n }\n\n // ==================== Datetime Panel ====================\n &-datetime-panel {\n display: flex;\n\n .@{picker-prefix-cls}-time-panel {\n border-left: @border-width-base @border-style-base @picker-border-color;\n }\n\n .@{picker-prefix-cls}-date-panel,\n .@{picker-prefix-cls}-time-panel {\n transition: opacity @animation-duration-slow;\n }\n\n // Keyboard\n &-active {\n .@{picker-prefix-cls}-date-panel,\n .@{picker-prefix-cls}-time-panel {\n opacity: 0.3;\n\n &-active {\n opacity: 1;\n }\n }\n }\n }\n\n // ====================== Time Panel ======================\n &-time-panel {\n width: auto;\n min-width: auto;\n\n .@{picker-prefix-cls}-content {\n display: flex;\n flex: auto;\n height: @picker-time-panel-column-height;\n }\n\n &-column {\n flex: 1 0 auto;\n width: @picker-time-panel-column-width;\n margin: 0;\n padding: 0;\n overflow-y: hidden;\n text-align: left;\n list-style: none;\n transition: background @animation-duration-slow;\n\n &::after {\n display: block;\n height: @picker-time-panel-column-height - @picker-time-panel-cell-height;\n content: '';\n .@{picker-prefix-cls}-datetime-panel & {\n height: @picker-time-panel-column-height - @picker-time-panel-cell-height + 2 *\n @border-width-base;\n }\n }\n\n &:not(:first-child) {\n border-left: @border-width-base @border-style-base @picker-border-color;\n }\n\n &-active {\n background: @calendar-column-active-bg;\n }\n\n &:hover {\n overflow-y: auto;\n }\n\n > li {\n margin: 0;\n padding: 0;\n\n &.@{picker-prefix-cls}-time-panel-cell {\n .@{picker-prefix-cls}-time-panel-cell-inner {\n display: block;\n width: 100%;\n height: @picker-time-panel-cell-height;\n margin: 0;\n padding: 0 0 0 ((@picker-time-panel-column-width - 28px) / 2);\n color: @text-color;\n line-height: @picker-time-panel-cell-height;\n border-radius: 0;\n cursor: pointer;\n transition: background @animation-duration-slow;\n\n &:hover {\n background: @item-hover-bg;\n }\n }\n\n &-selected {\n .@{picker-prefix-cls}-time-panel-cell-inner {\n background: @calendar-item-active-bg;\n }\n }\n\n &-disabled {\n .@{picker-prefix-cls}-time-panel-cell-inner {\n color: @disabled-color;\n background: transparent;\n cursor: not-allowed;\n }\n }\n }\n }\n }\n }\n}\n\n// Fix IE11 render bug by css hacks\n// https://github.com/ant-design/ant-design/issues/21559\n// https://codepen.io/afc163-1472555193/pen/mdJRaNj?editors=0110\n/* stylelint-disable selector-type-no-unknown,selector-no-vendor-prefix */\n_:-ms-fullscreen,\n:root {\n .@{picker-prefix-cls}-range-wrapper {\n .@{picker-prefix-cls}-month-panel .@{picker-prefix-cls}-cell,\n .@{picker-prefix-cls}-year-panel .@{picker-prefix-cls}-cell {\n padding: 21px 0;\n }\n }\n}\n",".@{picker-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-suffix {\n .@{picker-prefix-cls}-rtl & {\n margin-right: (@padding-xs / 2);\n margin-left: 0;\n }\n }\n\n &-clear {\n .@{picker-prefix-cls}-rtl & {\n right: auto;\n left: 0;\n }\n }\n\n &-separator {\n .@{picker-prefix-cls}-rtl & {\n transform: rotate(180deg);\n }\n }\n\n &-header {\n &-view {\n button {\n &:not(:first-child) {\n .@{picker-prefix-cls}-panel-rtl & {\n margin-right: @padding-xs;\n margin-left: 0;\n }\n }\n }\n }\n }\n\n // ======================== Range =========================\n &-range {\n // Clear\n .@{picker-prefix-cls}-clear {\n .@{picker-prefix-cls}-rtl& {\n right: auto;\n left: @input-padding-horizontal-base;\n }\n }\n\n // Active bar\n .@{picker-prefix-cls}-active-bar {\n .@{picker-prefix-cls}-rtl& {\n margin-right: @input-padding-horizontal-base;\n margin-left: 0;\n }\n }\n\n &.@{picker-prefix-cls}-small {\n .@{picker-prefix-cls}-active-bar {\n .@{picker-prefix-cls}-rtl& {\n margin-right: @input-padding-horizontal-sm;\n }\n }\n }\n }\n\n // ======================== Ranges ========================\n &-ranges {\n .@{picker-prefix-cls}-dropdown-rtl & {\n text-align: right;\n }\n\n .@{picker-prefix-cls}-ok {\n .@{picker-prefix-cls}-dropdown-rtl & {\n float: left;\n margin-right: @padding-xs;\n margin-left: 0;\n }\n }\n }\n\n // ======================== Panel ========================\n &-panel {\n &-rtl {\n direction: rtl;\n }\n }\n\n &-prev-icon,\n &-super-prev-icon {\n .@{picker-prefix-cls}-panel-rtl & {\n transform: rotate(135deg);\n }\n }\n\n &-next-icon,\n &-super-next-icon {\n .@{picker-prefix-cls}-panel-rtl & {\n transform: rotate(-45deg);\n }\n }\n\n &-cell {\n .picker-cell-inner(~'@{picker-cell-inner-cls}');\n }\n\n // ======================== Body ==========================\n .picker-cell-inner(@cellClassName) {\n .@{cellClassName} {\n position: relative;\n z-index: 2;\n display: inline-block;\n min-width: @picker-panel-cell-height;\n height: @picker-panel-cell-height;\n line-height: @picker-panel-cell-height;\n border-radius: @border-radius-base;\n transition: background @animation-duration-slow, border @animation-duration-slow;\n }\n\n &-in-view&-range-start::before {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 50%;\n left: 0;\n }\n }\n\n &-in-view&-range-end::before {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 0;\n left: 50%;\n }\n }\n\n &-in-view&-range-start&-range-end::before {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 50%;\n left: 50%;\n }\n }\n\n .@{picker-prefix-cls}-date-panel\n &-in-view&-in-range&-range-hover-start\n .@{cellClassName}::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 0;\n left: -5px - @border-width-base;\n }\n }\n\n .@{picker-prefix-cls}-date-panel &-in-view&-in-range&-range-hover-end .@{cellClassName}::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: -5px - @border-width-base;\n left: 0;\n }\n }\n\n // Hover with range start & end\n &-range-hover&-range-start::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 0;\n left: 50%;\n }\n }\n\n &-range-hover&-range-end::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 50%;\n left: 0;\n }\n }\n\n // range start border-radius\n &-in-view&-range-start:not(&-range-start-single):not(&-range-end) .@{cellClassName} {\n .@{picker-prefix-cls}-panel-rtl & {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n\n // range end border-radius\n &-in-view&-range-end:not(&-range-end-single):not(&-range-start) .@{cellClassName} {\n .@{picker-prefix-cls}-panel-rtl & {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n // Edge start\n tr > &-in-view&-range-hover:not(&-selected):first-child::after,\n &-in-view&-start&-range-hover-edge-start&-range-hover-edge-start-near-range::after,\n &-in-view&-range-hover-edge-start:not(&-range-hover-edge-start-near-range)::after,\n &-in-view&-range-hover-start::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 6px;\n left: 0;\n border-right: @border-width-base dashed @picker-date-hover-range-border-color;\n border-left: none;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n\n // Edge end\n tr > &-in-view&-range-hover:not(&-selected):last-child::after,\n &-in-view&-end&-range-hover-edge-end&-range-hover-edge-end-near-range::after,\n &-in-view&-range-hover-edge-end:not(&-range-hover-edge-end-near-range)::after,\n &-in-view&-range-hover-end::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 0;\n left: 6px;\n border-right: none;\n border-left: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n tr > &-in-view&-range-hover-start:last-child::after,\n tr > &-in-view&-range-hover-end:first-child::after,\n &-in-view&-start&-range-hover-edge-start:not(&-range-hover)::after,\n &-in-view&-start&-range-hover-end&-range-hover-edge-start:not(&-range-hover)::after,\n &-in-view&-end&-range-hover-start&-range-hover-edge-end:not(&-range-hover)::after,\n tr > &-in-view&-start&-range-hover&-range-hover-edge-start:last-child::after,\n tr > &-in-view&-end&-range-hover&-range-hover-edge-end:first-child::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 6px;\n left: 6px;\n border-right: @border-width-base dashed @picker-date-hover-range-border-color;\n border-left: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: @border-radius-base;\n }\n }\n }\n\n // ======================== Footer ========================\n &-footer {\n &-extra {\n .@{picker-prefix-cls}-dropdown-rtl & {\n direction: rtl;\n text-align: right;\n }\n }\n }\n\n // ====================== Time Panel ======================\n &-time-panel {\n .@{picker-prefix-cls}-panel-rtl & {\n direction: ltr;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tag-prefix-cls: ~'@{ant-prefix}-tag';\n\n.@{tag-prefix-cls} {\n .reset-component();\n\n display: inline-block;\n height: auto;\n margin-right: 8px;\n padding: 0 7px;\n font-size: @tag-font-size;\n line-height: @tag-line-height;\n white-space: nowrap;\n background: @tag-default-bg;\n border: @border-width-base @border-style-base @border-color-base;\n border-radius: @tag-border-radius;\n opacity: 1;\n transition: all 0.3s;\n\n &,\n a,\n a:hover {\n color: @tag-default-color;\n }\n\n > a:first-child:last-child {\n display: inline-block;\n margin: 0 -8px;\n padding: 0 8px;\n }\n\n &-close-icon {\n margin-left: 3px;\n color: @text-color-secondary;\n font-size: 10px;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n color: @heading-color;\n }\n }\n\n &-has-color {\n border-color: transparent;\n &,\n a,\n a:hover,\n .@{iconfont-css-prefix}-close,\n .@{iconfont-css-prefix}-close:hover {\n color: @text-color-inverse;\n }\n }\n\n &-checkable {\n background-color: transparent;\n border-color: transparent;\n cursor: pointer;\n\n &:not(&-checked):hover {\n color: @primary-color;\n }\n\n &:active,\n &-checked {\n color: @text-color-inverse;\n }\n\n &-checked {\n background-color: @primary-6;\n }\n\n &:active {\n background-color: @primary-7;\n }\n }\n\n &-hidden {\n display: none;\n }\n\n // mixin to iterate over colors and create CSS class for each one\n .make-color-classes(@i: length(@preset-colors)) when (@i > 0) {\n .make-color-classes(@i - 1);\n @color: extract(@preset-colors, @i);\n @lightColor: '@{color}-1';\n @lightBorderColor: '@{color}-3';\n @darkColor: '@{color}-6';\n @textColor: '@{color}-7';\n &-@{color} {\n color: @@textColor;\n background: @@lightColor;\n border-color: @@lightBorderColor;\n }\n &-@{color}-inverse {\n color: @text-color-inverse;\n background: @@darkColor;\n border-color: @@darkColor;\n }\n }\n\n .make-status-color-classes(@status, @cssVariableType) {\n @bgColor: '@{cssVariableType}-color-deprecated-bg';\n @borderColor: '@{cssVariableType}-color-deprecated-border';\n @textColor: '@{cssVariableType}-color';\n &-@{status} {\n color: @@textColor;\n background: @@bgColor;\n border-color: @@borderColor;\n }\n }\n\n .make-color-classes();\n\n .make-status-color-classes(success, success);\n .make-status-color-classes(processing, info);\n .make-status-color-classes(error, error);\n .make-status-color-classes(warning, warning);\n\n // To ensure that a space will be placed between character and `Icon`.\n > .@{iconfont-css-prefix} + span,\n > span + .@{iconfont-css-prefix} {\n margin-left: 7px;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tag-prefix-cls: ~'@{ant-prefix}-tag';\n\n.@{tag-prefix-cls} {\n &&-rtl {\n margin-right: 0;\n margin-left: 8px;\n direction: rtl;\n text-align: right;\n }\n\n &-close-icon {\n .@{tag-prefix-cls}-rtl & {\n margin-right: 3px;\n margin-left: 0;\n }\n }\n\n > .@{iconfont-css-prefix} + span,\n > span + .@{iconfont-css-prefix} {\n .@{tag-prefix-cls}-rtl& {\n margin-right: 7px;\n margin-left: 0;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@radio-prefix-cls: ~'@{ant-prefix}-radio';\n@radio-group-prefix-cls: ~'@{radio-prefix-cls}-group';\n@radio-inner-prefix-cls: ~'@{radio-prefix-cls}-inner';\n@radio-duration: 0.3s;\n@radio-focus-shadow: 0 0 0 3px @slider-handle-color-focus-shadow;\n@radio-button-focus-shadow: @radio-focus-shadow;\n\n.@{radio-group-prefix-cls} {\n .reset-component();\n\n display: inline-block;\n font-size: 0;\n\n .@{ant-prefix}-badge-count {\n z-index: 1;\n }\n\n > .@{ant-prefix}-badge:not(:first-child) > .@{radio-prefix-cls}-button-wrapper {\n border-left: none;\n }\n}\n\n// 一般状态\n.@{radio-prefix-cls}-wrapper {\n .reset-component();\n position: relative;\n display: inline-flex;\n align-items: baseline;\n margin-right: @radio-wrapper-margin-right;\n cursor: pointer;\n\n &-disabled {\n cursor: not-allowed;\n }\n\n &::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n }\n\n &&-in-form-item {\n input[type='radio'] {\n width: 14px;\n height: 14px;\n }\n }\n}\n\n.@{radio-prefix-cls} {\n .reset-component();\n\n position: relative;\n top: @radio-top;\n display: inline-block;\n outline: none;\n cursor: pointer;\n\n .@{radio-prefix-cls}-wrapper:hover &,\n &:hover .@{radio-inner-prefix-cls},\n &-input:focus + .@{radio-inner-prefix-cls} {\n border-color: @radio-dot-color;\n }\n\n &-input:focus + .@{radio-inner-prefix-cls} {\n box-shadow: @radio-focus-shadow;\n }\n\n &-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid @radio-dot-color;\n border-radius: 50%;\n visibility: hidden;\n animation: antRadioEffect 0.36s ease-in-out;\n animation-fill-mode: both;\n content: '';\n }\n\n &:hover::after,\n .@{radio-prefix-cls}-wrapper:hover &::after {\n visibility: visible;\n }\n\n &-inner {\n &::after {\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n width: @radio-size;\n height: @radio-size;\n margin-top: -(@radio-size / 2);\n margin-left: -(@radio-size / 2);\n background-color: @radio-dot-color;\n border-top: 0;\n border-left: 0;\n border-radius: @radio-size;\n transform: scale(0);\n opacity: 0;\n transition: all @radio-duration @ease-in-out-circ;\n content: ' ';\n }\n\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: @radio-size;\n height: @radio-size;\n background-color: @radio-button-bg;\n border-color: @border-color-base;\n border-style: solid;\n border-width: @radio-border-width;\n border-radius: 50%;\n transition: all @radio-duration;\n }\n\n &-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n cursor: pointer;\n opacity: 0;\n }\n\n &&-disabled {\n .@{radio-inner-prefix-cls} {\n border-color: @border-color-base;\n }\n }\n}\n\n// 选中状态\n.@{radio-prefix-cls}-checked {\n .@{radio-inner-prefix-cls} {\n border-color: @radio-dot-color;\n\n &::after {\n transform: scale((unit(@radio-dot-size) / unit(@radio-size)));\n opacity: 1;\n transition: all @radio-duration @ease-in-out-circ;\n }\n }\n}\n\n.@{radio-prefix-cls}-disabled {\n cursor: not-allowed;\n\n .@{radio-inner-prefix-cls} {\n background-color: @input-disabled-bg;\n cursor: not-allowed;\n\n &::after {\n background-color: @radio-dot-disabled-color;\n }\n }\n\n .@{radio-prefix-cls}-input {\n cursor: not-allowed;\n }\n\n & + span {\n color: @disabled-color;\n cursor: not-allowed;\n }\n}\n\nspan.@{radio-prefix-cls} + * {\n padding-right: 8px;\n padding-left: 8px;\n}\n\n.@{radio-prefix-cls}-button-wrapper {\n position: relative;\n display: inline-block;\n height: @btn-height-base;\n margin: 0;\n padding: 0 @radio-button-padding-horizontal;\n color: @radio-button-color;\n font-size: @font-size-base;\n line-height: @btn-height-base - 2px;\n background: @radio-button-bg;\n border: @border-width-base @border-style-base @border-color-base;\n // strange align fix for chrome but works\n // https://gw.alipayobjects.com/zos/rmsportal/VFTfKXJuogBAXcvfAUWJ.gif\n border-top-width: @border-width-base + 0.02px;\n border-left-width: 0;\n cursor: pointer;\n transition: color 0.3s, background 0.3s, border-color 0.3s, box-shadow 0.3s;\n\n a {\n color: @radio-button-color;\n }\n\n > .@{radio-prefix-cls}-button {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n }\n\n .@{radio-group-prefix-cls}-large & {\n height: @input-height-lg;\n font-size: @font-size-lg;\n line-height: @input-height-lg - 2px;\n }\n\n .@{radio-group-prefix-cls}-small & {\n height: @input-height-sm;\n padding: 0 @control-padding-horizontal-sm - 1px;\n line-height: @input-height-sm - 2px;\n }\n\n &:not(:first-child) {\n &::before {\n position: absolute;\n top: @border-width-base * -1;\n left: -1px;\n display: block;\n box-sizing: content-box;\n width: 1px;\n height: 100%;\n padding: @border-width-base 0;\n background-color: @border-color-base;\n transition: background-color 0.3s;\n content: '';\n }\n }\n\n &:first-child {\n border-left: @border-width-base @border-style-base @border-color-base;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n\n &:last-child {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n\n &:first-child:last-child {\n border-radius: @border-radius-base;\n }\n\n &:hover {\n position: relative;\n color: @radio-dot-color;\n }\n\n &:focus-within {\n box-shadow: @radio-button-focus-shadow;\n }\n\n .@{radio-prefix-cls}-inner,\n input[type='checkbox'],\n input[type='radio'] {\n width: 0;\n height: 0;\n opacity: 0;\n pointer-events: none;\n }\n\n &-checked:not(&-disabled) {\n z-index: 1;\n color: @radio-dot-color;\n background: @radio-button-checked-bg;\n border-color: @radio-dot-color;\n\n &::before {\n background-color: @radio-dot-color;\n }\n\n &:first-child {\n border-color: @radio-dot-color;\n }\n\n &:hover {\n color: @radio-button-hover-color;\n border-color: @radio-button-hover-color;\n\n &::before {\n background-color: @radio-button-hover-color;\n }\n }\n\n &:active {\n color: @radio-button-active-color;\n border-color: @radio-button-active-color;\n\n &::before {\n background-color: @radio-button-active-color;\n }\n }\n\n &:focus-within {\n box-shadow: @radio-button-focus-shadow;\n }\n }\n\n .@{radio-group-prefix-cls}-solid &-checked:not(&-disabled) {\n color: @radio-solid-checked-color;\n background: @radio-dot-color;\n border-color: @radio-dot-color;\n\n &:hover {\n color: @radio-solid-checked-color;\n background: @radio-button-hover-color;\n border-color: @radio-button-hover-color;\n }\n\n &:active {\n color: @radio-solid-checked-color;\n background: @radio-button-active-color;\n border-color: @radio-button-active-color;\n }\n\n &:focus-within {\n box-shadow: @radio-button-focus-shadow;\n }\n }\n\n &-disabled {\n color: @disabled-color;\n background-color: @input-disabled-bg;\n border-color: @border-color-base;\n cursor: not-allowed;\n\n &:first-child,\n &:hover {\n color: @disabled-color;\n background-color: @input-disabled-bg;\n border-color: @border-color-base;\n }\n\n &:first-child {\n border-left-color: @border-color-base;\n }\n }\n\n &-disabled&-checked {\n color: @radio-disabled-button-checked-color;\n background-color: @radio-disabled-button-checked-bg;\n border-color: @border-color-base;\n box-shadow: none;\n }\n}\n\n@keyframes antRadioEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@radio-prefix-cls: ~'@{ant-prefix}-radio';\n@radio-group-prefix-cls: ~'@{radio-prefix-cls}-group';\n@radio-prefix-cls-button-wrapper: ~'@{radio-prefix-cls}-button-wrapper';\n\n.@{radio-group-prefix-cls} {\n &&-rtl {\n direction: rtl;\n }\n}\n\n// 一般状态\n.@{radio-prefix-cls}-wrapper {\n &&-rtl {\n margin-right: 0;\n margin-left: @radio-wrapper-margin-right;\n direction: rtl;\n }\n}\n\n.@{radio-prefix-cls-button-wrapper} {\n &&-rtl {\n border-right-width: 0;\n border-left-width: @border-width-base;\n }\n\n &:not(:first-child) {\n &::before {\n .@{radio-prefix-cls-button-wrapper}.@{radio-prefix-cls-button-wrapper}-rtl& {\n right: -1px;\n left: 0;\n }\n }\n }\n\n &:first-child {\n .@{radio-prefix-cls-button-wrapper}.@{radio-prefix-cls-button-wrapper}-rtl& {\n border-right: @border-width-base @border-style-base @border-color-base;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n .@{radio-prefix-cls-button-wrapper}-checked:not([class*=~\"' @{radio-prefix-cls}-button-wrapper-disabled'\"])& {\n border-right-color: @radio-button-hover-color;\n }\n }\n\n &:last-child {\n .@{radio-prefix-cls-button-wrapper}.@{radio-prefix-cls-button-wrapper}-rtl& {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n &-disabled {\n &:first-child {\n .@{radio-prefix-cls-button-wrapper}.@{radio-prefix-cls-button-wrapper}-rtl& {\n border-right-color: @border-color-base;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@card-prefix-cls: ~'@{ant-prefix}-card';\n@card-hoverable-hover-border: transparent;\n@card-action-icon-size: 16px;\n\n@gradient-min: fade(@card-skeleton-bg, 20%);\n@gradient-max: fade(@card-skeleton-bg, 40%);\n\n.@{card-prefix-cls} {\n .reset-component();\n\n position: relative;\n background: @card-background;\n border-radius: @card-radius;\n\n &-rtl {\n direction: rtl;\n }\n\n &-hoverable {\n cursor: pointer;\n transition: box-shadow 0.3s, border-color 0.3s;\n\n &:hover {\n border-color: @card-hoverable-hover-border;\n box-shadow: @card-shadow;\n }\n }\n\n &-bordered {\n border: @border-width-base @border-style-base @border-color-split;\n }\n\n &-head {\n min-height: @card-head-height;\n margin-bottom: -1px; // Fix card grid overflow bug: https://gw.alipayobjects.com/zos/rmsportal/XonYxBikwpgbqIQBeuhk.png\n padding: 0 @card-padding-base;\n color: @card-head-color;\n font-weight: 500;\n font-size: @card-head-font-size;\n background: @card-head-background;\n border-bottom: @border-width-base @border-style-base @border-color-split;\n border-radius: @card-radius @card-radius 0 0;\n .clearfix();\n\n &-wrapper {\n display: flex;\n align-items: center;\n }\n\n &-title {\n display: inline-block;\n flex: 1;\n padding: @card-head-padding 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n > .@{ant-prefix}-typography,\n > .@{ant-prefix}-typography-edit-content {\n left: 0;\n margin-top: 0;\n margin-bottom: 0;\n }\n }\n\n .@{ant-prefix}-tabs-top {\n clear: both;\n margin-bottom: @card-head-tabs-margin-bottom;\n color: @text-color;\n font-weight: normal;\n font-size: @font-size-base;\n\n &-bar {\n border-bottom: @border-width-base @border-style-base @border-color-split;\n }\n }\n }\n\n &-extra {\n // https://stackoverflow.com/a/22429853/3040605\n margin-left: auto;\n padding: @card-head-padding 0;\n color: @card-head-extra-color;\n font-weight: normal;\n font-size: @font-size-base;\n\n .@{card-prefix-cls}-rtl & {\n margin-right: auto;\n margin-left: 0;\n }\n }\n\n &-body {\n padding: @card-padding-base;\n .clearfix();\n }\n\n &-contain-grid &-body {\n display: flex;\n flex-wrap: wrap;\n }\n\n &-contain-grid:not(&-loading) &-body {\n margin: -1px 0 0 -1px;\n padding: 0;\n }\n\n &-grid {\n width: 33.33%;\n padding: @card-padding-base;\n border: 0;\n border-radius: 0;\n box-shadow: 1px 0 0 0 @border-color-split, 0 1px 0 0 @border-color-split,\n 1px 1px 0 0 @border-color-split, 1px 0 0 0 @border-color-split inset,\n 0 1px 0 0 @border-color-split inset;\n transition: all 0.3s;\n\n &-hoverable {\n &:hover {\n position: relative;\n z-index: 1;\n box-shadow: @card-shadow;\n }\n }\n }\n\n &-contain-tabs > &-head &-head-title {\n min-height: @card-head-height - @card-head-padding;\n padding-bottom: 0;\n }\n\n &-contain-tabs > &-head &-extra {\n padding-bottom: 0;\n }\n\n &-bordered &-cover {\n margin-top: -1px;\n margin-right: -1px;\n margin-left: -1px;\n }\n\n &-cover {\n > * {\n display: block;\n width: 100%;\n }\n\n img {\n border-radius: @card-radius @card-radius 0 0;\n }\n }\n\n &-actions {\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n background: @card-actions-background;\n border-top: @border-width-base @border-style-base @border-color-split;\n .clearfix();\n\n & > li {\n margin: @card-actions-li-margin;\n color: @text-color-secondary;\n text-align: center;\n\n > span {\n position: relative;\n display: block;\n min-width: 32px;\n font-size: @font-size-base;\n line-height: @line-height-base;\n cursor: pointer;\n\n &:hover {\n color: @primary-color;\n transition: color 0.3s;\n }\n\n a:not(.@{ant-prefix}-btn),\n > .@{iconfont-css-prefix} {\n display: inline-block;\n width: 100%;\n color: @text-color-secondary;\n line-height: 22px;\n transition: color 0.3s;\n\n &:hover {\n color: @primary-color;\n }\n }\n\n > .@{iconfont-css-prefix} {\n font-size: @card-action-icon-size;\n line-height: 22px;\n }\n }\n\n &:not(:last-child) {\n border-right: @border-width-base @border-style-base @border-color-split;\n\n .@{card-prefix-cls}-rtl & {\n border-right: none;\n border-left: @border-width-base @border-style-base @border-color-split;\n }\n }\n }\n }\n\n &-type-inner &-head {\n padding: 0 @card-padding-base;\n background: @background-color-light;\n\n &-title {\n padding: @card-inner-head-padding 0;\n font-size: @font-size-base;\n }\n }\n\n &-type-inner &-body {\n padding: 16px @card-padding-base;\n }\n\n &-type-inner &-extra {\n padding: @card-inner-head-padding + 1.5px 0;\n }\n\n &-meta {\n display: flex;\n margin: -4px 0;\n .clearfix();\n\n &-avatar {\n padding-right: 16px;\n\n .@{card-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 16px;\n }\n }\n\n &-detail {\n flex: 1;\n overflow: hidden;\n\n > div:not(:last-child) {\n margin-bottom: @margin-xs;\n }\n }\n\n &-title {\n overflow: hidden;\n color: @card-head-color;\n font-weight: 500;\n font-size: @font-size-lg;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-description {\n color: @text-color-secondary;\n }\n }\n\n &-loading {\n overflow: hidden;\n }\n\n &-loading &-body {\n user-select: none;\n }\n}\n\n@import './size';\n\n@root-entry-name: default;",".@{card-prefix-cls}-small {\n > .@{card-prefix-cls}-head {\n min-height: @card-head-height-sm;\n padding: 0 @card-padding-base-sm;\n font-size: @card-head-font-size-sm;\n\n > .@{card-prefix-cls}-head-wrapper {\n > .@{card-prefix-cls}-head-title {\n padding: @card-head-padding-sm 0;\n }\n > .@{card-prefix-cls}-extra {\n padding: @card-head-padding-sm 0;\n font-size: @card-head-font-size-sm;\n }\n }\n }\n > .@{card-prefix-cls}-body {\n padding: @card-padding-base-sm;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@skeleton-prefix-cls: ~'@{ant-prefix}-skeleton';\n@skeleton-avatar-prefix-cls: ~'@{skeleton-prefix-cls}-avatar';\n@skeleton-title-prefix-cls: ~'@{skeleton-prefix-cls}-title';\n@skeleton-paragraph-prefix-cls: ~'@{skeleton-prefix-cls}-paragraph';\n@skeleton-button-prefix-cls: ~'@{skeleton-prefix-cls}-button';\n@skeleton-input-prefix-cls: ~'@{skeleton-prefix-cls}-input';\n@skeleton-image-prefix-cls: ~'@{skeleton-prefix-cls}-image';\n@skeleton-block-radius: @border-radius-base;\n\n.@{skeleton-prefix-cls} {\n display: table;\n width: 100%;\n\n &-header {\n display: table-cell;\n padding-right: @padding-md;\n vertical-align: top;\n\n // Avatar\n .@{skeleton-avatar-prefix-cls} {\n .skeleton-element-avatar();\n }\n }\n\n &-content {\n display: table-cell;\n width: 100%;\n vertical-align: top;\n\n // Title\n .@{skeleton-title-prefix-cls} {\n width: 100%;\n height: @skeleton-title-height;\n background: @skeleton-color;\n border-radius: @skeleton-block-radius;\n\n + .@{skeleton-paragraph-prefix-cls} {\n margin-top: @skeleton-title-paragraph-margin-top;\n }\n }\n\n // paragraph\n .@{skeleton-paragraph-prefix-cls} {\n padding: 0;\n\n > li {\n width: 100%;\n height: @skeleton-paragraph-li-height;\n list-style: none;\n background: @skeleton-color;\n border-radius: @skeleton-block-radius;\n\n &:last-child:not(:first-child):not(:nth-child(2)) {\n width: 61%;\n }\n\n + li {\n margin-top: @skeleton-paragraph-li-margin-top;\n }\n }\n }\n }\n\n &-with-avatar &-content {\n // Title\n .@{skeleton-title-prefix-cls} {\n margin-top: @margin-sm;\n\n + .@{skeleton-paragraph-prefix-cls} {\n margin-top: @skeleton-paragraph-margin-top;\n }\n }\n }\n\n &-round &-content {\n .@{skeleton-title-prefix-cls},\n .@{skeleton-paragraph-prefix-cls} > li {\n border-radius: 100px;\n }\n }\n\n // With active animation\n &-active {\n .@{skeleton-title-prefix-cls},\n .@{skeleton-paragraph-prefix-cls} > li,\n .@{skeleton-avatar-prefix-cls},\n .@{skeleton-button-prefix-cls},\n .@{skeleton-input-prefix-cls},\n .@{skeleton-image-prefix-cls} {\n .skeleton-color();\n }\n }\n\n // Skeleton Block Button, Input\n &.@{skeleton-prefix-cls}-block {\n width: 100%;\n\n .@{skeleton-button-prefix-cls} {\n width: 100%;\n }\n\n .@{skeleton-input-prefix-cls} {\n width: 100%;\n }\n }\n\n // Skeleton element\n &-element {\n display: inline-block;\n width: auto;\n\n .@{skeleton-button-prefix-cls} {\n .skeleton-element-button();\n }\n\n .@{skeleton-avatar-prefix-cls} {\n .skeleton-element-avatar();\n }\n\n .@{skeleton-input-prefix-cls} {\n .skeleton-element-input();\n }\n\n .@{skeleton-image-prefix-cls} {\n .skeleton-element-image();\n }\n }\n}\n// Button\n.skeleton-element-button() {\n display: inline-block;\n vertical-align: top;\n background: @skeleton-color;\n border-radius: @border-radius-base;\n\n .skeleton-element-button-size(@btn-height-base);\n\n &-lg {\n .skeleton-element-button-size(@btn-height-lg);\n }\n\n &-sm {\n .skeleton-element-button-size(@btn-height-sm);\n }\n}\n// Avatar\n.skeleton-element-avatar() {\n display: inline-block;\n vertical-align: top;\n background: @skeleton-color;\n\n .skeleton-element-avatar-size(@avatar-size-base);\n\n &-lg {\n .skeleton-element-avatar-size(@avatar-size-lg);\n }\n\n &-sm {\n .skeleton-element-avatar-size(@avatar-size-sm);\n }\n}\n\n// Input\n.skeleton-element-input() {\n display: inline-block;\n vertical-align: top;\n background: @skeleton-color;\n\n .skeleton-element-input-size(@input-height-base);\n\n &-lg {\n .skeleton-element-input-size(@input-height-lg);\n }\n\n &-sm {\n .skeleton-element-input-size(@input-height-sm);\n }\n}\n\n// Image\n.skeleton-element-image() {\n display: flex;\n align-items: center;\n justify-content: center;\n vertical-align: top;\n background: @skeleton-color;\n\n .skeleton-element-image-size(@image-size-base*2);\n\n &-path {\n fill: #bfbfbf;\n }\n\n &-svg {\n .skeleton-element-image-size(@image-size-base);\n max-width: @image-size-base * 4;\n max-height: @image-size-base * 4;\n }\n}\n\n.skeleton-element-avatar-size(@size) {\n width: @size;\n .skeleton-element-common-size(@size);\n\n &.@{skeleton-avatar-prefix-cls}-circle {\n border-radius: 50%;\n }\n}\n\n.skeleton-element-button-size(@size) {\n width: @size * 2;\n min-width: @size * 2;\n .skeleton-element-common-size(@size);\n\n &.@{skeleton-button-prefix-cls}-square {\n width: @size;\n min-width: @size;\n }\n\n &.@{skeleton-button-prefix-cls}-circle {\n width: @size;\n min-width: @size;\n border-radius: 50%;\n }\n\n &.@{skeleton-button-prefix-cls}-round {\n border-radius: @size;\n }\n}\n\n.skeleton-element-input-size(@size) {\n width: @size * 5;\n min-width: @size * 5;\n .skeleton-element-common-size(@size);\n}\n\n.skeleton-element-image-size(@size) {\n width: @size;\n .skeleton-element-common-size(@size);\n\n &.@{skeleton-image-prefix-cls}-circle {\n border-radius: 50%;\n }\n}\n\n.skeleton-element-common-size(@size) {\n height: @size;\n line-height: @size;\n}\n\n.skeleton-color() {\n position: relative;\n // fix https://github.com/ant-design/ant-design/issues/36444\n // https://monshin.github.io/202109/css/safari-border-radius-overflow-hidden/\n /* stylelint-disable-next-line property-no-vendor-prefix,value-no-vendor-prefix */\n z-index: 0;\n overflow: hidden;\n background: transparent;\n\n &::after {\n position: absolute;\n top: 0;\n right: -150%;\n bottom: 0;\n left: -150%;\n background: linear-gradient(\n 90deg,\n @skeleton-color 25%,\n @skeleton-to-color 37%,\n @skeleton-color 63%\n );\n animation: ~'@{skeleton-prefix-cls}-loading' 1.4s ease infinite;\n content: '';\n }\n}\n\n@keyframes ~\"@{skeleton-prefix-cls}-loading\" {\n 0% {\n transform: translateX(-37.5%);\n }\n\n 100% {\n transform: translateX(37.5%);\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@skeleton-prefix-cls: ~'@{ant-prefix}-skeleton';\n@skeleton-avatar-prefix-cls: ~'@{skeleton-prefix-cls}-avatar';\n@skeleton-title-prefix-cls: ~'@{skeleton-prefix-cls}-title';\n@skeleton-paragraph-prefix-cls: ~'@{skeleton-prefix-cls}-paragraph';\n\n.@{skeleton-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-header {\n .@{skeleton-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 16px;\n }\n }\n\n // With active animation\n &.@{skeleton-prefix-cls}-active {\n & .@{skeleton-prefix-cls}-content {\n .@{skeleton-title-prefix-cls},\n .@{skeleton-paragraph-prefix-cls} > li {\n .@{skeleton-prefix-cls}-rtl& {\n animation-name: ~'@{skeleton-prefix-cls}-loading-rtl';\n }\n }\n }\n\n .@{skeleton-avatar-prefix-cls} {\n .@{skeleton-prefix-cls}-rtl& {\n animation-name: ~'@{skeleton-prefix-cls}-loading-rtl';\n }\n }\n }\n}\n\n@keyframes ~\"@{skeleton-prefix-cls}-loading-rtl\" {\n 0% {\n background-position: 0% 50%;\n }\n\n 100% {\n background-position: 100% 50%;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls} {\n &-small {\n > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n padding: @tabs-horizontal-padding-sm;\n font-size: @tabs-title-font-size-sm;\n }\n }\n }\n\n &-large {\n > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n padding: @tabs-horizontal-padding-lg;\n font-size: @tabs-title-font-size-lg;\n }\n }\n }\n\n &-card {\n &.@{tab-prefix-cls}-small {\n > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n padding: @tabs-card-horizontal-padding-sm;\n }\n }\n }\n\n &.@{tab-prefix-cls}-large {\n > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n padding: @tabs-card-horizontal-padding-lg;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './size';\n@import './rtl';\n@import './position';\n@import './dropdown';\n@import './card';\n\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls} {\n .reset-component();\n\n display: flex;\n\n // ========================== Navigation ==========================\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n position: relative;\n display: flex;\n flex: none;\n align-items: center;\n\n .@{tab-prefix-cls}-nav-wrap {\n position: relative;\n display: inline-block;\n display: flex;\n flex: auto;\n align-self: stretch;\n overflow: hidden;\n white-space: nowrap;\n transform: translate(0); // Fix chrome render bug\n\n // >>>>> Ping shadow\n &::before,\n &::after {\n position: absolute;\n z-index: 1;\n opacity: 0;\n transition: opacity @animation-duration-slow;\n content: '';\n pointer-events: none;\n }\n }\n\n .@{tab-prefix-cls}-nav-list {\n position: relative;\n display: flex;\n transition: transform @animation-duration-slow;\n }\n\n // >>>>>>>> Operations\n .@{tab-prefix-cls}-nav-operations {\n display: flex;\n align-self: stretch;\n\n &-hidden {\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n }\n }\n\n .@{tab-prefix-cls}-nav-more {\n position: relative;\n padding: @tabs-card-horizontal-padding;\n background: transparent;\n border: 0;\n\n &::after {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 5px;\n transform: translateY(100%);\n content: '';\n }\n }\n\n .@{tab-prefix-cls}-nav-add {\n min-width: @tabs-card-height;\n margin-left: @tabs-card-gutter;\n padding: 0 @padding-xs;\n background: @tabs-card-head-background;\n border: @border-width-base @border-style-base @border-color-split;\n border-radius: @border-radius-base @border-radius-base 0 0;\n outline: none;\n cursor: pointer;\n transition: all @animation-duration-slow @ease-in-out;\n\n &:hover {\n color: @tabs-hover-color;\n }\n\n &:active,\n &:focus {\n color: @tabs-active-color;\n }\n }\n }\n\n &-extra-content {\n flex: none;\n }\n\n &-centered {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-nav-wrap {\n &:not([class*='@{tab-prefix-cls}-nav-wrap-ping']) {\n justify-content: center;\n }\n }\n }\n }\n\n // ============================ InkBar ============================\n &-ink-bar {\n position: absolute;\n background: @tabs-ink-bar-color;\n pointer-events: none;\n }\n\n // ============================= Tabs =============================\n &-tab {\n position: relative;\n display: inline-flex;\n align-items: center;\n padding: @tabs-horizontal-padding;\n font-size: @tabs-title-font-size;\n background: transparent;\n border: 0;\n outline: none;\n cursor: pointer;\n\n &-btn,\n &-remove {\n &:focus,\n &:active {\n color: @tabs-active-color;\n }\n }\n\n &-btn {\n outline: none;\n transition: all 0.3s;\n }\n\n &-remove {\n flex: none;\n margin-right: -@margin-xss;\n margin-left: @margin-xs;\n color: @text-color-secondary;\n font-size: @font-size-sm;\n background: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n transition: all @animation-duration-slow;\n\n &:hover {\n color: @heading-color;\n }\n }\n\n &:hover {\n color: @tabs-hover-color;\n }\n\n &&-active &-btn {\n color: @tabs-highlight-color;\n text-shadow: 0 0 0.25px currentcolor;\n }\n\n &&-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n }\n\n &&-disabled &-btn,\n &&-disabled &-remove {\n &:focus,\n &:active {\n color: @disabled-color;\n }\n }\n\n & &-remove .@{iconfont-css-prefix} {\n margin: 0;\n }\n\n .@{iconfont-css-prefix} {\n margin-right: @margin-sm;\n }\n }\n\n &-tab + &-tab {\n margin: @tabs-horizontal-margin;\n }\n\n // =========================== TabPanes ===========================\n &-content {\n &-holder {\n flex: auto;\n min-width: 0;\n min-height: 0;\n }\n\n position: relative;\n width: 100%;\n }\n\n &-tabpane {\n outline: none;\n\n &-hidden {\n display: none;\n }\n }\n\n // Motion\n &-switch {\n &-appear,\n &-enter {\n transition: none;\n\n &-start {\n opacity: 0;\n }\n\n &-active {\n opacity: 1;\n transition: opacity @animation-duration-slow;\n }\n }\n\n &-leave {\n position: absolute;\n transition: none;\n inset: 0;\n\n &-start {\n opacity: 1;\n }\n\n &-active {\n opacity: 0;\n transition: opacity @animation-duration-slow;\n }\n }\n }\n}\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls} {\n &-rtl {\n direction: rtl;\n\n .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n margin: @tabs-horizontal-margin-rtl;\n\n &:last-of-type {\n margin-left: 0;\n }\n\n .@{iconfont-css-prefix} {\n margin-right: 0;\n margin-left: @margin-sm;\n }\n\n .@{tab-prefix-cls}-tab-remove {\n margin-right: @margin-xs;\n margin-left: -@margin-xss;\n\n .@{iconfont-css-prefix} {\n margin: 0;\n }\n }\n }\n }\n\n &.@{tab-prefix-cls}-left {\n > .@{tab-prefix-cls}-nav {\n order: 1;\n }\n > .@{tab-prefix-cls}-content-holder {\n order: 0;\n }\n }\n\n &.@{tab-prefix-cls}-right {\n > .@{tab-prefix-cls}-nav {\n order: 0;\n }\n > .@{tab-prefix-cls}-content-holder {\n order: 1;\n }\n }\n }\n\n // ====================== Card ======================\n &-card {\n &.@{tab-prefix-cls}-top,\n &.@{tab-prefix-cls}-bottom {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab + .@{tab-prefix-cls}-tab {\n .@{tab-prefix-cls}-rtl& {\n margin-right: @tabs-card-gutter;\n margin-left: 0;\n }\n }\n .@{tab-prefix-cls}-nav-add {\n .@{tab-prefix-cls}-rtl& {\n margin-right: @tabs-card-gutter;\n margin-left: 0;\n }\n }\n }\n }\n }\n}\n\n.@{tab-prefix-cls}-dropdown {\n &-rtl {\n direction: rtl;\n }\n\n &-menu-item {\n .@{tab-prefix-cls}-dropdown-rtl & {\n text-align: right;\n }\n }\n}\n","@import '../../style/themes/index';\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls} {\n // ========================== Top & Bottom ==========================\n &-top,\n &-bottom {\n flex-direction: column;\n\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n margin: @tabs-bar-margin;\n\n &::before {\n position: absolute;\n right: 0;\n left: 0;\n border-bottom: @border-width-base @border-style-base @border-color-split;\n content: '';\n }\n\n .@{tab-prefix-cls}-ink-bar {\n height: 2px;\n\n &-animated {\n transition: width @animation-duration-slow, left @animation-duration-slow,\n right @animation-duration-slow;\n }\n }\n\n .@{tab-prefix-cls}-nav-wrap {\n &::before,\n &::after {\n top: 0;\n bottom: 0;\n width: 30px;\n }\n\n &::before {\n left: 0;\n box-shadow: inset 10px 0 8px -8px fade(@shadow-color, 8%);\n }\n\n &::after {\n right: 0;\n box-shadow: inset -10px 0 8px -8px fade(@shadow-color, 8%);\n }\n\n &.@{tab-prefix-cls}-nav-wrap-ping-left::before {\n opacity: 1;\n }\n &.@{tab-prefix-cls}-nav-wrap-ping-right::after {\n opacity: 1;\n }\n }\n }\n }\n\n &-top {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n &::before {\n bottom: 0;\n }\n\n .@{tab-prefix-cls}-ink-bar {\n bottom: 0;\n }\n }\n }\n\n &-bottom {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n order: 1;\n margin-top: @margin-md;\n margin-bottom: 0;\n\n &::before {\n top: 0;\n }\n\n .@{tab-prefix-cls}-ink-bar {\n top: 0;\n }\n }\n\n > .@{tab-prefix-cls}-content-holder,\n > div > .@{tab-prefix-cls}-content-holder {\n order: 0;\n }\n }\n\n // ========================== Left & Right ==========================\n &-left,\n &-right {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n flex-direction: column;\n min-width: 50px;\n\n // >>>>>>>>>>> Tab\n .@{tab-prefix-cls}-tab {\n padding: @tabs-vertical-padding;\n text-align: center;\n }\n\n .@{tab-prefix-cls}-tab + .@{tab-prefix-cls}-tab {\n margin: @tabs-vertical-margin;\n }\n\n // >>>>>>>>>>> Nav\n .@{tab-prefix-cls}-nav-wrap {\n flex-direction: column;\n\n &::before,\n &::after {\n right: 0;\n left: 0;\n height: 30px;\n }\n\n &::before {\n top: 0;\n box-shadow: inset 0 10px 8px -8px fade(@shadow-color, 8%);\n }\n\n &::after {\n bottom: 0;\n box-shadow: inset 0 -10px 8px -8px fade(@shadow-color, 8%);\n }\n\n &.@{tab-prefix-cls}-nav-wrap-ping-top::before {\n opacity: 1;\n }\n &.@{tab-prefix-cls}-nav-wrap-ping-bottom::after {\n opacity: 1;\n }\n }\n\n // >>>>>>>>>>> Ink Bar\n .@{tab-prefix-cls}-ink-bar {\n width: 2px;\n\n &-animated {\n transition: height @animation-duration-slow, top @animation-duration-slow;\n }\n }\n\n .@{tab-prefix-cls}-nav-list,\n .@{tab-prefix-cls}-nav-operations {\n flex: 1 0 auto; // fix safari scroll problem\n flex-direction: column;\n }\n }\n }\n\n &-left {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-ink-bar {\n right: 0;\n }\n }\n\n > .@{tab-prefix-cls}-content-holder,\n > div > .@{tab-prefix-cls}-content-holder {\n margin-left: -@border-width-base;\n border-left: @border-width-base @border-style-base @border-color-split;\n\n > .@{tab-prefix-cls}-content > .@{tab-prefix-cls}-tabpane {\n padding-left: @padding-lg;\n }\n }\n }\n\n &-right {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n order: 1;\n\n .@{tab-prefix-cls}-ink-bar {\n left: 0;\n }\n }\n\n > .@{tab-prefix-cls}-content-holder,\n > div > .@{tab-prefix-cls}-content-holder {\n order: 0;\n margin-right: -@border-width-base;\n border-right: @border-width-base @border-style-base @border-color-split;\n\n > .@{tab-prefix-cls}-content > .@{tab-prefix-cls}-tabpane {\n padding-right: @padding-lg;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls}-dropdown {\n .reset-component();\n\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: @zindex-dropdown;\n display: block;\n\n &-hidden {\n display: none;\n }\n\n &-menu {\n max-height: 200px;\n margin: 0;\n padding: @dropdown-edge-child-vertical-padding 0;\n overflow-x: hidden;\n overflow-y: auto;\n text-align: left;\n list-style-type: none;\n background-color: @dropdown-menu-bg;\n background-clip: padding-box;\n border-radius: @border-radius-base;\n outline: none;\n box-shadow: @box-shadow-base;\n\n &-item {\n display: flex;\n align-items: center;\n min-width: 120px;\n margin: 0;\n padding: @dropdown-vertical-padding @control-padding-horizontal;\n overflow: hidden;\n color: @text-color;\n font-weight: normal;\n font-size: @dropdown-font-size;\n line-height: @dropdown-line-height;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: all 0.3s;\n\n > span {\n flex: 1;\n white-space: nowrap;\n }\n\n &-remove {\n flex: none;\n margin-left: @margin-sm;\n color: @text-color-secondary;\n font-size: @font-size-sm;\n background: transparent;\n border: 0;\n cursor: pointer;\n\n &:hover {\n color: @tabs-hover-color;\n }\n }\n\n &:hover {\n background: @item-hover-bg;\n }\n\n &-disabled {\n &,\n &:hover {\n color: @disabled-color;\n background: transparent;\n cursor: not-allowed;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls}-card {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n margin: 0;\n padding: @tabs-card-horizontal-padding;\n background: @tabs-card-head-background;\n border: @border-width-base @border-style-base @border-color-split;\n transition: all @animation-duration-slow @ease-in-out;\n\n &-active {\n color: @tabs-card-active-color;\n background: @component-background;\n }\n }\n\n .@{tab-prefix-cls}-ink-bar {\n visibility: hidden;\n }\n }\n\n // ========================== Top & Bottom ==========================\n &.@{tab-prefix-cls}-top,\n &.@{tab-prefix-cls}-bottom {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab + .@{tab-prefix-cls}-tab {\n margin-left: @tabs-card-gutter;\n }\n }\n }\n\n &.@{tab-prefix-cls}-top {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n border-radius: @border-radius-base @border-radius-base 0 0;\n\n &-active {\n border-bottom-color: @component-background;\n }\n }\n }\n }\n &.@{tab-prefix-cls}-bottom {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n border-radius: 0 0 @border-radius-base @border-radius-base;\n\n &-active {\n border-top-color: @component-background;\n }\n }\n }\n }\n\n // ========================== Left & Right ==========================\n &.@{tab-prefix-cls}-left,\n &.@{tab-prefix-cls}-right {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab + .@{tab-prefix-cls}-tab {\n margin-top: @tabs-card-gutter;\n }\n }\n }\n\n &.@{tab-prefix-cls}-left {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n\n &-active {\n border-right-color: @component-background;\n }\n }\n }\n }\n &.@{tab-prefix-cls}-right {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n\n &-active {\n border-left-color: @component-background;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@carousel-prefix-cls: ~'@{ant-prefix}-carousel';\n@carousel-dot-margin: 4px;\n\n.@{carousel-prefix-cls} {\n .reset-component();\n\n .slick-slider {\n position: relative;\n display: block;\n box-sizing: border-box;\n touch-action: pan-y;\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n display: block;\n margin: 0;\n padding: 0;\n overflow: hidden;\n\n &:focus {\n outline: none;\n }\n\n &.dragging {\n cursor: pointer;\n }\n\n .slick-slide {\n pointer-events: none;\n\n // https://github.com/ant-design/ant-design/issues/23294\n input.@{ant-prefix}-radio-input,\n input.@{ant-prefix}-checkbox-input {\n visibility: hidden;\n }\n\n &.slick-active {\n pointer-events: auto;\n\n input.@{ant-prefix}-radio-input,\n input.@{ant-prefix}-checkbox-input {\n visibility: visible;\n }\n }\n\n // fix Carousel content height not match parent node\n // when children is empty node\n // https://github.com/ant-design/ant-design/issues/25878\n > div > div {\n vertical-align: bottom;\n }\n }\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n transform: translate3d(0, 0, 0);\n touch-action: pan-y;\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n\n &::before,\n &::after {\n display: table;\n content: '';\n }\n\n &::after {\n clear: both;\n }\n\n .slick-loading & {\n visibility: hidden;\n }\n }\n\n .slick-slide {\n display: none;\n float: left;\n height: 100%;\n min-height: 1px;\n\n img {\n display: block;\n }\n\n &.slick-loading img {\n display: none;\n }\n\n &.dragging img {\n pointer-events: none;\n }\n }\n\n .slick-initialized .slick-slide {\n display: block;\n }\n\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n\n .slick-vertical .slick-slide {\n display: block;\n height: auto;\n }\n\n .slick-arrow.slick-hidden {\n display: none;\n }\n\n // Arrows\n .slick-prev,\n .slick-next {\n position: absolute;\n top: 50%;\n display: block;\n width: 20px;\n height: 20px;\n margin-top: -10px;\n padding: 0;\n color: transparent;\n font-size: 0;\n line-height: 0;\n background: transparent;\n border: 0;\n outline: none;\n cursor: pointer;\n\n &:hover,\n &:focus {\n color: transparent;\n background: transparent;\n outline: none;\n\n &::before {\n opacity: 1;\n }\n }\n\n &.slick-disabled::before {\n opacity: 0.25;\n }\n }\n\n .slick-prev {\n left: -25px;\n\n &::before {\n content: '←';\n }\n }\n\n .slick-next {\n right: -25px;\n\n &::before {\n content: '→';\n }\n }\n\n // Dots\n .slick-dots {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex !important;\n justify-content: center;\n margin-right: 15%;\n margin-bottom: 0;\n margin-left: 15%;\n padding-left: 0;\n list-style: none;\n\n &-bottom {\n bottom: 12px;\n }\n\n &-top {\n top: 12px;\n bottom: auto;\n }\n\n li {\n position: relative;\n display: inline-block;\n flex: 0 1 auto;\n box-sizing: content-box;\n width: @carousel-dot-width;\n height: @carousel-dot-height;\n margin: 0 @carousel-dot-margin;\n padding: 0;\n text-align: center;\n text-indent: -999px;\n vertical-align: top;\n transition: all 0.5s;\n\n button {\n position: relative;\n display: block;\n width: 100%;\n height: @carousel-dot-height;\n padding: 0;\n color: transparent;\n font-size: 0;\n background: @component-background;\n border: 0;\n border-radius: 1px;\n outline: none;\n cursor: pointer;\n opacity: 0.3;\n transition: all 0.5s;\n\n &:hover,\n &:focus {\n opacity: 0.75;\n }\n\n &::after {\n position: absolute;\n top: -@carousel-dot-margin;\n right: -@carousel-dot-margin;\n bottom: -@carousel-dot-margin;\n left: -@carousel-dot-margin;\n content: '';\n }\n }\n\n &.slick-active {\n width: @carousel-dot-active-width;\n\n & button {\n background: @component-background;\n opacity: 1;\n }\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n }\n }\n }\n}\n\n.@{ant-prefix}-carousel-vertical {\n .slick-dots {\n top: 50%;\n bottom: auto;\n flex-direction: column;\n width: @carousel-dot-height;\n height: auto;\n margin: 0;\n transform: translateY(-50%);\n\n &-left {\n right: auto;\n left: 12px;\n }\n\n &-right {\n right: 12px;\n left: auto;\n }\n\n li {\n width: @carousel-dot-height;\n height: @carousel-dot-width;\n margin: @carousel-dot-margin 0;\n vertical-align: baseline;\n\n button {\n width: @carousel-dot-height;\n height: @carousel-dot-width;\n }\n\n &.slick-active {\n width: @carousel-dot-height;\n height: @carousel-dot-active-width;\n\n button {\n width: @carousel-dot-height;\n height: @carousel-dot-active-width;\n }\n }\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@carousel-prefix-cls: ~'@{ant-prefix}-carousel';\n\n.@{carousel-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n .slick-track {\n .@{carousel-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n\n .slick-prev {\n .@{carousel-prefix-cls}-rtl & {\n right: -25px;\n left: auto;\n\n &::before {\n content: '→';\n }\n }\n }\n\n .slick-next {\n .@{carousel-prefix-cls}-rtl & {\n right: auto;\n left: -25px;\n\n &::before {\n content: '←';\n }\n }\n }\n\n // Dots\n .slick-dots {\n .@{carousel-prefix-cls}-rtl& {\n flex-direction: row-reverse;\n }\n }\n}\n\n.@{ant-prefix}-carousel-vertical {\n .slick-dots {\n .@{carousel-prefix-cls}-rtl& {\n flex-direction: column;\n }\n }\n}\n","@import '../../style/mixins/index';\n\n.antCheckboxFn(@checkbox-prefix-cls: ~'@{ant-prefix}-checkbox') {\n @checkbox-inner-prefix-cls: ~'@{checkbox-prefix-cls}-inner';\n // 一般状态\n .@{checkbox-prefix-cls} {\n .reset-component();\n\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n\n .@{checkbox-prefix-cls}-wrapper:hover &-inner,\n &:hover &-inner,\n &-input:focus + &-inner {\n border-color: @checkbox-color;\n }\n\n &-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid @checkbox-color;\n border-radius: @checkbox-border-radius;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n }\n\n &:hover::after,\n .@{checkbox-prefix-cls}-wrapper:hover &::after {\n visibility: visible;\n }\n\n &-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: @checkbox-size;\n height: @checkbox-size;\n direction: ltr;\n background-color: @checkbox-check-bg;\n border: @checkbox-border-width @border-style-base @border-color-base;\n border-radius: @checkbox-border-radius;\n // Fix IE checked style\n // https://github.com/ant-design/ant-design/issues/12597\n border-collapse: separate;\n transition: all 0.3s;\n\n &::after {\n @check-width: (@checkbox-size / 14) * 5px;\n @check-height: (@checkbox-size / 14) * 8px;\n\n position: absolute;\n top: 50%;\n // https://github.com/ant-design/ant-design/pull/19452\n // https://github.com/ant-design/ant-design/pull/31726\n left: 21.5%;\n display: table;\n width: @check-width;\n height: @check-height;\n border: 2px solid @checkbox-check-color;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s @ease-in-back, opacity 0.1s;\n content: ' ';\n }\n }\n\n &-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n }\n }\n\n // 选中状态\n .@{checkbox-prefix-cls}-checked .@{checkbox-inner-prefix-cls}::after {\n position: absolute;\n display: table;\n border: 2px solid @checkbox-check-color;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s @ease-out-back 0.1s;\n content: ' ';\n }\n\n .@{checkbox-prefix-cls}-checked {\n .@{checkbox-inner-prefix-cls} {\n background-color: @checkbox-color;\n border-color: @checkbox-color;\n }\n }\n\n .@{checkbox-prefix-cls}-disabled {\n cursor: not-allowed;\n\n &.@{checkbox-prefix-cls}-checked {\n .@{checkbox-inner-prefix-cls}::after {\n border-color: @disabled-color;\n animation-name: none;\n }\n }\n\n .@{checkbox-prefix-cls}-input {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .@{checkbox-inner-prefix-cls} {\n background-color: @input-disabled-bg;\n border-color: @border-color-base !important;\n\n &::after {\n border-color: @input-disabled-bg;\n border-collapse: separate;\n animation-name: none;\n }\n }\n\n & + span {\n color: @disabled-color;\n cursor: not-allowed;\n }\n\n // Not show highlight border of checkbox when disabled\n &:hover::after,\n .@{checkbox-prefix-cls}-wrapper:hover &::after {\n visibility: hidden;\n }\n }\n\n .@{checkbox-prefix-cls}-wrapper {\n .reset-component();\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n\n &::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n }\n\n &.@{checkbox-prefix-cls}-wrapper-disabled {\n cursor: not-allowed;\n }\n\n & + & {\n margin-left: 8px;\n }\n\n &&-in-form-item {\n input[type='checkbox'] {\n width: 14px;\n height: 14px;\n }\n }\n }\n\n .@{checkbox-prefix-cls} + span {\n padding-right: 8px;\n padding-left: 8px;\n }\n\n .@{checkbox-prefix-cls}-group {\n .reset-component();\n display: inline-block;\n\n &-item {\n margin-right: @checkbox-group-item-margin-right;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n &-item + &-item {\n margin-left: 0;\n }\n }\n\n // 半选状态\n .@{checkbox-prefix-cls}-indeterminate {\n .@{checkbox-inner-prefix-cls} {\n background-color: @checkbox-check-bg;\n border-color: @border-color-base;\n }\n .@{checkbox-inner-prefix-cls}::after {\n @indeterminate-width: @checkbox-size - 8px;\n @indeterminate-height: @checkbox-size - 8px;\n\n top: 50%;\n left: 50%;\n width: @indeterminate-width;\n height: @indeterminate-height;\n background-color: @checkbox-color;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n }\n\n &.@{checkbox-prefix-cls}-disabled .@{checkbox-inner-prefix-cls}::after {\n background-color: @disabled-color;\n border-color: @disabled-color;\n }\n }\n}\n\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import '../../checkbox/style/mixin';\n\n@cascader-prefix-cls: ~'@{ant-prefix}-cascader';\n\n.antCheckboxFn(@checkbox-prefix-cls: ~'@{cascader-prefix-cls}-checkbox');\n\n.@{cascader-prefix-cls} {\n width: 184px;\n\n &-checkbox {\n top: 0;\n margin-right: @padding-xs;\n }\n\n &-menus {\n display: flex;\n flex-wrap: nowrap;\n align-items: flex-start;\n\n &.@{cascader-prefix-cls}-menu-empty {\n .@{cascader-prefix-cls}-menu {\n width: 100%;\n height: auto;\n }\n }\n }\n\n &-menu {\n flex-grow: 1;\n min-width: 111px;\n height: 180px;\n margin: 0;\n margin: -@dropdown-edge-child-vertical-padding 0;\n padding: @cascader-dropdown-edge-child-vertical-padding 0;\n overflow: auto;\n vertical-align: top;\n list-style: none;\n border-right: @border-width-base @border-style-base @cascader-menu-border-color-split;\n -ms-overflow-style: -ms-autohiding-scrollbar; // https://github.com/ant-design/ant-design/issues/11857\n\n &-item {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: @cascader-dropdown-vertical-padding @control-padding-horizontal;\n overflow: hidden;\n line-height: @cascader-dropdown-line-height;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n background: @item-hover-bg;\n }\n\n &-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n\n &:hover {\n background: transparent;\n }\n }\n\n .@{cascader-prefix-cls}-menu-empty & {\n color: @disabled-color;\n cursor: default;\n pointer-events: none;\n }\n\n &-active:not(&-disabled) {\n &,\n &:hover {\n font-weight: @select-item-selected-font-weight;\n background-color: @cascader-item-selected-bg;\n }\n }\n\n &-content {\n flex: auto;\n }\n\n &-expand &-expand-icon,\n &-loading-icon {\n margin-left: @padding-xss;\n color: @text-color-secondary;\n font-size: 10px;\n\n .@{cascader-prefix-cls}-menu-item-disabled& {\n color: @disabled-color;\n }\n }\n\n &-keyword {\n color: @highlight-color;\n }\n }\n }\n\n // ===================== Compact Item Styles =====================\n .compact-item(@cascader-prefix-cls);\n}\n\n@import './rtl';\n\n@root-entry-name: default;","// We can not import reference of `./index` directly since it will make dead loop in less\n@import (reference) '../../style/themes/index';\n@cascader-prefix-cls: ~'@{ant-prefix}-cascader';\n\n.@{cascader-prefix-cls}-rtl {\n .@{cascader-prefix-cls}-menu-item {\n &-expand-icon,\n &-loading-icon {\n margin-right: @padding-xss;\n margin-left: 0;\n }\n }\n\n .@{cascader-prefix-cls}-checkbox {\n top: 0;\n margin-right: 0;\n margin-left: @padding-xs;\n }\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-checkbox {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ant-checkbox-wrapper:hover .ant-checkbox-inner,\n.ant-checkbox:hover .ant-checkbox-inner,\n.ant-checkbox-input:focus + .ant-checkbox-inner {\n border-color: #1890ff;\n}\n.ant-checkbox-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 2px;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n}\n.ant-checkbox:hover::after,\n.ant-checkbox-wrapper:hover .ant-checkbox::after {\n visibility: visible;\n}\n.ant-checkbox-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n direction: ltr;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n border-collapse: separate;\n transition: all 0.3s;\n}\n.ant-checkbox-inner::after {\n position: absolute;\n top: 50%;\n left: 21.5%;\n display: table;\n width: 5.71428571px;\n height: 9.14285714px;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\n content: ' ';\n}\n.ant-checkbox-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n.ant-checkbox-checked .ant-checkbox-inner::after {\n position: absolute;\n display: table;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\n content: ' ';\n}\n.ant-checkbox-checked .ant-checkbox-inner {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.ant-checkbox-disabled {\n cursor: not-allowed;\n}\n.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {\n border-color: rgba(0, 0, 0, 0.25);\n animation-name: none;\n}\n.ant-checkbox-disabled .ant-checkbox-input {\n cursor: not-allowed;\n pointer-events: none;\n}\n.ant-checkbox-disabled .ant-checkbox-inner {\n background-color: #f5f5f5;\n border-color: #d9d9d9 !important;\n}\n.ant-checkbox-disabled .ant-checkbox-inner::after {\n border-color: #f5f5f5;\n border-collapse: separate;\n animation-name: none;\n}\n.ant-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-checkbox-disabled:hover::after,\n.ant-checkbox-wrapper:hover .ant-checkbox-disabled::after {\n visibility: hidden;\n}\n.ant-checkbox-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n}\n.ant-checkbox-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-checkbox-wrapper + .ant-checkbox-wrapper {\n margin-left: 8px;\n}\n.ant-checkbox-wrapper.ant-checkbox-wrapper-in-form-item input[type='checkbox'] {\n width: 14px;\n height: 14px;\n}\n.ant-checkbox + span {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-checkbox-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-checkbox-group-item {\n margin-right: 8px;\n}\n.ant-checkbox-group-item:last-child {\n margin-right: 0;\n}\n.ant-checkbox-group-item + .ant-checkbox-group-item {\n margin-left: 0;\n}\n.ant-checkbox-indeterminate .ant-checkbox-inner {\n background-color: #fff;\n border-color: #d9d9d9;\n}\n.ant-checkbox-indeterminate .ant-checkbox-inner::after {\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n background-color: #1890ff;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n}\n.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after {\n background-color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-checkbox-rtl {\n direction: rtl;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child {\n margin-left: 0 !important;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item + .ant-checkbox-group-item {\n margin-left: 8px;\n}\n","@import '../../style/mixins/index';\n\n.antCheckboxFn(@checkbox-prefix-cls: ~'@{ant-prefix}-checkbox') {\n .@{checkbox-prefix-cls}-rtl {\n direction: rtl;\n }\n\n .@{checkbox-prefix-cls}-group {\n &-item {\n .@{checkbox-prefix-cls}-group-rtl & {\n margin-right: 0;\n margin-left: @checkbox-group-item-margin-right;\n }\n\n &:last-child {\n .@{checkbox-prefix-cls}-group-rtl & {\n margin-left: 0 !important;\n }\n }\n }\n\n &-item + &-item {\n .@{checkbox-prefix-cls}-group-rtl & {\n margin-left: @checkbox-group-item-margin-right;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './mixin';\n\n// Grid system\n.@{row-prefix-cls} {\n display: flex;\n flex-flow: row wrap;\n min-width: 0;\n\n &::before,\n &::after {\n display: flex;\n }\n\n // No wrap of flex\n &-no-wrap {\n flex-wrap: nowrap;\n }\n}\n\n// x轴原点\n.@{row-prefix-cls}-start {\n justify-content: flex-start;\n}\n\n// x轴居中\n.@{row-prefix-cls}-center {\n justify-content: center;\n}\n\n// x轴反方向\n.@{row-prefix-cls}-end {\n justify-content: flex-end;\n}\n\n// x轴平分\n.@{row-prefix-cls}-space-between {\n justify-content: space-between;\n}\n\n// x轴有间隔地平分\n.@{row-prefix-cls}-space-around {\n justify-content: space-around;\n}\n\n// x轴有间隔地均分\n.@{row-prefix-cls}-space-evenly {\n justify-content: space-evenly;\n}\n\n// 顶部对齐\n.@{row-prefix-cls}-top {\n align-items: flex-start;\n}\n\n// 居中对齐\n.@{row-prefix-cls}-middle {\n align-items: center;\n}\n\n// 底部对齐\n.@{row-prefix-cls}-bottom {\n align-items: flex-end;\n}\n\n.@{col-prefix-cls} {\n position: relative;\n max-width: 100%;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n}\n\n.make-grid();\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(-xs);\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(-sm);\n}\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(-md);\n}\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(-lg);\n}\n\n// Extra Large grid\n//\n// Columns, offsets, pushes, and pulls for the full hd device range.\n\n@media (min-width: @screen-xl-min) {\n .make-grid(-xl);\n}\n\n// Extra Extra Large grid\n//\n// Columns, offsets, pushes, and pulls for the full hd device range.\n\n@media (min-width: @screen-xxl-min) {\n .make-grid(-xxl);\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/mixins/index';\n\n@row-prefix-cls: ~'@{ant-prefix}-row';\n@col-prefix-cls: ~'@{ant-prefix}-col';\n\n// mixins for grid system\n// ------------------------\n\n.loop-grid-columns(@index, @class) when (@index > 0) {\n .@{col-prefix-cls}@{class}-@{index} {\n display: block;\n flex: 0 0 percentage((@index / @grid-columns));\n max-width: percentage((@index / @grid-columns));\n }\n .@{col-prefix-cls}@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n .@{col-prefix-cls}@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n .@{col-prefix-cls}@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n .@{col-prefix-cls}@{class}-order-@{index} {\n order: @index;\n }\n .loop-grid-columns((@index - 1), @class);\n}\n\n.loop-grid-columns(@index, @class) when (@index = 0) {\n .@{col-prefix-cls}@{class}-@{index} {\n display: none;\n }\n .@{col-prefix-cls}-push-@{index} {\n left: auto;\n }\n .@{col-prefix-cls}-pull-@{index} {\n right: auto;\n }\n .@{col-prefix-cls}@{class}-push-@{index} {\n left: auto;\n }\n .@{col-prefix-cls}@{class}-pull-@{index} {\n right: auto;\n }\n .@{col-prefix-cls}@{class}-offset-@{index} {\n margin-left: 0;\n }\n .@{col-prefix-cls}@{class}-order-@{index} {\n order: 0;\n }\n}\n\n.make-grid(@class: ~'') {\n .loop-grid-columns(@grid-columns, @class);\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './mixin';\n\n.@{row-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n\n// mixin\n.loop-grid-columns(@index, @class) when (@index > 0) {\n .@{col-prefix-cls}@{class}-push-@{index} {\n // reset property in RTL direction\n &.@{col-prefix-cls}-rtl {\n right: percentage((@index / @grid-columns));\n left: auto;\n }\n }\n\n .@{col-prefix-cls}@{class}-pull-@{index} {\n // reset property in RTL direction\n &.@{col-prefix-cls}-rtl {\n right: auto;\n left: percentage((@index / @grid-columns));\n }\n }\n\n .@{col-prefix-cls}@{class}-offset-@{index} {\n // reset property in RTL direction\n &.@{col-prefix-cls}-rtl {\n margin-right: percentage((@index / @grid-columns));\n margin-left: 0;\n }\n }\n}\n\n.loop-grid-columns(@index, @class) when (@index = 0) {\n .@{col-prefix-cls}-push-@{index} {\n // reset property in RTL direction\n &.@{col-prefix-cls}-rtl {\n right: auto;\n }\n }\n\n .@{col-prefix-cls}-pull-@{index} {\n &.@{col-prefix-cls}-rtl {\n left: auto;\n }\n }\n\n .@{col-prefix-cls}@{class}-push-@{index} {\n &.@{col-prefix-cls}-rtl {\n right: auto;\n }\n }\n\n .@{col-prefix-cls}@{class}-pull-@{index} {\n &.@{col-prefix-cls}-rtl {\n left: auto;\n }\n }\n\n .@{col-prefix-cls}@{class}-offset-@{index} {\n &.@{col-prefix-cls}-rtl {\n margin-right: 0;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@collapse-prefix-cls: ~'@{ant-prefix}-collapse';\n\n.@{collapse-prefix-cls} {\n .reset-component();\n\n background-color: @collapse-header-bg;\n border: @border-width-base @border-style-base @border-color-base;\n border-bottom: 0;\n border-radius: @collapse-panel-border-radius;\n\n & > &-item {\n border-bottom: @border-width-base @border-style-base @border-color-base;\n\n &:last-child {\n &,\n & > .@{collapse-prefix-cls}-header {\n border-radius: 0 0 @collapse-panel-border-radius @collapse-panel-border-radius;\n }\n }\n\n > .@{collapse-prefix-cls}-header {\n position: relative; // Compatible with old version of antd, should remove in next version\n display: flex;\n flex-wrap: nowrap;\n align-items: flex-start;\n padding: @collapse-header-padding;\n color: @heading-color;\n line-height: @line-height-base;\n cursor: pointer;\n transition: all 0.3s, visibility 0s;\n\n .@{collapse-prefix-cls}-arrow {\n display: inline-block;\n margin-right: @margin-sm;\n font-size: @font-size-sm;\n vertical-align: -1px;\n\n & svg {\n transition: transform 0.24s;\n }\n }\n\n .@{collapse-prefix-cls}-header-text {\n flex: auto;\n }\n\n .@{collapse-prefix-cls}-extra {\n margin-left: auto;\n }\n\n &:focus {\n outline: none;\n }\n }\n\n .@{collapse-prefix-cls}-header-collapsible-only {\n cursor: default;\n .@{collapse-prefix-cls}-header-text {\n flex: none;\n cursor: pointer;\n }\n }\n\n .@{collapse-prefix-cls}-icon-collapsible-only {\n cursor: default;\n .@{collapse-prefix-cls}-expand-icon {\n cursor: pointer;\n }\n }\n\n &.@{collapse-prefix-cls}-no-arrow {\n > .@{collapse-prefix-cls}-header {\n padding-left: @padding-sm;\n }\n }\n }\n\n // Expand Icon end\n &-icon-position-end {\n & > .@{collapse-prefix-cls}-item {\n > .@{collapse-prefix-cls}-header {\n position: relative;\n padding: @collapse-header-padding;\n padding-right: @collapse-header-padding-extra;\n\n .@{collapse-prefix-cls}-arrow {\n position: absolute;\n top: 50%;\n right: @padding-md;\n left: auto;\n margin: 0;\n transform: translateY(-50%);\n }\n }\n }\n }\n\n &-content {\n color: @text-color;\n background-color: @collapse-content-bg;\n border-top: @border-width-base @border-style-base @border-color-base;\n\n & > &-box {\n padding: @collapse-content-padding;\n }\n\n &-hidden {\n display: none;\n }\n }\n\n &-item:last-child {\n > .@{collapse-prefix-cls}-content {\n border-radius: 0 0 @collapse-panel-border-radius @collapse-panel-border-radius;\n }\n }\n\n &-borderless {\n background-color: @collapse-header-bg;\n border: 0;\n }\n\n &-borderless > &-item {\n border-bottom: 1px solid @border-color-base;\n }\n\n &-borderless > &-item:last-child,\n &-borderless > &-item:last-child &-header {\n border-radius: 0;\n }\n\n // hide the last border-bottom in borderless mode\n &-borderless > &-item:last-child {\n border-bottom: 0;\n }\n\n &-borderless > &-item > &-content {\n background-color: transparent;\n border-top: 0;\n }\n\n &-borderless > &-item > &-content > &-content-box {\n padding-top: 4px;\n }\n\n &-ghost {\n background-color: transparent;\n border: 0;\n > .@{collapse-prefix-cls}-item {\n border-bottom: 0;\n > .@{collapse-prefix-cls}-content {\n background-color: transparent;\n border-top: 0;\n > .@{collapse-prefix-cls}-content-box {\n padding-top: 12px;\n padding-bottom: 12px;\n }\n }\n }\n }\n\n & &-item-disabled > &-header {\n &,\n & > .arrow {\n color: @disabled-color;\n cursor: not-allowed;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@collapse-prefix-cls: ~'@{ant-prefix}-collapse';\n\n.@{collapse-prefix-cls} {\n &-rtl {\n direction: rtl;\n\n // Expand Icon end\n &.@{collapse-prefix-cls}.@{collapse-prefix-cls}-icon-position-end {\n & > .@{collapse-prefix-cls}-item {\n > .@{collapse-prefix-cls}-header {\n position: relative;\n padding: @collapse-header-padding;\n padding-left: @collapse-header-padding-extra;\n\n .@{collapse-prefix-cls}-arrow {\n position: absolute;\n top: 50%;\n right: auto;\n left: @padding-md;\n margin: 0;\n transform: translateY(-50%);\n }\n }\n }\n }\n }\n\n & > &-item {\n > .@{collapse-prefix-cls}-header {\n .@{collapse-prefix-cls}-rtl & {\n padding: @collapse-header-padding;\n padding-right: @collapse-header-padding-extra;\n }\n\n .@{collapse-prefix-cls}-arrow {\n .@{collapse-prefix-cls}-rtl& {\n margin-right: 0;\n margin-left: @margin-sm;\n }\n\n & svg {\n .@{collapse-prefix-cls}-rtl& {\n transform: rotate(180deg);\n }\n }\n }\n\n .@{collapse-prefix-cls}-extra {\n .@{collapse-prefix-cls}-rtl& {\n margin-right: auto;\n margin-left: 0;\n }\n }\n }\n\n &.@{collapse-prefix-cls}-no-arrow {\n > .@{collapse-prefix-cls}-header {\n .@{collapse-prefix-cls}-rtl& {\n padding-right: @padding-sm;\n padding-left: 0;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@comment-prefix-cls: ~'@{ant-prefix}-comment';\n\n.@{comment-prefix-cls} {\n position: relative;\n background-color: @comment-bg;\n\n &-inner {\n display: flex;\n padding: @comment-padding-base;\n }\n\n &-avatar {\n position: relative;\n flex-shrink: 0;\n margin-right: @margin-sm;\n cursor: pointer;\n\n img {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n }\n }\n\n &-content {\n position: relative;\n flex: 1 1 auto;\n min-width: 1px;\n font-size: @comment-font-size-base;\n word-wrap: break-word;\n\n &-author {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin-bottom: @margin-xss;\n font-size: @comment-font-size-base;\n\n & > a,\n & > span {\n padding-right: @padding-xs;\n font-size: @comment-font-size-sm;\n line-height: 18px;\n }\n\n &-name {\n color: @comment-author-name-color;\n font-size: @comment-font-size-base;\n transition: color 0.3s;\n\n > * {\n color: @comment-author-name-color;\n\n &:hover {\n color: @comment-author-name-color;\n }\n }\n }\n\n &-time {\n color: @comment-author-time-color;\n white-space: nowrap;\n cursor: auto;\n }\n }\n\n &-detail p {\n margin-bottom: @comment-content-detail-p-margin-bottom;\n white-space: pre-wrap;\n }\n }\n\n &-actions {\n margin-top: @comment-actions-margin-top;\n margin-bottom: @comment-actions-margin-bottom;\n padding-left: 0;\n\n > li {\n display: inline-block;\n color: @comment-action-color;\n\n > span {\n margin-right: 10px;\n color: @comment-action-color;\n font-size: @comment-font-size-sm;\n cursor: pointer;\n transition: color 0.3s;\n user-select: none;\n\n &:hover {\n color: @comment-action-hover-color;\n }\n }\n }\n }\n\n &-nested {\n margin-left: @comment-nest-indent;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@comment-prefix-cls: ~'@{ant-prefix}-comment';\n\n.@{comment-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-avatar {\n .@{comment-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 12px;\n }\n }\n\n &-content {\n &-author {\n & > a,\n & > span {\n .@{comment-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 8px;\n }\n }\n }\n }\n\n &-actions {\n .@{comment-prefix-cls}-rtl & {\n padding-right: 0;\n }\n\n > li {\n > span {\n .@{comment-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 10px;\n }\n }\n }\n }\n\n &-nested {\n .@{comment-prefix-cls}-rtl & {\n margin-right: @comment-nest-indent;\n margin-left: 0;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@descriptions-prefix-cls: ~'@{ant-prefix}-descriptions';\n\n.@{descriptions-prefix-cls} {\n &-header {\n display: flex;\n align-items: center;\n margin-bottom: @descriptions-title-margin-bottom;\n }\n\n &-title {\n flex: auto;\n overflow: hidden;\n color: @heading-color;\n font-weight: bold;\n font-size: @font-size-lg;\n line-height: @line-height-base;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-extra {\n margin-left: auto;\n color: @descriptions-extra-color;\n font-size: @font-size-base;\n }\n\n &-view {\n width: 100%;\n border-radius: @border-radius-base;\n\n table {\n width: 100%;\n table-layout: fixed;\n }\n }\n\n &-row {\n > th,\n > td {\n padding-bottom: @descriptions-item-padding-bottom;\n }\n\n &:last-child {\n border-bottom: none;\n }\n }\n\n &-item-label {\n color: @heading-color;\n font-weight: normal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n text-align: start;\n\n &::after {\n & when (@descriptions-item-trailing-colon=true) {\n content: ':';\n }\n & when not (@descriptions-item-trailing-colon=true) {\n content: ' ';\n }\n\n position: relative;\n top: -0.5px;\n margin: 0 @descriptions-item-label-colon-margin-right 0\n @descriptions-item-label-colon-margin-left;\n }\n\n &.@{descriptions-prefix-cls}-item-no-colon::after {\n content: ' ';\n }\n }\n\n &-item-no-label {\n &::after {\n margin: 0;\n content: '';\n }\n }\n\n &-item-content {\n display: table-cell;\n flex: 1;\n color: @text-color;\n font-size: @font-size-base;\n line-height: @line-height-base;\n word-break: break-word;\n overflow-wrap: break-word;\n }\n\n &-item {\n padding-bottom: 0;\n vertical-align: top;\n\n &-container {\n display: flex;\n\n .@{descriptions-prefix-cls}-item-label,\n .@{descriptions-prefix-cls}-item-content {\n display: inline-flex;\n align-items: baseline;\n }\n }\n }\n\n &-middle {\n .@{descriptions-prefix-cls}-row {\n > th,\n > td {\n padding-bottom: @padding-sm;\n }\n }\n }\n\n &-small {\n .@{descriptions-prefix-cls}-row {\n > th,\n > td {\n padding-bottom: @padding-xs;\n }\n }\n }\n\n &-bordered {\n .@{descriptions-prefix-cls}-view {\n border: 1px solid @border-color-split;\n\n > table {\n table-layout: auto;\n border-collapse: collapse;\n }\n }\n\n .@{descriptions-prefix-cls}-item-label,\n .@{descriptions-prefix-cls}-item-content {\n padding: @descriptions-default-padding;\n border-right: 1px solid @border-color-split;\n\n &:last-child {\n border-right: none;\n }\n }\n\n .@{descriptions-prefix-cls}-item-label {\n background-color: @descriptions-bg;\n\n &::after {\n display: none;\n }\n }\n\n .@{descriptions-prefix-cls}-row {\n border-bottom: 1px solid @border-color-split;\n\n &:last-child {\n border-bottom: none;\n }\n }\n\n &.@{descriptions-prefix-cls}-middle {\n .@{descriptions-prefix-cls}-item-label,\n .@{descriptions-prefix-cls}-item-content {\n padding: @descriptions-middle-padding;\n }\n }\n\n &.@{descriptions-prefix-cls}-small {\n .@{descriptions-prefix-cls}-item-label,\n .@{descriptions-prefix-cls}-item-content {\n padding: @descriptions-small-padding;\n }\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@descriptions-prefix-cls: ~'@{ant-prefix}-descriptions';\n\n.@{descriptions-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-item-label {\n &::after {\n .@{descriptions-prefix-cls}-rtl & {\n margin: 0 @descriptions-item-label-colon-margin-left 0\n @descriptions-item-label-colon-margin-right;\n }\n }\n }\n\n &-bordered {\n .@{descriptions-prefix-cls}-item-label,\n .@{descriptions-prefix-cls}-item-content {\n .@{descriptions-prefix-cls}-rtl& {\n border-right: none;\n border-left: 1px solid @border-color-split;\n\n &:last-child {\n border-left: none;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@divider-prefix-cls: ~'@{ant-prefix}-divider';\n\n.@{divider-prefix-cls} {\n .reset-component();\n\n border-top: @border-width-base solid @divider-color;\n\n &-vertical {\n position: relative;\n top: -0.06em;\n display: inline-block;\n height: 0.9em;\n margin: 0 @divider-vertical-gutter;\n vertical-align: middle;\n border-top: 0;\n border-left: @border-width-base solid @divider-color;\n }\n\n &-horizontal {\n display: flex;\n clear: both;\n width: 100%;\n min-width: 100%; // Fix https://github.com/ant-design/ant-design/issues/10914\n margin: 24px 0;\n }\n\n &-horizontal&-with-text {\n display: flex;\n align-items: center;\n margin: 16px 0;\n color: @heading-color;\n font-weight: 500;\n font-size: @font-size-lg;\n white-space: nowrap;\n text-align: center;\n border-top: 0;\n border-top-color: @divider-color;\n\n &::before,\n &::after {\n position: relative;\n width: 50%;\n border-top: @border-width-base solid transparent;\n // Chrome not accept `inherit` in `border-top`\n border-top-color: inherit;\n border-bottom: 0;\n transform: translateY(50%);\n content: '';\n }\n }\n\n &-horizontal&-with-text-left {\n &::before {\n width: @divider-orientation-margin;\n }\n\n &::after {\n width: 100% - @divider-orientation-margin;\n }\n }\n\n &-horizontal&-with-text-right {\n &::before {\n width: 100% - @divider-orientation-margin;\n }\n\n &::after {\n width: @divider-orientation-margin;\n }\n }\n\n &-inner-text {\n display: inline-block;\n padding: 0 @divider-text-padding;\n }\n\n &-dashed {\n background: none;\n border-color: @divider-color;\n border-style: dashed;\n border-width: @border-width-base 0 0;\n }\n\n &-horizontal&-with-text&-dashed {\n &::before,\n &::after {\n border-style: dashed none none;\n }\n }\n\n &-vertical&-dashed {\n border-width: 0 0 0 @border-width-base;\n }\n\n &-plain&-with-text {\n color: @text-color;\n font-weight: normal;\n font-size: @font-size-base;\n }\n\n &-horizontal&-with-text-left&-no-default-orientation-margin-left {\n &::before {\n width: 0;\n }\n\n &::after {\n width: 100%;\n }\n\n .@{divider-prefix-cls}-inner-text {\n padding-left: 0;\n }\n }\n\n &-horizontal&-with-text-right&-no-default-orientation-margin-right {\n &::before {\n width: 100%;\n }\n\n &::after {\n width: 0;\n }\n\n .@{divider-prefix-cls}-inner-text {\n padding-right: 0;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@divider-prefix-cls: ~'@{ant-prefix}-divider';\n\n.@{divider-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-horizontal&-with-text-left {\n &::before {\n .@{divider-prefix-cls}-rtl& {\n width: 100% - @divider-orientation-margin;\n }\n }\n\n &::after {\n .@{divider-prefix-cls}-rtl& {\n width: @divider-orientation-margin;\n }\n }\n }\n\n &-horizontal&-with-text-right {\n &::before {\n .@{divider-prefix-cls}-rtl& {\n width: @divider-orientation-margin;\n }\n }\n\n &::after {\n .@{divider-prefix-cls}-rtl& {\n width: 100% - @divider-orientation-margin;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n\n@drawer-prefix-cls: ~'@{ant-prefix}-drawer';\n@picker-prefix-cls: ~'@{ant-prefix}-picker';\n@drawer-animation-ease: @ease-out-quint;\n\n.@{drawer-prefix-cls} {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n pointer-events: none;\n\n &-inline {\n position: absolute;\n }\n\n // ====================== Mask ======================\n &-mask {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n background: @modal-mask-bg;\n pointer-events: auto;\n }\n\n // ==================== Content =====================\n &-content-wrapper {\n position: absolute;\n z-index: @zindex-modal;\n transition: all @animation-duration-slow;\n\n &-hidden {\n display: none;\n }\n\n // Placement\n .@{drawer-prefix-cls}-left > & {\n top: 0;\n bottom: 0;\n left: 0;\n box-shadow: @shadow-1-right;\n }\n\n .@{drawer-prefix-cls}-right > & {\n top: 0;\n right: 0;\n bottom: 0;\n box-shadow: @shadow-1-left;\n }\n\n .@{drawer-prefix-cls}-top > & {\n top: 0;\n right: 0;\n left: 0;\n box-shadow: @shadow-1-down;\n }\n\n .@{drawer-prefix-cls}-bottom > & {\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: @shadow-1-up;\n }\n }\n\n &-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: @drawer-bg;\n pointer-events: auto;\n }\n\n // ===================== Panel ======================\n &-wrapper-body {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n // Header\n &-header {\n display: flex;\n flex: 0;\n align-items: center;\n padding: @drawer-header-padding;\n font-size: @drawer-title-font-size;\n line-height: @drawer-title-line-height;\n border-bottom: @border-width-base @border-style-base @border-color-split;\n\n &-title {\n display: flex;\n flex: 1;\n align-items: center;\n min-width: 0;\n min-height: 0;\n }\n }\n\n &-extra {\n flex: none;\n }\n\n &-close {\n display: inline-block;\n margin-right: 12px;\n color: @modal-close-color;\n font-weight: 700;\n font-size: @font-size-lg;\n font-style: normal;\n line-height: 1;\n text-align: center;\n text-transform: none;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color @animation-duration-slow;\n text-rendering: auto;\n\n &:focus,\n &:hover {\n color: @icon-color-hover;\n text-decoration: none;\n }\n }\n\n &-title {\n flex: 1;\n margin: 0;\n color: @heading-color;\n font-weight: 500;\n font-size: @drawer-title-font-size;\n line-height: @drawer-title-line-height;\n }\n\n // Body\n &-body {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: @drawer-body-padding;\n overflow: auto;\n }\n\n // Footer\n &-footer {\n flex-shrink: 0;\n padding: @drawer-footer-padding-vertical @drawer-footer-padding-horizontal;\n border-top: @border-width-base @border-style-base @border-color-split;\n }\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-drawer {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n pointer-events: none;\n}\n.ant-drawer-inline {\n position: absolute;\n}\n.ant-drawer-mask {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n background: rgba(0, 0, 0, 0.45);\n pointer-events: auto;\n}\n.ant-drawer-content-wrapper {\n position: absolute;\n z-index: 1000;\n transition: all 0.3s;\n}\n.ant-drawer-content-wrapper-hidden {\n display: none;\n}\n.ant-drawer-left > .ant-drawer-content-wrapper {\n top: 0;\n bottom: 0;\n left: 0;\n box-shadow: 6px 0 16px -8px rgba(0, 0, 0, 0.08), 9px 0 28px 0 rgba(0, 0, 0, 0.05), 12px 0 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-right > .ant-drawer-content-wrapper {\n top: 0;\n right: 0;\n bottom: 0;\n box-shadow: -6px 0 16px -8px rgba(0, 0, 0, 0.08), -9px 0 28px 0 rgba(0, 0, 0, 0.05), -12px 0 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-top > .ant-drawer-content-wrapper {\n top: 0;\n right: 0;\n left: 0;\n box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.08), 0 9px 28px 0 rgba(0, 0, 0, 0.05), 0 12px 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-bottom > .ant-drawer-content-wrapper {\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 0 -6px 16px -8px rgba(0, 0, 0, 0.08), 0 -9px 28px 0 rgba(0, 0, 0, 0.05), 0 -12px 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n pointer-events: auto;\n}\n.ant-drawer-wrapper-body {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n.ant-drawer-header {\n display: flex;\n flex: 0;\n align-items: center;\n padding: 16px 24px;\n font-size: 16px;\n line-height: 22px;\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-drawer-header-title {\n display: flex;\n flex: 1;\n align-items: center;\n min-width: 0;\n min-height: 0;\n}\n.ant-drawer-extra {\n flex: none;\n}\n.ant-drawer-close {\n display: inline-block;\n margin-right: 12px;\n color: rgba(0, 0, 0, 0.45);\n font-weight: 700;\n font-size: 16px;\n font-style: normal;\n line-height: 1;\n text-align: center;\n text-transform: none;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n text-rendering: auto;\n}\n.ant-drawer-close:focus,\n.ant-drawer-close:hover {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n}\n.ant-drawer-title {\n flex: 1;\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n}\n.ant-drawer-body {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 24px;\n overflow: auto;\n}\n.ant-drawer-footer {\n flex-shrink: 0;\n padding: 10px 16px;\n border-top: 1px solid #f0f0f0;\n}\n.panel-motion-enter-start,\n.panel-motion-appear-start,\n.panel-motion-leave-start {\n transition: none;\n}\n.panel-motion-enter-active,\n.panel-motion-appear-active,\n.panel-motion-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-mask-motion-enter-active,\n.ant-drawer-mask-motion-appear-active,\n.ant-drawer-mask-motion-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-mask-motion-enter,\n.ant-drawer-mask-motion-appear {\n opacity: 0;\n}\n.ant-drawer-mask-motion-enter-active,\n.ant-drawer-mask-motion-appear-active {\n opacity: 1;\n}\n.ant-drawer-mask-motion-leave {\n opacity: 1;\n}\n.ant-drawer-mask-motion-leave-active {\n opacity: 0;\n}\n.ant-drawer-panel-motion-left-enter-start,\n.ant-drawer-panel-motion-left-appear-start,\n.ant-drawer-panel-motion-left-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-left-enter-active,\n.ant-drawer-panel-motion-left-appear-active,\n.ant-drawer-panel-motion-left-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-left-enter-start,\n.ant-drawer-panel-motion-left-appear-start {\n transform: translateX(-100%) !important;\n}\n.ant-drawer-panel-motion-left-enter-active,\n.ant-drawer-panel-motion-left-appear-active {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-left-leave {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-left-leave-active {\n transform: translateX(-100%);\n}\n.ant-drawer-panel-motion-right-enter-start,\n.ant-drawer-panel-motion-right-appear-start,\n.ant-drawer-panel-motion-right-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-right-enter-active,\n.ant-drawer-panel-motion-right-appear-active,\n.ant-drawer-panel-motion-right-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-right-enter-start,\n.ant-drawer-panel-motion-right-appear-start {\n transform: translateX(100%) !important;\n}\n.ant-drawer-panel-motion-right-enter-active,\n.ant-drawer-panel-motion-right-appear-active {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-right-leave {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-right-leave-active {\n transform: translateX(100%);\n}\n.ant-drawer-panel-motion-top-enter-start,\n.ant-drawer-panel-motion-top-appear-start,\n.ant-drawer-panel-motion-top-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-top-enter-active,\n.ant-drawer-panel-motion-top-appear-active,\n.ant-drawer-panel-motion-top-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-top-enter-start,\n.ant-drawer-panel-motion-top-appear-start {\n transform: translateY(-100%) !important;\n}\n.ant-drawer-panel-motion-top-enter-active,\n.ant-drawer-panel-motion-top-appear-active {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-top-leave {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-top-leave-active {\n transform: translateY(-100%);\n}\n.ant-drawer-panel-motion-bottom-enter-start,\n.ant-drawer-panel-motion-bottom-appear-start,\n.ant-drawer-panel-motion-bottom-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-bottom-enter-active,\n.ant-drawer-panel-motion-bottom-appear-active,\n.ant-drawer-panel-motion-bottom-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-bottom-enter-start,\n.ant-drawer-panel-motion-bottom-appear-start {\n transform: translateY(100%) !important;\n}\n.ant-drawer-panel-motion-bottom-enter-active,\n.ant-drawer-panel-motion-bottom-appear-active {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-bottom-leave {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-bottom-leave-active {\n transform: translateY(100%);\n}\n.ant-drawer-rtl {\n direction: rtl;\n}\n.ant-drawer-rtl .ant-drawer-close {\n margin-right: 0;\n margin-left: 12px;\n}\n","@import (reference) '../../style/themes/index';\n\n@drawer-prefix-cls: ~'@{ant-prefix}-drawer';\n\n.panel-motion {\n &-enter,\n &-appear,\n &-leave {\n &-start {\n transition: none;\n }\n\n &-active {\n transition: all @animation-duration-slow;\n }\n }\n}\n\n.@{drawer-prefix-cls} {\n // ======================== Mask ========================\n &-mask-motion {\n &-enter,\n &-appear,\n &-leave {\n &-active {\n transition: all @animation-duration-slow;\n }\n }\n\n &-enter,\n &-appear {\n opacity: 0;\n\n &-active {\n opacity: 1;\n }\n }\n\n &-leave {\n opacity: 1;\n\n &-active {\n opacity: 0;\n }\n }\n }\n\n // ======================= Panel ========================\n &-panel-motion {\n // Left\n &-left {\n .panel-motion();\n\n &-enter,\n &-appear {\n &-start {\n transform: translateX(-100%) !important;\n }\n\n &-active {\n transform: translateX(0);\n }\n }\n\n &-leave {\n transform: translateX(0);\n\n &-active {\n transform: translateX(-100%);\n }\n }\n }\n\n // Right\n &-right {\n .panel-motion();\n\n &-enter,\n &-appear {\n &-start {\n transform: translateX(100%) !important;\n }\n\n &-active {\n transform: translateX(0);\n }\n }\n\n &-leave {\n transform: translateX(0);\n\n &-active {\n transform: translateX(100%);\n }\n }\n }\n\n // Top\n &-top {\n .panel-motion();\n\n &-enter,\n &-appear {\n &-start {\n transform: translateY(-100%) !important;\n }\n\n &-active {\n transform: translateY(0);\n }\n }\n\n &-leave {\n transform: translateY(0);\n\n &-active {\n transform: translateY(-100%);\n }\n }\n }\n\n // Bottom\n &-bottom {\n .panel-motion();\n\n &-enter,\n &-appear {\n &-start {\n transform: translateY(100%) !important;\n }\n\n &-active {\n transform: translateY(0);\n }\n }\n\n &-leave {\n transform: translateY(0);\n\n &-active {\n transform: translateY(100%);\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n\n@drawer-prefix-cls: ~'@{ant-prefix}-drawer';\n\n.@{drawer-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-close {\n .@{drawer-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 12px;\n }\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n// ================================================================\n// = Children Component =\n// ================================================================\n// FIXME: useless, remove in v5\n.@{form-item-prefix-cls} {\n .@{ant-prefix}-input-number {\n + .@{form-prefix-cls}-text {\n margin-left: 8px;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import '../../button/style/mixin';\n@import '../../grid/style/mixin';\n@import './components';\n@import './inline';\n@import './horizontal';\n@import './vertical';\n@import './status';\n@import './mixin';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n@form-font-height: ceil(@font-size-base * @line-height-base);\n\n.@{form-prefix-cls} {\n .reset-component();\n .reset-form();\n\n .@{form-prefix-cls}-text {\n display: inline-block;\n padding-right: 8px;\n }\n\n // ================================================================\n // = Size =\n // ================================================================\n .formSize(@input-height) {\n .@{form-item-prefix-cls}-label > label {\n height: @input-height;\n }\n\n .@{form-item-prefix-cls}-control-input {\n min-height: @input-height;\n }\n }\n\n &-small {\n .formSize(@input-height-sm);\n }\n\n &-large {\n .formSize(@input-height-lg);\n }\n}\n\n.explainAndExtraDistance(@num) when (@num >= 0) {\n padding-top: floor(@num);\n}\n\n.explainAndExtraDistance(@num) when (@num < 0) {\n margin-top: ceil(@num);\n margin-bottom: ceil(@num);\n}\n\n// ================================================================\n// = Item =\n// ================================================================\n.@{form-item-prefix-cls} {\n .reset-component();\n\n margin-bottom: @form-item-margin-bottom;\n vertical-align: top;\n\n &-with-help {\n transition: none;\n }\n\n &-hidden,\n &-hidden.@{ant-prefix}-row {\n // https://github.com/ant-design/ant-design/issues/26141\n display: none;\n }\n\n // ==============================================================\n // = Label =\n // ==============================================================\n &-label {\n display: inline-block;\n flex-grow: 0;\n overflow: hidden;\n white-space: nowrap;\n text-align: right;\n vertical-align: middle;\n\n &-left {\n text-align: left;\n }\n\n &-wrap {\n overflow: unset;\n line-height: (@line-height-base - 0.25em);\n white-space: unset;\n }\n\n > label {\n position: relative;\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n height: @form-item-label-height;\n color: @label-color;\n font-size: @form-item-label-font-size;\n\n > .@{iconfont-css-prefix} {\n font-size: @form-item-label-font-size;\n vertical-align: top;\n }\n\n // Required mark\n &.@{form-item-prefix-cls}-required:not(.@{form-item-prefix-cls}-required-mark-optional)::before {\n display: inline-block;\n margin-right: 4px;\n color: @label-required-color;\n font-size: @form-item-label-font-size;\n font-family: SimSun, sans-serif;\n line-height: 1;\n content: '*';\n\n .@{form-prefix-cls}-hide-required-mark & {\n display: none;\n }\n }\n\n // Optional mark\n .@{form-item-prefix-cls}-optional {\n display: inline-block;\n margin-left: @margin-xss;\n color: @text-color-secondary;\n\n .@{form-prefix-cls}-hide-required-mark & {\n display: none;\n }\n }\n\n // Optional mark\n .@{form-item-prefix-cls}-tooltip {\n color: @text-color-secondary;\n cursor: help;\n writing-mode: horizontal-tb;\n margin-inline-start: @margin-xss;\n }\n\n &::after {\n & when (@form-item-trailing-colon=true) {\n content: ':';\n }\n & when not (@form-item-trailing-colon=true) {\n content: ' ';\n }\n\n position: relative;\n top: -0.5px;\n margin: 0 @form-item-label-colon-margin-right 0 @form-item-label-colon-margin-left;\n }\n\n &.@{form-item-prefix-cls}-no-colon::after {\n content: ' ';\n }\n }\n }\n\n // ==============================================================\n // = Input =\n // ==============================================================\n &-control {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n\n &:first-child:not([class^=~\"'@{ant-prefix}-col-'\"]):not([class*=~\"' @{ant-prefix}-col-'\"]) {\n width: 100%;\n }\n }\n\n &-control-input {\n position: relative;\n display: flex;\n align-items: center;\n min-height: @input-height-base;\n\n &-content {\n flex: auto;\n max-width: 100%;\n }\n }\n\n // ==============================================================\n // = Explain =\n // ==============================================================\n &-explain,\n &-extra {\n clear: both;\n color: @text-color-secondary;\n font-size: @font-size-base;\n line-height: @line-height-base;\n transition: color 0.3s @ease-out; // sync input color transition\n .explainAndExtraDistance((@form-item-margin-bottom - @form-font-height) / 2);\n }\n\n &-explain-connected {\n width: 100%;\n }\n\n &-extra {\n min-height: @form-item-margin-bottom;\n }\n\n &-with-help &-explain {\n height: auto;\n // min-height: @form-item-margin-bottom;\n opacity: 1;\n }\n\n // ==============================================================\n // = Feedback Icon =\n // ==============================================================\n &-feedback-icon {\n font-size: @font-size-base;\n text-align: center;\n visibility: visible;\n animation: zoomIn 0.3s @ease-out-back;\n pointer-events: none;\n\n &-success {\n color: @success-color;\n }\n\n &-error {\n color: @error-color;\n }\n\n &-warning {\n color: @warning-color;\n }\n\n &-validating {\n color: @primary-color;\n }\n }\n}\n\n// >>>>>>>>>> Motion <<<<<<<<<<\n// Explain holder\n.@{ant-prefix}-show-help {\n transition: opacity @animation-duration-slow @ease-in-out;\n\n &-appear,\n &-enter {\n opacity: 0;\n\n &-active {\n opacity: 1;\n }\n }\n\n &-leave {\n opacity: 1;\n\n &-active {\n opacity: 0;\n }\n }\n}\n\n// Explain\n.@{ant-prefix}-show-help-item {\n overflow: hidden;\n transition: height @animation-duration-slow @ease-in-out,\n opacity @animation-duration-slow @ease-in-out, transform @animation-duration-slow @ease-in-out !important;\n\n &-appear,\n &-enter {\n transform: translateY(-5px);\n opacity: 0;\n\n &-active {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n &-leave {\n transition: height @animation-duration-base @ease-in-out,\n opacity @animation-duration-base @ease-in-out, transform @animation-duration-base @ease-in-out !important;\n }\n\n &-leave-active {\n transform: translateY(-5px);\n }\n}\n\n// need there different zoom animation\n// otherwise won't trigger anim\n@keyframes diffZoomIn1 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes diffZoomIn2 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes diffZoomIn3 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import (reference) '../../style/themes/index';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n.@{form-prefix-cls}-inline {\n display: flex;\n flex-wrap: wrap;\n\n .@{form-prefix-cls}-item {\n flex: none;\n flex-wrap: nowrap;\n margin-right: 16px;\n margin-bottom: 0;\n\n &-with-help {\n margin-bottom: @form-item-margin-bottom;\n }\n\n > .@{form-item-prefix-cls}-label,\n > .@{form-item-prefix-cls}-control {\n display: inline-block;\n vertical-align: top;\n }\n\n > .@{form-item-prefix-cls}-label {\n flex: none;\n }\n\n .@{form-prefix-cls}-text {\n display: inline-block;\n }\n\n .@{form-item-prefix-cls}-has-feedback {\n display: inline-block;\n }\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n.@{form-prefix-cls}-horizontal {\n .@{form-item-prefix-cls}-label {\n flex-grow: 0;\n }\n .@{form-item-prefix-cls}-control {\n flex: 1 1 0;\n // https://github.com/ant-design/ant-design/issues/32777\n // https://github.com/ant-design/ant-design/issues/33773\n min-width: 0;\n }\n // https://github.com/ant-design/ant-design/issues/32980\n // https://github.com/ant-design/ant-design/issues/34903\n .@{form-item-prefix-cls}-label[class$='-24'] + .@{form-item-prefix-cls}-control,\n .@{form-item-prefix-cls}-label[class*='-24 '] + .@{form-item-prefix-cls}-control {\n min-width: unset;\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n// ================== Label ==================\n.make-vertical-layout-label() {\n & when (@form-vertical-label-margin > 0) {\n margin: @form-vertical-label-margin;\n }\n padding: @form-vertical-label-padding;\n line-height: @line-height-base;\n white-space: initial;\n text-align: left;\n\n > label {\n margin: 0;\n\n &::after {\n display: none;\n }\n }\n}\n\n.make-vertical-layout() {\n .@{form-prefix-cls}-item .@{form-prefix-cls}-item-label {\n .make-vertical-layout-label();\n }\n .@{form-prefix-cls} {\n .@{form-prefix-cls}-item {\n flex-wrap: wrap;\n .@{form-prefix-cls}-item-label,\n .@{form-prefix-cls}-item-control {\n flex: 0 0 100%;\n max-width: 100%;\n }\n }\n }\n}\n\n.@{form-prefix-cls}-vertical {\n .@{form-item-prefix-cls} {\n &-row {\n flex-direction: column;\n }\n\n &-label > label {\n height: auto;\n }\n\n .@{form-prefix-cls}-item-control {\n width: 100%;\n }\n }\n}\n\n.@{form-prefix-cls}-vertical .@{form-item-prefix-cls}-label,\n/* when labelCol is 24, it is a vertical form */\n.@{ant-prefix}-col-24.@{form-item-prefix-cls}-label,\n.@{ant-prefix}-col-xl-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n}\n\n@media (max-width: @screen-xs-max) {\n .make-vertical-layout();\n .@{ant-prefix}-col-xs-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n }\n}\n\n@media (max-width: @screen-sm-max) {\n .@{ant-prefix}-col-sm-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n }\n}\n\n@media (max-width: @screen-md-max) {\n .@{ant-prefix}-col-md-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n }\n}\n\n@media (max-width: @screen-lg-max) {\n .@{ant-prefix}-col-lg-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n }\n}\n\n@media (max-width: @screen-xl-max) {\n .@{ant-prefix}-col-xl-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import '../../button/style/mixin';\n@import '../../grid/style/mixin';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n.@{form-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n\n// ================================================================\n// = Item =\n// ================================================================\n.@{form-item-prefix-cls} {\n // ==============================================================\n // = Label =\n // ==============================================================\n &-label {\n .@{form-prefix-cls}-rtl & {\n text-align: left;\n }\n\n > label {\n &.@{form-item-prefix-cls}-required::before {\n .@{form-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n\n &::after {\n .@{form-prefix-cls}-rtl & {\n margin: 0 @form-item-label-colon-margin-left 0 @form-item-label-colon-margin-right;\n }\n }\n\n .@{form-item-prefix-cls}-optional {\n .@{form-prefix-cls}-rtl & {\n margin-right: @margin-xss;\n margin-left: 0;\n }\n }\n }\n }\n\n // ==============================================================\n // = Input =\n // ==============================================================\n &-control {\n .@{ant-prefix}-col-rtl &:first-child {\n width: 100%;\n }\n }\n\n // status\n &-has-feedback {\n .@{ant-prefix}-input {\n .@{form-prefix-cls}-rtl & {\n padding-right: @input-padding-horizontal-base;\n padding-left: 24px;\n }\n }\n\n .@{ant-prefix}-input-affix-wrapper {\n .@{ant-prefix}-input-suffix {\n .@{form-prefix-cls}-rtl & {\n padding-right: @input-padding-horizontal-base;\n padding-left: 18px;\n }\n }\n .@{ant-prefix}-input {\n .@{form-prefix-cls}-rtl & {\n padding: 0;\n }\n }\n }\n\n .@{ant-prefix}-input-number-affix-wrapper {\n .@{ant-prefix}-input-number {\n .@{form-prefix-cls}-rtl & {\n padding: 0;\n }\n }\n }\n\n .@{ant-prefix}-input-search:not(.@{ant-prefix}-input-search-enter-button) {\n .@{ant-prefix}-input-suffix {\n .@{form-prefix-cls}-rtl & {\n right: auto;\n left: 28px;\n }\n }\n }\n\n .@{ant-prefix}-input-number {\n .@{form-prefix-cls}-rtl & {\n padding-left: 18px;\n }\n }\n\n > .@{ant-prefix}-select .@{ant-prefix}-select-arrow,\n > .@{ant-prefix}-select .@{ant-prefix}-select-clear,\n :not(.@{ant-prefix}-input-group-addon) > .@{ant-prefix}-select .@{ant-prefix}-select-arrow,\n :not(.@{ant-prefix}-input-group-addon) > .@{ant-prefix}-select .@{ant-prefix}-select-clear,\n :not(.@{ant-prefix}-input-number-group-addon)\n > .@{ant-prefix}-select\n .@{ant-prefix}-select-arrow,\n :not(.@{ant-prefix}-input-number-group-addon)\n > .@{ant-prefix}-select\n .@{ant-prefix}-select-clear {\n .@{form-prefix-cls}-rtl & {\n right: auto;\n left: 32px;\n }\n }\n\n > .@{ant-prefix}-select .@{ant-prefix}-select-selection-selected-value,\n :not(.@{ant-prefix}-input-group-addon)\n > .@{ant-prefix}-select\n .@{ant-prefix}-select-selection-selected-value,\n :not(.@{ant-prefix}-input-number-group-addon)\n > .@{ant-prefix}-select\n .@{ant-prefix}-select-selection-selected-value {\n .@{form-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 42px;\n }\n }\n\n .@{ant-prefix}-cascader-picker {\n &-arrow {\n .@{form-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 19px;\n }\n }\n\n &-clear {\n .@{form-prefix-cls}-rtl & {\n right: auto;\n left: 32px;\n }\n }\n }\n\n .@{ant-prefix}-picker {\n .@{form-prefix-cls}-rtl & {\n padding-right: @input-padding-horizontal-base;\n padding-left: @input-padding-horizontal-base + @font-size-base * 1.3;\n }\n\n &-large {\n .@{form-prefix-cls}-rtl & {\n padding-right: @input-padding-horizontal-lg;\n padding-left: @input-padding-horizontal-lg + @font-size-base * 1.3;\n }\n }\n\n &-small {\n .@{form-prefix-cls}-rtl & {\n padding-right: @input-padding-horizontal-sm;\n padding-left: @input-padding-horizontal-sm + @font-size-base * 1.3;\n }\n }\n }\n\n &.@{form-item-prefix-cls} {\n &-has-success,\n &-has-warning,\n &-has-error,\n &-is-validating {\n // ====================== Icon ======================\n .@{form-item-prefix-cls}-children-icon {\n .@{form-prefix-cls}-rtl & {\n right: auto;\n left: 0;\n }\n }\n }\n }\n }\n}\n\n// inline\n.@{form-prefix-cls}-inline {\n .@{form-prefix-cls}-item {\n .@{form-prefix-cls}-rtl& {\n margin-right: 0;\n margin-left: 16px;\n }\n }\n}\n\n// vertical\n.make-vertical-layout-label() {\n .@{form-prefix-cls}-rtl& {\n text-align: right;\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n.@{form-item-prefix-cls} {\n // ================================================================\n // = Status =\n // ================================================================\n\n /* Some non-status related component style is in `components.less` */\n\n // ========================= Explain =========================\n\n /* To support leave along ErrorList. We add additional className to handle explain style */\n &-explain {\n &-error {\n color: @error-color;\n }\n\n &-warning {\n color: @warning-color;\n }\n }\n\n &-has-feedback {\n // ======================== Switch =========================\n .@{ant-prefix}-switch {\n margin: 2px 0 4px;\n }\n }\n\n // ======================== Warning ========================\n &-has-warning {\n .form-control-validation(@warning-color; @warning-color; @form-warning-input-bg; @warning-color-hover; @warning-color-outline);\n }\n\n // ========================= Error =========================\n &-has-error {\n .form-control-validation(@error-color; @error-color; @form-error-input-bg; @error-color-hover; @error-color-outline);\n }\n}\n","@import '../../input/style/mixin';\n\n.form-control-validation(\n @text-color: @input-color;\n @border-color: @input-border-color;\n @background-color: @input-bg;\n @hoverBorderColor: @primary-color-hover;\n @outlineColor: @primary-color-outline;\n) {\n .@{ant-prefix}-form-item-split {\n color: @text-color;\n }\n}\n\n// Reset form styles\n// -----------------------------\n// Based on Bootstrap framework\n.reset-form() {\n legend {\n display: block;\n width: 100%;\n margin-bottom: 20px;\n padding: 0;\n color: @text-color-secondary;\n font-size: @font-size-lg;\n line-height: inherit;\n border: 0;\n border-bottom: @border-width-base @border-style-base @border-color-base;\n }\n\n label {\n font-size: @font-size-base;\n }\n\n input[type='search'] {\n box-sizing: border-box;\n }\n\n // Position radios and checkboxes better\n input[type='radio'],\n input[type='checkbox'] {\n line-height: normal;\n }\n\n input[type='file'] {\n display: block;\n }\n\n // Make range inputs behave like textual form controls\n input[type='range'] {\n display: block;\n width: 100%;\n }\n\n // Make multiple select elements height not fixed\n select[multiple],\n select[size] {\n height: auto;\n }\n\n // Focus for file, radio, and checkbox\n input[type='file']:focus,\n input[type='radio']:focus,\n input[type='checkbox']:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n }\n\n // Adjust output element\n output {\n display: block;\n padding-top: 15px;\n color: @input-color;\n font-size: @font-size-base;\n line-height: @line-height-base;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@image-prefix-cls: ~'@{ant-prefix}-image';\n@image-preview-prefix-cls: ~'@{image-prefix-cls}-preview';\n\n.@{image-prefix-cls} {\n position: relative;\n display: inline-block;\n\n &-img {\n width: 100%;\n height: auto;\n vertical-align: middle;\n\n &-placeholder {\n background-color: @image-bg;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=');\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 30%;\n }\n }\n\n &-mask {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: @text-color-inverse;\n background: fade(@black, 50%);\n cursor: pointer;\n opacity: 0;\n transition: opacity @animation-duration-slow;\n\n &-info {\n padding: 0 @padding-xss;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n .@{iconfont-css-prefix} {\n margin-inline-end: @margin-xss;\n }\n }\n\n &:hover {\n opacity: 1;\n }\n }\n\n &-placeholder {\n .box();\n }\n\n &-preview {\n .modal-mask();\n\n height: 100%;\n text-align: center;\n\n &-body {\n .box();\n overflow: hidden;\n }\n\n &-img {\n max-width: 100%;\n max-height: 100%;\n vertical-align: middle;\n transform: scale3d(1, 1, 1);\n cursor: grab;\n transition: transform 0.3s @ease-out 0s;\n user-select: none;\n pointer-events: auto;\n\n &-wrapper {\n .box();\n transition: transform 0.3s @ease-out 0s;\n\n &::before {\n display: inline-block;\n width: 1px;\n height: 50%;\n margin-right: -1px;\n content: '';\n }\n }\n }\n\n &-moving {\n .@{image-prefix-cls}-preview-img {\n cursor: grabbing;\n\n &-wrapper {\n transition-duration: 0s;\n }\n }\n }\n\n &-wrap {\n z-index: @zindex-image;\n }\n\n &-operations-wrapper {\n position: fixed;\n top: 0;\n right: 0;\n z-index: @zindex-image + 1;\n width: 100%;\n }\n\n &-operations {\n .reset-component();\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n color: @image-preview-operation-color;\n list-style: none;\n background: fade(@modal-mask-bg, 10%);\n pointer-events: auto;\n\n &-operation {\n margin-left: @control-padding-horizontal;\n padding: @control-padding-horizontal;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n background: fade(@modal-mask-bg, 20%);\n }\n\n &-disabled {\n color: @image-preview-operation-disabled-color;\n pointer-events: none;\n }\n\n &:last-of-type {\n margin-left: 0;\n }\n }\n\n &-progress {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n\n &-icon {\n font-size: @image-preview-operation-size;\n }\n }\n\n &-switch-left,\n &-switch-right {\n position: fixed;\n top: 50%;\n right: 8px;\n z-index: @zindex-image + 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n color: @image-preview-operation-color;\n background: fade(@modal-mask-bg, 10%);\n border-radius: 50%;\n transform: translateY(-50%);\n cursor: pointer;\n transition: all 0.3s;\n pointer-events: auto;\n\n &:hover {\n background: fade(@modal-mask-bg, 20%);\n }\n\n &-disabled,\n &-disabled:hover {\n color: @image-preview-operation-disabled-color;\n background: fade(@modal-mask-bg, 10%);\n cursor: not-allowed;\n > .@{iconfont-css-prefix} {\n cursor: not-allowed;\n }\n }\n\n > .@{iconfont-css-prefix} {\n font-size: 18px;\n }\n }\n\n &-switch-left {\n left: 8px;\n }\n\n &-switch-right {\n right: 8px;\n }\n }\n}\n\n@root-entry-name: default;",".box(@position: absolute) {\n position: @position;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n","@import 'box';\n\n.modal-mask() {\n pointer-events: none;\n\n &.@{ant-prefix}-zoom-enter,\n &.@{ant-prefix}-zoom-appear {\n transform: none; // reset scale avoid mousePosition bug\n opacity: 0;\n animation-duration: @animation-duration-slow;\n user-select: none; // https://github.com/ant-design/ant-design/issues/11777\n }\n\n &-mask {\n .box(fixed);\n z-index: @zindex-modal-mask;\n height: 100%;\n background-color: @modal-mask-bg;\n\n &-hidden {\n display: none;\n }\n }\n\n &-wrap {\n .box(fixed);\n overflow: auto;\n outline: 0;\n }\n}\n","@import '../../input/style/mixin';\n@import (reference) '../../style/themes/index';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n@input-affix-margin: 4px;\n\n.@{ant-prefix}-input-number {\n &-affix-wrapper {\n .input();\n // or number handler will cover form status\n position: relative;\n display: inline-flex;\n width: 90px;\n padding: 0;\n padding-inline-start: @input-padding-horizontal-base;\n\n &:not(&-disabled):hover {\n .hover();\n z-index: 1;\n }\n\n &-focused,\n &:focus {\n z-index: 1;\n }\n\n &-disabled {\n .@{ant-prefix}-input-number[disabled] {\n background: transparent;\n }\n }\n\n > div.@{ant-prefix}-input-number {\n width: 100%;\n border: none;\n outline: none;\n\n &.@{ant-prefix}-input-number-focused {\n box-shadow: none !important;\n }\n }\n\n input.@{ant-prefix}-input-number-input {\n padding: 0;\n }\n\n &::before {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n }\n\n .@{ant-prefix}-input-number-handler-wrap {\n z-index: 2;\n }\n }\n\n &-prefix,\n &-suffix {\n display: flex;\n flex: none;\n align-items: center;\n pointer-events: none;\n }\n\n &-prefix {\n margin-inline-end: @input-affix-margin;\n }\n\n &-suffix {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 1;\n height: 100%;\n margin-right: @input-padding-horizontal-base;\n margin-left: @input-affix-margin;\n }\n}\n\n.@{ant-prefix}-input-number-group-wrapper .@{ant-prefix}-input-number-affix-wrapper {\n width: 100%;\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import './affix';\n@import './status';\n\n@input-number-prefix-cls: ~'@{ant-prefix}-input-number';\n@form-item-prefix-cls: ~'@{ant-prefix}-form-item';\n\n.@{input-number-prefix-cls} {\n .reset-component();\n .input();\n\n //== Style for input-group: input with label, with button or dropdown...\n &-group {\n .reset-component();\n .input-group(~'@{input-number-prefix-cls}');\n\n &-wrapper {\n display: inline-block;\n text-align: start;\n vertical-align: top; // https://github.com/ant-design/ant-design/issues/6403\n }\n }\n\n display: inline-block;\n width: 90px;\n margin: 0;\n padding: 0;\n border: @border-width-base @border-style-base @input-border-color;\n border-radius: @control-border-radius;\n\n &-handler {\n position: relative;\n display: block;\n width: 100%;\n height: 50%;\n overflow: hidden;\n color: @text-color-secondary;\n font-weight: bold;\n line-height: 0;\n text-align: center;\n border-left: @border-width-base @border-style-base @input-number-handler-border-color;\n transition: all 0.1s linear;\n\n &:active {\n background: @input-number-handler-active-bg;\n }\n\n &:hover &-up-inner,\n &:hover &-down-inner {\n color: @input-number-handler-hover-bg;\n }\n }\n\n &-handler-up-inner,\n &-handler-down-inner {\n .iconfont-mixin();\n\n position: absolute;\n right: 4px;\n width: 12px;\n height: 12px;\n color: @text-color-secondary;\n line-height: 12px;\n transition: all 0.1s linear;\n user-select: none;\n }\n\n &:hover {\n .hover(@input-number-hover-border-color);\n & + .@{form-item-prefix-cls}-children-icon {\n opacity: 0;\n transition: opacity 0.24s linear 0.24s;\n }\n }\n\n &-focused {\n .active();\n }\n\n &-disabled {\n .disabled();\n .@{input-number-prefix-cls}-input {\n cursor: not-allowed;\n }\n .@{input-number-prefix-cls}-handler-wrap {\n display: none;\n }\n }\n\n &-readonly {\n .@{input-number-prefix-cls}-handler-wrap {\n display: none;\n }\n }\n\n &-input {\n width: 100%;\n height: @input-height-base - 2px;\n padding: 0 @control-padding-horizontal - 1px;\n text-align: left;\n background-color: transparent;\n border: 0;\n border-radius: @control-border-radius;\n outline: 0;\n transition: all 0.3s linear;\n appearance: textfield !important;\n .placeholder();\n\n &[type='number']::-webkit-inner-spin-button,\n &[type='number']::-webkit-outer-spin-button {\n margin: 0;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n appearance: none;\n }\n }\n\n &-lg {\n padding: 0;\n font-size: @font-size-lg;\n\n input {\n height: @input-height-lg - 2px;\n }\n }\n\n &-sm {\n padding: 0;\n\n input {\n height: @input-height-sm - 2px;\n padding: 0 @control-padding-horizontal-sm - 1px;\n }\n }\n\n &-handler-wrap {\n position: absolute;\n top: 0;\n right: 0;\n width: 22px;\n height: 100%;\n background: @input-number-handler-bg;\n border-radius: 0 @control-border-radius @control-border-radius 0;\n opacity: 0;\n transition: opacity 0.24s linear 0.1s;\n\n // Fix input number inside Menu makes icon too large\n // We arise the selector priority by nest selector here\n // https://github.com/ant-design/ant-design/issues/14367\n .@{input-number-prefix-cls}-handler {\n .@{input-number-prefix-cls}-handler-up-inner,\n .@{input-number-prefix-cls}-handler-down-inner {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: auto;\n margin-right: 0;\n font-size: 7px;\n }\n }\n\n .@{input-number-prefix-cls}-borderless & {\n border-left-width: 0;\n }\n }\n\n &-handler-wrap:hover &-handler {\n height: 40%;\n }\n\n &:hover &-handler-wrap,\n &-focused &-handler-wrap {\n opacity: 1;\n }\n\n &-handler-up {\n border-top-right-radius: @control-border-radius;\n cursor: pointer;\n\n &-inner {\n top: 50%;\n margin-top: -5px;\n text-align: center;\n }\n\n &:hover {\n height: 60% !important;\n }\n }\n\n &-handler-down {\n top: 0;\n border-top: @border-width-base @border-style-base @input-number-handler-border-color;\n border-bottom-right-radius: @control-border-radius;\n cursor: pointer;\n\n &-inner {\n top: 50%;\n text-align: center;\n transform: translateY(-50%);\n }\n\n &:hover {\n height: 60% !important;\n }\n .@{input-number-prefix-cls}-borderless & {\n border-top-width: 0;\n }\n }\n\n &:hover:not(.@{input-number-prefix-cls}-borderless) &-handler-down,\n &-focused:not(.@{input-number-prefix-cls}-borderless) &-handler-down {\n border-top: @border-width-base @border-style-base @input-number-handler-border-color;\n }\n\n &-handler-up-disabled,\n &-handler-down-disabled {\n cursor: not-allowed;\n }\n\n &-handler-up-disabled:hover &-handler-up-inner,\n &-handler-down-disabled:hover &-handler-down-inner {\n color: @disabled-color;\n }\n\n &-borderless {\n box-shadow: none;\n }\n\n // ===================== Out Of Range =====================\n &-out-of-range {\n input {\n color: @error-color;\n }\n }\n\n // ===================== Compact Item Styles =====================\n .compact-item(@input-number-prefix-cls, null, ~'@{input-number-prefix-cls}-focused');\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../input/style/mixin';\n\n@input-number-prefix-cls: ~'@{ant-prefix}-input-number';\n\n@input-number-wrapper-cls: @input-number-prefix-cls, ~'@{input-number-prefix-cls}-affix-wrapper';\n\neach(@input-number-wrapper-cls, {\n .@{value} {\n &-status-error {\n .status-color(@value, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n .status-color-common(@input-number-prefix-cls, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline)\n }\n\n &-status-warning {\n .status-color(@value, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n .status-color-common(@input-number-prefix-cls, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline)\n }\n }\n});\n\n.@{input-number-prefix-cls}-group-wrapper {\n &-status-error {\n .group-status-color(@input-number-prefix-cls, @error-color, @error-color);\n }\n\n &-status-warning {\n .group-status-color(@input-number-prefix-cls, @warning-color, @warning-color);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n\n@input-number-prefix-cls: ~'@{ant-prefix}-input-number';\n\n.@{input-number-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-handler {\n .@{input-number-prefix-cls}-rtl & {\n border-right: @border-width-base @border-style-base @input-number-handler-border-color;\n border-left: 0;\n }\n\n &-wrap {\n .@{input-number-prefix-cls}-rtl & {\n right: auto;\n left: 0;\n }\n\n .@{input-number-prefix-cls}-rtl.@{input-number-prefix-cls}-borderless & {\n border-right-width: 0;\n }\n }\n\n &-up {\n .@{input-number-prefix-cls}-rtl & {\n border-top-right-radius: 0;\n }\n }\n\n &-down {\n .@{input-number-prefix-cls}-rtl & {\n border-bottom-right-radius: 0;\n }\n }\n }\n\n &-input {\n .@{input-number-prefix-cls}-rtl & {\n direction: ltr;\n text-align: right;\n }\n }\n}\n\n// https://github.com/ant-design/ant-design/issues/35870\n.input-group(@input-number-prefix-cls) {\n > .@{input-number-prefix-cls}-rtl:first-child {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n > .@{input-number-prefix-cls}-rtl:last-child {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n\n &-addon {\n .@{input-number-prefix-cls}-group-rtl &:first-child {\n border-right: @border-width-base @border-style-base @input-border-color;\n border-left: 0;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n .@{input-number-prefix-cls}-group-rtl &:last-child {\n border-right: 0;\n border-left: @border-width-base @border-style-base @input-border-color;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n}\n","@import './mixin';\n@import (reference) '../../style/themes/index';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n@input-affix-margin: 4px;\n\n.@{ant-prefix}-input {\n &-affix-wrapper {\n .input();\n display: inline-flex;\n\n &:not(&-disabled):hover {\n .hover();\n z-index: 1;\n .@{ant-prefix}-input-search-with-button & {\n z-index: 0;\n }\n }\n\n &-focused,\n &:focus {\n z-index: 1;\n }\n\n &-disabled {\n .@{ant-prefix}-input[disabled] {\n background: rgba(255, 255, 255, 0);\n }\n }\n\n > .@{ant-prefix}-input {\n font-size: inherit;\n border: none;\n outline: none;\n\n &:focus {\n box-shadow: none !important;\n }\n\n &:not(textarea) {\n padding: 0;\n }\n }\n\n &::before {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n }\n }\n\n &-prefix,\n &-suffix {\n display: flex;\n flex: none;\n align-items: center;\n\n > *:not(:last-child) {\n margin-right: 8px;\n }\n }\n\n &-show-count-suffix {\n color: @text-color-secondary;\n }\n\n &-show-count-has-suffix {\n margin-right: 2px;\n }\n\n &-prefix {\n margin-right: @input-affix-margin;\n }\n\n &-suffix {\n margin-left: @input-affix-margin;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './mixin';\n@import './affix';\n@import './allow-clear';\n@import './status';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n// Input styles\n.@{input-prefix-cls} {\n .reset-component();\n .input();\n\n //== Style for input-group: input with label, with button or dropdown...\n &-group {\n .reset-component();\n .input-group(~'@{input-prefix-cls}');\n\n &-wrapper {\n display: inline-block;\n width: 100%;\n text-align: start;\n vertical-align: top; // https://github.com/ant-design/ant-design/issues/6403\n }\n }\n\n &-password-icon.@{iconfont-css-prefix} {\n color: @text-color-secondary;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n color: @input-icon-hover-color;\n }\n }\n\n &[type='color'] {\n height: @input-height-base;\n\n &.@{input-prefix-cls}-lg {\n height: @input-height-lg;\n }\n &.@{input-prefix-cls}-sm {\n height: @input-height-sm;\n padding-top: 3px;\n padding-bottom: 3px;\n }\n }\n\n &-textarea-show-count {\n // https://github.com/ant-design/ant-design/issues/33049\n > .@{input-prefix-cls} {\n height: 100%;\n }\n\n &::after {\n float: right;\n color: @text-color-secondary;\n white-space: nowrap;\n content: attr(data-count);\n pointer-events: none;\n }\n\n &.@{input-prefix-cls}-textarea-in-form-item {\n &::after {\n margin-bottom: -22px;\n }\n }\n }\n\n &-textarea-suffix {\n position: absolute;\n top: 0;\n right: @input-padding-horizontal-base;\n bottom: 0;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: auto;\n }\n\n // ===================== Compact Item Styles =====================\n .compact-item(@input-prefix-cls);\n}\n\n@import './search-input';\n@import './rtl';\n@import './IE11';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n//== Style for input-group: input with label, with button or dropdown...\n.@{ant-prefix}-input-group {\n &-wrapper {\n &-rtl {\n direction: rtl;\n }\n }\n\n &-rtl {\n direction: rtl;\n }\n}\n\n// affix\n@input-affix-margin: 4px;\n\n.@{ant-prefix}-input {\n &-affix-wrapper&-affix-wrapper-rtl {\n > input.@{ant-prefix}-input {\n border: none;\n outline: none;\n }\n }\n\n &-affix-wrapper-rtl {\n .@{ant-prefix}-input-prefix {\n margin: 0 0 0 @input-affix-margin;\n }\n\n .@{ant-prefix}-input-suffix {\n margin: 0 @input-affix-margin 0 0;\n }\n }\n\n &-textarea {\n &-rtl {\n direction: rtl;\n }\n\n &-rtl&-show-count::after {\n text-align: left;\n }\n }\n}\n\n// allow-clear\n.@{ant-prefix}-input-clear-icon {\n &-has-suffix {\n .@{ant-prefix}-input-affix-wrapper-rtl & {\n margin-right: 0;\n margin-left: @input-affix-margin;\n }\n }\n\n .@{ant-prefix}-input-affix-wrapper-rtl & {\n right: auto;\n left: 8px;\n }\n}\n\n// mixin\n@input-rtl-cls: ~'@{ant-prefix}-input-rtl';\n\n.active() {\n .@{input-rtl-cls} & {\n border-right-width: 0;\n border-left-width: @border-width-base !important;\n }\n}\n\n.hover() {\n .@{input-rtl-cls} & {\n border-right-width: 0;\n border-left-width: @border-width-base !important;\n }\n}\n\n.input() {\n &-rtl {\n direction: rtl;\n }\n}\n\n// label input\n.input-group(@inputClass) {\n > .@{inputClass}-rtl:first-child,\n &-rtl &-addon:first-child {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n\n &-addon:first-child {\n .@{inputClass}-group-rtl & {\n border-right: @border-width-base @border-style-base @input-border-color;\n border-left: 0;\n }\n }\n\n &-addon:last-child {\n .@{inputClass}-group-rtl & {\n border-right: 0;\n border-left: @border-width-base @border-style-base @input-border-color;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n > .@{inputClass}:last-child,\n &-addon:last-child {\n .@{inputClass}-group-rtl& {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n .@{inputClass}-affix-wrapper {\n &:not(:first-child) {\n .@{inputClass}-group-rtl& {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n &:not(:last-child) {\n .@{inputClass}-group-rtl& {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n }\n\n &&-compact {\n & > *:not(:last-child) {\n .@{inputClass}-group-rtl& {\n margin-right: 0;\n margin-left: -@border-width-base;\n border-left-width: @border-width-base;\n }\n }\n\n & > *:first-child,\n & > .@{ant-prefix}-select:first-child > .@{ant-prefix}-select-selector,\n & > .@{ant-prefix}-select-auto-complete:first-child .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker:first-child .@{ant-prefix}-input {\n .@{inputClass}-group-rtl& {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n\n & > *:last-child,\n & > .@{ant-prefix}-select:last-child > .@{ant-prefix}-select-selector,\n & > .@{ant-prefix}-select-auto-complete:last-child .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker:last-child .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker-focused:last-child .@{ant-prefix}-input {\n .@{inputClass}-group-rtl& {\n border-left-width: @border-width-base;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n .@{ant-prefix}-input-group-wrapper-rtl + .@{ant-prefix}-input-group-wrapper-rtl {\n margin-right: -1px;\n margin-left: 0;\n }\n\n .@{ant-prefix}-input-group-wrapper-rtl:not(:last-child) {\n &.@{ant-prefix}-input-search > .@{ant-prefix}-input-group {\n & > .@{ant-prefix}-input {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n }\n }\n}\n\n// search-input\n@search-prefix: ~'@{ant-prefix}-input-search';\n@search-rtl-cls: ~'@{search-prefix}-rtl';\n\n.@{search-prefix}-rtl {\n direction: rtl;\n\n .@{ant-prefix}-input {\n &:hover,\n &:focus {\n + .@{ant-prefix}-input-group-addon .@{search-prefix}-button:not(.@{ant-prefix}-btn-primary) {\n border-left-color: @border-color-base;\n\n &:hover {\n border-left-color: @input-hover-border-color;\n }\n }\n }\n }\n\n > .@{ant-prefix}-input-group {\n > .@{ant-prefix}-input-affix-wrapper {\n &:hover,\n &-focused {\n border-right-color: @input-hover-border-color;\n }\n }\n\n > .@{ant-prefix}-input-group-addon:last-child {\n right: -1px;\n left: auto;\n .@{search-prefix}-button {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n }\n}\n","@import (reference) '../../style/themes/index';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n// ========================= Input =========================\n.@{iconfont-css-prefix}.@{input-prefix-cls}-clear-icon,\n.@{input-prefix-cls}-clear-icon {\n margin: 0;\n color: @disabled-color;\n font-size: @font-size-sm;\n vertical-align: -1px;\n // https://github.com/ant-design/ant-design/pull/18151\n // https://codesandbox.io/s/wizardly-sun-u10br\n cursor: pointer;\n transition: color 0.3s;\n\n &:hover {\n color: @text-color-secondary;\n }\n\n &:active {\n color: @text-color;\n }\n\n &-hidden {\n visibility: hidden;\n }\n\n &-has-suffix {\n margin: 0 @input-affix-margin;\n }\n}\n\n// ======================= TextArea ========================\n.@{input-prefix-cls}-affix-wrapper.@{input-prefix-cls}-affix-wrapper-textarea-with-clear-btn {\n padding: 0;\n\n .@{input-prefix-cls}-clear-icon {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 1;\n }\n}\n","@import './mixin';\n\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n@input-wrapper-cls: @input-prefix-cls, ~'@{input-prefix-cls}-affix-wrapper';\n\neach(@input-wrapper-cls, {\n .@{value} {\n &-status-error {\n .status-color(@value, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n .status-color-common(@input-prefix-cls, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n }\n\n &-status-warning {\n .status-color(@value, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n .status-color-common(@input-prefix-cls, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n }\n }\n});\n\n.@{input-prefix-cls}-textarea {\n &-status-error,\n &-status-warning,\n &-status-success,\n &-status-validating {\n &.@{input-prefix-cls}-textarea-has-feedback {\n .@{input-prefix-cls} {\n padding-right: 24px;\n }\n }\n }\n}\n\n.@{input-prefix-cls}-group-wrapper {\n &-status-error {\n .group-status-color(@input-prefix-cls, @error-color, @error-color);\n }\n\n &-status-warning {\n .group-status-color(@input-prefix-cls, @warning-color, @warning-color);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../button/style/mixin';\n@import './mixin';\n\n@search-prefix: ~'@{ant-prefix}-input-search';\n\n.@{search-prefix} {\n .@{ant-prefix}-input {\n &:hover,\n &:focus {\n border-color: @input-hover-border-color;\n\n + .@{ant-prefix}-input-group-addon .@{search-prefix}-button:not(.@{ant-prefix}-btn-primary) {\n border-left-color: @input-hover-border-color;\n }\n }\n }\n\n .@{ant-prefix}-input-affix-wrapper {\n border-radius: 0;\n }\n\n // fix slight height diff in Firefox:\n // https://ant.design/components/auto-complete-cn/#components-auto-complete-demo-certain-category\n .@{ant-prefix}-input-lg {\n line-height: @line-height-base - 0.0002;\n }\n\n > .@{ant-prefix}-input-group {\n > .@{ant-prefix}-input-group-addon:last-child {\n left: -1px;\n padding: 0;\n border: 0;\n\n .@{search-prefix}-button {\n padding-top: 0;\n padding-bottom: 0;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n\n .@{search-prefix}-button:not(.@{ant-prefix}-btn-primary) {\n color: @text-color-secondary;\n\n &.@{ant-prefix}-btn-loading::before {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n }\n }\n }\n\n &-button {\n height: @input-height-base;\n\n &:hover,\n &:focus {\n z-index: 1;\n }\n }\n\n &-large &-button {\n height: @input-height-lg;\n }\n\n &-small &-button {\n height: @input-height-sm;\n }\n\n // ===================== Compact Item Customized Styles =====================\n &.@{input-prefix-cls}-compact-item {\n &:not(.@{input-prefix-cls}-compact-item-rtl) {\n &:not(.@{input-prefix-cls}-compact-last-item) {\n .@{input-prefix-cls}-group-addon {\n .@{input-prefix-cls}-search-button {\n margin-right: -@border-width-base;\n border-radius: 0;\n }\n }\n }\n }\n\n &:not(.@{input-prefix-cls}-compact-first-item) {\n .@{input-prefix-cls},\n .@{input-prefix-cls}-affix-wrapper {\n border-radius: 0;\n }\n }\n\n > .@{input-prefix-cls}-group-addon .@{input-prefix-cls}-search-button,\n > .@{input-prefix-cls},\n .@{input-prefix-cls}-affix-wrapper {\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n > .@{input-prefix-cls}-affix-wrapper-focused {\n z-index: 2;\n }\n }\n // ===================== For RTL Compact Item Customized Styles =====================\n &.@{input-prefix-cls}-compact-item-rtl {\n &:not(.@{input-prefix-cls}-compact-last-item) {\n .@{input-prefix-cls}-group-addon:last-child {\n .@{input-prefix-cls}-search-button {\n margin-left: -@border-width-base;\n border-radius: 0;\n }\n }\n }\n }\n}\n","// Fix Input component height issue in IE11\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .@{ant-prefix}-input {\n height: @input-height-base;\n\n &-lg {\n height: @input-height-lg;\n }\n\n &-sm {\n height: @input-height-sm;\n }\n\n &-affix-wrapper {\n > input.@{ant-prefix}-input {\n height: auto;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@layout-prefix-cls: ~'@{ant-prefix}-layout';\n@layout-menu-prefix-cls: ~'@{ant-prefix}-menu';\n\n.@{layout-prefix-cls} {\n display: flex;\n flex: auto;\n flex-direction: column;\n\n /* fix firefox can't set height smaller than content on flex item */\n min-height: 0;\n background: @layout-body-background;\n\n &,\n * {\n box-sizing: border-box;\n }\n\n &&-has-sider {\n flex-direction: row;\n\n > .@{layout-prefix-cls},\n > .@{layout-prefix-cls}-content {\n width: 0; // https://segmentfault.com/a/1190000019498300\n }\n }\n\n &-header,\n &-footer {\n flex: 0 0 auto;\n }\n\n &-header {\n height: @layout-header-height;\n padding: @layout-header-padding;\n color: @layout-header-color;\n line-height: @layout-header-height;\n background: @layout-header-background;\n }\n\n &-footer {\n padding: @layout-footer-padding;\n color: @text-color;\n font-size: @font-size-base;\n background: @layout-footer-background;\n }\n\n &-content {\n flex: auto;\n\n /* fix firefox can't set height smaller than content on flex item */\n min-height: 0;\n }\n\n &-sider {\n position: relative;\n\n /* fix firefox can't set width smaller than content on flex item */\n min-width: 0;\n background: @layout-sider-background;\n transition: all 0.2s;\n\n &-children {\n height: 100%;\n margin-top: -0.1px;\n // Hack for fixing margin collaspe bug\n // https://github.com/ant-design/ant-design/issues/7967\n // solution from https://stackoverflow.com/a/33132624/3040605\n padding-top: 0.1px;\n\n .@{layout-menu-prefix-cls}.@{layout-menu-prefix-cls}-inline-collapsed {\n width: auto;\n }\n }\n\n &-has-trigger {\n padding-bottom: @layout-trigger-height;\n }\n\n &-right {\n order: 1;\n }\n\n &-trigger {\n position: fixed;\n bottom: 0;\n z-index: 1;\n height: @layout-trigger-height;\n color: @layout-trigger-color;\n line-height: @layout-trigger-height;\n text-align: center;\n background: @layout-trigger-background;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n &-zero-width {\n > * {\n overflow: hidden;\n }\n\n &-trigger {\n position: absolute;\n top: @layout-header-height;\n right: -@layout-zero-trigger-width;\n z-index: 1;\n width: @layout-zero-trigger-width;\n height: @layout-zero-trigger-height;\n color: @layout-trigger-color;\n font-size: (@layout-zero-trigger-width / 2);\n line-height: @layout-zero-trigger-height;\n text-align: center;\n background: @layout-sider-background;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n cursor: pointer;\n transition: background 0.3s ease;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n transition: all 0.3s;\n content: '';\n }\n\n &:hover::after {\n background: rgba(255, 255, 255, 0.1);\n }\n\n &-right {\n left: -@layout-zero-trigger-width;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n }\n }\n}\n\n@import './light';\n@import './rtl';\n\n@root-entry-name: default;",".@{layout-prefix-cls}-sider-light {\n background: @layout-sider-background-light;\n .@{layout-prefix-cls}-sider-trigger {\n color: @layout-trigger-color-light;\n background: @layout-trigger-background-light;\n }\n .@{layout-prefix-cls}-sider-zero-width-trigger {\n color: @layout-trigger-color-light;\n background: @layout-trigger-background-light;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@layout-prefix-cls: ~'@{ant-prefix}-layout';\n\n.@{layout-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './customize.less';\n\n@list-prefix-cls: ~'@{ant-prefix}-list';\n\n.@{list-prefix-cls} {\n .reset-component();\n\n position: relative;\n\n * {\n outline: none;\n }\n\n &-pagination {\n margin-top: @margin-lg;\n text-align: right;\n\n // https://github.com/ant-design/ant-design/issues/20037\n .@{ant-prefix}-pagination-options {\n text-align: left;\n }\n }\n\n &-more {\n margin-top: @margin-sm;\n text-align: center;\n\n button {\n padding-right: 32px;\n padding-left: 32px;\n }\n }\n\n &-spin {\n min-height: 40px;\n text-align: center;\n }\n\n &-empty-text {\n padding: @list-empty-text-padding;\n color: @disabled-color;\n font-size: @font-size-base;\n text-align: center;\n }\n\n &-items {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n &-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: @list-item-padding;\n color: @text-color;\n\n &-meta {\n display: flex;\n flex: 1;\n align-items: flex-start;\n max-width: 100%;\n\n &-avatar {\n margin-right: @list-item-meta-avatar-margin-right;\n }\n\n &-content {\n flex: 1 0;\n width: 0;\n color: @text-color;\n }\n\n &-title {\n margin-bottom: 4px;\n color: @text-color;\n font-size: @font-size-base;\n line-height: @line-height-base;\n\n > a {\n color: @text-color;\n transition: all 0.3s;\n\n &:hover {\n color: @primary-color;\n }\n }\n }\n\n &-description {\n color: @text-color-secondary;\n font-size: @list-item-meta-description-font-size;\n line-height: @line-height-base;\n }\n }\n\n &-action {\n flex: 0 0 auto;\n margin-left: 48px;\n padding: 0;\n font-size: 0;\n list-style: none;\n\n & > li {\n position: relative;\n display: inline-block;\n padding: 0 @padding-xs;\n color: @text-color-secondary;\n font-size: @font-size-base;\n line-height: @line-height-base;\n text-align: center;\n\n &:first-child {\n padding-left: 0;\n }\n }\n\n &-split {\n position: absolute;\n top: 50%;\n right: 0;\n width: 1px;\n height: 14px;\n margin-top: -7px;\n background-color: @border-color-split;\n }\n }\n }\n\n &-header {\n background: @list-header-background;\n }\n\n &-footer {\n background: @list-footer-background;\n }\n\n &-header,\n &-footer {\n padding-top: @padding-sm;\n padding-bottom: @padding-sm;\n }\n\n &-empty {\n padding: @padding-md 0;\n color: @text-color-secondary;\n font-size: 12px;\n text-align: center;\n }\n\n &-split &-item {\n border-bottom: 1px solid @border-color-split;\n\n &:last-child {\n border-bottom: none;\n }\n }\n\n &-split &-header {\n border-bottom: 1px solid @border-color-split;\n }\n\n &-split&-empty &-footer {\n border-top: 1px solid @border-color-split;\n }\n\n &-loading &-spin-nested-loading {\n min-height: 32px;\n }\n\n &-split&-something-after-last-item .@{ant-prefix}-spin-container > &-items > &-item:last-child {\n border-bottom: 1px solid @border-color-split;\n }\n\n &-lg &-item {\n padding: @list-item-padding-lg;\n }\n\n &-sm &-item {\n padding: @list-item-padding-sm;\n }\n\n &-vertical &-item {\n align-items: initial;\n\n &-main {\n display: block;\n flex: 1;\n }\n\n &-extra {\n margin-left: 40px;\n }\n\n &-meta {\n margin-bottom: @list-item-meta-margin-bottom;\n\n &-title {\n margin-bottom: @list-item-meta-title-margin-bottom;\n color: @heading-color;\n font-size: @font-size-lg;\n line-height: 24px;\n }\n }\n\n &-action {\n margin-top: @padding-md;\n margin-left: auto;\n\n > li {\n padding: 0 @padding-md;\n\n &:first-child {\n padding-left: 0;\n }\n }\n }\n }\n\n &-grid .@{ant-prefix}-col > &-item {\n display: block;\n max-width: 100%;\n margin-bottom: @margin-md;\n padding-top: 0;\n padding-bottom: 0;\n border-bottom: none;\n }\n\n // ============================ without flex ============================\n &-item-no-flex {\n display: block;\n }\n\n // Horizontal\n &:not(.@{list-prefix-cls}-vertical) {\n .@{list-prefix-cls}-item-no-flex {\n .@{list-prefix-cls}-item-action {\n float: right;\n }\n }\n }\n}\n\n@import './bordered';\n@import './responsive';\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n\n.@{list-prefix-cls}-bordered {\n border: 1px solid @border-color-base;\n border-radius: @border-radius-base;\n .@{list-prefix-cls}-header {\n padding-right: @padding-lg;\n padding-left: @padding-lg;\n }\n\n .@{list-prefix-cls}-footer {\n padding-right: @padding-lg;\n padding-left: @padding-lg;\n }\n\n .@{list-prefix-cls}-item {\n padding-right: @padding-lg;\n padding-left: @padding-lg;\n }\n\n .@{list-prefix-cls}-pagination {\n margin: @margin-md @margin-lg;\n }\n\n &.@{list-prefix-cls}-sm {\n .@{list-prefix-cls}-item {\n padding: @list-item-padding-sm;\n }\n .@{list-prefix-cls}-header,\n .@{list-prefix-cls}-footer {\n padding: @list-item-padding-sm;\n }\n }\n\n &.@{list-prefix-cls}-lg {\n .@{list-prefix-cls}-item {\n padding: @list-item-padding-lg;\n }\n .@{list-prefix-cls}-header,\n .@{list-prefix-cls}-footer {\n padding: @list-item-padding-lg;\n }\n }\n}\n","@media screen and (max-width: @screen-md) {\n .@{list-prefix-cls} {\n &-item {\n &-action {\n margin-left: 24px;\n }\n }\n }\n\n .@{list-prefix-cls}-vertical {\n .@{list-prefix-cls}-item {\n &-extra {\n margin-left: 24px;\n }\n }\n }\n}\n\n@media screen and (max-width: @screen-sm) {\n .@{list-prefix-cls} {\n &-item {\n flex-wrap: wrap;\n\n &-action {\n margin-left: 12px;\n }\n }\n }\n\n .@{list-prefix-cls}-vertical {\n .@{list-prefix-cls}-item {\n flex-wrap: wrap-reverse;\n\n &-main {\n min-width: 220px;\n }\n\n &-extra {\n margin: auto auto 16px;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './customize.less';\n\n@list-prefix-cls: ~'@{ant-prefix}-list';\n\n.@{list-prefix-cls} {\n &-rtl {\n direction: rtl;\n text-align: right;\n\n // fix for virtual scroll style attribute > (direction:ltr)\n .ReactVirtualized__List .@{list-prefix-cls}-item {\n direction: rtl;\n }\n }\n\n &-pagination {\n .@{list-prefix-cls}-rtl & {\n text-align: left;\n }\n }\n\n &-item {\n &-meta {\n &-avatar {\n .@{list-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: @list-item-meta-avatar-margin-right;\n }\n }\n }\n\n &-action {\n .@{list-prefix-cls}-rtl & {\n margin-right: 48px;\n margin-left: 0;\n }\n\n & > li:first-child {\n .@{list-prefix-cls}.@{list-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: @padding-md;\n }\n }\n\n &-split {\n .@{list-prefix-cls}-rtl & {\n right: auto;\n left: 0;\n }\n }\n }\n }\n\n &-vertical &-item {\n &-extra {\n .@{list-prefix-cls}-rtl& {\n margin-right: 40px;\n margin-left: 0;\n }\n }\n\n &-action {\n .@{list-prefix-cls}-rtl& {\n margin-right: auto;\n }\n\n > li {\n &:first-child {\n .@{list-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: @padding-md;\n }\n }\n }\n }\n }\n\n // Horizontal\n &:not(.@{list-prefix-cls}-vertical) {\n .@{list-prefix-cls}-item-no-flex {\n .@{list-prefix-cls}-item-action {\n .@{list-prefix-cls}-rtl & {\n float: left;\n }\n }\n }\n }\n}\n\n// responsive\n@media screen and (max-width: @screen-md) {\n .@{list-prefix-cls} {\n &-item {\n &-action {\n .@{list-prefix-cls}-rtl & {\n margin-right: 24px;\n margin-left: 0;\n }\n }\n }\n }\n\n .@{list-prefix-cls}-vertical {\n .@{list-prefix-cls}-item {\n &-extra {\n .@{list-prefix-cls}-rtl & {\n margin-right: 24px;\n margin-left: 0;\n }\n }\n }\n }\n}\n\n@media screen and (max-width: @screen-sm) {\n .@{list-prefix-cls} {\n &-item {\n &-action {\n .@{list-prefix-cls}-rtl & {\n margin-right: 22px;\n margin-left: 0;\n }\n }\n }\n }\n\n .@{list-prefix-cls}-vertical {\n .@{list-prefix-cls}-item {\n &-extra {\n // to override margins on rtl view\n .@{list-prefix-cls}-rtl& {\n margin: auto auto 16px;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n\n@pagination-prefix-cls: ~'@{ant-prefix}-pagination';\n\n.@{pagination-prefix-cls} {\n .reset-component();\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n &::after {\n display: block;\n clear: both;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n content: ' ';\n }\n\n &-total-text {\n display: inline-block;\n height: @pagination-item-size;\n margin-right: 8px;\n line-height: @pagination-item-size - 2px;\n vertical-align: middle;\n }\n\n &-item {\n display: inline-block;\n min-width: @pagination-item-size;\n height: @pagination-item-size;\n margin-right: 8px;\n font-family: @pagination-font-family;\n line-height: @pagination-item-size - 2px;\n text-align: center;\n vertical-align: middle;\n list-style: none;\n background-color: @pagination-item-bg;\n border: @border-width-base @border-style-base @border-color-base;\n border-radius: @border-radius-base;\n outline: 0;\n cursor: pointer;\n user-select: none;\n\n a {\n display: block;\n padding: 0 6px;\n color: @text-color;\n transition: none;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n &:hover {\n border-color: @primary-color;\n transition: all 0.3s;\n\n a {\n color: @primary-color;\n }\n }\n\n // cannot merge with `&:hover`\n // see https://github.com/ant-design/ant-design/pull/34002\n &:focus-visible {\n border-color: @primary-color;\n transition: all 0.3s;\n\n a {\n color: @primary-color;\n }\n }\n\n &-active {\n font-weight: @pagination-font-weight-active;\n background: @pagination-item-bg-active;\n border-color: @primary-color;\n\n a {\n color: @primary-color;\n }\n\n &:hover {\n border-color: @primary-5;\n }\n\n &:focus-visible {\n border-color: @primary-5;\n }\n\n &:hover a {\n color: @primary-5;\n }\n\n &:focus-visible a {\n color: @primary-5;\n }\n }\n }\n\n &-jump-prev,\n &-jump-next {\n outline: 0;\n .@{pagination-prefix-cls}-item-container {\n position: relative;\n\n .@{pagination-prefix-cls}-item-link-icon {\n color: @primary-color;\n font-size: @font-size-sm;\n letter-spacing: -1px;\n opacity: 0;\n transition: all 0.2s;\n\n &-svg {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n }\n }\n\n .@{pagination-prefix-cls}-item-ellipsis {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n margin: auto;\n color: @disabled-color;\n font-family: Arial, Helvetica, sans-serif;\n letter-spacing: 2px;\n text-align: center;\n text-indent: 0.13em;\n opacity: 1;\n transition: all 0.2s;\n }\n }\n\n &:hover {\n .@{pagination-prefix-cls}-item-link-icon {\n opacity: 1;\n }\n .@{pagination-prefix-cls}-item-ellipsis {\n opacity: 0;\n }\n }\n\n &:focus-visible {\n .@{pagination-prefix-cls}-item-link-icon {\n opacity: 1;\n }\n .@{pagination-prefix-cls}-item-ellipsis {\n opacity: 0;\n }\n }\n }\n\n &-prev,\n &-jump-prev,\n &-jump-next {\n margin-right: 8px;\n }\n\n &-prev,\n &-next,\n &-jump-prev,\n &-jump-next {\n display: inline-block;\n min-width: @pagination-item-size;\n height: @pagination-item-size;\n color: @text-color;\n font-family: @pagination-font-family;\n line-height: @pagination-item-size;\n text-align: center;\n vertical-align: middle;\n list-style: none;\n border-radius: @border-radius-base;\n cursor: pointer;\n transition: all 0.3s;\n }\n\n &-prev,\n &-next {\n font-family: Arial, Helvetica, sans-serif;\n outline: 0;\n\n button {\n color: @text-color;\n cursor: pointer;\n user-select: none;\n }\n\n &:hover button {\n border-color: @primary-5;\n }\n\n .@{pagination-prefix-cls}-item-link {\n display: block;\n width: 100%;\n height: 100%;\n padding: 0;\n font-size: 12px;\n text-align: center;\n background-color: @pagination-item-link-bg;\n border: @border-width-base @border-style-base @border-color-base;\n border-radius: @border-radius-base;\n outline: none;\n transition: all 0.3s;\n }\n\n &:focus-visible .@{pagination-prefix-cls}-item-link {\n color: @primary-color;\n border-color: @primary-color;\n }\n\n &:hover .@{pagination-prefix-cls}-item-link {\n color: @primary-color;\n border-color: @primary-color;\n }\n }\n\n &-disabled {\n &,\n &:hover {\n cursor: not-allowed;\n .@{pagination-prefix-cls}-item-link {\n color: @disabled-color;\n border-color: @border-color-base;\n cursor: not-allowed;\n }\n }\n\n &:focus-visible {\n cursor: not-allowed;\n .@{pagination-prefix-cls}-item-link {\n color: @disabled-color;\n border-color: @border-color-base;\n cursor: not-allowed;\n }\n }\n }\n\n &-slash {\n margin: 0 10px 0 5px;\n }\n\n &-options {\n display: inline-block;\n margin-left: 16px;\n vertical-align: middle;\n\n // IE11 css hack. `*::-ms-backdrop,` is a must have\n @media all and (-ms-high-contrast: none) {\n *::-ms-backdrop,\n & {\n vertical-align: top;\n }\n }\n\n &-size-changer.@{ant-prefix}-select {\n display: inline-block;\n width: auto;\n }\n\n &-quick-jumper {\n display: inline-block;\n height: @input-height-base;\n margin-left: @margin-xs;\n line-height: @input-height-base;\n vertical-align: top;\n\n input {\n .input();\n\n width: 50px;\n height: @input-height-base;\n margin: 0 8px;\n }\n }\n }\n\n &-simple &-prev,\n &-simple &-next {\n height: @pagination-item-size-sm;\n line-height: @pagination-item-size-sm;\n vertical-align: top;\n .@{pagination-prefix-cls}-item-link {\n height: @pagination-item-size-sm;\n background-color: transparent;\n border: 0;\n\n &::after {\n height: @pagination-item-size-sm;\n line-height: @pagination-item-size-sm;\n }\n }\n }\n\n &-simple &-simple-pager {\n display: inline-block;\n height: @pagination-item-size-sm;\n margin-right: 8px;\n\n input {\n box-sizing: border-box;\n height: 100%;\n margin-right: 8px;\n padding: 0 6px;\n text-align: center;\n background-color: @pagination-item-input-bg;\n border: @border-width-base @border-style-base @border-color-base;\n border-radius: @border-radius-base;\n outline: none;\n transition: border-color 0.3s;\n\n &:hover {\n border-color: @primary-color;\n }\n\n &:focus {\n border-color: @primary-color-hover;\n box-shadow: @input-outline-offset @outline-blur-size @outline-width @primary-color-outline;\n }\n\n &[disabled] {\n color: @disabled-color;\n background: @disabled-bg;\n border-color: @border-color-base;\n cursor: not-allowed;\n }\n }\n }\n\n &&-mini &-total-text,\n &&-mini &-simple-pager {\n height: @pagination-item-size-sm;\n line-height: @pagination-item-size-sm;\n }\n\n &&-mini &-item {\n min-width: @pagination-item-size-sm;\n height: @pagination-item-size-sm;\n margin: 0;\n line-height: @pagination-item-size-sm - 2px;\n }\n\n &&-mini &-item:not(&-item-active) {\n background: transparent;\n border-color: transparent;\n }\n\n &&-mini &-prev,\n &&-mini &-next {\n min-width: @pagination-item-size-sm;\n height: @pagination-item-size-sm;\n margin: 0;\n line-height: @pagination-item-size-sm;\n }\n\n &&-mini &-prev &-item-link,\n &&-mini &-next &-item-link {\n background: transparent;\n border-color: transparent;\n\n &::after {\n height: @pagination-item-size-sm;\n line-height: @pagination-item-size-sm;\n }\n }\n\n &&-mini &-jump-prev,\n &&-mini &-jump-next {\n height: @pagination-item-size-sm;\n margin-right: 0;\n line-height: @pagination-item-size-sm;\n }\n\n &&-mini &-options {\n margin-left: 2px;\n\n &-size-changer {\n top: @pagination-mini-options-size-changer-top;\n }\n\n &-quick-jumper {\n height: @pagination-item-size-sm;\n line-height: @pagination-item-size-sm;\n\n input {\n .input-sm();\n\n width: 44px;\n height: @input-height-sm;\n }\n }\n }\n\n // ============================ Disabled ============================\n &&-disabled {\n cursor: not-allowed;\n\n .@{pagination-prefix-cls}-item {\n background: @disabled-bg;\n border-color: @border-color-base;\n cursor: not-allowed;\n\n a {\n color: @disabled-color;\n background: transparent;\n border: none;\n cursor: not-allowed;\n }\n\n &-active {\n background: @pagination-item-disabled-bg-active;\n\n a {\n color: @pagination-item-disabled-color-active;\n }\n }\n }\n\n .@{pagination-prefix-cls}-item-link {\n color: @disabled-color;\n background: @disabled-bg;\n border-color: @border-color-base;\n cursor: not-allowed;\n .@{pagination-prefix-cls}-simple& {\n background: transparent;\n }\n }\n\n .@{pagination-prefix-cls}-item-link-icon {\n opacity: 0;\n }\n\n .@{pagination-prefix-cls}-item-ellipsis {\n opacity: 1;\n }\n\n .@{pagination-prefix-cls}-simple-pager {\n color: @disabled-color;\n }\n }\n}\n\n@media only screen and (max-width: @screen-lg) {\n .@{pagination-prefix-cls}-item {\n &-after-jump-prev,\n &-before-jump-next {\n display: none;\n }\n }\n}\n\n@media only screen and (max-width: @screen-sm) {\n .@{pagination-prefix-cls}-options {\n display: none;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n\n@pagination-prefix-cls: ~'@{ant-prefix}-pagination';\n\n.@{pagination-prefix-cls}-rtl {\n .@{pagination-prefix-cls}-total-text {\n margin-right: 0;\n margin-left: 8px;\n }\n\n .@{pagination-prefix-cls}-item,\n .@{pagination-prefix-cls}-prev,\n .@{pagination-prefix-cls}-jump-prev,\n .@{pagination-prefix-cls}-jump-next {\n margin-right: 0;\n margin-left: 8px;\n }\n\n .@{pagination-prefix-cls}-slash {\n margin: 0 5px 0 10px;\n }\n\n .@{pagination-prefix-cls}-options {\n margin-right: 16px;\n margin-left: 0;\n\n .@{pagination-prefix-cls}-options-size-changer.@{ant-prefix}-select {\n margin-right: 0;\n margin-left: 8px;\n }\n\n .@{pagination-prefix-cls}-options-quick-jumper {\n margin-left: 0;\n }\n }\n\n &.@{pagination-prefix-cls}-simple {\n .@{pagination-prefix-cls}-simple-pager {\n margin-right: 0;\n margin-left: 8px;\n\n input {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n }\n\n &.@{pagination-prefix-cls}.mini .@{pagination-prefix-cls}-options {\n margin-right: 2px;\n margin-left: 0;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@spin-prefix-cls: ~'@{ant-prefix}-spin';\n@spin-dot-default: @text-color-secondary;\n\n.@{spin-prefix-cls} {\n .reset-component();\n\n position: absolute;\n display: none;\n color: @primary-color;\n font-size: 0;\n text-align: center;\n vertical-align: middle;\n opacity: 0;\n transition: transform 0.3s @ease-in-out-circ;\n\n &-spinning {\n position: static;\n display: inline-block;\n opacity: 1;\n }\n\n &-nested-loading {\n position: relative;\n > div > .@{spin-prefix-cls} {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 4;\n display: block;\n width: 100%;\n height: 100%;\n max-height: 400px;\n .@{spin-prefix-cls}-dot {\n position: absolute;\n top: 50%;\n left: 50%;\n margin: -(@spin-dot-size / 2);\n }\n .@{spin-prefix-cls}-text {\n position: absolute;\n top: 50%;\n width: 100%;\n padding-top: ((@spin-dot-size - @font-size-base) / 2) + 2px;\n font-size: @font-size-base;\n text-shadow: 0 1px 2px @shadow-color-inverse;\n }\n &.@{spin-prefix-cls}-show-text .@{spin-prefix-cls}-dot {\n margin-top: -(@spin-dot-size / 2) - 10px;\n }\n }\n\n > div > .@{spin-prefix-cls}-sm {\n .@{spin-prefix-cls}-dot {\n margin: -(@spin-dot-size-sm / 2);\n }\n .@{spin-prefix-cls}-text {\n padding-top: ((@spin-dot-size-sm - @font-size-base) / 2) + 2px;\n }\n &.@{spin-prefix-cls}-show-text .@{spin-prefix-cls}-dot {\n margin-top: -(@spin-dot-size-sm / 2) - 10px;\n }\n }\n\n > div > .@{spin-prefix-cls}-lg {\n .@{spin-prefix-cls}-dot {\n margin: -(@spin-dot-size-lg / 2);\n }\n .@{spin-prefix-cls}-text {\n padding-top: ((@spin-dot-size-lg - @font-size-base) / 2) + 2px;\n }\n &.@{spin-prefix-cls}-show-text .@{spin-prefix-cls}-dot {\n margin-top: -(@spin-dot-size-lg / 2) - 10px;\n }\n }\n }\n\n &-container {\n position: relative;\n transition: opacity 0.3s;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n display: ~'none \\9';\n width: 100%;\n height: 100%;\n background: @component-background;\n opacity: 0;\n transition: all 0.3s;\n content: '';\n pointer-events: none;\n }\n }\n\n &-blur {\n clear: both;\n opacity: 0.5;\n user-select: none;\n pointer-events: none;\n\n &::after {\n opacity: 0.4;\n pointer-events: auto;\n }\n }\n\n // tip\n // ------------------------------\n &-tip {\n color: @spin-dot-default;\n }\n\n // dots\n // ------------------------------\n\n &-dot {\n position: relative;\n display: inline-block;\n font-size: @spin-dot-size;\n\n .square(1em);\n\n &-item {\n position: absolute;\n display: block;\n width: 9px;\n height: 9px;\n background-color: @primary-color;\n border-radius: 100%;\n transform: scale(0.75);\n transform-origin: 50% 50%;\n opacity: 0.3;\n animation: antSpinMove 1s infinite linear alternate;\n\n &:nth-child(1) {\n top: 0;\n left: 0;\n }\n\n &:nth-child(2) {\n top: 0;\n right: 0;\n animation-delay: 0.4s;\n }\n\n &:nth-child(3) {\n right: 0;\n bottom: 0;\n animation-delay: 0.8s;\n }\n\n &:nth-child(4) {\n bottom: 0;\n left: 0;\n animation-delay: 1.2s;\n }\n }\n\n &-spin {\n transform: rotate(0deg);\n animation: antRotate 1.2s infinite linear;\n }\n }\n\n // Sizes\n // ------------------------------\n\n // small\n &-sm &-dot {\n font-size: @spin-dot-size-sm;\n\n i {\n width: 6px;\n height: 6px;\n }\n }\n\n // large\n &-lg &-dot {\n font-size: @spin-dot-size-lg;\n\n i {\n width: 14px;\n height: 14px;\n }\n }\n\n &&-show-text &-text {\n display: block;\n }\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n /* IE10+ */\n .@{spin-prefix-cls}-blur {\n background: @component-background;\n opacity: 0.5;\n }\n}\n\n@keyframes antSpinMove {\n to {\n opacity: 1;\n }\n}\n\n@keyframes antRotate {\n to {\n transform: rotate(360deg);\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{spin-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-dot {\n &-spin {\n .@{spin-prefix-cls}-rtl & {\n transform: rotate(-45deg);\n animation-name: antRotateRtl;\n }\n }\n }\n}\n\n@keyframes antRotateRtl {\n to {\n transform: rotate(-405deg);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import './status';\n\n@mention-prefix-cls: ~'@{ant-prefix}-mentions';\n\n.@{mention-prefix-cls} {\n .reset-component();\n .input();\n\n position: relative;\n display: inline-block;\n height: auto;\n padding: 0;\n overflow: hidden;\n line-height: @line-height-base;\n white-space: pre-wrap;\n vertical-align: bottom;\n\n // =================== Status ===================\n &-disabled {\n > textarea {\n .disabled();\n }\n }\n\n &-focused {\n .active();\n }\n\n // ================= Input Area =================\n > textarea,\n &-measure {\n min-height: @input-height-base - 2px;\n margin: 0;\n padding: @input-padding-vertical-base @input-padding-horizontal-base;\n overflow: inherit;\n overflow-x: hidden;\n overflow-y: auto;\n /* stylelint-disable declaration-block-no-redundant-longhand-properties */\n font-weight: inherit;\n font-size: inherit;\n font-family: inherit;\n font-style: inherit;\n font-variant: inherit;\n font-size-adjust: inherit;\n font-stretch: inherit;\n line-height: inherit;\n /* stylelint-enable declaration-block-no-redundant-longhand-properties */\n direction: inherit;\n letter-spacing: inherit;\n white-space: inherit;\n text-align: inherit;\n vertical-align: top;\n word-wrap: break-word;\n word-break: inherit;\n tab-size: inherit;\n }\n\n > textarea {\n width: 100%;\n border: none;\n outline: none;\n resize: none;\n & when (@theme = dark) {\n background-color: transparent;\n }\n .placeholder();\n }\n\n &-measure {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n color: transparent;\n pointer-events: none;\n\n > span {\n display: inline-block;\n min-height: 1em;\n }\n }\n\n // ================== Dropdown ==================\n &-dropdown {\n // Ref select dropdown style\n .reset-component();\n\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: @zindex-dropdown;\n box-sizing: border-box;\n font-size: @font-size-base;\n font-variant: initial;\n background-color: @mentions-dropdown-bg;\n border-radius: @border-radius-base;\n outline: none;\n box-shadow: @box-shadow-base;\n\n &-hidden {\n display: none;\n }\n\n &-menu {\n max-height: 250px;\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n overflow: auto;\n list-style: none;\n outline: none;\n\n &-item {\n position: relative;\n display: block;\n min-width: 100px;\n padding: 5px @control-padding-horizontal;\n overflow: hidden;\n color: @text-color;\n font-weight: normal;\n line-height: @line-height-base;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: background 0.3s ease;\n\n &:hover {\n background-color: @item-hover-bg;\n }\n\n &:first-child {\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n\n &:last-child {\n border-radius: 0 0 @border-radius-base @border-radius-base;\n }\n\n &-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n\n &:hover {\n color: @disabled-color;\n background-color: @mentions-dropdown-menu-item-hover-bg;\n cursor: not-allowed;\n }\n }\n\n &-selected {\n color: @text-color;\n font-weight: @select-item-selected-font-weight;\n background-color: @background-color-light;\n }\n\n &-active {\n background-color: @item-hover-bg;\n }\n }\n }\n }\n\n &-suffix {\n position: absolute;\n top: 0;\n right: @input-padding-horizontal-base;\n bottom: 0;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: auto;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../input/style/mixin';\n\n@mention-prefix-cls: ~'@{ant-prefix}-mentions';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n.@{mention-prefix-cls} {\n &-status-error {\n .status-color(@mention-prefix-cls, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n .status-color-common(@input-prefix-cls, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n }\n\n &-status-warning {\n .status-color(@mention-prefix-cls, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n .status-color-common(@input-prefix-cls, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@mention-prefix-cls: ~'@{ant-prefix}-mentions';\n\n.@{mention-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@message-prefix-cls: ~'@{ant-prefix}-message';\n\n.@{message-prefix-cls} {\n .reset-component();\n\n position: fixed;\n top: 8px;\n left: 0;\n z-index: @zindex-message;\n width: 100%;\n pointer-events: none;\n\n &-notice {\n padding: 8px;\n text-align: center;\n }\n\n &-notice-content {\n display: inline-block;\n padding: @message-notice-content-padding;\n background: @message-notice-content-bg;\n border-radius: @border-radius-base;\n box-shadow: @shadow-2;\n pointer-events: all;\n }\n\n &-success .@{iconfont-css-prefix} {\n color: @success-color;\n }\n\n &-error .@{iconfont-css-prefix} {\n color: @error-color;\n }\n\n &-warning .@{iconfont-css-prefix} {\n color: @warning-color;\n }\n\n &-info .@{iconfont-css-prefix},\n &-loading .@{iconfont-css-prefix} {\n color: @info-color;\n }\n\n .@{iconfont-css-prefix} {\n position: relative;\n top: 1px;\n margin-right: 8px;\n font-size: @font-size-lg;\n }\n\n &-notice.@{ant-prefix}-move-up-leave.@{ant-prefix}-move-up-leave-active {\n animation-name: MessageMoveOut;\n animation-duration: 0.3s;\n }\n}\n\n@keyframes MessageMoveOut {\n 0% {\n max-height: 150px;\n padding: 8px;\n opacity: 1;\n }\n\n 100% {\n max-height: 0;\n padding: 0;\n opacity: 0;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@message-prefix-cls: ~'@{ant-prefix}-message';\n\n.@{message-prefix-cls}-rtl {\n direction: rtl;\n\n span {\n direction: rtl;\n }\n\n .@{iconfont-css-prefix} {\n margin-right: 0;\n margin-left: 8px;\n }\n}\n","@dialog-prefix-cls: ~'@{ant-prefix}-modal';\n\n.@{dialog-prefix-cls} {\n .reset-component();\n .modal-mask();\n\n position: relative;\n top: 100px;\n width: auto;\n max-width: calc(100vw - 32px);\n margin: 0 auto;\n padding-bottom: 24px;\n\n &-wrap {\n z-index: @zindex-modal;\n }\n\n &-title {\n margin: 0;\n color: @modal-heading-color;\n font-weight: 500;\n font-size: @modal-header-title-font-size;\n line-height: @modal-header-title-line-height;\n word-wrap: break-word;\n }\n\n &-content {\n position: relative;\n background-color: @modal-content-bg;\n background-clip: padding-box;\n border: 0;\n border-radius: @modal-border-radius;\n box-shadow: @shadow-2;\n pointer-events: auto;\n }\n\n &-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: @zindex-popup-close;\n padding: 0;\n color: @modal-close-color;\n font-weight: 700;\n line-height: 1;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n\n &-x {\n display: block;\n width: @modal-header-close-size;\n height: @modal-header-close-size;\n font-size: @font-size-lg;\n font-style: normal;\n line-height: @modal-header-close-size;\n text-align: center;\n text-transform: none;\n text-rendering: auto;\n }\n\n &:focus,\n &:hover {\n color: @icon-color-hover;\n text-decoration: none;\n }\n }\n\n &-header {\n padding: @modal-header-padding;\n color: @text-color;\n background: @modal-header-bg;\n border-bottom: @modal-header-border-width @modal-header-border-style\n @modal-header-border-color-split;\n border-radius: @modal-border-radius @modal-border-radius 0 0;\n }\n\n &-body {\n padding: @modal-body-padding;\n font-size: @font-size-base;\n line-height: @line-height-base;\n word-wrap: break-word;\n }\n\n &-footer {\n padding: @modal-footer-padding-vertical @modal-footer-padding-horizontal;\n text-align: right;\n background: @modal-footer-bg;\n border-top: @modal-footer-border-width @modal-footer-border-style\n @modal-footer-border-color-split;\n border-radius: 0 0 @modal-border-radius @modal-border-radius;\n\n .@{ant-prefix}-btn + .@{ant-prefix}-btn:not(.@{ant-prefix}-dropdown-trigger) {\n margin-bottom: 0;\n margin-left: 8px;\n }\n }\n\n &-open {\n overflow: hidden;\n }\n}\n\n.@{dialog-prefix-cls}-centered {\n text-align: center;\n\n &::before {\n display: inline-block;\n width: 0;\n height: 100%;\n vertical-align: middle;\n content: '';\n }\n .@{dialog-prefix-cls} {\n top: 0;\n display: inline-block;\n padding-bottom: 0;\n text-align: left;\n vertical-align: middle;\n }\n}\n\n@media (max-width: @screen-sm-max) {\n .@{dialog-prefix-cls} {\n max-width: calc(100vw - 16px);\n margin: 8px auto;\n }\n .@{dialog-prefix-cls}-centered {\n .@{dialog-prefix-cls} {\n flex: 1;\n }\n }\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-modal {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n pointer-events: none;\n position: relative;\n top: 100px;\n width: auto;\n max-width: calc(100vw - 32px);\n margin: 0 auto;\n padding-bottom: 24px;\n}\n.ant-modal.ant-zoom-enter,\n.ant-modal.ant-zoom-appear {\n transform: none;\n opacity: 0;\n animation-duration: 0.3s;\n user-select: none;\n}\n.ant-modal-mask {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.45);\n}\n.ant-modal-mask-hidden {\n display: none;\n}\n.ant-modal-wrap {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: auto;\n outline: 0;\n}\n.ant-modal-wrap {\n z-index: 1000;\n}\n.ant-modal-title {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n word-wrap: break-word;\n}\n.ant-modal-content {\n position: relative;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n pointer-events: auto;\n}\n.ant-modal-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 10;\n padding: 0;\n color: rgba(0, 0, 0, 0.45);\n font-weight: 700;\n line-height: 1;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n}\n.ant-modal-close-x {\n display: block;\n width: 54px;\n height: 54px;\n font-size: 16px;\n font-style: normal;\n line-height: 54px;\n text-align: center;\n text-transform: none;\n text-rendering: auto;\n}\n.ant-modal-close:focus,\n.ant-modal-close:hover {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n}\n.ant-modal-header {\n padding: 16px 24px;\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n}\n.ant-modal-body {\n padding: 24px;\n font-size: 14px;\n line-height: 1.5715;\n word-wrap: break-word;\n}\n.ant-modal-footer {\n padding: 10px 16px;\n text-align: right;\n background: transparent;\n border-top: 1px solid #f0f0f0;\n border-radius: 0 0 2px 2px;\n}\n.ant-modal-footer .ant-btn + .ant-btn:not(.ant-dropdown-trigger) {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-open {\n overflow: hidden;\n}\n.ant-modal-centered {\n text-align: center;\n}\n.ant-modal-centered::before {\n display: inline-block;\n width: 0;\n height: 100%;\n vertical-align: middle;\n content: '';\n}\n.ant-modal-centered .ant-modal {\n top: 0;\n display: inline-block;\n padding-bottom: 0;\n text-align: left;\n vertical-align: middle;\n}\n@media (max-width: 767px) {\n .ant-modal {\n max-width: calc(100vw - 16px);\n margin: 8px auto;\n }\n .ant-modal-centered .ant-modal {\n flex: 1;\n }\n}\n.ant-modal-confirm .ant-modal-header {\n display: none;\n}\n.ant-modal-confirm .ant-modal-body {\n padding: 32px 32px 24px;\n}\n.ant-modal-confirm-body-wrapper::before {\n display: table;\n content: '';\n}\n.ant-modal-confirm-body-wrapper::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-modal-confirm-body .ant-modal-confirm-title {\n display: block;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 1.4;\n}\n.ant-modal-confirm-body .ant-modal-confirm-content {\n margin-top: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-modal-confirm-body > .anticon {\n float: left;\n margin-right: 16px;\n font-size: 22px;\n}\n.ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-left: 38px;\n}\n.ant-modal-confirm .ant-modal-confirm-btns {\n margin-top: 24px;\n text-align: right;\n}\n.ant-modal-confirm .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-confirm-error .ant-modal-confirm-body > .anticon {\n color: #ff4d4f;\n}\n.ant-modal-confirm-warning .ant-modal-confirm-body > .anticon,\n.ant-modal-confirm-confirm .ant-modal-confirm-body > .anticon {\n color: #faad14;\n}\n.ant-modal-confirm-info .ant-modal-confirm-body > .anticon {\n color: #1890ff;\n}\n.ant-modal-confirm-success .ant-modal-confirm-body > .anticon {\n color: #52c41a;\n}\n.ant-modal-confirm .ant-zoom-leave .ant-modal-confirm-btns {\n pointer-events: none;\n}\n.ant-modal-wrap-rtl {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-close {\n right: initial;\n left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-footer {\n text-align: left;\n}\n.ant-modal-wrap-rtl .ant-modal-footer .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-right: 38px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns {\n text-align: left;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl.ant-modal-centered .ant-modal {\n text-align: right;\n}\n","@import '../../style/mixins/index';\n\n@confirm-prefix-cls: ~'@{ant-prefix}-modal-confirm';\n\n.@{confirm-prefix-cls} {\n .@{ant-prefix}-modal-header {\n display: none;\n }\n\n .@{ant-prefix}-modal-body {\n padding: @modal-confirm-body-padding;\n }\n\n &-body-wrapper {\n .clearfix();\n }\n\n &-body {\n .@{confirm-prefix-cls}-title {\n display: block;\n // create BFC to avoid\n // https://user-images.githubusercontent.com/507615/37702510-ba844e06-2d2d-11e8-9b67-8e19be57f445.png\n overflow: hidden;\n color: @heading-color;\n font-weight: 500;\n font-size: @modal-confirm-title-font-size;\n line-height: 1.4;\n }\n\n .@{confirm-prefix-cls}-content {\n margin-top: 8px;\n color: @text-color;\n font-size: @font-size-base;\n }\n\n > .@{iconfont-css-prefix} {\n float: left;\n margin-right: 16px;\n font-size: 22px;\n\n // `content` after `icon` should set marginLeft\n + .@{confirm-prefix-cls}-title + .@{confirm-prefix-cls}-content {\n margin-left: 38px;\n }\n }\n }\n\n .@{confirm-prefix-cls}-btns {\n margin-top: 24px;\n text-align: right;\n\n .@{ant-prefix}-btn + .@{ant-prefix}-btn {\n margin-bottom: 0;\n margin-left: 8px;\n }\n }\n\n &-error &-body > .@{iconfont-css-prefix} {\n color: @error-color;\n }\n\n &-warning &-body > .@{iconfont-css-prefix},\n &-confirm &-body > .@{iconfont-css-prefix} {\n color: @warning-color;\n }\n\n &-info &-body > .@{iconfont-css-prefix} {\n color: @info-color;\n }\n\n &-success &-body > .@{iconfont-css-prefix} {\n color: @success-color;\n }\n\n // https://github.com/ant-design/ant-design/issues/37329\n .@{ant-prefix}-zoom-leave .@{confirm-prefix-cls}-btns {\n pointer-events: none;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@dialog-prefix-cls: ~'@{ant-prefix}-modal';\n@confirm-prefix-cls: ~'@{ant-prefix}-modal-confirm';\n@dialog-wrap-rtl-cls: ~'@{dialog-prefix-cls}-wrap-rtl';\n\n.@{dialog-prefix-cls} {\n &-wrap {\n &-rtl {\n direction: rtl;\n }\n }\n\n &-close {\n .@{dialog-wrap-rtl-cls} & {\n right: initial;\n left: 0;\n }\n }\n\n &-footer {\n .@{dialog-wrap-rtl-cls} & {\n text-align: left;\n }\n .@{ant-prefix}-btn + .@{ant-prefix}-btn {\n .@{dialog-wrap-rtl-cls} & {\n margin-right: 8px;\n margin-left: 0;\n }\n }\n }\n\n &-confirm {\n &-body {\n .@{dialog-wrap-rtl-cls} & {\n direction: rtl;\n }\n > .@{iconfont-css-prefix} {\n .@{dialog-wrap-rtl-cls} & {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n }\n + .@{confirm-prefix-cls}-title + .@{confirm-prefix-cls}-content {\n .@{dialog-wrap-rtl-cls} & {\n margin-right: 38px;\n margin-left: 0;\n }\n }\n }\n }\n\n &-btns {\n .@{dialog-wrap-rtl-cls} & {\n text-align: left;\n }\n .@{ant-prefix}-btn + .@{ant-prefix}-btn {\n .@{dialog-wrap-rtl-cls} & {\n margin-right: 8px;\n margin-left: 0;\n }\n }\n }\n }\n}\n\n.@{dialog-prefix-cls}-centered {\n .@{dialog-prefix-cls} {\n .@{dialog-wrap-rtl-cls}& {\n text-align: right;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n.popover-customize-bg(@notification-prefix-cls, @popover-background);\n\n@notification-prefix-cls: ~'@{ant-prefix}-notification';\n@notification-width: 384px;\n@notification-padding: @notification-padding-vertical @notification-padding-horizontal;\n@notification-margin-bottom: 16px;\n@notification-margin-edge: 24px;\n\n.@{notification-prefix-cls} {\n .reset-component();\n\n position: fixed;\n z-index: @zindex-notification;\n margin-right: @notification-margin-edge;\n\n &-close-icon {\n font-size: @font-size-base;\n cursor: pointer;\n }\n\n &-hook-holder {\n position: relative;\n }\n\n &-notice {\n position: relative;\n width: @notification-width;\n max-width: ~'calc(100vw - @{notification-margin-edge} * 2)';\n margin-bottom: @notification-margin-bottom;\n margin-left: auto;\n padding: @notification-padding;\n overflow: hidden;\n line-height: @line-height-base;\n word-wrap: break-word;\n background: @notification-bg;\n border-radius: @border-radius-base;\n box-shadow: @shadow-2;\n\n .@{notification-prefix-cls}-top &,\n .@{notification-prefix-cls}-bottom & {\n margin-right: auto;\n margin-left: auto;\n }\n\n .@{notification-prefix-cls}-topLeft &,\n .@{notification-prefix-cls}-bottomLeft & {\n margin-right: auto;\n margin-left: 0;\n }\n\n &-message {\n margin-bottom: 8px;\n color: @heading-color;\n font-size: @font-size-lg;\n line-height: 24px;\n\n // https://github.com/ant-design/ant-design/issues/5846#issuecomment-296244140\n &-single-line-auto-margin {\n display: block;\n width: ~'calc(@{notification-width} - @{notification-padding-horizontal} * 2 - 24px - 48px - 100%)';\n max-width: 4px;\n background-color: transparent;\n pointer-events: none;\n\n &::before {\n display: block;\n content: '';\n }\n }\n }\n\n &-description {\n font-size: @font-size-base;\n }\n\n &-closable &-message {\n padding-right: 24px;\n }\n\n &-with-icon &-message {\n margin-bottom: 4px;\n margin-left: 48px;\n font-size: @font-size-lg;\n }\n\n &-with-icon &-description {\n margin-left: 48px;\n font-size: @font-size-base;\n }\n\n // Icon & color style in different selector level\n // https://github.com/ant-design/ant-design/issues/16503\n // https://github.com/ant-design/ant-design/issues/15512\n &-icon {\n position: absolute;\n margin-left: 4px;\n font-size: 24px;\n line-height: 24px;\n }\n\n .@{iconfont-css-prefix}&-icon {\n &-success {\n color: @success-color;\n }\n\n &-info {\n color: @info-color;\n }\n\n &-warning {\n color: @warning-color;\n }\n\n &-error {\n color: @error-color;\n }\n }\n\n &-close {\n position: absolute;\n top: 16px;\n right: 22px;\n color: @text-color-secondary;\n outline: none;\n\n &:hover {\n & when (@theme = dark) {\n color: fade(@white, 85%);\n }\n & when not (@theme = dark) {\n color: shade(@text-color-secondary, 40%);\n }\n }\n }\n\n &-btn {\n float: right;\n margin-top: 16px;\n }\n }\n\n .notification-fade-effect {\n animation-duration: 0.24s;\n animation-timing-function: @ease-in-out;\n animation-fill-mode: both;\n }\n\n &-fade-enter,\n &-fade-appear {\n .notification-fade-effect();\n\n opacity: 0;\n animation-play-state: paused;\n }\n\n &-fade-leave {\n .notification-fade-effect();\n\n animation-duration: 0.2s;\n animation-play-state: paused;\n }\n\n &-fade-enter&-fade-enter-active,\n &-fade-appear&-fade-appear-active {\n animation-name: NotificationFadeIn;\n animation-play-state: running;\n }\n\n &-fade-leave&-fade-leave-active {\n animation-name: NotificationFadeOut;\n animation-play-state: running;\n }\n}\n\n@keyframes NotificationFadeIn {\n 0% {\n left: @notification-width;\n opacity: 0;\n }\n\n 100% {\n left: 0;\n opacity: 1;\n }\n}\n\n@keyframes NotificationFadeOut {\n 0% {\n max-height: 150px;\n margin-bottom: @notification-margin-bottom;\n opacity: 1;\n }\n\n 100% {\n max-height: 0;\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n opacity: 0;\n }\n}\n\n@import './rtl';\n@import './placement';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@notification-prefix-cls: ~'@{ant-prefix}-notification';\n\n.@{notification-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-notice {\n &-closable &-message {\n .@{notification-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 24px;\n }\n }\n\n &-with-icon &-message {\n .@{notification-prefix-cls}-rtl & {\n margin-right: 48px;\n margin-left: 0;\n }\n }\n\n &-with-icon &-description {\n .@{notification-prefix-cls}-rtl & {\n margin-right: 48px;\n margin-left: 0;\n }\n }\n\n &-icon {\n .@{notification-prefix-cls}-rtl & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n\n &-close {\n .@{notification-prefix-cls}-rtl & {\n right: auto;\n left: 22px;\n }\n }\n\n &-btn {\n .@{notification-prefix-cls}-rtl & {\n float: left;\n }\n }\n }\n}\n",".@{notification-prefix-cls} {\n &-top,\n &-bottom {\n margin-right: 0;\n margin-left: 0;\n }\n\n &-top {\n .@{notification-prefix-cls}-fade-enter.@{notification-prefix-cls}-fade-enter-active,\n .@{notification-prefix-cls}-fade-appear.@{notification-prefix-cls}-fade-appear-active {\n animation-name: NotificationTopFadeIn;\n }\n }\n\n &-bottom {\n .@{notification-prefix-cls}-fade-enter.@{notification-prefix-cls}-fade-enter-active,\n .@{notification-prefix-cls}-fade-appear.@{notification-prefix-cls}-fade-appear-active {\n animation-name: NotificationBottomFadeIn;\n }\n }\n\n &-topLeft,\n &-bottomLeft {\n margin-right: 0;\n margin-left: @notification-margin-edge;\n\n .@{notification-prefix-cls}-fade-enter.@{notification-prefix-cls}-fade-enter-active,\n .@{notification-prefix-cls}-fade-appear.@{notification-prefix-cls}-fade-appear-active {\n animation-name: NotificationLeftFadeIn;\n }\n }\n}\n\n@keyframes NotificationTopFadeIn {\n 0% {\n margin-top: -100%;\n opacity: 0;\n }\n\n 100% {\n margin-top: 0;\n opacity: 1;\n }\n}\n\n@keyframes NotificationBottomFadeIn {\n 0% {\n margin-bottom: -100%;\n opacity: 0;\n }\n\n 100% {\n margin-bottom: 0;\n opacity: 1;\n }\n}\n\n@keyframes NotificationLeftFadeIn {\n 0% {\n right: @notification-width;\n opacity: 0;\n }\n\n 100% {\n right: 0;\n opacity: 1;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@pageheader-prefix-cls: ~'@{ant-prefix}-page-header';\n\n.@{pageheader-prefix-cls} {\n .reset-component();\n position: relative;\n padding: @page-header-padding-vertical @page-header-padding;\n background-color: @component-background;\n\n &-ghost {\n background-color: @page-header-ghost-bg;\n }\n\n &.has-breadcrumb {\n padding-top: @page-header-padding-breadcrumb;\n }\n\n &.has-footer {\n padding-bottom: 0;\n }\n\n &-back {\n margin-right: @margin-md;\n font-size: 16px;\n line-height: 1;\n\n &-button {\n .operation-unit();\n color: @page-header-back-color;\n }\n }\n\n .@{ant-prefix}-divider-vertical {\n height: 14px;\n margin: 0 @margin-sm;\n vertical-align: middle;\n }\n\n .@{ant-prefix}-breadcrumb + &-heading {\n margin-top: @margin-xs;\n }\n\n .text-overflow-ellipsis() {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-heading {\n display: flex;\n justify-content: space-between;\n\n &-left {\n display: flex;\n align-items: center;\n margin: (@margin-xs / 2) 0;\n overflow: hidden;\n }\n\n &-title {\n margin-right: @margin-sm;\n margin-bottom: 0;\n color: @heading-color;\n font-weight: 600;\n font-size: @page-header-heading-title;\n line-height: @height-base;\n .text-overflow-ellipsis();\n }\n\n .@{ant-prefix}-avatar {\n margin-right: @margin-sm;\n }\n\n &-sub-title {\n margin-right: @margin-sm;\n color: @text-color-secondary;\n font-size: @page-header-heading-sub-title;\n line-height: @line-height-base;\n .text-overflow-ellipsis();\n }\n\n &-extra {\n margin: (@margin-xs / 2) 0;\n white-space: nowrap;\n\n > * {\n white-space: unset;\n }\n }\n }\n\n &-content {\n padding-top: @page-header-content-padding-vertical;\n }\n\n &-footer {\n margin-top: @margin-md;\n .@{ant-prefix}-tabs {\n > .@{ant-prefix}-tabs-nav {\n margin: 0;\n\n &::before {\n border: none;\n }\n }\n\n .@{ant-prefix}-tabs-tab {\n padding-top: @padding-xs;\n padding-bottom: @padding-xs;\n font-size: @page-header-tabs-tab-font-size;\n }\n }\n }\n\n &-compact &-heading {\n flex-wrap: wrap;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".operation-unit() {\n color: @link-color;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n\n &:focus-visible,\n &:hover {\n color: @link-hover-color;\n }\n\n &:active {\n color: @link-active-color;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@pageheader-prefix-cls: ~'@{ant-prefix}-page-header';\n\n.@{pageheader-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-back {\n .@{pageheader-prefix-cls}-rtl & {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n }\n }\n\n &-heading {\n &-title {\n .@{pageheader-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: @margin-sm;\n }\n }\n\n .@{ant-prefix}-avatar {\n .@{pageheader-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: @margin-sm;\n }\n }\n\n &-sub-title {\n .@{pageheader-prefix-cls}-rtl & {\n float: right;\n margin-right: 0;\n margin-left: 12px;\n }\n }\n\n &-tags {\n .@{pageheader-prefix-cls}-rtl & {\n float: right;\n }\n }\n\n &-extra {\n .@{pageheader-prefix-cls}-rtl & {\n float: left;\n }\n\n > * {\n .@{pageheader-prefix-cls}-rtl & {\n margin-right: @margin-sm;\n margin-left: 0;\n }\n }\n\n > *:first-child {\n .@{pageheader-prefix-cls}-rtl & {\n margin-right: 0;\n }\n }\n }\n }\n\n &-footer {\n .@{ant-prefix}-tabs-bar {\n .@{ant-prefix}-tabs-nav {\n .@{pageheader-prefix-cls}-rtl & {\n float: right;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@popconfirm-prefix-cls: ~'@{ant-prefix}-popconfirm';\n\n.@{popconfirm-prefix-cls} {\n z-index: @zindex-popoconfirm;\n}\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@progress-prefix-cls: ~'@{ant-prefix}-progress';\n\n.@{progress-prefix-cls} {\n .reset-component();\n\n display: inline-block;\n\n &-line {\n position: relative;\n width: 100%;\n font-size: @font-size-base;\n }\n\n &-steps {\n display: inline-block;\n\n &-outer {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n\n &-item {\n flex-shrink: 0;\n min-width: 2px;\n margin-right: 2px;\n background: @progress-steps-item-bg;\n transition: all 0.3s;\n\n &-active {\n background: @progress-default-color;\n }\n }\n }\n\n &-small&-line,\n &-small&-line &-text .@{iconfont-css-prefix} {\n font-size: @font-size-sm;\n }\n\n &-outer {\n display: inline-block;\n width: 100%;\n margin-right: 0;\n padding-right: 0;\n .@{progress-prefix-cls}-show-info & {\n margin-right: ~'calc(-2em - 8px)';\n padding-right: ~'calc(2em + 8px)';\n }\n }\n\n &-inner {\n position: relative;\n display: inline-block;\n width: 100%;\n overflow: hidden;\n vertical-align: middle;\n background-color: @progress-remaining-color;\n border-radius: @progress-radius;\n }\n\n &-circle-trail {\n stroke: @progress-remaining-color;\n }\n\n &-circle-path {\n animation: ~'@{ant-prefix}-progress-appear' 0.3s;\n }\n\n &-inner:not(.@{ant-prefix}-progress-circle-gradient) {\n .@{ant-prefix}-progress-circle-path {\n stroke: @progress-default-color;\n }\n }\n\n &-success-bg,\n &-bg {\n position: relative;\n background-color: @progress-default-color;\n border-radius: @progress-radius;\n transition: all 0.4s @ease-out-circ 0s;\n }\n\n &-success-bg {\n position: absolute;\n top: 0;\n left: 0;\n background-color: @success-color;\n }\n\n &-text {\n display: inline-block;\n width: 2em;\n margin-left: 8px;\n color: @progress-info-text-color;\n font-size: @progress-text-font-size;\n line-height: 1;\n white-space: nowrap;\n text-align: left;\n vertical-align: middle;\n word-break: normal;\n .@{iconfont-css-prefix} {\n font-size: @font-size-base;\n }\n }\n\n &-status-active {\n .@{progress-prefix-cls}-bg::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: @component-background;\n border-radius: 10px;\n opacity: 0;\n animation: ~'@{ant-prefix}-progress-active' 2.4s @ease-out-quint infinite;\n content: '';\n }\n }\n\n &-status-exception {\n .@{progress-prefix-cls}-bg {\n background-color: @error-color;\n }\n .@{progress-prefix-cls}-text {\n color: @error-color;\n }\n }\n\n &-status-exception &-inner:not(.@{progress-prefix-cls}-circle-gradient) {\n .@{progress-prefix-cls}-circle-path {\n stroke: @error-color;\n }\n }\n\n &-status-success {\n .@{progress-prefix-cls}-bg {\n background-color: @success-color;\n }\n .@{progress-prefix-cls}-text {\n color: @success-color;\n }\n }\n\n &-status-success &-inner:not(.@{progress-prefix-cls}-circle-gradient) {\n .@{progress-prefix-cls}-circle-path {\n stroke: @success-color;\n }\n }\n\n &-circle &-inner {\n position: relative;\n line-height: 1;\n background-color: transparent;\n }\n\n &-circle &-text {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n margin: 0;\n padding: 0;\n color: @progress-text-color;\n font-size: @progress-circle-text-font-size;\n line-height: 1;\n white-space: normal;\n text-align: center;\n transform: translate(-50%, -50%);\n\n .@{iconfont-css-prefix} {\n font-size: (14 / 12em);\n }\n }\n\n &-circle&-status-exception {\n .@{progress-prefix-cls}-text {\n color: @error-color;\n }\n }\n\n &-circle&-status-success {\n .@{progress-prefix-cls}-text {\n color: @success-color;\n }\n }\n}\n\n@keyframes ~\"@{ant-prefix}-progress-active\" {\n 0% {\n transform: translateX(-100%) scaleX(0);\n opacity: 0.1;\n }\n\n 20% {\n transform: translateX(-100%) scaleX(0);\n opacity: 0.5;\n }\n\n 100% {\n transform: translateX(0) scaleX(1);\n opacity: 0;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@progress-prefix-cls: ~'@{ant-prefix}-progress';\n\n.@{progress-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-outer {\n .@{progress-prefix-cls}-show-info & {\n .@{progress-prefix-cls}-rtl& {\n margin-right: 0;\n margin-left: ~'calc(-2em - 8px)';\n padding-right: 0;\n padding-left: ~'calc(2em + 8px)';\n }\n }\n }\n\n &-success-bg {\n .@{progress-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n\n &-line &-text,\n &-steps &-text {\n .@{progress-prefix-cls}-rtl& {\n margin-right: 8px;\n margin-left: 0;\n text-align: right;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@rate-prefix-cls: ~'@{ant-prefix}-rate';\n\n.@{rate-prefix-cls} {\n .reset-component();\n\n display: inline-block;\n margin: 0;\n padding: 0;\n color: @rate-star-color;\n font-size: @rate-star-size;\n line-height: unset;\n list-style: none;\n outline: none;\n\n &-disabled &-star {\n cursor: default;\n\n > div:hover {\n transform: scale(1);\n }\n }\n\n &-star {\n position: relative;\n display: inline-block;\n color: inherit;\n cursor: pointer;\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n\n > div {\n transition: all 0.3s, outline 0s;\n\n &:hover {\n transform: @rate-star-hover-scale;\n }\n\n &:focus {\n outline: 0;\n }\n\n &:focus-visible {\n outline: 1px dashed @rate-star-color;\n transform: @rate-star-hover-scale;\n }\n }\n\n &-first,\n &-second {\n color: @rate-star-bg;\n transition: all 0.3s;\n user-select: none;\n .@{iconfont-css-prefix} {\n vertical-align: middle;\n }\n }\n\n &-first {\n position: absolute;\n top: 0;\n left: 0;\n width: 50%;\n height: 100%;\n overflow: hidden;\n opacity: 0;\n }\n\n &-half &-first,\n &-half &-second {\n opacity: 1;\n }\n\n &-half &-first,\n &-full &-second {\n color: inherit;\n }\n }\n\n &-text {\n display: inline-block;\n margin: 0 8px;\n font-size: @font-size-base;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{rate-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-star {\n &:not(:last-child) {\n .@{rate-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n\n &-first {\n .@{rate-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@result-prefix-cls: ~'@{ant-prefix}-result';\n\n.@{result-prefix-cls} {\n padding: 48px 32px;\n // status color\n &-success &-icon > .@{iconfont-css-prefix} {\n color: @success-color;\n }\n\n &-error &-icon > .@{iconfont-css-prefix} {\n color: @error-color;\n }\n\n &-info &-icon > .@{iconfont-css-prefix} {\n color: @info-color;\n }\n\n &-warning &-icon > .@{iconfont-css-prefix} {\n color: @warning-color;\n }\n\n // Exception Status image\n &-image {\n width: 250px;\n height: 295px;\n margin: auto;\n }\n\n &-icon {\n margin-bottom: 24px;\n text-align: center;\n\n > .@{iconfont-css-prefix} {\n font-size: @result-icon-font-size;\n }\n }\n\n &-title {\n color: @heading-color;\n font-size: @result-title-font-size;\n line-height: 1.8;\n text-align: center;\n }\n\n &-subtitle {\n color: @text-color-secondary;\n font-size: @result-subtitle-font-size;\n line-height: 1.6;\n text-align: center;\n }\n\n &-extra {\n margin: @result-extra-margin;\n text-align: center;\n\n > * {\n margin-right: 8px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n &-content {\n margin-top: 24px;\n padding: 24px 40px;\n background-color: @background-color-light;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@result-prefix-cls: ~'@{ant-prefix}-result';\n\n.@{result-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-extra {\n > * {\n .@{result-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n\n &:last-child {\n .@{result-prefix-cls}-rtl & {\n margin-left: 0;\n }\n }\n }\n }\n}\n","// mixins\n.segmented-disabled-item {\n &,\n &:hover,\n &:focus {\n color: @disabled-color;\n cursor: not-allowed;\n }\n}\n\n.segmented-item-selected {\n background-color: @segmented-selected-bg;\n border-radius: @border-radius-base;\n box-shadow: 0 2px 8px -2px fade(@black, 5%), 0 1px 4px -1px fade(@black, 7%),\n 0 0 1px 0 fade(@black, 8%);\n}\n\n.segmented-text-ellipsis {\n overflow: hidden;\n // handle text ellipsis\n white-space: nowrap;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './mixins.less';\n\n@segmented-prefix-cls: ~'@{ant-prefix}-segmented';\n\n@segmented-container-padding: 2px;\n\n.@{segmented-prefix-cls} {\n .reset-component();\n display: inline-block;\n padding: @segmented-container-padding;\n color: @segmented-label-color;\n background-color: @segmented-bg;\n border-radius: @border-radius-base;\n transition: all 0.3s @ease-in-out;\n\n &-group {\n position: relative;\n display: flex;\n align-items: stretch;\n justify-items: flex-start;\n width: 100%;\n }\n\n // block styles\n &&-block {\n display: flex;\n }\n\n &&-block &-item {\n flex: 1;\n min-width: 0;\n }\n\n // hover/focus styles\n &:not(&-disabled) {\n &:hover,\n &:focus {\n background-color: @segmented-hover-bg;\n }\n }\n\n // item styles\n &-item {\n position: relative;\n text-align: center;\n cursor: pointer;\n transition: color 0.3s @ease-in-out;\n\n &-selected {\n .segmented-item-selected();\n color: @segmented-label-hover-color;\n }\n\n &:hover,\n &:focus {\n color: @segmented-label-hover-color;\n }\n\n &-label {\n min-height: @input-height-base - @segmented-container-padding * 2;\n padding: 0 @input-padding-horizontal-base;\n line-height: @input-height-base - @segmented-container-padding * 2;\n .segmented-text-ellipsis();\n }\n\n // syntactic sugar to add `icon` for Segmented Item\n &-icon + * {\n margin-left: (@margin-sm / 2);\n }\n\n &-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n opacity: 0;\n pointer-events: none;\n }\n }\n\n // size styles\n &&-lg &-item-label {\n min-height: @input-height-lg - @segmented-container-padding * 2;\n padding: 0 @input-padding-horizontal-lg;\n font-size: @font-size-lg;\n line-height: @input-height-lg - @segmented-container-padding * 2;\n }\n\n &&-sm &-item-label {\n min-height: @input-height-sm - @segmented-container-padding * 2;\n padding: 0 @input-padding-horizontal-sm;\n line-height: @input-height-sm - @segmented-container-padding * 2;\n }\n\n // disabled styles\n &-item-disabled {\n .segmented-disabled-item();\n }\n\n // thumb styles\n &-thumb {\n .segmented-item-selected();\n\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 100%;\n padding: 4px 0;\n }\n\n // transition effect when `appear-active`\n &-thumb-motion-appear-active {\n transition: transform 0.3s @ease-in-out, width 0.3s @ease-in-out;\n will-change: transform, width;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@segmented-prefix-cls: ~'@{ant-prefix}-segmented';\n\n.@{segmented-prefix-cls} {\n &&-rtl {\n direction: rtl;\n }\n\n &&-rtl &-item-icon {\n margin-right: 0;\n margin-left: 6px;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@slider-prefix-cls: ~'@{ant-prefix}-slider';\n\n.@{slider-prefix-cls} {\n .reset-component();\n\n position: relative;\n height: 12px;\n margin: @slider-margin;\n padding: 4px 0;\n cursor: pointer;\n touch-action: none;\n\n .vertical();\n\n &-with-marks {\n margin-bottom: 28px;\n }\n\n &-rail {\n position: absolute;\n width: 100%;\n height: 4px;\n background-color: @slider-rail-background-color;\n border-radius: @border-radius-base;\n transition: background-color 0.3s;\n }\n\n &-track {\n position: absolute;\n height: 4px;\n background-color: @slider-track-background-color;\n border-radius: @border-radius-base;\n transition: background-color 0.3s;\n }\n\n &-handle {\n position: absolute;\n width: @slider-handle-size;\n height: @slider-handle-size;\n margin-top: @slider-handle-margin-top;\n background-color: @slider-handle-background-color;\n border: solid @slider-handle-border-width @slider-handle-color;\n border-radius: 50%;\n box-shadow: @slider-handle-shadow;\n cursor: pointer;\n transition: border-color 0.3s, box-shadow 0.6s,\n transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);\n\n // &-dragging&-dragging&-dragging {\n // border-color: @slider-handle-color-focus;\n // box-shadow: 0 0 0 5px @slider-handle-color-focus-shadow;\n // }\n &-dragging {\n z-index: 1;\n }\n\n &:focus {\n border-color: @slider-handle-color-focus;\n outline: none;\n box-shadow: 0 0 0 5px @slider-handle-color-focus-shadow;\n }\n\n &.@{ant-prefix}-tooltip-open {\n border-color: @slider-handle-color-tooltip-open;\n }\n\n &::after {\n position: absolute;\n top: -6px;\n right: -6px;\n bottom: -6px;\n left: -6px;\n content: '';\n }\n }\n\n &:hover {\n .@{slider-prefix-cls}-rail {\n background-color: @slider-rail-background-color-hover;\n }\n .@{slider-prefix-cls}-track {\n background-color: @slider-track-background-color-hover;\n }\n .@{slider-prefix-cls}-handle:not(.@{ant-prefix}-tooltip-open) {\n border-color: @slider-handle-color-hover;\n }\n }\n\n &-mark {\n position: absolute;\n top: 14px;\n left: 0;\n width: 100%;\n font-size: @font-size-base;\n }\n\n &-mark-text {\n position: absolute;\n display: inline-block;\n color: @text-color-secondary;\n text-align: center;\n word-break: keep-all;\n cursor: pointer;\n user-select: none;\n\n &-active {\n color: @text-color;\n }\n }\n\n &-step {\n position: absolute;\n width: 100%;\n height: 4px;\n background: transparent;\n pointer-events: none;\n }\n\n &-dot {\n position: absolute;\n top: -2px;\n width: 8px;\n height: 8px;\n background-color: @component-background;\n border: 2px solid @slider-dot-border-color;\n border-radius: 50%;\n cursor: pointer;\n\n &-active {\n border-color: @slider-dot-border-color-active;\n }\n }\n\n &-disabled {\n cursor: not-allowed;\n\n .@{slider-prefix-cls}-rail {\n background-color: @slider-rail-background-color !important;\n }\n\n .@{slider-prefix-cls}-track {\n background-color: @slider-disabled-color !important;\n }\n\n .@{slider-prefix-cls}-handle,\n .@{slider-prefix-cls}-dot {\n background-color: @component-background;\n border-color: @slider-disabled-color !important;\n box-shadow: none;\n cursor: not-allowed;\n }\n\n .@{slider-prefix-cls}-mark-text,\n .@{slider-prefix-cls}-dot {\n cursor: not-allowed !important;\n }\n }\n}\n\n.vertical() {\n &-vertical {\n width: 12px;\n height: 100%;\n margin: 6px 10px;\n padding: 0 4px;\n\n .@{slider-prefix-cls}-rail {\n width: 4px;\n height: 100%;\n }\n\n .@{slider-prefix-cls}-track {\n width: 4px;\n }\n\n .@{slider-prefix-cls}-handle {\n margin-top: -6px; // we chould consider border width as well: (10 + 2 ) / 2\n margin-left: @slider-handle-margin-left;\n }\n\n .@{slider-prefix-cls}-mark {\n top: 0;\n left: 12px;\n width: 18px;\n height: 100%;\n }\n\n .@{slider-prefix-cls}-mark-text {\n left: 4px;\n white-space: nowrap;\n }\n\n .@{slider-prefix-cls}-step {\n width: 4px;\n height: 100%;\n }\n\n .@{slider-prefix-cls}-dot {\n top: auto;\n margin-left: -2px;\n }\n }\n\n &-tooltip {\n // https://github.com/ant-design/ant-design/issues/20014\n .@{ant-prefix}-tooltip-inner {\n min-width: unset;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@slider-prefix-cls: ~'@{ant-prefix}-slider';\n\n.@{slider-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-mark {\n .@{slider-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n}\n\n.vertical() {\n &-vertical {\n .@{slider-prefix-cls}-handle {\n .@{slider-prefix-cls}-rtl& {\n margin-right: -5px;\n margin-left: 0;\n }\n }\n\n .@{slider-prefix-cls}-mark {\n .@{slider-prefix-cls}-rtl& {\n right: 12px;\n left: auto;\n }\n }\n\n .@{slider-prefix-cls}-mark-text {\n .@{slider-prefix-cls}-rtl& {\n right: 4px;\n left: auto;\n }\n }\n\n .@{slider-prefix-cls}-dot {\n .@{slider-prefix-cls}-rtl& {\n right: 2px;\n left: auto;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@statistic-prefix-cls: ~'@{ant-prefix}-statistic';\n\n.@{statistic-prefix-cls} {\n .reset-component();\n\n &-title {\n margin-bottom: @margin-xss;\n color: @text-color-secondary;\n font-size: @statistic-title-font-size;\n }\n\n &-skeleton {\n padding-top: @padding-md;\n }\n\n &-content {\n color: @heading-color;\n font-size: @statistic-content-font-size;\n font-family: @statistic-font-family;\n\n &-value {\n display: inline-block;\n direction: ltr;\n }\n\n &-prefix,\n &-suffix {\n display: inline-block;\n }\n\n &-prefix {\n margin-right: 4px;\n }\n\n &-suffix {\n margin-left: 4px;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{statistic-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-content {\n &-prefix {\n .@{statistic-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n\n &-suffix {\n .@{statistic-prefix-cls}-rtl & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@steps-prefix-cls: ~'@{ant-prefix}-steps';\n@process-icon-color: @primary-color;\n@process-title-color: @heading-color;\n@process-description-color: @text-color;\n@process-icon-text-color: @text-color-inverse;\n@wait-icon-color: @disabled-color;\n@wait-title-color: @text-color-secondary;\n@wait-description-color: @wait-title-color;\n@wait-tail-color: @process-tail-color;\n@finish-icon-color: @process-icon-color;\n@finish-title-color: @text-color;\n@finish-description-color: @text-color-secondary;\n@finish-tail-color: @primary-color;\n@error-icon-color: @error-color;\n@error-title-color: @error-color;\n@error-description-color: @error-color;\n@error-tail-color: @wait-tail-color;\n@steps-nav-active-color: @primary-color;\n\n.@{steps-prefix-cls} {\n .reset-component();\n\n display: flex;\n width: 100%;\n font-size: 0;\n text-align: initial;\n}\n\n.@{steps-prefix-cls}-item {\n position: relative;\n display: inline-block;\n flex: 1;\n overflow: hidden;\n vertical-align: top;\n\n &-container {\n outline: none;\n }\n\n &:last-child {\n flex: none;\n }\n\n &:last-child > &-container > &-tail,\n &:last-child > &-container > &-content > &-title::after {\n display: none;\n }\n\n &-icon,\n &-content {\n display: inline-block;\n vertical-align: top;\n }\n\n &-icon {\n width: @steps-icon-size;\n height: @steps-icon-size;\n margin: @steps-icon-margin;\n font-size: @steps-icon-font-size;\n font-family: @font-family;\n line-height: @steps-icon-size;\n text-align: center;\n border: @border-width-base @border-style-base @wait-icon-color;\n border-radius: @steps-icon-size;\n transition: background-color 0.3s, border-color 0.3s;\n\n .@{steps-prefix-cls}-icon {\n position: relative;\n top: @steps-icon-top;\n color: @primary-color;\n line-height: 1;\n }\n }\n\n &-tail {\n position: absolute;\n top: 12px;\n left: 0;\n width: 100%;\n padding: 0 10px;\n\n &::after {\n display: inline-block;\n width: 100%;\n height: 1px;\n background: @border-color-split;\n border-radius: 1px;\n transition: background 0.3s;\n content: '';\n }\n }\n\n &-title {\n position: relative;\n display: inline-block;\n padding-right: 16px;\n color: @text-color;\n font-size: @font-size-lg;\n line-height: @steps-title-line-height;\n\n &::after {\n position: absolute;\n top: (@steps-title-line-height / 2);\n left: 100%;\n display: block;\n width: 9999px;\n height: 1px;\n background: @wait-tail-color;\n content: '';\n }\n }\n\n &-subtitle {\n display: inline;\n margin-left: 8px;\n color: @text-color-secondary;\n font-weight: normal;\n font-size: @font-size-base;\n }\n\n &-description {\n color: @text-color-secondary;\n font-size: @font-size-base;\n }\n .step-item-status(wait);\n .step-item-status(process);\n\n &-process > &-container > &-icon {\n background: @process-icon-color;\n .@{steps-prefix-cls}-icon {\n color: @process-icon-text-color;\n }\n }\n\n &-process > &-container > &-title {\n font-weight: 500;\n }\n .step-item-status(finish);\n .step-item-status(error);\n\n &.@{steps-prefix-cls}-next-error .@{steps-prefix-cls}-item-title::after {\n background: @error-icon-color;\n }\n\n &-disabled {\n cursor: not-allowed;\n }\n}\n\n// ===================== Clickable =====================\n.@{steps-prefix-cls} .@{steps-prefix-cls}-item {\n &:not(.@{steps-prefix-cls}-item-active) {\n & > .@{steps-prefix-cls}-item-container[role='button'] {\n cursor: pointer;\n\n .@{steps-prefix-cls}-item {\n &-title,\n &-subtitle,\n &-description,\n &-icon .@{steps-prefix-cls}-icon {\n transition: color 0.3s;\n }\n }\n\n &:hover {\n .@{steps-prefix-cls}-item {\n &-title,\n &-subtitle,\n &-description {\n color: @primary-color;\n }\n }\n }\n }\n\n &:not(.@{steps-prefix-cls}-item-process) {\n & > .@{steps-prefix-cls}-item-container[role='button']:hover {\n .@{steps-prefix-cls}-item {\n &-icon {\n border-color: @primary-color;\n\n .@{steps-prefix-cls}-icon {\n color: @primary-color;\n }\n }\n }\n }\n }\n }\n}\n\n.@{steps-prefix-cls}-horizontal:not(.@{steps-prefix-cls}-label-vertical) {\n .@{steps-prefix-cls}-item {\n padding-left: 16px;\n white-space: nowrap;\n\n &:first-child {\n padding-left: 0;\n }\n &:last-child .@{steps-prefix-cls}-item-title {\n padding-right: 0;\n }\n\n &-tail {\n display: none;\n }\n\n &-description {\n max-width: @steps-description-max-width;\n white-space: normal;\n }\n }\n}\n\n.step-item-status(@status) {\n @icon-color: '@{status}-icon-color';\n @title-color: '@{status}-title-color';\n @description-color: '@{status}-description-color';\n @tail-color: '@{status}-tail-color';\n &-@{status} &-icon {\n background-color: @steps-background;\n border-color: @@icon-color;\n > .@{steps-prefix-cls}-icon {\n color: @@icon-color;\n .@{steps-prefix-cls}-icon-dot {\n background: @@icon-color;\n }\n }\n }\n &-@{status} > &-container > &-content > &-title {\n color: @@title-color;\n\n &::after {\n background-color: @@tail-color;\n }\n }\n &-@{status} > &-container > &-content > &-description {\n color: @@description-color;\n }\n &-@{status} > &-container > &-tail::after {\n background-color: @@tail-color;\n }\n}\n\n@import './custom-icon';\n@import './small';\n@import './vertical';\n@import './label-placement';\n@import './progress-dot';\n@import './nav';\n@import './rtl';\n@import './progress.less';\n\n@root-entry-name: default;",".@{steps-prefix-cls}-item-custom {\n > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-icon {\n height: auto;\n background: none;\n border: 0;\n > .@{steps-prefix-cls}-icon {\n top: @steps-icon-custom-top;\n left: 0.5px;\n width: @steps-icon-custom-size;\n height: @steps-icon-custom-size;\n font-size: @steps-icon-custom-font-size;\n line-height: @steps-icon-custom-size;\n }\n }\n &.@{steps-prefix-cls}-item-process {\n .@{steps-prefix-cls}-item-icon > .@{steps-prefix-cls}-icon {\n color: @process-icon-color;\n }\n }\n}\n\n// Only adjust horizontal customize icon width\n.@{steps-prefix-cls} {\n &:not(.@{steps-prefix-cls}-vertical) {\n .@{steps-prefix-cls}-item-custom {\n .@{steps-prefix-cls}-item-icon {\n width: auto;\n background: none;\n }\n }\n }\n}\n",".@{steps-prefix-cls}-small {\n &.@{steps-prefix-cls}-horizontal:not(.@{steps-prefix-cls}-label-vertical)\n .@{steps-prefix-cls}-item {\n padding-left: 12px;\n\n &:first-child {\n padding-left: 0;\n }\n }\n .@{steps-prefix-cls}-item-icon {\n width: @steps-small-icon-size;\n height: @steps-small-icon-size;\n margin: @steps-small-icon-margin;\n font-size: @font-size-sm;\n line-height: @steps-small-icon-size;\n text-align: center;\n border-radius: @steps-small-icon-size;\n }\n .@{steps-prefix-cls}-item-title {\n padding-right: 12px;\n font-size: @font-size-base;\n line-height: @steps-small-icon-size;\n\n &::after {\n top: (@steps-small-icon-size / 2);\n }\n }\n .@{steps-prefix-cls}-item-description {\n color: @text-color-secondary;\n font-size: @font-size-base;\n }\n .@{steps-prefix-cls}-item-tail {\n top: 8px;\n }\n .@{steps-prefix-cls}-item-custom .@{steps-prefix-cls}-item-icon {\n width: inherit;\n height: inherit;\n line-height: inherit;\n background: none;\n border: 0;\n border-radius: 0;\n > .@{steps-prefix-cls}-icon {\n font-size: @steps-small-icon-size;\n line-height: @steps-small-icon-size;\n transform: none;\n }\n }\n}\n",".@{steps-prefix-cls}-vertical {\n display: flex;\n flex-direction: column;\n\n > .@{steps-prefix-cls}-item {\n display: block;\n flex: 1 0 auto;\n padding-left: 0;\n overflow: visible;\n\n .@{steps-prefix-cls}-item-icon {\n float: left;\n margin-right: @steps-vertical-icon-width;\n }\n\n .@{steps-prefix-cls}-item-content {\n display: block;\n min-height: 48px;\n overflow: hidden;\n }\n\n .@{steps-prefix-cls}-item-title {\n line-height: @steps-icon-size;\n }\n\n .@{steps-prefix-cls}-item-description {\n padding-bottom: 12px;\n }\n }\n\n > .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n position: absolute;\n top: 0;\n left: @steps-vertical-tail-width - 1; // line width\n width: 1px;\n height: 100%;\n padding: @steps-icon-size + 6px 0 6px;\n\n &::after {\n width: 1px;\n height: 100%;\n }\n }\n\n > .@{steps-prefix-cls}-item:not(:last-child)\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n display: block;\n }\n\n > .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-content\n > .@{steps-prefix-cls}-item-title {\n &::after {\n display: none;\n }\n }\n\n &.@{steps-prefix-cls}-small .@{steps-prefix-cls}-item-container {\n .@{steps-prefix-cls}-item-tail {\n position: absolute;\n top: 0;\n left: @steps-vertical-tail-width-sm - 1; // line width\n padding: @steps-small-icon-size + 6px 0 6px;\n }\n .@{steps-prefix-cls}-item-title {\n line-height: @steps-small-icon-size;\n }\n }\n}\n",".@{steps-prefix-cls}-label-vertical {\n .@{steps-prefix-cls}-item {\n overflow: visible;\n\n &-tail {\n margin-left: 58px;\n padding: 3.5px 24px;\n }\n\n &-content {\n display: block;\n width: ((@steps-icon-size / 2) + 42px) * 2;\n margin-top: 8px;\n text-align: center;\n }\n\n &-icon {\n display: inline-block;\n margin-left: 42px;\n }\n\n &-title {\n padding-right: 0;\n padding-left: 0;\n\n &::after {\n display: none;\n }\n }\n\n &-subtitle {\n display: block;\n margin-bottom: 4px;\n margin-left: 0;\n line-height: @line-height-base;\n }\n }\n &.@{steps-prefix-cls}-small:not(.@{steps-prefix-cls}-dot) {\n .@{steps-prefix-cls}-item {\n &-icon {\n margin-left: 46px;\n }\n }\n }\n}\n",".@{steps-prefix-cls}-dot,\n.@{steps-prefix-cls}-dot.@{steps-prefix-cls}-small {\n .@{steps-prefix-cls}-item {\n &-title {\n line-height: @line-height-base;\n }\n\n &-tail {\n top: @steps-dot-top;\n width: 100%;\n margin: 0 0 0 (@steps-description-max-width / 2);\n padding: 0;\n\n &::after {\n width: ~'calc(100% - 20px)';\n height: 3px;\n margin-left: 12px;\n }\n }\n &:first-child .@{steps-prefix-cls}-icon-dot {\n left: 2px;\n }\n\n &-icon {\n width: @steps-dot-size;\n height: @steps-dot-size;\n margin-left: 67px;\n padding-right: 0;\n line-height: @steps-dot-size;\n background: transparent;\n border: 0;\n\n .@{steps-prefix-cls}-icon-dot {\n position: relative;\n float: left;\n width: 100%;\n height: 100%;\n border-radius: 100px;\n transition: all 0.3s;\n\n /* expand hover area */\n &::after {\n position: absolute;\n top: -12px;\n left: -26px;\n width: 60px;\n height: 32px;\n background: fade(@black, 0.1%);\n content: '';\n }\n }\n }\n\n &-content {\n width: @steps-description-max-width;\n }\n &-process .@{steps-prefix-cls}-item-icon {\n position: relative;\n top: -1px;\n width: @steps-current-dot-size;\n height: @steps-current-dot-size;\n line-height: @steps-current-dot-size;\n background: none;\n }\n &-process .@{steps-prefix-cls}-icon {\n &:first-child .@{steps-prefix-cls}-icon-dot {\n left: 0;\n }\n }\n }\n}\n\n.@{steps-prefix-cls}-vertical.@{steps-prefix-cls}-dot {\n .@{steps-prefix-cls}-item-icon {\n margin-top: 13px;\n margin-left: 0;\n background: none;\n }\n\n // https://github.com/ant-design/ant-design/issues/18354\n .@{steps-prefix-cls}-item > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n top: 6.5px;\n left: -9px;\n margin: 0;\n padding: 22px 0 4px;\n }\n\n &.@{steps-prefix-cls}-small {\n .@{steps-prefix-cls}-item-icon {\n margin-top: 10px;\n }\n\n .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n top: 3.5px;\n }\n }\n\n .@{steps-prefix-cls}-item:first-child .@{steps-prefix-cls}-icon-dot {\n left: 0;\n }\n .@{steps-prefix-cls}-item-content {\n width: inherit;\n }\n .@{steps-prefix-cls}-item-process\n .@{steps-prefix-cls}-item-container\n .@{steps-prefix-cls}-item-icon\n .@{steps-prefix-cls}-icon-dot {\n top: -1px;\n left: -1px;\n }\n}\n",".@{steps-prefix-cls}-navigation {\n padding-top: 12px;\n\n &.@{steps-prefix-cls}-small {\n .@{steps-prefix-cls}-item {\n &-container {\n margin-left: -12px;\n }\n }\n }\n\n .@{steps-prefix-cls}-item {\n overflow: visible;\n text-align: center;\n\n &-container {\n display: inline-block;\n height: 100%;\n margin-left: -16px;\n padding-bottom: 12px;\n text-align: left;\n transition: opacity 0.3s;\n\n .@{steps-prefix-cls}-item-content {\n max-width: @steps-nav-content-max-width;\n }\n\n .@{steps-prefix-cls}-item-title {\n max-width: 100%;\n padding-right: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &::after {\n display: none;\n }\n }\n }\n\n &:not(.@{steps-prefix-cls}-item-active) {\n .@{steps-prefix-cls}-item-container[role='button'] {\n cursor: pointer;\n\n &:hover {\n opacity: 0.85;\n }\n }\n }\n\n &:last-child {\n flex: 1;\n\n &::after {\n display: none;\n }\n }\n\n &::after {\n position: absolute;\n top: 50%;\n left: 100%;\n display: inline-block;\n width: 12px;\n height: 12px;\n margin-top: -14px;\n margin-left: -2px;\n border: 1px solid @steps-nav-arrow-color;\n border-bottom: none;\n border-left: none;\n transform: rotate(45deg);\n content: '';\n }\n\n &::before {\n position: absolute;\n bottom: 0;\n left: 50%;\n display: inline-block;\n width: 0;\n height: 2px;\n background-color: @steps-nav-active-color;\n transition: width 0.3s, left 0.3s;\n transition-timing-function: ease-out;\n content: '';\n }\n }\n\n .@{steps-prefix-cls}-item.@{steps-prefix-cls}-item-active::before {\n left: 0;\n width: 100%;\n }\n}\n\n.@{steps-prefix-cls}-navigation.@{steps-prefix-cls}-vertical {\n > .@{steps-prefix-cls}-item {\n margin-right: 0 !important;\n\n &::before {\n display: none;\n }\n &.@{steps-prefix-cls}-item-active::before {\n top: 0;\n right: 0;\n left: unset;\n display: block;\n width: 3px;\n height: calc(100% - 24px);\n }\n\n &::after {\n position: relative;\n top: -2px;\n left: 50%;\n display: block;\n width: 8px;\n height: 8px;\n margin-bottom: 8px;\n text-align: center;\n transform: rotate(135deg);\n }\n > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n visibility: hidden;\n }\n }\n}\n\n.@{steps-prefix-cls}-navigation.@{steps-prefix-cls}-horizontal {\n > .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n visibility: hidden;\n }\n}\n",".@{steps-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n\n.@{steps-prefix-cls}-item {\n &-icon {\n .@{steps-prefix-cls}.@{steps-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n\n &-tail {\n .@{steps-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n\n &-title {\n .@{steps-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 16px;\n }\n\n .@{steps-prefix-cls}-item-subtitle {\n .@{steps-prefix-cls}-rtl & {\n float: left;\n margin-right: 8px;\n margin-left: 0;\n }\n }\n\n &::after {\n .@{steps-prefix-cls}-rtl & {\n right: 100%;\n left: auto;\n }\n }\n }\n}\n\n.@{steps-prefix-cls}-horizontal:not(.@{steps-prefix-cls}-label-vertical) {\n .@{steps-prefix-cls}-item {\n .@{steps-prefix-cls}-rtl& {\n padding-right: 16px;\n padding-left: 0;\n }\n\n &:first-child {\n .@{steps-prefix-cls}-rtl& {\n padding-right: 0;\n }\n }\n\n &:last-child .@{steps-prefix-cls}-item-title {\n .@{steps-prefix-cls}-rtl& {\n padding-left: 0;\n }\n }\n }\n}\n\n// custom-icon\n.@{steps-prefix-cls}-item-custom {\n .@{steps-prefix-cls}-item-icon {\n > .@{steps-prefix-cls}-icon {\n .@{steps-prefix-cls}-rtl & {\n right: 0.5px;\n left: auto;\n }\n }\n }\n}\n\n// nav\n.@{steps-prefix-cls}-navigation {\n &.@{steps-prefix-cls}-small {\n .@{steps-prefix-cls}-item {\n &-container {\n .@{steps-prefix-cls}-rtl& {\n margin-right: -12px;\n margin-left: 0;\n }\n }\n }\n }\n\n .@{steps-prefix-cls}-item {\n &-container {\n .@{steps-prefix-cls}-rtl& {\n margin-right: -16px;\n margin-left: 0;\n text-align: right;\n }\n\n .@{steps-prefix-cls}-item-title {\n .@{steps-prefix-cls}-rtl& {\n padding-left: 0;\n }\n }\n }\n\n &::after {\n .@{steps-prefix-cls}-rtl& {\n right: 100%;\n left: auto;\n margin-right: -2px;\n margin-left: 0;\n transform: rotate(225deg);\n }\n }\n }\n}\n\n// small\n.@{steps-prefix-cls}-small {\n &.@{steps-prefix-cls}-horizontal:not(.@{steps-prefix-cls}-label-vertical)\n .@{steps-prefix-cls}-item {\n .@{steps-prefix-cls}-rtl& {\n padding-right: 12px;\n padding-left: 0;\n }\n\n &:first-child {\n .@{steps-prefix-cls}-rtl& {\n padding-right: 0;\n }\n }\n }\n\n .@{steps-prefix-cls}-item-title {\n .@{steps-prefix-cls}-rtl& {\n padding-right: 0;\n padding-left: 12px;\n }\n }\n}\n\n// vertical\n.@{steps-prefix-cls}-vertical {\n > .@{steps-prefix-cls}-item {\n .@{steps-prefix-cls}-item-icon {\n .@{steps-prefix-cls}-rtl& {\n float: right;\n margin-right: 0;\n margin-left: @steps-vertical-icon-width;\n }\n }\n }\n\n > .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n .@{steps-prefix-cls}-rtl& {\n right: @steps-vertical-tail-width;\n left: auto;\n }\n }\n\n &.@{steps-prefix-cls}-small .@{steps-prefix-cls}-item-container {\n .@{steps-prefix-cls}-item-tail {\n .@{steps-prefix-cls}-rtl& {\n right: @steps-vertical-tail-width-sm;\n left: auto;\n }\n }\n }\n}\n\n// label\n.@{steps-prefix-cls}-label-vertical {\n .@{steps-prefix-cls}-item {\n &-title {\n .@{steps-prefix-cls}-rtl& {\n padding-left: 0;\n }\n }\n }\n}\n\n// progress-dot\n.@{steps-prefix-cls}-dot,\n.@{steps-prefix-cls}-dot.@{steps-prefix-cls}-small {\n .@{steps-prefix-cls}-item {\n &-tail {\n .@{steps-prefix-cls}-rtl& {\n margin: 0 (@steps-description-max-width / 2) 0 0;\n }\n\n &::after {\n .@{steps-prefix-cls}-rtl& {\n margin-right: 12px;\n margin-left: 0;\n }\n }\n }\n\n &:first-child .@{steps-prefix-cls}-icon-dot {\n .@{steps-prefix-cls}-rtl& {\n right: 2px;\n left: auto;\n }\n }\n\n &-icon {\n .@{steps-prefix-cls}-rtl& {\n margin-right: 67px;\n margin-left: 0;\n }\n\n .@{steps-prefix-cls}-icon-dot {\n .@{steps-prefix-cls}-rtl& {\n float: right;\n }\n\n /* expand hover area */\n &::after {\n .@{steps-prefix-cls}-rtl& {\n right: -26px;\n left: auto;\n }\n }\n }\n }\n }\n}\n\n.@{steps-prefix-cls}-vertical.@{steps-prefix-cls}-dot {\n .@{steps-prefix-cls}-item-icon {\n .@{steps-prefix-cls}-rtl& {\n margin-right: 0;\n margin-left: 16px;\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/18354\n .@{steps-prefix-cls}-item > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n .@{steps-prefix-cls}-rtl& {\n right: -9px;\n left: auto;\n }\n }\n\n .@{steps-prefix-cls}-item:first-child .@{steps-prefix-cls}-icon-dot {\n .@{steps-prefix-cls}-rtl& {\n right: 0;\n left: auto;\n }\n }\n\n .@{steps-prefix-cls}-item-process .@{steps-prefix-cls}-icon-dot {\n .@{steps-prefix-cls}-rtl& {\n right: -2px;\n left: auto;\n }\n }\n}\n\n// RTL Steps with progress\n.@{steps-prefix-cls}-rtl.@{steps-prefix-cls}-with-progress {\n &.@{steps-prefix-cls}-vertical > .@{steps-prefix-cls}-item {\n padding-right: 4px;\n > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n right: @steps-vertical-tail-width + 3;\n }\n }\n\n &.@{steps-prefix-cls}-small.@{steps-prefix-cls}-vertical > .@{steps-prefix-cls}-item {\n > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n right: @steps-vertical-tail-width-sm + 3;\n }\n }\n\n &.@{steps-prefix-cls}-horizontal.@{steps-prefix-cls}-label-horizontal {\n .@{steps-prefix-cls}-item:first-child {\n padding-right: 4px;\n padding-left: 0;\n\n &.@{steps-prefix-cls}-item-active {\n padding-right: 4px;\n }\n }\n }\n}\n","@progress-prefix-cls: ~'@{ant-prefix}-progress';\n\n.@{steps-prefix-cls}-with-progress {\n .@{steps-prefix-cls}-item {\n padding-top: 4px;\n\n & > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n top: 4px;\n left: @steps-vertical-tail-width + 3;\n }\n }\n\n &,\n &.@{steps-prefix-cls}-small {\n &.@{steps-prefix-cls}-horizontal .@{steps-prefix-cls}-item:first-child {\n padding-bottom: 4px;\n padding-left: 4px;\n }\n }\n\n &.@{steps-prefix-cls}-small\n > .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n left: @steps-vertical-tail-width-sm + 3;\n }\n\n &.@{steps-prefix-cls}-vertical .@{steps-prefix-cls}-item {\n padding-left: 4px;\n }\n\n &.@{steps-prefix-cls}-label-vertical {\n .@{steps-prefix-cls}-item .@{steps-prefix-cls}-item-tail {\n top: 14px !important;\n }\n }\n\n .@{steps-prefix-cls}-item-icon {\n position: relative;\n\n .@{progress-prefix-cls} {\n position: absolute;\n top: -5px;\n right: -5px;\n bottom: -5px;\n left: -5px;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@switch-prefix-cls: ~'@{ant-prefix}-switch';\n@switch-duration: 0.2s;\n\n@switch-pin-size: @switch-height - 4px;\n@switch-sm-pin-size: @switch-sm-height - 4px;\n\n.@{switch-prefix-cls} {\n .reset-component();\n\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: @switch-min-width;\n height: @switch-height;\n line-height: @switch-height;\n vertical-align: middle;\n background-color: @disabled-color;\n border: 0;\n border-radius: 100px;\n cursor: pointer;\n transition: all @switch-duration;\n user-select: none;\n\n &:focus {\n outline: 0;\n box-shadow: 0 0 0 2px fade(@disabled-color, 10%);\n }\n\n &-checked:focus {\n box-shadow: 0 0 0 2px @primary-1;\n }\n\n &:focus:hover {\n box-shadow: none;\n }\n\n &-checked {\n background-color: @switch-color;\n }\n\n &-loading,\n &-disabled {\n cursor: not-allowed;\n opacity: @switch-disabled-opacity;\n\n * {\n box-shadow: none;\n cursor: not-allowed;\n }\n }\n\n // ========================= Inner ==========================\n &-inner {\n display: block;\n margin: 0 @switch-inner-margin-min 0 @switch-inner-margin-max;\n color: @text-color-inverse;\n font-size: @font-size-sm;\n transition: margin @switch-duration;\n }\n\n &-checked &-inner {\n margin: 0 @switch-inner-margin-max 0 @switch-inner-margin-min;\n }\n\n // ========================= Handle =========================\n &-handle {\n position: absolute;\n top: @switch-padding;\n left: @switch-padding;\n width: @switch-pin-size;\n height: @switch-pin-size;\n transition: all @switch-duration ease-in-out;\n\n &::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: @switch-bg;\n border-radius: (@switch-pin-size / 2);\n box-shadow: 0 2px 4px 0 @switch-shadow-color;\n transition: all @switch-duration ease-in-out;\n content: '';\n }\n }\n\n &-checked &-handle {\n left: calc(100% - @switch-pin-size - @switch-padding);\n }\n\n &:not(&-disabled):active {\n .@{switch-prefix-cls}-handle::before {\n right: -30%;\n left: 0;\n }\n\n &.@{switch-prefix-cls}-checked {\n .@{switch-prefix-cls}-handle::before {\n right: 0;\n left: -30%;\n }\n }\n }\n\n // ======================== Loading =========================\n &-loading-icon.@{iconfont-css-prefix} {\n position: relative;\n top: ((@switch-pin-size - @font-size-base) / 2);\n color: rgba(0, 0, 0, 0.65);\n vertical-align: top;\n }\n\n &-checked &-loading-icon {\n color: @switch-color;\n }\n\n // ========================== Size ==========================\n &-small {\n min-width: @switch-sm-min-width;\n height: @switch-sm-height;\n line-height: @switch-sm-height;\n\n .@{switch-prefix-cls}-inner {\n margin: 0 @switch-sm-inner-margin-min 0 @switch-sm-inner-margin-max;\n font-size: @font-size-sm;\n }\n\n .@{switch-prefix-cls}-handle {\n width: @switch-sm-pin-size;\n height: @switch-sm-pin-size;\n }\n\n .@{switch-prefix-cls}-loading-icon {\n top: ((@switch-sm-pin-size - 9px) / 2);\n font-size: 9px;\n }\n\n &.@{switch-prefix-cls}-checked {\n .@{switch-prefix-cls}-inner {\n margin: 0 @switch-sm-inner-margin-max 0 @switch-sm-inner-margin-min;\n }\n\n .@{switch-prefix-cls}-handle {\n left: calc(100% - @switch-sm-pin-size - @switch-padding);\n }\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@switch-prefix-cls: ~'@{ant-prefix}-switch';\n\n@switch-pin-size: @switch-height - 4px;\n@switch-sm-pin-size: @switch-sm-height - 4px;\n\n.@{switch-prefix-cls}-rtl {\n direction: rtl;\n\n .@{switch-prefix-cls}-inner {\n margin: 0 @switch-inner-margin-max 0 @switch-inner-margin-min;\n }\n\n .@{switch-prefix-cls}-handle {\n right: @switch-padding;\n left: auto;\n }\n\n &:not(&-disabled):active {\n .@{switch-prefix-cls}-handle::before {\n right: 0;\n left: -30%;\n }\n\n &.@{switch-prefix-cls}-checked {\n .@{switch-prefix-cls}-handle::before {\n right: -30%;\n left: 0;\n }\n }\n }\n\n &.@{switch-prefix-cls}-checked {\n .@{switch-prefix-cls}-inner {\n margin: 0 @switch-inner-margin-min 0 @switch-inner-margin-max;\n }\n\n .@{switch-prefix-cls}-handle {\n right: calc(100% - @switch-pin-size - @switch-padding);\n }\n }\n\n &.@{switch-prefix-cls}-small {\n &.@{switch-prefix-cls}-checked {\n .@{switch-prefix-cls}-handle {\n right: calc(100% - @switch-sm-pin-size - @switch-padding);\n }\n }\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@table-prefix-cls: ~'@{ant-prefix}-table';\n\n.table-size(@size, @padding-vertical, @padding-horizontal, @font-size) {\n .@{table-prefix-cls}.@{table-prefix-cls}-@{size} {\n font-size: @font-size;\n\n .@{table-prefix-cls}-title,\n .@{table-prefix-cls}-footer,\n .@{table-prefix-cls}-thead > tr > th,\n .@{table-prefix-cls}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td {\n padding: @padding-vertical @padding-horizontal;\n }\n\n .@{table-prefix-cls}-filter-trigger {\n margin-right: -(@padding-horizontal / 2);\n }\n\n .@{table-prefix-cls}-expanded-row-fixed {\n margin: -@padding-vertical -@padding-horizontal;\n }\n\n .@{table-prefix-cls}-tbody {\n // ========================= Nest Table ===========================\n .@{table-prefix-cls}-wrapper:only-child {\n .@{table-prefix-cls} {\n margin: -@padding-vertical -@padding-horizontal -@padding-vertical (@table-expand-column-width -\n @padding-horizontal);\n }\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/35167\n .@{table-prefix-cls}-selection-column {\n padding-inline-start: (@padding-horizontal / 4);\n }\n }\n}\n\n// ================================================================\n// = Middle =\n// ================================================================\n.table-size(~'middle', @table-padding-vertical-md, @table-padding-horizontal-md, @table-font-size-md);\n\n// ================================================================\n// = Small =\n// ================================================================\n.table-size(~'small', @table-padding-vertical-sm, @table-padding-horizontal-sm, @table-font-size-sm);\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './size';\n@import './bordered';\n\n@table-prefix-cls: ~'@{ant-prefix}-table';\n@tree-prefix-cls: ~'@{ant-prefix}-tree';\n@dropdown-prefix-cls: ~'@{ant-prefix}-dropdown';\n@descriptions-prefix-cls: ~'@{ant-prefix}-descriptions';\n@table-header-icon-color: #bfbfbf;\n@table-header-icon-color-hover: darken(@table-header-icon-color, 10%);\n@table-sticky-zindex: calc(@zindex-table-fixed + 1);\n@table-sticky-scroll-bar-active-bg: fade(@table-sticky-scroll-bar-bg, 80%);\n@table-filter-dropdown-max-height: 264px;\n@table-expand-column-width: 48px;\n\n.@{table-prefix-cls}-wrapper {\n clear: both;\n max-width: 100%;\n .clearfix();\n}\n\n.@{table-prefix-cls} {\n .reset-component();\n position: relative;\n font-size: @table-font-size;\n background: @table-bg;\n border-radius: @table-border-radius-base;\n\n // https://github.com/ant-design/ant-design/issues/17611\n table {\n width: 100%;\n text-align: left;\n border-radius: @table-border-radius-base @table-border-radius-base 0 0;\n border-collapse: separate;\n border-spacing: 0;\n }\n\n // ============================= Cell =============================\n &-thead > tr > th,\n &-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td {\n position: relative;\n padding: @table-padding-vertical @table-padding-horizontal;\n overflow-wrap: break-word;\n }\n\n &-cell-ellipsis {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n word-break: keep-all;\n\n // Fixed first or last should special process\n &.@{table-prefix-cls}-cell-fix-left-last,\n &.@{table-prefix-cls}-cell-fix-right-first {\n overflow: visible;\n\n .@{table-prefix-cls}-cell-content {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n .@{table-prefix-cls}-column-title {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n }\n }\n\n // ============================ Title =============================\n &-title {\n padding: @table-padding-vertical @table-padding-horizontal;\n }\n\n // ============================ Footer ============================\n &-footer {\n padding: @table-padding-vertical @table-padding-horizontal;\n color: @table-footer-color;\n background: @table-footer-bg;\n }\n\n // ============================ Header ============================\n &-thead {\n > tr {\n > th {\n position: relative;\n color: @table-header-color;\n font-weight: 500;\n text-align: left;\n background: @table-header-bg;\n border-bottom: @border-width-base @border-style-base @table-border-color;\n transition: background 0.3s ease;\n\n &[colspan]:not([colspan='1']) {\n text-align: center;\n }\n\n &:not(:last-child):not(.@{table-prefix-cls}-selection-column):not(.@{table-prefix-cls}-row-expand-icon-cell):not([colspan])::before {\n position: absolute;\n top: 50%;\n right: 0;\n width: 1px;\n height: 1.6em;\n background-color: @table-header-cell-split-color;\n transform: translateY(-50%);\n transition: background-color 0.3s;\n content: '';\n }\n }\n }\n\n > tr:not(:last-child) > th {\n &[colspan] {\n border-bottom: 0;\n }\n }\n }\n\n // ============================= Body =============================\n &-tbody {\n > tr {\n > td {\n border-bottom: @border-width-base @border-style-base @table-border-color;\n transition: background 0.3s;\n\n // ========================= Nest Table ===========================\n > .@{table-prefix-cls}-wrapper:only-child,\n > .@{table-prefix-cls}-expanded-row-fixed > .@{table-prefix-cls}-wrapper:only-child {\n .@{table-prefix-cls} {\n margin: -@table-padding-vertical -@table-padding-horizontal -@table-padding-vertical (@table-expand-column-width -\n @table-padding-horizontal);\n\n &-tbody > tr:last-child > td {\n border-bottom: 0;\n\n &:first-child,\n &:last-child {\n border-radius: 0;\n }\n }\n }\n }\n }\n\n &.@{table-prefix-cls}-row:hover > td,\n > td.@{table-prefix-cls}-cell-row-hover {\n background: @table-row-hover-bg;\n }\n\n &.@{table-prefix-cls}-row-selected {\n > td {\n background: @table-selected-row-bg;\n border-color: rgba(0, 0, 0, 0.03);\n }\n\n &:hover {\n > td {\n background: @table-selected-row-hover-bg;\n }\n }\n }\n }\n }\n\n // =========================== Summary ============================\n &-summary {\n position: relative;\n z-index: @zindex-table-fixed;\n background: @table-bg;\n\n div& {\n box-shadow: 0 -@border-width-base 0 @table-border-color;\n }\n\n > tr {\n > th,\n > td {\n border-bottom: @border-width-base @border-style-base @table-border-color;\n }\n }\n }\n\n // ========================== Pagination ==========================\n &-pagination.@{ant-prefix}-pagination {\n margin: 16px 0;\n }\n\n &-pagination {\n display: flex;\n flex-wrap: wrap;\n row-gap: @padding-xs;\n\n > * {\n flex: none;\n }\n\n &-left {\n justify-content: flex-start;\n }\n\n &-center {\n justify-content: center;\n }\n\n &-right {\n justify-content: flex-end;\n }\n }\n\n // ================================================================\n // = Function =\n // ================================================================\n\n // ============================ Sorter ============================\n &-thead th.@{table-prefix-cls}-column-has-sorters {\n outline: none;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n background: @table-header-sort-active-bg;\n\n &::before {\n background-color: transparent !important;\n }\n }\n\n &:focus-visible {\n color: @primary-color;\n }\n\n // https://github.com/ant-design/ant-design/issues/30969\n &.@{table-prefix-cls}-cell-fix-left:hover,\n &.@{table-prefix-cls}-cell-fix-right:hover {\n background: @table-fixed-header-sort-active-bg;\n }\n }\n\n &-thead th.@{table-prefix-cls}-column-sort {\n background: @table-header-sort-bg;\n\n &::before {\n background-color: transparent !important;\n }\n }\n\n td&-column-sort {\n background: @table-body-sort-bg;\n }\n\n &-column-title {\n position: relative;\n z-index: 1;\n flex: 1;\n }\n\n &-column-sorters {\n display: flex;\n flex: auto;\n align-items: center;\n justify-content: space-between;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n content: '';\n }\n }\n\n &-column-sorter {\n margin-left: 4px;\n color: @table-header-icon-color;\n font-size: 0;\n transition: color 0.3s;\n\n &-inner {\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n }\n\n &-up,\n &-down {\n font-size: 11px;\n\n &.active {\n color: @primary-color;\n }\n }\n\n &-up + &-down {\n margin-top: -0.3em;\n }\n }\n\n &-column-sorters:hover &-column-sorter {\n color: darken(@table-header-icon-color, 10%);\n }\n\n // ============================ Filter ============================\n &-filter-column {\n display: flex;\n justify-content: space-between;\n }\n\n &-filter-trigger {\n position: relative;\n display: flex;\n align-items: center;\n margin: -4px (-@table-padding-horizontal / 2) -4px 4px;\n padding: 0 4px;\n color: @table-header-icon-color;\n font-size: @font-size-sm;\n border-radius: @border-radius-base;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n color: @text-color-secondary;\n background: @table-header-filter-active-bg;\n }\n\n &.active {\n color: @primary-color;\n }\n }\n\n // Dropdown\n &-filter-dropdown {\n .reset-component();\n\n min-width: 120px;\n background-color: @table-filter-dropdown-bg;\n border-radius: @border-radius-base;\n box-shadow: @box-shadow-base;\n\n // Reset menu\n .@{dropdown-prefix-cls}-menu {\n // https://github.com/ant-design/ant-design/issues/4916\n // https://github.com/ant-design/ant-design/issues/19542\n max-height: @table-filter-dropdown-max-height;\n overflow-x: hidden;\n border: 0;\n box-shadow: none;\n\n &:empty::after {\n display: block;\n padding: 8px 0;\n color: @disabled-color;\n font-size: @font-size-sm;\n text-align: center;\n content: 'Not Found';\n }\n }\n\n &-tree {\n padding: 8px 8px 0;\n\n .@{tree-prefix-cls}-treenode .@{tree-prefix-cls}-node-content-wrapper:hover {\n background-color: @tree-node-hover-bg;\n }\n\n .@{tree-prefix-cls}-treenode-checkbox-checked .@{tree-prefix-cls}-node-content-wrapper {\n &,\n &:hover {\n background-color: @tree-node-selected-bg;\n }\n }\n }\n\n &-search {\n padding: 8px;\n border-bottom: @border-width-base @border-color-split @border-style-base;\n\n &-input {\n input {\n min-width: 140px;\n }\n .@{iconfont-css-prefix} {\n color: @disabled-color;\n }\n }\n }\n\n &-checkall {\n width: 100%;\n margin-bottom: 4px;\n margin-left: 4px;\n }\n\n &-submenu > ul {\n max-height: calc(100vh - 130px);\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n // Checkbox\n &,\n &-submenu {\n .@{ant-prefix}-checkbox-wrapper + span {\n padding-left: 8px;\n }\n }\n\n // Operation\n &-btns {\n display: flex;\n justify-content: space-between;\n padding: 7px 8px;\n overflow: hidden;\n background-color: @table-filter-btns-bg;\n border-top: @border-width-base @border-style-base @table-border-color;\n }\n }\n\n // ========================== Selections ==========================\n &-selection-col {\n width: @table-selection-column-width;\n }\n\n &-bordered &-selection-col {\n width: @table-selection-column-width + 18px;\n }\n\n table tr th&-selection-column,\n table tr td&-selection-column {\n padding-right: @padding-xs;\n padding-left: @padding-xs;\n text-align: center;\n\n .@{ant-prefix}-radio-wrapper {\n margin-right: 0;\n }\n }\n\n table tr th&-selection-column&-cell-fix-left {\n z-index: 3;\n }\n\n table tr th&-selection-column::after {\n background-color: transparent !important;\n }\n\n &-selection {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n\n &-extra {\n position: absolute;\n top: 0;\n z-index: 1;\n cursor: pointer;\n transition: all 0.3s;\n margin-inline-start: 100%;\n padding-inline-start: (@table-padding-horizontal / 4);\n\n .@{iconfont-css-prefix} {\n color: @table-header-icon-color;\n font-size: 10px;\n\n &:hover {\n color: @table-header-icon-color-hover;\n }\n }\n }\n }\n\n // ========================== Expandable ==========================\n &-expand-icon-col {\n width: @table-expand-column-width;\n }\n\n &-row-expand-icon-cell {\n text-align: center;\n\n .@{table-prefix-cls}-row-expand-icon {\n display: inline-flex;\n float: none;\n vertical-align: sub;\n }\n }\n\n &-row-indent {\n float: left;\n height: 1px;\n }\n\n &-row-expand-icon {\n .operation-unit();\n position: relative;\n float: left;\n box-sizing: border-box;\n width: @expand-icon-size;\n height: @expand-icon-size;\n padding: 0;\n color: inherit;\n line-height: ceil(((@font-size-sm * 1.4 - @border-width-base * 3) / 2)) * 2 + @border-width-base *\n 3;\n background: @table-expand-icon-bg;\n border: @border-width-base @border-style-base @table-border-color;\n border-radius: @border-radius-base;\n transform: scale((unit(@checkbox-size) / unit(@expand-icon-size)));\n transition: all 0.3s;\n user-select: none;\n @expand-icon-size: ceil(((@font-size-sm * 1.4 - @border-width-base * 3) / 2)) * 2 +\n @border-width-base * 3;\n\n &:focus,\n &:hover,\n &:active {\n border-color: currentcolor;\n }\n\n &::before,\n &::after {\n position: absolute;\n background: currentcolor;\n transition: transform 0.3s ease-out;\n content: '';\n }\n\n &::before {\n top: ceil(((@font-size-sm * 1.4 - @border-width-base * 3) / 2));\n right: 3px;\n left: 3px;\n height: @border-width-base;\n }\n\n &::after {\n top: 3px;\n bottom: 3px;\n left: ceil(((@font-size-sm * 1.4 - @border-width-base * 3) / 2));\n width: @border-width-base;\n transform: rotate(90deg);\n }\n\n // Motion effect\n &-collapsed::before {\n transform: rotate(-180deg);\n }\n\n &-collapsed::after {\n transform: rotate(0deg);\n }\n\n &-spaced {\n &::before,\n &::after {\n display: none;\n content: none;\n }\n background: transparent;\n border: 0;\n visibility: hidden;\n }\n\n .@{table-prefix-cls}-row-indent + & {\n margin-top: ((@font-size-base * @line-height-base - @border-width-base * 3) / 2) -\n ceil(((@font-size-sm * 1.4 - @border-width-base * 3) / 2));\n margin-right: @padding-xs;\n }\n }\n\n tr&-expanded-row {\n &,\n &:hover {\n > td {\n background: @table-expanded-row-bg;\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/25573\n .@{descriptions-prefix-cls}-view {\n display: flex;\n\n table {\n flex: auto;\n width: auto;\n }\n }\n }\n\n // With fixed\n .@{table-prefix-cls}-expanded-row-fixed {\n position: relative;\n margin: -@table-padding-vertical -@table-padding-horizontal;\n padding: @table-padding-vertical @table-padding-horizontal;\n }\n\n // ========================= Placeholder ==========================\n &-tbody > tr&-placeholder {\n text-align: center;\n .@{table-prefix-cls}-empty & {\n color: @disabled-color;\n }\n\n &:hover {\n > td {\n background: @component-background;\n }\n }\n }\n\n // ============================ Fixed =============================\n &-cell-fix-left,\n &-cell-fix-right {\n position: sticky !important;\n z-index: @zindex-table-fixed;\n background: @table-bg;\n }\n\n &-cell-fix-left-first::after,\n &-cell-fix-left-last::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n width: 30px;\n transform: translateX(100%);\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n }\n\n &-cell-fix-left-all::after {\n display: none;\n }\n\n &-cell-fix-right-first::after,\n &-cell-fix-right-last::after {\n position: absolute;\n top: 0;\n bottom: -1px;\n left: 0;\n width: 30px;\n transform: translateX(-100%);\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n }\n\n .@{table-prefix-cls}-container {\n &::before,\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: calc(@table-sticky-zindex + 1);\n width: 30px;\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n }\n\n &::before {\n left: 0;\n }\n\n &::after {\n right: 0;\n }\n }\n\n &-ping-left {\n &:not(.@{table-prefix-cls}-has-fix-left) > .@{table-prefix-cls}-container {\n position: relative;\n\n &::before {\n box-shadow: inset 10px 0 8px -8px darken(@shadow-color, 5%);\n }\n }\n\n .@{table-prefix-cls}-cell-fix-left-first::after,\n .@{table-prefix-cls}-cell-fix-left-last::after {\n box-shadow: inset 10px 0 8px -8px darken(@shadow-color, 5%);\n }\n\n .@{table-prefix-cls}-cell-fix-left-last::before {\n background-color: transparent !important;\n }\n }\n\n &-ping-right {\n &:not(.@{table-prefix-cls}-has-fix-right) > .@{table-prefix-cls}-container {\n position: relative;\n\n &::after {\n box-shadow: inset -10px 0 8px -8px darken(@shadow-color, 5%);\n }\n }\n\n .@{table-prefix-cls}-cell-fix-right-first::after,\n .@{table-prefix-cls}-cell-fix-right-last::after {\n box-shadow: inset -10px 0 8px -8px darken(@shadow-color, 5%);\n }\n }\n\n &-sticky {\n &-holder {\n position: sticky;\n z-index: @table-sticky-zindex;\n background: @component-background;\n }\n\n &-scroll {\n position: sticky;\n bottom: 0;\n z-index: @table-sticky-zindex;\n display: flex;\n align-items: center;\n background: lighten(@table-border-color, 80%);\n border-top: 1px solid @table-border-color;\n opacity: 0.6;\n\n &:hover {\n transform-origin: center bottom;\n }\n\n &-bar {\n height: 8px;\n background-color: @table-sticky-scroll-bar-bg;\n border-radius: @table-sticky-scroll-bar-radius;\n\n &:hover {\n background-color: @table-sticky-scroll-bar-active-bg;\n }\n\n &-active {\n background-color: @table-sticky-scroll-bar-active-bg;\n }\n }\n }\n }\n}\n\n@media all and (-ms-high-contrast: none) {\n .@{table-prefix-cls} {\n &-ping-left {\n .@{table-prefix-cls}-cell-fix-left-last::after {\n box-shadow: none !important;\n }\n }\n\n &-ping-right {\n .@{table-prefix-cls}-cell-fix-right-first::after {\n box-shadow: none !important;\n }\n }\n }\n}\n\n@import './radius';\n@import './rtl';\n\n@root-entry-name: default;","@import './size';\n@import (reference) '../../style/themes/index';\n@table-prefix-cls: ~'@{ant-prefix}-table';\n\n@table-border: @border-width-base @border-style-base @table-border-color;\n\n.@{table-prefix-cls}.@{table-prefix-cls}-bordered {\n // ============================ Title =============================\n > .@{table-prefix-cls}-title {\n border: @table-border;\n border-bottom: 0;\n }\n\n > .@{table-prefix-cls}-container {\n // ============================ Content ============================\n border-left: @table-border;\n\n > .@{table-prefix-cls}-content,\n > .@{table-prefix-cls}-header,\n > .@{table-prefix-cls}-body,\n > .@{table-prefix-cls}-summary {\n > table {\n // ============================= Cell =============================\n > thead > tr > th,\n > tbody > tr > td,\n > tfoot > tr > th,\n > tfoot > tr > td {\n border-right: @table-border;\n }\n // ============================ Header ============================\n > thead {\n > tr:not(:last-child) > th {\n border-bottom: @border-width-base @border-style-base @table-border-color;\n }\n\n > tr > th {\n &::before {\n background-color: transparent !important;\n }\n }\n }\n\n // Fixed right should provides additional border\n > thead > tr,\n > tbody > tr,\n > tfoot > tr {\n > .@{table-prefix-cls}-cell-fix-right-first::after {\n border-right: @table-border;\n }\n }\n }\n\n // ========================== Expandable ==========================\n > table > tbody > tr > td {\n > .@{table-prefix-cls}-expanded-row-fixed {\n margin: -@table-padding-vertical (-@table-padding-horizontal - @border-width-base);\n\n &::after {\n position: absolute;\n top: 0;\n right: @border-width-base;\n bottom: 0;\n border-right: @table-border;\n content: '';\n }\n }\n }\n }\n\n > .@{table-prefix-cls}-content,\n > .@{table-prefix-cls}-header {\n > table {\n border-top: @table-border;\n }\n }\n }\n\n &.@{table-prefix-cls}-scroll-horizontal {\n > .@{table-prefix-cls}-container > .@{table-prefix-cls}-body {\n > table > tbody {\n > tr.@{table-prefix-cls}-expanded-row,\n > tr.@{table-prefix-cls}-placeholder {\n > td {\n border-right: 0;\n }\n }\n }\n }\n }\n\n // Size related\n &.@{table-prefix-cls}-middle {\n > .@{table-prefix-cls}-container {\n > .@{table-prefix-cls}-content,\n > .@{table-prefix-cls}-body {\n > table > tbody > tr > td {\n > .@{table-prefix-cls}-expanded-row-fixed {\n margin: -@table-padding-vertical-md (-@table-padding-horizontal-md - @border-width-base);\n }\n }\n }\n }\n }\n\n &.@{table-prefix-cls}-small {\n > .@{table-prefix-cls}-container {\n > .@{table-prefix-cls}-content,\n > .@{table-prefix-cls}-body {\n > table > tbody > tr > td {\n > .@{table-prefix-cls}-expanded-row-fixed {\n margin: -@table-padding-vertical-sm (-@table-padding-horizontal-sm - @border-width-base);\n }\n }\n }\n }\n }\n\n // ============================ Footer ============================\n > .@{table-prefix-cls}-footer {\n border: @table-border;\n border-top: 0;\n }\n}\n\n.@{table-prefix-cls}-cell {\n // ============================ Nested ============================\n .@{table-prefix-cls}-container:first-child {\n // :first-child to avoid the case when bordered and title is set\n border-top: 0;\n }\n\n // https://github.com/ant-design/ant-design/issues/35577\n &-scrollbar:not([rowspan]) {\n box-shadow: 0 @border-width-base 0 @border-width-base @table-header-bg;\n }\n}\n","// ================================================================\n// = Border Radius =\n// ================================================================\n.@{table-prefix-cls} {\n /* title + table */\n &-title {\n border-radius: @table-border-radius-base @table-border-radius-base 0 0;\n }\n\n &-title + &-container {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n\n table {\n border-radius: 0;\n\n > thead > tr:first-child {\n th:first-child {\n border-radius: 0;\n }\n\n th:last-child {\n border-radius: 0;\n }\n }\n }\n }\n\n /* table */\n &-container {\n border-top-left-radius: @table-border-radius-base;\n border-top-right-radius: @table-border-radius-base;\n\n table > thead > tr:first-child {\n th:first-child {\n border-top-left-radius: @table-border-radius-base;\n }\n\n th:last-child {\n border-top-right-radius: @table-border-radius-base;\n }\n }\n }\n\n /* table + footer */\n &-footer {\n border-radius: 0 0 @table-border-radius-base @table-border-radius-base;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@table-prefix-cls: ~'@{ant-prefix}-table';\n@table-wrapepr-cls: ~'@{table-prefix-cls}-wrapper';\n@table-wrapepr-rtl-cls: ~'@{table-prefix-cls}-wrapper-rtl';\n\n.@{table-prefix-cls}-wrapper {\n &-rtl {\n direction: rtl;\n }\n}\n\n.@{table-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n table {\n .@{table-wrapepr-rtl-cls} & {\n text-align: right;\n }\n }\n\n // ============================ Header ============================\n &-thead {\n > tr {\n > th {\n &[colspan]:not([colspan='1']) {\n .@{table-wrapepr-rtl-cls} & {\n text-align: center;\n }\n }\n\n &:not(:last-child):not(.@{table-prefix-cls}-selection-column):not(.@{table-prefix-cls}-row-expand-icon-cell):not([colspan])::before {\n .@{table-wrapepr-rtl-cls} & {\n right: auto;\n left: 0;\n }\n }\n\n .@{table-wrapepr-rtl-cls} & {\n text-align: right;\n }\n }\n }\n }\n\n // ============================= Body =============================\n &-tbody {\n > tr {\n // ========================= Nest Table ===========================\n .@{table-prefix-cls}-wrapper:only-child {\n .@{table-prefix-cls}.@{table-prefix-cls}-rtl {\n margin: -@table-padding-vertical (@table-padding-horizontal + ceil(@font-size-sm * 1.4)) -@table-padding-vertical -@table-padding-horizontal;\n }\n }\n }\n }\n\n // ========================== Pagination ==========================\n &-pagination {\n &-left {\n .@{table-wrapepr-cls}.@{table-wrapepr-rtl-cls} & {\n justify-content: flex-end;\n }\n }\n\n &-right {\n .@{table-wrapepr-cls}.@{table-wrapepr-rtl-cls} & {\n justify-content: flex-start;\n }\n }\n }\n\n // ================================================================\n // = Function =\n // ================================================================\n\n // ============================ Sorter ============================\n &-column-sorter {\n .@{table-wrapepr-rtl-cls} & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n\n // ============================ Filter ============================\n &-filter-column-title {\n .@{table-wrapepr-rtl-cls} & {\n padding: @table-padding-vertical @table-padding-horizontal @table-padding-vertical 2.3em;\n }\n }\n\n &-thead tr th.@{table-prefix-cls}-column-has-sorters {\n .@{table-prefix-cls}-filter-column-title {\n .@{table-prefix-cls}-rtl & {\n padding: 0 0 0 2.3em;\n }\n }\n }\n\n &-filter-trigger {\n .@{table-wrapepr-rtl-cls} & {\n margin: -4px 4px -4px (-@table-padding-horizontal / 2);\n }\n }\n\n // Dropdown\n &-filter-dropdown {\n // Checkbox\n &,\n &-submenu {\n .@{ant-prefix}-checkbox-wrapper + span {\n .@{ant-prefix}-dropdown-rtl &,\n .@{ant-prefix}-dropdown-menu-submenu-rtl& {\n padding-right: 8px;\n padding-left: 0;\n }\n }\n }\n }\n\n // ========================== Selections ==========================\n &-selection {\n .@{table-wrapepr-rtl-cls} & {\n text-align: center;\n }\n }\n\n // ========================== Expandable ==========================\n &-row-indent {\n .@{table-wrapepr-rtl-cls} & {\n float: right;\n }\n }\n\n &-row-expand-icon {\n .@{table-wrapepr-rtl-cls} & {\n float: right;\n }\n\n .@{table-prefix-cls}-row-indent + & {\n .@{table-wrapepr-rtl-cls} & {\n margin-right: 0;\n margin-left: @padding-xs;\n }\n }\n\n &::after {\n .@{table-wrapepr-rtl-cls} & {\n transform: rotate(-90deg);\n }\n }\n\n &-collapsed::before {\n .@{table-wrapepr-rtl-cls} & {\n transform: rotate(180deg);\n }\n }\n\n &-collapsed::after {\n .@{table-wrapepr-rtl-cls} & {\n transform: rotate(0deg);\n }\n }\n }\n}\n","@import '../../style/themes/index';\n\n@tree-prefix-cls: ~'@{ant-prefix}-tree';\n\n.@{tree-prefix-cls}.@{tree-prefix-cls}-directory {\n // ================== TreeNode ==================\n .@{tree-prefix-cls}-treenode {\n position: relative;\n\n // Hover color\n &::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 4px;\n left: 0;\n transition: background-color 0.3s;\n content: '';\n pointer-events: none;\n }\n\n &:hover {\n &::before {\n background: @item-hover-bg;\n }\n }\n\n // Elements\n > * {\n z-index: 1;\n }\n\n // >>> Switcher\n .@{tree-prefix-cls}-switcher {\n transition: color 0.3s;\n }\n\n // >>> Title\n .@{tree-prefix-cls}-node-content-wrapper {\n border-radius: 0;\n user-select: none;\n\n &:hover {\n background: transparent;\n }\n\n &.@{tree-prefix-cls}-node-selected {\n color: @tree-directory-selected-color;\n background: transparent;\n }\n }\n\n // ============= Selected =============\n &-selected {\n &:hover::before,\n &::before {\n background: @tree-directory-selected-bg;\n }\n\n // >>> Switcher\n .@{tree-prefix-cls}-switcher {\n color: @tree-directory-selected-color;\n }\n\n // >>> Title\n .@{tree-prefix-cls}-node-content-wrapper {\n color: @tree-directory-selected-color;\n background: transparent;\n }\n }\n }\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n@keyframes ant-tree-node-fx-do-not-use {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode {\n position: relative;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 4px;\n left: 0;\n transition: background-color 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode:hover::before {\n background: #f5f5f5;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode > * {\n z-index: 1;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-switcher {\n transition: color 0.3s;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper {\n border-radius: 0;\n user-select: none;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper:hover {\n background: transparent;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected {\n color: #fff;\n background: transparent;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover::before,\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected::before {\n background: #1890ff;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-switcher {\n color: #fff;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-node-content-wrapper {\n color: #fff;\n background: transparent;\n}\n.ant-tree-checkbox {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,\n.ant-tree-checkbox:hover .ant-tree-checkbox-inner,\n.ant-tree-checkbox-input:focus + .ant-tree-checkbox-inner {\n border-color: #1890ff;\n}\n.ant-tree-checkbox-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 2px;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n}\n.ant-tree-checkbox:hover::after,\n.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox::after {\n visibility: visible;\n}\n.ant-tree-checkbox-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n direction: ltr;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n border-collapse: separate;\n transition: all 0.3s;\n}\n.ant-tree-checkbox-inner::after {\n position: absolute;\n top: 50%;\n left: 21.5%;\n display: table;\n width: 5.71428571px;\n height: 9.14285714px;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\n content: ' ';\n}\n.ant-tree-checkbox-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after {\n position: absolute;\n display: table;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\n content: ' ';\n}\n.ant-tree-checkbox-checked .ant-tree-checkbox-inner {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.ant-tree-checkbox-disabled {\n cursor: not-allowed;\n}\n.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after {\n border-color: rgba(0, 0, 0, 0.25);\n animation-name: none;\n}\n.ant-tree-checkbox-disabled .ant-tree-checkbox-input {\n cursor: not-allowed;\n pointer-events: none;\n}\n.ant-tree-checkbox-disabled .ant-tree-checkbox-inner {\n background-color: #f5f5f5;\n border-color: #d9d9d9 !important;\n}\n.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after {\n border-color: #f5f5f5;\n border-collapse: separate;\n animation-name: none;\n}\n.ant-tree-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-tree-checkbox-disabled:hover::after,\n.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled::after {\n visibility: hidden;\n}\n.ant-tree-checkbox-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n}\n.ant-tree-checkbox-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-tree-checkbox-wrapper + .ant-tree-checkbox-wrapper {\n margin-left: 8px;\n}\n.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-in-form-item input[type='checkbox'] {\n width: 14px;\n height: 14px;\n}\n.ant-tree-checkbox + span {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-tree-checkbox-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-tree-checkbox-group-item {\n margin-right: 8px;\n}\n.ant-tree-checkbox-group-item:last-child {\n margin-right: 0;\n}\n.ant-tree-checkbox-group-item + .ant-tree-checkbox-group-item {\n margin-left: 0;\n}\n.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner {\n background-color: #fff;\n border-color: #d9d9d9;\n}\n.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner::after {\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n background-color: #1890ff;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n}\n.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after {\n background-color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-tree {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n background: #fff;\n border-radius: 2px;\n transition: background-color 0.3s;\n}\n.ant-tree-focused:not(:hover):not(.ant-tree-active-focused) {\n background: #e6f7ff;\n}\n.ant-tree-list-holder-inner {\n align-items: flex-start;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner {\n align-items: stretch;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-node-content-wrapper {\n flex: auto;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging {\n position: relative;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 4px;\n left: 0;\n border: 1px solid #1890ff;\n opacity: 0;\n animation: ant-tree-node-fx-do-not-use 0.3s;\n animation-play-state: running;\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n.ant-tree .ant-tree-treenode {\n display: flex;\n align-items: flex-start;\n padding: 0 0 4px 0;\n outline: none;\n}\n.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper:hover {\n background: transparent;\n}\n.ant-tree .ant-tree-treenode-active .ant-tree-node-content-wrapper {\n background: #f5f5f5;\n}\n.ant-tree .ant-tree-treenode:not(.ant-tree .ant-tree-treenode-disabled).filter-node .ant-tree-title {\n color: inherit;\n font-weight: 500;\n}\n.ant-tree .ant-tree-treenode-draggable .ant-tree-draggable-icon {\n width: 24px;\n line-height: 24px;\n text-align: center;\n visibility: visible;\n opacity: 0.2;\n transition: opacity 0.3s;\n}\n.ant-tree-treenode:hover .ant-tree .ant-tree-treenode-draggable .ant-tree-draggable-icon {\n opacity: 0.45;\n}\n.ant-tree .ant-tree-treenode-draggable.ant-tree-treenode-disabled .ant-tree-draggable-icon {\n visibility: hidden;\n}\n.ant-tree-indent {\n align-self: stretch;\n white-space: nowrap;\n user-select: none;\n}\n.ant-tree-indent-unit {\n display: inline-block;\n width: 24px;\n}\n.ant-tree-draggable-icon {\n visibility: hidden;\n}\n.ant-tree-switcher {\n position: relative;\n flex: none;\n align-self: stretch;\n width: 24px;\n margin: 0;\n line-height: 24px;\n text-align: center;\n cursor: pointer;\n user-select: none;\n}\n.ant-tree-switcher .ant-tree-switcher-icon,\n.ant-tree-switcher .ant-select-tree-switcher-icon {\n display: inline-block;\n font-size: 10px;\n vertical-align: baseline;\n}\n.ant-tree-switcher .ant-tree-switcher-icon svg,\n.ant-tree-switcher .ant-select-tree-switcher-icon svg {\n transition: transform 0.3s;\n}\n.ant-tree-switcher-noop {\n cursor: default;\n}\n.ant-tree-switcher_close .ant-tree-switcher-icon svg {\n transform: rotate(-90deg);\n}\n.ant-tree-switcher-loading-icon {\n color: #1890ff;\n}\n.ant-tree-switcher-leaf-line {\n position: relative;\n z-index: 1;\n display: inline-block;\n width: 100%;\n height: 100%;\n}\n.ant-tree-switcher-leaf-line::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -4px;\n margin-left: -1px;\n border-right: 1px solid #d9d9d9;\n content: ' ';\n}\n.ant-tree-switcher-leaf-line::after {\n position: absolute;\n width: 10px;\n height: 14px;\n border-bottom: 1px solid #d9d9d9;\n content: ' ';\n}\n.ant-tree-checkbox {\n top: initial;\n margin: 4px 8px 0 0;\n}\n.ant-tree .ant-tree-node-content-wrapper {\n position: relative;\n z-index: auto;\n min-height: 24px;\n margin: 0;\n padding: 0 4px;\n color: inherit;\n line-height: 24px;\n background: transparent;\n border-radius: 2px;\n cursor: pointer;\n transition: all 0.3s, border 0s, line-height 0s, box-shadow 0s;\n}\n.ant-tree .ant-tree-node-content-wrapper:hover {\n background-color: #f5f5f5;\n}\n.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected {\n background-color: #bae7ff;\n}\n.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle {\n display: inline-block;\n width: 24px;\n height: 24px;\n line-height: 24px;\n text-align: center;\n vertical-align: top;\n}\n.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle:empty {\n display: none;\n}\n.ant-tree-unselectable .ant-tree-node-content-wrapper:hover {\n background-color: transparent;\n}\n.ant-tree-node-content-wrapper {\n line-height: 24px;\n user-select: none;\n}\n.ant-tree-node-content-wrapper .ant-tree-drop-indicator {\n position: absolute;\n z-index: 1;\n height: 2px;\n background-color: #1890ff;\n border-radius: 1px;\n pointer-events: none;\n}\n.ant-tree-node-content-wrapper .ant-tree-drop-indicator::after {\n position: absolute;\n top: -3px;\n left: -6px;\n width: 8px;\n height: 8px;\n background-color: transparent;\n border: 2px solid #1890ff;\n border-radius: 50%;\n content: '';\n}\n.ant-tree .ant-tree-treenode.drop-container > [draggable] {\n box-shadow: 0 0 0 2px #1890ff;\n}\n.ant-tree-show-line .ant-tree-indent-unit {\n position: relative;\n height: 100%;\n}\n.ant-tree-show-line .ant-tree-indent-unit::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -4px;\n border-right: 1px solid #d9d9d9;\n content: '';\n}\n.ant-tree-show-line .ant-tree-indent-unit-end::before {\n display: none;\n}\n.ant-tree-show-line .ant-tree-switcher {\n background: #fff;\n}\n.ant-tree-show-line .ant-tree-switcher-line-icon {\n vertical-align: -0.15em;\n}\n.ant-tree .ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line::before {\n top: auto !important;\n bottom: auto !important;\n height: 14px !important;\n}\n.ant-tree-rtl {\n direction: rtl;\n}\n.ant-tree-rtl .ant-tree-node-content-wrapper[draggable='true'] .ant-tree-drop-indicator::after {\n right: -6px;\n left: unset;\n}\n.ant-tree .ant-tree-treenode-rtl {\n direction: rtl;\n}\n.ant-tree-rtl .ant-tree-switcher_close .ant-tree-switcher-icon svg {\n transform: rotate(90deg);\n}\n.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit::before {\n right: auto;\n left: -13px;\n border-right: none;\n border-left: 1px solid #d9d9d9;\n}\n.ant-tree-rtl .ant-tree-checkbox {\n margin: 4px 0 0 8px;\n}\n.ant-tree-select-dropdown-rtl .ant-select-tree-checkbox {\n margin: 4px 0 0 8px;\n}\n","@import '../../style/mixins/index';\n\n@tree-prefix-cls: ~'@{ant-prefix}-tree';\n@select-tree-prefix-cls: ~'@{ant-prefix}-select-tree';\n@tree-motion: ~'@{ant-prefix}-motion-collapse';\n@tree-node-padding: (@padding-xs / 2);\n// @deprecated: kept for customization usages, recommend using @tree-node-highlight-color instead.\n@tree-node-hightlight-color: inherit;\n@tree-node-highlight-color: @tree-node-hightlight-color;\n\n.antTreeSwitcherIcon(@type: 'tree-default-open-icon') {\n .@{tree-prefix-cls}-switcher-icon,\n .@{select-tree-prefix-cls}-switcher-icon {\n display: inline-block;\n font-size: 10px;\n vertical-align: baseline;\n\n svg {\n transition: transform 0.3s;\n }\n }\n}\n\n.drop-indicator() {\n .@{tree-prefix-cls}-drop-indicator {\n position: absolute;\n // it should displayed over the following node\n z-index: 1;\n height: 2px;\n background-color: @primary-color;\n border-radius: 1px;\n pointer-events: none;\n\n &::after {\n position: absolute;\n top: -3px;\n left: -6px;\n width: 8px;\n height: 8px;\n background-color: transparent;\n border: 2px solid @primary-color;\n border-radius: 50%;\n content: '';\n }\n }\n}\n\n.antTreeFn(@custom-tree-prefix-cls) {\n @custom-tree-node-prefix-cls: ~'@{custom-tree-prefix-cls}-treenode';\n .reset-component();\n background: @tree-bg;\n border-radius: @border-radius-base;\n transition: background-color 0.3s;\n\n &-focused:not(:hover):not(&-active-focused) {\n background: @primary-1;\n }\n\n // =================== Virtual List ===================\n &-list-holder-inner {\n align-items: flex-start;\n }\n\n &.@{custom-tree-prefix-cls}-block-node {\n .@{custom-tree-prefix-cls}-list-holder-inner {\n align-items: stretch;\n\n // >>> Title\n .@{custom-tree-prefix-cls}-node-content-wrapper {\n flex: auto;\n }\n\n // >>> Drag\n .@{custom-tree-node-prefix-cls}.dragging {\n position: relative;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: @tree-node-padding;\n left: 0;\n border: 1px solid @primary-color;\n opacity: 0;\n animation: ant-tree-node-fx-do-not-use 0.3s;\n animation-play-state: running;\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n }\n }\n }\n }\n\n // ===================== TreeNode =====================\n .@{custom-tree-node-prefix-cls} {\n display: flex;\n align-items: flex-start;\n padding: 0 0 @tree-node-padding 0;\n outline: none;\n // Disabled\n &-disabled {\n // >>> Title\n .@{custom-tree-prefix-cls}-node-content-wrapper {\n color: @disabled-color;\n cursor: not-allowed;\n\n &:hover {\n background: transparent;\n }\n }\n }\n\n &-active .@{custom-tree-prefix-cls}-node-content-wrapper {\n background: @tree-node-hover-bg;\n }\n\n &:not(&-disabled).filter-node .@{custom-tree-prefix-cls}-title {\n color: @tree-node-highlight-color;\n font-weight: 500;\n }\n\n &-draggable {\n .@{custom-tree-prefix-cls}-draggable-icon {\n width: @tree-title-height;\n line-height: @tree-title-height;\n text-align: center;\n visibility: visible;\n opacity: 0.2;\n transition: opacity @animation-duration-slow;\n\n .@{custom-tree-node-prefix-cls}:hover & {\n opacity: 0.45;\n }\n }\n\n &.@{custom-tree-node-prefix-cls}-disabled {\n .@{custom-tree-prefix-cls}-draggable-icon {\n visibility: hidden;\n }\n }\n }\n }\n\n // >>> Indent\n &-indent {\n align-self: stretch;\n white-space: nowrap;\n user-select: none;\n\n &-unit {\n display: inline-block;\n width: @tree-title-height;\n }\n }\n\n // >>> Drag Handler\n &-draggable-icon {\n visibility: hidden;\n }\n\n // >>> Switcher\n &-switcher {\n .antTreeSwitcherIcon();\n position: relative;\n flex: none;\n align-self: stretch;\n width: @tree-title-height;\n margin: 0;\n line-height: @tree-title-height;\n text-align: center;\n cursor: pointer;\n user-select: none;\n\n &-noop {\n cursor: default;\n }\n\n &_close {\n .@{custom-tree-prefix-cls}-switcher-icon {\n svg {\n transform: rotate(-90deg);\n }\n }\n }\n\n &-loading-icon {\n color: @primary-color;\n }\n\n &-leaf-line {\n position: relative;\n z-index: 1;\n display: inline-block;\n width: 100%;\n height: 100%;\n // https://github.com/ant-design/ant-design/issues/31884\n &::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -@tree-node-padding;\n margin-left: -1px;\n border-right: 1px solid @normal-color;\n content: ' ';\n }\n\n &::after {\n position: absolute;\n width: @tree-title-height - 14px;\n height: @tree-title-height - 10px;\n border-bottom: 1px solid @normal-color;\n content: ' ';\n }\n }\n }\n\n // >>> Checkbox\n &-checkbox {\n top: initial;\n margin: ((@tree-title-height - @checkbox-size) / 2) 8px 0 0;\n }\n\n // >>> Title\n & &-node-content-wrapper {\n position: relative;\n z-index: auto;\n min-height: @tree-title-height;\n margin: 0;\n padding: 0 4px;\n color: inherit;\n line-height: @tree-title-height;\n background: transparent;\n border-radius: @border-radius-base;\n cursor: pointer;\n transition: all 0.3s, border 0s, line-height 0s, box-shadow 0s;\n\n &:hover {\n background-color: @tree-node-hover-bg;\n }\n\n &.@{custom-tree-prefix-cls}-node-selected {\n background-color: @tree-node-selected-bg;\n }\n\n // Icon\n .@{custom-tree-prefix-cls}-iconEle {\n display: inline-block;\n width: @tree-title-height;\n height: @tree-title-height;\n line-height: @tree-title-height;\n text-align: center;\n vertical-align: top;\n\n &:empty {\n display: none;\n }\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/28217\n &-unselectable &-node-content-wrapper:hover {\n background-color: transparent;\n }\n\n // ==================== Draggable =====================\n &-node-content-wrapper {\n line-height: @tree-title-height;\n user-select: none;\n\n .drop-indicator();\n }\n\n .@{custom-tree-node-prefix-cls}.drop-container {\n > [draggable] {\n box-shadow: 0 0 0 2px @primary-color;\n }\n }\n\n // ==================== Show Line =====================\n &-show-line {\n // ================ Indent lines ================\n .@{custom-tree-prefix-cls}-indent {\n &-unit {\n position: relative;\n height: 100%;\n\n &::before {\n position: absolute;\n top: 0;\n right: (@tree-title-height / 2);\n bottom: -@tree-node-padding;\n border-right: 1px solid @border-color-base;\n content: '';\n }\n\n &-end {\n &::before {\n display: none;\n }\n }\n }\n }\n\n // ============== Cover Background ==============\n .@{custom-tree-prefix-cls}-switcher {\n background: @component-background;\n\n &-line-icon {\n // https://github.com/ant-design/ant-design/issues/32813\n vertical-align: -0.15em;\n }\n }\n }\n\n .@{custom-tree-node-prefix-cls}-leaf-last {\n .@{custom-tree-prefix-cls}-switcher {\n &-leaf-line {\n &::before {\n top: auto !important;\n bottom: auto !important;\n height: @tree-title-height - 10px !important;\n }\n }\n }\n }\n}\n\n@keyframes ant-tree-node-fx-do-not-use {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../checkbox/style/mixin';\n\n@tree-prefix-cls: ~'@{ant-prefix}-tree';\n@select-tree-prefix-cls: ~'@{ant-prefix}-select-tree';\n@tree-node-prefix-cls: ~'@{tree-prefix-cls}-treenode';\n\n.@{tree-prefix-cls} {\n &-rtl {\n direction: rtl;\n .@{tree-prefix-cls}-node-content-wrapper[draggable='true'] {\n .@{tree-prefix-cls}-drop-indicator {\n &::after {\n right: -6px;\n left: unset;\n }\n }\n }\n }\n\n // ===================== TreeNode =====================\n .@{tree-node-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n }\n\n // >>> Switcher\n &-switcher {\n &_close {\n .@{tree-prefix-cls}-switcher-icon {\n svg {\n .@{tree-prefix-cls}-rtl & {\n transform: rotate(90deg);\n }\n }\n }\n }\n }\n // ==================== Show Line =====================\n &-show-line {\n // ================ Indent lines ================\n .@{tree-prefix-cls}-indent {\n &-unit {\n &::before {\n .@{tree-prefix-cls}-rtl& {\n right: auto;\n left: -(@tree-title-height / 2) - 1px;\n border-right: none;\n border-left: 1px solid @border-color-base;\n }\n }\n }\n }\n }\n // >>> Checkbox\n &-checkbox {\n .@{tree-prefix-cls}-rtl & {\n margin: ((@tree-title-height - @checkbox-size) / 2) 0 0 8px;\n }\n }\n}\n\n.@{select-tree-prefix-cls} {\n // >>> Checkbox\n &-checkbox {\n .@{tree-prefix-cls}-select-dropdown-rtl & {\n margin: ((@tree-title-height - @checkbox-size) / 2) 0 0 8px;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@timeline-prefix-cls: ~'@{ant-prefix}-timeline';\n\n.@{timeline-prefix-cls} {\n .reset-component();\n\n margin: 0;\n padding: 0;\n list-style: none;\n\n &-item {\n position: relative;\n margin: 0;\n padding-bottom: @timeline-item-padding-bottom;\n font-size: @font-size-base;\n list-style: none;\n\n &-tail {\n position: absolute;\n top: 10px;\n left: 4px;\n height: calc(100% - 10px);\n border-left: @timeline-width solid @timeline-color;\n }\n\n &-pending &-head {\n font-size: @font-size-sm;\n background-color: transparent;\n }\n\n &-pending &-tail {\n display: none;\n }\n\n &-head {\n position: absolute;\n width: 10px;\n height: 10px;\n background-color: @timeline-dot-bg;\n border: @timeline-dot-border-width solid transparent;\n border-radius: 100px;\n\n &-blue {\n color: @primary-color;\n border-color: @primary-color;\n }\n\n &-red {\n color: @error-color;\n border-color: @error-color;\n }\n\n &-green {\n color: @success-color;\n border-color: @success-color;\n }\n\n &-gray {\n color: @disabled-color;\n border-color: @disabled-color;\n }\n }\n\n &-head-custom {\n position: absolute;\n top: 5.5px;\n left: 5px;\n width: auto;\n height: auto;\n margin-top: 0;\n padding: 3px 1px;\n line-height: 1;\n text-align: center;\n border: 0;\n border-radius: 0;\n transform: translate(-50%, -50%);\n }\n\n &-content {\n position: relative;\n top: -(@font-size-base * @line-height-base - @font-size-base) + 1px;\n margin: 0 0 0 @margin-lg + 2px;\n word-break: break-word;\n }\n\n &-last {\n > .@{timeline-prefix-cls}-item-tail {\n display: none;\n }\n > .@{timeline-prefix-cls}-item-content {\n min-height: 48px;\n }\n }\n }\n\n &.@{timeline-prefix-cls}-alternate,\n &.@{timeline-prefix-cls}-right,\n &.@{timeline-prefix-cls}-label {\n .@{timeline-prefix-cls}-item {\n &-tail,\n &-head,\n &-head-custom {\n left: 50%;\n }\n\n &-head {\n margin-left: -4px;\n\n &-custom {\n margin-left: 1px;\n }\n }\n\n &-left {\n .@{timeline-prefix-cls}-item-content {\n left: calc(50% - 4px);\n width: calc(50% - 14px);\n text-align: left;\n }\n }\n\n &-right {\n .@{timeline-prefix-cls}-item-content {\n width: calc(50% - 12px);\n margin: 0;\n text-align: right;\n }\n }\n }\n }\n\n &.@{timeline-prefix-cls}-right {\n .@{timeline-prefix-cls}-item-right {\n .@{timeline-prefix-cls}-item-tail,\n .@{timeline-prefix-cls}-item-head,\n .@{timeline-prefix-cls}-item-head-custom {\n left: calc(100% - 4px - @timeline-width);\n }\n .@{timeline-prefix-cls}-item-content {\n width: calc(100% - 18px);\n }\n }\n }\n\n &&-pending &-item-last &-item-tail {\n display: block;\n height: calc(100% - 14px);\n border-left: 2px dotted @timeline-color;\n }\n\n &&-reverse &-item-last &-item-tail {\n display: none;\n }\n\n &&-reverse &-item-pending {\n .@{timeline-prefix-cls}-item-tail {\n top: 15px;\n display: block;\n height: calc(100% - 15px);\n border-left: 2px dotted @timeline-color;\n }\n .@{timeline-prefix-cls}-item-content {\n min-height: 48px;\n }\n }\n &.@{timeline-prefix-cls}-label {\n .@{timeline-prefix-cls}-item-label {\n position: absolute;\n top: -(@font-size-base * @line-height-base - @font-size-base) + 1px;\n width: calc(50% - 12px);\n text-align: right;\n }\n .@{timeline-prefix-cls}-item-right {\n .@{timeline-prefix-cls}-item-label {\n left: calc(50% + 14px);\n width: calc(50% - 14px);\n text-align: left;\n }\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@timeline-prefix-cls: ~'@{ant-prefix}-timeline';\n\n.@{timeline-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-item {\n &-tail {\n .@{timeline-prefix-cls}-rtl & {\n right: 4px;\n left: auto;\n border-right: @timeline-width solid @timeline-color;\n border-left: none;\n }\n }\n\n &-head-custom {\n .@{timeline-prefix-cls}-rtl & {\n right: 5px;\n left: auto;\n transform: translate(50%, -50%);\n }\n }\n\n &-content {\n .@{timeline-prefix-cls}-rtl & {\n margin: 0 18px 0 0;\n }\n }\n }\n\n &.@{timeline-prefix-cls}-alternate,\n &.@{timeline-prefix-cls}-right,\n &.@{timeline-prefix-cls}-label {\n .@{timeline-prefix-cls}-item {\n &-tail,\n &-head,\n &-head-custom {\n .@{timeline-prefix-cls}-rtl& {\n right: 50%;\n left: auto;\n }\n }\n\n &-head {\n .@{timeline-prefix-cls}-rtl& {\n margin-right: -4px;\n margin-left: 0;\n }\n\n &-custom {\n .@{timeline-prefix-cls}-rtl& {\n margin-right: 1px;\n margin-left: 0;\n }\n }\n }\n\n &-left {\n .@{timeline-prefix-cls}-item-content {\n .@{timeline-prefix-cls}-rtl& {\n right: calc(50% - 4px);\n left: auto;\n text-align: right;\n }\n }\n }\n\n &-right {\n .@{timeline-prefix-cls}-item-content {\n .@{timeline-prefix-cls}-rtl& {\n text-align: left;\n }\n }\n }\n }\n }\n\n &.@{timeline-prefix-cls}-right {\n .@{timeline-prefix-cls}-item-right {\n .@{timeline-prefix-cls}-item-tail,\n .@{timeline-prefix-cls}-item-head,\n .@{timeline-prefix-cls}-item-head-custom {\n .@{timeline-prefix-cls}-rtl& {\n right: 0;\n left: auto;\n }\n }\n\n .@{timeline-prefix-cls}-item-content {\n .@{timeline-prefix-cls}-rtl& {\n width: 100%;\n margin-right: 18px;\n text-align: right;\n }\n }\n }\n }\n\n &&-pending &-item-last &-item-tail {\n .@{timeline-prefix-cls}-rtl& {\n border-right: 2px dotted @timeline-color;\n border-left: none;\n }\n }\n\n &&-reverse &-item-pending {\n .@{timeline-prefix-cls}-item-tail {\n .@{timeline-prefix-cls}-rtl& {\n border-right: 2px dotted @timeline-color;\n border-left: none;\n }\n }\n }\n\n &.@{timeline-prefix-cls}-label {\n .@{timeline-prefix-cls}-item-label {\n .@{timeline-prefix-cls}-rtl& {\n text-align: left;\n }\n }\n .@{timeline-prefix-cls}-item-right {\n .@{timeline-prefix-cls}-item-label {\n .@{timeline-prefix-cls}-rtl& {\n right: calc(50% + 14px);\n text-align: right;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n\n@transfer-prefix-cls: ~'@{ant-prefix}-transfer';\n\n@table-prefix-cls: ~'@{ant-prefix}-table';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n.@{transfer-prefix-cls}-customize-list {\n .@{transfer-prefix-cls}-list {\n flex: 1 1 50%;\n width: auto;\n height: auto;\n min-height: @transfer-list-height;\n }\n\n // =================== Hook Components ===================\n .@{table-prefix-cls}-wrapper {\n .@{table-prefix-cls}-small {\n border: 0;\n border-radius: 0;\n\n .@{table-prefix-cls}-selection-column {\n width: 40px;\n min-width: 40px;\n }\n\n > .@{table-prefix-cls}-content {\n // Header background color\n > .@{table-prefix-cls}-body > table > .@{table-prefix-cls}-thead > tr > th {\n background: @table-header-bg;\n }\n\n .@{table-prefix-cls}-row:last-child td {\n border-bottom: @border-width-base @border-style-base @border-color-split;\n }\n }\n\n .@{table-prefix-cls}-body {\n margin: 0;\n }\n }\n\n .@{table-prefix-cls}-pagination.@{ant-prefix}-pagination {\n margin: 16px 0 4px;\n }\n }\n .@{input-prefix-cls} {\n &[disabled] {\n background-color: transparent;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../checkbox/style/mixin';\n@import './customize';\n@import './status';\n\n@transfer-prefix-cls: ~'@{ant-prefix}-transfer';\n\n@transfer-header-vertical-padding: ceil(\n ((@transfer-header-height - 1px - @font-size-base * @line-height-base) / 2)\n);\n\n.@{transfer-prefix-cls} {\n .reset-component();\n\n position: relative;\n display: flex;\n align-items: stretch;\n\n &-disabled {\n .@{transfer-prefix-cls}-list {\n background: @transfer-disabled-bg;\n }\n }\n\n &-list {\n display: flex;\n flex-direction: column;\n width: 180px;\n height: @transfer-list-height;\n border: @border-width-base @border-style-base @border-color-base;\n border-radius: @border-radius-base;\n\n &-with-pagination {\n width: 250px;\n height: auto;\n }\n\n &-search {\n .anticon-search {\n color: @disabled-color;\n }\n }\n\n &-header {\n display: flex;\n flex: none;\n align-items: center;\n height: @transfer-header-height;\n // border-top is on the transfer dom. We should minus 1px for this\n padding: (@transfer-header-vertical-padding - 1px) @control-padding-horizontal\n @transfer-header-vertical-padding;\n color: @text-color;\n background: @component-background;\n border-bottom: @border-width-base @border-style-base @border-color-split;\n border-radius: @border-radius-base @border-radius-base 0 0;\n\n > *:not(:last-child) {\n margin-right: 4px;\n }\n\n > * {\n flex: none;\n }\n\n &-title {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-align: right;\n text-overflow: ellipsis;\n }\n\n &-dropdown {\n font-size: 10px;\n transform: translateY(10%);\n cursor: pointer;\n\n &[disabled] {\n cursor: not-allowed;\n }\n }\n }\n\n &-body {\n display: flex;\n flex: auto;\n flex-direction: column;\n overflow: hidden;\n font-size: @font-size-base;\n\n &-search-wrapper {\n position: relative;\n flex: none;\n padding: @padding-sm;\n }\n }\n\n &-content {\n flex: auto;\n margin: 0;\n padding: 0;\n overflow: auto;\n list-style: none;\n\n &-item {\n display: flex;\n align-items: center;\n min-height: @transfer-item-height;\n padding: @transfer-item-padding-vertical @control-padding-horizontal;\n line-height: @transfer-item-height - 2 * @transfer-item-padding-vertical;\n transition: all 0.3s;\n\n > *:not(:last-child) {\n margin-right: 8px;\n }\n\n > * {\n flex: none;\n }\n\n &-text {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-remove {\n position: relative;\n color: @border-color-base;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n color: @link-hover-color;\n }\n\n &::after {\n position: absolute;\n top: -@transfer-item-padding-vertical;\n right: -50%;\n bottom: -@transfer-item-padding-vertical;\n left: -50%;\n content: '';\n }\n }\n }\n\n &-item:not(&-item-disabled) {\n &:hover {\n background-color: @transfer-item-hover-bg;\n cursor: pointer;\n }\n\n &.@{transfer-prefix-cls}-list-content-item-checked:hover {\n background-color: @transfer-item-selected-hover-bg;\n }\n }\n\n // Do not change hover style when `oneWay` mode\n &-show-remove &-item:not(&-item-disabled):hover {\n background: transparent;\n cursor: default;\n }\n\n &-item-checked {\n background-color: @item-active-bg;\n }\n\n &-item-disabled {\n color: @btn-disable-color;\n cursor: not-allowed;\n }\n }\n\n &-pagination {\n padding: @padding-xs 0;\n text-align: right;\n border-top: @border-width-base @border-style-base @border-color-split;\n }\n\n &-body-not-found {\n flex: none;\n width: 100%;\n margin: auto 0;\n color: @disabled-color;\n text-align: center;\n }\n\n &-footer {\n border-top: @border-width-base @border-style-base @border-color-split;\n }\n }\n\n &-operation {\n display: flex;\n flex: none;\n flex-direction: column;\n align-self: center;\n margin: 0 8px;\n vertical-align: middle;\n\n .@{ant-prefix}-btn {\n display: block;\n\n &:first-child {\n margin-bottom: 4px;\n }\n\n .@{iconfont-css-prefix} {\n font-size: 12px;\n }\n }\n }\n\n .@{ant-prefix}-empty-image {\n max-height: (@transfer-header-height / 2) - 22;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../input/style/mixin';\n\n@transfer-prefix-cls: ~'@{ant-prefix}-transfer';\n\n.transfer-status-color(@color) {\n .@{transfer-prefix-cls}-list {\n border-color: @color;\n\n &-search:not([disabled]) {\n border-color: @input-border-color;\n\n &:hover {\n .hover();\n }\n\n &:focus {\n .active();\n }\n }\n }\n}\n\n.@{transfer-prefix-cls} {\n &-status-error {\n .transfer-status-color(@error-color);\n }\n\n &-status-warning {\n .transfer-status-color(@warning-color);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../checkbox/style/mixin';\n\n@transfer-prefix-cls: ~'@{ant-prefix}-transfer';\n\n.@{transfer-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-list {\n &-search {\n .@{transfer-prefix-cls}-rtl & {\n padding-right: @control-padding-horizontal-sm;\n padding-left: 24px;\n }\n\n &-action {\n .@{transfer-prefix-cls}-rtl & {\n right: auto;\n left: 12px;\n }\n }\n }\n\n &-header {\n > *:not(:last-child) {\n .@{transfer-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n\n .@{transfer-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n\n &-title {\n .@{transfer-prefix-cls}-rtl & {\n text-align: left;\n }\n }\n }\n\n &-content {\n &-item {\n > *:not(:last-child) {\n .@{transfer-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n }\n }\n\n &-pagination {\n .@{transfer-prefix-cls}-rtl & {\n text-align: left;\n }\n }\n\n &-footer {\n .@{transfer-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../tree/style/mixin';\n@import '../../checkbox/style/mixin';\n\n@tree-select-prefix-cls: ~'@{ant-prefix}-tree-select';\n@select-tree-prefix-cls: ~'@{ant-prefix}-select-tree';\n\n.antCheckboxFn(@checkbox-prefix-cls: ~'@{select-tree-prefix-cls}-checkbox');\n\n.@{tree-select-prefix-cls} {\n // ======================= Dropdown =======================\n &-dropdown {\n padding: @padding-xs (@padding-xs / 2);\n\n &-rtl {\n direction: rtl;\n }\n // ======================== Tree ========================\n .@{select-tree-prefix-cls} {\n border-radius: 0;\n\n &-list-holder-inner {\n align-items: stretch;\n\n .@{select-tree-prefix-cls}-treenode {\n .@{select-tree-prefix-cls}-node-content-wrapper {\n flex: auto;\n }\n }\n }\n }\n }\n}\n\n.@{select-tree-prefix-cls} {\n .antTreeFn(@select-tree-prefix-cls);\n\n // change switcher icon rotation in rtl direction\n & &-switcher {\n &_close {\n .@{select-tree-prefix-cls}-switcher-icon {\n svg {\n .@{tree-select-prefix-cls}-dropdown-rtl & {\n transform: rotate(90deg);\n }\n }\n }\n }\n\n &-loading-icon {\n .@{tree-select-prefix-cls}-dropdown-rtl & {\n transform: scaleY(-1);\n }\n }\n }\n}\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@typography-prefix-cls: ~'@{ant-prefix}-typography';\n\n// =============== Basic ===============\n.@{typography-prefix-cls} {\n color: @text-color;\n word-break: break-word;\n\n &&-secondary {\n color: @text-color-secondary;\n }\n\n &&-success {\n color: @success-color;\n }\n\n &&-warning {\n color: @warning-color;\n }\n\n &&-danger {\n color: @error-color;\n\n a&:active,\n a&:focus {\n color: @error-color-active;\n }\n\n a&:hover {\n color: @error-color-hover;\n }\n }\n\n &&-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n user-select: none;\n }\n\n // Tag\n div&,\n p {\n .typography-paragraph();\n }\n\n h1&,\n div&-h1,\n div&-h1 > textarea,\n h1 {\n .typography-title-1();\n }\n\n h2&,\n div&-h2,\n div&-h2 > textarea,\n h2 {\n .typography-title-2();\n }\n\n h3&,\n div&-h3,\n div&-h3 > textarea,\n h3 {\n .typography-title-3();\n }\n\n h4&,\n div&-h4,\n div&-h4 > textarea,\n h4 {\n .typography-title-4();\n }\n\n h5&,\n div&-h5,\n div&-h5 > textarea,\n h5 {\n .typography-title-5();\n }\n\n h1&,\n h2&,\n h3&,\n h4&,\n h5& {\n .@{typography-prefix-cls} + & {\n margin-top: @typography-title-margin-top;\n }\n }\n\n div,\n ul,\n li,\n p,\n h1,\n h2,\n h3,\n h4,\n h5 {\n + h1,\n + h2,\n + h3,\n + h4,\n + h5 {\n margin-top: @typography-title-margin-top;\n }\n }\n\n a&-ellipsis,\n span&-ellipsis {\n display: inline-block;\n max-width: 100%;\n }\n\n a&,\n a {\n .operation-unit();\n text-decoration: @link-decoration;\n\n &:active,\n &:hover {\n text-decoration: @link-hover-decoration;\n }\n\n &[disabled],\n &.@{typography-prefix-cls}-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n\n &:active,\n &:hover {\n color: @disabled-color;\n }\n\n &:active {\n pointer-events: none;\n }\n }\n }\n\n code {\n margin: 0 0.2em;\n padding: 0.2em 0.4em 0.1em;\n font-size: 85%;\n background: rgba(150, 150, 150, 0.1);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-radius: 3px;\n }\n\n kbd {\n margin: 0 0.2em;\n padding: 0.15em 0.4em 0.1em;\n font-size: 90%;\n background: rgba(150, 150, 150, 0.06);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-bottom-width: 2px;\n border-radius: 3px;\n }\n\n mark {\n padding: 0;\n background-color: @gold-3;\n }\n\n u,\n ins {\n text-decoration: underline;\n text-decoration-skip-ink: auto;\n }\n\n s,\n del {\n text-decoration: line-through;\n }\n\n strong {\n font-weight: 600;\n }\n\n // Operation\n &-expand,\n &-edit,\n &-copy {\n .operation-unit();\n\n margin-left: 4px;\n }\n\n &-copy-success {\n &,\n &:hover,\n &:focus {\n color: @success-color;\n }\n }\n\n // Text input area\n &-edit-content {\n position: relative;\n\n div& {\n left: -@input-padding-horizontal - 1px;\n margin-top: -@input-padding-vertical-base - 1px;\n margin-bottom: calc(1em - @input-padding-vertical-base - 1px);\n }\n\n &-confirm {\n position: absolute;\n right: 10px;\n bottom: 8px;\n color: @text-color-secondary;\n // default style\n font-weight: normal;\n font-size: @font-size-base;\n font-style: normal;\n pointer-events: none;\n }\n\n // Fix Editable Textarea flash in Firefox\n textarea {\n // https://stackoverflow.com/a/7695964/3040605\n height: 1em;\n margin: 0 !important;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -moz-transition: none;\n }\n }\n\n // list\n ul,\n ol {\n margin: 0 0 1em;\n padding: 0;\n\n li {\n margin: 0 0 0 20px;\n padding: 0 0 0 4px;\n }\n }\n\n ul {\n list-style-type: circle;\n\n ul {\n list-style-type: disc;\n }\n }\n\n ol {\n list-style-type: decimal;\n }\n\n // pre & block\n pre,\n blockquote {\n margin: 1em 0;\n }\n\n pre {\n padding: 0.4em 0.6em;\n white-space: pre-wrap;\n word-wrap: break-word;\n background: rgba(150, 150, 150, 0.1);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-radius: 3px;\n\n // Compatible for marked\n code {\n display: inline;\n margin: 0;\n padding: 0;\n font-size: inherit;\n font-family: inherit;\n background: transparent;\n border: 0;\n }\n }\n\n blockquote {\n padding: 0 0 0 0.6em;\n border-left: 4px solid rgba(100, 100, 100, 0.2);\n opacity: 0.85;\n }\n\n // ============ Ellipsis ============\n &-single-line {\n white-space: nowrap;\n }\n\n &-ellipsis-single-line {\n overflow: hidden;\n text-overflow: ellipsis;\n\n // https://blog.csdn.net/iefreer/article/details/50421025\n a&,\n span& {\n vertical-align: bottom;\n }\n }\n\n &-ellipsis-multiple-line {\n /* stylelint-disable-next-line value-no-vendor-prefix */\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 3;\n\n /*! autoprefixer: ignore next */\n -webkit-box-orient: vertical;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","// =============== Common ===============\n.typography-paragraph() {\n margin-bottom: 1em;\n}\n\n.typography-title(@fontSize; @fontWeight; @lineHeight; @headingColor; @headingMarginBottom;) {\n margin-bottom: @headingMarginBottom;\n color: @headingColor;\n font-weight: @fontWeight;\n font-size: @fontSize;\n line-height: @lineHeight;\n}\n\n.typography-title-1() {\n .typography-title(\n @heading-1-size,\n @typography-title-font-weight,\n 1.23,\n @heading-color,\n @typography-title-margin-bottom\n );\n}\n.typography-title-2() {\n .typography-title(\n @heading-2-size,\n @typography-title-font-weight,\n 1.35,\n @heading-color,\n @typography-title-margin-bottom\n );\n}\n.typography-title-3() {\n .typography-title(\n @heading-3-size,\n @typography-title-font-weight,\n 1.35,\n @heading-color,\n @typography-title-margin-bottom\n );\n}\n.typography-title-4() {\n .typography-title(\n @heading-4-size,\n @typography-title-font-weight,\n 1.4,\n @heading-color,\n @typography-title-margin-bottom\n );\n}\n.typography-title-5() {\n .typography-title(\n @heading-5-size,\n @typography-title-font-weight,\n 1.5,\n @heading-color,\n @typography-title-margin-bottom\n );\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@typography-prefix-cls: ~'@{ant-prefix}-typography';\n\n.@{typography-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n // Operation\n &-expand,\n &-edit,\n &-copy {\n .@{typography-prefix-cls}-rtl & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n\n &-expand {\n .@{typography-prefix-cls}-rtl & {\n float: left;\n }\n }\n\n // Text input area\n &-edit-content {\n div& {\n &.@{typography-prefix-cls}-rtl {\n right: -@input-padding-horizontal - 1px;\n left: auto;\n }\n }\n\n &-confirm {\n .@{typography-prefix-cls}-rtl & {\n right: auto;\n left: 10px;\n }\n }\n }\n\n // list\n ul,\n ol {\n li {\n .@{typography-prefix-cls}-rtl& {\n margin: 0 20px 0 0;\n padding: 0 4px 0 0;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@upload-prefix-cls: ~'@{ant-prefix}-upload';\n@upload-item: ~'@{ant-prefix}-upload-list-item';\n@upload-picture-card-size: 104px;\n@upload-picture-card-border-style: @border-style-base;\n\n.@{upload-prefix-cls} {\n .reset-component();\n\n outline: 0;\n\n p {\n margin: 0;\n }\n\n &-btn {\n display: block;\n width: 100%;\n outline: none;\n }\n\n input[type='file'] {\n cursor: pointer;\n }\n\n &&-select {\n display: inline-block;\n }\n\n &&-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n }\n\n &&-select-picture-card {\n width: @upload-picture-card-size;\n height: @upload-picture-card-size;\n margin-right: 8px;\n margin-bottom: 8px;\n text-align: center;\n vertical-align: top;\n background-color: @background-color-light;\n border: @border-width-base dashed @border-color-base;\n border-radius: @border-radius-base;\n cursor: pointer;\n transition: border-color 0.3s;\n\n > .@{upload-prefix-cls} {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n }\n\n &:hover {\n border-color: @primary-color;\n .@{upload-prefix-cls}-disabled& {\n border-color: @border-color-base;\n }\n }\n }\n\n &&-drag {\n position: relative;\n width: 100%;\n height: 100%;\n text-align: center;\n background: @background-color-light;\n border: @border-width-base dashed @border-color-base;\n border-radius: @border-radius-base;\n cursor: pointer;\n transition: border-color 0.3s;\n\n .@{upload-prefix-cls} {\n padding: @padding-md 0;\n }\n\n &.@{upload-prefix-cls}-drag-hover:not(.@{upload-prefix-cls}-disabled) {\n border-color: @primary-7;\n }\n\n &.@{upload-prefix-cls}-disabled {\n cursor: not-allowed;\n }\n\n .@{upload-prefix-cls}-btn {\n display: table;\n height: 100%;\n }\n\n .@{upload-prefix-cls}-drag-container {\n display: table-cell;\n vertical-align: middle;\n }\n\n &:not(.@{upload-prefix-cls}-disabled):hover {\n border-color: @primary-5;\n }\n\n p.@{upload-prefix-cls}-drag-icon {\n .@{iconfont-css-prefix} {\n color: @primary-5;\n font-size: 48px;\n }\n\n margin-bottom: 20px;\n }\n p.@{upload-prefix-cls}-text {\n margin: 0 0 4px;\n color: @heading-color;\n font-size: @font-size-lg;\n }\n p.@{upload-prefix-cls}-hint {\n color: @text-color-secondary;\n font-size: @font-size-base;\n }\n\n .@{iconfont-css-prefix}-plus {\n color: @disabled-color;\n font-size: 30px;\n transition: all 0.3s;\n\n &:hover {\n color: @text-color-secondary;\n }\n }\n &:hover .@{iconfont-css-prefix}-plus {\n color: @text-color-secondary;\n }\n }\n\n &-picture-card-wrapper {\n .clearfix();\n\n display: inline-block;\n width: 100%;\n }\n}\n\n.@{upload-prefix-cls}-list {\n .reset-component();\n .clearfix();\n line-height: @line-height-base;\n\n // ============================ Item ============================\n &-item {\n position: relative;\n height: @line-height-base * @font-size-base;\n margin-top: @margin-xs;\n font-size: @font-size-base;\n\n &-name {\n display: inline-block;\n width: 100%;\n padding-left: @font-size-base + 8px;\n overflow: hidden;\n line-height: @line-height-base;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-card-actions {\n position: absolute;\n right: 0;\n\n &-btn {\n opacity: 0;\n }\n\n &-btn.@{ant-prefix}-btn-sm {\n height: @line-height-base * @font-size-base;\n line-height: 1;\n vertical-align: top;\n }\n\n &.picture {\n top: 22px;\n line-height: 0;\n }\n\n &-btn:focus,\n &.picture &-btn {\n opacity: 1;\n }\n\n .@{iconfont-css-prefix} {\n color: @upload-actions-color;\n transition: all 0.3s;\n }\n\n &:hover .@{iconfont-css-prefix} {\n color: @text-color;\n }\n }\n\n &-info {\n height: 100%;\n transition: background-color 0.3s;\n\n > span {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .@{iconfont-css-prefix}-loading,\n .@{upload-prefix-cls}-text-icon {\n .@{iconfont-css-prefix} {\n position: absolute;\n top: (@font-size-base / 2) - 2px;\n color: @text-color-secondary;\n font-size: @font-size-base;\n }\n }\n }\n\n &:hover &-info {\n background-color: @item-hover-bg;\n }\n\n &:hover &-card-actions-btn {\n opacity: 1;\n }\n\n &-error,\n &-error .@{upload-prefix-cls}-text-icon > .@{iconfont-css-prefix},\n &-error &-name {\n color: @error-color;\n }\n\n &-error &-card-actions {\n .@{iconfont-css-prefix} {\n color: @error-color;\n }\n\n &-btn {\n opacity: 1;\n }\n }\n\n &-progress {\n position: absolute;\n bottom: -12px;\n width: 100%;\n padding-left: @font-size-base + 12px;\n font-size: @font-size-base;\n line-height: 0;\n }\n }\n\n // =================== Picture & Picture Card ===================\n &-picture,\n &-picture-card {\n .@{upload-item} {\n position: relative;\n height: 66px;\n padding: @padding-xs;\n border: @border-width-base @upload-picture-card-border-style @border-color-base;\n border-radius: @border-radius-base;\n\n &:hover {\n background: transparent;\n }\n\n &-error {\n border-color: @error-color;\n }\n }\n\n .@{upload-item}-info {\n padding: 0;\n }\n\n .@{upload-item}:hover .@{upload-item}-info {\n background: transparent;\n }\n\n .@{upload-item}-uploading {\n border-style: dashed;\n }\n\n .@{upload-item}-thumbnail {\n width: 48px;\n height: 48px;\n line-height: 60px;\n text-align: center;\n opacity: 0.8;\n\n .@{iconfont-css-prefix} {\n font-size: 26px;\n }\n }\n\n // Adjust the color of the error icon : https://github.com/ant-design/ant-design/pull/24160\n .@{upload-item}-error .@{upload-item}-thumbnail {\n .@{iconfont-css-prefix} {\n svg path {\n &[fill='#e6f7ff'] {\n fill: @error-color-deprecated-bg;\n }\n\n &[fill='#1890ff'] {\n fill: @error-color;\n }\n }\n }\n }\n\n .@{upload-item}-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n font-size: 26px;\n transform: translate(-50%, -50%);\n\n .@{iconfont-css-prefix} {\n font-size: 26px;\n }\n }\n\n .@{upload-item}-image {\n max-width: 100%;\n }\n\n .@{upload-item}-thumbnail img {\n display: block;\n width: 48px;\n height: 48px;\n overflow: hidden;\n }\n\n .@{upload-item}-name {\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n margin: 0 0 0 8px;\n padding-right: 8px;\n padding-left: 48px;\n overflow: hidden;\n line-height: 44px;\n white-space: nowrap;\n text-overflow: ellipsis;\n transition: all 0.3s;\n }\n\n .@{upload-item}-uploading .@{upload-item}-name {\n margin-bottom: 12px;\n }\n\n .@{upload-item}-progress {\n bottom: 14px;\n width: ~'calc(100% - 24px)';\n margin-top: 0;\n padding-left: 56px;\n }\n }\n\n // ======================== Picture Card ========================\n &-picture-card {\n &-container {\n display: inline-block;\n width: @upload-picture-card-size;\n height: @upload-picture-card-size;\n margin: 0 @margin-xs @margin-xs 0;\n vertical-align: top;\n }\n\n .@{upload-item} {\n height: 100%;\n margin: 0;\n }\n\n .@{upload-item}-info {\n position: relative;\n height: 100%;\n overflow: hidden;\n\n &::before {\n position: absolute;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: fade(@black, 50%);\n opacity: 0;\n transition: all 0.3s;\n content: ' ';\n }\n }\n\n .@{upload-item}:hover .@{upload-item}-info::before {\n opacity: 1;\n }\n\n .@{upload-item}-actions {\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 10;\n white-space: nowrap;\n transform: translate(-50%, -50%);\n opacity: 0;\n transition: all 0.3s;\n\n .@{iconfont-css-prefix}-eye,\n .@{iconfont-css-prefix}-download,\n .@{iconfont-css-prefix}-delete {\n z-index: 10;\n width: 16px;\n margin: 0 4px;\n color: @text-color-dark;\n font-size: 16px;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n color: @text-color-inverse;\n }\n }\n }\n\n .@{upload-item}-info:hover + .@{upload-item}-actions,\n .@{upload-item}-actions:hover {\n opacity: 1;\n }\n\n .@{upload-item}-thumbnail,\n .@{upload-item}-thumbnail img {\n position: static;\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n .@{upload-item}-name {\n display: none;\n margin: 8px 0 0;\n padding: 0;\n line-height: @line-height-base;\n text-align: center;\n }\n\n .@{upload-item}-file + .@{upload-item}-name {\n position: absolute;\n bottom: 10px;\n display: block;\n }\n\n .@{upload-item}-uploading {\n &.@{upload-item} {\n background-color: @background-color-light;\n }\n\n .@{upload-item}-info {\n height: auto;\n\n &::before,\n .@{iconfont-css-prefix}-eye,\n .@{iconfont-css-prefix}-delete {\n display: none;\n }\n }\n }\n\n .@{upload-item}-progress {\n bottom: 32px;\n width: calc(100% - 14px);\n padding-left: 0;\n }\n }\n\n // ======================= Picture & Text =======================\n &-text,\n &-picture {\n &-container {\n transition: opacity @animation-duration-slow, height @animation-duration-slow;\n\n &::before {\n display: table;\n width: 0;\n height: 0;\n content: '';\n }\n\n // Don't know why span here, just stretch it\n .@{upload-prefix-cls}-span {\n display: block;\n flex: auto;\n }\n }\n\n // text & picture no need this additional element.\n // But it used for picture-card, let's keep it.\n .@{upload-prefix-cls}-span {\n display: flex;\n align-items: center;\n\n > * {\n flex: none;\n }\n }\n\n .@{upload-item}-name {\n flex: auto;\n margin: 0;\n padding: 0 @padding-xs;\n }\n\n .@{upload-item}-card-actions {\n position: static;\n }\n }\n\n // ============================ Text ============================\n &-text {\n .@{upload-prefix-cls}-text-icon {\n .@{iconfont-css-prefix} {\n position: static;\n }\n }\n }\n\n // =========================== Motion ===========================\n .@{upload-prefix-cls}-animate-inline-appear,\n .@{upload-prefix-cls}-animate-inline-enter,\n .@{upload-prefix-cls}-animate-inline-leave {\n animation-duration: @animation-duration-slow;\n animation-timing-function: @ease-in-out-circ;\n animation-fill-mode: forwards;\n }\n\n .@{upload-prefix-cls}-animate-inline-appear,\n .@{upload-prefix-cls}-animate-inline-enter {\n animation-name: uploadAnimateInlineIn;\n }\n\n .@{upload-prefix-cls}-animate-inline-leave {\n animation-name: uploadAnimateInlineOut;\n }\n}\n\n@keyframes uploadAnimateInlineIn {\n from {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n\n@keyframes uploadAnimateInlineOut {\n to {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@upload-prefix-cls: ~'@{ant-prefix}-upload';\n@upload-item: ~'@{ant-prefix}-upload-list-item';\n\n.@{upload-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &&-select-picture-card {\n .@{upload-prefix-cls}-rtl& {\n margin-right: auto;\n margin-left: 8px;\n }\n }\n}\n\n.@{upload-prefix-cls}-list {\n &-rtl {\n direction: rtl;\n }\n\n &-item-list-type-text {\n &:hover {\n .@{upload-prefix-cls}-list-item-name-icon-count-1 {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: 22px;\n padding-left: 14px;\n }\n }\n .@{upload-prefix-cls}-list-item-name-icon-count-2 {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: 22px;\n padding-left: 28px;\n }\n }\n }\n }\n\n &-item {\n &-name {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: @font-size-base + 8px;\n padding-left: 0;\n }\n }\n\n &-name-icon-count-1 {\n .@{upload-prefix-cls}-list-rtl & {\n padding-left: 14px;\n }\n }\n\n &-card-actions {\n .@{upload-prefix-cls}-list-rtl & {\n right: auto;\n left: 0;\n }\n .@{iconfont-css-prefix} {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: 0;\n padding-left: 5px;\n }\n }\n }\n\n &-info {\n .@{upload-prefix-cls}-list-rtl & {\n padding: 0 4px 0 12px;\n }\n }\n\n &-error &-card-actions {\n .@{iconfont-css-prefix} {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: 0;\n padding-left: 5px;\n }\n }\n }\n\n &-progress {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: @font-size-base + 12px;\n padding-left: 0;\n }\n }\n }\n\n &-picture,\n &-picture-card {\n .@{upload-item}-info {\n padding: 0;\n }\n\n .@{upload-item}-thumbnail {\n .@{upload-prefix-cls}-list-rtl& {\n right: 8px;\n left: auto;\n }\n }\n\n .@{upload-item}-icon {\n .@{upload-prefix-cls}-list-rtl& {\n right: 50%;\n left: auto;\n transform: translate(50%, -50%);\n }\n }\n\n .@{upload-item}-name {\n .@{upload-prefix-cls}-list-rtl& {\n margin: 0 8px 0 0;\n padding-right: 48px;\n padding-left: 8px;\n }\n }\n\n .@{upload-item}-name-icon-count-1 {\n .@{upload-prefix-cls}-list-rtl& {\n padding-right: 48px;\n padding-left: 18px;\n }\n }\n\n .@{upload-item}-name-icon-count-2 {\n .@{upload-prefix-cls}-list-rtl& {\n padding-right: 48px;\n padding-left: 36px;\n }\n }\n\n .@{upload-item}-progress {\n .@{upload-prefix-cls}-list-rtl& {\n padding-right: 0;\n padding-left: 0;\n }\n }\n }\n\n &-picture-card {\n &-container {\n .@{upload-prefix-cls}-list-rtl & {\n margin: 0 0 @margin-xs @margin-xs;\n }\n }\n\n .@{upload-item}-actions {\n .@{upload-prefix-cls}-list-rtl& {\n right: 50%;\n left: auto;\n transform: translate(50%, -50%);\n }\n }\n\n .@{upload-item}-file + .@{upload-item}-name {\n .@{upload-prefix-cls}-list-rtl& {\n margin: 8px 0 0;\n padding: 0;\n }\n }\n }\n}\n","@import '~antd/dist/antd.css';\n\n.App {\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n",".NavMenu {\n width: 220px;\n transition: ease 0.3s;\n transition-property: width;\n}\n\n.NavMenu.active {\n width: 0;\n}",".code-editor {\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.code-editor .code-box {\n float: left;\n width: 500px;\n position: relative;\n z-index: auto;\n}\n\n.code-editor .code-box .control {\n line-height: 36px;\n background-color: #eee;\n padding-right: 10px;\n height: 40px;\n}\n\n.code-editor .code-box .btn {\n float: right;\n margin-left: 10px;\n border-radius: 3px;\n background: 0 0;\n color: #32d3a6;\n border: 1px solid #32d3a6;\n padding: 0 10px;\n line-height: 24px;\n margin-top: 5px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.code-editor .code-box .editor-box {\n height: 100vh;\n overflow-y: auto;\n}\n\n.code-editor .code-box .editor-box .mask {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background: 0 0;\n z-index: 1000;\n}\n\n.code-editor .code-box .editor-box textarea {\n display: none;\n}\n\n.code-editor .code-box .editor-box #htmlEdit {\n height: 100%;\n}\n\n.code-editor .code-box .editor-box .cm-editor{\n height: 100%;\n}\n\n.code-editor .splitter {\n float: left;\n cursor: col-resize;\n background-color: #fff;\n width: 2px;\n height: 100vh;\n z-index: 99;\n}\n\n.code-editor .view-box {\n overflow: hidden;\n border-left: 0px solid #ccc;\n background-color: #fff;\n height: 100vh;\n}\n\n.code-editor .view-box iframe {\n border: 0;\n height: 100%;\n width: 100%;\n}",".demo {\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.demo .menu {\n position: relative;\n float: left;\n min-height: 100%;\n border-right: 1px solid #e6e6e6;\n}\n\n.demo .content {\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n\n.demo .links {\n position: absolute;\n bottom: 0px;\n left: 0px;\n background-color: #00000050;\n padding: 0 3px;\n text-decoration: none;\n font-size: 12px;\n}\n\n.demo .links a {\n cursor: pointer;\n color: white;\n}\n\n.demo .links a:hover {\n text-decoration: underline;\n}\n",".examples {\n width: 100%;\n height: 100%;\n overflow: hidden;\n background-color: #000000;\n}\n\n.examples .menu {\n position: fixed;\n top: 0;\n left: -500px;\n z-index: 10;\n width: 460px;\n height: 100%;\n padding: 0;\n transition: all 300ms ease-in-out;\n}\n\n.examples .menu.open {\n left: 0;\n opacity: 0.9;\n}\n\n.examples .menu.open:hover {\n left: 0;\n opacity: 1;\n}\n\n.examples .index-button {\n position: absolute;\n font-size: 38px;\n top: 15px;\n left: 20px;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n z-index: 10;\n transition: all 300ms ease-in-out;\n border: 0;\n background: transparent;\n cursor: pointer;\n color: #ccc;\n}\n\n.examples .index-button.open {\n left: 485px;\n /* color: white; */\n}\n\n.examples .content-container {\n position: absolute;\n z-index: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n overflow: hidden;\n opacity: 1.0;\n pointer-events: all;\n transition: all 300ms ease-in-out;\n background: lightblue;\n background: url(./../../../public/demo/images/dwg_background.png) no-repeat center center fixed;\n background-size: cover;\n}\n\n/* .examples .content-container.open {\n opacity: 0.4;\n pointer-events: none;\n} */\n\n.examples .content-container iframe {\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n/* .examples .content-overlay {\n position: absolute;\n z-index: 7;\n padding: 0;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n overflow: hidden;\n opacity: 1.0;\n pointer-events: none;\n transition: all 300ms ease-in-out;\n}\n\n.examples .content-overlay.open {\n pointer-events: all;\n} */\n\n.examples .page-title {\n position: absolute;\n font-size: 1.6rem;\n top: 25px;\n left: 75px;\n text-align: left;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n z-index: 5;\n transition: all 300ms ease-in-out;\n max-width: calc(100% - 450px);\n pointer-events: none;\n color: #ccc;\n}\n\n.examples .page-title.open {\n left: 545px;\n /* color: white; */\n}\n\n.examples .menu #index {\n position: absolute;\n width: 100%;\n height: 100%;\n background: #fdfdfd;\n overflow: auto;\n border-right: 2px solid #212529;\n padding: 20px;\n padding-bottom: 100px;\n user-select: none;\n top: 0;\n left: 0;\n}\n\n#index h1 {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 1.8rem;\n font-weight: normal;\n text-decoration: none !important;\n}\n\n#index h2 {\n font-size: 1.4rem;\n font-weight: normal;\n padding-top: 20px;\n padding-bottom: 10px;\n text-decoration: none;\n}\n\n#index hr {\n display: block;\n unicode-bidi: isolate;\n margin-block-start: 0.5em;\n margin-block-end: 0.5em;\n margin-inline-start: auto;\n margin-inline-end: auto;\n overflow: hidden;\n border-style: inset;\n border-width: 1px;\n}\n\n#index .link {\n margin-left: 0 !important;\n padding-left: 0 !important;\n padding-top: 1px;\n text-decoration: none;\n font-weight: normal;\n background: #fdfdfd;\n cursor: pointer;\n line-height: 1.5em;\n font-size: 1rem;\n}\n\n\nelement.style {\n}\n#index .link:hover {\n text-decoration: underline;\n}\n\n.examples .links {\n position: absolute;\n bottom: 0px;\n left: 0px;\n background-color: #00000050;\n padding: 0 3px;\n text-decoration: none;\n font-size: 12px;\n}\n\n.examples .links a {\n cursor: pointer;\n color: white;\n}\n\n.examples .links a:hover {\n text-decoration: underline;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/css/main.352fe986.css b/static/css/main.f052ad65.css similarity index 99% rename from static/css/main.352fe986.css rename to static/css/main.f052ad65.css index b16a54a..f3df377 100644 --- a/static/css/main.352fe986.css +++ b/static/css/main.f052ad65.css @@ -2,11 +2,11 @@ /*! * - * antd v4.24.13 + * antd v4.24.14 * * Copyright 2015-present, Alipay, Inc. * All rights reserved. * */[class*=ant-] input::-ms-clear,[class*=ant-] input::-ms-reveal,[class*=ant-]::-ms-clear,[class^=ant-] input::-ms-clear,[class^=ant-] input::-ms-reveal,[class^=ant-]::-ms-clear{display:none}body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}@-ms-viewport{width:device-width}body{font-feature-settings:"tnum","tnum";background-color:#fff;color:rgba(0,0,0,.85);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:14px;font-variant:tabular-nums;line-height:1.5715;margin:0}[tabindex="-1"]:focus{outline:none!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{color:rgba(0,0,0,.85);font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{-webkit-text-decoration-skip:objects;background-color:initial;color:#1890ff;cursor:pointer;outline:none;text-decoration:none;transition:color .3s}a:hover{color:#40a9ff}a:active{color:#096dd9}a:active,a:focus,a:hover{outline:0;text-decoration:none}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;color:rgba(0,0,0,.45);padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}::-moz-selection{background:#1890ff;color:#fff}::selection{background:#1890ff;color:#fff}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}.anticon{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;align-items:center;color:inherit;display:inline-flex;font-style:normal;line-height:0;text-align:center;text-rendering:optimizelegibility;text-transform:none;vertical-align:-.125em}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon>.anticon{line-height:0;vertical-align:0}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{animation:loadingCircle 1s linear infinite;display:inline-block}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-fade-appear.ant-fade-appear-active,.ant-fade-enter.ant-fade-enter-active{animation-name:antFadeIn;animation-play-state:running}.ant-fade-leave.ant-fade-leave-active{animation-name:antFadeOut;animation-play-state:running;pointer-events:none}.ant-fade-appear,.ant-fade-enter{animation-timing-function:linear;opacity:0}.ant-fade-leave{animation-timing-function:linear}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.ant-move-up-appear,.ant-move-up-enter,.ant-move-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-up-appear.ant-move-up-appear-active,.ant-move-up-enter.ant-move-up-enter-active{animation-name:antMoveUpIn;animation-play-state:running}.ant-move-up-leave.ant-move-up-leave-active{animation-name:antMoveUpOut;animation-play-state:running;pointer-events:none}.ant-move-up-appear,.ant-move-up-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-up-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-down-appear,.ant-move-down-enter,.ant-move-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-down-appear.ant-move-down-appear-active,.ant-move-down-enter.ant-move-down-enter-active{animation-name:antMoveDownIn;animation-play-state:running}.ant-move-down-leave.ant-move-down-leave-active{animation-name:antMoveDownOut;animation-play-state:running;pointer-events:none}.ant-move-down-appear,.ant-move-down-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-down-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-left-appear,.ant-move-left-enter,.ant-move-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-left-appear.ant-move-left-appear-active,.ant-move-left-enter.ant-move-left-enter-active{animation-name:antMoveLeftIn;animation-play-state:running}.ant-move-left-leave.ant-move-left-leave-active{animation-name:antMoveLeftOut;animation-play-state:running;pointer-events:none}.ant-move-left-appear,.ant-move-left-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-left-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-right-appear,.ant-move-right-enter,.ant-move-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-right-appear.ant-move-right-appear-active,.ant-move-right-enter.ant-move-right-enter-active{animation-name:antMoveRightIn;animation-play-state:running}.ant-move-right-leave.ant-move-right-leave-active{animation-name:antMoveRightOut;animation-play-state:running;pointer-events:none}.ant-move-right-appear,.ant-move-right-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-right-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@keyframes antMoveDownIn{0%{opacity:0;transform:translateY(100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@keyframes antMoveDownOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(100%);transform-origin:0 0}}@keyframes antMoveLeftIn{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes antMoveLeftOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}@keyframes antMoveRightIn{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes antMoveRightOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@keyframes antMoveUpIn{0%{opacity:0;transform:translateY(-100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@keyframes antMoveUpOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(-100%);transform-origin:0 0}}@keyframes loadingCircle{to{transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#1890ff;--scroll-bar:0}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation-fill-mode:forwards;border-radius:inherit;bottom:0;box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 var(--antd-wave-shadow-color);content:"";display:block;left:0;opacity:.2;pointer-events:none;position:absolute;right:0;top:0}@keyframes waveEffect{to{box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 6px #1890ff;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes fadeEffect{to{opacity:0}}.ant-slide-up-appear,.ant-slide-up-enter,.ant-slide-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-up-appear.ant-slide-up-appear-active,.ant-slide-up-enter.ant-slide-up-enter-active{animation-name:antSlideUpIn;animation-play-state:running}.ant-slide-up-leave.ant-slide-up-leave-active{animation-name:antSlideUpOut;animation-play-state:running;pointer-events:none}.ant-slide-up-appear,.ant-slide-up-enter{animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0;transform:scale(0);transform-origin:0 0}.ant-slide-up-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-down-appear,.ant-slide-down-enter,.ant-slide-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-down-appear.ant-slide-down-appear-active,.ant-slide-down-enter.ant-slide-down-enter-active{animation-name:antSlideDownIn;animation-play-state:running}.ant-slide-down-leave.ant-slide-down-leave-active{animation-name:antSlideDownOut;animation-play-state:running;pointer-events:none}.ant-slide-down-appear,.ant-slide-down-enter{animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0;transform:scale(0);transform-origin:0 0}.ant-slide-down-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-left-appear,.ant-slide-left-enter,.ant-slide-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-left-appear.ant-slide-left-appear-active,.ant-slide-left-enter.ant-slide-left-enter-active{animation-name:antSlideLeftIn;animation-play-state:running}.ant-slide-left-leave.ant-slide-left-leave-active{animation-name:antSlideLeftOut;animation-play-state:running;pointer-events:none}.ant-slide-left-appear,.ant-slide-left-enter{animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0;transform:scale(0);transform-origin:0 0}.ant-slide-left-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-right-appear,.ant-slide-right-enter,.ant-slide-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-right-appear.ant-slide-right-appear-active,.ant-slide-right-enter.ant-slide-right-enter-active{animation-name:antSlideRightIn;animation-play-state:running}.ant-slide-right-leave.ant-slide-right-leave-active{animation-name:antSlideRightOut;animation-play-state:running;pointer-events:none}.ant-slide-right-appear,.ant-slide-right-enter{animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0;transform:scale(0);transform-origin:0 0}.ant-slide-right-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@keyframes antSlideUpIn{0%{opacity:0;transform:scaleY(.8);transform-origin:0 0}to{opacity:1;transform:scaleY(1);transform-origin:0 0}}@keyframes antSlideUpOut{0%{opacity:1;transform:scaleY(1);transform-origin:0 0}to{opacity:0;transform:scaleY(.8);transform-origin:0 0}}@keyframes antSlideDownIn{0%{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}to{opacity:1;transform:scaleY(1);transform-origin:100% 100%}}@keyframes antSlideDownOut{0%{opacity:1;transform:scaleY(1);transform-origin:100% 100%}to{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}}@keyframes antSlideLeftIn{0%{opacity:0;transform:scaleX(.8);transform-origin:0 0}to{opacity:1;transform:scaleX(1);transform-origin:0 0}}@keyframes antSlideLeftOut{0%{opacity:1;transform:scaleX(1);transform-origin:0 0}to{opacity:0;transform:scaleX(.8);transform-origin:0 0}}@keyframes antSlideRightIn{0%{opacity:0;transform:scaleX(.8);transform-origin:100% 0}to{opacity:1;transform:scaleX(1);transform-origin:100% 0}}@keyframes antSlideRightOut{0%{opacity:1;transform:scaleX(1);transform-origin:100% 0}to{opacity:0;transform:scaleX(.8);transform-origin:100% 0}}.ant-zoom-appear,.ant-zoom-enter,.ant-zoom-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-appear.ant-zoom-appear-active,.ant-zoom-enter.ant-zoom-enter-active{animation-name:antZoomIn;animation-play-state:running}.ant-zoom-leave.ant-zoom-leave-active{animation-name:antZoomOut;animation-play-state:running;pointer-events:none}.ant-zoom-appear,.ant-zoom-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-appear-prepare,.ant-zoom-enter-prepare{transform:none}.ant-zoom-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-appear,.ant-zoom-big-enter,.ant-zoom-big-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-big-appear.ant-zoom-big-appear-active,.ant-zoom-big-enter.ant-zoom-big-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.ant-zoom-big-leave.ant-zoom-big-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.ant-zoom-big-appear,.ant-zoom-big-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-big-appear-prepare,.ant-zoom-big-enter-prepare{transform:none}.ant-zoom-big-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter,.ant-zoom-big-fast-leave{animation-duration:.1s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active,.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-big-fast-appear-prepare,.ant-zoom-big-fast-enter-prepare{transform:none}.ant-zoom-big-fast-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-up-appear,.ant-zoom-up-enter,.ant-zoom-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-up-appear.ant-zoom-up-appear-active,.ant-zoom-up-enter.ant-zoom-up-enter-active{animation-name:antZoomUpIn;animation-play-state:running}.ant-zoom-up-leave.ant-zoom-up-leave-active{animation-name:antZoomUpOut;animation-play-state:running;pointer-events:none}.ant-zoom-up-appear,.ant-zoom-up-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-up-appear-prepare,.ant-zoom-up-enter-prepare{transform:none}.ant-zoom-up-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-down-appear,.ant-zoom-down-enter,.ant-zoom-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-down-appear.ant-zoom-down-appear-active,.ant-zoom-down-enter.ant-zoom-down-enter-active{animation-name:antZoomDownIn;animation-play-state:running}.ant-zoom-down-leave.ant-zoom-down-leave-active{animation-name:antZoomDownOut;animation-play-state:running;pointer-events:none}.ant-zoom-down-appear,.ant-zoom-down-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-down-appear-prepare,.ant-zoom-down-enter-prepare{transform:none}.ant-zoom-down-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-left-appear,.ant-zoom-left-enter,.ant-zoom-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-left-appear.ant-zoom-left-appear-active,.ant-zoom-left-enter.ant-zoom-left-enter-active{animation-name:antZoomLeftIn;animation-play-state:running}.ant-zoom-left-leave.ant-zoom-left-leave-active{animation-name:antZoomLeftOut;animation-play-state:running;pointer-events:none}.ant-zoom-left-appear,.ant-zoom-left-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-left-appear-prepare,.ant-zoom-left-enter-prepare{transform:none}.ant-zoom-left-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-right-appear,.ant-zoom-right-enter,.ant-zoom-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-right-appear.ant-zoom-right-appear-active,.ant-zoom-right-enter.ant-zoom-right-enter-active{animation-name:antZoomRightIn;animation-play-state:running}.ant-zoom-right-leave.ant-zoom-right-leave-active{animation-name:antZoomRightOut;animation-play-state:running;pointer-events:none}.ant-zoom-right-appear,.ant-zoom-right-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-right-appear-prepare,.ant-zoom-right-enter-prepare{transform:none}.ant-zoom-right-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@keyframes antZoomIn{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes antZoomOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.2)}}@keyframes antZoomBigIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes antZoomBigOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes antZoomUpIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 0}to{transform:scale(1);transform-origin:50% 0}}@keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}to{opacity:0;transform:scale(.8);transform-origin:50% 0}}@keyframes antZoomLeftIn{0%{opacity:0;transform:scale(.8);transform-origin:0 50%}to{transform:scale(1);transform-origin:0 50%}}@keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}to{opacity:0;transform:scale(.8);transform-origin:0 50%}}@keyframes antZoomRightIn{0%{opacity:0;transform:scale(.8);transform-origin:100% 50%}to{transform:scale(1);transform-origin:100% 50%}}@keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}to{opacity:0;transform:scale(.8);transform-origin:100% 50%}}@keyframes antZoomDownIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 100%}to{transform:scale(1);transform-origin:50% 100%}}@keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}to{opacity:0;transform:scale(.8);transform-origin:50% 100%}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}.ant-affix{position:fixed;z-index:10}.ant-alert{font-feature-settings:"tnum","tnum";word-wrap:break-word;align-items:center;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);display:flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:8px 15px;position:relative}.ant-alert-content{flex:1 1;min-width:0}.ant-alert-icon{margin-right:8px}.ant-alert-description{display:none;font-size:14px;line-height:22px}.ant-alert-success{background-color:#f6ffed;border:1px solid #b7eb8f}.ant-alert-success .ant-alert-icon{color:#52c41a}.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}.ant-alert-info .ant-alert-icon{color:#1890ff}.ant-alert-warning{background-color:#fffbe6;border:1px solid #ffe58f}.ant-alert-warning .ant-alert-icon{color:#faad14}.ant-alert-error{background-color:#fff2f0;border:1px solid #ffccc7}.ant-alert-error .ant-alert-icon{color:#ff4d4f}.ant-alert-error .ant-alert-description>pre{margin:0;padding:0}.ant-alert-action{margin-left:8px}.ant-alert-close-icon{background-color:initial;border:none;cursor:pointer;font-size:12px;line-height:12px;margin-left:8px;outline:none;overflow:hidden;padding:0}.ant-alert-close-icon .anticon-close{color:rgba(0,0,0,.45);transition:color .3s}.ant-alert-close-icon .anticon-close:hover{color:rgba(0,0,0,.75)}.ant-alert-close-text{color:rgba(0,0,0,.45);transition:color .3s}.ant-alert-close-text:hover{color:rgba(0,0,0,.75)}.ant-alert-with-description{align-items:flex-start;padding:15px 15px 15px 24px}.ant-alert-with-description.ant-alert-no-icon{padding:15px}.ant-alert-with-description .ant-alert-icon{font-size:24px;margin-right:15px}.ant-alert-with-description .ant-alert-message{color:rgba(0,0,0,.85);display:block;font-size:16px;margin-bottom:4px}.ant-alert-message{color:rgba(0,0,0,.85)}.ant-alert-with-description .ant-alert-description{display:block}.ant-alert.ant-alert-motion-leave{opacity:1;overflow:hidden;transition:max-height .3s cubic-bezier(.78,.14,.15,.86),opacity .3s cubic-bezier(.78,.14,.15,.86),padding-top .3s cubic-bezier(.78,.14,.15,.86),padding-bottom .3s cubic-bezier(.78,.14,.15,.86),margin-bottom .3s cubic-bezier(.78,.14,.15,.86)}.ant-alert.ant-alert-motion-leave-active{margin-bottom:0!important;max-height:0;opacity:0;padding-bottom:0;padding-top:0}.ant-alert-banner{border:0;border-radius:0;margin-bottom:0}.ant-alert.ant-alert-rtl{direction:rtl}.ant-alert-rtl .ant-alert-icon{margin-left:8px;margin-right:auto}.ant-alert-rtl .ant-alert-action,.ant-alert-rtl .ant-alert-close-icon{margin-left:auto;margin-right:8px}.ant-alert-rtl.ant-alert-with-description{padding-left:15px;padding-right:24px}.ant-alert-rtl.ant-alert-with-description .ant-alert-icon{margin-left:15px;margin-right:auto}.ant-anchor{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0 0 0 2px;position:relative}.ant-anchor-wrapper{background-color:initial;margin-left:-4px;overflow:auto;padding-left:4px}.ant-anchor-ink{height:100%;left:0;position:absolute;top:0}.ant-anchor-ink:before{background-color:#f0f0f0;content:" ";display:block;height:100%;margin:0 auto;position:relative;width:2px}.ant-anchor-ink-ball{background-color:#fff;border:2px solid #1890ff;border-radius:8px;display:none;height:8px;left:50%;position:absolute;transform:translateX(-50%);transition:top .3s ease-in-out;width:8px}.ant-anchor-ink-ball.ant-anchor-ink-ball-visible{display:inline-block}.ant-anchor-fixed .ant-anchor-ink .ant-anchor-ink-ball{display:none}.ant-anchor-link{padding:4px 0 4px 16px}.ant-anchor-link-title{color:rgba(0,0,0,.85);display:block;margin-bottom:3px;overflow:hidden;position:relative;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-anchor-link-title:only-child{margin-bottom:0}.ant-anchor-link-active>.ant-anchor-link-title{color:#1890ff}.ant-anchor-link .ant-anchor-link{padding-bottom:2px;padding-top:2px}.ant-anchor-rtl{direction:rtl}.ant-anchor-rtl.ant-anchor-wrapper{margin-left:0;margin-right:-4px;padding-left:0;padding-right:4px}.ant-anchor-rtl .ant-anchor-ink{left:auto;right:0}.ant-anchor-rtl .ant-anchor-ink-ball{left:0;right:50%;transform:translateX(50%)}.ant-anchor-rtl .ant-anchor-link{padding:4px 16px 4px 0}.ant-select-auto-complete{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-select-auto-complete .ant-select-clear{right:13px}.ant-select-single .ant-select-selector{display:flex}.ant-select-single .ant-select-selector .ant-select-selection-search{bottom:0;left:11px;position:absolute;right:11px;top:0}.ant-select-single .ant-select-selector .ant-select-selection-search-input{width:100%}.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{line-height:30px;padding:0;transition:all .3s,visibility 0s}.ant-select-single .ant-select-selector .ant-select-selection-item{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-single .ant-select-selector .ant-select-selection-placeholder{pointer-events:none;transition:none}.ant-select-single .ant-select-selector .ant-select-selection-item:after,.ant-select-single .ant-select-selector .ant-select-selection-placeholder:after,.ant-select-single .ant-select-selector:after{content:"\a0";display:inline-block;visibility:hidden;width:0}.ant-select-single.ant-select-show-arrow .ant-select-selection-search{right:25px}.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-right:18px}.ant-select-single.ant-select-open .ant-select-selection-item{color:#bfbfbf}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{height:32px;padding:0 11px;width:100%}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{height:30px}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector:after{line-height:30px}.ant-select-single.ant-select-customize-input .ant-select-selector:after{display:none}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search{position:static;width:100%}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder{left:0;padding:0 11px;position:absolute;right:0}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder:after{display:none}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{height:40px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector:after{line-height:38px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:38px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{height:24px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector:after{line-height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search{left:7px;right:7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{padding:0 7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:28px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-right:21px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{padding:0 11px}.ant-select-selection-overflow{display:flex;flex:auto;flex-wrap:wrap;max-width:100%;position:relative}.ant-select-selection-overflow-item{align-self:center;flex:none;max-width:100%}.ant-select-multiple .ant-select-selector{align-items:center;display:flex;flex-wrap:wrap;padding:1px 4px}.ant-select-show-search.ant-select-multiple .ant-select-selector{cursor:text}.ant-select-disabled.ant-select-multiple .ant-select-selector{background:#f5f5f5;cursor:not-allowed}.ant-select-multiple .ant-select-selector:after{content:"\a0";display:inline-block;line-height:24px;margin:2px 0;visibility:hidden;width:0}.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:24px}.ant-select-multiple .ant-select-selection-item{background:#f5f5f5;border:1px solid #f0f0f0;border-radius:2px;box-sizing:border-box;cursor:default;display:flex;flex:none;height:24px;line-height:22px;margin-bottom:2px;margin-top:2px;margin-inline-end:4px;max-width:100%;padding-inline-end:4px;padding-inline-start:8px;position:relative;transition:font-size .3s,line-height .3s,height .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-disabled.ant-select-multiple .ant-select-selection-item{border-color:#d9d9d9;color:#bfbfbf;cursor:not-allowed}.ant-select-multiple .ant-select-selection-item-content{display:inline-block;margin-right:4px;overflow:hidden;text-overflow:ellipsis;white-space:pre}.ant-select-multiple .ant-select-selection-item-remove{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;align-items:center;color:inherit;color:rgba(0,0,0,.45);cursor:pointer;display:inline-flex;font-size:10px;font-style:normal;font-weight:700;line-height:0;line-height:inherit;text-align:center;text-rendering:optimizelegibility;text-transform:none;vertical-align:-.125em}.ant-select-multiple .ant-select-selection-item-remove>*{line-height:1}.ant-select-multiple .ant-select-selection-item-remove svg{display:inline-block}.ant-select-multiple .ant-select-selection-item-remove:before{display:none}.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon{display:block}.ant-select-multiple .ant-select-selection-item-remove>.anticon{vertical-align:middle}.ant-select-multiple .ant-select-selection-item-remove:hover{color:rgba(0,0,0,.75)}.ant-select-multiple .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-search{margin-inline-start:0}.ant-select-multiple .ant-select-selection-search{margin-inline-start:7px;max-width:100%;position:relative}.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;height:24px;line-height:24px;transition:all .3s}.ant-select-multiple .ant-select-selection-search-input{min-width:4.1px;width:100%}.ant-select-multiple .ant-select-selection-search-mirror{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.ant-select-multiple .ant-select-selection-placeholder{left:11px;position:absolute;right:11px;top:50%;transform:translateY(-50%);transition:all .3s}.ant-select-multiple.ant-select-lg .ant-select-selector:after{line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{height:32px;line-height:30px}.ant-select-multiple.ant-select-lg .ant-select-selection-search{height:32px;line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror{height:32px;line-height:30px}.ant-select-multiple.ant-select-sm .ant-select-selector:after{line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-item{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{height:16px;line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{left:7px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{margin-inline-start:3px}.ant-select-disabled .ant-select-selection-item-remove{display:none}.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{background-color:#fff;border-color:#ff4d4f!important}.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-focused .ant-select-selector,.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-open .ant-select-selector{border-color:#ff7875;border-right-width:1px;box-shadow:0 0 0 2px rgba(255,77,79,.2);outline:0}.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{background-color:#fff;border-color:#faad14!important}.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-focused .ant-select-selector,.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-open .ant-select-selector{border-color:#ffc53d;border-right-width:1px;box-shadow:0 0 0 2px rgba(250,173,20,.2);outline:0}.ant-select-status-error.ant-select-has-feedback .ant-select-clear,.ant-select-status-success.ant-select-has-feedback .ant-select-clear,.ant-select-status-validating.ant-select-has-feedback .ant-select-clear,.ant-select-status-warning.ant-select-has-feedback .ant-select-clear{right:32px}.ant-select-status-error.ant-select-has-feedback .ant-select-selection-selected-value,.ant-select-status-success.ant-select-has-feedback .ant-select-selection-selected-value,.ant-select-status-validating.ant-select-has-feedback .ant-select-selection-selected-value,.ant-select-status-warning.ant-select-has-feedback .ant-select-selection-selected-value{padding-right:42px}.ant-select{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-select:not(.ant-select-customize-input) .ant-select-selector{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;position:relative;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:pointer}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector{cursor:text}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:auto}.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:#f5f5f5;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:#f5f5f5}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:not-allowed}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;margin:0;outline:none;padding:0}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#40a9ff;border-right-width:1px}.ant-select-selection-item{flex:1 1;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (-ms-high-contrast:none){.ant-select-selection-item,.ant-select-selection-item ::-ms-backdrop{flex:auto}}.ant-select-selection-placeholder{color:#bfbfbf;flex:1 1;overflow:hidden;pointer-events:none;text-overflow:ellipsis;white-space:nowrap}@media (-ms-high-contrast:none){.ant-select-selection-placeholder,.ant-select-selection-placeholder ::-ms-backdrop{flex:auto}}.ant-select-arrow{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;align-items:center;color:inherit;color:rgba(0,0,0,.25);display:inline-flex;display:flex;font-size:12px;font-style:normal;height:12px;line-height:0;line-height:1;margin-top:-6px;pointer-events:none;position:absolute;right:11px;text-align:center;text-rendering:optimizelegibility;text-transform:none;top:50%;vertical-align:-.125em}.ant-select-arrow>*{line-height:1}.ant-select-arrow svg{display:inline-block}.ant-select-arrow:before{display:none}.ant-select-arrow .ant-select-arrow-icon{display:block}.ant-select-arrow .anticon{transition:transform .3s;vertical-align:top}.ant-select-arrow .anticon>svg{vertical-align:top}.ant-select-arrow .anticon:not(.ant-select-suffix){pointer-events:auto}.ant-select-disabled .ant-select-arrow{cursor:not-allowed}.ant-select-arrow>:not(:last-child){margin-inline-end:8px}.ant-select-clear{background:#fff;color:rgba(0,0,0,.25);cursor:pointer;display:inline-block;font-size:12px;font-style:normal;height:12px;line-height:1;margin-top:-6px;opacity:0;position:absolute;right:11px;text-align:center;text-rendering:auto;text-transform:none;top:50%;transition:color .3s ease,opacity .15s ease;width:12px;z-index:1}.ant-select-clear:before{display:block}.ant-select-clear:hover{color:rgba(0,0,0,.45)}.ant-select:hover .ant-select-clear{opacity:1}.ant-select-dropdown{font-feature-settings:"tnum","tnum",;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;font-variant:normal;left:-9999px;line-height:1.5715;list-style:none;margin:0;outline:none;overflow:hidden;padding:4px 0;position:absolute;top:-9999px;z-index:1050}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpIn}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownIn}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpOut}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownOut}.ant-select-dropdown-hidden{display:none}.ant-select-dropdown-empty{color:rgba(0,0,0,.25)}.ant-select-item-empty{color:rgba(0,0,0,.85);color:rgba(0,0,0,.25)}.ant-select-item,.ant-select-item-empty{display:block;font-size:14px;font-weight:400;line-height:22px;min-height:32px;padding:5px 12px;position:relative}.ant-select-item{color:rgba(0,0,0,.85);cursor:pointer;transition:background .3s ease}.ant-select-item-group{color:rgba(0,0,0,.45);cursor:default;font-size:12px}.ant-select-item-option{display:flex}.ant-select-item-option-content{flex:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-select-item-option-state{flex:none}.ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:#f5f5f5}.ant-select-item-option-selected:not(.ant-select-item-option-disabled){background-color:#e6f7ff;color:rgba(0,0,0,.85);font-weight:600}.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state{color:#1890ff}.ant-select-item-option-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-item-option-disabled.ant-select-item-option-selected{background-color:#f5f5f5}.ant-select-item-option-grouped{padding-left:24px}.ant-select-lg{font-size:16px}.ant-select-borderless .ant-select-selector{background-color:initial!important;border-color:transparent!important;box-shadow:none!important}.ant-select.ant-select-in-form-item{width:100%}.ant-select-compact-item:not(.ant-select-compact-last-item){margin-right:-1px}.ant-select-compact-item:not(.ant-select-compact-last-item).ant-select-compact-item-rtl{margin-left:-1px;margin-right:0}.ant-select-compact-item.ant-select-focused>*,.ant-select-compact-item:active>*,.ant-select-compact-item:focus>*,.ant-select-compact-item:hover>*{z-index:2}.ant-select-compact-item[disabled]>*{z-index:0}.ant-select-compact-item:not(.ant-select-compact-first-item):not(.ant-select-compact-last-item).ant-select>.ant-select-selector{border-radius:0}.ant-select-compact-item.ant-select-compact-first-item.ant-select:not(.ant-select-compact-last-item):not(.ant-select-compact-item-rtl)>.ant-select-selector{border-bottom-right-radius:0;border-top-right-radius:0}.ant-select-compact-item.ant-select-compact-last-item.ant-select:not(.ant-select-compact-first-item):not(.ant-select-compact-item-rtl)>.ant-select-selector,.ant-select-compact-item.ant-select.ant-select-compact-first-item.ant-select-compact-item-rtl:not(.ant-select-compact-last-item)>.ant-select-selector{border-bottom-left-radius:0;border-top-left-radius:0}.ant-select-compact-item.ant-select.ant-select-compact-last-item.ant-select-compact-item-rtl:not(.ant-select-compact-first-item)>.ant-select-selector{border-bottom-right-radius:0;border-top-right-radius:0}.ant-select-rtl{direction:rtl}.ant-select-rtl .ant-select-arrow,.ant-select-rtl .ant-select-clear{left:11px;right:auto}.ant-select-dropdown-rtl{direction:rtl}.ant-select-dropdown-rtl .ant-select-item-option-grouped{padding-left:12px;padding-right:24px}.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-left:24px;padding-right:4px}.ant-select-rtl.ant-select-multiple .ant-select-selection-item{text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content{margin-left:4px;margin-right:0;text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror{left:auto;right:0}.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder{left:auto;right:11px}.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{right:7px}.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder{left:9px;right:0;text-align:right}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search{left:25px;right:11px}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-left:18px;padding-right:0}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:6px}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-left:21px;padding-right:0}.ant-empty{font-size:14px;line-height:1.5715;margin:0 8px;text-align:center}.ant-empty-image{height:100px;margin-bottom:8px}.ant-empty-image img{height:100%}.ant-empty-image svg{height:100%;margin:auto}.ant-empty-footer{margin-top:16px}.ant-empty-normal{color:rgba(0,0,0,.25);margin:32px 0}.ant-empty-normal .ant-empty-image{height:40px}.ant-empty-small{color:rgba(0,0,0,.25);margin:8px 0}.ant-empty-small .ant-empty-image{height:35px}.ant-empty-img-default-ellipse{fill:#f5f5f5;fill-opacity:.8}.ant-empty-img-default-path-1{fill:#aeb8c2}.ant-empty-img-default-path-2{fill:url(#linearGradient-1)}.ant-empty-img-default-path-3{fill:#f5f5f7}.ant-empty-img-default-path-4,.ant-empty-img-default-path-5{fill:#dce0e6}.ant-empty-img-default-g{fill:#fff}.ant-empty-img-simple-ellipse{fill:#f5f5f5}.ant-empty-img-simple-g{stroke:#d9d9d9}.ant-empty-img-simple-path{fill:#fafafa}.ant-empty-rtl{direction:rtl}.ant-avatar{font-feature-settings:"tnum","tnum";background:#ccc;border-radius:50%;box-sizing:border-box;color:rgba(0,0,0,.85);color:#fff;display:inline-block;font-size:14px;font-variant:tabular-nums;height:32px;line-height:1.5715;line-height:32px;list-style:none;margin:0;overflow:hidden;padding:0;position:relative;text-align:center;vertical-align:middle;white-space:nowrap;width:32px}.ant-avatar-image{background:transparent}.ant-avatar .ant-image-img{display:block}.ant-avatar-string{left:50%;position:absolute;transform-origin:0 center}.ant-avatar.ant-avatar-icon{font-size:18px}.ant-avatar.ant-avatar-icon>.anticon{margin:0}.ant-avatar-lg{border-radius:50%;height:40px;line-height:40px;width:40px}.ant-avatar-lg-string{left:50%;position:absolute;transform-origin:0 center}.ant-avatar-lg.ant-avatar-icon{font-size:24px}.ant-avatar-lg.ant-avatar-icon>.anticon{margin:0}.ant-avatar-sm{border-radius:50%;height:24px;line-height:24px;width:24px}.ant-avatar-sm-string{left:50%;position:absolute;transform-origin:0 center}.ant-avatar-sm.ant-avatar-icon{font-size:14px}.ant-avatar-sm.ant-avatar-icon>.anticon{margin:0}.ant-avatar-square{border-radius:2px}.ant-avatar>img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.ant-avatar-group{display:inline-flex}.ant-avatar-group .ant-avatar{border:1px solid #fff}.ant-avatar-group .ant-avatar:not(:first-child){margin-left:-8px}.ant-avatar-group-popover .ant-avatar+.ant-avatar{margin-left:3px}.ant-avatar-group-rtl .ant-avatar:not(:first-child){margin-left:0;margin-right:-8px}.ant-avatar-group-popover.ant-popover-rtl .ant-avatar+.ant-avatar{margin-left:0;margin-right:3px}.ant-popover{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:auto;font-size:14px;font-variant:tabular-nums;font-weight:400;left:0;line-height:1.5715;list-style:none;margin:0;max-width:100vw;padding:0;position:absolute;text-align:left;top:0;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;white-space:normal;z-index:1030}.ant-popover-content{position:relative}.ant-popover:after{background:hsla(0,0%,100%,.01);content:"";position:absolute}.ant-popover-hidden{display:none}.ant-popover-placement-top,.ant-popover-placement-topLeft,.ant-popover-placement-topRight{padding-bottom:15.3137085px}.ant-popover-placement-right,.ant-popover-placement-rightBottom,.ant-popover-placement-rightTop{padding-left:15.3137085px}.ant-popover-placement-bottom,.ant-popover-placement-bottomLeft,.ant-popover-placement-bottomRight{padding-top:15.3137085px}.ant-popover-placement-left,.ant-popover-placement-leftBottom,.ant-popover-placement-leftTop{padding-right:15.3137085px}.ant-popover-inner{background-clip:padding-box;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-popover-inner{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}}.ant-popover-title{border-bottom:1px solid #f0f0f0;color:rgba(0,0,0,.85);font-weight:500;margin:0;min-height:32px;min-width:177px;padding:5px 16px 4px}.ant-popover-inner-content{color:rgba(0,0,0,.85);max-width:100%;padding:12px 16px;width:-moz-max-content;width:max-content}.ant-popover-message{color:rgba(0,0,0,.85);display:flex;font-size:14px;padding:4px 0 12px}.ant-popover-message-icon{color:#faad14;display:inline-block;font-size:14px;margin-right:8px}.ant-popover-buttons{margin-bottom:4px;text-align:right}.ant-popover-buttons button:not(:first-child){margin-left:8px}.ant-popover-arrow{background:transparent;display:block;height:22px;overflow:hidden;pointer-events:none;position:absolute;width:22px}.ant-popover-arrow-content{--antd-arrow-background-color:#fff;border-radius:0 0 2px;bottom:0;content:"";display:block;height:11.3137085px;left:0;margin:auto;pointer-events:auto;pointer-events:none;position:absolute;right:0;top:0;width:11.3137085px}.ant-popover-arrow-content:before{background:var(--antd-arrow-background-color);background-position:-10px -10px;background-repeat:no-repeat;-webkit-clip-path:inset(33% 33%);clip-path:inset(33% 33%);-webkit-clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");content:"";height:33.9411255px;left:-11.3137085px;position:absolute;top:-11.3137085px;width:33.9411255px}.ant-popover-placement-top .ant-popover-arrow,.ant-popover-placement-topLeft .ant-popover-arrow,.ant-popover-placement-topRight .ant-popover-arrow{bottom:0;transform:translateY(100%)}.ant-popover-placement-top .ant-popover-arrow-content,.ant-popover-placement-topLeft .ant-popover-arrow-content,.ant-popover-placement-topRight .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-11px) rotate(45deg)}.ant-popover-placement-top .ant-popover-arrow{left:50%;transform:translateY(100%) translateX(-50%)}.ant-popover-placement-topLeft .ant-popover-arrow{left:16px}.ant-popover-placement-topRight .ant-popover-arrow{right:16px}.ant-popover-placement-right .ant-popover-arrow,.ant-popover-placement-rightBottom .ant-popover-arrow,.ant-popover-placement-rightTop .ant-popover-arrow{left:0;transform:translateX(-100%)}.ant-popover-placement-right .ant-popover-arrow-content,.ant-popover-placement-rightBottom .ant-popover-arrow-content,.ant-popover-placement-rightTop .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateX(11px) rotate(135deg)}.ant-popover-placement-right .ant-popover-arrow{top:50%;transform:translateX(-100%) translateY(-50%)}.ant-popover-placement-rightTop .ant-popover-arrow{top:12px}.ant-popover-placement-rightBottom .ant-popover-arrow{bottom:12px}.ant-popover-placement-bottom .ant-popover-arrow,.ant-popover-placement-bottomLeft .ant-popover-arrow,.ant-popover-placement-bottomRight .ant-popover-arrow{top:0;transform:translateY(-100%)}.ant-popover-placement-bottom .ant-popover-arrow-content,.ant-popover-placement-bottomLeft .ant-popover-arrow-content,.ant-popover-placement-bottomRight .ant-popover-arrow-content{box-shadow:2px 2px 5px rgba(0,0,0,.06);transform:translateY(11px) rotate(-135deg)}.ant-popover-placement-bottom .ant-popover-arrow{left:50%;transform:translateY(-100%) translateX(-50%)}.ant-popover-placement-bottomLeft .ant-popover-arrow{left:16px}.ant-popover-placement-bottomRight .ant-popover-arrow{right:16px}.ant-popover-placement-left .ant-popover-arrow,.ant-popover-placement-leftBottom .ant-popover-arrow,.ant-popover-placement-leftTop .ant-popover-arrow{right:0;transform:translateX(100%)}.ant-popover-placement-left .ant-popover-arrow-content,.ant-popover-placement-leftBottom .ant-popover-arrow-content,.ant-popover-placement-leftTop .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateX(-11px) rotate(-45deg)}.ant-popover-placement-left .ant-popover-arrow{top:50%;transform:translateX(100%) translateY(-50%)}.ant-popover-placement-leftTop .ant-popover-arrow{top:12px}.ant-popover-placement-leftBottom .ant-popover-arrow{bottom:12px}.ant-popover-magenta .ant-popover-arrow-content,.ant-popover-magenta .ant-popover-inner,.ant-popover-pink .ant-popover-arrow-content,.ant-popover-pink .ant-popover-inner{background-color:#eb2f96}.ant-popover-red .ant-popover-arrow-content,.ant-popover-red .ant-popover-inner{background-color:#f5222d}.ant-popover-volcano .ant-popover-arrow-content,.ant-popover-volcano .ant-popover-inner{background-color:#fa541c}.ant-popover-orange .ant-popover-arrow-content,.ant-popover-orange .ant-popover-inner{background-color:#fa8c16}.ant-popover-yellow .ant-popover-arrow-content,.ant-popover-yellow .ant-popover-inner{background-color:#fadb14}.ant-popover-gold .ant-popover-arrow-content,.ant-popover-gold .ant-popover-inner{background-color:#faad14}.ant-popover-cyan .ant-popover-arrow-content,.ant-popover-cyan .ant-popover-inner{background-color:#13c2c2}.ant-popover-lime .ant-popover-arrow-content,.ant-popover-lime .ant-popover-inner{background-color:#a0d911}.ant-popover-green .ant-popover-arrow-content,.ant-popover-green .ant-popover-inner{background-color:#52c41a}.ant-popover-blue .ant-popover-arrow-content,.ant-popover-blue .ant-popover-inner{background-color:#1890ff}.ant-popover-geekblue .ant-popover-arrow-content,.ant-popover-geekblue .ant-popover-inner{background-color:#2f54eb}.ant-popover-purple .ant-popover-arrow-content,.ant-popover-purple .ant-popover-inner{background-color:#722ed1}.ant-popover-rtl{direction:rtl;text-align:right}.ant-popover-rtl .ant-popover-message-icon{margin-left:8px;margin-right:0}.ant-popover-rtl .ant-popover-message-title{padding-left:16px}.ant-popover-rtl .ant-popover-buttons{text-align:left}.ant-popover-rtl .ant-popover-buttons button{margin-left:0;margin-right:8px}.ant-back-top{font-feature-settings:"tnum","tnum";bottom:50px;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;height:40px;line-height:1.5715;list-style:none;margin:0;padding:0;position:fixed;right:100px;width:40px;z-index:10}.ant-back-top:empty{display:none}.ant-back-top-rtl{direction:rtl;left:100px;right:auto}.ant-back-top-content{background-color:rgba(0,0,0,.45);border-radius:20px;color:#fff;height:40px;overflow:hidden;text-align:center;transition:all .3s;width:40px}.ant-back-top-content:hover{background-color:rgba(0,0,0,.85);transition:all .3s}.ant-back-top-icon{font-size:24px;line-height:40px}@media screen and (max-width:768px){.ant-back-top{right:60px}.ant-back-top-rtl{left:60px;right:auto}}@media screen and (max-width:480px){.ant-back-top{right:20px}.ant-back-top-rtl{left:20px;right:auto}}.ant-badge{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;padding:0;position:relative}.ant-badge-count{background:#ff4d4f;border-radius:10px;box-shadow:0 0 0 1px #fff;color:#fff;font-size:12px;font-weight:400;height:20px;line-height:20px;min-width:20px;padding:0 6px;text-align:center;white-space:nowrap;z-index:auto}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-count-sm{border-radius:7px;font-size:12px;height:14px;line-height:14px;min-width:14px;padding:0}.ant-badge-multiple-words{padding:0 8px}.ant-badge-dot{background:#ff4d4f;border-radius:100%;box-shadow:0 0 0 1px #fff;height:6px;min-width:6px;width:6px;z-index:auto}.ant-badge-dot.ant-scroll-number{transition:background 1.5s}.ant-badge .ant-scroll-number-custom-component,.ant-badge-count,.ant-badge-dot{position:absolute;right:0;top:0;transform:translate(50%,-50%);transform-origin:100% 0}.ant-badge .ant-scroll-number-custom-component.anticon-spin,.ant-badge-count.anticon-spin,.ant-badge-dot.anticon-spin{animation:antBadgeLoadingCircle 1s linear infinite}.ant-badge-status{line-height:inherit;vertical-align:initial}.ant-badge-status-dot{border-radius:50%;display:inline-block;height:6px;position:relative;top:-1px;vertical-align:middle;width:6px}.ant-badge-status-success{background-color:#52c41a}.ant-badge-status-processing{background-color:#1890ff;position:relative}.ant-badge-status-processing:after{animation:antStatusProcessing 1.2s ease-in-out infinite;border:1px solid #1890ff;border-radius:50%;content:"";height:100%;left:0;position:absolute;top:0;width:100%}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:#ff4d4f}.ant-badge-status-warning{background-color:#faad14}.ant-badge-status-magenta,.ant-badge-status-pink{background:#eb2f96}.ant-badge-status-red{background:#f5222d}.ant-badge-status-volcano{background:#fa541c}.ant-badge-status-orange{background:#fa8c16}.ant-badge-status-yellow{background:#fadb14}.ant-badge-status-gold{background:#faad14}.ant-badge-status-cyan{background:#13c2c2}.ant-badge-status-lime{background:#a0d911}.ant-badge-status-green{background:#52c41a}.ant-badge-status-blue{background:#1890ff}.ant-badge-status-geekblue{background:#2f54eb}.ant-badge-status-purple{background:#722ed1}.ant-badge-status-text{color:rgba(0,0,0,.85);font-size:14px;margin-left:8px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation-fill-mode:both}.ant-badge-zoom-leave{animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation-fill-mode:both}.ant-badge-not-a-wrapper .ant-badge-zoom-appear,.ant-badge-not-a-wrapper .ant-badge-zoom-enter{animation:antNoWrapperZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46)}.ant-badge-not-a-wrapper .ant-badge-zoom-leave{animation:antNoWrapperZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6)}.ant-badge-not-a-wrapper:not(.ant-badge-status){vertical-align:middle}.ant-badge-not-a-wrapper .ant-badge-count,.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{transform:none}.ant-badge-not-a-wrapper .ant-scroll-number,.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{display:block;position:relative;top:auto;transform-origin:50% 50%}@keyframes antStatusProcessing{0%{opacity:.5;transform:scale(.8)}to{opacity:0;transform:scale(2.4)}}.ant-scroll-number{direction:ltr;overflow:hidden}.ant-scroll-number-only{display:inline-block;position:relative;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-scroll-number-only,.ant-scroll-number-only>p.ant-scroll-number-only-unit{-webkit-backface-visibility:hidden;height:20px;-webkit-transform-style:preserve-3d}.ant-scroll-number-only>p.ant-scroll-number-only-unit{margin:0}.ant-scroll-number-symbol{vertical-align:top}@keyframes antZoomBadgeIn{0%{opacity:0;transform:scale(0) translate(50%,-50%)}to{transform:scale(1) translate(50%,-50%)}}@keyframes antZoomBadgeOut{0%{transform:scale(1) translate(50%,-50%)}to{opacity:0;transform:scale(0) translate(50%,-50%)}}@keyframes antNoWrapperZoomBadgeIn{0%{opacity:0;transform:scale(0)}to{transform:scale(1)}}@keyframes antNoWrapperZoomBadgeOut{0%{transform:scale(1)}to{opacity:0;transform:scale(0)}}@keyframes antBadgeLoadingCircle{0%{transform-origin:50%}to{transform:translate(50%,-50%) rotate(1turn);transform-origin:50%}}.ant-ribbon-wrapper{position:relative}.ant-ribbon{font-feature-settings:"tnum","tnum";background-color:#1890ff;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);color:#fff;font-size:14px;font-variant:tabular-nums;height:22px;line-height:1.5715;line-height:22px;list-style:none;margin:0;padding:0 8px;position:absolute;top:8px;white-space:nowrap}.ant-ribbon-text{color:#fff}.ant-ribbon-corner{border:4px solid;color:currentcolor;height:8px;position:absolute;top:100%;transform:scaleY(.75);transform-origin:top;width:8px}.ant-ribbon-corner:after{border:inherit;color:rgba(0,0,0,.25);content:"";height:inherit;left:-4px;position:absolute;top:-4px;width:inherit}.ant-ribbon-color-magenta,.ant-ribbon-color-pink{background:#eb2f96;color:#eb2f96}.ant-ribbon-color-red{background:#f5222d;color:#f5222d}.ant-ribbon-color-volcano{background:#fa541c;color:#fa541c}.ant-ribbon-color-orange{background:#fa8c16;color:#fa8c16}.ant-ribbon-color-yellow{background:#fadb14;color:#fadb14}.ant-ribbon-color-gold{background:#faad14;color:#faad14}.ant-ribbon-color-cyan{background:#13c2c2;color:#13c2c2}.ant-ribbon-color-lime{background:#a0d911;color:#a0d911}.ant-ribbon-color-green{background:#52c41a;color:#52c41a}.ant-ribbon-color-blue{background:#1890ff;color:#1890ff}.ant-ribbon-color-geekblue{background:#2f54eb;color:#2f54eb}.ant-ribbon-color-purple{background:#722ed1;color:#722ed1}.ant-ribbon.ant-ribbon-placement-end{border-bottom-right-radius:0;right:-8px}.ant-ribbon.ant-ribbon-placement-end .ant-ribbon-corner{border-color:currentcolor transparent transparent currentcolor;right:0}.ant-ribbon.ant-ribbon-placement-start{border-bottom-left-radius:0;left:-8px}.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner{border-color:currentcolor currentcolor transparent transparent;left:0}.ant-badge-rtl{direction:rtl}.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-count,.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-dot,.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component{direction:ltr;left:0;right:auto;transform:translate(-50%,-50%);transform-origin:0 0}.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component{left:0;right:auto;transform:translate(-50%,-50%);transform-origin:0 0}.ant-badge-rtl .ant-badge-status-text{margin-left:0;margin-right:8px}.ant-badge:not(.ant-badge-not-a-wrapper).ant-badge-rtl .ant-badge-zoom-appear,.ant-badge:not(.ant-badge-not-a-wrapper).ant-badge-rtl .ant-badge-zoom-enter{animation-name:antZoomBadgeInRtl}.ant-badge:not(.ant-badge-not-a-wrapper).ant-badge-rtl .ant-badge-zoom-leave{animation-name:antZoomBadgeOutRtl}.ant-ribbon-rtl{direction:rtl}.ant-ribbon-rtl.ant-ribbon-placement-end{border-bottom-left-radius:0;border-bottom-right-radius:2px;left:-8px;right:auto}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner{left:0;right:auto}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner:after{border-color:currentcolor currentcolor transparent transparent}.ant-ribbon-rtl.ant-ribbon-placement-start{border-bottom-left-radius:2px;border-bottom-right-radius:0;left:auto;right:-8px}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner{left:auto;right:0}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner:after{border-color:currentcolor transparent transparent currentcolor}@keyframes antZoomBadgeInRtl{0%{opacity:0;transform:scale(0) translate(-50%,-50%)}to{transform:scale(1) translate(-50%,-50%)}}@keyframes antZoomBadgeOutRtl{0%{transform:scale(1) translate(-50%,-50%)}to{opacity:0;transform:scale(0) translate(-50%,-50%)}}.ant-breadcrumb{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);color:rgba(0,0,0,.45);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb ol{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.ant-breadcrumb a{color:rgba(0,0,0,.45);transition:color .3s}.ant-breadcrumb a:hover,.ant-breadcrumb li:last-child,.ant-breadcrumb li:last-child a{color:rgba(0,0,0,.85)}li:last-child>.ant-breadcrumb-separator{display:none}.ant-breadcrumb-separator{color:rgba(0,0,0,.45);margin:0 8px}.ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl{direction:rtl}.ant-breadcrumb-rtl:before{content:"";display:table}.ant-breadcrumb-rtl:after{clear:both;content:"";display:table}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-left:0;margin-right:4px}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger{color:#ff4d4f}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover{background-color:#ff4d4f;color:#fff}.ant-dropdown{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:block;font-size:14px;font-variant:tabular-nums;left:-9999px;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;top:-9999px;z-index:1050}.ant-dropdown:before{bottom:-4px;content:" ";left:-7px;opacity:.0001;position:absolute;right:0;top:-4px;z-index:-9999}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px}.ant-dropdown-wrap .anticon-down:before{transition:transform .2s}.ant-dropdown-wrap-open .anticon-down:before{transform:rotate(180deg)}.ant-dropdown-hidden,.ant-dropdown-menu-hidden,.ant-dropdown-menu-submenu-hidden{display:none}.ant-dropdown-show-arrow.ant-dropdown-placement-top,.ant-dropdown-show-arrow.ant-dropdown-placement-topLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-topRight{padding-bottom:15.3137085px}.ant-dropdown-show-arrow.ant-dropdown-placement-bottom,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomRight{padding-top:15.3137085px}.ant-dropdown-arrow{border-radius:0 0 2px;display:block;height:11.3137085px;pointer-events:none;position:absolute;width:11.3137085px;z-index:1}.ant-dropdown-arrow:before{background:#fff;background-position:-10px -10px;background-repeat:no-repeat;-webkit-clip-path:inset(33% 33%);clip-path:inset(33% 33%);-webkit-clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");content:"";height:33.9411255px;left:-11.3137085px;position:absolute;top:-11.3137085px;width:33.9411255px}.ant-dropdown-placement-top>.ant-dropdown-arrow,.ant-dropdown-placement-topLeft>.ant-dropdown-arrow,.ant-dropdown-placement-topRight>.ant-dropdown-arrow{bottom:10px;box-shadow:3px 3px 7px -3px rgba(0,0,0,.1);transform:rotate(45deg)}.ant-dropdown-placement-top>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-topLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-topRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-placement-bottom>.ant-dropdown-arrow,.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow,.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{box-shadow:2px 2px 5px -2px rgba(0,0,0,.1);top:9.41421356px;transform:rotate(-135deg) translateY(-.5px)}.ant-dropdown-placement-bottom>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(-135deg) translateY(-.5px)}.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-menu{background-clip:padding-box;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);list-style-type:none;margin:0;outline:none;padding:4px 0;position:relative;text-align:left}.ant-dropdown-menu-item-group-title{color:rgba(0,0,0,.45);padding:5px 12px;transition:all .3s}.ant-dropdown-menu-submenu-popup{background:transparent;box-shadow:none;position:absolute;transform-origin:0 0;z-index:1050}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-left:.3em;margin-right:.3em}.ant-dropdown-menu-item{align-items:center;display:flex;position:relative}.ant-dropdown-menu-item-icon{font-size:12px;margin-right:8px;min-width:12px}.ant-dropdown-menu-title-content{flex:auto}.ant-dropdown-menu-title-content>a{color:inherit;transition:all .3s}.ant-dropdown-menu-title-content>a:hover{color:inherit}.ant-dropdown-menu-title-content>a:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-weight:400;line-height:22px;margin:0;padding:5px 12px;transition:all .3s}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected{background-color:#e6f7ff;color:#1890ff}.ant-dropdown-menu-item.ant-dropdown-menu-item-active,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-active,.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-active,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-active,.ant-dropdown-menu-submenu-title:hover{background-color:#f5f5f5}.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled:hover,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled:hover{background-color:#fff;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled a,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled a{pointer-events:none}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{background-color:#f0f0f0;height:1px;line-height:0;margin:4px 0;overflow:hidden}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{position:absolute;right:8px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,.45);font-size:10px;font-style:normal;margin-right:0!important}.ant-dropdown-menu-item-group-list{list-style:none;margin:0 8px;padding:0}.ant-dropdown-menu-submenu-title{padding-right:24px}.ant-dropdown-menu-submenu-vertical{position:relative}.ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{left:100%;margin-left:4px;min-width:100%;position:absolute;top:0;transform-origin:0 0}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{background-color:#fff;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpIn}.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight{animation-name:antSlideDownIn}.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpOut}.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight{animation-name:antSlideDownOut}.ant-dropdown-button>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{font-size:10px;vertical-align:initial}.ant-dropdown-button{white-space:nowrap}.ant-dropdown-button.ant-btn-group>.ant-btn-loading,.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn{cursor:default;pointer-events:none}.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn:before{display:block}.ant-dropdown-button.ant-btn-group>.ant-btn:last-child:not(:first-child):not(.ant-btn-icon-only){padding-left:8px;padding-right:8px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after{color:hsla(0,0%,100%,.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{background:transparent;color:#fff}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{background:#1890ff;color:#fff}.ant-dropdown-rtl{direction:rtl}.ant-dropdown-rtl.ant-dropdown:before{left:0;right:-7px}.ant-dropdown-menu-submenu-rtl .ant-dropdown-menu-item-group-title,.ant-dropdown-menu.ant-dropdown-menu-rtl,.ant-dropdown-rtl .ant-dropdown-menu-item-group-title{direction:rtl;text-align:right}.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl{transform-origin:100% 0}.ant-dropdown-rtl .ant-dropdown-menu-item,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{text-align:right}.ant-dropdown-rtl .ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>span>.anticon:first-child{margin-left:8px;margin-right:0}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{left:8px;right:auto}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-left:0!important;transform:scaleX(-1)}.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{padding-left:24px;padding-right:12px}.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{left:0;margin-left:0;margin-right:4px;right:100%}.ant-btn{background-image:none;background:#fff;border:1px solid #d9d9d9;border-radius:2px;box-shadow:0 2px 0 rgba(0,0,0,.015);color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;font-weight:400;height:32px;line-height:1.5715;padding:4px 15px;position:relative;text-align:center;touch-action:manipulation;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.ant-btn>.anticon{line-height:1}.ant-btn,.ant-btn:active,.ant-btn:focus{outline:0}.ant-btn:not([disabled]):hover{text-decoration:none}.ant-btn:not([disabled]):active{box-shadow:none;outline:0}.ant-btn[disabled]{cursor:not-allowed}.ant-btn[disabled]>*{pointer-events:none}.ant-btn-lg{border-radius:2px;font-size:16px;height:40px;padding:6.4px 15px}.ant-btn-sm{border-radius:2px;font-size:14px;height:24px;padding:0 7px}.ant-btn>a:only-child{color:currentcolor}.ant-btn>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:focus,.ant-btn:hover{background:#fff;border-color:#40a9ff;color:#40a9ff}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentcolor}.ant-btn:focus>a:only-child:after,.ant-btn:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:active{background:#fff;border-color:#096dd9;color:#096dd9}.ant-btn:active>a:only-child{color:currentcolor}.ant-btn:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn[disabled],.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentcolor}.ant-btn[disabled]:active>a:only-child:after,.ant-btn[disabled]:focus>a:only-child:after,.ant-btn[disabled]:hover>a:only-child:after,.ant-btn[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:active,.ant-btn:focus,.ant-btn:hover{background:#fff;text-decoration:none}.ant-btn>span{display:inline-block}.ant-btn-primary{background:#1890ff;border-color:#1890ff;box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary:focus,.ant-btn-primary:hover{background:#40a9ff;border-color:#40a9ff;color:#fff}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-primary:focus>a:only-child:after,.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary:active{background:#096dd9;border-color:#096dd9;color:#fff}.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary[disabled],.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-left-color:#40a9ff;border-right-color:#40a9ff}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{background:transparent;border-color:#d9d9d9;color:rgba(0,0,0,.85)}.ant-btn-ghost>a:only-child{color:currentcolor}.ant-btn-ghost>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost:focus,.ant-btn-ghost:hover{background:transparent;border-color:#40a9ff;color:#40a9ff}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentcolor}.ant-btn-ghost:focus>a:only-child:after,.ant-btn-ghost:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost:active{background:transparent;border-color:#096dd9;color:#096dd9}.ant-btn-ghost:active>a:only-child{color:currentcolor}.ant-btn-ghost:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost[disabled],.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentcolor}.ant-btn-ghost[disabled]:active>a:only-child:after,.ant-btn-ghost[disabled]:focus>a:only-child:after,.ant-btn-ghost[disabled]:hover>a:only-child:after,.ant-btn-ghost[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed{background:#fff;border-color:#d9d9d9;border-style:dashed;color:rgba(0,0,0,.85)}.ant-btn-dashed>a:only-child{color:currentcolor}.ant-btn-dashed>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed:focus,.ant-btn-dashed:hover{background:#fff;border-color:#40a9ff;color:#40a9ff}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentcolor}.ant-btn-dashed:focus>a:only-child:after,.ant-btn-dashed:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed:active{background:#fff;border-color:#096dd9;color:#096dd9}.ant-btn-dashed:active>a:only-child{color:currentcolor}.ant-btn-dashed:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed[disabled],.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentcolor}.ant-btn-dashed[disabled]:active>a:only-child:after,.ant-btn-dashed[disabled]:focus>a:only-child:after,.ant-btn-dashed[disabled]:hover>a:only-child:after,.ant-btn-dashed[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger{background:#ff4d4f;border-color:#ff4d4f;box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-danger>a:only-child{color:currentcolor}.ant-btn-danger>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger:focus,.ant-btn-danger:hover{background:#ff7875;border-color:#ff7875;color:#fff}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentcolor}.ant-btn-danger:focus>a:only-child:after,.ant-btn-danger:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger:active{background:#d9363e;border-color:#d9363e;color:#fff}.ant-btn-danger:active>a:only-child{color:currentcolor}.ant-btn-danger:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger[disabled],.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentcolor}.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-danger[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link{background:transparent;border-color:transparent;box-shadow:none;color:#1890ff}.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link:focus,.ant-btn-link:hover{background:transparent;border-color:#40a9ff;color:#40a9ff}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-link:focus>a:only-child:after,.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link:active{background:transparent;border-color:#096dd9;color:#096dd9}.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-link:hover{background:transparent}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:transparent}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.85)}.ant-btn-text>a:only-child{color:currentcolor}.ant-btn-text>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text:focus,.ant-btn-text:hover{background:transparent;border-color:#40a9ff;color:#40a9ff}.ant-btn-text:focus>a:only-child,.ant-btn-text:hover>a:only-child{color:currentcolor}.ant-btn-text:focus>a:only-child:after,.ant-btn-text:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text:active{background:transparent;border-color:#096dd9;color:#096dd9}.ant-btn-text:active>a:only-child{color:currentcolor}.ant-btn-text:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-text:focus,.ant-btn-text:hover{background:rgba(0,0,0,.018);border-color:transparent;color:rgba(0,0,0,.85)}.ant-btn-text:active{background:rgba(0,0,0,.028);border-color:transparent;color:rgba(0,0,0,.85)}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-text[disabled]:active>a:only-child,.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-text[disabled]>a:only-child{color:currentcolor}.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-text[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous{background:#fff;border-color:#ff4d4f;color:#ff4d4f}.ant-btn-dangerous>a:only-child{color:currentcolor}.ant-btn-dangerous>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous:focus,.ant-btn-dangerous:hover{background:#fff;border-color:#ff7875;color:#ff7875}.ant-btn-dangerous:focus>a:only-child,.ant-btn-dangerous:hover>a:only-child{color:currentcolor}.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-dangerous:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous:active{background:#fff;border-color:#d9363e;color:#d9363e}.ant-btn-dangerous:active>a:only-child{color:currentcolor}.ant-btn-dangerous:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous[disabled],.ant-btn-dangerous[disabled]:active,.ant-btn-dangerous[disabled]:focus,.ant-btn-dangerous[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-dangerous[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-dangerous[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary{background:#ff4d4f;border-color:#ff4d4f;box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-dangerous.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary:focus,.ant-btn-dangerous.ant-btn-primary:hover{background:#ff7875;border-color:#ff7875;color:#fff}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary:active{background:#d9363e;border-color:#d9363e;color:#fff}.ant-btn-dangerous.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary[disabled],.ant-btn-dangerous.ant-btn-primary[disabled]:active,.ant-btn-dangerous.ant-btn-primary[disabled]:focus,.ant-btn-dangerous.ant-btn-primary[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link{background:transparent;border-color:transparent;box-shadow:none;color:#ff4d4f}.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{border-color:#40a9ff;color:#40a9ff}.ant-btn-dangerous.ant-btn-link:active{border-color:#096dd9;color:#096dd9}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{background:transparent;border-color:transparent;color:#ff7875}.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link:active{background:transparent;border-color:transparent;color:#d9363e}.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text{background:transparent;border-color:transparent;box-shadow:none;color:#ff4d4f}.ant-btn-dangerous.ant-btn-text>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{background:transparent;border-color:#40a9ff;color:#40a9ff}.ant-btn-dangerous.ant-btn-text:active{background:transparent;border-color:#096dd9;color:#096dd9}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{background:rgba(0,0,0,.018);border-color:transparent;color:#ff7875}.ant-btn-dangerous.ant-btn-text:focus>a:only-child,.ant-btn-dangerous.ant-btn-text:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text:active{background:rgba(0,0,0,.028);border-color:transparent;color:#d9363e}.ant-btn-dangerous.ant-btn-text:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-icon-only{border-radius:2px;font-size:16px;height:32px;padding:2.4px 0;vertical-align:-3px;width:32px}.ant-btn-icon-only>*{font-size:16px}.ant-btn-icon-only.ant-btn-lg{border-radius:2px;font-size:18px;height:40px;padding:4.9px 0;width:40px}.ant-btn-icon-only.ant-btn-lg>*{font-size:18px}.ant-btn-icon-only.ant-btn-sm{border-radius:2px;font-size:14px;height:24px;padding:0;width:24px}.ant-btn-icon-only.ant-btn-sm>*{font-size:14px}.ant-btn-icon-only>.anticon{display:flex;justify-content:center}.ant-btn-icon-only .anticon-loading{padding:0!important}a.ant-btn-icon-only{vertical-align:-1px}a.ant-btn-icon-only>.anticon{display:inline}.ant-btn-round{border-radius:32px;font-size:14px;height:32px;padding:4px 16px}.ant-btn-round.ant-btn-lg{border-radius:40px;font-size:16px;height:40px;padding:6.4px 20px}.ant-btn-round.ant-btn-sm{border-radius:24px;font-size:14px;height:24px;padding:0 12px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle{border-radius:50%;min-width:32px;padding-left:0;padding-right:0;text-align:center}.ant-btn-circle.ant-btn-lg{border-radius:50%;min-width:40px}.ant-btn-circle.ant-btn-sm{border-radius:50%;min-width:24px}.ant-btn:before{background:#fff;border-radius:inherit;bottom:-1px;content:"";display:none;left:-1px;opacity:.35;pointer-events:none;position:absolute;right:-1px;top:-1px;transition:opacity .2s;z-index:1}.ant-btn .anticon{transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizespeed}.ant-btn.ant-btn-loading{cursor:default;position:relative}.ant-btn.ant-btn-loading:before{display:block}.ant-btn>.ant-btn-loading-icon{transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1)}.ant-btn>.ant-btn-loading-icon .anticon{animation:none;padding-right:8px}.ant-btn>.ant-btn-loading-icon .anticon svg{animation:loadingCircle 1s linear infinite}.ant-btn-group{display:inline-flex}.ant-btn-group,.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn{position:relative}.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{z-index:2}.ant-btn-group>.ant-btn[disabled],.ant-btn-group>span>.ant-btn[disabled]{z-index:0}.ant-btn-group .ant-btn-icon-only{font-size:14px}.ant-btn+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group span+.ant-btn,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group>span+span{margin-left:-1px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.ant-btn-group>.ant-btn:only-child,.ant-btn-group>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-bottom-right-radius:2px;border-top-right-radius:2px}.ant-btn-group-sm>.ant-btn:only-child,.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-bottom-right-radius:2px;border-top-right-radius:2px}.ant-btn-group>.ant-btn-group{float:left}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{border-bottom-right-radius:0;border-top-right-radius:0;padding-right:8px}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;padding-left:8px}.ant-btn-group-rtl.ant-btn+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group-rtl.ant-btn-group .ant-btn+span,.ant-btn-group-rtl.ant-btn-group span+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group>span+span,.ant-btn-rtl.ant-btn+.ant-btn-group,.ant-btn-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-rtl.ant-btn-group .ant-btn+span,.ant-btn-rtl.ant-btn-group span+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn-group,.ant-btn-rtl.ant-btn-group>span+span{margin-left:auto;margin-right:-1px}.ant-btn-group.ant-btn-group-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.ant-btn.ant-btn-background-ghost{border-color:#fff;color:#fff}.ant-btn.ant-btn-background-ghost,.ant-btn.ant-btn-background-ghost:active,.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{background:transparent}.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{border-color:#40a9ff;color:#40a9ff}.ant-btn.ant-btn-background-ghost:active{border-color:#096dd9;color:#096dd9}.ant-btn.ant-btn-background-ghost[disabled]{background:transparent;border-color:#d9d9d9;color:rgba(0,0,0,.25)}.ant-btn-background-ghost.ant-btn-primary{border-color:#1890ff;color:#1890ff;text-shadow:none}.ant-btn-background-ghost.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{border-color:#40a9ff;color:#40a9ff}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary:active{border-color:#096dd9;color:#096dd9}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger{border-color:#ff4d4f;color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-danger>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{border-color:#ff7875;color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger:active{border-color:#d9363e;color:#d9363e}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous{border-color:#ff4d4f;color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous:focus,.ant-btn-background-ghost.ant-btn-dangerous:hover{border-color:#ff7875;color:#ff7875}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous:active{border-color:#d9363e;color:#d9363e}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous[disabled],.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link{border-color:transparent;color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover{border-color:transparent;color:#ff7875}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active{border-color:transparent;color:#d9363e}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-two-chinese-chars:first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){letter-spacing:.34em;margin-right:-.34em}.ant-btn.ant-btn-block{width:100%}.ant-btn:empty{content:"\a0";display:inline-block;visibility:hidden;width:0}a.ant-btn{line-height:30px;padding-top:.01px!important}a.ant-btn-disabled{cursor:not-allowed}a.ant-btn-disabled>*{pointer-events:none}a.ant-btn-disabled,a.ant-btn-disabled:active,a.ant-btn-disabled:focus,a.ant-btn-disabled:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}a.ant-btn-disabled:active>a:only-child,a.ant-btn-disabled:focus>a:only-child,a.ant-btn-disabled:hover>a:only-child,a.ant-btn-disabled>a:only-child{color:currentcolor}a.ant-btn-disabled:active>a:only-child:after,a.ant-btn-disabled:focus>a:only-child:after,a.ant-btn-disabled:hover>a:only-child:after,a.ant-btn-disabled>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-btn-compact-item:not(.ant-btn-compact-last-item):not(.ant-btn-compact-item-rtl){margin-right:-1px}.ant-btn-compact-item:not(.ant-btn-compact-last-item).ant-btn-compact-item-rtl{margin-left:-1px}.ant-btn-compact-item:active,.ant-btn-compact-item:focus,.ant-btn-compact-item:hover{z-index:2}.ant-btn-compact-item[disabled]{z-index:0}.ant-btn-compact-item:not(.ant-btn-compact-first-item):not(.ant-btn-compact-last-item).ant-btn{border-radius:0}.ant-btn-compact-item.ant-btn.ant-btn-compact-first-item:not(.ant-btn-compact-last-item):not(.ant-btn-compact-item-rtl){border-bottom-right-radius:0;border-top-right-radius:0}.ant-btn-compact-item.ant-btn.ant-btn-compact-item-rtl.ant-btn-compact-first-item:not(.ant-btn-compact-last-item),.ant-btn-compact-item.ant-btn.ant-btn-compact-last-item:not(.ant-btn-compact-first-item):not(.ant-btn-compact-item-rtl){border-bottom-left-radius:0;border-top-left-radius:0}.ant-btn-compact-item.ant-btn.ant-btn-compact-item-rtl.ant-btn-compact-last-item:not(.ant-btn-compact-first-item){border-bottom-right-radius:0;border-top-right-radius:0}.ant-btn-icon-only.ant-btn-compact-item{flex:none}.ant-btn-compact-item.ant-btn-primary:not([disabled])+.ant-btn-compact-item.ant-btn-primary:not([disabled]){position:relative}.ant-btn-compact-item.ant-btn-primary:not([disabled])+.ant-btn-compact-item.ant-btn-primary:not([disabled]):after{background-color:#40a9ff;content:" ";display:inline-block;height:calc(100% + 2px);left:-1px;position:absolute;top:-1px;width:1px}.ant-btn-compact-item-rtl.ant-btn-compact-first-item.ant-btn-compact-item-rtl:not(.ant-btn-compact-last-item){border-bottom-left-radius:0;border-top-left-radius:0}.ant-btn-compact-item-rtl.ant-btn-compact-last-item.ant-btn-compact-item-rtl:not(.ant-btn-compact-first-item){border-bottom-right-radius:0;border-top-right-radius:0}.ant-btn-compact-item-rtl.ant-btn-sm.ant-btn-compact-first-item.ant-btn-compact-item-rtl.ant-btn-sm:not(.ant-btn-compact-last-item){border-bottom-left-radius:0;border-top-left-radius:0}.ant-btn-compact-item-rtl.ant-btn-sm.ant-btn-compact-last-item.ant-btn-compact-item-rtl.ant-btn-sm:not(.ant-btn-compact-first-item){border-bottom-right-radius:0;border-top-right-radius:0}.ant-btn-compact-item-rtl.ant-btn-primary:not([disabled])+.ant-btn-compact-item-rtl.ant-btn-primary:not([disabled]):after{right:-1px}.ant-btn-compact-vertical-item:not(.ant-btn-compact-vertical-last-item){margin-bottom:-1px}.ant-btn-compact-vertical-item:active,.ant-btn-compact-vertical-item:focus,.ant-btn-compact-vertical-item:hover{z-index:2}.ant-btn-compact-vertical-item[disabled]{z-index:0}.ant-btn-compact-vertical-item:not(.ant-btn-compact-vertical-first-item):not(.ant-btn-compact-vertical-last-item){border-radius:0}.ant-btn-compact-vertical-item.ant-btn-compact-vertical-first-item:not(.ant-btn-compact-vertical-last-item){border-bottom-left-radius:0;border-bottom-right-radius:0}.ant-btn-compact-vertical-item.ant-btn-compact-vertical-last-item:not(.ant-btn-compact-vertical-first-item){border-top-left-radius:0;border-top-right-radius:0}.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled])+.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]){position:relative}.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled])+.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]):after{background-color:#40a9ff;content:" ";display:inline-block;height:1px;left:-1px;position:absolute;top:-1px;width:calc(100% + 2px)}.ant-btn-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#d9d9d9;border-right-color:#40a9ff}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#40a9ff;border-right-color:#d9d9d9}.ant-btn-rtl.ant-btn>.ant-btn-loading-icon .anticon{padding-left:8px;padding-right:0}.ant-btn-rtl.ant-btn>.anticon+span,.ant-btn-rtl.ant-btn>span+.anticon{margin-left:0;margin-right:8px}.ant-menu-item-danger.ant-menu-item,.ant-menu-item-danger.ant-menu-item-active,.ant-menu-item-danger.ant-menu-item:hover{color:#ff4d4f}.ant-menu-item-danger.ant-menu-item:active{background:#fff1f0}.ant-menu-item-danger.ant-menu-item-selected,.ant-menu-item-danger.ant-menu-item-selected>a,.ant-menu-item-danger.ant-menu-item-selected>a:hover{color:#ff4d4f}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{background-color:#fff1f0}.ant-menu-inline .ant-menu-item-danger.ant-menu-item:after{border-right-color:#ff4d4f}.ant-menu-dark .ant-menu-item-danger.ant-menu-item,.ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover,.ant-menu-dark .ant-menu-item-danger.ant-menu-item>a{color:#ff4d4f}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{background-color:#ff4d4f;color:#fff}.ant-menu{font-feature-settings:"tnum","tnum";background:#fff;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:0;list-style:none;margin:0;outline:none;padding:0;text-align:left;transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s}.ant-menu:after,.ant-menu:before{content:"";display:table}.ant-menu:after{clear:both}.ant-menu.ant-menu-root:focus-visible{box-shadow:0 0 0 2px #bae7ff}.ant-menu ol,.ant-menu ul{list-style:none;margin:0;padding:0}.ant-menu-overflow{display:flex}.ant-menu-overflow-item{flex:none}.ant-menu-hidden,.ant-menu-submenu-hidden{display:none}.ant-menu-item-group-title{color:rgba(0,0,0,.45);font-size:14px;height:1.5715;line-height:1.5715;padding:8px 16px;transition:all .3s}.ant-menu-horizontal .ant-menu-submenu{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu,.ant-menu-submenu-inline{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-selected{color:#1890ff}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}.ant-menu-submenu .ant-menu-sub{cursor:auto;transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-title-content{transition:color .3s}.ant-menu-item a{color:rgba(0,0,0,.85)}.ant-menu-item a:hover{color:#1890ff}.ant-menu-item a:before{background-color:initial;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-menu-item>.ant-badge a{color:rgba(0,0,0,.85)}.ant-menu-item>.ant-badge a:hover{color:#1890ff}.ant-menu-item-divider{border:solid #f0f0f0;border-width:1px 0 0;line-height:0;overflow:hidden}.ant-menu-item-divider-dashed{border-style:dashed}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{margin-top:-1px}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:initial}.ant-menu-item-selected,.ant-menu-item-selected a,.ant-menu-item-selected a:hover{color:#1890ff}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #f0f0f0}.ant-menu-vertical-right{border-left:1px solid #f0f0f0}.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub,.ant-menu-vertical.ant-menu-sub{border-right:0;max-height:calc(100vh - 100px);min-width:160px;overflow:hidden;padding:0}.ant-menu-vertical-left.ant-menu-sub:not([class*=-active]),.ant-menu-vertical-right.ant-menu-sub:not([class*=-active]),.ant-menu-vertical.ant-menu-sub:not([class*=-active]){overflow-x:hidden;overflow-y:auto}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item,.ant-menu-vertical.ant-menu-sub .ant-menu-item{border-right:0;left:0;margin-left:0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical.ant-menu-sub .ant-menu-item:after{border-right:0}.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:0 0}.ant-menu-horizontal.ant-menu-sub{min-width:114px}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu-title{transition:border-color .3s,background .3s}.ant-menu-item,.ant-menu-submenu-title{cursor:pointer;display:block;margin:0;padding:0 20px;position:relative;transition:border-color .3s,background .3s,padding .3s cubic-bezier(.645,.045,.355,1);white-space:nowrap}.ant-menu-item .ant-menu-item-icon,.ant-menu-item .anticon,.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-submenu-title .anticon{font-size:14px;min-width:14px;transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1),color .3s}.ant-menu-item .ant-menu-item-icon+span,.ant-menu-item .anticon+span,.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu-submenu-title .anticon+span{margin-left:10px;opacity:1;transition:opacity .3s cubic-bezier(.645,.045,.355,1),margin .3s,color .3s}.ant-menu-item .ant-menu-item-icon.svg,.ant-menu-submenu-title .ant-menu-item-icon.svg{vertical-align:-.125em}.ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-right:0}.ant-menu-item:not(.ant-menu-item-disabled):focus-visible,.ant-menu-submenu-title:not(.ant-menu-item-disabled):focus-visible{box-shadow:0 0 0 2px #bae7ff}.ant-menu>.ant-menu-item-divider{margin:1px 0;padding:0}.ant-menu-submenu-popup{background:transparent;border-radius:2px;box-shadow:none;position:absolute;transform-origin:0 0;z-index:1050}.ant-menu-submenu-popup:before{bottom:0;content:" ";height:100%;left:0;opacity:.0001;position:absolute;right:0;top:-7px;width:100%;z-index:-1}.ant-menu-submenu-placement-rightTop:before{left:-7px;top:0}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:2px}.ant-menu-submenu>.ant-menu-submenu-title:after{transition:transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-popup>.ant-menu{background-color:#fff}.ant-menu-submenu-arrow,.ant-menu-submenu-expand-icon{color:rgba(0,0,0,.85);position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:transform .3s cubic-bezier(.645,.045,.355,1);width:10px}.ant-menu-submenu-arrow:after,.ant-menu-submenu-arrow:before{background-color:currentcolor;border-radius:2px;content:"";height:1.5px;position:absolute;transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);width:6px}.ant-menu-submenu-arrow:before{transform:rotate(45deg) translateY(-2.5px)}.ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateY(2.5px)}.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-expand-icon{color:#1890ff}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:before,.ant-menu-submenu-inline .ant-menu-submenu-arrow:before{transform:rotate(-45deg) translateX(2.5px)}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline .ant-menu-submenu-arrow:after{transform:rotate(45deg) translateX(-2.5px)}.ant-menu-submenu-horizontal .ant-menu-submenu-arrow{display:none}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow{transform:translateY(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateX(-2.5px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{transform:rotate(45deg) translateX(2.5px)}.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected{color:#1890ff}.ant-menu-horizontal{border:0;border-bottom:1px solid #f0f0f0;box-shadow:none;line-height:46px}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu{margin-bottom:0;margin-top:-1px;padding:0 20px}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover{color:#1890ff}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover:after{border-bottom:2px solid #1890ff}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{display:inline-block;position:relative;top:1px;vertical-align:bottom}.ant-menu-horizontal>.ant-menu-item:after,.ant-menu-horizontal>.ant-menu-submenu:after{border-bottom:2px solid transparent;bottom:0;content:"";left:20px;position:absolute;right:20px;transition:border-color .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-horizontal>.ant-menu-submenu>.ant-menu-submenu-title{padding:0}.ant-menu-horizontal>.ant-menu-item a{color:rgba(0,0,0,.85)}.ant-menu-horizontal>.ant-menu-item a:hover{color:#1890ff}.ant-menu-horizontal>.ant-menu-item a:before{bottom:-2px}.ant-menu-horizontal>.ant-menu-item-selected a{color:#1890ff}.ant-menu-horizontal:after{clear:both;content:"\20";display:block;height:0}.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item{position:relative}.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after{border-right:3px solid #1890ff;bottom:0;content:"";opacity:0;position:absolute;right:0;top:0;transform:scaleY(.0001);transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical-right .ant-menu-submenu-title{height:40px;line-height:40px;margin-bottom:4px;margin-top:4px;overflow:hidden;padding:0 16px;text-overflow:ellipsis}.ant-menu-inline .ant-menu-submenu,.ant-menu-vertical .ant-menu-submenu,.ant-menu-vertical-left .ant-menu-submenu,.ant-menu-vertical-right .ant-menu-submenu{padding-bottom:.02px}.ant-menu-inline .ant-menu-item:not(:last-child),.ant-menu-vertical .ant-menu-item:not(:last-child),.ant-menu-vertical-left .ant-menu-item:not(:last-child),.ant-menu-vertical-right .ant-menu-item:not(:last-child){margin-bottom:8px}.ant-menu-inline>.ant-menu-item,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline{width:100%}.ant-menu-inline .ant-menu-item-selected:after,.ant-menu-inline .ant-menu-selected:after{opacity:1;transform:scaleY(1);transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title{width:calc(100% + 1px)}.ant-menu-inline .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline.ant-menu-root .ant-menu-item,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title{align-items:center;display:flex;transition:border-color .3s,background .3s,padding .1s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline.ant-menu-root .ant-menu-item>.ant-menu-title-content,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>.ant-menu-title-content{flex:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ant-menu-inline.ant-menu-root .ant-menu-item>*,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>*{flex:none}.ant-menu.ant-menu-inline-collapsed{width:80px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title{left:0;padding:0 calc(50% - 8px);text-overflow:clip}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{font-size:16px;line-height:40px;margin:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span{display:inline-block;opacity:0}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed .anticon{display:inline-block}.ant-menu.ant-menu-inline-collapsed-tooltip{pointer-events:none}.ant-menu.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed-tooltip .anticon{display:none}.ant-menu.ant-menu-inline-collapsed-tooltip a{color:hsla(0,0%,100%,.85)}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-group-title{overflow:hidden;padding-left:4px;padding-right:4px;text-overflow:ellipsis;white-space:nowrap}.ant-menu-item-group-list{margin:0;padding:0}.ant-menu-item-group-list .ant-menu-item,.ant-menu-item-group-list .ant-menu-submenu-title{padding:0 16px 0 28px}.ant-menu-root.ant-menu-inline,.ant-menu-root.ant-menu-vertical,.ant-menu-root.ant-menu-vertical-left,.ant-menu-root.ant-menu-vertical-right{box-shadow:none}.ant-menu-root.ant-menu-inline-collapsed .ant-menu-item>.ant-menu-inline-collapsed-noicon,.ant-menu-root.ant-menu-inline-collapsed .ant-menu-submenu .ant-menu-submenu-title>.ant-menu-inline-collapsed-noicon{font-size:16px;text-align:center}.ant-menu-sub.ant-menu-inline{background:#fafafa;border-radius:0;box-shadow:none;padding:0}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px;list-style-position:inside;list-style-type:disc}.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:32px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{background:none;color:rgba(0,0,0,.25)!important;cursor:not-allowed}.ant-menu-item-disabled:after,.ant-menu-submenu-disabled:after{border-color:transparent!important}.ant-menu-item-disabled a,.ant-menu-submenu-disabled a{color:rgba(0,0,0,.25)!important;pointer-events:none}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(0,0,0,.25)!important;cursor:not-allowed}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:rgba(0,0,0,.25)!important}.ant-layout-header .ant-menu{line-height:inherit}.ant-menu-inline-collapsed-tooltip a,.ant-menu-inline-collapsed-tooltip a:hover{color:#fff}.ant-menu-light .ant-menu-item-active,.ant-menu-light .ant-menu-item:hover,.ant-menu-light .ant-menu-submenu-active,.ant-menu-light .ant-menu-submenu-title:hover,.ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}.ant-menu.ant-menu-root:focus-visible{box-shadow:0 0 0 2px #096dd9}.ant-menu-dark .ant-menu-item:focus-visible,.ant-menu-dark .ant-menu-submenu-title:focus-visible{box-shadow:0 0 0 2px #096dd9}.ant-menu-dark .ant-menu-sub,.ant-menu.ant-menu-dark,.ant-menu.ant-menu-dark .ant-menu-sub{background:#001529;color:hsla(0,0%,100%,.65)}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:.45;transition:all .3s}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark.ant-menu-submenu-popup{background:transparent}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{border-color:#001529;border-bottom:0;margin-top:0;padding:0 20px;top:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background-color:#1890ff}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item>a:before{bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a,.ant-menu-dark .ant-menu-item>span>a{color:hsla(0,0%,100%,.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item{border-right:0;left:0;margin-left:0}.ant-menu-dark.ant-menu-inline .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item:after{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title{width:100%}.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{background-color:initial;color:#fff}.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-item-active>span>a,.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item:hover>span>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-active>span>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-open>span>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-selected>span>a,.ant-menu-dark .ant-menu-submenu-title:hover>a,.ant-menu-dark .ant-menu-submenu-title:hover>span>a{color:#fff}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow{opacity:1}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:initial}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#1890ff}.ant-menu-dark .ant-menu-item-selected{border-right:0;color:#fff}.ant-menu-dark .ant-menu-item-selected:after{border-right:0}.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon,.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon+span,.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item-selected .anticon+span,.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover,.ant-menu-dark .ant-menu-item-selected>span>a,.ant-menu-dark .ant-menu-item-selected>span>a:hover{color:#fff}.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-item-disabled>span>a,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-submenu-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>span>a{color:hsla(0,0%,100%,.35)!important;opacity:.8}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:hsla(0,0%,100%,.35)!important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:hsla(0,0%,100%,.35)!important}.ant-menu.ant-menu-rtl{direction:rtl;text-align:right}.ant-menu-rtl .ant-menu-item-group-title{text-align:right}.ant-menu-rtl.ant-menu-inline,.ant-menu-rtl.ant-menu-vertical{border-left:1px solid #f0f0f0;border-right:none}.ant-menu-rtl.ant-menu-dark.ant-menu-inline,.ant-menu-rtl.ant-menu-dark.ant-menu-vertical{border-left:none}.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:top right}.ant-menu-rtl .ant-menu-item .ant-menu-item-icon,.ant-menu-rtl .ant-menu-item .anticon,.ant-menu-rtl .ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title .anticon{margin-left:10px;margin-right:auto}.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-left:0}.ant-menu-submenu-rtl.ant-menu-submenu-popup{transform-origin:100% 0}.ant-menu-rtl .ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{left:16px;right:auto}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{transform:rotate(-45deg) translateY(-2px)}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{transform:rotate(45deg) translateY(2px)}.ant-menu-rtl.ant-menu-inline .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item:after{left:0;right:auto}.ant-menu-rtl.ant-menu-inline .ant-menu-item,.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical .ant-menu-item,.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title{text-align:right}.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title{padding-left:34px;padding-right:0}.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title{padding-left:34px;padding-right:16px}.ant-menu-rtl.ant-menu-inline-collapsed.ant-menu-vertical .ant-menu-submenu-title{padding:0 calc(50% - 8px)}.ant-menu-rtl .ant-menu-item-group-list .ant-menu-item,.ant-menu-rtl .ant-menu-item-group-list .ant-menu-submenu-title{padding:0 28px 0 16px}.ant-menu-sub.ant-menu-inline{border:0}.ant-menu-rtl.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:0;padding-right:32px}.ant-tooltip{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;max-width:250px;padding:0;position:absolute;visibility:visible;width:-moz-max-content;width:max-content;width:intrinsic;z-index:1070}.ant-tooltip-content{position:relative}.ant-tooltip-hidden{display:none}.ant-tooltip-placement-top,.ant-tooltip-placement-topLeft,.ant-tooltip-placement-topRight{padding-bottom:14.3137085px}.ant-tooltip-placement-right,.ant-tooltip-placement-rightBottom,.ant-tooltip-placement-rightTop{padding-left:14.3137085px}.ant-tooltip-placement-bottom,.ant-tooltip-placement-bottomLeft,.ant-tooltip-placement-bottomRight{padding-top:14.3137085px}.ant-tooltip-placement-left,.ant-tooltip-placement-leftBottom,.ant-tooltip-placement-leftTop{padding-right:14.3137085px}.ant-tooltip-inner{word-wrap:break-word;background-color:rgba(0,0,0,.75);border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);color:#fff;min-height:32px;min-width:30px;padding:6px 8px;text-align:left;text-decoration:none}.ant-tooltip-arrow{background:transparent;display:block;height:22px;overflow:hidden;pointer-events:none;position:absolute;width:22px;z-index:2}.ant-tooltip-arrow-content{--antd-arrow-background-color:linear-gradient(to right bottom,rgba(0,0,0,.65),rgba(0,0,0,.75));border-radius:0 0 2px;bottom:0;content:"";display:block;height:11.3137085px;left:0;margin:auto;pointer-events:auto;pointer-events:none;position:absolute;right:0;top:0;width:11.3137085px}.ant-tooltip-arrow-content:before{background:var(--antd-arrow-background-color);background-position:-10px -10px;background-repeat:no-repeat;-webkit-clip-path:inset(33% 33%);clip-path:inset(33% 33%);-webkit-clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");content:"";height:33.9411255px;left:-11.3137085px;position:absolute;top:-11.3137085px;width:33.9411255px}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:0;transform:translateY(100%)}.ant-tooltip-placement-top .ant-tooltip-arrow-content,.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-topRight .ant-tooltip-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-11px) rotate(45deg)}.ant-tooltip-placement-top .ant-tooltip-arrow{left:50%;transform:translateY(100%) translateX(-50%)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow{left:0;transform:translateX(-100%)}.ant-tooltip-placement-right .ant-tooltip-arrow-content,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content{box-shadow:-3px 3px 7px rgba(0,0,0,.07);transform:translateX(11px) rotate(135deg)}.ant-tooltip-placement-right .ant-tooltip-arrow{top:50%;transform:translateX(-100%) translateY(-50%)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow{right:0;transform:translateX(100%)}.ant-tooltip-placement-left .ant-tooltip-arrow-content,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content{box-shadow:3px -3px 7px rgba(0,0,0,.07);transform:translateX(-11px) rotate(315deg)}.ant-tooltip-placement-left .ant-tooltip-arrow{top:50%;transform:translateX(100%) translateY(-50%)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:0;transform:translateY(-100%)}.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content{box-shadow:-3px -3px 7px rgba(0,0,0,.07);transform:translateY(11px) rotate(225deg)}.ant-tooltip-placement-bottom .ant-tooltip-arrow{left:50%;transform:translateY(-100%) translateX(-50%)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-tooltip-pink .ant-tooltip-inner{background-color:#eb2f96}.ant-tooltip-pink .ant-tooltip-arrow-content:before{background:#eb2f96}.ant-tooltip-magenta .ant-tooltip-inner{background-color:#eb2f96}.ant-tooltip-magenta .ant-tooltip-arrow-content:before{background:#eb2f96}.ant-tooltip-red .ant-tooltip-inner{background-color:#f5222d}.ant-tooltip-red .ant-tooltip-arrow-content:before{background:#f5222d}.ant-tooltip-volcano .ant-tooltip-inner{background-color:#fa541c}.ant-tooltip-volcano .ant-tooltip-arrow-content:before{background:#fa541c}.ant-tooltip-orange .ant-tooltip-inner{background-color:#fa8c16}.ant-tooltip-orange .ant-tooltip-arrow-content:before{background:#fa8c16}.ant-tooltip-yellow .ant-tooltip-inner{background-color:#fadb14}.ant-tooltip-yellow .ant-tooltip-arrow-content:before{background:#fadb14}.ant-tooltip-gold .ant-tooltip-inner{background-color:#faad14}.ant-tooltip-gold .ant-tooltip-arrow-content:before{background:#faad14}.ant-tooltip-cyan .ant-tooltip-inner{background-color:#13c2c2}.ant-tooltip-cyan .ant-tooltip-arrow-content:before{background:#13c2c2}.ant-tooltip-lime .ant-tooltip-inner{background-color:#a0d911}.ant-tooltip-lime .ant-tooltip-arrow-content:before{background:#a0d911}.ant-tooltip-green .ant-tooltip-inner{background-color:#52c41a}.ant-tooltip-green .ant-tooltip-arrow-content:before{background:#52c41a}.ant-tooltip-blue .ant-tooltip-inner{background-color:#1890ff}.ant-tooltip-blue .ant-tooltip-arrow-content:before{background:#1890ff}.ant-tooltip-geekblue .ant-tooltip-inner{background-color:#2f54eb}.ant-tooltip-geekblue .ant-tooltip-arrow-content:before{background:#2f54eb}.ant-tooltip-purple .ant-tooltip-inner{background-color:#722ed1}.ant-tooltip-purple .ant-tooltip-arrow-content:before{background:#722ed1}.ant-tooltip-rtl{direction:rtl}.ant-tooltip-rtl .ant-tooltip-inner{text-align:right}.ant-space{display:inline-flex}.ant-space-vertical{flex-direction:column}.ant-space-align-center{align-items:center}.ant-space-align-start{align-items:flex-start}.ant-space-align-end{align-items:flex-end}.ant-space-align-baseline{align-items:baseline}.ant-space-item:empty{display:none}.ant-space-compact{display:inline-flex}.ant-space-compact-block{display:flex;width:100%}.ant-space-compact-vertical{flex-direction:column}.ant-space-compact-rtl,.ant-space-rtl{direction:rtl}.ant-picker-calendar{font-feature-settings:"tnum","tnum";background:#fff;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-picker-calendar-header{display:flex;justify-content:flex-end;padding:12px 0}.ant-picker-calendar-header .ant-picker-calendar-year-select{min-width:80px}.ant-picker-calendar-header .ant-picker-calendar-month-select{margin-left:8px;min-width:70px}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{margin-left:8px}.ant-picker-calendar .ant-picker-panel{background:#fff;border:0;border-radius:0;border-top:1px solid #f0f0f0}.ant-picker-calendar .ant-picker-panel .ant-picker-date-panel,.ant-picker-calendar .ant-picker-panel .ant-picker-month-panel{width:auto}.ant-picker-calendar .ant-picker-panel .ant-picker-body{padding:8px 0}.ant-picker-calendar .ant-picker-panel .ant-picker-content{width:100%}.ant-picker-calendar-mini{border-radius:2px}.ant-picker-calendar-mini .ant-picker-calendar-header{padding-left:8px;padding-right:8px}.ant-picker-calendar-mini .ant-picker-panel{border-radius:0 0 2px 2px}.ant-picker-calendar-mini .ant-picker-content{height:256px}.ant-picker-calendar-mini .ant-picker-content th{height:auto;line-height:18px;padding:0}.ant-picker-calendar-mini .ant-picker-cell:before{pointer-events:none}.ant-picker-calendar-full .ant-picker-panel{background:#fff;border:0;display:block;text-align:right;width:100%}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body td,.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{padding:0}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{height:auto;line-height:18px;padding:0 12px 5px 0}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:hover .ant-picker-calendar-date{background:#f5f5f5}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell .ant-picker-calendar-date-today:before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today{background:#e6f7ff}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today .ant-picker-calendar-date-value{color:#1890ff}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{border:0;border-radius:0;border-top:2px solid #f0f0f0;display:block;height:auto;margin:0 4px;padding:4px 8px 0;transition:background .3s;width:auto}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-value{line-height:24px;transition:color .3s}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content{color:rgba(0,0,0,.85);height:86px;line-height:1.5715;overflow-y:auto;position:static;text-align:left;width:auto}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today{border-color:#1890ff}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today .ant-picker-calendar-date-value{color:rgba(0,0,0,.85)}@media only screen and (max-width:480px){.ant-picker-calendar-header{display:block}.ant-picker-calendar-header .ant-picker-calendar-year-select{width:50%}.ant-picker-calendar-header .ant-picker-calendar-month-select{width:calc(50% - 8px)}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{margin-left:0;margin-top:8px;width:100%}.ant-picker-calendar-header .ant-picker-calendar-mode-switch>label{text-align:center;width:50%}}.ant-picker-calendar-rtl{direction:rtl}.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-mode-switch,.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-month-select{margin-left:0;margin-right:8px}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel{text-align:left}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{padding:0 0 5px 12px}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content{text-align:right}.ant-picker-status-error.ant-picker,.ant-picker-status-error.ant-picker:not([disabled]):hover{background-color:#fff;border-color:#ff4d4f}.ant-picker-status-error.ant-picker-focused,.ant-picker-status-error.ant-picker:focus{border-color:#ff7875;border-right-width:1px;box-shadow:0 0 0 2px rgba(255,77,79,.2);outline:0}.ant-picker-status-error.ant-picker .ant-picker-active-bar{background:#ff7875}.ant-picker-status-warning.ant-picker,.ant-picker-status-warning.ant-picker:not([disabled]):hover{background-color:#fff;border-color:#faad14}.ant-picker-status-warning.ant-picker-focused,.ant-picker-status-warning.ant-picker:focus{border-color:#ffc53d;border-right-width:1px;box-shadow:0 0 0 2px rgba(250,173,20,.2);outline:0}.ant-picker-status-warning.ant-picker .ant-picker-active-bar{background:#ffc53d}.ant-picker{font-feature-settings:"tnum","tnum";align-items:center;background:#fff;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:4px 11px;position:relative;transition:border .3s,box-shadow .3s}.ant-picker-focused,.ant-picker:hover{border-color:#40a9ff;border-right-width:1px}.ant-picker-focused{box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-picker.ant-picker-disabled{background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-picker.ant-picker-disabled .ant-picker-suffix{color:rgba(0,0,0,.25)}.ant-picker.ant-picker-borderless{background-color:initial!important;border-color:transparent!important;box-shadow:none!important}.ant-picker-input{align-items:center;display:inline-flex;position:relative;width:100%}.ant-picker-input>input{background-color:#fff;background-image:none;background:transparent;border:0;border-radius:2px;color:rgba(0,0,0,.85);display:inline-block;flex:auto;font-size:14px;height:auto;line-height:1.5715;min-width:0;min-width:1px;padding:0;position:relative;transition:all .3s;width:100%}.ant-picker-input>input::-moz-placeholder{color:#bfbfbf;-moz-user-select:none;user-select:none}.ant-picker-input>input:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-picker-input>input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-picker-input>input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-picker-input>input:-ms-input-placeholder{text-overflow:ellipsis}.ant-picker-input>input:placeholder-shown{text-overflow:ellipsis}.ant-picker-input>input:hover{border-color:#40a9ff;border-right-width:1px}.ant-picker-input>input-focused,.ant-picker-input>input:focus{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-picker-input>input-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-picker-input>input-disabled:hover{border-color:#d9d9d9;border-right-width:1px}.ant-picker-input>input[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-picker-input>input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px}.ant-picker-input>input-borderless,.ant-picker-input>input-borderless-disabled,.ant-picker-input>input-borderless-focused,.ant-picker-input>input-borderless:focus,.ant-picker-input>input-borderless:hover,.ant-picker-input>input-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-picker-input>input{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-picker-input>input-lg{font-size:16px;padding:6.5px 11px}.ant-picker-input>input-sm{padding:0 7px}.ant-picker-input>input:focus{box-shadow:none}.ant-picker-input>input[disabled]{background:transparent}.ant-picker-input:hover .ant-picker-clear{opacity:1}.ant-picker-input-placeholder>input{color:#bfbfbf}.ant-picker-large{padding:6.5px 11px}.ant-picker-large .ant-picker-input>input{font-size:16px}.ant-picker-small{padding:0 7px}.ant-picker-suffix{align-self:center;color:rgba(0,0,0,.25);display:flex;flex:none;line-height:1;margin-left:4px;pointer-events:none}.ant-picker-suffix>*{vertical-align:top}.ant-picker-suffix>:not(:last-child){margin-right:8px}.ant-picker-clear{background:#fff;color:rgba(0,0,0,.25);cursor:pointer;line-height:1;opacity:0;position:absolute;right:0;top:50%;transform:translateY(-50%);transition:opacity .3s,color .3s}.ant-picker-clear>*{vertical-align:top}.ant-picker-clear:hover{color:rgba(0,0,0,.45)}.ant-picker-separator{color:rgba(0,0,0,.25);cursor:default;display:inline-block;font-size:16px;height:16px;position:relative;vertical-align:top;width:1em}.ant-picker-focused .ant-picker-separator{color:rgba(0,0,0,.45)}.ant-picker-disabled .ant-picker-range-separator .ant-picker-separator{cursor:not-allowed}.ant-picker-range{display:inline-flex;position:relative}.ant-picker-range .ant-picker-clear{right:11px}.ant-picker-range:hover .ant-picker-clear{opacity:1}.ant-picker-range .ant-picker-active-bar{background:#1890ff;bottom:-1px;height:2px;margin-left:11px;opacity:0;pointer-events:none;transition:all .3s ease-out}.ant-picker-range.ant-picker-focused .ant-picker-active-bar{opacity:1}.ant-picker-range-separator{align-items:center;line-height:1;padding:0 8px}.ant-picker-range.ant-picker-small .ant-picker-clear{right:7px}.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-left:7px}.ant-picker-dropdown{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;left:-9999px;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;top:-9999px;z-index:1050}.ant-picker-dropdown-hidden{display:none}.ant-picker-dropdown-placement-bottomLeft .ant-picker-range-arrow{display:block;top:2.58561808px;transform:rotate(-135deg) translateY(1px)}.ant-picker-dropdown-placement-topLeft .ant-picker-range-arrow{bottom:2.58561808px;display:block;transform:rotate(45deg)}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topRight{animation-name:antSlideDownIn}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomRight{animation-name:antSlideUpIn}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topRight{animation-name:antSlideDownOut}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomRight{animation-name:antSlideUpOut}.ant-picker-dropdown-range{padding:7.54247233px 0}.ant-picker-dropdown-range-hidden{display:none}.ant-picker-dropdown .ant-picker-panel>.ant-picker-time-panel{padding-top:4px}.ant-picker-ranges{line-height:34px;list-style:none;margin-bottom:0;overflow:hidden;padding:4px 12px;text-align:left}.ant-picker-ranges>li{display:inline-block}.ant-picker-ranges .ant-picker-preset>.ant-tag-blue{background:#e6f7ff;border-color:#91d5ff;color:#1890ff;cursor:pointer}.ant-picker-ranges .ant-picker-ok{float:right;margin-left:8px}.ant-picker-range-wrapper{display:flex}.ant-picker-range-arrow{border-radius:0 0 2px;box-shadow:2px 2px 6px -2px rgba(0,0,0,.1);height:11.3137085px;margin-left:16.5px;pointer-events:none;position:absolute;transition:left .3s ease-out;width:11.3137085px;z-index:1}.ant-picker-range-arrow:before{background:#fff;background-position:-10px -10px;background-repeat:no-repeat;-webkit-clip-path:inset(33% 33%);clip-path:inset(33% 33%);-webkit-clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");content:"";height:33.9411255px;left:-11.3137085px;position:absolute;top:-11.3137085px;width:33.9411255px}.ant-picker-panel-container{background:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);overflow:hidden;transition:margin .3s;vertical-align:top}.ant-picker-panel-container .ant-picker-panels{direction:ltr;display:inline-flex;flex-wrap:nowrap}.ant-picker-panel-container .ant-picker-panel{background:transparent;border-radius:0;border-width:0 0 1px;vertical-align:top}.ant-picker-panel-container .ant-picker-panel .ant-picker-content,.ant-picker-panel-container .ant-picker-panel table{text-align:center}.ant-picker-panel-container .ant-picker-panel-focused{border-color:#f0f0f0}.ant-picker-compact-item:not(.ant-picker-compact-last-item):not(.ant-picker-compact-item-rtl){margin-right:-1px}.ant-picker-compact-item:not(.ant-picker-compact-last-item).ant-picker-compact-item-rtl{margin-left:-1px}.ant-picker-compact-item.ant-picker-focused,.ant-picker-compact-item:active,.ant-picker-compact-item:focus,.ant-picker-compact-item:hover{z-index:2}.ant-picker-compact-item[disabled]{z-index:0}.ant-picker-compact-item:not(.ant-picker-compact-first-item):not(.ant-picker-compact-last-item).ant-picker{border-radius:0}.ant-picker-compact-item.ant-picker.ant-picker-compact-first-item:not(.ant-picker-compact-last-item):not(.ant-picker-compact-item-rtl){border-bottom-right-radius:0;border-top-right-radius:0}.ant-picker-compact-item.ant-picker.ant-picker-compact-item-rtl.ant-picker-compact-first-item:not(.ant-picker-compact-last-item),.ant-picker-compact-item.ant-picker.ant-picker-compact-last-item:not(.ant-picker-compact-first-item):not(.ant-picker-compact-item-rtl){border-bottom-left-radius:0;border-top-left-radius:0}.ant-picker-compact-item.ant-picker.ant-picker-compact-item-rtl.ant-picker-compact-last-item:not(.ant-picker-compact-first-item){border-bottom-right-radius:0;border-top-right-radius:0}.ant-picker-panel{background:#fff;border:1px solid #f0f0f0;border-radius:2px;display:inline-flex;flex-direction:column;outline:none;text-align:center}.ant-picker-panel-focused{border-color:#1890ff}.ant-picker-date-panel,.ant-picker-decade-panel,.ant-picker-month-panel,.ant-picker-quarter-panel,.ant-picker-time-panel,.ant-picker-week-panel,.ant-picker-year-panel{display:flex;flex-direction:column;width:280px}.ant-picker-header{border-bottom:1px solid #f0f0f0;color:rgba(0,0,0,.85);display:flex;padding:0 8px}.ant-picker-header>*{flex:none}.ant-picker-header button{background:transparent;border:0;color:rgba(0,0,0,.25);cursor:pointer;line-height:40px;padding:0;transition:color .3s}.ant-picker-header>button{font-size:14px;min-width:1.6em}.ant-picker-header>button:hover{color:rgba(0,0,0,.85)}.ant-picker-header-view{flex:auto;font-weight:500;line-height:40px}.ant-picker-header-view button{color:inherit;font-weight:inherit}.ant-picker-header-view button:not(:first-child){margin-left:8px}.ant-picker-header-view button:hover{color:#1890ff}.ant-picker-next-icon,.ant-picker-prev-icon,.ant-picker-super-next-icon,.ant-picker-super-prev-icon{display:inline-block;height:7px;position:relative;width:7px}.ant-picker-next-icon:before,.ant-picker-prev-icon:before,.ant-picker-super-next-icon:before,.ant-picker-super-prev-icon:before{border:0 solid;border-width:1.5px 0 0 1.5px;content:"";display:inline-block;height:7px;left:0;position:absolute;top:0;width:7px}.ant-picker-super-next-icon:after,.ant-picker-super-prev-icon:after{border:0 solid;border-width:1.5px 0 0 1.5px;content:"";display:inline-block;height:7px;left:4px;position:absolute;top:4px;width:7px}.ant-picker-prev-icon,.ant-picker-super-prev-icon{transform:rotate(-45deg)}.ant-picker-next-icon,.ant-picker-super-next-icon{transform:rotate(135deg)}.ant-picker-content{border-collapse:collapse;table-layout:fixed;width:100%}.ant-picker-content td,.ant-picker-content th{font-weight:400;min-width:24px;position:relative}.ant-picker-content th{color:rgba(0,0,0,.85);height:30px;line-height:30px}.ant-picker-cell{color:rgba(0,0,0,.25);cursor:pointer;padding:3px 0}.ant-picker-cell-in-view{color:rgba(0,0,0,.85)}.ant-picker-cell:before{content:"";height:24px;left:0;position:absolute;right:0;top:50%;transform:translateY(-50%);transition:all .3s;z-index:1}.ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner,.ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner{background:#f5f5f5}.ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner:before{border:1px solid #1890ff;border-radius:2px;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.ant-picker-cell-in-view.ant-picker-cell-in-range{position:relative}.ant-picker-cell-in-view.ant-picker-cell-in-range:before{background:#e6f7ff}.ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner,.ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner{background:#1890ff;color:#fff}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):before{background:#e6f7ff}.ant-picker-cell-in-view.ant-picker-cell-range-start:before{left:50%}.ant-picker-cell-in-view.ant-picker-cell-range-end:before{right:50%}.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-end-single:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-start-near-hover:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start-single:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-end-near-hover:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-in-range):after{border-bottom:1px dashed #7ec1ff;border-top:1px dashed #7ec1ff;content:"";height:24px;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s;z-index:0}.ant-picker-cell-range-hover-end:after,.ant-picker-cell-range-hover-start:after,.ant-picker-cell-range-hover:after{left:2px;right:0}.ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-end.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single).ant-picker-cell-range-hover-end:before,.ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single).ant-picker-cell-range-hover-start:before,.ant-picker-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end:before,.ant-picker-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start:before{background:#cbe6ff}.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner{border-radius:2px 0 0 2px}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner{border-radius:0 2px 2px 0}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after,.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{background:#cbe6ff;bottom:0;content:"";position:absolute;top:0;transition:all .3s;z-index:-1}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{left:0;right:-6px}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after{left:-6px;right:0}.ant-picker-cell-range-hover.ant-picker-cell-range-start:after{right:50%}.ant-picker-cell-range-hover.ant-picker-cell-range-end:after{left:50%}.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:after,.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:first-child:after{border-bottom-left-radius:2px;border-left:1px dashed #7ec1ff;border-top-left-radius:2px;left:6px}.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:last-child:after{border-bottom-right-radius:2px;border-right:1px dashed #7ec1ff;border-top-right-radius:2px;right:6px}.ant-picker-cell-disabled{color:rgba(0,0,0,.25);pointer-events:none}.ant-picker-cell-disabled .ant-picker-cell-inner{background:transparent}.ant-picker-cell-disabled:before{background:rgba(0,0,0,.04)}.ant-picker-cell-disabled.ant-picker-cell-today .ant-picker-cell-inner:before{border-color:rgba(0,0,0,.25)}.ant-picker-decade-panel .ant-picker-content,.ant-picker-month-panel .ant-picker-content,.ant-picker-quarter-panel .ant-picker-content,.ant-picker-year-panel .ant-picker-content{height:264px}.ant-picker-decade-panel .ant-picker-cell-inner,.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{padding:0 8px}.ant-picker-quarter-panel .ant-picker-content{height:56px}.ant-picker-footer{border-bottom:1px solid transparent;line-height:38px;min-width:100%;text-align:center;width:-moz-min-content;width:min-content}.ant-picker-panel .ant-picker-footer{border-top:1px solid #f0f0f0}.ant-picker-footer-extra{line-height:38px;padding:0 12px;text-align:left}.ant-picker-footer-extra:not(:last-child){border-bottom:1px solid #f0f0f0}.ant-picker-now{text-align:left}.ant-picker-today-btn{color:#1890ff}.ant-picker-today-btn:hover{color:#40a9ff}.ant-picker-today-btn:active{color:#096dd9}.ant-picker-today-btn.ant-picker-today-btn-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-picker-decade-panel .ant-picker-cell-inner{padding:0 4px}.ant-picker-decade-panel .ant-picker-cell:before{display:none}.ant-picker-month-panel .ant-picker-body,.ant-picker-quarter-panel .ant-picker-body,.ant-picker-year-panel .ant-picker-body{padding:0 8px}.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{width:60px}.ant-picker-month-panel .ant-picker-cell-range-hover-start:after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-start:after,.ant-picker-year-panel .ant-picker-cell-range-hover-start:after{border-left:1px dashed #7ec1ff;border-radius:2px 0 0 2px;left:14px}.ant-picker-month-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-start:after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-end:after,.ant-picker-year-panel .ant-picker-cell-range-hover-end:after{border-radius:0 2px 2px 0;border-right:1px dashed #7ec1ff;right:14px}.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-end:after{border-left:1px dashed #7ec1ff;border-radius:2px 0 0 2px;left:14px}.ant-picker-week-panel .ant-picker-body{padding:8px 12px}.ant-picker-week-panel .ant-picker-cell .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell-selected .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell:hover .ant-picker-cell-inner{background:transparent!important}.ant-picker-week-panel-row td{transition:background .3s}.ant-picker-week-panel-row:hover td{background:#f5f5f5}.ant-picker-week-panel-row-selected td,.ant-picker-week-panel-row-selected:hover td{background:#1890ff}.ant-picker-week-panel-row-selected td.ant-picker-cell-week,.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-week{color:hsla(0,0%,100%,.5)}.ant-picker-week-panel-row-selected td.ant-picker-cell-today .ant-picker-cell-inner:before,.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-today .ant-picker-cell-inner:before{border-color:#fff}.ant-picker-week-panel-row-selected td .ant-picker-cell-inner,.ant-picker-week-panel-row-selected:hover td .ant-picker-cell-inner{color:#fff}.ant-picker-date-panel .ant-picker-body{padding:8px 12px}.ant-picker-date-panel .ant-picker-content{width:252px}.ant-picker-date-panel .ant-picker-content th{width:36px}.ant-picker-datetime-panel{display:flex}.ant-picker-datetime-panel .ant-picker-time-panel{border-left:1px solid #f0f0f0}.ant-picker-datetime-panel .ant-picker-date-panel,.ant-picker-datetime-panel .ant-picker-time-panel{transition:opacity .3s}.ant-picker-datetime-panel-active .ant-picker-date-panel,.ant-picker-datetime-panel-active .ant-picker-time-panel{opacity:.3}.ant-picker-datetime-panel-active .ant-picker-date-panel-active,.ant-picker-datetime-panel-active .ant-picker-time-panel-active{opacity:1}.ant-picker-time-panel{min-width:auto;width:auto}.ant-picker-time-panel .ant-picker-content{display:flex;flex:auto;height:224px}.ant-picker-time-panel-column{flex:1 0 auto;list-style:none;margin:0;overflow-y:hidden;padding:0;text-align:left;transition:background .3s;width:56px}.ant-picker-time-panel-column:after{content:"";display:block;height:196px}.ant-picker-datetime-panel .ant-picker-time-panel-column:after{height:198px}.ant-picker-time-panel-column:not(:first-child){border-left:1px solid #f0f0f0}.ant-picker-time-panel-column-active{background:rgba(230,247,255,.2)}.ant-picker-time-panel-column:hover{overflow-y:auto}.ant-picker-time-panel-column>li{margin:0;padding:0}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner{border-radius:0;color:rgba(0,0,0,.85);cursor:pointer;display:block;height:28px;line-height:28px;margin:0;padding:0 0 0 14px;transition:background .3s;width:100%}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover{background:#f5f5f5}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background:#e6f7ff}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-disabled .ant-picker-time-panel-cell-inner{background:transparent;color:rgba(0,0,0,.25);cursor:not-allowed}:root .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,:root .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell{padding:21px 0}.ant-picker-rtl{direction:rtl}.ant-picker-rtl .ant-picker-suffix{margin-left:0;margin-right:4px}.ant-picker-rtl .ant-picker-clear{left:0;right:auto}.ant-picker-rtl .ant-picker-separator{transform:rotate(180deg)}.ant-picker-panel-rtl .ant-picker-header-view button:not(:first-child){margin-left:0;margin-right:8px}.ant-picker-rtl.ant-picker-range .ant-picker-clear{left:11px;right:auto}.ant-picker-rtl.ant-picker-range .ant-picker-active-bar{margin-left:0;margin-right:11px}.ant-picker-rtl.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-right:7px}.ant-picker-dropdown-rtl .ant-picker-ranges{text-align:right}.ant-picker-dropdown-rtl .ant-picker-ranges .ant-picker-ok{float:left;margin-left:0;margin-right:8px}.ant-picker-panel-rtl{direction:rtl}.ant-picker-panel-rtl .ant-picker-prev-icon,.ant-picker-panel-rtl .ant-picker-super-prev-icon{transform:rotate(135deg)}.ant-picker-panel-rtl .ant-picker-next-icon,.ant-picker-panel-rtl .ant-picker-super-next-icon{transform:rotate(-45deg)}.ant-picker-cell .ant-picker-cell-inner{border-radius:2px;display:inline-block;height:24px;line-height:24px;min-width:24px;position:relative;transition:background .3s,border .3s;z-index:2}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:before{left:0;right:50%}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:before{left:50%;right:0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-end:before{left:50%;right:50%}.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{left:-6px;right:0}.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after{left:0;right:-6px}.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-start:after{left:50%;right:0}.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-end:after{left:0;right:50%}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner{border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner{border-radius:2px 0 0 2px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):first-child:after{border-left:none;border-radius:0 2px 2px 0;border-right:1px dashed #7ec1ff;left:0;right:6px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range:after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):last-child:after{border-left:1px dashed #7ec1ff;border-radius:2px 0 0 2px;border-right:none;left:6px;right:0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-start.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-end.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-end:first-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-start:last-child:after{border-left:1px dashed #7ec1ff;border-radius:2px;border-right:1px dashed #7ec1ff;left:6px;right:6px}.ant-picker-dropdown-rtl .ant-picker-footer-extra{direction:rtl;text-align:right}.ant-picker-panel-rtl .ant-picker-time-panel{direction:ltr}.ant-tag{font-feature-settings:"tnum","tnum";background:#fafafa;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;display:inline-block;font-size:14px;font-size:12px;font-variant:tabular-nums;height:auto;line-height:1.5715;line-height:20px;list-style:none;margin:0 8px 0 0;opacity:1;padding:0 7px;transition:all .3s;white-space:nowrap}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,.85)}.ant-tag>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ant-tag-close-icon{color:rgba(0,0,0,.45);cursor:pointer;font-size:10px;margin-left:3px;transition:all .3s}.ant-tag-close-icon:hover{color:rgba(0,0,0,.85)}.ant-tag-has-color{border-color:transparent}.ant-tag-has-color,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover,.ant-tag-has-color a,.ant-tag-has-color a:hover{color:#fff}.ant-tag-checkable{background-color:initial;border-color:transparent;cursor:pointer}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}.ant-tag-checkable-checked,.ant-tag-checkable:active{color:#fff}.ant-tag-checkable-checked{background-color:#1890ff}.ant-tag-checkable:active{background-color:#096dd9}.ant-tag-hidden{display:none}.ant-tag-pink{background:#fff0f6;border-color:#ffadd2;color:#c41d7f}.ant-tag-pink-inverse{background:#eb2f96;border-color:#eb2f96;color:#fff}.ant-tag-magenta{background:#fff0f6;border-color:#ffadd2;color:#c41d7f}.ant-tag-magenta-inverse{background:#eb2f96;border-color:#eb2f96;color:#fff}.ant-tag-red{background:#fff1f0;border-color:#ffa39e;color:#cf1322}.ant-tag-red-inverse{background:#f5222d;border-color:#f5222d;color:#fff}.ant-tag-volcano{background:#fff2e8;border-color:#ffbb96;color:#d4380d}.ant-tag-volcano-inverse{background:#fa541c;border-color:#fa541c;color:#fff}.ant-tag-orange{background:#fff7e6;border-color:#ffd591;color:#d46b08}.ant-tag-orange-inverse{background:#fa8c16;border-color:#fa8c16;color:#fff}.ant-tag-yellow{background:#feffe6;border-color:#fffb8f;color:#d4b106}.ant-tag-yellow-inverse{background:#fadb14;border-color:#fadb14;color:#fff}.ant-tag-gold{background:#fffbe6;border-color:#ffe58f;color:#d48806}.ant-tag-gold-inverse{background:#faad14;border-color:#faad14;color:#fff}.ant-tag-cyan{background:#e6fffb;border-color:#87e8de;color:#08979c}.ant-tag-cyan-inverse{background:#13c2c2;border-color:#13c2c2;color:#fff}.ant-tag-lime{background:#fcffe6;border-color:#eaff8f;color:#7cb305}.ant-tag-lime-inverse{background:#a0d911;border-color:#a0d911;color:#fff}.ant-tag-green{background:#f6ffed;border-color:#b7eb8f;color:#389e0d}.ant-tag-green-inverse{background:#52c41a;border-color:#52c41a;color:#fff}.ant-tag-blue{background:#e6f7ff;border-color:#91d5ff;color:#096dd9}.ant-tag-blue-inverse{background:#1890ff;border-color:#1890ff;color:#fff}.ant-tag-geekblue{background:#f0f5ff;border-color:#adc6ff;color:#1d39c4}.ant-tag-geekblue-inverse{background:#2f54eb;border-color:#2f54eb;color:#fff}.ant-tag-purple{background:#f9f0ff;border-color:#d3adf7;color:#531dab}.ant-tag-purple-inverse{background:#722ed1;border-color:#722ed1;color:#fff}.ant-tag-success{background:#f6ffed;border-color:#b7eb8f;color:#52c41a}.ant-tag-processing{background:#e6f7ff;border-color:#91d5ff;color:#1890ff}.ant-tag-error{background:#fff2f0;border-color:#ffccc7;color:#ff4d4f}.ant-tag-warning{background:#fffbe6;border-color:#ffe58f;color:#faad14}.ant-tag>.anticon+span,.ant-tag>span+.anticon{margin-left:7px}.ant-tag.ant-tag-rtl{direction:rtl;margin-left:8px;margin-right:0;text-align:right}.ant-tag-rtl .ant-tag-close-icon{margin-left:0;margin-right:3px}.ant-tag-rtl.ant-tag>.anticon+span,.ant-tag-rtl.ant-tag>span+.anticon{margin-left:0;margin-right:7px}.ant-radio-group{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-size:0;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-radio-group .ant-badge-count{z-index:1}.ant-radio-group>.ant-badge:not(:first-child)>.ant-radio-button-wrapper{border-left:none}.ant-radio-wrapper{font-feature-settings:"tnum","tnum";align-items:baseline;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 8px 0 0;padding:0;position:relative}.ant-radio-wrapper-disabled{cursor:not-allowed}.ant-radio-wrapper:after{content:"\a0";display:inline-block;overflow:hidden;width:0}.ant-radio-wrapper.ant-radio-wrapper-in-form-item input[type=radio]{height:14px;width:14px}.ant-radio{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em}.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}.ant-radio-input:focus+.ant-radio-inner{box-shadow:0 0 0 3px rgba(24,144,255,.12)}.ant-radio-checked:after{animation:antRadioEffect .36s ease-in-out;animation-fill-mode:both;border:1px solid #1890ff;border-radius:50%;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-radio-wrapper:hover .ant-radio:after,.ant-radio:hover:after{visibility:visible}.ant-radio-inner{background-color:#fff;border:1px solid #d9d9d9;border-radius:50%;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-radio-inner:after{background-color:#1890ff;border-left:0;border-radius:16px;border-top:0;content:" ";display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;opacity:0;position:absolute;top:50%;transform:scale(0);transition:all .3s cubic-bezier(.78,.14,.15,.86);width:16px}.ant-radio-input{bottom:0;cursor:pointer;left:0;opacity:0;position:absolute;right:0;top:0;z-index:1}.ant-radio.ant-radio-disabled .ant-radio-inner{border-color:#d9d9d9}.ant-radio-checked .ant-radio-inner{border-color:#1890ff}.ant-radio-checked .ant-radio-inner:after{opacity:1;transform:scale(.5);transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-radio-disabled{cursor:not-allowed}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;cursor:not-allowed}.ant-radio-disabled .ant-radio-inner:after{background-color:rgba(0,0,0,.2)}.ant-radio-disabled .ant-radio-input{cursor:not-allowed}.ant-radio-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}span.ant-radio+*{padding-left:8px;padding-right:8px}.ant-radio-button-wrapper{background:#fff;border-color:#d9d9d9;border-style:solid;border-width:1.02px 1px 1px 0;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;height:32px;line-height:30px;margin:0;padding:0 15px;position:relative;transition:color .3s,background .3s,border-color .3s,box-shadow .3s}.ant-radio-button-wrapper a{color:rgba(0,0,0,.85)}.ant-radio-button-wrapper>.ant-radio-button{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.ant-radio-group-large .ant-radio-button-wrapper{font-size:16px;height:40px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;line-height:22px;padding:0 7px}.ant-radio-button-wrapper:not(:first-child):before{background-color:#d9d9d9;box-sizing:initial;content:"";display:block;height:100%;left:-1px;padding:1px 0;position:absolute;top:-1px;transition:background-color .3s;width:1px}.ant-radio-button-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:2px 0 0 2px}.ant-radio-button-wrapper:last-child{border-radius:0 2px 2px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:2px}.ant-radio-button-wrapper:hover{color:#1890ff;position:relative}.ant-radio-button-wrapper:focus-within{box-shadow:0 0 0 3px rgba(24,144,255,.12)}.ant-radio-button-wrapper .ant-radio-inner,.ant-radio-button-wrapper input[type=checkbox],.ant-radio-button-wrapper input[type=radio]{height:0;opacity:0;pointer-events:none;width:0}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:#fff;border-color:#1890ff;color:#1890ff;z-index:1}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{border-color:#40a9ff;color:#40a9ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#40a9ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{border-color:#096dd9;color:#096dd9}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#096dd9}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{box-shadow:0 0 0 3px rgba(24,144,255,.12)}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:#1890ff;border-color:#1890ff;color:#fff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background:#40a9ff;border-color:#40a9ff;color:#fff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background:#096dd9;border-color:#096dd9;color:#fff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{box-shadow:0 0 0 3px rgba(24,144,255,.12)}.ant-radio-button-wrapper-disabled{cursor:not-allowed}.ant-radio-button-wrapper-disabled,.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{background-color:#f5f5f5;border-color:#d9d9d9;color:rgba(0,0,0,.25)}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{background-color:#e6e6e6;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25)}@keyframes antRadioEffect{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.ant-radio-group.ant-radio-group-rtl{direction:rtl}.ant-radio-wrapper.ant-radio-wrapper-rtl{direction:rtl;margin-left:8px;margin-right:0}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl{border-left-width:1px;border-right-width:0}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:not(:first-child):before{left:0;right:-1px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:first-child{border-radius:0 2px 2px 0;border-right:1px solid #d9d9d9}.ant-radio-button-wrapper-checked:not([class*=" ant-radio-button-wrapper-disabled"]).ant-radio-button-wrapper:first-child{border-right-color:#40a9ff}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:last-child{border-radius:2px 0 0 2px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper-disabled:first-child{border-right-color:#d9d9d9}.ant-card{font-feature-settings:"tnum","tnum";background:#fff;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-card-rtl{direction:rtl}.ant-card-hoverable{cursor:pointer;transition:box-shadow .3s,border-color .3s}.ant-card-hoverable:hover{border-color:transparent;box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09)}.ant-card-bordered{border:1px solid #f0f0f0}.ant-card-head{background:transparent;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0;color:rgba(0,0,0,.85);font-size:16px;font-weight:500;margin-bottom:-1px;min-height:48px;padding:0 24px}.ant-card-head:after,.ant-card-head:before{content:"";display:table}.ant-card-head:after{clear:both}.ant-card-head-wrapper{align-items:center;display:flex}.ant-card-head-title{display:inline-block;flex:1 1;overflow:hidden;padding:16px 0;text-overflow:ellipsis;white-space:nowrap}.ant-card-head-title>.ant-typography,.ant-card-head-title>.ant-typography-edit-content{left:0;margin-bottom:0;margin-top:0}.ant-card-head .ant-tabs-top{clear:both;color:rgba(0,0,0,.85);font-size:14px;font-weight:400;margin-bottom:-17px}.ant-card-head .ant-tabs-top-bar{border-bottom:1px solid #f0f0f0}.ant-card-extra{color:rgba(0,0,0,.85);font-size:14px;font-weight:400;margin-left:auto;padding:16px 0}.ant-card-rtl .ant-card-extra{margin-left:0;margin-right:auto}.ant-card-body{padding:24px}.ant-card-body:after,.ant-card-body:before{content:"";display:table}.ant-card-body:after{clear:both}.ant-card-contain-grid .ant-card-body{display:flex;flex-wrap:wrap}.ant-card-contain-grid:not(.ant-card-loading) .ant-card-body{margin:-1px 0 0 -1px;padding:0}.ant-card-grid{border:0;border-radius:0;box-shadow:1px 0 0 0 #f0f0f0,0 1px 0 0 #f0f0f0,1px 1px 0 0 #f0f0f0,inset 1px 0 0 0 #f0f0f0,inset 0 1px 0 0 #f0f0f0;padding:24px;transition:all .3s;width:33.33%}.ant-card-grid-hoverable:hover{box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09);position:relative;z-index:1}.ant-card-contain-tabs>.ant-card-head .ant-card-head-title{min-height:32px;padding-bottom:0}.ant-card-contain-tabs>.ant-card-head .ant-card-extra{padding-bottom:0}.ant-card-bordered .ant-card-cover{margin-left:-1px;margin-right:-1px;margin-top:-1px}.ant-card-cover>*{display:block;width:100%}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{background:#fff;border-top:1px solid #f0f0f0;display:flex;list-style:none;margin:0;padding:0}.ant-card-actions:after,.ant-card-actions:before{content:"";display:table}.ant-card-actions:after{clear:both}.ant-card-actions>li{color:rgba(0,0,0,.45);margin:12px 0;text-align:center}.ant-card-actions>li>span{cursor:pointer;display:block;font-size:14px;line-height:1.5715;min-width:32px;position:relative}.ant-card-actions>li>span:hover{color:#1890ff;transition:color .3s}.ant-card-actions>li>span a:not(.ant-btn),.ant-card-actions>li>span>.anticon{color:rgba(0,0,0,.45);display:inline-block;line-height:22px;transition:color .3s;width:100%}.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#1890ff}.ant-card-actions>li>span>.anticon{font-size:16px;line-height:22px}.ant-card-actions>li:not(:last-child){border-right:1px solid #f0f0f0}.ant-card-rtl .ant-card-actions>li:not(:last-child){border-left:1px solid #f0f0f0;border-right:none}.ant-card-type-inner .ant-card-head{background:#fafafa;padding:0 24px}.ant-card-type-inner .ant-card-head-title{font-size:14px;padding:12px 0}.ant-card-type-inner .ant-card-body{padding:16px 24px}.ant-card-type-inner .ant-card-extra{padding:13.5px 0}.ant-card-meta{display:flex;margin:-4px 0}.ant-card-meta:after,.ant-card-meta:before{content:"";display:table}.ant-card-meta:after{clear:both}.ant-card-meta-avatar{padding-right:16px}.ant-card-rtl .ant-card-meta-avatar{padding-left:16px;padding-right:0}.ant-card-meta-detail{flex:1 1;overflow:hidden}.ant-card-meta-detail>div:not(:last-child){margin-bottom:8px}.ant-card-meta-title{color:rgba(0,0,0,.85);font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-card-meta-description{color:rgba(0,0,0,.45)}.ant-card-loading{overflow:hidden}.ant-card-loading .ant-card-body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-card-small>.ant-card-head{font-size:14px;min-height:36px;padding:0 12px}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-head-title{padding:8px 0}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-extra{font-size:14px;padding:8px 0}.ant-card-small>.ant-card-body{padding:12px}.ant-skeleton{display:table;width:100%}.ant-skeleton-header{display:table-cell;padding-right:16px;vertical-align:top}.ant-skeleton-header .ant-skeleton-avatar{background:hsla(0,0%,75%,.2);display:inline-block;height:32px;line-height:32px;vertical-align:top;width:32px}.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-lg{height:40px;line-height:40px;width:40px}.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-sm{height:24px;line-height:24px;width:24px}.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-content{display:table-cell;vertical-align:top;width:100%}.ant-skeleton-content .ant-skeleton-title{background:hsla(0,0%,75%,.2);border-radius:2px;height:16px;width:100%}.ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:24px}.ant-skeleton-content .ant-skeleton-paragraph{padding:0}.ant-skeleton-content .ant-skeleton-paragraph>li{background:hsla(0,0%,75%,.2);border-radius:2px;height:16px;list-style:none;width:100%}.ant-skeleton-content .ant-skeleton-paragraph>li:last-child:not(:first-child):not(:nth-child(2)){width:61%}.ant-skeleton-content .ant-skeleton-paragraph>li+li{margin-top:16px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title{margin-top:12px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:28px}.ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-round .ant-skeleton-content .ant-skeleton-title{border-radius:100px}.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton-active .ant-skeleton-button,.ant-skeleton-active .ant-skeleton-image,.ant-skeleton-active .ant-skeleton-input,.ant-skeleton-active .ant-skeleton-paragraph>li,.ant-skeleton-active .ant-skeleton-title{background:transparent;overflow:hidden;position:relative;z-index:0}.ant-skeleton-active .ant-skeleton-avatar:after,.ant-skeleton-active .ant-skeleton-button:after,.ant-skeleton-active .ant-skeleton-image:after,.ant-skeleton-active .ant-skeleton-input:after,.ant-skeleton-active .ant-skeleton-paragraph>li:after,.ant-skeleton-active .ant-skeleton-title:after{animation:ant-skeleton-loading 1.4s ease infinite;background:linear-gradient(90deg,hsla(0,0%,75%,.2) 25%,hsla(0,0%,51%,.24) 37%,hsla(0,0%,75%,.2) 63%);bottom:0;content:"";left:-150%;position:absolute;right:-150%;top:0}.ant-skeleton.ant-skeleton-block,.ant-skeleton.ant-skeleton-block .ant-skeleton-button,.ant-skeleton.ant-skeleton-block .ant-skeleton-input{width:100%}.ant-skeleton-element{display:inline-block;width:auto}.ant-skeleton-element .ant-skeleton-button{background:hsla(0,0%,75%,.2);border-radius:2px;display:inline-block;height:32px;line-height:32px;min-width:64px;vertical-align:top;width:64px}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-square{min-width:32px;width:32px}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle{border-radius:50%;min-width:32px;width:32px}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round{border-radius:32px}.ant-skeleton-element .ant-skeleton-button-lg{height:40px;line-height:40px;min-width:80px;width:80px}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-square{min-width:40px;width:40px}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-circle{border-radius:50%;min-width:40px;width:40px}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-round{border-radius:40px}.ant-skeleton-element .ant-skeleton-button-sm{height:24px;line-height:24px;min-width:48px;width:48px}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-square{min-width:24px;width:24px}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-circle{border-radius:50%;min-width:24px;width:24px}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-round{border-radius:24px}.ant-skeleton-element .ant-skeleton-avatar{background:hsla(0,0%,75%,.2);display:inline-block;height:32px;line-height:32px;vertical-align:top;width:32px}.ant-skeleton-element .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar-lg{height:40px;line-height:40px;width:40px}.ant-skeleton-element .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar-sm{height:24px;line-height:24px;width:24px}.ant-skeleton-element .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-input{background:hsla(0,0%,75%,.2);display:inline-block;height:32px;line-height:32px;min-width:160px;vertical-align:top;width:160px}.ant-skeleton-element .ant-skeleton-input-lg{height:40px;line-height:40px;min-width:200px;width:200px}.ant-skeleton-element .ant-skeleton-input-sm{height:24px;line-height:24px;min-width:120px;width:120px}.ant-skeleton-element .ant-skeleton-image{align-items:center;background:hsla(0,0%,75%,.2);display:flex;height:96px;justify-content:center;line-height:96px;vertical-align:top;width:96px}.ant-skeleton-element .ant-skeleton-image.ant-skeleton-image-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-image-path{fill:#bfbfbf}.ant-skeleton-element .ant-skeleton-image-svg{height:48px;line-height:48px;max-height:192px;max-width:192px;width:48px}.ant-skeleton-element .ant-skeleton-image-svg.ant-skeleton-image-circle{border-radius:50%}@keyframes ant-skeleton-loading{0%{transform:translateX(-37.5%)}to{transform:translateX(37.5%)}}.ant-skeleton-rtl{direction:rtl}.ant-skeleton-rtl .ant-skeleton-header{padding-left:16px;padding-right:0}.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title{animation-name:ant-skeleton-loading-rtl}@keyframes ant-skeleton-loading-rtl{0%{background-position:0 50%}to{background-position:100% 50%}}.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{font-size:14px;padding:8px 0}.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{font-size:16px;padding:16px 0}.ant-tabs-card.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{padding:6px 16px}.ant-tabs-card.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{padding:7px 16px 6px}.ant-tabs-rtl{direction:rtl}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab:last-of-type{margin-left:0}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .anticon{margin-left:12px;margin-right:0}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove{margin-left:-4px;margin-right:8px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-rtl.ant-tabs-left>.ant-tabs-nav{order:1}.ant-tabs-rtl.ant-tabs-left>.ant-tabs-content-holder,.ant-tabs-rtl.ant-tabs-right>.ant-tabs-nav{order:0}.ant-tabs-rtl.ant-tabs-right>.ant-tabs-content-holder{order:1}.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-left:0;margin-right:2px}.ant-tabs-dropdown-rtl{direction:rtl}.ant-tabs-dropdown-rtl .ant-tabs-dropdown-menu-item{text-align:right}.ant-tabs-bottom,.ant-tabs-top{flex-direction:column}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav,.ant-tabs-top>.ant-tabs-nav,.ant-tabs-top>div>.ant-tabs-nav{margin:0 0 16px}.ant-tabs-bottom>.ant-tabs-nav:before,.ant-tabs-bottom>div>.ant-tabs-nav:before,.ant-tabs-top>.ant-tabs-nav:before,.ant-tabs-top>div>.ant-tabs-nav:before{border-bottom:1px solid #f0f0f0;content:"";left:0;position:absolute;right:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar{height:2px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:width .3s,left .3s,right .3s}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{bottom:0;top:0;width:30px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.08);left:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.08);right:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after{opacity:1}.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav:before{bottom:0}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav{margin-bottom:0;margin-top:16px;order:1}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>.ant-tabs-nav:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav:before{top:0}.ant-tabs-bottom>.ant-tabs-content-holder,.ant-tabs-bottom>div>.ant-tabs-content-holder{order:0}.ant-tabs-left>.ant-tabs-nav,.ant-tabs-left>div>.ant-tabs-nav,.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{flex-direction:column;min-width:50px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{padding:8px 24px;text-align:center}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin:16px 0 0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap{flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{height:30px;left:0;right:0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{box-shadow:inset 0 10px 8px -8px rgba(0,0,0,.08);top:0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:after{bottom:0;box-shadow:inset 0 -10px 8px -8px rgba(0,0,0,.08)}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before{opacity:1}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar{width:2px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:height .3s,top .3s}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-operations{flex:1 0 auto;flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar{right:0}.ant-tabs-left>.ant-tabs-content-holder,.ant-tabs-left>div>.ant-tabs-content-holder{border-left:1px solid #f0f0f0;margin-left:-1px}.ant-tabs-left>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane,.ant-tabs-left>div>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{padding-left:24px}.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{order:1}.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar{left:0}.ant-tabs-right>.ant-tabs-content-holder,.ant-tabs-right>div>.ant-tabs-content-holder{border-right:1px solid #f0f0f0;margin-right:-1px;order:0}.ant-tabs-right>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane,.ant-tabs-right>div>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{padding-right:24px}.ant-tabs-dropdown{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:block;font-size:14px;font-variant:tabular-nums;left:-9999px;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;top:-9999px;z-index:1050}.ant-tabs-dropdown-hidden{display:none}.ant-tabs-dropdown-menu{background-clip:padding-box;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);list-style-type:none;margin:0;max-height:200px;outline:none;overflow-x:hidden;overflow-y:auto;padding:4px 0;text-align:left}.ant-tabs-dropdown-menu-item{align-items:center;color:rgba(0,0,0,.85);cursor:pointer;display:flex;font-size:14px;font-weight:400;line-height:22px;margin:0;min-width:120px;overflow:hidden;padding:5px 12px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-tabs-dropdown-menu-item>span{flex:1 1;white-space:nowrap}.ant-tabs-dropdown-menu-item-remove{background:transparent;border:0;color:rgba(0,0,0,.45);cursor:pointer;flex:none;font-size:12px;margin-left:12px}.ant-tabs-dropdown-menu-item-remove:hover{color:#40a9ff}.ant-tabs-dropdown-menu-item:hover{background:#f5f5f5}.ant-tabs-dropdown-menu-item-disabled,.ant-tabs-dropdown-menu-item-disabled:hover{background:transparent;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-tab{background:#fafafa;border:1px solid #f0f0f0;margin:0;padding:8px 16px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-tab-active{background:#fff;color:#1890ff}.ant-tabs-card>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-ink-bar{visibility:hidden}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-left:2px}.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab{border-radius:2px 2px 0 0}.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab-active{border-bottom-color:#fff}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab{border-radius:0 0 2px 2px}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab-active{border-top-color:#fff}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-top:2px}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab{border-radius:2px 0 0 2px}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab-active{border-right-color:#fff}.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{border-radius:0 2px 2px 0}.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab-active{border-left-color:#fff}.ant-tabs{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-tabs>.ant-tabs-nav,.ant-tabs>div>.ant-tabs-nav{align-items:center;display:flex;flex:none;position:relative}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap{align-self:stretch;display:inline-block;display:flex;flex:auto;overflow:hidden;position:relative;transform:translate(0);white-space:nowrap}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{content:"";opacity:0;pointer-events:none;position:absolute;transition:opacity .3s;z-index:1}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-list{display:flex;position:relative;transition:transform .3s}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations{align-self:stretch;display:flex}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations-hidden,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations-hidden{pointer-events:none;position:absolute;visibility:hidden}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-more,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-more{background:transparent;border:0;padding:8px 16px;position:relative}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-more:after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-more:after{bottom:0;content:"";height:5px;left:0;position:absolute;right:0;transform:translateY(100%)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add{background:#fafafa;border:1px solid #f0f0f0;border-radius:2px 2px 0 0;cursor:pointer;margin-left:2px;min-width:40px;outline:none;padding:0 8px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:hover,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:hover{color:#40a9ff}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:active,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:focus,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:active,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:focus{color:#096dd9}.ant-tabs-extra-content{flex:none}.ant-tabs-centered>.ant-tabs-nav .ant-tabs-nav-wrap:not([class*=ant-tabs-nav-wrap-ping]),.ant-tabs-centered>div>.ant-tabs-nav .ant-tabs-nav-wrap:not([class*=ant-tabs-nav-wrap-ping]){justify-content:center}.ant-tabs-ink-bar{background:#1890ff;pointer-events:none;position:absolute}.ant-tabs-tab{align-items:center;background:transparent;border:0;cursor:pointer;display:inline-flex;font-size:14px;outline:none;padding:12px 0;position:relative}.ant-tabs-tab-btn:active,.ant-tabs-tab-btn:focus,.ant-tabs-tab-remove:active,.ant-tabs-tab-remove:focus{color:#096dd9}.ant-tabs-tab-btn,.ant-tabs-tab-remove{outline:none;transition:all .3s}.ant-tabs-tab-remove{background:transparent;border:none;color:rgba(0,0,0,.45);cursor:pointer;flex:none;font-size:12px;margin-left:8px;margin-right:-4px}.ant-tabs-tab-remove:hover{color:rgba(0,0,0,.85)}.ant-tabs-tab:hover{color:#40a9ff}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff;text-shadow:0 0 .25px currentcolor}.ant-tabs-tab.ant-tabs-tab-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:focus,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:focus{color:rgba(0,0,0,.25)}.ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-tab .anticon{margin-right:12px}.ant-tabs-tab+.ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-content{position:relative;width:100%}.ant-tabs-content-holder{flex:auto;min-height:0;min-width:0}.ant-tabs-tabpane{outline:none}.ant-tabs-tabpane-hidden{display:none}.ant-tabs-switch-appear,.ant-tabs-switch-enter{transition:none}.ant-tabs-switch-appear-start,.ant-tabs-switch-enter-start{opacity:0}.ant-tabs-switch-appear-active,.ant-tabs-switch-enter-active{opacity:1;transition:opacity .3s}.ant-tabs-switch-leave{inset:0;position:absolute;transition:none}.ant-tabs-switch-leave-start{opacity:1}.ant-tabs-switch-leave-active{opacity:0;transition:opacity .3s}.ant-carousel{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-carousel .slick-slider{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;box-sizing:border-box;display:block;position:relative;touch-action:pan-y}.ant-carousel .slick-list{display:block;margin:0;overflow:hidden;padding:0;position:relative}.ant-carousel .slick-list:focus{outline:none}.ant-carousel .slick-list.dragging{cursor:pointer}.ant-carousel .slick-list .slick-slide{pointer-events:none}.ant-carousel .slick-list .slick-slide input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide input.ant-radio-input{visibility:hidden}.ant-carousel .slick-list .slick-slide.slick-active{pointer-events:auto}.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input{visibility:visible}.ant-carousel .slick-list .slick-slide>div>div{vertical-align:bottom}.ant-carousel .slick-slider .slick-list,.ant-carousel .slick-slider .slick-track{touch-action:pan-y;transform:translateZ(0)}.ant-carousel .slick-track{display:block;left:0;position:relative;top:0}.ant-carousel .slick-track:after,.ant-carousel .slick-track:before{content:"";display:table}.ant-carousel .slick-track:after{clear:both}.slick-loading .ant-carousel .slick-track{visibility:hidden}.ant-carousel .slick-slide{display:none;float:left;height:100%;min-height:1px}.ant-carousel .slick-slide img{display:block}.ant-carousel .slick-slide.slick-loading img{display:none}.ant-carousel .slick-slide.dragging img{pointer-events:none}.ant-carousel .slick-initialized .slick-slide{display:block}.ant-carousel .slick-loading .slick-slide{visibility:hidden}.ant-carousel .slick-vertical .slick-slide{display:block;height:auto}.ant-carousel .slick-arrow.slick-hidden{display:none}.ant-carousel .slick-next,.ant-carousel .slick-prev{border:0;cursor:pointer;display:block;font-size:0;height:20px;line-height:0;margin-top:-10px;padding:0;position:absolute;top:50%;width:20px}.ant-carousel .slick-next,.ant-carousel .slick-next:focus,.ant-carousel .slick-next:hover,.ant-carousel .slick-prev,.ant-carousel .slick-prev:focus,.ant-carousel .slick-prev:hover{background:transparent;color:transparent;outline:none}.ant-carousel .slick-next:focus:before,.ant-carousel .slick-next:hover:before,.ant-carousel .slick-prev:focus:before,.ant-carousel .slick-prev:hover:before{opacity:1}.ant-carousel .slick-next.slick-disabled:before,.ant-carousel .slick-prev.slick-disabled:before{opacity:.25}.ant-carousel .slick-prev{left:-25px}.ant-carousel .slick-prev:before{content:"←"}.ant-carousel .slick-next{right:-25px}.ant-carousel .slick-next:before{content:"→"}.ant-carousel .slick-dots{bottom:0;display:flex!important;justify-content:center;left:0;list-style:none;margin-bottom:0;margin-left:15%;margin-right:15%;padding-left:0;position:absolute;right:0;z-index:15}.ant-carousel .slick-dots-bottom{bottom:12px}.ant-carousel .slick-dots-top{bottom:auto;top:12px}.ant-carousel .slick-dots li{box-sizing:initial;display:inline-block;flex:0 1 auto;height:3px;margin:0 4px;padding:0;position:relative;text-align:center;text-indent:-999px;transition:all .5s;vertical-align:top;width:16px}.ant-carousel .slick-dots li button{background:#fff;border:0;border-radius:1px;color:transparent;cursor:pointer;display:block;font-size:0;height:3px;opacity:.3;outline:none;padding:0;position:relative;transition:all .5s;width:100%}.ant-carousel .slick-dots li button:focus,.ant-carousel .slick-dots li button:hover{opacity:.75}.ant-carousel .slick-dots li button:after{bottom:-4px;content:"";left:-4px;position:absolute;right:-4px;top:-4px}.ant-carousel .slick-dots li.slick-active{width:24px}.ant-carousel .slick-dots li.slick-active button{background:#fff;opacity:1}.ant-carousel .slick-dots li.slick-active:focus,.ant-carousel .slick-dots li.slick-active:hover{opacity:1}.ant-carousel-vertical .slick-dots{bottom:auto;flex-direction:column;height:auto;margin:0;top:50%;transform:translateY(-50%);width:3px}.ant-carousel-vertical .slick-dots-left{left:12px;right:auto}.ant-carousel-vertical .slick-dots-right{left:auto;right:12px}.ant-carousel-vertical .slick-dots li{height:16px;margin:4px 0;vertical-align:initial;width:3px}.ant-carousel-vertical .slick-dots li button{height:16px;width:3px}.ant-carousel-vertical .slick-dots li.slick-active,.ant-carousel-vertical .slick-dots li.slick-active button{height:24px;width:3px}.ant-carousel-rtl{direction:rtl}.ant-carousel-rtl .ant-carousel .slick-track{left:auto;right:0}.ant-carousel-rtl .ant-carousel .slick-prev{left:auto;right:-25px}.ant-carousel-rtl .ant-carousel .slick-prev:before{content:"→"}.ant-carousel-rtl .ant-carousel .slick-next{left:-25px;right:auto}.ant-carousel-rtl .ant-carousel .slick-next:before{content:"←"}.ant-carousel-rtl.ant-carousel .slick-dots{flex-direction:row-reverse}.ant-carousel-rtl.ant-carousel-vertical .slick-dots{flex-direction:column}.ant-cascader-checkbox{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-cascader-checkbox-input:focus+.ant-cascader-checkbox-inner,.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-inner,.ant-cascader-checkbox:hover .ant-cascader-checkbox-inner{border-color:#1890ff}.ant-cascader-checkbox-checked:after{animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;border:1px solid #1890ff;border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox:after,.ant-cascader-checkbox:hover:after{visibility:visible}.ant-cascader-checkbox-inner{background-color:#fff;border:1px solid #d9d9d9;border-collapse:initial;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-cascader-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-cascader-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-cascader-checkbox-disabled{cursor:not-allowed}.ant-cascader-checkbox-disabled.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner:after{animation-name:none;border-color:rgba(0,0,0,.25)}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner:after{animation-name:none;border-collapse:initial;border-color:#f5f5f5}.ant-cascader-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-cascader-checkbox-disabled:hover:after,.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-disabled:after{visibility:hidden}.ant-cascader-checkbox-wrapper{font-feature-settings:"tnum","tnum";align-items:baseline;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:inherit;list-style:none;margin:0;padding:0}.ant-cascader-checkbox-wrapper:after{content:"\a0";display:inline-block;overflow:hidden;width:0}.ant-cascader-checkbox-wrapper.ant-cascader-checkbox-wrapper-disabled{cursor:not-allowed}.ant-cascader-checkbox-wrapper+.ant-cascader-checkbox-wrapper{margin-left:8px}.ant-cascader-checkbox-wrapper.ant-cascader-checkbox-wrapper-in-form-item input[type=checkbox]{height:14px;width:14px}.ant-cascader-checkbox+span{padding-left:8px;padding-right:8px}.ant-cascader-checkbox-group{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-cascader-checkbox-group-item{margin-right:8px}.ant-cascader-checkbox-group-item:last-child{margin-right:0}.ant-cascader-checkbox-group-item+.ant-cascader-checkbox-group-item{margin-left:0}.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner:after{background-color:#1890ff;border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-cascader-checkbox-indeterminate.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-cascader{width:184px}.ant-cascader-checkbox{margin-right:8px;top:0}.ant-cascader-menus{align-items:flex-start;display:flex;flex-wrap:nowrap}.ant-cascader-menus.ant-cascader-menu-empty .ant-cascader-menu{height:auto;width:100%}.ant-cascader-menu{-ms-overflow-style:-ms-autohiding-scrollbar;border-right:1px solid #f0f0f0;flex-grow:1;height:180px;list-style:none;margin:-4px 0;min-width:111px;overflow:auto;padding:4px 0;vertical-align:top}.ant-cascader-menu-item{align-items:center;cursor:pointer;display:flex;flex-wrap:nowrap;line-height:22px;overflow:hidden;padding:5px 12px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-cascader-menu-item:hover{background:#f5f5f5}.ant-cascader-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-cascader-menu-item-disabled:hover{background:transparent}.ant-cascader-menu-empty .ant-cascader-menu-item{color:rgba(0,0,0,.25);cursor:default;pointer-events:none}.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover{background-color:#e6f7ff;font-weight:600}.ant-cascader-menu-item-content{flex:auto}.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-loading-icon{color:rgba(0,0,0,.45);font-size:10px;margin-left:4px}.ant-cascader-menu-item-disabled.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-disabled.ant-cascader-menu-item-loading-icon{color:rgba(0,0,0,.25)}.ant-cascader-menu-item-keyword{color:#ff4d4f}.ant-cascader-compact-item:not(.ant-cascader-compact-last-item):not(.ant-cascader-compact-item-rtl){margin-right:-1px}.ant-cascader-compact-item:not(.ant-cascader-compact-last-item).ant-cascader-compact-item-rtl{margin-left:-1px}.ant-cascader-compact-item:active,.ant-cascader-compact-item:focus,.ant-cascader-compact-item:hover{z-index:2}.ant-cascader-compact-item[disabled]{z-index:0}.ant-cascader-compact-item:not(.ant-cascader-compact-first-item):not(.ant-cascader-compact-last-item).ant-cascader{border-radius:0}.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-first-item:not(.ant-cascader-compact-last-item):not(.ant-cascader-compact-item-rtl){border-bottom-right-radius:0;border-top-right-radius:0}.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-item-rtl.ant-cascader-compact-first-item:not(.ant-cascader-compact-last-item),.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-last-item:not(.ant-cascader-compact-first-item):not(.ant-cascader-compact-item-rtl){border-bottom-left-radius:0;border-top-left-radius:0}.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-item-rtl.ant-cascader-compact-last-item:not(.ant-cascader-compact-first-item){border-bottom-right-radius:0;border-top-right-radius:0}.ant-cascader-rtl .ant-cascader-menu-item-expand-icon,.ant-cascader-rtl .ant-cascader-menu-item-loading-icon{margin-left:0;margin-right:4px}.ant-cascader-rtl .ant-cascader-checkbox{margin-left:8px;margin-right:0;top:0}.ant-checkbox{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}.ant-checkbox-checked:after{animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;border:1px solid #1890ff;border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-checkbox-wrapper:hover .ant-checkbox:after,.ant-checkbox:hover:after{visibility:visible}.ant-checkbox-inner{background-color:#fff;border:1px solid #d9d9d9;border-collapse:initial;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-checkbox-checked .ant-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-checkbox-disabled{cursor:not-allowed}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{animation-name:none;border-color:rgba(0,0,0,.25)}.ant-checkbox-disabled .ant-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-checkbox-disabled .ant-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-checkbox-disabled .ant-checkbox-inner:after{animation-name:none;border-collapse:initial;border-color:#f5f5f5}.ant-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-checkbox-disabled:hover:after,.ant-checkbox-wrapper:hover .ant-checkbox-disabled:after{visibility:hidden}.ant-checkbox-wrapper{font-feature-settings:"tnum","tnum";align-items:baseline;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:inherit;list-style:none;margin:0;padding:0}.ant-checkbox-wrapper:after{content:"\a0";display:inline-block;overflow:hidden;width:0}.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled{cursor:not-allowed}.ant-checkbox-wrapper+.ant-checkbox-wrapper{margin-left:8px}.ant-checkbox-wrapper.ant-checkbox-wrapper-in-form-item input[type=checkbox]{height:14px;width:14px}.ant-checkbox+span{padding-left:8px;padding-right:8px}.ant-checkbox-group{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-checkbox-group-item{margin-right:8px}.ant-checkbox-group-item:last-child{margin-right:0}.ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:0}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#1890ff;border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-checkbox-rtl{direction:rtl}.ant-checkbox-group-rtl .ant-checkbox-group-item{margin-left:8px;margin-right:0}.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child{margin-left:0!important}.ant-checkbox-group-rtl .ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:8px}.ant-row{flex-flow:row wrap;min-width:0}.ant-row,.ant-row:after,.ant-row:before{display:flex}.ant-row-no-wrap{flex-wrap:nowrap}.ant-row-start{justify-content:flex-start}.ant-row-center{justify-content:center}.ant-row-end{justify-content:flex-end}.ant-row-space-between{justify-content:space-between}.ant-row-space-around{justify-content:space-around}.ant-row-space-evenly{justify-content:space-evenly}.ant-row-top{align-items:flex-start}.ant-row-middle{align-items:center}.ant-row-bottom{align-items:flex-end}.ant-col{max-width:100%;min-height:1px;position:relative}.ant-col-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-offset-24{margin-left:100%}.ant-col-order-24{order:24}.ant-col-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-offset-23{margin-left:95.83333333%}.ant-col-order-23{order:23}.ant-col-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-offset-22{margin-left:91.66666667%}.ant-col-order-22{order:22}.ant-col-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-offset-21{margin-left:87.5%}.ant-col-order-21{order:21}.ant-col-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-offset-20{margin-left:83.33333333%}.ant-col-order-20{order:20}.ant-col-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-offset-19{margin-left:79.16666667%}.ant-col-order-19{order:19}.ant-col-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-offset-18{margin-left:75%}.ant-col-order-18{order:18}.ant-col-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-offset-17{margin-left:70.83333333%}.ant-col-order-17{order:17}.ant-col-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-offset-16{margin-left:66.66666667%}.ant-col-order-16{order:16}.ant-col-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-offset-15{margin-left:62.5%}.ant-col-order-15{order:15}.ant-col-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-offset-14{margin-left:58.33333333%}.ant-col-order-14{order:14}.ant-col-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-offset-13{margin-left:54.16666667%}.ant-col-order-13{order:13}.ant-col-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-offset-12{margin-left:50%}.ant-col-order-12{order:12}.ant-col-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-offset-11{margin-left:45.83333333%}.ant-col-order-11{order:11}.ant-col-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-offset-10{margin-left:41.66666667%}.ant-col-order-10{order:10}.ant-col-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-offset-9{margin-left:37.5%}.ant-col-order-9{order:9}.ant-col-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-offset-8{margin-left:33.33333333%}.ant-col-order-8{order:8}.ant-col-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-offset-7{margin-left:29.16666667%}.ant-col-order-7{order:7}.ant-col-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-offset-6{margin-left:25%}.ant-col-order-6{order:6}.ant-col-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-offset-5{margin-left:20.83333333%}.ant-col-order-5{order:5}.ant-col-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-offset-4{margin-left:16.66666667%}.ant-col-order-4{order:4}.ant-col-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-offset-3{margin-left:12.5%}.ant-col-order-3{order:3}.ant-col-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-offset-2{margin-left:8.33333333%}.ant-col-order-2{order:2}.ant-col-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-offset-1{margin-left:4.16666667%}.ant-col-order-1{order:1}.ant-col-0{display:none}.ant-col-offset-0{margin-left:0}.ant-col-order-0{order:0}.ant-col-offset-0.ant-col-rtl{margin-right:0}.ant-col-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}.ant-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-offset-24{margin-left:100%}.ant-col-xs-order-24{order:24}.ant-col-xs-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-offset-23{margin-left:95.83333333%}.ant-col-xs-order-23{order:23}.ant-col-xs-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-offset-22{margin-left:91.66666667%}.ant-col-xs-order-22{order:22}.ant-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-offset-21{margin-left:87.5%}.ant-col-xs-order-21{order:21}.ant-col-xs-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-offset-20{margin-left:83.33333333%}.ant-col-xs-order-20{order:20}.ant-col-xs-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-offset-19{margin-left:79.16666667%}.ant-col-xs-order-19{order:19}.ant-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-offset-18{margin-left:75%}.ant-col-xs-order-18{order:18}.ant-col-xs-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-offset-17{margin-left:70.83333333%}.ant-col-xs-order-17{order:17}.ant-col-xs-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-offset-16{margin-left:66.66666667%}.ant-col-xs-order-16{order:16}.ant-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-offset-15{margin-left:62.5%}.ant-col-xs-order-15{order:15}.ant-col-xs-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-offset-14{margin-left:58.33333333%}.ant-col-xs-order-14{order:14}.ant-col-xs-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-offset-13{margin-left:54.16666667%}.ant-col-xs-order-13{order:13}.ant-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-offset-12{margin-left:50%}.ant-col-xs-order-12{order:12}.ant-col-xs-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-offset-11{margin-left:45.83333333%}.ant-col-xs-order-11{order:11}.ant-col-xs-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-offset-10{margin-left:41.66666667%}.ant-col-xs-order-10{order:10}.ant-col-xs-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-offset-9{margin-left:37.5%}.ant-col-xs-order-9{order:9}.ant-col-xs-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-offset-8{margin-left:33.33333333%}.ant-col-xs-order-8{order:8}.ant-col-xs-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-offset-7{margin-left:29.16666667%}.ant-col-xs-order-7{order:7}.ant-col-xs-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-offset-6{margin-left:25%}.ant-col-xs-order-6{order:6}.ant-col-xs-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-offset-5{margin-left:20.83333333%}.ant-col-xs-order-5{order:5}.ant-col-xs-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-offset-4{margin-left:16.66666667%}.ant-col-xs-order-4{order:4}.ant-col-xs-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-offset-3{margin-left:12.5%}.ant-col-xs-order-3{order:3}.ant-col-xs-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-offset-2{margin-left:8.33333333%}.ant-col-xs-order-2{order:2}.ant-col-xs-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-offset-1{margin-left:4.16666667%}.ant-col-xs-order-1{order:1}.ant-col-xs-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xs-push-0{left:auto}.ant-col-xs-pull-0{right:auto}.ant-col-xs-offset-0{margin-left:0}.ant-col-xs-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xs-push-0.ant-col-rtl{right:auto}.ant-col-xs-pull-0.ant-col-rtl{left:auto}.ant-col-xs-offset-0.ant-col-rtl{margin-right:0}.ant-col-xs-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-xs-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-xs-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-xs-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-xs-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-xs-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-xs-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-xs-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-xs-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-xs-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-xs-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-xs-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-xs-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-xs-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-xs-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-xs-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-xs-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-xs-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-xs-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-xs-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-xs-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-xs-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-xs-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-xs-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-xs-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-xs-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-xs-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-xs-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-xs-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-xs-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-xs-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-xs-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-xs-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-xs-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-xs-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-xs-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-xs-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-xs-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-xs-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-xs-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-xs-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-xs-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-xs-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-xs-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-xs-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-xs-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-xs-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-xs-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-xs-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-xs-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-xs-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-xs-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-xs-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-xs-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-xs-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-xs-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-xs-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-xs-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-xs-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-xs-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-xs-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-xs-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-xs-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-xs-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-xs-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-xs-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-xs-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-xs-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-xs-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-xs-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-xs-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-xs-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}@media (min-width:576px){.ant-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-offset-24{margin-left:100%}.ant-col-sm-order-24{order:24}.ant-col-sm-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-offset-23{margin-left:95.83333333%}.ant-col-sm-order-23{order:23}.ant-col-sm-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-offset-22{margin-left:91.66666667%}.ant-col-sm-order-22{order:22}.ant-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-offset-21{margin-left:87.5%}.ant-col-sm-order-21{order:21}.ant-col-sm-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-offset-20{margin-left:83.33333333%}.ant-col-sm-order-20{order:20}.ant-col-sm-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-offset-19{margin-left:79.16666667%}.ant-col-sm-order-19{order:19}.ant-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-offset-18{margin-left:75%}.ant-col-sm-order-18{order:18}.ant-col-sm-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-offset-17{margin-left:70.83333333%}.ant-col-sm-order-17{order:17}.ant-col-sm-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-offset-16{margin-left:66.66666667%}.ant-col-sm-order-16{order:16}.ant-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-offset-15{margin-left:62.5%}.ant-col-sm-order-15{order:15}.ant-col-sm-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-offset-14{margin-left:58.33333333%}.ant-col-sm-order-14{order:14}.ant-col-sm-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-offset-13{margin-left:54.16666667%}.ant-col-sm-order-13{order:13}.ant-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-offset-12{margin-left:50%}.ant-col-sm-order-12{order:12}.ant-col-sm-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-offset-11{margin-left:45.83333333%}.ant-col-sm-order-11{order:11}.ant-col-sm-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-offset-10{margin-left:41.66666667%}.ant-col-sm-order-10{order:10}.ant-col-sm-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-offset-9{margin-left:37.5%}.ant-col-sm-order-9{order:9}.ant-col-sm-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-offset-8{margin-left:33.33333333%}.ant-col-sm-order-8{order:8}.ant-col-sm-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-offset-7{margin-left:29.16666667%}.ant-col-sm-order-7{order:7}.ant-col-sm-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-offset-6{margin-left:25%}.ant-col-sm-order-6{order:6}.ant-col-sm-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-offset-5{margin-left:20.83333333%}.ant-col-sm-order-5{order:5}.ant-col-sm-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-offset-4{margin-left:16.66666667%}.ant-col-sm-order-4{order:4}.ant-col-sm-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-offset-3{margin-left:12.5%}.ant-col-sm-order-3{order:3}.ant-col-sm-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-offset-2{margin-left:8.33333333%}.ant-col-sm-order-2{order:2}.ant-col-sm-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-offset-1{margin-left:4.16666667%}.ant-col-sm-order-1{order:1}.ant-col-sm-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-sm-push-0{left:auto}.ant-col-sm-pull-0{right:auto}.ant-col-sm-offset-0{margin-left:0}.ant-col-sm-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-sm-push-0.ant-col-rtl{right:auto}.ant-col-sm-pull-0.ant-col-rtl{left:auto}.ant-col-sm-offset-0.ant-col-rtl{margin-right:0}.ant-col-sm-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-sm-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-sm-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-sm-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-sm-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-sm-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-sm-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-sm-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-sm-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-sm-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-sm-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-sm-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-sm-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-sm-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-sm-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-sm-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-sm-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-sm-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-sm-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-sm-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-sm-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-sm-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-sm-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-sm-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-sm-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-sm-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-sm-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-sm-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-sm-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-sm-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-sm-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-sm-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-sm-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-sm-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-sm-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-sm-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-sm-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-sm-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-sm-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-sm-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-sm-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-sm-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-sm-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-sm-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-sm-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-sm-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-sm-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-sm-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-sm-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-sm-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-sm-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-sm-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-sm-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-sm-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-sm-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-sm-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-sm-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-sm-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-sm-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-sm-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-sm-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-sm-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-sm-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-sm-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-sm-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-sm-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-sm-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-sm-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-sm-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-sm-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-sm-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-sm-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:768px){.ant-col-md-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-offset-24{margin-left:100%}.ant-col-md-order-24{order:24}.ant-col-md-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-offset-23{margin-left:95.83333333%}.ant-col-md-order-23{order:23}.ant-col-md-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-offset-22{margin-left:91.66666667%}.ant-col-md-order-22{order:22}.ant-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-offset-21{margin-left:87.5%}.ant-col-md-order-21{order:21}.ant-col-md-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-offset-20{margin-left:83.33333333%}.ant-col-md-order-20{order:20}.ant-col-md-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-offset-19{margin-left:79.16666667%}.ant-col-md-order-19{order:19}.ant-col-md-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-offset-18{margin-left:75%}.ant-col-md-order-18{order:18}.ant-col-md-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-offset-17{margin-left:70.83333333%}.ant-col-md-order-17{order:17}.ant-col-md-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-offset-16{margin-left:66.66666667%}.ant-col-md-order-16{order:16}.ant-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-offset-15{margin-left:62.5%}.ant-col-md-order-15{order:15}.ant-col-md-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-offset-14{margin-left:58.33333333%}.ant-col-md-order-14{order:14}.ant-col-md-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-offset-13{margin-left:54.16666667%}.ant-col-md-order-13{order:13}.ant-col-md-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-offset-12{margin-left:50%}.ant-col-md-order-12{order:12}.ant-col-md-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-offset-11{margin-left:45.83333333%}.ant-col-md-order-11{order:11}.ant-col-md-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-offset-10{margin-left:41.66666667%}.ant-col-md-order-10{order:10}.ant-col-md-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-offset-9{margin-left:37.5%}.ant-col-md-order-9{order:9}.ant-col-md-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-offset-8{margin-left:33.33333333%}.ant-col-md-order-8{order:8}.ant-col-md-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-offset-7{margin-left:29.16666667%}.ant-col-md-order-7{order:7}.ant-col-md-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-offset-6{margin-left:25%}.ant-col-md-order-6{order:6}.ant-col-md-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-offset-5{margin-left:20.83333333%}.ant-col-md-order-5{order:5}.ant-col-md-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-offset-4{margin-left:16.66666667%}.ant-col-md-order-4{order:4}.ant-col-md-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-offset-3{margin-left:12.5%}.ant-col-md-order-3{order:3}.ant-col-md-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-offset-2{margin-left:8.33333333%}.ant-col-md-order-2{order:2}.ant-col-md-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-offset-1{margin-left:4.16666667%}.ant-col-md-order-1{order:1}.ant-col-md-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-md-push-0{left:auto}.ant-col-md-pull-0{right:auto}.ant-col-md-offset-0{margin-left:0}.ant-col-md-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-md-push-0.ant-col-rtl{right:auto}.ant-col-md-pull-0.ant-col-rtl{left:auto}.ant-col-md-offset-0.ant-col-rtl{margin-right:0}.ant-col-md-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-md-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-md-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-md-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-md-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-md-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-md-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-md-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-md-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-md-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-md-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-md-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-md-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-md-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-md-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-md-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-md-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-md-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-md-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-md-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-md-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-md-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-md-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-md-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-md-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-md-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-md-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-md-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-md-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-md-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-md-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-md-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-md-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-md-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-md-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-md-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-md-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-md-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-md-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-md-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-md-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-md-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-md-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-md-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-md-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-md-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-md-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-md-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-md-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-md-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-md-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-md-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-md-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-md-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-md-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-md-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-md-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-md-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-md-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-md-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-md-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-md-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-md-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-md-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-md-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-md-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-md-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-md-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-md-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-md-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-md-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-md-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:992px){.ant-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-offset-24{margin-left:100%}.ant-col-lg-order-24{order:24}.ant-col-lg-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-offset-23{margin-left:95.83333333%}.ant-col-lg-order-23{order:23}.ant-col-lg-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-offset-22{margin-left:91.66666667%}.ant-col-lg-order-22{order:22}.ant-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-offset-21{margin-left:87.5%}.ant-col-lg-order-21{order:21}.ant-col-lg-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-offset-20{margin-left:83.33333333%}.ant-col-lg-order-20{order:20}.ant-col-lg-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-offset-19{margin-left:79.16666667%}.ant-col-lg-order-19{order:19}.ant-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-offset-18{margin-left:75%}.ant-col-lg-order-18{order:18}.ant-col-lg-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-offset-17{margin-left:70.83333333%}.ant-col-lg-order-17{order:17}.ant-col-lg-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-offset-16{margin-left:66.66666667%}.ant-col-lg-order-16{order:16}.ant-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-offset-15{margin-left:62.5%}.ant-col-lg-order-15{order:15}.ant-col-lg-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-offset-14{margin-left:58.33333333%}.ant-col-lg-order-14{order:14}.ant-col-lg-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-offset-13{margin-left:54.16666667%}.ant-col-lg-order-13{order:13}.ant-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-offset-12{margin-left:50%}.ant-col-lg-order-12{order:12}.ant-col-lg-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-offset-11{margin-left:45.83333333%}.ant-col-lg-order-11{order:11}.ant-col-lg-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-offset-10{margin-left:41.66666667%}.ant-col-lg-order-10{order:10}.ant-col-lg-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-offset-9{margin-left:37.5%}.ant-col-lg-order-9{order:9}.ant-col-lg-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-offset-8{margin-left:33.33333333%}.ant-col-lg-order-8{order:8}.ant-col-lg-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-offset-7{margin-left:29.16666667%}.ant-col-lg-order-7{order:7}.ant-col-lg-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-offset-6{margin-left:25%}.ant-col-lg-order-6{order:6}.ant-col-lg-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-offset-5{margin-left:20.83333333%}.ant-col-lg-order-5{order:5}.ant-col-lg-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-offset-4{margin-left:16.66666667%}.ant-col-lg-order-4{order:4}.ant-col-lg-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-offset-3{margin-left:12.5%}.ant-col-lg-order-3{order:3}.ant-col-lg-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-offset-2{margin-left:8.33333333%}.ant-col-lg-order-2{order:2}.ant-col-lg-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-offset-1{margin-left:4.16666667%}.ant-col-lg-order-1{order:1}.ant-col-lg-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-lg-push-0{left:auto}.ant-col-lg-pull-0{right:auto}.ant-col-lg-offset-0{margin-left:0}.ant-col-lg-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-lg-push-0.ant-col-rtl{right:auto}.ant-col-lg-pull-0.ant-col-rtl{left:auto}.ant-col-lg-offset-0.ant-col-rtl{margin-right:0}.ant-col-lg-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-lg-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-lg-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-lg-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-lg-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-lg-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-lg-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-lg-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-lg-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-lg-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-lg-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-lg-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-lg-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-lg-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-lg-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-lg-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-lg-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-lg-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-lg-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-lg-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-lg-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-lg-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-lg-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-lg-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-lg-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-lg-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-lg-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-lg-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-lg-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-lg-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-lg-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-lg-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-lg-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-lg-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-lg-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-lg-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-lg-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-lg-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-lg-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-lg-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-lg-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-lg-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-lg-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-lg-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-lg-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-lg-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-lg-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-lg-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-lg-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-lg-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-lg-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-lg-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-lg-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-lg-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-lg-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-lg-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-lg-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-lg-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-lg-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-lg-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-lg-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-lg-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-lg-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-lg-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-lg-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-lg-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-lg-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-lg-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-lg-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-lg-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-lg-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-lg-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:1200px){.ant-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-offset-24{margin-left:100%}.ant-col-xl-order-24{order:24}.ant-col-xl-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-offset-23{margin-left:95.83333333%}.ant-col-xl-order-23{order:23}.ant-col-xl-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-offset-22{margin-left:91.66666667%}.ant-col-xl-order-22{order:22}.ant-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-offset-21{margin-left:87.5%}.ant-col-xl-order-21{order:21}.ant-col-xl-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-offset-20{margin-left:83.33333333%}.ant-col-xl-order-20{order:20}.ant-col-xl-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-offset-19{margin-left:79.16666667%}.ant-col-xl-order-19{order:19}.ant-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-offset-18{margin-left:75%}.ant-col-xl-order-18{order:18}.ant-col-xl-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-offset-17{margin-left:70.83333333%}.ant-col-xl-order-17{order:17}.ant-col-xl-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-offset-16{margin-left:66.66666667%}.ant-col-xl-order-16{order:16}.ant-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-offset-15{margin-left:62.5%}.ant-col-xl-order-15{order:15}.ant-col-xl-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-offset-14{margin-left:58.33333333%}.ant-col-xl-order-14{order:14}.ant-col-xl-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-offset-13{margin-left:54.16666667%}.ant-col-xl-order-13{order:13}.ant-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-offset-12{margin-left:50%}.ant-col-xl-order-12{order:12}.ant-col-xl-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-offset-11{margin-left:45.83333333%}.ant-col-xl-order-11{order:11}.ant-col-xl-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-offset-10{margin-left:41.66666667%}.ant-col-xl-order-10{order:10}.ant-col-xl-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-offset-9{margin-left:37.5%}.ant-col-xl-order-9{order:9}.ant-col-xl-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-offset-8{margin-left:33.33333333%}.ant-col-xl-order-8{order:8}.ant-col-xl-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-offset-7{margin-left:29.16666667%}.ant-col-xl-order-7{order:7}.ant-col-xl-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-offset-6{margin-left:25%}.ant-col-xl-order-6{order:6}.ant-col-xl-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-offset-5{margin-left:20.83333333%}.ant-col-xl-order-5{order:5}.ant-col-xl-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-offset-4{margin-left:16.66666667%}.ant-col-xl-order-4{order:4}.ant-col-xl-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-offset-3{margin-left:12.5%}.ant-col-xl-order-3{order:3}.ant-col-xl-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-offset-2{margin-left:8.33333333%}.ant-col-xl-order-2{order:2}.ant-col-xl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-offset-1{margin-left:4.16666667%}.ant-col-xl-order-1{order:1}.ant-col-xl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xl-push-0{left:auto}.ant-col-xl-pull-0{right:auto}.ant-col-xl-offset-0{margin-left:0}.ant-col-xl-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xl-push-0.ant-col-rtl{right:auto}.ant-col-xl-pull-0.ant-col-rtl{left:auto}.ant-col-xl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xl-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-xl-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-xl-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-xl-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-xl-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-xl-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-xl-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-xl-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-xl-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-xl-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-xl-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-xl-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-xl-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-xl-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-xl-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-xl-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-xl-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-xl-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-xl-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-xl-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-xl-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-xl-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-xl-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-xl-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-xl-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-xl-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-xl-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-xl-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-xl-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-xl-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-xl-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-xl-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-xl-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-xl-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-xl-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-xl-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-xl-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-xl-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-xl-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-xl-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-xl-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-xl-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-xl-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-xl-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-xl-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-xl-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-xl-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-xl-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-xl-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-xl-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-xl-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-xl-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-xl-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-xl-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-xl-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-xl-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-xl-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-xl-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-xl-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-xl-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-xl-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-xl-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-xl-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-xl-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-xl-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-xl-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-xl-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-xl-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-xl-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-xl-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-xl-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-xl-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:1600px){.ant-col-xxl-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-offset-24{margin-left:100%}.ant-col-xxl-order-24{order:24}.ant-col-xxl-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-offset-23{margin-left:95.83333333%}.ant-col-xxl-order-23{order:23}.ant-col-xxl-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-offset-22{margin-left:91.66666667%}.ant-col-xxl-order-22{order:22}.ant-col-xxl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-offset-21{margin-left:87.5%}.ant-col-xxl-order-21{order:21}.ant-col-xxl-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-offset-20{margin-left:83.33333333%}.ant-col-xxl-order-20{order:20}.ant-col-xxl-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-offset-19{margin-left:79.16666667%}.ant-col-xxl-order-19{order:19}.ant-col-xxl-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-offset-18{margin-left:75%}.ant-col-xxl-order-18{order:18}.ant-col-xxl-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-offset-17{margin-left:70.83333333%}.ant-col-xxl-order-17{order:17}.ant-col-xxl-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-offset-16{margin-left:66.66666667%}.ant-col-xxl-order-16{order:16}.ant-col-xxl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-offset-15{margin-left:62.5%}.ant-col-xxl-order-15{order:15}.ant-col-xxl-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-offset-14{margin-left:58.33333333%}.ant-col-xxl-order-14{order:14}.ant-col-xxl-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-offset-13{margin-left:54.16666667%}.ant-col-xxl-order-13{order:13}.ant-col-xxl-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-offset-12{margin-left:50%}.ant-col-xxl-order-12{order:12}.ant-col-xxl-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-offset-11{margin-left:45.83333333%}.ant-col-xxl-order-11{order:11}.ant-col-xxl-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-offset-10{margin-left:41.66666667%}.ant-col-xxl-order-10{order:10}.ant-col-xxl-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-offset-9{margin-left:37.5%}.ant-col-xxl-order-9{order:9}.ant-col-xxl-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-offset-8{margin-left:33.33333333%}.ant-col-xxl-order-8{order:8}.ant-col-xxl-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-offset-7{margin-left:29.16666667%}.ant-col-xxl-order-7{order:7}.ant-col-xxl-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-offset-6{margin-left:25%}.ant-col-xxl-order-6{order:6}.ant-col-xxl-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-offset-5{margin-left:20.83333333%}.ant-col-xxl-order-5{order:5}.ant-col-xxl-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-offset-4{margin-left:16.66666667%}.ant-col-xxl-order-4{order:4}.ant-col-xxl-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-offset-3{margin-left:12.5%}.ant-col-xxl-order-3{order:3}.ant-col-xxl-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-offset-2{margin-left:8.33333333%}.ant-col-xxl-order-2{order:2}.ant-col-xxl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-offset-1{margin-left:4.16666667%}.ant-col-xxl-order-1{order:1}.ant-col-xxl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xxl-push-0{left:auto}.ant-col-xxl-pull-0{right:auto}.ant-col-xxl-offset-0{margin-left:0}.ant-col-xxl-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-push-0.ant-col-rtl{right:auto}.ant-col-xxl-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xxl-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-xxl-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-xxl-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-xxl-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-xxl-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-xxl-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-xxl-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-xxl-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-xxl-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-xxl-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-xxl-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-xxl-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-xxl-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-xxl-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-xxl-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-xxl-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-xxl-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-xxl-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-xxl-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-xxl-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-xxl-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-xxl-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-xxl-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-xxl-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-xxl-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-xxl-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-xxl-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-xxl-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-xxl-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-xxl-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-xxl-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-xxl-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-xxl-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-xxl-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-xxl-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-xxl-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-xxl-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-xxl-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-xxl-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-xxl-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-xxl-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-xxl-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-xxl-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-xxl-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-xxl-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-xxl-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-xxl-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-xxl-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-xxl-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-xxl-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-xxl-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-xxl-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-xxl-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-xxl-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-xxl-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-xxl-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-xxl-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-xxl-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-xxl-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-xxl-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-xxl-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-xxl-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-xxl-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-xxl-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-xxl-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-xxl-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-xxl-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-xxl-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-xxl-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-xxl-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-xxl-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-xxl-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}.ant-row-rtl{direction:rtl}.ant-collapse{font-feature-settings:"tnum","tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 2px 2px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{align-items:flex-start;color:rgba(0,0,0,.85);cursor:pointer;display:flex;flex-wrap:nowrap;line-height:1.5715;padding:12px 16px;position:relative;transition:all .3s,visibility 0s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{display:inline-block;font-size:12px;margin-right:12px;vertical-align:-1px}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transition:transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-header-text{flex:auto}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-left:auto}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:none}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text{cursor:pointer;flex:none}.ant-collapse>.ant-collapse-item .ant-collapse-icon-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-icon-collapsible-only .ant-collapse-expand-icon{cursor:pointer}.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:12px}.ant-collapse-icon-position-end>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px;position:relative}.ant-collapse-icon-position-end>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{left:auto;margin:0;position:absolute;right:16px;top:50%;transform:translateY(-50%)}.ant-collapse-content{background-color:#fff;border-top:1px solid #d9d9d9;color:rgba(0,0,0,.85)}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-hidden{display:none}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 2px 2px}.ant-collapse-borderless{background-color:#fafafa;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item:last-child{border-bottom:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{background-color:initial;border-top:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:4px}.ant-collapse-ghost{background-color:initial;border:0}.ant-collapse-ghost>.ant-collapse-item{border-bottom:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content{background-color:initial;border-top:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-bottom:12px;padding-top:12px}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-collapse-rtl{direction:rtl}.ant-collapse-rtl.ant-collapse.ant-collapse-icon-position-end>.ant-collapse-item>.ant-collapse-header{padding:12px 16px 12px 40px;position:relative}.ant-collapse-rtl.ant-collapse.ant-collapse-icon-position-end>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{left:16px;margin:0;position:absolute;right:auto;top:50%;transform:translateY(-50%)}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{margin-left:12px;margin-right:0}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transform:rotate(180deg)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-left:0;margin-right:auto}.ant-collapse-rtl.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:0;padding-right:12px}.ant-comment{background-color:inherit;position:relative}.ant-comment-inner{display:flex;padding:16px 0}.ant-comment-avatar{cursor:pointer;flex-shrink:0;margin-right:12px;position:relative}.ant-comment-avatar img{border-radius:50%;height:32px;width:32px}.ant-comment-content{word-wrap:break-word;flex:1 1 auto;font-size:14px;min-width:1px;position:relative}.ant-comment-content-author{display:flex;flex-wrap:wrap;font-size:14px;justify-content:flex-start;margin-bottom:4px}.ant-comment-content-author>a,.ant-comment-content-author>span{font-size:12px;line-height:18px;padding-right:8px}.ant-comment-content-author-name{color:rgba(0,0,0,.45);font-size:14px;transition:color .3s}.ant-comment-content-author-name>*,.ant-comment-content-author-name>:hover{color:rgba(0,0,0,.45)}.ant-comment-content-author-time{color:#ccc;cursor:auto;white-space:nowrap}.ant-comment-content-detail p{margin-bottom:inherit;white-space:pre-wrap}.ant-comment-actions{margin-bottom:inherit;margin-top:12px;padding-left:0}.ant-comment-actions>li{color:rgba(0,0,0,.45);display:inline-block}.ant-comment-actions>li>span{color:rgba(0,0,0,.45);cursor:pointer;font-size:12px;margin-right:10px;transition:color .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-comment-actions>li>span:hover{color:#595959}.ant-comment-nested{margin-left:44px}.ant-comment-rtl{direction:rtl}.ant-comment-rtl .ant-comment-avatar{margin-left:12px;margin-right:0}.ant-comment-rtl .ant-comment-content-author>a,.ant-comment-rtl .ant-comment-content-author>span{padding-left:8px;padding-right:0}.ant-comment-rtl .ant-comment-actions{padding-right:0}.ant-comment-rtl .ant-comment-actions>li>span{margin-left:10px;margin-right:0}.ant-comment-rtl .ant-comment-nested{margin-left:0;margin-right:44px}.ant-descriptions-header{align-items:center;display:flex;margin-bottom:20px}.ant-descriptions-title{color:rgba(0,0,0,.85);flex:auto;font-size:16px;font-weight:700;line-height:1.5715;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-descriptions-extra{color:rgba(0,0,0,.85);font-size:14px;margin-left:auto}.ant-descriptions-view{border-radius:2px;width:100%}.ant-descriptions-view table{table-layout:fixed;width:100%}.ant-descriptions-row>td,.ant-descriptions-row>th{padding-bottom:16px}.ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-item-label{color:rgba(0,0,0,.85);font-size:14px;font-weight:400;line-height:1.5715;text-align:start}.ant-descriptions-item-label:after{content:":";margin:0 8px 0 2px;position:relative;top:-.5px}.ant-descriptions-item-label.ant-descriptions-item-no-colon:after{content:" "}.ant-descriptions-item-no-label:after{content:"";margin:0}.ant-descriptions-item-content{color:rgba(0,0,0,.85);display:table-cell;flex:1 1;font-size:14px;line-height:1.5715;overflow-wrap:break-word;word-break:break-word}.ant-descriptions-item{padding-bottom:0;vertical-align:top}.ant-descriptions-item-container{display:flex}.ant-descriptions-item-container .ant-descriptions-item-content,.ant-descriptions-item-container .ant-descriptions-item-label{align-items:baseline;display:inline-flex}.ant-descriptions-middle .ant-descriptions-row>td,.ant-descriptions-middle .ant-descriptions-row>th{padding-bottom:12px}.ant-descriptions-small .ant-descriptions-row>td,.ant-descriptions-small .ant-descriptions-row>th{padding-bottom:8px}.ant-descriptions-bordered .ant-descriptions-view{border:1px solid #f0f0f0}.ant-descriptions-bordered .ant-descriptions-view>table{border-collapse:collapse;table-layout:auto}.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-bordered .ant-descriptions-item-label{border-right:1px solid #f0f0f0;padding:16px 24px}.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-right:none}.ant-descriptions-bordered .ant-descriptions-item-label{background-color:#fafafa}.ant-descriptions-bordered .ant-descriptions-item-label:after{display:none}.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #f0f0f0}.ant-descriptions-bordered .ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-label{padding:12px 24px}.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label{padding:8px 16px}.ant-descriptions-rtl{direction:rtl}.ant-descriptions-rtl .ant-descriptions-item-label:after{margin:0 2px 0 8px}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label{border-left:1px solid #f0f0f0;border-right:none}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-left:none}.ant-divider{font-feature-settings:"tnum","tnum";border-top:1px solid rgba(0,0,0,.06);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-divider-vertical{border-left:1px solid rgba(0,0,0,.06);border-top:0;display:inline-block;height:.9em;margin:0 8px;position:relative;top:-.06em;vertical-align:middle}.ant-divider-horizontal{clear:both;display:flex;margin:24px 0;min-width:100%;width:100%}.ant-divider-horizontal.ant-divider-with-text{align-items:center;border-top:0;border-top-color:rgba(0,0,0,.06);color:rgba(0,0,0,.85);display:flex;font-size:16px;font-weight:500;margin:16px 0;text-align:center;white-space:nowrap}.ant-divider-horizontal.ant-divider-with-text:after,.ant-divider-horizontal.ant-divider-with-text:before{border-bottom:0;border-top:1px solid transparent;border-top-color:inherit;content:"";position:relative;transform:translateY(50%);width:50%}.ant-divider-horizontal.ant-divider-with-text-left:before{width:5%}.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-horizontal.ant-divider-with-text-right:before{width:95%}.ant-divider-horizontal.ant-divider-with-text-right:after{width:5%}.ant-divider-inner-text{display:inline-block;padding:0 1em}.ant-divider-dashed{background:none;border:dashed rgba(0,0,0,.06);border-width:1px 0 0}.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:after,.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:before{border-style:dashed none none}.ant-divider-vertical.ant-divider-dashed{border-width:0 0 0 1px}.ant-divider-plain.ant-divider-with-text{color:rgba(0,0,0,.85);font-size:14px;font-weight:400}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left:before{width:0}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left:after{width:100%}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left .ant-divider-inner-text{padding-left:0}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right:before{width:100%}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right:after{width:0}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right .ant-divider-inner-text{padding-right:0}.ant-divider-rtl{direction:rtl}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left:before{width:95%}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right:before{width:5%}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right:after{width:95%}.ant-drawer{bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:1000}.ant-drawer-inline{position:absolute}.ant-drawer-mask{background:rgba(0,0,0,.45);bottom:0;left:0;pointer-events:auto;position:absolute;right:0;top:0;z-index:1000}.ant-drawer-content-wrapper{position:absolute;transition:all .3s;z-index:1000}.ant-drawer-content-wrapper-hidden{display:none}.ant-drawer-left>.ant-drawer-content-wrapper{bottom:0;box-shadow:6px 0 16px -8px rgba(0,0,0,.08),9px 0 28px 0 rgba(0,0,0,.05),12px 0 48px 16px rgba(0,0,0,.03);left:0;top:0}.ant-drawer-right>.ant-drawer-content-wrapper{bottom:0;box-shadow:-6px 0 16px -8px rgba(0,0,0,.08),-9px 0 28px 0 rgba(0,0,0,.05),-12px 0 48px 16px rgba(0,0,0,.03);right:0;top:0}.ant-drawer-top>.ant-drawer-content-wrapper{box-shadow:0 6px 16px -8px rgba(0,0,0,.08),0 9px 28px 0 rgba(0,0,0,.05),0 12px 48px 16px rgba(0,0,0,.03);left:0;right:0;top:0}.ant-drawer-bottom>.ant-drawer-content-wrapper{bottom:0;box-shadow:0 -6px 16px -8px rgba(0,0,0,.08),0 -9px 28px 0 rgba(0,0,0,.05),0 -12px 48px 16px rgba(0,0,0,.03);left:0;right:0}.ant-drawer-content{background:#fff;height:100%;overflow:auto;pointer-events:auto;width:100%}.ant-drawer-wrapper-body{display:flex;flex-direction:column;height:100%;width:100%}.ant-drawer-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;flex:0 1;font-size:16px;line-height:22px;padding:16px 24px}.ant-drawer-header-title{align-items:center;display:flex;flex:1 1;min-height:0;min-width:0}.ant-drawer-extra{flex:none}.ant-drawer-close{background:transparent;border:0;color:rgba(0,0,0,.45);cursor:pointer;display:inline-block;font-size:16px;font-style:normal;font-weight:700;line-height:1;margin-right:12px;outline:0;text-align:center;text-decoration:none;text-rendering:auto;text-transform:none;transition:color .3s}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-drawer-title{color:rgba(0,0,0,.85);flex:1 1;font-size:16px;font-weight:500;line-height:22px;margin:0}.ant-drawer-body{flex:1 1;min-height:0;min-width:0;overflow:auto;padding:24px}.ant-drawer-footer{border-top:1px solid #f0f0f0;flex-shrink:0;padding:10px 16px}.panel-motion-appear-start,.panel-motion-enter-start,.panel-motion-leave-start{transition:none}.ant-drawer-mask-motion-appear-active,.ant-drawer-mask-motion-enter-active,.ant-drawer-mask-motion-leave-active,.panel-motion-appear-active,.panel-motion-enter-active,.panel-motion-leave-active{transition:all .3s}.ant-drawer-mask-motion-appear,.ant-drawer-mask-motion-enter{opacity:0}.ant-drawer-mask-motion-appear-active,.ant-drawer-mask-motion-enter-active,.ant-drawer-mask-motion-leave{opacity:1}.ant-drawer-mask-motion-leave-active{opacity:0}.ant-drawer-panel-motion-left-appear-start,.ant-drawer-panel-motion-left-enter-start,.ant-drawer-panel-motion-left-leave-start{transition:none}.ant-drawer-panel-motion-left-appear-active,.ant-drawer-panel-motion-left-enter-active,.ant-drawer-panel-motion-left-leave-active{transition:all .3s}.ant-drawer-panel-motion-left-appear-start,.ant-drawer-panel-motion-left-enter-start{transform:translateX(-100%)!important}.ant-drawer-panel-motion-left-appear-active,.ant-drawer-panel-motion-left-enter-active,.ant-drawer-panel-motion-left-leave{transform:translateX(0)}.ant-drawer-panel-motion-left-leave-active{transform:translateX(-100%)}.ant-drawer-panel-motion-right-appear-start,.ant-drawer-panel-motion-right-enter-start,.ant-drawer-panel-motion-right-leave-start{transition:none}.ant-drawer-panel-motion-right-appear-active,.ant-drawer-panel-motion-right-enter-active,.ant-drawer-panel-motion-right-leave-active{transition:all .3s}.ant-drawer-panel-motion-right-appear-start,.ant-drawer-panel-motion-right-enter-start{transform:translateX(100%)!important}.ant-drawer-panel-motion-right-appear-active,.ant-drawer-panel-motion-right-enter-active,.ant-drawer-panel-motion-right-leave{transform:translateX(0)}.ant-drawer-panel-motion-right-leave-active{transform:translateX(100%)}.ant-drawer-panel-motion-top-appear-start,.ant-drawer-panel-motion-top-enter-start,.ant-drawer-panel-motion-top-leave-start{transition:none}.ant-drawer-panel-motion-top-appear-active,.ant-drawer-panel-motion-top-enter-active,.ant-drawer-panel-motion-top-leave-active{transition:all .3s}.ant-drawer-panel-motion-top-appear-start,.ant-drawer-panel-motion-top-enter-start{transform:translateY(-100%)!important}.ant-drawer-panel-motion-top-appear-active,.ant-drawer-panel-motion-top-enter-active,.ant-drawer-panel-motion-top-leave{transform:translateY(0)}.ant-drawer-panel-motion-top-leave-active{transform:translateY(-100%)}.ant-drawer-panel-motion-bottom-appear-start,.ant-drawer-panel-motion-bottom-enter-start,.ant-drawer-panel-motion-bottom-leave-start{transition:none}.ant-drawer-panel-motion-bottom-appear-active,.ant-drawer-panel-motion-bottom-enter-active,.ant-drawer-panel-motion-bottom-leave-active{transition:all .3s}.ant-drawer-panel-motion-bottom-appear-start,.ant-drawer-panel-motion-bottom-enter-start{transform:translateY(100%)!important}.ant-drawer-panel-motion-bottom-appear-active,.ant-drawer-panel-motion-bottom-enter-active,.ant-drawer-panel-motion-bottom-leave{transform:translateY(0)}.ant-drawer-panel-motion-bottom-leave-active{transform:translateY(100%)}.ant-drawer-rtl{direction:rtl}.ant-drawer-rtl .ant-drawer-close{margin-left:12px;margin-right:0}.ant-form-item .ant-input-number+.ant-form-text{margin-left:8px}.ant-form-inline{display:flex;flex-wrap:wrap}.ant-form-inline .ant-form-item{flex:none;flex-wrap:nowrap;margin-bottom:0;margin-right:16px}.ant-form-inline .ant-form-item-with-help{margin-bottom:24px}.ant-form-inline .ant-form-item>.ant-form-item-control,.ant-form-inline .ant-form-item>.ant-form-item-label{display:inline-block;vertical-align:top}.ant-form-inline .ant-form-item>.ant-form-item-label{flex:none}.ant-form-inline .ant-form-item .ant-form-item-has-feedback,.ant-form-inline .ant-form-item .ant-form-text{display:inline-block}.ant-form-horizontal .ant-form-item-label{flex-grow:0}.ant-form-horizontal .ant-form-item-control{flex:1 1;min-width:0}.ant-form-horizontal .ant-form-item-label[class$="-24"]+.ant-form-item-control,.ant-form-horizontal .ant-form-item-label[class*="-24 "]+.ant-form-item-control{min-width:0;min-width:auto}.ant-form-vertical .ant-form-item-row{flex-direction:column}.ant-form-vertical .ant-form-item-label>label{height:auto}.ant-form-vertical .ant-form-item .ant-form-item-control{width:100%}.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label,.ant-form-vertical .ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-24.ant-form-item-label>label,.ant-col-xl-24.ant-form-item-label>label,.ant-form-vertical .ant-form-item-label>label{margin:0}.ant-col-24.ant-form-item-label>label:after,.ant-col-xl-24.ant-form-item-label>label:after,.ant-form-vertical .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-24.ant-form-item-label,.ant-form-rtl.ant-col-xl-24.ant-form-item-label,.ant-form-rtl.ant-form-vertical .ant-form-item-label{text-align:right}@media (max-width:575px){.ant-form-item .ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-form-item .ant-form-item-label>label{margin:0}.ant-form-item .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-form-item .ant-form-item-label{text-align:right}.ant-form .ant-form-item{flex-wrap:wrap}.ant-form .ant-form-item .ant-form-item-control,.ant-form .ant-form-item .ant-form-item-label{flex:0 0 100%;max-width:100%}.ant-col-xs-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-xs-24.ant-form-item-label>label{margin:0}.ant-col-xs-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xs-24.ant-form-item-label{text-align:right}}@media (max-width:767px){.ant-col-sm-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-sm-24.ant-form-item-label>label{margin:0}.ant-col-sm-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-sm-24.ant-form-item-label{text-align:right}}@media (max-width:991px){.ant-col-md-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-md-24.ant-form-item-label>label{margin:0}.ant-col-md-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-md-24.ant-form-item-label{text-align:right}}@media (max-width:1199px){.ant-col-lg-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-lg-24.ant-form-item-label>label{margin:0}.ant-col-lg-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-lg-24.ant-form-item-label{text-align:right}}@media (max-width:1599px){.ant-col-xl-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-xl-24.ant-form-item-label>label{margin:0}.ant-col-xl-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xl-24.ant-form-item-label{text-align:right}}.ant-form-item-explain-error{color:#ff4d4f}.ant-form-item-explain-warning{color:#faad14}.ant-form-item-has-feedback .ant-switch{margin:2px 0 4px}.ant-form-item-has-warning .ant-form-item-split{color:#faad14}.ant-form-item-has-error .ant-form-item-split{color:#ff4d4f}.ant-form{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-form legend{border:0;border-bottom:1px solid #d9d9d9;color:rgba(0,0,0,.45);display:block;font-size:16px;line-height:inherit;margin-bottom:20px;padding:0;width:100%}.ant-form label{font-size:14px}.ant-form input[type=search]{box-sizing:border-box}.ant-form input[type=checkbox],.ant-form input[type=radio]{line-height:normal}.ant-form input[type=file]{display:block}.ant-form input[type=range]{display:block;width:100%}.ant-form select[multiple],.ant-form select[size]{height:auto}.ant-form input[type=checkbox]:focus,.ant-form input[type=file]:focus,.ant-form input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.ant-form output{color:rgba(0,0,0,.85);display:block;font-size:14px;line-height:1.5715;padding-top:15px}.ant-form .ant-form-text{display:inline-block;padding-right:8px}.ant-form-small .ant-form-item-label>label{height:24px}.ant-form-small .ant-form-item-control-input{min-height:24px}.ant-form-large .ant-form-item-label>label{height:40px}.ant-form-large .ant-form-item-control-input{min-height:40px}.ant-form-item{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 0 24px;padding:0;vertical-align:top}.ant-form-item-with-help{transition:none}.ant-form-item-hidden,.ant-form-item-hidden.ant-row{display:none}.ant-form-item-label{display:inline-block;flex-grow:0;overflow:hidden;text-align:right;vertical-align:middle;white-space:nowrap}.ant-form-item-label-left{text-align:left}.ant-form-item-label-wrap{line-height:1.3215em;overflow:visible;overflow:initial;white-space:inherit}.ant-form-item-label>label{align-items:center;color:rgba(0,0,0,.85);display:inline-flex;font-size:14px;height:32px;max-width:100%;position:relative}.ant-form-item-label>label>.anticon{font-size:14px;vertical-align:top}.ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{color:#ff4d4f;content:"*";display:inline-block;font-family:SimSun,sans-serif;font-size:14px;line-height:1;margin-right:4px}.ant-form-hide-required-mark .ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{display:none}.ant-form-item-label>label .ant-form-item-optional{color:rgba(0,0,0,.45);display:inline-block;margin-left:4px}.ant-form-hide-required-mark .ant-form-item-label>label .ant-form-item-optional{display:none}.ant-form-item-label>label .ant-form-item-tooltip{color:rgba(0,0,0,.45);cursor:help;margin-inline-start:4px;-ms-writing-mode:lr-tb;writing-mode:horizontal-tb}.ant-form-item-label>label:after{content:":";margin:0 8px 0 2px;position:relative;top:-.5px}.ant-form-item-label>label.ant-form-item-no-colon:after{content:" "}.ant-form-item-control{display:flex;flex-direction:column;flex-grow:1}.ant-form-item-control:first-child:not([class^=ant-col-]):not([class*=" ant-col-"]){width:100%}.ant-form-item-control-input{align-items:center;display:flex;min-height:32px;position:relative}.ant-form-item-control-input-content{flex:auto;max-width:100%}.ant-form-item-explain,.ant-form-item-extra{clear:both;color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715;transition:color .3s cubic-bezier(.215,.61,.355,1)}.ant-form-item-explain-connected{width:100%}.ant-form-item-extra{min-height:24px}.ant-form-item-with-help .ant-form-item-explain{height:auto;opacity:1}.ant-form-item-feedback-icon{animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);font-size:14px;pointer-events:none;text-align:center;visibility:visible}.ant-form-item-feedback-icon-success{color:#52c41a}.ant-form-item-feedback-icon-error{color:#ff4d4f}.ant-form-item-feedback-icon-warning{color:#faad14}.ant-form-item-feedback-icon-validating{color:#1890ff}.ant-show-help{transition:opacity .3s cubic-bezier(.645,.045,.355,1)}.ant-show-help-appear,.ant-show-help-enter{opacity:0}.ant-show-help-appear-active,.ant-show-help-enter-active,.ant-show-help-leave{opacity:1}.ant-show-help-leave-active{opacity:0}.ant-show-help-item{overflow:hidden;transition:height .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1)!important}.ant-show-help-item-appear,.ant-show-help-item-enter{opacity:0;transform:translateY(-5px)}.ant-show-help-item-appear-active,.ant-show-help-item-enter-active{opacity:1;transform:translateY(0)}.ant-show-help-item-leave{transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1),transform .2s cubic-bezier(.645,.045,.355,1)!important}.ant-show-help-item-leave-active{transform:translateY(-5px)}@keyframes diffZoomIn1{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes diffZoomIn2{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes diffZoomIn3{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.ant-form-rtl{direction:rtl}.ant-form-rtl .ant-form-item-label{text-align:left}.ant-form-rtl .ant-form-item-label>label.ant-form-item-required:before{margin-left:4px;margin-right:0}.ant-form-rtl .ant-form-item-label>label:after{margin:0 2px 0 8px}.ant-form-rtl .ant-form-item-label>label .ant-form-item-optional{margin-left:0;margin-right:4px}.ant-col-rtl .ant-form-item-control:first-child{width:100%}.ant-form-rtl .ant-form-item-has-feedback .ant-input{padding-left:24px;padding-right:11px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-left:18px;padding-right:11px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input,.ant-form-rtl .ant-form-item-has-feedback .ant-input-number-affix-wrapper .ant-input-number{padding:0}.ant-form-rtl .ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{left:28px;right:auto}.ant-form-rtl .ant-form-item-has-feedback .ant-input-number{padding-left:18px}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-clear,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-clear,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-clear{left:32px;right:auto}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-left:42px;padding-right:0}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-left:19px;margin-right:0}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-clear{left:32px;right:auto}.ant-form-rtl .ant-form-item-has-feedback .ant-picker,.ant-form-rtl .ant-form-item-has-feedback .ant-picker-large{padding-left:29.2px;padding-right:11px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker-small{padding-left:25.2px;padding-right:7px}.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon{left:0;right:auto}.ant-form-rtl.ant-form-inline .ant-form-item{margin-left:16px;margin-right:0}.ant-image{display:inline-block;position:relative}.ant-image-img{height:auto;vertical-align:middle;width:100%}.ant-image-img-placeholder{background-color:#f5f5f5;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0LjUgMi41aC0xM0EuNS41IDAgMCAwIDEgM3YxMGEuNS41IDAgMCAwIC41LjVoMTNhLjUuNSAwIDAgMCAuNS0uNVYzYS41LjUgMCAwIDAtLjUtLjV6TTUuMjgxIDQuNzVhMSAxIDAgMCAxIDAgMiAxIDEgMCAwIDEgMC0yem04LjAzIDYuODNhLjEyNy4xMjcgMCAwIDEtLjA4MS4wM0gyLjc2OWEuMTI1LjEyNSAwIDAgMS0uMDk2LS4yMDdsMi42NjEtMy4xNTZhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTYuMDE2TDcuMDggMTAuMDlsMi40Ny0yLjkzYS4xMjYuMTI2IDAgMCAxIC4xNzctLjAxNmwuMDE1LjAxNiAzLjU4OCA0LjI0NGEuMTI3LjEyNyAwIDAgMS0uMDIuMTc1eiIgZmlsbD0iIzhDOEM4QyIvPjwvc3ZnPg==);background-position:50%;background-repeat:no-repeat;background-size:30%}.ant-image-mask{align-items:center;background:rgba(0,0,0,.5);bottom:0;color:#fff;cursor:pointer;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s}.ant-image-mask-info{overflow:hidden;padding:0 4px;text-overflow:ellipsis;white-space:nowrap}.ant-image-mask-info .anticon{margin-inline-end:4px}.ant-image-mask:hover{opacity:1}.ant-image-placeholder{bottom:0;left:0;position:absolute;right:0;top:0}.ant-image-preview{height:100%;pointer-events:none;text-align:center}.ant-image-preview.ant-zoom-appear,.ant-image-preview.ant-zoom-enter{animation-duration:.3s;opacity:0;transform:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-image-preview-mask{background-color:rgba(0,0,0,.45);bottom:0;height:100%;left:0;position:fixed;right:0;top:0;z-index:1000}.ant-image-preview-mask-hidden{display:none}.ant-image-preview-wrap{bottom:0;left:0;outline:0;overflow:auto;position:fixed;right:0;top:0}.ant-image-preview-body{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.ant-image-preview-img{cursor:grab;max-height:100%;max-width:100%;pointer-events:auto;transform:scaleX(1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle}.ant-image-preview-img,.ant-image-preview-img-wrapper{transition:transform .3s cubic-bezier(.215,.61,.355,1) 0s}.ant-image-preview-img-wrapper{bottom:0;left:0;position:absolute;right:0;top:0}.ant-image-preview-img-wrapper:before{content:"";display:inline-block;height:50%;margin-right:-1px;width:1px}.ant-image-preview-moving .ant-image-preview-img{cursor:grabbing}.ant-image-preview-moving .ant-image-preview-img-wrapper{transition-duration:0s}.ant-image-preview-wrap{z-index:1080}.ant-image-preview-operations-wrapper{position:fixed;right:0;top:0;width:100%;z-index:1081}.ant-image-preview-operations{font-feature-settings:"tnum","tnum";align-items:center;background:rgba(0,0,0,.1);box-sizing:border-box;color:rgba(0,0,0,.85);color:hsla(0,0%,100%,.85);display:flex;flex-direction:row-reverse;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;pointer-events:auto}.ant-image-preview-operations-operation{cursor:pointer;margin-left:12px;padding:12px;transition:all .3s}.ant-image-preview-operations-operation:hover{background:rgba(0,0,0,.2)}.ant-image-preview-operations-operation-disabled{color:hsla(0,0%,100%,.25);pointer-events:none}.ant-image-preview-operations-operation:last-of-type{margin-left:0}.ant-image-preview-operations-progress{left:50%;position:absolute;transform:translateX(-50%)}.ant-image-preview-operations-icon{font-size:18px}.ant-image-preview-switch-left,.ant-image-preview-switch-right{align-items:center;background:rgba(0,0,0,.1);border-radius:50%;color:hsla(0,0%,100%,.85);cursor:pointer;display:flex;height:44px;justify-content:center;pointer-events:auto;position:fixed;right:8px;top:50%;transform:translateY(-50%);transition:all .3s;width:44px;z-index:1081}.ant-image-preview-switch-left:hover,.ant-image-preview-switch-right:hover{background:rgba(0,0,0,.2)}.ant-image-preview-switch-left-disabled,.ant-image-preview-switch-left-disabled:hover,.ant-image-preview-switch-right-disabled,.ant-image-preview-switch-right-disabled:hover{background:rgba(0,0,0,.1);color:hsla(0,0%,100%,.25);cursor:not-allowed}.ant-image-preview-switch-left-disabled:hover>.anticon,.ant-image-preview-switch-left-disabled>.anticon,.ant-image-preview-switch-right-disabled:hover>.anticon,.ant-image-preview-switch-right-disabled>.anticon{cursor:not-allowed}.ant-image-preview-switch-left>.anticon,.ant-image-preview-switch-right>.anticon{font-size:18px}.ant-image-preview-switch-left{left:8px}.ant-image-preview-switch-right{right:8px}.ant-input-number-affix-wrapper{background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);display:inline-block;display:inline-flex;font-size:14px;line-height:1.5715;min-width:0;padding:0;padding-inline-start:11px;position:relative;transition:all .3s;width:100%;width:90px}.ant-input-number-affix-wrapper::-moz-placeholder{color:#bfbfbf;-moz-user-select:none;user-select:none}.ant-input-number-affix-wrapper:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input-number-affix-wrapper::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number-affix-wrapper:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number-affix-wrapper:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-number-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-number-affix-wrapper:hover{border-color:#40a9ff;border-right-width:1px}.ant-input-number-affix-wrapper-focused,.ant-input-number-affix-wrapper:focus{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-input-number-affix-wrapper-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-number-affix-wrapper-disabled:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-number-affix-wrapper[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-number-affix-wrapper[disabled]:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-number-affix-wrapper-borderless,.ant-input-number-affix-wrapper-borderless-disabled,.ant-input-number-affix-wrapper-borderless-focused,.ant-input-number-affix-wrapper-borderless:focus,.ant-input-number-affix-wrapper-borderless:hover,.ant-input-number-affix-wrapper-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-input-number-affix-wrapper{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-number-affix-wrapper-lg{font-size:16px;padding:6.5px 11px}.ant-input-number-affix-wrapper-sm{padding:0 7px}.ant-input-number-affix-wrapper:not(.ant-input-number-affix-wrapper-disabled):hover{border-color:#40a9ff;border-right-width:1px;z-index:1}.ant-input-number-affix-wrapper-focused,.ant-input-number-affix-wrapper:focus{z-index:1}.ant-input-number-affix-wrapper-disabled .ant-input-number[disabled]{background:transparent}.ant-input-number-affix-wrapper>div.ant-input-number{border:none;outline:none;width:100%}.ant-input-number-affix-wrapper>div.ant-input-number.ant-input-number-focused{box-shadow:none!important}.ant-input-number-affix-wrapper input.ant-input-number-input{padding:0}.ant-input-number-affix-wrapper:before{content:"\a0";display:inline-block;visibility:hidden;width:0}.ant-input-number-affix-wrapper .ant-input-number-handler-wrap{z-index:2}.ant-input-number-prefix,.ant-input-number-suffix{align-items:center;display:flex;flex:none;pointer-events:none}.ant-input-number-prefix{margin-inline-end:4px}.ant-input-number-suffix{height:100%;margin-left:4px;margin-right:11px;position:absolute;right:0;top:0;z-index:1}.ant-input-number-group-wrapper .ant-input-number-affix-wrapper{width:100%}.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number,.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:hover{background:#fff;border-color:#ff4d4f}.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number-focused,.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:focus{border-color:#ff7875;border-right-width:1px;box-shadow:0 0 0 2px rgba(255,77,79,.2);outline:0}.ant-input-number-status-error .ant-input-number-prefix{color:#ff4d4f}.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number,.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:hover{background:#fff;border-color:#faad14}.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number-focused,.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:focus{border-color:#ffc53d;border-right-width:1px;box-shadow:0 0 0 2px rgba(250,173,20,.2);outline:0}.ant-input-number-status-warning .ant-input-number-prefix{color:#faad14}.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover{background:#fff;border-color:#ff4d4f}.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused,.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus{border-color:#ff7875;border-right-width:1px;box-shadow:0 0 0 2px rgba(255,77,79,.2);outline:0}.ant-input-number-affix-wrapper-status-error .ant-input-number-prefix{color:#ff4d4f}.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover{background:#fff;border-color:#faad14}.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused,.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus{border-color:#ffc53d;border-right-width:1px;box-shadow:0 0 0 2px rgba(250,173,20,.2);outline:0}.ant-input-number-affix-wrapper-status-warning .ant-input-number-prefix{color:#faad14}.ant-input-number-group-wrapper-status-error .ant-input-number-group-addon{border-color:#ff4d4f;color:#ff4d4f}.ant-input-number-group-wrapper-status-warning .ant-input-number-group-addon{border-color:#faad14;color:#faad14}.ant-input-number{font-feature-settings:"tnum","tnum";background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;min-width:0;padding:0;position:relative;transition:all .3s;width:100%;width:90px}.ant-input-number::-moz-placeholder{color:#bfbfbf;-moz-user-select:none;user-select:none}.ant-input-number:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input-number::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-number:placeholder-shown{text-overflow:ellipsis}.ant-input-number-focused,.ant-input-number:focus{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-input-number[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-number[disabled]:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-number-borderless,.ant-input-number-borderless-disabled,.ant-input-number-borderless-focused,.ant-input-number-borderless:focus,.ant-input-number-borderless:hover,.ant-input-number-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-input-number{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-number-lg{padding:6.5px 11px}.ant-input-number-sm{padding:0 7px}.ant-input-number-group{font-feature-settings:"tnum","tnum";border-collapse:initial;border-spacing:0;box-sizing:border-box;color:rgba(0,0,0,.85);display:table;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative;width:100%}.ant-input-number-group[class*=col-]{float:none;padding-left:0;padding-right:0}.ant-input-number-group>[class*=col-]{padding-right:8px}.ant-input-number-group>[class*=col-]:last-child{padding-right:0}.ant-input-number-group-addon,.ant-input-number-group-wrap,.ant-input-number-group>.ant-input-number{display:table-cell}.ant-input-number-group-addon:not(:first-child):not(:last-child),.ant-input-number-group-wrap:not(:first-child):not(:last-child),.ant-input-number-group>.ant-input-number:not(:first-child):not(:last-child){border-radius:0}.ant-input-number-group-addon,.ant-input-number-group-wrap{vertical-align:middle;white-space:nowrap;width:1px}.ant-input-number-group-wrap>*{display:block!important}.ant-input-number-group .ant-input-number{float:left;margin-bottom:0;text-align:inherit;width:100%}.ant-input-number-group .ant-input-number:focus,.ant-input-number-group .ant-input-number:hover{border-right-width:1px;z-index:1}.ant-input-search-with-button .ant-input-number-group .ant-input-number:hover{z-index:0}.ant-input-number-group-addon{background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);font-size:14px;font-weight:400;padding:0 11px;position:relative;text-align:center;transition:all .3s}.ant-input-number-group-addon .ant-select{margin:-5px -11px}.ant-input-number-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;box-shadow:none}.ant-input-number-group-addon .ant-select-focused .ant-select-selector,.ant-input-number-group-addon .ant-select-open .ant-select-selector{color:#1890ff}.ant-input-number-group-addon .ant-cascader-picker{background-color:initial;margin:-9px -12px}.ant-input-number-group-addon .ant-cascader-picker .ant-cascader-input{border:0;box-shadow:none;text-align:left}.ant-input-number-group-addon:first-child,.ant-input-number-group-addon:first-child .ant-select .ant-select-selector,.ant-input-number-group>.ant-input-number:first-child,.ant-input-number-group>.ant-input-number:first-child .ant-select .ant-select-selector{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-number-group>.ant-input-number-affix-wrapper:not(:first-child) .ant-input-number{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-number-group>.ant-input-number-affix-wrapper:not(:last-child) .ant-input-number{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-number-group-addon:first-child{border-right:0}.ant-input-number-group-addon:last-child{border-left:0}.ant-input-number-group-addon:last-child,.ant-input-number-group-addon:last-child .ant-select .ant-select-selector,.ant-input-number-group>.ant-input-number:last-child,.ant-input-number-group>.ant-input-number:last-child .ant-select .ant-select-selector{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-number-group-lg .ant-input-number,.ant-input-number-group-lg>.ant-input-number-group-addon{font-size:16px;padding:6.5px 11px}.ant-input-number-group-sm .ant-input-number,.ant-input-number-group-sm>.ant-input-number-group-addon{padding:0 7px}.ant-input-number-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-number-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child){border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child),.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-number-group.ant-input-number-group-compact{display:block}.ant-input-number-group.ant-input-number-group-compact:before{content:"";display:table}.ant-input-number-group.ant-input-number-group-compact:after{clear:both;content:"";display:table}.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child),.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-number-group.ant-input-number-group-compact>*{border-radius:0;display:inline-block;float:none;vertical-align:top}.ant-input-number-group.ant-input-number-group-compact>.ant-input-number-affix-wrapper,.ant-input-number-group.ant-input-number-group-compact>.ant-input-number-number-affix-wrapper,.ant-input-number-group.ant-input-number-group-compact>.ant-picker-range{display:inline-flex}.ant-input-number-group.ant-input-number-group-compact>:not(:last-child){border-right-width:1px;margin-right:-1px}.ant-input-number-group.ant-input-number-group-compact .ant-input-number{float:none}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector{border-radius:0;border-right-width:1px}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-select-focused,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-arrow,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-number-group.ant-input-number-group-compact>:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-number-group.ant-input-number-group-compact>:last-child{border-bottom-right-radius:2px;border-right-width:1px;border-top-right-radius:2px}.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-number-group>.ant-input-number-rtl:first-child{border-radius:0 2px 2px 0}.ant-input-number-group>.ant-input-number-rtl:last-child{border-radius:2px 0 0 2px}.ant-input-number-group-rtl .ant-input-number-group-addon:first-child{border-left:0;border-radius:0 2px 2px 0;border-right:1px solid #d9d9d9}.ant-input-number-group-rtl .ant-input-number-group-addon:last-child{border-left:1px solid #d9d9d9;border-radius:2px 0 0 2px;border-right:0}.ant-input-number-group-wrapper{display:inline-block;text-align:start;vertical-align:top}.ant-input-number-handler{border-left:1px solid #d9d9d9;color:rgba(0,0,0,.45);display:block;font-weight:700;height:50%;line-height:0;overflow:hidden;position:relative;text-align:center;transition:all .1s linear;width:100%}.ant-input-number-handler:active{background:#f4f4f4}.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}.ant-input-number-handler-down-inner,.ant-input-number-handler-up-inner{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;align-items:center;color:inherit;color:rgba(0,0,0,.45);display:inline-flex;font-style:normal;height:12px;line-height:0;line-height:12px;position:absolute;right:4px;text-align:center;text-rendering:optimizelegibility;text-transform:none;transition:all .1s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:-.125em;width:12px}.ant-input-number-handler-down-inner>*,.ant-input-number-handler-up-inner>*{line-height:1}.ant-input-number-handler-down-inner svg,.ant-input-number-handler-up-inner svg{display:inline-block}.ant-input-number-handler-down-inner:before,.ant-input-number-handler-up-inner:before{display:none}.ant-input-number-handler-down-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-down-inner .ant-input-number-handler-up-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon{display:block}.ant-input-number:hover{border-color:#40a9ff;border-right-width:1px}.ant-input-number:hover+.ant-form-item-children-icon{opacity:0;transition:opacity .24s linear .24s}.ant-input-number-focused{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-input-number-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-number-disabled .ant-input-number-input{cursor:not-allowed}.ant-input-number-disabled .ant-input-number-handler-wrap,.ant-input-number-readonly .ant-input-number-handler-wrap{display:none}.ant-input-number-input{-webkit-appearance:textfield!important;-moz-appearance:textfield!important;appearance:textfield!important;background-color:initial;border:0;border-radius:2px;height:30px;outline:0;padding:0 11px;text-align:left;transition:all .3s linear;width:100%}.ant-input-number-input::-moz-placeholder{color:#bfbfbf;-moz-user-select:none;user-select:none}.ant-input-number-input:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input-number-input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-number-input:placeholder-shown{text-overflow:ellipsis}.ant-input-number-input[type=number]::-webkit-inner-spin-button,.ant-input-number-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.ant-input-number-lg{font-size:16px;padding:0}.ant-input-number-lg input{height:38px}.ant-input-number-sm{padding:0}.ant-input-number-sm input{height:22px;padding:0 7px}.ant-input-number-handler-wrap{background:#fff;border-radius:0 2px 2px 0;height:100%;opacity:0;position:absolute;right:0;top:0;transition:opacity .24s linear .1s;width:22px}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner{align-items:center;display:flex;font-size:7px;justify-content:center;margin-right:0;min-width:auto}.ant-input-number-borderless .ant-input-number-handler-wrap{border-left-width:0}.ant-input-number-handler-wrap:hover .ant-input-number-handler{height:40%}.ant-input-number-focused .ant-input-number-handler-wrap,.ant-input-number:hover .ant-input-number-handler-wrap{opacity:1}.ant-input-number-handler-up{border-top-right-radius:2px;cursor:pointer}.ant-input-number-handler-up-inner{margin-top:-5px;text-align:center;top:50%}.ant-input-number-handler-up:hover{height:60%!important}.ant-input-number-handler-down{border-bottom-right-radius:2px;border-top:1px solid #d9d9d9;cursor:pointer;top:0}.ant-input-number-handler-down-inner{text-align:center;top:50%;transform:translateY(-50%)}.ant-input-number-handler-down:hover{height:60%!important}.ant-input-number-borderless .ant-input-number-handler-down{border-top-width:0}.ant-input-number-focused:not(.ant-input-number-borderless) .ant-input-number-handler-down,.ant-input-number:hover:not(.ant-input-number-borderless) .ant-input-number-handler-down{border-top:1px solid #d9d9d9}.ant-input-number-handler-down-disabled,.ant-input-number-handler-up-disabled{cursor:not-allowed}.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner,.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner{color:rgba(0,0,0,.25)}.ant-input-number-borderless{box-shadow:none}.ant-input-number-out-of-range input{color:#ff4d4f}.ant-input-number-compact-item:not(.ant-input-number-compact-last-item):not(.ant-input-number-compact-item-rtl){margin-right:-1px}.ant-input-number-compact-item:not(.ant-input-number-compact-last-item).ant-input-number-compact-item-rtl{margin-left:-1px}.ant-input-number-compact-item.ant-input-number-focused,.ant-input-number-compact-item:active,.ant-input-number-compact-item:focus,.ant-input-number-compact-item:hover{z-index:2}.ant-input-number-compact-item[disabled]{z-index:0}.ant-input-number-compact-item:not(.ant-input-number-compact-first-item):not(.ant-input-number-compact-last-item).ant-input-number{border-radius:0}.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-first-item:not(.ant-input-number-compact-last-item):not(.ant-input-number-compact-item-rtl){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-item-rtl.ant-input-number-compact-first-item:not(.ant-input-number-compact-last-item),.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-last-item:not(.ant-input-number-compact-first-item):not(.ant-input-number-compact-item-rtl){border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-item-rtl.ant-input-number-compact-last-item:not(.ant-input-number-compact-first-item){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-number-rtl{direction:rtl}.ant-input-number-rtl .ant-input-number-handler{border-left:0;border-right:1px solid #d9d9d9}.ant-input-number-rtl .ant-input-number-handler-wrap{left:0;right:auto}.ant-input-number-rtl.ant-input-number-borderless .ant-input-number-handler-wrap{border-right-width:0}.ant-input-number-rtl .ant-input-number-handler-up{border-top-right-radius:0}.ant-input-number-rtl .ant-input-number-handler-down{border-bottom-right-radius:0}.ant-input-number-rtl .ant-input-number-input{direction:ltr;text-align:right}.ant-input-affix-wrapper{background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);display:inline-block;display:inline-flex;font-size:14px;line-height:1.5715;min-width:0;padding:4px 11px;position:relative;transition:all .3s;width:100%}.ant-input-affix-wrapper::-moz-placeholder{color:#bfbfbf;-moz-user-select:none;user-select:none}.ant-input-affix-wrapper:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input-affix-wrapper::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-affix-wrapper:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:hover{border-color:#40a9ff;border-right-width:1px}.ant-input-rtl .ant-input-affix-wrapper:hover{border-left-width:1px!important;border-right-width:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-input-rtl .ant-input-affix-wrapper-focused,.ant-input-rtl .ant-input-affix-wrapper:focus{border-left-width:1px!important;border-right-width:0}.ant-input-affix-wrapper-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-affix-wrapper-disabled:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-affix-wrapper[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-affix-wrapper[disabled]:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-affix-wrapper-borderless,.ant-input-affix-wrapper-borderless-disabled,.ant-input-affix-wrapper-borderless-focused,.ant-input-affix-wrapper-borderless:focus,.ant-input-affix-wrapper-borderless:hover,.ant-input-affix-wrapper-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-input-affix-wrapper{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-affix-wrapper-lg{font-size:16px;padding:6.5px 11px}.ant-input-affix-wrapper-sm{padding:0 7px}.ant-input-affix-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:#40a9ff;border-right-width:1px;z-index:1}.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-left-width:1px!important;border-right-width:0}.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{z-index:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{z-index:1}.ant-input-affix-wrapper-disabled .ant-input[disabled]{background:hsla(0,0%,100%,0)}.ant-input-affix-wrapper>.ant-input{border:none;font-size:inherit;outline:none}.ant-input-affix-wrapper>.ant-input:focus{box-shadow:none!important}.ant-input-affix-wrapper>.ant-input:not(textarea){padding:0}.ant-input-affix-wrapper:before{content:"\a0";display:inline-block;visibility:hidden;width:0}.ant-input-prefix,.ant-input-suffix{align-items:center;display:flex;flex:none}.ant-input-prefix>:not(:last-child),.ant-input-suffix>:not(:last-child){margin-right:8px}.ant-input-show-count-suffix{color:rgba(0,0,0,.45)}.ant-input-show-count-has-suffix{margin-right:2px}.ant-input-prefix{margin-right:4px}.ant-input-suffix{margin-left:4px}.ant-input-clear-icon,.anticon.ant-input-clear-icon{color:rgba(0,0,0,.25);cursor:pointer;font-size:12px;margin:0;transition:color .3s;vertical-align:-1px}.ant-input-clear-icon:hover,.anticon.ant-input-clear-icon:hover{color:rgba(0,0,0,.45)}.ant-input-clear-icon:active,.anticon.ant-input-clear-icon:active{color:rgba(0,0,0,.85)}.ant-input-clear-icon-hidden,.anticon.ant-input-clear-icon-hidden{visibility:hidden}.ant-input-clear-icon-has-suffix,.anticon.ant-input-clear-icon-has-suffix{margin:0 4px}.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn{padding:0}.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon{position:absolute;right:8px;top:8px;z-index:1}.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover{background:#fff;border-color:#ff4d4f}.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus{border-color:#ff7875;border-right-width:1px;box-shadow:0 0 0 2px rgba(255,77,79,.2);outline:0}.ant-input-status-error .ant-input-prefix{color:#ff4d4f}.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover{background:#fff;border-color:#faad14}.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus{border-color:#ffc53d;border-right-width:1px;box-shadow:0 0 0 2px rgba(250,173,20,.2);outline:0}.ant-input-status-warning .ant-input-prefix{color:#faad14}.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover{background:#fff;border-color:#ff4d4f}.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus{border-color:#ff7875;border-right-width:1px;box-shadow:0 0 0 2px rgba(255,77,79,.2);outline:0}.ant-input-affix-wrapper-status-error .ant-input-prefix{color:#ff4d4f}.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover{background:#fff;border-color:#faad14}.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus{border-color:#ffc53d;border-right-width:1px;box-shadow:0 0 0 2px rgba(250,173,20,.2);outline:0}.ant-input-affix-wrapper-status-warning .ant-input-prefix{color:#faad14}.ant-input-textarea-status-error.ant-input-textarea-has-feedback .ant-input,.ant-input-textarea-status-success.ant-input-textarea-has-feedback .ant-input,.ant-input-textarea-status-validating.ant-input-textarea-has-feedback .ant-input,.ant-input-textarea-status-warning.ant-input-textarea-has-feedback .ant-input{padding-right:24px}.ant-input-group-wrapper-status-error .ant-input-group-addon{border-color:#ff4d4f;color:#ff4d4f}.ant-input-group-wrapper-status-warning .ant-input-group-addon{border-color:#faad14;color:#faad14}.ant-input{font-feature-settings:"tnum","tnum";background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;min-width:0;padding:4px 11px;position:relative;transition:all .3s;width:100%}.ant-input::-moz-placeholder{color:#bfbfbf;-moz-user-select:none;user-select:none}.ant-input:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-input:placeholder-shown{text-overflow:ellipsis}.ant-input:hover{border-color:#40a9ff;border-right-width:1px}.ant-input-rtl .ant-input:hover{border-left-width:1px!important;border-right-width:0}.ant-input-focused,.ant-input:focus{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-input-rtl .ant-input-focused,.ant-input-rtl .ant-input:focus{border-left-width:1px!important;border-right-width:0}.ant-input-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-borderless,.ant-input-borderless-disabled,.ant-input-borderless-focused,.ant-input-borderless:focus,.ant-input-borderless:hover,.ant-input-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-input{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-lg{font-size:16px;padding:6.5px 11px}.ant-input-sm{padding:0 7px}.ant-input-rtl{direction:rtl}.ant-input-group{font-feature-settings:"tnum","tnum";border-collapse:initial;border-spacing:0;box-sizing:border-box;color:rgba(0,0,0,.85);display:table;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative;width:100%}.ant-input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.ant-input-group>[class*=col-]{padding-right:8px}.ant-input-group>[class*=col-]:last-child{padding-right:0}.ant-input-group-addon,.ant-input-group-wrap,.ant-input-group>.ant-input{display:table-cell}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group-addon,.ant-input-group-wrap{vertical-align:middle;white-space:nowrap;width:1px}.ant-input-group-wrap>*{display:block!important}.ant-input-group .ant-input{float:left;margin-bottom:0;text-align:inherit;width:100%}.ant-input-group .ant-input:focus,.ant-input-group .ant-input:hover{border-right-width:1px;z-index:1}.ant-input-search-with-button .ant-input-group .ant-input:hover{z-index:0}.ant-input-group-addon{background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);font-size:14px;font-weight:400;padding:0 11px;position:relative;text-align:center;transition:all .3s}.ant-input-group-addon .ant-select{margin:-5px -11px}.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;box-shadow:none}.ant-input-group-addon .ant-select-focused .ant-select-selector,.ant-input-group-addon .ant-select-open .ant-select-selector{color:#1890ff}.ant-input-group-addon .ant-cascader-picker{background-color:initial;margin:-9px -12px}.ant-input-group-addon .ant-cascader-picker .ant-cascader-input{border:0;box-shadow:none;text-align:left}.ant-input-group-addon:first-child,.ant-input-group-addon:first-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:first-child,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selector{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group-addon:last-child,.ant-input-group-addon:last-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:last-child,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selector{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{font-size:16px;padding:6.5px 11px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{padding:0 7px}.ant-input-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child){border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group.ant-input-group-compact{display:block}.ant-input-group.ant-input-group-compact:before{content:"";display:table}.ant-input-group.ant-input-group-compact:after{clear:both;content:"";display:table}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-group.ant-input-group-compact>*{border-radius:0;display:inline-block;float:none;vertical-align:top}.ant-input-group.ant-input-group-compact>.ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-input-number-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-picker-range{display:inline-flex}.ant-input-group.ant-input-group-compact>:not(:last-child){border-right-width:1px;margin-right:-1px}.ant-input-group.ant-input-group-compact .ant-input{float:none}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector{border-radius:0;border-right-width:1px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-focused,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-arrow,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:last-child{border-bottom-right-radius:2px;border-right-width:1px;border-top-right-radius:2px}.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-group-rtl .ant-input-group-addon:first-child,.ant-input-group>.ant-input-rtl:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl .ant-input-group-addon:first-child{border-left:0;border-right:1px solid #d9d9d9}.ant-input-group-rtl .ant-input-group-addon:last-child{border-left:1px solid #d9d9d9;border-radius:2px 0 0 2px;border-right:0}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-group-rtl.ant-input-group-addon:last-child,.ant-input-group-rtl.ant-input-group>.ant-input:last-child{border-radius:2px 0 0 2px}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:not(:last-child){border-left-width:1px;margin-left:-1px;margin-right:0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:last-child{border-left-width:1px;border-radius:2px 0 0 2px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl+.ant-input-group-wrapper-rtl{margin-left:0;margin-right:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:0 2px 2px 0}.ant-input-group-wrapper{display:inline-block;text-align:start;vertical-align:top;width:100%}.ant-input-password-icon.anticon{color:rgba(0,0,0,.45);cursor:pointer;transition:all .3s}.ant-input-password-icon.anticon:hover{color:rgba(0,0,0,.85)}.ant-input[type=color]{height:32px}.ant-input[type=color].ant-input-lg{height:40px}.ant-input[type=color].ant-input-sm{height:24px;padding-bottom:3px;padding-top:3px}.ant-input-textarea-show-count>.ant-input{height:100%}.ant-input-textarea-show-count:after{color:rgba(0,0,0,.45);content:attr(data-count);float:right;pointer-events:none;white-space:nowrap}.ant-input-textarea-show-count.ant-input-textarea-in-form-item:after{margin-bottom:-22px}.ant-input-textarea-suffix{align-items:center;bottom:0;display:inline-flex;margin:auto;position:absolute;right:11px;top:0;z-index:1}.ant-input-compact-item:not(.ant-input-compact-last-item):not(.ant-input-compact-item-rtl){margin-right:-1px}.ant-input-compact-item:not(.ant-input-compact-last-item).ant-input-compact-item-rtl{margin-left:-1px}.ant-input-compact-item:active,.ant-input-compact-item:focus,.ant-input-compact-item:hover{z-index:2}.ant-input-compact-item[disabled]{z-index:0}.ant-input-compact-item:not(.ant-input-compact-first-item):not(.ant-input-compact-last-item).ant-input{border-radius:0}.ant-input-compact-item.ant-input.ant-input-compact-first-item:not(.ant-input-compact-last-item):not(.ant-input-compact-item-rtl){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-compact-item.ant-input.ant-input-compact-item-rtl.ant-input-compact-first-item:not(.ant-input-compact-last-item),.ant-input-compact-item.ant-input.ant-input-compact-last-item:not(.ant-input-compact-first-item):not(.ant-input-compact-item-rtl){border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-compact-item.ant-input.ant-input-compact-item-rtl.ant-input-compact-last-item:not(.ant-input-compact-first-item){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-search .ant-input:focus,.ant-input-search .ant-input:hover{border-color:#40a9ff}.ant-input-search .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#40a9ff}.ant-input-search .ant-input-affix-wrapper{border-radius:0}.ant-input-search .ant-input-lg{line-height:1.5713}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child{border:0;left:-1px;padding:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button{border-radius:0 2px 2px 0;padding-bottom:0;padding-top:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary){color:rgba(0,0,0,.45)}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading:before{bottom:0;left:0;right:0;top:0}.ant-input-search-button{height:32px}.ant-input-search-button:focus,.ant-input-search-button:hover{z-index:1}.ant-input-search-large .ant-input-search-button{height:40px}.ant-input-search-small .ant-input-search-button{height:24px}.ant-input-search.ant-input-compact-item:not(.ant-input-compact-item-rtl):not(.ant-input-compact-last-item) .ant-input-group-addon .ant-input-search-button{border-radius:0;margin-right:-1px}.ant-input-search.ant-input-compact-item:not(.ant-input-compact-first-item) .ant-input,.ant-input-search.ant-input-compact-item:not(.ant-input-compact-first-item) .ant-input-affix-wrapper{border-radius:0}.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:active,.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:focus,.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:hover,.ant-input-search.ant-input-compact-item>.ant-input-affix-wrapper-focused,.ant-input-search.ant-input-compact-item>.ant-input-group-addon .ant-input-search-button:active,.ant-input-search.ant-input-compact-item>.ant-input-group-addon .ant-input-search-button:focus,.ant-input-search.ant-input-compact-item>.ant-input-group-addon .ant-input-search-button:hover,.ant-input-search.ant-input-compact-item>.ant-input:active,.ant-input-search.ant-input-compact-item>.ant-input:focus,.ant-input-search.ant-input-compact-item>.ant-input:hover{z-index:2}.ant-input-search.ant-input-compact-item-rtl:not(.ant-input-compact-last-item) .ant-input-group-addon:last-child .ant-input-search-button{border-radius:0;margin-left:-1px}.ant-input-group-rtl,.ant-input-group-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl>input.ant-input{border:none;outline:none}.ant-input-affix-wrapper-rtl .ant-input-prefix{margin:0 0 0 4px}.ant-input-affix-wrapper-rtl .ant-input-suffix{margin:0 4px 0 0}.ant-input-textarea-rtl{direction:rtl}.ant-input-textarea-rtl.ant-input-textarea-show-count:after{text-align:left}.ant-input-affix-wrapper-rtl .ant-input-clear-icon-has-suffix{margin-left:4px;margin-right:0}.ant-input-affix-wrapper-rtl .ant-input-clear-icon{left:8px;right:auto}.ant-input-search-rtl{direction:rtl}.ant-input-search-rtl .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search-rtl .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#d9d9d9}.ant-input-search-rtl .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary):hover,.ant-input-search-rtl .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary):hover{border-left-color:#40a9ff}.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper-focused,.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper:hover{border-right-color:#40a9ff}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon:last-child{left:auto;right:-1px}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button{border-radius:2px 0 0 2px}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-input{height:32px}.ant-input-lg{height:40px}.ant-input-sm{height:24px}.ant-input-affix-wrapper>input.ant-input{height:auto}}.ant-layout{background:#f0f2f5;display:flex;flex:auto;flex-direction:column;min-height:0}.ant-layout,.ant-layout *{box-sizing:border-box}.ant-layout.ant-layout-has-sider{flex-direction:row}.ant-layout.ant-layout-has-sider>.ant-layout,.ant-layout.ant-layout-has-sider>.ant-layout-content{width:0}.ant-layout-footer,.ant-layout-header{flex:0 0 auto}.ant-layout-header{background:#001529;color:rgba(0,0,0,.85);height:64px;line-height:64px;padding:0 50px}.ant-layout-footer{background:#f0f2f5;color:rgba(0,0,0,.85);font-size:14px;padding:24px 50px}.ant-layout-content{flex:auto;min-height:0}.ant-layout-sider{background:#001529;min-width:0;position:relative;transition:all .2s}.ant-layout-sider-children{height:100%;margin-top:-.1px;padding-top:.1px}.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed{width:auto}.ant-layout-sider-has-trigger{padding-bottom:48px}.ant-layout-sider-right{order:1}.ant-layout-sider-trigger{background:#002140;bottom:0;color:#fff;cursor:pointer;height:48px;line-height:48px;position:fixed;text-align:center;transition:all .2s;z-index:1}.ant-layout-sider-zero-width>*{overflow:hidden}.ant-layout-sider-zero-width-trigger{background:#001529;border-radius:0 2px 2px 0;color:#fff;cursor:pointer;font-size:18px;height:42px;line-height:42px;position:absolute;right:-36px;text-align:center;top:64px;transition:background .3s ease;width:36px;z-index:1}.ant-layout-sider-zero-width-trigger:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all .3s}.ant-layout-sider-zero-width-trigger:hover:after{background:hsla(0,0%,100%,.1)}.ant-layout-sider-zero-width-trigger-right{border-radius:2px 0 0 2px;left:-36px}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger,.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{background:#fff;color:rgba(0,0,0,.85)}.ant-layout-rtl{direction:rtl}.ant-list{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-list *{outline:none}.ant-list-pagination{margin-top:24px;text-align:right}.ant-list-pagination .ant-pagination-options{text-align:left}.ant-list-more{margin-top:12px;text-align:center}.ant-list-more button{padding-left:32px;padding-right:32px}.ant-list-spin{min-height:40px;text-align:center}.ant-list-empty-text{color:rgba(0,0,0,.25);font-size:14px;padding:16px;text-align:center}.ant-list-items{list-style:none;margin:0;padding:0}.ant-list-item{align-items:center;color:rgba(0,0,0,.85);display:flex;justify-content:space-between;padding:12px 0}.ant-list-item-meta{align-items:flex-start;display:flex;flex:1 1;max-width:100%}.ant-list-item-meta-avatar{margin-right:16px}.ant-list-item-meta-content{color:rgba(0,0,0,.85);flex:1 0;width:0}.ant-list-item-meta-title{color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715;margin-bottom:4px}.ant-list-item-meta-title>a{color:rgba(0,0,0,.85);transition:all .3s}.ant-list-item-meta-title>a:hover{color:#1890ff}.ant-list-item-meta-description{color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715}.ant-list-item-action{flex:0 0 auto;font-size:0;list-style:none;margin-left:48px;padding:0}.ant-list-item-action>li{color:rgba(0,0,0,.45);display:inline-block;font-size:14px;line-height:1.5715;padding:0 8px;position:relative;text-align:center}.ant-list-item-action>li:first-child{padding-left:0}.ant-list-item-action-split{background-color:#f0f0f0;height:14px;margin-top:-7px;position:absolute;right:0;top:50%;width:1px}.ant-list-footer,.ant-list-header{background:transparent}.ant-list-footer,.ant-list-header{padding-bottom:12px;padding-top:12px}.ant-list-empty{color:rgba(0,0,0,.45);font-size:12px;padding:16px 0;text-align:center}.ant-list-split .ant-list-item{border-bottom:1px solid #f0f0f0}.ant-list-split .ant-list-item:last-child{border-bottom:none}.ant-list-split .ant-list-header{border-bottom:1px solid #f0f0f0}.ant-list-split.ant-list-empty .ant-list-footer{border-top:1px solid #f0f0f0}.ant-list-loading .ant-list-spin-nested-loading{min-height:32px}.ant-list-split.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #f0f0f0}.ant-list-lg .ant-list-item{padding:16px 24px}.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-vertical .ant-list-item{align-items:normal}.ant-list-vertical .ant-list-item-main{display:block;flex:1 1}.ant-list-vertical .ant-list-item-extra{margin-left:40px}.ant-list-vertical .ant-list-item-meta{margin-bottom:16px}.ant-list-vertical .ant-list-item-meta-title{color:rgba(0,0,0,.85);font-size:16px;line-height:24px;margin-bottom:12px}.ant-list-vertical .ant-list-item-action{margin-left:auto;margin-top:16px}.ant-list-vertical .ant-list-item-action>li{padding:0 16px}.ant-list-vertical .ant-list-item-action>li:first-child{padding-left:0}.ant-list-grid .ant-col>.ant-list-item{border-bottom:none;display:block;margin-bottom:16px;max-width:100%;padding-bottom:0;padding-top:0}.ant-list-item-no-flex{display:block}.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:right}.ant-list-bordered{border:1px solid #d9d9d9;border-radius:2px}.ant-list-bordered .ant-list-footer,.ant-list-bordered .ant-list-header,.ant-list-bordered .ant-list-item{padding-left:24px;padding-right:24px}.ant-list-bordered .ant-list-pagination{margin:16px 24px}.ant-list-bordered.ant-list-sm .ant-list-footer,.ant-list-bordered.ant-list-sm .ant-list-header,.ant-list-bordered.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-bordered.ant-list-lg .ant-list-footer,.ant-list-bordered.ant-list-lg .ant-list-header,.ant-list-bordered.ant-list-lg .ant-list-item{padding:16px 24px}@media screen and (max-width:768px){.ant-list-item-action,.ant-list-vertical .ant-list-item-extra{margin-left:24px}}@media screen and (max-width:576px){.ant-list-item{flex-wrap:wrap}.ant-list-item-action{margin-left:12px}.ant-list-vertical .ant-list-item{flex-wrap:wrap-reverse}.ant-list-vertical .ant-list-item-main{min-width:220px}.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}}.ant-list-rtl{direction:rtl;text-align:right}.ant-list-rtl .ReactVirtualized__List .ant-list-item{direction:rtl}.ant-list-rtl .ant-list-pagination{text-align:left}.ant-list-rtl .ant-list-item-meta-avatar{margin-left:16px;margin-right:0}.ant-list-rtl .ant-list-item-action{margin-left:0;margin-right:48px}.ant-list.ant-list-rtl .ant-list-item-action>li:first-child{padding-left:16px;padding-right:0}.ant-list-rtl .ant-list-item-action-split{left:0;right:auto}.ant-list-rtl.ant-list-vertical .ant-list-item-extra{margin-left:0;margin-right:40px}.ant-list-rtl.ant-list-vertical .ant-list-item-action{margin-right:auto}.ant-list-rtl .ant-list-vertical .ant-list-item-action>li:first-child{padding-left:16px;padding-right:0}.ant-list-rtl .ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:left}@media screen and (max-width:768px){.ant-list-rtl .ant-list-item-action,.ant-list-rtl .ant-list-vertical .ant-list-item-extra{margin-left:0;margin-right:24px}}@media screen and (max-width:576px){.ant-list-rtl .ant-list-item-action{margin-left:0;margin-right:22px}.ant-list-rtl.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}}.ant-pagination{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715}.ant-pagination,.ant-pagination ol,.ant-pagination ul{list-style:none;margin:0;padding:0}.ant-pagination:after{clear:both;content:" ";display:block;height:0;overflow:hidden;visibility:hidden}.ant-pagination-item,.ant-pagination-total-text{display:inline-block;height:32px;line-height:30px;margin-right:8px;vertical-align:middle}.ant-pagination-item{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;list-style:none;min-width:32px;outline:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-item a{color:rgba(0,0,0,.85);display:block;padding:0 6px;transition:none}.ant-pagination-item a:hover{text-decoration:none}.ant-pagination-item:hover{border-color:#1890ff;transition:all .3s}.ant-pagination-item:hover a{color:#1890ff}.ant-pagination-item:focus-visible{border-color:#1890ff;transition:all .3s}.ant-pagination-item:focus-visible a{color:#1890ff}.ant-pagination-item-active{background:#fff;border-color:#1890ff;font-weight:500}.ant-pagination-item-active a{color:#1890ff}.ant-pagination-item-active:hover{border-color:#40a9ff}.ant-pagination-item-active:focus-visible{border-color:#40a9ff}.ant-pagination-item-active:hover a{color:#40a9ff}.ant-pagination-item-active:focus-visible a{color:#40a9ff}.ant-pagination-jump-next,.ant-pagination-jump-prev{outline:0}.ant-pagination-jump-next .ant-pagination-item-container,.ant-pagination-jump-prev .ant-pagination-item-container{position:relative}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff;font-size:12px;letter-spacing:-1px;opacity:0;transition:all .2s}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg{bottom:0;left:0;margin:auto;right:0;top:0}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis{bottom:0;color:rgba(0,0,0,.25);display:block;font-family:Arial,Helvetica,sans-serif;left:0;letter-spacing:2px;margin:auto;opacity:1;position:absolute;right:0;text-align:center;text-indent:.13em;top:0;transition:all .2s}.ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next:focus-visible .ant-pagination-item-link-icon,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:focus-visible .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-prev{margin-right:8px}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev{border-radius:2px;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;height:32px;line-height:32px;list-style:none;min-width:32px;text-align:center;transition:all .3s;vertical-align:middle}.ant-pagination-next,.ant-pagination-prev{font-family:Arial,Helvetica,sans-serif;outline:0}.ant-pagination-next button,.ant-pagination-prev button{color:rgba(0,0,0,.85);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-next:hover button,.ant-pagination-prev:hover button{border-color:#40a9ff}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;display:block;font-size:12px;height:100%;outline:none;padding:0;text-align:center;transition:all .3s;width:100%}.ant-pagination-next:focus-visible .ant-pagination-item-link,.ant-pagination-prev:focus-visible .ant-pagination-item-link{border-color:#1890ff;color:#1890ff}.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff;color:#1890ff}.ant-pagination-disabled,.ant-pagination-disabled:hover{cursor:not-allowed}.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:hover .ant-pagination-item-link{border-color:#d9d9d9;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-pagination-disabled:focus-visible{cursor:not-allowed}.ant-pagination-disabled:focus-visible .ant-pagination-item-link{border-color:#d9d9d9;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-pagination-slash{margin:0 10px 0 5px}.ant-pagination-options{display:inline-block;margin-left:16px;vertical-align:middle}@media (-ms-high-contrast:none){.ant-pagination-options,.ant-pagination-options ::-ms-backdrop{vertical-align:top}}.ant-pagination-options-size-changer.ant-select{display:inline-block;width:auto}.ant-pagination-options-quick-jumper{display:inline-block;height:32px;line-height:32px;margin-left:8px;vertical-align:top}.ant-pagination-options-quick-jumper input{background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;height:32px;line-height:1.5715;margin:0 8px;min-width:0;padding:4px 11px;position:relative;transition:all .3s;width:100%;width:50px}.ant-pagination-options-quick-jumper input::-moz-placeholder{color:#bfbfbf;-moz-user-select:none;user-select:none}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-pagination-options-quick-jumper input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-options-quick-jumper input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff;border-right-width:1px}.ant-pagination-options-quick-jumper input-focused,.ant-pagination-options-quick-jumper input:focus{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-pagination-options-quick-jumper input-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#d9d9d9;border-right-width:1px}.ant-pagination-options-quick-jumper input[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px}.ant-pagination-options-quick-jumper input-borderless,.ant-pagination-options-quick-jumper input-borderless-disabled,.ant-pagination-options-quick-jumper input-borderless-focused,.ant-pagination-options-quick-jumper input-borderless:focus,.ant-pagination-options-quick-jumper input-borderless:hover,.ant-pagination-options-quick-jumper input-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-pagination-options-quick-jumper input{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-pagination-options-quick-jumper input-lg{font-size:16px;padding:6.5px 11px}.ant-pagination-options-quick-jumper input-sm{padding:0 7px}.ant-pagination-simple .ant-pagination-next,.ant-pagination-simple .ant-pagination-prev{height:24px;line-height:24px;vertical-align:top}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link{background-color:initial;border:0;height:24px}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{display:inline-block;height:24px;margin-right:8px}.ant-pagination-simple .ant-pagination-simple-pager input{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;height:100%;margin-right:8px;outline:none;padding:0 6px;text-align:center;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}.ant-pagination-simple .ant-pagination-simple-pager input:focus{border-color:#40a9ff;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-pagination-simple .ant-pagination-simple-pager input[disabled]{background:#f5f5f5;border-color:#d9d9d9;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-pagination.ant-pagination-mini .ant-pagination-simple-pager,.ant-pagination.ant-pagination-mini .ant-pagination-total-text{height:24px;line-height:24px}.ant-pagination.ant-pagination-mini .ant-pagination-item{height:24px;line-height:22px;margin:0;min-width:24px}.ant-pagination.ant-pagination-mini .ant-pagination-item:not(.ant-pagination-item-active){background:transparent;border-color:transparent}.ant-pagination.ant-pagination-mini .ant-pagination-next,.ant-pagination.ant-pagination-mini .ant-pagination-prev{height:24px;line-height:24px;margin:0;min-width:24px}.ant-pagination.ant-pagination-mini .ant-pagination-next .ant-pagination-item-link,.ant-pagination.ant-pagination-mini .ant-pagination-prev .ant-pagination-item-link{background:transparent;border-color:transparent}.ant-pagination.ant-pagination-mini .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination.ant-pagination-mini .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination.ant-pagination-mini .ant-pagination-jump-next,.ant-pagination.ant-pagination-mini .ant-pagination-jump-prev{height:24px;line-height:24px;margin-right:0}.ant-pagination.ant-pagination-mini .ant-pagination-options{margin-left:2px}.ant-pagination.ant-pagination-mini .ant-pagination-options-size-changer{top:0}.ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper input{height:24px;padding:0 7px;width:44px}.ant-pagination.ant-pagination-disabled{cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{background:transparent;border:none;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:#e6e6e6}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a{color:rgba(0,0,0,.25)}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{background:#f5f5f5;border-color:#d9d9d9;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-pagination-simple.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{background:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link-icon{opacity:0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-ellipsis{opacity:1}.ant-pagination.ant-pagination-disabled .ant-pagination-simple-pager{color:rgba(0,0,0,.25)}@media only screen and (max-width:992px){.ant-pagination-item-after-jump-prev,.ant-pagination-item-before-jump-next{display:none}}@media only screen and (max-width:576px){.ant-pagination-options{display:none}}.ant-pagination-rtl .ant-pagination-item,.ant-pagination-rtl .ant-pagination-jump-next,.ant-pagination-rtl .ant-pagination-jump-prev,.ant-pagination-rtl .ant-pagination-prev,.ant-pagination-rtl .ant-pagination-total-text{margin-left:8px;margin-right:0}.ant-pagination-rtl .ant-pagination-slash{margin:0 5px 0 10px}.ant-pagination-rtl .ant-pagination-options{margin-left:0;margin-right:16px}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-size-changer.ant-select{margin-left:8px;margin-right:0}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-quick-jumper{margin-left:0}.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager,.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager input{margin-left:8px;margin-right:0}.ant-pagination-rtl.ant-pagination.mini .ant-pagination-options{margin-left:0;margin-right:2px}.ant-spin{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);color:#1890ff;display:none;font-size:14px;font-size:0;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;opacity:0;padding:0;position:absolute;text-align:center;transition:transform .3s cubic-bezier(.78,.14,.15,.86);vertical-align:middle}.ant-spin-spinning{display:inline-block;opacity:1;position:static}.ant-spin-nested-loading{position:relative}.ant-spin-nested-loading>div>.ant-spin{display:block;height:100%;left:0;max-height:400px;position:absolute;top:0;width:100%;z-index:4}.ant-spin-nested-loading>div>.ant-spin .ant-spin-dot{left:50%;margin:-10px;position:absolute;top:50%}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{font-size:14px;padding-top:5px;position:absolute;text-shadow:0 1px 2px #fff;top:50%;width:100%}.ant-spin-nested-loading>div>.ant-spin.ant-spin-show-text .ant-spin-dot{margin-top:-20px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-dot{margin:-7px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-text{padding-top:2px}.ant-spin-nested-loading>div>.ant-spin-sm.ant-spin-show-text .ant-spin-dot{margin-top:-17px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-dot{margin:-16px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-text{padding-top:11px}.ant-spin-nested-loading>div>.ant-spin-lg.ant-spin-show-text .ant-spin-dot{margin-top:-26px}.ant-spin-container{position:relative;transition:opacity .3s}.ant-spin-container:after{background:#fff;bottom:0;content:"";display:none\9;height:100%;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:all .3s;width:100%;z-index:10}.ant-spin-blur{clear:both;opacity:.5;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-spin-blur:after{opacity:.4;pointer-events:auto}.ant-spin-tip{color:rgba(0,0,0,.45)}.ant-spin-dot{display:inline-block;font-size:20px;height:1em;position:relative;width:1em}.ant-spin-dot-item{animation:antSpinMove 1s linear infinite alternate;background-color:#1890ff;border-radius:100%;display:block;height:9px;opacity:.3;position:absolute;transform:scale(.75);transform-origin:50% 50%;width:9px}.ant-spin-dot-item:first-child{left:0;top:0}.ant-spin-dot-item:nth-child(2){animation-delay:.4s;right:0;top:0}.ant-spin-dot-item:nth-child(3){animation-delay:.8s;bottom:0;right:0}.ant-spin-dot-item:nth-child(4){animation-delay:1.2s;bottom:0;left:0}.ant-spin-dot-spin{animation:antRotate 1.2s linear infinite;transform:rotate(0deg)}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-sm .ant-spin-dot i{height:6px;width:6px}.ant-spin-lg .ant-spin-dot{font-size:32px}.ant-spin-lg .ant-spin-dot i{height:14px;width:14px}.ant-spin.ant-spin-show-text .ant-spin-text{display:block}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-spin-blur{background:#fff;opacity:.5}}@keyframes antSpinMove{to{opacity:1}}@keyframes antRotate{to{transform:rotate(1turn)}}.ant-spin-rtl{direction:rtl}.ant-spin-rtl .ant-spin-dot-spin{animation-name:antRotateRtl;transform:rotate(-45deg)}@keyframes antRotateRtl{to{transform:rotate(-405deg)}}.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions,.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:hover{background:#fff;border-color:#ff4d4f}.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions-focused,.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:focus{border-color:#ff7875;border-right-width:1px;box-shadow:0 0 0 2px rgba(255,77,79,.2);outline:0}.ant-mentions-status-error .ant-input-prefix{color:#ff4d4f}.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions,.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:hover{background:#fff;border-color:#faad14}.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions-focused,.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:focus{border-color:#ffc53d;border-right-width:1px;box-shadow:0 0 0 2px rgba(250,173,20,.2);outline:0}.ant-mentions-status-warning .ant-input-prefix{color:#faad14}.ant-mentions{font-feature-settings:"tnum","tnum";background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;height:auto;line-height:1.5715;list-style:none;margin:0;min-width:0;overflow:hidden;padding:0;position:relative;transition:all .3s;vertical-align:bottom;white-space:pre-wrap;width:100%}.ant-mentions::-moz-placeholder{color:#bfbfbf;-moz-user-select:none;user-select:none}.ant-mentions:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-mentions::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-mentions:-moz-placeholder-shown{text-overflow:ellipsis}.ant-mentions:-ms-input-placeholder{text-overflow:ellipsis}.ant-mentions:placeholder-shown{text-overflow:ellipsis}.ant-mentions-focused,.ant-mentions:focus,.ant-mentions:hover{border-color:#40a9ff;border-right-width:1px}.ant-mentions-focused,.ant-mentions:focus{box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-mentions-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-mentions-disabled:hover{border-color:#d9d9d9;border-right-width:1px}.ant-mentions[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-mentions[disabled]:hover{border-color:#d9d9d9;border-right-width:1px}.ant-mentions-borderless,.ant-mentions-borderless-disabled,.ant-mentions-borderless-focused,.ant-mentions-borderless:focus,.ant-mentions-borderless:hover,.ant-mentions-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-mentions{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-mentions-lg{font-size:16px;padding:6.5px 11px}.ant-mentions-sm{padding:0 7px}.ant-mentions-disabled>textarea{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-mentions-disabled>textarea:hover{border-color:#d9d9d9;border-right-width:1px}.ant-mentions-focused{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-mentions-measure,.ant-mentions>textarea{font-feature-settings:inherit;word-wrap:break-word;direction:inherit;font-family:inherit;font-size:inherit;font-size-adjust:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;min-height:30px;overflow:inherit;overflow-x:hidden;overflow-y:auto;padding:4px 11px;-moz-tab-size:inherit;-o-tab-size:inherit;tab-size:inherit;text-align:inherit;vertical-align:top;white-space:inherit;word-break:inherit}.ant-mentions>textarea{border:none;outline:none;resize:none;width:100%}.ant-mentions>textarea::-moz-placeholder{color:#bfbfbf;-moz-user-select:none;user-select:none}.ant-mentions>textarea:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-mentions>textarea::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-mentions>textarea:-moz-placeholder-shown{text-overflow:ellipsis}.ant-mentions>textarea:-ms-input-placeholder{text-overflow:ellipsis}.ant-mentions>textarea:placeholder-shown{text-overflow:ellipsis}.ant-mentions-measure{bottom:0;color:transparent;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:-1}.ant-mentions-measure>span{display:inline-block;min-height:1em}.ant-mentions-dropdown{font-feature-settings:"tnum","tnum",;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;font-variant:normal;left:-9999px;line-height:1.5715;list-style:none;margin:0;outline:none;padding:0;position:absolute;top:-9999px;z-index:1050}.ant-mentions-dropdown-hidden{display:none}.ant-mentions-dropdown-menu{list-style:none;margin-bottom:0;max-height:250px;outline:none;overflow:auto;padding-left:0}.ant-mentions-dropdown-menu-item{color:rgba(0,0,0,.85);cursor:pointer;display:block;font-weight:400;line-height:1.5715;min-width:100px;overflow:hidden;padding:5px 12px;position:relative;text-overflow:ellipsis;transition:background .3s ease;white-space:nowrap}.ant-mentions-dropdown-menu-item:hover{background-color:#f5f5f5}.ant-mentions-dropdown-menu-item:first-child{border-radius:2px 2px 0 0}.ant-mentions-dropdown-menu-item:last-child{border-radius:0 0 2px 2px}.ant-mentions-dropdown-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-mentions-dropdown-menu-item-disabled:hover{background-color:#fff;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-mentions-dropdown-menu-item-selected{background-color:#fafafa;color:rgba(0,0,0,.85);font-weight:600}.ant-mentions-dropdown-menu-item-active{background-color:#f5f5f5}.ant-mentions-suffix{align-items:center;bottom:0;display:inline-flex;margin:auto;position:absolute;right:11px;top:0;z-index:1}.ant-mentions-rtl{direction:rtl}.ant-message{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;left:0;line-height:1.5715;list-style:none;margin:0;padding:0;pointer-events:none;position:fixed;top:8px;width:100%;z-index:1010}.ant-message-notice{padding:8px;text-align:center}.ant-message-notice-content{background:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);display:inline-block;padding:10px 16px;pointer-events:all}.ant-message-success .anticon{color:#52c41a}.ant-message-error .anticon{color:#ff4d4f}.ant-message-warning .anticon{color:#faad14}.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}.ant-message .anticon{font-size:16px;margin-right:8px;position:relative;top:1px}.ant-message-notice.ant-move-up-leave.ant-move-up-leave-active{animation-duration:.3s;animation-name:MessageMoveOut}@keyframes MessageMoveOut{0%{max-height:150px;opacity:1;padding:8px}to{max-height:0;opacity:0;padding:0}}.ant-message-rtl,.ant-message-rtl span{direction:rtl}.ant-message-rtl .anticon{margin-left:8px;margin-right:0}.ant-modal{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 auto;max-width:calc(100vw - 32px);padding:0 0 24px;pointer-events:none;position:relative;top:100px;width:auto}.ant-modal.ant-zoom-appear,.ant-modal.ant-zoom-enter{animation-duration:.3s;opacity:0;transform:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-modal-mask{background-color:rgba(0,0,0,.45);bottom:0;height:100%;left:0;position:fixed;right:0;top:0;z-index:1000}.ant-modal-mask-hidden{display:none}.ant-modal-wrap{bottom:0;left:0;outline:0;overflow:auto;position:fixed;right:0;top:0;z-index:1000}.ant-modal-title{word-wrap:break-word;color:rgba(0,0,0,.85);font-size:16px;font-weight:500;line-height:22px;margin:0}.ant-modal-content{background-clip:padding-box;background-color:#fff;border:0;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);pointer-events:auto;position:relative}.ant-modal-close{background:transparent;border:0;color:rgba(0,0,0,.45);cursor:pointer;font-weight:700;line-height:1;outline:0;padding:0;position:absolute;right:0;text-decoration:none;top:0;transition:color .3s;z-index:10}.ant-modal-close-x{display:block;font-size:16px;font-style:normal;height:54px;line-height:54px;text-align:center;text-rendering:auto;text-transform:none;width:54px}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-modal-header{background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0;color:rgba(0,0,0,.85);padding:16px 24px}.ant-modal-body{word-wrap:break-word;font-size:14px;line-height:1.5715;padding:24px}.ant-modal-footer{background:transparent;border-radius:0 0 2px 2px;border-top:1px solid #f0f0f0;padding:10px 16px;text-align:right}.ant-modal-footer .ant-btn+.ant-btn:not(.ant-dropdown-trigger){margin-bottom:0;margin-left:8px}.ant-modal-open{overflow:hidden}.ant-modal-centered{text-align:center}.ant-modal-centered:before{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.ant-modal-centered .ant-modal{display:inline-block;padding-bottom:0;text-align:left;top:0;vertical-align:middle}@media (max-width:767px){.ant-modal{margin:8px auto;max-width:calc(100vw - 16px)}.ant-modal-centered .ant-modal{flex:1 1}}.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm .ant-modal-body{padding:32px 32px 24px}.ant-modal-confirm-body-wrapper:before{content:"";display:table}.ant-modal-confirm-body-wrapper:after{clear:both;content:"";display:table}.ant-modal-confirm-body .ant-modal-confirm-title{color:rgba(0,0,0,.85);display:block;font-size:16px;font-weight:500;line-height:1.4;overflow:hidden}.ant-modal-confirm-body .ant-modal-confirm-content{color:rgba(0,0,0,.85);font-size:14px;margin-top:8px}.ant-modal-confirm-body>.anticon{float:left;font-size:22px;margin-right:16px}.ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:38px}.ant-modal-confirm .ant-modal-confirm-btns{margin-top:24px;text-align:right}.ant-modal-confirm .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#ff4d4f}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a}.ant-modal-confirm .ant-zoom-leave .ant-modal-confirm-btns{pointer-events:none}.ant-modal-wrap-rtl{direction:rtl}.ant-modal-wrap-rtl .ant-modal-close{left:0;right:auto}.ant-modal-wrap-rtl .ant-modal-footer{text-align:left}.ant-modal-wrap-rtl .ant-modal-footer .ant-btn+.ant-btn{margin-left:0;margin-right:8px}.ant-modal-wrap-rtl .ant-modal-confirm-body{direction:rtl}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon{float:right;margin-left:16px;margin-right:0}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:0;margin-right:38px}.ant-modal-wrap-rtl .ant-modal-confirm-btns{text-align:left}.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-left:0;margin-right:8px}.ant-modal-wrap-rtl.ant-modal-centered .ant-modal{text-align:right}.ant-notification{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 24px 0 0;padding:0;position:fixed;z-index:1010}.ant-notification-close-icon{cursor:pointer;font-size:14px}.ant-notification-hook-holder{position:relative}.ant-notification-notice{word-wrap:break-word;background:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);line-height:1.5715;margin-bottom:16px;margin-left:auto;max-width:calc(100vw - 48px);overflow:hidden;padding:16px 24px;position:relative;width:384px}.ant-notification-bottom .ant-notification-notice,.ant-notification-top .ant-notification-notice{margin-left:auto;margin-right:auto}.ant-notification-bottomLeft .ant-notification-notice,.ant-notification-topLeft .ant-notification-notice{margin-left:0;margin-right:auto}.ant-notification-notice-message{color:rgba(0,0,0,.85);font-size:16px;line-height:24px;margin-bottom:8px}.ant-notification-notice-message-single-line-auto-margin{background-color:initial;display:block;max-width:4px;pointer-events:none;width:calc(264px - 100%)}.ant-notification-notice-message-single-line-auto-margin:before{content:"";display:block}.ant-notification-notice-description{font-size:14px}.ant-notification-notice-closable .ant-notification-notice-message{padding-right:24px}.ant-notification-notice-with-icon .ant-notification-notice-message{font-size:16px;margin-bottom:4px;margin-left:48px}.ant-notification-notice-with-icon .ant-notification-notice-description{font-size:14px;margin-left:48px}.ant-notification-notice-icon{font-size:24px;line-height:24px;margin-left:4px;position:absolute}.anticon.ant-notification-notice-icon-success{color:#52c41a}.anticon.ant-notification-notice-icon-info{color:#1890ff}.anticon.ant-notification-notice-icon-warning{color:#faad14}.anticon.ant-notification-notice-icon-error{color:#ff4d4f}.ant-notification-notice-close{color:rgba(0,0,0,.45);outline:none;position:absolute;right:22px;top:16px}.ant-notification-notice-close:hover{color:rgba(0,0,0,.67)}.ant-notification-notice-btn{float:right;margin-top:16px}.ant-notification .notification-fade-effect{animation-duration:.24s;animation-fill-mode:both;animation-timing-function:cubic-bezier(.645,.045,.355,1)}.ant-notification-fade-appear,.ant-notification-fade-enter{animation-play-state:paused;opacity:0}.ant-notification-fade-appear,.ant-notification-fade-enter,.ant-notification-fade-leave{animation-duration:.24s;animation-fill-mode:both;animation-timing-function:cubic-bezier(.645,.045,.355,1)}.ant-notification-fade-leave{animation-duration:.2s;animation-play-state:paused}.ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationFadeIn;animation-play-state:running}.ant-notification-fade-leave.ant-notification-fade-leave-active{animation-name:NotificationFadeOut;animation-play-state:running}@keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@keyframes NotificationFadeOut{0%{margin-bottom:16px;max-height:150px;opacity:1}to{margin-bottom:0;max-height:0;opacity:0;padding-bottom:0;padding-top:0}}.ant-notification-rtl{direction:rtl}.ant-notification-rtl .ant-notification-notice-closable .ant-notification-notice-message{padding-left:24px;padding-right:0}.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-description,.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-message{margin-left:0;margin-right:48px}.ant-notification-rtl .ant-notification-notice-icon{margin-left:0;margin-right:4px}.ant-notification-rtl .ant-notification-notice-close{left:22px;right:auto}.ant-notification-rtl .ant-notification-notice-btn{float:left}.ant-notification-bottom,.ant-notification-top{margin-left:0;margin-right:0}.ant-notification-top .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-top .ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationTopFadeIn}.ant-notification-bottom .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-bottom .ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationBottomFadeIn}.ant-notification-bottomLeft,.ant-notification-topLeft{margin-left:24px;margin-right:0}.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationLeftFadeIn}@keyframes NotificationTopFadeIn{0%{margin-top:-100%;opacity:0}to{margin-top:0;opacity:1}}@keyframes NotificationBottomFadeIn{0%{margin-bottom:-100%;opacity:0}to{margin-bottom:0;opacity:1}}@keyframes NotificationLeftFadeIn{0%{opacity:0;right:384px}to{opacity:1;right:0}}.ant-page-header{font-feature-settings:"tnum","tnum";background-color:#fff;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:16px 24px;position:relative}.ant-page-header-ghost{background-color:inherit}.ant-page-header.has-breadcrumb{padding-top:12px}.ant-page-header.has-footer{padding-bottom:0}.ant-page-header-back{font-size:16px;line-height:1;margin-right:16px}.ant-page-header-back-button{color:#1890ff;color:#000;cursor:pointer;outline:none;transition:color .3s}.ant-page-header-back-button:focus-visible,.ant-page-header-back-button:hover{color:#40a9ff}.ant-page-header-back-button:active{color:#096dd9}.ant-page-header .ant-divider-vertical{height:14px;margin:0 12px;vertical-align:middle}.ant-breadcrumb+.ant-page-header-heading{margin-top:8px}.ant-page-header-heading{display:flex;justify-content:space-between}.ant-page-header-heading-left{align-items:center;display:flex;margin:4px 0;overflow:hidden}.ant-page-header-heading-title{color:rgba(0,0,0,.85);font-size:20px;font-weight:600;line-height:32px;margin-bottom:0;margin-right:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-page-header-heading .ant-avatar{margin-right:12px}.ant-page-header-heading-sub-title{color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715;margin-right:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-page-header-heading-extra{margin:4px 0;white-space:nowrap}.ant-page-header-heading-extra>*{white-space:inherit}.ant-page-header-content{padding-top:12px}.ant-page-header-footer{margin-top:16px}.ant-page-header-footer .ant-tabs>.ant-tabs-nav{margin:0}.ant-page-header-footer .ant-tabs>.ant-tabs-nav:before{border:none}.ant-page-header-footer .ant-tabs .ant-tabs-tab{font-size:16px;padding-bottom:8px;padding-top:8px}.ant-page-header-compact .ant-page-header-heading{flex-wrap:wrap}.ant-page-header-rtl{direction:rtl}.ant-page-header-rtl .ant-page-header-back{float:right;margin-left:16px;margin-right:0}.ant-page-header-rtl .ant-page-header-heading .ant-avatar,.ant-page-header-rtl .ant-page-header-heading-title{margin-left:12px;margin-right:0}.ant-page-header-rtl .ant-page-header-heading-sub-title{float:right;margin-left:12px;margin-right:0}.ant-page-header-rtl .ant-page-header-heading-tags{float:right}.ant-page-header-rtl .ant-page-header-heading-extra{float:left}.ant-page-header-rtl .ant-page-header-heading-extra>*{margin-left:0;margin-right:12px}.ant-page-header-rtl .ant-page-header-heading-extra>:first-child{margin-right:0}.ant-page-header-rtl .ant-page-header-footer .ant-tabs-bar .ant-tabs-nav{float:right}.ant-popconfirm{z-index:1060}.ant-progress{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-progress-line{font-size:14px;position:relative;width:100%}.ant-progress-steps{display:inline-block}.ant-progress-steps-outer{align-items:center;display:flex;flex-direction:row}.ant-progress-steps-item{background:#f3f3f3;flex-shrink:0;margin-right:2px;min-width:2px;transition:all .3s}.ant-progress-steps-item-active{background:#1890ff}.ant-progress-small.ant-progress-line,.ant-progress-small.ant-progress-line .ant-progress-text .anticon{font-size:12px}.ant-progress-outer{display:inline-block;margin-right:0;padding-right:0;width:100%}.ant-progress-show-info .ant-progress-outer{margin-right:calc(-2em - 8px);padding-right:calc(2em + 8px)}.ant-progress-inner{background-color:#f5f5f5;border-radius:100px;display:inline-block;overflow:hidden;position:relative;vertical-align:middle;width:100%}.ant-progress-circle-trail{stroke:#f5f5f5}.ant-progress-circle-path{animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}.ant-progress-bg,.ant-progress-success-bg{background-color:#1890ff;border-radius:100px;position:relative;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.ant-progress-success-bg{background-color:#52c41a;left:0;position:absolute;top:0}.ant-progress-text{color:rgba(0,0,0,.85);display:inline-block;font-size:1em;line-height:1;margin-left:8px;text-align:left;vertical-align:middle;white-space:nowrap;width:2em;word-break:normal}.ant-progress-text .anticon{font-size:14px}.ant-progress-status-active .ant-progress-bg:before{animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;background:#fff;border-radius:10px;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0}.ant-progress-status-exception .ant-progress-bg{background-color:#ff4d4f}.ant-progress-status-exception .ant-progress-text{color:#ff4d4f}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#ff4d4f}.ant-progress-status-success .ant-progress-bg{background-color:#52c41a}.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#52c41a}.ant-progress-circle .ant-progress-inner{background-color:initial;line-height:1;position:relative}.ant-progress-circle .ant-progress-text{color:rgba(0,0,0,.85);font-size:1em;left:50%;line-height:1;margin:0;padding:0;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);white-space:normal;width:100%}.ant-progress-circle .ant-progress-text .anticon{font-size:1.16666667em}.ant-progress-circle.ant-progress-status-exception .ant-progress-text{color:#ff4d4f}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:#52c41a}@keyframes ant-progress-active{0%{opacity:.1;transform:translateX(-100%) scaleX(0)}20%{opacity:.5;transform:translateX(-100%) scaleX(0)}to{opacity:0;transform:translateX(0) scaleX(1)}}.ant-progress-rtl{direction:rtl}.ant-progress-rtl.ant-progress-show-info .ant-progress-outer{margin-left:calc(-2em - 8px);margin-right:0;padding-left:calc(2em + 8px);padding-right:0}.ant-progress-rtl .ant-progress-success-bg{left:auto;right:0}.ant-progress-rtl.ant-progress-line .ant-progress-text,.ant-progress-rtl.ant-progress-steps .ant-progress-text{margin-left:0;margin-right:8px;text-align:right}.ant-rate{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);color:#fadb14;display:inline-block;font-size:14px;font-size:20px;font-variant:tabular-nums;line-height:1.5715;line-height:inherit;list-style:none;margin:0;outline:none;padding:0}.ant-rate-disabled .ant-rate-star{cursor:default}.ant-rate-disabled .ant-rate-star>div:hover{transform:scale(1)}.ant-rate-star{color:inherit;cursor:pointer;display:inline-block;position:relative}.ant-rate-star:not(:last-child){margin-right:8px}.ant-rate-star>div{transition:all .3s,outline 0s}.ant-rate-star>div:hover{transform:scale(1.1)}.ant-rate-star>div:focus{outline:0}.ant-rate-star>div:focus-visible{outline:1px dashed #fadb14;transform:scale(1.1)}.ant-rate-star-first,.ant-rate-star-second{color:#f0f0f0;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-rate-star-first .anticon,.ant-rate-star-second .anticon{vertical-align:middle}.ant-rate-star-first{height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;width:50%}.ant-rate-star-half .ant-rate-star-first,.ant-rate-star-half .ant-rate-star-second{opacity:1}.ant-rate-star-full .ant-rate-star-second,.ant-rate-star-half .ant-rate-star-first{color:inherit}.ant-rate-text{display:inline-block;font-size:14px;margin:0 8px}.ant-rate-rtl{direction:rtl}.ant-rate-rtl .ant-rate-star:not(:last-child){margin-left:8px;margin-right:0}.ant-rate-rtl .ant-rate-star-first{left:auto;right:0}.ant-result{padding:48px 32px}.ant-result-success .ant-result-icon>.anticon{color:#52c41a}.ant-result-error .ant-result-icon>.anticon{color:#ff4d4f}.ant-result-info .ant-result-icon>.anticon{color:#1890ff}.ant-result-warning .ant-result-icon>.anticon{color:#faad14}.ant-result-image{height:295px;margin:auto;width:250px}.ant-result-icon{margin-bottom:24px;text-align:center}.ant-result-icon>.anticon{font-size:72px}.ant-result-title{color:rgba(0,0,0,.85);font-size:24px;line-height:1.8;text-align:center}.ant-result-subtitle{color:rgba(0,0,0,.45);font-size:14px;line-height:1.6;text-align:center}.ant-result-extra{margin:24px 0 0;text-align:center}.ant-result-extra>*{margin-right:8px}.ant-result-extra>:last-child{margin-right:0}.ant-result-content{background-color:#fafafa;margin-top:24px;padding:24px 40px}.ant-result-rtl{direction:rtl}.ant-result-rtl .ant-result-extra>*{margin-left:8px;margin-right:0}.ant-result-rtl .ant-result-extra>:last-child{margin-left:0}.segmented-disabled-item,.segmented-disabled-item:focus,.segmented-disabled-item:hover{color:rgba(0,0,0,.25);cursor:not-allowed}.segmented-item-selected{background-color:#fff;border-radius:2px;box-shadow:0 2px 8px -2px rgba(0,0,0,.05),0 1px 4px -1px rgba(0,0,0,.07),0 0 1px 0 rgba(0,0,0,.08)}.segmented-text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.ant-segmented{font-feature-settings:"tnum","tnum";background-color:rgba(0,0,0,.04);border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);color:rgba(0,0,0,.65);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:2px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-segmented-group{align-items:stretch;display:flex;justify-items:flex-start;position:relative;width:100%}.ant-segmented.ant-segmented-block{display:flex}.ant-segmented.ant-segmented-block .ant-segmented-item{flex:1 1;min-width:0}.ant-segmented:not(.ant-segmented-disabled):focus,.ant-segmented:not(.ant-segmented-disabled):hover{background-color:rgba(0,0,0,.06)}.ant-segmented-item{cursor:pointer;position:relative;text-align:center;transition:color .3s cubic-bezier(.645,.045,.355,1)}.ant-segmented-item-selected{background-color:#fff;border-radius:2px;box-shadow:0 2px 8px -2px rgba(0,0,0,.05),0 1px 4px -1px rgba(0,0,0,.07),0 0 1px 0 rgba(0,0,0,.08);color:#262626}.ant-segmented-item:focus,.ant-segmented-item:hover{color:#262626}.ant-segmented-item-label{line-height:28px;min-height:28px;overflow:hidden;padding:0 11px;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.ant-segmented-item-icon+*{margin-left:6px}.ant-segmented-item-input{height:0;left:0;opacity:0;pointer-events:none;position:absolute;top:0;width:0}.ant-segmented.ant-segmented-lg .ant-segmented-item-label{font-size:16px;line-height:36px;min-height:36px;padding:0 11px}.ant-segmented.ant-segmented-sm .ant-segmented-item-label{line-height:20px;min-height:20px;padding:0 7px}.ant-segmented-item-disabled,.ant-segmented-item-disabled:focus,.ant-segmented-item-disabled:hover{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-segmented-thumb{background-color:#fff;border-radius:2px;box-shadow:0 2px 8px -2px rgba(0,0,0,.05),0 1px 4px -1px rgba(0,0,0,.07),0 0 1px 0 rgba(0,0,0,.08);height:100%;left:0;padding:4px 0;position:absolute;top:0;width:0}.ant-segmented-thumb-motion-appear-active{transition:transform .3s cubic-bezier(.645,.045,.355,1),width .3s cubic-bezier(.645,.045,.355,1);will-change:transform,width}.ant-segmented.ant-segmented-rtl{direction:rtl}.ant-segmented.ant-segmented-rtl .ant-segmented-item-icon{margin-left:6px;margin-right:0}.ant-slider{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;height:12px;line-height:1.5715;list-style:none;margin:10px 6px;padding:4px 0;position:relative;touch-action:none}.ant-slider-vertical{height:100%;margin:6px 10px;padding:0 4px;width:12px}.ant-slider-vertical .ant-slider-rail{height:100%;width:4px}.ant-slider-vertical .ant-slider-track{width:4px}.ant-slider-vertical .ant-slider-handle{margin-left:-5px;margin-top:-6px}.ant-slider-vertical .ant-slider-mark{height:100%;left:12px;top:0;width:18px}.ant-slider-vertical .ant-slider-mark-text{left:4px;white-space:nowrap}.ant-slider-vertical .ant-slider-step{height:100%;width:4px}.ant-slider-vertical .ant-slider-dot{margin-left:-2px;top:auto}.ant-slider-tooltip .ant-tooltip-inner{min-width:0;min-width:auto}.ant-slider-rtl.ant-slider-vertical .ant-slider-handle{margin-left:0;margin-right:-5px}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark{left:auto;right:12px}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark-text{left:auto;right:4px}.ant-slider-rtl.ant-slider-vertical .ant-slider-dot{left:auto;right:2px}.ant-slider-with-marks{margin-bottom:28px}.ant-slider-rail{background-color:#f5f5f5;width:100%}.ant-slider-rail,.ant-slider-track{border-radius:2px;height:4px;position:absolute;transition:background-color .3s}.ant-slider-track{background-color:#91d5ff}.ant-slider-handle{background-color:#fff;border:2px solid #91d5ff;border-radius:50%;box-shadow:0;cursor:pointer;height:14px;margin-top:-5px;position:absolute;transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28);width:14px}.ant-slider-handle-dragging{z-index:1}.ant-slider-handle:focus{border-color:#46a6ff;box-shadow:0 0 0 5px rgba(24,144,255,.12);outline:none}.ant-slider-handle.ant-tooltip-open{border-color:#1890ff}.ant-slider-handle:after{bottom:-6px;content:"";left:-6px;position:absolute;right:-6px;top:-6px}.ant-slider:hover .ant-slider-rail{background-color:#e1e1e1}.ant-slider:hover .ant-slider-track{background-color:#69c0ff}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:#69c0ff}.ant-slider-mark{font-size:14px;left:0;position:absolute;top:14px;width:100%}.ant-slider-mark-text{color:rgba(0,0,0,.45);cursor:pointer;display:inline-block;position:absolute;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;word-break:keep-all}.ant-slider-mark-text-active{color:rgba(0,0,0,.85)}.ant-slider-step{background:transparent;height:4px;pointer-events:none;position:absolute;width:100%}.ant-slider-dot{background-color:#fff;border:2px solid #f0f0f0;border-radius:50%;cursor:pointer;height:8px;position:absolute;top:-2px;width:8px}.ant-slider-dot-active{border-color:#8cc8ff}.ant-slider-disabled{cursor:not-allowed}.ant-slider-disabled .ant-slider-rail{background-color:#f5f5f5!important}.ant-slider-disabled .ant-slider-track{background-color:rgba(0,0,0,.25)!important}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-handle{background-color:#fff;border-color:rgba(0,0,0,.25)!important;box-shadow:none;cursor:not-allowed}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-mark-text{cursor:not-allowed!important}.ant-slider-rtl{direction:rtl}.ant-slider-rtl .ant-slider-mark{left:auto;right:0}.ant-statistic{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-statistic-title{color:rgba(0,0,0,.45);font-size:14px;margin-bottom:4px}.ant-statistic-skeleton{padding-top:16px}.ant-statistic-content{color:rgba(0,0,0,.85);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:24px}.ant-statistic-content-value{direction:ltr;display:inline-block}.ant-statistic-content-prefix,.ant-statistic-content-suffix{display:inline-block}.ant-statistic-content-prefix{margin-right:4px}.ant-statistic-content-suffix{margin-left:4px}.ant-statistic-rtl{direction:rtl}.ant-statistic-rtl .ant-statistic-content-prefix{margin-left:4px;margin-right:0}.ant-statistic-rtl .ant-statistic-content-suffix{margin-left:0;margin-right:4px}.ant-steps{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:flex;font-size:14px;font-size:0;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;text-align:left;text-align:initial;width:100%}.ant-steps-item{display:inline-block;flex:1 1;overflow:hidden;position:relative;vertical-align:top}.ant-steps-item-container{outline:none}.ant-steps-item:last-child{flex:none}.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after,.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-tail{display:none}.ant-steps-item-content,.ant-steps-item-icon{display:inline-block;vertical-align:top}.ant-steps-item-icon{border:1px solid rgba(0,0,0,.25);border-radius:32px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:16px;height:32px;line-height:32px;margin:0 8px 0 0;text-align:center;transition:background-color .3s,border-color .3s;width:32px}.ant-steps-item-icon .ant-steps-icon{color:#1890ff;line-height:1;position:relative;top:-.5px}.ant-steps-item-tail{left:0;padding:0 10px;position:absolute;top:12px;width:100%}.ant-steps-item-tail:after{background:#f0f0f0;border-radius:1px;content:"";display:inline-block;height:1px;transition:background .3s;width:100%}.ant-steps-item-title{color:rgba(0,0,0,.85);display:inline-block;font-size:16px;line-height:32px;padding-right:16px;position:relative}.ant-steps-item-title:after{background:#f0f0f0;content:"";display:block;height:1px;left:100%;position:absolute;top:16px;width:9999px}.ant-steps-item-subtitle{display:inline;font-weight:400;margin-left:8px}.ant-steps-item-description,.ant-steps-item-subtitle{color:rgba(0,0,0,.45);font-size:14px}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff;border-color:rgba(0,0,0,.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:rgba(0,0,0,.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:rgba(0,0,0,.25)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item-process .ant-steps-item-icon{background-color:#fff;border-color:#1890ff}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon{background:#1890ff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon .ant-steps-icon{color:#fff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-title{font-weight:500}.ant-steps-item-finish .ant-steps-item-icon{background-color:#fff;border-color:#1890ff}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.85)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#1890ff}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.45)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#1890ff}.ant-steps-item-error .ant-steps-item-icon{background-color:#fff;border-color:#ff4d4f}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon{color:#ff4d4f}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#ff4d4f}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#ff4d4f}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#ff4d4f}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item.ant-steps-next-error .ant-steps-item-title:after{background:#ff4d4f}.ant-steps-item-disabled{cursor:not-allowed}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]{cursor:pointer}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-icon .ant-steps-icon,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-title{transition:color .3s}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#1890ff}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#1890ff}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#1890ff}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:16px;white-space:nowrap}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title{padding-right:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-tail{display:none}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description{max-width:140px;white-space:normal}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon{background:none;border:0;height:auto}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon>.ant-steps-icon{font-size:24px;height:32px;left:.5px;line-height:32px;top:0;width:32px}.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}.ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon{background:none;width:auto}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:12px}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left:0}.ant-steps-small .ant-steps-item-icon{border-radius:24px;font-size:12px;height:24px;line-height:24px;margin:0 8px 0 0;text-align:center;width:24px}.ant-steps-small .ant-steps-item-title{font-size:14px;line-height:24px;padding-right:12px}.ant-steps-small .ant-steps-item-title:after{top:12px}.ant-steps-small .ant-steps-item-description{color:rgba(0,0,0,.45);font-size:14px}.ant-steps-small .ant-steps-item-tail{top:8px}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon{background:none;border:0;border-radius:0;height:inherit;line-height:inherit;width:inherit}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{font-size:24px;line-height:24px;transform:none}.ant-steps-vertical{display:flex;flex-direction:column}.ant-steps-vertical>.ant-steps-item{display:block;flex:1 0 auto;overflow:visible;padding-left:0}.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:left;margin-right:16px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-content{display:block;min-height:48px;overflow:hidden}.ant-steps-vertical>.ant-steps-item .ant-steps-item-title{line-height:32px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-description{padding-bottom:12px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{height:100%;left:15px;padding:38px 0 6px;position:absolute;top:0;width:1px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail:after{height:100%;width:1px}.ant-steps-vertical>.ant-steps-item:not(:last-child)>.ant-steps-item-container>.ant-steps-item-tail{display:block}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{display:none}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{left:11px;padding:30px 0 6px;position:absolute;top:0}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}.ant-steps-label-vertical .ant-steps-item{overflow:visible}.ant-steps-label-vertical .ant-steps-item-tail{margin-left:58px;padding:3.5px 24px}.ant-steps-label-vertical .ant-steps-item-content{display:block;margin-top:8px;text-align:center;width:116px}.ant-steps-label-vertical .ant-steps-item-icon{display:inline-block;margin-left:42px}.ant-steps-label-vertical .ant-steps-item-title{padding-left:0;padding-right:0}.ant-steps-label-vertical .ant-steps-item-title:after{display:none}.ant-steps-label-vertical .ant-steps-item-subtitle{display:block;line-height:1.5715;margin-bottom:4px;margin-left:0}.ant-steps-label-vertical.ant-steps-small:not(.ant-steps-dot) .ant-steps-item-icon{margin-left:46px}.ant-steps-dot .ant-steps-item-title,.ant-steps-dot.ant-steps-small .ant-steps-item-title{line-height:1.5715}.ant-steps-dot .ant-steps-item-tail,.ant-steps-dot.ant-steps-small .ant-steps-item-tail{margin:0 0 0 70px;padding:0;top:2px;width:100%}.ant-steps-dot .ant-steps-item-tail:after,.ant-steps-dot.ant-steps-small .ant-steps-item-tail:after{height:3px;margin-left:12px;width:calc(100% - 20px)}.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot{left:2px}.ant-steps-dot .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-icon{background:transparent;border:0;height:8px;line-height:8px;margin-left:67px;padding-right:0;width:8px}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{border-radius:100px;float:left;height:100%;position:relative;transition:all .3s;width:100%}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot:after{background:rgba(0,0,0,.001);content:"";height:32px;left:-26px;position:absolute;top:-12px;width:60px}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon{background:none;height:10px;line-height:10px;position:relative;top:-1px;width:10px}.ant-steps-dot .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{background:none;margin-left:0;margin-top:13px}.ant-steps-vertical.ant-steps-dot .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{left:-9px;margin:0;padding:22px 0 4px;top:6.5px}.ant-steps-vertical.ant-steps-dot.ant-steps-small .ant-steps-item-icon{margin-top:10px}.ant-steps-vertical.ant-steps-dot.ant-steps-small .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{top:3.5px}.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-content{width:inherit}.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-item-container .ant-steps-item-icon .ant-steps-icon-dot{left:-1px;top:-1px}.ant-steps-navigation{padding-top:12px}.ant-steps-navigation.ant-steps-small .ant-steps-item-container{margin-left:-12px}.ant-steps-navigation .ant-steps-item{overflow:visible;text-align:center}.ant-steps-navigation .ant-steps-item-container{display:inline-block;height:100%;margin-left:-16px;padding-bottom:12px;text-align:left;transition:opacity .3s}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content{max-width:auto}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title{max-width:100%;overflow:hidden;padding-right:0;text-overflow:ellipsis;white-space:nowrap}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title:after{display:none}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]{cursor:pointer}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]:hover{opacity:.85}.ant-steps-navigation .ant-steps-item:last-child{flex:1 1}.ant-steps-navigation .ant-steps-item:last-child:after{display:none}.ant-steps-navigation .ant-steps-item:after{border:1px solid rgba(0,0,0,.25);border-bottom:none;border-left:none;content:"";display:inline-block;height:12px;left:100%;margin-left:-2px;margin-top:-14px;position:absolute;top:50%;transform:rotate(45deg);width:12px}.ant-steps-navigation .ant-steps-item:before{background-color:#1890ff;bottom:0;content:"";display:inline-block;height:2px;left:50%;position:absolute;transition:width .3s,left .3s;transition-timing-function:ease-out;width:0}.ant-steps-navigation .ant-steps-item.ant-steps-item-active:before{left:0;width:100%}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item{margin-right:0!important}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item:before{display:none}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item.ant-steps-item-active:before{display:block;height:calc(100% - 24px);left:auto;right:0;top:0;width:3px}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item:after{display:block;height:8px;left:50%;margin-bottom:8px;position:relative;text-align:center;top:-2px;transform:rotate(135deg);width:8px}.ant-steps-navigation.ant-steps-horizontal>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail,.ant-steps-navigation.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{visibility:hidden}.ant-steps-rtl{direction:rtl}.ant-steps.ant-steps-rtl .ant-steps-item-icon{margin-left:8px;margin-right:0}.ant-steps-rtl .ant-steps-item-tail{left:auto;right:0}.ant-steps-rtl .ant-steps-item-title{padding-left:16px;padding-right:0}.ant-steps-rtl .ant-steps-item-title .ant-steps-item-subtitle{float:left;margin-left:0;margin-right:8px}.ant-steps-rtl .ant-steps-item-title:after{left:auto;right:100%}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:0;padding-right:16px}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title{padding-left:0}.ant-steps-rtl .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{left:auto;right:.5px}.ant-steps-rtl.ant-steps-navigation.ant-steps-small .ant-steps-item-container{margin-left:0;margin-right:-12px}.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container{margin-left:0;margin-right:-16px;text-align:right}.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title{padding-left:0}.ant-steps-rtl.ant-steps-navigation .ant-steps-item:after{left:auto;margin-left:0;margin-right:-2px;right:100%;transform:rotate(225deg)}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:0;padding-right:12px}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-small .ant-steps-item-title{padding-left:12px;padding-right:0}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:right;margin-left:16px;margin-right:0}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{left:auto;right:16px}.ant-steps-rtl.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{left:auto;right:12px}.ant-steps-rtl.ant-steps-label-vertical .ant-steps-item-title{padding-left:0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail{margin:0 70px 0 0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail:after,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail:after{margin-left:0;margin-right:12px}.ant-steps-rtl.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot{left:auto;right:2px}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon{margin-left:0;margin-right:67px}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{float:right}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot:after{left:auto;right:-26px}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{margin-left:16px;margin-right:0}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{left:auto;right:-9px}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot{left:auto;right:0}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-icon-dot{left:auto;right:-2px}.ant-steps-rtl.ant-steps-with-progress.ant-steps-vertical>.ant-steps-item{padding-right:4px}.ant-steps-rtl.ant-steps-with-progress.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{right:19px}.ant-steps-rtl.ant-steps-with-progress.ant-steps-small.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{right:15px}.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child{padding-left:0;padding-right:4px}.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child.ant-steps-item-active{padding-right:4px}.ant-steps-with-progress .ant-steps-item{padding-top:4px}.ant-steps-with-progress .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{left:19px;top:4px}.ant-steps-with-progress.ant-steps-horizontal .ant-steps-item:first-child,.ant-steps-with-progress.ant-steps-small.ant-steps-horizontal .ant-steps-item:first-child{padding-bottom:4px;padding-left:4px}.ant-steps-with-progress.ant-steps-small>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{left:15px}.ant-steps-with-progress.ant-steps-vertical .ant-steps-item{padding-left:4px}.ant-steps-with-progress.ant-steps-label-vertical .ant-steps-item .ant-steps-item-tail{top:14px!important}.ant-steps-with-progress .ant-steps-item-icon{position:relative}.ant-steps-with-progress .ant-steps-item-icon .ant-progress{bottom:-5px;left:-5px;position:absolute;right:-5px;top:-5px}.ant-switch{font-feature-settings:"tnum","tnum";background-color:rgba(0,0,0,.25);border:0;border-radius:100px;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;font-variant:tabular-nums;height:22px;line-height:1.5715;line-height:22px;list-style:none;margin:0;min-width:44px;padding:0;position:relative;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle}.ant-switch:focus{box-shadow:0 0 0 2px rgba(0,0,0,.1);outline:0}.ant-switch-checked:focus{box-shadow:0 0 0 2px #e6f7ff}.ant-switch:focus:hover{box-shadow:none}.ant-switch-checked{background-color:#1890ff}.ant-switch-disabled,.ant-switch-loading{cursor:not-allowed;opacity:.4}.ant-switch-disabled *,.ant-switch-loading *{box-shadow:none;cursor:not-allowed}.ant-switch-inner{color:#fff;display:block;font-size:12px;margin:0 7px 0 25px;transition:margin .2s}.ant-switch-checked .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-handle{height:18px;left:2px;top:2px;width:18px}.ant-switch-handle,.ant-switch-handle:before{position:absolute;transition:all .2s ease-in-out}.ant-switch-handle:before{background-color:#fff;border-radius:9px;bottom:0;box-shadow:0 2px 4px 0 rgba(0,35,11,.2);content:"";left:0;right:0;top:0}.ant-switch-checked .ant-switch-handle{left:calc(100% - 20px)}.ant-switch:not(.ant-switch-disabled):active .ant-switch-handle:before{left:0;right:-30%}.ant-switch:not(.ant-switch-disabled):active.ant-switch-checked .ant-switch-handle:before{left:-30%;right:0}.ant-switch-loading-icon.anticon{color:rgba(0,0,0,.65);position:relative;top:2px;vertical-align:top}.ant-switch-checked .ant-switch-loading-icon{color:#1890ff}.ant-switch-small{height:16px;line-height:16px;min-width:28px}.ant-switch-small .ant-switch-inner{font-size:12px;margin:0 5px 0 18px}.ant-switch-small .ant-switch-handle{height:12px;width:12px}.ant-switch-small .ant-switch-loading-icon{font-size:9px;top:1.5px}.ant-switch-small.ant-switch-checked .ant-switch-inner{margin:0 18px 0 5px}.ant-switch-small.ant-switch-checked .ant-switch-handle{left:calc(100% - 14px)}.ant-switch-rtl{direction:rtl}.ant-switch-rtl .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-rtl .ant-switch-handle{left:auto;right:2px}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active .ant-switch-handle:before{left:-30%;right:0}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active.ant-switch-checked .ant-switch-handle:before{left:0;right:-30%}.ant-switch-rtl.ant-switch-checked .ant-switch-inner{margin:0 7px 0 25px}.ant-switch-rtl.ant-switch-checked .ant-switch-handle{right:calc(100% - 20px)}.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-handle{right:calc(100% - 14px)}.ant-table.ant-table-middle{font-size:14px}.ant-table.ant-table-middle .ant-table-footer,.ant-table.ant-table-middle .ant-table-tbody>tr>td,.ant-table.ant-table-middle .ant-table-thead>tr>th,.ant-table.ant-table-middle .ant-table-title,.ant-table.ant-table-middle tfoot>tr>td,.ant-table.ant-table-middle tfoot>tr>th{padding:12px 8px}.ant-table.ant-table-middle .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-middle .ant-table-expanded-row-fixed{margin:-12px -8px}.ant-table.ant-table-middle .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-12px -8px -12px 40px}.ant-table.ant-table-middle .ant-table-selection-column{padding-inline-start:2px}.ant-table.ant-table-small{font-size:14px}.ant-table.ant-table-small .ant-table-footer,.ant-table.ant-table-small .ant-table-tbody>tr>td,.ant-table.ant-table-small .ant-table-thead>tr>th,.ant-table.ant-table-small .ant-table-title,.ant-table.ant-table-small tfoot>tr>td,.ant-table.ant-table-small tfoot>tr>th{padding:8px}.ant-table.ant-table-small .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-small .ant-table-expanded-row-fixed{margin:-8px}.ant-table.ant-table-small .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-8px -8px -8px 40px}.ant-table.ant-table-small .ant-table-selection-column{padding-inline-start:2px}.ant-table.ant-table-bordered>.ant-table-title{border:1px solid #f0f0f0;border-bottom:0}.ant-table.ant-table-bordered>.ant-table-container{border-left:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr:not(:last-child)>th{border-bottom:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th:before{background-color:initial!important}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>.ant-table-cell-fix-right-first:after{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-16px -17px}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed:after{border-right:1px solid #f0f0f0;bottom:0;content:"";position:absolute;right:1px;top:0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table{border-top:1px solid #f0f0f0}.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.ant-table-body>table>tbody>tr.ant-table-expanded-row>td,.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.ant-table-body>table>tbody>tr.ant-table-placeholder>td{border-right:0}.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-12px -9px}.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-8px -9px}.ant-table.ant-table-bordered>.ant-table-footer{border:1px solid #f0f0f0;border-top:0}.ant-table-cell .ant-table-container:first-child{border-top:0}.ant-table-cell-scrollbar:not([rowspan]){box-shadow:0 1px 0 1px #fafafa}.ant-table-wrapper{clear:both;max-width:100%}.ant-table-wrapper:before{content:"";display:table}.ant-table-wrapper:after{clear:both;content:"";display:table}.ant-table{font-feature-settings:"tnum","tnum";background:#fff;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-table table{border-collapse:initial;border-radius:2px 2px 0 0;border-spacing:0;text-align:left;width:100%}.ant-table tfoot>tr>td,.ant-table tfoot>tr>th,.ant-table-tbody>tr>td,.ant-table-thead>tr>th{overflow-wrap:break-word;padding:16px;position:relative}.ant-table-cell-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first{overflow:visible}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last .ant-table-cell-content,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first .ant-table-cell-content{display:block;overflow:hidden;text-overflow:ellipsis}.ant-table-cell-ellipsis .ant-table-column-title{overflow:hidden;text-overflow:ellipsis;word-break:keep-all}.ant-table-title{padding:16px}.ant-table-footer{background:#fafafa;color:rgba(0,0,0,.85);padding:16px}.ant-table-thead>tr>th{background:#fafafa;border-bottom:1px solid #f0f0f0;color:rgba(0,0,0,.85);font-weight:500;position:relative;text-align:left;transition:background .3s ease}.ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-thead>tr>th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan]):before{background-color:rgba(0,0,0,.06);content:"";height:1.6em;position:absolute;right:0;top:50%;transform:translateY(-50%);transition:background-color .3s;width:1px}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0;transition:background .3s}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table{margin:-16px -16px -16px 32px}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td{border-bottom:0}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child{border-radius:0}.ant-table-tbody>tr.ant-table-row:hover>td,.ant-table-tbody>tr>td.ant-table-cell-row-hover{background:#fafafa}.ant-table-tbody>tr.ant-table-row-selected>td{background:#e6f7ff;border-color:rgba(0,0,0,.03)}.ant-table-tbody>tr.ant-table-row-selected:hover>td{background:#dcf4ff}.ant-table-summary{background:#fff;position:relative;z-index:2}div.ant-table-summary{box-shadow:0 -1px 0 #f0f0f0}.ant-table-summary>tr>td,.ant-table-summary>tr>th{border-bottom:1px solid #f0f0f0}.ant-table-pagination.ant-pagination{margin:16px 0}.ant-table-pagination{display:flex;flex-wrap:wrap;row-gap:8px}.ant-table-pagination>*{flex:none}.ant-table-pagination-left{justify-content:flex-start}.ant-table-pagination-center{justify-content:center}.ant-table-pagination-right{justify-content:flex-end}.ant-table-thead th.ant-table-column-has-sorters{cursor:pointer;outline:none;transition:all .3s}.ant-table-thead th.ant-table-column-has-sorters:hover{background:rgba(0,0,0,.04)}.ant-table-thead th.ant-table-column-has-sorters:hover:before{background-color:initial!important}.ant-table-thead th.ant-table-column-has-sorters:focus-visible{color:#1890ff}.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-left:hover,.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-right:hover,.ant-table-thead th.ant-table-column-sort{background:#f5f5f5}.ant-table-thead th.ant-table-column-sort:before{background-color:initial!important}td.ant-table-column-sort{background:#fafafa}.ant-table-column-title{flex:1 1;position:relative;z-index:1}.ant-table-column-sorters{align-items:center;display:flex;flex:auto;justify-content:space-between}.ant-table-column-sorters:after{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;top:0;width:100%}.ant-table-column-sorter{color:#bfbfbf;font-size:0;margin-left:4px;transition:color .3s}.ant-table-column-sorter-inner{align-items:center;display:inline-flex;flex-direction:column}.ant-table-column-sorter-down,.ant-table-column-sorter-up{font-size:11px}.ant-table-column-sorter-down.active,.ant-table-column-sorter-up.active{color:#1890ff}.ant-table-column-sorter-up+.ant-table-column-sorter-down{margin-top:-.3em}.ant-table-column-sorters:hover .ant-table-column-sorter{color:#a6a6a6}.ant-table-filter-column{display:flex;justify-content:space-between}.ant-table-filter-trigger{align-items:center;border-radius:2px;color:#bfbfbf;cursor:pointer;display:flex;font-size:12px;margin:-4px -8px -4px 4px;padding:0 4px;position:relative;transition:all .3s}.ant-table-filter-trigger:hover{background:rgba(0,0,0,.04);color:rgba(0,0,0,.45)}.ant-table-filter-trigger.active{color:#1890ff}.ant-table-filter-dropdown{font-feature-settings:"tnum","tnum";background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;min-width:120px;padding:0}.ant-table-filter-dropdown .ant-dropdown-menu{border:0;box-shadow:none;max-height:264px;overflow-x:hidden}.ant-table-filter-dropdown .ant-dropdown-menu:empty:after{color:rgba(0,0,0,.25);content:"Not Found";display:block;font-size:12px;padding:8px 0;text-align:center}.ant-table-filter-dropdown-tree{padding:8px 8px 0}.ant-table-filter-dropdown-tree .ant-tree-treenode .ant-tree-node-content-wrapper:hover{background-color:#f5f5f5}.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper,.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper:hover{background-color:#bae7ff}.ant-table-filter-dropdown-search{border-bottom:1px solid #f0f0f0;padding:8px}.ant-table-filter-dropdown-search-input input{min-width:140px}.ant-table-filter-dropdown-search-input .anticon{color:rgba(0,0,0,.25)}.ant-table-filter-dropdown-checkall{margin-bottom:4px;margin-left:4px;width:100%}.ant-table-filter-dropdown-submenu>ul{max-height:calc(100vh - 130px);overflow-x:hidden;overflow-y:auto}.ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span{padding-left:8px}.ant-table-filter-dropdown-btns{background-color:inherit;border-top:1px solid #f0f0f0;display:flex;justify-content:space-between;overflow:hidden;padding:7px 8px}.ant-table-selection-col{width:32px}.ant-table-bordered .ant-table-selection-col{width:50px}table tr td.ant-table-selection-column,table tr th.ant-table-selection-column{padding-left:8px;padding-right:8px;text-align:center}table tr td.ant-table-selection-column .ant-radio-wrapper,table tr th.ant-table-selection-column .ant-radio-wrapper{margin-right:0}table tr th.ant-table-selection-column.ant-table-cell-fix-left{z-index:3}table tr th.ant-table-selection-column:after{background-color:initial!important}.ant-table-selection{display:inline-flex;flex-direction:column;position:relative}.ant-table-selection-extra{cursor:pointer;margin-inline-start:100%;padding-inline-start:4px;position:absolute;top:0;transition:all .3s;z-index:1}.ant-table-selection-extra .anticon{color:#bfbfbf;font-size:10px}.ant-table-selection-extra .anticon:hover{color:#a6a6a6}.ant-table-expand-icon-col{width:48px}.ant-table-row-expand-icon-cell{text-align:center}.ant-table-row-expand-icon-cell .ant-table-row-expand-icon{display:inline-flex;float:none;vertical-align:sub}.ant-table-row-indent{float:left;height:1px}.ant-table-row-expand-icon{background:#fff;border:1px solid #f0f0f0;border-radius:2px;box-sizing:border-box;color:#1890ff;color:inherit;cursor:pointer;float:left;height:17px;line-height:17px;outline:none;padding:0;position:relative;transform:scale(.94117647);transition:color .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:17px}.ant-table-row-expand-icon:focus-visible,.ant-table-row-expand-icon:hover{color:#40a9ff}.ant-table-row-expand-icon:active{color:#096dd9}.ant-table-row-expand-icon:active,.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{border-color:currentcolor}.ant-table-row-expand-icon:after,.ant-table-row-expand-icon:before{background:currentcolor;content:"";position:absolute;transition:transform .3s ease-out}.ant-table-row-expand-icon:before{height:1px;left:3px;right:3px;top:7px}.ant-table-row-expand-icon:after{bottom:3px;left:7px;top:3px;transform:rotate(90deg);width:1px}.ant-table-row-expand-icon-collapsed:before{transform:rotate(-180deg)}.ant-table-row-expand-icon-collapsed:after{transform:rotate(0deg)}.ant-table-row-expand-icon-spaced{background:transparent;border:0;visibility:hidden}.ant-table-row-expand-icon-spaced:after,.ant-table-row-expand-icon-spaced:before{content:none;display:none}.ant-table-row-indent+.ant-table-row-expand-icon{margin-right:8px;margin-top:2.5005px}tr.ant-table-expanded-row:hover>td,tr.ant-table-expanded-row>td{background:#fbfbfb}tr.ant-table-expanded-row .ant-descriptions-view{display:flex}tr.ant-table-expanded-row .ant-descriptions-view table{flex:auto;width:auto}.ant-table .ant-table-expanded-row-fixed{margin:-16px;padding:16px;position:relative}.ant-table-tbody>tr.ant-table-placeholder{text-align:center}.ant-table-empty .ant-table-tbody>tr.ant-table-placeholder{color:rgba(0,0,0,.25)}.ant-table-tbody>tr.ant-table-placeholder:hover>td{background:#fff}.ant-table-cell-fix-left,.ant-table-cell-fix-right{background:#fff;position:sticky!important;z-index:2}.ant-table-cell-fix-left-first:after,.ant-table-cell-fix-left-last:after{bottom:-1px;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;width:30px}.ant-table-cell-fix-left-all:after{display:none}.ant-table-cell-fix-right-first:after,.ant-table-cell-fix-right-last:after{bottom:-1px;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;width:30px}.ant-table .ant-table-container:after,.ant-table .ant-table-container:before{bottom:0;content:"";pointer-events:none;position:absolute;top:0;transition:box-shadow .3s;width:30px;z-index:4}.ant-table .ant-table-container:before{left:0}.ant-table .ant-table-container:after{right:0}.ant-table-ping-left:not(.ant-table-has-fix-left)>.ant-table-container{position:relative}.ant-table-ping-left .ant-table-cell-fix-left-first:after,.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-left:not(.ant-table-has-fix-left)>.ant-table-container:before{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.15)}.ant-table-ping-left .ant-table-cell-fix-left-last:before{background-color:initial!important}.ant-table-ping-right:not(.ant-table-has-fix-right)>.ant-table-container{position:relative}.ant-table-ping-right .ant-table-cell-fix-right-first:after,.ant-table-ping-right .ant-table-cell-fix-right-last:after,.ant-table-ping-right:not(.ant-table-has-fix-right)>.ant-table-container:after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.15)}.ant-table-sticky-holder,.ant-table-sticky-scroll{background:#fff;position:sticky;z-index:3}.ant-table-sticky-scroll{align-items:center;border-top:1px solid #f0f0f0;bottom:0;display:flex;opacity:.6}.ant-table-sticky-scroll:hover{transform-origin:center bottom}.ant-table-sticky-scroll-bar{background-color:rgba(0,0,0,.35);border-radius:4px;height:8px}.ant-table-sticky-scroll-bar-active,.ant-table-sticky-scroll-bar:hover{background-color:rgba(0,0,0,.8)}@media (-ms-high-contrast:none){.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-right .ant-table-cell-fix-right-first:after{box-shadow:none!important}}.ant-table-title{border-radius:2px 2px 0 0}.ant-table-title+.ant-table-container{border-top-left-radius:0;border-top-right-radius:0}.ant-table-title+.ant-table-container table,.ant-table-title+.ant-table-container table>thead>tr:first-child th:first-child,.ant-table-title+.ant-table-container table>thead>tr:first-child th:last-child{border-radius:0}.ant-table-container{border-top-right-radius:2px}.ant-table-container,.ant-table-container table>thead>tr:first-child th:first-child{border-top-left-radius:2px}.ant-table-container table>thead>tr:first-child th:last-child{border-top-right-radius:2px}.ant-table-footer{border-radius:0 0 2px 2px}.ant-table-rtl,.ant-table-wrapper-rtl{direction:rtl}.ant-table-wrapper-rtl .ant-table table{text-align:right}.ant-table-wrapper-rtl .ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-wrapper-rtl .ant-table-thead>tr>th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan]):before{left:0;right:auto}.ant-table-wrapper-rtl .ant-table-thead>tr>th{text-align:right}.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table.ant-table-rtl{margin:-16px 33px -16px -16px}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-left{justify-content:flex-end}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-right{justify-content:flex-start}.ant-table-wrapper-rtl .ant-table-column-sorter{margin-left:0;margin-right:4px}.ant-table-wrapper-rtl .ant-table-filter-column-title{padding:16px 16px 16px 2.3em}.ant-table-rtl .ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column-title{padding:0 0 0 2.3em}.ant-table-wrapper-rtl .ant-table-filter-trigger{margin:-4px 4px -4px -8px}.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span{padding-left:0;padding-right:8px}.ant-table-wrapper-rtl .ant-table-selection{text-align:center}.ant-table-wrapper-rtl .ant-table-row-expand-icon,.ant-table-wrapper-rtl .ant-table-row-indent{float:right}.ant-table-wrapper-rtl .ant-table-row-indent+.ant-table-row-expand-icon{margin-left:8px;margin-right:0}.ant-table-wrapper-rtl .ant-table-row-expand-icon:after{transform:rotate(-90deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed:before{transform:rotate(180deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed:after{transform:rotate(0deg)}.ant-tree.ant-tree-directory .ant-tree-treenode{position:relative}.ant-tree.ant-tree-directory .ant-tree-treenode:before{bottom:4px;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;transition:background-color .3s}.ant-tree.ant-tree-directory .ant-tree-treenode:hover:before{background:#f5f5f5}.ant-tree.ant-tree-directory .ant-tree-treenode>*{z-index:1}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-switcher{transition:color .3s}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper{border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper:hover{background:transparent}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected{background:transparent;color:#fff}.ant-tree.ant-tree-directory .ant-tree-treenode-selected:before,.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover:before{background:#1890ff}.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-switcher{color:#fff}.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-node-content-wrapper{background:transparent;color:#fff}.ant-tree-checkbox{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .ant-tree-checkbox-inner{border-color:#1890ff}.ant-tree-checkbox-checked:after{animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;border:1px solid #1890ff;border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox:after,.ant-tree-checkbox:hover:after{visibility:visible}.ant-tree-checkbox-inner{background-color:#fff;border:1px solid #d9d9d9;border-collapse:initial;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-tree-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-tree-checkbox-disabled{cursor:not-allowed}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{animation-name:none;border-color:rgba(0,0,0,.25)}.ant-tree-checkbox-disabled .ant-tree-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{animation-name:none;border-collapse:initial;border-color:#f5f5f5}.ant-tree-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tree-checkbox-disabled:hover:after,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled:after{visibility:hidden}.ant-tree-checkbox-wrapper{font-feature-settings:"tnum","tnum";align-items:baseline;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:inherit;list-style:none;margin:0;padding:0}.ant-tree-checkbox-wrapper:after{content:"\a0";display:inline-block;overflow:hidden;width:0}.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-tree-checkbox-wrapper+.ant-tree-checkbox-wrapper{margin-left:8px}.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-in-form-item input[type=checkbox]{height:14px;width:14px}.ant-tree-checkbox+span{padding-left:8px;padding-right:8px}.ant-tree-checkbox-group{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-tree-checkbox-group-item{margin-right:8px}.ant-tree-checkbox-group-item:last-child{margin-right:0}.ant-tree-checkbox-group-item+.ant-tree-checkbox-group-item{margin-left:0}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner:after{background-color:#1890ff;border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-tree{font-feature-settings:"tnum","tnum";background:#fff;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;transition:background-color .3s}.ant-tree-focused:not(:hover):not(.ant-tree-active-focused){background:#e6f7ff}.ant-tree-list-holder-inner{align-items:flex-start}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner{align-items:stretch}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-node-content-wrapper{flex:auto}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging{position:relative}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging:after{animation:ant-tree-node-fx-do-not-use .3s;animation-fill-mode:forwards;animation-play-state:running;border:1px solid #1890ff;bottom:4px;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0}.ant-tree .ant-tree-treenode{align-items:flex-start;display:flex;outline:none;padding:0 0 4px}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper:hover{background:transparent}.ant-tree .ant-tree-treenode-active .ant-tree-node-content-wrapper{background:#f5f5f5}.ant-tree .ant-tree-treenode:not(.ant-tree .ant-tree-treenode-disabled).filter-node .ant-tree-title{color:inherit;font-weight:500}.ant-tree .ant-tree-treenode-draggable .ant-tree-draggable-icon{line-height:24px;opacity:.2;text-align:center;transition:opacity .3s;visibility:visible;width:24px}.ant-tree-treenode:hover .ant-tree .ant-tree-treenode-draggable .ant-tree-draggable-icon{opacity:.45}.ant-tree .ant-tree-treenode-draggable.ant-tree-treenode-disabled .ant-tree-draggable-icon{visibility:hidden}.ant-tree-indent{align-self:stretch;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.ant-tree-indent-unit{display:inline-block;width:24px}.ant-tree-draggable-icon{visibility:hidden}.ant-tree-switcher{align-self:stretch;cursor:pointer;flex:none;line-height:24px;margin:0;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:24px}.ant-tree-switcher .ant-select-tree-switcher-icon,.ant-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:initial}.ant-tree-switcher .ant-select-tree-switcher-icon svg,.ant-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-tree-switcher-noop{cursor:default}.ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-tree-switcher-loading-icon{color:#1890ff}.ant-tree-switcher-leaf-line{display:inline-block;height:100%;position:relative;width:100%;z-index:1}.ant-tree-switcher-leaf-line:before{border-right:1px solid #d9d9d9;bottom:-4px;content:" ";margin-left:-1px;position:absolute;right:12px;top:0}.ant-tree-switcher-leaf-line:after{border-bottom:1px solid #d9d9d9;content:" ";height:14px;position:absolute;width:10px}.ant-tree-checkbox{margin:4px 8px 0 0;top:auto}.ant-tree .ant-tree-node-content-wrapper{background:transparent;border-radius:2px;color:inherit;cursor:pointer;line-height:24px;margin:0;min-height:24px;padding:0 4px;position:relative;transition:all .3s,border 0s,line-height 0s,box-shadow 0s;z-index:auto}.ant-tree .ant-tree-node-content-wrapper:hover{background-color:#f5f5f5}.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:#bae7ff}.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle{display:inline-block;height:24px;line-height:24px;text-align:center;vertical-align:top;width:24px}.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle:empty{display:none}.ant-tree-unselectable .ant-tree-node-content-wrapper:hover{background-color:initial}.ant-tree-node-content-wrapper{line-height:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-tree-node-content-wrapper .ant-tree-drop-indicator{background-color:#1890ff;border-radius:1px;height:2px;pointer-events:none;position:absolute;z-index:1}.ant-tree-node-content-wrapper .ant-tree-drop-indicator:after{background-color:initial;border:2px solid #1890ff;border-radius:50%;content:"";height:8px;left:-6px;position:absolute;top:-3px;width:8px}.ant-tree .ant-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px #1890ff}.ant-tree-show-line .ant-tree-indent-unit{height:100%;position:relative}.ant-tree-show-line .ant-tree-indent-unit:before{border-right:1px solid #d9d9d9;bottom:-4px;content:"";position:absolute;right:12px;top:0}.ant-tree-show-line .ant-tree-indent-unit-end:before{display:none}.ant-tree-show-line .ant-tree-switcher{background:#fff}.ant-tree-show-line .ant-tree-switcher-line-icon{vertical-align:-.15em}.ant-tree .ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line:before{bottom:auto!important;height:14px!important;top:auto!important}.ant-tree-rtl{direction:rtl}.ant-tree-rtl .ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator:after{left:auto;right:-6px}.ant-tree .ant-tree-treenode-rtl{direction:rtl}.ant-tree-rtl .ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit:before{border-left:1px solid #d9d9d9;border-right:none;left:-13px;right:auto}.ant-tree-rtl .ant-tree-checkbox,.ant-tree-select-dropdown-rtl .ant-select-tree-checkbox{margin:4px 0 0 8px}.ant-timeline{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-timeline-item{font-size:14px;list-style:none;margin:0;padding-bottom:20px;position:relative}.ant-timeline-item-tail{border-left:2px solid #f0f0f0;height:calc(100% - 10px);left:4px;position:absolute;top:10px}.ant-timeline-item-pending .ant-timeline-item-head{background-color:initial;font-size:12px}.ant-timeline-item-pending .ant-timeline-item-tail{display:none}.ant-timeline-item-head{background-color:#fff;border:2px solid transparent;border-radius:100px;height:10px;position:absolute;width:10px}.ant-timeline-item-head-blue{border-color:#1890ff;color:#1890ff}.ant-timeline-item-head-red{border-color:#ff4d4f;color:#ff4d4f}.ant-timeline-item-head-green{border-color:#52c41a;color:#52c41a}.ant-timeline-item-head-gray{border-color:rgba(0,0,0,.25);color:rgba(0,0,0,.25)}.ant-timeline-item-head-custom{border:0;border-radius:0;height:auto;left:5px;line-height:1;margin-top:0;padding:3px 1px;position:absolute;text-align:center;top:5.5px;transform:translate(-50%,-50%);width:auto}.ant-timeline-item-content{margin:0 0 0 26px;position:relative;top:-7.001px;word-break:break-word}.ant-timeline-item-last>.ant-timeline-item-tail{display:none}.ant-timeline-item-last>.ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-tail{left:50%}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-left:-4px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom{margin-left:1px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content{left:calc(50% - 4px);text-align:left;width:calc(50% - 14px)}.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{margin:0;text-align:right;width:calc(50% - 12px)}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{left:calc(100% - 6px)}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{width:calc(100% - 18px)}.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail{border-left:2px dotted #f0f0f0;display:block;height:calc(100% - 14px)}.ant-timeline.ant-timeline-reverse .ant-timeline-item-last .ant-timeline-item-tail{display:none}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-left:2px dotted #f0f0f0;display:block;height:calc(100% - 15px);top:15px}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-label .ant-timeline-item-label{position:absolute;text-align:right;top:-7.001px;width:calc(50% - 12px)}.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label{left:calc(50% + 14px);text-align:left;width:calc(50% - 14px)}.ant-timeline-rtl{direction:rtl}.ant-timeline-rtl .ant-timeline-item-tail{border-left:none;border-right:2px solid #f0f0f0;left:auto;right:4px}.ant-timeline-rtl .ant-timeline-item-head-custom{left:auto;right:5px;transform:translate(50%,-50%)}.ant-timeline-rtl .ant-timeline-item-content{margin:0 18px 0 0}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-tail{left:auto;right:50%}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-left:0;margin-right:-4px}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom{margin-left:0;margin-right:1px}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content{left:auto;right:calc(50% - 4px);text-align:right}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{text-align:left}.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{left:auto;right:0}.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{margin-right:18px;text-align:right;width:100%}.ant-timeline-rtl.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-left:none;border-right:2px dotted #f0f0f0}.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-label{text-align:left}.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label{right:calc(50% + 14px);text-align:right}.ant-transfer-customize-list .ant-transfer-list{flex:1 1 50%;height:auto;min-height:200px;width:auto}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small{border:0;border-radius:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-selection-column{min-width:40px;width:40px}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th{background:#fafafa}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:1px solid #f0f0f0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-body{margin:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-pagination.ant-pagination{margin:16px 0 4px}.ant-transfer-customize-list .ant-input[disabled]{background-color:initial}.ant-transfer-status-error .ant-transfer-list{border-color:#ff4d4f}.ant-transfer-status-error .ant-transfer-list-search:not([disabled]){border-color:#d9d9d9}.ant-transfer-status-error .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff;border-right-width:1px}.ant-transfer-status-error .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-transfer-status-warning .ant-transfer-list{border-color:#faad14}.ant-transfer-status-warning .ant-transfer-list-search:not([disabled]){border-color:#d9d9d9}.ant-transfer-status-warning .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff;border-right-width:1px}.ant-transfer-status-warning .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-transfer{font-feature-settings:"tnum","tnum";align-items:stretch;box-sizing:border-box;color:rgba(0,0,0,.85);display:flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-transfer-disabled .ant-transfer-list{background:#f5f5f5}.ant-transfer-list{border:1px solid #d9d9d9;border-radius:2px;display:flex;flex-direction:column;height:200px;width:180px}.ant-transfer-list-with-pagination{height:auto;width:250px}.ant-transfer-list-search .anticon-search{color:rgba(0,0,0,.25)}.ant-transfer-list-header{align-items:center;background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0;color:rgba(0,0,0,.85);display:flex;flex:none;height:40px;padding:8px 12px 9px}.ant-transfer-list-header>:not(:last-child){margin-right:4px}.ant-transfer-list-header>*{flex:none}.ant-transfer-list-header-title{flex:auto;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.ant-transfer-list-header-dropdown{cursor:pointer;font-size:10px;transform:translateY(10%)}.ant-transfer-list-header-dropdown[disabled]{cursor:not-allowed}.ant-transfer-list-body{display:flex;flex:auto;flex-direction:column;font-size:14px;overflow:hidden}.ant-transfer-list-body-search-wrapper{flex:none;padding:12px;position:relative}.ant-transfer-list-content{flex:auto;list-style:none;margin:0;overflow:auto;padding:0}.ant-transfer-list-content-item{align-items:center;display:flex;line-height:20px;min-height:32px;padding:6px 12px;transition:all .3s}.ant-transfer-list-content-item>:not(:last-child){margin-right:8px}.ant-transfer-list-content-item>*{flex:none}.ant-transfer-list-content-item-text{flex:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-transfer-list-content-item-remove{color:#d9d9d9;cursor:pointer;position:relative;transition:all .3s}.ant-transfer-list-content-item-remove:hover{color:#40a9ff}.ant-transfer-list-content-item-remove:after{bottom:-6px;content:"";left:-50%;position:absolute;right:-50%;top:-6px}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:#f5f5f5;cursor:pointer}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled).ant-transfer-list-content-item-checked:hover{background-color:#dcf4ff}.ant-transfer-list-content-show-remove .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background:transparent;cursor:default}.ant-transfer-list-content-item-checked{background-color:#e6f7ff}.ant-transfer-list-content-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-transfer-list-pagination{border-top:1px solid #f0f0f0;padding:8px 0;text-align:right}.ant-transfer-list-body-not-found{color:rgba(0,0,0,.25);flex:none;margin:auto 0;text-align:center;width:100%}.ant-transfer-list-footer{border-top:1px solid #f0f0f0}.ant-transfer-operation{align-self:center;display:flex;flex:none;flex-direction:column;margin:0 8px;vertical-align:middle}.ant-transfer-operation .ant-btn{display:block}.ant-transfer-operation .ant-btn:first-child{margin-bottom:4px}.ant-transfer-operation .ant-btn .anticon{font-size:12px}.ant-transfer .ant-empty-image{max-height:-2px}.ant-transfer-rtl{direction:rtl}.ant-transfer-rtl .ant-transfer-list-search{padding-left:24px;padding-right:8px}.ant-transfer-rtl .ant-transfer-list-search-action{left:12px;right:auto}.ant-transfer-rtl .ant-transfer-list-header>:not(:last-child){margin-left:4px;margin-right:0}.ant-transfer-rtl .ant-transfer-list-header{left:auto;right:0}.ant-transfer-rtl .ant-transfer-list-header-title{text-align:left}.ant-transfer-rtl .ant-transfer-list-content-item>:not(:last-child){margin-left:8px;margin-right:0}.ant-transfer-rtl .ant-transfer-list-pagination{text-align:left}.ant-transfer-rtl .ant-transfer-list-footer{left:auto;right:0}@keyframes ant-tree-node-fx-do-not-use{0%{opacity:0}to{opacity:1}}@keyframes antCheckboxEffect{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.ant-select-tree-checkbox{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner{border-color:#1890ff}.ant-select-tree-checkbox-checked:after{animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;border:1px solid #1890ff;border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox:after,.ant-select-tree-checkbox:hover:after{visibility:visible}.ant-select-tree-checkbox-inner{background-color:#fff;border:1px solid #d9d9d9;border-collapse:initial;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-select-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-select-tree-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-select-tree-checkbox-disabled{cursor:not-allowed}.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{animation-name:none;border-color:rgba(0,0,0,.25)}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{animation-name:none;border-collapse:initial;border-color:#f5f5f5}.ant-select-tree-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-tree-checkbox-disabled:hover:after,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-disabled:after{visibility:hidden}.ant-select-tree-checkbox-wrapper{font-feature-settings:"tnum","tnum";align-items:baseline;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:inherit;list-style:none;margin:0;padding:0}.ant-select-tree-checkbox-wrapper:after{content:"\a0";display:inline-block;overflow:hidden;width:0}.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-select-tree-checkbox-wrapper+.ant-select-tree-checkbox-wrapper{margin-left:8px}.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-in-form-item input[type=checkbox]{height:14px;width:14px}.ant-select-tree-checkbox+span{padding-left:8px;padding-right:8px}.ant-select-tree-checkbox-group{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-select-tree-checkbox-group-item{margin-right:8px}.ant-select-tree-checkbox-group-item:last-child{margin-right:0}.ant-select-tree-checkbox-group-item+.ant-select-tree-checkbox-group-item{margin-left:0}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner:after{background-color:#1890ff;border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-tree-select-dropdown{padding:8px 4px}.ant-tree-select-dropdown-rtl{direction:rtl}.ant-tree-select-dropdown .ant-select-tree{border-radius:0}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner{align-items:stretch}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode .ant-select-tree-node-content-wrapper{flex:auto}.ant-select-tree{font-feature-settings:"tnum","tnum";background:#fff;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;transition:background-color .3s}.ant-select-tree-focused:not(:hover):not(.ant-select-tree-active-focused){background:#e6f7ff}.ant-select-tree-list-holder-inner{align-items:flex-start}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner{align-items:stretch}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-node-content-wrapper{flex:auto}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging{position:relative}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging:after{animation:ant-tree-node-fx-do-not-use .3s;animation-fill-mode:forwards;animation-play-state:running;border:1px solid #1890ff;bottom:4px;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0}.ant-select-tree .ant-select-tree-treenode{align-items:flex-start;display:flex;outline:none;padding:0 0 4px}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper:hover{background:transparent}.ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper{background:#f5f5f5}.ant-select-tree .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title{color:inherit;font-weight:500}.ant-select-tree .ant-select-tree-treenode-draggable .ant-select-tree-draggable-icon{line-height:24px;opacity:.2;text-align:center;transition:opacity .3s;visibility:visible;width:24px}.ant-select-tree-treenode:hover .ant-select-tree .ant-select-tree-treenode-draggable .ant-select-tree-draggable-icon{opacity:.45}.ant-select-tree .ant-select-tree-treenode-draggable.ant-select-tree-treenode-disabled .ant-select-tree-draggable-icon{visibility:hidden}.ant-select-tree-indent{align-self:stretch;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.ant-select-tree-indent-unit{display:inline-block;width:24px}.ant-select-tree-draggable-icon{visibility:hidden}.ant-select-tree-switcher{align-self:stretch;cursor:pointer;flex:none;line-height:24px;margin:0;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:24px}.ant-select-tree-switcher .ant-select-tree-switcher-icon,.ant-select-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:initial}.ant-select-tree-switcher .ant-select-tree-switcher-icon svg,.ant-select-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-select-tree-switcher-noop{cursor:default}.ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-select-tree-switcher-loading-icon{color:#1890ff}.ant-select-tree-switcher-leaf-line{display:inline-block;height:100%;position:relative;width:100%;z-index:1}.ant-select-tree-switcher-leaf-line:before{border-right:1px solid #d9d9d9;bottom:-4px;content:" ";margin-left:-1px;position:absolute;right:12px;top:0}.ant-select-tree-switcher-leaf-line:after{border-bottom:1px solid #d9d9d9;content:" ";height:14px;position:absolute;width:10px}.ant-select-tree-checkbox{margin:4px 8px 0 0;top:auto}.ant-select-tree .ant-select-tree-node-content-wrapper{background:transparent;border-radius:2px;color:inherit;cursor:pointer;line-height:24px;margin:0;min-height:24px;padding:0 4px;position:relative;transition:all .3s,border 0s,line-height 0s,box-shadow 0s;z-index:auto}.ant-select-tree .ant-select-tree-node-content-wrapper:hover{background-color:#f5f5f5}.ant-select-tree .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{background-color:#bae7ff}.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle{display:inline-block;height:24px;line-height:24px;text-align:center;vertical-align:top;width:24px}.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle:empty{display:none}.ant-select-tree-unselectable .ant-select-tree-node-content-wrapper:hover{background-color:initial}.ant-select-tree-node-content-wrapper{line-height:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator{background-color:#1890ff;border-radius:1px;height:2px;pointer-events:none;position:absolute;z-index:1}.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator:after{background-color:initial;border:2px solid #1890ff;border-radius:50%;content:"";height:8px;left:-6px;position:absolute;top:-3px;width:8px}.ant-select-tree .ant-select-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px #1890ff}.ant-select-tree-show-line .ant-select-tree-indent-unit{height:100%;position:relative}.ant-select-tree-show-line .ant-select-tree-indent-unit:before{border-right:1px solid #d9d9d9;bottom:-4px;content:"";position:absolute;right:12px;top:0}.ant-select-tree-show-line .ant-select-tree-indent-unit-end:before{display:none}.ant-select-tree-show-line .ant-select-tree-switcher{background:#fff}.ant-select-tree-show-line .ant-select-tree-switcher-line-icon{vertical-align:-.15em}.ant-select-tree .ant-select-tree-treenode-leaf-last .ant-select-tree-switcher-leaf-line:before{bottom:auto!important;height:14px!important;top:auto!important}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher-loading-icon{transform:scaleY(-1)}.ant-typography{color:rgba(0,0,0,.85);word-break:break-word}.ant-typography.ant-typography-secondary{color:rgba(0,0,0,.45)}.ant-typography.ant-typography-success{color:#52c41a}.ant-typography.ant-typography-warning{color:#faad14}.ant-typography.ant-typography-danger{color:#ff4d4f}a.ant-typography.ant-typography-danger:active,a.ant-typography.ant-typography-danger:focus{color:#d9363e}a.ant-typography.ant-typography-danger:hover{color:#ff7875}.ant-typography.ant-typography-disabled{color:rgba(0,0,0,.25);cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-typography p,div.ant-typography{margin-bottom:1em}.ant-typography h1,div.ant-typography-h1,div.ant-typography-h1>textarea,h1.ant-typography{color:rgba(0,0,0,.85);font-size:38px;font-weight:600;line-height:1.23;margin-bottom:.5em}.ant-typography h2,div.ant-typography-h2,div.ant-typography-h2>textarea,h2.ant-typography{color:rgba(0,0,0,.85);font-size:30px;font-weight:600;line-height:1.35;margin-bottom:.5em}.ant-typography h3,div.ant-typography-h3,div.ant-typography-h3>textarea,h3.ant-typography{color:rgba(0,0,0,.85);font-size:24px;font-weight:600;line-height:1.35;margin-bottom:.5em}.ant-typography h4,div.ant-typography-h4,div.ant-typography-h4>textarea,h4.ant-typography{color:rgba(0,0,0,.85);font-size:20px;font-weight:600;line-height:1.4;margin-bottom:.5em}.ant-typography h5,div.ant-typography-h5,div.ant-typography-h5>textarea,h5.ant-typography{color:rgba(0,0,0,.85);font-size:16px;font-weight:600;line-height:1.5;margin-bottom:.5em}.ant-typography div+h1,.ant-typography div+h2,.ant-typography div+h3,.ant-typography div+h4,.ant-typography div+h5,.ant-typography h1+h1,.ant-typography h1+h2,.ant-typography h1+h3,.ant-typography h1+h4,.ant-typography h1+h5,.ant-typography h2+h1,.ant-typography h2+h2,.ant-typography h2+h3,.ant-typography h2+h4,.ant-typography h2+h5,.ant-typography h3+h1,.ant-typography h3+h2,.ant-typography h3+h3,.ant-typography h3+h4,.ant-typography h3+h5,.ant-typography h4+h1,.ant-typography h4+h2,.ant-typography h4+h3,.ant-typography h4+h4,.ant-typography h4+h5,.ant-typography h5+h1,.ant-typography h5+h2,.ant-typography h5+h3,.ant-typography h5+h4,.ant-typography h5+h5,.ant-typography li+h1,.ant-typography li+h2,.ant-typography li+h3,.ant-typography li+h4,.ant-typography li+h5,.ant-typography p+h1,.ant-typography p+h2,.ant-typography p+h3,.ant-typography p+h4,.ant-typography p+h5,.ant-typography ul+h1,.ant-typography ul+h2,.ant-typography ul+h3,.ant-typography ul+h4,.ant-typography ul+h5,.ant-typography+h1.ant-typography,.ant-typography+h2.ant-typography,.ant-typography+h3.ant-typography,.ant-typography+h4.ant-typography,.ant-typography+h5.ant-typography{margin-top:1.2em}a.ant-typography-ellipsis,span.ant-typography-ellipsis{display:inline-block;max-width:100%}.ant-typography a,a.ant-typography{color:#1890ff;cursor:pointer;outline:none;text-decoration:none;transition:color .3s}.ant-typography a:focus-visible,.ant-typography a:hover,a.ant-typography:focus-visible,a.ant-typography:hover{color:#40a9ff}.ant-typography a:active,a.ant-typography:active{color:#096dd9}.ant-typography a:active,.ant-typography a:hover,a.ant-typography:active,a.ant-typography:hover{text-decoration:none}.ant-typography a.ant-typography-disabled,.ant-typography a[disabled],a.ant-typography.ant-typography-disabled,a.ant-typography[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-typography a.ant-typography-disabled:active,.ant-typography a.ant-typography-disabled:hover,.ant-typography a[disabled]:active,.ant-typography a[disabled]:hover,a.ant-typography.ant-typography-disabled:active,a.ant-typography.ant-typography-disabled:hover,a.ant-typography[disabled]:active,a.ant-typography[disabled]:hover{color:rgba(0,0,0,.25)}.ant-typography a.ant-typography-disabled:active,.ant-typography a[disabled]:active,a.ant-typography.ant-typography-disabled:active,a.ant-typography[disabled]:active{pointer-events:none}.ant-typography code{background:hsla(0,0%,59%,.1);border:1px solid hsla(0,0%,39%,.2);border-radius:3px;font-size:85%;margin:0 .2em;padding:.2em .4em .1em}.ant-typography kbd{background:hsla(0,0%,59%,.06);border:solid hsla(0,0%,39%,.2);border-radius:3px;border-width:1px 1px 2px;font-size:90%;margin:0 .2em;padding:.15em .4em .1em}.ant-typography mark{background-color:#ffe58f;padding:0}.ant-typography ins,.ant-typography u{-webkit-text-decoration-skip:ink;text-decoration:underline;text-decoration-skip-ink:auto}.ant-typography del,.ant-typography s{text-decoration:line-through}.ant-typography strong{font-weight:600}.ant-typography-copy,.ant-typography-edit,.ant-typography-expand{color:#1890ff;cursor:pointer;margin-left:4px;outline:none;transition:color .3s}.ant-typography-copy:focus-visible,.ant-typography-copy:hover,.ant-typography-edit:focus-visible,.ant-typography-edit:hover,.ant-typography-expand:focus-visible,.ant-typography-expand:hover{color:#40a9ff}.ant-typography-copy:active,.ant-typography-edit:active,.ant-typography-expand:active{color:#096dd9}.ant-typography-copy-success,.ant-typography-copy-success:focus,.ant-typography-copy-success:hover{color:#52c41a}.ant-typography-edit-content{position:relative}div.ant-typography-edit-content{left:-12px;margin-bottom:calc(1em - 5px);margin-top:-5px}.ant-typography-edit-content-confirm{bottom:8px;color:rgba(0,0,0,.45);font-size:14px;font-style:normal;font-weight:400;pointer-events:none;position:absolute;right:10px}.ant-typography-edit-content textarea{height:1em;margin:0!important;-moz-transition:none}.ant-typography ol,.ant-typography ul{margin:0 0 1em;padding:0}.ant-typography ol li,.ant-typography ul li{margin:0 0 0 20px;padding:0 0 0 4px}.ant-typography ul{list-style-type:circle}.ant-typography ul ul{list-style-type:disc}.ant-typography ol{list-style-type:decimal}.ant-typography blockquote,.ant-typography pre{margin:1em 0}.ant-typography pre{word-wrap:break-word;background:hsla(0,0%,59%,.1);border:1px solid hsla(0,0%,39%,.2);border-radius:3px;padding:.4em .6em;white-space:pre-wrap}.ant-typography pre code{background:transparent;border:0;display:inline;font-family:inherit;font-size:inherit;margin:0;padding:0}.ant-typography blockquote{border-left:4px solid hsla(0,0%,39%,.2);opacity:.85;padding:0 0 0 .6em}.ant-typography-single-line{white-space:nowrap}.ant-typography-ellipsis-single-line{overflow:hidden;text-overflow:ellipsis}a.ant-typography-ellipsis-single-line,span.ant-typography-ellipsis-single-line{vertical-align:bottom}.ant-typography-ellipsis-multiple-line{-webkit-line-clamp:3; - /*! autoprefixer: ignore next */-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ant-typography-rtl{direction:rtl}.ant-typography-rtl .ant-typography-copy,.ant-typography-rtl .ant-typography-edit,.ant-typography-rtl .ant-typography-expand{margin-left:0;margin-right:4px}.ant-typography-rtl .ant-typography-expand{float:left}div.ant-typography-edit-content.ant-typography-rtl{left:auto;right:-12px}.ant-typography-rtl .ant-typography-edit-content-confirm{left:10px;right:auto}.ant-typography-rtl.ant-typography ol li,.ant-typography-rtl.ant-typography ul li{margin:0 20px 0 0;padding:0 4px 0 0}.ant-upload{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;outline:0;padding:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;outline:none;width:100%}.ant-upload input[type=file]{cursor:pointer}.ant-upload.ant-upload-select{display:inline-block}.ant-upload.ant-upload-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-upload.ant-upload-select-picture-card{background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;height:104px;margin-bottom:8px;margin-right:8px;text-align:center;transition:border-color .3s;vertical-align:top;width:104px}.ant-upload.ant-upload-select-picture-card>.ant-upload{align-items:center;display:flex;height:100%;justify-content:center;text-align:center}.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover{border-color:#d9d9d9}.ant-upload.ant-upload-drag{background:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;height:100%;position:relative;text-align:center;transition:border-color .3s;width:100%}.ant-upload.ant-upload-drag .ant-upload{padding:16px 0}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}.ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-drag .ant-upload-btn{display:table;height:100%}.ant-upload.ant-upload-drag .ant-upload-drag-container{display:table-cell;vertical-align:middle}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}.ant-upload.ant-upload-drag p.ant-upload-drag-icon{margin-bottom:20px}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff;font-size:48px}.ant-upload.ant-upload-drag p.ant-upload-text{color:rgba(0,0,0,.85);font-size:16px;margin:0 0 4px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(0,0,0,.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(0,0,0,.25);font-size:30px;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(0,0,0,.45)}.ant-upload-picture-card-wrapper{display:inline-block;width:100%}.ant-upload-picture-card-wrapper:before{content:"";display:table}.ant-upload-picture-card-wrapper:after{clear:both;content:"";display:table}.ant-upload-list{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-upload-list:after,.ant-upload-list:before{content:"";display:table}.ant-upload-list:after{clear:both}.ant-upload-list-item{font-size:14px;height:22.001px;margin-top:8px;position:relative}.ant-upload-list-item-name{display:inline-block;line-height:1.5715;overflow:hidden;padding-left:22px;text-overflow:ellipsis;white-space:nowrap;width:100%}.ant-upload-list-item-card-actions{position:absolute;right:0}.ant-upload-list-item-card-actions-btn{opacity:0}.ant-upload-list-item-card-actions-btn.ant-btn-sm{height:22.001px;line-height:1;vertical-align:top}.ant-upload-list-item-card-actions.picture{line-height:0;top:22px}.ant-upload-list-item-card-actions-btn:focus,.ant-upload-list-item-card-actions.picture .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-card-actions .anticon{color:rgba(0,0,0,.45);transition:all .3s}.ant-upload-list-item-card-actions:hover .anticon{color:rgba(0,0,0,.85)}.ant-upload-list-item-info{height:100%;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;height:100%;width:100%}.ant-upload-list-item-info .ant-upload-text-icon .anticon,.ant-upload-list-item-info .anticon-loading .anticon{color:rgba(0,0,0,.45);font-size:14px;position:absolute;top:5px}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#f5f5f5}.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .ant-upload-text-icon>.anticon{color:#ff4d4f}.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-progress{bottom:-12px;font-size:14px;line-height:0;padding-left:26px;position:absolute;width:100%}.ant-upload-list-picture .ant-upload-list-item,.ant-upload-list-picture-card .ant-upload-list-item{border:1px solid #d9d9d9;border-radius:2px;height:66px;padding:8px;position:relative}.ant-upload-list-picture .ant-upload-list-item:hover,.ant-upload-list-picture-card .ant-upload-list-item:hover{background:transparent}.ant-upload-list-picture .ant-upload-list-item-error,.ant-upload-list-picture-card .ant-upload-list-item-error{border-color:#ff4d4f}.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info{background:transparent}.ant-upload-list-picture .ant-upload-list-item-uploading,.ant-upload-list-picture-card .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{height:48px;line-height:60px;opacity:.8;text-align:center;width:48px}.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"]{fill:#fff2f0}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"]{fill:#ff4d4f}.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-picture-card .ant-upload-list-item-icon{font-size:26px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.ant-upload-list-picture .ant-upload-list-item-icon .anticon,.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-image,.ant-upload-list-picture-card .ant-upload-list-item-image{max-width:100%}.ant-upload-list-picture .ant-upload-list-item-thumbnail img,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:48px;overflow:hidden;width:48px}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-name{box-sizing:border-box;display:inline-block;line-height:44px;margin:0 0 0 8px;max-width:100%;overflow:hidden;padding-left:48px;padding-right:8px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name{margin-bottom:12px}.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:14px;margin-top:0;padding-left:56px;width:calc(100% - 24px)}.ant-upload-list-picture-card-container{display:inline-block;height:104px;margin:0 8px 8px 0;vertical-align:top;width:104px}.ant-upload-list-picture-card .ant-upload-list-item{height:100%;margin:0}.ant-upload-list-picture-card .ant-upload-list-item-info{height:100%;overflow:hidden;position:relative}.ant-upload-list-picture-card .ant-upload-list-item-info:before{background-color:rgba(0,0,0,.5);content:" ";height:100%;opacity:0;position:absolute;transition:all .3s;width:100%;z-index:1}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info:before{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-actions{left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .3s;white-space:nowrap;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye{color:hsla(0,0%,100%,.85);cursor:pointer;font-size:16px;margin:0 4px;transition:all .3s;width:16px;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:100%;-o-object-fit:contain;object-fit:contain;position:static;width:100%}.ant-upload-list-picture-card .ant-upload-list-item-name{display:none;line-height:1.5715;margin:8px 0 0;padding:0;text-align:center}.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{bottom:10px;display:block;position:absolute}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info:before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;padding-left:0;width:calc(100% - 14px)}.ant-upload-list-picture-container,.ant-upload-list-text-container{transition:opacity .3s,height .3s}.ant-upload-list-picture-container:before,.ant-upload-list-text-container:before{content:"";display:table;height:0;width:0}.ant-upload-list-picture-container .ant-upload-span,.ant-upload-list-text-container .ant-upload-span{display:block;flex:auto}.ant-upload-list-picture .ant-upload-span,.ant-upload-list-text .ant-upload-span{align-items:center;display:flex}.ant-upload-list-picture .ant-upload-span>*,.ant-upload-list-text .ant-upload-span>*{flex:none}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-text .ant-upload-list-item-name{flex:auto;margin:0;padding:0 8px}.ant-upload-list-picture .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-text-icon .anticon{position:static}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter{animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{animation-name:uploadAnimateInlineOut}@keyframes uploadAnimateInlineIn{0%{height:0;margin:0;opacity:0;padding:0;width:0}}@keyframes uploadAnimateInlineOut{to{height:0;margin:0;opacity:0;padding:0;width:0}}.ant-upload-rtl{direction:rtl}.ant-upload-rtl.ant-upload.ant-upload-select-picture-card{margin-left:8px;margin-right:auto}.ant-upload-list-rtl{direction:rtl}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1{padding-left:14px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2{padding-left:28px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name{padding-left:0;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1{padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-card-actions{left:0;right:auto}.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-info{padding:0 4px 0 12px}.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-progress{padding-left:0;padding-right:26px}.ant-upload-list-picture .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item-info{padding:0}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{left:auto;right:8px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name{margin:0 8px 0 0;padding-left:8px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1{padding-left:18px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2{padding-left:36px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress{padding-left:0;padding-right:0}.ant-upload-list-rtl .ant-upload-list-picture-card-container{margin:0 0 8px 8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{margin:8px 0 0;padding:0}.App{height:100%;overflow:hidden;width:100%}.NavMenu{transition:.3s ease;transition-property:width;width:220px}.NavMenu.active{width:0}.code-editor{height:100%;overflow:hidden;width:100%}.code-editor .code-box{float:left;position:relative;width:500px;z-index:auto}.code-editor .code-box .control{background-color:#eee;height:40px;line-height:36px;padding-right:10px}.code-editor .code-box .btn{background:0 0;border:1px solid #32d3a6;border-radius:3px;color:#32d3a6;cursor:pointer;float:right;font-size:12px;line-height:24px;margin-left:10px;margin-top:5px;padding:0 10px}.code-editor .code-box .editor-box{height:100vh;overflow-y:auto}.code-editor .code-box .editor-box .mask{background:0 0;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1000}.code-editor .code-box .editor-box textarea{display:none}.code-editor .code-box .editor-box #htmlEdit,.code-editor .code-box .editor-box .cm-editor{height:100%}.code-editor .splitter{background-color:#fff;cursor:col-resize;float:left;height:100vh;width:2px;z-index:99}.code-editor .view-box{background-color:#fff;border-left:0 solid #ccc;height:100vh;overflow:hidden}.code-editor .view-box iframe{border:0;height:100%;width:100%}.demo{height:100%;overflow:hidden;width:100%}.demo .menu{border-right:1px solid #e6e6e6;float:left;min-height:100%;position:relative}.demo .content{height:100%;overflow:hidden;position:relative}.demo .links{background-color:#00000050;bottom:0;font-size:12px;left:0;padding:0 3px;position:absolute;text-decoration:none}.demo .links a{color:#fff;cursor:pointer}.demo .links a:hover{text-decoration:underline}.examples{background-color:#000;height:100%;overflow:hidden;width:100%}.examples .menu{height:100%;left:-500px;padding:0;position:fixed;top:0;transition:all .3s ease-in-out;width:460px;z-index:10}.examples .menu.open{left:0;opacity:.9}.examples .menu.open:hover{left:0;opacity:1}.examples .index-button{background:transparent;border:0;color:#ccc;cursor:pointer;font-size:38px;left:20px;position:absolute;text-align:center;top:15px;transition:all .3s ease-in-out;-webkit-user-select:none;user-select:none;vertical-align:middle;z-index:10}.examples .index-button.open{left:485px}.examples .content-container{background:#add8e6;background:url(../../static/media/dwg_background.f630e7cda68e19172eec.png) no-repeat 50% fixed;background-size:cover;margin:0 auto;opacity:1;padding:0;pointer-events:all;position:absolute;transition:all .3s ease-in-out;z-index:0}.examples .content-container,.examples .content-container iframe{height:100%;overflow:hidden;width:100%}.examples .page-title{color:#ccc;font-size:1.6rem;left:75px;max-width:calc(100% - 450px);pointer-events:none;position:absolute;text-align:left;top:25px;transition:all .3s ease-in-out;-webkit-user-select:none;user-select:none;z-index:5}.examples .page-title.open{left:545px}.examples .menu #index{background:#fdfdfd;border-right:2px solid #212529;height:100%;left:0;overflow:auto;padding:20px 20px 100px;position:absolute;top:0;-webkit-user-select:none;user-select:none;width:100%}#index h1{font-size:1.8rem;font-weight:400;margin-bottom:0;margin-top:0;text-decoration:none!important}#index h2{font-size:1.4rem;font-weight:400;padding-bottom:10px;padding-top:20px;text-decoration:none}#index hr{-webkit-margin-before:.5em;-webkit-margin-after:.5em;-webkit-margin-start:auto;-webkit-margin-end:auto;border-style:inset;border-width:1px;display:block;margin-block-end:.5em;margin-block-start:.5em;margin-inline-end:auto;margin-inline-start:auto;overflow:hidden;unicode-bidi:-webkit-isolate;unicode-bidi:isolate}#index .link{background:#fdfdfd;cursor:pointer;font-size:1rem;font-weight:400;line-height:1.5em;margin-left:0!important;padding-left:0!important;padding-top:1px;text-decoration:none}#index .link:hover{text-decoration:underline}.examples .links{background-color:#00000050;bottom:0;font-size:12px;left:0;padding:0 3px;position:absolute;text-decoration:none}.examples .links a{color:#fff;cursor:pointer}.examples .links a:hover{text-decoration:underline} -/*# sourceMappingURL=main.352fe986.css.map*/ \ No newline at end of file + /*! autoprefixer: ignore next */-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ant-typography-rtl{direction:rtl}.ant-typography-rtl .ant-typography-copy,.ant-typography-rtl .ant-typography-edit,.ant-typography-rtl .ant-typography-expand{margin-left:0;margin-right:4px}.ant-typography-rtl .ant-typography-expand{float:left}div.ant-typography-edit-content.ant-typography-rtl{left:auto;right:-12px}.ant-typography-rtl .ant-typography-edit-content-confirm{left:10px;right:auto}.ant-typography-rtl.ant-typography ol li,.ant-typography-rtl.ant-typography ul li{margin:0 20px 0 0;padding:0 4px 0 0}.ant-upload{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;outline:0;padding:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;outline:none;width:100%}.ant-upload input[type=file]{cursor:pointer}.ant-upload.ant-upload-select{display:inline-block}.ant-upload.ant-upload-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-upload.ant-upload-select-picture-card{background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;height:104px;margin-bottom:8px;margin-right:8px;text-align:center;transition:border-color .3s;vertical-align:top;width:104px}.ant-upload.ant-upload-select-picture-card>.ant-upload{align-items:center;display:flex;height:100%;justify-content:center;text-align:center}.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover{border-color:#d9d9d9}.ant-upload.ant-upload-drag{background:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;height:100%;position:relative;text-align:center;transition:border-color .3s;width:100%}.ant-upload.ant-upload-drag .ant-upload{padding:16px 0}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}.ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-drag .ant-upload-btn{display:table;height:100%}.ant-upload.ant-upload-drag .ant-upload-drag-container{display:table-cell;vertical-align:middle}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}.ant-upload.ant-upload-drag p.ant-upload-drag-icon{margin-bottom:20px}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff;font-size:48px}.ant-upload.ant-upload-drag p.ant-upload-text{color:rgba(0,0,0,.85);font-size:16px;margin:0 0 4px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(0,0,0,.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(0,0,0,.25);font-size:30px;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(0,0,0,.45)}.ant-upload-picture-card-wrapper{display:inline-block;width:100%}.ant-upload-picture-card-wrapper:before{content:"";display:table}.ant-upload-picture-card-wrapper:after{clear:both;content:"";display:table}.ant-upload-list{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-upload-list:after,.ant-upload-list:before{content:"";display:table}.ant-upload-list:after{clear:both}.ant-upload-list-item{font-size:14px;height:22.001px;margin-top:8px;position:relative}.ant-upload-list-item-name{display:inline-block;line-height:1.5715;overflow:hidden;padding-left:22px;text-overflow:ellipsis;white-space:nowrap;width:100%}.ant-upload-list-item-card-actions{position:absolute;right:0}.ant-upload-list-item-card-actions-btn{opacity:0}.ant-upload-list-item-card-actions-btn.ant-btn-sm{height:22.001px;line-height:1;vertical-align:top}.ant-upload-list-item-card-actions.picture{line-height:0;top:22px}.ant-upload-list-item-card-actions-btn:focus,.ant-upload-list-item-card-actions.picture .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-card-actions .anticon{color:rgba(0,0,0,.45);transition:all .3s}.ant-upload-list-item-card-actions:hover .anticon{color:rgba(0,0,0,.85)}.ant-upload-list-item-info{height:100%;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;height:100%;width:100%}.ant-upload-list-item-info .ant-upload-text-icon .anticon,.ant-upload-list-item-info .anticon-loading .anticon{color:rgba(0,0,0,.45);font-size:14px;position:absolute;top:5px}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#f5f5f5}.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .ant-upload-text-icon>.anticon{color:#ff4d4f}.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-progress{bottom:-12px;font-size:14px;line-height:0;padding-left:26px;position:absolute;width:100%}.ant-upload-list-picture .ant-upload-list-item,.ant-upload-list-picture-card .ant-upload-list-item{border:1px solid #d9d9d9;border-radius:2px;height:66px;padding:8px;position:relative}.ant-upload-list-picture .ant-upload-list-item:hover,.ant-upload-list-picture-card .ant-upload-list-item:hover{background:transparent}.ant-upload-list-picture .ant-upload-list-item-error,.ant-upload-list-picture-card .ant-upload-list-item-error{border-color:#ff4d4f}.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info{background:transparent}.ant-upload-list-picture .ant-upload-list-item-uploading,.ant-upload-list-picture-card .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{height:48px;line-height:60px;opacity:.8;text-align:center;width:48px}.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"]{fill:#fff2f0}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"]{fill:#ff4d4f}.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-picture-card .ant-upload-list-item-icon{font-size:26px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.ant-upload-list-picture .ant-upload-list-item-icon .anticon,.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-image,.ant-upload-list-picture-card .ant-upload-list-item-image{max-width:100%}.ant-upload-list-picture .ant-upload-list-item-thumbnail img,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:48px;overflow:hidden;width:48px}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-name{box-sizing:border-box;display:inline-block;line-height:44px;margin:0 0 0 8px;max-width:100%;overflow:hidden;padding-left:48px;padding-right:8px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name{margin-bottom:12px}.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:14px;margin-top:0;padding-left:56px;width:calc(100% - 24px)}.ant-upload-list-picture-card-container{display:inline-block;height:104px;margin:0 8px 8px 0;vertical-align:top;width:104px}.ant-upload-list-picture-card .ant-upload-list-item{height:100%;margin:0}.ant-upload-list-picture-card .ant-upload-list-item-info{height:100%;overflow:hidden;position:relative}.ant-upload-list-picture-card .ant-upload-list-item-info:before{background-color:rgba(0,0,0,.5);content:" ";height:100%;opacity:0;position:absolute;transition:all .3s;width:100%;z-index:1}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info:before{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-actions{left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .3s;white-space:nowrap;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye{color:hsla(0,0%,100%,.85);cursor:pointer;font-size:16px;margin:0 4px;transition:all .3s;width:16px;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:100%;-o-object-fit:contain;object-fit:contain;position:static;width:100%}.ant-upload-list-picture-card .ant-upload-list-item-name{display:none;line-height:1.5715;margin:8px 0 0;padding:0;text-align:center}.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{bottom:10px;display:block;position:absolute}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info:before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;padding-left:0;width:calc(100% - 14px)}.ant-upload-list-picture-container,.ant-upload-list-text-container{transition:opacity .3s,height .3s}.ant-upload-list-picture-container:before,.ant-upload-list-text-container:before{content:"";display:table;height:0;width:0}.ant-upload-list-picture-container .ant-upload-span,.ant-upload-list-text-container .ant-upload-span{display:block;flex:auto}.ant-upload-list-picture .ant-upload-span,.ant-upload-list-text .ant-upload-span{align-items:center;display:flex}.ant-upload-list-picture .ant-upload-span>*,.ant-upload-list-text .ant-upload-span>*{flex:none}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-text .ant-upload-list-item-name{flex:auto;margin:0;padding:0 8px}.ant-upload-list-picture .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-text-icon .anticon{position:static}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter{animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{animation-name:uploadAnimateInlineOut}@keyframes uploadAnimateInlineIn{0%{height:0;margin:0;opacity:0;padding:0;width:0}}@keyframes uploadAnimateInlineOut{to{height:0;margin:0;opacity:0;padding:0;width:0}}.ant-upload-rtl{direction:rtl}.ant-upload-rtl.ant-upload.ant-upload-select-picture-card{margin-left:8px;margin-right:auto}.ant-upload-list-rtl{direction:rtl}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1{padding-left:14px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2{padding-left:28px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name{padding-left:0;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1{padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-card-actions{left:0;right:auto}.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-info{padding:0 4px 0 12px}.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-progress{padding-left:0;padding-right:26px}.ant-upload-list-picture .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item-info{padding:0}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{left:auto;right:8px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name{margin:0 8px 0 0;padding-left:8px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1{padding-left:18px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2{padding-left:36px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress{padding-left:0;padding-right:0}.ant-upload-list-rtl .ant-upload-list-picture-card-container{margin:0 0 8px 8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{margin:8px 0 0;padding:0}.App{height:100%;overflow:hidden;width:100%}.NavMenu{transition:.3s ease;transition-property:width;width:220px}.NavMenu.active{width:0}.code-editor{height:100%;overflow:hidden;width:100%}.code-editor .code-box{float:left;position:relative;width:500px;z-index:auto}.code-editor .code-box .control{background-color:#eee;height:40px;line-height:36px;padding-right:10px}.code-editor .code-box .btn{background:0 0;border:1px solid #32d3a6;border-radius:3px;color:#32d3a6;cursor:pointer;float:right;font-size:12px;line-height:24px;margin-left:10px;margin-top:5px;padding:0 10px}.code-editor .code-box .editor-box{height:100vh;overflow-y:auto}.code-editor .code-box .editor-box .mask{background:0 0;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1000}.code-editor .code-box .editor-box textarea{display:none}.code-editor .code-box .editor-box #htmlEdit,.code-editor .code-box .editor-box .cm-editor{height:100%}.code-editor .splitter{background-color:#fff;cursor:col-resize;float:left;height:100vh;width:2px;z-index:99}.code-editor .view-box{background-color:#fff;border-left:0 solid #ccc;height:100vh;overflow:hidden}.code-editor .view-box iframe{border:0;height:100%;width:100%}.demo{height:100%;overflow:hidden;width:100%}.demo .menu{border-right:1px solid #e6e6e6;float:left;min-height:100%;position:relative}.demo .content{height:100%;overflow:hidden;position:relative}.demo .links{background-color:#00000050;bottom:0;font-size:12px;left:0;padding:0 3px;position:absolute;text-decoration:none}.demo .links a{color:#fff;cursor:pointer}.demo .links a:hover{text-decoration:underline}.examples{background-color:#000;height:100%;overflow:hidden;width:100%}.examples .menu{height:100%;left:-500px;padding:0;position:fixed;top:0;transition:all .3s ease-in-out;width:460px;z-index:10}.examples .menu.open{left:0;opacity:.9}.examples .menu.open:hover{left:0;opacity:1}.examples .index-button{background:transparent;border:0;color:#ccc;cursor:pointer;font-size:38px;left:20px;position:absolute;text-align:center;top:15px;transition:all .3s ease-in-out;-webkit-user-select:none;user-select:none;vertical-align:middle;z-index:10}.examples .index-button.open{left:485px}.examples .content-container{background:#add8e6;background:url(../../static/media/dwg_background.f630e7cda68e19172eec.png) no-repeat 50% fixed;background-size:cover;margin:0 auto;opacity:1;padding:0;pointer-events:all;position:absolute;transition:all .3s ease-in-out;z-index:0}.examples .content-container,.examples .content-container iframe{height:100%;overflow:hidden;width:100%}.examples .page-title{color:#ccc;font-size:1.6rem;left:75px;max-width:calc(100% - 450px);pointer-events:none;position:absolute;text-align:left;top:25px;transition:all .3s ease-in-out;-webkit-user-select:none;user-select:none;z-index:5}.examples .page-title.open{left:545px}.examples .menu #index{background:#fdfdfd;border-right:2px solid #212529;height:100%;left:0;overflow:auto;padding:20px 20px 100px;position:absolute;top:0;-webkit-user-select:none;user-select:none;width:100%}#index h1{font-size:1.8rem;font-weight:400;margin-bottom:0;margin-top:0;text-decoration:none!important}#index h2{font-size:1.4rem;font-weight:400;padding-bottom:10px;padding-top:20px;text-decoration:none}#index hr{-webkit-margin-before:.5em;-webkit-margin-after:.5em;-webkit-margin-start:auto;-webkit-margin-end:auto;border-style:inset;border-width:1px;display:block;margin-block-end:.5em;margin-block-start:.5em;margin-inline-end:auto;margin-inline-start:auto;overflow:hidden;unicode-bidi:isolate}#index .link{background:#fdfdfd;cursor:pointer;font-size:1rem;font-weight:400;line-height:1.5em;margin-left:0!important;padding-left:0!important;padding-top:1px;text-decoration:none}#index .link:hover{text-decoration:underline}.examples .links{background-color:#00000050;bottom:0;font-size:12px;left:0;padding:0 3px;position:absolute;text-decoration:none}.examples .links a{color:#fff;cursor:pointer}.examples .links a:hover{text-decoration:underline} +/*# sourceMappingURL=main.f052ad65.css.map*/ \ No newline at end of file diff --git a/static/css/main.f052ad65.css.map b/static/css/main.f052ad65.css.map new file mode 100644 index 0000000..8639352 --- /dev/null +++ b/static/css/main.f052ad65.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.f052ad65.css","mappings":"AAAA,gBAEE,WAAY,CACZ,eAAgB,CAFhB,UAGF,CAEA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAKF,CAEA,oBACE,UAAW,CACX,SACF,CACA,0BACE,yBAA6B,CAC7B,kBACF,CACA,0BACE,kBAAmB,CACnB,iBACF;;AC1BA;;;;;;;EAOE,CCHA,gLAGE,YCIJ,CCDC,UCNC,YADA,UFcF,CCDA,mCAEE,YDGF,CCUA,iBAGE,qBDRF,CCWC,KAGC,6BAA8B,CAC9B,yBAA0B,CAC1B,4BAA6B,CAC7B,0CALA,sBAAuB,CACvB,gBDLF,CCaA,cACE,kBDXF,CCmBA,KAQE,oCADA,sBALA,sBAEA,yKADA,eAEA,0BACA,mBALA,QDVF,CCyBA,sBACE,sBDvBF,CC+BA,GACE,kBAAuB,CACvB,QAAS,CACT,gBD7BF,CCwCA,kBAQE,sBACA,eAAgB,CAFhB,kBAAoB,CADpB,YDnCF,CC6CA,EAEE,iBAAkB,CADlB,YD1CF,CCqDA,sCAKE,eAAgB,CAChB,WAAY,CAHZ,yBAA0B,CAC1B,yEDlDF,CCuDA,QAEE,iBAAkB,CAClB,mBAAoB,CAFpB,iBDnDF,CCwDA,kEAIE,uBDtDF,CCyDA,SAIE,iBAAkB,CADlB,YDtDF,CC0DA,wBAIE,eDxDF,CC2DA,GACE,eDzDF,CC4DA,GACE,kBAAoB,CACpB,aD1DF,CC6DA,WACE,cD3DF,CC8DA,IACE,iBD5DF,CC+DA,SAEE,kBD7DF,CCgEA,MACE,aD9DF,CCsEA,QAGE,aAAc,CACd,aAAc,CAFd,iBAAkB,CAGlB,sBDpEF,CCuEA,IACE,aDrEF,CCwEA,IACE,SDtEF,CC6EA,EAOE,oCAAqC,CAJrC,wBAA6B,CAF7B,cAIA,cAAe,CADf,YAAa,CAFb,qBAIA,oBD1EF,CC6EE,QACE,aD3EJ,CC8EE,SACE,aD5EJ,CCsFE,yBAEE,UADA,oBD9EJ,CCkFE,YACE,sBACA,kBDhFJ,CCwFA,kBAKE,4EADA,aDrFF,CCyFA,IAIE,iBAAkB,CAFlB,YAAa,CAIb,aD1FF,CCgGA,OAEE,cD/FF,CCsGA,IAEE,iBAAkB,CADlB,qBDnGF,CCiHA,kFASE,yBD/GF,CCsHA,MACE,wBDpHF,CCuHA,QAKE,mBAAoB,CAFpB,sBADA,mBAAqB,CADrB,iBAAmB,CAGnB,eDpHF,CC4HA,sCAME,aAAc,CAEd,mBAAoB,CADpB,iBAAkB,CAElB,mBAAoB,CAJpB,QDtHF,CC6HA,aAEE,gBD3HF,CC8HA,cAEE,mBD5HF,CCkIC,qDAIC,yBDhIF,CCoIA,wHAKE,iBAAkB,CADlB,SDjIF,CCqIA,uCAEE,qBAAsB,CACtB,SDnIF,CCsIA,+EASE,0BDzIF,CC4IA,SACE,aAAc,CAEd,eD3IF,CC8IA,SAUE,QAAS,CAHT,QAAS,CADT,WAAY,CAGZ,SDjJF,CCuJA,OAME,aAAc,CALd,aAAc,CAMd,eAAgB,CAChB,mBAAoB,CAJpB,kBAAoB,CADpB,cAAe,CAEf,SAAU,CAIV,kBAAmB,CAPnB,UD9IF,CCwJA,SACE,sBDtJF,CC0JA,kFAEE,WDxJF,CC2JA,cAME,uBAAwB,CADxB,mBD5JF,CCoKA,qFAEE,uBDlKF,CC0KA,6BAEE,yBAA0B,CAD1B,YDvKF,CC+KA,OACE,oBD7KF,CCgLA,QACE,iBD9KF,CCiLA,SACE,YD/KF,CCoLA,SACE,sBDlLF,CCqLA,KAEE,yBADA,YDlLF,CCsLA,iBAEE,mBADA,UDnLF,CCkLA,YAEE,mBADA,UDnLF,CGvSE,iCAHE,UAAW,CADX,aHoTJ,CGhTE,gBAGE,UH6SJ,CItTC,SCOC,kCAAmC,CACnC,iCAAkC,CATlC,kBAAmB,CACnB,cAFA,mBAAoB,CAGpB,iBAAkB,CAClB,aAAc,CACd,iBAAkB,CAGlB,iCAAkC,CAFlC,mBAAoB,CACpB,sBL8TF,CInUC,WCWG,aL2TJ,CItUC,aCeG,oBL0TJ,CKvTE,gBACE,YLyTJ,CKtTE,uBACE,aLwTJ,CI3UE,kBACE,aAAc,CACd,gBJ6UJ,CI1UE,mBACE,cJ4UJ,CIxUC,mCAGC,0CAA2C,CAD3C,oBJ2UF,CM7UG,iDAXD,uBACA,wBAAyB,CAavB,2BNqVJ,CMnVG,8EAEC,yBACA,4BNqVJ,CMnVG,sCACC,0BACA,4BAA6B,CAC7B,mBNqVJ,COhXG,iCAGC,gCAAiC,CADjC,SPmXJ,COhXG,gBACC,gCPkXJ,CO5WA,qBACE,GACE,SP8WF,CO3WA,GACE,SP6WF,CACF,CO1WA,sBACE,GACE,SP4WF,COzWA,GACE,SP2WF,CACF,CM1XG,0DAXD,uBACA,wBAAyB,CAavB,2BNkYJ,CMhYG,0FAEC,2BACA,4BNkYJ,CMhYG,4CACC,4BACA,4BAA6B,CAC7B,mBNkYJ,CQ7ZG,uCAGC,sDADA,SRgaJ,CQ7ZG,mBACC,sDR+ZJ,CMvZG,gEAXD,uBACA,wBAAyB,CAavB,2BN+ZJ,CM7ZG,kGAEC,6BACA,4BN+ZJ,CM7ZG,gDACC,8BACA,4BAA6B,CAC7B,mBN+ZJ,CQ1bG,2CAGC,sDADA,SR6bJ,CQ1bG,qBACC,sDR4bJ,CMpbG,gEAXD,uBACA,wBAAyB,CAavB,2BN4bJ,CM1bG,kGAEC,6BACA,4BN4bJ,CM1bG,gDACC,8BACA,4BAA6B,CAC7B,mBN4bJ,CQvdG,2CAGC,sDADA,SR0dJ,CQvdG,qBACC,sDRydJ,CMjdG,mEAXD,uBACA,wBAAyB,CAavB,2BNydJ,CMvdG,sGAEC,8BACA,4BNydJ,CMvdG,kDACC,+BACA,4BAA6B,CAC7B,mBNydJ,CQpfG,6CAGC,sDADA,SRufJ,CQpfG,sBACC,sDRsfJ,CQ7eA,yBACE,GAGE,SAAU,CAFV,0BAA2B,CAC3B,oBRgfF,CQ5eA,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBR+eF,CACF,CQ3eA,0BACE,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBR8eF,CQ1eA,GAGE,SAAU,CAFV,0BAA2B,CAC3B,oBR6eF,CACF,CQzeA,yBACE,GAGE,SAAU,CAFV,2BAA4B,CAC5B,oBR4eF,CQxeA,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBR2eF,CACF,CQveA,0BACE,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBR0eF,CQteA,GAGE,SAAU,CAFV,2BAA4B,CAC5B,oBRyeF,CACF,CQreA,0BACE,GAGE,SAAU,CAFV,0BAA2B,CAC3B,oBRweF,CQpeA,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBRueF,CACF,CQneA,2BACE,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBRseF,CQleA,GAGE,SAAU,CAFV,0BAA2B,CAC3B,oBRqeF,CACF,CQjeA,uBACE,GAGE,SAAU,CAFV,2BAA4B,CAC5B,oBRoeF,CQheA,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBRmeF,CACF,CQ/dA,wBACE,GAGE,SAAU,CAFV,uBAAyB,CACzB,oBRkeF,CQ9dA,GAGE,SAAU,CAFV,2BAA4B,CAC5B,oBRieF,CACF,CS/lBA,yBACE,GACE,uBTimBF,CACF,CS3lBC,yEAEC,iBT6lBF,CS1lBA,KACE,iCACA,cT4lBF,CSvlBC,8EAYC,+FACA,4BAA6B,CAL7B,qBAAsB,CAHtB,QAAS,CAIT,2BACA,gDAAiD,CAIjD,UAAW,CAPX,aAAc,CADd,MAAO,CAKP,UAAY,CAIZ,mBAAoB,CAbpB,iBAAkB,CAElB,OAAQ,CADR,KTqmBF,CStlBA,sBACE,GACE,yBACA,+ETwlBF,CACF,CSrlBA,sBACE,GACE,STulBF,CACF,CMvnBG,6DAXD,uBACA,wBAAyB,CAavB,2BN+nBJ,CM7nBG,8FAEC,4BACA,4BN+nBJ,CM7nBG,8CACC,6BACA,4BAA6B,CAC7B,mBN+nBJ,CU1pBG,yCAKC,oDADA,SAAU,CAFV,kBAAmB,CACnB,oBV8pBJ,CU1pBG,oBACC,yDV4pBJ,CMtpBG,mEAXD,uBACA,wBAAyB,CAavB,2BN8pBJ,CM5pBG,sGAEC,8BACA,4BN8pBJ,CM5pBG,kDACC,+BACA,4BAA6B,CAC7B,mBN8pBJ,CUzrBG,6CAKC,oDADA,SAAU,CAFV,kBAAmB,CACnB,oBV6rBJ,CUzrBG,sBACC,yDV2rBJ,CMrrBG,mEAXD,uBACA,wBAAyB,CAavB,2BN6rBJ,CM3rBG,sGAEC,8BACA,4BN6rBJ,CM3rBG,kDACC,+BACA,4BAA6B,CAC7B,mBN6rBJ,CUxtBG,6CAKC,oDADA,SAAU,CAFV,kBAAmB,CACnB,oBV4tBJ,CUxtBG,sBACC,yDV0tBJ,CMptBG,sEAXD,uBACA,wBAAyB,CAavB,2BN4tBJ,CM1tBG,0GAEC,+BACA,4BN4tBJ,CM1tBG,oDACC,gCACA,4BAA6B,CAC7B,mBN4tBJ,CUvvBG,+CAKC,oDADA,SAAU,CAFV,kBAAmB,CACnB,oBV2vBJ,CUvvBG,uBACC,yDVyvBJ,CUhvBA,wBACE,GAGE,SAAU,CAFV,oBAAsB,CACtB,oBVmvBF,CU/uBA,GAGE,SAAU,CAFV,mBAAoB,CACpB,oBVkvBF,CACF,CU9uBA,yBACE,GAGE,SAAU,CAFV,mBAAoB,CACpB,oBVivBF,CU7uBA,GAGE,SAAU,CAFV,oBAAsB,CACtB,oBVgvBF,CACF,CU5uBA,0BACE,GAGE,SAAU,CAFV,oBAAsB,CACtB,0BV+uBF,CU3uBA,GAGE,SAAU,CAFV,mBAAoB,CACpB,0BV8uBF,CACF,CU1uBA,2BACE,GAGE,SAAU,CAFV,mBAAoB,CACpB,0BV6uBF,CUzuBA,GAGE,SAAU,CAFV,oBAAsB,CACtB,0BV4uBF,CACF,CUxuBA,0BACE,GAGE,SAAU,CAFV,oBAAsB,CACtB,oBV2uBF,CUvuBA,GAGE,SAAU,CAFV,mBAAoB,CACpB,oBV0uBF,CACF,CUtuBA,2BACE,GAGE,SAAU,CAFV,mBAAoB,CACpB,oBVyuBF,CUruBA,GAGE,SAAU,CAFV,oBAAsB,CACtB,oBVwuBF,CACF,CUpuBA,2BACE,GAGE,SAAU,CAFV,oBAAsB,CACtB,uBVuuBF,CUnuBA,GAGE,SAAU,CAFV,mBAAoB,CACpB,uBVsuBF,CACF,CUluBA,4BACE,GAGE,SAAU,CAFV,mBAAoB,CACpB,uBVquBF,CUjuBA,GAGE,SAAU,CAFV,oBAAsB,CACtB,uBVouBF,CACF,CMn1BG,iDAXD,uBACA,wBAAyB,CAavB,2BN21BJ,CMz1BG,8EAEC,yBACA,4BN21BJ,CMz1BG,sCACC,0BACA,4BAA6B,CAC7B,mBN21BJ,CWt3BG,iCAIC,sDADA,SAAU,CADV,kBX03BJ,CWt3BI,iDACE,cXy3BN,CWt3BG,gBACC,uDXw3BJ,CMr3BG,6DAXD,uBACA,wBAAyB,CAavB,2BN63BJ,CM33BG,8FAEC,4BACA,4BN63BJ,CM33BG,8CACC,6BACA,4BAA6B,CAC7B,mBN63BJ,CWx5BG,yCAIC,sDADA,SAAU,CADV,kBX45BJ,CWx5BI,yDACE,cX25BN,CWx5BG,oBACC,uDX05BJ,CMv5BG,4EAXD,uBACA,wBAAyB,CAavB,2BN+5BJ,CM75BG,kHAEC,4BACA,4BN+5BJ,CM75BG,wDACC,6BACA,4BAA6B,CAC7B,mBN+5BJ,CW17BG,mDAIC,sDADA,SAAU,CADV,kBX87BJ,CW17BI,mEACE,cX67BN,CW17BG,yBACC,uDX47BJ,CMz7BG,0DAXD,uBACA,wBAAyB,CAavB,2BNi8BJ,CM/7BG,0FAEC,2BACA,4BNi8BJ,CM/7BG,4CACC,4BACA,4BAA6B,CAC7B,mBNi8BJ,CW59BG,uCAIC,sDADA,SAAU,CADV,kBXg+BJ,CW59BI,uDACE,cX+9BN,CW59BG,mBACC,uDX89BJ,CM39BG,gEAXD,uBACA,wBAAyB,CAavB,2BNm+BJ,CMj+BG,kGAEC,6BACA,4BNm+BJ,CMj+BG,gDACC,8BACA,4BAA6B,CAC7B,mBNm+BJ,CW9/BG,2CAIC,sDADA,SAAU,CADV,kBXkgCJ,CW9/BI,2DACE,cXigCN,CW9/BG,qBACC,uDXggCJ,CM7/BG,gEAXD,uBACA,wBAAyB,CAavB,2BNqgCJ,CMngCG,kGAEC,6BACA,4BNqgCJ,CMngCG,gDACC,8BACA,4BAA6B,CAC7B,mBNqgCJ,CWhiCG,2CAIC,sDADA,SAAU,CADV,kBXoiCJ,CWhiCI,2DACE,cXmiCN,CWhiCG,qBACC,uDXkiCJ,CM/hCG,mEAXD,uBACA,wBAAyB,CAavB,2BNuiCJ,CMriCG,sGAEC,8BACA,4BNuiCJ,CMriCG,kDACC,+BACA,4BAA6B,CAC7B,mBNuiCJ,CWlkCG,6CAIC,sDADA,SAAU,CADV,kBXskCJ,CWlkCI,6DACE,cXqkCN,CWlkCG,sBACC,uDXokCJ,CWpjCA,qBACE,GAEE,SAAU,CADV,mBXujCF,CWnjCA,GAEE,SAAU,CADV,kBXsjCF,CACF,CWljCA,sBACE,GACE,kBXojCF,CWjjCA,GAEE,SAAU,CADV,mBXojCF,CACF,CWhjCA,wBACE,GAEE,SAAU,CADV,mBXmjCF,CW/iCA,GAEE,SAAU,CADV,kBXkjCF,CACF,CW9iCA,yBACE,GACE,kBXgjCF,CW7iCA,GAEE,SAAU,CADV,mBXgjCF,CACF,CW5iCA,uBACE,GAGE,SAAU,CAFV,mBAAqB,CACrB,sBX+iCF,CW3iCA,GACE,kBAAmB,CACnB,sBX6iCF,CACF,CW1iCA,wBACE,GACE,kBAAmB,CACnB,sBX4iCF,CWziCA,GAGE,SAAU,CAFV,mBAAqB,CACrB,sBX4iCF,CACF,CWxiCA,yBACE,GAGE,SAAU,CAFV,mBAAqB,CACrB,sBX2iCF,CWviCA,GACE,kBAAmB,CACnB,sBXyiCF,CACF,CWtiCA,0BACE,GACE,kBAAmB,CACnB,sBXwiCF,CWriCA,GAGE,SAAU,CAFV,mBAAqB,CACrB,sBXwiCF,CACF,CWpiCA,0BACE,GAGE,SAAU,CAFV,mBAAqB,CACrB,yBXuiCF,CWniCA,GACE,kBAAmB,CACnB,yBXqiCF,CACF,CWliCA,2BACE,GACE,kBAAmB,CACnB,yBXoiCF,CWjiCA,GAGE,SAAU,CAFV,mBAAqB,CACrB,yBXoiCF,CACF,CWhiCA,yBACE,GAGE,SAAU,CAFV,mBAAqB,CACrB,yBXmiCF,CW/hCA,GACE,kBAAmB,CACnB,yBXiiCF,CACF,CW9hCA,0BACE,GACE,kBAAmB,CACnB,yBXgiCF,CW7hCA,GAGE,SAAU,CAFV,mBAAqB,CACrB,yBXgiCF,CACF,CYxsCA,4BACE,eZ0sCF,CYlsCA,wDALI,yGZ8sCJ,CYzsCA,qBACE,eZwsCF,CaxtCC,WACC,cAAe,CACf,UAGF,CCFC,WCIC,oCDGA,oBAAqB,CAFrB,kBAAmB,CAGnB,kBCZA,qBAAsB,CAGtB,sBDKA,YAAa,CCJb,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CDST,iBAHA,iBAYF,CALE,mBACE,SACA,WAOJ,CAJE,gBACE,gBAMJ,CAHE,uBACE,YAAa,CACb,eACA,gBAKJ,CAFE,mBACE,yBACA,wBAIJ,CANE,mCAII,aAKN,CADE,gBACE,yBACA,wBAGJ,CALE,gCAII,aAIN,CAAE,mBACE,yBACA,wBAEJ,CAJE,mCAII,aAGN,CACE,iBACE,yBACA,wBACJ,CAHE,iCAKI,aACN,CANE,4CASI,QAAS,CACT,SAAN,CAIE,kBACE,eAFJ,CAKE,sBAME,wBAA6B,CAC7B,WAAY,CAEZ,cAAe,CALf,eACA,iBAJA,gBAOA,YAAa,CALb,eAAgB,CADhB,SAIJ,CANE,qCAYI,sBACA,oBAHN,CAKM,2CACE,qBAHR,CAQE,sBACE,sBACA,oBANJ,CAQI,4BACE,qBANN,CAUE,4BACE,sBAAuB,CACvB,2BARJ,CAWE,8CACE,YATJ,CAYE,4CAEE,eADA,iBATJ,CAaE,+CAGE,sBAFA,aAAc,CAGd,eAFA,iBATJ,CAcE,mBACE,qBAZJ,CAeE,mDACE,aAbJ,CAgBE,kCAEE,SAAU,CADV,eAAgB,CAEhB,gPAdJ,CAmBE,yCAEE,yBAA2B,CAD3B,YAAa,CAIb,SAAU,CADV,gBAAiB,CADjB,aAfJ,CAoBE,kBAEE,QAAS,CACT,eAAgB,CAFhB,eAhBJ,CEnIE,yBACE,aFqIJ,CEjIK,+BAEC,gBADA,iBFoIN,CEvHK,sEAEC,gBAAiB,CADjB,gBF8HN,CExHK,0CAEC,kBADA,kBF2HN,CEtHO,0DAEC,iBADA,iBFyHR,CGtJC,YFIC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CEOT,kBADA,iBAQF,CALE,oBAIE,yBAHA,gBAAiB,CAEjB,aAAc,CADd,gBASJ,CAJE,gBAIE,WAAY,CADZ,MAAO,CAFP,iBAAkB,CAClB,KAQJ,CAJI,uBAME,yBACA,WAAY,CALZ,aAAc,CAEd,WAAY,CACZ,aAAc,CAJd,iBAAkB,CAElB,SAUN,CAHI,qBAME,sBACA,yBACA,iBAAkB,CALlB,YAAa,CAEb,UAAW,CAHX,QAAS,CADT,iBAAkB,CAQlB,0BAA2B,CAC3B,8BAAgC,CANhC,SAWN,CAHO,iDACC,oBAKR,CAAE,uDACE,YAEJ,CACE,iBACE,sBACJ,CACI,uBAKE,sBAHA,aAAc,CACd,iBAAkB,CAClB,eAAgB,CAHhB,iBAAkB,CAMlB,sBAAuB,CACvB,kBAAoB,CAFpB,kBAGN,CACM,kCACE,eACR,CAGI,+CACE,aADN,CAKE,kCAEE,kBAAmB,CADnB,eAFJ,CC7EE,gBACE,aD+EJ,CC3EK,mCAEC,aAAc,CADd,iBAAkB,CAGlB,cAAe,CADf,iBD8EN,CCxEK,gCAEC,SAAU,CADV,OD2EN,CCtEO,qCAEC,MAAO,CADP,SAAU,CAEV,yBDwER,CClEK,iCACC,sBDoEN,CE3FC,0BJCC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SIWF,CANC,4CAKG,UAIJ,CCZC,wCAGG,YCFJ,CDDC,qEASK,QAAS,CACT,UAJA,iBAAkB,CAElB,WADA,KCCN,CDIM,2EACE,UCFR,CDXC,6IAoBK,iBADA,SAAU,CAEV,gCCJN,CDjBC,mEAyBK,iBAAkB,CAClB,oFCLN,CDrBC,0EA+BK,mBAAoB,CADpB,eCLN,CDUK,uMAQC,aAAc,CAHd,oBAAqB,CAErB,iBAAkB,CADlB,OCRN,CDeG,sEACC,UCbJ,CDgBG,+IAEC,kBCdJ,CDkBG,8DACC,aChBJ,CDuBE,yEAGI,YACA,eAFA,UCpBN,CDkBE,4GAOM,WCtBR,CDyBM,+EACE,gBCvBR,CD8BM,yEACE,YC5BR,CDyBG,gGAOK,eAAgB,CAChB,UC7BR,CDqBG,qGAcK,MAAO,CACP,eAHA,iBAAkB,CAClB,OC5BR,CDgCQ,2GACE,YC9BV,CD0CK,uFAEG,WCzCR,CD2CS,wUAGC,gBCzCV,CD8CM,sIAEI,WC7CV,CD+BK,uFAEG,WC9BR,CDgCS,wUAGC,gBC9BV,CDmCM,sIAEI,WClCV,CD6CI,+FAGI,SADA,SC3CR,CDyCI,uFAOI,aC7CR,CDiDO,qHACC,UC/CR,CDkDO,6OAEC,kBChDR,CDsDI,uFAEI,cCrDR,CChGC,+BAEC,YAAa,CACb,SAAU,CACV,cAAe,CACf,cAAe,CAJf,iBD0GF,CCpGE,oCAEE,iBAAkB,CADlB,SAAU,CAEV,cDsGJ,CCjGE,0CAKI,kBAAmB,CAFnB,YAAa,CACb,cAAe,CAGf,eDgGN,CC9FO,iEACC,WDgGR,CC7FO,8DACC,mBACA,kBD+FR,CC5FM,gDAME,aAAc,CALd,oBAAqB,CAGrB,iBADA,aAEA,iBAAkB,CAHlB,ODkGR,CC1FK,iIAEC,kBD4FN,CC1HE,gDA6CI,mBACA,yBACA,kBATA,qBAAsB,CAUtB,cAAe,CAZf,YAAa,CACb,SAAU,CAIV,YAGA,iBADA,kBADA,eASA,sBAZA,cAAe,CAcf,uBADA,yBAjBA,iBAAkB,CAclB,mDAAyD,CACzD,oFD4FN,CCvFO,oEAEC,qBADA,cAEA,kBDyFR,CCrFM,wDACE,oBAAqB,CACrB,iBACA,eAAgB,CAEhB,sBAAuB,CADvB,eDwFR,CCpFM,uDjB7FJ,kCAAmC,CACnC,iCAAkC,CiB+F5B,kBAAmB,CjBvGzB,ciBwGM,sBAIA,cAAe,CANf,mBAAoB,CAIpB,cAAe,CjBzGrB,iBAAkB,CiBwGZ,eAAiB,CjBvGvB,aAAc,CiByGR,mBAAoB,CjBxG1B,iBAAkB,CAGlB,iCAAkC,CAFlC,mBAAoB,CACpB,sBgBqMF,CCtGM,yDjBzFF,agBkMJ,CCzGM,2DjBrFF,oBgBiMJ,ChB9LE,8DACE,YgBgMJ,ChB7LE,mHACE,agB+LJ,CClHM,gEAWI,qBD0GV,CCvGQ,6DACE,qBDyGV,CC9LE,0HA6FM,qBDoGR,CCjME,kDAoGI,wBADA,cAAe,CADf,iBDoGN,CChGM,iHAGE,yKADA,YAEA,iBACA,kBDkGR,CC/FM,wDAEE,eAAgB,CADhB,UDkGR,CC9FM,yDAGE,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAIN,iBAAkB,CADlB,eAAgB,CADhB,WDkGR,CCzNE,uDAkII,UAHA,iBAAkB,CAElB,WADA,OAAQ,CAGR,0BAA2B,CAC3B,kBD6FN,CCrFO,8DAKG,gBDmFV,CCxFO,8DASG,YACA,gBDkFV,CC5FO,gEAcG,YACA,gBDiFV,CC/EU,6IAEE,YACA,gBDiFZ,CCrGO,8DAKG,gBDmGV,CCxGO,8DASG,YACA,gBDkGV,CC5GO,gEAcG,YACA,gBDiGV,CC/FU,6IAEE,YACA,gBDiGZ,CCvFK,qEAEG,QDwFR,CC1FK,gEAMG,uBDuFR,CClFG,uDACC,YDoFJ,CE/RG,sJAEG,sBACA,8BFgSN,CE9RK,+UCKD,qBAUF,uBAPE,wCAQF,SHqRF,CE1SG,wJAEG,sBACA,8BF2SN,CEzSK,mVCKD,qBAUF,uBAPE,yCAQF,SHgSF,CE5RK,qRAGG,UF+RR,CElSK,iWAOG,kBFiSR,CA1QC,YN1DC,oCARA,qBAAsB,CAGtB,sBMmEA,cAAe,CADf,oBAAqB,CNjErB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CMkEV,iBAuRF,CAnRE,kEA5DA,sBACA,yBACA,kBAHA,iBAAkB,CAIlB,iDAmVF,CA1RE,wEAtDE,cAmVJ,CAhVG,yFACC,WAkVJ,CAnVG,+FAIG,WAkVN,CA9UG,+GGRC,qBAUF,uBAPE,yCAQF,SHiVF,CAhVG,sFAEC,mBADA,sBAEA,kBAkVJ,CAhVK,0GACC,kBAkVN,CAxVG,4FAUG,kBAiVN,CApTE,qGAhBE,4DAAgB,CAHhB,sBAAuB,CACvB,WAAY,CAHZ,QAAS,CAIT,YAAa,CAHb,SAgVJ,CA1UI,mIAGE,uBAAwB,CAFxB,YA8UN,CA5TE,iEGxCA,qBACA,sBHuWF,CA3TE,2BACE,SAEA,eAAmB,CADnB,eAAgB,CAGhB,sBAAuB,CADvB,kBA8TJ,CA1TI,qGAGI,SA4TN,CACF,CAvTE,kCAGE,cAFA,SACA,eAAgB,CAIhB,mBAAoB,CADpB,sBAAuB,CADvB,kBA2TJ,CAtTI,mHAGI,SAwTN,CACF,CAnTE,kBhB5GA,kCAAmC,CACnC,iCAAkC,CgBiHhC,kBAAmB,ChBzHrB,cgB4HE,sBhB9HF,mBAAoB,CgB0HlB,YAAa,CAKb,ehB5HF,iBAAkB,CgByHhB,YhBxHF,aAAc,CgB4HZ,aAAc,CAHd,gBAKA,mBAAoB,CAXpB,iBAAkB,CAElB,WAQA,iBAAkB,ChBzHpB,iCAAkC,CAFlC,mBAAoB,CgBkHlB,OAAQ,ChBjHV,sBgBwbF,CA1UE,oBhBxGE,agBqbJ,CA7UE,sBhBpGE,oBgBobJ,ChBjbE,yBACE,YgBmbJ,ChBhbE,yCACE,agBkbJ,CAtVE,2BAiBI,wBAA0B,CAD1B,kBA0UN,CA1VE,+BAoBM,kBAyUR,CAtUM,mDACE,mBAwUR,CApUK,uCACC,kBAsUN,CAnWE,oCAiCI,qBAqUN,CAhUE,kBAeE,gBANA,sBAOA,cAAe,CAXf,oBAAqB,CAKrB,eACA,iBAAkB,CAJlB,YAKA,aAAc,CAJd,gBASA,SAAU,CAhBV,iBAAkB,CAElB,WAUA,iBAAkB,CAMlB,mBAAoB,CALpB,mBAAoB,CAZpB,OAAQ,CAgBR,2CAA+C,CAZ/C,WAFA,SAiVJ,CAhUI,yBACE,aAkUN,CA/TI,wBACE,qBAiUN,CA9TK,oCACC,SAgUN,CA3TE,qBNtLA,qCMoME,sBACA,kBAEA,sGAXA,qBAAsB,CNjMxB,sBMoME,eNlMF,0BMsME,mBAAqB,CATrB,YAAa,CN5Lf,mBACA,eAAgB,CANhB,QAAS,CM6MP,YAAa,CARb,eAAgB,CADhB,cALA,iBAAkB,CAClB,WAAY,CAEZ,YA4UJ,CA9TK,wNAEC,2BAgUN,CA7TK,kNAEC,6BA+TN,CA5TK,2GACC,4BA8TN,CA3TK,wGACC,8BA6TN,CA1TI,4BACE,YA4TN,CAzTI,2BACE,qBA2TN,CA3SE,uBANE,sBAQA,qBAoTJ,CAjTE,wCAdE,aAAc,CAKd,eADA,eAAmB,CAEnB,iBALA,gBACA,iBAHA,iBA4UJ,CA7TE,iBAXE,sBAcA,cAAe,CACf,8BAyTJ,CAtTI,uBACE,sBAEA,cAAe,CADf,cAyTN,CApTI,wBACE,YAsTN,CApTM,gCACE,SAAU,CACV,eAAgB,CAEhB,sBAAuB,CADvB,kBAuTR,CAnTM,8BACE,SAqTR,CAlTM,qEACE,wBAoTR,CAjTM,uEAGE,yBAFA,sBACA,eAoTR,CAtTM,qGAMI,aAmTV,CA/SM,iCAIE,sBACA,kBA8SR,CAlTS,iEACC,wBAoTV,CA9SM,gCACE,iBAgTR,CAxSE,eACE,cA0SJ,CAtSE,4CACE,kCAAwC,CACxC,kCAAoC,CACpC,yBAwSJ,CArSE,oCACE,UAuSJ,CI9gBI,4DACE,iBJghBN,CI9gBO,wFAEC,iBADA,cJihBR,CIjgBS,kJACC,SJwgBV,CIpgBM,qCACE,SJsgBR,CI9lBK,gIACC,eJgmBN,CI7lBK,4JAEC,4BAA6B,CAD7B,yBJgmBN,CItlBK,kTAEC,2BAA4B,CAD5B,wBJ6lBN,CIxlBK,sJAEC,4BAA6B,CAD7B,yBJ2lBN,CK1oBE,gBACE,aL4oBJ,CK/nBK,oEAEC,UADA,ULsoBN,CK/nBI,yBACE,aLioBN,CKznBS,yDAEC,kBADA,kBL4nBV,CKxmBK,+JAEC,kBADA,iBL4mBN,CKrmBK,+DACC,gBLumBN,CKnmBO,uEAEC,gBADA,cAAe,CAEf,gBLqmBR,CK7lBO,wEAEC,SAAU,CADV,OLgmBR,CKxlBK,sEAEC,SAAU,CADV,UL2lBN,CK/kBO,oFACC,SLilBR,CKnkBO,2KAEC,QAAS,CADT,OAAQ,CAER,gBLskBR,CK/jBK,qFAEC,UADA,ULkkBN,CK3jBK,6KAEC,kBADA,eL+jBN,CKjjBS,oIACC,SLmjBV,CK7iBS,2QAEC,kBADA,eLijBV,CM5sBC,WAEC,eACA,mBAFA,YAAa,CAGb,iBADF,CAGE,iBACE,YAAa,CACb,iBADJ,CADE,qBAKI,WADN,CAJE,qBASI,WAAY,CACZ,WAFN,CAME,kBACE,eAJJ,CAQE,kBAEE,sBADA,aALJ,CAIE,mCAKI,WANN,CAUE,iBAEE,sBADA,YAPJ,CAME,kCAKI,WARN,CAgDI,+BACE,YAAa,CACb,eA9CN,CAkDM,8BACE,YAhDR,CAmDM,8BACE,2BAjDR,CAoDM,8BACE,YAlDR,CAyDM,4DACE,YApDR,CAwDI,yBACE,SAtDN,CA6EI,8BACE,YA3EN,CA8EI,wBACE,cA5EN,CA+EI,2BACE,YA7EN,CC9DE,eACE,aDgEJ,CElEC,YdIC,oCcMA,gBAoCA,iBAAkB,CdlDlB,qBAAsB,CAGtB,sBcOA,WAFA,oBAAqB,CdJrB,eACA,0Bc2CA,Yd1CA,mBc2CA,iBd1CA,eAAgB,CANhB,QAAS,CcQT,eAAgB,CdPhB,SAAU,CcKV,iBAAkB,CAKlB,iBAAkB,CAClB,qBAAsB,CAFtB,kBAAmB,CAoCnB,UAtBF,CATE,kBACE,sBAWJ,CAxBC,2BAiBG,aAUJ,CAqBE,mBAEE,QAAS,CADT,iBAAkB,CAElB,yBAnBJ,CAsBG,4BACC,cApBJ,CAmBG,qCAIG,QApBN,CAhBE,eAwBA,iBAAkB,CAFlB,YACA,iBAFA,UACF,CAIE,sBAEE,QAAS,CADT,iBAAkB,CAElB,yBAFJ,CAKG,+BACC,cAHJ,CAEG,wCAIG,QAHN,CA7BE,eAoBA,iBAAkB,CAFlB,YACA,iBAFA,UAkBF,CAbE,sBAEE,QAAS,CADT,iBAAkB,CAElB,yBAeJ,CAZG,+BACC,cAcJ,CAfG,wCAIG,QAcN,CA1CE,mBACE,iBA4CJ,CAzCE,gBACE,aAAc,CAEd,WAAY,CACZ,oCAAiB,CAFjB,UA6CJ,CCtFC,kBACC,mBDwFF,CCzFC,8BAIG,qBDwFJ,CCtFI,gDACE,gBDwFN,CCpFE,kDAEI,eDqFN,CEjGE,oDAGI,aAAc,CADd,iBFmGN,CE9FG,kEAGG,aAAc,CADd,gBFgGN,CGhGC,ajBDC,oCARA,qBAAsB,CAGtB,sBiBiBA,WAAY,CjBhBZ,eACA,0BiBYA,eAAmB,CAHnB,MAAO,CjBRP,mBACA,eAAgB,CANhB,QAAS,CiBeT,eAAgB,CjBdhB,SAAU,CiBUV,iBAAkB,CAOlB,eAAgB,CANhB,KAAM,CAQN,oFAAiB,CAHjB,kBAAmB,CAHnB,YAQF,CAAE,qBACE,iBAEJ,CACE,mBAEE,+BACA,UAAW,CAFX,iBAGJ,CAEE,oBACE,YAAJ,CAIE,0FAGE,2BAFJ,CAKE,gGAGE,yBAHJ,CAME,mGAGE,wBAJJ,CAOE,6FAGE,0BALJ,CAQE,mBAEE,2BAA4B,CAD5B,sBAEA,kBACA,qGANJ,CASE,sEAEE,mBACE,qGALJ,CACF,CAQE,mBAOE,gCAFA,sBACA,eAAgB,CAHhB,QAAS,CADT,gBADA,gBAGA,oBAHJ,CASE,2BAIE,sBAFA,cAAe,CACf,kBAFA,wCAJJ,CAUE,qBAGE,sBAFA,YAAa,CAGb,eAFA,kBANJ,CAUI,0BAGE,cAFA,oBAAqB,CAGrB,eAFA,gBANN,CAYE,qBACE,iBAAkB,CAClB,gBAVJ,CAQE,8CAKI,eAVN,CAeE,mBAME,sBAAuB,CAJvB,aAAc,CAEd,YACA,eAAgB,CAEhB,mBAAoB,CANpB,iBAAkB,CAElB,UATJ,CAeI,2BACE,mCCxGJ,sBD4GI,QAAS,CAMT,UAAW,CAJX,aAAc,CAEd,oBAHA,MAAO,CAIP,WAAY,CAEZ,mBAAoB,CClHxB,mBAAoB,CDwGhB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,kBAPN,CCrGE,kCAME,8CAGA,gCADA,2BAA4B,CAG5B,yDAAyB,CACzB,ouBAFA,UAAW,CALX,oBAFA,mBAFA,iBAAkB,CAClB,kBAEA,kBD8GJ,CAGE,mJAGE,QAAS,CACT,0BADJ,CAGI,2KACE,uCACA,yCACN,CAGE,8CACE,QAAS,CACT,2CADJ,CAIE,kDACE,SAFJ,CAKE,mDACE,UAHJ,CAME,yJAGE,MAAO,CACP,2BAJJ,CAMI,iLACE,uCACA,yCAFN,CAME,gDACE,OAAQ,CACR,4CAJJ,CAOE,mDACE,QALJ,CAQE,sDACE,WANJ,CASE,4JAGE,KAAM,CACN,2BAPJ,CASI,oLACE,uCACA,0CALN,CASE,iDACE,QAAS,CACT,4CAPJ,CAUE,qDACE,SARJ,CAWE,sDACE,UATJ,CAYE,sJAGE,OAAQ,CACR,0BAVJ,CAYI,8KACE,uCACA,0CARN,CAYE,+CACE,OAAQ,CACR,2CAVJ,CAaE,kDACE,QAXJ,CAcE,qDACE,WAZJ,CAyBM,0KACE,wBAdR,CAaM,gFACE,wBARR,CAOM,wFACE,wBAFR,CACM,sFACE,wBAIR,CALM,sFACE,wBAUR,CAXM,kFACE,wBAgBR,CAjBM,kFACE,wBAsBR,CAvBM,kFACE,wBA4BR,CA7BM,oFACE,wBAkCR,CAnCM,kFACE,wBAwCR,CAzCM,0FACE,wBA8CR,CA/CM,sFACE,wBAoDR,CE7SE,iBACE,aAAc,CACd,gBF+SJ,CE1SO,2CAEC,eAAgB,CADhB,cF6SR,CEvSO,4CACC,iBFySR,CEnSK,sCACC,eFqSN,CEjSO,6CAEC,aAAc,CADd,gBFoSR,CGhUC,cpBIC,oCoBCA,WAAY,CpBTZ,qBAAsB,CAGtB,sBoBUA,cAAe,CpBTf,eACA,0BoBOA,WAAY,CpBNZ,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CoBKV,cAAe,CACf,WAAY,CAGZ,UAAW,CADX,UAUF,CALE,oBACE,YAOJ,CAJE,kBAGE,aAAc,CADd,UAAW,CADX,UAQJ,CAHE,sBAME,iCACA,kBAAmB,CAHnB,WAFA,WAAY,CACZ,eAAgB,CAEhB,iBAAkB,CAGlB,kBAAoB,CAPpB,UAYJ,CAHI,4BACE,iCACA,kBAKN,CADE,mBACE,cAAe,CACf,gBAGJ,CC/CA,oCACG,cACC,UDiDF,CC/CE,kBAEE,SAAU,CADV,UDkDJ,CACF,CC7CA,oCACG,cACC,UD+CF,CC7CE,kBAEE,SAAU,CADV,UDgDJ,CACF,CE3DC,WtBGC,oCARA,qBAAsB,CAGtB,sBsBMA,oBAAqB,CtBLrB,eACA,0BACA,mBsBIA,aAAc,CtBHd,eAAgB,CANhB,QAAS,CACT,SAAU,CsBMV,iBAQF,CAJE,iBAWE,mBACA,mBACA,0BARA,WAEA,eADA,gBAHA,YAKA,iBANA,eAEA,aAAc,CAMd,iBAAkB,CADlB,kBAAmB,CARnB,YAkBJ,CAnBE,4CAiBI,UAMN,CAFE,oBAME,kBAFA,eAFA,YAGA,iBAJA,eAEA,SAOJ,CADE,0BACE,aAGJ,CAAE,eAKE,mBACA,kBAAmB,CACnB,0BAHA,WADA,cADA,UADA,YAQJ,CAEG,iCACC,0BAAJ,CAGG,+EAGC,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAEN,6BAA+B,CAC/B,uBADJ,CAGK,sHACC,kDACN,CAGE,kBACE,mBAAoB,CACpB,sBADJ,CAGI,sBAOE,iBAAkB,CAJlB,oBAAqB,CAErB,WAJA,iBAAkB,CAClB,QAAS,CAIT,qBAAsB,CAFtB,SAEN,CAII,0BACE,wBAFN,CAKI,6BAEE,yBADA,iBAFN,CAKM,mCAQE,uDAAwD,CAFxD,yBACA,iBAAkB,CAElB,UAAW,CAJX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAEN,UAER,CAOI,0BACE,wBALN,CAQI,wBACE,wBANN,CASI,0BACE,wBAPN,CAeO,iDACC,kBAVR,CASO,sBACC,kBAPR,CAMO,0BACC,kBAJR,CAGO,yBACC,kBADR,CAAO,yBACC,kBAER,CAHO,uBACC,kBAKR,CANO,uBACC,kBAQR,CATO,uBACC,kBAWR,CAZO,wBACC,kBAcR,CAfO,uBACC,kBAiBR,CAlBO,2BACC,kBAoBR,CArBO,yBACC,kBAuBR,CAlBI,uBAEE,sBACA,eAFA,eAsBN,CAhBE,6CAEE,2DACA,wBAkBJ,CAfE,sBACE,4DACA,wBAiBJ,CAdE,+FAGI,mEAeN,CAlBE,+CAOI,oEAcN,CAXI,gDACE,qBAaN,CAxBE,uGAgBI,cAYN,CA5BE,yGAuBI,aAAc,CAFd,iBAAkB,CAClB,QAAS,CAET,wBAWN,CANA,+BACE,GAEE,UAAY,CADZ,mBASF,CALA,GAEE,SAAU,CADV,oBAQF,CACF,CAIC,mBAEC,aAAc,CADd,eADF,CAIE,wBAEE,oBAAqB,CADrB,iBAAkB,CAGlB,iDAEJ,CANE,8EARA,kCAAmC,CAWjC,YAZF,mCAuBF,CAdE,sDASI,QAKN,CAAE,0BACE,kBAEJ,CAEA,0BACE,GAEE,SAAU,CADV,sCACF,CAGA,GACE,sCADF,CACF,CAIA,2BACE,GACE,sCAFF,CAKA,GAEE,SAAU,CADV,sCAFF,CACF,CAMA,mCACE,GAEE,SAAU,CADV,kBAHF,CAOA,GACE,kBALF,CACF,CAQA,oCACE,GACE,kBANF,CASA,GAEE,SAAU,CADV,kBANF,CACF,CAUA,iCACE,GACE,oBARF,CAWA,GACE,2CAA8C,CAC9C,oBATF,CACF,CCrQC,oBACC,iBDuQF,CCpQC,YvBDC,oCuBWA,yBACA,kBvBpBA,qBAAsB,CAGtB,sBuBaA,WvBZA,eACA,0BuBSA,WAAY,CvBRZ,mBuBWA,gBAAiB,CvBVjB,eAAgB,CANhB,QAAS,CuBcT,aAAc,CAHd,iBAAkB,CAClB,OAAQ,CAKR,kBD+QF,CC3QE,iBACE,UD6QJ,CC1QE,mBAME,gBAAiB,CADjB,kBAAmB,CADnB,UAAW,CAHX,iBAAkB,CAClB,QAAS,CAKT,qBAAuB,CACvB,oBAAqB,CALrB,SDiRJ,CC1QI,yBAOE,cAAe,CADf,qBAA0B,CAE1B,UAAW,CAHX,cAAe,CAFf,SAAU,CAFV,iBAAkB,CAClB,QAAS,CAET,aDgRN,CClQK,iDAEC,mBADA,aDyQN,CC1QK,sBAEC,mBADA,aD6QN,CC9QK,0BAEC,mBADA,aDiRN,CClRK,yBAEC,mBADA,aDqRN,CCtRK,yBAEC,mBADA,aDyRN,CC1RK,uBAEC,mBADA,aD6RN,CC9RK,uBAEC,mBADA,aDiSN,CClSK,uBAEC,mBADA,aDqSN,CCtSK,wBAEC,mBADA,aDySN,CC1SK,uBAEC,mBADA,aD6SN,CC9SK,2BAEC,mBADA,aDiTN,CClTK,yBAEC,mBADA,aDqTN,CC9SG,qCAEC,4BAA6B,CAD7B,UDiTJ,CClTG,wDAKG,8DAA+D,CAD/D,ODkTN,CC7SG,uCAEC,2BAA4B,CAD5B,SDgTJ,CCjTG,0DAKG,8DAA+D,CAD/D,MDiTN,CE5XE,eACE,aF8XJ,CExXK,yOAGC,aAAc,CADd,MAAO,CADP,UAAW,CAGX,8BAAgC,CAChC,oBF4XN,CExXG,2FAEC,MAAO,CADP,UAAW,CAEX,8BAAgC,CAChC,oBF0XJ,CErXO,sCAEC,aAAc,CADd,gBFwXR,CElXG,2JAGG,gCFmXN,CEtXG,6EAOG,iCFkXN,CE7WC,gBACC,aF+WF,CE9WG,yCAIC,2BAA4B,CAD5B,+BADA,SAAU,CADV,UFmXJ,CEpXG,4DAOG,MAAO,CADP,UFmXN,CE/WM,8HAFA,8DFoXN,CE7WG,2CAIC,8BADA,4BAA6B,CAD7B,UADA,UFkXJ,CEnXG,8DAOG,UADA,OFkXN,CE9WM,kIAFA,8DFmXN,CE1WA,6BACE,GAEE,SAAU,CADV,uCF6WF,CEzWA,GACE,uCF2WF,CACF,CExWA,8BACE,GACE,uCF0WF,CEvWA,GAEE,SAAU,CADV,uCF0WF,CACF,CGtcC,gBzBIC,oCARA,qBAAsB,CAGtB,sByBIA,sBACA,ezBHA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SyBYF,CAVC,yBAOG,cAMJ,CAbC,mBAWG,YAAa,CACb,cAAe,CAGf,eAAgB,CAFhB,QAAS,CACT,SAMJ,CApBC,kBAmBG,sBACA,oBAIJ,CAxBC,sFA+BK,qBAEN,CAEE,wCACE,YAAJ,CAGE,0BAEE,sBADA,YAAJ,CAWE,yGAEI,eANN,CCnDE,oBAEE,aDoDJ,CrCnDE,2BAEE,UAAW,CADX,aqCsDJ,CrClDE,0BAGE,UAAW,CACX,UAAW,CAFX,aqCqDJ,CC/DE,yBAKI,WD6DN,CC7CO,qKAEC,aAAc,CADd,gBDqDR,CEvEE,sDACE,aCAJ,CDEI,4DAEE,yBADA,UCCN,CAJC,c5BGC,oCARA,qBAAsB,CAGtB,sB4BSA,aAAc,C5BRd,eACA,0B4BKA,YAAa,C5BJb,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,C4BMV,iBAAkB,CAClB,WAAY,CAEZ,YAcF,CAXE,qBAIE,YAIA,WAAY,CAHZ,SAAU,CAEV,aAAe,CANf,iBAAkB,CAElB,OAAQ,CADR,SAIA,aAeJ,CAVE,mBACE,iBAYJ,CAbE,0CAII,cAYN,CAhBE,wCAQI,wBAWN,CAPE,6CAEI,wBAQN,CAJE,iFAGE,YAMJ,CAFE,qKAGE,2BAIJ,CADE,8KAGE,wBAGJ,CAGE,oBV1CA,sBU6CE,aAAc,CAEd,oBV9CF,mBAAoB,CU0ClB,iBAAkB,CAGlB,mBAFA,SAIJ,CV7CE,2BAME,gBAGA,gCADA,2BAA4B,CAG5B,yDAAyB,CACzB,ouBAFA,UAAW,CALX,oBAFA,mBAFA,iBAAkB,CAClB,kBAEA,kBUsDJ,CAVE,yJAGE,YACA,2CACA,uBAYJ,CATE,gDACE,QAAS,CACT,wCAWJ,CARE,oDACE,SAUJ,CAPE,qDACE,UASJ,CANE,kKAIE,2CADA,iBAEA,2CAQJ,CALE,mDACE,QAAS,CACT,4DAOJ,CAJE,uDACE,SAMJ,CAHE,wDACE,UAKJ,CAFE,mBAOE,2BAA4B,CAD5B,sBAEA,kBAEA,sGALA,oBAAqB,CAHrB,QAAS,CAOT,YAAa,CANb,cAFA,iBAAkB,CAGlB,eAUJ,CAFI,oCAEE,sBADA,iBAEA,kBAIN,CADI,iCAGE,sBAAuB,CACvB,eAAgB,CAHhB,iBAAkB,CAIlB,oBAAqB,CAHrB,YAMN,CARI,wEASI,eAGR,CAZI,oCAcI,gBAAkB,CADlB,iBAGR,CAGI,wBAGE,kBAAmB,CADnB,YAAa,CADb,iBACN,CAII,6BAGE,eADA,gBAAiB,CADjB,cAAN,CAKI,iCACE,SAHN,CAEI,mCAII,aAAc,CACd,kBAHR,CAKQ,yCACE,aAHV,CAMQ,yCAIE,QAAS,CAET,UAAW,CADX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAV,CAUI,yDAEE,UAAW,CAGX,sBAIA,cAAe,CAFf,eADA,eAAmB,CAEnB,iBALA,QAAS,CACT,iBAMA,kBARN,CAsBM,2EAEE,yBADA,aAlBR,CAsBM,iUAEE,wBAhBR,CAmBM,oQACE,sBACA,kBAdR,CAgBQ,4RAEE,sBADA,sBAEA,kBAXV,CAIM,4QAWI,mBATV,CAaM,yEAKE,yBAJA,UAAW,CAGX,aAAc,CAFd,YAAa,CACb,eARR,CA5CI,uIA0DI,iBAAkB,CAClB,SAVR,CAjDI,mNA+DM,sBACA,cAAe,CACf,iBAAkB,CAHlB,wBANV,CAcI,mCAGE,eAAgB,CAFhB,YAAa,CACb,SAXN,CAeI,iCACE,kBAbN,CAgBI,oCACE,iBAdN,CAiBI,uDAGE,SAAU,CAEV,eAAgB,CADhB,cAAe,CAHf,iBAAkB,CAClB,KAAM,CAIN,oBAfN,CAmBO,oOAGC,sBADA,sBAEA,kBAjBR,CAsBI,qEACE,aApBN,CAwBG,skBAMC,2BAtBJ,CAyBG,4hBAMC,6BAvBJ,CA0BG,gSAGC,4BAxBJ,CA2BG,2QAGC,8BAzBJ,CA6BC,gIAIG,cAAe,CACf,sBA5BJ,CAgCC,qBACC,kBA9BF,CAiCK,iHAEC,cAAe,CACf,mBA/BN,CAkCK,oEACC,aAhCN,CAmCI,iGAEE,iBADA,iBAhCN,CAwCG,mEAEC,kBAtCJ,CAmCC,klBAWK,yBAlCN,CAqCI,mPAEE,sBAAuB,CADvB,UA/BN,CAoCI,mLAIE,mBADA,UAjCN,CCvVE,kBACE,aDyVJ,CCrVK,sCAEC,MAAO,CADP,UDwVN,CC5UO,kKAEC,aAAc,CACd,gBDkVR,CC7UO,+DACC,uBD+UR,CClUO,yMACC,gBDyUR,CCpUS,wRAEC,eAAgB,CADhB,cD0UV,CCpUS,2KAEC,SADA,UDwUV,CCnUW,uPACC,uBAAyB,CACzB,oBDsUZ,CC/TO,mDAEC,kBADA,kBDkUR,CC5TO,yEAEC,MAAO,CAEP,aAAc,CADd,gBAAiB,CAFjB,UDiUR,CEtYC,SCgNC,qBAAsB,CA5MpB,gBAFF,yBALA,kBAqNA,oCAjNA,sBAkNA,cAAe,CAPf,oBAAqB,CAhNrB,eAiNA,gBAnNA,YDcA,mBCbA,iBAgNA,iBAAkB,CAIlB,iBAAkB,CAOlB,yBAA0B,CAF1B,kDACA,oFAAiB,CAPjB,kBDlMF,CAZC,kBC2NG,aD5MJ,CC+ME,wCAGE,SD7MJ,CCgNE,+BACE,oBD9MJ,CCiNE,gCAEE,eAAgB,CADhB,SD9MJ,CCkNE,mBACE,kBDhNJ,CC+ME,qBAII,mBDhNN,CCoNE,YAxPA,kBADA,eAFA,YACA,kBD4CF,CCoNE,YA9PA,kBADA,eAFA,YACA,aDkDF,CA7CC,sBCQG,kBDwCJ,CCtCI,4BAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD6CN,CCwBE,8BA7EE,gBAFF,qBADA,aD8DF,CCkBE,wDAzEE,kBD2DJ,CCzDI,oEAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDiEN,CCoBE,gBA7FE,gBAFF,qBADA,aDiFF,CCeE,6BAzFE,kBD6EJ,CC3EI,mCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDkFN,CCtEI,+FApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBD0EN,CChFI,mJAhBA,kBDsGJ,CCpGI,2KAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD8GN,CC+IE,8CAIE,gBADA,oBD5IJ,CAhIC,cAeG,oBAoHJ,CAjHE,iBCdE,mBAFF,qBAsCA,oCAvCA,WAsCA,oCDmGF,CAxHE,8BCVE,kBDqIJ,CCnII,oCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD0IN,CC5GE,8CAtCE,mBAFF,qBADA,UD2JF,CClHE,wEAlCE,kBDwJJ,CCtJI,oFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD8JN,CC/GE,wBAvDE,mBAFF,qBADA,UD8KF,CCpHE,qCAnDE,kBD0KJ,CCxKI,2CAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD+KN,CCnKI,+HApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBDuKN,CC7KI,mLAhBA,kBDmMJ,CCjMI,2MAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD2MN,CAlMK,mEAEC,0BADA,0BAqMN,CAlMM,4EACE,oBAoMR,CA/LM,6DACE,0BAiMR,CA/LQ,uEACE,0BAiMV,CA5LK,8GAEC,yBA8LN,CA5LM,kIACE,yBA+LR,CA1LE,eC9CE,uBAFF,qBADA,qBDgPF,CA/LE,4BC1CE,kBD4OJ,CC1OI,kCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDiPN,CC5KE,0CA7EE,uBAFF,qBADA,aDkQF,CClLE,oEAzEE,kBD+PJ,CC7PI,gFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDqQN,CChLE,sBA7FE,uBAFF,qBADA,aDqRF,CCrLE,mCAzFE,kBDiRJ,CC/QI,yCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDsRN,CC1QI,uHApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBD8QN,CCpRI,2KAhBA,kBD0SJ,CCxSI,mMAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDkTN,CAxQE,gBClDE,gBAFF,qBAqRA,mBAAoB,CAtRpB,qBDmUF,CA9QE,6BC9CE,kBD+TJ,CC7TI,mCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDoUN,CC/PE,4CA7EE,gBAFF,qBADA,aDqVF,CCrQE,sEAzEE,kBDkVJ,CChVI,kFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDwVN,CCnQE,uBA7FE,gBAFF,qBADA,aDwWF,CCxQE,oCAzFE,kBDoWJ,CClWI,0CAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDyWN,CC7VI,2HApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBDiWN,CCvWI,+KAhBA,kBD6XJ,CC3XI,uMAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDqYN,CArVE,gBCxDE,mBAFF,qBAsCA,oCAvCA,WAsCA,oCDiXF,CA5VE,6BCpDE,kBDmZJ,CCjZI,mCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDwZN,CC1XE,4CAtCE,mBAFF,qBADA,UDyaF,CChYE,sEAlCE,kBDsaJ,CCpaI,kFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD4aN,CC7XE,uBAvDE,mBAFF,qBADA,UD4bF,CClYE,oCAnDE,kBDwbJ,CCtbI,0CAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD6bN,CCjbI,2HApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBDqbN,CC3bI,+KAhBA,kBDidJ,CC/cI,uMAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDydN,CAraE,cC5DE,uBAFF,yBAuWA,eAAgB,CAxWhB,aD0eF,CA3aE,2BCxDE,kBDseJ,CCpeI,iCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD2eN,CCtaE,wCA7EE,uBAFF,qBADA,aD4fF,CC5aE,kEAzEE,kBDyfJ,CCvfI,8EAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD+fN,CC1aE,qBA7FE,uBAFF,qBADA,aD+gBF,CC/aE,kCAzFE,kBD2gBJ,CCzgBI,wCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDghBN,CCpgBI,mHApBA,mBAFF,oBDoiBF,CC3LE,oBACE,sBD+MJ,CC5ME,6DAGE,wBD8MJ,CCxiBI,mHApBA,uBAFF,yBA6BI,eAAgB,CA9BpB,sBA6BI,gBD4iBN,CCljBI,uKAhBA,kBDwkBJ,CCtkBI,+LAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDglBN,CAxhBE,cChEE,uBAFF,yBAyYA,eAAgB,CA1YhB,qBDimBF,CA9hBE,2BC5DE,kBD6lBJ,CC3lBI,iCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDkmBN,CC7hBE,wCA7EE,uBAFF,qBADA,aDmnBF,CCniBE,kEAzEE,kBDgnBJ,CC9mBI,8EAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDsnBN,CCjiBE,qBA7FE,uBAFF,qBADA,aDsoBF,CCtiBE,kCAzFE,kBDkoBJ,CChoBI,wCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDuoBN,CC3nBI,mHApBA,mBAFF,oBD2pBF,CChRE,wCAGE,4BACA,wBAAyB,CAFzB,qBDsSJ,CCjSE,qBAEE,4BACA,wBAAyB,CAFzB,qBDqSJ,CClqBI,mHApBA,uBAFF,yBA6BI,eAAgB,CA9BpB,sBA6BI,gBDsqBN,CC5qBI,uKAhBA,kBDksBJ,CChsBI,+LAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD0sBN,CA9oBE,mBCpEE,gBAFF,qBADA,aD0tBF,CAnpBE,gCChEE,kBDstBJ,CCptBI,sCAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD2tBN,CCtcE,kDA7RE,gBAFF,qBADA,aD4uBF,CC5cE,4EAzRE,kBDyuBJ,CCvuBI,wFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD+uBN,CCvcE,0BAhTE,gBAFF,qBADA,aD+vBF,CC5cE,uCA5SE,kBD2vBJ,CCzvBI,6CAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDgwBN,CCpvBI,uIApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBDwvBN,CC9vBI,2LAhBA,kBDoxBJ,CClxBI,mNAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD4xBN,CA5tBE,mCCxEE,mBAFF,qBAsCA,oCAvCA,WAsCA,oCDwwBF,CAnuBE,gDCpEE,kBD0yBJ,CCxyBI,sDAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD+yBN,CCjxBE,kFAtCE,mBAFF,qBADA,UDg0BF,CCvxBE,4GAlCE,kBD6zBJ,CC3zBI,wHAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDm0BN,CCpxBE,0CAvDE,mBAFF,qBADA,UDm1BF,CCzxBE,uDAnDE,kBD+0BJ,CC70BI,6DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDo1BN,CCx0BI,uMApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBD40BN,CCl1BI,2PAhBA,kBDw2BJ,CCt2BI,mRAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDg3BN,CA5yBE,gCC5EE,uBAFF,yBAwUA,eAAgB,CAzUhB,aDi4BF,CAlzBE,6CCxEE,kBD63BJ,CC33BI,mDAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDk4BN,CC7zBE,4EA/EA,qBADA,aDm5BF,CCnzBE,uCA/FA,qBADA,aDs6BF,CC/4BI,2LApBA,mBAFF,oBD27BF,CCjnBE,4EAxUE,uBAFF,yBADA,aDo9BF,CCzoBE,sGApUE,kBDi9BJ,CC/8BI,kHAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDu9BN,CC1oBE,uCArVE,uBAFF,yBADA,aDu+BF,CC/oBE,oDAjVE,kBDm+BJ,CCj+BI,0DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDw+BN,CC59BI,2LApBA,uBAFF,yBA6BI,eAAgB,CA9BpB,sBA6BI,gBDg+BN,CCt+BI,+OAhBA,kBD4/BJ,CC1/BI,uQAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDogCN,CA57BE,gCChFE,uBAFF,yBA4ZA,eAAgB,CA7ZhB,aDqhCF,CAl8BE,6CC5EE,kBDihCJ,CC/gCI,mDAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDshCN,CCj9BE,4EA7EE,uBAFF,qBADA,aDuiCF,CCv8BE,uCA7FE,uBAFF,qBADA,aD0jCF,CCniCI,2LApBA,mBAFF,oBD+kCF,CCjrBE,4EA5ZE,4BAFF,yBADA,aDwmCF,CCzsBE,sGAxZE,kBDqmCJ,CCnmCI,kHAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD2mCN,CC1sBE,uCAzaE,4BAFF,yBADA,aD2nCF,CC/sBE,oDAraE,kBDunCJ,CCrnCI,0DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD4nCN,CChnCI,2LApBA,uBAFF,yBA6BI,eAAgB,CA9BpB,sBA6BI,gBDonCN,CC1nCI,+OAhBA,kBDgpCJ,CC9oCI,uQAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDwpCN,CA5kCE,mBC3FA,kBADA,eAFA,YACA,gBD+FE,mBAAoB,C3CpGtB,U2CsrCF,CC/tBE,qBACE,cDiuBJ,CC/tBG,8BAndD,kBADA,eAFA,YACA,gB5CLA,U2CgsCF,CCluBI,gCACE,cDouBN,CCjuBG,8BA3dD,kBADA,eAFA,YACA,U5CLA,U2C0sCF,CCpuBI,gCACE,cDsuBN,CA3mCE,4BAKI,YAAa,CACb,sBAymCN,CA/mCE,oCAUI,mBAwmCN,CAnmCE,oBACE,mBAqmCJ,CAtmCE,6BAII,cAqmCN,CAjmCE,eClHA,mBADA,eAFA,YACA,gBD2tCF,CCzxBG,0BAhcD,mBADA,eAFA,YACA,kBDiuCF,CC1xBG,0BArcD,mBADA,eAFA,YACA,cDuuCF,CAjnCK,iCACC,UAmnCN,CA/mCE,gBCiXA,iBAAkB,CAJlB,eAEA,cAAe,CADf,eAAgB,CAEhB,iBDswBF,CCpwBG,2BAEC,iBAAkB,CADlB,cDuwBJ,CCpwBG,2BAEC,iBAAkB,CADlB,cDuwBJ,CA1nCE,gBAQE,gBACA,qBAAsB,CALtB,YAQA,UAAW,CALX,YAAa,CAFb,UAKA,WAAa,CAGb,mBAAoB,CAZpB,iBAAkB,CAElB,WADA,SASA,sBAAwB,CALxB,SAmoCJ,CAnwCC,kBA2IG,yDA2nCJ,CAvnCK,uEAGG,6BAwnCR,CAnnCE,yBAEE,cAAe,CADf,iBAsnCJ,CAnnCI,gCACE,aAqnCN,CAjnCE,+BACE,8FAmnCJ,CApnCE,wCAKI,cAAe,CADf,iBAonCN,CAxnCE,4CAQM,0CAmnCR,CA9mCE,eCQA,mBD0mCF,CAlnCE,oECOA,iBD+mCF,CCzmCI,qMAGE,SD8mCN,CC3mCI,yEACE,SD8mCN,CAloCE,kCCwBE,cD6mCJ,CAroCE,kMC+UE,gBD+zBJ,CA9oCE,+ECkVE,6BD+zBJ,CAjpCE,wBCqVE,eD+zBJ,CAppCE,6ECyVE,aD+zBJ,CAxpCE,2EC+VE,iBD+zBJ,CA9pCE,+GCoWE,8BADA,0BDg0BJ,CAnqCE,+GCyWE,+BADA,2BDg0BJ,CC5zBE,iFAKI,iBD6zBN,CCl0BE,qHAUI,8BADA,0BD8zBN,CCv0BE,qHAeI,+BADA,2BD8zBN,CCzzBE,8BACE,UD2zBJ,CCzzBG,0EACC,eD2zBJ,CCxzBE,+EAII,4BAA6B,CAD7B,yBAA0B,CAD1B,iBD2zBN,CCtzBG,gFAGC,2BAA4B,CAD5B,wBAAyB,CADzB,gBD0zBJ,CEj1CK,slBAGC,gBAAiB,CADjB,iBFg2CN,CE31CG,iCACC,aF61CJ,CEx1CK,mJACC,yBF21CN,CEr1CK,mJACC,yBFw1CN,CEj1CO,yJACC,yBFo1CR,CE90CO,yJACC,yBFi1CR,CAvuCE,yCAEE,iBAyuCJ,CA75CC,8CA0LG,eAuuCJ,CApuCE,kCAEE,kBADA,UAuuCJ,CApuCI,2JAIE,sBAsuCN,CAnuCI,gFAGE,qBADA,aAsuCN,CAluCI,yCAEE,qBADA,aAquCN,CAjuCI,4CAEE,uBACA,qBAFA,qBAquCN,CA/tCE,0CCxNA,qBADA,cAmHA,gBD00CF,CApuCE,uDClNE,kBDy7CJ,CCv7CI,6DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD87CN,CCp1CE,gGApHA,qBADA,aD88CF,CCz1CE,0HA9GE,kBD28CJ,CCz8CI,sIAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDi9CN,CCz0CE,iDAlJA,qBADA,aDg+CF,CC70CE,8DA5IE,kBD49CJ,CC19CI,oEAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDi+CN,CCr9CI,mOApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBDy9CN,CC/9CI,uRAhBA,kBDq/CJ,CCn/CI,+SAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD6/CN,CA3yCE,yCC5NA,qBADA,cAmHA,gBD05CF,CAhzCE,sDCtNE,kBDygDJ,CCvgDI,4DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD8gDN,CCp6CE,8FApHA,qBADA,aD8hDF,CCz6CE,wHA9GE,kBD2hDJ,CCzhDI,oIAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDiiDN,CCz5CE,gDAlJA,qBADA,aDgjDF,CC75CE,6DA5IE,kBD4iDJ,CC1iDI,mEAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDijDN,CCriDI,+NApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBDyiDN,CC/iDI,mRAhBA,kBDqkDJ,CCnkDI,2SAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD6kDN,CAv3CE,4CChOA,qBADA,cAmHA,gBD0+CF,CA53CE,yDC1NE,kBDylDJ,CCvlDI,+DAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD8lDN,CCp/CE,oGApHA,qBADA,aD8mDF,CCz/CE,8HA9GE,kBD2mDJ,CCzmDI,0IAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDinDN,CCz+CE,mDAlJA,qBADA,aDgoDF,CC7+CE,gEA5IE,kBD4nDJ,CC1nDI,sEAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDioDN,CCrnDI,2OApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBDynDN,CC/nDI,+RAhBA,kBDqpDJ,CCnpDI,uTAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD6pDN,CAn8CE,yDCpOA,yBADA,cAmHA,gBD0jDF,CAx8CE,sEC9NE,kBDyqDJ,CCvqDI,4EAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD8qDN,CCpkDE,8HApHA,yBADA,aD8rDF,CCzkDE,wJA9GE,kBD2rDJ,CCzrDI,oKAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDisDN,CCzjDE,gEAlJA,yBADA,aDgtDF,CC7jDE,6EA5IE,kBD4sDJ,CC1sDI,mFAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDitDN,CCrsDI,+RApBA,mBAFF,qBA6BI,eAAgB,CA9BpB,sBA6BI,gBDysDN,CC/sDI,mVAhBA,kBDquDJ,CCnuDI,2WAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KD6uDN,CA/gDE,wCACE,oBAihDJ,CA9gDE,0CAEE,oBAAsB,CADtB,mBAihDJ,CA7gDE,uBACE,UA+gDJ,CA1gDE,eAIE,aAAc,CAHd,oBAAqB,CAErB,iBAAkB,CADlB,OA8gDJ,CAxgDC,UAMC,iBADA,2BAugDF,CApgDE,mBC+GA,kBDw5CF,CAvgDE,qBCkHE,mBDw5CJ,CCr5CE,+FA1XE,uBAFF,yBAmYE,eAAgB,CApYlB,sBAmYE,gBDy5CJ,CC/5CE,mJAtXE,kBD2xDJ,CCzxDI,2KAME,sBAAuB,CAFvB,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KDmyDN,CAliDE,aACE,gBAoiDJ,CAjiDE,aACE,gBAmiDJ,CpBnwDI,qFACE,iBoBqwDN,CpBjwDI,+EACE,gBoBmwDN,CpB/vDM,qFAGE,SoBiwDR,CpBvvDM,gCACE,SoByvDR,CpB70DK,+FACC,eoB+0DN,CpB50DK,wHAEC,4BAA6B,CAD7B,yBoB+0DN,CpBr0DK,0OAEC,2BAA4B,CAD5B,wBoB40DN,CpBv0DK,kHAEC,4BAA6B,CAD7B,yBoB00DN,CG11DE,wCACE,SH41DJ,CGv1DI,4GACE,iBHy1DN,CGv1DM,kHAOE,yBACA,WAAY,CAJZ,oBAAqB,CAErB,wBAHA,UAFA,iBAAkB,CAClB,SAGA,SH41DR,CGl1DK,8GAEC,2BAA4B,CAD5B,wBHq1DN,CGj1DK,8GAEC,4BAA6B,CAD7B,yBHo1DN,CG/0DO,oIAEC,2BAA4B,CAD5B,wBHk1DR,CG90DO,oIAEC,4BAA6B,CAD7B,yBHi1DR,CGz0DQ,0HACE,UH20DV,CIp3DE,wEACE,kBJs3DJ,CIl3DI,gHAGE,SJo3DN,CIj3DI,yCACE,SJm3DN,CIh5DE,kHACE,eJk5DJ,CI/4DE,4GAEE,2BAA4B,CAD5B,4BJk5DJ,CI94DE,4GACE,wBAAyB,CACzB,yBJg5DJ,CGr1DM,8HACE,iBHu1DR,CGr1DQ,oIAOE,yBACA,WAAY,CAJZ,oBAAqB,CAErB,WAHA,UAFA,iBAAkB,CAClB,SAGA,sBH01DV,CEx6DE,aACE,aF06DJ,CEp6DO,kJAEC,0BADA,0BFw6DR,CEn6DS,sKAEC,0BADA,0BFu6DV,CE95DO,oDAEC,iBADA,eFi6DR,CEz5DK,sEAEC,aAAc,CADd,gBF65DN,CKv7DI,yHAEE,aCAN,CDGI,2CACE,kBCDN,CDII,iJAKI,aCFR,CDMK,iFACC,wBCJN,CDOK,2DACC,0BCLN,CDWI,iKAGE,aCTN,CDaE,oGAEE,yBADA,UCVJ,CArBC,UpCLC,oCoCeA,gBAEA,sGpCzBA,qBAAsB,CoCkBtB,sBACA,epCdA,0BACA,mBoCcA,aAAc,CAEd,eAAgB,CANhB,QAAgB,CAQhB,YAAa,CAPb,SAAe,CAIf,eAAgB,CAKhB,6DA2BF,ChD7CE,iCAHE,UAAW,CADX,agD0DJ,ChDtDE,gBAGE,UgDmDJ,CAhCE,sCAvBA,4BA0DF,CApDC,0BAyBG,eAAgB,CAFhB,QAAS,CACT,SAkCJ,CA7BE,mBACE,YA+BJ,CA7BI,wBACE,SA+BN,CA3BE,0CAEE,YA6BJ,CA1BE,2BAGE,sBACA,eAHA,cAIA,mBAHA,gBAAiB,CAIjB,kBA4BJ,CAzBE,uCACE,wGA2BJ,CAvBE,2CAEE,oJAyBJ,CApBE,2BACE,aAsBJ,CAnBE,qDAEE,kBAqBJ,CAlBE,gCACE,WAAe,CACf,mGAoBJ,CAhBE,wBACE,oBAkBJ,CAfE,iBACE,qBAiBJ,CAfI,uBACE,aAiBN,CAdI,wBAME,wBAA6B,CAF7B,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAqBN,CAXG,4BACC,qBAaJ,CAXI,kCACE,aAaN,CATE,uBAKE,oBAAqB,CAArB,oBAAqB,CAHrB,aAAc,CADd,eAeJ,CARE,8BACE,mBAUJ,CAPE,2EAEE,eASJ,CANE,0JAGE,wBAQJ,CALE,kFAKI,aAON,CAHE,4DACE,wBAKJ,CAFE,4DAGE,8BAIJ,CADE,yBACE,6BAGJ,CAAE,2GAOE,cAAe,CAHf,8BAA+B,CAD/B,eAAgB,CAGhB,eAAgB,CADhB,SAIJ,CAEI,6KACE,iBAAkB,CAClB,eAEN,CAfE,wJAmBI,cAAe,CAFf,MAAO,CACP,aAIN,CADM,0KACE,cAKR,CA3BE,yTA2BI,oBAQN,CAJE,kCACE,eAMJ,CAHE,iFAEE,0CAKJ,CAFE,uCAOE,cAAe,CAJf,aAAc,CACd,QAAS,CACT,eAHA,iBAAkB,CAMlB,sFAFA,kBAMJ,CAZE,wIAcI,eADA,cAAe,CAEf,2GAKN,CApBE,4JAmBM,iBACA,SAAU,CACV,0EAOR,CA5BE,uFA2BI,sBAKN,CAFK,4OAGG,cAKR,CADI,6HA9OF,4BAmPF,CAAE,iCACE,YAAa,CACb,SAEJ,CAEI,wBAGE,sBAAuB,CACvB,kBACA,eAAgB,CAJhB,iBAAkB,CAKlB,oBAAqB,CAJrB,YAIN,CAGM,+BAIE,QAAS,CAMT,WAAY,CAFZ,WAAY,CAHZ,MAAO,CAIP,aAAe,CARf,iBAAkB,CAElB,OAAQ,CADR,QAAS,CAKT,UAAW,CADX,UAGR,CAMI,4CAEE,SAAU,CADV,KAHN,CAvBE,4BA+BI,sBACA,iBALN,CAOM,gDACE,uDALR,CASK,kCACC,qBAPN,CAUI,sDAME,sBAJA,iBAAkB,CAElB,UAAW,CADX,OAAQ,CAIR,0BAA2B,CAC3B,wDAHA,UALN,CAaM,6DAKE,6BAA8B,CAC9B,iBAAkB,CAIlB,UAAW,CANX,YAAa,CAFb,iBAAkB,CAKlB,sLAJA,SANR,CAgBM,+BACE,0CAdR,CAiBM,8BACE,0CAfR,CAmBI,sJAEE,aAjBN,CAuBM,kHACE,0CApBR,CAuBM,gHACE,0CApBR,CAwBI,qDACE,YAtBN,CAyBI,+FAEE,0BAxBN,CA0BM,qGACE,2CAxBR,CA2BM,sGACE,yCAzBR,CA8BE,qJAGE,aA5BJ,CA+BE,qBAEE,QAAS,CACT,gCACA,eAAgB,CAHhB,gBA1BJ,CA+BI,mHAII,eAAgB,CADhB,eAAgB,CAEhB,cA9BR,CAgCQ,kgBAIE,aA1BV,CA4BU,kjBACE,+BAnBZ,CADE,2EA8BI,oBAAqB,CAFrB,iBAAkB,CAClB,OAAQ,CAER,qBAvBN,CAyBM,uFAKE,mCAAoC,CAFpC,QAAS,CAIT,UAAW,CAHX,UAHA,iBAAkB,CAClB,WAIA,0DArBR,CAlBE,+DA6CI,SAxBN,CArBE,sCAkDM,qBA1BR,CA4BQ,4CACE,aA1BV,CA6BQ,6CACE,WA3BV,CA+BM,+CACE,aA7BR,CAiCI,2BAEE,UAAW,CAEX,aAAc,CAHd,aAAc,CAEd,QA9BN,CAmCE,iJAKI,iBAlCN,CAoCM,yKAKE,+BADA,QAAS,CAMT,UAAW,CAHX,SAAU,CANV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,uBAAyB,CAEzB,kGA9BR,CAeE,sUAuBI,YAKA,iBAHA,kBADA,eAGA,eAAgB,CADhB,cAAe,CAGf,sBA5BN,CADE,6JAkCI,oBA3BN,CAPE,qNAsCI,iBAzBN,CAbE,8YA2CI,YACA,gBApBN,CAwBE,gHAGI,kBAvBN,CA2BE,iBACE,UAzBJ,CA4BM,yFAEE,SAAU,CADV,mBAAoB,CAEpB,oGAzBR,CAkBE,yEAcI,sBA5BN,CAcE,4GAmBI,kBA7BN,CAiCK,qGAIG,kBAAmB,CADnB,YAAa,CAEb,oFAhCR,CA2BK,qJASK,SAAU,CACV,WAAY,CACZ,eAAgB,CAChB,sBAhCV,CAoBK,yGAgBK,SAhCV,CAsCE,oCACE,UApCJ,CAmCE,gWAYI,MAAO,CACP,0BACA,kBAzCN,CA2BE,gcAiBM,SAtCR,CAqBE,ozBAuBM,eACA,iBAFA,QA/BR,CASE,41BA2BQ,oBAAqB,CACrB,SA1BV,CAFE,qGAmCI,oBA7BN,CAgCI,4CACE,mBA9BN,CA6BI,qHAKI,YA9BR,CAyBI,8CASI,yBA/BR,CAhBE,+DAsDI,eAAgB,CADhB,gBAAiB,CADjB,iBAAkB,CAIlB,sBAAuB,CADvB,kBAhCN,CAqCE,0BACE,QAAS,CACT,SAnCJ,CAiCE,2FAKI,qBAlCN,CAsCE,6IAIE,eApCJ,CAuCE,+MAIM,eACA,iBAvCR,CA4CE,8BAEE,mBAEA,eAAgB,CAChB,eAAgB,CAJhB,SAtCJ,CA2CK,qHAEC,YACA,iBACA,0BAA2B,CAC3B,oBAzCN,CA4CK,yDACC,iBA1CN,CA+CE,mDAGE,eAAgB,CADhB,gCAEA,kBA7CJ,CA+CI,+DACE,kCA5CN,CAqCE,uDAWI,gCACA,mBA5CN,CAgCE,mGAgBI,gCACA,kBA5CN,CA8CQ,gUAEE,oCA1CV,CAkDC,6BAEG,mBAjDJ,CAsDC,gFAGG,UArDJ,CC/nBE,yOAMI,aDgoBN,CEnoBE,sCAJA,4BF0oBF,CEhoBI,iGAVF,4BF8oBF,CE9nBE,2FAIE,mBADA,yBFioBJ,CEpoBE,2OAMI,WAAa,CACb,kBFmoBN,CEjoBM,6fAEE,eFuoBR,CEloBE,sCACE,sBFooBJ,CEjoBE,6CACE,kBFmoBJ,CEhoBE,mCACE,eFkoBJ,CE/nBE,uGAKE,qBACA,eAAgB,CAHhB,YAAa,CACb,eAFA,KFqoBJ,CE9nBE,wDACE,wBFgoBJ,CE7nBE,2DACE,QF+nBJ,CE5nBE,6IAIE,yBF8nBJ,CE3nBE,6IAIE,cF6nBJ,CE1nBE,yMAME,cAAe,CAFf,MAAO,CACP,aF6nBJ,CE1nBI,iOACE,cF+nBN,CE3nBE,qGAEE,UF6nBJ,CE1nBE,8OAOE,wBAA6B,CAD7B,UF6nBJ,CEnoBE,khBAWI,UFsoBN,CEjpBE,8gBAeM,SF0oBR,CExoBQ,0mCAEE,eFopBV,CE9oBE,oCACE,wBFgpBJ,CE7oBE,+EACE,wBF+oBJ,CE5oBE,uCAEE,cAAe,CADf,UF+oBJ,CE5oBI,6CACE,cF8oBN,CEnpBE,0ZAoBM,UF6oBR,CExoBE,8GAEE,wBF0oBJ,CEpoBI,qQAGE,oCACA,UFyoBN,CE/oBE,iIASI,mCF0oBN,CExoBQ,4XAEE,wCF4oBV,CGjzBE,uBACE,aAAc,CACd,gBHmzBJ,CG/yBK,yCACC,gBHizBN,CG3yBK,8DAEC,8BADA,iBH+yBN,CGxyBK,0FACC,gBH2yBN,CGlyBO,uYACC,0BHyyBR,CGhyBO,gMAEC,iBADA,iBHsyBR,CG9xBS,oSACC,aHmyBV,CG5xBK,6CACC,uBH8xBN,CGtxBS,6WAEC,SAAU,CADV,UH4xBV,CGjxBW,2SACC,yCHqxBZ,CGhxBW,wSACC,uCHoxBZ,CGvwBS,6NAEC,MAAO,CADP,UH6wBV,CGrwBO,8aACC,gBH8wBR,CGvwBO,sDAEC,iBAAkB,CADlB,eH0wBR,CGlwBO,wDAEC,iBAAkB,CADlB,kBHqwBR,CG7vBO,kFACC,yBH+vBR,CGvvBO,uHACC,qBH0vBR,CGrvBE,8BACE,QHuvBJ,CGrvBO,sEAEC,cAAe,CADf,kBHwvBR,CIz4BC,axCLC,oCARA,qBAAsB,CAGtB,sBwCeA,aAAc,CxCdd,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CwCoBT,gBxCnBA,SAAU,CwCcV,iBAAkB,CAMlB,kBAAmB,CAHnB,wCAAkB,CAClB,eAAgB,CAHhB,YAGF,CAIE,qBACE,iBAFJ,CAKE,oBACE,YAHJ,CAME,0FAGE,2BAJJ,CAOE,gGAGE,yBALJ,CAQE,mGAGE,wBANJ,CASE,6FAGE,0BAPJ,CAWE,mBAOE,oBAAqB,CACrB,iCACA,kBACA,sGANA,WAFA,eAAgB,CADhB,cAAe,CAEf,eAAgB,CAEhB,eAAgB,CAChB,oBALJ,CAaE,mBAOE,sBAAuB,CAJvB,aAAc,CAEd,YACA,eAAgB,CAEhB,mBAAoB,CAPpB,iBAAkB,CAGlB,WAFA,SALJ,CAaI,2BAEE,+FtB5DJ,sBsBqEI,QAAS,CAMT,UAAW,CAJX,aAAc,CAEd,oBAHA,MAAO,CAIP,WAAY,CAEZ,mBAAoB,CtB3ExB,mBAAoB,CsBiEhB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,kBAXN,CtB1DE,kCAME,8CAGA,gCADA,2BAA4B,CAG5B,yDAAyB,CACzB,ouBAFA,UAAW,CALX,oBAFA,mBAFA,iBAAkB,CAClB,kBAEA,kBsBmEJ,CAOE,mJAGE,QAAS,CACT,0BALJ,CAOI,2KACE,uCACA,yCAHN,CAOE,8CACE,QAAS,CACT,2CALJ,CAQE,kDACE,SANJ,CASE,mDACE,UAPJ,CAUE,yJAGE,MAAO,CACP,2BARJ,CAUI,iLACE,wCACA,yCANN,CAUE,gDACE,OAAQ,CACR,4CARJ,CAWE,mDACE,OATJ,CAYE,sDACE,UAVJ,CAaE,sJAGE,OAAQ,CACR,0BAXJ,CAaI,8KACE,wCACA,0CATN,CAaE,+CACE,OAAQ,CACR,2CAXJ,CAcE,kDACE,OAZJ,CAeE,qDACE,UAbJ,CAgBE,4JAGE,KAAM,CACN,2BAdJ,CAgBI,oLACE,yCACA,yCAZN,CAgBE,iDACE,QAAS,CACT,4CAdJ,CAiBE,qDACE,SAfJ,CAkBE,sDACE,UAhBJ,CAwBG,qCAEG,wBAvBN,CA0BM,oDACE,kBAxBR,CAkBG,wCAEG,wBAjBN,CAoBM,uDACE,kBAlBR,CAYG,oCAEG,wBAXN,CAcM,mDACE,kBAZR,CAMG,wCAEG,wBALN,CAQM,uDACE,kBANR,CAAG,uCAEG,wBACN,CAEM,sDACE,kBAAR,CANG,uCAEG,wBAON,CAJM,sDACE,kBAMR,CAZG,qCAEG,wBAaN,CAVM,oDACE,kBAYR,CAlBG,qCAEG,wBAmBN,CAhBM,oDACE,kBAkBR,CAxBG,qCAEG,wBAyBN,CAtBM,oDACE,kBAwBR,CA9BG,sCAEG,wBA+BN,CA5BM,qDACE,kBA8BR,CApCG,qCAEG,wBAqCN,CAlCM,oDACE,kBAoCR,CA1CG,yCAEG,wBA2CN,CAxCM,wDACE,kBA0CR,CAhDG,uCAEG,wBAiDN,CA9CM,sDACE,kBAgDR,CCpQE,iBACE,aDsQJ,CClQK,oCACC,gBDoQN,CExQC,WACC,mBADF,CAGE,oBACE,qBADJ,CAKI,wBACE,kBAHN,CAMI,uBACE,sBAJN,CAOI,qBACE,oBALN,CAQI,0BACE,oBANN,CAYE,sBACE,YAVJ,CCnBC,mBACC,mBDqBF,CCnBE,yBACE,YAAa,CACb,UDqBJ,CClBE,4BACE,qBDoBJ,CExBE,sCACE,aF6BJ,CGlCC,qB7CGC,oC6CDA,gB7CPA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,S6CYF,CAJE,4BACE,YAAa,CACb,wBAAyB,CACzB,cAMJ,CATE,6DAMI,cAMN,CAZE,8DAWI,gBADA,cAMN,CAhBE,6DAeI,eAIN,CAxBC,uCAyBG,gBACA,QAAS,CAET,eAAgB,CADhB,4BAGJ,CA9BC,6HAgCK,UAEN,CAlCC,wDAoCK,aACN,CArCC,2DAwCK,UAAN,CAKE,0BACE,iBAHJ,CAEE,sDAKI,iBADA,iBAFN,CAFE,4CASI,yBAJN,CALE,8CAaI,YALN,CARE,iDAgBM,WAAY,CAEZ,gBAAiB,CADjB,SAJR,CAbE,kDAuBI,mBAPN,CAYE,4CAKI,gBACA,QAAS,CAJT,aAAc,CAEd,gBAAiB,CADjB,UARN,CAKE,gIAWQ,SAZV,CACE,gEAeQ,WAAY,CAEZ,gBAAiB,CADjB,oBAZV,CAmBQ,oEACE,YAjBV,CAoBQ,6FAEI,kBAnBZ,CAVE,oGAkCQ,YArBV,CAwBQ,wZAII,kBAtBZ,CAkBQ,whBAOM,aAnBd,CAzBE,sEAyDM,QAAS,CAET,eAAgB,CADhB,6BANA,aAAc,CAEd,WAAY,CACZ,aACA,kBAIA,yBAA2B,CAP3B,UAjBR,CA0BQ,4EACE,gBAAiB,CACjB,oBAxBV,CA2BQ,8EAKE,sBAFA,WAAY,CAGZ,mBAFA,eAAgB,CAHhB,eAAgB,CAMhB,eAAgB,CALhB,UApBV,CA4BQ,4EACE,oBA1BV,CAyBQ,4GAII,qBA1BZ,CAkCA,yCAEI,4BACE,aAjCJ,CAgCE,6DAII,SAjCN,CA6BE,8DAQI,qBAlCN,CA0BE,6DAcI,aAAc,CADd,eADA,UAjCN,CAqBE,mEAkBM,iBAAkB,CADlB,SAlCR,CACF,CCzJE,yBACE,aD2JJ,CC/IO,6KAEC,aAAc,CADd,gBDsJR,CC7IO,oEACC,eD+IR,CC1IW,wFACC,oBD4IZ,CCrIW,sGACC,gBDuIZ,CElKI,8FAEE,sBACA,oBCPN,CDUI,sFtCIA,qBAUF,uBAPE,wCAQF,SuClBF,CDJG,2DAaG,kBCNN,CDNI,kGAEE,sBACA,oBCQN,CDLI,0FtCIA,qBAUF,uBAPE,yCAQF,SuCHF,CDnBG,6DAaG,kBCSN,CAlBC,YhDNC,oCgDaA,kBAAmB,CACnB,gBACA,yBACA,kBhDxBA,qBAAsB,CAGtB,sBgDiBA,mBAAoB,ChDhBpB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CgDUT,iBAQA,iBAAkB,CAMlB,oCA0BF,CAnBE,sCvCKA,qBACA,sBuCwBF,CA9BE,oBvCRE,yCAQF,SuC8BF,CA1BE,gCACE,mBACA,qBACA,kBA4BJ,CAzBE,mDACE,qBA2BJ,CAxBE,kCACE,kCAAwC,CACxC,kCAAoC,CACpC,yBA0BJ,CAtBE,kBAGE,kBAAmB,CADnB,mBAAoB,CADpB,iBAAkB,CAGlB,UAwBJ,CA5BE,wBvCWA,sBACA,qBAAsB,CuCGlB,sBAAuB,CAEvB,QAAS,CvCHb,kBANA,sBAJA,oBAAqB,CuCIjB,SAAU,CvCCd,euCII,WAAY,CvCHhB,mBAJA,WAAY,CuCMR,aAAc,CAEd,SAAU,CvCXd,iBAAkB,CAYlB,kBAAoB,CAVpB,UuC4CF,CCnGE,0CACE,cACA,sCDqGJ,CCvGE,8CACE,cACA,qCDqGJ,CCvGE,qCACE,cACA,oFDqGJ,CClGE,+CACE,sBDoGJ,CCrGE,8CACE,sBDoGJ,CCrGE,0CACE,sBDoGJ,CvCtCE,8BAlCA,qBACA,sBuC2EF,CvCtCE,8DAtDE,qBAUF,uBAPE,yCAQF,SuCwFF,CvCxCE,iCArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,SuCiFF,CvC/EE,uCAZA,qBACA,sBuC8FF,CvChDE,kCAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,SuC6FF,CvC3FE,wCAZA,qBACA,sBuC0GF,CvCvDI,yPAME,wBAA6B,CAC7B,WAAY,CACZ,euCyDN,CvCpDE,gCAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qBuCuDJ,CvClDE,2BAzGA,eADA,kBuCgKF,CvClDE,2BAzGA,auC8JF,CAjGM,8BACE,eAmGR,CAhGM,kCACE,sBAkGR,CA9FI,0CAEI,SA+FR,CA3FI,oCAEI,aA4FR,CAtFE,kBApFA,kBA6KF,CAzFE,0CAII,cAwFN,CApFE,kBA5FA,aAmLF,CAnFE,mBAGE,iBAAkB,CAElB,sBAJA,YAAa,CACb,SAAU,CAIV,aAAc,CAFd,gBAGA,mBAqFJ,CA5FE,qBAUI,kBAqFN,CAnFM,qCACE,gBAqFR,CAhFE,kBAME,gBAFA,sBAIA,cAAe,CAHf,aAAc,CAId,SAAU,CARV,iBAAkB,CAElB,OAAQ,CADR,OAAQ,CAKR,0BAA2B,CAG3B,gCAkFJ,CA5FE,oBAaI,kBAkFN,CA/EI,wBACE,qBAiFN,CA7EE,sBAKE,sBAGA,cAAe,CANf,oBAAqB,CAIrB,eAFA,YAHA,iBAAkB,CAMlB,kBAAmB,CAJnB,SAoFJ,CA7EK,0CACC,qBA+EN,CA3EO,uEACC,kBA6ER,CAvEE,kBAEE,mBAAoB,CADpB,iBA0EJ,CA3EE,oCAMI,UAwEN,CArEI,0CAEI,SAsER,CAjFE,yCAoBI,mBAHA,YACA,UAAW,CACX,iBAEA,SAAU,CAEV,mBAAoB,CADpB,2BAoEN,CAhEK,4DAEG,SAiER,CA7DI,4BACE,kBAAmB,CAEnB,aAAc,CADd,aAgEN,CA5DK,qDAEG,SA6DR,CA/DK,0DAMG,eA4DR,CAtDE,qBhDlNA,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BgD2NE,YAAa,ChD1Nf,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CgD0NR,iBAAkB,CAGlB,WAAY,CAEZ,YA8DJ,CA5DI,4BACE,YA8DN,CA3DI,kEAGI,aAAc,CADd,iBAEA,yCA4DR,CAxDI,+DAEI,oBACA,aAAc,CACd,uBAyDR,CArDK,saAIC,6BAuDN,CApDK,kbAIC,2BAsDN,CAnDK,iNAEC,8BAqDN,CAlDK,uNAEC,4BAoDN,CAhDE,2BACE,sBAkDJ,CAhDI,kCACE,YAkDN,CA7CE,8DACE,eA+CJ,CA3CE,mBAIE,iBAEA,eAAgB,CALhB,eAAgB,CAEhB,eAAgB,CADhB,iBAGA,eA8CJ,CAnDE,sBASI,oBA6CN,CAtDE,oDAeI,mBACA,qBAFA,cAGA,cA2CN,CA5DE,kCAqBI,WAAY,CACZ,eA0CN,CAtCE,0BACE,YAwCJ,CArCE,wB9BrSA,sB8B2SE,2CAFA,oBACA,mB9BzSF,mBAAoB,C8BqSlB,iBAAkB,CAMlB,6BAJA,mBADA,SA8CJ,C9BlVE,+BAME,gBAGA,gCADA,2BAA4B,CAG5B,yDAAyB,CACzB,ouBAFA,UAAW,CALX,oBAFA,mBAFA,iBAAkB,CAClB,kBAEA,kB8B2VJ,CAlDE,4BAGE,gBACA,kBACA,sGAJA,eAAgB,CAKhB,sBAJA,kBAwDJ,CA1DE,+CAWI,aAAc,CAFd,mBAAoB,CACpB,gBAqDN,CA/DE,8CAgBI,sBAAuB,CAEvB,eAAgB,CADhB,qBAFA,kBAsDN,CArEE,sHAsBM,iBAmDR,CAhDM,sDACE,oBAkDR,CtCrVI,8FACE,iBsCuVN,CtCnVI,wFACE,gBsCqVN,CtCzUS,0IACC,SsCgVV,CtC5UM,mCACE,SsC8UR,CtClaK,2GACC,esCoaN,CtCjaK,uIAEC,4BAA6B,CAD7B,yBsCoaN,CtC1ZK,wQAEC,2BAA4B,CAD5B,wBsCiaN,CtC5ZK,iIAEC,4BAA6B,CAD7B,yBsC+ZN,CEjbE,kBAIE,gBACA,yBACA,kBALA,mBAAoB,CACpB,qBAAsB,CAKtB,YAAa,CAJb,iBFubJ,CEjbI,0BACE,oBFmbN,CE5aE,uKAOE,YAAa,CACb,qBAAsB,CACtB,WF8aJ,CE1aE,mBAIE,gCADA,sBAFA,YAAa,CACb,aF8aJ,CEhbE,qBAOI,SF4aN,CEnbE,0BAcI,sBAAuB,CACvB,QAAS,CAHT,sBAIA,cAAe,CAHf,iBAFA,SAAU,CAMV,oBF2aN,CE5bE,0BAsBI,eADA,eF2aN,CExaM,gCACE,qBF0aR,CEtaI,wBACE,SAAU,CACV,eAAgB,CAChB,gBFwaN,CE3aI,+BAMI,aAAc,CACd,mBFwaR,CEtaQ,iDACE,eFwaV,CEraQ,qCACE,aFuaV,CEhaE,oGAKE,oBAAqB,CAErB,WAHA,iBAAkB,CAElB,SFmaJ,CEhaI,gIAQE,cAA6B,CAA7B,4BAA6B,CAC7B,UAAW,CALX,oBAAqB,CAErB,WAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAGN,SFyaN,CE/ZI,oEAQE,cAA6B,CAA7B,4BAA6B,CAC7B,UAAW,CALX,oBAAqB,CAErB,WAHA,SAFA,iBAAkB,CAClB,QAGA,SFsaN,CE9ZE,kDAEE,wBFgaJ,CE7ZE,kDAEE,wBF+ZJ,CE3ZE,oBAGE,wBAAyB,CADzB,kBAAmB,CADnB,UF+ZJ,CEhaE,8CASI,eAAgB,CADhB,cAAe,CADf,iBF+ZN,CEtaE,uBAcI,sBADA,WAAY,CAEZ,gBF4ZN,CErME,iBAEE,sBACA,cAAe,CAFf,aFyMJ,CEpMI,yBACE,qBFsMN,CE/ZI,wBASE,UAAW,CAHX,YAFA,MAAO,CAHP,iBAAkB,CAElB,OAAQ,CADR,OAAQ,CAKR,0BAA2B,CAC3B,mBAHA,SFqaN,CEjZI,ySAGI,kBF4ZR,CEtZM,6EAOE,yBACA,kBAJA,QAAS,CAKT,UAAW,CAJX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,SF2ZR,CEnZI,kDACE,iBFqZN,CEnZM,yDACE,kBFqZR,CEhZK,+NAIC,mBADA,UFmZN,CE7YM,sMACE,kBFgZR,CE5YI,4DACE,QF8YN,CE3YI,0DACE,SF6YN,CElYM,w5BAME,iCADA,8BAIA,UAAW,CALX,WAAY,CAHZ,iBAAkB,CAClB,OAAQ,CAKR,0BAA2B,CAC3B,mBALA,SFgZR,CErYI,mHAIE,QAAS,CADT,OFwYN,CEnYK,6xBAWC,kBFiYN,CE7XK,qJACC,yBF+XN,CE3XK,mJACC,yBF6XN,CEvXM,8QAKE,mBAFA,QAAS,CAIT,UAAW,CANX,iBAAkB,CAClB,KAAM,CAIN,mBAFA,UF6XR,CEtXK,wIAIC,MAAO,CADP,UFuXN,CEnXK,sIAEC,UADA,OFsXN,CEjXI,+DACE,SFmXN,CEhXI,6DACE,QFkXN,CE9WI,qeAQE,8BAFA,+BACA,2BAFA,QFmXN,CE5WI,ydAQE,+BAFA,gCACA,4BAFA,SFiXN,CE1WI,0BACE,sBACA,mBF4WN,CE9WI,iDAKI,sBF4WR,CEzWM,iCACE,0BF2WR,CExWK,8EACC,4BF0WN,CEzVE,kLAKI,YF0VN,CE/VE,8LASI,aF4VN,CExVE,8CAEI,WFyVN,CEpVE,mBAKE,oCAFA,iBADA,cAAe,CAEf,iBAAkB,CAHlB,wCF0VJ,CEpVK,qCACC,4BFsVN,CEnVI,yBAEE,iBADA,eAEA,eFqVN,CEnVM,0CACE,+BFqVR,CEhVE,gBACE,eFkVJ,CE/UE,sBACE,aFiVJ,CE/UI,4BACE,aFiVN,CE9UI,6BACE,aFgVN,CE7UI,oDACE,sBACA,kBF+UN,CEtUE,gDAEI,aFuUN,CEzUE,iDAMI,YFsUN,CEjUE,4HAQI,aF8TN,CEtUE,8IAYI,UF+TN,CE3UE,oMAiBI,+BACA,0BAFA,SFkUN,CElVE,ocA6BI,0BADA,gCADA,UFqUN,CEjUO,gQAEC,+BACA,0BAFA,SFuUR,CE/TE,wCAEI,gBFgUN,CE3TO,4MAGC,gCF6TR,CEzTI,8BAEI,yBF0TR,CEvTM,oCACE,kBFyTR,CEtTM,oFAEE,kBFwTR,CEtTS,8HACC,wBFyTV,CEtTS,4LACC,iBFyTV,CElUM,kIAaI,UFyTV,CElTE,wCAEI,gBFmTN,CErTE,2CAMI,WFkTN,CExTE,8CASM,UFkTR,CE5SE,2BACE,YF8SJ,CE/SE,kDAII,6BF8SN,CElTE,oGASI,sBF6SN,CEzSI,kHAGI,UF0SR,CExSQ,gIACE,SF2SV,CEpSE,uBAEE,cAAe,CADf,UFuSJ,CExSE,2CAKI,YAAa,CACb,SAAU,CACV,YFsSN,CEnSI,8BACE,aAAc,CAMd,eAAgB,CAJhB,QAAS,CAET,iBAAkB,CADlB,SAAU,CAEV,eAAgB,CAEhB,0BANA,UF2SN,CEnSM,oCAGE,UAAW,CAFX,aAAc,CACd,YFsSR,CEpSS,+DACC,YFsSV,CEjSM,gDACE,6BFmSR,CEhSM,qCACE,+BFkSR,CE/RM,oCACE,eFiSR,CE9TI,iCAiCI,QAAS,CACT,SFgSR,CE9RS,8FASG,eAAgB,CAFhB,sBAGA,cAAe,CARf,aAAc,CAEd,YAIA,iBAHA,QAAS,CACT,mBAKA,0BARA,UFuSZ,CE7RY,oGACE,kBF+Rd,CE3RU,uGAEI,kBF4Rd,CExRU,uGAGI,sBAAuB,CADvB,sBAEA,kBFyRd,CE5QA,wTAKM,cF8QN,CG96BE,gBACE,aHg7BJ,CG56BK,mCAEC,aAAc,CADd,gBH+6BN,CGz6BK,kCAEC,MAAO,CADP,UH46BN,CGt6BK,sCACC,wBHw6BN,CGh6BW,uEAEC,aAAc,CADd,gBHm6BZ,CGv5BO,mDAEC,UADA,UH05BR,CGn5BO,wDAEC,aAAc,CADd,iBHs5BR,CG/4BS,yEACC,gBHi5BV,CGz4BK,4CACC,gBH24BN,CGv4BO,2DACC,UAAW,CAEX,aAAc,CADd,gBH04BR,CGl4BI,sBACE,aHo4BN,CG93BK,8FACC,wBHi4BN,CG33BK,8FACC,wBH83BN,CG13BE,wCAaI,kBAJA,oBAAqB,CAErB,YACA,iBAFA,eAHA,iBAAkB,CAOlB,qCANA,SH43BN,CGl3BO,kFAEC,MAAO,CADP,SHq3BR,CG/2BO,gFAEC,QAAS,CADT,OHk3BR,CG52BO,4GAEC,QAAS,CADT,SH+2BR,CGv2BO,8JAEC,UADA,OH02BR,CGp2BO,4JAEC,MAAO,CADP,UHu2BR,CGh2BO,qFAEC,QAAS,CADT,OHm2BR,CG71BO,mFAEC,MAAO,CADP,SHg2BR,CGz1BO,2KACC,yBH21BR,CGr1BO,yKACC,yBHu1BR,CG90BO,8gBAIC,gBAAiB,CACjB,0BAFA,gCADA,MAAO,CADP,SHu1BR,CG10BO,igBAIC,+BACA,0BAFA,iBAAkB,CADlB,QAAS,CADT,OHm1BR,CGp0BO,w/BAIC,+BACA,kBAFA,gCADA,QAAS,CADT,SHg1BR,CGp0BO,kDACC,aAAc,CACd,gBHs0BR,CG/zBK,6CACC,aHi0BN,CI9iCC,SpDIC,oCoDMA,mBACA,yBACA,kBpDhBA,qBAAsB,CoDOtB,oBAAqB,CpDHrB,eoDOA,epDNA,0BoDGA,WAAY,CpDFZ,mBoDMA,iBpDLA,eAAgB,CoDEhB,gBAAiB,CAQjB,SAAU,CAPV,aAAc,CAQd,kBAAoB,CALpB,kBAYF,CALE,qCpDjBA,qBoD2BF,CA1BC,kCAuBG,oBAAqB,CACrB,aAAc,CACd,aAMJ,CAHE,oBAEE,sBAEA,cAAe,CADf,cAAe,CAFf,eAAgB,CAIhB,kBAKJ,CAHI,0BACE,qBAKN,CADE,mBACE,wBAGJ,CAFK,6IAKC,UAIN,CAAE,mBACE,wBAA6B,CAC7B,wBAAyB,CACzB,cAEJ,CAAI,yDACE,aAEN,CACI,qDAEE,UACN,CAEI,2BACE,wBAAN,CAGI,0BACE,wBADN,CAKE,gBACE,YAHJ,CAcK,cAEC,mBACA,qBAFA,aAVN,CAcK,sBAEC,mBACA,qBAFA,UAVN,CAIK,iBAEC,mBACA,qBAFA,aAAN,CAIK,yBAEC,mBACA,qBAFA,UAAN,CANK,aAEC,mBACA,qBAFA,aAUN,CANK,qBAEC,mBACA,qBAFA,UAUN,CAhBK,iBAEC,mBACA,qBAFA,aAoBN,CAhBK,yBAEC,mBACA,qBAFA,UAoBN,CA1BK,gBAEC,mBACA,qBAFA,aA8BN,CA1BK,wBAEC,mBACA,qBAFA,UA8BN,CApCK,gBAEC,mBACA,qBAFA,aAwCN,CApCK,wBAEC,mBACA,qBAFA,UAwCN,CA9CK,cAEC,mBACA,qBAFA,aAkDN,CA9CK,sBAEC,mBACA,qBAFA,UAkDN,CAxDK,cAEC,mBACA,qBAFA,aA4DN,CAxDK,sBAEC,mBACA,qBAFA,UA4DN,CAlEK,cAEC,mBACA,qBAFA,aAsEN,CAlEK,sBAEC,mBACA,qBAFA,UAsEN,CA5EK,eAEC,mBACA,qBAFA,aAgFN,CA5EK,uBAEC,mBACA,qBAFA,UAgFN,CAtFK,cAEC,mBACA,qBAFA,aA0FN,CAtFK,sBAEC,mBACA,qBAFA,UA0FN,CAhGK,kBAEC,mBACA,qBAFA,aAoGN,CAhGK,0BAEC,mBACA,qBAFA,UAoGN,CA1GK,gBAEC,mBACA,qBAFA,aA8GN,CA1GK,wBAEC,mBACA,qBAFA,UA8GN,CApGK,iBAEC,mBACA,qBAFA,aAwGN,CAzGK,oBAEC,mBACA,qBAFA,aA6GN,CA9GK,eAEC,mBACA,qBAFA,aAkHN,CAnHK,iBAEC,mBACA,qBAFA,aAuHN,CA9NC,8CAuHG,eA2GJ,CCjOE,qBAGE,aAAc,CADd,eAAgB,CADhB,cAAe,CAGf,gBDmOJ,CC/NK,iCAEC,aAAc,CADd,gBDkON,CC3NK,sEAEC,aAAc,CADd,gBD+NN,CE5OC,iBtDDC,oCARA,qBAAsB,CAGtB,sBsDSA,oBAAqB,CtDRrB,esDSA,WAAY,CtDRZ,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SsDaF,CANC,kCAOG,SAEJ,CATC,wEAWG,gBACJ,CAIC,mBtDjBC,oCsDqBA,oBAAqB,CtD7BrB,qBAAsB,CAGtB,sBsD4BA,cAAe,CAHf,mBAAoB,CtDxBpB,eACA,0BACA,mBACA,eAAgB,CsDuBhB,iBtD5BA,SAAU,CsDyBV,iBAUF,CAJE,4BACE,kBAMJ,CAHE,yBAIE,aAAc,CAHd,oBAAqB,CAErB,eAAgB,CADhB,OAOJ,CAFE,oEAGI,WAAY,CADZ,UAIN,CAEC,WtD5CC,oCARA,qBAAsB,CAGtB,sBsDwDA,cAAe,CAFf,oBAAqB,CtDrDrB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CsDyDT,YAAa,CtDxDb,SAAU,CsDqDV,iBAAkB,CAClB,QAUF,CALG,8GAGC,oBAOJ,CAJG,wCACC,yCAMJ,CAHE,yBASE,yCAA2C,CAC3C,wBAAyB,CAJzB,yBACA,iBAAkB,CAIlB,UAAW,CANX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAMN,iBAAkB,CAJlB,UAYJ,CAFG,iEAEC,kBAIJ,CADE,iBA0BE,sBAGA,yBACA,iBAAkB,CAPlB,aAAc,CAEd,YAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAUN,mBAPA,UATJ,CAdI,uBASE,yBAEA,aAAc,CACd,mBAFA,YAAa,CAMb,WAAY,CAZZ,aAAc,CAEd,YAHA,QAAS,CAKT,iBADA,gBAOA,SAAU,CAbV,iBAAkB,CAClB,OAAQ,CAWR,kBAAmB,CAEnB,iDAVA,UA2BN,CACE,iBAIE,QAAS,CAGT,cAAe,CAFf,MAAO,CAGP,SAAU,CAPV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,SAGJ,CAEE,+CAEI,oBADN,CAOC,oCAEG,oBANJ,CAQI,0CAEE,SAAU,CADV,oBAEA,gDANN,CAWC,oBACC,kBATF,CAQC,qCAIG,yBACA,kBATJ,CAWI,2CACE,+BATN,CACC,qCAaG,kBAXJ,CAcE,yBACE,sBACA,kBAZJ,CAgBC,iBAEC,gBAAiB,CADjB,iBAbF,CAiBC,0BASC,gBAKA,oBAAoB,CAApB,kBAAoB,CAApB,6BAAoB,CARpB,sBASA,cAAe,CAbf,oBAAqB,CAKrB,eAJA,YAKA,iBAJA,QAAS,CACT,eAJA,iBAAkB,CAelB,mEAjBF,CACC,4BAmBG,qBAjBJ,CAFC,4CA4BG,WAAY,CAHZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAGN,UAAW,CADX,UAhBJ,CAqBG,iDAEC,eADA,YAEA,gBAnBJ,CAsBG,iDACC,YAEA,iBADA,aAnBJ,CAwBI,mDASE,yBAJA,kBAAuB,CAMvB,UAAW,CAPX,aAAc,CAGd,WAAY,CAJZ,SAAU,CAKV,cAPA,iBAAkB,CAClB,SAQA,+BAAiC,CAJjC,SAjBN,CA0BE,sCACE,8BACA,yBAxBJ,CA2BE,qCACE,yBAzBJ,CA4BE,iDACE,iBA1BJ,CA6BE,gCAEE,cADA,iBA1BJ,CA8BE,uCACE,yCA5BJ,CAlDC,sIAqFG,QAAS,CACT,SAAU,CACV,mBAAoB,CAHpB,OA1BJ,CAgCE,0EAGE,gBACA,qBAFA,cADA,SA3BJ,CAgCI,iFACE,wBA9BN,CAiCI,sFACE,oBA/BN,CAkCI,gFAEE,qBADA,aA/BN,CAkCM,uFACE,wBAhCR,CAoCI,iFAEE,qBADA,aAjCN,CAoCM,wFACE,wBAlCR,CAsCI,uFACE,yCApCN,CAwCG,iGAEC,mBACA,qBAFA,UApCJ,CAwCI,uGAEE,mBACA,qBAFA,UApCN,CAyCI,wGAEE,mBACA,qBAFA,UArCN,CA0CI,8GACE,yCAxCN,CA4CE,mCAIE,kBA1CJ,CA4CI,2HAJA,yBACA,qBAFA,qBAjCJ,CA6CI,+CACE,yBA3CN,CA+CE,oEAEE,yBACA,qBACA,eAAgB,CAHhB,qBA1CJ,CAiDA,0BACE,GAEE,UAAY,CADZ,kBA9CF,CAkDA,GAEE,SAAU,CADV,oBA/CF,CACF,CCvTE,qCACE,aDyTJ,CCnTE,yCAGE,aAAc,CADd,gBADA,cDuTJ,CChTE,uDAEE,sBADA,oBDmTJ,CC7SO,yGAEC,MAAO,CADP,UDgTR,CCzSK,4FAEC,0BADA,8BD4SN,CCzSK,0HACC,0BD2SN,CCtSK,2FACC,yBDwSN,CClSO,qGACC,0BDoSR,CElVC,UxDDC,oCwDKA,gBACA,kBxDdA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CwDUV,iBAIF,CAAE,cACE,aAEJ,CACE,oBACE,cAAe,CACf,0CACJ,CACI,0BACE,yBACA,oGACN,CAGE,mBACE,wBADJ,CAIE,eAOE,uBACA,gCACA,0BALA,sBAEA,eADA,eAAgB,CAHhB,kBAAmB,CADnB,gBAEA,cAIJ,CpEjCE,2CAHE,UAAW,CADX,aoE8CJ,CpE1CE,qBAGE,UoEuCJ,CAJI,uBAEE,kBAAmB,CADnB,YAON,CAHI,qBACE,oBAAqB,CACrB,SAEA,eAAgB,CADhB,eAGA,sBAAuB,CADvB,kBAMN,CAXI,uFAUI,MAAO,CAEP,eAAgB,CADhB,YAMR,CAlCE,6BAkCI,UAAW,CAEX,sBAEA,eADA,eAAmB,CAFnB,mBAMN,CADM,iCACE,+BAGR,CAEE,gBAIE,sBAEA,eADA,eAAmB,CAHnB,gBAAiB,CACjB,cAEJ,CAGK,8BAEC,aAAc,CADd,iBAAN,CAKE,eACE,YAHJ,CpEpFE,2CAHE,UAAW,CADX,aoEiGJ,CpE7FE,qBAGE,UoE0FJ,CAFE,sCACE,YAAa,CACb,cAIJ,CADE,6DACE,oBAAqB,CACrB,SAGJ,CAAE,eAGE,QAAS,CACT,eAAgB,CAChB,mHAHA,aAMA,kBAAoB,CAPpB,YAOJ,CAGM,+BAGE,qGAFA,iBAAkB,CAClB,SAAR,CAME,2DACE,gBACA,gBAJJ,CAOE,sDACE,gBALJ,CAQE,mCAGE,gBAAiB,CADjB,iBAAkB,CADlB,eAJJ,CASE,kBAEI,aAAc,CACd,UARN,CAKE,oBAOI,yBATN,CAaE,kBAKE,gBACA,6BALA,YAAa,CAGb,eAAgB,CAFhB,QAAS,CACT,SARJ,CpE7IE,iDAHE,UAAW,CADX,aoE0JJ,CpEtJE,wBAGE,UoEmJJ,CAKI,qBAEE,sBADA,cAEA,iBAHN,CAAI,0BAWI,cAAe,CAJf,aAAc,CAEd,eACA,mBAFA,cAAe,CAFf,iBAER,CAKQ,gCACE,cACA,oBAHV,CAZI,6EAsBM,sBAFA,oBAAqB,CAGrB,gBAAiB,CACjB,oBAAsB,CAHtB,UADV,CAMU,yFACE,aAHZ,CAxBI,mCAgCM,eACA,gBALV,CASM,sCACE,8BAPR,CASS,oDAEC,8BADA,iBANV,CAaE,oCAEE,mBADA,cAVJ,CAaI,0CAEE,eADA,cAVN,CAeE,oCACE,iBAbJ,CAgBE,qCACE,gBAdJ,CAiBE,eACE,YAAa,CACb,aAfJ,CpEhNE,2CAHE,UAAW,CADX,aoE6NJ,CpEzNE,qBAGE,UoEsNJ,CASI,sBACE,kBAPN,CASO,oCAEC,iBAAkB,CADlB,eANR,CAWI,sBACE,SACA,eATN,CAOI,2CAKI,iBATR,CAaI,qBAEE,sBAEA,eADA,eAAgB,CAFhB,eAAgB,CAKhB,sBAAuB,CADvB,kBAVN,CAcI,2BACE,qBAZN,CAgBE,kBACE,eAdJ,CAiBE,iCACE,oFAfJ,CCjQC,+BAIG,eAFA,gBACA,cDmQJ,CCtQC,2EAQO,aDiQR,CCzQC,sEAYO,eADA,aDkQR,CC7QC,+BAiBG,YD+PJ,CEpQC,cACC,aAAc,CACd,UAPF,CASE,qBACE,kBAAmB,CACnB,mBACA,kBAPJ,CAIE,0CAwIA,6BAFA,oBAAqB,CAmGrB,YACA,iBAnGA,kBAAmB,CAqDnB,UAxLF,CA2LG,qEACC,iBAzLJ,CAqIE,6CA6FA,YACA,iBA9CA,UAhLF,CAmLG,wEACC,iBAjLJ,CAiIE,6CAyFA,YACA,iBA9CA,UAxKF,CA2KG,wEACC,iBAzKJ,CAZE,sBACE,kBAAmB,CAEnB,kBAAmB,CADnB,UAeJ,CAjBE,0CASI,6BACA,kBAFA,YADA,UAgBN,CAvBE,kEAaM,eAaR,CA1BE,8CAmBI,SAUN,CA7BE,iDAyBM,6BACA,kBAHA,YACA,eAAgB,CAFhB,UAcR,CARQ,iGACE,SAUV,CAvCE,oDAiCQ,eASV,CAHE,oEAGI,eAGN,CANE,4FAMM,eAGR,CAEE,mIAGI,mBADN,CAME,+PA+KA,sBAAuB,CADvB,eAAgB,CALhB,iBAAkB,CAIlB,SAvKF,CA2KE,mSAYE,kDANA,qGAFA,QAAS,CAST,UAAW,CARX,UAAW,CAJX,iBAAkB,CAElB,WAAY,CADZ,KA9JJ,CATG,4IAQG,UAUN,CALE,sBACE,oBAAqB,CACrB,UAOJ,CATE,2CAyBA,6BACA,kBAHA,oBAAqB,CAoHrB,YACA,iBApCA,eAhFA,kBAAmB,CA+EnB,UApFF,CAwFG,sEAEC,eADA,UArFJ,CAyFG,sEAGC,iBAAkB,CADlB,eADA,UArFJ,CA0FG,qEACC,kBAxFJ,CADE,8CA6GA,YACA,iBApCA,eADA,UAlEF,CAsEG,yEAEC,eADA,UAnEJ,CAuEG,yEAGC,iBAAkB,CADlB,eADA,UAnEJ,CAwEG,wEACC,kBAtEJ,CAfE,8CAyGA,YACA,iBApCA,eADA,UAhDF,CAoDG,yEAEC,eADA,UAjDJ,CAqDG,yEAGC,iBAAkB,CADlB,eADA,UAjDJ,CAsDG,wEACC,kBApDJ,CAnEE,2CA0CA,6BAFA,oBAAqB,CAmGrB,YACA,iBAnGA,kBAAmB,CAqDnB,UAnBF,CAsBG,sEACC,iBApBJ,CAhCE,8CA6FA,YACA,iBA9CA,UAXF,CAcG,yEACC,iBAZJ,CApCE,8CAyFA,YACA,iBA9CA,UAHF,CAMG,yEACC,iBAJJ,CA9FE,0CA2DA,6BAFA,oBAAqB,CAkFrB,YACA,iBAfA,gBAnEA,kBAAmB,CAkEnB,WArBF,CAxCE,6CA4EA,YACA,iBAfA,gBADA,WAfF,CA1CE,6CAwEA,YACA,iBAfA,gBADA,WATF,CAnHE,0CA2EA,kBAAmB,CAGnB,6BAJA,YAAa,CAiEb,YA/DA,sBAAuB,CAgEvB,iBA/DA,kBAAmB,CAqDnB,UALF,CAQG,oEACC,iBANJ,CA9CE,+CACE,YAgDJ,CA7CE,8CAqDA,YACA,iBAnDE,iBADA,gBA0CF,UAQF,CALG,wEACC,iBAOJ,CA4BA,gCACE,GACE,4BA1BF,CA6BA,GACE,2BA3BF,CACF,CC1PE,kBACE,aD4PJ,CCxPK,uCAEC,iBAAkB,CADlB,eD2PN,CC1OO,yQACC,uCDgPR,CC1OA,oCACE,GACE,yBD4OF,CCzOA,GACE,4BD2OF,CACF,CEnRE,4CAIM,eADA,aCFR,CDQE,4CAIM,eADA,cCPR,CDcK,0DAGK,gBCdV,CDmBK,0DAGK,oBCnBV,CCXE,cACE,aDaJ,CCdE,0CAKM,iBDYR,CCVQ,uDACE,aDYV,CCpBE,mDAaQ,iBADA,cDYV,CCxBE,+DAkBQ,iBADA,gBDWV,CC5BE,wEAqBU,QDUZ,CCJK,0CAEG,ODKR,CCEK,gGAEG,ODER,CCJK,sDAKG,ODER,CCgBW,4oBAEC,aAAc,CADd,gBDHZ,CCaE,uBACE,aDXJ,CCeK,oDACC,gBDbN,CEhEE,+BAEE,qBFkEJ,CEpEE,8HAMI,eFoEN,CElEM,0JAIE,gCACA,UAAW,CAFX,MAAO,CAFP,iBAAkB,CAClB,OF0ER,CEpFE,sMAiBM,UFyER,CEvEQ,0OACE,uCF4EV,CEtEQ,wcAGE,QAAS,CADT,KAAM,CAEN,UF8EV,CE3EQ,sOAEE,iDADA,MFiFV,CE7EQ,kOAEE,kDADA,OFmFV,CE5ES,4qBACC,SFuFV,CEjFE,0KAQM,QFiFR,CE5EE,kEAKI,eAAgB,CADhB,gBADA,OF+EN,CElFE,sLAYM,KF8ER,CE1FE,wFAkBI,OF4EN,CEvEE,8HAII,qBAAsB,CACtB,cFyEN,CE9EE,sLASM,iBACA,iBF2ER,CErFE,8OAcM,eF6ER,CE3FE,0MAmBM,qBF8ER,CE5EQ,wcAIE,WAAY,CADZ,MAAO,CADP,OFsFV,CEjFQ,sOAEE,iDADA,KFuFV,CEnFQ,kOACE,QAAS,CACT,iDFwFV,CElFS,4qBACC,SF6FV,CEvIE,sMAgDM,SF6FR,CE3FQ,0OACE,6BFgGV,CEnJE,4aAyDM,aAAc,CACd,qBFoGR,CE/FE,kGAIM,OF+FR,CEnGE,oFAWI,8BADA,gBF8FN,CExGE,4JAcM,iBF8FR,CEzFE,gEAGI,OF0FN,CE7FE,oGAMM,MF2FR,CEjGE,sFAcI,+BADA,kBADA,OF2FN,CEvGE,8JAiBM,kBF0FR,CGtRC,mBhEIC,oCARA,qBAAsB,CAGtB,sBgEQA,aAAc,ChEPd,eACA,0BgEIA,YAAa,ChEHb,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CgEKV,iBAAkB,CAClB,WAAY,CAEZ,YHgSF,CG7RE,0BACE,YH+RJ,CG5RE,wBASE,2BAA4B,CAD5B,sBAEA,kBAEA,sGALA,oBAAqB,CALrB,QAAS,CADT,gBAAiB,CAUjB,YAAa,CAPb,iBAAkB,CAClB,eAAgB,CAFhB,cAGA,eHoSJ,CG5RI,6BAEE,kBAAmB,CAKnB,sBAMA,cAAe,CAZf,YAAa,CAQb,eADA,eAAmB,CAEnB,iBANA,QAAS,CADT,eAAgB,CAGhB,eAAgB,CADhB,iBAOA,sBAAuB,CAEvB,kBAAoB,CAHpB,kBHiSN,CG5SI,kCAiBI,SACA,kBH8RR,CG3RM,oCAKE,sBAAuB,CACvB,QAAS,CAHT,sBAIA,cAAe,CANf,SAAU,CAGV,eAFA,gBHkSR,CG3RQ,0CACE,aH6RV,CGzRM,mCACE,kBH2RR,CGvRQ,kFAGE,sBAAuB,CADvB,sBAEA,kBHyRV,CIhWC,0FAMK,mBACA,yBAHA,QAAS,CACT,iBAGA,iDJgWN,CI9VM,wGAEE,gBADA,aJkWR,CI7WC,kGAiBK,iBJgWN,CI3VG,sSAKK,eJ4VR,CIvVG,oHAIK,yBJuVR,CIrVQ,kIACE,wBJwVV,CInVG,0HAIK,yBJmVR,CIjVQ,wIACE,qBJoVV,CI7UG,sSAKK,cJ8UR,CIzUG,sHAIK,yBJyUR,CIvUQ,oIACE,uBJ0UV,CIrUG,wHAIK,yBJqUR,CInUQ,sIACE,sBJsUV,CAxZC,U7DDC,oCARA,qBAAsB,CAGtB,sB6DSA,YAAa,C7DRb,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,S6D2aF,CApaC,oDAWG,kBAAmB,CAFnB,YAAa,CACb,SAAU,CAFV,iBAmaJ,CA3aC,0FAkBK,kBAAmB,CAHnB,oBAAqB,CACrB,YAAa,CACb,SAAU,CAEV,eAAgB,CALhB,iBAAkB,CAOlB,sBAAuB,CADvB,kBAkaN,CA9ZM,8MAME,UAAW,CAFX,SAAU,CAGV,mBAAoB,CALpB,iBAAkB,CAGlB,uBAFA,SAsaR,CAjcC,0FAqCK,YAAa,CADb,iBAAkB,CAElB,wBAiaN,CAvcC,sGA4CK,kBAAmB,CADnB,YAiaN,CA9ZM,oHAGE,mBAAoB,CAFpB,iBAAkB,CAClB,iBAkaR,CAldC,0FAwDK,sBAAuB,CACvB,QAAS,CAFT,iBADA,iBAmaN,CA9ZM,sGAGE,QAAS,CAIT,UAAW,CAFX,UAAW,CADX,MAAO,CAHP,iBAAkB,CAClB,OAAQ,CAIR,0BAkaR,CAneC,wFA0EK,mBACA,yBACA,0BAEA,cAAe,CANf,gBADA,eAMA,YAAa,CAJb,cAMA,iDAgaN,CA9ZM,oGACE,aAiaR,CA9ZM,0MAEE,aAkaR,CA7ZE,wBACE,SA+ZJ,CAxZQ,sLACE,sBA2ZV,CApZE,kBAEE,mBACA,mBAAoB,CAFpB,iBAwZJ,CAlZE,cAGE,kBAAmB,CAGnB,sBAAuB,CACvB,QAAS,CAET,cAAe,CAPf,mBAAoB,CAGpB,eAGA,YAAa,CAJb,eAHA,iBA4ZJ,CAhZM,wGAEE,aAoZR,CA3YI,uCAJE,YAAa,CACb,kBA8ZN,CA3ZI,qBAME,sBAAuB,CACvB,WAAY,CAHZ,sBAKA,cAAe,CARf,SAAU,CAIV,eAFA,gBADA,iBAyZN,CA/YM,2BACE,qBAiZR,CA7YI,oBACE,aA+YN,CA5YI,oDACE,cACA,kCA8YN,CA3YI,oCACE,sBACA,kBA6YN,CAxYM,wPAEE,qBA4YR,CAxYK,4CACC,QA0YN,CA1cE,uBAoEI,iBAyYN,CArYE,4BACE,iBAuYJ,CAnYE,kBAOE,iBAAkB,CAClB,UA+XJ,CAtYI,yBACE,SAAU,CAEV,YAAa,CADb,WAyYN,CAjYE,kBACE,YAmYJ,CAjYI,yBACE,YAmYN,CA7XI,+CAEE,eA+XN,CA7XM,2DACE,SAgYR,CA7XM,6DACE,SAAU,CACV,sBAgYR,CA5XI,uBAGE,OAAQ,CAFR,iBAAkB,CAClB,eA+XN,CA5XM,6BACE,SA8XR,CA3XM,8BACE,SAAU,CACV,sBA6XR,CK/mBC,clEGC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SkEWF,CARC,4BAQG,0BAA2B,CAC3B,uCAAwC,CAHxC,qBAAsB,CADtB,aAAc,CADd,iBAAkB,CAGlB,kBASJ,CAhBC,0BAcG,aAAc,CACd,QAAS,CAET,eAAgB,CADhB,SAAU,CAHV,iBAUJ,CAJI,gCACE,YAMN,CAHI,mCACE,cAKN,CA7BC,uCA4BK,mBAIN,CAhCC,6HAiCO,iBAGR,CAAM,oDACE,mBAER,CAHM,uJAKI,kBAEV,CA3CC,+CAiDO,qBAHR,CA9CC,iFAyDG,kBAAmB,CADnB,uBALJ,CAnDC,2BAgEG,aAAc,CADd,MAAO,CAFP,iBAAkB,CAClB,KALJ,CASI,mEAGE,UAAW,CADX,aANN,CAUI,iCACE,UARN,CAWI,0CACE,iBATN,CApEC,2BAkFG,YAAa,CACb,UAAW,CACX,WAAY,CACZ,cAXJ,CA1EC,+BAwFK,aAXN,CAcI,6CACE,YAZN,CAeI,wCACE,mBAbN,CAnFC,8CAqGG,aAfJ,CAtFC,0CAyGG,iBAhBJ,CAzFC,2CA6GG,aAAc,CACd,WAjBJ,CA7FC,wCAkHG,YAlBJ,CAhGC,oDAmIG,QAAS,CAET,cAAe,CAXf,aAAc,CAMd,WAAY,CAJZ,WAAY,CAKZ,aAAc,CAJd,gBAAiB,CACjB,SAAU,CANV,iBAAkB,CAClB,OAAQ,CAER,UAVJ,CAsBI,oLALA,sBAAuB,CAHvB,iBAAkB,CAKlB,YAXJ,CAoBM,4JACE,SAfR,CAmBI,gGACE,WAhBN,CAnIC,0BAwJG,UAlBJ,CAoBI,iCACE,WAlBN,CAzIC,0BAgKG,WApBJ,CAsBI,iCACE,WApBN,CA/IC,0BA2KG,QAAS,CAGT,sBAAwB,CACxB,sBAAuB,CAHvB,MAAO,CAQP,eAAgB,CAHhB,eAAgB,CAChB,eAAgB,CAFhB,gBAAiB,CAGjB,cAAe,CAVf,iBAAkB,CAClB,OAAQ,CAGR,UAhBJ,CAyBI,iCACE,WAvBN,CA0BI,8BAEE,WAAY,CADZ,QAvBN,CApKC,6BAmMK,kBAAuB,CAFvB,oBAAqB,CACrB,aAAc,CAGd,WACA,aACA,SAAU,CAPV,iBAAkB,CAQlB,iBAAkB,CAClB,kBAAmB,CAEnB,kBAAoB,CADpB,kBAAmB,CANnB,UAlBN,CAlLC,oCAqNO,gBACA,QAAS,CACT,iBAAkB,CAJlB,iBAAkB,CAMlB,cAAe,CAVf,aAAc,CAKd,WAAY,CAHZ,WASA,UAAY,CAFZ,YAAa,CANb,SAAU,CAJV,iBAAkB,CAalB,kBAAoB,CAXpB,UAdR,CA2BQ,oFAEE,WAzBV,CA4BQ,0CAIE,YAEA,UAAW,CADX,UAJA,iBAAkB,CAElB,WADA,QAtBV,CA8BM,0CACE,UA5BR,CA8BQ,iDACE,gBACA,SA5BV,CA+BQ,gGAEE,SA7BV,CAoCC,mCAGG,WAAY,CACZ,qBAAsB,CAEtB,WAAY,CACZ,QAAS,CALT,OAAQ,CAMR,0BAA2B,CAH3B,SAhCJ,CAqCI,wCAEE,SAAU,CADV,UAlCN,CAsCI,yCAEE,SAAU,CADV,UAnCN,CAmBC,sCAsBK,YACA,aACA,sBAAwB,CAHxB,SAlCN,CAaC,6CA4BO,YADA,SApCR,CAwCM,6GAEE,YADA,SAjCR,CC5PE,kBACE,aD8PJ,CC1PK,6CAEC,SAAU,CADV,OD6PN,CCvPK,4CAEC,SAAU,CADV,WD0PN,CCvPM,mDACE,WDyPR,CCnPK,4CAEC,UAAW,CADX,UDsPN,CCnPM,mDACE,WDqPR,CC9OK,2CACC,0BDgPN,CCzOK,oDACC,qBD2ON,CExRG,uBpEID,oCARA,qBAAsB,CAGtB,sBoESE,cAAe,CpERjB,eACA,0BACA,mBoEGE,aAAc,CpEFhB,eAAgB,CANhB,QAAS,CoEUP,YAAa,CpETf,SAAU,CoEKR,iBAAkB,CAClB,QAAU,CAEV,kBCmBJ,CDfK,4LAGC,oBCiBN,CDdI,qCASE,4CAA8C,CAC9C,6BAA8B,CAJ9B,yBACA,kBAIA,UAAW,CANX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAMN,iBAAkB,CAJlB,UCuBN,CDbK,qGAEC,kBCeN,CDZI,6BAQE,sBACA,yBAIA,uBAAyB,CAHzB,kBAHA,aAAc,CAHd,aAAc,CAEd,YAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAYN,kBAAoB,CATpB,UCqBN,CDVM,mCAYE,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CATZ,aAAc,CAEd,oBAHA,UAAW,CAQX,SAAU,CAZV,iBAAkB,CAClB,OAAQ,CAUR,qDAAuD,CAEvD,6DAPA,kBCeR,CDHI,6BAIE,QAAS,CAKT,cAAe,CADf,WAAY,CAHZ,MAAO,CAKP,SAAU,CATV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,UAAW,CADX,SCSN,CDAG,kEAGC,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CAPZ,aAAc,CAKd,SAAU,CANV,iBAAkB,CAKlB,qDAAuD,CAEvD,oDCGJ,CDCG,4DAEG,yBACA,oBCAN,CDIG,gCACC,kBCFJ,CDIK,iGAGG,mBAAoB,CADpB,4BCFR,CDHG,6DAWG,kBAAmB,CACnB,mBCLN,CDPG,6DAgBG,yBACA,8BCNN,CDQM,mEAGE,mBAAoB,CADpB,uBAAyB,CADzB,oBCJR,CDUI,qCACE,sBACA,kBCRN,CDYK,uHAEC,iBCVN,CDcG,+BpE7ID,oCoEgJE,oBAAqB,CpExJvB,qBAAsB,CAGtB,sBoEuJE,cAAe,CAHf,mBAAoB,CpEnJtB,eACA,0BACA,mBoEmJE,oBpElJF,eAAgB,CANhB,QAAS,CACT,SqEoJF,CDMI,qCAIE,aAAc,CAHd,oBAAqB,CAErB,eAAgB,CADhB,OCFN,CDOK,sEACC,kBCLN,CDQI,8DACE,eCNN,CDSI,+FAGI,WAAY,CADZ,UCPR,CDaG,4BAEC,gBAAiB,CADjB,iBCVJ,CDcG,6BpEhLD,oCARA,qBAAsB,CAGtB,sBoEuLE,oBAAqB,CpEtLvB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SqEoLF,CDMI,kCACE,gBCJN,CDMM,6CACE,cCJR,CDQI,oEACE,aCNN,CDWG,kEAEG,sBACA,oBCVN,CDOG,wEAaG,yBACA,QAAS,CAGT,WAAY,CALZ,WAFA,QAAS,CAMT,SAAU,CAPV,OAAQ,CAMR,uCAAyC,CAJzC,SCPN,CDgBK,uGACC,iCACA,4BCdN,CA1MC,cACC,WA4MF,CA1ME,uBAEE,iBADA,KA6MJ,CAzME,oBAGE,sBAAuB,CAFvB,YAAa,CACb,gBA4MJ,CAzMK,+DAGG,WAAY,CADZ,UA2MR,CArME,mBAWE,2CAA4C,CAD5C,+BATA,WAAY,CAEZ,YAAa,CAMb,eAAgB,CAJhB,cAHA,eAAgB,CAKhB,aAAc,CADd,cAEA,kBA0MJ,CArMI,wBAGE,kBAAmB,CAMnB,cAAe,CARf,YAAa,CACb,gBAAiB,CAIjB,iBADA,eAAgB,CADhB,iBAIA,sBAAuB,CAEvB,kBAAoB,CAHpB,kBA0MN,CArMM,8BACE,kBAuMR,CApMM,iCACE,sBACA,kBAsMR,CApMQ,uCACE,sBAsMV,CAlMO,iDACC,sBACA,cAAe,CACf,mBAoMR,CAhMQ,gJAGE,yBADA,eAmMV,CA9LM,gCACE,SAgMR,CA7LM,wGAGE,sBACA,cAAe,CAFf,eAiMR,CA7LS,wKACC,qBAgMV,CA5LM,gCACE,aA8LR,C3DjOI,oGACE,iB2DmON,C3D/NI,8FACE,gB2DiON,C3D7NM,oGAGE,S2D+NR,C3DrNM,qCACE,S2DuNR,C3D3SK,mHACC,e2D6SN,C3D1SK,iJAEC,4BAA6B,CAD7B,yB2D6SN,C3DnSK,4RAEC,2BAA4B,CAD5B,wB2D0SN,C3DrSK,2IAEC,4BAA6B,CAD7B,yB2DwSN,CC3TI,6GAGE,aAAc,CADd,gBD8TN,CClUC,yCAYG,gBADA,cAAe,CADf,KD6TJ,CDtUG,cpEID,oCARA,qBAAsB,CAGtB,sBoESE,cAAe,CpERjB,eACA,0BACA,mBoEGE,aAAc,CpEFhB,eAAgB,CANhB,QAAS,CoEUP,YAAa,CpETf,SAAU,CoEKR,iBAAkB,CAClB,QAAU,CAEV,kBGmBJ,CHfK,sIAGC,oBGiBN,CHdI,4BASE,4CAA8C,CAC9C,6BAA8B,CAJ9B,yBACA,kBAIA,UAAW,CANX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAMN,iBAAkB,CAJlB,UGuBN,CHbK,0EAEC,kBGeN,CHZI,oBAQE,sBACA,yBAIA,uBAAyB,CAHzB,kBAHA,aAAc,CAHd,aAAc,CAEd,YAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAYN,kBAAoB,CATpB,UGqBN,CHVM,0BAYE,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CATZ,aAAc,CAEd,oBAHA,UAAW,CAQX,SAAU,CAZV,iBAAkB,CAClB,OAAQ,CAUR,qDAAuD,CAEvD,6DAPA,kBGeR,CHHI,oBAIE,QAAS,CAKT,cAAe,CADf,WAAY,CAHZ,MAAO,CAKP,SAAU,CATV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,UAAW,CADX,SGSN,CHAG,gDAGC,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CAPZ,aAAc,CAKd,SAAU,CANV,iBAAkB,CAKlB,qDAAuD,CAEvD,oDGGJ,CHCG,0CAEG,yBACA,oBGAN,CHIG,uBACC,kBGFJ,CHIK,sEAGG,mBAAoB,CADpB,4BGFR,CHHG,2CAWG,kBAAmB,CACnB,mBGLN,CHPG,2CAgBG,yBACA,8BGNN,CHQM,iDAGE,mBAAoB,CADpB,uBAAyB,CADzB,oBGJR,CHUI,4BACE,sBACA,kBGRN,CHYK,4FAEC,iBGVN,CHcG,sBpE7ID,oCoEgJE,oBAAqB,CpExJvB,qBAAsB,CAGtB,sBoEuJE,cAAe,CAHf,mBAAoB,CpEnJtB,eACA,0BACA,mBoEmJE,oBpElJF,eAAgB,CANhB,QAAS,CACT,SuEoJF,CHMI,4BAIE,aAAc,CAHd,oBAAqB,CAErB,eAAgB,CADhB,OGFN,CHOK,oDACC,kBGLN,CHQI,4CACE,eGNN,CHSI,6EAGI,WAAY,CADZ,UGPR,CHaG,mBAEC,gBAAiB,CADjB,iBGVJ,CHcG,oBpEhLD,oCARA,qBAAsB,CAGtB,sBoEuLE,oBAAqB,CpEtLvB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SuEoLF,CHMI,yBACE,gBGJN,CHMM,oCACE,cGJR,CHQI,kDACE,aGNN,CHWG,gDAEG,sBACA,oBGVN,CHOG,sDAaG,yBACA,QAAS,CAGT,WAAY,CALZ,WAFA,QAAS,CAMT,SAAU,CAPV,OAAQ,CAMR,uCAAyC,CAJzC,SGPN,CHgBK,4EACC,iCACA,4BGdN,CChNG,kBACC,aDkNJ,CC7MO,iDAEC,gBADA,cDgNR,CC3MS,4DACC,uBD6MV,CCvMO,0EACC,eDyMR,CE3NC,SAEC,kBAAmB,CACnB,WAAF,CAEE,wCAJA,YAMF,CAIE,iBACE,gBAFJ,CAOC,eACC,0BALF,CASC,gBACC,sBAPF,CAWC,aACC,wBATF,CAaC,uBACC,6BAXF,CAeC,sBACC,4BAbF,CAiBC,sBACC,4BAfF,CAmBC,aACC,sBAjBF,CAqBC,gBACC,kBAnBF,CAuBC,gBACC,oBArBF,CAwBC,SAEC,cAAe,CAEf,cAAe,CAHf,iBApBF,CCtCG,YACC,aAAc,CACd,cACA,cDwCJ,CCtCG,iBACC,SDwCJ,CCtCG,iBACC,UDwCJ,CCtCG,mBACC,gBDwCJ,CCtCG,kBACC,QDwCJ,CCvDG,YACC,aAAc,CACd,sBACA,sBDyDJ,CCvDG,iBACC,iBDyDJ,CCvDG,iBACC,kBDyDJ,CCvDG,mBACC,wBDyDJ,CCvDG,kBACC,QDyDJ,CCxEG,YACC,aAAc,CACd,sBACA,sBD0EJ,CCxEG,iBACC,iBD0EJ,CCxEG,iBACC,kBD0EJ,CCxEG,mBACC,wBD0EJ,CCxEG,kBACC,QD0EJ,CCzFG,YACC,aAAc,CACd,eACA,eD2FJ,CCzFG,iBACC,UD2FJ,CCzFG,iBACC,WD2FJ,CCzFG,mBACC,iBD2FJ,CCzFG,kBACC,QD2FJ,CC1GG,YACC,aAAc,CACd,sBACA,sBD4GJ,CC1GG,iBACC,iBD4GJ,CC1GG,iBACC,kBD4GJ,CC1GG,mBACC,wBD4GJ,CC1GG,kBACC,QD4GJ,CC3HG,YACC,aAAc,CACd,sBACA,sBD6HJ,CC3HG,iBACC,iBD6HJ,CC3HG,iBACC,kBD6HJ,CC3HG,mBACC,wBD6HJ,CC3HG,kBACC,QD6HJ,CC5IG,YACC,aAAc,CACd,aACA,aD8IJ,CC5IG,iBACC,QD8IJ,CC5IG,iBACC,SD8IJ,CC5IG,mBACC,eD8IJ,CC5IG,kBACC,QD8IJ,CC7JG,YACC,aAAc,CACd,sBACA,sBD+JJ,CC7JG,iBACC,iBD+JJ,CC7JG,iBACC,kBD+JJ,CC7JG,mBACC,wBD+JJ,CC7JG,kBACC,QD+JJ,CC9KG,YACC,aAAc,CACd,sBACA,sBDgLJ,CC9KG,iBACC,iBDgLJ,CC9KG,iBACC,kBDgLJ,CC9KG,mBACC,wBDgLJ,CC9KG,kBACC,QDgLJ,CC/LG,YACC,aAAc,CACd,eACA,eDiMJ,CC/LG,iBACC,UDiMJ,CC/LG,iBACC,WDiMJ,CC/LG,mBACC,iBDiMJ,CC/LG,kBACC,QDiMJ,CChNG,YACC,aAAc,CACd,sBACA,sBDkNJ,CChNG,iBACC,iBDkNJ,CChNG,iBACC,kBDkNJ,CChNG,mBACC,wBDkNJ,CChNG,kBACC,QDkNJ,CCjOG,YACC,aAAc,CACd,sBACA,sBDmOJ,CCjOG,iBACC,iBDmOJ,CCjOG,iBACC,kBDmOJ,CCjOG,mBACC,wBDmOJ,CCjOG,kBACC,QDmOJ,CClPG,YACC,aAAc,CACd,aACA,aDoPJ,CClPG,iBACC,QDoPJ,CClPG,iBACC,SDoPJ,CClPG,mBACC,eDoPJ,CClPG,kBACC,QDoPJ,CCnQG,YACC,aAAc,CACd,sBACA,sBDqQJ,CCnQG,iBACC,iBDqQJ,CCnQG,iBACC,kBDqQJ,CCnQG,mBACC,wBDqQJ,CCnQG,kBACC,QDqQJ,CCpRG,YACC,aAAc,CACd,sBACA,sBDsRJ,CCpRG,iBACC,iBDsRJ,CCpRG,iBACC,kBDsRJ,CCpRG,mBACC,wBDsRJ,CCpRG,kBACC,QDsRJ,CCrSG,WACC,aAAc,CACd,eACA,eDuSJ,CCrSG,gBACC,UDuSJ,CCrSG,gBACC,WDuSJ,CCrSG,kBACC,iBDuSJ,CCrSG,iBACC,ODuSJ,CCtTG,WACC,aAAc,CACd,sBACA,sBDwTJ,CCtTG,gBACC,iBDwTJ,CCtTG,gBACC,kBDwTJ,CCtTG,kBACC,wBDwTJ,CCtTG,iBACC,ODwTJ,CCvUG,WACC,aAAc,CACd,sBACA,sBDyUJ,CCvUG,gBACC,iBDyUJ,CCvUG,gBACC,kBDyUJ,CCvUG,kBACC,wBDyUJ,CCvUG,iBACC,ODyUJ,CCxVG,WACC,aAAc,CACd,aACA,aD0VJ,CCxVG,gBACC,QD0VJ,CCxVG,gBACC,SD0VJ,CCxVG,kBACC,eD0VJ,CCxVG,iBACC,OD0VJ,CCzWG,WACC,aAAc,CACd,sBACA,sBD2WJ,CCzWG,gBACC,iBD2WJ,CCzWG,gBACC,kBD2WJ,CCzWG,kBACC,wBD2WJ,CCzWG,iBACC,OD2WJ,CC1XG,WACC,aAAc,CACd,sBACA,sBD4XJ,CC1XG,gBACC,iBD4XJ,CC1XG,gBACC,kBD4XJ,CC1XG,kBACC,wBD4XJ,CC1XG,iBACC,OD4XJ,CC3YG,WACC,aAAc,CACd,eACA,eD6YJ,CC3YG,gBACC,UD6YJ,CC3YG,gBACC,WD6YJ,CC3YG,kBACC,iBD6YJ,CC3YG,iBACC,OD6YJ,CC5ZG,WACC,aAAc,CACd,qBACA,qBD8ZJ,CC5ZG,gBACC,gBD8ZJ,CC5ZG,gBACC,iBD8ZJ,CC5ZG,kBACC,uBD8ZJ,CC5ZG,iBACC,OD8ZJ,CC7aG,WACC,aAAc,CACd,qBACA,qBD+aJ,CC7aG,gBACC,gBD+aJ,CC7aG,gBACC,iBD+aJ,CC7aG,kBACC,uBD+aJ,CC7aG,iBACC,OD+aJ,CCzaG,WACC,YD2aJ,CC7ZG,kBACC,aD2aJ,CCzaG,iBACC,OD2aJ,CE5ZK,8BACC,cF0aN,CE7dK,4BAEC,SAAU,CADV,iBFgeN,CEzdK,4BAEC,iBADA,UF4dN,CErdK,8BAEC,aAAc,CADd,wBFwdN,CEzeK,4BAEC,SAAU,CADV,iBF4eN,CEreK,4BAEC,iBADA,UFweN,CEjeK,8BAEC,aAAc,CADd,wBFoeN,CErfK,4BAEC,SAAU,CADV,WFwfN,CEjfK,4BAEC,WADA,UFofN,CE7eK,8BAEC,aAAc,CADd,kBFgfN,CEjgBK,4BAEC,SAAU,CADV,kBFogBN,CE7fK,4BAEC,kBADA,UFggBN,CEzfK,8BAEC,aAAc,CADd,yBF4fN,CE7gBK,4BAEC,SAAU,CADV,kBFghBN,CEzgBK,4BAEC,kBADA,UF4gBN,CErgBK,8BAEC,aAAc,CADd,yBFwgBN,CEzhBK,4BAEC,SAAU,CADV,SF4hBN,CErhBK,4BAEC,SADA,UFwhBN,CEjhBK,8BAEC,aAAc,CADd,gBFohBN,CEriBK,4BAEC,SAAU,CADV,kBFwiBN,CEjiBK,4BAEC,kBADA,UFoiBN,CE7hBK,8BAEC,aAAc,CADd,yBFgiBN,CEjjBK,4BAEC,SAAU,CADV,kBFojBN,CE7iBK,4BAEC,kBADA,UFgjBN,CEziBK,8BAEC,aAAc,CADd,yBF4iBN,CE7jBK,4BAEC,SAAU,CADV,WFgkBN,CEzjBK,4BAEC,WADA,UF4jBN,CErjBK,8BAEC,aAAc,CADd,kBFwjBN,CEzkBK,6BAEC,SAAU,CADV,kBF4kBN,CErkBK,6BAEC,kBADA,UFwkBN,CEjkBK,+BAEC,aAAc,CADd,yBFokBN,CErlBK,6BAEC,SAAU,CADV,kBFwlBN,CEjlBK,6BAEC,kBADA,UFolBN,CE7kBK,+BAEC,aAAc,CADd,yBFglBN,CEjmBK,6BAEC,SAAU,CADV,SFomBN,CE7lBK,6BAEC,SADA,UFgmBN,CEzlBK,+BAEC,aAAc,CADd,gBF4lBN,CE7mBK,6BAEC,SAAU,CADV,kBFgnBN,CEzmBK,6BAEC,kBADA,UF4mBN,CErmBK,+BAEC,aAAc,CADd,yBFwmBN,CEznBK,6BAEC,SAAU,CADV,kBF4nBN,CErnBK,6BAEC,kBADA,UFwnBN,CEjnBK,+BAEC,aAAc,CADd,yBFonBN,CEroBK,6BAEC,SAAU,CADV,WFwoBN,CEjoBK,6BAEC,WADA,UFooBN,CE7nBK,+BAEC,aAAc,CADd,kBFgoBN,CEjpBK,6BAEC,SAAU,CADV,kBFopBN,CE7oBK,6BAEC,kBADA,UFgpBN,CEzoBK,+BAEC,aAAc,CADd,yBF4oBN,CE7pBK,6BAEC,SAAU,CADV,kBFgqBN,CEzpBK,6BAEC,kBADA,UF4pBN,CErpBK,+BAEC,aAAc,CADd,yBFwpBN,CEzqBK,6BAEC,SAAU,CADV,SF4qBN,CErqBK,6BAEC,SADA,UFwqBN,CEjqBK,+BAEC,aAAc,CADd,gBFoqBN,CErrBK,6BAEC,SAAU,CADV,kBFwrBN,CEjrBK,6BAEC,kBADA,UForBN,CE7qBK,+BAEC,aAAc,CADd,yBFgrBN,CEjsBK,6BAEC,SAAU,CADV,kBFosBN,CE7rBK,6BAEC,kBADA,UFgsBN,CEzrBK,+BAEC,aAAc,CADd,yBF4rBN,CE7sBK,6BAEC,SAAU,CADV,WFgtBN,CEzsBK,6BAEC,WADA,UF4sBN,CErsBK,+BAEC,aAAc,CADd,kBFwsBN,CEztBK,6BAEC,SAAU,CADV,kBF4tBN,CErtBK,6BAEC,kBADA,UFwtBN,CEjtBK,+BAEC,aAAc,CADd,yBFotBN,CEruBK,6BAEC,SAAU,CADV,kBFwuBN,CEjuBK,6BAEC,kBADA,UFouBN,CE7tBK,+BAEC,aAAc,CADd,yBFguBN,CEjvBK,6BAEC,SAAU,CADV,UFovBN,CE7uBK,6BAEC,UADA,UFgvBN,CEzuBK,+BAEC,aAAc,CADd,iBF4uBN,CClwBG,eACC,aAAc,CACd,cACA,cDowBJ,CClwBG,oBACC,SDowBJ,CClwBG,oBACC,UDowBJ,CClwBG,sBACC,gBDowBJ,CClwBG,qBACC,QDowBJ,CCnxBG,eACC,aAAc,CACd,sBACA,sBDqxBJ,CCnxBG,oBACC,iBDqxBJ,CCnxBG,oBACC,kBDqxBJ,CCnxBG,sBACC,wBDqxBJ,CCnxBG,qBACC,QDqxBJ,CCpyBG,eACC,aAAc,CACd,sBACA,sBDsyBJ,CCpyBG,oBACC,iBDsyBJ,CCpyBG,oBACC,kBDsyBJ,CCpyBG,sBACC,wBDsyBJ,CCpyBG,qBACC,QDsyBJ,CCrzBG,eACC,aAAc,CACd,eACA,eDuzBJ,CCrzBG,oBACC,UDuzBJ,CCrzBG,oBACC,WDuzBJ,CCrzBG,sBACC,iBDuzBJ,CCrzBG,qBACC,QDuzBJ,CCt0BG,eACC,aAAc,CACd,sBACA,sBDw0BJ,CCt0BG,oBACC,iBDw0BJ,CCt0BG,oBACC,kBDw0BJ,CCt0BG,sBACC,wBDw0BJ,CCt0BG,qBACC,QDw0BJ,CCv1BG,eACC,aAAc,CACd,sBACA,sBDy1BJ,CCv1BG,oBACC,iBDy1BJ,CCv1BG,oBACC,kBDy1BJ,CCv1BG,sBACC,wBDy1BJ,CCv1BG,qBACC,QDy1BJ,CCx2BG,eACC,aAAc,CACd,aACA,aD02BJ,CCx2BG,oBACC,QD02BJ,CCx2BG,oBACC,SD02BJ,CCx2BG,sBACC,eD02BJ,CCx2BG,qBACC,QD02BJ,CCz3BG,eACC,aAAc,CACd,sBACA,sBD23BJ,CCz3BG,oBACC,iBD23BJ,CCz3BG,oBACC,kBD23BJ,CCz3BG,sBACC,wBD23BJ,CCz3BG,qBACC,QD23BJ,CC14BG,eACC,aAAc,CACd,sBACA,sBD44BJ,CC14BG,oBACC,iBD44BJ,CC14BG,oBACC,kBD44BJ,CC14BG,sBACC,wBD44BJ,CC14BG,qBACC,QD44BJ,CC35BG,eACC,aAAc,CACd,eACA,eD65BJ,CC35BG,oBACC,UD65BJ,CC35BG,oBACC,WD65BJ,CC35BG,sBACC,iBD65BJ,CC35BG,qBACC,QD65BJ,CC56BG,eACC,aAAc,CACd,sBACA,sBD86BJ,CC56BG,oBACC,iBD86BJ,CC56BG,oBACC,kBD86BJ,CC56BG,sBACC,wBD86BJ,CC56BG,qBACC,QD86BJ,CC77BG,eACC,aAAc,CACd,sBACA,sBD+7BJ,CC77BG,oBACC,iBD+7BJ,CC77BG,oBACC,kBD+7BJ,CC77BG,sBACC,wBD+7BJ,CC77BG,qBACC,QD+7BJ,CC98BG,eACC,aAAc,CACd,aACA,aDg9BJ,CC98BG,oBACC,QDg9BJ,CC98BG,oBACC,SDg9BJ,CC98BG,sBACC,eDg9BJ,CC98BG,qBACC,QDg9BJ,CC/9BG,eACC,aAAc,CACd,sBACA,sBDi+BJ,CC/9BG,oBACC,iBDi+BJ,CC/9BG,oBACC,kBDi+BJ,CC/9BG,sBACC,wBDi+BJ,CC/9BG,qBACC,QDi+BJ,CCh/BG,eACC,aAAc,CACd,sBACA,sBDk/BJ,CCh/BG,oBACC,iBDk/BJ,CCh/BG,oBACC,kBDk/BJ,CCh/BG,sBACC,wBDk/BJ,CCh/BG,qBACC,QDk/BJ,CCjgCG,cACC,aAAc,CACd,eACA,eDmgCJ,CCjgCG,mBACC,UDmgCJ,CCjgCG,mBACC,WDmgCJ,CCjgCG,qBACC,iBDmgCJ,CCjgCG,oBACC,ODmgCJ,CClhCG,cACC,aAAc,CACd,sBACA,sBDohCJ,CClhCG,mBACC,iBDohCJ,CClhCG,mBACC,kBDohCJ,CClhCG,qBACC,wBDohCJ,CClhCG,oBACC,ODohCJ,CCniCG,cACC,aAAc,CACd,sBACA,sBDqiCJ,CCniCG,mBACC,iBDqiCJ,CCniCG,mBACC,kBDqiCJ,CCniCG,qBACC,wBDqiCJ,CCniCG,oBACC,ODqiCJ,CCpjCG,cACC,aAAc,CACd,aACA,aDsjCJ,CCpjCG,mBACC,QDsjCJ,CCpjCG,mBACC,SDsjCJ,CCpjCG,qBACC,eDsjCJ,CCpjCG,oBACC,ODsjCJ,CCrkCG,cACC,aAAc,CACd,sBACA,sBDukCJ,CCrkCG,mBACC,iBDukCJ,CCrkCG,mBACC,kBDukCJ,CCrkCG,qBACC,wBDukCJ,CCrkCG,oBACC,ODukCJ,CCtlCG,cACC,aAAc,CACd,sBACA,sBDwlCJ,CCtlCG,mBACC,iBDwlCJ,CCtlCG,mBACC,kBDwlCJ,CCtlCG,qBACC,wBDwlCJ,CCtlCG,oBACC,ODwlCJ,CCvmCG,cACC,aAAc,CACd,eACA,eDymCJ,CCvmCG,mBACC,UDymCJ,CCvmCG,mBACC,WDymCJ,CCvmCG,qBACC,iBDymCJ,CCvmCG,oBACC,ODymCJ,CCxnCG,cACC,aAAc,CACd,qBACA,qBD0nCJ,CCxnCG,mBACC,gBD0nCJ,CCxnCG,mBACC,iBD0nCJ,CCxnCG,qBACC,uBD0nCJ,CCxnCG,oBACC,OD0nCJ,CCzoCG,cACC,aAAc,CACd,qBACA,qBD2oCJ,CCzoCG,mBACC,gBD2oCJ,CCzoCG,mBACC,iBD2oCJ,CCzoCG,qBACC,uBD2oCJ,CCzoCG,oBACC,OD2oCJ,CCroCG,cACC,YDuoCJ,CCroCG,gBACC,SDuoCJ,CCroCG,gBACC,UDuoCJ,CCroCG,mBACC,SDuoCJ,CCroCG,mBACC,UDuoCJ,CCroCG,qBACC,aDuoCJ,CCroCG,oBACC,ODuoCJ,CEhpCK,4BACC,UFkpCN,CE7oCK,4BACC,SF+oCN,CE1oCK,+BACC,UF4oCN,CEvoCK,+BACC,SFyoCN,CEpoCK,iCACC,cFsoCN,CEzrCK,+BAEC,SAAU,CADV,iBF4rCN,CErrCK,+BAEC,iBADA,UFwrCN,CEjrCK,iCAEC,aAAc,CADd,wBForCN,CErsCK,+BAEC,SAAU,CADV,iBFwsCN,CEjsCK,+BAEC,iBADA,UFosCN,CE7rCK,iCAEC,aAAc,CADd,wBFgsCN,CEjtCK,+BAEC,SAAU,CADV,WFotCN,CE7sCK,+BAEC,WADA,UFgtCN,CEzsCK,iCAEC,aAAc,CADd,kBF4sCN,CE7tCK,+BAEC,SAAU,CADV,kBFguCN,CEztCK,+BAEC,kBADA,UF4tCN,CErtCK,iCAEC,aAAc,CADd,yBFwtCN,CEzuCK,+BAEC,SAAU,CADV,kBF4uCN,CEruCK,+BAEC,kBADA,UFwuCN,CEjuCK,iCAEC,aAAc,CADd,yBFouCN,CErvCK,+BAEC,SAAU,CADV,SFwvCN,CEjvCK,+BAEC,SADA,UFovCN,CE7uCK,iCAEC,aAAc,CADd,gBFgvCN,CEjwCK,+BAEC,SAAU,CADV,kBFowCN,CE7vCK,+BAEC,kBADA,UFgwCN,CEzvCK,iCAEC,aAAc,CADd,yBF4vCN,CE7wCK,+BAEC,SAAU,CADV,kBFgxCN,CEzwCK,+BAEC,kBADA,UF4wCN,CErwCK,iCAEC,aAAc,CADd,yBFwwCN,CEzxCK,+BAEC,SAAU,CADV,WF4xCN,CErxCK,+BAEC,WADA,UFwxCN,CEjxCK,iCAEC,aAAc,CADd,kBFoxCN,CEryCK,gCAEC,SAAU,CADV,kBFwyCN,CEjyCK,gCAEC,kBADA,UFoyCN,CE7xCK,kCAEC,aAAc,CADd,yBFgyCN,CEjzCK,gCAEC,SAAU,CADV,kBFozCN,CE7yCK,gCAEC,kBADA,UFgzCN,CEzyCK,kCAEC,aAAc,CADd,yBF4yCN,CE7zCK,gCAEC,SAAU,CADV,SFg0CN,CEzzCK,gCAEC,SADA,UF4zCN,CErzCK,kCAEC,aAAc,CADd,gBFwzCN,CEz0CK,gCAEC,SAAU,CADV,kBF40CN,CEr0CK,gCAEC,kBADA,UFw0CN,CEj0CK,kCAEC,aAAc,CADd,yBFo0CN,CEr1CK,gCAEC,SAAU,CADV,kBFw1CN,CEj1CK,gCAEC,kBADA,UFo1CN,CE70CK,kCAEC,aAAc,CADd,yBFg1CN,CEj2CK,gCAEC,SAAU,CADV,WFo2CN,CE71CK,gCAEC,WADA,UFg2CN,CEz1CK,kCAEC,aAAc,CADd,kBF41CN,CE72CK,gCAEC,SAAU,CADV,kBFg3CN,CEz2CK,gCAEC,kBADA,UF42CN,CEr2CK,kCAEC,aAAc,CADd,yBFw2CN,CEz3CK,gCAEC,SAAU,CADV,kBF43CN,CEr3CK,gCAEC,kBADA,UFw3CN,CEj3CK,kCAEC,aAAc,CADd,yBFo3CN,CEr4CK,gCAEC,SAAU,CADV,SFw4CN,CEj4CK,gCAEC,SADA,UFo4CN,CE73CK,kCAEC,aAAc,CADd,gBFg4CN,CEj5CK,gCAEC,SAAU,CADV,kBFo5CN,CE74CK,gCAEC,kBADA,UFg5CN,CEz4CK,kCAEC,aAAc,CADd,yBF44CN,CE75CK,gCAEC,SAAU,CADV,kBFg6CN,CEz5CK,gCAEC,kBADA,UF45CN,CEr5CK,kCAEC,aAAc,CADd,yBFw5CN,CEz6CK,gCAEC,SAAU,CADV,WF46CN,CEr6CK,gCAEC,WADA,UFw6CN,CEj6CK,kCAEC,aAAc,CADd,kBFo6CN,CEr7CK,gCAEC,SAAU,CADV,kBFw7CN,CEj7CK,gCAEC,kBADA,UFo7CN,CE76CK,kCAEC,aAAc,CADd,yBFg7CN,CEj8CK,gCAEC,SAAU,CADV,kBFo8CN,CE77CK,gCAEC,kBADA,UFg8CN,CEz7CK,kCAEC,aAAc,CADd,yBF47CN,CE78CK,gCAEC,SAAU,CADV,UFg9CN,CEz8CK,gCAEC,UADA,UF48CN,CEr8CK,kCAEC,aAAc,CADd,iBFw8CN,CAh5CA,yBC9EG,eACC,aAAc,CACd,cACA,cDi+CF,CC/9CC,oBACC,SDi+CF,CC/9CC,oBACC,UDi+CF,CC/9CC,sBACC,gBDi+CF,CC/9CC,qBACC,QDi+CF,CCh/CC,eACC,aAAc,CACd,sBACA,sBDk/CF,CCh/CC,oBACC,iBDk/CF,CCh/CC,oBACC,kBDk/CF,CCh/CC,sBACC,wBDk/CF,CCh/CC,qBACC,QDk/CF,CCjgDC,eACC,aAAc,CACd,sBACA,sBDmgDF,CCjgDC,oBACC,iBDmgDF,CCjgDC,oBACC,kBDmgDF,CCjgDC,sBACC,wBDmgDF,CCjgDC,qBACC,QDmgDF,CClhDC,eACC,aAAc,CACd,eACA,eDohDF,CClhDC,oBACC,UDohDF,CClhDC,oBACC,WDohDF,CClhDC,sBACC,iBDohDF,CClhDC,qBACC,QDohDF,CCniDC,eACC,aAAc,CACd,sBACA,sBDqiDF,CCniDC,oBACC,iBDqiDF,CCniDC,oBACC,kBDqiDF,CCniDC,sBACC,wBDqiDF,CCniDC,qBACC,QDqiDF,CCpjDC,eACC,aAAc,CACd,sBACA,sBDsjDF,CCpjDC,oBACC,iBDsjDF,CCpjDC,oBACC,kBDsjDF,CCpjDC,sBACC,wBDsjDF,CCpjDC,qBACC,QDsjDF,CCrkDC,eACC,aAAc,CACd,aACA,aDukDF,CCrkDC,oBACC,QDukDF,CCrkDC,oBACC,SDukDF,CCrkDC,sBACC,eDukDF,CCrkDC,qBACC,QDukDF,CCtlDC,eACC,aAAc,CACd,sBACA,sBDwlDF,CCtlDC,oBACC,iBDwlDF,CCtlDC,oBACC,kBDwlDF,CCtlDC,sBACC,wBDwlDF,CCtlDC,qBACC,QDwlDF,CCvmDC,eACC,aAAc,CACd,sBACA,sBDymDF,CCvmDC,oBACC,iBDymDF,CCvmDC,oBACC,kBDymDF,CCvmDC,sBACC,wBDymDF,CCvmDC,qBACC,QDymDF,CCxnDC,eACC,aAAc,CACd,eACA,eD0nDF,CCxnDC,oBACC,UD0nDF,CCxnDC,oBACC,WD0nDF,CCxnDC,sBACC,iBD0nDF,CCxnDC,qBACC,QD0nDF,CCzoDC,eACC,aAAc,CACd,sBACA,sBD2oDF,CCzoDC,oBACC,iBD2oDF,CCzoDC,oBACC,kBD2oDF,CCzoDC,sBACC,wBD2oDF,CCzoDC,qBACC,QD2oDF,CC1pDC,eACC,aAAc,CACd,sBACA,sBD4pDF,CC1pDC,oBACC,iBD4pDF,CC1pDC,oBACC,kBD4pDF,CC1pDC,sBACC,wBD4pDF,CC1pDC,qBACC,QD4pDF,CC3qDC,eACC,aAAc,CACd,aACA,aD6qDF,CC3qDC,oBACC,QD6qDF,CC3qDC,oBACC,SD6qDF,CC3qDC,sBACC,eD6qDF,CC3qDC,qBACC,QD6qDF,CC5rDC,eACC,aAAc,CACd,sBACA,sBD8rDF,CC5rDC,oBACC,iBD8rDF,CC5rDC,oBACC,kBD8rDF,CC5rDC,sBACC,wBD8rDF,CC5rDC,qBACC,QD8rDF,CC7sDC,eACC,aAAc,CACd,sBACA,sBD+sDF,CC7sDC,oBACC,iBD+sDF,CC7sDC,oBACC,kBD+sDF,CC7sDC,sBACC,wBD+sDF,CC7sDC,qBACC,QD+sDF,CC9tDC,cACC,aAAc,CACd,eACA,eDguDF,CC9tDC,mBACC,UDguDF,CC9tDC,mBACC,WDguDF,CC9tDC,qBACC,iBDguDF,CC9tDC,oBACC,ODguDF,CC/uDC,cACC,aAAc,CACd,sBACA,sBDivDF,CC/uDC,mBACC,iBDivDF,CC/uDC,mBACC,kBDivDF,CC/uDC,qBACC,wBDivDF,CC/uDC,oBACC,ODivDF,CChwDC,cACC,aAAc,CACd,sBACA,sBDkwDF,CChwDC,mBACC,iBDkwDF,CChwDC,mBACC,kBDkwDF,CChwDC,qBACC,wBDkwDF,CChwDC,oBACC,ODkwDF,CCjxDC,cACC,aAAc,CACd,aACA,aDmxDF,CCjxDC,mBACC,QDmxDF,CCjxDC,mBACC,SDmxDF,CCjxDC,qBACC,eDmxDF,CCjxDC,oBACC,ODmxDF,CClyDC,cACC,aAAc,CACd,sBACA,sBDoyDF,CClyDC,mBACC,iBDoyDF,CClyDC,mBACC,kBDoyDF,CClyDC,qBACC,wBDoyDF,CClyDC,oBACC,ODoyDF,CCnzDC,cACC,aAAc,CACd,sBACA,sBDqzDF,CCnzDC,mBACC,iBDqzDF,CCnzDC,mBACC,kBDqzDF,CCnzDC,qBACC,wBDqzDF,CCnzDC,oBACC,ODqzDF,CCp0DC,cACC,aAAc,CACd,eACA,eDs0DF,CCp0DC,mBACC,UDs0DF,CCp0DC,mBACC,WDs0DF,CCp0DC,qBACC,iBDs0DF,CCp0DC,oBACC,ODs0DF,CCr1DC,cACC,aAAc,CACd,qBACA,qBDu1DF,CCr1DC,mBACC,gBDu1DF,CCr1DC,mBACC,iBDu1DF,CCr1DC,qBACC,uBDu1DF,CCr1DC,oBACC,ODu1DF,CCt2DC,cACC,aAAc,CACd,qBACA,qBDw2DF,CCt2DC,mBACC,gBDw2DF,CCt2DC,mBACC,iBDw2DF,CCt2DC,qBACC,uBDw2DF,CCt2DC,oBACC,ODw2DF,CCl2DC,cACC,YDo2DF,CCl2DC,gBACC,SDo2DF,CCl2DC,gBACC,UDo2DF,CCl2DC,mBACC,SDo2DF,CCl2DC,mBACC,UDo2DF,CCl2DC,qBACC,aDo2DF,CCl2DC,oBACC,ODo2DF,CE72DG,4BACC,UF+2DJ,CE12DG,4BACC,SF42DJ,CEv2DG,+BACC,UFy2DJ,CEp2DG,+BACC,SFs2DJ,CEj2DG,iCACC,cFm2DJ,CEt5DG,+BAEC,SAAU,CADV,iBFy5DJ,CEl5DG,+BAEC,iBADA,UFq5DJ,CE94DG,iCAEC,aAAc,CADd,wBFi5DJ,CEl6DG,+BAEC,SAAU,CADV,iBFq6DJ,CE95DG,+BAEC,iBADA,UFi6DJ,CE15DG,iCAEC,aAAc,CADd,wBF65DJ,CE96DG,+BAEC,SAAU,CADV,WFi7DJ,CE16DG,+BAEC,WADA,UF66DJ,CEt6DG,iCAEC,aAAc,CADd,kBFy6DJ,CE17DG,+BAEC,SAAU,CADV,kBF67DJ,CEt7DG,+BAEC,kBADA,UFy7DJ,CEl7DG,iCAEC,aAAc,CADd,yBFq7DJ,CEt8DG,+BAEC,SAAU,CADV,kBFy8DJ,CEl8DG,+BAEC,kBADA,UFq8DJ,CE97DG,iCAEC,aAAc,CADd,yBFi8DJ,CEl9DG,+BAEC,SAAU,CADV,SFq9DJ,CE98DG,+BAEC,SADA,UFi9DJ,CE18DG,iCAEC,aAAc,CADd,gBF68DJ,CE99DG,+BAEC,SAAU,CADV,kBFi+DJ,CE19DG,+BAEC,kBADA,UF69DJ,CEt9DG,iCAEC,aAAc,CADd,yBFy9DJ,CE1+DG,+BAEC,SAAU,CADV,kBF6+DJ,CEt+DG,+BAEC,kBADA,UFy+DJ,CEl+DG,iCAEC,aAAc,CADd,yBFq+DJ,CEt/DG,+BAEC,SAAU,CADV,WFy/DJ,CEl/DG,+BAEC,WADA,UFq/DJ,CE9+DG,iCAEC,aAAc,CADd,kBFi/DJ,CElgEG,gCAEC,SAAU,CADV,kBFqgEJ,CE9/DG,gCAEC,kBADA,UFigEJ,CE1/DG,kCAEC,aAAc,CADd,yBF6/DJ,CE9gEG,gCAEC,SAAU,CADV,kBFihEJ,CE1gEG,gCAEC,kBADA,UF6gEJ,CEtgEG,kCAEC,aAAc,CADd,yBFygEJ,CE1hEG,gCAEC,SAAU,CADV,SF6hEJ,CEthEG,gCAEC,SADA,UFyhEJ,CElhEG,kCAEC,aAAc,CADd,gBFqhEJ,CEtiEG,gCAEC,SAAU,CADV,kBFyiEJ,CEliEG,gCAEC,kBADA,UFqiEJ,CE9hEG,kCAEC,aAAc,CADd,yBFiiEJ,CEljEG,gCAEC,SAAU,CADV,kBFqjEJ,CE9iEG,gCAEC,kBADA,UFijEJ,CE1iEG,kCAEC,aAAc,CADd,yBF6iEJ,CE9jEG,gCAEC,SAAU,CADV,WFikEJ,CE1jEG,gCAEC,WADA,UF6jEJ,CEtjEG,kCAEC,aAAc,CADd,kBFyjEJ,CE1kEG,gCAEC,SAAU,CADV,kBF6kEJ,CEtkEG,gCAEC,kBADA,UFykEJ,CElkEG,kCAEC,aAAc,CADd,yBFqkEJ,CEtlEG,gCAEC,SAAU,CADV,kBFylEJ,CEllEG,gCAEC,kBADA,UFqlEJ,CE9kEG,kCAEC,aAAc,CADd,yBFilEJ,CElmEG,gCAEC,SAAU,CADV,SFqmEJ,CE9lEG,gCAEC,SADA,UFimEJ,CE1lEG,kCAEC,aAAc,CADd,gBF6lEJ,CE9mEG,gCAEC,SAAU,CADV,kBFinEJ,CE1mEG,gCAEC,kBADA,UF6mEJ,CEtmEG,kCAEC,aAAc,CADd,yBFymEJ,CE1nEG,gCAEC,SAAU,CADV,kBF6nEJ,CEtnEG,gCAEC,kBADA,UFynEJ,CElnEG,kCAEC,aAAc,CADd,yBFqnEJ,CEtoEG,gCAEC,SAAU,CADV,WFyoEJ,CEloEG,gCAEC,WADA,UFqoEJ,CE9nEG,kCAEC,aAAc,CADd,kBFioEJ,CElpEG,gCAEC,SAAU,CADV,kBFqpEJ,CE9oEG,gCAEC,kBADA,UFipEJ,CE1oEG,kCAEC,aAAc,CADd,yBF6oEJ,CE9pEG,gCAEC,SAAU,CADV,kBFiqEJ,CE1pEG,gCAEC,kBADA,UF6pEJ,CEtpEG,kCAEC,aAAc,CADd,yBFypEJ,CE1qEG,gCAEC,SAAU,CADV,UF6qEJ,CEtqEG,gCAEC,UADA,UFyqEJ,CElqEG,kCAEC,aAAc,CADd,iBFqqEJ,CACF,CAtmEA,yBCtFG,eACC,aAAc,CACd,cACA,cD+rEF,CC7rEC,oBACC,SD+rEF,CC7rEC,oBACC,UD+rEF,CC7rEC,sBACC,gBD+rEF,CC7rEC,qBACC,QD+rEF,CC9sEC,eACC,aAAc,CACd,sBACA,sBDgtEF,CC9sEC,oBACC,iBDgtEF,CC9sEC,oBACC,kBDgtEF,CC9sEC,sBACC,wBDgtEF,CC9sEC,qBACC,QDgtEF,CC/tEC,eACC,aAAc,CACd,sBACA,sBDiuEF,CC/tEC,oBACC,iBDiuEF,CC/tEC,oBACC,kBDiuEF,CC/tEC,sBACC,wBDiuEF,CC/tEC,qBACC,QDiuEF,CChvEC,eACC,aAAc,CACd,eACA,eDkvEF,CChvEC,oBACC,UDkvEF,CChvEC,oBACC,WDkvEF,CChvEC,sBACC,iBDkvEF,CChvEC,qBACC,QDkvEF,CCjwEC,eACC,aAAc,CACd,sBACA,sBDmwEF,CCjwEC,oBACC,iBDmwEF,CCjwEC,oBACC,kBDmwEF,CCjwEC,sBACC,wBDmwEF,CCjwEC,qBACC,QDmwEF,CClxEC,eACC,aAAc,CACd,sBACA,sBDoxEF,CClxEC,oBACC,iBDoxEF,CClxEC,oBACC,kBDoxEF,CClxEC,sBACC,wBDoxEF,CClxEC,qBACC,QDoxEF,CCnyEC,eACC,aAAc,CACd,aACA,aDqyEF,CCnyEC,oBACC,QDqyEF,CCnyEC,oBACC,SDqyEF,CCnyEC,sBACC,eDqyEF,CCnyEC,qBACC,QDqyEF,CCpzEC,eACC,aAAc,CACd,sBACA,sBDszEF,CCpzEC,oBACC,iBDszEF,CCpzEC,oBACC,kBDszEF,CCpzEC,sBACC,wBDszEF,CCpzEC,qBACC,QDszEF,CCr0EC,eACC,aAAc,CACd,sBACA,sBDu0EF,CCr0EC,oBACC,iBDu0EF,CCr0EC,oBACC,kBDu0EF,CCr0EC,sBACC,wBDu0EF,CCr0EC,qBACC,QDu0EF,CCt1EC,eACC,aAAc,CACd,eACA,eDw1EF,CCt1EC,oBACC,UDw1EF,CCt1EC,oBACC,WDw1EF,CCt1EC,sBACC,iBDw1EF,CCt1EC,qBACC,QDw1EF,CCv2EC,eACC,aAAc,CACd,sBACA,sBDy2EF,CCv2EC,oBACC,iBDy2EF,CCv2EC,oBACC,kBDy2EF,CCv2EC,sBACC,wBDy2EF,CCv2EC,qBACC,QDy2EF,CCx3EC,eACC,aAAc,CACd,sBACA,sBD03EF,CCx3EC,oBACC,iBD03EF,CCx3EC,oBACC,kBD03EF,CCx3EC,sBACC,wBD03EF,CCx3EC,qBACC,QD03EF,CCz4EC,eACC,aAAc,CACd,aACA,aD24EF,CCz4EC,oBACC,QD24EF,CCz4EC,oBACC,SD24EF,CCz4EC,sBACC,eD24EF,CCz4EC,qBACC,QD24EF,CC15EC,eACC,aAAc,CACd,sBACA,sBD45EF,CC15EC,oBACC,iBD45EF,CC15EC,oBACC,kBD45EF,CC15EC,sBACC,wBD45EF,CC15EC,qBACC,QD45EF,CC36EC,eACC,aAAc,CACd,sBACA,sBD66EF,CC36EC,oBACC,iBD66EF,CC36EC,oBACC,kBD66EF,CC36EC,sBACC,wBD66EF,CC36EC,qBACC,QD66EF,CC57EC,cACC,aAAc,CACd,eACA,eD87EF,CC57EC,mBACC,UD87EF,CC57EC,mBACC,WD87EF,CC57EC,qBACC,iBD87EF,CC57EC,oBACC,OD87EF,CC78EC,cACC,aAAc,CACd,sBACA,sBD+8EF,CC78EC,mBACC,iBD+8EF,CC78EC,mBACC,kBD+8EF,CC78EC,qBACC,wBD+8EF,CC78EC,oBACC,OD+8EF,CC99EC,cACC,aAAc,CACd,sBACA,sBDg+EF,CC99EC,mBACC,iBDg+EF,CC99EC,mBACC,kBDg+EF,CC99EC,qBACC,wBDg+EF,CC99EC,oBACC,ODg+EF,CC/+EC,cACC,aAAc,CACd,aACA,aDi/EF,CC/+EC,mBACC,QDi/EF,CC/+EC,mBACC,SDi/EF,CC/+EC,qBACC,eDi/EF,CC/+EC,oBACC,ODi/EF,CChgFC,cACC,aAAc,CACd,sBACA,sBDkgFF,CChgFC,mBACC,iBDkgFF,CChgFC,mBACC,kBDkgFF,CChgFC,qBACC,wBDkgFF,CChgFC,oBACC,ODkgFF,CCjhFC,cACC,aAAc,CACd,sBACA,sBDmhFF,CCjhFC,mBACC,iBDmhFF,CCjhFC,mBACC,kBDmhFF,CCjhFC,qBACC,wBDmhFF,CCjhFC,oBACC,ODmhFF,CCliFC,cACC,aAAc,CACd,eACA,eDoiFF,CCliFC,mBACC,UDoiFF,CCliFC,mBACC,WDoiFF,CCliFC,qBACC,iBDoiFF,CCliFC,oBACC,ODoiFF,CCnjFC,cACC,aAAc,CACd,qBACA,qBDqjFF,CCnjFC,mBACC,gBDqjFF,CCnjFC,mBACC,iBDqjFF,CCnjFC,qBACC,uBDqjFF,CCnjFC,oBACC,ODqjFF,CCpkFC,cACC,aAAc,CACd,qBACA,qBDskFF,CCpkFC,mBACC,gBDskFF,CCpkFC,mBACC,iBDskFF,CCpkFC,qBACC,uBDskFF,CCpkFC,oBACC,ODskFF,CChkFC,cACC,YDkkFF,CChkFC,gBACC,SDkkFF,CChkFC,gBACC,UDkkFF,CChkFC,mBACC,SDkkFF,CChkFC,mBACC,UDkkFF,CChkFC,qBACC,aDkkFF,CChkFC,oBACC,ODkkFF,CE3kFG,4BACC,UF6kFJ,CExkFG,4BACC,SF0kFJ,CErkFG,+BACC,UFukFJ,CElkFG,+BACC,SFokFJ,CE/jFG,iCACC,cFikFJ,CEpnFG,+BAEC,SAAU,CADV,iBFunFJ,CEhnFG,+BAEC,iBADA,UFmnFJ,CE5mFG,iCAEC,aAAc,CADd,wBF+mFJ,CEhoFG,+BAEC,SAAU,CADV,iBFmoFJ,CE5nFG,+BAEC,iBADA,UF+nFJ,CExnFG,iCAEC,aAAc,CADd,wBF2nFJ,CE5oFG,+BAEC,SAAU,CADV,WF+oFJ,CExoFG,+BAEC,WADA,UF2oFJ,CEpoFG,iCAEC,aAAc,CADd,kBFuoFJ,CExpFG,+BAEC,SAAU,CADV,kBF2pFJ,CEppFG,+BAEC,kBADA,UFupFJ,CEhpFG,iCAEC,aAAc,CADd,yBFmpFJ,CEpqFG,+BAEC,SAAU,CADV,kBFuqFJ,CEhqFG,+BAEC,kBADA,UFmqFJ,CE5pFG,iCAEC,aAAc,CADd,yBF+pFJ,CEhrFG,+BAEC,SAAU,CADV,SFmrFJ,CE5qFG,+BAEC,SADA,UF+qFJ,CExqFG,iCAEC,aAAc,CADd,gBF2qFJ,CE5rFG,+BAEC,SAAU,CADV,kBF+rFJ,CExrFG,+BAEC,kBADA,UF2rFJ,CEprFG,iCAEC,aAAc,CADd,yBFurFJ,CExsFG,+BAEC,SAAU,CADV,kBF2sFJ,CEpsFG,+BAEC,kBADA,UFusFJ,CEhsFG,iCAEC,aAAc,CADd,yBFmsFJ,CEptFG,+BAEC,SAAU,CADV,WFutFJ,CEhtFG,+BAEC,WADA,UFmtFJ,CE5sFG,iCAEC,aAAc,CADd,kBF+sFJ,CEhuFG,gCAEC,SAAU,CADV,kBFmuFJ,CE5tFG,gCAEC,kBADA,UF+tFJ,CExtFG,kCAEC,aAAc,CADd,yBF2tFJ,CE5uFG,gCAEC,SAAU,CADV,kBF+uFJ,CExuFG,gCAEC,kBADA,UF2uFJ,CEpuFG,kCAEC,aAAc,CADd,yBFuuFJ,CExvFG,gCAEC,SAAU,CADV,SF2vFJ,CEpvFG,gCAEC,SADA,UFuvFJ,CEhvFG,kCAEC,aAAc,CADd,gBFmvFJ,CEpwFG,gCAEC,SAAU,CADV,kBFuwFJ,CEhwFG,gCAEC,kBADA,UFmwFJ,CE5vFG,kCAEC,aAAc,CADd,yBF+vFJ,CEhxFG,gCAEC,SAAU,CADV,kBFmxFJ,CE5wFG,gCAEC,kBADA,UF+wFJ,CExwFG,kCAEC,aAAc,CADd,yBF2wFJ,CE5xFG,gCAEC,SAAU,CADV,WF+xFJ,CExxFG,gCAEC,WADA,UF2xFJ,CEpxFG,kCAEC,aAAc,CADd,kBFuxFJ,CExyFG,gCAEC,SAAU,CADV,kBF2yFJ,CEpyFG,gCAEC,kBADA,UFuyFJ,CEhyFG,kCAEC,aAAc,CADd,yBFmyFJ,CEpzFG,gCAEC,SAAU,CADV,kBFuzFJ,CEhzFG,gCAEC,kBADA,UFmzFJ,CE5yFG,kCAEC,aAAc,CADd,yBF+yFJ,CEh0FG,gCAEC,SAAU,CADV,SFm0FJ,CE5zFG,gCAEC,SADA,UF+zFJ,CExzFG,kCAEC,aAAc,CADd,gBF2zFJ,CE50FG,gCAEC,SAAU,CADV,kBF+0FJ,CEx0FG,gCAEC,kBADA,UF20FJ,CEp0FG,kCAEC,aAAc,CADd,yBFu0FJ,CEx1FG,gCAEC,SAAU,CADV,kBF21FJ,CEp1FG,gCAEC,kBADA,UFu1FJ,CEh1FG,kCAEC,aAAc,CADd,yBFm1FJ,CEp2FG,gCAEC,SAAU,CADV,WFu2FJ,CEh2FG,gCAEC,WADA,UFm2FJ,CE51FG,kCAEC,aAAc,CADd,kBF+1FJ,CEh3FG,gCAEC,SAAU,CADV,kBFm3FJ,CE52FG,gCAEC,kBADA,UF+2FJ,CEx2FG,kCAEC,aAAc,CADd,yBF22FJ,CE53FG,gCAEC,SAAU,CADV,kBF+3FJ,CEx3FG,gCAEC,kBADA,UF23FJ,CEp3FG,kCAEC,aAAc,CADd,yBFu3FJ,CEx4FG,gCAEC,SAAU,CADV,UF24FJ,CEp4FG,gCAEC,UADA,UFu4FJ,CEh4FG,kCAEC,aAAc,CADd,iBFm4FJ,CACF,CA5zFA,yBC9FG,eACC,aAAc,CACd,cACA,cD65FF,CC35FC,oBACC,SD65FF,CC35FC,oBACC,UD65FF,CC35FC,sBACC,gBD65FF,CC35FC,qBACC,QD65FF,CC56FC,eACC,aAAc,CACd,sBACA,sBD86FF,CC56FC,oBACC,iBD86FF,CC56FC,oBACC,kBD86FF,CC56FC,sBACC,wBD86FF,CC56FC,qBACC,QD86FF,CC77FC,eACC,aAAc,CACd,sBACA,sBD+7FF,CC77FC,oBACC,iBD+7FF,CC77FC,oBACC,kBD+7FF,CC77FC,sBACC,wBD+7FF,CC77FC,qBACC,QD+7FF,CC98FC,eACC,aAAc,CACd,eACA,eDg9FF,CC98FC,oBACC,UDg9FF,CC98FC,oBACC,WDg9FF,CC98FC,sBACC,iBDg9FF,CC98FC,qBACC,QDg9FF,CC/9FC,eACC,aAAc,CACd,sBACA,sBDi+FF,CC/9FC,oBACC,iBDi+FF,CC/9FC,oBACC,kBDi+FF,CC/9FC,sBACC,wBDi+FF,CC/9FC,qBACC,QDi+FF,CCh/FC,eACC,aAAc,CACd,sBACA,sBDk/FF,CCh/FC,oBACC,iBDk/FF,CCh/FC,oBACC,kBDk/FF,CCh/FC,sBACC,wBDk/FF,CCh/FC,qBACC,QDk/FF,CCjgGC,eACC,aAAc,CACd,aACA,aDmgGF,CCjgGC,oBACC,QDmgGF,CCjgGC,oBACC,SDmgGF,CCjgGC,sBACC,eDmgGF,CCjgGC,qBACC,QDmgGF,CClhGC,eACC,aAAc,CACd,sBACA,sBDohGF,CClhGC,oBACC,iBDohGF,CClhGC,oBACC,kBDohGF,CClhGC,sBACC,wBDohGF,CClhGC,qBACC,QDohGF,CCniGC,eACC,aAAc,CACd,sBACA,sBDqiGF,CCniGC,oBACC,iBDqiGF,CCniGC,oBACC,kBDqiGF,CCniGC,sBACC,wBDqiGF,CCniGC,qBACC,QDqiGF,CCpjGC,eACC,aAAc,CACd,eACA,eDsjGF,CCpjGC,oBACC,UDsjGF,CCpjGC,oBACC,WDsjGF,CCpjGC,sBACC,iBDsjGF,CCpjGC,qBACC,QDsjGF,CCrkGC,eACC,aAAc,CACd,sBACA,sBDukGF,CCrkGC,oBACC,iBDukGF,CCrkGC,oBACC,kBDukGF,CCrkGC,sBACC,wBDukGF,CCrkGC,qBACC,QDukGF,CCtlGC,eACC,aAAc,CACd,sBACA,sBDwlGF,CCtlGC,oBACC,iBDwlGF,CCtlGC,oBACC,kBDwlGF,CCtlGC,sBACC,wBDwlGF,CCtlGC,qBACC,QDwlGF,CCvmGC,eACC,aAAc,CACd,aACA,aDymGF,CCvmGC,oBACC,QDymGF,CCvmGC,oBACC,SDymGF,CCvmGC,sBACC,eDymGF,CCvmGC,qBACC,QDymGF,CCxnGC,eACC,aAAc,CACd,sBACA,sBD0nGF,CCxnGC,oBACC,iBD0nGF,CCxnGC,oBACC,kBD0nGF,CCxnGC,sBACC,wBD0nGF,CCxnGC,qBACC,QD0nGF,CCzoGC,eACC,aAAc,CACd,sBACA,sBD2oGF,CCzoGC,oBACC,iBD2oGF,CCzoGC,oBACC,kBD2oGF,CCzoGC,sBACC,wBD2oGF,CCzoGC,qBACC,QD2oGF,CC1pGC,cACC,aAAc,CACd,eACA,eD4pGF,CC1pGC,mBACC,UD4pGF,CC1pGC,mBACC,WD4pGF,CC1pGC,qBACC,iBD4pGF,CC1pGC,oBACC,OD4pGF,CC3qGC,cACC,aAAc,CACd,sBACA,sBD6qGF,CC3qGC,mBACC,iBD6qGF,CC3qGC,mBACC,kBD6qGF,CC3qGC,qBACC,wBD6qGF,CC3qGC,oBACC,OD6qGF,CC5rGC,cACC,aAAc,CACd,sBACA,sBD8rGF,CC5rGC,mBACC,iBD8rGF,CC5rGC,mBACC,kBD8rGF,CC5rGC,qBACC,wBD8rGF,CC5rGC,oBACC,OD8rGF,CC7sGC,cACC,aAAc,CACd,aACA,aD+sGF,CC7sGC,mBACC,QD+sGF,CC7sGC,mBACC,SD+sGF,CC7sGC,qBACC,eD+sGF,CC7sGC,oBACC,OD+sGF,CC9tGC,cACC,aAAc,CACd,sBACA,sBDguGF,CC9tGC,mBACC,iBDguGF,CC9tGC,mBACC,kBDguGF,CC9tGC,qBACC,wBDguGF,CC9tGC,oBACC,ODguGF,CC/uGC,cACC,aAAc,CACd,sBACA,sBDivGF,CC/uGC,mBACC,iBDivGF,CC/uGC,mBACC,kBDivGF,CC/uGC,qBACC,wBDivGF,CC/uGC,oBACC,ODivGF,CChwGC,cACC,aAAc,CACd,eACA,eDkwGF,CChwGC,mBACC,UDkwGF,CChwGC,mBACC,WDkwGF,CChwGC,qBACC,iBDkwGF,CChwGC,oBACC,ODkwGF,CCjxGC,cACC,aAAc,CACd,qBACA,qBDmxGF,CCjxGC,mBACC,gBDmxGF,CCjxGC,mBACC,iBDmxGF,CCjxGC,qBACC,uBDmxGF,CCjxGC,oBACC,ODmxGF,CClyGC,cACC,aAAc,CACd,qBACA,qBDoyGF,CClyGC,mBACC,gBDoyGF,CClyGC,mBACC,iBDoyGF,CClyGC,qBACC,uBDoyGF,CClyGC,oBACC,ODoyGF,CC9xGC,cACC,YDgyGF,CC9xGC,gBACC,SDgyGF,CC9xGC,gBACC,UDgyGF,CC9xGC,mBACC,SDgyGF,CC9xGC,mBACC,UDgyGF,CC9xGC,qBACC,aDgyGF,CC9xGC,oBACC,ODgyGF,CEzyGG,4BACC,UF2yGJ,CEtyGG,4BACC,SFwyGJ,CEnyGG,+BACC,UFqyGJ,CEhyGG,+BACC,SFkyGJ,CE7xGG,iCACC,cF+xGJ,CEl1GG,+BAEC,SAAU,CADV,iBFq1GJ,CE90GG,+BAEC,iBADA,UFi1GJ,CE10GG,iCAEC,aAAc,CADd,wBF60GJ,CE91GG,+BAEC,SAAU,CADV,iBFi2GJ,CE11GG,+BAEC,iBADA,UF61GJ,CEt1GG,iCAEC,aAAc,CADd,wBFy1GJ,CE12GG,+BAEC,SAAU,CADV,WF62GJ,CEt2GG,+BAEC,WADA,UFy2GJ,CEl2GG,iCAEC,aAAc,CADd,kBFq2GJ,CEt3GG,+BAEC,SAAU,CADV,kBFy3GJ,CEl3GG,+BAEC,kBADA,UFq3GJ,CE92GG,iCAEC,aAAc,CADd,yBFi3GJ,CEl4GG,+BAEC,SAAU,CADV,kBFq4GJ,CE93GG,+BAEC,kBADA,UFi4GJ,CE13GG,iCAEC,aAAc,CADd,yBF63GJ,CE94GG,+BAEC,SAAU,CADV,SFi5GJ,CE14GG,+BAEC,SADA,UF64GJ,CEt4GG,iCAEC,aAAc,CADd,gBFy4GJ,CE15GG,+BAEC,SAAU,CADV,kBF65GJ,CEt5GG,+BAEC,kBADA,UFy5GJ,CEl5GG,iCAEC,aAAc,CADd,yBFq5GJ,CEt6GG,+BAEC,SAAU,CADV,kBFy6GJ,CEl6GG,+BAEC,kBADA,UFq6GJ,CE95GG,iCAEC,aAAc,CADd,yBFi6GJ,CEl7GG,+BAEC,SAAU,CADV,WFq7GJ,CE96GG,+BAEC,WADA,UFi7GJ,CE16GG,iCAEC,aAAc,CADd,kBF66GJ,CE97GG,gCAEC,SAAU,CADV,kBFi8GJ,CE17GG,gCAEC,kBADA,UF67GJ,CEt7GG,kCAEC,aAAc,CADd,yBFy7GJ,CE18GG,gCAEC,SAAU,CADV,kBF68GJ,CEt8GG,gCAEC,kBADA,UFy8GJ,CEl8GG,kCAEC,aAAc,CADd,yBFq8GJ,CEt9GG,gCAEC,SAAU,CADV,SFy9GJ,CEl9GG,gCAEC,SADA,UFq9GJ,CE98GG,kCAEC,aAAc,CADd,gBFi9GJ,CEl+GG,gCAEC,SAAU,CADV,kBFq+GJ,CE99GG,gCAEC,kBADA,UFi+GJ,CE19GG,kCAEC,aAAc,CADd,yBF69GJ,CE9+GG,gCAEC,SAAU,CADV,kBFi/GJ,CE1+GG,gCAEC,kBADA,UF6+GJ,CEt+GG,kCAEC,aAAc,CADd,yBFy+GJ,CE1/GG,gCAEC,SAAU,CADV,WF6/GJ,CEt/GG,gCAEC,WADA,UFy/GJ,CEl/GG,kCAEC,aAAc,CADd,kBFq/GJ,CEtgHG,gCAEC,SAAU,CADV,kBFygHJ,CElgHG,gCAEC,kBADA,UFqgHJ,CE9/GG,kCAEC,aAAc,CADd,yBFigHJ,CElhHG,gCAEC,SAAU,CADV,kBFqhHJ,CE9gHG,gCAEC,kBADA,UFihHJ,CE1gHG,kCAEC,aAAc,CADd,yBF6gHJ,CE9hHG,gCAEC,SAAU,CADV,SFiiHJ,CE1hHG,gCAEC,SADA,UF6hHJ,CEthHG,kCAEC,aAAc,CADd,gBFyhHJ,CE1iHG,gCAEC,SAAU,CADV,kBF6iHJ,CEtiHG,gCAEC,kBADA,UFyiHJ,CEliHG,kCAEC,aAAc,CADd,yBFqiHJ,CEtjHG,gCAEC,SAAU,CADV,kBFyjHJ,CEljHG,gCAEC,kBADA,UFqjHJ,CE9iHG,kCAEC,aAAc,CADd,yBFijHJ,CElkHG,gCAEC,SAAU,CADV,WFqkHJ,CE9jHG,gCAEC,WADA,UFikHJ,CE1jHG,kCAEC,aAAc,CADd,kBF6jHJ,CE9kHG,gCAEC,SAAU,CADV,kBFilHJ,CE1kHG,gCAEC,kBADA,UF6kHJ,CEtkHG,kCAEC,aAAc,CADd,yBFykHJ,CE1lHG,gCAEC,SAAU,CADV,kBF6lHJ,CEtlHG,gCAEC,kBADA,UFylHJ,CEllHG,kCAEC,aAAc,CADd,yBFqlHJ,CEtmHG,gCAEC,SAAU,CADV,UFymHJ,CElmHG,gCAEC,UADA,UFqmHJ,CE9lHG,kCAEC,aAAc,CADd,iBFimHJ,CACF,CAlhHA,0BCtGG,eACC,aAAc,CACd,cACA,cD2nHF,CCznHC,oBACC,SD2nHF,CCznHC,oBACC,UD2nHF,CCznHC,sBACC,gBD2nHF,CCznHC,qBACC,QD2nHF,CC1oHC,eACC,aAAc,CACd,sBACA,sBD4oHF,CC1oHC,oBACC,iBD4oHF,CC1oHC,oBACC,kBD4oHF,CC1oHC,sBACC,wBD4oHF,CC1oHC,qBACC,QD4oHF,CC3pHC,eACC,aAAc,CACd,sBACA,sBD6pHF,CC3pHC,oBACC,iBD6pHF,CC3pHC,oBACC,kBD6pHF,CC3pHC,sBACC,wBD6pHF,CC3pHC,qBACC,QD6pHF,CC5qHC,eACC,aAAc,CACd,eACA,eD8qHF,CC5qHC,oBACC,UD8qHF,CC5qHC,oBACC,WD8qHF,CC5qHC,sBACC,iBD8qHF,CC5qHC,qBACC,QD8qHF,CC7rHC,eACC,aAAc,CACd,sBACA,sBD+rHF,CC7rHC,oBACC,iBD+rHF,CC7rHC,oBACC,kBD+rHF,CC7rHC,sBACC,wBD+rHF,CC7rHC,qBACC,QD+rHF,CC9sHC,eACC,aAAc,CACd,sBACA,sBDgtHF,CC9sHC,oBACC,iBDgtHF,CC9sHC,oBACC,kBDgtHF,CC9sHC,sBACC,wBDgtHF,CC9sHC,qBACC,QDgtHF,CC/tHC,eACC,aAAc,CACd,aACA,aDiuHF,CC/tHC,oBACC,QDiuHF,CC/tHC,oBACC,SDiuHF,CC/tHC,sBACC,eDiuHF,CC/tHC,qBACC,QDiuHF,CChvHC,eACC,aAAc,CACd,sBACA,sBDkvHF,CChvHC,oBACC,iBDkvHF,CChvHC,oBACC,kBDkvHF,CChvHC,sBACC,wBDkvHF,CChvHC,qBACC,QDkvHF,CCjwHC,eACC,aAAc,CACd,sBACA,sBDmwHF,CCjwHC,oBACC,iBDmwHF,CCjwHC,oBACC,kBDmwHF,CCjwHC,sBACC,wBDmwHF,CCjwHC,qBACC,QDmwHF,CClxHC,eACC,aAAc,CACd,eACA,eDoxHF,CClxHC,oBACC,UDoxHF,CClxHC,oBACC,WDoxHF,CClxHC,sBACC,iBDoxHF,CClxHC,qBACC,QDoxHF,CCnyHC,eACC,aAAc,CACd,sBACA,sBDqyHF,CCnyHC,oBACC,iBDqyHF,CCnyHC,oBACC,kBDqyHF,CCnyHC,sBACC,wBDqyHF,CCnyHC,qBACC,QDqyHF,CCpzHC,eACC,aAAc,CACd,sBACA,sBDszHF,CCpzHC,oBACC,iBDszHF,CCpzHC,oBACC,kBDszHF,CCpzHC,sBACC,wBDszHF,CCpzHC,qBACC,QDszHF,CCr0HC,eACC,aAAc,CACd,aACA,aDu0HF,CCr0HC,oBACC,QDu0HF,CCr0HC,oBACC,SDu0HF,CCr0HC,sBACC,eDu0HF,CCr0HC,qBACC,QDu0HF,CCt1HC,eACC,aAAc,CACd,sBACA,sBDw1HF,CCt1HC,oBACC,iBDw1HF,CCt1HC,oBACC,kBDw1HF,CCt1HC,sBACC,wBDw1HF,CCt1HC,qBACC,QDw1HF,CCv2HC,eACC,aAAc,CACd,sBACA,sBDy2HF,CCv2HC,oBACC,iBDy2HF,CCv2HC,oBACC,kBDy2HF,CCv2HC,sBACC,wBDy2HF,CCv2HC,qBACC,QDy2HF,CCx3HC,cACC,aAAc,CACd,eACA,eD03HF,CCx3HC,mBACC,UD03HF,CCx3HC,mBACC,WD03HF,CCx3HC,qBACC,iBD03HF,CCx3HC,oBACC,OD03HF,CCz4HC,cACC,aAAc,CACd,sBACA,sBD24HF,CCz4HC,mBACC,iBD24HF,CCz4HC,mBACC,kBD24HF,CCz4HC,qBACC,wBD24HF,CCz4HC,oBACC,OD24HF,CC15HC,cACC,aAAc,CACd,sBACA,sBD45HF,CC15HC,mBACC,iBD45HF,CC15HC,mBACC,kBD45HF,CC15HC,qBACC,wBD45HF,CC15HC,oBACC,OD45HF,CC36HC,cACC,aAAc,CACd,aACA,aD66HF,CC36HC,mBACC,QD66HF,CC36HC,mBACC,SD66HF,CC36HC,qBACC,eD66HF,CC36HC,oBACC,OD66HF,CC57HC,cACC,aAAc,CACd,sBACA,sBD87HF,CC57HC,mBACC,iBD87HF,CC57HC,mBACC,kBD87HF,CC57HC,qBACC,wBD87HF,CC57HC,oBACC,OD87HF,CC78HC,cACC,aAAc,CACd,sBACA,sBD+8HF,CC78HC,mBACC,iBD+8HF,CC78HC,mBACC,kBD+8HF,CC78HC,qBACC,wBD+8HF,CC78HC,oBACC,OD+8HF,CC99HC,cACC,aAAc,CACd,eACA,eDg+HF,CC99HC,mBACC,UDg+HF,CC99HC,mBACC,WDg+HF,CC99HC,qBACC,iBDg+HF,CC99HC,oBACC,ODg+HF,CC/+HC,cACC,aAAc,CACd,qBACA,qBDi/HF,CC/+HC,mBACC,gBDi/HF,CC/+HC,mBACC,iBDi/HF,CC/+HC,qBACC,uBDi/HF,CC/+HC,oBACC,ODi/HF,CChgIC,cACC,aAAc,CACd,qBACA,qBDkgIF,CChgIC,mBACC,gBDkgIF,CChgIC,mBACC,iBDkgIF,CChgIC,qBACC,uBDkgIF,CChgIC,oBACC,ODkgIF,CC5/HC,cACC,YD8/HF,CC5/HC,gBACC,SD8/HF,CC5/HC,gBACC,UD8/HF,CC5/HC,mBACC,SD8/HF,CC5/HC,mBACC,UD8/HF,CC5/HC,qBACC,aD8/HF,CC5/HC,oBACC,OD8/HF,CEvgIG,4BACC,UFygIJ,CEpgIG,4BACC,SFsgIJ,CEjgIG,+BACC,UFmgIJ,CE9/HG,+BACC,SFggIJ,CE3/HG,iCACC,cF6/HJ,CEhjIG,+BAEC,SAAU,CADV,iBFmjIJ,CE5iIG,+BAEC,iBADA,UF+iIJ,CExiIG,iCAEC,aAAc,CADd,wBF2iIJ,CE5jIG,+BAEC,SAAU,CADV,iBF+jIJ,CExjIG,+BAEC,iBADA,UF2jIJ,CEpjIG,iCAEC,aAAc,CADd,wBFujIJ,CExkIG,+BAEC,SAAU,CADV,WF2kIJ,CEpkIG,+BAEC,WADA,UFukIJ,CEhkIG,iCAEC,aAAc,CADd,kBFmkIJ,CEplIG,+BAEC,SAAU,CADV,kBFulIJ,CEhlIG,+BAEC,kBADA,UFmlIJ,CE5kIG,iCAEC,aAAc,CADd,yBF+kIJ,CEhmIG,+BAEC,SAAU,CADV,kBFmmIJ,CE5lIG,+BAEC,kBADA,UF+lIJ,CExlIG,iCAEC,aAAc,CADd,yBF2lIJ,CE5mIG,+BAEC,SAAU,CADV,SF+mIJ,CExmIG,+BAEC,SADA,UF2mIJ,CEpmIG,iCAEC,aAAc,CADd,gBFumIJ,CExnIG,+BAEC,SAAU,CADV,kBF2nIJ,CEpnIG,+BAEC,kBADA,UFunIJ,CEhnIG,iCAEC,aAAc,CADd,yBFmnIJ,CEpoIG,+BAEC,SAAU,CADV,kBFuoIJ,CEhoIG,+BAEC,kBADA,UFmoIJ,CE5nIG,iCAEC,aAAc,CADd,yBF+nIJ,CEhpIG,+BAEC,SAAU,CADV,WFmpIJ,CE5oIG,+BAEC,WADA,UF+oIJ,CExoIG,iCAEC,aAAc,CADd,kBF2oIJ,CE5pIG,gCAEC,SAAU,CADV,kBF+pIJ,CExpIG,gCAEC,kBADA,UF2pIJ,CEppIG,kCAEC,aAAc,CADd,yBFupIJ,CExqIG,gCAEC,SAAU,CADV,kBF2qIJ,CEpqIG,gCAEC,kBADA,UFuqIJ,CEhqIG,kCAEC,aAAc,CADd,yBFmqIJ,CEprIG,gCAEC,SAAU,CADV,SFurIJ,CEhrIG,gCAEC,SADA,UFmrIJ,CE5qIG,kCAEC,aAAc,CADd,gBF+qIJ,CEhsIG,gCAEC,SAAU,CADV,kBFmsIJ,CE5rIG,gCAEC,kBADA,UF+rIJ,CExrIG,kCAEC,aAAc,CADd,yBF2rIJ,CE5sIG,gCAEC,SAAU,CADV,kBF+sIJ,CExsIG,gCAEC,kBADA,UF2sIJ,CEpsIG,kCAEC,aAAc,CADd,yBFusIJ,CExtIG,gCAEC,SAAU,CADV,WF2tIJ,CEptIG,gCAEC,WADA,UFutIJ,CEhtIG,kCAEC,aAAc,CADd,kBFmtIJ,CEpuIG,gCAEC,SAAU,CADV,kBFuuIJ,CEhuIG,gCAEC,kBADA,UFmuIJ,CE5tIG,kCAEC,aAAc,CADd,yBF+tIJ,CEhvIG,gCAEC,SAAU,CADV,kBFmvIJ,CE5uIG,gCAEC,kBADA,UF+uIJ,CExuIG,kCAEC,aAAc,CADd,yBF2uIJ,CE5vIG,gCAEC,SAAU,CADV,SF+vIJ,CExvIG,gCAEC,SADA,UF2vIJ,CEpvIG,kCAEC,aAAc,CADd,gBFuvIJ,CExwIG,gCAEC,SAAU,CADV,kBF2wIJ,CEpwIG,gCAEC,kBADA,UFuwIJ,CEhwIG,kCAEC,aAAc,CADd,yBFmwIJ,CEpxIG,gCAEC,SAAU,CADV,kBFuxIJ,CEhxIG,gCAEC,kBADA,UFmxIJ,CE5wIG,kCAEC,aAAc,CADd,yBF+wIJ,CEhyIG,gCAEC,SAAU,CADV,WFmyIJ,CE5xIG,gCAEC,WADA,UF+xIJ,CExxIG,kCAEC,aAAc,CADd,kBF2xIJ,CE5yIG,gCAEC,SAAU,CADV,kBF+yIJ,CExyIG,gCAEC,kBADA,UF2yIJ,CEpyIG,kCAEC,aAAc,CADd,yBFuyIJ,CExzIG,gCAEC,SAAU,CADV,kBF2zIJ,CEpzIG,gCAEC,kBADA,UFuzIJ,CEhzIG,kCAEC,aAAc,CADd,yBFmzIJ,CEp0IG,gCAEC,SAAU,CADV,UFu0IJ,CEh0IG,gCAEC,UADA,UFm0IJ,CE5zIG,kCAEC,aAAc,CADd,iBF+zIJ,CACF,CAxuIA,0BC9GG,gBACC,aAAc,CACd,cACA,cDy1IF,CCv1IC,qBACC,SDy1IF,CCv1IC,qBACC,UDy1IF,CCv1IC,uBACC,gBDy1IF,CCv1IC,sBACC,QDy1IF,CCx2IC,gBACC,aAAc,CACd,sBACA,sBD02IF,CCx2IC,qBACC,iBD02IF,CCx2IC,qBACC,kBD02IF,CCx2IC,uBACC,wBD02IF,CCx2IC,sBACC,QD02IF,CCz3IC,gBACC,aAAc,CACd,sBACA,sBD23IF,CCz3IC,qBACC,iBD23IF,CCz3IC,qBACC,kBD23IF,CCz3IC,uBACC,wBD23IF,CCz3IC,sBACC,QD23IF,CC14IC,gBACC,aAAc,CACd,eACA,eD44IF,CC14IC,qBACC,UD44IF,CC14IC,qBACC,WD44IF,CC14IC,uBACC,iBD44IF,CC14IC,sBACC,QD44IF,CC35IC,gBACC,aAAc,CACd,sBACA,sBD65IF,CC35IC,qBACC,iBD65IF,CC35IC,qBACC,kBD65IF,CC35IC,uBACC,wBD65IF,CC35IC,sBACC,QD65IF,CC56IC,gBACC,aAAc,CACd,sBACA,sBD86IF,CC56IC,qBACC,iBD86IF,CC56IC,qBACC,kBD86IF,CC56IC,uBACC,wBD86IF,CC56IC,sBACC,QD86IF,CC77IC,gBACC,aAAc,CACd,aACA,aD+7IF,CC77IC,qBACC,QD+7IF,CC77IC,qBACC,SD+7IF,CC77IC,uBACC,eD+7IF,CC77IC,sBACC,QD+7IF,CC98IC,gBACC,aAAc,CACd,sBACA,sBDg9IF,CC98IC,qBACC,iBDg9IF,CC98IC,qBACC,kBDg9IF,CC98IC,uBACC,wBDg9IF,CC98IC,sBACC,QDg9IF,CC/9IC,gBACC,aAAc,CACd,sBACA,sBDi+IF,CC/9IC,qBACC,iBDi+IF,CC/9IC,qBACC,kBDi+IF,CC/9IC,uBACC,wBDi+IF,CC/9IC,sBACC,QDi+IF,CCh/IC,gBACC,aAAc,CACd,eACA,eDk/IF,CCh/IC,qBACC,UDk/IF,CCh/IC,qBACC,WDk/IF,CCh/IC,uBACC,iBDk/IF,CCh/IC,sBACC,QDk/IF,CCjgJC,gBACC,aAAc,CACd,sBACA,sBDmgJF,CCjgJC,qBACC,iBDmgJF,CCjgJC,qBACC,kBDmgJF,CCjgJC,uBACC,wBDmgJF,CCjgJC,sBACC,QDmgJF,CClhJC,gBACC,aAAc,CACd,sBACA,sBDohJF,CClhJC,qBACC,iBDohJF,CClhJC,qBACC,kBDohJF,CClhJC,uBACC,wBDohJF,CClhJC,sBACC,QDohJF,CCniJC,gBACC,aAAc,CACd,aACA,aDqiJF,CCniJC,qBACC,QDqiJF,CCniJC,qBACC,SDqiJF,CCniJC,uBACC,eDqiJF,CCniJC,sBACC,QDqiJF,CCpjJC,gBACC,aAAc,CACd,sBACA,sBDsjJF,CCpjJC,qBACC,iBDsjJF,CCpjJC,qBACC,kBDsjJF,CCpjJC,uBACC,wBDsjJF,CCpjJC,sBACC,QDsjJF,CCrkJC,gBACC,aAAc,CACd,sBACA,sBDukJF,CCrkJC,qBACC,iBDukJF,CCrkJC,qBACC,kBDukJF,CCrkJC,uBACC,wBDukJF,CCrkJC,sBACC,QDukJF,CCtlJC,eACC,aAAc,CACd,eACA,eDwlJF,CCtlJC,oBACC,UDwlJF,CCtlJC,oBACC,WDwlJF,CCtlJC,sBACC,iBDwlJF,CCtlJC,qBACC,ODwlJF,CCvmJC,eACC,aAAc,CACd,sBACA,sBDymJF,CCvmJC,oBACC,iBDymJF,CCvmJC,oBACC,kBDymJF,CCvmJC,sBACC,wBDymJF,CCvmJC,qBACC,ODymJF,CCxnJC,eACC,aAAc,CACd,sBACA,sBD0nJF,CCxnJC,oBACC,iBD0nJF,CCxnJC,oBACC,kBD0nJF,CCxnJC,sBACC,wBD0nJF,CCxnJC,qBACC,OD0nJF,CCzoJC,eACC,aAAc,CACd,aACA,aD2oJF,CCzoJC,oBACC,QD2oJF,CCzoJC,oBACC,SD2oJF,CCzoJC,sBACC,eD2oJF,CCzoJC,qBACC,OD2oJF,CC1pJC,eACC,aAAc,CACd,sBACA,sBD4pJF,CC1pJC,oBACC,iBD4pJF,CC1pJC,oBACC,kBD4pJF,CC1pJC,sBACC,wBD4pJF,CC1pJC,qBACC,OD4pJF,CC3qJC,eACC,aAAc,CACd,sBACA,sBD6qJF,CC3qJC,oBACC,iBD6qJF,CC3qJC,oBACC,kBD6qJF,CC3qJC,sBACC,wBD6qJF,CC3qJC,qBACC,OD6qJF,CC5rJC,eACC,aAAc,CACd,eACA,eD8rJF,CC5rJC,oBACC,UD8rJF,CC5rJC,oBACC,WD8rJF,CC5rJC,sBACC,iBD8rJF,CC5rJC,qBACC,OD8rJF,CC7sJC,eACC,aAAc,CACd,qBACA,qBD+sJF,CC7sJC,oBACC,gBD+sJF,CC7sJC,oBACC,iBD+sJF,CC7sJC,sBACC,uBD+sJF,CC7sJC,qBACC,OD+sJF,CC9tJC,eACC,aAAc,CACd,qBACA,qBDguJF,CC9tJC,oBACC,gBDguJF,CC9tJC,oBACC,iBDguJF,CC9tJC,sBACC,uBDguJF,CC9tJC,qBACC,ODguJF,CC1tJC,eACC,YD4tJF,CC1tJC,gBACC,SD4tJF,CC1tJC,gBACC,UD4tJF,CC1tJC,oBACC,SD4tJF,CC1tJC,oBACC,UD4tJF,CC1tJC,sBACC,aD4tJF,CC1tJC,qBACC,OD4tJF,CEruJG,4BACC,UFuuJJ,CEluJG,4BACC,SFouJJ,CE/tJG,gCACC,UFiuJJ,CE5tJG,gCACC,SF8tJJ,CEztJG,kCACC,cF2tJJ,CE9wJG,gCAEC,SAAU,CADV,iBFixJJ,CE1wJG,gCAEC,iBADA,UF6wJJ,CEtwJG,kCAEC,aAAc,CADd,wBFywJJ,CE1xJG,gCAEC,SAAU,CADV,iBF6xJJ,CEtxJG,gCAEC,iBADA,UFyxJJ,CElxJG,kCAEC,aAAc,CADd,wBFqxJJ,CEtyJG,gCAEC,SAAU,CADV,WFyyJJ,CElyJG,gCAEC,WADA,UFqyJJ,CE9xJG,kCAEC,aAAc,CADd,kBFiyJJ,CElzJG,gCAEC,SAAU,CADV,kBFqzJJ,CE9yJG,gCAEC,kBADA,UFizJJ,CE1yJG,kCAEC,aAAc,CADd,yBF6yJJ,CE9zJG,gCAEC,SAAU,CADV,kBFi0JJ,CE1zJG,gCAEC,kBADA,UF6zJJ,CEtzJG,kCAEC,aAAc,CADd,yBFyzJJ,CE10JG,gCAEC,SAAU,CADV,SF60JJ,CEt0JG,gCAEC,SADA,UFy0JJ,CEl0JG,kCAEC,aAAc,CADd,gBFq0JJ,CEt1JG,gCAEC,SAAU,CADV,kBFy1JJ,CEl1JG,gCAEC,kBADA,UFq1JJ,CE90JG,kCAEC,aAAc,CADd,yBFi1JJ,CEl2JG,gCAEC,SAAU,CADV,kBFq2JJ,CE91JG,gCAEC,kBADA,UFi2JJ,CE11JG,kCAEC,aAAc,CADd,yBF61JJ,CE92JG,gCAEC,SAAU,CADV,WFi3JJ,CE12JG,gCAEC,WADA,UF62JJ,CEt2JG,kCAEC,aAAc,CADd,kBFy2JJ,CE13JG,iCAEC,SAAU,CADV,kBF63JJ,CEt3JG,iCAEC,kBADA,UFy3JJ,CEl3JG,mCAEC,aAAc,CADd,yBFq3JJ,CEt4JG,iCAEC,SAAU,CADV,kBFy4JJ,CEl4JG,iCAEC,kBADA,UFq4JJ,CE93JG,mCAEC,aAAc,CADd,yBFi4JJ,CEl5JG,iCAEC,SAAU,CADV,SFq5JJ,CE94JG,iCAEC,SADA,UFi5JJ,CE14JG,mCAEC,aAAc,CADd,gBF64JJ,CE95JG,iCAEC,SAAU,CADV,kBFi6JJ,CE15JG,iCAEC,kBADA,UF65JJ,CEt5JG,mCAEC,aAAc,CADd,yBFy5JJ,CE16JG,iCAEC,SAAU,CADV,kBF66JJ,CEt6JG,iCAEC,kBADA,UFy6JJ,CEl6JG,mCAEC,aAAc,CADd,yBFq6JJ,CEt7JG,iCAEC,SAAU,CADV,WFy7JJ,CEl7JG,iCAEC,WADA,UFq7JJ,CE96JG,mCAEC,aAAc,CADd,kBFi7JJ,CEl8JG,iCAEC,SAAU,CADV,kBFq8JJ,CE97JG,iCAEC,kBADA,UFi8JJ,CE17JG,mCAEC,aAAc,CADd,yBF67JJ,CE98JG,iCAEC,SAAU,CADV,kBFi9JJ,CE18JG,iCAEC,kBADA,UF68JJ,CEt8JG,mCAEC,aAAc,CADd,yBFy8JJ,CE19JG,iCAEC,SAAU,CADV,SF69JJ,CEt9JG,iCAEC,SADA,UFy9JJ,CEl9JG,mCAEC,aAAc,CADd,gBFq9JJ,CEt+JG,iCAEC,SAAU,CADV,kBFy+JJ,CEl+JG,iCAEC,kBADA,UFq+JJ,CE99JG,mCAEC,aAAc,CADd,yBFi+JJ,CEl/JG,iCAEC,SAAU,CADV,kBFq/JJ,CE9+JG,iCAEC,kBADA,UFi/JJ,CE1+JG,mCAEC,aAAc,CADd,yBF6+JJ,CE9/JG,iCAEC,SAAU,CADV,WFigKJ,CE1/JG,iCAEC,WADA,UF6/JJ,CEt/JG,mCAEC,aAAc,CADd,kBFy/JJ,CE1gKG,iCAEC,SAAU,CADV,kBF6gKJ,CEtgKG,iCAEC,kBADA,UFygKJ,CElgKG,mCAEC,aAAc,CADd,yBFqgKJ,CEthKG,iCAEC,SAAU,CADV,kBFyhKJ,CElhKG,iCAEC,kBADA,UFqhKJ,CE9gKG,mCAEC,aAAc,CADd,yBFihKJ,CEliKG,iCAEC,SAAU,CADV,UFqiKJ,CE9hKG,iCAEC,UADA,UFiiKJ,CE1hKG,mCAEC,aAAc,CADd,iBF6hKJ,CACF,CExjKE,aACE,aF0jKJ,CG3jKC,c5EIC,oC4EDA,yBACA,yBACA,eAAgB,CAChB,kB5EVA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,S4EeF,CALE,iCACE,+BAOJ,CAJO,6GAEC,yBAMR,CAZE,sDAcI,sBAAuB,CAEvB,sBAEA,cAAe,CANf,YAAa,CACb,gBAAiB,CAIjB,mBAFA,kBAJA,iBAAkB,CAQlB,gCAIN,CAvBE,0EAsBM,oBAAqB,CAErB,eADA,kBAEA,mBAIR,CAFQ,8EACE,yBAIV,CAhCE,gFAiCM,SAER,CAnCE,0EAqCM,gBACR,CAEM,4DACE,YAAR,CAzCE,uEA8CI,cAFN,CA5CE,iGAiDM,cAAe,CADf,SAAR,CAhDE,qEAsDI,cAHN,CAnDE,+FAwDM,cAFR,CAMK,4EAEG,iBALR,CAYK,wEAIG,4BAFA,iBATR,CAOK,4FAUK,SAAU,CACV,QAAS,CAJT,iBAAkB,CAElB,WADA,OAAQ,CAIR,0BAXV,CAiBE,sBAEE,sBACA,6BAFA,qBAbJ,CAiBI,gDACE,YAfN,CAkBI,6BACE,YAhBN,CAoBE,oDAEI,yBAnBN,CAuBE,yBACE,yBACA,QArBJ,CAwBE,4CACE,+BAtBJ,CAyBE,mIAEE,eAvBJ,CA2BE,uDACE,eAzBJ,CA4BE,kEACE,wBAA6B,CAC7B,YA1BJ,CA6BE,4FACE,eA3BJ,CA8BE,oBACE,wBAA6B,CAC7B,QA5BJ,CA0BE,uCAII,eA3BN,CAuBE,6DAMM,wBAA6B,CAC7B,YA1BR,CAmBE,uFAUQ,mBAAoB,CADpB,gBAxBV,CAgCI,qIAEE,sBACA,kBA9BN,CCpIE,kBACE,aDsIJ,CClIO,sGAIG,4BAFA,iBDqIV,CCvIO,0HAUK,UACA,QAAS,CAJT,iBAAkB,CAElB,UAAW,CADX,OAAQ,CAIR,0BDmIZ,CC1HO,wEAEC,2BD4HR,CCxHS,2FAEC,iBADA,cD2HV,CCtHW,+FACC,wBDwHZ,CClHS,2FAEC,aAAc,CADd,iBDqHV,CC7GS,6FAEC,cAAe,CADf,kBDgHV,CExKC,aAEC,yBADA,iBACF,CAEE,mBACE,YAAa,CACb,cAAJ,CAGE,oBAIE,cAAe,CAFf,aAAc,CACd,kBAFA,iBAEJ,CAHE,wBASI,iBAAkB,CADlB,WAAY,CADZ,UACN,CAKE,qBAKE,oBAAqB,CAHrB,aAAc,CAEd,eADA,aAAc,CAFd,iBACJ,CAKI,4BACE,YAAa,CACb,cAAe,CAGf,eAFA,0BAA2B,CAC3B,iBAFN,CAKM,+DAGE,eACA,gBAAiB,CAFjB,iBADR,CAMM,iCACE,sBACA,eACA,oBAJR,CASU,2EACE,qBAJZ,CASM,iCACE,WAEA,WAAY,CADZ,kBANR,CAWI,8BACE,sBACA,oBATN,CAaE,qBAEE,sBADA,gBAEA,cAXJ,CAQE,wBAOI,sBADA,oBAVN,CAIE,6BAWM,sBAEA,cAAe,CADf,eAFA,iBAAkB,CAIlB,oBAAsB,CACtB,oFAXR,CAaQ,mCACE,aAXV,CAiBE,oBACE,gBAfJ,CC/EE,iBACE,aDiFJ,CC7EK,qCAEC,gBAAiB,CADjB,cDgFN,CCvES,iGAEC,gBAAiB,CADjB,eD2EV,CCnEK,sCACC,eDqEN,CChES,8CAEC,gBAAiB,CADjB,cDmEV,CC3DK,qCAEC,aAAc,CADd,iBD8DN,CEtGE,yBAEE,kBAAmB,CADnB,YAAa,CAEb,kBADJ,CAIE,wBAGE,sBAFA,SAAU,CAIV,eADA,eAAiB,CAEjB,mBAJA,eAAgB,CAMhB,sBAAuB,CADvB,kBADJ,CAKE,wBAEE,sBACA,eAFA,gBADJ,CAME,uBAEE,kBADA,UAHJ,CAEE,6BAMI,kBAAmB,CADnB,UAHN,CAQE,kDAGI,mBAPN,CAUI,iCACE,kBARN,CAYE,6BACE,sBAEA,eADA,eAAmB,CAEnB,mBACA,gBAVJ,CAYI,mCAEI,WAAY,CAQd,mBAFA,iBAAkB,CAClB,SAfN,CAoBK,kEACC,WAlBN,CAuBI,sCAEE,UAAW,CADX,QApBN,CAyBE,+BAGE,sBAFA,kBAAmB,CACnB,SAEA,eACA,mBAEA,wBAAyB,CADzB,qBAtBJ,CA0BE,uBACE,gBAAiB,CACjB,kBAxBJ,CA0BI,iCACE,YAxBN,CAuBI,8HAMI,oBAAqB,CADrB,mBAvBR,CA6BE,oGAIM,mBA7BR,CAkCE,kGAIM,kBAlCR,CAuCE,kDAEI,wBAtCN,CAoCE,wDAMM,wBAAyB,CADzB,iBArCR,CAgCE,kHAaI,+BADA,iBAvCN,CA0CM,wIACE,iBAvCR,CAuBE,wDAqBI,wBAzCN,CA2CM,8DACE,YAzCR,CAiBE,iDA6BI,+BA3CN,CA6CM,4DACE,kBA3CR,CA+CK,kKAGG,iBA9CR,CAkDK,gKAGG,gBAjDR,CCrHE,sBACE,aDuHJ,CClHO,yDACC,kBDoHR,CC3GO,4JAEC,8BADA,iBD+GR,CC5GQ,kLACE,gBD+GV,CErIC,alFIC,oCkFDA,qClFPA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SkFYF,CALE,sBAQE,sCADA,YAAa,CAJb,oBAAqB,CACrB,WAAa,CACb,aAJA,iBAAkB,CAClB,UAAY,CAIZ,qBASJ,CAJE,wBAEE,UAAW,CADX,YAAa,CAIb,aAAc,CADd,cAAe,CADf,UAQJ,CAHE,8CAEE,kBAAmB,CAOnB,YAAa,CACb,iCANA,sBAHA,YAAa,CAKb,eADA,eAAgB,CAFhB,aAAc,CAKd,iBAAkB,CADlB,kBAQJ,CAHI,yGAOE,eAAgB,CAHhB,iCAEA,wBAAyB,CAGzB,UAAW,CAPX,iBAAkB,CAMlB,yBAA0B,CAL1B,SAUN,CACI,0DACE,QACN,CAQI,oHACE,SAHN,CAMI,0DACE,QAJN,CAQE,wBACE,oBAAqB,CACrB,aANJ,CASE,oBACE,eAAgB,CAGhB,kDAPJ,CAWI,+IAEE,6BATN,CAaE,yCACE,sBAXJ,CAcE,yCACE,sBAEA,eADA,eAXJ,CAgBI,yGACE,OAdN,CAiBI,wGACE,UAfN,CASE,0HAUI,cAhBN,CAqBI,2GACE,UAnBN,CAsBI,0GACE,OApBN,CAcE,4HAUI,eArBN,CCpGE,iBACE,aDsGJ,CCjGO,0EACC,SDmGR,CCtFO,oJACC,QD2FR,CCtFO,0EACC,SDwFR,CEnHC,YAIC,QAAS,CACT,MAAO,CAEP,mBAAoB,CANpB,cAAe,CAEf,OAAQ,CADR,KAAM,CAIN,YCAF,CDGE,mBACE,iBCDJ,CDKE,iBAOE,2BAHA,QAAS,CACT,MAAO,CAGP,mBAAoB,CAPpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,YCDJ,CDOE,4BACE,iBAAkB,CAElB,mBADA,YCJJ,CDOI,mCACE,YCLN,CDSK,6CAEC,QAAS,CAET,yGADA,MAAO,CAFP,KCJN,CDUK,8CAGC,QAAS,CACT,4GAFA,OAAQ,CADR,KCLN,CDWK,4CAIC,yGADA,MAAO,CADP,OAAQ,CADR,KCNN,CDYK,+CAEC,QAAS,CAET,4GADA,MAAO,CAFP,OCPN,CDcE,oBAIE,gBAFA,WAAY,CACZ,aAAc,CAEd,mBAAoB,CAJpB,UCRJ,CDgBE,yBACE,YAAa,CACb,qBAAsB,CAEtB,WAAY,CADZ,UCbJ,CDkBE,mBAGE,kBAAmB,CAInB,gCANA,YAAa,CACb,SAGA,eACA,iBAFA,iBCbJ,CDkBI,yBAGE,kBAAmB,CAFnB,YAAa,CACb,SAGA,YAAa,CADb,WCfN,CDoBE,kBACE,SClBJ,CDqBE,kBAWE,sBAAuB,CACvB,QAAS,CATT,sBAWA,cAAe,CAbf,oBAAqB,CAIrB,eACA,iBAAkB,CAFlB,eAAgB,CAGhB,aAAc,CALd,iBAAkB,CAWlB,SAAU,CALV,iBAAkB,CAElB,oBAAqB,CAMrB,mBAAoB,CAPpB,mBAAoB,CAMpB,oBClBJ,CDqBI,gDAEE,sBACA,oBCnBN,CDuBE,kBAGE,sBAFA,SAIA,eADA,eAAgB,CAEhB,iBAJA,QCjBJ,CDyBE,iBACE,SAEA,YAAa,CADb,WAAY,CAGZ,aAAc,CADd,YCtBJ,CD2BE,mBAGE,6BAFA,aAAc,CACd,iBCxBJ,CC5HI,+EACE,eDgIN,CCjHM,kMACE,kBD0HR,CCtHI,6DAEE,SDwHN,CCjHI,yGACE,SDuHN,CCrHM,qCACE,SDuHR,CCzJI,+HACE,eD6JN,CC1JI,kIACE,kBD8JN,CCpHQ,qFACE,qCDuHV,CC/GM,2HACE,uBDqHR,CCnHQ,2CACE,2BDqHV,CCjLI,kIACE,eDqLN,CClLI,qIACE,kBDsLN,CCpHQ,uFACE,oCDuHV,CC/GM,8HACE,uBDqHR,CCnHQ,4CACE,0BDqHV,CCzMI,4HACE,eD6MN,CC1MI,+HACE,kBD8MN,CCpHQ,mFACE,qCDuHV,CC/GM,wHACE,uBDqHR,CCnHQ,0CACE,2BDqHV,CCjOI,qIACE,eDqON,CClOI,wIACE,kBDsON,CCpHQ,yFACE,oCDuHV,CC/GM,iIACE,uBDqHR,CCnHQ,6CACE,0BDqHV,CE5PE,gBACE,aF8PJ,CE1PK,kCAEC,gBAAiB,CADjB,cF6PN,CG/PC,gDAGK,eCNN,CCDC,iBACC,YAAa,CACb,cDGF,CCLC,gCAKG,SAAU,CACV,gBAAiB,CAEjB,eAAgB,CADhB,iBDIJ,CCDI,0CACE,kBDGN,CCdC,4GAgBK,oBAAqB,CACrB,kBDEN,CCnBC,qDAqBK,SDCN,CCtBC,2GA6BK,oBDDN,CE5BC,0CAEG,WF6BJ,CE/BC,4CAKG,QAAS,CAGT,WF2BJ,CEnCC,+JAcG,0BFyBJ,CGFI,sCACE,qBHIN,CGDI,8CACE,WHGN,CGVC,yDAWK,UHEN,CGGC,2GA7CC,mBADA,gBAGA,eAAgB,CADhB,kBHiDF,CGLC,6HAxCG,QHkDJ,CGhDI,+IACE,YHoDN,CIiIG,kJACC,gBJ7HJ,CGbA,yBAtCG,oCAdD,mBADA,gBAGA,eAAgB,CADhB,kBHuEA,CG1DC,0CATC,QHsEF,CGpEE,gDACE,YHsEJ,CI+GC,iDACC,gBJ7GF,CGhEC,yBAEG,cHiEJ,CGnEC,8FAKK,aAAc,CACd,cHkEN,CGnCC,mCAtDD,mBADA,gBAGA,eAAgB,CADhB,kBH8FA,CGzCC,yCAjDC,QH6FF,CG3FE,+CACE,YH6FJ,CIwFC,gDACC,gBJtFF,CACF,CG9CA,yBACG,mCA5DD,mBADA,gBAGA,eAAgB,CADhB,kBH+GA,CGpDC,yCAvDC,QH8GF,CG5GE,+CACE,YH8GJ,CIuEC,gDACC,gBJrEF,CACF,CGzDA,yBACG,mCAlED,mBADA,gBAGA,eAAgB,CADhB,kBHgIA,CG/DC,yCA7DC,QH+HF,CG7HE,+CACE,YH+HJ,CIsDC,gDACC,gBJpDF,CACF,CGpEA,0BACG,mCAxED,mBADA,gBAGA,eAAgB,CADhB,kBHiJA,CG1EC,yCAnEC,QHgJF,CG9IE,+CACE,YHgJJ,CIqCC,gDACC,gBJnCF,CACF,CG/EA,0BACG,mCA9ED,mBADA,gBAGA,eAAgB,CADhB,kBHkKA,CGrFC,yCAzEC,QHiKF,CG/JE,+CACE,YHiKJ,CIoBC,gDACC,gBJlBF,CACF,CKxKI,6BACE,aL8KN,CK3KI,+BACE,aL6KN,CKzKE,wCAGI,gBLyKN,CKpKE,gDCvBE,aN8LJ,CKlKE,8CC5BE,aNiMJ,CA3LC,UzFPC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SyFmNF,CAtMC,iBMUG,QAAS,CACT,gCAJA,sBAJA,aAAc,CAKd,eACA,mBAAoB,CAJpB,kBAAmB,CACnB,SAAU,CAFV,UN6MJ,CAjNC,gBMeG,cNqMJ,CApNC,6BMmBG,qBNoMJ,CAvNC,2DMyBG,kBNkMJ,CA3NC,2BM6BG,aNiMJ,CA9NC,4BMkCG,aAAc,CACd,UN+LJ,CAlOC,kDMyCG,WN6LJ,CAtOC,wGMgDG,mBAAoB,CACpB,yCAA0C,CAC1C,mBN2LJ,CA7OC,iBMyDG,sBAFA,aAAc,CAGd,eACA,mBAHA,gBN4LJ,CApPC,yBAKG,oBAAqB,CACrB,iBAkPJ,CAlOE,2CARI,WA6ON,CArOE,6CAJI,eA4ON,CApOE,2CAZI,WAmPN,CAvOE,6CARI,eAkPN,CAzNC,ezFlDC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CyFsDhB,gBzF3DA,SAAU,CyF4DV,kBAkOF,CAhOE,yBACE,eAkOJ,CA/NG,oDAGC,YAgOJ,CA1NE,qBACE,oBAAqB,CACrB,WAAY,CACZ,eAAgB,CAEhB,gBAAiB,CACjB,qBAAsB,CAFtB,kBA8NJ,CA1NI,0BACE,eA4NN,CAzNI,0BAEE,qBADA,kCAEA,mBA2NN,CA1OE,2BAqBI,kBAAmB,CAGnB,sBAJA,mBAAoB,CAKpB,eAFA,YADA,cAAe,CAHf,iBAgON,CAnPE,oCA4BM,eACA,kBA0NR,CAtNO,oGAGC,cAIA,WAAY,CANZ,oBAAqB,CAIrB,6BAA+B,CAD/B,eAEA,aAAc,CAJd,gBA6NR,CAtNS,iIACC,YAwNV,CAnQE,mDAmDM,sBAFA,oBAAqB,CACrB,eAsNR,CAnNS,gFACC,YAqNV,CA3QE,kDA4DM,sBACA,WAAY,CAEZ,wBADA,iDAmNR,CA/MM,iCAEI,WAAY,CAQd,mBAFA,iBAAkB,CAClB,SA4MR,CAxMO,wDACC,WA0MR,CAlME,uBACE,YAAa,CACb,qBAAsB,CACtB,WAoMJ,CAlMI,oFACE,UAoMN,CAhME,6BAGE,kBAAmB,CADnB,YAAa,CAEb,gBAHA,iBAqMJ,CAhMI,qCACE,SAAU,CACV,cAkMN,CA3LE,4CAEE,UAAW,CACX,sBACA,eACA,mBACA,kDA6LJ,CAzLE,iCACE,UA2LJ,CAxLE,qBACE,eA0LJ,CAvLE,gDACE,WAAY,CAEZ,SAwLJ,CAlLE,6BAIE,mDAHA,eAIA,mBAAoB,CAHpB,iBAAkB,CAClB,kBAsLJ,CAlLI,qCACE,aAoLN,CAjLI,mCACE,aAmLN,CAhLI,qCACE,aAkLN,CA/KI,wCACE,aAiLN,CA1KC,eACC,qDA4KF,CA1KE,2CAEE,SA4KJ,CArKE,8EACE,SA2KJ,CAzKI,4BACE,SA2KN,CArKC,oBACC,eAAgB,CAChB,sJAuKF,CApKE,qDAGE,SAAU,CADV,0BAuKJ,CApKI,mEAEE,SAAU,CADV,uBAwKN,CAnKE,0BACE,sJAqKJ,CAjKE,iCACE,0BAmKJ,CA7JA,uBACE,GAEE,SAAU,CADV,kBAgKF,CA5JA,GAEE,SAAU,CADV,kBA+JF,CACF,CA3JA,uBACE,GAEE,SAAU,CADV,kBA8JF,CA1JA,GAEE,SAAU,CADV,kBA6JF,CACF,CAzJA,uBACE,GAEE,SAAU,CADV,kBA4JF,CAxJA,GAEE,SAAU,CADV,kBA2JF,CACF,CIxdE,cACE,aJ0dJ,CI9cK,mCACC,eJgdN,CI3cS,uEAEC,eAAgB,CADhB,cJ8cV,CIxcS,+CACC,kBJ0cV,CIrcS,iEAEC,aAAc,CADd,gBJwcV,CI7bK,gDACC,UJ+bN,CIxbO,qDAEC,iBAAkB,CADlB,kBJ2bR,CIpbS,qFAEC,iBAAkB,CADlB,kBJubV,CI1aS,0KACC,SJ+aV,CIxaS,kHAEC,SAAU,CADV,UJ2aV,CIpaO,4DACC,iBJsaR,CIxZO,kjBAEC,SAAU,CADV,UJgaR,CIpZO,kVAEC,iBAAkB,CADlB,eJyZR,CIlZS,qEAEC,gBAAiB,CADjB,cJqZV,CI/YS,qEAEC,SAAU,CADV,UJkZV,CIrYS,kHAEC,oBADA,kBJ4YV,CItYS,4DAEC,oBADA,iBJyYV,CI5XW,oYAEC,MAAO,CADP,UJkYZ,CItXK,6CAEC,gBAAiB,CADjB,cJyXN,COnjBC,WAEC,oBAAqB,CADrB,iBAAF,CAGE,eAEE,WAAY,CACZ,qBAAsB,CAFtB,UACJ,CAGI,2BACE,yBACA,ymBAEA,uBAAkC,CADlC,2BAA4B,CAE5B,mBADN,CAKE,gBAOE,kBAAmB,CAGnB,0BANA,QAAS,CAKT,WAEA,cAAe,CALf,YAAa,CAEb,sBAAuB,CAHvB,MAAO,CAOP,SAAU,CAXV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAWN,sBAHJ,CAKI,qBAEE,eAAgB,CADhB,cAGA,sBAAuB,CADvB,kBAFN,CADI,8BAMI,qBAFR,CAMI,sBACE,SAJN,CAQE,uBClDA,QAAS,CACT,MAAO,CAJP,kBAEA,OAAQ,CADR,KDmDF,CAKE,mBAGE,WAAY,CE1Dd,mBAAoB,CF2DlB,iBAJJ,CErDG,qEAIC,uBADA,SAAU,CADV,cAAe,CAGf,oFFuDJ,CEpDE,wBAIE,iCDbF,QAAS,CCYP,WAAY,CDXd,MAAO,CAJP,eAEA,OAAQ,CADR,KAAM,CCaJ,YF4DJ,CExDI,+BACE,YF0DN,CEtDE,wBDpBA,QAAS,CACT,MAAO,CCsBL,SAAU,CADV,aAAc,CDzBhB,eAEA,OAAQ,CADR,KDqFF,CAvBI,wBC5DF,QAAS,CACT,MAAO,CD6DH,eAAgB,CCjEpB,kBAEA,OAAQ,CADR,KD6FF,CA1BI,uBAKE,WAAY,CAHZ,eAAgB,CADhB,cAAe,CAOf,mBAAoB,CAJpB,mBAA2B,CAG3B,oFAAiB,CAJjB,qBAiCN,CA1BM,sDAJA,yDAsCN,CAlCM,+BC3EJ,QAAS,CACT,MAAO,CAJP,kBAEA,OAAQ,CADR,KD+GF,CA9BQ,sCAKE,UAAW,CAJX,oBAAqB,CAErB,UAAW,CACX,iBAAkB,CAFlB,SAmCV,CA3BI,iDAEI,eA4BR,CA1BQ,yDACE,sBA4BV,CAvBI,wBACE,YAyBN,CAtBI,sCACE,cAAe,CAEf,OAAQ,CADR,KAAM,CAGN,UAAW,CADX,YAyBN,CArBI,8BhG1GF,oCgG8GI,kBAAmB,CAGnB,0BhGzHJ,qBAAsB,CAGtB,sBgGoHI,0BAHA,YAAa,CACb,0BAA2B,ChGjH/B,eACA,0BACA,mBgGkHI,eAAgB,ChGvHpB,QAAS,CACT,SAAU,CgGwHN,mBA8BN,CA5BM,wCAGE,cAAe,CAFf,iBACA,aAEA,kBA8BR,CA5BQ,8CACE,yBA8BV,CA3BQ,iDACE,0BACA,mBA6BV,CA1BQ,qDACE,aA4BV,CAxBM,uCAEE,QAAS,CADT,iBAAkB,CAElB,0BA0BR,CAvBM,mCACE,cAyBR,CArBI,+DAOE,kBAAmB,CAKnB,0BACA,iBAAkB,CAFlB,0BAIA,cAAe,CATf,YAAa,CAIb,WAAY,CAFZ,sBAAuB,CASvB,mBAAoB,CAfpB,cAAe,CAEf,SAAU,CADV,OAAQ,CAWR,0BAA2B,CAE3B,kBAAoB,CAPpB,UAAW,CAJX,YAmCN,CArBM,2EACE,yBAwBR,CArBM,8KAGE,0BADA,0BAEA,kBAyBR,CA7BM,kNAMI,kBA6BV,CA1DI,iFAkCI,cA4BR,CAxBI,+BACE,QA0BN,CAvBI,gCACE,SAyBN,CGzNE,gC1F0DA,sBACA,qBAAsB,CACtB,yBACA,kBANA,sBAJA,oBAAqB,C0F/CnB,mBAAoB,C1FoDtB,eACA,mBAJA,WAAY,C0F/CV,SAAU,CACV,0BAJA,iBAAkB,C1F2DpB,kBAAoB,CAVpB,UAAW,C0F/CT,UCUJ,CnDlBE,kDACE,cACA,sCmDoBJ,CnDtBE,sDACE,cACA,qCmDoBJ,CnDtBE,6CACE,cACA,oFmDoBJ,CnDjBE,uDACE,sBmDmBJ,CnDpBE,sDACE,sBmDmBJ,CnDpBE,kDACE,sBmDmBJ,C3F2CE,sCAlCA,qBACA,sB2FNF,C3F2CE,8EAtDE,qBAUF,uBAPE,yCAQF,S2FOF,C3FyCE,yCArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S2FAF,C3FEE,+CAZA,qBACA,sB2FaF,C3FiCE,0CAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S2FYF,C3FVE,gDAZA,qBACA,sB2FyBF,C3F0BI,ySAME,wBAA6B,CAC7B,WAAY,CACZ,e2FxBN,C3F6BE,wCAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qB2F1BJ,C3F+BE,mCAzGA,eADA,kB2F+EF,C3F+BE,mCAzGA,a2F6EF,CDzEI,oF1FsBF,qBACA,uB0FrBI,SC4EN,CDzEI,8EAEE,SC2EN,CDxEI,qEAEI,sBCyER,CD9FE,qDA2BI,WAAY,CACZ,YAAa,CAFb,UCyEN,CDrEO,8EACC,yBCuER,CDtGE,6DAoCI,SCqEN,CDlEI,uCAIE,aAAc,CAHd,oBAAqB,CAErB,iBAAkB,CADlB,OCsEN,CD/GE,+DA+CI,SCmEN,CD/DE,kDAIE,kBAAmB,CAFnB,YAAa,CACb,SAAU,CAEV,mBCiEJ,CD9DE,yBACE,qBCgEJ,CD7DE,yBAKE,WAAY,CAEZ,gBADA,kBALA,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAEN,SCkEJ,CD3DC,gEACC,UC6DF,C3FiSI,0OAEE,gBACA,oB2F/RN,C3FkSI,kPAhaA,qBAUF,uBAPE,wCAQF,S2F0HF,CCnJI,wD5F8bA,a2FxSJ,C3FkRI,8OAEE,gBACA,oB2FhRN,C3FmRI,sPAhaA,qBAUF,uBAPE,yCAQF,S2FyIF,CC7JI,0D5FybA,a2FzRJ,C3FmQI,0VAEE,gBACA,oB2FjQN,C3FoQI,kWAhaA,qBAUF,uBAPE,wCAQF,S2FwJF,CCjLI,sE5F8bA,a2F1QJ,C3FoPI,8VAEE,gBACA,oB2FlPN,C3FqPI,sWAhaA,qBAUF,uBAPE,yCAQF,S2FuKF,CC3LI,wE5FybA,a2F3PJ,CCtLE,2E5F4bE,qBADA,a2FjQJ,CCtLE,6E5FwbE,qBADA,a2F7PJ,CA1MC,kBpGAC,oCSwDA,sBACA,qBAAsB,C2FrCtB,yBACA,kBpG7BA,qBAAsB,CS6DtB,sB2FrCA,oBAAqB,C3FsCrB,eTzDA,0BS0DA,mBTxDA,eAAgB,CoGmBhB,QAAS,C3FiCT,WAAY,C2FhCZ,SAAU,C3F6BV,iBAAkB,CAYlB,kBAAoB,CAVpB,UAAW,C2FjCX,UA+MF,CnDrOE,oCACE,cACA,sCmDuOJ,CnDzOE,wCACE,cACA,qCmDuOJ,CnDzOE,+BACE,cACA,oFmDuOJ,CnDpOE,yCACE,sBmDsOJ,CnDvOE,wCACE,sBmDsOJ,CnDvOE,oCACE,sBmDsOJ,C3FpKE,kDAtDE,qBAUF,uBAPE,yCAQF,S2F0NF,C3FtKE,4BAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S2F+NF,C3F7NE,kCAZA,qBACA,sB2F4OF,C3FzLI,qNAME,wBAA6B,CAC7B,WAAY,CACZ,e2F2LN,C3FtLE,0BAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qB2FyLJ,C3FpLE,qBA1GA,kB2FkSF,C3FpLE,qBAzGA,a2FgSF,CA9RE,wBpGLA,oCSsHA,uBAAyB,CACzB,gBAAiB,CT/HjB,qBAAsB,CAGtB,sBSyHA,aAAc,CTxHd,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CSyHV,iBAAkB,CAElB,U2F8LF,C3FzLE,qCACE,UAAW,CAEX,cAAe,CADf,e2F4LJ,CAnTE,sC3F4HE,iB2F0LJ,C3FxLI,iDACE,e2F0LN,C3FtLG,qGAGC,kB2FwLJ,C3FtLI,8MACE,e2F0LN,C3FtLE,2DAIE,qBAAsB,CADtB,kBAAmB,CADnB,S2F0LJ,C3FrLE,+BACE,uB2FuLJ,CA5UE,0C3FyJE,UAAW,CAEX,eAAgB,CAChB,kBAAmB,CAFnB,U2FwLJ,C3F/KI,gGAEE,sBAAuB,CADvB,S2FsLN,C3FpLO,8EACC,S2FsLR,C3FjLE,8BAOE,yBACA,yBACA,kBANA,sBAEA,eADA,eAAmB,CAFnB,eADA,iBAAkB,CAKlB,iBAAkB,CAIlB,kB2FmLJ,C3F7LE,0CAcI,iB2FkLN,C3FhLO,kHAEC,wBAAyB,CACzB,6BACA,e2FiLR,C3F9KM,2IAGI,a2F+KV,C3FzME,mDAkCI,wBAA6B,CAD7B,iB2F4KN,C3F7ME,uEAqCM,QAAS,CACT,eAAgB,CAFhB,e2F8KR,CA9XE,kQ3FgOI,4BAA6B,CAD7B,yB2FyKN,C3FnKK,4FAEC,2BAA4B,CAD5B,wB2FsKN,C3FlKK,2FAEC,4BAA6B,CAD7B,yB2FqKN,C3FhKE,0CACE,c2FkKJ,C3F/JE,yCACE,a2FiKJ,CAtZE,8P3FgQI,2BAA4B,CAD5B,wB2FiKN,C3F3JG,sGA3QD,eADA,kB2F4aF,C3F3JG,sGA5QD,a2F2aF,C3FzJG,mEACC,W2F2JJ,C3FxJG,mEACC,W2F0JJ,C3FtJI,yEAEE,4BAA6B,CAD7B,yB2FyJN,C3FvJO,2FAEC,8BADA,0B2F0JR,C3FrJK,sKAGC,2BAA4B,CAD5B,wB2FwJN,C3FnJE,uDACE,a2FqJJ,ChHzcE,8DAEE,UAAW,CADX,agH4cJ,ChHxcE,6DAGE,UAAW,CACX,UAAW,CAFX,agH2cJ,C3FxJM,2SACE,sB2F4JR,C3FtJQ,0nBACE,S2F+JV,C3F1JI,yDAIE,eAAgB,CAHhB,oBAAqB,CACrB,UAAW,CACX,kB2F6JN,C3FzJK,8PAGC,mB2F2JN,C3FxJI,yEAEE,uBADA,iB2F2JN,C3F7LE,yEAwCI,U2FwJN,C3FpJK,sWAKC,eAAgB,CADhB,sB2FuJN,C3FtIK,45BACC,S2FuJN,C3FpJK,mXAKC,8BADA,0B2FuJN,C3FnJK,kXAMC,+BAFA,uBACA,2B2FsJN,C3FjJK,4FACC,kB2FmJN,C3F3OE,yGA4FI,gB2FkJN,C3F1IS,qTACC,e2F+IV,C3F5IS,8IACC,yB2F8IV,CAhiBE,0DEsCE,yBF6fJ,CAniBE,yDEyCE,yBF6fJ,CEzfK,sEAEC,aAAc,CACd,0BAFA,8BF6fN,CEzfK,qEAEC,8BACA,0BAFA,cF6fN,CA5iBI,gCACE,oBAAqB,CACrB,gBAAiB,CACjB,kBA8iBN,CAniBE,0BAUE,8BAJA,sBAJA,aAAc,CAKd,eAAiB,CAHjB,UAAW,CAIX,aAAc,CAHd,eAAgB,CAJhB,iBAAkB,CAQlB,iBAAkB,CAElB,yBAA2B,CAR3B,UA6iBJ,CAniBI,iCACE,kBAqiBN,CAliBI,wIAEE,aAoiBN,CAhiBE,wE9G7CA,kCAAmC,CACnC,iCAAkC,CATlC,kBAAmB,CACnB,c8G4DE,sB9G9DF,mBAAoB,CAGpB,iBAAkB,C8G0DhB,WAAY,C9GzDd,aAAc,C8G2DZ,gBAAiB,CALjB,iBAAkB,CAClB,SAAU,C9GtDZ,iBAAkB,CAGlB,iCAAkC,CAFlC,mBAAoB,C8G0DlB,yBAA2B,CAC3B,oFAAiB,C9G1DnB,sBAAwB,C8GqDtB,UAgjBJ,CAtjBE,4E9GzCE,a8GmmBJ,CA1jBE,gF9GrCE,oB8GmmBJ,C9GhmBE,sFACE,Y8GmmBJ,C9GhmBE,oTACE,a8GqmBJ,CA1jBE,wB3F/BA,qBACA,sB2F4lBF,CA5jBK,qDACC,SAAU,CACV,mCA8jBN,CA1jBE,0B3FvDE,qBAUF,uBAPE,yCAQF,S2F4mBF,CA5jBE,2B3FrCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S2FqmBF,C3FnmBE,iCAZA,qBACA,sB2FknBF,CAxkBE,mDAGI,kBAwkBN,CAjkBE,oHAEI,YAqkBN,CAjkBE,wBAUE,yGAAgC,CALhC,wBAA6B,CAC7B,QAAS,CACT,kBALA,YAMA,SAAU,CALV,eACA,eAAgB,CAKhB,yBAA2B,CAR3B,UA4kBJ,CnD1qBE,0CACE,cACA,sCmD4qBJ,CnD9qBE,8CACE,cACA,qCmD4qBJ,CnD9qBE,qCACE,cACA,oFmD4qBJ,CnDzqBE,+CACE,sBmD2qBJ,CnD5qBE,8CACE,sBmD2qBJ,CnD5qBE,0CACE,sBmD2qBJ,CAvkBI,gIAIE,uBAAwB,CACxB,eAAgB,CAHhB,QA4kBN,CArkBE,qBAEE,eADA,SAwkBJ,CAzkBE,2BAKI,WAukBN,CAnkBE,qBACE,SAqkBJ,CAtkBE,2BAII,YACA,aAqkBN,CAjkBE,+BAME,gBACA,0BAFA,WAAY,CAGZ,SAAU,CAPV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAON,kCAAqC,CALrC,UAwkBJ,CA5kBE,0LAkBM,kBAAmB,CADnB,YAAa,CAKb,aAAc,CAHd,sBAAuB,CAEvB,cAAe,CADf,cAikBR,CA3jBK,4DACC,mBA6jBN,CAzjBE,+DACE,UA2jBJ,CAxjBE,gHAEE,SA0jBJ,CAvjBE,6BACE,4BACA,cAyjBJ,CAvjBI,mCAEE,eAAgB,CAChB,iBAAkB,CAFlB,OA2jBN,CAtjBI,mCACE,oBAwjBN,CApjBE,+BAGE,+BADA,6BAEA,cAAe,CAHf,KAyjBJ,CApjBI,qCAEE,iBAAkB,CADlB,OAAQ,CAER,0BAsjBN,CAnjBI,qCACE,oBAqjBN,CAnjBK,4DACC,kBAqjBN,CAjjBE,oLAEE,4BAmjBJ,CAhjBE,8EAEE,kBAkjBJ,CA/iBE,kKAEE,qBAijBJ,CA9iBE,6BACE,eAgjBJ,CA5iBE,qCAEI,aA6iBN,C1FxtBI,gHACE,iB0F0tBN,C1FttBI,0GACE,gB0FwtBN,C1F5sBS,wKACC,S0FmtBV,C1F/sBM,yCACE,S0FitBR,C1FryBK,mIACC,e0FuyBN,C1FpyBK,qKAEC,4BAA6B,CAD7B,yB0FuyBN,C1F7xBK,oUAEC,2BAA4B,CAD5B,wB0FoyBN,C1F/xBK,+JAEC,4BAA6B,CAD7B,yB0FkyBN,CEpzBE,sBACE,aFszBJ,CElzBK,gDAEC,aAAc,CADd,8BFqzBN,CEhzBO,qDAEC,MAAO,CADP,UFmzBR,CE/yBO,iFACC,oBFizBR,CE5yBO,mDACC,yBF8yBR,CEzyBO,qDACC,4BF2yBR,CEryBK,8CACC,aAAc,CACd,gBFuyBN,CG50BE,yB9F0DA,sBACA,qBAAsB,CACtB,yBACA,kBANA,sBAJA,oBAAqB,C8FjDnB,mBAAoB,C9FsDtB,eACA,mBAJA,WAAY,CACZ,iBAJA,iBAAkB,CAYlB,kBAAoB,CAVpB,U+FxCF,CvDfE,2CACE,cACA,sCuDiBJ,CvDnBE,+CACE,cACA,qCuDiBJ,CvDnBE,sCACE,cACA,oFuDiBJ,CvDdE,gDACE,sBuDgBJ,CvDjBE,+CACE,sBuDgBJ,CvDjBE,2CACE,sBuDgBJ,C/F8CE,+BAlCA,qBACA,sB+FTF,CC4CG,8CAEC,gCADA,oBDzCJ,C/F0CE,gEAtDE,qBAUF,uBAPE,yCAQF,S+FQF,CC0BG,8FAEC,gCADA,oBDtBJ,C/FmCE,kCArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S+FMF,C/FJE,wCAZA,qBACA,sB+FmBF,C/F2BE,mCAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S+FkBF,C/FhBE,yCAZA,qBACA,sB+F+BF,C/FoBI,+PAME,wBAA6B,CAC7B,WAAY,CACZ,e+FlBN,C/FuBE,iCAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qB+FpBJ,C/FyBE,4BAzGA,eADA,kB+FqFF,C/FyBE,4BAzGA,a+FmFF,CCdE,6BACE,aDgBJ,CDvFI,sE9F2BF,qBACA,uB8F1BI,SC0FN,CC7BG,qFAEC,gCADA,oBDgCJ,CD7FO,oGACC,SC+FR,CD3FI,gEAEE,SC6FN,CD1FI,uDAEI,4BC2FR,CD9GE,oCAyBI,WAAY,CADZ,iBAAkB,CAElB,YCyFN,CDvFM,0CACE,yBCyFR,CDtFM,kDACE,SCwFR,CDpFI,gCAIE,aAAc,CAHd,oBAAqB,CAErB,iBAAkB,CADlB,OCwFN,CDlFE,oCAIE,kBAAmB,CAFnB,YAAa,CACb,SCqFJ,CDxFE,wEAOI,gBCqFN,CDjFE,6BACE,qBCmFJ,CDhFE,iCACE,gBCkFJ,CD/EE,kBACE,gBCiFJ,CD9EE,kBACE,eCgFJ,CExJC,oDAGC,sBAKA,cAAe,CAJf,eAFA,QAAS,CAOT,oBAAsB,CAJtB,mBF4JF,CEtJE,gEACE,qBFyJJ,CEtJE,kEACE,qBFyJJ,CEtJE,kEACE,iBFyJJ,CEtJE,0EACE,YFyJJ,CEpJC,yEACC,SFsJF,CEvJC,+FAIG,iBAAkB,CAElB,SAAU,CADV,OAAQ,CAER,SFsJJ,C/FkPI,kLAEE,gBACA,oB+FhPN,C/FmPI,0LAhaA,qBAUF,uBAPE,wCAQF,S+FyKF,CGlMI,0ClG8bA,a+FzPJ,C/FmOI,sLAEE,gBACA,oB+FjON,C/FoOI,8LAhaA,qBAUF,uBAPE,yCAQF,S+FwLF,CG5MI,4ClGybA,a+F1OJ,C/FoNI,kSAEE,gBACA,oB+FlNN,C/FqNI,0SAhaA,qBAUF,uBAPE,wCAQF,S+FuMF,CGhOI,wDlG8bA,a+F3NJ,C/FqMI,sSAEE,gBACA,oB+FnMN,C/FsMI,8SAhaA,qBAUF,uBAPE,yCAQF,S+FsNF,CG1OI,0DlGybA,a+F5MJ,CGjOK,yTAEG,kBHqOR,CG9NE,6DlG+aE,qBADA,a+F5MJ,CG9NE,+DlG2aE,qBADA,a+FxMJ,CA/PC,WxGAC,oCSwDA,sBACA,qBAAsB,CACtB,yBACA,kBTnEA,qBAAsB,CS6DtB,sBAJA,oBAAqB,CAKrB,eTzDA,0BS0DA,mBTxDA,eAAgB,CANhB,QAAS,CS0DT,WAAY,CACZ,iBAJA,iBAAkB,CAYlB,kBAAoB,CAVpB,U+FkOF,CvDzRE,6BACE,cACA,sCuD2RJ,CvD7RE,iCACE,cACA,qCuD2RJ,CvD7RE,wBACE,cACA,oFuD2RJ,CvDxRE,kCACE,sBuD0RJ,CvD3RE,iCACE,sBuD0RJ,CvD3RE,6BACE,sBuD0RJ,C/F5NE,iBAlCA,qBACA,sB+FiQF,CC9NG,gCAEC,gCADA,oBDiOJ,C/FhOE,oCAtDE,qBAUF,uBAPE,yCAQF,S+FkRF,CChPG,kEAEC,gCADA,oBDoPJ,C/FvOE,oBArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S+FgRF,C/F9QE,0BAZA,qBACA,sB+F6RF,C/F/OE,qBAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S+F4RF,C/F1RE,2BAZA,qBACA,sB+FySF,C/FtPI,2KAME,wBAA6B,CAC7B,WAAY,CACZ,e+FwPN,C/FnPE,mBAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qB+FsPJ,C/FjPE,cAzGA,eADA,kB+F+VF,C/FjPE,cAzGA,a+F6VF,CCxRE,eACE,aD0RJ,CA9VE,iBxGLA,oCSsHA,uBAAyB,CACzB,gBAAiB,CT/HjB,qBAAsB,CAGtB,sBSyHA,aAAc,CTxHd,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CSyHV,iBAAkB,CAElB,U+F8PF,C/FzPE,8BACE,UAAW,CAEX,cAAe,CADf,e+F4PJ,CAnXE,+B/F4HE,iB+F0PJ,C/FxPI,0CACE,e+F0PN,C/FtPG,yEAGC,kB+FwPJ,C/FtPI,kLACE,e+F0PN,C/FtPE,6CAIE,qBAAsB,CADtB,kBAAmB,CADnB,S+F0PJ,C/FrPE,wBACE,uB+FuPJ,CA5YE,4B/FyJE,UAAW,CAEX,eAAgB,CAChB,kBAAmB,CAFnB,U+FwPJ,C/F/OI,oEAEE,sBAAuB,CADvB,S+FsPN,C/FpPO,gEACC,S+FsPR,C/FjPE,uBAOE,yBACA,yBACA,kBANA,sBAEA,eADA,eAAmB,CAFnB,eADA,iBAAkB,CAKlB,iBAAkB,CAIlB,kB+FmPJ,C/F7PE,mCAcI,iB+FkPN,C/FhPO,2GAEC,wBAAyB,CACzB,6BACA,e+FiPR,C/F9OM,6HAGI,a+F+OV,C/FzQE,4CAkCI,wBAA6B,CAD7B,iB+F4ON,C/F7QE,gEAqCM,QAAS,CACT,eAAgB,CAFhB,e+F8OR,CA9bE,wN/FgOI,4BAA6B,CAD7B,yB+FyON,C/FnOK,uEAEC,2BAA4B,CAD5B,wB+FsON,C/FlOK,sEAEC,4BAA6B,CAD7B,yB+FqON,C/FhOE,mCACE,c+FkOJ,C/F/NE,kCACE,a+FiOJ,CAtdE,oN/FgQI,2BAA4B,CAD5B,wB+FiON,C/F3NG,0EA3QD,eADA,kB+F4eF,C/F3NG,0EA5QD,a+F2eF,C/FzNG,4DACC,W+F2NJ,C/FxNG,4DACC,W+F0NJ,C/FtNI,2DAEE,4BAA6B,CAD7B,yB+FyNN,C/FvNO,6EAEC,8BADA,0B+F0NR,C/FrNK,0IAGC,2BAA4B,CAD5B,wB+FwNN,C/FnNE,yCACE,a+FqNJ,CpHzgBE,gDAEE,UAAW,CADX,aoH4gBJ,CpHxgBE,+CAGE,UAAW,CACX,UAAW,CAFX,aoH2gBJ,C/FxNM,0PACE,sB+F4NR,C/FtNQ,whBACE,S+F+NV,C/F1NI,2CAIE,eAAgB,CAHhB,oBAAqB,CACrB,UAAW,CACX,kB+F6NN,C/FzNK,sMAGC,mB+F2NN,C/FxNI,2DAEE,uBADA,iB+F2NN,C/F7PE,oDAwCI,U+FwNN,C/FpNK,8SAKC,eAAgB,CADhB,sB+FuNN,C/FtMK,gxBACC,S+FuNN,C/FpNK,2TAKC,8BADA,0B+FuNN,C/FnNK,0TAMC,+BAFA,uBACA,2B+FsNN,C/FjNK,8EACC,kB+FmNN,C/F3SE,2FA4FI,gB+FkNN,C/F1MS,yRACC,e+F+MV,C/F5MS,gIACC,yB+F8MV,CAhmBE,oGC4EE,yBDwhBJ,CCphBK,wDAEC,aAAc,CADd,8BDuhBN,CCjhBK,uDAEC,8BACA,0BAFA,cDqhBN,CCtgBO,iMACC,yBD4gBR,CCvgBO,+EACC,yBDygBR,CClgBO,+EAGC,sBADA,iBADA,cDsgBR,CC5fO,2YACC,yBDigBR,CCxfO,ufACC,sBACA,yBD8fR,CCvhBE,mGA+BI,aAAc,CADd,iBD6fN,CCvfS,oIACC,yBDyfV,CA7oBI,yBACE,oBAAqB,CAErB,gBAAiB,CACjB,kBAAmB,CAFnB,UAipBN,CA3oBG,iCACC,sBACA,cAAe,CACf,kBA6oBJ,CA3oBI,uCACE,qBA6oBN,CAzoBE,uBACE,WA2oBJ,CAzoBK,oCACC,WA2oBN,CAzoBK,oCACC,YAEA,kBAAmB,CADnB,eA4oBN,CAvoBE,0CAGI,WAuoBN,CApoBI,qCAEE,sBAEA,wBAAyB,CAHzB,WAAY,CAIZ,mBAAoB,CAFpB,kBAwoBN,CAloBM,qEACE,mBAooBR,CA/nBE,2BAOE,kBAAmB,CAHnB,QAAS,CAET,mBAAoB,CAEpB,WAAY,CAPZ,iBAAkB,CAElB,WADA,KAAM,CAGN,SAooBJ,C9FhpBI,2FACE,iB8FkpBN,C9F9oBI,qFACE,gB8FgpBN,C9F5oBM,2FAGE,S8F8oBR,C9FpoBM,kCACE,S8FsoBR,C9F1tBK,uGACC,e8F4tBN,C9FztBK,kIAEC,4BAA6B,CAD7B,yB8F4tBN,C9FltBK,8PAEC,2BAA4B,CAD5B,wB8FytBN,C9FptBK,4HAEC,4BAA6B,CAD7B,yB8FutBN,CIvuBI,sEAEE,oBJyuBN,CI3uBI,kNAKI,yBJ0uBR,CIjvBC,2CAaG,eJuuBJ,CIpvBC,gCAmBG,kBJouBJ,CIvvBC,qEA0BK,QAAS,CAFT,SAAU,CACV,SJmuBN,CI5vBC,8FA+BO,0BADA,gBAAiB,CADjB,aJouBR,CIjwBC,oHAmCO,qBJiuBR,CI/tBS,2IAGC,QAAS,CACT,MAAO,CAFP,OAAQ,CADR,KJouBV,CI3tBE,yBACE,WJ6tBJ,CI3tBI,8DAEE,SJ6tBN,CIztBE,iDACE,WJ2tBJ,CIxtBE,iDACE,WJ0tBJ,CIptBM,4JAIM,eAAgB,CADhB,iBJqtBZ,CI9sBI,4LAGI,eJ+sBR,CI9tBG,gvBA8BG,SJ8sBN,CIzsBI,0IAIM,eAAgB,CADhB,gBJ0sBV,CC7yBE,kDACE,aDkzBJ,CC1yBE,qEAEI,WAAY,CACZ,YD2yBN,CCvyBE,+CAEI,gBDwyBN,CC1yBE,+CAMI,gBDuyBN,CClyBI,wBACE,aDoyBN,CCjyBI,4DACE,eDmyBN,CC3xBK,8DAEC,gBADA,cD8xBN,CCzxBG,mDAEC,QAAS,CADT,UD4xBJ,CCrqBC,sBACC,aDuqBF,CCpqBI,0NAGI,yBDqqBR,CCnqBQ,sOACE,yBDsqBV,CC9pBM,8IAEE,0BDgqBR,CCprBC,yEA0BK,SAAU,CADV,UD+pBN,CCxrBC,kGA4BO,yBD+pBR,CK32BA,sEACG,WACC,WL62BF,CK32BE,cACE,WL62BJ,CK12BE,cACE,WL42BJ,CKz2BE,yCAEI,WL02BN,CACF,CMp3BC,YAOC,mBANA,YAAa,CACb,SAAU,CACV,qBAAsB,CAGtB,YADF,CAIE,0BAEE,qBAFJ,CAKE,iCACE,kBAHJ,CAEE,kGAKI,OAHN,CAOE,sCAEE,aALJ,CAQE,mBAKE,mBAFA,sBAFA,YAGA,iBAFA,cAHJ,CASE,mBAIE,mBAFA,sBACA,eAFA,iBAJJ,CAUE,oBACE,SAAU,CAGV,YATJ,CAYE,kBAKE,mBADA,WAAY,CAHZ,iBAAkB,CAKlB,kBAXJ,CAaI,2BACE,WAAY,CACZ,gBAAkB,CAIlB,gBAdN,CAQI,+DASI,UAdR,CAkBI,8BACE,mBAhBN,CAmBI,wBACE,OAjBN,CAoBI,0BAQE,mBANA,QAAS,CAGT,WAIA,cAAe,CALf,YAEA,iBALA,cAAe,CAMf,iBAAkB,CAGlB,kBAAoB,CAPpB,SAXN,CAqBI,+BAEI,eApBR,CAuBM,qCAWE,mBACA,0BALA,WAMA,cAAe,CALf,eAFA,YAGA,iBARA,iBAAkB,CAElB,YAOA,iBAAkB,CARlB,SAYA,8BAAgC,CAThC,WADA,SAXR,CAuBQ,2CAME,sBAAuB,CAFvB,QAAS,CAIT,UAAW,CAHX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,kBApBV,CAwBQ,iDACE,6BAtBV,CAyBQ,2CAEE,0BADA,UAtBV,CCjHC,wBACC,eDmHF,CCpHC,+GAIG,gBADA,qBDyHJ,CEtHE,gBACE,aFwHJ,CGzHC,UjHGC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CiHMV,iBAMF,CATC,YAMG,YAMJ,CAHE,qBACE,gBACA,gBAKJ,CAPE,6CAMI,eAIN,CAAE,eACE,gBACA,iBAEJ,CAJE,sBAMI,iBAAkB,CADlB,kBAGN,CAEE,eACE,eAAgB,CAChB,iBAAJ,CAGE,qBAEE,sBACA,eAFA,aAGA,iBADJ,CAIE,gBAGE,eAAgB,CAFhB,QAAS,CACT,SADJ,CAKE,eAEE,kBAAmB,CAGnB,sBAJA,YAAa,CAEb,6BAA8B,CAC9B,cAFJ,CAKI,oBAGE,sBAAuB,CAFvB,YAAa,CACb,SAEA,cAHN,CAKM,2BACE,iBAHR,CAMM,4BAGE,sBAFA,QAAS,CACT,OAHR,CAOM,0BAEE,sBACA,eACA,mBAHA,iBAFR,CACM,4BAOI,sBACA,kBALV,CAOU,kCACE,aALZ,CAUM,gCACE,sBACA,eACA,kBARR,CAYI,sBACE,aAAc,CAGd,WAAY,CACZ,eAAgB,CAHhB,gBAAiB,CACjB,SARN,CAYM,yBAIE,sBAFA,oBAAqB,CAGrB,eACA,mBAHA,cAFA,iBAAkB,CAMlB,iBAVR,CAYQ,qCACE,cAVV,CAcM,4BAOE,yBAFA,WAAY,CACZ,eAAgB,CALhB,iBAAkB,CAElB,OAAQ,CADR,OAAQ,CAER,SATR,CAqBE,kCACE,sBAhBJ,CAmBE,kCAGE,oBADA,gBAhBJ,CAoBE,gBAEE,sBACA,cAAe,CAFf,eAGA,iBAlBJ,CAqBE,+BACE,+BAnBJ,CAqBI,0CACE,kBAnBN,CAuBE,iCACE,+BArBJ,CAwBE,gDACE,4BAtBJ,CAyBE,gDACE,eAvBJ,CA0BG,iHACC,+BAxBJ,CA2BE,4BACE,iBAzBJ,CA4BE,4BACE,gBA1BJ,CA6BE,kCACE,kBA3BJ,CA6BI,uCACE,aAAc,CACd,QA3BN,CA8BI,wCACE,gBA5BN,CA+BI,uCACE,kBA7BN,CA+BM,6CAEE,sBACA,eACA,gBAAiB,CAHjB,kBA1BR,CAiCI,yCAEE,gBAAiB,CADjB,eA9BN,CA6BI,4CAKI,cA/BR,CAiCQ,wDACE,cA/BV,CAqCG,uCAMC,kBAAmB,CALnB,aAAc,CAEd,mBADA,cAAe,CAGf,gBAAiB,CADjB,aAjCJ,CAuCE,uBACE,aArCJ,CAyCE,+EAGM,WAzCR,CCrMC,mBACC,yBACA,iBDuMF,CCzMC,0GAeG,kBADA,kBDuMJ,CCrNC,wCAmBG,gBDqMJ,CClMG,8IAMG,gBDmMN,CC/LG,8IAMG,iBDgMN,CExOA,oCAWM,8DACE,gBFmON,CACF,CE9NA,oCAEI,eACE,cF+NJ,CE7NI,sBACE,gBF+NN,CE1NC,kCAEG,sBF2NJ,CEzNI,uCACE,eF2NN,CExNI,wCACE,qBF0NN,CACF,CG1PE,cACE,aAAc,CACd,gBH4PJ,CG9PE,qDAMI,aH2PN,CGtPK,mCACC,eHwPN,CGjPS,yCAEC,iBADA,cHoPV,CG7OO,oCAEC,aAAc,CADd,iBHgPR,CG3OS,4DAEC,kBADA,eH8OV,CGxOS,0CAEC,MAAO,CADP,UH2OV,CGlOO,qDAEC,aAAc,CADd,iBHqOR,CG/NO,sDACC,iBHiOR,CG5NW,sEAEC,kBADA,eH+NZ,CGnNS,6FACC,UHqNV,CG7MA,oCAeS,0FAEC,aAAc,CADd,iBHsMR,CACF,CG/LA,oCAIS,oCAEC,aAAc,CADd,iBH+LR,CGpLO,qDACC,qBHsLR,CACF,CItTC,gBrHGC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,kBqHOF,CARC,sDrHEC,eAAgB,CANhB,QAAS,CACT,SqHiBF,CAJE,sBAEE,UAAW,CAIX,WAAY,CALZ,aAAc,CAEd,QAAS,CACT,eAAgB,CAChB,iBAOJ,CAKE,gDAPE,oBAAqB,CACrB,YAEA,iBADA,gBAAiB,CAEjB,qBAsBJ,CAnBE,qBAUE,sBACA,yBACA,kBAEA,cAAe,CATf,yKAIA,eAAgB,CAPhB,eAWA,SAAU,CANV,iBAAkB,CAQlB,oFAIJ,CAnBE,uBAoBI,sBAFA,aAAc,CACd,aAAc,CAEd,eAIN,CAFM,6BACE,oBAIR,CAAI,2BACE,qBACA,kBAEN,CAJI,6BAKI,aAER,CAII,mCACE,qBACA,kBAFN,CAAI,qCAKI,aAFR,CAMI,4BAEE,gBACA,qBAFA,eAFN,CACI,8BAMI,aAJR,CAOM,kCACE,oBALR,CAQM,0CACE,oBANR,CASM,oCACE,aAPR,CAUM,4CACE,aARR,CAaE,oDAEE,SAXJ,CASE,kHAII,iBATN,CAKE,gLAOM,cACA,eACA,mBAAoB,CACpB,SAAU,CACV,kBARR,CAUQ,wLAGE,QAAS,CACT,MAAO,CACP,WAAY,CAHZ,OAAQ,CADR,KAHV,CAXE,8KA0BM,QAAS,CAIT,sBAFA,aAAc,CAGd,sCAAyC,CAJzC,MAAO,CAKP,kBAAmB,CAHnB,WAAY,CAMZ,SAAU,CAZV,iBAAkB,CAElB,OAAQ,CAQR,iBAAkB,CAClB,iBAAmB,CAVnB,KAAM,CAYN,kBARR,CAYI,8HAEI,SAVR,CAQI,4HAKI,SATR,CAaI,8IAEI,SAXR,CASI,4IAKI,SAVR,CAeE,yEAGE,gBAbJ,CAgBE,8FAaE,kBANA,sBAOA,cAAe,CAVf,oBAAqB,CAIrB,yKAFA,YAGA,iBAGA,eAAgB,CAPhB,eAKA,iBAAkB,CAKlB,kBAAoB,CAJpB,qBAVJ,CAiBE,0CAEE,sCAAyC,CACzC,SAfJ,CAYE,wDAMI,sBACA,cAAe,CACf,oFAdN,CAiBI,oEACE,oBAdN,CAEE,8FAsBI,sBACA,yBACA,kBARA,aAAc,CAId,cAAe,CAFf,WAAY,CAOZ,YAAa,CANb,SAAU,CAEV,iBAAkB,CAKlB,kBAAoB,CATpB,UALN,CAiBK,0HAEC,qBADA,aAbN,CAiBK,0GAEC,qBADA,aAbN,CAmBI,wDAEE,kBAjBN,CAeI,4GAKI,qBADA,sBAEA,kBAfR,CAmBI,uCACE,kBAjBN,CAgBI,iEAII,qBADA,sBAEA,kBAhBR,CAqBE,sBACE,mBAnBJ,CAsBE,wBACE,oBAAqB,CACrB,gBAAiB,CACjB,qBApBJ,CAuBI,+FAGI,kBArBN,CACF,CAwBK,gDACC,oBAAqB,CACrB,UAtBN,CAyBI,qCACE,oBAAqB,CACrB,YAEA,iBADA,gBAEA,kBAvBN,CAkBI,2C5GjNF,sBACA,qBAAsB,CACtB,yBACA,kBANA,sBAJA,oBAAqB,CAKrB,e4G8NM,Y5G7NN,mB4G8NM,YAAa,C5GlOnB,WAAY,CACZ,iBAJA,iBAAkB,CAYlB,kBAAoB,CAVpB,UAAW,C4GiOL,UAVR,CpE9QE,6DACE,cACA,sCoEgRJ,CpElRE,iEACE,cACA,qCoEgRJ,CpElRE,wDACE,cACA,oFoEgRJ,CpE7QE,kEACE,sBoE+QJ,CpEhRE,iEACE,sBoE+QJ,CpEhRE,6DACE,sBoE+QJ,C5GjNE,iDAlCA,qBACA,sB4GsPF,C5GjNE,oGAtDE,qBAUF,uBAPE,yCAQF,S4GmQF,C5GnNE,oDArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S4G4PF,C5G1PE,0DAZA,qBACA,sB4GyQF,C5G3NE,qDAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,S4GwQF,C5GtQE,2DAZA,qBACA,sB4GqRF,C5GlOI,2WAME,wBAA6B,CAC7B,WAAY,CACZ,e4GoON,C5G/NE,mDAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qB4GkOJ,C5G7NE,8CAzGA,eADA,kB4G2UF,C5G7NE,8CAzGA,a4GyUF,CAlDE,wFAEE,YACA,iBACA,kBAoDJ,CAxDE,4IAOI,wBAA6B,CAC7B,QAAS,CAFT,WAwDN,CApDM,wJACE,YACA,gBAuDR,CAlDE,oDACE,oBAAqB,CACrB,YACA,gBAoDJ,CAvDE,0DAWI,sBACA,yBACA,kBAPA,qBAAsB,CACtB,WAAY,CACZ,gBAAiB,CAMjB,YAAa,CALb,aAAc,CACd,iBAAkB,CAKlB,2BAoDN,CAlDM,gEACE,oBAoDR,CAjDM,gEACE,qBACA,wCAmDR,CAhDM,oEAEE,mBACA,qBAFA,sBAGA,kBAkDR,CA7CE,gIAEE,YACA,gBA+CJ,CA5CE,yDAEE,YAEA,iBADA,QAAS,CAFT,cAiDJ,CA3CE,0FACE,sBAAuB,CACvB,wBA6CJ,CA1CE,kHAGE,YAEA,iBADA,QAAS,CAFT,cA+CJ,CAzCE,sKAEE,sBAAuB,CACvB,wBA2CJ,CAzCI,kLACE,YACA,gBA4CN,CAxCE,4HAEE,YAEA,iBADA,cA2CJ,CAvCE,4DACE,eAyCJ,CAvCI,yEACE,KAyCN,CAtCI,yEACE,YACA,gBAwCN,CA1CI,+EAQI,Y5GtYN,c4GqYM,UAwCR,CAjCE,wCACE,kBAmCJ,CApCE,6DAII,mBACA,qBACA,kBAmCN,CAzCE,+DAUM,sBAAuB,CACvB,WAAY,CAFZ,sBAGA,kBAmCR,CAhCM,oEACE,kBAkCR,CAnCM,sEAII,qBAkCV,CArDE,kEA0BI,mBACA,qBAFA,sBAGA,kBA+BN,CA9BO,wFACC,sBAgCR,CA9DE,uEAmCI,SA8BN,CAjEE,sEAuCI,SA6BN,CApEE,qEA2CI,qBA4BN,CAvBA,yCAEI,2EAEE,YAwBJ,CACF,CApBA,yCACG,wBACC,YAsBF,CACF,CCpeC,6NAWG,eAAgB,CADhB,cDqeJ,CC/eC,0CAeG,mBDmeJ,CClfC,4CAoBG,aAAc,CADd,iBDmeJ,CCtfC,4FAwBK,eAAgB,CADhB,cDmeN,CC1fC,iFA4BK,aDieN,CC7dG,oJAOK,eAAgB,CADhB,cD+dR,CCzdG,gEAEC,aAAc,CADd,gBD4dJ,CEzgBC,UvHGC,oCARA,qBAAsB,CAGtB,sBuHOA,cADA,YAAa,CvHLb,euHOA,WAAY,CvHNZ,0BACA,mBACA,eAAgB,CANhB,QAAS,CuHaT,SAAU,CvHZV,SAAU,CuHMV,iBAAkB,CAIlB,iBAAkB,CAGlB,uDAFA,qBAQF,CAJE,mBAEE,oBAAqB,CACrB,SAAU,CAFV,eAQJ,CAHE,yBACE,iBAKJ,CANE,uCAOI,aAAc,CAEd,WAAY,CAJZ,MAAO,CAKP,gBAAiB,CAPjB,iBAAkB,CAClB,KAAM,CAIN,UAAW,CAFX,SAUN,CAhBE,qDAcM,QAAS,CACT,aAHA,iBAAkB,CAClB,OASR,CAtBE,sDAsBM,eADA,gBAHA,iBAAkB,CAKlB,2BAJA,OAAQ,CACR,UAUR,CALO,wEACC,gBAOR,CAjCE,wDAgCM,WAIR,CApCE,yDAmCM,eAIR,CAFO,2EACC,gBAIR,CA1CE,wDA4CM,YACR,CA7CE,yDA+CM,gBACR,CACO,2EACC,gBACR,CAIE,oBACE,iBAAkB,CAClB,sBAFJ,CAII,0BAUE,gBANA,QAAS,CAST,UAAW,CANX,eAEA,WAAY,CAJZ,MAAO,CAMP,SAAU,CAGV,mBAAoB,CAbpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAUN,kBAAoB,CAJpB,UAAW,CAFX,UAMN,CAME,eACE,UAAW,CACX,UAAY,CAEZ,mBAAoB,CADpB,oFAHJ,CAMI,qBACE,UAAY,CACZ,mBAJN,CAUE,cACE,qBARJ,CAcE,cAEE,oBAAqB,CACrB,epIzHF,WoIuHE,iBAAkB,CpIxHpB,SoIgHF,CAcI,mBAUE,kDAAmD,CALnD,yBACA,kBAAmB,CAJnB,aAAc,CAEd,UAAW,CAKX,UAAY,CARZ,iBAAkB,CAMlB,oBAAsB,CACtB,wBAAyB,CALzB,SALN,CAcM,+BAEE,MAAO,CADP,KAXR,CAeM,gCAGE,mBAAqB,CADrB,OAAQ,CADR,KAXR,CAgBM,gCAGE,mBAAqB,CADrB,QAAS,CADT,OAZR,CAiBM,gCAGE,oBAAqB,CAFrB,QAAS,CACT,MAdR,CAmBI,mBAEE,wCAAyC,CADzC,sBAhBN,CAyBE,2BACE,cAvBJ,CAsBE,6BAKI,UAAW,CADX,SAtBN,CA4BE,2BACE,cA1BJ,CAyBE,6BAKI,WAAY,CADZ,UAzBN,CA8BE,4CACE,aA5BJ,CAgCA,2DAEG,eACC,gBACA,UA9BF,CACF,CAiCA,uBACE,GACE,SA/BF,CACF,CAkCA,qBACE,GACE,uBAhCF,CACF,CCvLE,cACE,aDyLJ,CCpLO,iCAEC,2BAA4B,CAD5B,wBDuLR,CChLA,wBACE,GACE,yBDkLF,CACF,C9G4OI,0MAEE,gBACA,oBgH3aN,ChH8aI,kNAhaA,qBAUF,uBAPE,wCAQF,SgHlBF,CCTE,6CjHgcE,agHpbJ,ChH8ZI,8MAEE,gBACA,oBgH5ZN,ChH+ZI,sNAhaA,qBAUF,uBAPE,yCAQF,SgHHF,CCnBE,+CjH2bE,agHraJ,CA1BC,czHEC,oCSwDA,sBACA,qBAAsB,CACtB,yBACA,kBTnEA,qBAAsB,CS6DtB,sBgHlDA,oBAAqB,ChHmDrB,eTzDA,0ByHOA,WAAY,CAGZ,mBzHRA,eAAgB,CANhB,QAAS,CS0DT,WAAY,CgH7CZ,eAAgB,CADhB,SAAU,CAHV,iBAAkB,ChH0DlB,kBAAoB,CgHnDpB,qBAAsB,CADtB,oBAAqB,ChH0CrB,UgHDF,CxEtDE,gCACE,cACA,sCwEwDJ,CxE1DE,oCACE,cACA,qCwEwDJ,CxE1DE,2BACE,cACA,oFwEwDJ,CxErDE,qCACE,sBwEuDJ,CxExDE,oCACE,sBwEuDJ,CxExDE,gCACE,sBwEuDJ,ChHWE,8DAtCA,qBACA,sBgHqCF,ChHAE,0CAnDE,yCAQF,SgH2CF,ChHKE,uBArCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,SgHoCF,ChHlCE,6BAZA,qBACA,sBgHiDF,ChHHE,wBAzCA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,SgHgDF,ChH9CE,8BAZA,qBACA,sBgH6DF,ChHVI,6LAME,wBAA6B,CAC7B,WAAY,CACZ,egHYN,ChHPE,sBAEE,WAAY,CAEZ,mBAHA,cAAe,CAEf,gBAGA,4BAA+B,CAD/B,qBgHUJ,ChHLE,iBAzGA,eADA,kBgHmHF,ChHLE,iBAzGA,agHiHF,CAxGE,gChHuBA,yBACA,qBACA,eAAgB,CAHhB,sBAIA,kBAAmB,CACnB,SgHqFF,ChHnFE,sCAZA,qBACA,sBgHkGF,CA9GE,sBhHLE,qBAUF,uBAPE,yCAQF,SgH8GF,CAxIC,6CAsCG,8BAUA,oBAAqB,CALrB,iBAAkB,CAPlB,mBAAoB,CADpB,iBAAkB,CAIlB,wBAAyB,CACzB,oBAAqB,CAHrB,kBAAmB,CACnB,oBAAqB,CAJrB,mBAAoB,CAUpB,sBAAuB,CAHvB,mBAAoB,CAbpB,QAAS,CADT,gBAGA,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CAHhB,iBAqBA,0DAAiB,CAJjB,kBAAmB,CACnB,kBAAmB,CAFnB,mBAAoB,CAIpB,kBAkHJ,CAnKC,uBAuDG,WAAY,CACZ,YAAa,CACb,WAAY,CAHZ,UAmHJ,CxE5KE,yCACE,cACA,sCwE8KJ,CxEhLE,6CACE,cACA,qCwE8KJ,CxEhLE,oCACE,cACA,oFwE8KJ,CxE3KE,8CACE,sBwE6KJ,CxE9KE,6CACE,sBwE6KJ,CxE9KE,yCACE,sBwE6KJ,CAhHE,sBAIE,QAAS,CAGT,iBAAkB,CAFlB,MAAO,CAGP,mBAAoB,CAPpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,UAoHJ,CA1HE,2BAWI,oBAAqB,CACrB,cAkHN,CA7GE,uBzH/EA,qCyH0FE,sBACA,kBAEA,sGANA,qBAAsB,CzH5FxB,sByH6FE,ezH3FF,0ByH4FE,mBAAqB,CAJrB,YAAa,CzHvFf,mBACA,eAAgB,CANhB,QAAS,CyHmGP,YAAa,CzHlGf,SAAU,CyHyFR,iBAAkB,CAClB,WAAY,CAEZ,YA0HJ,CAjHI,8BACE,YAmHN,CAhHI,4BAKE,eAAgB,CAHhB,eAAgB,CADhB,gBAAiB,CAKjB,YAAa,CAFb,aAAc,CADd,cAqHN,CAhHM,iCAME,sBAKA,cAAe,CATf,aAAc,CAKd,eAAmB,CACnB,mBALA,eAAgB,CAEhB,eAAgB,CADhB,iBAHA,iBAAkB,CASlB,sBAAuB,CAEvB,8BAAgC,CAHhC,kBAqHR,CAhHQ,uCACE,wBAkHV,CA/GQ,6CACE,yBAiHV,CA9GQ,4CACE,yBAgHV,CA7GQ,0CACE,sBACA,kBA+GV,CA7GU,gDAEE,sBADA,sBAEA,kBA+GZ,CA3GQ,0CAGE,yBAFA,sBACA,eA8GV,CA1GQ,wCACE,wBA4GV,CAtGE,qBAOE,kBAAmB,CAHnB,QAAS,CAET,mBAAoB,CAEpB,WAAY,CAPZ,iBAAkB,CAElB,WADA,KAAM,CAGN,SA2GJ,CEhRE,kBACE,aFkRJ,CGpRC,a5HIC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0B4HIA,MAAO,C5HHP,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,C4HUV,mBAAoB,CALpB,cAAe,CACf,OAAQ,CAGR,UAAW,CADX,YASF,CALE,oBACE,WAAY,CACZ,iBAOJ,CAJE,4BAGE,gBACA,kBACA,sGAJA,oBAAqB,CACrB,kBAIA,kBAMJ,CAHG,8BACC,aAKJ,CAFG,4BACC,aAIJ,CADG,8BACC,aAGJ,CAAG,yDAEC,aAEJ,CAxCC,sBA6CG,eADA,gBAAiB,CAFjB,iBAAkB,CAClB,OAGJ,CAEG,+DAEC,sBAAwB,CADxB,6BACJ,CAIA,0BACE,GACE,gBAAiB,CAEjB,SAAU,CADV,WADF,CAKA,GACE,YAAa,CAEb,SAAU,CADV,SAFF,CACF,CC9DC,uCAIG,aDgEJ,CCpEC,0BASG,eAAgB,CADhB,cDgEJ,CE3EC,W9HOC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,C8HEhB,aAAc,CADd,4BAA6B,CAE7B,gBAAoB,C5BRpB,mBAAoB,C4BGpB,iBAAkB,CAClB,SAAU,CACV,UCaF,C7BhBG,qDAIC,uBADA,SAAU,CADV,cAAe,CAGf,oF6BkBJ,C7BfE,gBAIE,iCDbF,QAAS,CCYP,WAAY,CDXd,MAAO,CAJP,eAEA,OAAQ,CADR,KAAM,CCaJ,Y6BuBJ,C7BnBI,uBACE,Y6BqBN,C7BjBE,gBDpBA,QAAS,CACT,MAAO,CCsBL,SAAU,CADV,aAAc,CDzBhB,eAEA,OAAQ,CADR,KAAM,C6BYJ,YCoCJ,CDjCE,iBAME,oBAAqB,CAJrB,sBAEA,eADA,eAAgB,CAEhB,iBAJA,QC2CJ,CDnCE,mBAGE,2BAA4B,CAD5B,sBAEA,QAAS,CACT,kBACA,sGACA,mBAAoB,CANpB,iBC2CJ,CDlCE,iBAUE,sBAAuB,CACvB,QAAS,CALT,sBAOA,cAAe,CANf,eAAgB,CAChB,aAAc,CAId,SAAU,CAPV,SAAU,CAJV,iBAAkB,CAElB,OAAQ,CAMR,oBAAqB,CAPrB,KAAM,CAYN,oBAAsB,CAVtB,UC8CJ,CDlCI,mBACE,aAAc,CAGd,eACA,iBAAkB,CAFlB,YAGA,iBACA,iBAAkB,CAElB,mBAAoB,CADpB,mBAAoB,CANpB,UC2CN,CDjCI,8CAEE,sBACA,oBCmCN,CD/BE,kBAGE,gBACA,gCAEA,0BAJA,sBADA,iBCqCJ,CD7BE,gBAIE,oBAAqB,CAFrB,eACA,mBAFA,YCkCJ,CD5BE,kBAGE,uBAGA,0BAFA,6BAHA,kBACA,gBCiCJ,CDnCE,+DASI,eAAgB,CAChB,eC6BN,CDzBE,gBACE,eC2BJ,CDvBC,oBACC,iBCyBF,CDvBE,2BAKE,UAAW,CAJX,oBAAqB,CAErB,WAAY,CACZ,qBAAsB,CAFtB,OC4BJ,CDjCC,+BAYG,oBAAqB,CACrB,gBAAiB,CACjB,eAAgB,CAHhB,KAAM,CAIN,qBCyBJ,CDrBA,yBACG,WAEC,eAAgB,CADhB,4BCwBF,CDrBC,+BAEG,QCsBJ,CACF,CCvJC,qCAEG,YDwJJ,CC1JC,mCAMG,sBDuJJ,C3I7JE,uCAEE,UAAW,CADX,a2IgKJ,C3I5JE,sCAGE,UAAW,CACX,UAAW,CAFX,a2I+JJ,CCzJE,iDAMI,sBAJA,aAAc,CAMd,eADA,eAAgB,CAEhB,eAAgB,CAJhB,eD4JN,CCjKE,mDAcI,sBACA,eAFA,cDyJN,CCtKE,iCAmBI,UAAW,CAEX,cAAe,CADf,iBDuJN,CC3KE,qFAyBM,gBDqJR,CC3LC,2CA4CG,eAAgB,CAChB,gBDkJJ,CC/LC,6DAgDK,eAAgB,CAChB,eDkJN,CC9IG,0DACC,aDgJJ,CC7IG,wHAEC,aD+IJ,CC5IG,yDACC,aD8IJ,CC3IG,4DACC,aD6IJ,CChNC,2DAwEG,mBD2IJ,CE9MI,oBACE,aFgNN,CE3MK,qCAEC,MAAO,CADP,UF8MN,CExMK,sCACC,eF0MN,CEvMO,wDAEC,aAAc,CADd,gBF0MR,CElMO,4CACC,aFoMR,CEjMS,qDACC,WAAY,CAEZ,gBAAiB,CADjB,cFoMV,CEhMW,yGAEC,aAAc,CADd,iBFmMZ,CE3LO,4CACC,eF6LR,CE1LS,8DAEC,aAAc,CADd,gBF6LV,CEnLK,kDACC,gBFqLN,CGhPC,kBlIFC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CkIQhB,kBlIbA,SAAU,CkIWV,cAAe,CACf,YAEF,CACE,6BAEE,cAAe,CADf,cAEJ,CAEE,8BACE,iBAAJ,CAGE,yBASE,oBAAqB,CACrB,gBACA,kBACA,sGAJA,mBAJA,mBACA,gBAAiB,CAFjB,6BAIA,eAAgB,CADhB,kBALA,iBAAkB,CAClB,WASJ,CAGK,iGAGC,gBAAiB,CADjB,iBAAN,CAIK,yGAGC,aAAc,CADd,iBADN,CAKI,iCAEE,sBACA,eACA,gBAAiB,CAHjB,iBAAN,CAMM,yDAIE,wBAA6B,CAH7B,aAAc,CAEd,aAAc,CAEd,mBAAoB,CAHpB,wBADR,CAMQ,gEAEE,UAAW,CADX,aAHV,CASI,qCACE,cAPN,CAUI,mEACE,kBARN,CAWI,oEAGE,eAFA,iBAAkB,CAClB,gBARN,CAYI,wEAEE,eADA,gBATN,CAgBI,8BAGE,cAAe,CACf,gBAAiB,CAFjB,eAAgB,CADhB,iBAXN,CAkBM,8CACE,aAhBR,CAmBM,2CACE,aAjBR,CAoBM,8CACE,aAlBR,CAqBM,4CACE,aAnBR,CAuBI,+BAIE,sBACA,YAAa,CAJb,iBAAkB,CAElB,UAAW,CADX,QAlBN,CAuBM,qCAKI,qBAzBV,CA8BI,6BACE,WAAY,CACZ,eA5BN,CArGC,4CAsIG,uBAAyB,CAEzB,wBAAyB,CADzB,wDA7BJ,CAiCE,2DAKE,2BAA4B,CAD5B,SA7BJ,CAiCE,wFAbE,uBAAyB,CAEzB,wBAAyB,CADzB,wDAdJ,CA0BE,6BAGE,sBAAwB,CACxB,2BA9BJ,CAiCE,kIAEE,iCAAkC,CAClC,4BA/BJ,CAkCE,gEACE,kCAAmC,CACnC,4BAhCJ,CAoCA,8BACE,GACE,WACA,SAlCF,CAqCA,GACE,MAAO,CACP,SAnCF,CACF,CAsCA,+BACE,GAEE,mBADA,gBAAiB,CAEjB,SApCF,CAuCA,GAEE,eAAgB,CADhB,YAAa,CAIb,SAAU,CADV,gBAAiB,CADjB,aAnCF,CACF,CC/JE,sBACE,aDiKJ,CC5JO,yFAEC,iBAAkB,CADlB,eD+JR,CClJO,wLAEC,aAAc,CADd,iBDyJR,CCnJO,oDAEC,aAAc,CADd,gBDsJR,CChJO,qDAEC,SAAU,CADV,UDmJR,CC7IO,mDACC,UD+IR,CE9LE,+CAGE,aAAc,CADd,cFiMJ,CE7LE,8KAGI,oCF8LN,CE1LE,oLAGI,uCF2LN,CEvLE,uDAGE,iBADA,cF0LJ,CE5LE,kXAOI,qCF2LN,CEtLA,iCACE,GACE,gBAAiB,CACjB,SFwLF,CErLA,GACE,YAAa,CACb,SFuLF,CACF,CEpLA,oCACE,GACE,mBAAoB,CACpB,SFsLF,CEnLA,GACE,eAAgB,CAChB,SFqLF,CACF,CElLA,kCACE,GAEE,SAAU,CADV,WFqLF,CEjLA,GAEE,SAAU,CADV,OFoLF,CACF,CGhPC,iBrIIC,oCqIAA,sBrIRA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CqIMT,kBADA,iBAUF,CANE,uBACE,wBAQJ,CALE,gCACE,gBAOJ,CAJE,4BACE,gBAMJ,CAHE,sBAEE,cAAe,CACf,aAAc,CAFd,iBAOJ,CAHI,6BC3BF,cD6BI,WC3BJ,cAAe,CADf,YAAa,CAEb,oBDkCF,CChCE,8EAEE,aDkCJ,CC/BE,oCACE,aDiCJ,CAxCC,uCA8BG,WAAY,CACZ,cACA,qBAaJ,CAVG,yCACC,cAYJ,CAHE,yBACE,YAAa,CACb,6BAKJ,CAHI,8BAEE,kBAAmB,CADnB,YAAa,CAEb,aACA,eAKN,CAFI,+BAGE,sBAEA,eADA,eAAgB,CAEhB,iBAJA,eAAgB,CADhB,kBAjBF,eAAgB,CAEhB,sBAAuB,CADvB,kBA4BJ,CAxBE,qCAsBI,iBAKN,CAFI,mCAEE,sBACA,eACA,mBAHA,kBA/BF,eAAgB,CAEhB,sBAAuB,CADvB,kBAwCJ,CAHI,+BACE,aACA,kBAKN,CAPI,iCAKI,mBAKR,CAAE,yBACE,gBAEJ,CACE,wBACE,eACJ,CAFE,gDAIM,QACR,CACQ,uDACE,WACV,CARE,gDAcM,eADA,mBADA,eACR,CAME,kDACE,cAJJ,CE3GE,qBACE,aF6GJ,CEzGK,2CACC,WAAY,CAEZ,gBAAiB,CADjB,cF4GN,CE9FO,8GALC,iBADA,cF4GR,CE/FO,wDACC,WAAY,CAEZ,gBAAiB,CADjB,cFkGR,CE5FO,mDACC,WF8FR,CEzFO,oDACC,UF2FR,CEvFS,sDAEC,aAAc,CADd,iBF0FV,CEpFS,iEACC,cFsFV,CE7ES,yEACC,WF+EV,CGjJC,gBACC,YAAF,CCDC,czIIC,oCARA,qBAAsB,CAGtB,sByIIA,oBAAqB,CzIHrB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SyIYF,CALE,mBAGE,eAFA,iBAAkB,CAClB,UAQJ,CAJE,oBACE,oBAMJ,CAJI,0BAGE,kBAAmB,CAFnB,YAAa,CACb,kBAON,CAHI,yBAIE,mBAHA,aAAc,CAEd,gBAAiB,CADjB,aAAc,CAGd,kBAKN,CAHM,gCACE,kBAKR,CAAG,wGAEC,cAEJ,CACE,oBACE,oBAAqB,CAErB,cAAe,CACf,eAAgB,CAFhB,UAGJ,CAAK,4CACC,8BACA,6BAEN,CAEE,oBAME,yBACA,oBALA,oBAAqB,CAErB,eAAgB,CAHhB,iBAAkB,CAIlB,qBAAsB,CAFtB,UAIJ,CAGE,2BACE,cADJ,CAIE,0BACE,iCAFJ,CAKE,iFAEI,cAJN,CAQE,0CAGE,yBACA,oBAFA,iBAAkB,CAGlB,iDANJ,CASE,yBAIE,yBADA,MAAO,CAFP,iBAAkB,CAClB,KALJ,CAUE,mBAIE,sBAHA,oBAAqB,CAIrB,cACA,aAAc,CAHd,eAAgB,CAKhB,eAAgB,CAChB,qBAAsB,CAFtB,kBAAmB,CALnB,SAAU,CAQV,iBARJ,CAFE,4BAYI,cAPN,CAWE,oDAUI,sEAHA,gBACA,kBAAmB,CAHnB,QAAS,CAMT,UAAW,CALX,MAAO,CAGP,SAAU,CAPV,iBAAkB,CAElB,OAAQ,CADR,KAFN,CAcE,gDAEI,wBAbN,CAWE,kDAKI,aAbN,CAiBE,gHAEI,cAhBN,CAoBE,8CAEI,wBAnBN,CAiBE,gDAKI,aAnBN,CAuBE,8GAEI,cAtBN,CA0BE,yCAGE,wBAA6B,CAD7B,aAAc,CADd,iBAtBJ,CA2BE,wCAOE,sBACA,cALA,QAAS,CAMT,aAAc,CAJd,QAAS,CACT,SAAU,CALV,iBAAkB,CAUlB,iBAAkB,CATlB,OAAQ,CAUR,8BAAgC,CAFhC,kBAAmB,CANnB,UAjBJ,CAaE,iDAeI,sBAzBN,CA6BE,sEAEI,aA5BN,CAgCE,oEAEI,aA/BN,CAoCA,+BACE,GAEE,UAAY,CADZ,qCAjCF,CAqCA,IAEE,UAAY,CADZ,qCAlCF,CAsCA,GAEE,SAAU,CADV,iCAnCF,CACF,CCpKE,kBACE,aDsKJ,CCjKO,6DAEC,6BADA,cAAe,CAGf,6BADA,eDoKR,CC7JK,2CAEC,SAAU,CADV,ODgKN,CCzJK,+GAEC,aAAc,CADd,gBAAiB,CAEjB,gBD4JN,CExLC,U3IIC,oCARA,qBAAsB,CAGtB,sB2IOA,cAHA,oBAAqB,C3IHrB,e2IOA,e3INA,0BACA,mB2IMA,oBACA,eAAgB,CALhB,QAAS,CAMT,YAAa,CALb,SASF,CAFE,kCACE,cAIJ,CALE,4CAII,kBAIN,CAAE,eAGE,aAAc,CACd,cAAe,CAFf,oBAAqB,CADrB,iBAKJ,CAAI,gCACE,gBAEN,CATE,mBAWI,6BACN,CACM,yBACE,oBACR,CAEM,yBACE,SAAR,CAGM,iCACE,2BACA,oBADR,CAKI,2CAEE,cACA,kBAAoB,CACpB,oFAHN,CADI,6DAMI,qBADR,CAKI,qBAKE,WAAY,CAFZ,MAAO,CAIP,SAAU,CADV,eAAgB,CALhB,iBAAkB,CAClB,KAAM,CAEN,SAAN,CAMI,mFAEE,SAJN,CAOI,mFAEE,aALN,CASE,eACE,oBAAqB,CAErB,eADA,YANJ,CC9EE,cACE,aDgFJ,CC3EO,8CAEC,eAAgB,CADhB,cD8ER,CCxEO,mCAEC,SAAU,CADV,OD2ER,CErFC,YACC,iBAAF,CAEG,8CACC,aAAJ,CAGG,4CACC,aADJ,CAIG,2CACC,aAFJ,CAKG,8CACC,aAHJ,CAOE,kBAEE,YAAa,CACb,WAAY,CAFZ,WAHJ,CAQE,iBACE,kBAAmB,CACnB,iBANJ,CAIE,0BAKI,cANN,CAUE,kBACE,sBACA,eACA,eAAgB,CAChB,iBARJ,CAWE,qBACE,sBACA,eACA,eAAgB,CAChB,iBATJ,CAYE,kBACE,gBACA,iBAVJ,CAQE,oBAKI,gBAVN,CAYM,8BACE,cAVR,CAeE,oBAGE,yBAFA,eAAgB,CAChB,iBAZJ,CCnDE,gBACE,aDqDJ,CChDO,oCAEC,eAAgB,CADhB,cDmDR,CC9CS,8CACC,aDgDV,CEjEE,uFAGE,sBACA,kBCGJ,CDCA,yBACE,sBACA,kBACA,kGCCF,CDGA,yBACE,eAAgB,CAGhB,sBAAuB,CADvB,kBAAmB,CAEnB,mBCFF,CAZC,ehJCC,oCgJIA,iCACA,kBhJbA,qBAAsB,CAGtB,sBgJQA,sBAFA,oBAAqB,ChJLrB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CgJST,YAIA,iDAsBF,CApBE,qBAGE,mBAAoB,CADpB,YAAa,CAEb,wBAAyB,CAHzB,iBAAkB,CAIlB,UAsBJ,CAlBE,mCACE,YAoBJ,CAjBE,uDACE,SACA,WAmBJ,CAdI,oGAEE,gCAgBN,CAXE,oBAGE,cAAe,CAFf,iBAAkB,CAClB,iBAAkB,CAElB,mDAaJ,CAXI,6BDvCF,sBACA,kBACA,mGCuCI,aAeN,CAZI,oDAEE,aAcN,CAXI,0BAGE,iBAFA,gBD3CJ,eAAgB,CC4CZ,eDzCJ,sBAAuB,CADvB,kBAAmB,CAEnB,mBC0DF,CAZI,2BACE,eAcN,CAXI,0BAKE,QAAS,CAFT,MAAO,CAGP,SAAU,CACV,mBAAoB,CANpB,iBAAkB,CAClB,KAAM,CAEN,OAgBN,CARE,0DAGE,eACA,iBAHA,gBACA,cAYJ,CAPE,0DAGE,iBAFA,gBACA,aAUJ,CDrGE,mGAGE,sBACA,kBCuGJ,CANE,qBD5FA,sBACA,kBACA,mGCiGE,WAAY,CAFZ,MAAO,CAGP,aAAc,CALd,iBAAkB,CAClB,KAAM,CAEN,OAWJ,CALE,0CACE,iGACA,2BAOJ,CCtHE,iCACE,aDwHJ,CCrHE,0DAEE,eAAgB,CADhB,cDwHJ,CE9HC,YlJIC,oCARA,qBAAsB,CAGtB,sBkJQA,cAAe,ClJPf,eACA,0BkJGA,WAAY,ClJFZ,mBACA,eAAgB,CkJEhB,gBACA,aAAc,CAHd,iBAAkB,CAKlB,iBAOF,CA+IE,qBAEE,WAAY,CACZ,eAAgB,CAChB,aAAc,CAHd,UA1IJ,CAyIE,sCAQI,WAAY,CADZ,SA5IN,CAqIE,uCAYI,SA9IN,CAkIE,wCAiBI,iBADA,eA9IN,CA8HE,sCAwBI,WAAY,CAFZ,SAAU,CADV,KAAM,CAEN,UA/IN,CAwHE,2CA4BI,QAAS,CACT,kBAjJN,CAoHE,sCAkCI,WAAY,CADZ,SAjJN,CAgHE,qCAuCI,gBAAiB,CADjB,QAlJN,CAuJE,uCAGI,0BAvJN,CCrCO,uDAEC,aAAc,CADd,iBDwCR,CClCO,qDAEC,SAAU,CADV,UDqCR,CC/BO,0DAEC,SAAU,CADV,SDkCR,CC5BO,oDAEC,SAAU,CADV,SD+BR,CAzDE,uBACE,kBA2DJ,CAxDE,iBAIE,yBAFA,UA8DJ,CAvDE,mCAJE,kBAFA,UAAW,CAFX,iBAAkB,CAKlB,+BAiEJ,CA9DE,kBAGE,wBA2DJ,CAtDE,mBAKE,sBACA,yBACA,iBAAkB,CAClB,aACA,cAAe,CANf,YACA,gBAHA,iBAAkB,CASlB,wFARA,UAgEJ,CAjDI,4BACE,SAmDN,CAhDI,yBACE,qBAEA,0CADA,YAmDN,CA/CK,oCACC,oBAiDN,CA9CI,yBAIE,WAAY,CAEZ,UAAW,CADX,SAAU,CAJV,iBAAkB,CAElB,UAAW,CADX,QAoDN,CA5CE,mCAEI,wBA6CN,CA/CE,oCAKI,wBA6CN,CAlDE,4DAQI,oBA6CN,CAzCE,iBAKE,eAFA,MAAO,CAFP,iBAAkB,CAClB,QAAS,CAET,UA4CJ,CAxCE,sBAGE,sBAGA,cAAe,CAJf,oBAAqB,CADrB,iBAAkB,CAGlB,iBAAkB,CAGlB,oFAAiB,CAFjB,mBA4CJ,CAxCI,6BACE,qBA0CN,CAtCE,iBAIE,sBAAuB,CADvB,UAAW,CAEX,mBAAoB,CAJpB,iBAAkB,CAClB,UA2CJ,CArCE,gBAKE,sBACA,yBACA,iBAAkB,CAClB,cAAe,CAJf,UAAW,CAHX,iBAAkB,CAClB,QAAS,CACT,SA4CJ,CArCI,uBACE,oBAuCN,CAnCE,qBACE,kBAqCJ,CAtCE,sCAII,kCAqCN,CAzCE,uCAQI,0CAoCN,CA5CE,6EAaI,sBACA,uCACA,eAAgB,CAChB,kBAmCN,CAnDE,gFAqBI,4BAkCN,CCzLE,gBACE,aD2LJ,CCvLK,iCAEC,SAAU,CADV,OD0LN,CEjMC,epJIC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SoJWF,CANE,qBAEE,sBACA,eAFA,iBAUJ,CALE,wBACE,gBAOJ,CAJE,uBACE,sBAEA,yKADA,cAOJ,CAJI,6BAEE,aAAc,CADd,oBAON,CAHI,4DAEE,oBAKN,CAFI,8BACE,gBAIN,CADI,8BACE,eAGN,CCxCE,mBACE,aD0CJ,CCrCO,iDAEC,eAAgB,CADhB,cDwCR,CClCO,iDAEC,aAAc,CADd,gBDqCR,CE9BC,WtJbC,oCARA,qBAAsB,CAGtB,sBsJqBA,YAAa,CtJpBb,esJsBA,WAAY,CtJrBZ,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CsJyBV,kCAAmB,CAFnB,UARF,CAaC,gBAEC,oBAAqB,CACrB,SACA,eAAgB,CAHhB,iBAAkB,CAIlB,kBAXF,CAaE,0BACE,YAXJ,CAcE,2BACE,SAZJ,CAeE,mLAEE,YAbJ,CAgBE,6CAEE,oBAAqB,CACrB,kBAdJ,CAiBE,qBAQE,iCACA,mBAJA,yKADA,eAFA,YAIA,iBAHA,iBAIA,iBAAkB,CAGlB,gDAAoD,CATpD,UANJ,CAKE,qCAeI,cACA,aAAc,CAHd,iBAAkB,CAClB,SAbN,CAmBE,qBAGE,MAAO,CAEP,cAAe,CAJf,iBAAkB,CAClB,QAAS,CAET,UAhBJ,CAmBI,2BAIE,mBACA,iBAAkB,CAElB,UAAW,CANX,oBAAqB,CAErB,UAAW,CAGX,yBAA2B,CAJ3B,UAZN,CAqBE,sBAIE,sBAFA,oBAAqB,CAGrB,eACA,iBAHA,kBAAmB,CAFnB,iBAdJ,CAqBI,4BAOE,mBACA,UAAW,CAJX,aAAc,CAEd,UAAW,CAHX,SAAU,CAFV,iBAAkB,CAClB,SAGA,YAhBN,CAuBE,yBACE,cAAe,CAGf,eAAmB,CAFnB,eAlBJ,CAwBE,qDALE,sBAEA,cAjBJ,CAuHG,0CACC,sBACA,4BArHJ,CAmHG,0DAIG,qBApHN,CAgHG,8EAMK,0BAnHR,CAuHG,6FACC,qBArHJ,CAuHI,mGACE,wBArHN,CAwHG,mGACC,qBAtHJ,CAwHG,0EACC,wBAtHJ,CAiGG,6CACC,sBACA,oBA/FJ,CA6FG,6DAIG,aA9FN,CA0FG,iFAMK,kBA7FR,CAiGG,gGACC,qBA/FJ,CAiGI,sGACE,wBA/FN,CAkGG,sGACC,qBAhGJ,CAkGG,6EACC,wBAhGJ,CAjBE,uEACE,kBAmBJ,CApBE,uFAGI,UAoBN,CAhBE,wEACE,eAkBJ,CAkEG,4CACC,sBACA,oBAhEJ,CA8DG,4DAIG,aA/DN,CA2DG,gFAMK,kBA9DR,CAkEG,+FACC,qBAhEJ,CAkEI,qGACE,wBAhEN,CAmEG,qGACC,qBAjEJ,CAmEG,4EACC,wBAjEJ,CA4CG,2CACC,sBACA,oBA1CJ,CAwCG,2DAIG,aAzCN,CAqCG,+EAMK,kBAxCR,CA4CG,8FACC,aA1CJ,CA4CI,oGACE,wBA1CN,CA6CG,oGACC,aA3CJ,CA6CG,2EACC,wBA3CJ,CAzDG,iEACC,kBA2DJ,CAxDE,yBACE,kBA0DJ,CAnDK,8FACC,cAqDN,CAlDS,weAIC,oBAoDV,CA9CU,uXAGE,aAgDZ,CAvCU,sJACE,oBAyCZ,CA1CU,sKAII,aAyCd,CAhCC,qEAEG,iBAAkB,CAClB,kBAiCJ,CA/BI,iFACE,cAiCN,CA/BK,sGACC,eAiCN,CA9BI,0EACE,YAgCN,CA7BI,iFACE,gBACA,kBA+BN,CCnPC,sEAGG,eAAgB,CAChB,QAAS,CAFT,WDsPJ,CCxPC,sFAUK,eADA,YAFA,SAAW,CAIX,iBALA,MAEA,UDwPN,CClPG,mFAEG,aDmPN,CC5OE,gFAIM,eAAgB,CADhB,UD6OR,CEtQG,qFAEC,iBFuQJ,CErQI,iGACE,cFuQN,CE7QC,sCAgBG,mBAHA,eAFA,YAGA,iBAFA,iBAGA,iBAAkB,CALlB,UF4QJ,CEtRC,uCAoBG,eACA,iBAFA,kBFwQJ,CEpQI,6CACE,QFsQN,CE9RC,6CA4BG,sBACA,cFqQJ,CElSC,sCAgCG,OFqQJ,CErSC,6DAsCG,eAAgB,CAChB,QAAS,CACT,eAAgB,CAJhB,cAAe,CACf,mBAAoB,CAFpB,aF0QJ,CE7SC,6EA0CK,eACA,iBACA,cFsQN,CGlTC,oBACC,YAAa,CACb,qBHoTF,CGtTC,oCAKG,aAAc,CACd,aAAc,CAEd,gBAAiB,CADjB,cHqTJ,CG5TC,yDAWK,UAAW,CACX,iBHoTN,CGhUC,4DAgBK,aAAc,CACd,eAAgB,CAChB,eHmTN,CGrUC,0DAsBK,gBHkTN,CGxUC,gEA0BK,mBHiTN,CG3UC,mFAqCG,WAAY,CAFZ,UAGA,mBALA,iBAAkB,CAClB,KAAM,CAEN,SH+SJ,CG3SI,yFAEE,WAAY,CADZ,SH8SN,CGvVC,oGAiDG,aHySJ,CGlSI,kHACE,YHoSN,CGhSG,mFAIG,UACA,mBAHA,iBAAkB,CAClB,KHmSN,CGtSG,oFAQG,gBHiSN,CItWC,0CAEG,gBJuWJ,CIrWI,+CACE,gBAAiB,CACjB,kBJuWN,CIpWI,kDACE,aAAc,CAEd,cAAe,CACf,iBAAkB,CAFlB,WJwWN,CInWI,+CACE,oBAAqB,CACrB,gBJqWN,CIlWI,gDAEE,cAAe,CADf,eJqWN,CIlWM,sDACE,YJoWR,CIhWI,mDACE,aAAc,CAGd,mBAFA,iBAAkB,CAClB,aJmWN,CI7VM,mFACE,gBJ+VR,CKpYI,0FACE,kBLuYN,CKpYI,wFAGE,kBACA,SAAU,CAHV,QACA,ULyYN,CKrYM,oGAEE,UAAW,CACX,gBAAiB,CAFjB,uBL0YR,CKrYK,8IACC,QLwYN,CKrYI,wFAME,sBAAuB,CACvB,QAAS,CALT,WAGA,gBAFA,gBAAiB,CACjB,eAAgB,CAHhB,SL8YN,CK/YI,gIAcI,mBAAoB,CAHpB,UAAW,CAEX,WAAY,CAHZ,iBAAkB,CAKlB,kBAAoB,CAHpB,UL6YR,CKvYQ,4IAME,4BACA,UAAW,CAFX,WAAY,CAFZ,UAAW,CAFX,iBAAkB,CAClB,SAAU,CAEV,UL6YV,CKrYI,8FACE,WLwYN,CKtYK,wIAMC,eAAgB,CAFhB,YACA,iBAJA,iBAAkB,CAClB,QAAS,CACT,UL4YN,CKtYO,8LACC,MLyYR,CKnYC,uDAIG,eAAgB,CADhB,aAAc,CADd,eLsYJ,CKxYC,iGAUG,SAAU,CACV,QAAS,CACT,kBAAmB,CAHnB,SLqYJ,CK/XG,uEAEG,eLgYN,CKlYG,iHAQG,SL6XN,CKpZC,kFA4BG,ML2XJ,CKvZC,0DA+BG,aL2XJ,CK1ZC,6HAsCG,SAAU,CADV,QLyXJ,CMteC,sBACC,gBNweF,CMpeM,gEACE,iBNseR,CM5eC,sCAYG,gBAAiB,CACjB,iBNmeJ,CMjeI,gDACE,oBAAqB,CACrB,WAAY,CACZ,iBAAkB,CAClB,mBAAoB,CACpB,eAAgB,CAChB,sBNmeN,CMzeI,wEASI,cNmeR,CM5eI,sEAaI,cAAe,CAEf,eAAgB,CADhB,eAAgB,CAGhB,sBAAuB,CADvB,kBNmeR,CMheQ,4EACE,YNkeV,CM7dI,yGAEI,cN8dR,CM5dQ,+GACE,WN8dV,CMzdI,iDACE,QN2dN,CMzdM,uDACE,YN2dR,CMvdI,4CAWE,gCAAiB,CAAjB,kBAAiB,CAAjB,gBAAiB,CAEjB,UAAW,CATX,oBAAqB,CAErB,WAAY,CAHZ,SAAU,CAKV,gBAAiB,CADjB,gBAAiB,CANjB,iBAAkB,CAClB,OAAQ,CAUR,uBAAwB,CAPxB,UNieN,CMtdI,6CAOE,yBALA,QAAS,CAQT,UAAW,CANX,oBAAqB,CAErB,UAAW,CAHX,QAAS,CAFT,iBAAkB,CAOlB,6BAAiC,CACjC,mCAAoC,CAJpC,ON6dN,CM5iBC,mEAyFG,MAAO,CACP,UNsdJ,CMldC,yDAEG,wBNmdJ,CMjdI,gEACE,YNmdN,CMjdK,sFAIC,aAAc,CAEd,wBAAyB,CAHzB,UADA,OAAQ,CADR,KAAM,CAIN,SNodN,CMhdI,+DAIE,aAAc,CAEd,UAAW,CAHX,QAAS,CAIT,iBAAkB,CANlB,iBAAkB,CAOlB,iBAAkB,CANlB,QAAS,CAOT,wBAAyB,CAJzB,SNsdN,CM1cC,kNAIG,iBN4cJ,CO9kBE,eACE,aPglBJ,CO1kBK,8CAEC,eAAgB,CADhB,cP6kBN,COvkBK,oCAEC,SAAU,CADV,OP0kBN,COpkBK,qCAEC,iBAAkB,CADlB,ePukBN,COlkBO,8DACC,UAAW,CAEX,aAAc,CADd,gBPqkBR,CO/jBO,2CAEC,SAAU,CADV,UPkkBR,COzjBK,mFAEC,cAAe,CADf,kBP4jBN,COvjBO,+FACC,ePyjBR,COpjBO,oHACC,cPsjBR,CO5iBO,2EAEC,SAAU,CADV,UP+iBR,COniBS,8EAEC,aAAc,CADd,kBPsiBV,CO7hBO,8DAEC,aAAc,CADd,kBAAmB,CAEnB,gBP+hBR,CO3hBS,oFACC,cP6hBV,COvhBO,0DAEC,SAAU,CAEV,aAAc,CADd,iBAAkB,CAFlB,UAAW,CAIX,wBPyhBR,CO/gBK,mGAEC,cAAe,CADf,kBPkhBN,CO7gBO,+GACC,eP+gBR,COzgBK,qDAEC,iBAAkB,CADlB,eP4gBN,COlgBO,uEACC,WAAY,CAEZ,iBADA,cPqgBR,CO5fK,iGAEC,SAAU,CADV,UP+fN,COxfO,iGAEC,SAAU,CADV,UP2fR,COhfO,8DACC,cPkfR,COveO,oHACC,iBP0eR,COteS,gIAEC,aAAc,CADd,iBP0eV,COneO,0KAEC,SAAU,CADV,SPueR,COjeO,oHAEC,aAAc,CADd,iBPqeR,COheS,4JACC,WPueV,COleW,wKAEC,SAAU,CADV,WPseZ,CO3dK,qEAEC,gBAAiB,CADjB,cP8dN,COvdK,+GAEC,SAAU,CADV,UP0dN,COpdK,gGAEC,SAAU,CADV,OPudN,COjdK,4FAEC,SAAU,CADV,UPodN,CO5cG,0EACC,iBP8cJ,CO/cG,yHAGG,UP+cN,CO3cG,yIAEG,UP4cN,COxcG,mHAGG,cAAe,CADf,iBP0cN,COvcO,yIACC,iBPycR,CQjuBC,yCAEG,eRkuBJ,CQhuBK,wFAEC,UADA,ORmuBN,CQ5tBK,oKACC,kBAAmB,CACnB,gBR+tBN,CQ3tBG,wGAIC,SR0tBJ,CQvtBG,4DACC,gBRytBJ,CQttBG,uFAEG,kBRutBN,CQtvBC,8CAoCG,iBRqtBJ,CQzvBC,4DA0CK,WAAY,CACZ,SAAU,CAJV,iBAAkB,CAElB,UAAW,CADX,QRwtBN,CSzvBC,Y/JAC,oC+JUA,iCACA,QAAS,CACT,mBAAoB,CAPpB,qBAAsB,C/JVtB,sB+JkBA,cAAe,CATf,oBAAqB,C/JRrB,eACA,0B+JUA,Y/JTA,mB+JUA,iB/JTA,eAAgB,CANhB,QAAS,C+JaT,e/JZA,SAAU,C+JSV,iBAAkB,CAWlB,mBACA,oFAAiB,CANjB,qBAQF,CAAE,kBAEE,oCADA,SAGJ,CACE,0BACE,4BACJ,CAEE,wBACE,eAAJ,CAGE,oBACE,wBADJ,CAIE,yCAEE,kBAAmB,CACnB,UAFJ,CADE,6CAMI,eAAgB,CAChB,kBADN,CAME,kBAGE,WAFA,aAAc,CAGd,eAFA,oBAGA,qBAJJ,CAOE,sCACE,mBALJ,CASE,mBAKE,YAFA,SADA,QAEA,UALJ,CASI,6CAPA,iBAAkB,CAKlB,8BAKJ,CAHI,0BAME,sBACA,kBAHA,QAAS,CAIT,wCAEA,UAAW,CALX,MAAO,CAFP,OAAQ,CADR,KACN,CAWE,uCACE,sBATJ,CAYE,uEAGI,MAAO,CADP,UAVN,CAcK,0FAGG,SAAU,CADV,OAZR,CAmBG,iCAGC,qBAA0B,CAF1B,iBAAkB,CAClB,QAEA,kBAjBJ,CAoBE,6CACE,aAlBJ,CAsBE,kBAEE,YACA,iBAFA,cAlBJ,CAiBE,oCAOI,eADA,mBAnBN,CAaE,qCAYI,YADA,UApBN,CASE,2CAiBI,aAAc,CADd,SArBN,CAyBK,uDAEG,mBAxBR,CAsBK,wDAMG,sBAzBR,CClHC,gBACC,aDoHF,CCrHC,kCAIG,mBDoHJ,CCxHC,mCASG,SAAU,CADV,SDoHJ,CChHE,+EAGI,SAAU,CADV,ODkHN,CC9GK,kGAGG,MAAO,CADP,UDgHR,CC1GG,qDAEG,mBD2GN,CC7GG,sDAMG,uBD0GN,CCrGK,uEAEG,uBDsGR,CEhJG,4BACC,cCAJ,CDDG,iRASG,gBCAN,CDTG,sDAaG,iBCDN,CDZG,0DAiBG,iBCFN,CDfG,sFAwBO,4BCNV,CDlBG,wDAgCG,wBCXN,CDrBG,2BACC,cCuBJ,CDxBG,2QASG,WCuBN,CDhCG,qDAaG,iBCsBN,CDnCG,yDAiBG,WCqBN,CDtCG,qFAwBO,0BCiBV,CDzCG,uDAgCG,wBCYN,CC3CC,+CAGG,yBACA,eD2CJ,CC/CC,mDASG,6BDyCJ,CClDC,g3CAqBS,8BD+CV,CCpEC,gaA0BW,+BDgDZ,CC5CY,wXACE,kCDiDd,CChFC,w7CAyCW,8BDqDZ,CC9FC,odAiDS,kBDmDV,CCjDU,4eAKE,+BADA,QAAS,CAET,UAAW,CALX,iBAAkB,CAElB,UADA,KD0DZ,CC/GC,uJAkEO,4BDiDR,CC5CG,+QAMS,cD0CZ,CClCG,2QAMS,iBDgCZ,CCzBG,yQAMS,gBDuBZ,CC/HC,gDAiHG,yBACA,YDiBJ,CCbC,iDAIG,YDYJ,CCRE,yCACE,8BDUJ,CA/HC,mBACC,UAAW,CACX,cAiIF,C9K/IE,0BAEE,UAAW,CADX,a8KkJJ,C9K9IE,yBAGE,UAAW,CACX,UAAW,CAFX,a8KiJJ,CAtIC,WlKbC,oCkKiBA,gBACA,kBlK1BA,qBAAsB,CAGtB,sBkKqBA,elKnBA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CkKqBV,iBAkJF,CApJC,iBAYG,uBAAyB,CADzB,0BAEA,gBAAiB,CAHjB,eAAgB,CADhB,UAkJJ,CA1IE,4FAME,wBAAyB,CADzB,aADA,iBA8IJ,CAzIE,yBACE,eAAgB,CAEhB,sBAAuB,CADvB,kBAAmB,CAEnB,mBA2IJ,CAxIK,8GAEC,gBA0IN,CA5IK,8JAKG,aAAc,CACd,eAAgB,CAChB,sBA2IR,CAzJE,iDAmBI,eAAgB,CAChB,sBAAuB,CACvB,mBAyIN,CApIE,iBACE,YAsIJ,CAlIE,kBAGE,mBADA,sBADA,YAsIJ,CAhIE,uBAOM,mBACA,gCAJA,sBACA,eAAgB,CAFhB,iBAAkB,CAGlB,eAAgB,CAGhB,8BAgIR,CA9HQ,mDACE,iBAgIV,CA7HQ,oIAME,iCAGA,UAAW,CAJX,YAAa,CAJb,iBAAkB,CAElB,OAAQ,CADR,OAAQ,CAKR,0BAA2B,CAC3B,+BAAiC,CAJjC,SAoIV,CAzHM,iDACE,eA2HR,CArHE,uBAGM,gCACA,yBAqHR,CAzHE,8JAUU,6BAmHZ,CAhHY,4MACE,eAmHd,CAjHc,scAEE,eAqHhB,CA9GO,2FAEC,kBAgHR,CA7GO,8CAEG,mBACA,4BA8GV,CA3GQ,oDAEI,kBA4GZ,CApGE,mBAGE,gBAFA,iBAAkB,CAClB,SAuGJ,CApGI,sBACE,2BAsGN,CA5GE,kDAYM,+BAoGR,CA9FG,qCACC,aAgGJ,CA7FE,sBACE,YAAa,CACb,cAAe,CACf,WA+FJ,CAlGE,wBAMI,SA+FN,CA5FI,2BACE,0BA8FN,CA3FI,6BACE,sBA6FN,CA1FI,4BACE,wBA4FN,CAnFG,iDAEC,cAAe,CADf,YAAa,CAEb,kBAqFJ,CAnFI,uDACE,0BAqFN,CAnFM,8DACE,kCAqFR,CAjFI,+DACE,aAmFN,CAzEG,yMACC,kBA+EJ,CA7EI,iDACE,kCA+EN,CA3EE,yBACE,kBA6EJ,CA1EE,wBAGE,SAFA,iBAAkB,CAClB,SA6EJ,CAzEE,0BAGE,kBAAmB,CAFnB,YAAa,CACb,SAAU,CAEV,6BA2EJ,CAzEI,gCAIE,QAAS,CAIT,UAAW,CADX,WAAY,CAFZ,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,UA6EN,CAvEE,yBAEE,cACA,WAAY,CAFZ,eAAgB,CAGhB,oBAyEJ,CAvEI,+BAGE,kBAAmB,CAFnB,mBAAoB,CACpB,qBA0EN,CAtEI,0DAEE,cAwEN,CAtEM,wEACE,aAyER,CArEI,0DACE,gBAuEN,CAnEE,yDACE,aAqEJ,CAjEE,yBACE,YAAa,CACb,6BAmEJ,CAhEE,0BAGE,kBAAmB,CAKnB,kBAFA,cAGA,cAAe,CAPf,YAAa,CAKb,eAHA,0BACA,aAAc,CAJd,iBAAkB,CASlB,kBAkEJ,CAhEI,gCAEE,2BADA,qBAmEN,CA/DI,iCACE,aAiEN,CA5DE,2BlKxUA,oCkK4UE,sBACA,kBACA,sGlKtVF,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CkKkVP,eAAgB,ClKjVlB,SkKyZF,CA3EE,8CAcI,QAAS,CACT,eAAgB,CAHhB,iBACA,iBAoEN,CAhEM,0DAGE,sBAGA,mBAAoB,CALpB,aAAc,CAGd,eAFA,aAAc,CAGd,iBAmER,CA9DI,gCACE,iBAgEN,CAjEI,wFAII,wBAgER,CA5DQ,4MAEE,wBA8DV,CAzDI,kCAEE,gCADA,WA4DN,CAzDM,8CAEI,eA0DV,CA5DM,iDAKI,qBA0DV,CArDI,oCAEE,iBAAkB,CAClB,eAAgB,CAFhB,UAyDN,CApDI,sCACE,8BAA+B,CAC/B,iBAAkB,CAClB,eAsDN,CAlDI,oHAGI,gBAmDR,CA9CI,gCAKE,yBACA,6BALA,YAAa,CACb,6BAA8B,CAE9B,eAAgB,CADhB,eAmDN,CA3CE,yBACE,UA6CJ,CA1CE,6CACE,UA4CJ,CAzCE,8EAGE,iBADA,kBAEA,iBA2CJ,CA/CE,oHAOI,cA4CN,CAxCE,+DACE,SA0CJ,CAvCE,6CACE,kCAyCJ,CAtCE,qBAEE,mBAAoB,CACpB,qBAAsB,CAFtB,iBA0CJ,CAtCI,2BAIE,cAAe,CAEf,wBAAyB,CACzB,yBANA,iBAAkB,CAClB,KAAM,CAGN,kBAAoB,CAFpB,SA4CN,CA/CI,oCAUI,cACA,cAwCR,CAtCQ,0CACE,aAwCV,CAjCE,2BACE,UAmCJ,CAhCE,gCACE,iBAkCJ,CAnCE,2DAII,mBAAoB,CACpB,UAAW,CACX,kBAkCN,CA9BE,sBACE,UAAW,CACX,UAgCJ,CA7BE,2BAWE,gBACA,yBACA,kBATA,qBAAsB,C5BpfxB,c4BwfE,aAAc,C5BtfhB,cAAe,C4Bifb,UAAW,CAGX,YAGA,iB5BxfF,YAAa,C4BsfX,SAAU,CALV,iBAAkB,CAYlB,2B5B3fF,oBAAsB,C4B4fpB,kBAAoB,CACpB,oFAAiB,CAXjB,UA4CJ,C5B5hBE,0EAEE,a4B8hBJ,C5B3hBE,kCACE,a4B6hBJ,CApCI,oGAGE,yBAsCN,CAnCI,mEAGE,uBAAwB,CAExB,UAAW,CAHX,iBAAkB,CAElB,iCAsCN,CAlCI,kCAIE,WADA,QAAS,CADT,SAAU,CADV,OAuCN,CAjCI,iCAEE,UAAW,CACX,SAFA,OAAQ,CAIR,uBAAwB,CADxB,SAoCN,CA/BI,4CACE,yBAiCN,CA9BI,2CACE,sBAgCN,CA7BI,kCAME,sBAAuB,CACvB,QAAS,CACT,iBA0BN,CAjCM,iFAGE,YAAa,CADb,YAoCR,CA5BK,iDAGC,iBAFA,mBA+BN,CAxBI,gEAGI,kBAyBR,CA7BE,iDAUI,YAsBN,CAhCE,uDAaM,SAAU,CACV,UAsBR,CA3kBC,yCA6jBG,aACA,aAFA,iBAoBJ,CAdE,0CACE,iBAgBJ,CAfK,2DACC,qBAiBN,CAdI,mDAEI,eAeR,CATE,mDAIE,gBAFA,yBAA2B,CAC3B,SAYJ,CARE,yEAKE,WAAY,CAIZ,UAAW,CACX,mBAAoB,CARpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,0BAA2B,CAC3B,yBAA2B,CAF3B,UAcJ,CAPE,mCACE,YASJ,CANE,2EAIE,WAAY,CAKZ,UAAW,CAJX,MAAO,CAKP,mBAAoB,CARpB,iBAAkB,CAClB,KAAM,CAIN,2BAA4B,CAC5B,yBAA2B,CAF3B,UAYJ,CAJI,6EAIE,QAAS,CAIT,UAAW,CACX,mBAAoB,CAPpB,iBAAkB,CAClB,KAAM,CAIN,yBAA2B,CAD3B,UAAW,CADX,SAUN,CAHI,uCACE,MAKN,CAFI,sCACE,OAIN,CACK,uEACC,iBACN,CAHE,iMAWI,gDADN,CAVE,0DAeI,kCAFN,CAOK,yEACC,iBALN,CAGE,sMAWI,iDAPN,CAkBI,kDAHE,gBAFA,eAAgB,CAChB,SACN,CAGI,yBAKE,kBAAmB,CAEnB,6BALA,QAAS,CAET,YAAa,CAIb,UAXN,CAaM,+BACE,8BAXR,CAcM,6BAEE,iCACA,kBAFA,UAVR,CAkBQ,uEACE,+BAbV,CAoBA,gCAQI,qHAEI,yBAvBN,CACF,CExtBE,iBACE,yBF+tBJ,CE5tBE,sCACE,wBAAyB,CACzB,yBF8tBJ,CEhuBE,2MAaQ,eF4tBV,CErtBE,qBAEE,2BFutBJ,CEztBE,oFACE,0BF2tBJ,CE5tBE,8DAUM,2BFqtBR,CE/sBE,kBACE,yBFitBJ,CGjvBE,sCACE,aHsvBJ,CGlvBK,wCACC,gBHovBN,CG3uBW,0EACC,iBH6uBZ,CGxuBW,2JAEC,MAAO,CADP,UH2uBZ,CGtuBS,8CACC,gBHwuBV,CGjuBE,2EAKQ,6BH+tBV,CGttBO,oEACC,wBHwtBR,CGntBO,qEACC,0BHqtBR,CG1sBK,gDAEC,aAAc,CADd,gBH6sBN,CGtsBK,sDACC,4BHwsBN,CGlsBO,kGACC,mBHosBR,CG9rBK,iDACC,yBHgsBN,CGtrBS,wUAGC,cAAe,CADf,iBH2rBV,CGlrBK,4CACC,iBHorBN,CGxqBK,+FACC,WH6qBN,CGzqBO,wEAEC,gBADA,cH4qBR,CGtqBO,wDACC,wBHwqBR,CGnqBO,mEACC,wBHqqBR,CGhqBO,kEACC,sBHkqBR,CIj0BC,gDAGG,iBCiBJ,CDdI,uDAIE,UAAW,CAGX,UAAW,CAFX,MAAO,CAGP,mBAAoB,CAPpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,+BCkBN,CDZM,6DACE,kBCcR,CDjCC,kDAyBK,SCWN,CDpCC,mEA8BK,oBCSN,CDvCC,+EAmCK,eAAgB,CAChB,oFCON,CDLM,qFACE,sBCOR,CDJO,sGAEC,sBAAuB,CADvB,UCOR,CDAM,sIAEE,kBCER,CDLI,4EAQI,UCAR,CDRI,wFAcI,sBAAuB,CADvB,UCDR,CnG5DG,mBpEID,oCARA,qBAAsB,CAGtB,sBoESE,cAAe,CpERjB,eACA,0BACA,mBoEGE,aAAc,CpEFhB,eAAgB,CANhB,QAAS,CoEUP,YAAa,CpETf,SAAU,CoEKR,iBAAkB,CAClB,QAAU,CAEV,kBmGuEJ,CnGnEK,oKAGC,oBmGqEN,CnGlEI,iCASE,4CAA8C,CAC9C,6BAA8B,CAJ9B,yBACA,kBAIA,UAAW,CANX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAMN,iBAAkB,CAJlB,UmG2EN,CnGjEK,yFAEC,kBmGmEN,CnGhEI,yBAQE,sBACA,yBAIA,uBAAyB,CAHzB,kBAHA,aAAc,CAHd,aAAc,CAEd,YAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAYN,kBAAoB,CATpB,UmGyEN,CnG9DM,+BAYE,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CATZ,aAAc,CAEd,oBAHA,UAAW,CAQX,SAAU,CAZV,iBAAkB,CAClB,OAAQ,CAUR,qDAAuD,CAEvD,6DAPA,kBmGmER,CnGvDI,yBAIE,QAAS,CAKT,cAAe,CADf,WAAY,CAHZ,MAAO,CAKP,SAAU,CATV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,UAAW,CADX,SmG6DN,CnGpDG,0DAGC,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CAPZ,aAAc,CAKd,SAAU,CANV,iBAAkB,CAKlB,qDAAuD,CAEvD,oDmGuDJ,CnGnDG,oDAEG,yBACA,oBmGoDN,CnGhDG,4BACC,kBmGkDJ,CnGhDK,qFAGG,mBAAoB,CADpB,4BmGkDR,CnGvDG,qDAWG,kBAAmB,CACnB,mBmG+CN,CnG3DG,qDAgBG,yBACA,8BmG8CN,CnG5CM,2DAGE,mBAAoB,CADpB,uBAAyB,CADzB,oBmGgDR,CnG1CI,iCACE,sBACA,kBmG4CN,CnGxCK,2GAEC,iBmG0CN,CnGtCG,2BpE7ID,oCoEgJE,oBAAqB,CpExJvB,qBAAsB,CAGtB,sBoEuJE,cAAe,CAHf,mBAAoB,CpEnJtB,eACA,0BACA,mBoEmJE,oBpElJF,eAAgB,CANhB,QAAS,CACT,SuKwMF,CnG9CI,iCAIE,aAAc,CAHd,oBAAqB,CAErB,eAAgB,CADhB,OmGkDN,CnG7CK,8DACC,kBmG+CN,CnG5CI,sDACE,emG8CN,CnG3CI,uFAGI,WAAY,CADZ,UmG6CR,CnGvCG,wBAEC,gBAAiB,CADjB,iBmG0CJ,CnGtCG,yBpEhLD,oCARA,qBAAsB,CAGtB,sBoEuLE,oBAAqB,CpEtLvB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SuKwOF,CnG9CI,8BACE,gBmGgDN,CnG9CM,yCACE,cmGgDR,CnG5CI,4DACE,amG8CN,CnGzCG,0DAEG,sBACA,oBmG0CN,CnG7CG,gEAaG,yBACA,QAAS,CAGT,WAAY,CALZ,WAFA,QAAS,CAMT,SAAU,CAPV,OAAQ,CAMR,uCAAyC,CAJzC,SmG6CN,CnGpCK,2FACC,iCACA,4BmGsCN,CA5PC,UvKFC,oCwKyCA,gBACA,kBxKlDA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CwKiDV,+BDiOF,CC/NE,4DACE,kBDiOJ,CC7NE,4BACE,sBD+NJ,CC5NG,0DAEG,mBD6NN,CC/NG,yFAMK,SD4NR,CClOG,sFAWK,iBD0NR,CCxNQ,4FAQE,yCAA2C,CAE3C,4BAA6B,CAD7B,4BAA6B,CAH7B,yBAFA,WAOA,UAAW,CANX,MAAO,CAEP,SAAU,CAKV,mBAAoB,CAXpB,iBAAkB,CAElB,OAAQ,CADR,KDoOV,CAvSC,6BCsFG,sBAAuB,CADvB,YAAa,CAGb,YAAa,CADb,eDsNJ,CCnNI,qEAGI,sBACA,kBDmNR,CCjNQ,2EACE,sBDmNV,CC9MK,mEACC,kBDgNN,CC7MK,oGACC,cACA,eD+MN,CC5MI,gEAGI,iBAGA,UAAY,CAFZ,iBAAkB,CAGlB,uBAFA,kBAAmB,CAHnB,UDkNR,CC3MS,yFACC,WD6MV,CCzMO,2FAEG,iBD0MV,CCnME,iBACE,kBAAmB,CAEnB,oFAAiB,CADjB,kBDsMJ,CCnMI,sBACE,oBAAqB,CACrB,UDqMN,CChME,yBACE,iBDkMJ,CC9LE,mBAIE,kBAAmB,CAKnB,cAAe,CANf,SAAU,CAIV,iBADA,QAAS,CAJT,iBAAkB,CAMlB,iBAAkB,CAElB,oFAAiB,CALjB,UDoMJ,CCzME,6FArJE,oBAAqB,CACrB,cAAe,CACf,sBDkWJ,CC/ME,qGAhJI,wBDmWN,CCvMI,wBACE,cDyMN,CCtMI,qDAGM,wBDsMV,CCjMI,gCACE,aDmMN,CChMI,6BAGE,oBAAqB,CAErB,WAAY,CAJZ,iBAAkB,CAGlB,UAAW,CAFX,SDqMN,CChMM,oCAME,+BAFA,YAGA,WAAY,CAFZ,gBAAiB,CAJjB,iBAAkB,CAElB,UAAW,CADX,KDuMR,CC/LM,mCAIE,gCACA,WAAY,CAFZ,YAFA,iBAAkB,CAClB,UDoMR,CC3LE,mBAEE,mBADA,QD8LJ,CCzLE,yCAQE,sBAAuB,CACvB,kBAHA,aAAc,CAId,cAAe,CAHf,iBAHA,QAAS,CADT,gBAEA,aAAc,CAJd,iBAAkB,CAUlB,yDAA8D,CAT9D,YDoMJ,CCzLI,+CACE,wBD2LN,CCxLK,gEACC,wBD0LN,CC5ME,2DAuBI,oBAAqB,CAErB,YACA,iBACA,iBAAkB,CAClB,kBAAmB,CAJnB,UD4LN,CCtLM,iEACE,YDwLR,CClLE,4DACE,wBDoLJ,CChLE,+BACE,iBACA,oFDkLJ,CCpLE,wDA7OE,yBACA,iBAAkB,CAFlB,UAAW,CAGX,mBAAoB,CANpB,iBAAkB,CAElB,SD2aJ,CCraI,8DAME,wBAA6B,CAC7B,yBACA,iBAAkB,CAClB,UAAW,CAJX,UAAW,CAFX,SAAU,CAFV,iBAAkB,CAClB,QAAS,CAET,SD4aN,CAtcC,wDCwQK,4BDiMN,CCzLM,0CAEE,WAAY,CADZ,iBD4LR,CCzLQ,iDAKE,+BADA,YAEA,UAAW,CALX,iBAAkB,CAElB,WADA,KD+LV,CCvLU,qDACE,YDyLZ,CC3ME,uCA0BI,eDoLN,CClLM,iDAEE,qBDmLR,CC3KQ,2EAEE,qBAAuB,CACvB,sBAFA,kBD+KV,CEreE,cACE,aFueJ,CEpeQ,4FAEE,UADA,UFueV,CE9dI,iCACE,aFgeN,CEvdW,mEACC,uBFydZ,CE7cW,8DAIC,8BADA,iBAAkB,CADlB,WADA,UFkdZ,CE9bK,yFACC,kBFmcN,CGlgBC,c1KIC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mB0KGA,eAAgB,CAFhB,QAAS,CACT,SAKF,CAFE,mBAIE,eACA,eAAgB,CAHhB,QAAS,CACT,oBAFA,iBAQJ,CAFI,wBAKE,8BADA,wBAAyB,CADzB,QAAS,CAFT,iBAAkB,CAClB,QAON,CADI,mDAEE,wBAA6B,CAD7B,cAIN,CAAI,mDACE,YAEN,CACI,wBAIE,sBACA,6BACA,mBAAoB,CAHpB,WAAY,CAFZ,iBAAkB,CAClB,UAKN,CACM,6BAEE,qBADA,aAER,CAEM,4BAEE,qBADA,aACR,CAGM,8BAEE,qBADA,aAAR,CAIM,6BAEE,6BADA,qBADR,CAMI,+BAUE,QAAS,CACT,eAAgB,CANhB,WAAY,CAFZ,QAAS,CAKT,aAAc,CAFd,YAAa,CACb,eAAgB,CANhB,iBAAkB,CAQlB,iBAAkB,CAPlB,SAAU,CAUV,8BAAgC,CARhC,UAIN,CAOI,2BAGE,kBAFA,iBAAkB,CAClB,aAEA,qBALN,CAQI,gDAEI,YAPR,CAKI,mDAKI,eAPR,CAgBM,kiBAGE,QARR,CAWM,+KACE,gBAPR,CASQ,oMACE,eALV,CASM,gQAEI,oBAAqB,CAErB,eAAgB,CADhB,sBALV,CAUM,mQAGI,QAAS,CACT,gBAAiB,CAFjB,sBALV,CAaG,6PAKK,qBAbR,CAQG,qFAQK,uBAbR,CAkBE,mFAGE,+BAFA,aAAc,CACd,wBAfJ,CAmBE,mFACE,YAjBJ,CAoBE,sFAKI,+BAFA,aAAc,CACd,wBAAyB,CAFzB,QAhBN,CAcE,yFAQI,eAnBN,CAsBG,0DAEG,iBAAkB,CAGlB,gBAAiB,CAFjB,aACA,sBApBN,CAgBG,mFASK,qBAAsB,CAEtB,eAAgB,CADhB,sBArBR,CCtJE,kBACE,aDwJJ,CCnJO,0CAIC,gBAAiB,CADjB,+BADA,SAAU,CADV,SDwJR,CChJO,iDAEC,SAAU,CADV,SAAU,CAEV,6BDkJR,CC7IO,6CACC,iBD+IR,CCnIS,2rBAEC,SAAU,CADV,SD8IV,CCxIS,kOAEC,aAAc,CADd,iBD6IV,CCxIW,uPAEC,aAAc,CADd,gBD6IZ,CCrIW,mTAEC,SAAU,CADV,qBAAsB,CAEtB,gBDyIZ,CClIW,sTACC,eDsIZ,CC1HS,gTAEC,SAAU,CADV,OD+HV,CCzHS,sGAEC,iBAAkB,CAClB,gBAAiB,CAFjB,UD6HV,CC5GO,2MAEC,gBAAiB,CADjB,+BDmHR,CC3GO,2EACC,eD6GR,CCxGS,oGACC,sBAAuB,CACvB,gBD0GV,CEpOC,gDAEG,YAAa,CAEb,WAAY,CACZ,iBAFA,UCSJ,CDZC,iEAWK,QAAS,CACT,eCIN,CDhBC,6FAgBO,cAAe,CADf,UCKR,CDpBC,iIAsBS,kBCCV,CDvBC,iHA0BS,+BCAV,CD1BC,iFA+BO,QCFR,CD7BC,qFAoCK,iBCJN,CDQI,kDACE,wBCNN,CCnBE,8CAjBE,oBDuCJ,CCrCI,qEACE,oBDuCN,CCrCM,2ErK2BJ,qBACA,sBoKaF,CCrCM,2ErKOF,qBAUF,uBAPE,yCAQF,SoKyBF,CC/BE,gDArBE,oBDuDJ,CCrDI,uEACE,oBDuDN,CCrDM,6ErK2BJ,qBACA,sBoK6BF,CCrDM,6ErKOF,qBAUF,uBAPE,yCAQF,SoKyCF,CA9DC,c7KHC,oC6KQA,mBAAoB,C7KhBpB,qBAAsB,CAGtB,sB6KYA,YAAa,C7KXb,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,C6KYV,iBAyEF,CArEE,0CAEI,kBAsEN,CAlEE,mBAKE,yBACA,kBALA,YAAa,CACb,qBAAsB,CAEtB,aADA,WAuEJ,CAlEI,mCAEE,WAAY,CADZ,WAqEN,CAjEI,0CAEI,qBAkER,CA9DI,0BAGE,kBAAmB,CAMnB,gBACA,gCACA,0BAHA,sBAPA,YAAa,CACb,SAAU,CAEV,YAEA,oBAmEN,CAzEI,4CAcI,gBA8DR,CA5EI,4BAkBI,SA6DR,CA1DM,gCACE,SAAU,CACV,eAAgB,CAEhB,gBAAiB,CACjB,sBAAuB,CAFvB,kBA8DR,CAzDM,mCAGE,cAAe,CAFf,cAAe,CACf,yBA4DR,CAzDQ,6CACE,kBA2DV,CAtDI,wBACE,YAAa,CACb,SAAU,CACV,qBAAsB,CAEtB,eADA,eAyDN,CAtDM,uCAEE,SAAU,CACV,aAFA,iBA0DR,CApDI,2BACE,SAAU,CAIV,eAAgB,CAHhB,QAAS,CAET,aAAc,CADd,SAwDN,CApDM,gCAEE,kBAAmB,CADnB,YAAa,CAIb,iBAFA,gBACA,iBAEA,kBAsDR,CA5DM,kDASI,gBAsDV,CA/DM,kCAaI,SAqDV,CAlDQ,qCACE,SAAU,CACV,eAAgB,CAEhB,sBAAuB,CADvB,kBAqDV,CAjDQ,uCAEE,cACA,cAAe,CAFf,iBAAkB,CAGlB,kBAmDV,CAjDU,6CACE,aAmDZ,CAhDU,6CAIE,YAEA,UAAW,CADX,SAAU,CAJV,iBAAkB,CAElB,UAAW,CADX,QAsDZ,CA5CQ,oFACE,yBACA,cA8CV,CA3CS,2HACC,wBA6CV,CAxCM,2HACE,sBAAuB,CACvB,cA0CR,CAvCM,wCACE,wBAyCR,CAtCM,yCACE,sBACA,kBAwCR,CApCI,8BAGE,6BAFA,cACA,gBAuCN,CAnCI,kCAIE,sBAHA,SAAU,CAEV,aAAc,CAEd,iBAAkB,CAHlB,UAwCN,CAlCI,0BACE,4BAoCN,CAhCE,wBAIE,iBAAkB,CAHlB,YAAa,CACb,SAAU,CACV,qBAAsB,CAEtB,YAAa,CACb,qBAkCJ,CAxCE,iCASI,aAkCN,CAhCM,6CACE,iBAkCR,CA9CE,0CAgBM,cAiCR,CAxOC,+BA6MG,eA8BJ,CEhPE,kBACE,aFkPJ,CE7OO,4CAEC,iBAAkB,CADlB,iBFgPR,CE3OS,mDAEC,SAAU,CADV,UF8OV,CEtOS,8DAEC,eAAgB,CADhB,cFyOV,CEpOO,4CAEC,SAAU,CADV,OFuOR,CElOS,kDACC,eFoOV,CE5NW,oEAEC,eAAgB,CADhB,cF+NZ,CEvNO,gDACC,eFyNR,CEpNO,4CAEC,SAAU,CADV,OFuNR,CLgDA,uCACE,GACE,SQnUF,CRsUA,GACE,SQpUF,CACF,C5G2NA,6BACE,GAEE,UAAY,CADZ,kB4GxNF,C5G4NA,GAEE,SAAU,CADV,oB4GzNF,CACF,C5GhBG,0BpEID,oCARA,qBAAsB,CAGtB,sBoESE,cAAe,CpERjB,eACA,0BACA,mBoEGE,aAAc,CpEFhB,eAAgB,CANhB,QAAS,CoEUP,YAAa,CpETf,SAAU,CoEKR,iBAAkB,CAClB,QAAU,CAEV,kB4G2BJ,C5GvBK,8MAGC,oB4GyBN,C5GtBI,wCASE,4CAA8C,CAC9C,6BAA8B,CAJ9B,yBACA,kBAIA,UAAW,CANX,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAMN,iBAAkB,CAJlB,U4G+BN,C5GrBK,8GAEC,kB4GuBN,C5GpBI,gCAQE,sBACA,yBAIA,uBAAyB,CAHzB,kBAHA,aAAc,CAHd,aAAc,CAEd,YAHA,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAYN,kBAAoB,CATpB,U4G6BN,C5GlBM,sCAYE,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CATZ,aAAc,CAEd,oBAHA,UAAW,CAQX,SAAU,CAZV,iBAAkB,CAClB,OAAQ,CAUR,qDAAuD,CAEvD,6DAPA,kB4GuBR,C5GXI,gCAIE,QAAS,CAKT,cAAe,CADf,WAAY,CAHZ,MAAO,CAKP,SAAU,CATV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,UAAW,CADX,S4GiBN,C5GRG,wEAGC,sBAEA,aAAc,CADd,YAAa,CAKb,WAAY,CAPZ,aAAc,CAKd,SAAU,CANV,iBAAkB,CAKlB,qDAAuD,CAEvD,oD4GWJ,C5GPG,kEAEG,yBACA,oB4GQN,C5GJG,mCACC,kB4GMJ,C5GJK,0GAGG,mBAAoB,CADpB,4B4GMR,C5GXG,mEAWG,kBAAmB,CACnB,mB4GGN,C5GfG,mEAgBG,yBACA,8B4GEN,C5GAM,yEAGE,mBAAoB,CADpB,uBAAyB,CADzB,oB4GIR,C5GEI,wCACE,sBACA,kB4GAN,C5GIK,gIAEC,iB4GFN,C5GMG,kCpE7ID,oCoEgJE,oBAAqB,CpExJvB,qBAAsB,CAGtB,sBoEuJE,cAAe,CAHf,mBAAoB,CpEnJtB,eACA,0BACA,mBoEmJE,oBpElJF,eAAgB,CANhB,QAAS,CACT,SgL4JF,C5GFI,wCAIE,aAAc,CAHd,oBAAqB,CAErB,eAAgB,CADhB,O4GMN,C5GDK,4EACC,kB4GGN,C5GAI,oEACE,e4GEN,C5GCI,qGAGI,WAAY,CADZ,U4GCR,C5GKG,+BAEC,gBAAiB,CADjB,iB4GFJ,C5GMG,gCpEhLD,oCARA,qBAAsB,CAGtB,sBoEuLE,oBAAqB,CpEtLvB,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SgL4LF,C5GFI,qCACE,gB4GIN,C5GFM,gDACE,c4GIR,C5GAI,0EACE,a4GEN,C5GGG,wEAEG,sBACA,oB4GFN,C5GDG,8EAaG,yBACA,QAAS,CAGT,WAAY,CALZ,WAFA,QAAS,CAMT,SAAU,CAPV,OAAQ,CAMR,uCAAyC,CAJzC,S4GCN,C5GQK,gHACC,iCACA,4B4GNN,CA/ME,0BACE,eAiNJ,CA/MI,8BACE,aAiNN,CArNE,2CAQI,eAgNN,CA9MM,6DACE,mBAgNR,CAjNM,6HAKM,SA+MZ,CAvMC,iBhL1BC,oCwKyCA,gBACA,kBxKlDA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CACT,SAAU,CwKiDV,+BQoMF,CRlME,0EACE,kBQoMJ,CRhME,mCACE,sBQkMJ,CR/LG,+EAEG,mBQgMN,CRlMG,qHAMK,SQ+LR,CRrMG,kHAWK,iBQ6LR,CR3LQ,wHAQE,yCAA2C,CAE3C,4BAA6B,CAD7B,4BAA6B,CAH7B,yBAFA,WAOA,UAAW,CANX,MAAO,CAEP,SAAU,CAKV,mBAAoB,CAXpB,iBAAkB,CAElB,OAAQ,CADR,KQuMV,CAlPC,2CR8DG,sBAAuB,CADvB,YAAa,CAGb,YAAa,CADb,eQyLJ,CRtLI,0FAGI,sBACA,kBQsLR,CRpLQ,gGACE,sBQsLV,CRjLK,wFACC,kBQmLN,CRhLK,uIACC,cACA,eQkLN,CR/KI,qFAGI,iBAGA,UAAY,CAFZ,iBAAkB,CAGlB,uBAFA,kBAAmB,CAHnB,UQqLR,CR9KS,qHACC,WQgLV,CR5KO,uHAEG,iBQ6KV,CRtKE,wBACE,kBAAmB,CAEnB,oFAAiB,CADjB,kBQyKJ,CRtKI,6BACE,oBAAqB,CACrB,UQwKN,CRnKE,gCACE,iBQqKJ,CRjKE,0BAIE,kBAAmB,CAKnB,cAAe,CANf,SAAU,CAIV,iBADA,QAAS,CAJT,iBAAkB,CAMlB,iBAAkB,CAElB,oFAAiB,CALjB,UQuKJ,CR5KE,2GArJE,oBAAqB,CACrB,cAAe,CACf,sBQqUJ,CRlLE,mHAhJI,wBQsUN,CR1KI,+BACE,cQ4KN,CRzKI,mEAGM,wBQyKV,CRpKI,uCACE,aQsKN,CRnKI,oCAGE,oBAAqB,CAErB,WAAY,CAJZ,iBAAkB,CAGlB,UAAW,CAFX,SQwKN,CRnKM,2CAME,+BAFA,YAGA,WAAY,CAFZ,gBAAiB,CAJjB,iBAAkB,CAElB,UAAW,CADX,KQ0KR,CRlKM,0CAIE,gCACA,WAAY,CAFZ,YAFA,iBAAkB,CAClB,UQuKR,CR9JE,0BAEE,mBADA,QQiKJ,CR5JE,uDAQE,sBAAuB,CACvB,kBAHA,aAAc,CAId,cAAe,CAHf,iBAHA,QAAS,CADT,gBAEA,aAAc,CAJd,iBAAkB,CAUlB,yDAA8D,CAT9D,YQuKJ,CR5JI,6DACE,wBQ8JN,CR3JK,qFACC,wBQ6JN,CR/KE,gFAuBI,oBAAqB,CAErB,YACA,iBACA,iBAAkB,CAClB,kBAAmB,CAJnB,UQ+JN,CRzJM,sFACE,YQ2JR,CRrJE,0EACE,wBQuJJ,CRnJE,sCACE,iBACA,oFQqJJ,CRvJE,+DA7OE,yBACA,iBAAkB,CAFlB,UAAW,CAGX,mBAAoB,CANpB,iBAAkB,CAElB,SQ8YJ,CRxYI,qEAME,wBAA6B,CAC7B,yBACA,iBAAkB,CAClB,UAAW,CAJX,UAAW,CAFX,SAAU,CAFV,iBAAkB,CAClB,QAAS,CAET,SQ+YN,CAjZC,sERgPK,4BQoKN,CR5JM,wDAEE,WAAY,CADZ,iBQ+JR,CR5JQ,+DAKE,+BADA,YAEA,UAAW,CALX,iBAAkB,CAElB,WADA,KQkKV,CR1JU,mEACE,YQ4JZ,CR9KE,qDA0BI,eQuJN,CRrJM,+DAEE,qBQsJR,CR9IQ,gGAEE,qBAAuB,CACvB,sBAFA,kBQkJV,CAtaW,kHACC,uBAwaZ,CAjaO,sFACC,oBAmaR,CCjdC,gBACC,sBACA,qBADF,CAGE,yCACE,qBADJ,CAIE,uCACE,aAFJ,CAKE,uCACE,aAHJ,CAME,sCACE,aAJJ,CAMI,2FAEE,aAJN,CAOI,6CACE,aALN,CASE,wCACE,sBACA,kBAAmB,CACnB,oFAPJ,CAWE,qCCxCA,iBDiCF,CAYE,0FCxCA,sBAEA,eADA,gBAEA,iBAJA,kBDuCF,CASE,0FC/CA,sBAEA,eADA,gBAEA,iBAJA,kBDiDF,CAME,0FCtDA,sBAEA,eADA,gBAEA,iBAJA,kBD2DF,CAGE,0FC7DA,sBAEA,eADA,gBAEA,gBAJA,kBDqEF,CAAE,0FCpEA,sBAEA,eADA,gBAEA,gBAJA,kBD+EF,CA/EC,woCAoGK,gBAiCN,CA7BE,uDAEE,oBAAqB,CACrB,cA+BJ,CA5BE,mC3CnHA,cAEA,cAAe,CADf,YAAa,C2CqHX,qB3CnHF,oB2CoJF,C3ClJE,8GAEE,a2CsJJ,C3CnJE,iDACE,a2CsJJ,CAzCI,gGAEE,oBA6CN,CA1CK,0IAEC,sBACA,kBA8CN,CA5CM,wUAEE,qBAoDR,CAjDM,sKACE,mBAsDR,CAzLC,qBA4IG,4BAAoC,CACpC,kCAA0C,CAC1C,iBAAkB,CAHlB,aAAc,CAFd,aAAe,CACf,sBAuDJ,CAjMC,oBAqJG,6BAAqC,CAErC,8BAAwB,CACxB,iBAAkB,CADlB,wBAAwB,CAHxB,aAAc,CAFd,aAAe,CACf,uBAuDJ,CA1MC,qBA6JG,yBADA,SAkDJ,CA9MC,sCAmKG,iCADA,yBAA0B,CAC1B,6BAgDJ,CAnNC,sCAwKG,4BA+CJ,CAvNC,uBA4KG,eA8CJ,CA1CE,iE3CrLA,cAEA,cAAe,C2CwLb,eAAgB,C3CzLlB,YAAa,CAEb,oB2CqOF,C3CnOE,8LAEE,a2CyOJ,C3CtOE,sFACE,a2C0OJ,CAvDI,mGAGE,aAyDN,CApDE,6BACE,iBAsDJ,CApDI,gCACE,WAEA,8BADA,eAuDN,CAnDI,qCAGE,UAAW,CACX,sBAGA,eACA,iBAAkB,CAFlB,eAAmB,CAGnB,mBAAoB,CARpB,iBAAkB,CAClB,UA2DN,CAtEE,sCAwBI,UAAW,CACX,kBAAoB,CAEpB,oBAiDN,CA7QC,sCAmOG,cAAe,CACf,SA8CJ,CAlRC,4CAuOK,iBAAkB,CAClB,iBA+CN,CAvRC,mBA6OG,sBA6CJ,CA1RC,sBAgPK,oBA6CN,CA7RC,mBAqPG,uBA2CJ,CAhSC,+CA2PG,YAyCJ,CApSC,oBAiQG,oBAAqB,CACrB,4BAAoC,CACpC,kCAA0C,CAC1C,iBAAkB,CALlB,iBAAoB,CACpB,oBA4CJ,CA5SC,yBA6QK,sBAAuB,CACvB,QAAS,CANT,cAAe,CAIf,mBAAoB,CADpB,iBAAkB,CAFlB,QAAS,CACT,SA2CN,CArTC,2BAoRG,uCAA+C,CAC/C,WAAa,CAFb,kBAuCJ,CAjCE,4BACE,kBAmCJ,CAhCE,qCACE,eAAgB,CAChB,sBAkCJ,CA/BI,+EAEE,qBAiCN,CA7BE,uCAIE,oBAAqB;EA+BvB,+BAA+B,CA5B7B,2BAA4B,CAL5B,mBAAoB,CACpB,eAkCJ,CE7UE,oBACE,aF+UJ,CExUK,6HAEC,aAAc,CADd,gBF6UN,CEvUK,2CACC,UFyUN,CElUO,mDAEC,SAAU,CADV,WFqUR,CE/TO,yDAEC,SAAU,CADV,UFkUR,CExTO,kFACC,iBAAkB,CAClB,iBF2TR,CGpWC,YpLCC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BACA,mBACA,eAAgB,CANhB,QAAS,CoLST,SAAU,CpLRV,SoLYF,CAPC,cAMG,QAIJ,CADE,gBACE,aAAc,CAEd,YAAa,CADb,UAIJ,CAfC,6BAgBG,cAEJ,CACE,8BACE,oBACJ,CAEE,gCACE,sBACA,kBAAJ,CAGE,2CAOE,yBACA,0BACA,kBACA,cAAe,CARf,aAEA,iBAAkB,CADlB,gBAAiB,CAEjB,iBAAkB,CAMlB,2BAA6B,CAL7B,kBAAmB,CALnB,WASJ,CAVE,uDAeI,kBAAmB,CADnB,YAAa,CAGb,WAAY,CADZ,sBAAuB,CAEvB,iBADN,CAII,iDACE,oBAFN,CAGO,qEACC,oBADR,CAME,4BAKE,mBACA,0BACA,kBACA,cAAe,CALf,WAAY,CAFZ,iBAAkB,CAGlB,iBAAkB,CAKlB,2BAA6B,CAP7B,UAGJ,CALE,wCAYI,cAJN,CAOK,4EACC,oBALN,CAQK,gDACC,kBANN,CAdE,4CAwBI,aAAc,CACd,WAPN,CAlBE,uDA6BI,kBAAmB,CACnB,qBARN,CAWI,4DACE,oBATN,CAzBE,mDA2CI,kBAfN,CA5BE,4DAuCM,cACA,cARR,CAhCE,8CA+CI,sBACA,eAFA,cATN,CArCE,8CAmDI,sBACA,cAXN,CAzCE,0CAwDI,sBACA,cAAe,CACf,kBAZN,CAkBK,gGACC,qBAbN,CAiBE,iCAGE,oBAAqB,CACrB,UAjBJ,ChMrHE,wCAEE,UAAW,CADX,agMwHJ,ChMpHE,uCAGE,UAAW,CACX,UAAW,CAFX,agMuHJ,CAYC,iBpLrIC,oCARA,qBAAsB,CAGtB,sBACA,eACA,0BoL2IA,mBpLzIA,eAAgB,CANhB,QAAS,CACT,SoL0IF,ChMpIE,+CAHE,UAAW,CADX,agMiJJ,ChM7IE,uBAGE,UgM0IJ,CAFE,sBAIE,eAFA,gBACA,eAFA,iBAOJ,CAFI,2BACE,oBAAqB,CAIrB,mBADA,eAAgB,CADhB,kBAIA,sBAAuB,CADvB,kBAAmB,CAJnB,UASN,CADI,mCACE,iBAAkB,CAClB,OAGN,CADM,uCACE,SAGR,CAAO,kDACC,gBACA,aAAc,CACd,kBAER,CACM,2CAEE,aAAc,CADd,QAER,CAEM,+HAEE,SAAR,CArBI,4CAyBI,sBACA,kBADR,CAIO,kDACC,qBAFR,CAMI,2BACE,WAAY,CACZ,+BAJN,CAEI,gCAKI,aAAc,CAEd,WAAY,CADZ,UAHR,CAHI,+GAeM,sBACA,eAHA,iBAAkB,CAClB,OAJV,CAWI,uDACE,wBATN,CAYI,mEACE,SAVN,CAmBI,sNAEI,aAbR,CAgBM,mEACE,SAdR,CAkBI,+BAEE,YAAa,CAGb,eACA,aAAc,CAFd,kBAHA,iBAAkB,CAElB,UAbN,CAqBE,mGAMI,yBACA,kBAHA,WAAY,CACZ,YAFA,iBAhBN,CAsBM,+GACE,sBAnBR,CAsBM,+GACE,oBAnBR,CAKE,qKAuBI,sBApBN,CAHE,uHA2BI,mBApBN,CAPE,uHAgCI,WAAY,CACZ,gBAAiB,CAEjB,UAAY,CADZ,iBAAkB,CAHlB,UAhBN,CAfE,yIAsCM,cAnBR,CA2BU,mPACE,YAxBZ,CA2BU,mPACE,YAxBZ,CA3BE,6GA6DI,cAAe,CADf,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAGR,8BA3BN,CAnCE,+HAiEM,cA1BR,CAvCE,+GAsEI,cA3BN,CA3CE,+HA0EI,aAAc,CAEd,WAAY,CACZ,eAAgB,CAFhB,UAzBN,CAlDE,6GAkFI,qBAAsB,CADtB,oBAAqB,CAOrB,gBAAiB,CAJjB,gBAAiB,CADjB,cAAe,CAIf,eAAgB,CADhB,iBAAkB,CADlB,iBAAkB,CAKlB,sBAAuB,CACvB,kBAAoB,CAFpB,kBAzBN,CAhEE,6KA+FI,kBA3BN,CApEE,qHAmGI,WAAY,CAEZ,YAAa,CACb,iBAAkB,CAFlB,uBAzBN,CAiCI,wCACE,oBAAqB,CAErB,aACA,mBACA,kBAAmB,CAHnB,WA5BN,CAyBE,oDAUI,WAAY,CACZ,QAhCN,CAqBE,yDAgBI,WAAY,CACZ,eAAgB,CAFhB,iBA/BN,CAmCM,gEAKE,gCAGA,WAAY,CAJZ,WAAY,CAEZ,SAAU,CALV,iBAAkB,CAMlB,kBAAoB,CAJpB,UAAW,CADX,SA3BR,CAME,4FAgCI,SAnCN,CAGE,4DAsCI,QAAS,CAIT,SAAU,CANV,iBAAkB,CAClB,OAAQ,CAIR,8BAAgC,CAEhC,kBAAoB,CAHpB,kBAAmB,CADnB,UAhCN,CAPE,mOAmDM,0BAEA,cAAe,CADf,cAAe,CAFf,YAAa,CAIb,kBAAoB,CALpB,UAAW,CADX,UA9BR,CAsCQ,qPACE,UAlCV,CAvBE,+JAgEI,SArCN,CA3BE,gIAsEI,aAAc,CAEd,WAAY,CACZ,wCAAmB,CAJnB,eAAgB,CAEhB,UApCN,CAnCE,yDA6EI,YAAa,CAGb,mBAFA,cAAe,CACf,SAAU,CAEV,iBAvCN,CA1CE,oFAsFI,WAAY,CACZ,aAAc,CAFd,iBAtCN,CA4CO,mFACC,wBA1CR,CAlDE,yFAgGM,WA3CR,CA6CS,+SAGC,YA3CV,CA1DE,6DA2GI,WAAY,CAEZ,cAAe,CADf,uBA7CN,CAqDI,mEACE,iCAlDN,CAoDM,iFAIE,UAAW,CAHX,aAAc,CAEd,QAAS,CADT,OA/CR,CA0CI,qGAYI,aAAc,CACd,SAlDR,CAmCE,iFAuBI,kBAAmB,CADnB,YApDN,CA8BE,qFA0BM,SApDR,CA0BE,qGA+BI,SAAU,CACV,QAAS,CACT,aArDN,CA8DE,0KAGM,eA1DR,CAhUC,uJAmYG,uBAEA,4BAA6B,CAD7B,uDA7DJ,CAvUC,qGA0YG,oCA/DJ,CA3UC,kDA8YG,qCAhEJ,CAoEA,iCACE,GAEE,QAAS,CACT,QAAS,CAET,SAAU,CADV,SAAU,CAHV,OA9DF,CACF,CAqEA,kCACE,GAEE,QAAS,CACT,QAAS,CAET,SAAU,CADV,SAAU,CAHV,OA/DF,CACF,CCveE,gBACE,aDyeJ,CCreK,0DAEC,eAAgB,CADhB,iBDweN,CCjeE,qBACE,aDmeJ,CC7dS,wGAEC,iBAAkB,CADlB,kBDgeV,CC3dS,wGAEC,iBAAkB,CADlB,kBD8dV,CCrdO,gDAEC,cAAe,CADf,kBDwdR,CCldO,6DACC,iBDodR,CC/cO,wDAEC,MAAO,CADP,UDkdR,CC9cS,iEAEC,gBAAiB,CADjB,eDidV,CC1cO,gDACC,oBD4cR,CCtcS,6FAEC,gBAAiB,CADjB,eDycV,CClcO,oDAEC,cAAe,CADf,kBDqcR,CC/bE,6GAGI,SDgcN,CC5bO,+JAEC,SAAU,CADV,SDgcR,CC1bO,qJAEC,SAAU,CADV,SAAU,CAEV,6BD6bR,CCxbO,qJACC,gBAAiB,CAEjB,gBAAiB,CADjB,kBD4bR,CCtbO,+KAEC,iBAAkB,CADlB,kBD0bR,CCpbO,+KAEC,iBAAkB,CADlB,kBDwbR,CClbO,6JAEC,cAAe,CADf,eDsbR,CC9aO,6DACC,kBDgbR,CC3aO,gFAEC,SAAU,CADV,SAAU,CAEV,6BD6aR,CCxaO,wGACC,cAAe,CACf,SD0aR,CExkBA,KAEE,WAAY,CACZ,eAAgB,CAFhB,UAGF,CCNA,SAEI,mBAAqB,CACrB,yBAA0B,CAF1B,WAGJ,CAEA,gBACI,OACJ,CCRA,aAEI,WAAY,CACZ,eAAgB,CAFhB,UAGJ,CAEA,uBACI,UAAW,CAEX,iBAAkB,CADlB,WAAY,CAEZ,YACJ,CAEA,gCAEI,qBAAsB,CAEtB,WAAY,CAHZ,gBAAiB,CAEjB,kBAEJ,CAEA,4BAII,cAAe,CAEf,wBAAyB,CAHzB,iBAAkB,CAElB,aAAc,CAMd,cAAe,CAVf,WAAY,CASZ,cAAe,CAFf,gBAAiB,CANjB,gBAAiB,CAOjB,cAAe,CAFf,cAKJ,CAEA,mCACI,YAAa,CACb,eACJ,CAEA,yCAMI,cAAe,CAHf,WAAY,CAEZ,MAAO,CAJP,iBAAkB,CAGlB,KAAM,CAFN,UAAW,CAKX,YACJ,CAEA,4CACI,YACJ,CAMA,2FACI,WACJ,CAEA,uBAGI,qBAAsB,CADtB,iBAAkB,CADlB,UAAW,CAIX,YAAa,CADb,SAAU,CAEV,UACJ,CAEA,uBAGI,qBAAsB,CADtB,wBAA2B,CAE3B,YAAa,CAHb,eAIJ,CAEA,8BACI,QAAS,CACT,WAAY,CACZ,UACJ,CCjFA,MAEI,WAAY,CACZ,eAAgB,CAFhB,UAGJ,CAEA,YAII,8BAA+B,CAF/B,UAAW,CACX,eAAgB,CAFhB,iBAIJ,CAEA,eAEI,WAAY,CACZ,eAAgB,CAFhB,iBAGJ,CAEA,aAII,0BAA2B,CAF3B,QAAW,CAKX,cAAe,CAJf,MAAS,CAET,aAAc,CAJd,iBAAkB,CAKlB,oBAEJ,CAEA,eAEI,UAAY,CADZ,cAEJ,CAEA,qBACI,yBACJ,CCpCA,UAII,qBAAyB,CAFzB,WAAY,CACZ,eAAgB,CAFhB,UAIJ,CAEA,gBAMI,WAAY,CAHZ,WAAY,CAIZ,SAAU,CANV,cAAe,CACf,KAAM,CAMN,8BAAiC,CAHjC,WAAY,CADZ,UAKJ,CAEA,qBACI,MAAO,CACP,UACJ,CAEA,2BACI,MAAO,CACP,SACJ,CAEA,wBAaI,sBAAuB,CADvB,QAAS,CAGT,UAAW,CADX,cAAe,CAZf,cAAe,CAEf,SAAU,CAHV,iBAAkB,CAIlB,iBAAkB,CAFlB,QAAS,CAQT,8BAAiC,CAJjC,wBAAyB,CAEzB,gBAAiB,CAHjB,qBAAsB,CAItB,UAMJ,CAEA,6BACI,UAEJ,CAEA,6BAWI,kBAAqB,CACrB,8FAA+F,CAC/F,qBAAsB,CAPtB,aAAc,CAEd,SAAY,CALZ,SAAU,CAMV,kBAAmB,CARnB,iBAAkB,CASlB,8BAAiC,CARjC,SAYJ,CAOA,iEAhBI,WAAY,CAEZ,eAAgB,CAHhB,UAqBJ,CAmBA,sBAaI,UAAW,CAXX,gBAAiB,CAEjB,SAAU,CAOV,4BAA6B,CAC7B,mBAAoB,CAXpB,iBAAkB,CAIlB,eAAgB,CAFhB,QAAS,CAOT,8BAAiC,CAJjC,wBAAyB,CAEzB,gBAAiB,CACjB,SAKJ,CAEA,2BACI,UAEJ,CAEA,uBAII,kBAAmB,CAEnB,8BAA+B,CAH/B,WAAY,CAQZ,MAAO,CANP,aAAc,CAGd,uBAAqB,CAPrB,iBAAkB,CASlB,KAAM,CADN,wBAAiB,CAAjB,gBAAiB,CAPjB,UAUJ,CAEA,UAGI,gBAAiB,CACjB,eAAmB,CAFnB,eAAgB,CADhB,YAAa,CAIb,8BACJ,CAEA,UACI,gBAAiB,CACjB,eAAmB,CAEnB,mBAAoB,CADpB,gBAAiB,CAEjB,oBACJ,CAEA,UAGI,0BAAyB,CACzB,yBAAuB,CACvB,yBAAyB,CACzB,uBAAuB,CAEvB,kBAAmB,CACnB,gBAAiB,CARjB,aAAc,CAGd,qBAAuB,CADvB,uBAAyB,CAGzB,sBAAuB,CADvB,wBAAyB,CAEzB,eAAgB,CALhB,oBAQJ,CAEA,aAMI,kBAAmB,CACnB,cAAe,CAEf,cAAe,CAJf,eAAmB,CAGnB,iBAAkB,CAPlB,uBAAyB,CACzB,wBAA0B,CAC1B,eAAgB,CAChB,oBAMJ,CAKA,mBACI,yBACJ,CAEA,iBAII,0BAA2B,CAF3B,QAAW,CAKX,cAAe,CAJf,MAAS,CAET,aAAc,CAJd,iBAAkB,CAKlB,oBAEJ,CAEA,mBAEI,UAAY,CADZ,cAEJ,CAEA,yBACI,yBACJ","sources":["index.css","../node_modules/antd/dist/antd.css","../antd/components/style/core/base.less","../antd/components/style/index.less","../antd/components/style/core/global.less","../antd/components/style/mixins/size.less","../antd/components/style/mixins/clearfix.less","../antd/components/style/core/iconfont.less","../antd/components/style/mixins/iconfont.less","../antd/components/style/mixins/motion.less","../antd/components/style/core/motion/fade.less","../antd/components/style/core/motion/move.less","../antd/components/style/core/motion/other.less","../antd/components/style/core/motion/slide.less","../antd/components/style/core/motion/zoom.less","../antd/components/style/core/motion.less","../antd/components/affix/style/index.less","../antd/components/alert/style/index.less","../antd/components/style/mixins/reset.less","../antd/components/alert/style/rtl.less","../antd/components/anchor/style/index.less","../antd/components/anchor/style/rtl.less","../antd/components/auto-complete/style/index.less","../antd/components/select/style/single.less","../antd/components/select/style/index.less","../antd/components/select/style/multiple.less","../antd/components/select/style/status.less","../antd/components/input/style/mixin.less","../antd/components/style/mixins/compact-item.less","../antd/components/select/style/rtl.less","../antd/components/empty/style/index.less","../antd/components/empty/style/rtl.less","../antd/components/avatar/style/index.less","../antd/components/avatar/style/group.less","../antd/components/avatar/style/rtl.less","../antd/components/popover/style/index.less","../antd/components/style/mixins/rounded-arrow.less","../antd/components/popover/style/rtl.less","../antd/components/back-top/style/index.less","../antd/components/back-top/style/responsive.less","../antd/components/badge/style/index.less","../antd/components/badge/style/ribbon.less","../antd/components/badge/style/rtl.less","../antd/components/breadcrumb/style/index.less","../antd/components/breadcrumb/style/rtl.less","../antd/components/dropdown/style/status.less","../antd/components/dropdown/style/index.less","../antd/components/dropdown/style/rtl.less","../antd/components/button/style/index.less","../antd/components/button/style/mixin.less","../antd/components/button/style/rtl.less","../antd/components/button/style/space-compact.less","../antd/components/style/mixins/compact-item-vertical.less","../antd/components/menu/style/status.less","../antd/components/menu/style/index.less","../antd/components/menu/style/light.less","../antd/components/menu/style/dark.less","../antd/components/menu/style/rtl.less","../antd/components/tooltip/style/index.less","../antd/components/tooltip/style/rtl.less","../antd/components/space/style/index.less","../antd/components/space/style/compact.less","../antd/components/space/style/rtl.less","../antd/components/calendar/style/index.less","../antd/components/calendar/style/rtl.less","../antd/components/date-picker/style/status.less","../antd/components/date-picker/style/index.less","../antd/components/style/mixins/compatibility.less","../antd/components/date-picker/style/panel.less","../antd/components/date-picker/style/rtl.less","../antd/components/tag/style/index.less","../antd/components/tag/style/rtl.less","../antd/components/radio/style/index.less","../antd/components/radio/style/rtl.less","../antd/components/card/style/index.less","../antd/components/card/style/size.less","../antd/components/skeleton/style/index.less","../antd/components/skeleton/style/rtl.less","../antd/components/tabs/style/size.less","../antd/components/tabs/style/index.less","../antd/components/tabs/style/rtl.less","../antd/components/tabs/style/position.less","../antd/components/tabs/style/dropdown.less","../antd/components/tabs/style/card.less","../antd/components/carousel/style/index.less","../antd/components/carousel/style/rtl.less","../antd/components/checkbox/style/mixin.less","../antd/components/cascader/style/index.less","../antd/components/cascader/style/rtl.less","../antd/components/checkbox/style/index.less","../antd/components/checkbox/style/rtl.less","../antd/components/grid/style/index.less","../antd/components/grid/style/mixin.less","../antd/components/grid/style/rtl.less","../antd/components/collapse/style/index.less","../antd/components/collapse/style/rtl.less","../antd/components/comment/style/index.less","../antd/components/comment/style/rtl.less","../antd/components/descriptions/style/index.less","../antd/components/descriptions/style/rtl.less","../antd/components/divider/style/index.less","../antd/components/divider/style/rtl.less","../antd/components/drawer/style/drawer.less","../antd/components/drawer/style/index.less","../antd/components/drawer/style/motion.less","../antd/components/drawer/style/rtl.less","../antd/components/form/style/components.less","../antd/components/form/style/index.less","../antd/components/form/style/inline.less","../antd/components/form/style/horizontal.less","../antd/components/form/style/vertical.less","../antd/components/form/style/rtl.less","../antd/components/form/style/status.less","../antd/components/form/style/mixin.less","../antd/components/image/style/index.less","../antd/components/style/mixins/box.less","../antd/components/style/mixins/modal-mask.less","../antd/components/input-number/style/affix.less","../antd/components/input-number/style/index.less","../antd/components/input-number/style/status.less","../antd/components/input-number/style/rtl.less","../antd/components/input/style/affix.less","../antd/components/input/style/index.less","../antd/components/input/style/rtl.less","../antd/components/input/style/allow-clear.less","../antd/components/input/style/status.less","../antd/components/input/style/search-input.less","../antd/components/input/style/IE11.less","../antd/components/layout/style/index.less","../antd/components/layout/style/light.less","../antd/components/layout/style/rtl.less","../antd/components/list/style/index.less","../antd/components/list/style/bordered.less","../antd/components/list/style/responsive.less","../antd/components/list/style/rtl.less","../antd/components/pagination/style/index.less","../antd/components/pagination/style/rtl.less","../antd/components/spin/style/index.less","../antd/components/spin/style/rtl.less","../antd/components/mentions/style/index.less","../antd/components/mentions/style/status.less","../antd/components/mentions/style/rtl.less","../antd/components/message/style/index.less","../antd/components/message/style/rtl.less","../antd/components/modal/style/modal.less","../antd/components/modal/style/index.less","../antd/components/modal/style/confirm.less","../antd/components/modal/style/rtl.less","../antd/components/notification/style/index.less","../antd/components/notification/style/rtl.less","../antd/components/notification/style/placement.less","../antd/components/page-header/style/index.less","../antd/components/style/mixins/operation-unit.less","../antd/components/page-header/style/rtl.less","../antd/components/popconfirm/style/index.less","../antd/components/progress/style/index.less","../antd/components/progress/style/rtl.less","../antd/components/rate/style/index.less","../antd/components/rate/style/rtl.less","../antd/components/result/style/index.less","../antd/components/result/style/rtl.less","../antd/components/segmented/style/mixins.less","../antd/components/segmented/style/index.less","../antd/components/segmented/style/rtl.less","../antd/components/slider/style/index.less","../antd/components/slider/style/rtl.less","../antd/components/statistic/style/index.less","../antd/components/statistic/style/rtl.less","../antd/components/steps/style/index.less","../antd/components/steps/style/custom-icon.less","../antd/components/steps/style/small.less","../antd/components/steps/style/vertical.less","../antd/components/steps/style/label-placement.less","../antd/components/steps/style/progress-dot.less","../antd/components/steps/style/nav.less","../antd/components/steps/style/rtl.less","../antd/components/steps/style/progress.less","../antd/components/switch/style/index.less","../antd/components/switch/style/rtl.less","../antd/components/table/style/size.less","../antd/components/table/style/index.less","../antd/components/table/style/bordered.less","../antd/components/table/style/radius.less","../antd/components/table/style/rtl.less","../antd/components/tree/style/directory.less","../antd/components/tree/style/index.less","../antd/components/tree/style/mixin.less","../antd/components/tree/style/rtl.less","../antd/components/timeline/style/index.less","../antd/components/timeline/style/rtl.less","../antd/components/transfer/style/customize.less","../antd/components/transfer/style/index.less","../antd/components/transfer/style/status.less","../antd/components/transfer/style/rtl.less","../antd/components/tree-select/style/index.less","../antd/components/typography/style/index.less","../antd/components/style/mixins/typography.less","../antd/components/typography/style/rtl.less","../antd/components/upload/style/index.less","../antd/components/upload/style/rtl.less","App.css","pages/demo/components/NavMenu/NavMenu.css","pages/demo/components/CodeEditor/CodeEditor.css","pages/demo/index.css","pages/examples/index.css"],"sourcesContent":["html, body, #root {\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n::-webkit-scrollbar {\n height: 1px;\n width: 5px;\n}\n::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, .1);\n border-radius: 10px;\n}\n::-webkit-scrollbar-track {\n background: #ededed;\n border-radius: 4px;\n}\n","/*!\n * \n * antd v4.24.14\n * \n * Copyright 2015-present, Alipay, Inc.\n * All rights reserved.\n * \n */\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n[class^=ant-]::-ms-clear,\n[class*= ant-]::-ms-clear,\n[class^=ant-] input::-ms-clear,\n[class*= ant-] input::-ms-clear,\n[class^=ant-] input::-ms-reveal,\n[class*= ant-] input::-ms-reveal {\n display: none;\n}\n/* stylelint-disable property-no-vendor-prefix, at-rule-no-vendor-prefix */\nhtml,\nbody {\n width: 100%;\n height: 100%;\n}\ninput::-ms-clear,\ninput::-ms-reveal {\n display: none;\n}\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n@-ms-viewport {\n width: device-width;\n}\nbody {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n font-variant: tabular-nums;\n line-height: 1.5715;\n background-color: #fff;\n font-feature-settings: 'tnum';\n}\n[tabindex='-1']:focus {\n outline: none !important;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n}\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n border-bottom: 0;\n cursor: help;\n}\naddress {\n margin-bottom: 1em;\n font-style: normal;\n line-height: inherit;\n}\ninput[type='text'],\ninput[type='password'],\ninput[type='number'],\ntextarea {\n -webkit-appearance: none;\n}\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1em;\n}\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\ndt {\n font-weight: 500;\n}\ndd {\n margin-bottom: 0.5em;\n margin-left: 0;\n}\nblockquote {\n margin: 0 0 1em;\n}\ndfn {\n font-style: italic;\n}\nb,\nstrong {\n font-weight: bolder;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\na {\n color: #1890ff;\n text-decoration: none;\n background-color: transparent;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n -webkit-text-decoration-skip: objects;\n}\na:hover {\n color: #40a9ff;\n}\na:active {\n color: #096dd9;\n}\na:active,\na:hover {\n text-decoration: none;\n outline: 0;\n}\na:focus {\n text-decoration: none;\n outline: 0;\n}\na[disabled] {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\npre,\ncode,\nkbd,\nsamp {\n font-size: 1em;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;\n}\npre {\n margin-top: 0;\n margin-bottom: 1em;\n overflow: auto;\n}\nfigure {\n margin: 0 0 1em;\n}\nimg {\n vertical-align: middle;\n border-style: none;\n}\na,\narea,\nbutton,\n[role='button'],\ninput:not([type='range']),\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\ntable {\n border-collapse: collapse;\n}\ncaption {\n padding-top: 0.75em;\n padding-bottom: 0.3em;\n color: rgba(0, 0, 0, 0.45);\n text-align: left;\n caption-side: bottom;\n}\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\nbutton,\ninput {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\nbutton::-moz-focus-inner,\n[type='button']::-moz-focus-inner,\n[type='reset']::-moz-focus-inner,\n[type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\ninput[type='radio'],\ninput[type='checkbox'] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type='date'],\ninput[type='time'],\ninput[type='datetime-local'],\ninput[type='month'] {\n -webkit-appearance: listbox;\n}\ntextarea {\n overflow: auto;\n resize: vertical;\n}\nfieldset {\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: 0.5em;\n padding: 0;\n color: inherit;\n font-size: 1.5em;\n line-height: inherit;\n white-space: normal;\n}\nprogress {\n vertical-align: baseline;\n}\n[type='number']::-webkit-inner-spin-button,\n[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n[type='search'] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n[type='search']::-webkit-search-cancel-button,\n[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\noutput {\n display: inline-block;\n}\nsummary {\n display: list-item;\n}\ntemplate {\n display: none;\n}\n[hidden] {\n display: none !important;\n}\nmark {\n padding: 0.2em;\n background-color: #feffe6;\n}\n::-moz-selection {\n color: #fff;\n background: #1890ff;\n}\n::selection {\n color: #fff;\n background: #1890ff;\n}\n.clearfix::before {\n display: table;\n content: '';\n}\n.clearfix::after {\n display: table;\n clear: both;\n content: '';\n}\n.anticon {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.anticon > * {\n line-height: 1;\n}\n.anticon svg {\n display: inline-block;\n}\n.anticon::before {\n display: none;\n}\n.anticon .anticon-icon {\n display: block;\n}\n.anticon > .anticon {\n line-height: 0;\n vertical-align: 0;\n}\n.anticon[tabindex] {\n cursor: pointer;\n}\n.anticon-spin,\n.anticon-spin::before {\n display: inline-block;\n animation: loadingCircle 1s infinite linear;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-fade-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-fade-enter.ant-fade-enter-active,\n.ant-fade-appear.ant-fade-appear-active {\n animation-name: antFadeIn;\n animation-play-state: running;\n}\n.ant-fade-leave.ant-fade-leave-active {\n animation-name: antFadeOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n opacity: 0;\n animation-timing-function: linear;\n}\n.ant-fade-leave {\n animation-timing-function: linear;\n}\n@keyframes antFadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes antFadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-up-enter.ant-move-up-enter-active,\n.ant-move-up-appear.ant-move-up-appear-active {\n animation-name: antMoveUpIn;\n animation-play-state: running;\n}\n.ant-move-up-leave.ant-move-up-leave-active {\n animation-name: antMoveUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-up-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-down-enter.ant-move-down-enter-active,\n.ant-move-down-appear.ant-move-down-appear-active {\n animation-name: antMoveDownIn;\n animation-play-state: running;\n}\n.ant-move-down-leave.ant-move-down-leave-active {\n animation-name: antMoveDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-down-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-left-enter.ant-move-left-enter-active,\n.ant-move-left-appear.ant-move-left-appear-active {\n animation-name: antMoveLeftIn;\n animation-play-state: running;\n}\n.ant-move-left-leave.ant-move-left-leave-active {\n animation-name: antMoveLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-left-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-right-enter.ant-move-right-enter-active,\n.ant-move-right-appear.ant-move-right-appear-active {\n animation-name: antMoveRightIn;\n animation-play-state: running;\n}\n.ant-move-right-leave.ant-move-right-leave-active {\n animation-name: antMoveRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-right-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n@keyframes antMoveDownIn {\n 0% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveDownOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveLeftIn {\n 0% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveLeftOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveRightIn {\n 0% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveRightOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveUpIn {\n 0% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveUpOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes loadingCircle {\n 100% {\n transform: rotate(360deg);\n }\n}\n[ant-click-animating='true'],\n[ant-click-animating-without-extra-node='true'] {\n position: relative;\n}\nhtml {\n --antd-wave-shadow-color: #1890ff;\n --scroll-bar: 0;\n}\n[ant-click-animating-without-extra-node='true']::after,\n.ant-click-animating-node {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n border-radius: inherit;\n box-shadow: 0 0 0 0 #1890ff;\n box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);\n opacity: 0.2;\n animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n@keyframes waveEffect {\n 100% {\n box-shadow: 0 0 0 #1890ff;\n box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);\n }\n}\n@keyframes fadeEffect {\n 100% {\n opacity: 0;\n }\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-up-enter.ant-slide-up-enter-active,\n.ant-slide-up-appear.ant-slide-up-appear-active {\n animation-name: antSlideUpIn;\n animation-play-state: running;\n}\n.ant-slide-up-leave.ant-slide-up-leave-active {\n animation-name: antSlideUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-up-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-down-enter.ant-slide-down-enter-active,\n.ant-slide-down-appear.ant-slide-down-appear-active {\n animation-name: antSlideDownIn;\n animation-play-state: running;\n}\n.ant-slide-down-leave.ant-slide-down-leave-active {\n animation-name: antSlideDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-down-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-left-enter.ant-slide-left-enter-active,\n.ant-slide-left-appear.ant-slide-left-appear-active {\n animation-name: antSlideLeftIn;\n animation-play-state: running;\n}\n.ant-slide-left-leave.ant-slide-left-leave-active {\n animation-name: antSlideLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-left-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-right-enter.ant-slide-right-enter-active,\n.ant-slide-right-appear.ant-slide-right-appear-active {\n animation-name: antSlideRightIn;\n animation-play-state: running;\n}\n.ant-slide-right-leave.ant-slide-right-leave-active {\n animation-name: antSlideRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-right-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n@keyframes antSlideUpIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideUpOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideDownIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n}\n@keyframes antSlideDownOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n}\n@keyframes antSlideLeftIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideLeftOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideRightIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideRightOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-enter.ant-zoom-enter-active,\n.ant-zoom-appear.ant-zoom-appear-active {\n animation-name: antZoomIn;\n animation-play-state: running;\n}\n.ant-zoom-leave.ant-zoom-leave-active {\n animation-name: antZoomOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-enter-prepare,\n.ant-zoom-appear-prepare {\n transform: none;\n}\n.ant-zoom-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-enter.ant-zoom-big-enter-active,\n.ant-zoom-big-appear.ant-zoom-big-appear-active {\n animation-name: antZoomBigIn;\n animation-play-state: running;\n}\n.ant-zoom-big-leave.ant-zoom-big-leave-active {\n animation-name: antZoomBigOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-enter-prepare,\n.ant-zoom-big-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n animation-duration: 0.1s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-leave {\n animation-duration: 0.1s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active,\n.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active {\n animation-name: antZoomBigIn;\n animation-play-state: running;\n}\n.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active {\n animation-name: antZoomBigOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-fast-enter-prepare,\n.ant-zoom-big-fast-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-fast-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-up-enter.ant-zoom-up-enter-active,\n.ant-zoom-up-appear.ant-zoom-up-appear-active {\n animation-name: antZoomUpIn;\n animation-play-state: running;\n}\n.ant-zoom-up-leave.ant-zoom-up-leave-active {\n animation-name: antZoomUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-up-enter-prepare,\n.ant-zoom-up-appear-prepare {\n transform: none;\n}\n.ant-zoom-up-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-down-enter.ant-zoom-down-enter-active,\n.ant-zoom-down-appear.ant-zoom-down-appear-active {\n animation-name: antZoomDownIn;\n animation-play-state: running;\n}\n.ant-zoom-down-leave.ant-zoom-down-leave-active {\n animation-name: antZoomDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-down-enter-prepare,\n.ant-zoom-down-appear-prepare {\n transform: none;\n}\n.ant-zoom-down-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-left-enter.ant-zoom-left-enter-active,\n.ant-zoom-left-appear.ant-zoom-left-appear-active {\n animation-name: antZoomLeftIn;\n animation-play-state: running;\n}\n.ant-zoom-left-leave.ant-zoom-left-leave-active {\n animation-name: antZoomLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-left-enter-prepare,\n.ant-zoom-left-appear-prepare {\n transform: none;\n}\n.ant-zoom-left-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-right-enter.ant-zoom-right-enter-active,\n.ant-zoom-right-appear.ant-zoom-right-appear-active {\n animation-name: antZoomRightIn;\n animation-play-state: running;\n}\n.ant-zoom-right-leave.ant-zoom-right-leave-active {\n animation-name: antZoomRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-right-enter-prepare,\n.ant-zoom-right-appear-prepare {\n transform: none;\n}\n.ant-zoom-right-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n@keyframes antZoomIn {\n 0% {\n transform: scale(0.2);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.2);\n opacity: 0;\n }\n}\n@keyframes antZoomBigIn {\n 0% {\n transform: scale(0.8);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomBigOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n@keyframes antZoomUpIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n}\n@keyframes antZoomUpOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n}\n@keyframes antZoomLeftIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n}\n@keyframes antZoomLeftOut {\n 0% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomRightIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n}\n@keyframes antZoomRightOut {\n 0% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomDownIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n}\n@keyframes antZoomDownOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n}\n.ant-motion-collapse-legacy {\n overflow: hidden;\n}\n.ant-motion-collapse-legacy-active {\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n.ant-motion-collapse {\n overflow: hidden;\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-affix {\n position: fixed;\n z-index: 10;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-alert {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: flex;\n align-items: center;\n padding: 8px 15px;\n word-wrap: break-word;\n border-radius: 2px;\n}\n.ant-alert-content {\n flex: 1;\n min-width: 0;\n}\n.ant-alert-icon {\n margin-right: 8px;\n}\n.ant-alert-description {\n display: none;\n font-size: 14px;\n line-height: 22px;\n}\n.ant-alert-success {\n background-color: #f6ffed;\n border: 1px solid #b7eb8f;\n}\n.ant-alert-success .ant-alert-icon {\n color: #52c41a;\n}\n.ant-alert-info {\n background-color: #e6f7ff;\n border: 1px solid #91d5ff;\n}\n.ant-alert-info .ant-alert-icon {\n color: #1890ff;\n}\n.ant-alert-warning {\n background-color: #fffbe6;\n border: 1px solid #ffe58f;\n}\n.ant-alert-warning .ant-alert-icon {\n color: #faad14;\n}\n.ant-alert-error {\n background-color: #fff2f0;\n border: 1px solid #ffccc7;\n}\n.ant-alert-error .ant-alert-icon {\n color: #ff4d4f;\n}\n.ant-alert-error .ant-alert-description > pre {\n margin: 0;\n padding: 0;\n}\n.ant-alert-action {\n margin-left: 8px;\n}\n.ant-alert-close-icon {\n margin-left: 8px;\n padding: 0;\n overflow: hidden;\n font-size: 12px;\n line-height: 12px;\n background-color: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n}\n.ant-alert-close-icon .anticon-close {\n color: rgba(0, 0, 0, 0.45);\n transition: color 0.3s;\n}\n.ant-alert-close-icon .anticon-close:hover {\n color: rgba(0, 0, 0, 0.75);\n}\n.ant-alert-close-text {\n color: rgba(0, 0, 0, 0.45);\n transition: color 0.3s;\n}\n.ant-alert-close-text:hover {\n color: rgba(0, 0, 0, 0.75);\n}\n.ant-alert-with-description {\n align-items: flex-start;\n padding: 15px 15px 15px 24px;\n}\n.ant-alert-with-description.ant-alert-no-icon {\n padding: 15px 15px;\n}\n.ant-alert-with-description .ant-alert-icon {\n margin-right: 15px;\n font-size: 24px;\n}\n.ant-alert-with-description .ant-alert-message {\n display: block;\n margin-bottom: 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n}\n.ant-alert-message {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-alert-with-description .ant-alert-description {\n display: block;\n}\n.ant-alert.ant-alert-motion-leave {\n overflow: hidden;\n opacity: 1;\n transition: max-height 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), opacity 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), padding-top 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), padding-bottom 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), margin-bottom 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-alert.ant-alert-motion-leave-active {\n max-height: 0;\n margin-bottom: 0 !important;\n padding-top: 0;\n padding-bottom: 0;\n opacity: 0;\n}\n.ant-alert-banner {\n margin-bottom: 0;\n border: 0;\n border-radius: 0;\n}\n.ant-alert.ant-alert-rtl {\n direction: rtl;\n}\n.ant-alert-rtl .ant-alert-icon {\n margin-right: auto;\n margin-left: 8px;\n}\n.ant-alert-rtl .ant-alert-action {\n margin-right: 8px;\n margin-left: auto;\n}\n.ant-alert-rtl .ant-alert-close-icon {\n margin-right: 8px;\n margin-left: auto;\n}\n.ant-alert-rtl.ant-alert-with-description {\n padding-right: 24px;\n padding-left: 15px;\n}\n.ant-alert-rtl.ant-alert-with-description .ant-alert-icon {\n margin-right: auto;\n margin-left: 15px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-anchor {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n padding-left: 2px;\n}\n.ant-anchor-wrapper {\n margin-left: -4px;\n padding-left: 4px;\n overflow: auto;\n background-color: transparent;\n}\n.ant-anchor-ink {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n}\n.ant-anchor-ink::before {\n position: relative;\n display: block;\n width: 2px;\n height: 100%;\n margin: 0 auto;\n background-color: #f0f0f0;\n content: ' ';\n}\n.ant-anchor-ink-ball {\n position: absolute;\n left: 50%;\n display: none;\n width: 8px;\n height: 8px;\n background-color: #fff;\n border: 2px solid #1890ff;\n border-radius: 8px;\n transform: translateX(-50%);\n transition: top 0.3s ease-in-out;\n}\n.ant-anchor-ink-ball.ant-anchor-ink-ball-visible {\n display: inline-block;\n}\n.ant-anchor-fixed .ant-anchor-ink .ant-anchor-ink-ball {\n display: none;\n}\n.ant-anchor-link {\n padding: 4px 0 4px 16px;\n}\n.ant-anchor-link-title {\n position: relative;\n display: block;\n margin-bottom: 3px;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n white-space: nowrap;\n text-overflow: ellipsis;\n transition: all 0.3s;\n}\n.ant-anchor-link-title:only-child {\n margin-bottom: 0;\n}\n.ant-anchor-link-active > .ant-anchor-link-title {\n color: #1890ff;\n}\n.ant-anchor-link .ant-anchor-link {\n padding-top: 2px;\n padding-bottom: 2px;\n}\n.ant-anchor-rtl {\n direction: rtl;\n}\n.ant-anchor-rtl.ant-anchor-wrapper {\n margin-right: -4px;\n margin-left: 0;\n padding-right: 4px;\n padding-left: 0;\n}\n.ant-anchor-rtl .ant-anchor-ink {\n right: 0;\n left: auto;\n}\n.ant-anchor-rtl .ant-anchor-ink-ball {\n right: 50%;\n left: 0;\n transform: translateX(50%);\n}\n.ant-anchor-rtl .ant-anchor-link {\n padding: 4px 16px 4px 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-select-auto-complete {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-select-auto-complete .ant-select-clear {\n right: 13px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-select-single .ant-select-selector {\n display: flex;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-search {\n position: absolute;\n top: 0;\n right: 11px;\n bottom: 0;\n left: 11px;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-search-input {\n width: 100%;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-item,\n.ant-select-single .ant-select-selector .ant-select-selection-placeholder {\n padding: 0;\n line-height: 30px;\n transition: all 0.3s, visibility 0s;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-item {\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-placeholder {\n transition: none;\n pointer-events: none;\n}\n.ant-select-single .ant-select-selector::after,\n.ant-select-single .ant-select-selector .ant-select-selection-item::after,\n.ant-select-single .ant-select-selector .ant-select-selection-placeholder::after {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n}\n.ant-select-single.ant-select-show-arrow .ant-select-selection-search {\n right: 25px;\n}\n.ant-select-single.ant-select-show-arrow .ant-select-selection-item,\n.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 18px;\n}\n.ant-select-single.ant-select-open .ant-select-selection-item {\n color: #bfbfbf;\n}\n.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {\n width: 100%;\n height: 32px;\n padding: 0 11px;\n}\n.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {\n height: 30px;\n}\n.ant-select-single:not(.ant-select-customize-input) .ant-select-selector::after {\n line-height: 30px;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector::after {\n display: none;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search {\n position: static;\n width: 100%;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder {\n position: absolute;\n right: 0;\n left: 0;\n padding: 0 11px;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder::after {\n display: none;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector {\n height: 40px;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector::after,\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder {\n line-height: 38px;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input {\n height: 38px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector {\n height: 24px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector::after,\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder {\n line-height: 22px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input {\n height: 22px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search {\n right: 7px;\n left: 7px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector {\n padding: 0 7px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search {\n right: 28px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 21px;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector {\n padding: 0 11px;\n}\n/**\n * Do not merge `height` & `line-height` under style with `selection` & `search`,\n * since chrome may update to redesign with its align logic.\n */\n.ant-select-selection-overflow {\n position: relative;\n display: flex;\n flex: auto;\n flex-wrap: wrap;\n max-width: 100%;\n}\n.ant-select-selection-overflow-item {\n flex: none;\n align-self: center;\n max-width: 100%;\n}\n.ant-select-multiple .ant-select-selector {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: 1px 4px;\n}\n.ant-select-show-search.ant-select-multiple .ant-select-selector {\n cursor: text;\n}\n.ant-select-disabled.ant-select-multiple .ant-select-selector {\n background: #f5f5f5;\n cursor: not-allowed;\n}\n.ant-select-multiple .ant-select-selector::after {\n display: inline-block;\n width: 0;\n margin: 2px 0;\n line-height: 24px;\n visibility: hidden;\n content: '\\a0';\n}\n.ant-select-multiple.ant-select-show-arrow .ant-select-selector,\n.ant-select-multiple.ant-select-allow-clear .ant-select-selector {\n padding-right: 24px;\n}\n.ant-select-multiple .ant-select-selection-item {\n position: relative;\n display: flex;\n flex: none;\n box-sizing: border-box;\n max-width: 100%;\n height: 24px;\n margin-top: 2px;\n margin-bottom: 2px;\n line-height: 22px;\n background: #f5f5f5;\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n cursor: default;\n transition: font-size 0.3s, line-height 0.3s, height 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n margin-inline-end: 4px;\n padding-inline-start: 8px;\n padding-inline-end: 4px;\n}\n.ant-select-disabled.ant-select-multiple .ant-select-selection-item {\n color: #bfbfbf;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-select-multiple .ant-select-selection-item-content {\n display: inline-block;\n margin-right: 4px;\n overflow: hidden;\n white-space: pre;\n text-overflow: ellipsis;\n}\n.ant-select-multiple .ant-select-selection-item-remove {\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n display: inline-flex;\n align-items: center;\n color: rgba(0, 0, 0, 0.45);\n font-weight: bold;\n font-size: 10px;\n line-height: inherit;\n cursor: pointer;\n}\n.ant-select-multiple .ant-select-selection-item-remove > * {\n line-height: 1;\n}\n.ant-select-multiple .ant-select-selection-item-remove svg {\n display: inline-block;\n}\n.ant-select-multiple .ant-select-selection-item-remove::before {\n display: none;\n}\n.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon {\n display: block;\n}\n.ant-select-multiple .ant-select-selection-item-remove > .anticon {\n vertical-align: middle;\n}\n.ant-select-multiple .ant-select-selection-item-remove:hover {\n color: rgba(0, 0, 0, 0.75);\n}\n.ant-select-multiple .ant-select-selection-overflow-item + .ant-select-selection-overflow-item .ant-select-selection-search {\n margin-inline-start: 0;\n}\n.ant-select-multiple .ant-select-selection-search {\n position: relative;\n max-width: 100%;\n margin-inline-start: 7px;\n}\n.ant-select-multiple .ant-select-selection-search-input,\n.ant-select-multiple .ant-select-selection-search-mirror {\n height: 24px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n line-height: 24px;\n transition: all 0.3s;\n}\n.ant-select-multiple .ant-select-selection-search-input {\n width: 100%;\n min-width: 4.1px;\n}\n.ant-select-multiple .ant-select-selection-search-mirror {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 999;\n white-space: pre;\n visibility: hidden;\n}\n.ant-select-multiple .ant-select-selection-placeholder {\n position: absolute;\n top: 50%;\n right: 11px;\n left: 11px;\n transform: translateY(-50%);\n transition: all 0.3s;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selector::after {\n line-height: 32px;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selection-item {\n height: 32px;\n line-height: 30px;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selection-search {\n height: 32px;\n line-height: 32px;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,\n.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror {\n height: 32px;\n line-height: 30px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selector::after {\n line-height: 16px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-item {\n height: 16px;\n line-height: 14px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-search {\n height: 16px;\n line-height: 16px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,\n.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror {\n height: 16px;\n line-height: 14px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder {\n left: 7px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-search {\n margin-inline-start: 3px;\n}\n.ant-select-disabled .ant-select-selection-item-remove {\n display: none;\n}\n.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector {\n background-color: #fff;\n border-color: #ff4d4f !important;\n}\n.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-open .ant-select-selector,\n.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-focused .ant-select-selector {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector {\n background-color: #fff;\n border-color: #faad14 !important;\n}\n.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-open .ant-select-selector,\n.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-focused .ant-select-selector {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-select-status-error.ant-select-has-feedback .ant-select-clear,\n.ant-select-status-warning.ant-select-has-feedback .ant-select-clear,\n.ant-select-status-success.ant-select-has-feedback .ant-select-clear,\n.ant-select-status-validating.ant-select-has-feedback .ant-select-clear {\n right: 32px;\n}\n.ant-select-status-error.ant-select-has-feedback .ant-select-selection-selected-value,\n.ant-select-status-warning.ant-select-has-feedback .ant-select-selection-selected-value,\n.ant-select-status-success.ant-select-has-feedback .ant-select-selection-selected-value,\n.ant-select-status-validating.ant-select-has-feedback .ant-select-selection-selected-value {\n padding-right: 42px;\n}\n/* Reset search input style */\n.ant-select {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n cursor: pointer;\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n position: relative;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector input {\n cursor: pointer;\n}\n.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n cursor: text;\n}\n.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input {\n cursor: auto;\n}\n.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n color: rgba(0, 0, 0, 0.25);\n background: #f5f5f5;\n cursor: not-allowed;\n}\n.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n background: #f5f5f5;\n}\n.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input {\n cursor: not-allowed;\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {\n margin: 0;\n padding: 0;\n background: transparent;\n border: none;\n outline: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button {\n display: none;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n}\n.ant-select:not(.ant-select-disabled):hover .ant-select-selector {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-select-selection-item {\n flex: 1;\n overflow: hidden;\n font-weight: normal;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n@media all and (-ms-high-contrast: none) {\n .ant-select-selection-item *::-ms-backdrop,\n .ant-select-selection-item {\n flex: auto;\n }\n}\n.ant-select-selection-placeholder {\n flex: 1;\n overflow: hidden;\n color: #bfbfbf;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n@media all and (-ms-high-contrast: none) {\n .ant-select-selection-placeholder *::-ms-backdrop,\n .ant-select-selection-placeholder {\n flex: auto;\n }\n}\n.ant-select-arrow {\n display: inline-flex;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n position: absolute;\n top: 50%;\n right: 11px;\n display: flex;\n align-items: center;\n height: 12px;\n margin-top: -6px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 12px;\n line-height: 1;\n text-align: center;\n pointer-events: none;\n}\n.ant-select-arrow > * {\n line-height: 1;\n}\n.ant-select-arrow svg {\n display: inline-block;\n}\n.ant-select-arrow::before {\n display: none;\n}\n.ant-select-arrow .ant-select-arrow-icon {\n display: block;\n}\n.ant-select-arrow .anticon {\n vertical-align: top;\n transition: transform 0.3s;\n}\n.ant-select-arrow .anticon > svg {\n vertical-align: top;\n}\n.ant-select-arrow .anticon:not(.ant-select-suffix) {\n pointer-events: auto;\n}\n.ant-select-disabled .ant-select-arrow {\n cursor: not-allowed;\n}\n.ant-select-arrow > *:not(:last-child) {\n margin-inline-end: 8px;\n}\n.ant-select-clear {\n position: absolute;\n top: 50%;\n right: 11px;\n z-index: 1;\n display: inline-block;\n width: 12px;\n height: 12px;\n margin-top: -6px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 12px;\n font-style: normal;\n line-height: 1;\n text-align: center;\n text-transform: none;\n background: #fff;\n cursor: pointer;\n opacity: 0;\n transition: color 0.3s ease, opacity 0.15s ease;\n text-rendering: auto;\n}\n.ant-select-clear::before {\n display: block;\n}\n.ant-select-clear:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-select:hover .ant-select-clear {\n opacity: 1;\n}\n.ant-select-dropdown {\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n box-sizing: border-box;\n padding: 4px 0;\n overflow: hidden;\n font-size: 14px;\n font-variant: initial;\n background-color: #fff;\n border-radius: 2px;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft,\n.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft {\n animation-name: antSlideUpIn;\n}\n.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft,\n.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft {\n animation-name: antSlideDownIn;\n}\n.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft {\n animation-name: antSlideUpOut;\n}\n.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft {\n animation-name: antSlideDownOut;\n}\n.ant-select-dropdown-hidden {\n display: none;\n}\n.ant-select-dropdown-empty {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-select-item-empty {\n position: relative;\n display: block;\n min-height: 32px;\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 22px;\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-select-item {\n position: relative;\n display: block;\n min-height: 32px;\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 22px;\n cursor: pointer;\n transition: background 0.3s ease;\n}\n.ant-select-item-group {\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n cursor: default;\n}\n.ant-select-item-option {\n display: flex;\n}\n.ant-select-item-option-content {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-select-item-option-state {\n flex: none;\n}\n.ant-select-item-option-active:not(.ant-select-item-option-disabled) {\n background-color: #f5f5f5;\n}\n.ant-select-item-option-selected:not(.ant-select-item-option-disabled) {\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n background-color: #e6f7ff;\n}\n.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state {\n color: #1890ff;\n}\n.ant-select-item-option-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-select-item-option-disabled.ant-select-item-option-selected {\n background-color: #f5f5f5;\n}\n.ant-select-item-option-grouped {\n padding-left: 24px;\n}\n.ant-select-lg {\n font-size: 16px;\n}\n.ant-select-borderless .ant-select-selector {\n background-color: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n}\n.ant-select.ant-select-in-form-item {\n width: 100%;\n}\n.ant-select-compact-item:not(.ant-select-compact-last-item) {\n margin-right: -1px;\n}\n.ant-select-compact-item:not(.ant-select-compact-last-item).ant-select-compact-item-rtl {\n margin-right: 0;\n margin-left: -1px;\n}\n.ant-select-compact-item:hover > *,\n.ant-select-compact-item:focus > *,\n.ant-select-compact-item:active > * {\n z-index: 2;\n}\n.ant-select-compact-item.ant-select-focused > * {\n z-index: 2;\n}\n.ant-select-compact-item[disabled] > * {\n z-index: 0;\n}\n.ant-select-compact-item:not(.ant-select-compact-first-item):not(.ant-select-compact-last-item).ant-select > .ant-select-selector {\n border-radius: 0;\n}\n.ant-select-compact-item.ant-select-compact-first-item.ant-select:not(.ant-select-compact-last-item):not(.ant-select-compact-item-rtl) > .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-select-compact-item.ant-select-compact-last-item.ant-select:not(.ant-select-compact-first-item):not(.ant-select-compact-item-rtl) > .ant-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-select-compact-item.ant-select.ant-select-compact-first-item.ant-select-compact-item-rtl:not(.ant-select-compact-last-item) > .ant-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-select-compact-item.ant-select.ant-select-compact-last-item.ant-select-compact-item-rtl:not(.ant-select-compact-first-item) > .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-select-rtl {\n direction: rtl;\n}\n.ant-select-rtl .ant-select-arrow {\n right: initial;\n left: 11px;\n}\n.ant-select-rtl .ant-select-clear {\n right: initial;\n left: 11px;\n}\n.ant-select-dropdown-rtl {\n direction: rtl;\n}\n.ant-select-dropdown-rtl .ant-select-item-option-grouped {\n padding-right: 24px;\n padding-left: 12px;\n}\n.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector,\n.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector {\n padding-right: 4px;\n padding-left: 24px;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-item {\n text-align: right;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content {\n margin-right: 0;\n margin-left: 4px;\n text-align: right;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror {\n right: 0;\n left: auto;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder {\n right: 11px;\n left: auto;\n}\n.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder {\n right: 7px;\n}\n.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,\n.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder {\n right: 0;\n left: 9px;\n text-align: right;\n}\n.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search {\n right: 11px;\n left: 25px;\n}\n.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,\n.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 0;\n padding-left: 18px;\n}\n.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search {\n right: 6px;\n}\n.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,\n.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 0;\n padding-left: 21px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-empty {\n margin: 0 8px;\n font-size: 14px;\n line-height: 1.5715;\n text-align: center;\n}\n.ant-empty-image {\n height: 100px;\n margin-bottom: 8px;\n}\n.ant-empty-image img {\n height: 100%;\n}\n.ant-empty-image svg {\n height: 100%;\n margin: auto;\n}\n.ant-empty-footer {\n margin-top: 16px;\n}\n.ant-empty-normal {\n margin: 32px 0;\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-empty-normal .ant-empty-image {\n height: 40px;\n}\n.ant-empty-small {\n margin: 8px 0;\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-empty-small .ant-empty-image {\n height: 35px;\n}\n.ant-empty-img-default-ellipse {\n fill: #f5f5f5;\n fill-opacity: 0.8;\n}\n.ant-empty-img-default-path-1 {\n fill: #aeb8c2;\n}\n.ant-empty-img-default-path-2 {\n fill: url('#linearGradient-1');\n}\n.ant-empty-img-default-path-3 {\n fill: #f5f5f7;\n}\n.ant-empty-img-default-path-4 {\n fill: #dce0e6;\n}\n.ant-empty-img-default-path-5 {\n fill: #dce0e6;\n}\n.ant-empty-img-default-g {\n fill: #fff;\n}\n.ant-empty-img-simple-ellipse {\n fill: #f5f5f5;\n}\n.ant-empty-img-simple-g {\n stroke: #d9d9d9;\n}\n.ant-empty-img-simple-path {\n fill: #fafafa;\n}\n.ant-empty-rtl {\n direction: rtl;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-avatar {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n overflow: hidden;\n color: #fff;\n white-space: nowrap;\n text-align: center;\n vertical-align: middle;\n background: #ccc;\n width: 32px;\n height: 32px;\n line-height: 32px;\n border-radius: 50%;\n}\n.ant-avatar-image {\n background: transparent;\n}\n.ant-avatar .ant-image-img {\n display: block;\n}\n.ant-avatar-string {\n position: absolute;\n left: 50%;\n transform-origin: 0 center;\n}\n.ant-avatar.ant-avatar-icon {\n font-size: 18px;\n}\n.ant-avatar.ant-avatar-icon > .anticon {\n margin: 0;\n}\n.ant-avatar-lg {\n width: 40px;\n height: 40px;\n line-height: 40px;\n border-radius: 50%;\n}\n.ant-avatar-lg-string {\n position: absolute;\n left: 50%;\n transform-origin: 0 center;\n}\n.ant-avatar-lg.ant-avatar-icon {\n font-size: 24px;\n}\n.ant-avatar-lg.ant-avatar-icon > .anticon {\n margin: 0;\n}\n.ant-avatar-sm {\n width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 50%;\n}\n.ant-avatar-sm-string {\n position: absolute;\n left: 50%;\n transform-origin: 0 center;\n}\n.ant-avatar-sm.ant-avatar-icon {\n font-size: 14px;\n}\n.ant-avatar-sm.ant-avatar-icon > .anticon {\n margin: 0;\n}\n.ant-avatar-square {\n border-radius: 2px;\n}\n.ant-avatar > img {\n display: block;\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.ant-avatar-group {\n display: inline-flex;\n}\n.ant-avatar-group .ant-avatar {\n border: 1px solid #fff;\n}\n.ant-avatar-group .ant-avatar:not(:first-child) {\n margin-left: -8px;\n}\n.ant-avatar-group-popover .ant-avatar + .ant-avatar {\n margin-left: 3px;\n}\n.ant-avatar-group-rtl .ant-avatar:not(:first-child) {\n margin-right: -8px;\n margin-left: 0;\n}\n.ant-avatar-group-popover.ant-popover-rtl .ant-avatar + .ant-avatar {\n margin-right: 3px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-popover {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1030;\n max-width: 100vw;\n font-weight: normal;\n white-space: normal;\n text-align: left;\n cursor: auto;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n}\n.ant-popover-content {\n position: relative;\n}\n.ant-popover::after {\n position: absolute;\n background: rgba(255, 255, 255, 0.01);\n content: '';\n}\n.ant-popover-hidden {\n display: none;\n}\n.ant-popover-placement-top,\n.ant-popover-placement-topLeft,\n.ant-popover-placement-topRight {\n padding-bottom: 15.3137085px;\n}\n.ant-popover-placement-right,\n.ant-popover-placement-rightTop,\n.ant-popover-placement-rightBottom {\n padding-left: 15.3137085px;\n}\n.ant-popover-placement-bottom,\n.ant-popover-placement-bottomLeft,\n.ant-popover-placement-bottomRight {\n padding-top: 15.3137085px;\n}\n.ant-popover-placement-left,\n.ant-popover-placement-leftTop,\n.ant-popover-placement-leftBottom {\n padding-right: 15.3137085px;\n}\n.ant-popover-inner {\n background-color: #fff;\n background-clip: padding-box;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .ant-popover {\n /* IE10+ */\n }\n .ant-popover-inner {\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n }\n}\n.ant-popover-title {\n min-width: 177px;\n min-height: 32px;\n margin: 0;\n padding: 5px 16px 4px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-popover-inner-content {\n width: -moz-max-content;\n width: max-content;\n max-width: 100%;\n padding: 12px 16px;\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-popover-message {\n display: flex;\n padding: 4px 0 12px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-popover-message-icon {\n display: inline-block;\n margin-right: 8px;\n color: #faad14;\n font-size: 14px;\n}\n.ant-popover-buttons {\n margin-bottom: 4px;\n text-align: right;\n}\n.ant-popover-buttons button:not(:first-child) {\n margin-left: 8px;\n}\n.ant-popover-arrow {\n position: absolute;\n display: block;\n width: 22px;\n height: 22px;\n overflow: hidden;\n background: transparent;\n pointer-events: none;\n}\n.ant-popover-arrow-content {\n --antd-arrow-background-color: #fff;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n width: 11.3137085px;\n height: 11.3137085px;\n margin: auto;\n content: '';\n pointer-events: auto;\n border-radius: 0 0 2px;\n pointer-events: none;\n}\n.ant-popover-arrow-content::before {\n position: absolute;\n top: -11.3137085px;\n left: -11.3137085px;\n width: 33.9411255px;\n height: 33.9411255px;\n background: var(--antd-arrow-background-color);\n background-repeat: no-repeat;\n background-position: -10px -10px;\n content: '';\n -webkit-clip-path: inset(33% 33%);\n clip-path: inset(33% 33%);\n -webkit-clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n}\n.ant-popover-placement-top .ant-popover-arrow,\n.ant-popover-placement-topLeft .ant-popover-arrow,\n.ant-popover-placement-topRight .ant-popover-arrow {\n bottom: 0;\n transform: translateY(100%);\n}\n.ant-popover-placement-top .ant-popover-arrow-content,\n.ant-popover-placement-topLeft .ant-popover-arrow-content,\n.ant-popover-placement-topRight .ant-popover-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateY(-11px) rotate(45deg);\n}\n.ant-popover-placement-top .ant-popover-arrow {\n left: 50%;\n transform: translateY(100%) translateX(-50%);\n}\n.ant-popover-placement-topLeft .ant-popover-arrow {\n left: 16px;\n}\n.ant-popover-placement-topRight .ant-popover-arrow {\n right: 16px;\n}\n.ant-popover-placement-right .ant-popover-arrow,\n.ant-popover-placement-rightTop .ant-popover-arrow,\n.ant-popover-placement-rightBottom .ant-popover-arrow {\n left: 0;\n transform: translateX(-100%);\n}\n.ant-popover-placement-right .ant-popover-arrow-content,\n.ant-popover-placement-rightTop .ant-popover-arrow-content,\n.ant-popover-placement-rightBottom .ant-popover-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(11px) rotate(135deg);\n}\n.ant-popover-placement-right .ant-popover-arrow {\n top: 50%;\n transform: translateX(-100%) translateY(-50%);\n}\n.ant-popover-placement-rightTop .ant-popover-arrow {\n top: 12px;\n}\n.ant-popover-placement-rightBottom .ant-popover-arrow {\n bottom: 12px;\n}\n.ant-popover-placement-bottom .ant-popover-arrow,\n.ant-popover-placement-bottomLeft .ant-popover-arrow,\n.ant-popover-placement-bottomRight .ant-popover-arrow {\n top: 0;\n transform: translateY(-100%);\n}\n.ant-popover-placement-bottom .ant-popover-arrow-content,\n.ant-popover-placement-bottomLeft .ant-popover-arrow-content,\n.ant-popover-placement-bottomRight .ant-popover-arrow-content {\n box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.06);\n transform: translateY(11px) rotate(-135deg);\n}\n.ant-popover-placement-bottom .ant-popover-arrow {\n left: 50%;\n transform: translateY(-100%) translateX(-50%);\n}\n.ant-popover-placement-bottomLeft .ant-popover-arrow {\n left: 16px;\n}\n.ant-popover-placement-bottomRight .ant-popover-arrow {\n right: 16px;\n}\n.ant-popover-placement-left .ant-popover-arrow,\n.ant-popover-placement-leftTop .ant-popover-arrow,\n.ant-popover-placement-leftBottom .ant-popover-arrow {\n right: 0;\n transform: translateX(100%);\n}\n.ant-popover-placement-left .ant-popover-arrow-content,\n.ant-popover-placement-leftTop .ant-popover-arrow-content,\n.ant-popover-placement-leftBottom .ant-popover-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(-11px) rotate(-45deg);\n}\n.ant-popover-placement-left .ant-popover-arrow {\n top: 50%;\n transform: translateX(100%) translateY(-50%);\n}\n.ant-popover-placement-leftTop .ant-popover-arrow {\n top: 12px;\n}\n.ant-popover-placement-leftBottom .ant-popover-arrow {\n bottom: 12px;\n}\n.ant-popover-pink .ant-popover-inner {\n background-color: #eb2f96;\n}\n.ant-popover-pink .ant-popover-arrow-content {\n background-color: #eb2f96;\n}\n.ant-popover-magenta .ant-popover-inner {\n background-color: #eb2f96;\n}\n.ant-popover-magenta .ant-popover-arrow-content {\n background-color: #eb2f96;\n}\n.ant-popover-red .ant-popover-inner {\n background-color: #f5222d;\n}\n.ant-popover-red .ant-popover-arrow-content {\n background-color: #f5222d;\n}\n.ant-popover-volcano .ant-popover-inner {\n background-color: #fa541c;\n}\n.ant-popover-volcano .ant-popover-arrow-content {\n background-color: #fa541c;\n}\n.ant-popover-orange .ant-popover-inner {\n background-color: #fa8c16;\n}\n.ant-popover-orange .ant-popover-arrow-content {\n background-color: #fa8c16;\n}\n.ant-popover-yellow .ant-popover-inner {\n background-color: #fadb14;\n}\n.ant-popover-yellow .ant-popover-arrow-content {\n background-color: #fadb14;\n}\n.ant-popover-gold .ant-popover-inner {\n background-color: #faad14;\n}\n.ant-popover-gold .ant-popover-arrow-content {\n background-color: #faad14;\n}\n.ant-popover-cyan .ant-popover-inner {\n background-color: #13c2c2;\n}\n.ant-popover-cyan .ant-popover-arrow-content {\n background-color: #13c2c2;\n}\n.ant-popover-lime .ant-popover-inner {\n background-color: #a0d911;\n}\n.ant-popover-lime .ant-popover-arrow-content {\n background-color: #a0d911;\n}\n.ant-popover-green .ant-popover-inner {\n background-color: #52c41a;\n}\n.ant-popover-green .ant-popover-arrow-content {\n background-color: #52c41a;\n}\n.ant-popover-blue .ant-popover-inner {\n background-color: #1890ff;\n}\n.ant-popover-blue .ant-popover-arrow-content {\n background-color: #1890ff;\n}\n.ant-popover-geekblue .ant-popover-inner {\n background-color: #2f54eb;\n}\n.ant-popover-geekblue .ant-popover-arrow-content {\n background-color: #2f54eb;\n}\n.ant-popover-purple .ant-popover-inner {\n background-color: #722ed1;\n}\n.ant-popover-purple .ant-popover-arrow-content {\n background-color: #722ed1;\n}\n.ant-popover-rtl {\n direction: rtl;\n text-align: right;\n}\n.ant-popover-rtl .ant-popover-message-icon {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-popover-rtl .ant-popover-message-title {\n padding-left: 16px;\n}\n.ant-popover-rtl .ant-popover-buttons {\n text-align: left;\n}\n.ant-popover-rtl .ant-popover-buttons button {\n margin-right: 8px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-back-top {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: fixed;\n right: 100px;\n bottom: 50px;\n z-index: 10;\n width: 40px;\n height: 40px;\n cursor: pointer;\n}\n.ant-back-top:empty {\n display: none;\n}\n.ant-back-top-rtl {\n right: auto;\n left: 100px;\n direction: rtl;\n}\n.ant-back-top-content {\n width: 40px;\n height: 40px;\n overflow: hidden;\n color: #fff;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.45);\n border-radius: 20px;\n transition: all 0.3s;\n}\n.ant-back-top-content:hover {\n background-color: rgba(0, 0, 0, 0.85);\n transition: all 0.3s;\n}\n.ant-back-top-icon {\n font-size: 24px;\n line-height: 40px;\n}\n@media screen and (max-width: 768px) {\n .ant-back-top {\n right: 60px;\n }\n .ant-back-top-rtl {\n right: auto;\n left: 60px;\n }\n}\n@media screen and (max-width: 480px) {\n .ant-back-top {\n right: 20px;\n }\n .ant-back-top-rtl {\n right: auto;\n left: 20px;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-badge {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n line-height: 1;\n}\n.ant-badge-count {\n z-index: auto;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n color: #fff;\n font-weight: normal;\n font-size: 12px;\n line-height: 20px;\n white-space: nowrap;\n text-align: center;\n background: #ff4d4f;\n border-radius: 10px;\n box-shadow: 0 0 0 1px #fff;\n}\n.ant-badge-count a,\n.ant-badge-count a:hover {\n color: #fff;\n}\n.ant-badge-count-sm {\n min-width: 14px;\n height: 14px;\n padding: 0;\n font-size: 12px;\n line-height: 14px;\n border-radius: 7px;\n}\n.ant-badge-multiple-words {\n padding: 0 8px;\n}\n.ant-badge-dot {\n z-index: auto;\n width: 6px;\n min-width: 6px;\n height: 6px;\n background: #ff4d4f;\n border-radius: 100%;\n box-shadow: 0 0 0 1px #fff;\n}\n.ant-badge-dot.ant-scroll-number {\n transition: background 1.5s;\n}\n.ant-badge-count,\n.ant-badge-dot,\n.ant-badge .ant-scroll-number-custom-component {\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n transform-origin: 100% 0%;\n}\n.ant-badge-count.anticon-spin,\n.ant-badge-dot.anticon-spin,\n.ant-badge .ant-scroll-number-custom-component.anticon-spin {\n animation: antBadgeLoadingCircle 1s infinite linear;\n}\n.ant-badge-status {\n line-height: inherit;\n vertical-align: baseline;\n}\n.ant-badge-status-dot {\n position: relative;\n top: -1px;\n display: inline-block;\n width: 6px;\n height: 6px;\n vertical-align: middle;\n border-radius: 50%;\n}\n.ant-badge-status-success {\n background-color: #52c41a;\n}\n.ant-badge-status-processing {\n position: relative;\n background-color: #1890ff;\n}\n.ant-badge-status-processing::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 50%;\n animation: antStatusProcessing 1.2s infinite ease-in-out;\n content: '';\n}\n.ant-badge-status-default {\n background-color: #d9d9d9;\n}\n.ant-badge-status-error {\n background-color: #ff4d4f;\n}\n.ant-badge-status-warning {\n background-color: #faad14;\n}\n.ant-badge-status-pink {\n background: #eb2f96;\n}\n.ant-badge-status-magenta {\n background: #eb2f96;\n}\n.ant-badge-status-red {\n background: #f5222d;\n}\n.ant-badge-status-volcano {\n background: #fa541c;\n}\n.ant-badge-status-orange {\n background: #fa8c16;\n}\n.ant-badge-status-yellow {\n background: #fadb14;\n}\n.ant-badge-status-gold {\n background: #faad14;\n}\n.ant-badge-status-cyan {\n background: #13c2c2;\n}\n.ant-badge-status-lime {\n background: #a0d911;\n}\n.ant-badge-status-green {\n background: #52c41a;\n}\n.ant-badge-status-blue {\n background: #1890ff;\n}\n.ant-badge-status-geekblue {\n background: #2f54eb;\n}\n.ant-badge-status-purple {\n background: #722ed1;\n}\n.ant-badge-status-text {\n margin-left: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-badge-zoom-appear,\n.ant-badge-zoom-enter {\n animation: antZoomBadgeIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\n animation-fill-mode: both;\n}\n.ant-badge-zoom-leave {\n animation: antZoomBadgeOut 0.3s cubic-bezier(0.71, -0.46, 0.88, 0.6);\n animation-fill-mode: both;\n}\n.ant-badge-not-a-wrapper .ant-badge-zoom-appear,\n.ant-badge-not-a-wrapper .ant-badge-zoom-enter {\n animation: antNoWrapperZoomBadgeIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\n}\n.ant-badge-not-a-wrapper .ant-badge-zoom-leave {\n animation: antNoWrapperZoomBadgeOut 0.3s cubic-bezier(0.71, -0.46, 0.88, 0.6);\n}\n.ant-badge-not-a-wrapper:not(.ant-badge-status) {\n vertical-align: middle;\n}\n.ant-badge-not-a-wrapper .ant-scroll-number-custom-component,\n.ant-badge-not-a-wrapper .ant-badge-count {\n transform: none;\n}\n.ant-badge-not-a-wrapper .ant-scroll-number-custom-component,\n.ant-badge-not-a-wrapper .ant-scroll-number {\n position: relative;\n top: auto;\n display: block;\n transform-origin: 50% 50%;\n}\n@keyframes antStatusProcessing {\n 0% {\n transform: scale(0.8);\n opacity: 0.5;\n }\n 100% {\n transform: scale(2.4);\n opacity: 0;\n }\n}\n.ant-scroll-number {\n overflow: hidden;\n direction: ltr;\n}\n.ant-scroll-number-only {\n position: relative;\n display: inline-block;\n height: 20px;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n /* stylelint-disable property-no-vendor-prefix */\n -webkit-transform-style: preserve-3d;\n -webkit-backface-visibility: hidden;\n /* stylelint-enable property-no-vendor-prefix */\n}\n.ant-scroll-number-only > p.ant-scroll-number-only-unit {\n height: 20px;\n margin: 0;\n /* stylelint-disable property-no-vendor-prefix */\n -webkit-transform-style: preserve-3d;\n -webkit-backface-visibility: hidden;\n /* stylelint-enable property-no-vendor-prefix */\n}\n.ant-scroll-number-symbol {\n vertical-align: top;\n}\n@keyframes antZoomBadgeIn {\n 0% {\n transform: scale(0) translate(50%, -50%);\n opacity: 0;\n }\n 100% {\n transform: scale(1) translate(50%, -50%);\n }\n}\n@keyframes antZoomBadgeOut {\n 0% {\n transform: scale(1) translate(50%, -50%);\n }\n 100% {\n transform: scale(0) translate(50%, -50%);\n opacity: 0;\n }\n}\n@keyframes antNoWrapperZoomBadgeIn {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n }\n}\n@keyframes antNoWrapperZoomBadgeOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0);\n opacity: 0;\n }\n}\n@keyframes antBadgeLoadingCircle {\n 0% {\n transform-origin: 50%;\n }\n 100% {\n transform: translate(50%, -50%) rotate(360deg);\n transform-origin: 50%;\n }\n}\n.ant-ribbon-wrapper {\n position: relative;\n}\n.ant-ribbon {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: 8px;\n height: 22px;\n padding: 0 8px;\n color: #fff;\n line-height: 22px;\n white-space: nowrap;\n background-color: #1890ff;\n border-radius: 2px;\n}\n.ant-ribbon-text {\n color: #fff;\n}\n.ant-ribbon-corner {\n position: absolute;\n top: 100%;\n width: 8px;\n height: 8px;\n color: currentcolor;\n border: 4px solid;\n transform: scaleY(0.75);\n transform-origin: top;\n}\n.ant-ribbon-corner::after {\n position: absolute;\n top: -4px;\n left: -4px;\n width: inherit;\n height: inherit;\n color: rgba(0, 0, 0, 0.25);\n border: inherit;\n content: '';\n}\n.ant-ribbon-color-pink {\n color: #eb2f96;\n background: #eb2f96;\n}\n.ant-ribbon-color-magenta {\n color: #eb2f96;\n background: #eb2f96;\n}\n.ant-ribbon-color-red {\n color: #f5222d;\n background: #f5222d;\n}\n.ant-ribbon-color-volcano {\n color: #fa541c;\n background: #fa541c;\n}\n.ant-ribbon-color-orange {\n color: #fa8c16;\n background: #fa8c16;\n}\n.ant-ribbon-color-yellow {\n color: #fadb14;\n background: #fadb14;\n}\n.ant-ribbon-color-gold {\n color: #faad14;\n background: #faad14;\n}\n.ant-ribbon-color-cyan {\n color: #13c2c2;\n background: #13c2c2;\n}\n.ant-ribbon-color-lime {\n color: #a0d911;\n background: #a0d911;\n}\n.ant-ribbon-color-green {\n color: #52c41a;\n background: #52c41a;\n}\n.ant-ribbon-color-blue {\n color: #1890ff;\n background: #1890ff;\n}\n.ant-ribbon-color-geekblue {\n color: #2f54eb;\n background: #2f54eb;\n}\n.ant-ribbon-color-purple {\n color: #722ed1;\n background: #722ed1;\n}\n.ant-ribbon.ant-ribbon-placement-end {\n right: -8px;\n border-bottom-right-radius: 0;\n}\n.ant-ribbon.ant-ribbon-placement-end .ant-ribbon-corner {\n right: 0;\n border-color: currentcolor transparent transparent currentcolor;\n}\n.ant-ribbon.ant-ribbon-placement-start {\n left: -8px;\n border-bottom-left-radius: 0;\n}\n.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner {\n left: 0;\n border-color: currentcolor currentcolor transparent transparent;\n}\n.ant-badge-rtl {\n direction: rtl;\n}\n.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-count,\n.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-dot,\n.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component {\n right: auto;\n left: 0;\n direction: ltr;\n transform: translate(-50%, -50%);\n transform-origin: 0% 0%;\n}\n.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component {\n right: auto;\n left: 0;\n transform: translate(-50%, -50%);\n transform-origin: 0% 0%;\n}\n.ant-badge-rtl .ant-badge-status-text {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-badge:not(.ant-badge-not-a-wrapper).ant-badge-rtl .ant-badge-zoom-appear,\n.ant-badge:not(.ant-badge-not-a-wrapper).ant-badge-rtl .ant-badge-zoom-enter {\n animation-name: antZoomBadgeInRtl;\n}\n.ant-badge:not(.ant-badge-not-a-wrapper).ant-badge-rtl .ant-badge-zoom-leave {\n animation-name: antZoomBadgeOutRtl;\n}\n.ant-ribbon-rtl {\n direction: rtl;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-end {\n right: unset;\n left: -8px;\n border-bottom-right-radius: 2px;\n border-bottom-left-radius: 0;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner {\n right: unset;\n left: 0;\n border-color: currentcolor currentcolor transparent transparent;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner::after {\n border-color: currentcolor currentcolor transparent transparent;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-start {\n right: -8px;\n left: unset;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 2px;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner {\n right: 0;\n left: unset;\n border-color: currentcolor transparent transparent currentcolor;\n}\n.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner::after {\n border-color: currentcolor transparent transparent currentcolor;\n}\n@keyframes antZoomBadgeInRtl {\n 0% {\n transform: scale(0) translate(-50%, -50%);\n opacity: 0;\n }\n 100% {\n transform: scale(1) translate(-50%, -50%);\n }\n}\n@keyframes antZoomBadgeOutRtl {\n 0% {\n transform: scale(1) translate(-50%, -50%);\n }\n 100% {\n transform: scale(0) translate(-50%, -50%);\n opacity: 0;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-breadcrumb {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-breadcrumb .anticon {\n font-size: 14px;\n}\n.ant-breadcrumb ol {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-breadcrumb a {\n color: rgba(0, 0, 0, 0.45);\n transition: color 0.3s;\n}\n.ant-breadcrumb a:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-breadcrumb li:last-child {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-breadcrumb li:last-child a {\n color: rgba(0, 0, 0, 0.85);\n}\nli:last-child > .ant-breadcrumb-separator {\n display: none;\n}\n.ant-breadcrumb-separator {\n margin: 0 8px;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-breadcrumb-link > .anticon + span,\n.ant-breadcrumb-link > .anticon + a {\n margin-left: 4px;\n}\n.ant-breadcrumb-overlay-link > .anticon {\n margin-left: 4px;\n}\n.ant-breadcrumb-rtl {\n direction: rtl;\n}\n.ant-breadcrumb-rtl::before {\n display: table;\n content: '';\n}\n.ant-breadcrumb-rtl::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-breadcrumb-rtl > span {\n float: right;\n}\n.ant-breadcrumb-rtl .ant-breadcrumb-link > .anticon + span,\n.ant-breadcrumb-rtl .ant-breadcrumb-link > .anticon + a {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link > .anticon {\n margin-right: 4px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-dropdown-menu-item.ant-dropdown-menu-item-danger {\n color: #ff4d4f;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover {\n color: #fff;\n background-color: #ff4d4f;\n}\n.ant-dropdown {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n display: block;\n}\n.ant-dropdown::before {\n position: absolute;\n top: -4px;\n right: 0;\n bottom: -4px;\n left: -7px;\n z-index: -9999;\n opacity: 0.0001;\n content: ' ';\n}\n.ant-dropdown-wrap {\n position: relative;\n}\n.ant-dropdown-wrap .ant-btn > .anticon-down {\n font-size: 10px;\n}\n.ant-dropdown-wrap .anticon-down::before {\n transition: transform 0.2s;\n}\n.ant-dropdown-wrap-open .anticon-down::before {\n transform: rotate(180deg);\n}\n.ant-dropdown-hidden,\n.ant-dropdown-menu-hidden,\n.ant-dropdown-menu-submenu-hidden {\n display: none;\n}\n.ant-dropdown-show-arrow.ant-dropdown-placement-topLeft,\n.ant-dropdown-show-arrow.ant-dropdown-placement-top,\n.ant-dropdown-show-arrow.ant-dropdown-placement-topRight {\n padding-bottom: 15.3137085px;\n}\n.ant-dropdown-show-arrow.ant-dropdown-placement-bottomLeft,\n.ant-dropdown-show-arrow.ant-dropdown-placement-bottom,\n.ant-dropdown-show-arrow.ant-dropdown-placement-bottomRight {\n padding-top: 15.3137085px;\n}\n.ant-dropdown-arrow {\n position: absolute;\n z-index: 1;\n display: block;\n width: 11.3137085px;\n height: 11.3137085px;\n border-radius: 0 0 2px;\n pointer-events: none;\n}\n.ant-dropdown-arrow::before {\n position: absolute;\n top: -11.3137085px;\n left: -11.3137085px;\n width: 33.9411255px;\n height: 33.9411255px;\n background: #fff;\n background-repeat: no-repeat;\n background-position: -10px -10px;\n content: '';\n -webkit-clip-path: inset(33% 33%);\n clip-path: inset(33% 33%);\n -webkit-clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n}\n.ant-dropdown-placement-top > .ant-dropdown-arrow,\n.ant-dropdown-placement-topLeft > .ant-dropdown-arrow,\n.ant-dropdown-placement-topRight > .ant-dropdown-arrow {\n bottom: 10px;\n box-shadow: 3px 3px 7px -3px rgba(0, 0, 0, 0.1);\n transform: rotate(45deg);\n}\n.ant-dropdown-placement-top > .ant-dropdown-arrow {\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n.ant-dropdown-placement-topLeft > .ant-dropdown-arrow {\n left: 16px;\n}\n.ant-dropdown-placement-topRight > .ant-dropdown-arrow {\n right: 16px;\n}\n.ant-dropdown-placement-bottom > .ant-dropdown-arrow,\n.ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow,\n.ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {\n top: 9.41421356px;\n box-shadow: 2px 2px 5px -2px rgba(0, 0, 0, 0.1);\n transform: rotate(-135deg) translateY(-0.5px);\n}\n.ant-dropdown-placement-bottom > .ant-dropdown-arrow {\n left: 50%;\n transform: translateX(-50%) rotate(-135deg) translateY(-0.5px);\n}\n.ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow {\n left: 16px;\n}\n.ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {\n right: 16px;\n}\n.ant-dropdown-menu {\n position: relative;\n margin: 0;\n padding: 4px 0;\n text-align: left;\n list-style-type: none;\n background-color: #fff;\n background-clip: padding-box;\n border-radius: 2px;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-dropdown-menu-item-group-title {\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.45);\n transition: all 0.3s;\n}\n.ant-dropdown-menu-submenu-popup {\n position: absolute;\n z-index: 1050;\n background: transparent;\n box-shadow: none;\n transform-origin: 0 0;\n}\n.ant-dropdown-menu-submenu-popup ul,\n.ant-dropdown-menu-submenu-popup li {\n list-style: none;\n}\n.ant-dropdown-menu-submenu-popup ul {\n margin-right: 0.3em;\n margin-left: 0.3em;\n}\n.ant-dropdown-menu-item {\n position: relative;\n display: flex;\n align-items: center;\n}\n.ant-dropdown-menu-item-icon {\n min-width: 12px;\n margin-right: 8px;\n font-size: 12px;\n}\n.ant-dropdown-menu-title-content {\n flex: auto;\n}\n.ant-dropdown-menu-title-content > a {\n color: inherit;\n transition: all 0.3s;\n}\n.ant-dropdown-menu-title-content > a:hover {\n color: inherit;\n}\n.ant-dropdown-menu-title-content > a::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n content: '';\n}\n.ant-dropdown-menu-item,\n.ant-dropdown-menu-submenu-title {\n clear: both;\n margin: 0;\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 22px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-dropdown-menu-item-selected,\n.ant-dropdown-menu-submenu-title-selected {\n color: #1890ff;\n background-color: #e6f7ff;\n}\n.ant-dropdown-menu-item:hover,\n.ant-dropdown-menu-submenu-title:hover,\n.ant-dropdown-menu-item.ant-dropdown-menu-item-active,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-active,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-active,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-active {\n background-color: #f5f5f5;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled:hover,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled:hover,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled:hover,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n background-color: #fff;\n cursor: not-allowed;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled a,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled a,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled a,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled a {\n pointer-events: none;\n}\n.ant-dropdown-menu-item-divider,\n.ant-dropdown-menu-submenu-title-divider {\n height: 1px;\n margin: 4px 0;\n overflow: hidden;\n line-height: 0;\n background-color: #f0f0f0;\n}\n.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,\n.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon {\n position: absolute;\n right: 8px;\n}\n.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,\n.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon {\n margin-right: 0 !important;\n color: rgba(0, 0, 0, 0.45);\n font-size: 10px;\n font-style: normal;\n}\n.ant-dropdown-menu-item-group-list {\n margin: 0 8px;\n padding: 0;\n list-style: none;\n}\n.ant-dropdown-menu-submenu-title {\n padding-right: 24px;\n}\n.ant-dropdown-menu-submenu-vertical {\n position: relative;\n}\n.ant-dropdown-menu-submenu-vertical > .ant-dropdown-menu {\n position: absolute;\n top: 0;\n left: 100%;\n min-width: 100%;\n margin-left: 4px;\n transform-origin: 0 0;\n}\n.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,\n.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon {\n color: rgba(0, 0, 0, 0.25);\n background-color: #fff;\n cursor: not-allowed;\n}\n.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title {\n color: #1890ff;\n}\n.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,\n.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,\n.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottom,\n.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottom,\n.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight,\n.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight {\n animation-name: antSlideUpIn;\n}\n.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,\n.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,\n.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-top,\n.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-top,\n.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight,\n.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight {\n animation-name: antSlideDownIn;\n}\n.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,\n.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottom,\n.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight {\n animation-name: antSlideUpOut;\n}\n.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,\n.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-top,\n.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight {\n animation-name: antSlideDownOut;\n}\n.ant-dropdown-trigger > .anticon.anticon-down,\n.ant-dropdown-link > .anticon.anticon-down,\n.ant-dropdown-button > .anticon.anticon-down {\n font-size: 10px;\n vertical-align: baseline;\n}\n.ant-dropdown-button {\n white-space: nowrap;\n}\n.ant-dropdown-button.ant-btn-group > .ant-btn-loading,\n.ant-dropdown-button.ant-btn-group > .ant-btn-loading + .ant-btn {\n cursor: default;\n pointer-events: none;\n}\n.ant-dropdown-button.ant-btn-group > .ant-btn-loading + .ant-btn::before {\n display: block;\n}\n.ant-dropdown-button.ant-btn-group > .ant-btn:last-child:not(:first-child):not(.ant-btn-icon-only) {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-dropdown-menu-dark,\n.ant-dropdown-menu-dark .ant-dropdown-menu {\n background: #001529;\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item,\n.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > a,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a {\n color: rgba(255, 255, 255, 0.65);\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow::after,\n.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > a .ant-dropdown-menu-submenu-arrow::after,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a .ant-dropdown-menu-submenu-arrow::after {\n color: rgba(255, 255, 255, 0.65);\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > a:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a:hover {\n color: #fff;\n background: transparent;\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected > a {\n color: #fff;\n background: #1890ff;\n}\n.ant-dropdown-rtl {\n direction: rtl;\n}\n.ant-dropdown-rtl.ant-dropdown::before {\n right: -7px;\n left: 0;\n}\n.ant-dropdown-menu.ant-dropdown-menu-rtl {\n direction: rtl;\n text-align: right;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item-group-title,\n.ant-dropdown-menu-submenu-rtl .ant-dropdown-menu-item-group-title {\n direction: rtl;\n text-align: right;\n}\n.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl {\n transform-origin: 100% 0;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li {\n text-align: right;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title {\n text-align: right;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item > .anticon:first-child,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title > .anticon:first-child,\n.ant-dropdown-rtl .ant-dropdown-menu-item > span > .anticon:first-child,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title > span > .anticon:first-child {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon {\n right: auto;\n left: 8px;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon {\n margin-left: 0 !important;\n transform: scaleX(-1);\n}\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title {\n padding-right: 12px;\n padding-left: 24px;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical > .ant-dropdown-menu {\n right: 100%;\n left: 0;\n margin-right: 4px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-btn {\n line-height: 1.5715;\n position: relative;\n display: inline-block;\n font-weight: 400;\n white-space: nowrap;\n text-align: center;\n background-image: none;\n border: 1px solid transparent;\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: manipulation;\n height: 32px;\n padding: 4px 15px;\n font-size: 14px;\n border-radius: 2px;\n color: rgba(0, 0, 0, 0.85);\n border-color: #d9d9d9;\n background: #fff;\n}\n.ant-btn > .anticon {\n line-height: 1;\n}\n.ant-btn,\n.ant-btn:active,\n.ant-btn:focus {\n outline: 0;\n}\n.ant-btn:not([disabled]):hover {\n text-decoration: none;\n}\n.ant-btn:not([disabled]):active {\n outline: 0;\n box-shadow: none;\n}\n.ant-btn[disabled] {\n cursor: not-allowed;\n}\n.ant-btn[disabled] > * {\n pointer-events: none;\n}\n.ant-btn-lg {\n height: 40px;\n padding: 6.4px 15px;\n font-size: 16px;\n border-radius: 2px;\n}\n.ant-btn-sm {\n height: 24px;\n padding: 0px 7px;\n font-size: 14px;\n border-radius: 2px;\n}\n.ant-btn > a:only-child {\n color: currentcolor;\n}\n.ant-btn > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn:hover,\n.ant-btn:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: #fff;\n}\n.ant-btn:hover > a:only-child,\n.ant-btn:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn:hover > a:only-child::after,\n.ant-btn:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn:active {\n color: #096dd9;\n border-color: #096dd9;\n background: #fff;\n}\n.ant-btn:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn[disabled],\n.ant-btn[disabled]:hover,\n.ant-btn[disabled]:focus,\n.ant-btn[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn[disabled] > a:only-child,\n.ant-btn[disabled]:hover > a:only-child,\n.ant-btn[disabled]:focus > a:only-child,\n.ant-btn[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn[disabled] > a:only-child::after,\n.ant-btn[disabled]:hover > a:only-child::after,\n.ant-btn[disabled]:focus > a:only-child::after,\n.ant-btn[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn:hover,\n.ant-btn:focus,\n.ant-btn:active {\n text-decoration: none;\n background: #fff;\n}\n.ant-btn > span {\n display: inline-block;\n}\n.ant-btn-primary {\n color: #fff;\n border-color: #1890ff;\n background: #1890ff;\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\n}\n.ant-btn-primary > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-primary:hover,\n.ant-btn-primary:focus {\n color: #fff;\n border-color: #40a9ff;\n background: #40a9ff;\n}\n.ant-btn-primary:hover > a:only-child,\n.ant-btn-primary:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary:hover > a:only-child::after,\n.ant-btn-primary:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-primary:active {\n color: #fff;\n border-color: #096dd9;\n background: #096dd9;\n}\n.ant-btn-primary:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-primary[disabled],\n.ant-btn-primary[disabled]:hover,\n.ant-btn-primary[disabled]:focus,\n.ant-btn-primary[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-primary[disabled] > a:only-child,\n.ant-btn-primary[disabled]:hover > a:only-child,\n.ant-btn-primary[disabled]:focus > a:only-child,\n.ant-btn-primary[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary[disabled] > a:only-child::after,\n.ant-btn-primary[disabled]:hover > a:only-child::after,\n.ant-btn-primary[disabled]:focus > a:only-child::after,\n.ant-btn-primary[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child) {\n border-right-color: #40a9ff;\n border-left-color: #40a9ff;\n}\n.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled {\n border-color: #d9d9d9;\n}\n.ant-btn-group .ant-btn-primary:first-child:not(:last-child) {\n border-right-color: #40a9ff;\n}\n.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled] {\n border-right-color: #d9d9d9;\n}\n.ant-btn-group .ant-btn-primary:last-child:not(:first-child),\n.ant-btn-group .ant-btn-primary + .ant-btn-primary {\n border-left-color: #40a9ff;\n}\n.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],\n.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {\n border-left-color: #d9d9d9;\n}\n.ant-btn-ghost {\n color: rgba(0, 0, 0, 0.85);\n border-color: #d9d9d9;\n background: transparent;\n}\n.ant-btn-ghost > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-ghost:hover,\n.ant-btn-ghost:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-ghost:hover > a:only-child,\n.ant-btn-ghost:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost:hover > a:only-child::after,\n.ant-btn-ghost:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-ghost:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-ghost:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-ghost[disabled],\n.ant-btn-ghost[disabled]:hover,\n.ant-btn-ghost[disabled]:focus,\n.ant-btn-ghost[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-ghost[disabled] > a:only-child,\n.ant-btn-ghost[disabled]:hover > a:only-child,\n.ant-btn-ghost[disabled]:focus > a:only-child,\n.ant-btn-ghost[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost[disabled] > a:only-child::after,\n.ant-btn-ghost[disabled]:hover > a:only-child::after,\n.ant-btn-ghost[disabled]:focus > a:only-child::after,\n.ant-btn-ghost[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed {\n color: rgba(0, 0, 0, 0.85);\n border-color: #d9d9d9;\n background: #fff;\n border-style: dashed;\n}\n.ant-btn-dashed > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed:hover,\n.ant-btn-dashed:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: #fff;\n}\n.ant-btn-dashed:hover > a:only-child,\n.ant-btn-dashed:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed:hover > a:only-child::after,\n.ant-btn-dashed:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed:active {\n color: #096dd9;\n border-color: #096dd9;\n background: #fff;\n}\n.ant-btn-dashed:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed[disabled],\n.ant-btn-dashed[disabled]:hover,\n.ant-btn-dashed[disabled]:focus,\n.ant-btn-dashed[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dashed[disabled] > a:only-child,\n.ant-btn-dashed[disabled]:hover > a:only-child,\n.ant-btn-dashed[disabled]:focus > a:only-child,\n.ant-btn-dashed[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed[disabled] > a:only-child::after,\n.ant-btn-dashed[disabled]:hover > a:only-child::after,\n.ant-btn-dashed[disabled]:focus > a:only-child::after,\n.ant-btn-dashed[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger {\n color: #fff;\n border-color: #ff4d4f;\n background: #ff4d4f;\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\n}\n.ant-btn-danger > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger:hover,\n.ant-btn-danger:focus {\n color: #fff;\n border-color: #ff7875;\n background: #ff7875;\n}\n.ant-btn-danger:hover > a:only-child,\n.ant-btn-danger:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger:hover > a:only-child::after,\n.ant-btn-danger:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger:active {\n color: #fff;\n border-color: #d9363e;\n background: #d9363e;\n}\n.ant-btn-danger:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger[disabled],\n.ant-btn-danger[disabled]:hover,\n.ant-btn-danger[disabled]:focus,\n.ant-btn-danger[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-danger[disabled] > a:only-child,\n.ant-btn-danger[disabled]:hover > a:only-child,\n.ant-btn-danger[disabled]:focus > a:only-child,\n.ant-btn-danger[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger[disabled] > a:only-child::after,\n.ant-btn-danger[disabled]:hover > a:only-child::after,\n.ant-btn-danger[disabled]:focus > a:only-child::after,\n.ant-btn-danger[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link {\n color: #1890ff;\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-link > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link:hover,\n.ant-btn-link:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-link:hover > a:only-child,\n.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link:hover > a:only-child::after,\n.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link[disabled],\n.ant-btn-link[disabled]:hover,\n.ant-btn-link[disabled]:focus,\n.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-link[disabled] > a:only-child,\n.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link:hover {\n background: transparent;\n}\n.ant-btn-link:hover,\n.ant-btn-link:focus,\n.ant-btn-link:active {\n border-color: transparent;\n}\n.ant-btn-link[disabled],\n.ant-btn-link[disabled]:hover,\n.ant-btn-link[disabled]:focus,\n.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-link[disabled] > a:only-child,\n.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text {\n color: rgba(0, 0, 0, 0.85);\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-text > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text:hover,\n.ant-btn-text:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-text:hover > a:only-child,\n.ant-btn-text:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text:hover > a:only-child::after,\n.ant-btn-text:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-text:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text[disabled],\n.ant-btn-text[disabled]:hover,\n.ant-btn-text[disabled]:focus,\n.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-text[disabled] > a:only-child,\n.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text:hover,\n.ant-btn-text:focus {\n color: rgba(0, 0, 0, 0.85);\n background: rgba(0, 0, 0, 0.018);\n border-color: transparent;\n}\n.ant-btn-text:active {\n color: rgba(0, 0, 0, 0.85);\n background: rgba(0, 0, 0, 0.028);\n border-color: transparent;\n}\n.ant-btn-text[disabled],\n.ant-btn-text[disabled]:hover,\n.ant-btn-text[disabled]:focus,\n.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-text[disabled] > a:only-child,\n.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous {\n color: #ff4d4f;\n border-color: #ff4d4f;\n background: #fff;\n}\n.ant-btn-dangerous > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous:hover,\n.ant-btn-dangerous:focus {\n color: #ff7875;\n border-color: #ff7875;\n background: #fff;\n}\n.ant-btn-dangerous:hover > a:only-child,\n.ant-btn-dangerous:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous:hover > a:only-child::after,\n.ant-btn-dangerous:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous:active {\n color: #d9363e;\n border-color: #d9363e;\n background: #fff;\n}\n.ant-btn-dangerous:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous[disabled],\n.ant-btn-dangerous[disabled]:hover,\n.ant-btn-dangerous[disabled]:focus,\n.ant-btn-dangerous[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous[disabled] > a:only-child,\n.ant-btn-dangerous[disabled]:hover > a:only-child,\n.ant-btn-dangerous[disabled]:focus > a:only-child,\n.ant-btn-dangerous[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous[disabled] > a:only-child::after,\n.ant-btn-dangerous[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary {\n color: #fff;\n border-color: #ff4d4f;\n background: #ff4d4f;\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\n}\n.ant-btn-dangerous.ant-btn-primary > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary:hover,\n.ant-btn-dangerous.ant-btn-primary:focus {\n color: #fff;\n border-color: #ff7875;\n background: #ff7875;\n}\n.ant-btn-dangerous.ant-btn-primary:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-primary:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary:active {\n color: #fff;\n border-color: #d9363e;\n background: #d9363e;\n}\n.ant-btn-dangerous.ant-btn-primary:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary[disabled],\n.ant-btn-dangerous.ant-btn-primary[disabled]:hover,\n.ant-btn-dangerous.ant-btn-primary[disabled]:focus,\n.ant-btn-dangerous.ant-btn-primary[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-primary[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-primary[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-primary[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-primary[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link {\n color: #ff4d4f;\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-link > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:hover,\n.ant-btn-dangerous.ant-btn-link:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link[disabled],\n.ant-btn-dangerous.ant-btn-link[disabled]:hover,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus,\n.ant-btn-dangerous.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:hover,\n.ant-btn-dangerous.ant-btn-link:focus {\n color: #ff7875;\n border-color: transparent;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:active {\n color: #d9363e;\n border-color: transparent;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link[disabled],\n.ant-btn-dangerous.ant-btn-link[disabled]:hover,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus,\n.ant-btn-dangerous.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text {\n color: #ff4d4f;\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-text > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:hover,\n.ant-btn-dangerous.ant-btn-text:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text[disabled],\n.ant-btn-dangerous.ant-btn-text[disabled]:hover,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus,\n.ant-btn-dangerous.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:hover,\n.ant-btn-dangerous.ant-btn-text:focus {\n color: #ff7875;\n border-color: transparent;\n background: rgba(0, 0, 0, 0.018);\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:active {\n color: #d9363e;\n border-color: transparent;\n background: rgba(0, 0, 0, 0.028);\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text[disabled],\n.ant-btn-dangerous.ant-btn-text[disabled]:hover,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus,\n.ant-btn-dangerous.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-icon-only {\n width: 32px;\n height: 32px;\n padding: 2.4px 0;\n font-size: 16px;\n border-radius: 2px;\n vertical-align: -3px;\n}\n.ant-btn-icon-only > * {\n font-size: 16px;\n}\n.ant-btn-icon-only.ant-btn-lg {\n width: 40px;\n height: 40px;\n padding: 4.9px 0;\n font-size: 18px;\n border-radius: 2px;\n}\n.ant-btn-icon-only.ant-btn-lg > * {\n font-size: 18px;\n}\n.ant-btn-icon-only.ant-btn-sm {\n width: 24px;\n height: 24px;\n padding: 0px 0;\n font-size: 14px;\n border-radius: 2px;\n}\n.ant-btn-icon-only.ant-btn-sm > * {\n font-size: 14px;\n}\n.ant-btn-icon-only > .anticon {\n display: flex;\n justify-content: center;\n}\n.ant-btn-icon-only .anticon-loading {\n padding: 0 !important;\n}\na.ant-btn-icon-only {\n vertical-align: -1px;\n}\na.ant-btn-icon-only > .anticon {\n display: inline;\n}\n.ant-btn-round {\n height: 32px;\n padding: 4px 16px;\n font-size: 14px;\n border-radius: 32px;\n}\n.ant-btn-round.ant-btn-lg {\n height: 40px;\n padding: 6.4px 20px;\n font-size: 16px;\n border-radius: 40px;\n}\n.ant-btn-round.ant-btn-sm {\n height: 24px;\n padding: 0px 12px;\n font-size: 14px;\n border-radius: 24px;\n}\n.ant-btn-round.ant-btn-icon-only {\n width: auto;\n}\n.ant-btn-circle {\n min-width: 32px;\n padding-right: 0;\n padding-left: 0;\n text-align: center;\n border-radius: 50%;\n}\n.ant-btn-circle.ant-btn-lg {\n min-width: 40px;\n border-radius: 50%;\n}\n.ant-btn-circle.ant-btn-sm {\n min-width: 24px;\n border-radius: 50%;\n}\n.ant-btn::before {\n position: absolute;\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n z-index: 1;\n display: none;\n background: #fff;\n border-radius: inherit;\n opacity: 0.35;\n transition: opacity 0.2s;\n content: '';\n pointer-events: none;\n}\n.ant-btn .anticon {\n transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-btn .anticon.anticon-plus > svg,\n.ant-btn .anticon.anticon-minus > svg {\n shape-rendering: optimizespeed;\n}\n.ant-btn.ant-btn-loading {\n position: relative;\n cursor: default;\n}\n.ant-btn.ant-btn-loading::before {\n display: block;\n}\n.ant-btn > .ant-btn-loading-icon {\n transition: width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-btn > .ant-btn-loading-icon .anticon {\n padding-right: 8px;\n animation: none;\n}\n.ant-btn > .ant-btn-loading-icon .anticon svg {\n animation: loadingCircle 1s infinite linear;\n}\n.ant-btn-group {\n position: relative;\n display: inline-flex;\n}\n.ant-btn-group > .ant-btn,\n.ant-btn-group > span > .ant-btn {\n position: relative;\n}\n.ant-btn-group > .ant-btn:hover,\n.ant-btn-group > span > .ant-btn:hover,\n.ant-btn-group > .ant-btn:focus,\n.ant-btn-group > span > .ant-btn:focus,\n.ant-btn-group > .ant-btn:active,\n.ant-btn-group > span > .ant-btn:active {\n z-index: 2;\n}\n.ant-btn-group > .ant-btn[disabled],\n.ant-btn-group > span > .ant-btn[disabled] {\n z-index: 0;\n}\n.ant-btn-group .ant-btn-icon-only {\n font-size: 14px;\n}\n.ant-btn-group .ant-btn + .ant-btn,\n.ant-btn + .ant-btn-group,\n.ant-btn-group span + .ant-btn,\n.ant-btn-group .ant-btn + span,\n.ant-btn-group > span + span,\n.ant-btn-group + .ant-btn,\n.ant-btn-group + .ant-btn-group {\n margin-left: -1px;\n}\n.ant-btn-group .ant-btn-primary + .ant-btn:not(.ant-btn-primary):not([disabled]) {\n border-left-color: transparent;\n}\n.ant-btn-group .ant-btn {\n border-radius: 0;\n}\n.ant-btn-group > .ant-btn:first-child,\n.ant-btn-group > span:first-child > .ant-btn {\n margin-left: 0;\n}\n.ant-btn-group > .ant-btn:only-child {\n border-radius: 2px;\n}\n.ant-btn-group > span:only-child > .ant-btn {\n border-radius: 2px;\n}\n.ant-btn-group > .ant-btn:first-child:not(:last-child),\n.ant-btn-group > span:first-child:not(:last-child) > .ant-btn {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-btn-group > .ant-btn:last-child:not(:first-child),\n.ant-btn-group > span:last-child:not(:first-child) > .ant-btn {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-btn-group-sm > .ant-btn:only-child {\n border-radius: 2px;\n}\n.ant-btn-group-sm > span:only-child > .ant-btn {\n border-radius: 2px;\n}\n.ant-btn-group-sm > .ant-btn:first-child:not(:last-child),\n.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-btn-group-sm > .ant-btn:last-child:not(:first-child),\n.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-btn-group > .ant-btn-group {\n float: left;\n}\n.ant-btn-group > .ant-btn-group:not(:first-child):not(:last-child) > .ant-btn {\n border-radius: 0;\n}\n.ant-btn-group > .ant-btn-group:first-child:not(:last-child) > .ant-btn:last-child {\n padding-right: 8px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-group > .ant-btn-group:last-child:not(:first-child) > .ant-btn:first-child {\n padding-left: 8px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-rtl.ant-btn-group .ant-btn + .ant-btn,\n.ant-btn-rtl.ant-btn + .ant-btn-group,\n.ant-btn-rtl.ant-btn-group span + .ant-btn,\n.ant-btn-rtl.ant-btn-group .ant-btn + span,\n.ant-btn-rtl.ant-btn-group > span + span,\n.ant-btn-rtl.ant-btn-group + .ant-btn,\n.ant-btn-rtl.ant-btn-group + .ant-btn-group,\n.ant-btn-group-rtl.ant-btn-group .ant-btn + .ant-btn,\n.ant-btn-group-rtl.ant-btn + .ant-btn-group,\n.ant-btn-group-rtl.ant-btn-group span + .ant-btn,\n.ant-btn-group-rtl.ant-btn-group .ant-btn + span,\n.ant-btn-group-rtl.ant-btn-group > span + span,\n.ant-btn-group-rtl.ant-btn-group + .ant-btn,\n.ant-btn-group-rtl.ant-btn-group + .ant-btn-group {\n margin-right: -1px;\n margin-left: auto;\n}\n.ant-btn-group.ant-btn-group-rtl {\n direction: rtl;\n}\n.ant-btn-group-rtl.ant-btn-group > .ant-btn:first-child:not(:last-child),\n.ant-btn-group-rtl.ant-btn-group > span:first-child:not(:last-child) > .ant-btn {\n border-radius: 0 2px 2px 0;\n}\n.ant-btn-group-rtl.ant-btn-group > .ant-btn:last-child:not(:first-child),\n.ant-btn-group-rtl.ant-btn-group > span:last-child:not(:first-child) > .ant-btn {\n border-radius: 2px 0 0 2px;\n}\n.ant-btn-group-rtl.ant-btn-group-sm > .ant-btn:first-child:not(:last-child),\n.ant-btn-group-rtl.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn {\n border-radius: 0 2px 2px 0;\n}\n.ant-btn-group-rtl.ant-btn-group-sm > .ant-btn:last-child:not(:first-child),\n.ant-btn-group-rtl.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn {\n border-radius: 2px 0 0 2px;\n}\n.ant-btn:focus > span,\n.ant-btn:active > span {\n position: relative;\n}\n.ant-btn > .anticon + span,\n.ant-btn > span + .anticon {\n margin-left: 8px;\n}\n.ant-btn.ant-btn-background-ghost {\n color: #fff;\n border-color: #fff;\n}\n.ant-btn.ant-btn-background-ghost,\n.ant-btn.ant-btn-background-ghost:hover,\n.ant-btn.ant-btn-background-ghost:active,\n.ant-btn.ant-btn-background-ghost:focus {\n background: transparent;\n}\n.ant-btn.ant-btn-background-ghost:hover,\n.ant-btn.ant-btn-background-ghost:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n}\n.ant-btn.ant-btn-background-ghost:active {\n color: #096dd9;\n border-color: #096dd9;\n}\n.ant-btn.ant-btn-background-ghost[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background: transparent;\n border-color: #d9d9d9;\n}\n.ant-btn-background-ghost.ant-btn-primary {\n color: #1890ff;\n border-color: #1890ff;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-primary > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-primary:hover,\n.ant-btn-background-ghost.ant-btn-primary:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n}\n.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-primary:active {\n color: #096dd9;\n border-color: #096dd9;\n}\n.ant-btn-background-ghost.ant-btn-primary:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-primary[disabled],\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger {\n color: #ff4d4f;\n border-color: #ff4d4f;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-danger > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger:hover,\n.ant-btn-background-ghost.ant-btn-danger:focus {\n color: #ff7875;\n border-color: #ff7875;\n}\n.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger:active {\n color: #d9363e;\n border-color: #d9363e;\n}\n.ant-btn-background-ghost.ant-btn-danger:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger[disabled],\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous {\n color: #ff4d4f;\n border-color: #ff4d4f;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous:hover,\n.ant-btn-background-ghost.ant-btn-dangerous:focus {\n color: #ff7875;\n border-color: #ff7875;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous:active {\n color: #d9363e;\n border-color: #d9363e;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous[disabled],\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link {\n color: #ff4d4f;\n border-color: transparent;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus {\n color: #ff7875;\n border-color: transparent;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active {\n color: #d9363e;\n border-color: transparent;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-two-chinese-chars::first-letter {\n letter-spacing: 0.34em;\n}\n.ant-btn-two-chinese-chars > *:not(.anticon) {\n margin-right: -0.34em;\n letter-spacing: 0.34em;\n}\n.ant-btn.ant-btn-block {\n width: 100%;\n}\n.ant-btn:empty {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n}\na.ant-btn {\n padding-top: 0.01px !important;\n line-height: 30px;\n}\na.ant-btn-disabled {\n cursor: not-allowed;\n}\na.ant-btn-disabled > * {\n pointer-events: none;\n}\na.ant-btn-disabled,\na.ant-btn-disabled:hover,\na.ant-btn-disabled:focus,\na.ant-btn-disabled:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\na.ant-btn-disabled > a:only-child,\na.ant-btn-disabled:hover > a:only-child,\na.ant-btn-disabled:focus > a:only-child,\na.ant-btn-disabled:active > a:only-child {\n color: currentcolor;\n}\na.ant-btn-disabled > a:only-child::after,\na.ant-btn-disabled:hover > a:only-child::after,\na.ant-btn-disabled:focus > a:only-child::after,\na.ant-btn-disabled:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\na.ant-btn-lg {\n line-height: 38px;\n}\na.ant-btn-sm {\n line-height: 22px;\n}\n.ant-btn-compact-item:not(.ant-btn-compact-last-item):not(.ant-btn-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-btn-compact-item:not(.ant-btn-compact-last-item).ant-btn-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-btn-compact-item:hover,\n.ant-btn-compact-item:focus,\n.ant-btn-compact-item:active {\n z-index: 2;\n}\n.ant-btn-compact-item[disabled] {\n z-index: 0;\n}\n.ant-btn-compact-item:not(.ant-btn-compact-first-item):not(.ant-btn-compact-last-item).ant-btn {\n border-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-first-item:not(.ant-btn-compact-last-item):not(.ant-btn-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-last-item:not(.ant-btn-compact-first-item):not(.ant-btn-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-item-rtl.ant-btn-compact-first-item:not(.ant-btn-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-item-rtl.ant-btn-compact-last-item:not(.ant-btn-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-icon-only.ant-btn-compact-item {\n flex: none;\n}\n.ant-btn-compact-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-item.ant-btn-primary:not([disabled]) {\n position: relative;\n}\n.ant-btn-compact-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-item.ant-btn-primary:not([disabled])::after {\n position: absolute;\n top: -1px;\n left: -1px;\n display: inline-block;\n width: 1px;\n height: calc(100% + 1px * 2);\n background-color: #40a9ff;\n content: ' ';\n}\n.ant-btn-compact-item-rtl.ant-btn-compact-first-item.ant-btn-compact-item-rtl:not(.ant-btn-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-compact-last-item.ant-btn-compact-item-rtl:not(.ant-btn-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-sm.ant-btn-compact-first-item.ant-btn-compact-item-rtl.ant-btn-sm:not(.ant-btn-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-sm.ant-btn-compact-last-item.ant-btn-compact-item-rtl.ant-btn-sm:not(.ant-btn-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-primary:not([disabled]) + .ant-btn-compact-item-rtl.ant-btn-primary:not([disabled])::after {\n right: -1px;\n}\n.ant-btn-compact-vertical-item:not(.ant-btn-compact-vertical-last-item) {\n margin-bottom: -1px;\n}\n.ant-btn-compact-vertical-item:hover,\n.ant-btn-compact-vertical-item:focus,\n.ant-btn-compact-vertical-item:active {\n z-index: 2;\n}\n.ant-btn-compact-vertical-item[disabled] {\n z-index: 0;\n}\n.ant-btn-compact-vertical-item:not(.ant-btn-compact-vertical-first-item):not(.ant-btn-compact-vertical-last-item) {\n border-radius: 0;\n}\n.ant-btn-compact-vertical-item.ant-btn-compact-vertical-first-item:not(.ant-btn-compact-vertical-last-item) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-vertical-item.ant-btn-compact-vertical-last-item:not(.ant-btn-compact-vertical-first-item) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]) {\n position: relative;\n}\n.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-vertical-item.ant-btn-primary:not([disabled])::after {\n position: absolute;\n top: -1px;\n left: -1px;\n display: inline-block;\n width: calc(100% + 1px * 2);\n height: 1px;\n background-color: #40a9ff;\n content: ' ';\n}\n.ant-btn-rtl {\n direction: rtl;\n}\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child),\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary {\n border-right-color: #40a9ff;\n border-left-color: #d9d9d9;\n}\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {\n border-right-color: #d9d9d9;\n border-left-color: #40a9ff;\n}\n.ant-btn-rtl.ant-btn > .ant-btn-loading-icon .anticon {\n padding-right: 0;\n padding-left: 8px;\n}\n.ant-btn-rtl.ant-btn > .anticon + span,\n.ant-btn-rtl.ant-btn > span + .anticon {\n margin-right: 8px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-menu-item-danger.ant-menu-item {\n color: #ff4d4f;\n}\n.ant-menu-item-danger.ant-menu-item:hover,\n.ant-menu-item-danger.ant-menu-item-active {\n color: #ff4d4f;\n}\n.ant-menu-item-danger.ant-menu-item:active {\n background: #fff1f0;\n}\n.ant-menu-item-danger.ant-menu-item-selected {\n color: #ff4d4f;\n}\n.ant-menu-item-danger.ant-menu-item-selected > a,\n.ant-menu-item-danger.ant-menu-item-selected > a:hover {\n color: #ff4d4f;\n}\n.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {\n background-color: #fff1f0;\n}\n.ant-menu-inline .ant-menu-item-danger.ant-menu-item::after {\n border-right-color: #ff4d4f;\n}\n.ant-menu-dark .ant-menu-item-danger.ant-menu-item,\n.ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover,\n.ant-menu-dark .ant-menu-item-danger.ant-menu-item > a {\n color: #ff4d4f;\n}\n.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {\n color: #fff;\n background-color: #ff4d4f;\n}\n.ant-menu {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n font-variant: tabular-nums;\n line-height: 1.5715;\n font-feature-settings: 'tnum';\n margin-bottom: 0;\n padding-left: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 0;\n text-align: left;\n list-style: none;\n background: #fff;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n transition: background 0.3s, width 0.3s cubic-bezier(0.2, 0, 0, 1) 0s;\n}\n.ant-menu::before {\n display: table;\n content: '';\n}\n.ant-menu::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-menu.ant-menu-root:focus-visible {\n box-shadow: 0 0 0 2px #bae7ff;\n}\n.ant-menu ul,\n.ant-menu ol {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-menu-overflow {\n display: flex;\n}\n.ant-menu-overflow-item {\n flex: none;\n}\n.ant-menu-hidden,\n.ant-menu-submenu-hidden {\n display: none;\n}\n.ant-menu-item-group-title {\n height: 1.5715;\n padding: 8px 16px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.5715;\n transition: all 0.3s;\n}\n.ant-menu-horizontal .ant-menu-submenu {\n transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu,\n.ant-menu-submenu-inline {\n transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu-selected {\n color: #1890ff;\n}\n.ant-menu-item:active,\n.ant-menu-submenu-title:active {\n background: #e6f7ff;\n}\n.ant-menu-submenu .ant-menu-sub {\n cursor: initial;\n transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-title-content {\n transition: color 0.3s;\n}\n.ant-menu-item a {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-menu-item a:hover {\n color: #1890ff;\n}\n.ant-menu-item a::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: transparent;\n content: '';\n}\n.ant-menu-item > .ant-badge a {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-menu-item > .ant-badge a:hover {\n color: #1890ff;\n}\n.ant-menu-item-divider {\n overflow: hidden;\n line-height: 0;\n border-color: #f0f0f0;\n border-style: solid;\n border-width: 1px 0 0;\n}\n.ant-menu-item-divider-dashed {\n border-style: dashed;\n}\n.ant-menu-horizontal .ant-menu-item,\n.ant-menu-horizontal .ant-menu-submenu {\n margin-top: -1px;\n}\n.ant-menu-horizontal > .ant-menu-item:hover,\n.ant-menu-horizontal > .ant-menu-item-active,\n.ant-menu-horizontal > .ant-menu-submenu .ant-menu-submenu-title:hover {\n background-color: transparent;\n}\n.ant-menu-item-selected {\n color: #1890ff;\n}\n.ant-menu-item-selected a,\n.ant-menu-item-selected a:hover {\n color: #1890ff;\n}\n.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {\n background-color: #e6f7ff;\n}\n.ant-menu-inline,\n.ant-menu-vertical,\n.ant-menu-vertical-left {\n border-right: 1px solid #f0f0f0;\n}\n.ant-menu-vertical-right {\n border-left: 1px solid #f0f0f0;\n}\n.ant-menu-vertical.ant-menu-sub,\n.ant-menu-vertical-left.ant-menu-sub,\n.ant-menu-vertical-right.ant-menu-sub {\n min-width: 160px;\n max-height: calc(100vh - 100px);\n padding: 0;\n overflow: hidden;\n border-right: 0;\n}\n.ant-menu-vertical.ant-menu-sub:not([class*='-active']),\n.ant-menu-vertical-left.ant-menu-sub:not([class*='-active']),\n.ant-menu-vertical-right.ant-menu-sub:not([class*='-active']) {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.ant-menu-vertical.ant-menu-sub .ant-menu-item,\n.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,\n.ant-menu-vertical-right.ant-menu-sub .ant-menu-item {\n left: 0;\n margin-left: 0;\n border-right: 0;\n}\n.ant-menu-vertical.ant-menu-sub .ant-menu-item::after,\n.ant-menu-vertical-left.ant-menu-sub .ant-menu-item::after,\n.ant-menu-vertical-right.ant-menu-sub .ant-menu-item::after {\n border-right: 0;\n}\n.ant-menu-vertical.ant-menu-sub > .ant-menu-item,\n.ant-menu-vertical-left.ant-menu-sub > .ant-menu-item,\n.ant-menu-vertical-right.ant-menu-sub > .ant-menu-item,\n.ant-menu-vertical.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-vertical-left.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-vertical-right.ant-menu-sub > .ant-menu-submenu {\n transform-origin: 0 0;\n}\n.ant-menu-horizontal.ant-menu-sub {\n min-width: 114px;\n}\n.ant-menu-horizontal .ant-menu-item,\n.ant-menu-horizontal .ant-menu-submenu-title {\n transition: border-color 0.3s, background 0.3s;\n}\n.ant-menu-item,\n.ant-menu-submenu-title {\n position: relative;\n display: block;\n margin: 0;\n padding: 0 20px;\n white-space: nowrap;\n cursor: pointer;\n transition: border-color 0.3s, background 0.3s, padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-item .ant-menu-item-icon,\n.ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu-item .anticon,\n.ant-menu-submenu-title .anticon {\n min-width: 14px;\n font-size: 14px;\n transition: font-size 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), color 0.3s;\n}\n.ant-menu-item .ant-menu-item-icon + span,\n.ant-menu-submenu-title .ant-menu-item-icon + span,\n.ant-menu-item .anticon + span,\n.ant-menu-submenu-title .anticon + span {\n margin-left: 10px;\n opacity: 1;\n transition: opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), margin 0.3s, color 0.3s;\n}\n.ant-menu-item .ant-menu-item-icon.svg,\n.ant-menu-submenu-title .ant-menu-item-icon.svg {\n vertical-align: -0.125em;\n}\n.ant-menu-item.ant-menu-item-only-child > .anticon,\n.ant-menu-submenu-title.ant-menu-item-only-child > .anticon,\n.ant-menu-item.ant-menu-item-only-child > .ant-menu-item-icon,\n.ant-menu-submenu-title.ant-menu-item-only-child > .ant-menu-item-icon {\n margin-right: 0;\n}\n.ant-menu-item:not(.ant-menu-item-disabled):focus-visible,\n.ant-menu-submenu-title:not(.ant-menu-item-disabled):focus-visible {\n box-shadow: 0 0 0 2px #bae7ff;\n}\n.ant-menu > .ant-menu-item-divider {\n margin: 1px 0;\n padding: 0;\n}\n.ant-menu-submenu-popup {\n position: absolute;\n z-index: 1050;\n background: transparent;\n border-radius: 2px;\n box-shadow: none;\n transform-origin: 0 0;\n}\n.ant-menu-submenu-popup::before {\n position: absolute;\n top: -7px;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n opacity: 0.0001;\n content: ' ';\n}\n.ant-menu-submenu-placement-rightTop::before {\n top: 0;\n left: -7px;\n}\n.ant-menu-submenu > .ant-menu {\n background-color: #fff;\n border-radius: 2px;\n}\n.ant-menu-submenu > .ant-menu-submenu-title::after {\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu-popup > .ant-menu {\n background-color: #fff;\n}\n.ant-menu-submenu-expand-icon,\n.ant-menu-submenu-arrow {\n position: absolute;\n top: 50%;\n right: 16px;\n width: 10px;\n color: rgba(0, 0, 0, 0.85);\n transform: translateY(-50%);\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu-arrow::before,\n.ant-menu-submenu-arrow::after {\n position: absolute;\n width: 6px;\n height: 1.5px;\n background-color: currentcolor;\n border-radius: 2px;\n transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n content: '';\n}\n.ant-menu-submenu-arrow::before {\n transform: rotate(45deg) translateY(-2.5px);\n}\n.ant-menu-submenu-arrow::after {\n transform: rotate(-45deg) translateY(2.5px);\n}\n.ant-menu-submenu:hover > .ant-menu-submenu-title > .ant-menu-submenu-expand-icon,\n.ant-menu-submenu:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow {\n color: #1890ff;\n}\n.ant-menu-inline-collapsed .ant-menu-submenu-arrow::before,\n.ant-menu-submenu-inline .ant-menu-submenu-arrow::before {\n transform: rotate(-45deg) translateX(2.5px);\n}\n.ant-menu-inline-collapsed .ant-menu-submenu-arrow::after,\n.ant-menu-submenu-inline .ant-menu-submenu-arrow::after {\n transform: rotate(45deg) translateX(-2.5px);\n}\n.ant-menu-submenu-horizontal .ant-menu-submenu-arrow {\n display: none;\n}\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title > .ant-menu-submenu-arrow {\n transform: translateY(-2px);\n}\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {\n transform: rotate(-45deg) translateX(-2.5px);\n}\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before {\n transform: rotate(45deg) translateX(2.5px);\n}\n.ant-menu-vertical .ant-menu-submenu-selected,\n.ant-menu-vertical-left .ant-menu-submenu-selected,\n.ant-menu-vertical-right .ant-menu-submenu-selected {\n color: #1890ff;\n}\n.ant-menu-horizontal {\n line-height: 46px;\n border: 0;\n border-bottom: 1px solid #f0f0f0;\n box-shadow: none;\n}\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu {\n margin-top: -1px;\n margin-bottom: 0;\n padding: 0 20px;\n}\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-active,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-active,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-open,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-open,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-selected,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected {\n color: #1890ff;\n}\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-active::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-active::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-open::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-open::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-selected::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected::after {\n border-bottom: 2px solid #1890ff;\n}\n.ant-menu-horizontal > .ant-menu-item,\n.ant-menu-horizontal > .ant-menu-submenu {\n position: relative;\n top: 1px;\n display: inline-block;\n vertical-align: bottom;\n}\n.ant-menu-horizontal > .ant-menu-item::after,\n.ant-menu-horizontal > .ant-menu-submenu::after {\n position: absolute;\n right: 20px;\n bottom: 0;\n left: 20px;\n border-bottom: 2px solid transparent;\n transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n content: '';\n}\n.ant-menu-horizontal > .ant-menu-submenu > .ant-menu-submenu-title {\n padding: 0;\n}\n.ant-menu-horizontal > .ant-menu-item a {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-menu-horizontal > .ant-menu-item a:hover {\n color: #1890ff;\n}\n.ant-menu-horizontal > .ant-menu-item a::before {\n bottom: -2px;\n}\n.ant-menu-horizontal > .ant-menu-item-selected a {\n color: #1890ff;\n}\n.ant-menu-horizontal::after {\n display: block;\n clear: both;\n height: 0;\n content: '\\20';\n}\n.ant-menu-vertical .ant-menu-item,\n.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-vertical-right .ant-menu-item,\n.ant-menu-inline .ant-menu-item {\n position: relative;\n}\n.ant-menu-vertical .ant-menu-item::after,\n.ant-menu-vertical-left .ant-menu-item::after,\n.ant-menu-vertical-right .ant-menu-item::after,\n.ant-menu-inline .ant-menu-item::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n border-right: 3px solid #1890ff;\n transform: scaleY(0.0001);\n opacity: 0;\n transition: transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);\n content: '';\n}\n.ant-menu-vertical .ant-menu-item,\n.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-vertical-right .ant-menu-item,\n.ant-menu-inline .ant-menu-item,\n.ant-menu-vertical .ant-menu-submenu-title,\n.ant-menu-vertical-left .ant-menu-submenu-title,\n.ant-menu-vertical-right .ant-menu-submenu-title,\n.ant-menu-inline .ant-menu-submenu-title {\n height: 40px;\n margin-top: 4px;\n margin-bottom: 4px;\n padding: 0 16px;\n overflow: hidden;\n line-height: 40px;\n text-overflow: ellipsis;\n}\n.ant-menu-vertical .ant-menu-submenu,\n.ant-menu-vertical-left .ant-menu-submenu,\n.ant-menu-vertical-right .ant-menu-submenu,\n.ant-menu-inline .ant-menu-submenu {\n padding-bottom: 0.02px;\n}\n.ant-menu-vertical .ant-menu-item:not(:last-child),\n.ant-menu-vertical-left .ant-menu-item:not(:last-child),\n.ant-menu-vertical-right .ant-menu-item:not(:last-child),\n.ant-menu-inline .ant-menu-item:not(:last-child) {\n margin-bottom: 8px;\n}\n.ant-menu-vertical > .ant-menu-item,\n.ant-menu-vertical-left > .ant-menu-item,\n.ant-menu-vertical-right > .ant-menu-item,\n.ant-menu-inline > .ant-menu-item,\n.ant-menu-vertical > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu-vertical-left > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu-vertical-right > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {\n height: 40px;\n line-height: 40px;\n}\n.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,\n.ant-menu-vertical .ant-menu-submenu-title {\n padding-right: 34px;\n}\n.ant-menu-inline {\n width: 100%;\n}\n.ant-menu-inline .ant-menu-selected::after,\n.ant-menu-inline .ant-menu-item-selected::after {\n transform: scaleY(1);\n opacity: 1;\n transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-inline .ant-menu-item,\n.ant-menu-inline .ant-menu-submenu-title {\n width: calc(100% + 1px);\n}\n.ant-menu-inline .ant-menu-item-group-list .ant-menu-submenu-title,\n.ant-menu-inline .ant-menu-submenu-title {\n padding-right: 34px;\n}\n.ant-menu-inline.ant-menu-root .ant-menu-item,\n.ant-menu-inline.ant-menu-root .ant-menu-submenu-title {\n display: flex;\n align-items: center;\n transition: border-color 0.3s, background 0.3s, padding 0.1s cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n.ant-menu-inline.ant-menu-root .ant-menu-item > .ant-menu-title-content,\n.ant-menu-inline.ant-menu-root .ant-menu-submenu-title > .ant-menu-title-content {\n flex: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ant-menu-inline.ant-menu-root .ant-menu-item > *,\n.ant-menu-inline.ant-menu-root .ant-menu-submenu-title > * {\n flex: none;\n}\n.ant-menu.ant-menu-inline-collapsed {\n width: 80px;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {\n left: 0;\n padding: 0 calc(50% - 16px / 2);\n text-overflow: clip;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-submenu-arrow {\n opacity: 0;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .anticon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .anticon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .anticon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .anticon {\n margin: 0;\n font-size: 16px;\n line-height: 40px;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .anticon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .anticon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .anticon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .anticon + span {\n display: inline-block;\n opacity: 0;\n}\n.ant-menu.ant-menu-inline-collapsed .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed .anticon {\n display: inline-block;\n}\n.ant-menu.ant-menu-inline-collapsed-tooltip {\n pointer-events: none;\n}\n.ant-menu.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed-tooltip .anticon {\n display: none;\n}\n.ant-menu.ant-menu-inline-collapsed-tooltip a {\n color: rgba(255, 255, 255, 0.85);\n}\n.ant-menu.ant-menu-inline-collapsed .ant-menu-item-group-title {\n padding-right: 4px;\n padding-left: 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-menu-item-group-list {\n margin: 0;\n padding: 0;\n}\n.ant-menu-item-group-list .ant-menu-item,\n.ant-menu-item-group-list .ant-menu-submenu-title {\n padding: 0 16px 0 28px;\n}\n.ant-menu-root.ant-menu-vertical,\n.ant-menu-root.ant-menu-vertical-left,\n.ant-menu-root.ant-menu-vertical-right,\n.ant-menu-root.ant-menu-inline {\n box-shadow: none;\n}\n.ant-menu-root.ant-menu-inline-collapsed .ant-menu-item > .ant-menu-inline-collapsed-noicon,\n.ant-menu-root.ant-menu-inline-collapsed .ant-menu-submenu .ant-menu-submenu-title > .ant-menu-inline-collapsed-noicon {\n font-size: 16px;\n text-align: center;\n}\n.ant-menu-sub.ant-menu-inline {\n padding: 0;\n background: #fafafa;\n border: 0;\n border-radius: 0;\n box-shadow: none;\n}\n.ant-menu-sub.ant-menu-inline > .ant-menu-item,\n.ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {\n height: 40px;\n line-height: 40px;\n list-style-position: inside;\n list-style-type: disc;\n}\n.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title {\n padding-left: 32px;\n}\n.ant-menu-item-disabled,\n.ant-menu-submenu-disabled {\n color: rgba(0, 0, 0, 0.25) !important;\n background: none;\n cursor: not-allowed;\n}\n.ant-menu-item-disabled::after,\n.ant-menu-submenu-disabled::after {\n border-color: transparent !important;\n}\n.ant-menu-item-disabled a,\n.ant-menu-submenu-disabled a {\n color: rgba(0, 0, 0, 0.25) !important;\n pointer-events: none;\n}\n.ant-menu-item-disabled > .ant-menu-submenu-title,\n.ant-menu-submenu-disabled > .ant-menu-submenu-title {\n color: rgba(0, 0, 0, 0.25) !important;\n cursor: not-allowed;\n}\n.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {\n background: rgba(0, 0, 0, 0.25) !important;\n}\n.ant-layout-header .ant-menu {\n line-height: inherit;\n}\n.ant-menu-inline-collapsed-tooltip a,\n.ant-menu-inline-collapsed-tooltip a:hover {\n color: #fff;\n}\n.ant-menu-light .ant-menu-item:hover,\n.ant-menu-light .ant-menu-item-active,\n.ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,\n.ant-menu-light .ant-menu-submenu-active,\n.ant-menu-light .ant-menu-submenu-title:hover {\n color: #1890ff;\n}\n.ant-menu.ant-menu-root:focus-visible {\n box-shadow: 0 0 0 2px #096dd9;\n}\n.ant-menu-dark .ant-menu-item:focus-visible,\n.ant-menu-dark .ant-menu-submenu-title:focus-visible {\n box-shadow: 0 0 0 2px #096dd9;\n}\n.ant-menu.ant-menu-dark,\n.ant-menu-dark .ant-menu-sub,\n.ant-menu.ant-menu-dark .ant-menu-sub {\n color: rgba(255, 255, 255, 0.65);\n background: #001529;\n}\n.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow {\n opacity: 0.45;\n transition: all 0.3s;\n}\n.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before {\n background: #fff;\n}\n.ant-menu-dark.ant-menu-submenu-popup {\n background: transparent;\n}\n.ant-menu-dark .ant-menu-inline.ant-menu-sub {\n background: #000c17;\n}\n.ant-menu-dark.ant-menu-horizontal {\n border-bottom: 0;\n}\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-item,\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-submenu {\n top: 0;\n margin-top: 0;\n padding: 0 20px;\n border-color: #001529;\n border-bottom: 0;\n}\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-item:hover {\n background-color: #1890ff;\n}\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-item > a::before {\n bottom: 0;\n}\n.ant-menu-dark .ant-menu-item,\n.ant-menu-dark .ant-menu-item-group-title,\n.ant-menu-dark .ant-menu-item > a,\n.ant-menu-dark .ant-menu-item > span > a {\n color: rgba(255, 255, 255, 0.65);\n}\n.ant-menu-dark.ant-menu-inline,\n.ant-menu-dark.ant-menu-vertical,\n.ant-menu-dark.ant-menu-vertical-left,\n.ant-menu-dark.ant-menu-vertical-right {\n border-right: 0;\n}\n.ant-menu-dark.ant-menu-inline .ant-menu-item,\n.ant-menu-dark.ant-menu-vertical .ant-menu-item,\n.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-dark.ant-menu-vertical-right .ant-menu-item {\n left: 0;\n margin-left: 0;\n border-right: 0;\n}\n.ant-menu-dark.ant-menu-inline .ant-menu-item::after,\n.ant-menu-dark.ant-menu-vertical .ant-menu-item::after,\n.ant-menu-dark.ant-menu-vertical-left .ant-menu-item::after,\n.ant-menu-dark.ant-menu-vertical-right .ant-menu-item::after {\n border-right: 0;\n}\n.ant-menu-dark.ant-menu-inline .ant-menu-item,\n.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title {\n width: 100%;\n}\n.ant-menu-dark .ant-menu-item:hover,\n.ant-menu-dark .ant-menu-item-active,\n.ant-menu-dark .ant-menu-submenu-active,\n.ant-menu-dark .ant-menu-submenu-open,\n.ant-menu-dark .ant-menu-submenu-selected,\n.ant-menu-dark .ant-menu-submenu-title:hover {\n color: #fff;\n background-color: transparent;\n}\n.ant-menu-dark .ant-menu-item:hover > a,\n.ant-menu-dark .ant-menu-item-active > a,\n.ant-menu-dark .ant-menu-submenu-active > a,\n.ant-menu-dark .ant-menu-submenu-open > a,\n.ant-menu-dark .ant-menu-submenu-selected > a,\n.ant-menu-dark .ant-menu-submenu-title:hover > a,\n.ant-menu-dark .ant-menu-item:hover > span > a,\n.ant-menu-dark .ant-menu-item-active > span > a,\n.ant-menu-dark .ant-menu-submenu-active > span > a,\n.ant-menu-dark .ant-menu-submenu-open > span > a,\n.ant-menu-dark .ant-menu-submenu-selected > span > a,\n.ant-menu-dark .ant-menu-submenu-title:hover > span > a {\n color: #fff;\n}\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow {\n opacity: 1;\n}\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before {\n background: #fff;\n}\n.ant-menu-dark .ant-menu-item:hover {\n background-color: transparent;\n}\n.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected {\n background-color: #1890ff;\n}\n.ant-menu-dark .ant-menu-item-selected {\n color: #fff;\n border-right: 0;\n}\n.ant-menu-dark .ant-menu-item-selected::after {\n border-right: 0;\n}\n.ant-menu-dark .ant-menu-item-selected > a,\n.ant-menu-dark .ant-menu-item-selected > span > a,\n.ant-menu-dark .ant-menu-item-selected > a:hover,\n.ant-menu-dark .ant-menu-item-selected > span > a:hover {\n color: #fff;\n}\n.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon,\n.ant-menu-dark .ant-menu-item-selected .anticon {\n color: #fff;\n}\n.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon + span,\n.ant-menu-dark .ant-menu-item-selected .anticon + span {\n color: #fff;\n}\n.ant-menu.ant-menu-dark .ant-menu-item-selected,\n.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected {\n background-color: #1890ff;\n}\n.ant-menu-dark .ant-menu-item-disabled,\n.ant-menu-dark .ant-menu-submenu-disabled,\n.ant-menu-dark .ant-menu-item-disabled > a,\n.ant-menu-dark .ant-menu-submenu-disabled > a,\n.ant-menu-dark .ant-menu-item-disabled > span > a,\n.ant-menu-dark .ant-menu-submenu-disabled > span > a {\n color: rgba(255, 255, 255, 0.35) !important;\n opacity: 0.8;\n}\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title,\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title {\n color: rgba(255, 255, 255, 0.35) !important;\n}\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {\n background: rgba(255, 255, 255, 0.35) !important;\n}\n.ant-menu.ant-menu-rtl {\n direction: rtl;\n text-align: right;\n}\n.ant-menu-rtl .ant-menu-item-group-title {\n text-align: right;\n}\n.ant-menu-rtl.ant-menu-inline,\n.ant-menu-rtl.ant-menu-vertical {\n border-right: none;\n border-left: 1px solid #f0f0f0;\n}\n.ant-menu-rtl.ant-menu-dark.ant-menu-inline,\n.ant-menu-rtl.ant-menu-dark.ant-menu-vertical {\n border-left: none;\n}\n.ant-menu-rtl.ant-menu-vertical.ant-menu-sub > .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub > .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub > .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub > .ant-menu-submenu {\n transform-origin: top right;\n}\n.ant-menu-rtl .ant-menu-item .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-item .anticon,\n.ant-menu-rtl .ant-menu-submenu-title .anticon {\n margin-right: auto;\n margin-left: 10px;\n}\n.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child > .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child > .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child > .anticon,\n.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child > .anticon {\n margin-left: 0;\n}\n.ant-menu-submenu-rtl.ant-menu-submenu-popup {\n transform-origin: 100% 0;\n}\n.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-rtl .ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow {\n right: auto;\n left: 16px;\n}\n.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::before {\n transform: rotate(-45deg) translateY(-2px);\n}\n.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {\n transform: rotate(45deg) translateY(2px);\n}\n.ant-menu-rtl.ant-menu-vertical .ant-menu-item::after,\n.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item::after,\n.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item::after,\n.ant-menu-rtl.ant-menu-inline .ant-menu-item::after {\n right: auto;\n left: 0;\n}\n.ant-menu-rtl.ant-menu-vertical .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,\n.ant-menu-rtl.ant-menu-inline .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title,\n.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,\n.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title,\n.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title {\n text-align: right;\n}\n.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title {\n padding-right: 0;\n padding-left: 34px;\n}\n.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title {\n padding-right: 16px;\n padding-left: 34px;\n}\n.ant-menu-rtl.ant-menu-inline-collapsed.ant-menu-vertical .ant-menu-submenu-title {\n padding: 0 calc(50% - 16px / 2);\n}\n.ant-menu-rtl .ant-menu-item-group-list .ant-menu-item,\n.ant-menu-rtl .ant-menu-item-group-list .ant-menu-submenu-title {\n padding: 0 28px 0 16px;\n}\n.ant-menu-sub.ant-menu-inline {\n border: 0;\n}\n.ant-menu-rtl.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title {\n padding-right: 32px;\n padding-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-tooltip {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n z-index: 1070;\n display: block;\n width: -moz-max-content;\n width: max-content;\n width: intrinsic;\n max-width: 250px;\n visibility: visible;\n}\n.ant-tooltip-content {\n position: relative;\n}\n.ant-tooltip-hidden {\n display: none;\n}\n.ant-tooltip-placement-top,\n.ant-tooltip-placement-topLeft,\n.ant-tooltip-placement-topRight {\n padding-bottom: 14.3137085px;\n}\n.ant-tooltip-placement-right,\n.ant-tooltip-placement-rightTop,\n.ant-tooltip-placement-rightBottom {\n padding-left: 14.3137085px;\n}\n.ant-tooltip-placement-bottom,\n.ant-tooltip-placement-bottomLeft,\n.ant-tooltip-placement-bottomRight {\n padding-top: 14.3137085px;\n}\n.ant-tooltip-placement-left,\n.ant-tooltip-placement-leftTop,\n.ant-tooltip-placement-leftBottom {\n padding-right: 14.3137085px;\n}\n.ant-tooltip-inner {\n min-width: 30px;\n min-height: 32px;\n padding: 6px 8px;\n color: #fff;\n text-align: left;\n text-decoration: none;\n word-wrap: break-word;\n background-color: rgba(0, 0, 0, 0.75);\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-tooltip-arrow {\n position: absolute;\n z-index: 2;\n display: block;\n width: 22px;\n height: 22px;\n overflow: hidden;\n background: transparent;\n pointer-events: none;\n}\n.ant-tooltip-arrow-content {\n --antd-arrow-background-color: linear-gradient(to right bottom, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.75));\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n width: 11.3137085px;\n height: 11.3137085px;\n margin: auto;\n content: '';\n pointer-events: auto;\n border-radius: 0 0 2px;\n pointer-events: none;\n}\n.ant-tooltip-arrow-content::before {\n position: absolute;\n top: -11.3137085px;\n left: -11.3137085px;\n width: 33.9411255px;\n height: 33.9411255px;\n background: var(--antd-arrow-background-color);\n background-repeat: no-repeat;\n background-position: -10px -10px;\n content: '';\n -webkit-clip-path: inset(33% 33%);\n clip-path: inset(33% 33%);\n -webkit-clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n}\n.ant-tooltip-placement-top .ant-tooltip-arrow,\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow,\n.ant-tooltip-placement-topRight .ant-tooltip-arrow {\n bottom: 0;\n transform: translateY(100%);\n}\n.ant-tooltip-placement-top .ant-tooltip-arrow-content,\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,\n.ant-tooltip-placement-topRight .ant-tooltip-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateY(-11px) rotate(45deg);\n}\n.ant-tooltip-placement-top .ant-tooltip-arrow {\n left: 50%;\n transform: translateY(100%) translateX(-50%);\n}\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow {\n left: 13px;\n}\n.ant-tooltip-placement-topRight .ant-tooltip-arrow {\n right: 13px;\n}\n.ant-tooltip-placement-right .ant-tooltip-arrow,\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow,\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {\n left: 0;\n transform: translateX(-100%);\n}\n.ant-tooltip-placement-right .ant-tooltip-arrow-content,\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content,\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content {\n box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(11px) rotate(135deg);\n}\n.ant-tooltip-placement-right .ant-tooltip-arrow {\n top: 50%;\n transform: translateX(-100%) translateY(-50%);\n}\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow {\n top: 5px;\n}\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {\n bottom: 5px;\n}\n.ant-tooltip-placement-left .ant-tooltip-arrow,\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow,\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {\n right: 0;\n transform: translateX(100%);\n}\n.ant-tooltip-placement-left .ant-tooltip-arrow-content,\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content,\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content {\n box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(-11px) rotate(315deg);\n}\n.ant-tooltip-placement-left .ant-tooltip-arrow {\n top: 50%;\n transform: translateX(100%) translateY(-50%);\n}\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow {\n top: 5px;\n}\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {\n bottom: 5px;\n}\n.ant-tooltip-placement-bottom .ant-tooltip-arrow,\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {\n top: 0;\n transform: translateY(-100%);\n}\n.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content {\n box-shadow: -3px -3px 7px rgba(0, 0, 0, 0.07);\n transform: translateY(11px) rotate(225deg);\n}\n.ant-tooltip-placement-bottom .ant-tooltip-arrow {\n left: 50%;\n transform: translateY(-100%) translateX(-50%);\n}\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow {\n left: 13px;\n}\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {\n right: 13px;\n}\n.ant-tooltip-pink .ant-tooltip-inner {\n background-color: #eb2f96;\n}\n.ant-tooltip-pink .ant-tooltip-arrow-content::before {\n background: #eb2f96;\n}\n.ant-tooltip-magenta .ant-tooltip-inner {\n background-color: #eb2f96;\n}\n.ant-tooltip-magenta .ant-tooltip-arrow-content::before {\n background: #eb2f96;\n}\n.ant-tooltip-red .ant-tooltip-inner {\n background-color: #f5222d;\n}\n.ant-tooltip-red .ant-tooltip-arrow-content::before {\n background: #f5222d;\n}\n.ant-tooltip-volcano .ant-tooltip-inner {\n background-color: #fa541c;\n}\n.ant-tooltip-volcano .ant-tooltip-arrow-content::before {\n background: #fa541c;\n}\n.ant-tooltip-orange .ant-tooltip-inner {\n background-color: #fa8c16;\n}\n.ant-tooltip-orange .ant-tooltip-arrow-content::before {\n background: #fa8c16;\n}\n.ant-tooltip-yellow .ant-tooltip-inner {\n background-color: #fadb14;\n}\n.ant-tooltip-yellow .ant-tooltip-arrow-content::before {\n background: #fadb14;\n}\n.ant-tooltip-gold .ant-tooltip-inner {\n background-color: #faad14;\n}\n.ant-tooltip-gold .ant-tooltip-arrow-content::before {\n background: #faad14;\n}\n.ant-tooltip-cyan .ant-tooltip-inner {\n background-color: #13c2c2;\n}\n.ant-tooltip-cyan .ant-tooltip-arrow-content::before {\n background: #13c2c2;\n}\n.ant-tooltip-lime .ant-tooltip-inner {\n background-color: #a0d911;\n}\n.ant-tooltip-lime .ant-tooltip-arrow-content::before {\n background: #a0d911;\n}\n.ant-tooltip-green .ant-tooltip-inner {\n background-color: #52c41a;\n}\n.ant-tooltip-green .ant-tooltip-arrow-content::before {\n background: #52c41a;\n}\n.ant-tooltip-blue .ant-tooltip-inner {\n background-color: #1890ff;\n}\n.ant-tooltip-blue .ant-tooltip-arrow-content::before {\n background: #1890ff;\n}\n.ant-tooltip-geekblue .ant-tooltip-inner {\n background-color: #2f54eb;\n}\n.ant-tooltip-geekblue .ant-tooltip-arrow-content::before {\n background: #2f54eb;\n}\n.ant-tooltip-purple .ant-tooltip-inner {\n background-color: #722ed1;\n}\n.ant-tooltip-purple .ant-tooltip-arrow-content::before {\n background: #722ed1;\n}\n.ant-tooltip-rtl {\n direction: rtl;\n}\n.ant-tooltip-rtl .ant-tooltip-inner {\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-space {\n display: inline-flex;\n}\n.ant-space-vertical {\n flex-direction: column;\n}\n.ant-space-align-center {\n align-items: center;\n}\n.ant-space-align-start {\n align-items: flex-start;\n}\n.ant-space-align-end {\n align-items: flex-end;\n}\n.ant-space-align-baseline {\n align-items: baseline;\n}\n.ant-space-item:empty {\n display: none;\n}\n.ant-space-compact {\n display: inline-flex;\n}\n.ant-space-compact-block {\n display: flex;\n width: 100%;\n}\n.ant-space-compact-vertical {\n flex-direction: column;\n}\n.ant-space-rtl {\n direction: rtl;\n}\n.ant-space-compact-rtl {\n direction: rtl;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-picker-calendar {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n background: #fff;\n}\n.ant-picker-calendar-header {\n display: flex;\n justify-content: flex-end;\n padding: 12px 0;\n}\n.ant-picker-calendar-header .ant-picker-calendar-year-select {\n min-width: 80px;\n}\n.ant-picker-calendar-header .ant-picker-calendar-month-select {\n min-width: 70px;\n margin-left: 8px;\n}\n.ant-picker-calendar-header .ant-picker-calendar-mode-switch {\n margin-left: 8px;\n}\n.ant-picker-calendar .ant-picker-panel {\n background: #fff;\n border: 0;\n border-top: 1px solid #f0f0f0;\n border-radius: 0;\n}\n.ant-picker-calendar .ant-picker-panel .ant-picker-month-panel,\n.ant-picker-calendar .ant-picker-panel .ant-picker-date-panel {\n width: auto;\n}\n.ant-picker-calendar .ant-picker-panel .ant-picker-body {\n padding: 8px 0;\n}\n.ant-picker-calendar .ant-picker-panel .ant-picker-content {\n width: 100%;\n}\n.ant-picker-calendar-mini {\n border-radius: 2px;\n}\n.ant-picker-calendar-mini .ant-picker-calendar-header {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-picker-calendar-mini .ant-picker-panel {\n border-radius: 0 0 2px 2px;\n}\n.ant-picker-calendar-mini .ant-picker-content {\n height: 256px;\n}\n.ant-picker-calendar-mini .ant-picker-content th {\n height: auto;\n padding: 0;\n line-height: 18px;\n}\n.ant-picker-calendar-mini .ant-picker-cell::before {\n pointer-events: none;\n}\n.ant-picker-calendar-full .ant-picker-panel {\n display: block;\n width: 100%;\n text-align: right;\n background: #fff;\n border: 0;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-body td {\n padding: 0;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th {\n height: auto;\n padding: 0 12px 5px 0;\n line-height: 18px;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell::before {\n display: none;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:hover .ant-picker-calendar-date {\n background: #f5f5f5;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell .ant-picker-calendar-date-today::before {\n display: none;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today {\n background: #e6f7ff;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date .ant-picker-calendar-date-value,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date .ant-picker-calendar-date-value,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today .ant-picker-calendar-date-value,\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today .ant-picker-calendar-date-value {\n color: #1890ff;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date {\n display: block;\n width: auto;\n height: auto;\n margin: 0 4px;\n padding: 4px 8px 0;\n border: 0;\n border-top: 2px solid #f0f0f0;\n border-radius: 0;\n transition: background 0.3s;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-value {\n line-height: 24px;\n transition: color 0.3s;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content {\n position: static;\n width: auto;\n height: 86px;\n overflow-y: auto;\n color: rgba(0, 0, 0, 0.85);\n line-height: 1.5715;\n text-align: left;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today {\n border-color: #1890ff;\n}\n.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today .ant-picker-calendar-date-value {\n color: rgba(0, 0, 0, 0.85);\n}\n@media only screen and (max-width: 480px) {\n .ant-picker-calendar-header {\n display: block;\n }\n .ant-picker-calendar-header .ant-picker-calendar-year-select {\n width: 50%;\n }\n .ant-picker-calendar-header .ant-picker-calendar-month-select {\n width: calc(50% - 8px);\n }\n .ant-picker-calendar-header .ant-picker-calendar-mode-switch {\n width: 100%;\n margin-top: 8px;\n margin-left: 0;\n }\n .ant-picker-calendar-header .ant-picker-calendar-mode-switch > label {\n width: 50%;\n text-align: center;\n }\n}\n.ant-picker-calendar-rtl {\n direction: rtl;\n}\n.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-month-select {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-mode-switch {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel {\n text-align: left;\n}\n.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th {\n padding: 0 0 5px 12px;\n}\n.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content {\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-picker-status-error.ant-picker,\n.ant-picker-status-error.ant-picker:not([disabled]):hover {\n background-color: #fff;\n border-color: #ff4d4f;\n}\n.ant-picker-status-error.ant-picker-focused,\n.ant-picker-status-error.ant-picker:focus {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-picker-status-error.ant-picker .ant-picker-active-bar {\n background: #ff7875;\n}\n.ant-picker-status-warning.ant-picker,\n.ant-picker-status-warning.ant-picker:not([disabled]):hover {\n background-color: #fff;\n border-color: #faad14;\n}\n.ant-picker-status-warning.ant-picker-focused,\n.ant-picker-status-warning.ant-picker:focus {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-picker-status-warning.ant-picker .ant-picker-active-bar {\n background: #ffc53d;\n}\n.ant-picker {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n padding: 4px 11px 4px;\n position: relative;\n display: inline-flex;\n align-items: center;\n background: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: border 0.3s, box-shadow 0.3s;\n}\n.ant-picker:hover,\n.ant-picker-focused {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-picker-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-picker.ant-picker-disabled {\n background: #f5f5f5;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-picker.ant-picker-disabled .ant-picker-suffix {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-picker.ant-picker-borderless {\n background-color: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n}\n.ant-picker-input {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 100%;\n}\n.ant-picker-input > input {\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n flex: auto;\n min-width: 1px;\n height: auto;\n padding: 0;\n background: transparent;\n border: 0;\n}\n.ant-picker-input > input::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-picker-input > input:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-picker-input > input::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-picker-input > input:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-picker-input > input:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-picker-input > input:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-picker-input > input:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-picker-input > input:focus,\n.ant-picker-input > input-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-picker-input > input-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-picker-input > input-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-picker-input > input[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-picker-input > input[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-picker-input > input-borderless,\n.ant-picker-input > input-borderless:hover,\n.ant-picker-input > input-borderless:focus,\n.ant-picker-input > input-borderless-focused,\n.ant-picker-input > input-borderless-disabled,\n.ant-picker-input > input-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-picker-input > input {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-picker-input > input-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-picker-input > input-sm {\n padding: 0px 7px;\n}\n.ant-picker-input > input:focus {\n box-shadow: none;\n}\n.ant-picker-input > input[disabled] {\n background: transparent;\n}\n.ant-picker-input:hover .ant-picker-clear {\n opacity: 1;\n}\n.ant-picker-input-placeholder > input {\n color: #bfbfbf;\n}\n.ant-picker-large {\n padding: 6.5px 11px 6.5px;\n}\n.ant-picker-large .ant-picker-input > input {\n font-size: 16px;\n}\n.ant-picker-small {\n padding: 0px 7px 0px;\n}\n.ant-picker-suffix {\n display: flex;\n flex: none;\n align-self: center;\n margin-left: 4px;\n color: rgba(0, 0, 0, 0.25);\n line-height: 1;\n pointer-events: none;\n}\n.ant-picker-suffix > * {\n vertical-align: top;\n}\n.ant-picker-suffix > *:not(:last-child) {\n margin-right: 8px;\n}\n.ant-picker-clear {\n position: absolute;\n top: 50%;\n right: 0;\n color: rgba(0, 0, 0, 0.25);\n line-height: 1;\n background: #fff;\n transform: translateY(-50%);\n cursor: pointer;\n opacity: 0;\n transition: opacity 0.3s, color 0.3s;\n}\n.ant-picker-clear > * {\n vertical-align: top;\n}\n.ant-picker-clear:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-picker-separator {\n position: relative;\n display: inline-block;\n width: 1em;\n height: 16px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 16px;\n vertical-align: top;\n cursor: default;\n}\n.ant-picker-focused .ant-picker-separator {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-picker-disabled .ant-picker-range-separator .ant-picker-separator {\n cursor: not-allowed;\n}\n.ant-picker-range {\n position: relative;\n display: inline-flex;\n}\n.ant-picker-range .ant-picker-clear {\n right: 11px;\n}\n.ant-picker-range:hover .ant-picker-clear {\n opacity: 1;\n}\n.ant-picker-range .ant-picker-active-bar {\n bottom: -1px;\n height: 2px;\n margin-left: 11px;\n background: #1890ff;\n opacity: 0;\n transition: all 0.3s ease-out;\n pointer-events: none;\n}\n.ant-picker-range.ant-picker-focused .ant-picker-active-bar {\n opacity: 1;\n}\n.ant-picker-range-separator {\n align-items: center;\n padding: 0 8px;\n line-height: 1;\n}\n.ant-picker-range.ant-picker-small .ant-picker-clear {\n right: 7px;\n}\n.ant-picker-range.ant-picker-small .ant-picker-active-bar {\n margin-left: 7px;\n}\n.ant-picker-dropdown {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n}\n.ant-picker-dropdown-hidden {\n display: none;\n}\n.ant-picker-dropdown-placement-bottomLeft .ant-picker-range-arrow {\n top: 2.58561808px;\n display: block;\n transform: rotate(-135deg) translateY(1px);\n}\n.ant-picker-dropdown-placement-topLeft .ant-picker-range-arrow {\n bottom: 2.58561808px;\n display: block;\n transform: rotate(45deg);\n}\n.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topLeft,\n.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topRight,\n.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topLeft,\n.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topRight {\n animation-name: antSlideDownIn;\n}\n.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomLeft,\n.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomRight,\n.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomLeft,\n.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomRight {\n animation-name: antSlideUpIn;\n}\n.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topLeft,\n.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topRight {\n animation-name: antSlideDownOut;\n}\n.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomLeft,\n.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomRight {\n animation-name: antSlideUpOut;\n}\n.ant-picker-dropdown-range {\n padding: 7.54247233px 0;\n}\n.ant-picker-dropdown-range-hidden {\n display: none;\n}\n.ant-picker-dropdown .ant-picker-panel > .ant-picker-time-panel {\n padding-top: 4px;\n}\n.ant-picker-ranges {\n margin-bottom: 0;\n padding: 4px 12px;\n overflow: hidden;\n line-height: 34px;\n text-align: left;\n list-style: none;\n}\n.ant-picker-ranges > li {\n display: inline-block;\n}\n.ant-picker-ranges .ant-picker-preset > .ant-tag-blue {\n color: #1890ff;\n background: #e6f7ff;\n border-color: #91d5ff;\n cursor: pointer;\n}\n.ant-picker-ranges .ant-picker-ok {\n float: right;\n margin-left: 8px;\n}\n.ant-picker-range-wrapper {\n display: flex;\n}\n.ant-picker-range-arrow {\n position: absolute;\n z-index: 1;\n width: 11.3137085px;\n height: 11.3137085px;\n margin-left: 16.5px;\n box-shadow: 2px 2px 6px -2px rgba(0, 0, 0, 0.1);\n transition: left 0.3s ease-out;\n border-radius: 0 0 2px;\n pointer-events: none;\n}\n.ant-picker-range-arrow::before {\n position: absolute;\n top: -11.3137085px;\n left: -11.3137085px;\n width: 33.9411255px;\n height: 33.9411255px;\n background: #fff;\n background-repeat: no-repeat;\n background-position: -10px -10px;\n content: '';\n -webkit-clip-path: inset(33% 33%);\n clip-path: inset(33% 33%);\n -webkit-clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n}\n.ant-picker-panel-container {\n overflow: hidden;\n vertical-align: top;\n background: #fff;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n transition: margin 0.3s;\n}\n.ant-picker-panel-container .ant-picker-panels {\n display: inline-flex;\n flex-wrap: nowrap;\n direction: ltr;\n}\n.ant-picker-panel-container .ant-picker-panel {\n vertical-align: top;\n background: transparent;\n border-width: 0 0 1px 0;\n border-radius: 0;\n}\n.ant-picker-panel-container .ant-picker-panel .ant-picker-content,\n.ant-picker-panel-container .ant-picker-panel table {\n text-align: center;\n}\n.ant-picker-panel-container .ant-picker-panel-focused {\n border-color: #f0f0f0;\n}\n.ant-picker-compact-item:not(.ant-picker-compact-last-item):not(.ant-picker-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-picker-compact-item:not(.ant-picker-compact-last-item).ant-picker-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-picker-compact-item:hover,\n.ant-picker-compact-item:focus,\n.ant-picker-compact-item:active {\n z-index: 2;\n}\n.ant-picker-compact-item.ant-picker-focused {\n z-index: 2;\n}\n.ant-picker-compact-item[disabled] {\n z-index: 0;\n}\n.ant-picker-compact-item:not(.ant-picker-compact-first-item):not(.ant-picker-compact-last-item).ant-picker {\n border-radius: 0;\n}\n.ant-picker-compact-item.ant-picker.ant-picker-compact-first-item:not(.ant-picker-compact-last-item):not(.ant-picker-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-picker-compact-item.ant-picker.ant-picker-compact-last-item:not(.ant-picker-compact-first-item):not(.ant-picker-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-picker-compact-item.ant-picker.ant-picker-compact-item-rtl.ant-picker-compact-first-item:not(.ant-picker-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-picker-compact-item.ant-picker.ant-picker-compact-item-rtl.ant-picker-compact-last-item:not(.ant-picker-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-picker-panel {\n display: inline-flex;\n flex-direction: column;\n text-align: center;\n background: #fff;\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n outline: none;\n}\n.ant-picker-panel-focused {\n border-color: #1890ff;\n}\n.ant-picker-decade-panel,\n.ant-picker-year-panel,\n.ant-picker-quarter-panel,\n.ant-picker-month-panel,\n.ant-picker-week-panel,\n.ant-picker-date-panel,\n.ant-picker-time-panel {\n display: flex;\n flex-direction: column;\n width: 280px;\n}\n.ant-picker-header {\n display: flex;\n padding: 0 8px;\n color: rgba(0, 0, 0, 0.85);\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-picker-header > * {\n flex: none;\n}\n.ant-picker-header button {\n padding: 0;\n color: rgba(0, 0, 0, 0.25);\n line-height: 40px;\n background: transparent;\n border: 0;\n cursor: pointer;\n transition: color 0.3s;\n}\n.ant-picker-header > button {\n min-width: 1.6em;\n font-size: 14px;\n}\n.ant-picker-header > button:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-picker-header-view {\n flex: auto;\n font-weight: 500;\n line-height: 40px;\n}\n.ant-picker-header-view button {\n color: inherit;\n font-weight: inherit;\n}\n.ant-picker-header-view button:not(:first-child) {\n margin-left: 8px;\n}\n.ant-picker-header-view button:hover {\n color: #1890ff;\n}\n.ant-picker-prev-icon,\n.ant-picker-next-icon,\n.ant-picker-super-prev-icon,\n.ant-picker-super-next-icon {\n position: relative;\n display: inline-block;\n width: 7px;\n height: 7px;\n}\n.ant-picker-prev-icon::before,\n.ant-picker-next-icon::before,\n.ant-picker-super-prev-icon::before,\n.ant-picker-super-next-icon::before {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n width: 7px;\n height: 7px;\n border: 0 solid currentcolor;\n border-width: 1.5px 0 0 1.5px;\n content: '';\n}\n.ant-picker-super-prev-icon::after,\n.ant-picker-super-next-icon::after {\n position: absolute;\n top: 4px;\n left: 4px;\n display: inline-block;\n width: 7px;\n height: 7px;\n border: 0 solid currentcolor;\n border-width: 1.5px 0 0 1.5px;\n content: '';\n}\n.ant-picker-prev-icon,\n.ant-picker-super-prev-icon {\n transform: rotate(-45deg);\n}\n.ant-picker-next-icon,\n.ant-picker-super-next-icon {\n transform: rotate(135deg);\n}\n.ant-picker-content {\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n}\n.ant-picker-content th,\n.ant-picker-content td {\n position: relative;\n min-width: 24px;\n font-weight: 400;\n}\n.ant-picker-content th {\n height: 30px;\n color: rgba(0, 0, 0, 0.85);\n line-height: 30px;\n}\n.ant-picker-cell {\n padding: 3px 0;\n color: rgba(0, 0, 0, 0.25);\n cursor: pointer;\n}\n.ant-picker-cell-in-view {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-picker-cell::before {\n position: absolute;\n top: 50%;\n right: 0;\n left: 0;\n z-index: 1;\n height: 24px;\n transform: translateY(-50%);\n transition: all 0.3s;\n content: '';\n}\n.ant-picker-cell .ant-picker-cell-inner {\n position: relative;\n z-index: 2;\n display: inline-block;\n min-width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 2px;\n transition: background 0.3s, border 0.3s;\n}\n.ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner,\n.ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner {\n background: #f5f5f5;\n}\n.ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n border: 1px solid #1890ff;\n border-radius: 2px;\n content: '';\n}\n.ant-picker-cell-in-view.ant-picker-cell-in-range {\n position: relative;\n}\n.ant-picker-cell-in-view.ant-picker-cell-in-range::before {\n background: #e6f7ff;\n}\n.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner,\n.ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,\n.ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner {\n color: #fff;\n background: #1890ff;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single)::before,\n.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single)::before {\n background: #e6f7ff;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-start::before {\n left: 50%;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-end::before {\n right: 50%;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end)::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end)::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start-single::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-end-near-hover::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-start-near-hover::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-end-single::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-in-range)::after {\n position: absolute;\n top: 50%;\n z-index: 0;\n height: 24px;\n border-top: 1px dashed #7ec1ff;\n border-bottom: 1px dashed #7ec1ff;\n transform: translateY(-50%);\n transition: all 0.3s;\n content: '';\n}\n.ant-picker-cell-range-hover-start::after,\n.ant-picker-cell-range-hover-end::after,\n.ant-picker-cell-range-hover::after {\n right: 0;\n left: 2px;\n}\n.ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover::before,\n.ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-hover::before,\n.ant-picker-cell-in-view.ant-picker-cell-range-end.ant-picker-cell-range-hover::before,\n.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single).ant-picker-cell-range-hover-start::before,\n.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single).ant-picker-cell-range-hover-end::before,\n.ant-picker-panel > :not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start::before,\n.ant-picker-panel > :not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end::before {\n background: #cbe6ff;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner {\n border-radius: 2px 0 0 2px;\n}\n.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner {\n border-radius: 0 2px 2px 0;\n}\n.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner::after,\n.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner::after {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: -1;\n background: #cbe6ff;\n transition: all 0.3s;\n content: '';\n}\n.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner::after {\n right: -6px;\n left: 0;\n}\n.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner::after {\n right: 0;\n left: -6px;\n}\n.ant-picker-cell-range-hover.ant-picker-cell-range-start::after {\n right: 50%;\n}\n.ant-picker-cell-range-hover.ant-picker-cell-range-end::after {\n left: 50%;\n}\ntr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:first-child::after,\ntr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child::after,\n.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range)::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-start::after {\n left: 6px;\n border-left: 1px dashed #7ec1ff;\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\ntr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:last-child::after,\ntr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::after,\n.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range)::after,\n.ant-picker-cell-in-view.ant-picker-cell-range-hover-end::after {\n right: 6px;\n border-right: 1px dashed #7ec1ff;\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-picker-cell-disabled {\n color: rgba(0, 0, 0, 0.25);\n pointer-events: none;\n}\n.ant-picker-cell-disabled .ant-picker-cell-inner {\n background: transparent;\n}\n.ant-picker-cell-disabled::before {\n background: rgba(0, 0, 0, 0.04);\n}\n.ant-picker-cell-disabled.ant-picker-cell-today .ant-picker-cell-inner::before {\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-picker-decade-panel .ant-picker-content,\n.ant-picker-year-panel .ant-picker-content,\n.ant-picker-quarter-panel .ant-picker-content,\n.ant-picker-month-panel .ant-picker-content {\n height: 264px;\n}\n.ant-picker-decade-panel .ant-picker-cell-inner,\n.ant-picker-year-panel .ant-picker-cell-inner,\n.ant-picker-quarter-panel .ant-picker-cell-inner,\n.ant-picker-month-panel .ant-picker-cell-inner {\n padding: 0 8px;\n}\n.ant-picker-quarter-panel .ant-picker-content {\n height: 56px;\n}\n.ant-picker-footer {\n width: -moz-min-content;\n width: min-content;\n min-width: 100%;\n line-height: 38px;\n text-align: center;\n border-bottom: 1px solid transparent;\n}\n.ant-picker-panel .ant-picker-footer {\n border-top: 1px solid #f0f0f0;\n}\n.ant-picker-footer-extra {\n padding: 0 12px;\n line-height: 38px;\n text-align: left;\n}\n.ant-picker-footer-extra:not(:last-child) {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-picker-now {\n text-align: left;\n}\n.ant-picker-today-btn {\n color: #1890ff;\n}\n.ant-picker-today-btn:hover {\n color: #40a9ff;\n}\n.ant-picker-today-btn:active {\n color: #096dd9;\n}\n.ant-picker-today-btn.ant-picker-today-btn-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-picker-decade-panel .ant-picker-cell-inner {\n padding: 0 4px;\n}\n.ant-picker-decade-panel .ant-picker-cell::before {\n display: none;\n}\n.ant-picker-year-panel .ant-picker-body,\n.ant-picker-quarter-panel .ant-picker-body,\n.ant-picker-month-panel .ant-picker-body {\n padding: 0 8px;\n}\n.ant-picker-year-panel .ant-picker-cell-inner,\n.ant-picker-quarter-panel .ant-picker-cell-inner,\n.ant-picker-month-panel .ant-picker-cell-inner {\n width: 60px;\n}\n.ant-picker-year-panel .ant-picker-cell-range-hover-start::after,\n.ant-picker-quarter-panel .ant-picker-cell-range-hover-start::after,\n.ant-picker-month-panel .ant-picker-cell-range-hover-start::after {\n left: 14px;\n border-left: 1px dashed #7ec1ff;\n border-radius: 2px 0 0 2px;\n}\n.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-start::after,\n.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-start::after,\n.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-start::after {\n right: 14px;\n border-right: 1px dashed #7ec1ff;\n border-radius: 0 2px 2px 0;\n}\n.ant-picker-year-panel .ant-picker-cell-range-hover-end::after,\n.ant-picker-quarter-panel .ant-picker-cell-range-hover-end::after,\n.ant-picker-month-panel .ant-picker-cell-range-hover-end::after {\n right: 14px;\n border-right: 1px dashed #7ec1ff;\n border-radius: 0 2px 2px 0;\n}\n.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-end::after,\n.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-end::after,\n.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-end::after {\n left: 14px;\n border-left: 1px dashed #7ec1ff;\n border-radius: 2px 0 0 2px;\n}\n.ant-picker-week-panel .ant-picker-body {\n padding: 8px 12px;\n}\n.ant-picker-week-panel .ant-picker-cell:hover .ant-picker-cell-inner,\n.ant-picker-week-panel .ant-picker-cell-selected .ant-picker-cell-inner,\n.ant-picker-week-panel .ant-picker-cell .ant-picker-cell-inner {\n background: transparent !important;\n}\n.ant-picker-week-panel-row td {\n transition: background 0.3s;\n}\n.ant-picker-week-panel-row:hover td {\n background: #f5f5f5;\n}\n.ant-picker-week-panel-row-selected td,\n.ant-picker-week-panel-row-selected:hover td {\n background: #1890ff;\n}\n.ant-picker-week-panel-row-selected td.ant-picker-cell-week,\n.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-week {\n color: rgba(255, 255, 255, 0.5);\n}\n.ant-picker-week-panel-row-selected td.ant-picker-cell-today .ant-picker-cell-inner::before,\n.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-today .ant-picker-cell-inner::before {\n border-color: #fff;\n}\n.ant-picker-week-panel-row-selected td .ant-picker-cell-inner,\n.ant-picker-week-panel-row-selected:hover td .ant-picker-cell-inner {\n color: #fff;\n}\n.ant-picker-date-panel .ant-picker-body {\n padding: 8px 12px;\n}\n.ant-picker-date-panel .ant-picker-content {\n width: 252px;\n}\n.ant-picker-date-panel .ant-picker-content th {\n width: 36px;\n}\n.ant-picker-datetime-panel {\n display: flex;\n}\n.ant-picker-datetime-panel .ant-picker-time-panel {\n border-left: 1px solid #f0f0f0;\n}\n.ant-picker-datetime-panel .ant-picker-date-panel,\n.ant-picker-datetime-panel .ant-picker-time-panel {\n transition: opacity 0.3s;\n}\n.ant-picker-datetime-panel-active .ant-picker-date-panel,\n.ant-picker-datetime-panel-active .ant-picker-time-panel {\n opacity: 0.3;\n}\n.ant-picker-datetime-panel-active .ant-picker-date-panel-active,\n.ant-picker-datetime-panel-active .ant-picker-time-panel-active {\n opacity: 1;\n}\n.ant-picker-time-panel {\n width: auto;\n min-width: auto;\n}\n.ant-picker-time-panel .ant-picker-content {\n display: flex;\n flex: auto;\n height: 224px;\n}\n.ant-picker-time-panel-column {\n flex: 1 0 auto;\n width: 56px;\n margin: 0;\n padding: 0;\n overflow-y: hidden;\n text-align: left;\n list-style: none;\n transition: background 0.3s;\n}\n.ant-picker-time-panel-column::after {\n display: block;\n height: 196px;\n content: '';\n}\n.ant-picker-datetime-panel .ant-picker-time-panel-column::after {\n height: 198px;\n}\n.ant-picker-time-panel-column:not(:first-child) {\n border-left: 1px solid #f0f0f0;\n}\n.ant-picker-time-panel-column-active {\n background: rgba(230, 247, 255, 0.2);\n}\n.ant-picker-time-panel-column:hover {\n overflow-y: auto;\n}\n.ant-picker-time-panel-column > li {\n margin: 0;\n padding: 0;\n}\n.ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner {\n display: block;\n width: 100%;\n height: 28px;\n margin: 0;\n padding: 0 0 0 14px;\n color: rgba(0, 0, 0, 0.85);\n line-height: 28px;\n border-radius: 0;\n cursor: pointer;\n transition: background 0.3s;\n}\n.ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover {\n background: #f5f5f5;\n}\n.ant-picker-time-panel-column > li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner {\n background: #e6f7ff;\n}\n.ant-picker-time-panel-column > li.ant-picker-time-panel-cell-disabled .ant-picker-time-panel-cell-inner {\n color: rgba(0, 0, 0, 0.25);\n background: transparent;\n cursor: not-allowed;\n}\n/* stylelint-disable selector-type-no-unknown,selector-no-vendor-prefix */\n_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,\n:root .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,\n_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell,\n:root .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell {\n padding: 21px 0;\n}\n.ant-picker-rtl {\n direction: rtl;\n}\n.ant-picker-rtl .ant-picker-suffix {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-picker-rtl .ant-picker-clear {\n right: auto;\n left: 0;\n}\n.ant-picker-rtl .ant-picker-separator {\n transform: rotate(180deg);\n}\n.ant-picker-panel-rtl .ant-picker-header-view button:not(:first-child) {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-picker-rtl.ant-picker-range .ant-picker-clear {\n right: auto;\n left: 11px;\n}\n.ant-picker-rtl.ant-picker-range .ant-picker-active-bar {\n margin-right: 11px;\n margin-left: 0;\n}\n.ant-picker-rtl.ant-picker-range.ant-picker-small .ant-picker-active-bar {\n margin-right: 7px;\n}\n.ant-picker-dropdown-rtl .ant-picker-ranges {\n text-align: right;\n}\n.ant-picker-dropdown-rtl .ant-picker-ranges .ant-picker-ok {\n float: left;\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-picker-panel-rtl {\n direction: rtl;\n}\n.ant-picker-panel-rtl .ant-picker-prev-icon,\n.ant-picker-panel-rtl .ant-picker-super-prev-icon {\n transform: rotate(135deg);\n}\n.ant-picker-panel-rtl .ant-picker-next-icon,\n.ant-picker-panel-rtl .ant-picker-super-next-icon {\n transform: rotate(-45deg);\n}\n.ant-picker-cell .ant-picker-cell-inner {\n position: relative;\n z-index: 2;\n display: inline-block;\n min-width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 2px;\n transition: background 0.3s, border 0.3s;\n}\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start::before {\n right: 50%;\n left: 0;\n}\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end::before {\n right: 0;\n left: 50%;\n}\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-end::before {\n right: 50%;\n left: 50%;\n}\n.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner::after {\n right: 0;\n left: -6px;\n}\n.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner::after {\n right: -6px;\n left: 0;\n}\n.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-start::after {\n right: 0;\n left: 50%;\n}\n.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-end::after {\n right: 50%;\n left: 0;\n}\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner {\n border-radius: 0 2px 2px 0;\n}\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner {\n border-radius: 2px 0 0 2px;\n}\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):first-child::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range)::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-start::after {\n right: 6px;\n left: 0;\n border-right: 1px dashed #7ec1ff;\n border-left: none;\n border-radius: 0 2px 2px 0;\n}\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):last-child::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range)::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-end::after {\n right: 0;\n left: 6px;\n border-right: none;\n border-left: 1px dashed #7ec1ff;\n border-radius: 2px 0 0 2px;\n}\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::after,\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover)::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-end.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover)::after,\n.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-start.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover)::after,\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-start:last-child::after,\n.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-end:first-child::after {\n right: 6px;\n left: 6px;\n border-right: 1px dashed #7ec1ff;\n border-left: 1px dashed #7ec1ff;\n border-radius: 2px;\n}\n.ant-picker-dropdown-rtl .ant-picker-footer-extra {\n direction: rtl;\n text-align: right;\n}\n.ant-picker-panel-rtl .ant-picker-time-panel {\n direction: ltr;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-tag {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n height: auto;\n margin-right: 8px;\n padding: 0 7px;\n font-size: 12px;\n line-height: 20px;\n white-space: nowrap;\n background: #fafafa;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n opacity: 1;\n transition: all 0.3s;\n}\n.ant-tag,\n.ant-tag a,\n.ant-tag a:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-tag > a:first-child:last-child {\n display: inline-block;\n margin: 0 -8px;\n padding: 0 8px;\n}\n.ant-tag-close-icon {\n margin-left: 3px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 10px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-tag-close-icon:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-tag-has-color {\n border-color: transparent;\n}\n.ant-tag-has-color,\n.ant-tag-has-color a,\n.ant-tag-has-color a:hover,\n.ant-tag-has-color .anticon-close,\n.ant-tag-has-color .anticon-close:hover {\n color: #fff;\n}\n.ant-tag-checkable {\n background-color: transparent;\n border-color: transparent;\n cursor: pointer;\n}\n.ant-tag-checkable:not(.ant-tag-checkable-checked):hover {\n color: #1890ff;\n}\n.ant-tag-checkable:active,\n.ant-tag-checkable-checked {\n color: #fff;\n}\n.ant-tag-checkable-checked {\n background-color: #1890ff;\n}\n.ant-tag-checkable:active {\n background-color: #096dd9;\n}\n.ant-tag-hidden {\n display: none;\n}\n.ant-tag-pink {\n color: #c41d7f;\n background: #fff0f6;\n border-color: #ffadd2;\n}\n.ant-tag-pink-inverse {\n color: #fff;\n background: #eb2f96;\n border-color: #eb2f96;\n}\n.ant-tag-magenta {\n color: #c41d7f;\n background: #fff0f6;\n border-color: #ffadd2;\n}\n.ant-tag-magenta-inverse {\n color: #fff;\n background: #eb2f96;\n border-color: #eb2f96;\n}\n.ant-tag-red {\n color: #cf1322;\n background: #fff1f0;\n border-color: #ffa39e;\n}\n.ant-tag-red-inverse {\n color: #fff;\n background: #f5222d;\n border-color: #f5222d;\n}\n.ant-tag-volcano {\n color: #d4380d;\n background: #fff2e8;\n border-color: #ffbb96;\n}\n.ant-tag-volcano-inverse {\n color: #fff;\n background: #fa541c;\n border-color: #fa541c;\n}\n.ant-tag-orange {\n color: #d46b08;\n background: #fff7e6;\n border-color: #ffd591;\n}\n.ant-tag-orange-inverse {\n color: #fff;\n background: #fa8c16;\n border-color: #fa8c16;\n}\n.ant-tag-yellow {\n color: #d4b106;\n background: #feffe6;\n border-color: #fffb8f;\n}\n.ant-tag-yellow-inverse {\n color: #fff;\n background: #fadb14;\n border-color: #fadb14;\n}\n.ant-tag-gold {\n color: #d48806;\n background: #fffbe6;\n border-color: #ffe58f;\n}\n.ant-tag-gold-inverse {\n color: #fff;\n background: #faad14;\n border-color: #faad14;\n}\n.ant-tag-cyan {\n color: #08979c;\n background: #e6fffb;\n border-color: #87e8de;\n}\n.ant-tag-cyan-inverse {\n color: #fff;\n background: #13c2c2;\n border-color: #13c2c2;\n}\n.ant-tag-lime {\n color: #7cb305;\n background: #fcffe6;\n border-color: #eaff8f;\n}\n.ant-tag-lime-inverse {\n color: #fff;\n background: #a0d911;\n border-color: #a0d911;\n}\n.ant-tag-green {\n color: #389e0d;\n background: #f6ffed;\n border-color: #b7eb8f;\n}\n.ant-tag-green-inverse {\n color: #fff;\n background: #52c41a;\n border-color: #52c41a;\n}\n.ant-tag-blue {\n color: #096dd9;\n background: #e6f7ff;\n border-color: #91d5ff;\n}\n.ant-tag-blue-inverse {\n color: #fff;\n background: #1890ff;\n border-color: #1890ff;\n}\n.ant-tag-geekblue {\n color: #1d39c4;\n background: #f0f5ff;\n border-color: #adc6ff;\n}\n.ant-tag-geekblue-inverse {\n color: #fff;\n background: #2f54eb;\n border-color: #2f54eb;\n}\n.ant-tag-purple {\n color: #531dab;\n background: #f9f0ff;\n border-color: #d3adf7;\n}\n.ant-tag-purple-inverse {\n color: #fff;\n background: #722ed1;\n border-color: #722ed1;\n}\n.ant-tag-success {\n color: #52c41a;\n background: #f6ffed;\n border-color: #b7eb8f;\n}\n.ant-tag-processing {\n color: #1890ff;\n background: #e6f7ff;\n border-color: #91d5ff;\n}\n.ant-tag-error {\n color: #ff4d4f;\n background: #fff2f0;\n border-color: #ffccc7;\n}\n.ant-tag-warning {\n color: #faad14;\n background: #fffbe6;\n border-color: #ffe58f;\n}\n.ant-tag > .anticon + span,\n.ant-tag > span + .anticon {\n margin-left: 7px;\n}\n.ant-tag.ant-tag-rtl {\n margin-right: 0;\n margin-left: 8px;\n direction: rtl;\n text-align: right;\n}\n.ant-tag-rtl .ant-tag-close-icon {\n margin-right: 3px;\n margin-left: 0;\n}\n.ant-tag-rtl.ant-tag > .anticon + span,\n.ant-tag-rtl.ant-tag > span + .anticon {\n margin-right: 7px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-radio-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n font-size: 0;\n}\n.ant-radio-group .ant-badge-count {\n z-index: 1;\n}\n.ant-radio-group > .ant-badge:not(:first-child) > .ant-radio-button-wrapper {\n border-left: none;\n}\n.ant-radio-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-flex;\n align-items: baseline;\n margin-right: 8px;\n cursor: pointer;\n}\n.ant-radio-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-radio-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-radio-wrapper.ant-radio-wrapper-in-form-item input[type='radio'] {\n width: 14px;\n height: 14px;\n}\n.ant-radio {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n display: inline-block;\n outline: none;\n cursor: pointer;\n}\n.ant-radio-wrapper:hover .ant-radio,\n.ant-radio:hover .ant-radio-inner,\n.ant-radio-input:focus + .ant-radio-inner {\n border-color: #1890ff;\n}\n.ant-radio-input:focus + .ant-radio-inner {\n box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.12);\n}\n.ant-radio-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 50%;\n visibility: hidden;\n animation: antRadioEffect 0.36s ease-in-out;\n animation-fill-mode: both;\n content: '';\n}\n.ant-radio:hover::after,\n.ant-radio-wrapper:hover .ant-radio::after {\n visibility: visible;\n}\n.ant-radio-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n background-color: #fff;\n border-color: #d9d9d9;\n border-style: solid;\n border-width: 1px;\n border-radius: 50%;\n transition: all 0.3s;\n}\n.ant-radio-inner::after {\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n width: 16px;\n height: 16px;\n margin-top: -8px;\n margin-left: -8px;\n background-color: #1890ff;\n border-top: 0;\n border-left: 0;\n border-radius: 16px;\n transform: scale(0);\n opacity: 0;\n transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n content: ' ';\n}\n.ant-radio-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n cursor: pointer;\n opacity: 0;\n}\n.ant-radio.ant-radio-disabled .ant-radio-inner {\n border-color: #d9d9d9;\n}\n.ant-radio-checked .ant-radio-inner {\n border-color: #1890ff;\n}\n.ant-radio-checked .ant-radio-inner::after {\n transform: scale(0.5);\n opacity: 1;\n transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-radio-disabled {\n cursor: not-allowed;\n}\n.ant-radio-disabled .ant-radio-inner {\n background-color: #f5f5f5;\n cursor: not-allowed;\n}\n.ant-radio-disabled .ant-radio-inner::after {\n background-color: rgba(0, 0, 0, 0.2);\n}\n.ant-radio-disabled .ant-radio-input {\n cursor: not-allowed;\n}\n.ant-radio-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\nspan.ant-radio + * {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-radio-button-wrapper {\n position: relative;\n display: inline-block;\n height: 32px;\n margin: 0;\n padding: 0 15px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 30px;\n background: #fff;\n border: 1px solid #d9d9d9;\n border-top-width: 1.02px;\n border-left-width: 0;\n cursor: pointer;\n transition: color 0.3s, background 0.3s, border-color 0.3s, box-shadow 0.3s;\n}\n.ant-radio-button-wrapper a {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-radio-button-wrapper > .ant-radio-button {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n}\n.ant-radio-group-large .ant-radio-button-wrapper {\n height: 40px;\n font-size: 16px;\n line-height: 38px;\n}\n.ant-radio-group-small .ant-radio-button-wrapper {\n height: 24px;\n padding: 0 7px;\n line-height: 22px;\n}\n.ant-radio-button-wrapper:not(:first-child)::before {\n position: absolute;\n top: -1px;\n left: -1px;\n display: block;\n box-sizing: content-box;\n width: 1px;\n height: 100%;\n padding: 1px 0;\n background-color: #d9d9d9;\n transition: background-color 0.3s;\n content: '';\n}\n.ant-radio-button-wrapper:first-child {\n border-left: 1px solid #d9d9d9;\n border-radius: 2px 0 0 2px;\n}\n.ant-radio-button-wrapper:last-child {\n border-radius: 0 2px 2px 0;\n}\n.ant-radio-button-wrapper:first-child:last-child {\n border-radius: 2px;\n}\n.ant-radio-button-wrapper:hover {\n position: relative;\n color: #1890ff;\n}\n.ant-radio-button-wrapper:focus-within {\n box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.12);\n}\n.ant-radio-button-wrapper .ant-radio-inner,\n.ant-radio-button-wrapper input[type='checkbox'],\n.ant-radio-button-wrapper input[type='radio'] {\n width: 0;\n height: 0;\n opacity: 0;\n pointer-events: none;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {\n z-index: 1;\n color: #1890ff;\n background: #fff;\n border-color: #1890ff;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before {\n background-color: #1890ff;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child {\n border-color: #1890ff;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {\n color: #40a9ff;\n border-color: #40a9ff;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover::before {\n background-color: #40a9ff;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {\n color: #096dd9;\n border-color: #096dd9;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active::before {\n background-color: #096dd9;\n}\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {\n box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.12);\n}\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {\n color: #fff;\n background: #1890ff;\n border-color: #1890ff;\n}\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {\n color: #fff;\n background: #40a9ff;\n border-color: #40a9ff;\n}\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {\n color: #fff;\n background: #096dd9;\n border-color: #096dd9;\n}\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {\n box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.12);\n}\n.ant-radio-button-wrapper-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-radio-button-wrapper-disabled:first-child,\n.ant-radio-button-wrapper-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n}\n.ant-radio-button-wrapper-disabled:first-child {\n border-left-color: #d9d9d9;\n}\n.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked {\n color: rgba(0, 0, 0, 0.25);\n background-color: #e6e6e6;\n border-color: #d9d9d9;\n box-shadow: none;\n}\n@keyframes antRadioEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-radio-group.ant-radio-group-rtl {\n direction: rtl;\n}\n.ant-radio-wrapper.ant-radio-wrapper-rtl {\n margin-right: 0;\n margin-left: 8px;\n direction: rtl;\n}\n.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl {\n border-right-width: 0;\n border-left-width: 1px;\n}\n.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:not(:first-child)::before {\n right: -1px;\n left: 0;\n}\n.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:first-child {\n border-right: 1px solid #d9d9d9;\n border-radius: 0 2px 2px 0;\n}\n.ant-radio-button-wrapper-checked:not([class*=' ant-radio-button-wrapper-disabled']).ant-radio-button-wrapper:first-child {\n border-right-color: #40a9ff;\n}\n.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:last-child {\n border-radius: 2px 0 0 2px;\n}\n.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper-disabled:first-child {\n border-right-color: #d9d9d9;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-card {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n background: #fff;\n border-radius: 2px;\n}\n.ant-card-rtl {\n direction: rtl;\n}\n.ant-card-hoverable {\n cursor: pointer;\n transition: box-shadow 0.3s, border-color 0.3s;\n}\n.ant-card-hoverable:hover {\n border-color: transparent;\n box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);\n}\n.ant-card-bordered {\n border: 1px solid #f0f0f0;\n}\n.ant-card-head {\n min-height: 48px;\n margin-bottom: -1px;\n padding: 0 24px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n background: transparent;\n border-bottom: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n}\n.ant-card-head::before {\n display: table;\n content: '';\n}\n.ant-card-head::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-card-head-wrapper {\n display: flex;\n align-items: center;\n}\n.ant-card-head-title {\n display: inline-block;\n flex: 1;\n padding: 16px 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-card-head-title > .ant-typography,\n.ant-card-head-title > .ant-typography-edit-content {\n left: 0;\n margin-top: 0;\n margin-bottom: 0;\n}\n.ant-card-head .ant-tabs-top {\n clear: both;\n margin-bottom: -17px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n}\n.ant-card-head .ant-tabs-top-bar {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-card-extra {\n margin-left: auto;\n padding: 16px 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n}\n.ant-card-rtl .ant-card-extra {\n margin-right: auto;\n margin-left: 0;\n}\n.ant-card-body {\n padding: 24px;\n}\n.ant-card-body::before {\n display: table;\n content: '';\n}\n.ant-card-body::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-card-contain-grid .ant-card-body {\n display: flex;\n flex-wrap: wrap;\n}\n.ant-card-contain-grid:not(.ant-card-loading) .ant-card-body {\n margin: -1px 0 0 -1px;\n padding: 0;\n}\n.ant-card-grid {\n width: 33.33%;\n padding: 24px;\n border: 0;\n border-radius: 0;\n box-shadow: 1px 0 0 0 #f0f0f0, 0 1px 0 0 #f0f0f0, 1px 1px 0 0 #f0f0f0, 1px 0 0 0 #f0f0f0 inset, 0 1px 0 0 #f0f0f0 inset;\n transition: all 0.3s;\n}\n.ant-card-grid-hoverable:hover {\n position: relative;\n z-index: 1;\n box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);\n}\n.ant-card-contain-tabs > .ant-card-head .ant-card-head-title {\n min-height: 32px;\n padding-bottom: 0;\n}\n.ant-card-contain-tabs > .ant-card-head .ant-card-extra {\n padding-bottom: 0;\n}\n.ant-card-bordered .ant-card-cover {\n margin-top: -1px;\n margin-right: -1px;\n margin-left: -1px;\n}\n.ant-card-cover > * {\n display: block;\n width: 100%;\n}\n.ant-card-cover img {\n border-radius: 2px 2px 0 0;\n}\n.ant-card-actions {\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n background: #fff;\n border-top: 1px solid #f0f0f0;\n}\n.ant-card-actions::before {\n display: table;\n content: '';\n}\n.ant-card-actions::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-card-actions > li {\n margin: 12px 0;\n color: rgba(0, 0, 0, 0.45);\n text-align: center;\n}\n.ant-card-actions > li > span {\n position: relative;\n display: block;\n min-width: 32px;\n font-size: 14px;\n line-height: 1.5715;\n cursor: pointer;\n}\n.ant-card-actions > li > span:hover {\n color: #1890ff;\n transition: color 0.3s;\n}\n.ant-card-actions > li > span a:not(.ant-btn),\n.ant-card-actions > li > span > .anticon {\n display: inline-block;\n width: 100%;\n color: rgba(0, 0, 0, 0.45);\n line-height: 22px;\n transition: color 0.3s;\n}\n.ant-card-actions > li > span a:not(.ant-btn):hover,\n.ant-card-actions > li > span > .anticon:hover {\n color: #1890ff;\n}\n.ant-card-actions > li > span > .anticon {\n font-size: 16px;\n line-height: 22px;\n}\n.ant-card-actions > li:not(:last-child) {\n border-right: 1px solid #f0f0f0;\n}\n.ant-card-rtl .ant-card-actions > li:not(:last-child) {\n border-right: none;\n border-left: 1px solid #f0f0f0;\n}\n.ant-card-type-inner .ant-card-head {\n padding: 0 24px;\n background: #fafafa;\n}\n.ant-card-type-inner .ant-card-head-title {\n padding: 12px 0;\n font-size: 14px;\n}\n.ant-card-type-inner .ant-card-body {\n padding: 16px 24px;\n}\n.ant-card-type-inner .ant-card-extra {\n padding: 13.5px 0;\n}\n.ant-card-meta {\n display: flex;\n margin: -4px 0;\n}\n.ant-card-meta::before {\n display: table;\n content: '';\n}\n.ant-card-meta::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-card-meta-avatar {\n padding-right: 16px;\n}\n.ant-card-rtl .ant-card-meta-avatar {\n padding-right: 0;\n padding-left: 16px;\n}\n.ant-card-meta-detail {\n flex: 1;\n overflow: hidden;\n}\n.ant-card-meta-detail > div:not(:last-child) {\n margin-bottom: 8px;\n}\n.ant-card-meta-title {\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-card-meta-description {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-card-loading {\n overflow: hidden;\n}\n.ant-card-loading .ant-card-body {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-card-small > .ant-card-head {\n min-height: 36px;\n padding: 0 12px;\n font-size: 14px;\n}\n.ant-card-small > .ant-card-head > .ant-card-head-wrapper > .ant-card-head-title {\n padding: 8px 0;\n}\n.ant-card-small > .ant-card-head > .ant-card-head-wrapper > .ant-card-extra {\n padding: 8px 0;\n font-size: 14px;\n}\n.ant-card-small > .ant-card-body {\n padding: 12px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-skeleton {\n display: table;\n width: 100%;\n}\n.ant-skeleton-header {\n display: table-cell;\n padding-right: 16px;\n vertical-align: top;\n}\n.ant-skeleton-header .ant-skeleton-avatar {\n display: inline-block;\n vertical-align: top;\n background: rgba(190, 190, 190, 0.2);\n width: 32px;\n height: 32px;\n line-height: 32px;\n}\n.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-header .ant-skeleton-avatar-lg {\n width: 40px;\n height: 40px;\n line-height: 40px;\n}\n.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-header .ant-skeleton-avatar-sm {\n width: 24px;\n height: 24px;\n line-height: 24px;\n}\n.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-content {\n display: table-cell;\n width: 100%;\n vertical-align: top;\n}\n.ant-skeleton-content .ant-skeleton-title {\n width: 100%;\n height: 16px;\n background: rgba(190, 190, 190, 0.2);\n border-radius: 2px;\n}\n.ant-skeleton-content .ant-skeleton-title + .ant-skeleton-paragraph {\n margin-top: 24px;\n}\n.ant-skeleton-content .ant-skeleton-paragraph {\n padding: 0;\n}\n.ant-skeleton-content .ant-skeleton-paragraph > li {\n width: 100%;\n height: 16px;\n list-style: none;\n background: rgba(190, 190, 190, 0.2);\n border-radius: 2px;\n}\n.ant-skeleton-content .ant-skeleton-paragraph > li:last-child:not(:first-child):not(:nth-child(2)) {\n width: 61%;\n}\n.ant-skeleton-content .ant-skeleton-paragraph > li + li {\n margin-top: 16px;\n}\n.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title {\n margin-top: 12px;\n}\n.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title + .ant-skeleton-paragraph {\n margin-top: 28px;\n}\n.ant-skeleton-round .ant-skeleton-content .ant-skeleton-title,\n.ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph > li {\n border-radius: 100px;\n}\n.ant-skeleton-active .ant-skeleton-title,\n.ant-skeleton-active .ant-skeleton-paragraph > li,\n.ant-skeleton-active .ant-skeleton-avatar,\n.ant-skeleton-active .ant-skeleton-button,\n.ant-skeleton-active .ant-skeleton-input,\n.ant-skeleton-active .ant-skeleton-image {\n position: relative;\n /* stylelint-disable-next-line property-no-vendor-prefix,value-no-vendor-prefix */\n z-index: 0;\n overflow: hidden;\n background: transparent;\n}\n.ant-skeleton-active .ant-skeleton-title::after,\n.ant-skeleton-active .ant-skeleton-paragraph > li::after,\n.ant-skeleton-active .ant-skeleton-avatar::after,\n.ant-skeleton-active .ant-skeleton-button::after,\n.ant-skeleton-active .ant-skeleton-input::after,\n.ant-skeleton-active .ant-skeleton-image::after {\n position: absolute;\n top: 0;\n right: -150%;\n bottom: 0;\n left: -150%;\n background: linear-gradient(90deg, rgba(190, 190, 190, 0.2) 25%, rgba(129, 129, 129, 0.24) 37%, rgba(190, 190, 190, 0.2) 63%);\n animation: ant-skeleton-loading 1.4s ease infinite;\n content: '';\n}\n.ant-skeleton.ant-skeleton-block {\n width: 100%;\n}\n.ant-skeleton.ant-skeleton-block .ant-skeleton-button {\n width: 100%;\n}\n.ant-skeleton.ant-skeleton-block .ant-skeleton-input {\n width: 100%;\n}\n.ant-skeleton-element {\n display: inline-block;\n width: auto;\n}\n.ant-skeleton-element .ant-skeleton-button {\n display: inline-block;\n vertical-align: top;\n background: rgba(190, 190, 190, 0.2);\n border-radius: 2px;\n width: 64px;\n min-width: 64px;\n height: 32px;\n line-height: 32px;\n}\n.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-square {\n width: 32px;\n min-width: 32px;\n}\n.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle {\n width: 32px;\n min-width: 32px;\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round {\n border-radius: 32px;\n}\n.ant-skeleton-element .ant-skeleton-button-lg {\n width: 80px;\n min-width: 80px;\n height: 40px;\n line-height: 40px;\n}\n.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-square {\n width: 40px;\n min-width: 40px;\n}\n.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-circle {\n width: 40px;\n min-width: 40px;\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-round {\n border-radius: 40px;\n}\n.ant-skeleton-element .ant-skeleton-button-sm {\n width: 48px;\n min-width: 48px;\n height: 24px;\n line-height: 24px;\n}\n.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-square {\n width: 24px;\n min-width: 24px;\n}\n.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-circle {\n width: 24px;\n min-width: 24px;\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-round {\n border-radius: 24px;\n}\n.ant-skeleton-element .ant-skeleton-avatar {\n display: inline-block;\n vertical-align: top;\n background: rgba(190, 190, 190, 0.2);\n width: 32px;\n height: 32px;\n line-height: 32px;\n}\n.ant-skeleton-element .ant-skeleton-avatar.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-avatar-lg {\n width: 40px;\n height: 40px;\n line-height: 40px;\n}\n.ant-skeleton-element .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-avatar-sm {\n width: 24px;\n height: 24px;\n line-height: 24px;\n}\n.ant-skeleton-element .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle {\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-input {\n display: inline-block;\n vertical-align: top;\n background: rgba(190, 190, 190, 0.2);\n width: 160px;\n min-width: 160px;\n height: 32px;\n line-height: 32px;\n}\n.ant-skeleton-element .ant-skeleton-input-lg {\n width: 200px;\n min-width: 200px;\n height: 40px;\n line-height: 40px;\n}\n.ant-skeleton-element .ant-skeleton-input-sm {\n width: 120px;\n min-width: 120px;\n height: 24px;\n line-height: 24px;\n}\n.ant-skeleton-element .ant-skeleton-image {\n display: flex;\n align-items: center;\n justify-content: center;\n vertical-align: top;\n background: rgba(190, 190, 190, 0.2);\n width: 96px;\n height: 96px;\n line-height: 96px;\n}\n.ant-skeleton-element .ant-skeleton-image.ant-skeleton-image-circle {\n border-radius: 50%;\n}\n.ant-skeleton-element .ant-skeleton-image-path {\n fill: #bfbfbf;\n}\n.ant-skeleton-element .ant-skeleton-image-svg {\n width: 48px;\n height: 48px;\n line-height: 48px;\n max-width: 192px;\n max-height: 192px;\n}\n.ant-skeleton-element .ant-skeleton-image-svg.ant-skeleton-image-circle {\n border-radius: 50%;\n}\n@keyframes ant-skeleton-loading {\n 0% {\n transform: translateX(-37.5%);\n }\n 100% {\n transform: translateX(37.5%);\n }\n}\n.ant-skeleton-rtl {\n direction: rtl;\n}\n.ant-skeleton-rtl .ant-skeleton-header {\n padding-right: 0;\n padding-left: 16px;\n}\n.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,\n.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph > li {\n animation-name: ant-skeleton-loading-rtl;\n}\n.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar {\n animation-name: ant-skeleton-loading-rtl;\n}\n@keyframes ant-skeleton-loading-rtl {\n 0% {\n background-position: 0% 50%;\n }\n 100% {\n background-position: 100% 50%;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-tabs-small > .ant-tabs-nav .ant-tabs-tab {\n padding: 8px 0;\n font-size: 14px;\n}\n.ant-tabs-large > .ant-tabs-nav .ant-tabs-tab {\n padding: 16px 0;\n font-size: 16px;\n}\n.ant-tabs-card.ant-tabs-small > .ant-tabs-nav .ant-tabs-tab {\n padding: 6px 16px;\n}\n.ant-tabs-card.ant-tabs-large > .ant-tabs-nav .ant-tabs-tab {\n padding: 7px 16px 6px;\n}\n.ant-tabs-rtl {\n direction: rtl;\n}\n.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab {\n margin: 0 0 0 32px;\n}\n.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab:last-of-type {\n margin-left: 0;\n}\n.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .anticon {\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove {\n margin-right: 8px;\n margin-left: -4px;\n}\n.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove .anticon {\n margin: 0;\n}\n.ant-tabs-rtl.ant-tabs-left > .ant-tabs-nav {\n order: 1;\n}\n.ant-tabs-rtl.ant-tabs-left > .ant-tabs-content-holder {\n order: 0;\n}\n.ant-tabs-rtl.ant-tabs-right > .ant-tabs-nav {\n order: 0;\n}\n.ant-tabs-rtl.ant-tabs-right > .ant-tabs-content-holder {\n order: 1;\n}\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab {\n margin-right: 2px;\n margin-left: 0;\n}\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-add,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-add,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-add,\n.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-add {\n margin-right: 2px;\n margin-left: 0;\n}\n.ant-tabs-dropdown-rtl {\n direction: rtl;\n}\n.ant-tabs-dropdown-rtl .ant-tabs-dropdown-menu-item {\n text-align: right;\n}\n.ant-tabs-top,\n.ant-tabs-bottom {\n flex-direction: column;\n}\n.ant-tabs-top > .ant-tabs-nav,\n.ant-tabs-bottom > .ant-tabs-nav,\n.ant-tabs-top > div > .ant-tabs-nav,\n.ant-tabs-bottom > div > .ant-tabs-nav {\n margin: 0 0 16px 0;\n}\n.ant-tabs-top > .ant-tabs-nav::before,\n.ant-tabs-bottom > .ant-tabs-nav::before,\n.ant-tabs-top > div > .ant-tabs-nav::before,\n.ant-tabs-bottom > div > .ant-tabs-nav::before {\n position: absolute;\n right: 0;\n left: 0;\n border-bottom: 1px solid #f0f0f0;\n content: '';\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-ink-bar {\n height: 2px;\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-ink-bar-animated {\n transition: width 0.3s, left 0.3s, right 0.3s;\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {\n top: 0;\n bottom: 0;\n width: 30px;\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::before {\n left: 0;\n box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {\n right: 0;\n box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before {\n opacity: 1;\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after,\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after {\n opacity: 1;\n}\n.ant-tabs-top > .ant-tabs-nav::before,\n.ant-tabs-top > div > .ant-tabs-nav::before {\n bottom: 0;\n}\n.ant-tabs-top > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-ink-bar {\n bottom: 0;\n}\n.ant-tabs-bottom > .ant-tabs-nav,\n.ant-tabs-bottom > div > .ant-tabs-nav {\n order: 1;\n margin-top: 16px;\n margin-bottom: 0;\n}\n.ant-tabs-bottom > .ant-tabs-nav::before,\n.ant-tabs-bottom > div > .ant-tabs-nav::before {\n top: 0;\n}\n.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-ink-bar {\n top: 0;\n}\n.ant-tabs-bottom > .ant-tabs-content-holder,\n.ant-tabs-bottom > div > .ant-tabs-content-holder {\n order: 0;\n}\n.ant-tabs-left > .ant-tabs-nav,\n.ant-tabs-right > .ant-tabs-nav,\n.ant-tabs-left > div > .ant-tabs-nav,\n.ant-tabs-right > div > .ant-tabs-nav {\n flex-direction: column;\n min-width: 50px;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab {\n padding: 8px 24px;\n text-align: center;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab {\n margin: 16px 0 0 0;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap {\n flex-direction: column;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {\n right: 0;\n left: 0;\n height: 30px;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::before {\n top: 0;\n box-shadow: inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {\n bottom: 0;\n box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before {\n opacity: 1;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after {\n opacity: 1;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-ink-bar {\n width: 2px;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-ink-bar-animated,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-ink-bar-animated {\n transition: height 0.3s, top 0.3s;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-list,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-list,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-list,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-list,\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-operations,\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-operations,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-operations,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-operations {\n flex: 1 0 auto;\n flex-direction: column;\n}\n.ant-tabs-left > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-ink-bar {\n right: 0;\n}\n.ant-tabs-left > .ant-tabs-content-holder,\n.ant-tabs-left > div > .ant-tabs-content-holder {\n margin-left: -1px;\n border-left: 1px solid #f0f0f0;\n}\n.ant-tabs-left > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane,\n.ant-tabs-left > div > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane {\n padding-left: 24px;\n}\n.ant-tabs-right > .ant-tabs-nav,\n.ant-tabs-right > div > .ant-tabs-nav {\n order: 1;\n}\n.ant-tabs-right > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-ink-bar {\n left: 0;\n}\n.ant-tabs-right > .ant-tabs-content-holder,\n.ant-tabs-right > div > .ant-tabs-content-holder {\n order: 0;\n margin-right: -1px;\n border-right: 1px solid #f0f0f0;\n}\n.ant-tabs-right > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane,\n.ant-tabs-right > div > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane {\n padding-right: 24px;\n}\n.ant-tabs-dropdown {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n display: block;\n}\n.ant-tabs-dropdown-hidden {\n display: none;\n}\n.ant-tabs-dropdown-menu {\n max-height: 200px;\n margin: 0;\n padding: 4px 0;\n overflow-x: hidden;\n overflow-y: auto;\n text-align: left;\n list-style-type: none;\n background-color: #fff;\n background-clip: padding-box;\n border-radius: 2px;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-tabs-dropdown-menu-item {\n display: flex;\n align-items: center;\n min-width: 120px;\n margin: 0;\n padding: 5px 12px;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 22px;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-tabs-dropdown-menu-item > span {\n flex: 1;\n white-space: nowrap;\n}\n.ant-tabs-dropdown-menu-item-remove {\n flex: none;\n margin-left: 12px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n background: transparent;\n border: 0;\n cursor: pointer;\n}\n.ant-tabs-dropdown-menu-item-remove:hover {\n color: #40a9ff;\n}\n.ant-tabs-dropdown-menu-item:hover {\n background: #f5f5f5;\n}\n.ant-tabs-dropdown-menu-item-disabled,\n.ant-tabs-dropdown-menu-item-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n background: transparent;\n cursor: not-allowed;\n}\n.ant-tabs-card > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-card > div > .ant-tabs-nav .ant-tabs-tab {\n margin: 0;\n padding: 8px 16px;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs-card > .ant-tabs-nav .ant-tabs-tab-active,\n.ant-tabs-card > div > .ant-tabs-nav .ant-tabs-tab-active {\n color: #1890ff;\n background: #fff;\n}\n.ant-tabs-card > .ant-tabs-nav .ant-tabs-ink-bar,\n.ant-tabs-card > div > .ant-tabs-nav .ant-tabs-ink-bar {\n visibility: hidden;\n}\n.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab {\n margin-left: 2px;\n}\n.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-tab {\n border-radius: 2px 2px 0 0;\n}\n.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab-active,\n.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-tab-active {\n border-bottom-color: #fff;\n}\n.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-tab {\n border-radius: 0 0 2px 2px;\n}\n.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-tab-active,\n.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-tab-active {\n border-top-color: #fff;\n}\n.ant-tabs-card.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab {\n margin-top: 2px;\n}\n.ant-tabs-card.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab {\n border-radius: 2px 0 0 2px;\n}\n.ant-tabs-card.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab-active,\n.ant-tabs-card.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab-active {\n border-right-color: #fff;\n}\n.ant-tabs-card.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab,\n.ant-tabs-card.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab {\n border-radius: 0 2px 2px 0;\n}\n.ant-tabs-card.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab-active,\n.ant-tabs-card.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab-active {\n border-left-color: #fff;\n}\n.ant-tabs {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: flex;\n}\n.ant-tabs > .ant-tabs-nav,\n.ant-tabs > div > .ant-tabs-nav {\n position: relative;\n display: flex;\n flex: none;\n align-items: center;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-wrap {\n position: relative;\n display: inline-block;\n display: flex;\n flex: auto;\n align-self: stretch;\n overflow: hidden;\n white-space: nowrap;\n transform: translate(0);\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap::after,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {\n position: absolute;\n z-index: 1;\n opacity: 0;\n transition: opacity 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-list,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-list {\n position: relative;\n display: flex;\n transition: transform 0.3s;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-operations,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-operations {\n display: flex;\n align-self: stretch;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-operations-hidden,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-operations-hidden {\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-more,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-more {\n position: relative;\n padding: 8px 16px;\n background: transparent;\n border: 0;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-more::after,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-more::after {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 5px;\n transform: translateY(100%);\n content: '';\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add {\n min-width: 40px;\n margin-left: 2px;\n padding: 0 8px;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n outline: none;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add:hover,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add:hover {\n color: #40a9ff;\n}\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add:active,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add:active,\n.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add:focus,\n.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add:focus {\n color: #096dd9;\n}\n.ant-tabs-extra-content {\n flex: none;\n}\n.ant-tabs-centered > .ant-tabs-nav .ant-tabs-nav-wrap:not([class*='ant-tabs-nav-wrap-ping']),\n.ant-tabs-centered > div > .ant-tabs-nav .ant-tabs-nav-wrap:not([class*='ant-tabs-nav-wrap-ping']) {\n justify-content: center;\n}\n.ant-tabs-ink-bar {\n position: absolute;\n background: #1890ff;\n pointer-events: none;\n}\n.ant-tabs-tab {\n position: relative;\n display: inline-flex;\n align-items: center;\n padding: 12px 0;\n font-size: 14px;\n background: transparent;\n border: 0;\n outline: none;\n cursor: pointer;\n}\n.ant-tabs-tab-btn:focus,\n.ant-tabs-tab-remove:focus,\n.ant-tabs-tab-btn:active,\n.ant-tabs-tab-remove:active {\n color: #096dd9;\n}\n.ant-tabs-tab-btn {\n outline: none;\n transition: all 0.3s;\n}\n.ant-tabs-tab-remove {\n flex: none;\n margin-right: -4px;\n margin-left: 8px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n background: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-tabs-tab-remove:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-tabs-tab:hover {\n color: #40a9ff;\n}\n.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {\n color: #1890ff;\n text-shadow: 0 0 0.25px currentcolor;\n}\n.ant-tabs-tab.ant-tabs-tab-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:focus,\n.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:focus,\n.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:active,\n.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:active {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-tabs-tab .ant-tabs-tab-remove .anticon {\n margin: 0;\n}\n.ant-tabs-tab .anticon {\n margin-right: 12px;\n}\n.ant-tabs-tab + .ant-tabs-tab {\n margin: 0 0 0 32px;\n}\n.ant-tabs-content {\n position: relative;\n width: 100%;\n}\n.ant-tabs-content-holder {\n flex: auto;\n min-width: 0;\n min-height: 0;\n}\n.ant-tabs-tabpane {\n outline: none;\n}\n.ant-tabs-tabpane-hidden {\n display: none;\n}\n.ant-tabs-switch-appear,\n.ant-tabs-switch-enter {\n transition: none;\n}\n.ant-tabs-switch-appear-start,\n.ant-tabs-switch-enter-start {\n opacity: 0;\n}\n.ant-tabs-switch-appear-active,\n.ant-tabs-switch-enter-active {\n opacity: 1;\n transition: opacity 0.3s;\n}\n.ant-tabs-switch-leave {\n position: absolute;\n transition: none;\n inset: 0;\n}\n.ant-tabs-switch-leave-start {\n opacity: 1;\n}\n.ant-tabs-switch-leave-active {\n opacity: 0;\n transition: opacity 0.3s;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-carousel {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-carousel .slick-slider {\n position: relative;\n display: block;\n box-sizing: border-box;\n touch-action: pan-y;\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: transparent;\n}\n.ant-carousel .slick-list {\n position: relative;\n display: block;\n margin: 0;\n padding: 0;\n overflow: hidden;\n}\n.ant-carousel .slick-list:focus {\n outline: none;\n}\n.ant-carousel .slick-list.dragging {\n cursor: pointer;\n}\n.ant-carousel .slick-list .slick-slide {\n pointer-events: none;\n}\n.ant-carousel .slick-list .slick-slide input.ant-radio-input,\n.ant-carousel .slick-list .slick-slide input.ant-checkbox-input {\n visibility: hidden;\n}\n.ant-carousel .slick-list .slick-slide.slick-active {\n pointer-events: auto;\n}\n.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input,\n.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input {\n visibility: visible;\n}\n.ant-carousel .slick-list .slick-slide > div > div {\n vertical-align: bottom;\n}\n.ant-carousel .slick-slider .slick-track,\n.ant-carousel .slick-slider .slick-list {\n transform: translate3d(0, 0, 0);\n touch-action: pan-y;\n}\n.ant-carousel .slick-track {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n}\n.ant-carousel .slick-track::before,\n.ant-carousel .slick-track::after {\n display: table;\n content: '';\n}\n.ant-carousel .slick-track::after {\n clear: both;\n}\n.slick-loading .ant-carousel .slick-track {\n visibility: hidden;\n}\n.ant-carousel .slick-slide {\n display: none;\n float: left;\n height: 100%;\n min-height: 1px;\n}\n.ant-carousel .slick-slide img {\n display: block;\n}\n.ant-carousel .slick-slide.slick-loading img {\n display: none;\n}\n.ant-carousel .slick-slide.dragging img {\n pointer-events: none;\n}\n.ant-carousel .slick-initialized .slick-slide {\n display: block;\n}\n.ant-carousel .slick-loading .slick-slide {\n visibility: hidden;\n}\n.ant-carousel .slick-vertical .slick-slide {\n display: block;\n height: auto;\n}\n.ant-carousel .slick-arrow.slick-hidden {\n display: none;\n}\n.ant-carousel .slick-prev,\n.ant-carousel .slick-next {\n position: absolute;\n top: 50%;\n display: block;\n width: 20px;\n height: 20px;\n margin-top: -10px;\n padding: 0;\n color: transparent;\n font-size: 0;\n line-height: 0;\n background: transparent;\n border: 0;\n outline: none;\n cursor: pointer;\n}\n.ant-carousel .slick-prev:hover,\n.ant-carousel .slick-next:hover,\n.ant-carousel .slick-prev:focus,\n.ant-carousel .slick-next:focus {\n color: transparent;\n background: transparent;\n outline: none;\n}\n.ant-carousel .slick-prev:hover::before,\n.ant-carousel .slick-next:hover::before,\n.ant-carousel .slick-prev:focus::before,\n.ant-carousel .slick-next:focus::before {\n opacity: 1;\n}\n.ant-carousel .slick-prev.slick-disabled::before,\n.ant-carousel .slick-next.slick-disabled::before {\n opacity: 0.25;\n}\n.ant-carousel .slick-prev {\n left: -25px;\n}\n.ant-carousel .slick-prev::before {\n content: '←';\n}\n.ant-carousel .slick-next {\n right: -25px;\n}\n.ant-carousel .slick-next::before {\n content: '→';\n}\n.ant-carousel .slick-dots {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex !important;\n justify-content: center;\n margin-right: 15%;\n margin-bottom: 0;\n margin-left: 15%;\n padding-left: 0;\n list-style: none;\n}\n.ant-carousel .slick-dots-bottom {\n bottom: 12px;\n}\n.ant-carousel .slick-dots-top {\n top: 12px;\n bottom: auto;\n}\n.ant-carousel .slick-dots li {\n position: relative;\n display: inline-block;\n flex: 0 1 auto;\n box-sizing: content-box;\n width: 16px;\n height: 3px;\n margin: 0 4px;\n padding: 0;\n text-align: center;\n text-indent: -999px;\n vertical-align: top;\n transition: all 0.5s;\n}\n.ant-carousel .slick-dots li button {\n position: relative;\n display: block;\n width: 100%;\n height: 3px;\n padding: 0;\n color: transparent;\n font-size: 0;\n background: #fff;\n border: 0;\n border-radius: 1px;\n outline: none;\n cursor: pointer;\n opacity: 0.3;\n transition: all 0.5s;\n}\n.ant-carousel .slick-dots li button:hover,\n.ant-carousel .slick-dots li button:focus {\n opacity: 0.75;\n}\n.ant-carousel .slick-dots li button::after {\n position: absolute;\n top: -4px;\n right: -4px;\n bottom: -4px;\n left: -4px;\n content: '';\n}\n.ant-carousel .slick-dots li.slick-active {\n width: 24px;\n}\n.ant-carousel .slick-dots li.slick-active button {\n background: #fff;\n opacity: 1;\n}\n.ant-carousel .slick-dots li.slick-active:hover,\n.ant-carousel .slick-dots li.slick-active:focus {\n opacity: 1;\n}\n.ant-carousel-vertical .slick-dots {\n top: 50%;\n bottom: auto;\n flex-direction: column;\n width: 3px;\n height: auto;\n margin: 0;\n transform: translateY(-50%);\n}\n.ant-carousel-vertical .slick-dots-left {\n right: auto;\n left: 12px;\n}\n.ant-carousel-vertical .slick-dots-right {\n right: 12px;\n left: auto;\n}\n.ant-carousel-vertical .slick-dots li {\n width: 3px;\n height: 16px;\n margin: 4px 0;\n vertical-align: baseline;\n}\n.ant-carousel-vertical .slick-dots li button {\n width: 3px;\n height: 16px;\n}\n.ant-carousel-vertical .slick-dots li.slick-active {\n width: 3px;\n height: 24px;\n}\n.ant-carousel-vertical .slick-dots li.slick-active button {\n width: 3px;\n height: 24px;\n}\n.ant-carousel-rtl {\n direction: rtl;\n}\n.ant-carousel-rtl .ant-carousel .slick-track {\n right: 0;\n left: auto;\n}\n.ant-carousel-rtl .ant-carousel .slick-prev {\n right: -25px;\n left: auto;\n}\n.ant-carousel-rtl .ant-carousel .slick-prev::before {\n content: '→';\n}\n.ant-carousel-rtl .ant-carousel .slick-next {\n right: auto;\n left: -25px;\n}\n.ant-carousel-rtl .ant-carousel .slick-next::before {\n content: '←';\n}\n.ant-carousel-rtl.ant-carousel .slick-dots {\n flex-direction: row-reverse;\n}\n.ant-carousel-rtl.ant-carousel-vertical .slick-dots {\n flex-direction: column;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-cascader-checkbox {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-inner,\n.ant-cascader-checkbox:hover .ant-cascader-checkbox-inner,\n.ant-cascader-checkbox-input:focus + .ant-cascader-checkbox-inner {\n border-color: #1890ff;\n}\n.ant-cascader-checkbox-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 2px;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n}\n.ant-cascader-checkbox:hover::after,\n.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox::after {\n visibility: visible;\n}\n.ant-cascader-checkbox-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n direction: ltr;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n border-collapse: separate;\n transition: all 0.3s;\n}\n.ant-cascader-checkbox-inner::after {\n position: absolute;\n top: 50%;\n left: 21.5%;\n display: table;\n width: 5.71428571px;\n height: 9.14285714px;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\n content: ' ';\n}\n.ant-cascader-checkbox-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner::after {\n position: absolute;\n display: table;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\n content: ' ';\n}\n.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.ant-cascader-checkbox-disabled {\n cursor: not-allowed;\n}\n.ant-cascader-checkbox-disabled.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner::after {\n border-color: rgba(0, 0, 0, 0.25);\n animation-name: none;\n}\n.ant-cascader-checkbox-disabled .ant-cascader-checkbox-input {\n cursor: not-allowed;\n pointer-events: none;\n}\n.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner {\n background-color: #f5f5f5;\n border-color: #d9d9d9 !important;\n}\n.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner::after {\n border-color: #f5f5f5;\n border-collapse: separate;\n animation-name: none;\n}\n.ant-cascader-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-cascader-checkbox-disabled:hover::after,\n.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-disabled::after {\n visibility: hidden;\n}\n.ant-cascader-checkbox-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n}\n.ant-cascader-checkbox-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-cascader-checkbox-wrapper.ant-cascader-checkbox-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-cascader-checkbox-wrapper + .ant-cascader-checkbox-wrapper {\n margin-left: 8px;\n}\n.ant-cascader-checkbox-wrapper.ant-cascader-checkbox-wrapper-in-form-item input[type='checkbox'] {\n width: 14px;\n height: 14px;\n}\n.ant-cascader-checkbox + span {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-cascader-checkbox-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-cascader-checkbox-group-item {\n margin-right: 8px;\n}\n.ant-cascader-checkbox-group-item:last-child {\n margin-right: 0;\n}\n.ant-cascader-checkbox-group-item + .ant-cascader-checkbox-group-item {\n margin-left: 0;\n}\n.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner {\n background-color: #fff;\n border-color: #d9d9d9;\n}\n.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner::after {\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n background-color: #1890ff;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n}\n.ant-cascader-checkbox-indeterminate.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner::after {\n background-color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-cascader {\n width: 184px;\n}\n.ant-cascader-checkbox {\n top: 0;\n margin-right: 8px;\n}\n.ant-cascader-menus {\n display: flex;\n flex-wrap: nowrap;\n align-items: flex-start;\n}\n.ant-cascader-menus.ant-cascader-menu-empty .ant-cascader-menu {\n width: 100%;\n height: auto;\n}\n.ant-cascader-menu {\n flex-grow: 1;\n min-width: 111px;\n height: 180px;\n margin: 0;\n margin: -4px 0;\n padding: 4px 0;\n overflow: auto;\n vertical-align: top;\n list-style: none;\n border-right: 1px solid #f0f0f0;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n.ant-cascader-menu-item {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: 5px 12px;\n overflow: hidden;\n line-height: 22px;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-cascader-menu-item:hover {\n background: #f5f5f5;\n}\n.ant-cascader-menu-item-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-cascader-menu-item-disabled:hover {\n background: transparent;\n}\n.ant-cascader-menu-empty .ant-cascader-menu-item {\n color: rgba(0, 0, 0, 0.25);\n cursor: default;\n pointer-events: none;\n}\n.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),\n.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover {\n font-weight: 600;\n background-color: #e6f7ff;\n}\n.ant-cascader-menu-item-content {\n flex: auto;\n}\n.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,\n.ant-cascader-menu-item-loading-icon {\n margin-left: 4px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 10px;\n}\n.ant-cascader-menu-item-disabled.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,\n.ant-cascader-menu-item-disabled.ant-cascader-menu-item-loading-icon {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-cascader-menu-item-keyword {\n color: #ff4d4f;\n}\n.ant-cascader-compact-item:not(.ant-cascader-compact-last-item):not(.ant-cascader-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-cascader-compact-item:not(.ant-cascader-compact-last-item).ant-cascader-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-cascader-compact-item:hover,\n.ant-cascader-compact-item:focus,\n.ant-cascader-compact-item:active {\n z-index: 2;\n}\n.ant-cascader-compact-item[disabled] {\n z-index: 0;\n}\n.ant-cascader-compact-item:not(.ant-cascader-compact-first-item):not(.ant-cascader-compact-last-item).ant-cascader {\n border-radius: 0;\n}\n.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-first-item:not(.ant-cascader-compact-last-item):not(.ant-cascader-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-last-item:not(.ant-cascader-compact-first-item):not(.ant-cascader-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-item-rtl.ant-cascader-compact-first-item:not(.ant-cascader-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-cascader-compact-item.ant-cascader.ant-cascader-compact-item-rtl.ant-cascader-compact-last-item:not(.ant-cascader-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-cascader-rtl .ant-cascader-menu-item-expand-icon,\n.ant-cascader-rtl .ant-cascader-menu-item-loading-icon {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-cascader-rtl .ant-cascader-checkbox {\n top: 0;\n margin-right: 0;\n margin-left: 8px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-checkbox {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ant-checkbox-wrapper:hover .ant-checkbox-inner,\n.ant-checkbox:hover .ant-checkbox-inner,\n.ant-checkbox-input:focus + .ant-checkbox-inner {\n border-color: #1890ff;\n}\n.ant-checkbox-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 2px;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n}\n.ant-checkbox:hover::after,\n.ant-checkbox-wrapper:hover .ant-checkbox::after {\n visibility: visible;\n}\n.ant-checkbox-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n direction: ltr;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n border-collapse: separate;\n transition: all 0.3s;\n}\n.ant-checkbox-inner::after {\n position: absolute;\n top: 50%;\n left: 21.5%;\n display: table;\n width: 5.71428571px;\n height: 9.14285714px;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\n content: ' ';\n}\n.ant-checkbox-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n.ant-checkbox-checked .ant-checkbox-inner::after {\n position: absolute;\n display: table;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\n content: ' ';\n}\n.ant-checkbox-checked .ant-checkbox-inner {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.ant-checkbox-disabled {\n cursor: not-allowed;\n}\n.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {\n border-color: rgba(0, 0, 0, 0.25);\n animation-name: none;\n}\n.ant-checkbox-disabled .ant-checkbox-input {\n cursor: not-allowed;\n pointer-events: none;\n}\n.ant-checkbox-disabled .ant-checkbox-inner {\n background-color: #f5f5f5;\n border-color: #d9d9d9 !important;\n}\n.ant-checkbox-disabled .ant-checkbox-inner::after {\n border-color: #f5f5f5;\n border-collapse: separate;\n animation-name: none;\n}\n.ant-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-checkbox-disabled:hover::after,\n.ant-checkbox-wrapper:hover .ant-checkbox-disabled::after {\n visibility: hidden;\n}\n.ant-checkbox-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n}\n.ant-checkbox-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-checkbox-wrapper + .ant-checkbox-wrapper {\n margin-left: 8px;\n}\n.ant-checkbox-wrapper.ant-checkbox-wrapper-in-form-item input[type='checkbox'] {\n width: 14px;\n height: 14px;\n}\n.ant-checkbox + span {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-checkbox-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-checkbox-group-item {\n margin-right: 8px;\n}\n.ant-checkbox-group-item:last-child {\n margin-right: 0;\n}\n.ant-checkbox-group-item + .ant-checkbox-group-item {\n margin-left: 0;\n}\n.ant-checkbox-indeterminate .ant-checkbox-inner {\n background-color: #fff;\n border-color: #d9d9d9;\n}\n.ant-checkbox-indeterminate .ant-checkbox-inner::after {\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n background-color: #1890ff;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n}\n.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after {\n background-color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-checkbox-rtl {\n direction: rtl;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child {\n margin-left: 0 !important;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item + .ant-checkbox-group-item {\n margin-left: 8px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-row {\n display: flex;\n flex-flow: row wrap;\n min-width: 0;\n}\n.ant-row::before,\n.ant-row::after {\n display: flex;\n}\n.ant-row-no-wrap {\n flex-wrap: nowrap;\n}\n.ant-row-start {\n justify-content: flex-start;\n}\n.ant-row-center {\n justify-content: center;\n}\n.ant-row-end {\n justify-content: flex-end;\n}\n.ant-row-space-between {\n justify-content: space-between;\n}\n.ant-row-space-around {\n justify-content: space-around;\n}\n.ant-row-space-evenly {\n justify-content: space-evenly;\n}\n.ant-row-top {\n align-items: flex-start;\n}\n.ant-row-middle {\n align-items: center;\n}\n.ant-row-bottom {\n align-items: flex-end;\n}\n.ant-col {\n position: relative;\n max-width: 100%;\n min-height: 1px;\n}\n.ant-col-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n}\n.ant-col-push-24 {\n left: 100%;\n}\n.ant-col-pull-24 {\n right: 100%;\n}\n.ant-col-offset-24 {\n margin-left: 100%;\n}\n.ant-col-order-24 {\n order: 24;\n}\n.ant-col-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n}\n.ant-col-push-23 {\n left: 95.83333333%;\n}\n.ant-col-pull-23 {\n right: 95.83333333%;\n}\n.ant-col-offset-23 {\n margin-left: 95.83333333%;\n}\n.ant-col-order-23 {\n order: 23;\n}\n.ant-col-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n}\n.ant-col-push-22 {\n left: 91.66666667%;\n}\n.ant-col-pull-22 {\n right: 91.66666667%;\n}\n.ant-col-offset-22 {\n margin-left: 91.66666667%;\n}\n.ant-col-order-22 {\n order: 22;\n}\n.ant-col-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n}\n.ant-col-push-21 {\n left: 87.5%;\n}\n.ant-col-pull-21 {\n right: 87.5%;\n}\n.ant-col-offset-21 {\n margin-left: 87.5%;\n}\n.ant-col-order-21 {\n order: 21;\n}\n.ant-col-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n}\n.ant-col-push-20 {\n left: 83.33333333%;\n}\n.ant-col-pull-20 {\n right: 83.33333333%;\n}\n.ant-col-offset-20 {\n margin-left: 83.33333333%;\n}\n.ant-col-order-20 {\n order: 20;\n}\n.ant-col-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n}\n.ant-col-push-19 {\n left: 79.16666667%;\n}\n.ant-col-pull-19 {\n right: 79.16666667%;\n}\n.ant-col-offset-19 {\n margin-left: 79.16666667%;\n}\n.ant-col-order-19 {\n order: 19;\n}\n.ant-col-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n}\n.ant-col-push-18 {\n left: 75%;\n}\n.ant-col-pull-18 {\n right: 75%;\n}\n.ant-col-offset-18 {\n margin-left: 75%;\n}\n.ant-col-order-18 {\n order: 18;\n}\n.ant-col-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n}\n.ant-col-push-17 {\n left: 70.83333333%;\n}\n.ant-col-pull-17 {\n right: 70.83333333%;\n}\n.ant-col-offset-17 {\n margin-left: 70.83333333%;\n}\n.ant-col-order-17 {\n order: 17;\n}\n.ant-col-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n}\n.ant-col-push-16 {\n left: 66.66666667%;\n}\n.ant-col-pull-16 {\n right: 66.66666667%;\n}\n.ant-col-offset-16 {\n margin-left: 66.66666667%;\n}\n.ant-col-order-16 {\n order: 16;\n}\n.ant-col-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n}\n.ant-col-push-15 {\n left: 62.5%;\n}\n.ant-col-pull-15 {\n right: 62.5%;\n}\n.ant-col-offset-15 {\n margin-left: 62.5%;\n}\n.ant-col-order-15 {\n order: 15;\n}\n.ant-col-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n}\n.ant-col-push-14 {\n left: 58.33333333%;\n}\n.ant-col-pull-14 {\n right: 58.33333333%;\n}\n.ant-col-offset-14 {\n margin-left: 58.33333333%;\n}\n.ant-col-order-14 {\n order: 14;\n}\n.ant-col-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n}\n.ant-col-push-13 {\n left: 54.16666667%;\n}\n.ant-col-pull-13 {\n right: 54.16666667%;\n}\n.ant-col-offset-13 {\n margin-left: 54.16666667%;\n}\n.ant-col-order-13 {\n order: 13;\n}\n.ant-col-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n}\n.ant-col-push-12 {\n left: 50%;\n}\n.ant-col-pull-12 {\n right: 50%;\n}\n.ant-col-offset-12 {\n margin-left: 50%;\n}\n.ant-col-order-12 {\n order: 12;\n}\n.ant-col-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n}\n.ant-col-push-11 {\n left: 45.83333333%;\n}\n.ant-col-pull-11 {\n right: 45.83333333%;\n}\n.ant-col-offset-11 {\n margin-left: 45.83333333%;\n}\n.ant-col-order-11 {\n order: 11;\n}\n.ant-col-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n}\n.ant-col-push-10 {\n left: 41.66666667%;\n}\n.ant-col-pull-10 {\n right: 41.66666667%;\n}\n.ant-col-offset-10 {\n margin-left: 41.66666667%;\n}\n.ant-col-order-10 {\n order: 10;\n}\n.ant-col-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n}\n.ant-col-push-9 {\n left: 37.5%;\n}\n.ant-col-pull-9 {\n right: 37.5%;\n}\n.ant-col-offset-9 {\n margin-left: 37.5%;\n}\n.ant-col-order-9 {\n order: 9;\n}\n.ant-col-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n}\n.ant-col-push-8 {\n left: 33.33333333%;\n}\n.ant-col-pull-8 {\n right: 33.33333333%;\n}\n.ant-col-offset-8 {\n margin-left: 33.33333333%;\n}\n.ant-col-order-8 {\n order: 8;\n}\n.ant-col-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n}\n.ant-col-push-7 {\n left: 29.16666667%;\n}\n.ant-col-pull-7 {\n right: 29.16666667%;\n}\n.ant-col-offset-7 {\n margin-left: 29.16666667%;\n}\n.ant-col-order-7 {\n order: 7;\n}\n.ant-col-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n}\n.ant-col-push-6 {\n left: 25%;\n}\n.ant-col-pull-6 {\n right: 25%;\n}\n.ant-col-offset-6 {\n margin-left: 25%;\n}\n.ant-col-order-6 {\n order: 6;\n}\n.ant-col-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n}\n.ant-col-push-5 {\n left: 20.83333333%;\n}\n.ant-col-pull-5 {\n right: 20.83333333%;\n}\n.ant-col-offset-5 {\n margin-left: 20.83333333%;\n}\n.ant-col-order-5 {\n order: 5;\n}\n.ant-col-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n}\n.ant-col-push-4 {\n left: 16.66666667%;\n}\n.ant-col-pull-4 {\n right: 16.66666667%;\n}\n.ant-col-offset-4 {\n margin-left: 16.66666667%;\n}\n.ant-col-order-4 {\n order: 4;\n}\n.ant-col-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n}\n.ant-col-push-3 {\n left: 12.5%;\n}\n.ant-col-pull-3 {\n right: 12.5%;\n}\n.ant-col-offset-3 {\n margin-left: 12.5%;\n}\n.ant-col-order-3 {\n order: 3;\n}\n.ant-col-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n}\n.ant-col-push-2 {\n left: 8.33333333%;\n}\n.ant-col-pull-2 {\n right: 8.33333333%;\n}\n.ant-col-offset-2 {\n margin-left: 8.33333333%;\n}\n.ant-col-order-2 {\n order: 2;\n}\n.ant-col-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n}\n.ant-col-push-1 {\n left: 4.16666667%;\n}\n.ant-col-pull-1 {\n right: 4.16666667%;\n}\n.ant-col-offset-1 {\n margin-left: 4.16666667%;\n}\n.ant-col-order-1 {\n order: 1;\n}\n.ant-col-0 {\n display: none;\n}\n.ant-col-push-0 {\n left: auto;\n}\n.ant-col-pull-0 {\n right: auto;\n}\n.ant-col-push-0 {\n left: auto;\n}\n.ant-col-pull-0 {\n right: auto;\n}\n.ant-col-offset-0 {\n margin-left: 0;\n}\n.ant-col-order-0 {\n order: 0;\n}\n.ant-col-push-0.ant-col-rtl {\n right: auto;\n}\n.ant-col-pull-0.ant-col-rtl {\n left: auto;\n}\n.ant-col-push-0.ant-col-rtl {\n right: auto;\n}\n.ant-col-pull-0.ant-col-rtl {\n left: auto;\n}\n.ant-col-offset-0.ant-col-rtl {\n margin-right: 0;\n}\n.ant-col-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n}\n.ant-col-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n}\n.ant-col-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n}\n.ant-col-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n}\n.ant-col-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n}\n.ant-col-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n}\n.ant-col-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n}\n.ant-col-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n}\n.ant-col-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n}\n.ant-col-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n}\n.ant-col-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n}\n.ant-col-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n}\n.ant-col-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n}\n.ant-col-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n}\n.ant-col-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n}\n.ant-col-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n}\n.ant-col-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n}\n.ant-col-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n}\n.ant-col-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n}\n.ant-col-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n}\n.ant-col-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n}\n.ant-col-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n}\n.ant-col-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n}\n.ant-col-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n}\n.ant-col-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n}\n.ant-col-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n}\n.ant-col-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n}\n.ant-col-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n}\n.ant-col-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n}\n.ant-col-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n}\n.ant-col-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n}\n.ant-col-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n}\n.ant-col-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n}\n.ant-col-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n}\n.ant-col-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n}\n.ant-col-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n}\n.ant-col-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n}\n.ant-col-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n}\n.ant-col-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n}\n.ant-col-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n}\n.ant-col-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n}\n.ant-col-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n}\n.ant-col-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n}\n.ant-col-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n}\n.ant-col-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n}\n.ant-col-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n}\n.ant-col-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n}\n.ant-col-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n}\n.ant-col-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n}\n.ant-col-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n}\n.ant-col-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n}\n.ant-col-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n}\n.ant-col-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n}\n.ant-col-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n}\n.ant-col-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n}\n.ant-col-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n}\n.ant-col-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n}\n.ant-col-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n}\n.ant-col-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n}\n.ant-col-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n}\n.ant-col-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n}\n.ant-col-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n}\n.ant-col-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n}\n.ant-col-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n}\n.ant-col-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n}\n.ant-col-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n}\n.ant-col-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n}\n.ant-col-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n}\n.ant-col-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n}\n.ant-col-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n}\n.ant-col-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n}\n.ant-col-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n}\n.ant-col-xs-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n}\n.ant-col-xs-push-24 {\n left: 100%;\n}\n.ant-col-xs-pull-24 {\n right: 100%;\n}\n.ant-col-xs-offset-24 {\n margin-left: 100%;\n}\n.ant-col-xs-order-24 {\n order: 24;\n}\n.ant-col-xs-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n}\n.ant-col-xs-push-23 {\n left: 95.83333333%;\n}\n.ant-col-xs-pull-23 {\n right: 95.83333333%;\n}\n.ant-col-xs-offset-23 {\n margin-left: 95.83333333%;\n}\n.ant-col-xs-order-23 {\n order: 23;\n}\n.ant-col-xs-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n}\n.ant-col-xs-push-22 {\n left: 91.66666667%;\n}\n.ant-col-xs-pull-22 {\n right: 91.66666667%;\n}\n.ant-col-xs-offset-22 {\n margin-left: 91.66666667%;\n}\n.ant-col-xs-order-22 {\n order: 22;\n}\n.ant-col-xs-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n}\n.ant-col-xs-push-21 {\n left: 87.5%;\n}\n.ant-col-xs-pull-21 {\n right: 87.5%;\n}\n.ant-col-xs-offset-21 {\n margin-left: 87.5%;\n}\n.ant-col-xs-order-21 {\n order: 21;\n}\n.ant-col-xs-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n}\n.ant-col-xs-push-20 {\n left: 83.33333333%;\n}\n.ant-col-xs-pull-20 {\n right: 83.33333333%;\n}\n.ant-col-xs-offset-20 {\n margin-left: 83.33333333%;\n}\n.ant-col-xs-order-20 {\n order: 20;\n}\n.ant-col-xs-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n}\n.ant-col-xs-push-19 {\n left: 79.16666667%;\n}\n.ant-col-xs-pull-19 {\n right: 79.16666667%;\n}\n.ant-col-xs-offset-19 {\n margin-left: 79.16666667%;\n}\n.ant-col-xs-order-19 {\n order: 19;\n}\n.ant-col-xs-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n}\n.ant-col-xs-push-18 {\n left: 75%;\n}\n.ant-col-xs-pull-18 {\n right: 75%;\n}\n.ant-col-xs-offset-18 {\n margin-left: 75%;\n}\n.ant-col-xs-order-18 {\n order: 18;\n}\n.ant-col-xs-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n}\n.ant-col-xs-push-17 {\n left: 70.83333333%;\n}\n.ant-col-xs-pull-17 {\n right: 70.83333333%;\n}\n.ant-col-xs-offset-17 {\n margin-left: 70.83333333%;\n}\n.ant-col-xs-order-17 {\n order: 17;\n}\n.ant-col-xs-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n}\n.ant-col-xs-push-16 {\n left: 66.66666667%;\n}\n.ant-col-xs-pull-16 {\n right: 66.66666667%;\n}\n.ant-col-xs-offset-16 {\n margin-left: 66.66666667%;\n}\n.ant-col-xs-order-16 {\n order: 16;\n}\n.ant-col-xs-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n}\n.ant-col-xs-push-15 {\n left: 62.5%;\n}\n.ant-col-xs-pull-15 {\n right: 62.5%;\n}\n.ant-col-xs-offset-15 {\n margin-left: 62.5%;\n}\n.ant-col-xs-order-15 {\n order: 15;\n}\n.ant-col-xs-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n}\n.ant-col-xs-push-14 {\n left: 58.33333333%;\n}\n.ant-col-xs-pull-14 {\n right: 58.33333333%;\n}\n.ant-col-xs-offset-14 {\n margin-left: 58.33333333%;\n}\n.ant-col-xs-order-14 {\n order: 14;\n}\n.ant-col-xs-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n}\n.ant-col-xs-push-13 {\n left: 54.16666667%;\n}\n.ant-col-xs-pull-13 {\n right: 54.16666667%;\n}\n.ant-col-xs-offset-13 {\n margin-left: 54.16666667%;\n}\n.ant-col-xs-order-13 {\n order: 13;\n}\n.ant-col-xs-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n}\n.ant-col-xs-push-12 {\n left: 50%;\n}\n.ant-col-xs-pull-12 {\n right: 50%;\n}\n.ant-col-xs-offset-12 {\n margin-left: 50%;\n}\n.ant-col-xs-order-12 {\n order: 12;\n}\n.ant-col-xs-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n}\n.ant-col-xs-push-11 {\n left: 45.83333333%;\n}\n.ant-col-xs-pull-11 {\n right: 45.83333333%;\n}\n.ant-col-xs-offset-11 {\n margin-left: 45.83333333%;\n}\n.ant-col-xs-order-11 {\n order: 11;\n}\n.ant-col-xs-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n}\n.ant-col-xs-push-10 {\n left: 41.66666667%;\n}\n.ant-col-xs-pull-10 {\n right: 41.66666667%;\n}\n.ant-col-xs-offset-10 {\n margin-left: 41.66666667%;\n}\n.ant-col-xs-order-10 {\n order: 10;\n}\n.ant-col-xs-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n}\n.ant-col-xs-push-9 {\n left: 37.5%;\n}\n.ant-col-xs-pull-9 {\n right: 37.5%;\n}\n.ant-col-xs-offset-9 {\n margin-left: 37.5%;\n}\n.ant-col-xs-order-9 {\n order: 9;\n}\n.ant-col-xs-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n}\n.ant-col-xs-push-8 {\n left: 33.33333333%;\n}\n.ant-col-xs-pull-8 {\n right: 33.33333333%;\n}\n.ant-col-xs-offset-8 {\n margin-left: 33.33333333%;\n}\n.ant-col-xs-order-8 {\n order: 8;\n}\n.ant-col-xs-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n}\n.ant-col-xs-push-7 {\n left: 29.16666667%;\n}\n.ant-col-xs-pull-7 {\n right: 29.16666667%;\n}\n.ant-col-xs-offset-7 {\n margin-left: 29.16666667%;\n}\n.ant-col-xs-order-7 {\n order: 7;\n}\n.ant-col-xs-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n}\n.ant-col-xs-push-6 {\n left: 25%;\n}\n.ant-col-xs-pull-6 {\n right: 25%;\n}\n.ant-col-xs-offset-6 {\n margin-left: 25%;\n}\n.ant-col-xs-order-6 {\n order: 6;\n}\n.ant-col-xs-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n}\n.ant-col-xs-push-5 {\n left: 20.83333333%;\n}\n.ant-col-xs-pull-5 {\n right: 20.83333333%;\n}\n.ant-col-xs-offset-5 {\n margin-left: 20.83333333%;\n}\n.ant-col-xs-order-5 {\n order: 5;\n}\n.ant-col-xs-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n}\n.ant-col-xs-push-4 {\n left: 16.66666667%;\n}\n.ant-col-xs-pull-4 {\n right: 16.66666667%;\n}\n.ant-col-xs-offset-4 {\n margin-left: 16.66666667%;\n}\n.ant-col-xs-order-4 {\n order: 4;\n}\n.ant-col-xs-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n}\n.ant-col-xs-push-3 {\n left: 12.5%;\n}\n.ant-col-xs-pull-3 {\n right: 12.5%;\n}\n.ant-col-xs-offset-3 {\n margin-left: 12.5%;\n}\n.ant-col-xs-order-3 {\n order: 3;\n}\n.ant-col-xs-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n}\n.ant-col-xs-push-2 {\n left: 8.33333333%;\n}\n.ant-col-xs-pull-2 {\n right: 8.33333333%;\n}\n.ant-col-xs-offset-2 {\n margin-left: 8.33333333%;\n}\n.ant-col-xs-order-2 {\n order: 2;\n}\n.ant-col-xs-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n}\n.ant-col-xs-push-1 {\n left: 4.16666667%;\n}\n.ant-col-xs-pull-1 {\n right: 4.16666667%;\n}\n.ant-col-xs-offset-1 {\n margin-left: 4.16666667%;\n}\n.ant-col-xs-order-1 {\n order: 1;\n}\n.ant-col-xs-0 {\n display: none;\n}\n.ant-col-push-0 {\n left: auto;\n}\n.ant-col-pull-0 {\n right: auto;\n}\n.ant-col-xs-push-0 {\n left: auto;\n}\n.ant-col-xs-pull-0 {\n right: auto;\n}\n.ant-col-xs-offset-0 {\n margin-left: 0;\n}\n.ant-col-xs-order-0 {\n order: 0;\n}\n.ant-col-push-0.ant-col-rtl {\n right: auto;\n}\n.ant-col-pull-0.ant-col-rtl {\n left: auto;\n}\n.ant-col-xs-push-0.ant-col-rtl {\n right: auto;\n}\n.ant-col-xs-pull-0.ant-col-rtl {\n left: auto;\n}\n.ant-col-xs-offset-0.ant-col-rtl {\n margin-right: 0;\n}\n.ant-col-xs-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n}\n.ant-col-xs-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n}\n.ant-col-xs-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n}\n.ant-col-xs-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n}\n.ant-col-xs-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n}\n.ant-col-xs-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n}\n.ant-col-xs-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n}\n.ant-col-xs-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n}\n.ant-col-xs-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n}\n.ant-col-xs-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n}\n.ant-col-xs-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n}\n.ant-col-xs-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n}\n.ant-col-xs-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n}\n.ant-col-xs-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n}\n.ant-col-xs-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n}\n.ant-col-xs-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n}\n.ant-col-xs-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n}\n.ant-col-xs-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n}\n.ant-col-xs-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n}\n.ant-col-xs-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n}\n.ant-col-xs-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n}\n.ant-col-xs-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n}\n.ant-col-xs-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n}\n.ant-col-xs-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n}\n.ant-col-xs-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n}\n.ant-col-xs-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n}\n.ant-col-xs-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n}\n.ant-col-xs-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n}\n.ant-col-xs-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n}\n.ant-col-xs-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n}\n.ant-col-xs-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n}\n.ant-col-xs-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n}\n.ant-col-xs-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n}\n.ant-col-xs-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n}\n.ant-col-xs-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n}\n.ant-col-xs-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n}\n.ant-col-xs-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n}\n.ant-col-xs-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n}\n.ant-col-xs-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n}\n.ant-col-xs-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n}\n.ant-col-xs-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n}\n.ant-col-xs-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n}\n.ant-col-xs-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n}\n.ant-col-xs-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n}\n.ant-col-xs-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n}\n.ant-col-xs-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n}\n.ant-col-xs-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n}\n.ant-col-xs-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n}\n.ant-col-xs-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n}\n.ant-col-xs-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n}\n.ant-col-xs-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n}\n.ant-col-xs-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n}\n.ant-col-xs-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n}\n.ant-col-xs-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n}\n.ant-col-xs-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n}\n.ant-col-xs-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n}\n.ant-col-xs-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n}\n.ant-col-xs-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n}\n@media (min-width: 576px) {\n .ant-col-sm-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-sm-push-24 {\n left: 100%;\n }\n .ant-col-sm-pull-24 {\n right: 100%;\n }\n .ant-col-sm-offset-24 {\n margin-left: 100%;\n }\n .ant-col-sm-order-24 {\n order: 24;\n }\n .ant-col-sm-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n }\n .ant-col-sm-push-23 {\n left: 95.83333333%;\n }\n .ant-col-sm-pull-23 {\n right: 95.83333333%;\n }\n .ant-col-sm-offset-23 {\n margin-left: 95.83333333%;\n }\n .ant-col-sm-order-23 {\n order: 23;\n }\n .ant-col-sm-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .ant-col-sm-push-22 {\n left: 91.66666667%;\n }\n .ant-col-sm-pull-22 {\n right: 91.66666667%;\n }\n .ant-col-sm-offset-22 {\n margin-left: 91.66666667%;\n }\n .ant-col-sm-order-22 {\n order: 22;\n }\n .ant-col-sm-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n }\n .ant-col-sm-push-21 {\n left: 87.5%;\n }\n .ant-col-sm-pull-21 {\n right: 87.5%;\n }\n .ant-col-sm-offset-21 {\n margin-left: 87.5%;\n }\n .ant-col-sm-order-21 {\n order: 21;\n }\n .ant-col-sm-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .ant-col-sm-push-20 {\n left: 83.33333333%;\n }\n .ant-col-sm-pull-20 {\n right: 83.33333333%;\n }\n .ant-col-sm-offset-20 {\n margin-left: 83.33333333%;\n }\n .ant-col-sm-order-20 {\n order: 20;\n }\n .ant-col-sm-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n }\n .ant-col-sm-push-19 {\n left: 79.16666667%;\n }\n .ant-col-sm-pull-19 {\n right: 79.16666667%;\n }\n .ant-col-sm-offset-19 {\n margin-left: 79.16666667%;\n }\n .ant-col-sm-order-19 {\n order: 19;\n }\n .ant-col-sm-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .ant-col-sm-push-18 {\n left: 75%;\n }\n .ant-col-sm-pull-18 {\n right: 75%;\n }\n .ant-col-sm-offset-18 {\n margin-left: 75%;\n }\n .ant-col-sm-order-18 {\n order: 18;\n }\n .ant-col-sm-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n }\n .ant-col-sm-push-17 {\n left: 70.83333333%;\n }\n .ant-col-sm-pull-17 {\n right: 70.83333333%;\n }\n .ant-col-sm-offset-17 {\n margin-left: 70.83333333%;\n }\n .ant-col-sm-order-17 {\n order: 17;\n }\n .ant-col-sm-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .ant-col-sm-push-16 {\n left: 66.66666667%;\n }\n .ant-col-sm-pull-16 {\n right: 66.66666667%;\n }\n .ant-col-sm-offset-16 {\n margin-left: 66.66666667%;\n }\n .ant-col-sm-order-16 {\n order: 16;\n }\n .ant-col-sm-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n }\n .ant-col-sm-push-15 {\n left: 62.5%;\n }\n .ant-col-sm-pull-15 {\n right: 62.5%;\n }\n .ant-col-sm-offset-15 {\n margin-left: 62.5%;\n }\n .ant-col-sm-order-15 {\n order: 15;\n }\n .ant-col-sm-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .ant-col-sm-push-14 {\n left: 58.33333333%;\n }\n .ant-col-sm-pull-14 {\n right: 58.33333333%;\n }\n .ant-col-sm-offset-14 {\n margin-left: 58.33333333%;\n }\n .ant-col-sm-order-14 {\n order: 14;\n }\n .ant-col-sm-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n }\n .ant-col-sm-push-13 {\n left: 54.16666667%;\n }\n .ant-col-sm-pull-13 {\n right: 54.16666667%;\n }\n .ant-col-sm-offset-13 {\n margin-left: 54.16666667%;\n }\n .ant-col-sm-order-13 {\n order: 13;\n }\n .ant-col-sm-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .ant-col-sm-push-12 {\n left: 50%;\n }\n .ant-col-sm-pull-12 {\n right: 50%;\n }\n .ant-col-sm-offset-12 {\n margin-left: 50%;\n }\n .ant-col-sm-order-12 {\n order: 12;\n }\n .ant-col-sm-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n }\n .ant-col-sm-push-11 {\n left: 45.83333333%;\n }\n .ant-col-sm-pull-11 {\n right: 45.83333333%;\n }\n .ant-col-sm-offset-11 {\n margin-left: 45.83333333%;\n }\n .ant-col-sm-order-11 {\n order: 11;\n }\n .ant-col-sm-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .ant-col-sm-push-10 {\n left: 41.66666667%;\n }\n .ant-col-sm-pull-10 {\n right: 41.66666667%;\n }\n .ant-col-sm-offset-10 {\n margin-left: 41.66666667%;\n }\n .ant-col-sm-order-10 {\n order: 10;\n }\n .ant-col-sm-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n }\n .ant-col-sm-push-9 {\n left: 37.5%;\n }\n .ant-col-sm-pull-9 {\n right: 37.5%;\n }\n .ant-col-sm-offset-9 {\n margin-left: 37.5%;\n }\n .ant-col-sm-order-9 {\n order: 9;\n }\n .ant-col-sm-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .ant-col-sm-push-8 {\n left: 33.33333333%;\n }\n .ant-col-sm-pull-8 {\n right: 33.33333333%;\n }\n .ant-col-sm-offset-8 {\n margin-left: 33.33333333%;\n }\n .ant-col-sm-order-8 {\n order: 8;\n }\n .ant-col-sm-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n }\n .ant-col-sm-push-7 {\n left: 29.16666667%;\n }\n .ant-col-sm-pull-7 {\n right: 29.16666667%;\n }\n .ant-col-sm-offset-7 {\n margin-left: 29.16666667%;\n }\n .ant-col-sm-order-7 {\n order: 7;\n }\n .ant-col-sm-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .ant-col-sm-push-6 {\n left: 25%;\n }\n .ant-col-sm-pull-6 {\n right: 25%;\n }\n .ant-col-sm-offset-6 {\n margin-left: 25%;\n }\n .ant-col-sm-order-6 {\n order: 6;\n }\n .ant-col-sm-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n }\n .ant-col-sm-push-5 {\n left: 20.83333333%;\n }\n .ant-col-sm-pull-5 {\n right: 20.83333333%;\n }\n .ant-col-sm-offset-5 {\n margin-left: 20.83333333%;\n }\n .ant-col-sm-order-5 {\n order: 5;\n }\n .ant-col-sm-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .ant-col-sm-push-4 {\n left: 16.66666667%;\n }\n .ant-col-sm-pull-4 {\n right: 16.66666667%;\n }\n .ant-col-sm-offset-4 {\n margin-left: 16.66666667%;\n }\n .ant-col-sm-order-4 {\n order: 4;\n }\n .ant-col-sm-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n }\n .ant-col-sm-push-3 {\n left: 12.5%;\n }\n .ant-col-sm-pull-3 {\n right: 12.5%;\n }\n .ant-col-sm-offset-3 {\n margin-left: 12.5%;\n }\n .ant-col-sm-order-3 {\n order: 3;\n }\n .ant-col-sm-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .ant-col-sm-push-2 {\n left: 8.33333333%;\n }\n .ant-col-sm-pull-2 {\n right: 8.33333333%;\n }\n .ant-col-sm-offset-2 {\n margin-left: 8.33333333%;\n }\n .ant-col-sm-order-2 {\n order: 2;\n }\n .ant-col-sm-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n }\n .ant-col-sm-push-1 {\n left: 4.16666667%;\n }\n .ant-col-sm-pull-1 {\n right: 4.16666667%;\n }\n .ant-col-sm-offset-1 {\n margin-left: 4.16666667%;\n }\n .ant-col-sm-order-1 {\n order: 1;\n }\n .ant-col-sm-0 {\n display: none;\n }\n .ant-col-push-0 {\n left: auto;\n }\n .ant-col-pull-0 {\n right: auto;\n }\n .ant-col-sm-push-0 {\n left: auto;\n }\n .ant-col-sm-pull-0 {\n right: auto;\n }\n .ant-col-sm-offset-0 {\n margin-left: 0;\n }\n .ant-col-sm-order-0 {\n order: 0;\n }\n .ant-col-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-sm-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-sm-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-sm-offset-0.ant-col-rtl {\n margin-right: 0;\n }\n .ant-col-sm-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n }\n .ant-col-sm-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n }\n .ant-col-sm-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n }\n .ant-col-sm-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n }\n .ant-col-sm-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n }\n .ant-col-sm-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n }\n .ant-col-sm-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n }\n .ant-col-sm-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n }\n .ant-col-sm-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n }\n .ant-col-sm-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n }\n .ant-col-sm-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n }\n .ant-col-sm-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n }\n .ant-col-sm-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n }\n .ant-col-sm-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n }\n .ant-col-sm-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n }\n .ant-col-sm-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n }\n .ant-col-sm-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n }\n .ant-col-sm-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n }\n .ant-col-sm-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n }\n .ant-col-sm-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n }\n .ant-col-sm-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n }\n .ant-col-sm-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n }\n .ant-col-sm-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n }\n .ant-col-sm-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n }\n .ant-col-sm-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n }\n .ant-col-sm-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n }\n .ant-col-sm-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n }\n .ant-col-sm-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n }\n .ant-col-sm-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n }\n .ant-col-sm-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n }\n .ant-col-sm-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n }\n .ant-col-sm-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n }\n .ant-col-sm-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n }\n .ant-col-sm-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n }\n .ant-col-sm-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n }\n .ant-col-sm-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n }\n .ant-col-sm-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n }\n .ant-col-sm-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n }\n .ant-col-sm-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n }\n .ant-col-sm-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n }\n .ant-col-sm-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n }\n .ant-col-sm-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n }\n .ant-col-sm-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n }\n .ant-col-sm-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n }\n .ant-col-sm-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n }\n .ant-col-sm-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n }\n .ant-col-sm-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n }\n .ant-col-sm-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n }\n .ant-col-sm-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n }\n .ant-col-sm-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n }\n .ant-col-sm-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n }\n .ant-col-sm-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .ant-col-sm-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n }\n .ant-col-sm-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n }\n .ant-col-sm-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n }\n .ant-col-sm-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n }\n .ant-col-sm-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n }\n .ant-col-sm-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n }\n}\n@media (min-width: 768px) {\n .ant-col-md-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-md-push-24 {\n left: 100%;\n }\n .ant-col-md-pull-24 {\n right: 100%;\n }\n .ant-col-md-offset-24 {\n margin-left: 100%;\n }\n .ant-col-md-order-24 {\n order: 24;\n }\n .ant-col-md-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n }\n .ant-col-md-push-23 {\n left: 95.83333333%;\n }\n .ant-col-md-pull-23 {\n right: 95.83333333%;\n }\n .ant-col-md-offset-23 {\n margin-left: 95.83333333%;\n }\n .ant-col-md-order-23 {\n order: 23;\n }\n .ant-col-md-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .ant-col-md-push-22 {\n left: 91.66666667%;\n }\n .ant-col-md-pull-22 {\n right: 91.66666667%;\n }\n .ant-col-md-offset-22 {\n margin-left: 91.66666667%;\n }\n .ant-col-md-order-22 {\n order: 22;\n }\n .ant-col-md-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n }\n .ant-col-md-push-21 {\n left: 87.5%;\n }\n .ant-col-md-pull-21 {\n right: 87.5%;\n }\n .ant-col-md-offset-21 {\n margin-left: 87.5%;\n }\n .ant-col-md-order-21 {\n order: 21;\n }\n .ant-col-md-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .ant-col-md-push-20 {\n left: 83.33333333%;\n }\n .ant-col-md-pull-20 {\n right: 83.33333333%;\n }\n .ant-col-md-offset-20 {\n margin-left: 83.33333333%;\n }\n .ant-col-md-order-20 {\n order: 20;\n }\n .ant-col-md-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n }\n .ant-col-md-push-19 {\n left: 79.16666667%;\n }\n .ant-col-md-pull-19 {\n right: 79.16666667%;\n }\n .ant-col-md-offset-19 {\n margin-left: 79.16666667%;\n }\n .ant-col-md-order-19 {\n order: 19;\n }\n .ant-col-md-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .ant-col-md-push-18 {\n left: 75%;\n }\n .ant-col-md-pull-18 {\n right: 75%;\n }\n .ant-col-md-offset-18 {\n margin-left: 75%;\n }\n .ant-col-md-order-18 {\n order: 18;\n }\n .ant-col-md-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n }\n .ant-col-md-push-17 {\n left: 70.83333333%;\n }\n .ant-col-md-pull-17 {\n right: 70.83333333%;\n }\n .ant-col-md-offset-17 {\n margin-left: 70.83333333%;\n }\n .ant-col-md-order-17 {\n order: 17;\n }\n .ant-col-md-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .ant-col-md-push-16 {\n left: 66.66666667%;\n }\n .ant-col-md-pull-16 {\n right: 66.66666667%;\n }\n .ant-col-md-offset-16 {\n margin-left: 66.66666667%;\n }\n .ant-col-md-order-16 {\n order: 16;\n }\n .ant-col-md-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n }\n .ant-col-md-push-15 {\n left: 62.5%;\n }\n .ant-col-md-pull-15 {\n right: 62.5%;\n }\n .ant-col-md-offset-15 {\n margin-left: 62.5%;\n }\n .ant-col-md-order-15 {\n order: 15;\n }\n .ant-col-md-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .ant-col-md-push-14 {\n left: 58.33333333%;\n }\n .ant-col-md-pull-14 {\n right: 58.33333333%;\n }\n .ant-col-md-offset-14 {\n margin-left: 58.33333333%;\n }\n .ant-col-md-order-14 {\n order: 14;\n }\n .ant-col-md-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n }\n .ant-col-md-push-13 {\n left: 54.16666667%;\n }\n .ant-col-md-pull-13 {\n right: 54.16666667%;\n }\n .ant-col-md-offset-13 {\n margin-left: 54.16666667%;\n }\n .ant-col-md-order-13 {\n order: 13;\n }\n .ant-col-md-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .ant-col-md-push-12 {\n left: 50%;\n }\n .ant-col-md-pull-12 {\n right: 50%;\n }\n .ant-col-md-offset-12 {\n margin-left: 50%;\n }\n .ant-col-md-order-12 {\n order: 12;\n }\n .ant-col-md-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n }\n .ant-col-md-push-11 {\n left: 45.83333333%;\n }\n .ant-col-md-pull-11 {\n right: 45.83333333%;\n }\n .ant-col-md-offset-11 {\n margin-left: 45.83333333%;\n }\n .ant-col-md-order-11 {\n order: 11;\n }\n .ant-col-md-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .ant-col-md-push-10 {\n left: 41.66666667%;\n }\n .ant-col-md-pull-10 {\n right: 41.66666667%;\n }\n .ant-col-md-offset-10 {\n margin-left: 41.66666667%;\n }\n .ant-col-md-order-10 {\n order: 10;\n }\n .ant-col-md-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n }\n .ant-col-md-push-9 {\n left: 37.5%;\n }\n .ant-col-md-pull-9 {\n right: 37.5%;\n }\n .ant-col-md-offset-9 {\n margin-left: 37.5%;\n }\n .ant-col-md-order-9 {\n order: 9;\n }\n .ant-col-md-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .ant-col-md-push-8 {\n left: 33.33333333%;\n }\n .ant-col-md-pull-8 {\n right: 33.33333333%;\n }\n .ant-col-md-offset-8 {\n margin-left: 33.33333333%;\n }\n .ant-col-md-order-8 {\n order: 8;\n }\n .ant-col-md-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n }\n .ant-col-md-push-7 {\n left: 29.16666667%;\n }\n .ant-col-md-pull-7 {\n right: 29.16666667%;\n }\n .ant-col-md-offset-7 {\n margin-left: 29.16666667%;\n }\n .ant-col-md-order-7 {\n order: 7;\n }\n .ant-col-md-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .ant-col-md-push-6 {\n left: 25%;\n }\n .ant-col-md-pull-6 {\n right: 25%;\n }\n .ant-col-md-offset-6 {\n margin-left: 25%;\n }\n .ant-col-md-order-6 {\n order: 6;\n }\n .ant-col-md-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n }\n .ant-col-md-push-5 {\n left: 20.83333333%;\n }\n .ant-col-md-pull-5 {\n right: 20.83333333%;\n }\n .ant-col-md-offset-5 {\n margin-left: 20.83333333%;\n }\n .ant-col-md-order-5 {\n order: 5;\n }\n .ant-col-md-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .ant-col-md-push-4 {\n left: 16.66666667%;\n }\n .ant-col-md-pull-4 {\n right: 16.66666667%;\n }\n .ant-col-md-offset-4 {\n margin-left: 16.66666667%;\n }\n .ant-col-md-order-4 {\n order: 4;\n }\n .ant-col-md-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n }\n .ant-col-md-push-3 {\n left: 12.5%;\n }\n .ant-col-md-pull-3 {\n right: 12.5%;\n }\n .ant-col-md-offset-3 {\n margin-left: 12.5%;\n }\n .ant-col-md-order-3 {\n order: 3;\n }\n .ant-col-md-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .ant-col-md-push-2 {\n left: 8.33333333%;\n }\n .ant-col-md-pull-2 {\n right: 8.33333333%;\n }\n .ant-col-md-offset-2 {\n margin-left: 8.33333333%;\n }\n .ant-col-md-order-2 {\n order: 2;\n }\n .ant-col-md-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n }\n .ant-col-md-push-1 {\n left: 4.16666667%;\n }\n .ant-col-md-pull-1 {\n right: 4.16666667%;\n }\n .ant-col-md-offset-1 {\n margin-left: 4.16666667%;\n }\n .ant-col-md-order-1 {\n order: 1;\n }\n .ant-col-md-0 {\n display: none;\n }\n .ant-col-push-0 {\n left: auto;\n }\n .ant-col-pull-0 {\n right: auto;\n }\n .ant-col-md-push-0 {\n left: auto;\n }\n .ant-col-md-pull-0 {\n right: auto;\n }\n .ant-col-md-offset-0 {\n margin-left: 0;\n }\n .ant-col-md-order-0 {\n order: 0;\n }\n .ant-col-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-md-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-md-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-md-offset-0.ant-col-rtl {\n margin-right: 0;\n }\n .ant-col-md-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n }\n .ant-col-md-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n }\n .ant-col-md-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n }\n .ant-col-md-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n }\n .ant-col-md-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n }\n .ant-col-md-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .ant-col-md-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n }\n .ant-col-md-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n }\n .ant-col-md-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n }\n .ant-col-md-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n }\n .ant-col-md-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n }\n .ant-col-md-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .ant-col-md-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n }\n .ant-col-md-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n }\n .ant-col-md-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n }\n .ant-col-md-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n }\n .ant-col-md-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n }\n .ant-col-md-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n }\n .ant-col-md-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n }\n .ant-col-md-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n }\n .ant-col-md-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n }\n .ant-col-md-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n }\n .ant-col-md-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n }\n .ant-col-md-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .ant-col-md-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n }\n .ant-col-md-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n }\n .ant-col-md-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n }\n .ant-col-md-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n }\n .ant-col-md-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n }\n .ant-col-md-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .ant-col-md-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n }\n .ant-col-md-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n }\n .ant-col-md-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n }\n .ant-col-md-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n }\n .ant-col-md-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n }\n .ant-col-md-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n }\n .ant-col-md-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n }\n .ant-col-md-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n }\n .ant-col-md-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n }\n .ant-col-md-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n }\n .ant-col-md-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n }\n .ant-col-md-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .ant-col-md-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n }\n .ant-col-md-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n }\n .ant-col-md-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n }\n .ant-col-md-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n }\n .ant-col-md-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n }\n .ant-col-md-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .ant-col-md-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n }\n .ant-col-md-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n }\n .ant-col-md-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n }\n .ant-col-md-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n }\n .ant-col-md-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n }\n .ant-col-md-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n }\n .ant-col-md-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n }\n .ant-col-md-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n }\n .ant-col-md-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n }\n .ant-col-md-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n }\n .ant-col-md-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n }\n .ant-col-md-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .ant-col-md-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n }\n .ant-col-md-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n }\n .ant-col-md-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n }\n .ant-col-md-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n }\n .ant-col-md-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n }\n .ant-col-md-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .ant-col-md-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n }\n .ant-col-md-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n }\n .ant-col-md-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n }\n .ant-col-md-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n }\n .ant-col-md-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n }\n .ant-col-md-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n }\n}\n@media (min-width: 992px) {\n .ant-col-lg-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-lg-push-24 {\n left: 100%;\n }\n .ant-col-lg-pull-24 {\n right: 100%;\n }\n .ant-col-lg-offset-24 {\n margin-left: 100%;\n }\n .ant-col-lg-order-24 {\n order: 24;\n }\n .ant-col-lg-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n }\n .ant-col-lg-push-23 {\n left: 95.83333333%;\n }\n .ant-col-lg-pull-23 {\n right: 95.83333333%;\n }\n .ant-col-lg-offset-23 {\n margin-left: 95.83333333%;\n }\n .ant-col-lg-order-23 {\n order: 23;\n }\n .ant-col-lg-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .ant-col-lg-push-22 {\n left: 91.66666667%;\n }\n .ant-col-lg-pull-22 {\n right: 91.66666667%;\n }\n .ant-col-lg-offset-22 {\n margin-left: 91.66666667%;\n }\n .ant-col-lg-order-22 {\n order: 22;\n }\n .ant-col-lg-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n }\n .ant-col-lg-push-21 {\n left: 87.5%;\n }\n .ant-col-lg-pull-21 {\n right: 87.5%;\n }\n .ant-col-lg-offset-21 {\n margin-left: 87.5%;\n }\n .ant-col-lg-order-21 {\n order: 21;\n }\n .ant-col-lg-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .ant-col-lg-push-20 {\n left: 83.33333333%;\n }\n .ant-col-lg-pull-20 {\n right: 83.33333333%;\n }\n .ant-col-lg-offset-20 {\n margin-left: 83.33333333%;\n }\n .ant-col-lg-order-20 {\n order: 20;\n }\n .ant-col-lg-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n }\n .ant-col-lg-push-19 {\n left: 79.16666667%;\n }\n .ant-col-lg-pull-19 {\n right: 79.16666667%;\n }\n .ant-col-lg-offset-19 {\n margin-left: 79.16666667%;\n }\n .ant-col-lg-order-19 {\n order: 19;\n }\n .ant-col-lg-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .ant-col-lg-push-18 {\n left: 75%;\n }\n .ant-col-lg-pull-18 {\n right: 75%;\n }\n .ant-col-lg-offset-18 {\n margin-left: 75%;\n }\n .ant-col-lg-order-18 {\n order: 18;\n }\n .ant-col-lg-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n }\n .ant-col-lg-push-17 {\n left: 70.83333333%;\n }\n .ant-col-lg-pull-17 {\n right: 70.83333333%;\n }\n .ant-col-lg-offset-17 {\n margin-left: 70.83333333%;\n }\n .ant-col-lg-order-17 {\n order: 17;\n }\n .ant-col-lg-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .ant-col-lg-push-16 {\n left: 66.66666667%;\n }\n .ant-col-lg-pull-16 {\n right: 66.66666667%;\n }\n .ant-col-lg-offset-16 {\n margin-left: 66.66666667%;\n }\n .ant-col-lg-order-16 {\n order: 16;\n }\n .ant-col-lg-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n }\n .ant-col-lg-push-15 {\n left: 62.5%;\n }\n .ant-col-lg-pull-15 {\n right: 62.5%;\n }\n .ant-col-lg-offset-15 {\n margin-left: 62.5%;\n }\n .ant-col-lg-order-15 {\n order: 15;\n }\n .ant-col-lg-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .ant-col-lg-push-14 {\n left: 58.33333333%;\n }\n .ant-col-lg-pull-14 {\n right: 58.33333333%;\n }\n .ant-col-lg-offset-14 {\n margin-left: 58.33333333%;\n }\n .ant-col-lg-order-14 {\n order: 14;\n }\n .ant-col-lg-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n }\n .ant-col-lg-push-13 {\n left: 54.16666667%;\n }\n .ant-col-lg-pull-13 {\n right: 54.16666667%;\n }\n .ant-col-lg-offset-13 {\n margin-left: 54.16666667%;\n }\n .ant-col-lg-order-13 {\n order: 13;\n }\n .ant-col-lg-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .ant-col-lg-push-12 {\n left: 50%;\n }\n .ant-col-lg-pull-12 {\n right: 50%;\n }\n .ant-col-lg-offset-12 {\n margin-left: 50%;\n }\n .ant-col-lg-order-12 {\n order: 12;\n }\n .ant-col-lg-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n }\n .ant-col-lg-push-11 {\n left: 45.83333333%;\n }\n .ant-col-lg-pull-11 {\n right: 45.83333333%;\n }\n .ant-col-lg-offset-11 {\n margin-left: 45.83333333%;\n }\n .ant-col-lg-order-11 {\n order: 11;\n }\n .ant-col-lg-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .ant-col-lg-push-10 {\n left: 41.66666667%;\n }\n .ant-col-lg-pull-10 {\n right: 41.66666667%;\n }\n .ant-col-lg-offset-10 {\n margin-left: 41.66666667%;\n }\n .ant-col-lg-order-10 {\n order: 10;\n }\n .ant-col-lg-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n }\n .ant-col-lg-push-9 {\n left: 37.5%;\n }\n .ant-col-lg-pull-9 {\n right: 37.5%;\n }\n .ant-col-lg-offset-9 {\n margin-left: 37.5%;\n }\n .ant-col-lg-order-9 {\n order: 9;\n }\n .ant-col-lg-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .ant-col-lg-push-8 {\n left: 33.33333333%;\n }\n .ant-col-lg-pull-8 {\n right: 33.33333333%;\n }\n .ant-col-lg-offset-8 {\n margin-left: 33.33333333%;\n }\n .ant-col-lg-order-8 {\n order: 8;\n }\n .ant-col-lg-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n }\n .ant-col-lg-push-7 {\n left: 29.16666667%;\n }\n .ant-col-lg-pull-7 {\n right: 29.16666667%;\n }\n .ant-col-lg-offset-7 {\n margin-left: 29.16666667%;\n }\n .ant-col-lg-order-7 {\n order: 7;\n }\n .ant-col-lg-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .ant-col-lg-push-6 {\n left: 25%;\n }\n .ant-col-lg-pull-6 {\n right: 25%;\n }\n .ant-col-lg-offset-6 {\n margin-left: 25%;\n }\n .ant-col-lg-order-6 {\n order: 6;\n }\n .ant-col-lg-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n }\n .ant-col-lg-push-5 {\n left: 20.83333333%;\n }\n .ant-col-lg-pull-5 {\n right: 20.83333333%;\n }\n .ant-col-lg-offset-5 {\n margin-left: 20.83333333%;\n }\n .ant-col-lg-order-5 {\n order: 5;\n }\n .ant-col-lg-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .ant-col-lg-push-4 {\n left: 16.66666667%;\n }\n .ant-col-lg-pull-4 {\n right: 16.66666667%;\n }\n .ant-col-lg-offset-4 {\n margin-left: 16.66666667%;\n }\n .ant-col-lg-order-4 {\n order: 4;\n }\n .ant-col-lg-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n }\n .ant-col-lg-push-3 {\n left: 12.5%;\n }\n .ant-col-lg-pull-3 {\n right: 12.5%;\n }\n .ant-col-lg-offset-3 {\n margin-left: 12.5%;\n }\n .ant-col-lg-order-3 {\n order: 3;\n }\n .ant-col-lg-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .ant-col-lg-push-2 {\n left: 8.33333333%;\n }\n .ant-col-lg-pull-2 {\n right: 8.33333333%;\n }\n .ant-col-lg-offset-2 {\n margin-left: 8.33333333%;\n }\n .ant-col-lg-order-2 {\n order: 2;\n }\n .ant-col-lg-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n }\n .ant-col-lg-push-1 {\n left: 4.16666667%;\n }\n .ant-col-lg-pull-1 {\n right: 4.16666667%;\n }\n .ant-col-lg-offset-1 {\n margin-left: 4.16666667%;\n }\n .ant-col-lg-order-1 {\n order: 1;\n }\n .ant-col-lg-0 {\n display: none;\n }\n .ant-col-push-0 {\n left: auto;\n }\n .ant-col-pull-0 {\n right: auto;\n }\n .ant-col-lg-push-0 {\n left: auto;\n }\n .ant-col-lg-pull-0 {\n right: auto;\n }\n .ant-col-lg-offset-0 {\n margin-left: 0;\n }\n .ant-col-lg-order-0 {\n order: 0;\n }\n .ant-col-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-lg-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-lg-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-lg-offset-0.ant-col-rtl {\n margin-right: 0;\n }\n .ant-col-lg-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n }\n .ant-col-lg-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n }\n .ant-col-lg-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n }\n .ant-col-lg-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n }\n .ant-col-lg-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n }\n .ant-col-lg-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n }\n .ant-col-lg-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n }\n .ant-col-lg-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n }\n .ant-col-lg-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n }\n .ant-col-lg-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n }\n .ant-col-lg-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n }\n .ant-col-lg-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n }\n .ant-col-lg-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n }\n .ant-col-lg-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n }\n .ant-col-lg-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n }\n .ant-col-lg-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n }\n .ant-col-lg-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n }\n .ant-col-lg-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n }\n .ant-col-lg-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n }\n .ant-col-lg-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n }\n .ant-col-lg-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n }\n .ant-col-lg-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n }\n .ant-col-lg-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n }\n .ant-col-lg-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n }\n .ant-col-lg-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n }\n .ant-col-lg-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n }\n .ant-col-lg-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n }\n .ant-col-lg-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n }\n .ant-col-lg-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n }\n .ant-col-lg-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n }\n .ant-col-lg-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n }\n .ant-col-lg-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n }\n .ant-col-lg-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n }\n .ant-col-lg-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n }\n .ant-col-lg-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n }\n .ant-col-lg-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n }\n .ant-col-lg-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n }\n .ant-col-lg-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n }\n .ant-col-lg-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n }\n .ant-col-lg-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n }\n .ant-col-lg-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n }\n .ant-col-lg-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n }\n .ant-col-lg-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n }\n .ant-col-lg-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n }\n .ant-col-lg-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n }\n .ant-col-lg-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n }\n .ant-col-lg-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n }\n .ant-col-lg-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n }\n .ant-col-lg-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n }\n .ant-col-lg-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n }\n .ant-col-lg-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n }\n .ant-col-lg-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .ant-col-lg-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n }\n .ant-col-lg-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n }\n .ant-col-lg-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n }\n .ant-col-lg-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n }\n .ant-col-lg-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n }\n .ant-col-lg-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n }\n}\n@media (min-width: 1200px) {\n .ant-col-xl-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-xl-push-24 {\n left: 100%;\n }\n .ant-col-xl-pull-24 {\n right: 100%;\n }\n .ant-col-xl-offset-24 {\n margin-left: 100%;\n }\n .ant-col-xl-order-24 {\n order: 24;\n }\n .ant-col-xl-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n }\n .ant-col-xl-push-23 {\n left: 95.83333333%;\n }\n .ant-col-xl-pull-23 {\n right: 95.83333333%;\n }\n .ant-col-xl-offset-23 {\n margin-left: 95.83333333%;\n }\n .ant-col-xl-order-23 {\n order: 23;\n }\n .ant-col-xl-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .ant-col-xl-push-22 {\n left: 91.66666667%;\n }\n .ant-col-xl-pull-22 {\n right: 91.66666667%;\n }\n .ant-col-xl-offset-22 {\n margin-left: 91.66666667%;\n }\n .ant-col-xl-order-22 {\n order: 22;\n }\n .ant-col-xl-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n }\n .ant-col-xl-push-21 {\n left: 87.5%;\n }\n .ant-col-xl-pull-21 {\n right: 87.5%;\n }\n .ant-col-xl-offset-21 {\n margin-left: 87.5%;\n }\n .ant-col-xl-order-21 {\n order: 21;\n }\n .ant-col-xl-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .ant-col-xl-push-20 {\n left: 83.33333333%;\n }\n .ant-col-xl-pull-20 {\n right: 83.33333333%;\n }\n .ant-col-xl-offset-20 {\n margin-left: 83.33333333%;\n }\n .ant-col-xl-order-20 {\n order: 20;\n }\n .ant-col-xl-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n }\n .ant-col-xl-push-19 {\n left: 79.16666667%;\n }\n .ant-col-xl-pull-19 {\n right: 79.16666667%;\n }\n .ant-col-xl-offset-19 {\n margin-left: 79.16666667%;\n }\n .ant-col-xl-order-19 {\n order: 19;\n }\n .ant-col-xl-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .ant-col-xl-push-18 {\n left: 75%;\n }\n .ant-col-xl-pull-18 {\n right: 75%;\n }\n .ant-col-xl-offset-18 {\n margin-left: 75%;\n }\n .ant-col-xl-order-18 {\n order: 18;\n }\n .ant-col-xl-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n }\n .ant-col-xl-push-17 {\n left: 70.83333333%;\n }\n .ant-col-xl-pull-17 {\n right: 70.83333333%;\n }\n .ant-col-xl-offset-17 {\n margin-left: 70.83333333%;\n }\n .ant-col-xl-order-17 {\n order: 17;\n }\n .ant-col-xl-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .ant-col-xl-push-16 {\n left: 66.66666667%;\n }\n .ant-col-xl-pull-16 {\n right: 66.66666667%;\n }\n .ant-col-xl-offset-16 {\n margin-left: 66.66666667%;\n }\n .ant-col-xl-order-16 {\n order: 16;\n }\n .ant-col-xl-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n }\n .ant-col-xl-push-15 {\n left: 62.5%;\n }\n .ant-col-xl-pull-15 {\n right: 62.5%;\n }\n .ant-col-xl-offset-15 {\n margin-left: 62.5%;\n }\n .ant-col-xl-order-15 {\n order: 15;\n }\n .ant-col-xl-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .ant-col-xl-push-14 {\n left: 58.33333333%;\n }\n .ant-col-xl-pull-14 {\n right: 58.33333333%;\n }\n .ant-col-xl-offset-14 {\n margin-left: 58.33333333%;\n }\n .ant-col-xl-order-14 {\n order: 14;\n }\n .ant-col-xl-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n }\n .ant-col-xl-push-13 {\n left: 54.16666667%;\n }\n .ant-col-xl-pull-13 {\n right: 54.16666667%;\n }\n .ant-col-xl-offset-13 {\n margin-left: 54.16666667%;\n }\n .ant-col-xl-order-13 {\n order: 13;\n }\n .ant-col-xl-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .ant-col-xl-push-12 {\n left: 50%;\n }\n .ant-col-xl-pull-12 {\n right: 50%;\n }\n .ant-col-xl-offset-12 {\n margin-left: 50%;\n }\n .ant-col-xl-order-12 {\n order: 12;\n }\n .ant-col-xl-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n }\n .ant-col-xl-push-11 {\n left: 45.83333333%;\n }\n .ant-col-xl-pull-11 {\n right: 45.83333333%;\n }\n .ant-col-xl-offset-11 {\n margin-left: 45.83333333%;\n }\n .ant-col-xl-order-11 {\n order: 11;\n }\n .ant-col-xl-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .ant-col-xl-push-10 {\n left: 41.66666667%;\n }\n .ant-col-xl-pull-10 {\n right: 41.66666667%;\n }\n .ant-col-xl-offset-10 {\n margin-left: 41.66666667%;\n }\n .ant-col-xl-order-10 {\n order: 10;\n }\n .ant-col-xl-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n }\n .ant-col-xl-push-9 {\n left: 37.5%;\n }\n .ant-col-xl-pull-9 {\n right: 37.5%;\n }\n .ant-col-xl-offset-9 {\n margin-left: 37.5%;\n }\n .ant-col-xl-order-9 {\n order: 9;\n }\n .ant-col-xl-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .ant-col-xl-push-8 {\n left: 33.33333333%;\n }\n .ant-col-xl-pull-8 {\n right: 33.33333333%;\n }\n .ant-col-xl-offset-8 {\n margin-left: 33.33333333%;\n }\n .ant-col-xl-order-8 {\n order: 8;\n }\n .ant-col-xl-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n }\n .ant-col-xl-push-7 {\n left: 29.16666667%;\n }\n .ant-col-xl-pull-7 {\n right: 29.16666667%;\n }\n .ant-col-xl-offset-7 {\n margin-left: 29.16666667%;\n }\n .ant-col-xl-order-7 {\n order: 7;\n }\n .ant-col-xl-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .ant-col-xl-push-6 {\n left: 25%;\n }\n .ant-col-xl-pull-6 {\n right: 25%;\n }\n .ant-col-xl-offset-6 {\n margin-left: 25%;\n }\n .ant-col-xl-order-6 {\n order: 6;\n }\n .ant-col-xl-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n }\n .ant-col-xl-push-5 {\n left: 20.83333333%;\n }\n .ant-col-xl-pull-5 {\n right: 20.83333333%;\n }\n .ant-col-xl-offset-5 {\n margin-left: 20.83333333%;\n }\n .ant-col-xl-order-5 {\n order: 5;\n }\n .ant-col-xl-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .ant-col-xl-push-4 {\n left: 16.66666667%;\n }\n .ant-col-xl-pull-4 {\n right: 16.66666667%;\n }\n .ant-col-xl-offset-4 {\n margin-left: 16.66666667%;\n }\n .ant-col-xl-order-4 {\n order: 4;\n }\n .ant-col-xl-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n }\n .ant-col-xl-push-3 {\n left: 12.5%;\n }\n .ant-col-xl-pull-3 {\n right: 12.5%;\n }\n .ant-col-xl-offset-3 {\n margin-left: 12.5%;\n }\n .ant-col-xl-order-3 {\n order: 3;\n }\n .ant-col-xl-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .ant-col-xl-push-2 {\n left: 8.33333333%;\n }\n .ant-col-xl-pull-2 {\n right: 8.33333333%;\n }\n .ant-col-xl-offset-2 {\n margin-left: 8.33333333%;\n }\n .ant-col-xl-order-2 {\n order: 2;\n }\n .ant-col-xl-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n }\n .ant-col-xl-push-1 {\n left: 4.16666667%;\n }\n .ant-col-xl-pull-1 {\n right: 4.16666667%;\n }\n .ant-col-xl-offset-1 {\n margin-left: 4.16666667%;\n }\n .ant-col-xl-order-1 {\n order: 1;\n }\n .ant-col-xl-0 {\n display: none;\n }\n .ant-col-push-0 {\n left: auto;\n }\n .ant-col-pull-0 {\n right: auto;\n }\n .ant-col-xl-push-0 {\n left: auto;\n }\n .ant-col-xl-pull-0 {\n right: auto;\n }\n .ant-col-xl-offset-0 {\n margin-left: 0;\n }\n .ant-col-xl-order-0 {\n order: 0;\n }\n .ant-col-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-xl-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-xl-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-xl-offset-0.ant-col-rtl {\n margin-right: 0;\n }\n .ant-col-xl-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n }\n .ant-col-xl-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n }\n .ant-col-xl-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n }\n .ant-col-xl-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n }\n .ant-col-xl-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n }\n .ant-col-xl-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n }\n .ant-col-xl-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n }\n .ant-col-xl-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n }\n .ant-col-xl-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n }\n .ant-col-xl-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n }\n .ant-col-xl-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n }\n .ant-col-xl-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n }\n .ant-col-xl-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n }\n .ant-col-xl-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n }\n .ant-col-xl-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n }\n .ant-col-xl-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n }\n .ant-col-xl-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n }\n .ant-col-xl-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n }\n .ant-col-xl-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n }\n .ant-col-xl-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n }\n .ant-col-xl-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n }\n .ant-col-xl-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n }\n .ant-col-xl-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n }\n .ant-col-xl-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n }\n .ant-col-xl-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n }\n .ant-col-xl-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n }\n .ant-col-xl-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n }\n .ant-col-xl-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n }\n .ant-col-xl-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n }\n .ant-col-xl-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n }\n .ant-col-xl-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n }\n .ant-col-xl-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n }\n .ant-col-xl-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n }\n .ant-col-xl-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n }\n .ant-col-xl-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n }\n .ant-col-xl-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n }\n .ant-col-xl-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n }\n .ant-col-xl-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n }\n .ant-col-xl-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n }\n .ant-col-xl-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n }\n .ant-col-xl-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n }\n .ant-col-xl-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n }\n .ant-col-xl-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n }\n .ant-col-xl-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n }\n .ant-col-xl-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n }\n .ant-col-xl-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n }\n .ant-col-xl-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n }\n .ant-col-xl-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n }\n .ant-col-xl-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n }\n .ant-col-xl-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n }\n .ant-col-xl-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n }\n .ant-col-xl-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .ant-col-xl-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n }\n .ant-col-xl-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n }\n .ant-col-xl-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n }\n .ant-col-xl-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n }\n .ant-col-xl-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n }\n .ant-col-xl-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n }\n}\n@media (min-width: 1600px) {\n .ant-col-xxl-24 {\n display: block;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-xxl-push-24 {\n left: 100%;\n }\n .ant-col-xxl-pull-24 {\n right: 100%;\n }\n .ant-col-xxl-offset-24 {\n margin-left: 100%;\n }\n .ant-col-xxl-order-24 {\n order: 24;\n }\n .ant-col-xxl-23 {\n display: block;\n flex: 0 0 95.83333333%;\n max-width: 95.83333333%;\n }\n .ant-col-xxl-push-23 {\n left: 95.83333333%;\n }\n .ant-col-xxl-pull-23 {\n right: 95.83333333%;\n }\n .ant-col-xxl-offset-23 {\n margin-left: 95.83333333%;\n }\n .ant-col-xxl-order-23 {\n order: 23;\n }\n .ant-col-xxl-22 {\n display: block;\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .ant-col-xxl-push-22 {\n left: 91.66666667%;\n }\n .ant-col-xxl-pull-22 {\n right: 91.66666667%;\n }\n .ant-col-xxl-offset-22 {\n margin-left: 91.66666667%;\n }\n .ant-col-xxl-order-22 {\n order: 22;\n }\n .ant-col-xxl-21 {\n display: block;\n flex: 0 0 87.5%;\n max-width: 87.5%;\n }\n .ant-col-xxl-push-21 {\n left: 87.5%;\n }\n .ant-col-xxl-pull-21 {\n right: 87.5%;\n }\n .ant-col-xxl-offset-21 {\n margin-left: 87.5%;\n }\n .ant-col-xxl-order-21 {\n order: 21;\n }\n .ant-col-xxl-20 {\n display: block;\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .ant-col-xxl-push-20 {\n left: 83.33333333%;\n }\n .ant-col-xxl-pull-20 {\n right: 83.33333333%;\n }\n .ant-col-xxl-offset-20 {\n margin-left: 83.33333333%;\n }\n .ant-col-xxl-order-20 {\n order: 20;\n }\n .ant-col-xxl-19 {\n display: block;\n flex: 0 0 79.16666667%;\n max-width: 79.16666667%;\n }\n .ant-col-xxl-push-19 {\n left: 79.16666667%;\n }\n .ant-col-xxl-pull-19 {\n right: 79.16666667%;\n }\n .ant-col-xxl-offset-19 {\n margin-left: 79.16666667%;\n }\n .ant-col-xxl-order-19 {\n order: 19;\n }\n .ant-col-xxl-18 {\n display: block;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .ant-col-xxl-push-18 {\n left: 75%;\n }\n .ant-col-xxl-pull-18 {\n right: 75%;\n }\n .ant-col-xxl-offset-18 {\n margin-left: 75%;\n }\n .ant-col-xxl-order-18 {\n order: 18;\n }\n .ant-col-xxl-17 {\n display: block;\n flex: 0 0 70.83333333%;\n max-width: 70.83333333%;\n }\n .ant-col-xxl-push-17 {\n left: 70.83333333%;\n }\n .ant-col-xxl-pull-17 {\n right: 70.83333333%;\n }\n .ant-col-xxl-offset-17 {\n margin-left: 70.83333333%;\n }\n .ant-col-xxl-order-17 {\n order: 17;\n }\n .ant-col-xxl-16 {\n display: block;\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .ant-col-xxl-push-16 {\n left: 66.66666667%;\n }\n .ant-col-xxl-pull-16 {\n right: 66.66666667%;\n }\n .ant-col-xxl-offset-16 {\n margin-left: 66.66666667%;\n }\n .ant-col-xxl-order-16 {\n order: 16;\n }\n .ant-col-xxl-15 {\n display: block;\n flex: 0 0 62.5%;\n max-width: 62.5%;\n }\n .ant-col-xxl-push-15 {\n left: 62.5%;\n }\n .ant-col-xxl-pull-15 {\n right: 62.5%;\n }\n .ant-col-xxl-offset-15 {\n margin-left: 62.5%;\n }\n .ant-col-xxl-order-15 {\n order: 15;\n }\n .ant-col-xxl-14 {\n display: block;\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .ant-col-xxl-push-14 {\n left: 58.33333333%;\n }\n .ant-col-xxl-pull-14 {\n right: 58.33333333%;\n }\n .ant-col-xxl-offset-14 {\n margin-left: 58.33333333%;\n }\n .ant-col-xxl-order-14 {\n order: 14;\n }\n .ant-col-xxl-13 {\n display: block;\n flex: 0 0 54.16666667%;\n max-width: 54.16666667%;\n }\n .ant-col-xxl-push-13 {\n left: 54.16666667%;\n }\n .ant-col-xxl-pull-13 {\n right: 54.16666667%;\n }\n .ant-col-xxl-offset-13 {\n margin-left: 54.16666667%;\n }\n .ant-col-xxl-order-13 {\n order: 13;\n }\n .ant-col-xxl-12 {\n display: block;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .ant-col-xxl-push-12 {\n left: 50%;\n }\n .ant-col-xxl-pull-12 {\n right: 50%;\n }\n .ant-col-xxl-offset-12 {\n margin-left: 50%;\n }\n .ant-col-xxl-order-12 {\n order: 12;\n }\n .ant-col-xxl-11 {\n display: block;\n flex: 0 0 45.83333333%;\n max-width: 45.83333333%;\n }\n .ant-col-xxl-push-11 {\n left: 45.83333333%;\n }\n .ant-col-xxl-pull-11 {\n right: 45.83333333%;\n }\n .ant-col-xxl-offset-11 {\n margin-left: 45.83333333%;\n }\n .ant-col-xxl-order-11 {\n order: 11;\n }\n .ant-col-xxl-10 {\n display: block;\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .ant-col-xxl-push-10 {\n left: 41.66666667%;\n }\n .ant-col-xxl-pull-10 {\n right: 41.66666667%;\n }\n .ant-col-xxl-offset-10 {\n margin-left: 41.66666667%;\n }\n .ant-col-xxl-order-10 {\n order: 10;\n }\n .ant-col-xxl-9 {\n display: block;\n flex: 0 0 37.5%;\n max-width: 37.5%;\n }\n .ant-col-xxl-push-9 {\n left: 37.5%;\n }\n .ant-col-xxl-pull-9 {\n right: 37.5%;\n }\n .ant-col-xxl-offset-9 {\n margin-left: 37.5%;\n }\n .ant-col-xxl-order-9 {\n order: 9;\n }\n .ant-col-xxl-8 {\n display: block;\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .ant-col-xxl-push-8 {\n left: 33.33333333%;\n }\n .ant-col-xxl-pull-8 {\n right: 33.33333333%;\n }\n .ant-col-xxl-offset-8 {\n margin-left: 33.33333333%;\n }\n .ant-col-xxl-order-8 {\n order: 8;\n }\n .ant-col-xxl-7 {\n display: block;\n flex: 0 0 29.16666667%;\n max-width: 29.16666667%;\n }\n .ant-col-xxl-push-7 {\n left: 29.16666667%;\n }\n .ant-col-xxl-pull-7 {\n right: 29.16666667%;\n }\n .ant-col-xxl-offset-7 {\n margin-left: 29.16666667%;\n }\n .ant-col-xxl-order-7 {\n order: 7;\n }\n .ant-col-xxl-6 {\n display: block;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .ant-col-xxl-push-6 {\n left: 25%;\n }\n .ant-col-xxl-pull-6 {\n right: 25%;\n }\n .ant-col-xxl-offset-6 {\n margin-left: 25%;\n }\n .ant-col-xxl-order-6 {\n order: 6;\n }\n .ant-col-xxl-5 {\n display: block;\n flex: 0 0 20.83333333%;\n max-width: 20.83333333%;\n }\n .ant-col-xxl-push-5 {\n left: 20.83333333%;\n }\n .ant-col-xxl-pull-5 {\n right: 20.83333333%;\n }\n .ant-col-xxl-offset-5 {\n margin-left: 20.83333333%;\n }\n .ant-col-xxl-order-5 {\n order: 5;\n }\n .ant-col-xxl-4 {\n display: block;\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .ant-col-xxl-push-4 {\n left: 16.66666667%;\n }\n .ant-col-xxl-pull-4 {\n right: 16.66666667%;\n }\n .ant-col-xxl-offset-4 {\n margin-left: 16.66666667%;\n }\n .ant-col-xxl-order-4 {\n order: 4;\n }\n .ant-col-xxl-3 {\n display: block;\n flex: 0 0 12.5%;\n max-width: 12.5%;\n }\n .ant-col-xxl-push-3 {\n left: 12.5%;\n }\n .ant-col-xxl-pull-3 {\n right: 12.5%;\n }\n .ant-col-xxl-offset-3 {\n margin-left: 12.5%;\n }\n .ant-col-xxl-order-3 {\n order: 3;\n }\n .ant-col-xxl-2 {\n display: block;\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .ant-col-xxl-push-2 {\n left: 8.33333333%;\n }\n .ant-col-xxl-pull-2 {\n right: 8.33333333%;\n }\n .ant-col-xxl-offset-2 {\n margin-left: 8.33333333%;\n }\n .ant-col-xxl-order-2 {\n order: 2;\n }\n .ant-col-xxl-1 {\n display: block;\n flex: 0 0 4.16666667%;\n max-width: 4.16666667%;\n }\n .ant-col-xxl-push-1 {\n left: 4.16666667%;\n }\n .ant-col-xxl-pull-1 {\n right: 4.16666667%;\n }\n .ant-col-xxl-offset-1 {\n margin-left: 4.16666667%;\n }\n .ant-col-xxl-order-1 {\n order: 1;\n }\n .ant-col-xxl-0 {\n display: none;\n }\n .ant-col-push-0 {\n left: auto;\n }\n .ant-col-pull-0 {\n right: auto;\n }\n .ant-col-xxl-push-0 {\n left: auto;\n }\n .ant-col-xxl-pull-0 {\n right: auto;\n }\n .ant-col-xxl-offset-0 {\n margin-left: 0;\n }\n .ant-col-xxl-order-0 {\n order: 0;\n }\n .ant-col-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-xxl-push-0.ant-col-rtl {\n right: auto;\n }\n .ant-col-xxl-pull-0.ant-col-rtl {\n left: auto;\n }\n .ant-col-xxl-offset-0.ant-col-rtl {\n margin-right: 0;\n }\n .ant-col-xxl-push-1.ant-col-rtl {\n right: 4.16666667%;\n left: auto;\n }\n .ant-col-xxl-pull-1.ant-col-rtl {\n right: auto;\n left: 4.16666667%;\n }\n .ant-col-xxl-offset-1.ant-col-rtl {\n margin-right: 4.16666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-2.ant-col-rtl {\n right: 8.33333333%;\n left: auto;\n }\n .ant-col-xxl-pull-2.ant-col-rtl {\n right: auto;\n left: 8.33333333%;\n }\n .ant-col-xxl-offset-2.ant-col-rtl {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-3.ant-col-rtl {\n right: 12.5%;\n left: auto;\n }\n .ant-col-xxl-pull-3.ant-col-rtl {\n right: auto;\n left: 12.5%;\n }\n .ant-col-xxl-offset-3.ant-col-rtl {\n margin-right: 12.5%;\n margin-left: 0;\n }\n .ant-col-xxl-push-4.ant-col-rtl {\n right: 16.66666667%;\n left: auto;\n }\n .ant-col-xxl-pull-4.ant-col-rtl {\n right: auto;\n left: 16.66666667%;\n }\n .ant-col-xxl-offset-4.ant-col-rtl {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-5.ant-col-rtl {\n right: 20.83333333%;\n left: auto;\n }\n .ant-col-xxl-pull-5.ant-col-rtl {\n right: auto;\n left: 20.83333333%;\n }\n .ant-col-xxl-offset-5.ant-col-rtl {\n margin-right: 20.83333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-6.ant-col-rtl {\n right: 25%;\n left: auto;\n }\n .ant-col-xxl-pull-6.ant-col-rtl {\n right: auto;\n left: 25%;\n }\n .ant-col-xxl-offset-6.ant-col-rtl {\n margin-right: 25%;\n margin-left: 0;\n }\n .ant-col-xxl-push-7.ant-col-rtl {\n right: 29.16666667%;\n left: auto;\n }\n .ant-col-xxl-pull-7.ant-col-rtl {\n right: auto;\n left: 29.16666667%;\n }\n .ant-col-xxl-offset-7.ant-col-rtl {\n margin-right: 29.16666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-8.ant-col-rtl {\n right: 33.33333333%;\n left: auto;\n }\n .ant-col-xxl-pull-8.ant-col-rtl {\n right: auto;\n left: 33.33333333%;\n }\n .ant-col-xxl-offset-8.ant-col-rtl {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-9.ant-col-rtl {\n right: 37.5%;\n left: auto;\n }\n .ant-col-xxl-pull-9.ant-col-rtl {\n right: auto;\n left: 37.5%;\n }\n .ant-col-xxl-offset-9.ant-col-rtl {\n margin-right: 37.5%;\n margin-left: 0;\n }\n .ant-col-xxl-push-10.ant-col-rtl {\n right: 41.66666667%;\n left: auto;\n }\n .ant-col-xxl-pull-10.ant-col-rtl {\n right: auto;\n left: 41.66666667%;\n }\n .ant-col-xxl-offset-10.ant-col-rtl {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-11.ant-col-rtl {\n right: 45.83333333%;\n left: auto;\n }\n .ant-col-xxl-pull-11.ant-col-rtl {\n right: auto;\n left: 45.83333333%;\n }\n .ant-col-xxl-offset-11.ant-col-rtl {\n margin-right: 45.83333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-12.ant-col-rtl {\n right: 50%;\n left: auto;\n }\n .ant-col-xxl-pull-12.ant-col-rtl {\n right: auto;\n left: 50%;\n }\n .ant-col-xxl-offset-12.ant-col-rtl {\n margin-right: 50%;\n margin-left: 0;\n }\n .ant-col-xxl-push-13.ant-col-rtl {\n right: 54.16666667%;\n left: auto;\n }\n .ant-col-xxl-pull-13.ant-col-rtl {\n right: auto;\n left: 54.16666667%;\n }\n .ant-col-xxl-offset-13.ant-col-rtl {\n margin-right: 54.16666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-14.ant-col-rtl {\n right: 58.33333333%;\n left: auto;\n }\n .ant-col-xxl-pull-14.ant-col-rtl {\n right: auto;\n left: 58.33333333%;\n }\n .ant-col-xxl-offset-14.ant-col-rtl {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-15.ant-col-rtl {\n right: 62.5%;\n left: auto;\n }\n .ant-col-xxl-pull-15.ant-col-rtl {\n right: auto;\n left: 62.5%;\n }\n .ant-col-xxl-offset-15.ant-col-rtl {\n margin-right: 62.5%;\n margin-left: 0;\n }\n .ant-col-xxl-push-16.ant-col-rtl {\n right: 66.66666667%;\n left: auto;\n }\n .ant-col-xxl-pull-16.ant-col-rtl {\n right: auto;\n left: 66.66666667%;\n }\n .ant-col-xxl-offset-16.ant-col-rtl {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-17.ant-col-rtl {\n right: 70.83333333%;\n left: auto;\n }\n .ant-col-xxl-pull-17.ant-col-rtl {\n right: auto;\n left: 70.83333333%;\n }\n .ant-col-xxl-offset-17.ant-col-rtl {\n margin-right: 70.83333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-18.ant-col-rtl {\n right: 75%;\n left: auto;\n }\n .ant-col-xxl-pull-18.ant-col-rtl {\n right: auto;\n left: 75%;\n }\n .ant-col-xxl-offset-18.ant-col-rtl {\n margin-right: 75%;\n margin-left: 0;\n }\n .ant-col-xxl-push-19.ant-col-rtl {\n right: 79.16666667%;\n left: auto;\n }\n .ant-col-xxl-pull-19.ant-col-rtl {\n right: auto;\n left: 79.16666667%;\n }\n .ant-col-xxl-offset-19.ant-col-rtl {\n margin-right: 79.16666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-20.ant-col-rtl {\n right: 83.33333333%;\n left: auto;\n }\n .ant-col-xxl-pull-20.ant-col-rtl {\n right: auto;\n left: 83.33333333%;\n }\n .ant-col-xxl-offset-20.ant-col-rtl {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-21.ant-col-rtl {\n right: 87.5%;\n left: auto;\n }\n .ant-col-xxl-pull-21.ant-col-rtl {\n right: auto;\n left: 87.5%;\n }\n .ant-col-xxl-offset-21.ant-col-rtl {\n margin-right: 87.5%;\n margin-left: 0;\n }\n .ant-col-xxl-push-22.ant-col-rtl {\n right: 91.66666667%;\n left: auto;\n }\n .ant-col-xxl-pull-22.ant-col-rtl {\n right: auto;\n left: 91.66666667%;\n }\n .ant-col-xxl-offset-22.ant-col-rtl {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .ant-col-xxl-push-23.ant-col-rtl {\n right: 95.83333333%;\n left: auto;\n }\n .ant-col-xxl-pull-23.ant-col-rtl {\n right: auto;\n left: 95.83333333%;\n }\n .ant-col-xxl-offset-23.ant-col-rtl {\n margin-right: 95.83333333%;\n margin-left: 0;\n }\n .ant-col-xxl-push-24.ant-col-rtl {\n right: 100%;\n left: auto;\n }\n .ant-col-xxl-pull-24.ant-col-rtl {\n right: auto;\n left: 100%;\n }\n .ant-col-xxl-offset-24.ant-col-rtl {\n margin-right: 100%;\n margin-left: 0;\n }\n}\n.ant-row-rtl {\n direction: rtl;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-collapse {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n background-color: #fafafa;\n border: 1px solid #d9d9d9;\n border-bottom: 0;\n border-radius: 2px;\n}\n.ant-collapse > .ant-collapse-item {\n border-bottom: 1px solid #d9d9d9;\n}\n.ant-collapse > .ant-collapse-item:last-child,\n.ant-collapse > .ant-collapse-item:last-child > .ant-collapse-header {\n border-radius: 0 0 2px 2px;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header {\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n align-items: flex-start;\n padding: 12px 16px;\n color: rgba(0, 0, 0, 0.85);\n line-height: 1.5715;\n cursor: pointer;\n transition: all 0.3s, visibility 0s;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {\n display: inline-block;\n margin-right: 12px;\n font-size: 12px;\n vertical-align: -1px;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow svg {\n transition: transform 0.24s;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-header-text {\n flex: auto;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-extra {\n margin-left: auto;\n}\n.ant-collapse > .ant-collapse-item > .ant-collapse-header:focus {\n outline: none;\n}\n.ant-collapse > .ant-collapse-item .ant-collapse-header-collapsible-only {\n cursor: default;\n}\n.ant-collapse > .ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text {\n flex: none;\n cursor: pointer;\n}\n.ant-collapse > .ant-collapse-item .ant-collapse-icon-collapsible-only {\n cursor: default;\n}\n.ant-collapse > .ant-collapse-item .ant-collapse-icon-collapsible-only .ant-collapse-expand-icon {\n cursor: pointer;\n}\n.ant-collapse > .ant-collapse-item.ant-collapse-no-arrow > .ant-collapse-header {\n padding-left: 12px;\n}\n.ant-collapse-icon-position-end > .ant-collapse-item > .ant-collapse-header {\n position: relative;\n padding: 12px 16px;\n padding-right: 40px;\n}\n.ant-collapse-icon-position-end > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {\n position: absolute;\n top: 50%;\n right: 16px;\n left: auto;\n margin: 0;\n transform: translateY(-50%);\n}\n.ant-collapse-content {\n color: rgba(0, 0, 0, 0.85);\n background-color: #fff;\n border-top: 1px solid #d9d9d9;\n}\n.ant-collapse-content > .ant-collapse-content-box {\n padding: 16px;\n}\n.ant-collapse-content-hidden {\n display: none;\n}\n.ant-collapse-item:last-child > .ant-collapse-content {\n border-radius: 0 0 2px 2px;\n}\n.ant-collapse-borderless {\n background-color: #fafafa;\n border: 0;\n}\n.ant-collapse-borderless > .ant-collapse-item {\n border-bottom: 1px solid #d9d9d9;\n}\n.ant-collapse-borderless > .ant-collapse-item:last-child,\n.ant-collapse-borderless > .ant-collapse-item:last-child .ant-collapse-header {\n border-radius: 0;\n}\n.ant-collapse-borderless > .ant-collapse-item:last-child {\n border-bottom: 0;\n}\n.ant-collapse-borderless > .ant-collapse-item > .ant-collapse-content {\n background-color: transparent;\n border-top: 0;\n}\n.ant-collapse-borderless > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\n padding-top: 4px;\n}\n.ant-collapse-ghost {\n background-color: transparent;\n border: 0;\n}\n.ant-collapse-ghost > .ant-collapse-item {\n border-bottom: 0;\n}\n.ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content {\n background-color: transparent;\n border-top: 0;\n}\n.ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\n padding-top: 12px;\n padding-bottom: 12px;\n}\n.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header,\n.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header > .arrow {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-collapse-rtl {\n direction: rtl;\n}\n.ant-collapse-rtl.ant-collapse.ant-collapse-icon-position-end > .ant-collapse-item > .ant-collapse-header {\n position: relative;\n padding: 12px 16px;\n padding-left: 40px;\n}\n.ant-collapse-rtl.ant-collapse.ant-collapse-icon-position-end > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {\n position: absolute;\n top: 50%;\n right: auto;\n left: 16px;\n margin: 0;\n transform: translateY(-50%);\n}\n.ant-collapse-rtl .ant-collapse > .ant-collapse-item > .ant-collapse-header {\n padding: 12px 16px;\n padding-right: 40px;\n}\n.ant-collapse-rtl.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-collapse-rtl.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow svg {\n transform: rotate(180deg);\n}\n.ant-collapse-rtl.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-extra {\n margin-right: auto;\n margin-left: 0;\n}\n.ant-collapse-rtl.ant-collapse > .ant-collapse-item.ant-collapse-no-arrow > .ant-collapse-header {\n padding-right: 12px;\n padding-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-comment {\n position: relative;\n background-color: inherit;\n}\n.ant-comment-inner {\n display: flex;\n padding: 16px 0;\n}\n.ant-comment-avatar {\n position: relative;\n flex-shrink: 0;\n margin-right: 12px;\n cursor: pointer;\n}\n.ant-comment-avatar img {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n}\n.ant-comment-content {\n position: relative;\n flex: 1 1 auto;\n min-width: 1px;\n font-size: 14px;\n word-wrap: break-word;\n}\n.ant-comment-content-author {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin-bottom: 4px;\n font-size: 14px;\n}\n.ant-comment-content-author > a,\n.ant-comment-content-author > span {\n padding-right: 8px;\n font-size: 12px;\n line-height: 18px;\n}\n.ant-comment-content-author-name {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n transition: color 0.3s;\n}\n.ant-comment-content-author-name > * {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-comment-content-author-name > *:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-comment-content-author-time {\n color: #ccc;\n white-space: nowrap;\n cursor: auto;\n}\n.ant-comment-content-detail p {\n margin-bottom: inherit;\n white-space: pre-wrap;\n}\n.ant-comment-actions {\n margin-top: 12px;\n margin-bottom: inherit;\n padding-left: 0;\n}\n.ant-comment-actions > li {\n display: inline-block;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-comment-actions > li > span {\n margin-right: 10px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n cursor: pointer;\n transition: color 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-comment-actions > li > span:hover {\n color: #595959;\n}\n.ant-comment-nested {\n margin-left: 44px;\n}\n.ant-comment-rtl {\n direction: rtl;\n}\n.ant-comment-rtl .ant-comment-avatar {\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-comment-rtl .ant-comment-content-author > a,\n.ant-comment-rtl .ant-comment-content-author > span {\n padding-right: 0;\n padding-left: 8px;\n}\n.ant-comment-rtl .ant-comment-actions {\n padding-right: 0;\n}\n.ant-comment-rtl .ant-comment-actions > li > span {\n margin-right: 0;\n margin-left: 10px;\n}\n.ant-comment-rtl .ant-comment-nested {\n margin-right: 44px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-descriptions-header {\n display: flex;\n align-items: center;\n margin-bottom: 20px;\n}\n.ant-descriptions-title {\n flex: auto;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: bold;\n font-size: 16px;\n line-height: 1.5715;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-descriptions-extra {\n margin-left: auto;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-descriptions-view {\n width: 100%;\n border-radius: 2px;\n}\n.ant-descriptions-view table {\n width: 100%;\n table-layout: fixed;\n}\n.ant-descriptions-row > th,\n.ant-descriptions-row > td {\n padding-bottom: 16px;\n}\n.ant-descriptions-row:last-child {\n border-bottom: none;\n}\n.ant-descriptions-item-label {\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 1.5715;\n text-align: start;\n}\n.ant-descriptions-item-label::after {\n content: ':';\n position: relative;\n top: -0.5px;\n margin: 0 8px 0 2px;\n}\n.ant-descriptions-item-label.ant-descriptions-item-no-colon::after {\n content: ' ';\n}\n.ant-descriptions-item-no-label::after {\n margin: 0;\n content: '';\n}\n.ant-descriptions-item-content {\n display: table-cell;\n flex: 1;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n.ant-descriptions-item {\n padding-bottom: 0;\n vertical-align: top;\n}\n.ant-descriptions-item-container {\n display: flex;\n}\n.ant-descriptions-item-container .ant-descriptions-item-label,\n.ant-descriptions-item-container .ant-descriptions-item-content {\n display: inline-flex;\n align-items: baseline;\n}\n.ant-descriptions-middle .ant-descriptions-row > th,\n.ant-descriptions-middle .ant-descriptions-row > td {\n padding-bottom: 12px;\n}\n.ant-descriptions-small .ant-descriptions-row > th,\n.ant-descriptions-small .ant-descriptions-row > td {\n padding-bottom: 8px;\n}\n.ant-descriptions-bordered .ant-descriptions-view {\n border: 1px solid #f0f0f0;\n}\n.ant-descriptions-bordered .ant-descriptions-view > table {\n table-layout: auto;\n border-collapse: collapse;\n}\n.ant-descriptions-bordered .ant-descriptions-item-label,\n.ant-descriptions-bordered .ant-descriptions-item-content {\n padding: 16px 24px;\n border-right: 1px solid #f0f0f0;\n}\n.ant-descriptions-bordered .ant-descriptions-item-label:last-child,\n.ant-descriptions-bordered .ant-descriptions-item-content:last-child {\n border-right: none;\n}\n.ant-descriptions-bordered .ant-descriptions-item-label {\n background-color: #fafafa;\n}\n.ant-descriptions-bordered .ant-descriptions-item-label::after {\n display: none;\n}\n.ant-descriptions-bordered .ant-descriptions-row {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-descriptions-bordered .ant-descriptions-row:last-child {\n border-bottom: none;\n}\n.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-label,\n.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-content {\n padding: 12px 24px;\n}\n.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label,\n.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-content {\n padding: 8px 16px;\n}\n.ant-descriptions-rtl {\n direction: rtl;\n}\n.ant-descriptions-rtl .ant-descriptions-item-label::after {\n margin: 0 2px 0 8px;\n}\n.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label,\n.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content {\n border-right: none;\n border-left: 1px solid #f0f0f0;\n}\n.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label:last-child,\n.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content:last-child {\n border-left: none;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-divider {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n}\n.ant-divider-vertical {\n position: relative;\n top: -0.06em;\n display: inline-block;\n height: 0.9em;\n margin: 0 8px;\n vertical-align: middle;\n border-top: 0;\n border-left: 1px solid rgba(0, 0, 0, 0.06);\n}\n.ant-divider-horizontal {\n display: flex;\n clear: both;\n width: 100%;\n min-width: 100%;\n margin: 24px 0;\n}\n.ant-divider-horizontal.ant-divider-with-text {\n display: flex;\n align-items: center;\n margin: 16px 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n white-space: nowrap;\n text-align: center;\n border-top: 0;\n border-top-color: rgba(0, 0, 0, 0.06);\n}\n.ant-divider-horizontal.ant-divider-with-text::before,\n.ant-divider-horizontal.ant-divider-with-text::after {\n position: relative;\n width: 50%;\n border-top: 1px solid transparent;\n border-top-color: inherit;\n border-bottom: 0;\n transform: translateY(50%);\n content: '';\n}\n.ant-divider-horizontal.ant-divider-with-text-left::before {\n width: 5%;\n}\n.ant-divider-horizontal.ant-divider-with-text-left::after {\n width: 95%;\n}\n.ant-divider-horizontal.ant-divider-with-text-right::before {\n width: 95%;\n}\n.ant-divider-horizontal.ant-divider-with-text-right::after {\n width: 5%;\n}\n.ant-divider-inner-text {\n display: inline-block;\n padding: 0 1em;\n}\n.ant-divider-dashed {\n background: none;\n border-color: rgba(0, 0, 0, 0.06);\n border-style: dashed;\n border-width: 1px 0 0;\n}\n.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed::before,\n.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed::after {\n border-style: dashed none none;\n}\n.ant-divider-vertical.ant-divider-dashed {\n border-width: 0 0 0 1px;\n}\n.ant-divider-plain.ant-divider-with-text {\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n}\n.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left::before {\n width: 0;\n}\n.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left::after {\n width: 100%;\n}\n.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left .ant-divider-inner-text {\n padding-left: 0;\n}\n.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right::before {\n width: 100%;\n}\n.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right::after {\n width: 0;\n}\n.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right .ant-divider-inner-text {\n padding-right: 0;\n}\n.ant-divider-rtl {\n direction: rtl;\n}\n.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left::before {\n width: 95%;\n}\n.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left::after {\n width: 5%;\n}\n.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right::before {\n width: 5%;\n}\n.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right::after {\n width: 95%;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-drawer {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n pointer-events: none;\n}\n.ant-drawer-inline {\n position: absolute;\n}\n.ant-drawer-mask {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n background: rgba(0, 0, 0, 0.45);\n pointer-events: auto;\n}\n.ant-drawer-content-wrapper {\n position: absolute;\n z-index: 1000;\n transition: all 0.3s;\n}\n.ant-drawer-content-wrapper-hidden {\n display: none;\n}\n.ant-drawer-left > .ant-drawer-content-wrapper {\n top: 0;\n bottom: 0;\n left: 0;\n box-shadow: 6px 0 16px -8px rgba(0, 0, 0, 0.08), 9px 0 28px 0 rgba(0, 0, 0, 0.05), 12px 0 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-right > .ant-drawer-content-wrapper {\n top: 0;\n right: 0;\n bottom: 0;\n box-shadow: -6px 0 16px -8px rgba(0, 0, 0, 0.08), -9px 0 28px 0 rgba(0, 0, 0, 0.05), -12px 0 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-top > .ant-drawer-content-wrapper {\n top: 0;\n right: 0;\n left: 0;\n box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.08), 0 9px 28px 0 rgba(0, 0, 0, 0.05), 0 12px 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-bottom > .ant-drawer-content-wrapper {\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 0 -6px 16px -8px rgba(0, 0, 0, 0.08), 0 -9px 28px 0 rgba(0, 0, 0, 0.05), 0 -12px 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n pointer-events: auto;\n}\n.ant-drawer-wrapper-body {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n.ant-drawer-header {\n display: flex;\n flex: 0;\n align-items: center;\n padding: 16px 24px;\n font-size: 16px;\n line-height: 22px;\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-drawer-header-title {\n display: flex;\n flex: 1;\n align-items: center;\n min-width: 0;\n min-height: 0;\n}\n.ant-drawer-extra {\n flex: none;\n}\n.ant-drawer-close {\n display: inline-block;\n margin-right: 12px;\n color: rgba(0, 0, 0, 0.45);\n font-weight: 700;\n font-size: 16px;\n font-style: normal;\n line-height: 1;\n text-align: center;\n text-transform: none;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n text-rendering: auto;\n}\n.ant-drawer-close:focus,\n.ant-drawer-close:hover {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n}\n.ant-drawer-title {\n flex: 1;\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n}\n.ant-drawer-body {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 24px;\n overflow: auto;\n}\n.ant-drawer-footer {\n flex-shrink: 0;\n padding: 10px 16px;\n border-top: 1px solid #f0f0f0;\n}\n.panel-motion-enter-start,\n.panel-motion-appear-start,\n.panel-motion-leave-start {\n transition: none;\n}\n.panel-motion-enter-active,\n.panel-motion-appear-active,\n.panel-motion-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-mask-motion-enter-active,\n.ant-drawer-mask-motion-appear-active,\n.ant-drawer-mask-motion-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-mask-motion-enter,\n.ant-drawer-mask-motion-appear {\n opacity: 0;\n}\n.ant-drawer-mask-motion-enter-active,\n.ant-drawer-mask-motion-appear-active {\n opacity: 1;\n}\n.ant-drawer-mask-motion-leave {\n opacity: 1;\n}\n.ant-drawer-mask-motion-leave-active {\n opacity: 0;\n}\n.ant-drawer-panel-motion-left-enter-start,\n.ant-drawer-panel-motion-left-appear-start,\n.ant-drawer-panel-motion-left-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-left-enter-active,\n.ant-drawer-panel-motion-left-appear-active,\n.ant-drawer-panel-motion-left-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-left-enter-start,\n.ant-drawer-panel-motion-left-appear-start {\n transform: translateX(-100%) !important;\n}\n.ant-drawer-panel-motion-left-enter-active,\n.ant-drawer-panel-motion-left-appear-active {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-left-leave {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-left-leave-active {\n transform: translateX(-100%);\n}\n.ant-drawer-panel-motion-right-enter-start,\n.ant-drawer-panel-motion-right-appear-start,\n.ant-drawer-panel-motion-right-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-right-enter-active,\n.ant-drawer-panel-motion-right-appear-active,\n.ant-drawer-panel-motion-right-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-right-enter-start,\n.ant-drawer-panel-motion-right-appear-start {\n transform: translateX(100%) !important;\n}\n.ant-drawer-panel-motion-right-enter-active,\n.ant-drawer-panel-motion-right-appear-active {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-right-leave {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-right-leave-active {\n transform: translateX(100%);\n}\n.ant-drawer-panel-motion-top-enter-start,\n.ant-drawer-panel-motion-top-appear-start,\n.ant-drawer-panel-motion-top-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-top-enter-active,\n.ant-drawer-panel-motion-top-appear-active,\n.ant-drawer-panel-motion-top-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-top-enter-start,\n.ant-drawer-panel-motion-top-appear-start {\n transform: translateY(-100%) !important;\n}\n.ant-drawer-panel-motion-top-enter-active,\n.ant-drawer-panel-motion-top-appear-active {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-top-leave {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-top-leave-active {\n transform: translateY(-100%);\n}\n.ant-drawer-panel-motion-bottom-enter-start,\n.ant-drawer-panel-motion-bottom-appear-start,\n.ant-drawer-panel-motion-bottom-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-bottom-enter-active,\n.ant-drawer-panel-motion-bottom-appear-active,\n.ant-drawer-panel-motion-bottom-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-bottom-enter-start,\n.ant-drawer-panel-motion-bottom-appear-start {\n transform: translateY(100%) !important;\n}\n.ant-drawer-panel-motion-bottom-enter-active,\n.ant-drawer-panel-motion-bottom-appear-active {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-bottom-leave {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-bottom-leave-active {\n transform: translateY(100%);\n}\n.ant-drawer-rtl {\n direction: rtl;\n}\n.ant-drawer-rtl .ant-drawer-close {\n margin-right: 0;\n margin-left: 12px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-form-item .ant-input-number + .ant-form-text {\n margin-left: 8px;\n}\n.ant-form-inline {\n display: flex;\n flex-wrap: wrap;\n}\n.ant-form-inline .ant-form-item {\n flex: none;\n flex-wrap: nowrap;\n margin-right: 16px;\n margin-bottom: 0;\n}\n.ant-form-inline .ant-form-item-with-help {\n margin-bottom: 24px;\n}\n.ant-form-inline .ant-form-item > .ant-form-item-label,\n.ant-form-inline .ant-form-item > .ant-form-item-control {\n display: inline-block;\n vertical-align: top;\n}\n.ant-form-inline .ant-form-item > .ant-form-item-label {\n flex: none;\n}\n.ant-form-inline .ant-form-item .ant-form-text {\n display: inline-block;\n}\n.ant-form-inline .ant-form-item .ant-form-item-has-feedback {\n display: inline-block;\n}\n.ant-form-horizontal .ant-form-item-label {\n flex-grow: 0;\n}\n.ant-form-horizontal .ant-form-item-control {\n flex: 1 1 0;\n min-width: 0;\n}\n.ant-form-horizontal .ant-form-item-label[class$='-24'] + .ant-form-item-control,\n.ant-form-horizontal .ant-form-item-label[class*='-24 '] + .ant-form-item-control {\n min-width: unset;\n}\n.ant-form-vertical .ant-form-item-row {\n flex-direction: column;\n}\n.ant-form-vertical .ant-form-item-label > label {\n height: auto;\n}\n.ant-form-vertical .ant-form-item .ant-form-item-control {\n width: 100%;\n}\n.ant-form-vertical .ant-form-item-label,\n.ant-col-24.ant-form-item-label,\n.ant-col-xl-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n}\n.ant-form-vertical .ant-form-item-label > label,\n.ant-col-24.ant-form-item-label > label,\n.ant-col-xl-24.ant-form-item-label > label {\n margin: 0;\n}\n.ant-form-vertical .ant-form-item-label > label::after,\n.ant-col-24.ant-form-item-label > label::after,\n.ant-col-xl-24.ant-form-item-label > label::after {\n display: none;\n}\n.ant-form-rtl.ant-form-vertical .ant-form-item-label,\n.ant-form-rtl.ant-col-24.ant-form-item-label,\n.ant-form-rtl.ant-col-xl-24.ant-form-item-label {\n text-align: right;\n}\n@media (max-width: 575px) {\n .ant-form-item .ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-form-item .ant-form-item-label > label {\n margin: 0;\n }\n .ant-form-item .ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-form-item .ant-form-item-label {\n text-align: right;\n }\n .ant-form .ant-form-item {\n flex-wrap: wrap;\n }\n .ant-form .ant-form-item .ant-form-item-label,\n .ant-form .ant-form-item .ant-form-item-control {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .ant-col-xs-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-col-xs-24.ant-form-item-label > label {\n margin: 0;\n }\n .ant-col-xs-24.ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-col-xs-24.ant-form-item-label {\n text-align: right;\n }\n}\n@media (max-width: 767px) {\n .ant-col-sm-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-col-sm-24.ant-form-item-label > label {\n margin: 0;\n }\n .ant-col-sm-24.ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-col-sm-24.ant-form-item-label {\n text-align: right;\n }\n}\n@media (max-width: 991px) {\n .ant-col-md-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-col-md-24.ant-form-item-label > label {\n margin: 0;\n }\n .ant-col-md-24.ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-col-md-24.ant-form-item-label {\n text-align: right;\n }\n}\n@media (max-width: 1199px) {\n .ant-col-lg-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-col-lg-24.ant-form-item-label > label {\n margin: 0;\n }\n .ant-col-lg-24.ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-col-lg-24.ant-form-item-label {\n text-align: right;\n }\n}\n@media (max-width: 1599px) {\n .ant-col-xl-24.ant-form-item-label {\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left;\n }\n .ant-col-xl-24.ant-form-item-label > label {\n margin: 0;\n }\n .ant-col-xl-24.ant-form-item-label > label::after {\n display: none;\n }\n .ant-form-rtl.ant-col-xl-24.ant-form-item-label {\n text-align: right;\n }\n}\n.ant-form-item {\n /* Some non-status related component style is in `components.less` */\n /* To support leave along ErrorList. We add additional className to handle explain style */\n}\n.ant-form-item-explain-error {\n color: #ff4d4f;\n}\n.ant-form-item-explain-warning {\n color: #faad14;\n}\n.ant-form-item-has-feedback .ant-switch {\n margin: 2px 0 4px;\n}\n.ant-form-item-has-warning .ant-form-item-split {\n color: #faad14;\n}\n.ant-form-item-has-error .ant-form-item-split {\n color: #ff4d4f;\n}\n.ant-form {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-form legend {\n display: block;\n width: 100%;\n margin-bottom: 20px;\n padding: 0;\n color: rgba(0, 0, 0, 0.45);\n font-size: 16px;\n line-height: inherit;\n border: 0;\n border-bottom: 1px solid #d9d9d9;\n}\n.ant-form label {\n font-size: 14px;\n}\n.ant-form input[type='search'] {\n box-sizing: border-box;\n}\n.ant-form input[type='radio'],\n.ant-form input[type='checkbox'] {\n line-height: normal;\n}\n.ant-form input[type='file'] {\n display: block;\n}\n.ant-form input[type='range'] {\n display: block;\n width: 100%;\n}\n.ant-form select[multiple],\n.ant-form select[size] {\n height: auto;\n}\n.ant-form input[type='file']:focus,\n.ant-form input[type='radio']:focus,\n.ant-form input[type='checkbox']:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.ant-form output {\n display: block;\n padding-top: 15px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n}\n.ant-form .ant-form-text {\n display: inline-block;\n padding-right: 8px;\n}\n.ant-form-small .ant-form-item-label > label {\n height: 24px;\n}\n.ant-form-small .ant-form-item-control-input {\n min-height: 24px;\n}\n.ant-form-large .ant-form-item-label > label {\n height: 40px;\n}\n.ant-form-large .ant-form-item-control-input {\n min-height: 40px;\n}\n.ant-form-item {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n margin-bottom: 24px;\n vertical-align: top;\n}\n.ant-form-item-with-help {\n transition: none;\n}\n.ant-form-item-hidden,\n.ant-form-item-hidden.ant-row {\n display: none;\n}\n.ant-form-item-label {\n display: inline-block;\n flex-grow: 0;\n overflow: hidden;\n white-space: nowrap;\n text-align: right;\n vertical-align: middle;\n}\n.ant-form-item-label-left {\n text-align: left;\n}\n.ant-form-item-label-wrap {\n overflow: unset;\n line-height: 1.3215em;\n white-space: unset;\n}\n.ant-form-item-label > label {\n position: relative;\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n height: 32px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-form-item-label > label > .anticon {\n font-size: 14px;\n vertical-align: top;\n}\n.ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before {\n display: inline-block;\n margin-right: 4px;\n color: #ff4d4f;\n font-size: 14px;\n font-family: SimSun, sans-serif;\n line-height: 1;\n content: '*';\n}\n.ant-form-hide-required-mark .ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before {\n display: none;\n}\n.ant-form-item-label > label .ant-form-item-optional {\n display: inline-block;\n margin-left: 4px;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-form-hide-required-mark .ant-form-item-label > label .ant-form-item-optional {\n display: none;\n}\n.ant-form-item-label > label .ant-form-item-tooltip {\n color: rgba(0, 0, 0, 0.45);\n cursor: help;\n -ms-writing-mode: lr-tb;\n writing-mode: horizontal-tb;\n margin-inline-start: 4px;\n}\n.ant-form-item-label > label::after {\n content: ':';\n position: relative;\n top: -0.5px;\n margin: 0 8px 0 2px;\n}\n.ant-form-item-label > label.ant-form-item-no-colon::after {\n content: ' ';\n}\n.ant-form-item-control {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n}\n.ant-form-item-control:first-child:not([class^='ant-col-']):not([class*=' ant-col-']) {\n width: 100%;\n}\n.ant-form-item-control-input {\n position: relative;\n display: flex;\n align-items: center;\n min-height: 32px;\n}\n.ant-form-item-control-input-content {\n flex: auto;\n max-width: 100%;\n}\n.ant-form-item-explain,\n.ant-form-item-extra {\n clear: both;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.5715;\n transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n.ant-form-item-explain-connected {\n width: 100%;\n}\n.ant-form-item-extra {\n min-height: 24px;\n}\n.ant-form-item-with-help .ant-form-item-explain {\n height: auto;\n opacity: 1;\n}\n.ant-form-item-feedback-icon {\n font-size: 14px;\n text-align: center;\n visibility: visible;\n animation: zoomIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\n pointer-events: none;\n}\n.ant-form-item-feedback-icon-success {\n color: #52c41a;\n}\n.ant-form-item-feedback-icon-error {\n color: #ff4d4f;\n}\n.ant-form-item-feedback-icon-warning {\n color: #faad14;\n}\n.ant-form-item-feedback-icon-validating {\n color: #1890ff;\n}\n.ant-show-help {\n transition: opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-show-help-appear,\n.ant-show-help-enter {\n opacity: 0;\n}\n.ant-show-help-appear-active,\n.ant-show-help-enter-active {\n opacity: 1;\n}\n.ant-show-help-leave {\n opacity: 1;\n}\n.ant-show-help-leave-active {\n opacity: 0;\n}\n.ant-show-help-item {\n overflow: hidden;\n transition: height 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n.ant-show-help-item-appear,\n.ant-show-help-item-enter {\n transform: translateY(-5px);\n opacity: 0;\n}\n.ant-show-help-item-appear-active,\n.ant-show-help-item-enter-active {\n transform: translateY(0);\n opacity: 1;\n}\n.ant-show-help-item-leave {\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n.ant-show-help-item-leave-active {\n transform: translateY(-5px);\n}\n@keyframes diffZoomIn1 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes diffZoomIn2 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes diffZoomIn3 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.ant-form-rtl {\n direction: rtl;\n}\n.ant-form-rtl .ant-form-item-label {\n text-align: left;\n}\n.ant-form-rtl .ant-form-item-label > label.ant-form-item-required::before {\n margin-right: 0;\n margin-left: 4px;\n}\n.ant-form-rtl .ant-form-item-label > label::after {\n margin: 0 2px 0 8px;\n}\n.ant-form-rtl .ant-form-item-label > label .ant-form-item-optional {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-col-rtl .ant-form-item-control:first-child {\n width: 100%;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input {\n padding-right: 11px;\n padding-left: 24px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix {\n padding-right: 11px;\n padding-left: 18px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input {\n padding: 0;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input-number-affix-wrapper .ant-input-number {\n padding: 0;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix {\n right: auto;\n left: 28px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-input-number {\n padding-left: 18px;\n}\n.ant-form-rtl .ant-form-item-has-feedback > .ant-select .ant-select-arrow,\n.ant-form-rtl .ant-form-item-has-feedback > .ant-select .ant-select-clear,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-arrow,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-clear,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon) > .ant-select .ant-select-arrow,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon) > .ant-select .ant-select-clear {\n right: auto;\n left: 32px;\n}\n.ant-form-rtl .ant-form-item-has-feedback > .ant-select .ant-select-selection-selected-value,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-selection-selected-value,\n.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon) > .ant-select .ant-select-selection-selected-value {\n padding-right: 0;\n padding-left: 42px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-arrow {\n margin-right: 0;\n margin-left: 19px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-clear {\n right: auto;\n left: 32px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-picker {\n padding-right: 11px;\n padding-left: 29.2px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-picker-large {\n padding-right: 11px;\n padding-left: 29.2px;\n}\n.ant-form-rtl .ant-form-item-has-feedback .ant-picker-small {\n padding-right: 7px;\n padding-left: 25.2px;\n}\n.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,\n.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,\n.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,\n.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon {\n right: auto;\n left: 0;\n}\n.ant-form-rtl.ant-form-inline .ant-form-item {\n margin-right: 0;\n margin-left: 16px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-image {\n position: relative;\n display: inline-block;\n}\n.ant-image-img {\n width: 100%;\n height: auto;\n vertical-align: middle;\n}\n.ant-image-img-placeholder {\n background-color: #f5f5f5;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=');\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 30%;\n}\n.ant-image-mask {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #fff;\n background: rgba(0, 0, 0, 0.5);\n cursor: pointer;\n opacity: 0;\n transition: opacity 0.3s;\n}\n.ant-image-mask-info {\n padding: 0 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-image-mask-info .anticon {\n margin-inline-end: 4px;\n}\n.ant-image-mask:hover {\n opacity: 1;\n}\n.ant-image-placeholder {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.ant-image-preview {\n pointer-events: none;\n height: 100%;\n text-align: center;\n}\n.ant-image-preview.ant-zoom-enter,\n.ant-image-preview.ant-zoom-appear {\n transform: none;\n opacity: 0;\n animation-duration: 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-image-preview-mask {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.45);\n}\n.ant-image-preview-mask-hidden {\n display: none;\n}\n.ant-image-preview-wrap {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: auto;\n outline: 0;\n}\n.ant-image-preview-body {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: hidden;\n}\n.ant-image-preview-img {\n max-width: 100%;\n max-height: 100%;\n vertical-align: middle;\n transform: scale3d(1, 1, 1);\n cursor: grab;\n transition: transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n pointer-events: auto;\n}\n.ant-image-preview-img-wrapper {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n transition: transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;\n}\n.ant-image-preview-img-wrapper::before {\n display: inline-block;\n width: 1px;\n height: 50%;\n margin-right: -1px;\n content: '';\n}\n.ant-image-preview-moving .ant-image-preview-img {\n cursor: grabbing;\n}\n.ant-image-preview-moving .ant-image-preview-img-wrapper {\n transition-duration: 0s;\n}\n.ant-image-preview-wrap {\n z-index: 1080;\n}\n.ant-image-preview-operations-wrapper {\n position: fixed;\n top: 0;\n right: 0;\n z-index: 1081;\n width: 100%;\n}\n.ant-image-preview-operations {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n font-feature-settings: 'tnum';\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n color: rgba(255, 255, 255, 0.85);\n list-style: none;\n background: rgba(0, 0, 0, 0.1);\n pointer-events: auto;\n}\n.ant-image-preview-operations-operation {\n margin-left: 12px;\n padding: 12px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-image-preview-operations-operation:hover {\n background: rgba(0, 0, 0, 0.2);\n}\n.ant-image-preview-operations-operation-disabled {\n color: rgba(255, 255, 255, 0.25);\n pointer-events: none;\n}\n.ant-image-preview-operations-operation:last-of-type {\n margin-left: 0;\n}\n.ant-image-preview-operations-progress {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n}\n.ant-image-preview-operations-icon {\n font-size: 18px;\n}\n.ant-image-preview-switch-left,\n.ant-image-preview-switch-right {\n position: fixed;\n top: 50%;\n right: 8px;\n z-index: 1081;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n color: rgba(255, 255, 255, 0.85);\n background: rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n transform: translateY(-50%);\n cursor: pointer;\n transition: all 0.3s;\n pointer-events: auto;\n}\n.ant-image-preview-switch-left:hover,\n.ant-image-preview-switch-right:hover {\n background: rgba(0, 0, 0, 0.2);\n}\n.ant-image-preview-switch-left-disabled,\n.ant-image-preview-switch-right-disabled,\n.ant-image-preview-switch-left-disabled:hover,\n.ant-image-preview-switch-right-disabled:hover {\n color: rgba(255, 255, 255, 0.25);\n background: rgba(0, 0, 0, 0.1);\n cursor: not-allowed;\n}\n.ant-image-preview-switch-left-disabled > .anticon,\n.ant-image-preview-switch-right-disabled > .anticon,\n.ant-image-preview-switch-left-disabled:hover > .anticon,\n.ant-image-preview-switch-right-disabled:hover > .anticon {\n cursor: not-allowed;\n}\n.ant-image-preview-switch-left > .anticon,\n.ant-image-preview-switch-right > .anticon {\n font-size: 18px;\n}\n.ant-image-preview-switch-left {\n left: 8px;\n}\n.ant-image-preview-switch-right {\n right: 8px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-input-number-affix-wrapper {\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n position: relative;\n display: inline-flex;\n width: 90px;\n padding: 0;\n padding-inline-start: 11px;\n}\n.ant-input-number-affix-wrapper::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input-number-affix-wrapper:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number-affix-wrapper::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number-affix-wrapper:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number-affix-wrapper:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input-number-affix-wrapper:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number-affix-wrapper:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-number-affix-wrapper:focus,\n.ant-input-number-affix-wrapper-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-affix-wrapper-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-number-affix-wrapper-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-number-affix-wrapper[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-number-affix-wrapper[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-number-affix-wrapper-borderless,\n.ant-input-number-affix-wrapper-borderless:hover,\n.ant-input-number-affix-wrapper-borderless:focus,\n.ant-input-number-affix-wrapper-borderless-focused,\n.ant-input-number-affix-wrapper-borderless-disabled,\n.ant-input-number-affix-wrapper-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-input-number-affix-wrapper {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-input-number-affix-wrapper-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-number-affix-wrapper-sm {\n padding: 0px 7px;\n}\n.ant-input-number-affix-wrapper:not(.ant-input-number-affix-wrapper-disabled):hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n z-index: 1;\n}\n.ant-input-number-affix-wrapper-focused,\n.ant-input-number-affix-wrapper:focus {\n z-index: 1;\n}\n.ant-input-number-affix-wrapper-disabled .ant-input-number[disabled] {\n background: transparent;\n}\n.ant-input-number-affix-wrapper > div.ant-input-number {\n width: 100%;\n border: none;\n outline: none;\n}\n.ant-input-number-affix-wrapper > div.ant-input-number.ant-input-number-focused {\n box-shadow: none !important;\n}\n.ant-input-number-affix-wrapper input.ant-input-number-input {\n padding: 0;\n}\n.ant-input-number-affix-wrapper::before {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n}\n.ant-input-number-affix-wrapper .ant-input-number-handler-wrap {\n z-index: 2;\n}\n.ant-input-number-prefix,\n.ant-input-number-suffix {\n display: flex;\n flex: none;\n align-items: center;\n pointer-events: none;\n}\n.ant-input-number-prefix {\n margin-inline-end: 4px;\n}\n.ant-input-number-suffix {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 1;\n height: 100%;\n margin-right: 11px;\n margin-left: 4px;\n}\n.ant-input-number-group-wrapper .ant-input-number-affix-wrapper {\n width: 100%;\n}\n.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number,\n.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:focus,\n.ant-input-number-status-error:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-status-error .ant-input-number-prefix {\n color: #ff4d4f;\n}\n.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number,\n.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:focus,\n.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-status-warning .ant-input-number-prefix {\n color: #faad14;\n}\n.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,\n.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus,\n.ant-input-number-affix-wrapper-status-error:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-affix-wrapper-status-error .ant-input-number-prefix {\n color: #ff4d4f;\n}\n.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,\n.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus,\n.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-affix-wrapper-status-warning .ant-input-number-prefix {\n color: #faad14;\n}\n.ant-input-number-group-wrapper-status-error .ant-input-number-group-addon {\n color: #ff4d4f;\n border-color: #ff4d4f;\n}\n.ant-input-number-group-wrapper-status-warning .ant-input-number-group-addon {\n color: #faad14;\n border-color: #faad14;\n}\n.ant-input-number {\n box-sizing: border-box;\n font-variant: tabular-nums;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n transition: all 0.3s;\n display: inline-block;\n width: 90px;\n margin: 0;\n padding: 0;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n}\n.ant-input-number::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input-number:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input-number:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-number:focus,\n.ant-input-number-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-number-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-number[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-number[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-number-borderless,\n.ant-input-number-borderless:hover,\n.ant-input-number-borderless:focus,\n.ant-input-number-borderless-focused,\n.ant-input-number-borderless-disabled,\n.ant-input-number-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-input-number {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-input-number-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-number-sm {\n padding: 0px 7px;\n}\n.ant-input-number-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: table;\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n}\n.ant-input-number-group[class*='col-'] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.ant-input-number-group > [class*='col-'] {\n padding-right: 8px;\n}\n.ant-input-number-group > [class*='col-']:last-child {\n padding-right: 0;\n}\n.ant-input-number-group-addon,\n.ant-input-number-group-wrap,\n.ant-input-number-group > .ant-input-number {\n display: table-cell;\n}\n.ant-input-number-group-addon:not(:first-child):not(:last-child),\n.ant-input-number-group-wrap:not(:first-child):not(:last-child),\n.ant-input-number-group > .ant-input-number:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.ant-input-number-group-addon,\n.ant-input-number-group-wrap {\n width: 1px;\n white-space: nowrap;\n vertical-align: middle;\n}\n.ant-input-number-group-wrap > * {\n display: block !important;\n}\n.ant-input-number-group .ant-input-number {\n float: left;\n width: 100%;\n margin-bottom: 0;\n text-align: inherit;\n}\n.ant-input-number-group .ant-input-number:focus {\n z-index: 1;\n border-right-width: 1px;\n}\n.ant-input-number-group .ant-input-number:hover {\n z-index: 1;\n border-right-width: 1px;\n}\n.ant-input-search-with-button .ant-input-number-group .ant-input-number:hover {\n z-index: 0;\n}\n.ant-input-number-group-addon {\n position: relative;\n padding: 0 11px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n text-align: center;\n background-color: #fafafa;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n}\n.ant-input-number-group-addon .ant-select {\n margin: -5px -11px;\n}\n.ant-input-number-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {\n background-color: inherit;\n border: 1px solid transparent;\n box-shadow: none;\n}\n.ant-input-number-group-addon .ant-select-open .ant-select-selector,\n.ant-input-number-group-addon .ant-select-focused .ant-select-selector {\n color: #1890ff;\n}\n.ant-input-number-group-addon .ant-cascader-picker {\n margin: -9px -12px;\n background-color: transparent;\n}\n.ant-input-number-group-addon .ant-cascader-picker .ant-cascader-input {\n text-align: left;\n border: 0;\n box-shadow: none;\n}\n.ant-input-number-group > .ant-input-number:first-child,\n.ant-input-number-group-addon:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-number-group > .ant-input-number:first-child .ant-select .ant-select-selector,\n.ant-input-number-group-addon:first-child .ant-select .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-number-group > .ant-input-number-affix-wrapper:not(:first-child) .ant-input-number {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-group > .ant-input-number-affix-wrapper:not(:last-child) .ant-input-number {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-number-group-addon:first-child {\n border-right: 0;\n}\n.ant-input-number-group-addon:last-child {\n border-left: 0;\n}\n.ant-input-number-group > .ant-input-number:last-child,\n.ant-input-number-group-addon:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-group > .ant-input-number:last-child .ant-select .ant-select-selector,\n.ant-input-number-group-addon:last-child .ant-select .ant-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-group-lg .ant-input-number,\n.ant-input-number-group-lg > .ant-input-number-group-addon {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-number-group-sm .ant-input-number,\n.ant-input-number-group-sm > .ant-input-number-group-addon {\n padding: 0px 7px;\n}\n.ant-input-number-group-lg .ant-select-single .ant-select-selector {\n height: 40px;\n}\n.ant-input-number-group-sm .ant-select-single .ant-select-selector {\n height: 24px;\n}\n.ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child) {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child),\n.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-group.ant-input-number-group-compact {\n display: block;\n}\n.ant-input-number-group.ant-input-number-group-compact::before {\n display: table;\n content: '';\n}\n.ant-input-number-group.ant-input-number-group-compact::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child),\n.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child),\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-number:not(:first-child):not(:last-child) {\n border-right-width: 1px;\n}\n.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):hover,\n.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):hover,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-number:not(:first-child):not(:last-child):hover {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):focus,\n.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):focus,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-number:not(:first-child):not(:last-child):focus {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact > * {\n display: inline-block;\n float: none;\n vertical-align: top;\n border-radius: 0;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-number-affix-wrapper,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-number-number-affix-wrapper,\n.ant-input-number-group.ant-input-number-group-compact > .ant-picker-range {\n display: inline-flex;\n}\n.ant-input-number-group.ant-input-number-group-compact > *:not(:last-child) {\n margin-right: -1px;\n border-right-width: 1px;\n}\n.ant-input-number-group.ant-input-number-group-compact .ant-input-number {\n float: none;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select > .ant-select-selector,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete .ant-input,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker .ant-input,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-group-wrapper .ant-input {\n border-right-width: 1px;\n border-radius: 0;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select > .ant-select-selector:hover,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete .ant-input:hover,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker .ant-input:hover,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-group-wrapper .ant-input:hover {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select > .ant-select-selector:focus,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete .ant-input:focus,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker .ant-input:focus,\n.ant-input-number-group.ant-input-number-group-compact > .ant-input-group-wrapper .ant-input:focus {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-focused {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select > .ant-select-arrow {\n z-index: 1;\n}\n.ant-input-number-group.ant-input-number-group-compact > *:first-child,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select:first-child > .ant-select-selector,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete:first-child .ant-input,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker:first-child .ant-input {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-input-number-group.ant-input-number-group-compact > *:last-child,\n.ant-input-number-group.ant-input-number-group-compact > .ant-select:last-child > .ant-select-selector,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker:last-child .ant-input,\n.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker-focused:last-child .ant-input {\n border-right-width: 1px;\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete .ant-input {\n vertical-align: top;\n}\n.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper {\n margin-left: -1px;\n}\n.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper .ant-input-affix-wrapper {\n border-radius: 0;\n}\n.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input-group-addon > .ant-input-search-button {\n border-radius: 0;\n}\n.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-number-group > .ant-input-number-rtl:first-child {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-number-group > .ant-input-number-rtl:last-child {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-number-group-rtl .ant-input-number-group-addon:first-child {\n border-right: 1px solid #d9d9d9;\n border-left: 0;\n border-radius: 0 2px 2px 0;\n}\n.ant-input-number-group-rtl .ant-input-number-group-addon:last-child {\n border-right: 0;\n border-left: 1px solid #d9d9d9;\n border-radius: 2px 0 0 2px;\n}\n.ant-input-number-group-wrapper {\n display: inline-block;\n text-align: start;\n vertical-align: top;\n}\n.ant-input-number-handler {\n position: relative;\n display: block;\n width: 100%;\n height: 50%;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.45);\n font-weight: bold;\n line-height: 0;\n text-align: center;\n border-left: 1px solid #d9d9d9;\n transition: all 0.1s linear;\n}\n.ant-input-number-handler:active {\n background: #f4f4f4;\n}\n.ant-input-number-handler:hover .ant-input-number-handler-up-inner,\n.ant-input-number-handler:hover .ant-input-number-handler-down-inner {\n color: #40a9ff;\n}\n.ant-input-number-handler-up-inner,\n.ant-input-number-handler-down-inner {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n position: absolute;\n right: 4px;\n width: 12px;\n height: 12px;\n color: rgba(0, 0, 0, 0.45);\n line-height: 12px;\n transition: all 0.1s linear;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number-handler-up-inner > *,\n.ant-input-number-handler-down-inner > * {\n line-height: 1;\n}\n.ant-input-number-handler-up-inner svg,\n.ant-input-number-handler-down-inner svg {\n display: inline-block;\n}\n.ant-input-number-handler-up-inner::before,\n.ant-input-number-handler-down-inner::before {\n display: none;\n}\n.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon,\n.ant-input-number-handler-up-inner .ant-input-number-handler-down-inner-icon,\n.ant-input-number-handler-down-inner .ant-input-number-handler-up-inner-icon,\n.ant-input-number-handler-down-inner .ant-input-number-handler-down-inner-icon {\n display: block;\n}\n.ant-input-number:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-number:hover + .ant-form-item-children-icon {\n opacity: 0;\n transition: opacity 0.24s linear 0.24s;\n}\n.ant-input-number-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-number-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-number-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-number-disabled .ant-input-number-input {\n cursor: not-allowed;\n}\n.ant-input-number-disabled .ant-input-number-handler-wrap {\n display: none;\n}\n.ant-input-number-readonly .ant-input-number-handler-wrap {\n display: none;\n}\n.ant-input-number-input {\n width: 100%;\n height: 30px;\n padding: 0 11px;\n text-align: left;\n background-color: transparent;\n border: 0;\n border-radius: 2px;\n outline: 0;\n transition: all 0.3s linear;\n -webkit-appearance: textfield !important;\n -moz-appearance: textfield !important;\n appearance: textfield !important;\n}\n.ant-input-number-input::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input-number-input:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number-input::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-number-input:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number-input:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input-number-input:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-number-input[type='number']::-webkit-inner-spin-button,\n.ant-input-number-input[type='number']::-webkit-outer-spin-button {\n margin: 0;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n appearance: none;\n}\n.ant-input-number-lg {\n padding: 0;\n font-size: 16px;\n}\n.ant-input-number-lg input {\n height: 38px;\n}\n.ant-input-number-sm {\n padding: 0;\n}\n.ant-input-number-sm input {\n height: 22px;\n padding: 0 7px;\n}\n.ant-input-number-handler-wrap {\n position: absolute;\n top: 0;\n right: 0;\n width: 22px;\n height: 100%;\n background: #fff;\n border-radius: 0 2px 2px 0;\n opacity: 0;\n transition: opacity 0.24s linear 0.1s;\n}\n.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner,\n.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: auto;\n margin-right: 0;\n font-size: 7px;\n}\n.ant-input-number-borderless .ant-input-number-handler-wrap {\n border-left-width: 0;\n}\n.ant-input-number-handler-wrap:hover .ant-input-number-handler {\n height: 40%;\n}\n.ant-input-number:hover .ant-input-number-handler-wrap,\n.ant-input-number-focused .ant-input-number-handler-wrap {\n opacity: 1;\n}\n.ant-input-number-handler-up {\n border-top-right-radius: 2px;\n cursor: pointer;\n}\n.ant-input-number-handler-up-inner {\n top: 50%;\n margin-top: -5px;\n text-align: center;\n}\n.ant-input-number-handler-up:hover {\n height: 60% !important;\n}\n.ant-input-number-handler-down {\n top: 0;\n border-top: 1px solid #d9d9d9;\n border-bottom-right-radius: 2px;\n cursor: pointer;\n}\n.ant-input-number-handler-down-inner {\n top: 50%;\n text-align: center;\n transform: translateY(-50%);\n}\n.ant-input-number-handler-down:hover {\n height: 60% !important;\n}\n.ant-input-number-borderless .ant-input-number-handler-down {\n border-top-width: 0;\n}\n.ant-input-number:hover:not(.ant-input-number-borderless) .ant-input-number-handler-down,\n.ant-input-number-focused:not(.ant-input-number-borderless) .ant-input-number-handler-down {\n border-top: 1px solid #d9d9d9;\n}\n.ant-input-number-handler-up-disabled,\n.ant-input-number-handler-down-disabled {\n cursor: not-allowed;\n}\n.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner,\n.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-input-number-borderless {\n box-shadow: none;\n}\n.ant-input-number-out-of-range input {\n color: #ff4d4f;\n}\n.ant-input-number-compact-item:not(.ant-input-number-compact-last-item):not(.ant-input-number-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-input-number-compact-item:not(.ant-input-number-compact-last-item).ant-input-number-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-input-number-compact-item:hover,\n.ant-input-number-compact-item:focus,\n.ant-input-number-compact-item:active {\n z-index: 2;\n}\n.ant-input-number-compact-item.ant-input-number-focused {\n z-index: 2;\n}\n.ant-input-number-compact-item[disabled] {\n z-index: 0;\n}\n.ant-input-number-compact-item:not(.ant-input-number-compact-first-item):not(.ant-input-number-compact-last-item).ant-input-number {\n border-radius: 0;\n}\n.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-first-item:not(.ant-input-number-compact-last-item):not(.ant-input-number-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-last-item:not(.ant-input-number-compact-first-item):not(.ant-input-number-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-item-rtl.ant-input-number-compact-first-item:not(.ant-input-number-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-number-compact-item.ant-input-number.ant-input-number-compact-item-rtl.ant-input-number-compact-last-item:not(.ant-input-number-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-number-rtl {\n direction: rtl;\n}\n.ant-input-number-rtl .ant-input-number-handler {\n border-right: 1px solid #d9d9d9;\n border-left: 0;\n}\n.ant-input-number-rtl .ant-input-number-handler-wrap {\n right: auto;\n left: 0;\n}\n.ant-input-number-rtl.ant-input-number-borderless .ant-input-number-handler-wrap {\n border-right-width: 0;\n}\n.ant-input-number-rtl .ant-input-number-handler-up {\n border-top-right-radius: 0;\n}\n.ant-input-number-rtl .ant-input-number-handler-down {\n border-bottom-right-radius: 0;\n}\n.ant-input-number-rtl .ant-input-number-input {\n direction: ltr;\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-input-affix-wrapper {\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n display: inline-flex;\n}\n.ant-input-affix-wrapper::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input-affix-wrapper:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-affix-wrapper::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-affix-wrapper:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-affix-wrapper:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input-affix-wrapper:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-affix-wrapper:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-rtl .ant-input-affix-wrapper:hover {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-affix-wrapper:focus,\n.ant-input-affix-wrapper-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-rtl .ant-input-affix-wrapper:focus,\n.ant-input-rtl .ant-input-affix-wrapper-focused {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-affix-wrapper-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-affix-wrapper-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-affix-wrapper[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-affix-wrapper[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-affix-wrapper-borderless,\n.ant-input-affix-wrapper-borderless:hover,\n.ant-input-affix-wrapper-borderless:focus,\n.ant-input-affix-wrapper-borderless-focused,\n.ant-input-affix-wrapper-borderless-disabled,\n.ant-input-affix-wrapper-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-input-affix-wrapper {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-input-affix-wrapper-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-affix-wrapper-sm {\n padding: 0px 7px;\n}\n.ant-input-affix-wrapper-rtl {\n direction: rtl;\n}\n.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n z-index: 1;\n}\n.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {\n z-index: 0;\n}\n.ant-input-affix-wrapper-focused,\n.ant-input-affix-wrapper:focus {\n z-index: 1;\n}\n.ant-input-affix-wrapper-disabled .ant-input[disabled] {\n background: rgba(255, 255, 255, 0);\n}\n.ant-input-affix-wrapper > .ant-input {\n font-size: inherit;\n border: none;\n outline: none;\n}\n.ant-input-affix-wrapper > .ant-input:focus {\n box-shadow: none !important;\n}\n.ant-input-affix-wrapper > .ant-input:not(textarea) {\n padding: 0;\n}\n.ant-input-affix-wrapper::before {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n}\n.ant-input-prefix,\n.ant-input-suffix {\n display: flex;\n flex: none;\n align-items: center;\n}\n.ant-input-prefix > *:not(:last-child),\n.ant-input-suffix > *:not(:last-child) {\n margin-right: 8px;\n}\n.ant-input-show-count-suffix {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-input-show-count-has-suffix {\n margin-right: 2px;\n}\n.ant-input-prefix {\n margin-right: 4px;\n}\n.ant-input-suffix {\n margin-left: 4px;\n}\n.anticon.ant-input-clear-icon,\n.ant-input-clear-icon {\n margin: 0;\n color: rgba(0, 0, 0, 0.25);\n font-size: 12px;\n vertical-align: -1px;\n cursor: pointer;\n transition: color 0.3s;\n}\n.anticon.ant-input-clear-icon:hover,\n.ant-input-clear-icon:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.anticon.ant-input-clear-icon:active,\n.ant-input-clear-icon:active {\n color: rgba(0, 0, 0, 0.85);\n}\n.anticon.ant-input-clear-icon-hidden,\n.ant-input-clear-icon-hidden {\n visibility: hidden;\n}\n.anticon.ant-input-clear-icon-has-suffix,\n.ant-input-clear-icon-has-suffix {\n margin: 0 4px;\n}\n.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn {\n padding: 0;\n}\n.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 1;\n}\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-status-error .ant-input-prefix {\n color: #ff4d4f;\n}\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-status-warning .ant-input-prefix {\n color: #faad14;\n}\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-affix-wrapper-status-error .ant-input-prefix {\n color: #ff4d4f;\n}\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-affix-wrapper-status-warning .ant-input-prefix {\n color: #faad14;\n}\n.ant-input-textarea-status-error.ant-input-textarea-has-feedback .ant-input,\n.ant-input-textarea-status-warning.ant-input-textarea-has-feedback .ant-input,\n.ant-input-textarea-status-success.ant-input-textarea-has-feedback .ant-input,\n.ant-input-textarea-status-validating.ant-input-textarea-has-feedback .ant-input {\n padding-right: 24px;\n}\n.ant-input-group-wrapper-status-error .ant-input-group-addon {\n color: #ff4d4f;\n border-color: #ff4d4f;\n}\n.ant-input-group-wrapper-status-warning .ant-input-group-addon {\n color: #faad14;\n border-color: #faad14;\n}\n.ant-input {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n font-variant: tabular-nums;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n}\n.ant-input::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-rtl .ant-input:hover {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input:focus,\n.ant-input-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-rtl .ant-input:focus,\n.ant-input-rtl .ant-input-focused {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-borderless,\n.ant-input-borderless:hover,\n.ant-input-borderless:focus,\n.ant-input-borderless-focused,\n.ant-input-borderless-disabled,\n.ant-input-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-input {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-input-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-sm {\n padding: 0px 7px;\n}\n.ant-input-rtl {\n direction: rtl;\n}\n.ant-input-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: table;\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n}\n.ant-input-group[class*='col-'] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.ant-input-group > [class*='col-'] {\n padding-right: 8px;\n}\n.ant-input-group > [class*='col-']:last-child {\n padding-right: 0;\n}\n.ant-input-group-addon,\n.ant-input-group-wrap,\n.ant-input-group > .ant-input {\n display: table-cell;\n}\n.ant-input-group-addon:not(:first-child):not(:last-child),\n.ant-input-group-wrap:not(:first-child):not(:last-child),\n.ant-input-group > .ant-input:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.ant-input-group-addon,\n.ant-input-group-wrap {\n width: 1px;\n white-space: nowrap;\n vertical-align: middle;\n}\n.ant-input-group-wrap > * {\n display: block !important;\n}\n.ant-input-group .ant-input {\n float: left;\n width: 100%;\n margin-bottom: 0;\n text-align: inherit;\n}\n.ant-input-group .ant-input:focus {\n z-index: 1;\n border-right-width: 1px;\n}\n.ant-input-group .ant-input:hover {\n z-index: 1;\n border-right-width: 1px;\n}\n.ant-input-search-with-button .ant-input-group .ant-input:hover {\n z-index: 0;\n}\n.ant-input-group-addon {\n position: relative;\n padding: 0 11px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n text-align: center;\n background-color: #fafafa;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n}\n.ant-input-group-addon .ant-select {\n margin: -5px -11px;\n}\n.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {\n background-color: inherit;\n border: 1px solid transparent;\n box-shadow: none;\n}\n.ant-input-group-addon .ant-select-open .ant-select-selector,\n.ant-input-group-addon .ant-select-focused .ant-select-selector {\n color: #1890ff;\n}\n.ant-input-group-addon .ant-cascader-picker {\n margin: -9px -12px;\n background-color: transparent;\n}\n.ant-input-group-addon .ant-cascader-picker .ant-cascader-input {\n text-align: left;\n border: 0;\n box-shadow: none;\n}\n.ant-input-group > .ant-input:first-child,\n.ant-input-group-addon:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-group > .ant-input:first-child .ant-select .ant-select-selector,\n.ant-input-group-addon:first-child .ant-select .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-group > .ant-input-affix-wrapper:not(:first-child) .ant-input {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group > .ant-input-affix-wrapper:not(:last-child) .ant-input {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-group-addon:first-child {\n border-right: 0;\n}\n.ant-input-group-addon:last-child {\n border-left: 0;\n}\n.ant-input-group > .ant-input:last-child,\n.ant-input-group-addon:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group > .ant-input:last-child .ant-select .ant-select-selector,\n.ant-input-group-addon:last-child .ant-select .ant-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group-lg .ant-input,\n.ant-input-group-lg > .ant-input-group-addon {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-group-sm .ant-input,\n.ant-input-group-sm > .ant-input-group-addon {\n padding: 0px 7px;\n}\n.ant-input-group-lg .ant-select-single .ant-select-selector {\n height: 40px;\n}\n.ant-input-group-sm .ant-select-single .ant-select-selector {\n height: 24px;\n}\n.ant-input-group .ant-input-affix-wrapper:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child) {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-input-group .ant-input-affix-wrapper:not(:first-child),\n.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group.ant-input-group-compact {\n display: block;\n}\n.ant-input-group.ant-input-group-compact::before {\n display: table;\n content: '';\n}\n.ant-input-group.ant-input-group-compact::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child) {\n border-right-width: 1px;\n}\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):hover {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):focus {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > * {\n display: inline-block;\n float: none;\n vertical-align: top;\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact > .ant-input-affix-wrapper,\n.ant-input-group.ant-input-group-compact > .ant-input-number-affix-wrapper,\n.ant-input-group.ant-input-group-compact > .ant-picker-range {\n display: inline-flex;\n}\n.ant-input-group.ant-input-group-compact > *:not(:last-child) {\n margin-right: -1px;\n border-right-width: 1px;\n}\n.ant-input-group.ant-input-group-compact .ant-input {\n float: none;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input {\n border-right-width: 1px;\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector:hover,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover,\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:hover {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector:focus,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus,\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:focus {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > .ant-select-focused {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-arrow {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > *:first-child,\n.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-input-group.ant-input-group-compact > *:last-child,\n.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {\n border-right-width: 1px;\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input {\n vertical-align: top;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper {\n margin-left: -1px;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper .ant-input-affix-wrapper {\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input-group-addon > .ant-input-search-button {\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group > .ant-input-rtl:first-child,\n.ant-input-group-rtl .ant-input-group-addon:first-child {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-rtl .ant-input-group-addon:first-child {\n border-right: 1px solid #d9d9d9;\n border-left: 0;\n}\n.ant-input-group-rtl .ant-input-group-addon:last-child {\n border-right: 0;\n border-left: 1px solid #d9d9d9;\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group-rtl.ant-input-group > .ant-input:last-child,\n.ant-input-group-rtl.ant-input-group-addon:last-child {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child) {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child) {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:not(:last-child) {\n margin-right: 0;\n margin-left: -1px;\n border-left-width: 1px;\n}\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:first-child,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:last-child,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {\n border-left-width: 1px;\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl + .ant-input-group-wrapper-rtl {\n margin-right: -1px;\n margin-left: 0;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search > .ant-input-group > .ant-input {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-wrapper {\n display: inline-block;\n width: 100%;\n text-align: start;\n vertical-align: top;\n}\n.ant-input-password-icon.anticon {\n color: rgba(0, 0, 0, 0.45);\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-input-password-icon.anticon:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-input[type='color'] {\n height: 32px;\n}\n.ant-input[type='color'].ant-input-lg {\n height: 40px;\n}\n.ant-input[type='color'].ant-input-sm {\n height: 24px;\n padding-top: 3px;\n padding-bottom: 3px;\n}\n.ant-input-textarea-show-count > .ant-input {\n height: 100%;\n}\n.ant-input-textarea-show-count::after {\n float: right;\n color: rgba(0, 0, 0, 0.45);\n white-space: nowrap;\n content: attr(data-count);\n pointer-events: none;\n}\n.ant-input-textarea-show-count.ant-input-textarea-in-form-item::after {\n margin-bottom: -22px;\n}\n.ant-input-textarea-suffix {\n position: absolute;\n top: 0;\n right: 11px;\n bottom: 0;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: auto;\n}\n.ant-input-compact-item:not(.ant-input-compact-last-item):not(.ant-input-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-input-compact-item:not(.ant-input-compact-last-item).ant-input-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-input-compact-item:hover,\n.ant-input-compact-item:focus,\n.ant-input-compact-item:active {\n z-index: 2;\n}\n.ant-input-compact-item[disabled] {\n z-index: 0;\n}\n.ant-input-compact-item:not(.ant-input-compact-first-item):not(.ant-input-compact-last-item).ant-input {\n border-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-first-item:not(.ant-input-compact-last-item):not(.ant-input-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-last-item:not(.ant-input-compact-first-item):not(.ant-input-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-item-rtl.ant-input-compact-first-item:not(.ant-input-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-item-rtl.ant-input-compact-last-item:not(.ant-input-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-search .ant-input:hover,\n.ant-input-search .ant-input:focus {\n border-color: #40a9ff;\n}\n.ant-input-search .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),\n.ant-input-search .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary) {\n border-left-color: #40a9ff;\n}\n.ant-input-search .ant-input-affix-wrapper {\n border-radius: 0;\n}\n.ant-input-search .ant-input-lg {\n line-height: 1.5713;\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child {\n left: -1px;\n padding: 0;\n border: 0;\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button {\n padding-top: 0;\n padding-bottom: 0;\n border-radius: 0 2px 2px 0;\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary) {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading::before {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.ant-input-search-button {\n height: 32px;\n}\n.ant-input-search-button:hover,\n.ant-input-search-button:focus {\n z-index: 1;\n}\n.ant-input-search-large .ant-input-search-button {\n height: 40px;\n}\n.ant-input-search-small .ant-input-search-button {\n height: 24px;\n}\n.ant-input-search.ant-input-compact-item:not(.ant-input-compact-item-rtl):not(.ant-input-compact-last-item) .ant-input-group-addon .ant-input-search-button {\n margin-right: -1px;\n border-radius: 0;\n}\n.ant-input-search.ant-input-compact-item:not(.ant-input-compact-first-item) .ant-input,\n.ant-input-search.ant-input-compact-item:not(.ant-input-compact-first-item) .ant-input-affix-wrapper {\n border-radius: 0;\n}\n.ant-input-search.ant-input-compact-item > .ant-input-group-addon .ant-input-search-button:hover,\n.ant-input-search.ant-input-compact-item > .ant-input:hover,\n.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:hover,\n.ant-input-search.ant-input-compact-item > .ant-input-group-addon .ant-input-search-button:focus,\n.ant-input-search.ant-input-compact-item > .ant-input:focus,\n.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:focus,\n.ant-input-search.ant-input-compact-item > .ant-input-group-addon .ant-input-search-button:active,\n.ant-input-search.ant-input-compact-item > .ant-input:active,\n.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:active {\n z-index: 2;\n}\n.ant-input-search.ant-input-compact-item > .ant-input-affix-wrapper-focused {\n z-index: 2;\n}\n.ant-input-search.ant-input-compact-item-rtl:not(.ant-input-compact-last-item) .ant-input-group-addon:last-child .ant-input-search-button {\n margin-left: -1px;\n border-radius: 0;\n}\n.ant-input-group-wrapper-rtl {\n direction: rtl;\n}\n.ant-input-group-rtl {\n direction: rtl;\n}\n.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl > input.ant-input {\n border: none;\n outline: none;\n}\n.ant-input-affix-wrapper-rtl .ant-input-prefix {\n margin: 0 0 0 4px;\n}\n.ant-input-affix-wrapper-rtl .ant-input-suffix {\n margin: 0 4px 0 0;\n}\n.ant-input-textarea-rtl {\n direction: rtl;\n}\n.ant-input-textarea-rtl.ant-input-textarea-show-count::after {\n text-align: left;\n}\n.ant-input-affix-wrapper-rtl .ant-input-clear-icon-has-suffix {\n margin-right: 0;\n margin-left: 4px;\n}\n.ant-input-affix-wrapper-rtl .ant-input-clear-icon {\n right: auto;\n left: 8px;\n}\n.ant-input-search-rtl {\n direction: rtl;\n}\n.ant-input-search-rtl .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),\n.ant-input-search-rtl .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary) {\n border-left-color: #d9d9d9;\n}\n.ant-input-search-rtl .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary):hover,\n.ant-input-search-rtl .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary):hover {\n border-left-color: #40a9ff;\n}\n.ant-input-search-rtl > .ant-input-group > .ant-input-affix-wrapper:hover,\n.ant-input-search-rtl > .ant-input-group > .ant-input-affix-wrapper-focused {\n border-right-color: #40a9ff;\n}\n.ant-input-search-rtl > .ant-input-group > .ant-input-group-addon:last-child {\n right: -1px;\n left: auto;\n}\n.ant-input-search-rtl > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button {\n border-radius: 2px 0 0 2px;\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .ant-input {\n height: 32px;\n }\n .ant-input-lg {\n height: 40px;\n }\n .ant-input-sm {\n height: 24px;\n }\n .ant-input-affix-wrapper > input.ant-input {\n height: auto;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-layout {\n display: flex;\n flex: auto;\n flex-direction: column;\n /* fix firefox can't set height smaller than content on flex item */\n min-height: 0;\n background: #f0f2f5;\n}\n.ant-layout,\n.ant-layout * {\n box-sizing: border-box;\n}\n.ant-layout.ant-layout-has-sider {\n flex-direction: row;\n}\n.ant-layout.ant-layout-has-sider > .ant-layout,\n.ant-layout.ant-layout-has-sider > .ant-layout-content {\n width: 0;\n}\n.ant-layout-header,\n.ant-layout-footer {\n flex: 0 0 auto;\n}\n.ant-layout-header {\n height: 64px;\n padding: 0 50px;\n color: rgba(0, 0, 0, 0.85);\n line-height: 64px;\n background: #001529;\n}\n.ant-layout-footer {\n padding: 24px 50px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n background: #f0f2f5;\n}\n.ant-layout-content {\n flex: auto;\n /* fix firefox can't set height smaller than content on flex item */\n min-height: 0;\n}\n.ant-layout-sider {\n position: relative;\n /* fix firefox can't set width smaller than content on flex item */\n min-width: 0;\n background: #001529;\n transition: all 0.2s;\n}\n.ant-layout-sider-children {\n height: 100%;\n margin-top: -0.1px;\n padding-top: 0.1px;\n}\n.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed {\n width: auto;\n}\n.ant-layout-sider-has-trigger {\n padding-bottom: 48px;\n}\n.ant-layout-sider-right {\n order: 1;\n}\n.ant-layout-sider-trigger {\n position: fixed;\n bottom: 0;\n z-index: 1;\n height: 48px;\n color: #fff;\n line-height: 48px;\n text-align: center;\n background: #002140;\n cursor: pointer;\n transition: all 0.2s;\n}\n.ant-layout-sider-zero-width > * {\n overflow: hidden;\n}\n.ant-layout-sider-zero-width-trigger {\n position: absolute;\n top: 64px;\n right: -36px;\n z-index: 1;\n width: 36px;\n height: 42px;\n color: #fff;\n font-size: 18px;\n line-height: 42px;\n text-align: center;\n background: #001529;\n border-radius: 0 2px 2px 0;\n cursor: pointer;\n transition: background 0.3s ease;\n}\n.ant-layout-sider-zero-width-trigger::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n transition: all 0.3s;\n content: '';\n}\n.ant-layout-sider-zero-width-trigger:hover::after {\n background: rgba(255, 255, 255, 0.1);\n}\n.ant-layout-sider-zero-width-trigger-right {\n left: -36px;\n border-radius: 2px 0 0 2px;\n}\n.ant-layout-sider-light {\n background: #fff;\n}\n.ant-layout-sider-light .ant-layout-sider-trigger {\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n}\n.ant-layout-sider-light .ant-layout-sider-zero-width-trigger {\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n}\n.ant-layout-rtl {\n direction: rtl;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-list {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n}\n.ant-list * {\n outline: none;\n}\n.ant-list-pagination {\n margin-top: 24px;\n text-align: right;\n}\n.ant-list-pagination .ant-pagination-options {\n text-align: left;\n}\n.ant-list-more {\n margin-top: 12px;\n text-align: center;\n}\n.ant-list-more button {\n padding-right: 32px;\n padding-left: 32px;\n}\n.ant-list-spin {\n min-height: 40px;\n text-align: center;\n}\n.ant-list-empty-text {\n padding: 16px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 14px;\n text-align: center;\n}\n.ant-list-items {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-list-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 0;\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-list-item-meta {\n display: flex;\n flex: 1;\n align-items: flex-start;\n max-width: 100%;\n}\n.ant-list-item-meta-avatar {\n margin-right: 16px;\n}\n.ant-list-item-meta-content {\n flex: 1 0;\n width: 0;\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-list-item-meta-title {\n margin-bottom: 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n}\n.ant-list-item-meta-title > a {\n color: rgba(0, 0, 0, 0.85);\n transition: all 0.3s;\n}\n.ant-list-item-meta-title > a:hover {\n color: #1890ff;\n}\n.ant-list-item-meta-description {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.5715;\n}\n.ant-list-item-action {\n flex: 0 0 auto;\n margin-left: 48px;\n padding: 0;\n font-size: 0;\n list-style: none;\n}\n.ant-list-item-action > li {\n position: relative;\n display: inline-block;\n padding: 0 8px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.5715;\n text-align: center;\n}\n.ant-list-item-action > li:first-child {\n padding-left: 0;\n}\n.ant-list-item-action-split {\n position: absolute;\n top: 50%;\n right: 0;\n width: 1px;\n height: 14px;\n margin-top: -7px;\n background-color: #f0f0f0;\n}\n.ant-list-header {\n background: transparent;\n}\n.ant-list-footer {\n background: transparent;\n}\n.ant-list-header,\n.ant-list-footer {\n padding-top: 12px;\n padding-bottom: 12px;\n}\n.ant-list-empty {\n padding: 16px 0;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n text-align: center;\n}\n.ant-list-split .ant-list-item {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-list-split .ant-list-item:last-child {\n border-bottom: none;\n}\n.ant-list-split .ant-list-header {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-list-split.ant-list-empty .ant-list-footer {\n border-top: 1px solid #f0f0f0;\n}\n.ant-list-loading .ant-list-spin-nested-loading {\n min-height: 32px;\n}\n.ant-list-split.ant-list-something-after-last-item .ant-spin-container > .ant-list-items > .ant-list-item:last-child {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-list-lg .ant-list-item {\n padding: 16px 24px;\n}\n.ant-list-sm .ant-list-item {\n padding: 8px 16px;\n}\n.ant-list-vertical .ant-list-item {\n align-items: initial;\n}\n.ant-list-vertical .ant-list-item-main {\n display: block;\n flex: 1;\n}\n.ant-list-vertical .ant-list-item-extra {\n margin-left: 40px;\n}\n.ant-list-vertical .ant-list-item-meta {\n margin-bottom: 16px;\n}\n.ant-list-vertical .ant-list-item-meta-title {\n margin-bottom: 12px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n line-height: 24px;\n}\n.ant-list-vertical .ant-list-item-action {\n margin-top: 16px;\n margin-left: auto;\n}\n.ant-list-vertical .ant-list-item-action > li {\n padding: 0 16px;\n}\n.ant-list-vertical .ant-list-item-action > li:first-child {\n padding-left: 0;\n}\n.ant-list-grid .ant-col > .ant-list-item {\n display: block;\n max-width: 100%;\n margin-bottom: 16px;\n padding-top: 0;\n padding-bottom: 0;\n border-bottom: none;\n}\n.ant-list-item-no-flex {\n display: block;\n}\n.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action {\n float: right;\n}\n.ant-list-bordered {\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n}\n.ant-list-bordered .ant-list-header {\n padding-right: 24px;\n padding-left: 24px;\n}\n.ant-list-bordered .ant-list-footer {\n padding-right: 24px;\n padding-left: 24px;\n}\n.ant-list-bordered .ant-list-item {\n padding-right: 24px;\n padding-left: 24px;\n}\n.ant-list-bordered .ant-list-pagination {\n margin: 16px 24px;\n}\n.ant-list-bordered.ant-list-sm .ant-list-item {\n padding: 8px 16px;\n}\n.ant-list-bordered.ant-list-sm .ant-list-header,\n.ant-list-bordered.ant-list-sm .ant-list-footer {\n padding: 8px 16px;\n}\n.ant-list-bordered.ant-list-lg .ant-list-item {\n padding: 16px 24px;\n}\n.ant-list-bordered.ant-list-lg .ant-list-header,\n.ant-list-bordered.ant-list-lg .ant-list-footer {\n padding: 16px 24px;\n}\n@media screen and (max-width: 768px) {\n .ant-list-item-action {\n margin-left: 24px;\n }\n .ant-list-vertical .ant-list-item-extra {\n margin-left: 24px;\n }\n}\n@media screen and (max-width: 576px) {\n .ant-list-item {\n flex-wrap: wrap;\n }\n .ant-list-item-action {\n margin-left: 12px;\n }\n .ant-list-vertical .ant-list-item {\n flex-wrap: wrap-reverse;\n }\n .ant-list-vertical .ant-list-item-main {\n min-width: 220px;\n }\n .ant-list-vertical .ant-list-item-extra {\n margin: auto auto 16px;\n }\n}\n.ant-list-rtl {\n direction: rtl;\n text-align: right;\n}\n.ant-list-rtl .ReactVirtualized__List .ant-list-item {\n direction: rtl;\n}\n.ant-list-rtl .ant-list-pagination {\n text-align: left;\n}\n.ant-list-rtl .ant-list-item-meta-avatar {\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-list-rtl .ant-list-item-action {\n margin-right: 48px;\n margin-left: 0;\n}\n.ant-list.ant-list-rtl .ant-list-item-action > li:first-child {\n padding-right: 0;\n padding-left: 16px;\n}\n.ant-list-rtl .ant-list-item-action-split {\n right: auto;\n left: 0;\n}\n.ant-list-rtl.ant-list-vertical .ant-list-item-extra {\n margin-right: 40px;\n margin-left: 0;\n}\n.ant-list-rtl.ant-list-vertical .ant-list-item-action {\n margin-right: auto;\n}\n.ant-list-rtl .ant-list-vertical .ant-list-item-action > li:first-child {\n padding-right: 0;\n padding-left: 16px;\n}\n.ant-list-rtl .ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action {\n float: left;\n}\n@media screen and (max-width: 768px) {\n .ant-list-rtl .ant-list-item-action {\n margin-right: 24px;\n margin-left: 0;\n }\n .ant-list-rtl .ant-list-vertical .ant-list-item-extra {\n margin-right: 24px;\n margin-left: 0;\n }\n}\n@media screen and (max-width: 576px) {\n .ant-list-rtl .ant-list-item-action {\n margin-right: 22px;\n margin-left: 0;\n }\n .ant-list-rtl.ant-list-vertical .ant-list-item-extra {\n margin: auto auto 16px;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-pagination {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-pagination ul,\n.ant-pagination ol {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-pagination::after {\n display: block;\n clear: both;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n content: ' ';\n}\n.ant-pagination-total-text {\n display: inline-block;\n height: 32px;\n margin-right: 8px;\n line-height: 30px;\n vertical-align: middle;\n}\n.ant-pagination-item {\n display: inline-block;\n min-width: 32px;\n height: 32px;\n margin-right: 8px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n line-height: 30px;\n text-align: center;\n vertical-align: middle;\n list-style: none;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n outline: 0;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-pagination-item a {\n display: block;\n padding: 0 6px;\n color: rgba(0, 0, 0, 0.85);\n transition: none;\n}\n.ant-pagination-item a:hover {\n text-decoration: none;\n}\n.ant-pagination-item:hover {\n border-color: #1890ff;\n transition: all 0.3s;\n}\n.ant-pagination-item:hover a {\n color: #1890ff;\n}\n.ant-pagination-item:focus-visible {\n border-color: #1890ff;\n transition: all 0.3s;\n}\n.ant-pagination-item:focus-visible a {\n color: #1890ff;\n}\n.ant-pagination-item-active {\n font-weight: 500;\n background: #fff;\n border-color: #1890ff;\n}\n.ant-pagination-item-active a {\n color: #1890ff;\n}\n.ant-pagination-item-active:hover {\n border-color: #40a9ff;\n}\n.ant-pagination-item-active:focus-visible {\n border-color: #40a9ff;\n}\n.ant-pagination-item-active:hover a {\n color: #40a9ff;\n}\n.ant-pagination-item-active:focus-visible a {\n color: #40a9ff;\n}\n.ant-pagination-jump-prev,\n.ant-pagination-jump-next {\n outline: 0;\n}\n.ant-pagination-jump-prev .ant-pagination-item-container,\n.ant-pagination-jump-next .ant-pagination-item-container {\n position: relative;\n}\n.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,\n.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon {\n color: #1890ff;\n font-size: 12px;\n letter-spacing: -1px;\n opacity: 0;\n transition: all 0.2s;\n}\n.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg,\n.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n}\n.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis,\n.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n margin: auto;\n color: rgba(0, 0, 0, 0.25);\n font-family: Arial, Helvetica, sans-serif;\n letter-spacing: 2px;\n text-align: center;\n text-indent: 0.13em;\n opacity: 1;\n transition: all 0.2s;\n}\n.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon,\n.ant-pagination-jump-next:hover .ant-pagination-item-link-icon {\n opacity: 1;\n}\n.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis,\n.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis {\n opacity: 0;\n}\n.ant-pagination-jump-prev:focus-visible .ant-pagination-item-link-icon,\n.ant-pagination-jump-next:focus-visible .ant-pagination-item-link-icon {\n opacity: 1;\n}\n.ant-pagination-jump-prev:focus-visible .ant-pagination-item-ellipsis,\n.ant-pagination-jump-next:focus-visible .ant-pagination-item-ellipsis {\n opacity: 0;\n}\n.ant-pagination-prev,\n.ant-pagination-jump-prev,\n.ant-pagination-jump-next {\n margin-right: 8px;\n}\n.ant-pagination-prev,\n.ant-pagination-next,\n.ant-pagination-jump-prev,\n.ant-pagination-jump-next {\n display: inline-block;\n min-width: 32px;\n height: 32px;\n color: rgba(0, 0, 0, 0.85);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n line-height: 32px;\n text-align: center;\n vertical-align: middle;\n list-style: none;\n border-radius: 2px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-pagination-prev,\n.ant-pagination-next {\n font-family: Arial, Helvetica, sans-serif;\n outline: 0;\n}\n.ant-pagination-prev button,\n.ant-pagination-next button {\n color: rgba(0, 0, 0, 0.85);\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-pagination-prev:hover button,\n.ant-pagination-next:hover button {\n border-color: #40a9ff;\n}\n.ant-pagination-prev .ant-pagination-item-link,\n.ant-pagination-next .ant-pagination-item-link {\n display: block;\n width: 100%;\n height: 100%;\n padding: 0;\n font-size: 12px;\n text-align: center;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n outline: none;\n transition: all 0.3s;\n}\n.ant-pagination-prev:focus-visible .ant-pagination-item-link,\n.ant-pagination-next:focus-visible .ant-pagination-item-link {\n color: #1890ff;\n border-color: #1890ff;\n}\n.ant-pagination-prev:hover .ant-pagination-item-link,\n.ant-pagination-next:hover .ant-pagination-item-link {\n color: #1890ff;\n border-color: #1890ff;\n}\n.ant-pagination-disabled,\n.ant-pagination-disabled:hover {\n cursor: not-allowed;\n}\n.ant-pagination-disabled .ant-pagination-item-link,\n.ant-pagination-disabled:hover .ant-pagination-item-link {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-pagination-disabled:focus-visible {\n cursor: not-allowed;\n}\n.ant-pagination-disabled:focus-visible .ant-pagination-item-link {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-pagination-slash {\n margin: 0 10px 0 5px;\n}\n.ant-pagination-options {\n display: inline-block;\n margin-left: 16px;\n vertical-align: middle;\n}\n@media all and (-ms-high-contrast: none) {\n .ant-pagination-options *::-ms-backdrop,\n .ant-pagination-options {\n vertical-align: top;\n }\n}\n.ant-pagination-options-size-changer.ant-select {\n display: inline-block;\n width: auto;\n}\n.ant-pagination-options-quick-jumper {\n display: inline-block;\n height: 32px;\n margin-left: 8px;\n line-height: 32px;\n vertical-align: top;\n}\n.ant-pagination-options-quick-jumper input {\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n width: 50px;\n height: 32px;\n margin: 0 8px;\n}\n.ant-pagination-options-quick-jumper input::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-pagination-options-quick-jumper input:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-pagination-options-quick-jumper input::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-pagination-options-quick-jumper input:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-pagination-options-quick-jumper input:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-pagination-options-quick-jumper input:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-pagination-options-quick-jumper input:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-pagination-options-quick-jumper input:focus,\n.ant-pagination-options-quick-jumper input-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-pagination-options-quick-jumper input-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-pagination-options-quick-jumper input-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-pagination-options-quick-jumper input[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-pagination-options-quick-jumper input[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-pagination-options-quick-jumper input-borderless,\n.ant-pagination-options-quick-jumper input-borderless:hover,\n.ant-pagination-options-quick-jumper input-borderless:focus,\n.ant-pagination-options-quick-jumper input-borderless-focused,\n.ant-pagination-options-quick-jumper input-borderless-disabled,\n.ant-pagination-options-quick-jumper input-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-pagination-options-quick-jumper input {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-pagination-options-quick-jumper input-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-pagination-options-quick-jumper input-sm {\n padding: 0px 7px;\n}\n.ant-pagination-simple .ant-pagination-prev,\n.ant-pagination-simple .ant-pagination-next {\n height: 24px;\n line-height: 24px;\n vertical-align: top;\n}\n.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link,\n.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link {\n height: 24px;\n background-color: transparent;\n border: 0;\n}\n.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link::after,\n.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link::after {\n height: 24px;\n line-height: 24px;\n}\n.ant-pagination-simple .ant-pagination-simple-pager {\n display: inline-block;\n height: 24px;\n margin-right: 8px;\n}\n.ant-pagination-simple .ant-pagination-simple-pager input {\n box-sizing: border-box;\n height: 100%;\n margin-right: 8px;\n padding: 0 6px;\n text-align: center;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n outline: none;\n transition: border-color 0.3s;\n}\n.ant-pagination-simple .ant-pagination-simple-pager input:hover {\n border-color: #1890ff;\n}\n.ant-pagination-simple .ant-pagination-simple-pager input:focus {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n}\n.ant-pagination-simple .ant-pagination-simple-pager input[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background: #f5f5f5;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-total-text,\n.ant-pagination.ant-pagination-mini .ant-pagination-simple-pager {\n height: 24px;\n line-height: 24px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-item {\n min-width: 24px;\n height: 24px;\n margin: 0;\n line-height: 22px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-item:not(.ant-pagination-item-active) {\n background: transparent;\n border-color: transparent;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-prev,\n.ant-pagination.ant-pagination-mini .ant-pagination-next {\n min-width: 24px;\n height: 24px;\n margin: 0;\n line-height: 24px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-prev .ant-pagination-item-link,\n.ant-pagination.ant-pagination-mini .ant-pagination-next .ant-pagination-item-link {\n background: transparent;\n border-color: transparent;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-prev .ant-pagination-item-link::after,\n.ant-pagination.ant-pagination-mini .ant-pagination-next .ant-pagination-item-link::after {\n height: 24px;\n line-height: 24px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-jump-prev,\n.ant-pagination.ant-pagination-mini .ant-pagination-jump-next {\n height: 24px;\n margin-right: 0;\n line-height: 24px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-options {\n margin-left: 2px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-options-size-changer {\n top: 0px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper {\n height: 24px;\n line-height: 24px;\n}\n.ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper input {\n padding: 0px 7px;\n width: 44px;\n height: 24px;\n}\n.ant-pagination.ant-pagination-disabled {\n cursor: not-allowed;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item {\n background: #f5f5f5;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item a {\n color: rgba(0, 0, 0, 0.25);\n background: transparent;\n border: none;\n cursor: not-allowed;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-active {\n background: #e6e6e6;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-link {\n color: rgba(0, 0, 0, 0.25);\n background: #f5f5f5;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-pagination-simple.ant-pagination.ant-pagination-disabled .ant-pagination-item-link {\n background: transparent;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-link-icon {\n opacity: 0;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-ellipsis {\n opacity: 1;\n}\n.ant-pagination.ant-pagination-disabled .ant-pagination-simple-pager {\n color: rgba(0, 0, 0, 0.25);\n}\n@media only screen and (max-width: 992px) {\n .ant-pagination-item-after-jump-prev,\n .ant-pagination-item-before-jump-next {\n display: none;\n }\n}\n@media only screen and (max-width: 576px) {\n .ant-pagination-options {\n display: none;\n }\n}\n.ant-pagination-rtl .ant-pagination-total-text {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-pagination-rtl .ant-pagination-item,\n.ant-pagination-rtl .ant-pagination-prev,\n.ant-pagination-rtl .ant-pagination-jump-prev,\n.ant-pagination-rtl .ant-pagination-jump-next {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-pagination-rtl .ant-pagination-slash {\n margin: 0 5px 0 10px;\n}\n.ant-pagination-rtl .ant-pagination-options {\n margin-right: 16px;\n margin-left: 0;\n}\n.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-size-changer.ant-select {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-quick-jumper {\n margin-left: 0;\n}\n.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager input {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-pagination-rtl.ant-pagination.mini .ant-pagination-options {\n margin-right: 2px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-spin {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n display: none;\n color: #1890ff;\n font-size: 0;\n text-align: center;\n vertical-align: middle;\n opacity: 0;\n transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-spin-spinning {\n position: static;\n display: inline-block;\n opacity: 1;\n}\n.ant-spin-nested-loading {\n position: relative;\n}\n.ant-spin-nested-loading > div > .ant-spin {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 4;\n display: block;\n width: 100%;\n height: 100%;\n max-height: 400px;\n}\n.ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {\n position: absolute;\n top: 50%;\n left: 50%;\n margin: -10px;\n}\n.ant-spin-nested-loading > div > .ant-spin .ant-spin-text {\n position: absolute;\n top: 50%;\n width: 100%;\n padding-top: 5px;\n font-size: 14px;\n text-shadow: 0 1px 2px #fff;\n}\n.ant-spin-nested-loading > div > .ant-spin.ant-spin-show-text .ant-spin-dot {\n margin-top: -20px;\n}\n.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-dot {\n margin: -7px;\n}\n.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-text {\n padding-top: 2px;\n}\n.ant-spin-nested-loading > div > .ant-spin-sm.ant-spin-show-text .ant-spin-dot {\n margin-top: -17px;\n}\n.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-dot {\n margin: -16px;\n}\n.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-text {\n padding-top: 11px;\n}\n.ant-spin-nested-loading > div > .ant-spin-lg.ant-spin-show-text .ant-spin-dot {\n margin-top: -26px;\n}\n.ant-spin-container {\n position: relative;\n transition: opacity 0.3s;\n}\n.ant-spin-container::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n display: none \\9;\n width: 100%;\n height: 100%;\n background: #fff;\n opacity: 0;\n transition: all 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-spin-blur {\n clear: both;\n opacity: 0.5;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n pointer-events: none;\n}\n.ant-spin-blur::after {\n opacity: 0.4;\n pointer-events: auto;\n}\n.ant-spin-tip {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-spin-dot {\n position: relative;\n display: inline-block;\n font-size: 20px;\n width: 1em;\n height: 1em;\n}\n.ant-spin-dot-item {\n position: absolute;\n display: block;\n width: 9px;\n height: 9px;\n background-color: #1890ff;\n border-radius: 100%;\n transform: scale(0.75);\n transform-origin: 50% 50%;\n opacity: 0.3;\n animation: antSpinMove 1s infinite linear alternate;\n}\n.ant-spin-dot-item:nth-child(1) {\n top: 0;\n left: 0;\n}\n.ant-spin-dot-item:nth-child(2) {\n top: 0;\n right: 0;\n animation-delay: 0.4s;\n}\n.ant-spin-dot-item:nth-child(3) {\n right: 0;\n bottom: 0;\n animation-delay: 0.8s;\n}\n.ant-spin-dot-item:nth-child(4) {\n bottom: 0;\n left: 0;\n animation-delay: 1.2s;\n}\n.ant-spin-dot-spin {\n transform: rotate(0deg);\n animation: antRotate 1.2s infinite linear;\n}\n.ant-spin-sm .ant-spin-dot {\n font-size: 14px;\n}\n.ant-spin-sm .ant-spin-dot i {\n width: 6px;\n height: 6px;\n}\n.ant-spin-lg .ant-spin-dot {\n font-size: 32px;\n}\n.ant-spin-lg .ant-spin-dot i {\n width: 14px;\n height: 14px;\n}\n.ant-spin.ant-spin-show-text .ant-spin-text {\n display: block;\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n /* IE10+ */\n .ant-spin-blur {\n background: #fff;\n opacity: 0.5;\n }\n}\n@keyframes antSpinMove {\n to {\n opacity: 1;\n }\n}\n@keyframes antRotate {\n to {\n transform: rotate(360deg);\n }\n}\n.ant-spin-rtl {\n direction: rtl;\n}\n.ant-spin-rtl .ant-spin-dot-spin {\n transform: rotate(-45deg);\n animation-name: antRotateRtl;\n}\n@keyframes antRotateRtl {\n to {\n transform: rotate(-405deg);\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions,\n.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:focus,\n.ant-mentions-status-error:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-mentions-status-error .ant-input-prefix {\n color: #ff4d4f;\n}\n.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions,\n.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions:focus,\n.ant-mentions-status-warning:not(.ant-mentions-disabled):not(.ant-mentions-borderless).ant-mentions-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-mentions-status-warning .ant-input-prefix {\n color: #faad14;\n}\n.ant-mentions {\n box-sizing: border-box;\n margin: 0;\n font-variant: tabular-nums;\n list-style: none;\n font-feature-settings: 'tnum';\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n position: relative;\n display: inline-block;\n height: auto;\n padding: 0;\n overflow: hidden;\n line-height: 1.5715;\n white-space: pre-wrap;\n vertical-align: bottom;\n}\n.ant-mentions::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-mentions:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-mentions::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-mentions:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-mentions:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-mentions:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-mentions:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-mentions:focus,\n.ant-mentions-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-mentions-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-mentions-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-mentions[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-mentions[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-mentions-borderless,\n.ant-mentions-borderless:hover,\n.ant-mentions-borderless:focus,\n.ant-mentions-borderless-focused,\n.ant-mentions-borderless-disabled,\n.ant-mentions-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-mentions {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-mentions-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-mentions-sm {\n padding: 0px 7px;\n}\n.ant-mentions-disabled > textarea {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-mentions-disabled > textarea:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-mentions-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-mentions > textarea,\n.ant-mentions-measure {\n min-height: 30px;\n margin: 0;\n padding: 4px 11px;\n overflow: inherit;\n overflow-x: hidden;\n overflow-y: auto;\n /* stylelint-disable declaration-block-no-redundant-longhand-properties */\n font-weight: inherit;\n font-size: inherit;\n font-family: inherit;\n font-style: inherit;\n font-variant: inherit;\n font-size-adjust: inherit;\n font-stretch: inherit;\n line-height: inherit;\n /* stylelint-enable declaration-block-no-redundant-longhand-properties */\n direction: inherit;\n letter-spacing: inherit;\n white-space: inherit;\n text-align: inherit;\n vertical-align: top;\n word-wrap: break-word;\n word-break: inherit;\n -moz-tab-size: inherit;\n -o-tab-size: inherit;\n tab-size: inherit;\n}\n.ant-mentions > textarea {\n width: 100%;\n border: none;\n outline: none;\n resize: none;\n}\n.ant-mentions > textarea::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-mentions > textarea:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-mentions > textarea::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-mentions > textarea:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-mentions > textarea:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-mentions > textarea:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-mentions-measure {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n color: transparent;\n pointer-events: none;\n}\n.ant-mentions-measure > span {\n display: inline-block;\n min-height: 1em;\n}\n.ant-mentions-dropdown {\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n box-sizing: border-box;\n font-size: 14px;\n font-variant: initial;\n background-color: #fff;\n border-radius: 2px;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-mentions-dropdown-hidden {\n display: none;\n}\n.ant-mentions-dropdown-menu {\n max-height: 250px;\n margin-bottom: 0;\n padding-left: 0;\n overflow: auto;\n list-style: none;\n outline: none;\n}\n.ant-mentions-dropdown-menu-item {\n position: relative;\n display: block;\n min-width: 100px;\n padding: 5px 12px;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n line-height: 1.5715;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: background 0.3s ease;\n}\n.ant-mentions-dropdown-menu-item:hover {\n background-color: #f5f5f5;\n}\n.ant-mentions-dropdown-menu-item:first-child {\n border-radius: 2px 2px 0 0;\n}\n.ant-mentions-dropdown-menu-item:last-child {\n border-radius: 0 0 2px 2px;\n}\n.ant-mentions-dropdown-menu-item-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-mentions-dropdown-menu-item-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n background-color: #fff;\n cursor: not-allowed;\n}\n.ant-mentions-dropdown-menu-item-selected {\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n background-color: #fafafa;\n}\n.ant-mentions-dropdown-menu-item-active {\n background-color: #f5f5f5;\n}\n.ant-mentions-suffix {\n position: absolute;\n top: 0;\n right: 11px;\n bottom: 0;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: auto;\n}\n.ant-mentions-rtl {\n direction: rtl;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-message {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: fixed;\n top: 8px;\n left: 0;\n z-index: 1010;\n width: 100%;\n pointer-events: none;\n}\n.ant-message-notice {\n padding: 8px;\n text-align: center;\n}\n.ant-message-notice-content {\n display: inline-block;\n padding: 10px 16px;\n background: #fff;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n pointer-events: all;\n}\n.ant-message-success .anticon {\n color: #52c41a;\n}\n.ant-message-error .anticon {\n color: #ff4d4f;\n}\n.ant-message-warning .anticon {\n color: #faad14;\n}\n.ant-message-info .anticon,\n.ant-message-loading .anticon {\n color: #1890ff;\n}\n.ant-message .anticon {\n position: relative;\n top: 1px;\n margin-right: 8px;\n font-size: 16px;\n}\n.ant-message-notice.ant-move-up-leave.ant-move-up-leave-active {\n animation-name: MessageMoveOut;\n animation-duration: 0.3s;\n}\n@keyframes MessageMoveOut {\n 0% {\n max-height: 150px;\n padding: 8px;\n opacity: 1;\n }\n 100% {\n max-height: 0;\n padding: 0;\n opacity: 0;\n }\n}\n.ant-message-rtl {\n direction: rtl;\n}\n.ant-message-rtl span {\n direction: rtl;\n}\n.ant-message-rtl .anticon {\n margin-right: 0;\n margin-left: 8px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-modal {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n pointer-events: none;\n position: relative;\n top: 100px;\n width: auto;\n max-width: calc(100vw - 32px);\n margin: 0 auto;\n padding-bottom: 24px;\n}\n.ant-modal.ant-zoom-enter,\n.ant-modal.ant-zoom-appear {\n transform: none;\n opacity: 0;\n animation-duration: 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-modal-mask {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.45);\n}\n.ant-modal-mask-hidden {\n display: none;\n}\n.ant-modal-wrap {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: auto;\n outline: 0;\n}\n.ant-modal-wrap {\n z-index: 1000;\n}\n.ant-modal-title {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n word-wrap: break-word;\n}\n.ant-modal-content {\n position: relative;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n pointer-events: auto;\n}\n.ant-modal-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 10;\n padding: 0;\n color: rgba(0, 0, 0, 0.45);\n font-weight: 700;\n line-height: 1;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n}\n.ant-modal-close-x {\n display: block;\n width: 54px;\n height: 54px;\n font-size: 16px;\n font-style: normal;\n line-height: 54px;\n text-align: center;\n text-transform: none;\n text-rendering: auto;\n}\n.ant-modal-close:focus,\n.ant-modal-close:hover {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n}\n.ant-modal-header {\n padding: 16px 24px;\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n}\n.ant-modal-body {\n padding: 24px;\n font-size: 14px;\n line-height: 1.5715;\n word-wrap: break-word;\n}\n.ant-modal-footer {\n padding: 10px 16px;\n text-align: right;\n background: transparent;\n border-top: 1px solid #f0f0f0;\n border-radius: 0 0 2px 2px;\n}\n.ant-modal-footer .ant-btn + .ant-btn:not(.ant-dropdown-trigger) {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-open {\n overflow: hidden;\n}\n.ant-modal-centered {\n text-align: center;\n}\n.ant-modal-centered::before {\n display: inline-block;\n width: 0;\n height: 100%;\n vertical-align: middle;\n content: '';\n}\n.ant-modal-centered .ant-modal {\n top: 0;\n display: inline-block;\n padding-bottom: 0;\n text-align: left;\n vertical-align: middle;\n}\n@media (max-width: 767px) {\n .ant-modal {\n max-width: calc(100vw - 16px);\n margin: 8px auto;\n }\n .ant-modal-centered .ant-modal {\n flex: 1;\n }\n}\n.ant-modal-confirm .ant-modal-header {\n display: none;\n}\n.ant-modal-confirm .ant-modal-body {\n padding: 32px 32px 24px;\n}\n.ant-modal-confirm-body-wrapper::before {\n display: table;\n content: '';\n}\n.ant-modal-confirm-body-wrapper::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-modal-confirm-body .ant-modal-confirm-title {\n display: block;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 1.4;\n}\n.ant-modal-confirm-body .ant-modal-confirm-content {\n margin-top: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-modal-confirm-body > .anticon {\n float: left;\n margin-right: 16px;\n font-size: 22px;\n}\n.ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-left: 38px;\n}\n.ant-modal-confirm .ant-modal-confirm-btns {\n margin-top: 24px;\n text-align: right;\n}\n.ant-modal-confirm .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-confirm-error .ant-modal-confirm-body > .anticon {\n color: #ff4d4f;\n}\n.ant-modal-confirm-warning .ant-modal-confirm-body > .anticon,\n.ant-modal-confirm-confirm .ant-modal-confirm-body > .anticon {\n color: #faad14;\n}\n.ant-modal-confirm-info .ant-modal-confirm-body > .anticon {\n color: #1890ff;\n}\n.ant-modal-confirm-success .ant-modal-confirm-body > .anticon {\n color: #52c41a;\n}\n.ant-modal-confirm .ant-zoom-leave .ant-modal-confirm-btns {\n pointer-events: none;\n}\n.ant-modal-wrap-rtl {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-close {\n right: initial;\n left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-footer {\n text-align: left;\n}\n.ant-modal-wrap-rtl .ant-modal-footer .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-right: 38px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns {\n text-align: left;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl.ant-modal-centered .ant-modal {\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-notification {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: fixed;\n z-index: 1010;\n margin-right: 24px;\n}\n.ant-notification-close-icon {\n font-size: 14px;\n cursor: pointer;\n}\n.ant-notification-hook-holder {\n position: relative;\n}\n.ant-notification-notice {\n position: relative;\n width: 384px;\n max-width: calc(100vw - 24px * 2);\n margin-bottom: 16px;\n margin-left: auto;\n padding: 16px 24px;\n overflow: hidden;\n line-height: 1.5715;\n word-wrap: break-word;\n background: #fff;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-notification-top .ant-notification-notice,\n.ant-notification-bottom .ant-notification-notice {\n margin-right: auto;\n margin-left: auto;\n}\n.ant-notification-topLeft .ant-notification-notice,\n.ant-notification-bottomLeft .ant-notification-notice {\n margin-right: auto;\n margin-left: 0;\n}\n.ant-notification-notice-message {\n margin-bottom: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n line-height: 24px;\n}\n.ant-notification-notice-message-single-line-auto-margin {\n display: block;\n width: calc(384px - 24px * 2 - 24px - 48px - 100%);\n max-width: 4px;\n background-color: transparent;\n pointer-events: none;\n}\n.ant-notification-notice-message-single-line-auto-margin::before {\n display: block;\n content: '';\n}\n.ant-notification-notice-description {\n font-size: 14px;\n}\n.ant-notification-notice-closable .ant-notification-notice-message {\n padding-right: 24px;\n}\n.ant-notification-notice-with-icon .ant-notification-notice-message {\n margin-bottom: 4px;\n margin-left: 48px;\n font-size: 16px;\n}\n.ant-notification-notice-with-icon .ant-notification-notice-description {\n margin-left: 48px;\n font-size: 14px;\n}\n.ant-notification-notice-icon {\n position: absolute;\n margin-left: 4px;\n font-size: 24px;\n line-height: 24px;\n}\n.anticon.ant-notification-notice-icon-success {\n color: #52c41a;\n}\n.anticon.ant-notification-notice-icon-info {\n color: #1890ff;\n}\n.anticon.ant-notification-notice-icon-warning {\n color: #faad14;\n}\n.anticon.ant-notification-notice-icon-error {\n color: #ff4d4f;\n}\n.ant-notification-notice-close {\n position: absolute;\n top: 16px;\n right: 22px;\n color: rgba(0, 0, 0, 0.45);\n outline: none;\n}\n.ant-notification-notice-close:hover {\n color: rgba(0, 0, 0, 0.67);\n}\n.ant-notification-notice-btn {\n float: right;\n margin-top: 16px;\n}\n.ant-notification .notification-fade-effect {\n animation-duration: 0.24s;\n animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\n animation-fill-mode: both;\n}\n.ant-notification-fade-enter,\n.ant-notification-fade-appear {\n animation-duration: 0.24s;\n animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\n animation-fill-mode: both;\n opacity: 0;\n animation-play-state: paused;\n}\n.ant-notification-fade-leave {\n animation-duration: 0.24s;\n animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\n animation-fill-mode: both;\n animation-duration: 0.2s;\n animation-play-state: paused;\n}\n.ant-notification-fade-enter.ant-notification-fade-enter-active,\n.ant-notification-fade-appear.ant-notification-fade-appear-active {\n animation-name: NotificationFadeIn;\n animation-play-state: running;\n}\n.ant-notification-fade-leave.ant-notification-fade-leave-active {\n animation-name: NotificationFadeOut;\n animation-play-state: running;\n}\n@keyframes NotificationFadeIn {\n 0% {\n left: 384px;\n opacity: 0;\n }\n 100% {\n left: 0;\n opacity: 1;\n }\n}\n@keyframes NotificationFadeOut {\n 0% {\n max-height: 150px;\n margin-bottom: 16px;\n opacity: 1;\n }\n 100% {\n max-height: 0;\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n opacity: 0;\n }\n}\n.ant-notification-rtl {\n direction: rtl;\n}\n.ant-notification-rtl .ant-notification-notice-closable .ant-notification-notice-message {\n padding-right: 0;\n padding-left: 24px;\n}\n.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-message {\n margin-right: 48px;\n margin-left: 0;\n}\n.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-description {\n margin-right: 48px;\n margin-left: 0;\n}\n.ant-notification-rtl .ant-notification-notice-icon {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-notification-rtl .ant-notification-notice-close {\n right: auto;\n left: 22px;\n}\n.ant-notification-rtl .ant-notification-notice-btn {\n float: left;\n}\n.ant-notification-top,\n.ant-notification-bottom {\n margin-right: 0;\n margin-left: 0;\n}\n.ant-notification-top .ant-notification-fade-enter.ant-notification-fade-enter-active,\n.ant-notification-top .ant-notification-fade-appear.ant-notification-fade-appear-active {\n animation-name: NotificationTopFadeIn;\n}\n.ant-notification-bottom .ant-notification-fade-enter.ant-notification-fade-enter-active,\n.ant-notification-bottom .ant-notification-fade-appear.ant-notification-fade-appear-active {\n animation-name: NotificationBottomFadeIn;\n}\n.ant-notification-topLeft,\n.ant-notification-bottomLeft {\n margin-right: 0;\n margin-left: 24px;\n}\n.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,\n.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,\n.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,\n.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active {\n animation-name: NotificationLeftFadeIn;\n}\n@keyframes NotificationTopFadeIn {\n 0% {\n margin-top: -100%;\n opacity: 0;\n }\n 100% {\n margin-top: 0;\n opacity: 1;\n }\n}\n@keyframes NotificationBottomFadeIn {\n 0% {\n margin-bottom: -100%;\n opacity: 0;\n }\n 100% {\n margin-bottom: 0;\n opacity: 1;\n }\n}\n@keyframes NotificationLeftFadeIn {\n 0% {\n right: 384px;\n opacity: 0;\n }\n 100% {\n right: 0;\n opacity: 1;\n }\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-page-header {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n padding: 16px 24px;\n background-color: #fff;\n}\n.ant-page-header-ghost {\n background-color: inherit;\n}\n.ant-page-header.has-breadcrumb {\n padding-top: 12px;\n}\n.ant-page-header.has-footer {\n padding-bottom: 0;\n}\n.ant-page-header-back {\n margin-right: 16px;\n font-size: 16px;\n line-height: 1;\n}\n.ant-page-header-back-button {\n color: #1890ff;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n color: #000;\n}\n.ant-page-header-back-button:focus-visible,\n.ant-page-header-back-button:hover {\n color: #40a9ff;\n}\n.ant-page-header-back-button:active {\n color: #096dd9;\n}\n.ant-page-header .ant-divider-vertical {\n height: 14px;\n margin: 0 12px;\n vertical-align: middle;\n}\n.ant-breadcrumb + .ant-page-header-heading {\n margin-top: 8px;\n}\n.ant-page-header-heading {\n display: flex;\n justify-content: space-between;\n}\n.ant-page-header-heading-left {\n display: flex;\n align-items: center;\n margin: 4px 0;\n overflow: hidden;\n}\n.ant-page-header-heading-title {\n margin-right: 12px;\n margin-bottom: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 20px;\n line-height: 32px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-page-header-heading .ant-avatar {\n margin-right: 12px;\n}\n.ant-page-header-heading-sub-title {\n margin-right: 12px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.5715;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-page-header-heading-extra {\n margin: 4px 0;\n white-space: nowrap;\n}\n.ant-page-header-heading-extra > * {\n white-space: unset;\n}\n.ant-page-header-content {\n padding-top: 12px;\n}\n.ant-page-header-footer {\n margin-top: 16px;\n}\n.ant-page-header-footer .ant-tabs > .ant-tabs-nav {\n margin: 0;\n}\n.ant-page-header-footer .ant-tabs > .ant-tabs-nav::before {\n border: none;\n}\n.ant-page-header-footer .ant-tabs .ant-tabs-tab {\n padding-top: 8px;\n padding-bottom: 8px;\n font-size: 16px;\n}\n.ant-page-header-compact .ant-page-header-heading {\n flex-wrap: wrap;\n}\n.ant-page-header-rtl {\n direction: rtl;\n}\n.ant-page-header-rtl .ant-page-header-back {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-page-header-rtl .ant-page-header-heading-title {\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-page-header-rtl .ant-page-header-heading .ant-avatar {\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-page-header-rtl .ant-page-header-heading-sub-title {\n float: right;\n margin-right: 0;\n margin-left: 12px;\n}\n.ant-page-header-rtl .ant-page-header-heading-tags {\n float: right;\n}\n.ant-page-header-rtl .ant-page-header-heading-extra {\n float: left;\n}\n.ant-page-header-rtl .ant-page-header-heading-extra > * {\n margin-right: 12px;\n margin-left: 0;\n}\n.ant-page-header-rtl .ant-page-header-heading-extra > *:first-child {\n margin-right: 0;\n}\n.ant-page-header-rtl .ant-page-header-footer .ant-tabs-bar .ant-tabs-nav {\n float: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-popconfirm {\n z-index: 1060;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-progress {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-progress-line {\n position: relative;\n width: 100%;\n font-size: 14px;\n}\n.ant-progress-steps {\n display: inline-block;\n}\n.ant-progress-steps-outer {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.ant-progress-steps-item {\n flex-shrink: 0;\n min-width: 2px;\n margin-right: 2px;\n background: #f3f3f3;\n transition: all 0.3s;\n}\n.ant-progress-steps-item-active {\n background: #1890ff;\n}\n.ant-progress-small.ant-progress-line,\n.ant-progress-small.ant-progress-line .ant-progress-text .anticon {\n font-size: 12px;\n}\n.ant-progress-outer {\n display: inline-block;\n width: 100%;\n margin-right: 0;\n padding-right: 0;\n}\n.ant-progress-show-info .ant-progress-outer {\n margin-right: calc(-2em - 8px);\n padding-right: calc(2em + 8px);\n}\n.ant-progress-inner {\n position: relative;\n display: inline-block;\n width: 100%;\n overflow: hidden;\n vertical-align: middle;\n background-color: #f5f5f5;\n border-radius: 100px;\n}\n.ant-progress-circle-trail {\n stroke: #f5f5f5;\n}\n.ant-progress-circle-path {\n animation: ant-progress-appear 0.3s;\n}\n.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path {\n stroke: #1890ff;\n}\n.ant-progress-success-bg,\n.ant-progress-bg {\n position: relative;\n background-color: #1890ff;\n border-radius: 100px;\n transition: all 0.4s cubic-bezier(0.08, 0.82, 0.17, 1) 0s;\n}\n.ant-progress-success-bg {\n position: absolute;\n top: 0;\n left: 0;\n background-color: #52c41a;\n}\n.ant-progress-text {\n display: inline-block;\n width: 2em;\n margin-left: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 1em;\n line-height: 1;\n white-space: nowrap;\n text-align: left;\n vertical-align: middle;\n word-break: normal;\n}\n.ant-progress-text .anticon {\n font-size: 14px;\n}\n.ant-progress-status-active .ant-progress-bg::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: #fff;\n border-radius: 10px;\n opacity: 0;\n animation: ant-progress-active 2.4s cubic-bezier(0.23, 1, 0.32, 1) infinite;\n content: '';\n}\n.ant-progress-status-exception .ant-progress-bg {\n background-color: #ff4d4f;\n}\n.ant-progress-status-exception .ant-progress-text {\n color: #ff4d4f;\n}\n.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path {\n stroke: #ff4d4f;\n}\n.ant-progress-status-success .ant-progress-bg {\n background-color: #52c41a;\n}\n.ant-progress-status-success .ant-progress-text {\n color: #52c41a;\n}\n.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path {\n stroke: #52c41a;\n}\n.ant-progress-circle .ant-progress-inner {\n position: relative;\n line-height: 1;\n background-color: transparent;\n}\n.ant-progress-circle .ant-progress-text {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 1em;\n line-height: 1;\n white-space: normal;\n text-align: center;\n transform: translate(-50%, -50%);\n}\n.ant-progress-circle .ant-progress-text .anticon {\n font-size: 1.16666667em;\n}\n.ant-progress-circle.ant-progress-status-exception .ant-progress-text {\n color: #ff4d4f;\n}\n.ant-progress-circle.ant-progress-status-success .ant-progress-text {\n color: #52c41a;\n}\n@keyframes ant-progress-active {\n 0% {\n transform: translateX(-100%) scaleX(0);\n opacity: 0.1;\n }\n 20% {\n transform: translateX(-100%) scaleX(0);\n opacity: 0.5;\n }\n 100% {\n transform: translateX(0) scaleX(1);\n opacity: 0;\n }\n}\n.ant-progress-rtl {\n direction: rtl;\n}\n.ant-progress-rtl.ant-progress-show-info .ant-progress-outer {\n margin-right: 0;\n margin-left: calc(-2em - 8px);\n padding-right: 0;\n padding-left: calc(2em + 8px);\n}\n.ant-progress-rtl .ant-progress-success-bg {\n right: 0;\n left: auto;\n}\n.ant-progress-rtl.ant-progress-line .ant-progress-text,\n.ant-progress-rtl.ant-progress-steps .ant-progress-text {\n margin-right: 8px;\n margin-left: 0;\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-rate {\n box-sizing: border-box;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n font-feature-settings: 'tnum';\n display: inline-block;\n margin: 0;\n padding: 0;\n color: #fadb14;\n font-size: 20px;\n line-height: unset;\n list-style: none;\n outline: none;\n}\n.ant-rate-disabled .ant-rate-star {\n cursor: default;\n}\n.ant-rate-disabled .ant-rate-star > div:hover {\n transform: scale(1);\n}\n.ant-rate-star {\n position: relative;\n display: inline-block;\n color: inherit;\n cursor: pointer;\n}\n.ant-rate-star:not(:last-child) {\n margin-right: 8px;\n}\n.ant-rate-star > div {\n transition: all 0.3s, outline 0s;\n}\n.ant-rate-star > div:hover {\n transform: scale(1.1);\n}\n.ant-rate-star > div:focus {\n outline: 0;\n}\n.ant-rate-star > div:focus-visible {\n outline: 1px dashed #fadb14;\n transform: scale(1.1);\n}\n.ant-rate-star-first,\n.ant-rate-star-second {\n color: #f0f0f0;\n transition: all 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-rate-star-first .anticon,\n.ant-rate-star-second .anticon {\n vertical-align: middle;\n}\n.ant-rate-star-first {\n position: absolute;\n top: 0;\n left: 0;\n width: 50%;\n height: 100%;\n overflow: hidden;\n opacity: 0;\n}\n.ant-rate-star-half .ant-rate-star-first,\n.ant-rate-star-half .ant-rate-star-second {\n opacity: 1;\n}\n.ant-rate-star-half .ant-rate-star-first,\n.ant-rate-star-full .ant-rate-star-second {\n color: inherit;\n}\n.ant-rate-text {\n display: inline-block;\n margin: 0 8px;\n font-size: 14px;\n}\n.ant-rate-rtl {\n direction: rtl;\n}\n.ant-rate-rtl .ant-rate-star:not(:last-child) {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-rate-rtl .ant-rate-star-first {\n right: 0;\n left: auto;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-result {\n padding: 48px 32px;\n}\n.ant-result-success .ant-result-icon > .anticon {\n color: #52c41a;\n}\n.ant-result-error .ant-result-icon > .anticon {\n color: #ff4d4f;\n}\n.ant-result-info .ant-result-icon > .anticon {\n color: #1890ff;\n}\n.ant-result-warning .ant-result-icon > .anticon {\n color: #faad14;\n}\n.ant-result-image {\n width: 250px;\n height: 295px;\n margin: auto;\n}\n.ant-result-icon {\n margin-bottom: 24px;\n text-align: center;\n}\n.ant-result-icon > .anticon {\n font-size: 72px;\n}\n.ant-result-title {\n color: rgba(0, 0, 0, 0.85);\n font-size: 24px;\n line-height: 1.8;\n text-align: center;\n}\n.ant-result-subtitle {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.6;\n text-align: center;\n}\n.ant-result-extra {\n margin: 24px 0 0 0;\n text-align: center;\n}\n.ant-result-extra > * {\n margin-right: 8px;\n}\n.ant-result-extra > *:last-child {\n margin-right: 0;\n}\n.ant-result-content {\n margin-top: 24px;\n padding: 24px 40px;\n background-color: #fafafa;\n}\n.ant-result-rtl {\n direction: rtl;\n}\n.ant-result-rtl .ant-result-extra > * {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-result-rtl .ant-result-extra > *:last-child {\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.segmented-disabled-item,\n.segmented-disabled-item:hover,\n.segmented-disabled-item:focus {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.segmented-item-selected {\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.05), 0 1px 4px -1px rgba(0, 0, 0, 0.07), 0 0 1px 0 rgba(0, 0, 0, 0.08);\n}\n.segmented-text-ellipsis {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n.ant-segmented {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n padding: 2px;\n color: rgba(0, 0, 0, 0.65);\n background-color: rgba(0, 0, 0, 0.04);\n border-radius: 2px;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-segmented-group {\n position: relative;\n display: flex;\n align-items: stretch;\n justify-items: flex-start;\n width: 100%;\n}\n.ant-segmented.ant-segmented-block {\n display: flex;\n}\n.ant-segmented.ant-segmented-block .ant-segmented-item {\n flex: 1;\n min-width: 0;\n}\n.ant-segmented:not(.ant-segmented-disabled):hover,\n.ant-segmented:not(.ant-segmented-disabled):focus {\n background-color: rgba(0, 0, 0, 0.06);\n}\n.ant-segmented-item {\n position: relative;\n text-align: center;\n cursor: pointer;\n transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-segmented-item-selected {\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.05), 0 1px 4px -1px rgba(0, 0, 0, 0.07), 0 0 1px 0 rgba(0, 0, 0, 0.08);\n color: #262626;\n}\n.ant-segmented-item:hover,\n.ant-segmented-item:focus {\n color: #262626;\n}\n.ant-segmented-item-label {\n min-height: 28px;\n padding: 0 11px;\n line-height: 28px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n.ant-segmented-item-icon + * {\n margin-left: 6px;\n}\n.ant-segmented-item-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n opacity: 0;\n pointer-events: none;\n}\n.ant-segmented.ant-segmented-lg .ant-segmented-item-label {\n min-height: 36px;\n padding: 0 11px;\n font-size: 16px;\n line-height: 36px;\n}\n.ant-segmented.ant-segmented-sm .ant-segmented-item-label {\n min-height: 20px;\n padding: 0 7px;\n line-height: 20px;\n}\n.ant-segmented-item-disabled,\n.ant-segmented-item-disabled:hover,\n.ant-segmented-item-disabled:focus {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-segmented-thumb {\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.05), 0 1px 4px -1px rgba(0, 0, 0, 0.07), 0 0 1px 0 rgba(0, 0, 0, 0.08);\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 100%;\n padding: 4px 0;\n}\n.ant-segmented-thumb-motion-appear-active {\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n will-change: transform, width;\n}\n.ant-segmented.ant-segmented-rtl {\n direction: rtl;\n}\n.ant-segmented.ant-segmented-rtl .ant-segmented-item-icon {\n margin-right: 0;\n margin-left: 6px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-slider {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n height: 12px;\n margin: 10px 6px 10px;\n padding: 4px 0;\n cursor: pointer;\n touch-action: none;\n}\n.ant-slider-vertical {\n width: 12px;\n height: 100%;\n margin: 6px 10px;\n padding: 0 4px;\n}\n.ant-slider-vertical .ant-slider-rail {\n width: 4px;\n height: 100%;\n}\n.ant-slider-vertical .ant-slider-track {\n width: 4px;\n}\n.ant-slider-vertical .ant-slider-handle {\n margin-top: -6px;\n margin-left: -5px;\n}\n.ant-slider-vertical .ant-slider-mark {\n top: 0;\n left: 12px;\n width: 18px;\n height: 100%;\n}\n.ant-slider-vertical .ant-slider-mark-text {\n left: 4px;\n white-space: nowrap;\n}\n.ant-slider-vertical .ant-slider-step {\n width: 4px;\n height: 100%;\n}\n.ant-slider-vertical .ant-slider-dot {\n top: auto;\n margin-left: -2px;\n}\n.ant-slider-tooltip .ant-tooltip-inner {\n min-width: unset;\n}\n.ant-slider-rtl.ant-slider-vertical .ant-slider-handle {\n margin-right: -5px;\n margin-left: 0;\n}\n.ant-slider-rtl.ant-slider-vertical .ant-slider-mark {\n right: 12px;\n left: auto;\n}\n.ant-slider-rtl.ant-slider-vertical .ant-slider-mark-text {\n right: 4px;\n left: auto;\n}\n.ant-slider-rtl.ant-slider-vertical .ant-slider-dot {\n right: 2px;\n left: auto;\n}\n.ant-slider-with-marks {\n margin-bottom: 28px;\n}\n.ant-slider-rail {\n position: absolute;\n width: 100%;\n height: 4px;\n background-color: #f5f5f5;\n border-radius: 2px;\n transition: background-color 0.3s;\n}\n.ant-slider-track {\n position: absolute;\n height: 4px;\n background-color: #91d5ff;\n border-radius: 2px;\n transition: background-color 0.3s;\n}\n.ant-slider-handle {\n position: absolute;\n width: 14px;\n height: 14px;\n margin-top: -5px;\n background-color: #fff;\n border: solid 2px #91d5ff;\n border-radius: 50%;\n box-shadow: 0;\n cursor: pointer;\n transition: border-color 0.3s, box-shadow 0.6s, transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);\n}\n.ant-slider-handle-dragging {\n z-index: 1;\n}\n.ant-slider-handle:focus {\n border-color: #46a6ff;\n outline: none;\n box-shadow: 0 0 0 5px rgba(24, 144, 255, 0.12);\n}\n.ant-slider-handle.ant-tooltip-open {\n border-color: #1890ff;\n}\n.ant-slider-handle::after {\n position: absolute;\n top: -6px;\n right: -6px;\n bottom: -6px;\n left: -6px;\n content: '';\n}\n.ant-slider:hover .ant-slider-rail {\n background-color: #e1e1e1;\n}\n.ant-slider:hover .ant-slider-track {\n background-color: #69c0ff;\n}\n.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open) {\n border-color: #69c0ff;\n}\n.ant-slider-mark {\n position: absolute;\n top: 14px;\n left: 0;\n width: 100%;\n font-size: 14px;\n}\n.ant-slider-mark-text {\n position: absolute;\n display: inline-block;\n color: rgba(0, 0, 0, 0.45);\n text-align: center;\n word-break: keep-all;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-slider-mark-text-active {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-slider-step {\n position: absolute;\n width: 100%;\n height: 4px;\n background: transparent;\n pointer-events: none;\n}\n.ant-slider-dot {\n position: absolute;\n top: -2px;\n width: 8px;\n height: 8px;\n background-color: #fff;\n border: 2px solid #f0f0f0;\n border-radius: 50%;\n cursor: pointer;\n}\n.ant-slider-dot-active {\n border-color: #8cc8ff;\n}\n.ant-slider-disabled {\n cursor: not-allowed;\n}\n.ant-slider-disabled .ant-slider-rail {\n background-color: #f5f5f5 !important;\n}\n.ant-slider-disabled .ant-slider-track {\n background-color: rgba(0, 0, 0, 0.25) !important;\n}\n.ant-slider-disabled .ant-slider-handle,\n.ant-slider-disabled .ant-slider-dot {\n background-color: #fff;\n border-color: rgba(0, 0, 0, 0.25) !important;\n box-shadow: none;\n cursor: not-allowed;\n}\n.ant-slider-disabled .ant-slider-mark-text,\n.ant-slider-disabled .ant-slider-dot {\n cursor: not-allowed !important;\n}\n.ant-slider-rtl {\n direction: rtl;\n}\n.ant-slider-rtl .ant-slider-mark {\n right: 0;\n left: auto;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-statistic {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-statistic-title {\n margin-bottom: 4px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-statistic-skeleton {\n padding-top: 16px;\n}\n.ant-statistic-content {\n color: rgba(0, 0, 0, 0.85);\n font-size: 24px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n}\n.ant-statistic-content-value {\n display: inline-block;\n direction: ltr;\n}\n.ant-statistic-content-prefix,\n.ant-statistic-content-suffix {\n display: inline-block;\n}\n.ant-statistic-content-prefix {\n margin-right: 4px;\n}\n.ant-statistic-content-suffix {\n margin-left: 4px;\n}\n.ant-statistic-rtl {\n direction: rtl;\n}\n.ant-statistic-rtl .ant-statistic-content-prefix {\n margin-right: 0;\n margin-left: 4px;\n}\n.ant-statistic-rtl .ant-statistic-content-suffix {\n margin-right: 4px;\n margin-left: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-steps {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: flex;\n width: 100%;\n font-size: 0;\n text-align: initial;\n}\n.ant-steps-item {\n position: relative;\n display: inline-block;\n flex: 1;\n overflow: hidden;\n vertical-align: top;\n}\n.ant-steps-item-container {\n outline: none;\n}\n.ant-steps-item:last-child {\n flex: none;\n}\n.ant-steps-item:last-child > .ant-steps-item-container > .ant-steps-item-tail,\n.ant-steps-item:last-child > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n display: none;\n}\n.ant-steps-item-icon,\n.ant-steps-item-content {\n display: inline-block;\n vertical-align: top;\n}\n.ant-steps-item-icon {\n width: 32px;\n height: 32px;\n margin: 0 8px 0 0;\n font-size: 16px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n line-height: 32px;\n text-align: center;\n border: 1px solid rgba(0, 0, 0, 0.25);\n border-radius: 32px;\n transition: background-color 0.3s, border-color 0.3s;\n}\n.ant-steps-item-icon .ant-steps-icon {\n position: relative;\n top: -0.5px;\n color: #1890ff;\n line-height: 1;\n}\n.ant-steps-item-tail {\n position: absolute;\n top: 12px;\n left: 0;\n width: 100%;\n padding: 0 10px;\n}\n.ant-steps-item-tail::after {\n display: inline-block;\n width: 100%;\n height: 1px;\n background: #f0f0f0;\n border-radius: 1px;\n transition: background 0.3s;\n content: '';\n}\n.ant-steps-item-title {\n position: relative;\n display: inline-block;\n padding-right: 16px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n line-height: 32px;\n}\n.ant-steps-item-title::after {\n position: absolute;\n top: 16px;\n left: 100%;\n display: block;\n width: 9999px;\n height: 1px;\n background: #f0f0f0;\n content: '';\n}\n.ant-steps-item-subtitle {\n display: inline;\n margin-left: 8px;\n color: rgba(0, 0, 0, 0.45);\n font-weight: normal;\n font-size: 14px;\n}\n.ant-steps-item-description {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-steps-item-wait .ant-steps-item-icon {\n background-color: #fff;\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-steps-item-wait .ant-steps-item-icon > .ant-steps-icon {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-steps-item-wait .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {\n background: rgba(0, 0, 0, 0.25);\n}\n.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-tail::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item-process .ant-steps-item-icon {\n background-color: #fff;\n border-color: #1890ff;\n}\n.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon {\n color: #1890ff;\n}\n.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {\n background: #1890ff;\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-tail::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-icon {\n background: #1890ff;\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-icon .ant-steps-icon {\n color: #fff;\n}\n.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-title {\n font-weight: 500;\n}\n.ant-steps-item-finish .ant-steps-item-icon {\n background-color: #fff;\n border-color: #1890ff;\n}\n.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon {\n color: #1890ff;\n}\n.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {\n background: #1890ff;\n}\n.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n background-color: #1890ff;\n}\n.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-tail::after {\n background-color: #1890ff;\n}\n.ant-steps-item-error .ant-steps-item-icon {\n background-color: #fff;\n border-color: #ff4d4f;\n}\n.ant-steps-item-error .ant-steps-item-icon > .ant-steps-icon {\n color: #ff4d4f;\n}\n.ant-steps-item-error .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {\n background: #ff4d4f;\n}\n.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {\n color: #ff4d4f;\n}\n.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {\n color: #ff4d4f;\n}\n.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-tail::after {\n background-color: #f0f0f0;\n}\n.ant-steps-item.ant-steps-next-error .ant-steps-item-title::after {\n background: #ff4d4f;\n}\n.ant-steps-item-disabled {\n cursor: not-allowed;\n}\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] {\n cursor: pointer;\n}\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-title,\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-subtitle,\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-description,\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-icon .ant-steps-icon {\n transition: color 0.3s;\n}\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button']:hover .ant-steps-item-title,\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button']:hover .ant-steps-item-subtitle,\n.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button']:hover .ant-steps-item-description {\n color: #1890ff;\n}\n.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process) > .ant-steps-item-container[role='button']:hover .ant-steps-item-icon {\n border-color: #1890ff;\n}\n.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process) > .ant-steps-item-container[role='button']:hover .ant-steps-item-icon .ant-steps-icon {\n color: #1890ff;\n}\n.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {\n padding-left: 16px;\n white-space: nowrap;\n}\n.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child {\n padding-left: 0;\n}\n.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title {\n padding-right: 0;\n}\n.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-tail {\n display: none;\n}\n.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description {\n max-width: 140px;\n white-space: normal;\n}\n.ant-steps-item-custom > .ant-steps-item-container > .ant-steps-item-icon {\n height: auto;\n background: none;\n border: 0;\n}\n.ant-steps-item-custom > .ant-steps-item-container > .ant-steps-item-icon > .ant-steps-icon {\n top: 0px;\n left: 0.5px;\n width: 32px;\n height: 32px;\n font-size: 24px;\n line-height: 32px;\n}\n.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon {\n color: #1890ff;\n}\n.ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon {\n width: auto;\n background: none;\n}\n.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {\n padding-left: 12px;\n}\n.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child {\n padding-left: 0;\n}\n.ant-steps-small .ant-steps-item-icon {\n width: 24px;\n height: 24px;\n margin: 0 8px 0 0;\n font-size: 12px;\n line-height: 24px;\n text-align: center;\n border-radius: 24px;\n}\n.ant-steps-small .ant-steps-item-title {\n padding-right: 12px;\n font-size: 14px;\n line-height: 24px;\n}\n.ant-steps-small .ant-steps-item-title::after {\n top: 12px;\n}\n.ant-steps-small .ant-steps-item-description {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-steps-small .ant-steps-item-tail {\n top: 8px;\n}\n.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon {\n width: inherit;\n height: inherit;\n line-height: inherit;\n background: none;\n border: 0;\n border-radius: 0;\n}\n.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon > .ant-steps-icon {\n font-size: 24px;\n line-height: 24px;\n transform: none;\n}\n.ant-steps-vertical {\n display: flex;\n flex-direction: column;\n}\n.ant-steps-vertical > .ant-steps-item {\n display: block;\n flex: 1 0 auto;\n padding-left: 0;\n overflow: visible;\n}\n.ant-steps-vertical > .ant-steps-item .ant-steps-item-icon {\n float: left;\n margin-right: 16px;\n}\n.ant-steps-vertical > .ant-steps-item .ant-steps-item-content {\n display: block;\n min-height: 48px;\n overflow: hidden;\n}\n.ant-steps-vertical > .ant-steps-item .ant-steps-item-title {\n line-height: 32px;\n}\n.ant-steps-vertical > .ant-steps-item .ant-steps-item-description {\n padding-bottom: 12px;\n}\n.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n position: absolute;\n top: 0;\n left: 15px;\n width: 1px;\n height: 100%;\n padding: 38px 0 6px;\n}\n.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail::after {\n width: 1px;\n height: 100%;\n}\n.ant-steps-vertical > .ant-steps-item:not(:last-child) > .ant-steps-item-container > .ant-steps-item-tail {\n display: block;\n}\n.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {\n display: none;\n}\n.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail {\n position: absolute;\n top: 0;\n left: 11px;\n padding: 30px 0 6px;\n}\n.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title {\n line-height: 24px;\n}\n.ant-steps-label-vertical .ant-steps-item {\n overflow: visible;\n}\n.ant-steps-label-vertical .ant-steps-item-tail {\n margin-left: 58px;\n padding: 3.5px 24px;\n}\n.ant-steps-label-vertical .ant-steps-item-content {\n display: block;\n width: 116px;\n margin-top: 8px;\n text-align: center;\n}\n.ant-steps-label-vertical .ant-steps-item-icon {\n display: inline-block;\n margin-left: 42px;\n}\n.ant-steps-label-vertical .ant-steps-item-title {\n padding-right: 0;\n padding-left: 0;\n}\n.ant-steps-label-vertical .ant-steps-item-title::after {\n display: none;\n}\n.ant-steps-label-vertical .ant-steps-item-subtitle {\n display: block;\n margin-bottom: 4px;\n margin-left: 0;\n line-height: 1.5715;\n}\n.ant-steps-label-vertical.ant-steps-small:not(.ant-steps-dot) .ant-steps-item-icon {\n margin-left: 46px;\n}\n.ant-steps-dot .ant-steps-item-title,\n.ant-steps-dot.ant-steps-small .ant-steps-item-title {\n line-height: 1.5715;\n}\n.ant-steps-dot .ant-steps-item-tail,\n.ant-steps-dot.ant-steps-small .ant-steps-item-tail {\n top: 2px;\n width: 100%;\n margin: 0 0 0 70px;\n padding: 0;\n}\n.ant-steps-dot .ant-steps-item-tail::after,\n.ant-steps-dot.ant-steps-small .ant-steps-item-tail::after {\n width: calc(100% - 20px);\n height: 3px;\n margin-left: 12px;\n}\n.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,\n.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot {\n left: 2px;\n}\n.ant-steps-dot .ant-steps-item-icon,\n.ant-steps-dot.ant-steps-small .ant-steps-item-icon {\n width: 8px;\n height: 8px;\n margin-left: 67px;\n padding-right: 0;\n line-height: 8px;\n background: transparent;\n border: 0;\n}\n.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,\n.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot {\n position: relative;\n float: left;\n width: 100%;\n height: 100%;\n border-radius: 100px;\n transition: all 0.3s;\n /* expand hover area */\n}\n.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot::after,\n.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot::after {\n position: absolute;\n top: -12px;\n left: -26px;\n width: 60px;\n height: 32px;\n background: rgba(0, 0, 0, 0.001);\n content: '';\n}\n.ant-steps-dot .ant-steps-item-content,\n.ant-steps-dot.ant-steps-small .ant-steps-item-content {\n width: 140px;\n}\n.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,\n.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon {\n position: relative;\n top: -1px;\n width: 10px;\n height: 10px;\n line-height: 10px;\n background: none;\n}\n.ant-steps-dot .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot,\n.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot {\n left: 0;\n}\n.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon {\n margin-top: 13px;\n margin-left: 0;\n background: none;\n}\n.ant-steps-vertical.ant-steps-dot .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n top: 6.5px;\n left: -9px;\n margin: 0;\n padding: 22px 0 4px;\n}\n.ant-steps-vertical.ant-steps-dot.ant-steps-small .ant-steps-item-icon {\n margin-top: 10px;\n}\n.ant-steps-vertical.ant-steps-dot.ant-steps-small .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n top: 3.5px;\n}\n.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot {\n left: 0;\n}\n.ant-steps-vertical.ant-steps-dot .ant-steps-item-content {\n width: inherit;\n}\n.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-item-container .ant-steps-item-icon .ant-steps-icon-dot {\n top: -1px;\n left: -1px;\n}\n.ant-steps-navigation {\n padding-top: 12px;\n}\n.ant-steps-navigation.ant-steps-small .ant-steps-item-container {\n margin-left: -12px;\n}\n.ant-steps-navigation .ant-steps-item {\n overflow: visible;\n text-align: center;\n}\n.ant-steps-navigation .ant-steps-item-container {\n display: inline-block;\n height: 100%;\n margin-left: -16px;\n padding-bottom: 12px;\n text-align: left;\n transition: opacity 0.3s;\n}\n.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content {\n max-width: auto;\n}\n.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title {\n max-width: 100%;\n padding-right: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title::after {\n display: none;\n}\n.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role='button'] {\n cursor: pointer;\n}\n.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role='button']:hover {\n opacity: 0.85;\n}\n.ant-steps-navigation .ant-steps-item:last-child {\n flex: 1;\n}\n.ant-steps-navigation .ant-steps-item:last-child::after {\n display: none;\n}\n.ant-steps-navigation .ant-steps-item::after {\n position: absolute;\n top: 50%;\n left: 100%;\n display: inline-block;\n width: 12px;\n height: 12px;\n margin-top: -14px;\n margin-left: -2px;\n border: 1px solid rgba(0, 0, 0, 0.25);\n border-bottom: none;\n border-left: none;\n transform: rotate(45deg);\n content: '';\n}\n.ant-steps-navigation .ant-steps-item::before {\n position: absolute;\n bottom: 0;\n left: 50%;\n display: inline-block;\n width: 0;\n height: 2px;\n background-color: #1890ff;\n transition: width 0.3s, left 0.3s;\n transition-timing-function: ease-out;\n content: '';\n}\n.ant-steps-navigation .ant-steps-item.ant-steps-item-active::before {\n left: 0;\n width: 100%;\n}\n.ant-steps-navigation.ant-steps-vertical > .ant-steps-item {\n margin-right: 0 !important;\n}\n.ant-steps-navigation.ant-steps-vertical > .ant-steps-item::before {\n display: none;\n}\n.ant-steps-navigation.ant-steps-vertical > .ant-steps-item.ant-steps-item-active::before {\n top: 0;\n right: 0;\n left: unset;\n display: block;\n width: 3px;\n height: calc(100% - 24px);\n}\n.ant-steps-navigation.ant-steps-vertical > .ant-steps-item::after {\n position: relative;\n top: -2px;\n left: 50%;\n display: block;\n width: 8px;\n height: 8px;\n margin-bottom: 8px;\n text-align: center;\n transform: rotate(135deg);\n}\n.ant-steps-navigation.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n visibility: hidden;\n}\n.ant-steps-navigation.ant-steps-horizontal > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n visibility: hidden;\n}\n.ant-steps-rtl {\n direction: rtl;\n}\n.ant-steps.ant-steps-rtl .ant-steps-item-icon {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-steps-rtl .ant-steps-item-tail {\n right: 0;\n left: auto;\n}\n.ant-steps-rtl .ant-steps-item-title {\n padding-right: 0;\n padding-left: 16px;\n}\n.ant-steps-rtl .ant-steps-item-title .ant-steps-item-subtitle {\n float: left;\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-steps-rtl .ant-steps-item-title::after {\n right: 100%;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {\n padding-right: 16px;\n padding-left: 0;\n}\n.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child {\n padding-right: 0;\n}\n.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title {\n padding-left: 0;\n}\n.ant-steps-rtl .ant-steps-item-custom .ant-steps-item-icon > .ant-steps-icon {\n right: 0.5px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-navigation.ant-steps-small .ant-steps-item-container {\n margin-right: -12px;\n margin-left: 0;\n}\n.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container {\n margin-right: -16px;\n margin-left: 0;\n text-align: right;\n}\n.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title {\n padding-left: 0;\n}\n.ant-steps-rtl.ant-steps-navigation .ant-steps-item::after {\n right: 100%;\n left: auto;\n margin-right: -2px;\n margin-left: 0;\n transform: rotate(225deg);\n}\n.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {\n padding-right: 12px;\n padding-left: 0;\n}\n.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child {\n padding-right: 0;\n}\n.ant-steps-rtl.ant-steps-small .ant-steps-item-title {\n padding-right: 0;\n padding-left: 12px;\n}\n.ant-steps-rtl.ant-steps-vertical > .ant-steps-item .ant-steps-item-icon {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-steps-rtl.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n right: 16px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail {\n right: 12px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-label-vertical .ant-steps-item-title {\n padding-left: 0;\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail {\n margin: 0 70px 0 0;\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail::after,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail::after {\n margin-right: 12px;\n margin-left: 0;\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot {\n right: 2px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon {\n margin-right: 67px;\n margin-left: 0;\n}\n.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,\n.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot {\n /* expand hover area */\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot {\n float: right;\n}\n.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot::after,\n.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot::after {\n right: -26px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon {\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n right: -9px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot {\n right: 0;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-icon-dot {\n right: -2px;\n left: auto;\n}\n.ant-steps-rtl.ant-steps-with-progress.ant-steps-vertical > .ant-steps-item {\n padding-right: 4px;\n}\n.ant-steps-rtl.ant-steps-with-progress.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n right: 19px;\n}\n.ant-steps-rtl.ant-steps-with-progress.ant-steps-small.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n right: 15px;\n}\n.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child {\n padding-right: 4px;\n padding-left: 0;\n}\n.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child.ant-steps-item-active {\n padding-right: 4px;\n}\n.ant-steps-with-progress .ant-steps-item {\n padding-top: 4px;\n}\n.ant-steps-with-progress .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n top: 4px;\n left: 19px;\n}\n.ant-steps-with-progress.ant-steps-horizontal .ant-steps-item:first-child,\n.ant-steps-with-progress.ant-steps-small.ant-steps-horizontal .ant-steps-item:first-child {\n padding-bottom: 4px;\n padding-left: 4px;\n}\n.ant-steps-with-progress.ant-steps-small > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {\n left: 15px;\n}\n.ant-steps-with-progress.ant-steps-vertical .ant-steps-item {\n padding-left: 4px;\n}\n.ant-steps-with-progress.ant-steps-label-vertical .ant-steps-item .ant-steps-item-tail {\n top: 14px !important;\n}\n.ant-steps-with-progress .ant-steps-item-icon {\n position: relative;\n}\n.ant-steps-with-progress .ant-steps-item-icon .ant-progress {\n position: absolute;\n top: -5px;\n right: -5px;\n bottom: -5px;\n left: -5px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-switch {\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: 44px;\n height: 22px;\n line-height: 22px;\n vertical-align: middle;\n background-color: rgba(0, 0, 0, 0.25);\n border: 0;\n border-radius: 100px;\n cursor: pointer;\n transition: all 0.2s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-switch:focus {\n outline: 0;\n box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n}\n.ant-switch-checked:focus {\n box-shadow: 0 0 0 2px #e6f7ff;\n}\n.ant-switch:focus:hover {\n box-shadow: none;\n}\n.ant-switch-checked {\n background-color: #1890ff;\n}\n.ant-switch-loading,\n.ant-switch-disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n.ant-switch-loading *,\n.ant-switch-disabled * {\n box-shadow: none;\n cursor: not-allowed;\n}\n.ant-switch-inner {\n display: block;\n margin: 0 7px 0 25px;\n color: #fff;\n font-size: 12px;\n transition: margin 0.2s;\n}\n.ant-switch-checked .ant-switch-inner {\n margin: 0 25px 0 7px;\n}\n.ant-switch-handle {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 18px;\n height: 18px;\n transition: all 0.2s ease-in-out;\n}\n.ant-switch-handle::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #fff;\n border-radius: 9px;\n box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);\n transition: all 0.2s ease-in-out;\n content: '';\n}\n.ant-switch-checked .ant-switch-handle {\n left: calc(100% - 18px - 2px);\n}\n.ant-switch:not(.ant-switch-disabled):active .ant-switch-handle::before {\n right: -30%;\n left: 0;\n}\n.ant-switch:not(.ant-switch-disabled):active.ant-switch-checked .ant-switch-handle::before {\n right: 0;\n left: -30%;\n}\n.ant-switch-loading-icon.anticon {\n position: relative;\n top: 2px;\n color: rgba(0, 0, 0, 0.65);\n vertical-align: top;\n}\n.ant-switch-checked .ant-switch-loading-icon {\n color: #1890ff;\n}\n.ant-switch-small {\n min-width: 28px;\n height: 16px;\n line-height: 16px;\n}\n.ant-switch-small .ant-switch-inner {\n margin: 0 5px 0 18px;\n font-size: 12px;\n}\n.ant-switch-small .ant-switch-handle {\n width: 12px;\n height: 12px;\n}\n.ant-switch-small .ant-switch-loading-icon {\n top: 1.5px;\n font-size: 9px;\n}\n.ant-switch-small.ant-switch-checked .ant-switch-inner {\n margin: 0 18px 0 5px;\n}\n.ant-switch-small.ant-switch-checked .ant-switch-handle {\n left: calc(100% - 12px - 2px);\n}\n.ant-switch-rtl {\n direction: rtl;\n}\n.ant-switch-rtl .ant-switch-inner {\n margin: 0 25px 0 7px;\n}\n.ant-switch-rtl .ant-switch-handle {\n right: 2px;\n left: auto;\n}\n.ant-switch-rtl:not(.ant-switch-rtl-disabled):active .ant-switch-handle::before {\n right: 0;\n left: -30%;\n}\n.ant-switch-rtl:not(.ant-switch-rtl-disabled):active.ant-switch-checked .ant-switch-handle::before {\n right: -30%;\n left: 0;\n}\n.ant-switch-rtl.ant-switch-checked .ant-switch-inner {\n margin: 0 7px 0 25px;\n}\n.ant-switch-rtl.ant-switch-checked .ant-switch-handle {\n right: calc(100% - 18px - 2px);\n}\n.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-handle {\n right: calc(100% - 12px - 2px);\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-table.ant-table-middle {\n font-size: 14px;\n}\n.ant-table.ant-table-middle .ant-table-title,\n.ant-table.ant-table-middle .ant-table-footer,\n.ant-table.ant-table-middle .ant-table-thead > tr > th,\n.ant-table.ant-table-middle .ant-table-tbody > tr > td,\n.ant-table.ant-table-middle tfoot > tr > th,\n.ant-table.ant-table-middle tfoot > tr > td {\n padding: 12px 8px;\n}\n.ant-table.ant-table-middle .ant-table-filter-trigger {\n margin-right: -4px;\n}\n.ant-table.ant-table-middle .ant-table-expanded-row-fixed {\n margin: -12px -8px;\n}\n.ant-table.ant-table-middle .ant-table-tbody .ant-table-wrapper:only-child .ant-table {\n margin: -12px -8px -12px 40px;\n}\n.ant-table.ant-table-middle .ant-table-selection-column {\n padding-inline-start: 2px;\n}\n.ant-table.ant-table-small {\n font-size: 14px;\n}\n.ant-table.ant-table-small .ant-table-title,\n.ant-table.ant-table-small .ant-table-footer,\n.ant-table.ant-table-small .ant-table-thead > tr > th,\n.ant-table.ant-table-small .ant-table-tbody > tr > td,\n.ant-table.ant-table-small tfoot > tr > th,\n.ant-table.ant-table-small tfoot > tr > td {\n padding: 8px 8px;\n}\n.ant-table.ant-table-small .ant-table-filter-trigger {\n margin-right: -4px;\n}\n.ant-table.ant-table-small .ant-table-expanded-row-fixed {\n margin: -8px -8px;\n}\n.ant-table.ant-table-small .ant-table-tbody .ant-table-wrapper:only-child .ant-table {\n margin: -8px -8px -8px 40px;\n}\n.ant-table.ant-table-small .ant-table-selection-column {\n padding-inline-start: 2px;\n}\n.ant-table.ant-table-bordered > .ant-table-title {\n border: 1px solid #f0f0f0;\n border-bottom: 0;\n}\n.ant-table.ant-table-bordered > .ant-table-container {\n border-left: 1px solid #f0f0f0;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > thead > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tbody > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tfoot > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tfoot > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tfoot > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tfoot > tr > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tfoot > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tfoot > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tfoot > tr > td,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tfoot > tr > td {\n border-right: 1px solid #f0f0f0;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr:not(:last-child) > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr:not(:last-child) > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr:not(:last-child) > th,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > thead > tr:not(:last-child) > th {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > th::before,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr > th::before,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr > th::before,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > thead > tr > th::before {\n background-color: transparent !important;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > thead > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tbody > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tfoot > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tfoot > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tfoot > tr > .ant-table-cell-fix-right-first::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tfoot > tr > .ant-table-cell-fix-right-first::after {\n border-right: 1px solid #f0f0f0;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > td > .ant-table-expanded-row-fixed,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tbody > tr > td > .ant-table-expanded-row-fixed {\n margin: -16px -17px;\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > td > .ant-table-expanded-row-fixed::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed::after,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tbody > tr > td > .ant-table-expanded-row-fixed::after {\n position: absolute;\n top: 0;\n right: 1px;\n bottom: 0;\n border-right: 1px solid #f0f0f0;\n content: '';\n}\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #f0f0f0;\n}\n.ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-expanded-row > td,\n.ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-placeholder > td {\n border-right: 0;\n}\n.ant-table.ant-table-bordered.ant-table-middle > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed,\n.ant-table.ant-table-bordered.ant-table-middle > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed {\n margin: -12px -9px;\n}\n.ant-table.ant-table-bordered.ant-table-small > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed,\n.ant-table.ant-table-bordered.ant-table-small > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed {\n margin: -8px -9px;\n}\n.ant-table.ant-table-bordered > .ant-table-footer {\n border: 1px solid #f0f0f0;\n border-top: 0;\n}\n.ant-table-cell .ant-table-container:first-child {\n border-top: 0;\n}\n.ant-table-cell-scrollbar:not([rowspan]) {\n box-shadow: 0 1px 0 1px #fafafa;\n}\n.ant-table-wrapper {\n clear: both;\n max-width: 100%;\n}\n.ant-table-wrapper::before {\n display: table;\n content: '';\n}\n.ant-table-wrapper::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-table {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n font-size: 14px;\n background: #fff;\n border-radius: 2px;\n}\n.ant-table table {\n width: 100%;\n text-align: left;\n border-radius: 2px 2px 0 0;\n border-collapse: separate;\n border-spacing: 0;\n}\n.ant-table-thead > tr > th,\n.ant-table-tbody > tr > td,\n.ant-table tfoot > tr > th,\n.ant-table tfoot > tr > td {\n position: relative;\n padding: 16px 16px;\n overflow-wrap: break-word;\n}\n.ant-table-cell-ellipsis {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n.ant-table-cell-ellipsis.ant-table-cell-fix-left-last,\n.ant-table-cell-ellipsis.ant-table-cell-fix-right-first {\n overflow: visible;\n}\n.ant-table-cell-ellipsis.ant-table-cell-fix-left-last .ant-table-cell-content,\n.ant-table-cell-ellipsis.ant-table-cell-fix-right-first .ant-table-cell-content {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ant-table-cell-ellipsis .ant-table-column-title {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n.ant-table-title {\n padding: 16px 16px;\n}\n.ant-table-footer {\n padding: 16px 16px;\n color: rgba(0, 0, 0, 0.85);\n background: #fafafa;\n}\n.ant-table-thead > tr > th {\n position: relative;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n text-align: left;\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n transition: background 0.3s ease;\n}\n.ant-table-thead > tr > th[colspan]:not([colspan='1']) {\n text-align: center;\n}\n.ant-table-thead > tr > th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before {\n position: absolute;\n top: 50%;\n right: 0;\n width: 1px;\n height: 1.6em;\n background-color: rgba(0, 0, 0, 0.06);\n transform: translateY(-50%);\n transition: background-color 0.3s;\n content: '';\n}\n.ant-table-thead > tr:not(:last-child) > th[colspan] {\n border-bottom: 0;\n}\n.ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n transition: background 0.3s;\n}\n.ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table,\n.ant-table-tbody > tr > td > .ant-table-expanded-row-fixed > .ant-table-wrapper:only-child .ant-table {\n margin: -16px -16px -16px 32px;\n}\n.ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td,\n.ant-table-tbody > tr > td > .ant-table-expanded-row-fixed > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td {\n border-bottom: 0;\n}\n.ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:first-child,\n.ant-table-tbody > tr > td > .ant-table-expanded-row-fixed > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:first-child,\n.ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:last-child,\n.ant-table-tbody > tr > td > .ant-table-expanded-row-fixed > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:last-child {\n border-radius: 0;\n}\n.ant-table-tbody > tr.ant-table-row:hover > td,\n.ant-table-tbody > tr > td.ant-table-cell-row-hover {\n background: #fafafa;\n}\n.ant-table-tbody > tr.ant-table-row-selected > td {\n background: #e6f7ff;\n border-color: rgba(0, 0, 0, 0.03);\n}\n.ant-table-tbody > tr.ant-table-row-selected:hover > td {\n background: #dcf4ff;\n}\n.ant-table-summary {\n position: relative;\n z-index: 2;\n background: #fff;\n}\ndiv.ant-table-summary {\n box-shadow: 0 -1px 0 #f0f0f0;\n}\n.ant-table-summary > tr > th,\n.ant-table-summary > tr > td {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-table-pagination.ant-pagination {\n margin: 16px 0;\n}\n.ant-table-pagination {\n display: flex;\n flex-wrap: wrap;\n row-gap: 8px;\n}\n.ant-table-pagination > * {\n flex: none;\n}\n.ant-table-pagination-left {\n justify-content: flex-start;\n}\n.ant-table-pagination-center {\n justify-content: center;\n}\n.ant-table-pagination-right {\n justify-content: flex-end;\n}\n.ant-table-thead th.ant-table-column-has-sorters {\n outline: none;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-table-thead th.ant-table-column-has-sorters:hover {\n background: rgba(0, 0, 0, 0.04);\n}\n.ant-table-thead th.ant-table-column-has-sorters:hover::before {\n background-color: transparent !important;\n}\n.ant-table-thead th.ant-table-column-has-sorters:focus-visible {\n color: #1890ff;\n}\n.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-left:hover,\n.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-right:hover {\n background: #f5f5f5;\n}\n.ant-table-thead th.ant-table-column-sort {\n background: #f5f5f5;\n}\n.ant-table-thead th.ant-table-column-sort::before {\n background-color: transparent !important;\n}\ntd.ant-table-column-sort {\n background: #fafafa;\n}\n.ant-table-column-title {\n position: relative;\n z-index: 1;\n flex: 1;\n}\n.ant-table-column-sorters {\n display: flex;\n flex: auto;\n align-items: center;\n justify-content: space-between;\n}\n.ant-table-column-sorters::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n content: '';\n}\n.ant-table-column-sorter {\n margin-left: 4px;\n color: #bfbfbf;\n font-size: 0;\n transition: color 0.3s;\n}\n.ant-table-column-sorter-inner {\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n}\n.ant-table-column-sorter-up,\n.ant-table-column-sorter-down {\n font-size: 11px;\n}\n.ant-table-column-sorter-up.active,\n.ant-table-column-sorter-down.active {\n color: #1890ff;\n}\n.ant-table-column-sorter-up + .ant-table-column-sorter-down {\n margin-top: -0.3em;\n}\n.ant-table-column-sorters:hover .ant-table-column-sorter {\n color: #a6a6a6;\n}\n.ant-table-filter-column {\n display: flex;\n justify-content: space-between;\n}\n.ant-table-filter-trigger {\n position: relative;\n display: flex;\n align-items: center;\n margin: -4px -8px -4px 4px;\n padding: 0 4px;\n color: #bfbfbf;\n font-size: 12px;\n border-radius: 2px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-table-filter-trigger:hover {\n color: rgba(0, 0, 0, 0.45);\n background: rgba(0, 0, 0, 0.04);\n}\n.ant-table-filter-trigger.active {\n color: #1890ff;\n}\n.ant-table-filter-dropdown {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n min-width: 120px;\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-table-filter-dropdown .ant-dropdown-menu {\n max-height: 264px;\n overflow-x: hidden;\n border: 0;\n box-shadow: none;\n}\n.ant-table-filter-dropdown .ant-dropdown-menu:empty::after {\n display: block;\n padding: 8px 0;\n color: rgba(0, 0, 0, 0.25);\n font-size: 12px;\n text-align: center;\n content: 'Not Found';\n}\n.ant-table-filter-dropdown-tree {\n padding: 8px 8px 0;\n}\n.ant-table-filter-dropdown-tree .ant-tree-treenode .ant-tree-node-content-wrapper:hover {\n background-color: #f5f5f5;\n}\n.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper,\n.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper:hover {\n background-color: #bae7ff;\n}\n.ant-table-filter-dropdown-search {\n padding: 8px;\n border-bottom: 1px #f0f0f0 solid;\n}\n.ant-table-filter-dropdown-search-input input {\n min-width: 140px;\n}\n.ant-table-filter-dropdown-search-input .anticon {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-table-filter-dropdown-checkall {\n width: 100%;\n margin-bottom: 4px;\n margin-left: 4px;\n}\n.ant-table-filter-dropdown-submenu > ul {\n max-height: calc(100vh - 130px);\n overflow-x: hidden;\n overflow-y: auto;\n}\n.ant-table-filter-dropdown .ant-checkbox-wrapper + span,\n.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper + span {\n padding-left: 8px;\n}\n.ant-table-filter-dropdown-btns {\n display: flex;\n justify-content: space-between;\n padding: 7px 8px;\n overflow: hidden;\n background-color: inherit;\n border-top: 1px solid #f0f0f0;\n}\n.ant-table-selection-col {\n width: 32px;\n}\n.ant-table-bordered .ant-table-selection-col {\n width: 50px;\n}\ntable tr th.ant-table-selection-column,\ntable tr td.ant-table-selection-column {\n padding-right: 8px;\n padding-left: 8px;\n text-align: center;\n}\ntable tr th.ant-table-selection-column .ant-radio-wrapper,\ntable tr td.ant-table-selection-column .ant-radio-wrapper {\n margin-right: 0;\n}\ntable tr th.ant-table-selection-column.ant-table-cell-fix-left {\n z-index: 3;\n}\ntable tr th.ant-table-selection-column::after {\n background-color: transparent !important;\n}\n.ant-table-selection {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n}\n.ant-table-selection-extra {\n position: absolute;\n top: 0;\n z-index: 1;\n cursor: pointer;\n transition: all 0.3s;\n margin-inline-start: 100%;\n padding-inline-start: 4px;\n}\n.ant-table-selection-extra .anticon {\n color: #bfbfbf;\n font-size: 10px;\n}\n.ant-table-selection-extra .anticon:hover {\n color: #a6a6a6;\n}\n.ant-table-expand-icon-col {\n width: 48px;\n}\n.ant-table-row-expand-icon-cell {\n text-align: center;\n}\n.ant-table-row-expand-icon-cell .ant-table-row-expand-icon {\n display: inline-flex;\n float: none;\n vertical-align: sub;\n}\n.ant-table-row-indent {\n float: left;\n height: 1px;\n}\n.ant-table-row-expand-icon {\n color: #1890ff;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n position: relative;\n float: left;\n box-sizing: border-box;\n width: 17px;\n height: 17px;\n padding: 0;\n color: inherit;\n line-height: 17px;\n background: #fff;\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n transform: scale(0.94117647);\n transition: all 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-table-row-expand-icon:focus-visible,\n.ant-table-row-expand-icon:hover {\n color: #40a9ff;\n}\n.ant-table-row-expand-icon:active {\n color: #096dd9;\n}\n.ant-table-row-expand-icon:focus,\n.ant-table-row-expand-icon:hover,\n.ant-table-row-expand-icon:active {\n border-color: currentcolor;\n}\n.ant-table-row-expand-icon::before,\n.ant-table-row-expand-icon::after {\n position: absolute;\n background: currentcolor;\n transition: transform 0.3s ease-out;\n content: '';\n}\n.ant-table-row-expand-icon::before {\n top: 7px;\n right: 3px;\n left: 3px;\n height: 1px;\n}\n.ant-table-row-expand-icon::after {\n top: 3px;\n bottom: 3px;\n left: 7px;\n width: 1px;\n transform: rotate(90deg);\n}\n.ant-table-row-expand-icon-collapsed::before {\n transform: rotate(-180deg);\n}\n.ant-table-row-expand-icon-collapsed::after {\n transform: rotate(0deg);\n}\n.ant-table-row-expand-icon-spaced {\n background: transparent;\n border: 0;\n visibility: hidden;\n}\n.ant-table-row-expand-icon-spaced::before,\n.ant-table-row-expand-icon-spaced::after {\n display: none;\n content: none;\n}\n.ant-table-row-indent + .ant-table-row-expand-icon {\n margin-top: 2.5005px;\n margin-right: 8px;\n}\ntr.ant-table-expanded-row > td,\ntr.ant-table-expanded-row:hover > td {\n background: #fbfbfb;\n}\ntr.ant-table-expanded-row .ant-descriptions-view {\n display: flex;\n}\ntr.ant-table-expanded-row .ant-descriptions-view table {\n flex: auto;\n width: auto;\n}\n.ant-table .ant-table-expanded-row-fixed {\n position: relative;\n margin: -16px -16px;\n padding: 16px 16px;\n}\n.ant-table-tbody > tr.ant-table-placeholder {\n text-align: center;\n}\n.ant-table-empty .ant-table-tbody > tr.ant-table-placeholder {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-table-tbody > tr.ant-table-placeholder:hover > td {\n background: #fff;\n}\n.ant-table-cell-fix-left,\n.ant-table-cell-fix-right {\n position: sticky !important;\n z-index: 2;\n background: #fff;\n}\n.ant-table-cell-fix-left-first::after,\n.ant-table-cell-fix-left-last::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n width: 30px;\n transform: translateX(100%);\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-table-cell-fix-left-all::after {\n display: none;\n}\n.ant-table-cell-fix-right-first::after,\n.ant-table-cell-fix-right-last::after {\n position: absolute;\n top: 0;\n bottom: -1px;\n left: 0;\n width: 30px;\n transform: translateX(-100%);\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-table .ant-table-container::before,\n.ant-table .ant-table-container::after {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: calc(calc(2 + 1) + 1);\n width: 30px;\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-table .ant-table-container::before {\n left: 0;\n}\n.ant-table .ant-table-container::after {\n right: 0;\n}\n.ant-table-ping-left:not(.ant-table-has-fix-left) > .ant-table-container {\n position: relative;\n}\n.ant-table-ping-left:not(.ant-table-has-fix-left) > .ant-table-container::before {\n box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);\n}\n.ant-table-ping-left .ant-table-cell-fix-left-first::after,\n.ant-table-ping-left .ant-table-cell-fix-left-last::after {\n box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);\n}\n.ant-table-ping-left .ant-table-cell-fix-left-last::before {\n background-color: transparent !important;\n}\n.ant-table-ping-right:not(.ant-table-has-fix-right) > .ant-table-container {\n position: relative;\n}\n.ant-table-ping-right:not(.ant-table-has-fix-right) > .ant-table-container::after {\n box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);\n}\n.ant-table-ping-right .ant-table-cell-fix-right-first::after,\n.ant-table-ping-right .ant-table-cell-fix-right-last::after {\n box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);\n}\n.ant-table-sticky-holder {\n position: sticky;\n z-index: calc(2 + 1);\n background: #fff;\n}\n.ant-table-sticky-scroll {\n position: sticky;\n bottom: 0;\n z-index: calc(2 + 1);\n display: flex;\n align-items: center;\n background: #ffffff;\n border-top: 1px solid #f0f0f0;\n opacity: 0.6;\n}\n.ant-table-sticky-scroll:hover {\n transform-origin: center bottom;\n}\n.ant-table-sticky-scroll-bar {\n height: 8px;\n background-color: rgba(0, 0, 0, 0.35);\n border-radius: 4px;\n}\n.ant-table-sticky-scroll-bar:hover {\n background-color: rgba(0, 0, 0, 0.8);\n}\n.ant-table-sticky-scroll-bar-active {\n background-color: rgba(0, 0, 0, 0.8);\n}\n@media all and (-ms-high-contrast: none) {\n .ant-table-ping-left .ant-table-cell-fix-left-last::after {\n box-shadow: none !important;\n }\n .ant-table-ping-right .ant-table-cell-fix-right-first::after {\n box-shadow: none !important;\n }\n}\n.ant-table {\n /* title + table */\n /* table */\n /* table + footer */\n}\n.ant-table-title {\n border-radius: 2px 2px 0 0;\n}\n.ant-table-title + .ant-table-container {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.ant-table-title + .ant-table-container table {\n border-radius: 0;\n}\n.ant-table-title + .ant-table-container table > thead > tr:first-child th:first-child {\n border-radius: 0;\n}\n.ant-table-title + .ant-table-container table > thead > tr:first-child th:last-child {\n border-radius: 0;\n}\n.ant-table-container {\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n}\n.ant-table-container table > thead > tr:first-child th:first-child {\n border-top-left-radius: 2px;\n}\n.ant-table-container table > thead > tr:first-child th:last-child {\n border-top-right-radius: 2px;\n}\n.ant-table-footer {\n border-radius: 0 0 2px 2px;\n}\n.ant-table-wrapper-rtl {\n direction: rtl;\n}\n.ant-table-rtl {\n direction: rtl;\n}\n.ant-table-wrapper-rtl .ant-table table {\n text-align: right;\n}\n.ant-table-wrapper-rtl .ant-table-thead > tr > th[colspan]:not([colspan='1']) {\n text-align: center;\n}\n.ant-table-wrapper-rtl .ant-table-thead > tr > th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before {\n right: auto;\n left: 0;\n}\n.ant-table-wrapper-rtl .ant-table-thead > tr > th {\n text-align: right;\n}\n.ant-table-tbody > tr .ant-table-wrapper:only-child .ant-table.ant-table-rtl {\n margin: -16px 33px -16px -16px;\n}\n.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-left {\n justify-content: flex-end;\n}\n.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-right {\n justify-content: flex-start;\n}\n.ant-table-wrapper-rtl .ant-table-column-sorter {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-table-wrapper-rtl .ant-table-filter-column-title {\n padding: 16px 16px 16px 2.3em;\n}\n.ant-table-rtl .ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column-title {\n padding: 0 0 0 2.3em;\n}\n.ant-table-wrapper-rtl .ant-table-filter-trigger {\n margin: -4px 4px -4px -8px;\n}\n.ant-dropdown-rtl .ant-table-filter-dropdown .ant-checkbox-wrapper + span,\n.ant-dropdown-rtl .ant-table-filter-dropdown-submenu .ant-checkbox-wrapper + span,\n.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown .ant-checkbox-wrapper + span,\n.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper + span {\n padding-right: 8px;\n padding-left: 0;\n}\n.ant-table-wrapper-rtl .ant-table-selection {\n text-align: center;\n}\n.ant-table-wrapper-rtl .ant-table-row-indent {\n float: right;\n}\n.ant-table-wrapper-rtl .ant-table-row-expand-icon {\n float: right;\n}\n.ant-table-wrapper-rtl .ant-table-row-indent + .ant-table-row-expand-icon {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-table-wrapper-rtl .ant-table-row-expand-icon::after {\n transform: rotate(-90deg);\n}\n.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed::before {\n transform: rotate(180deg);\n}\n.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed::after {\n transform: rotate(0deg);\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n@keyframes ant-tree-node-fx-do-not-use {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode {\n position: relative;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 4px;\n left: 0;\n transition: background-color 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode:hover::before {\n background: #f5f5f5;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode > * {\n z-index: 1;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-switcher {\n transition: color 0.3s;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper {\n border-radius: 0;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper:hover {\n background: transparent;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected {\n color: #fff;\n background: transparent;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover::before,\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected::before {\n background: #1890ff;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-switcher {\n color: #fff;\n}\n.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-node-content-wrapper {\n color: #fff;\n background: transparent;\n}\n.ant-tree-checkbox {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,\n.ant-tree-checkbox:hover .ant-tree-checkbox-inner,\n.ant-tree-checkbox-input:focus + .ant-tree-checkbox-inner {\n border-color: #1890ff;\n}\n.ant-tree-checkbox-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 2px;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n}\n.ant-tree-checkbox:hover::after,\n.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox::after {\n visibility: visible;\n}\n.ant-tree-checkbox-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n direction: ltr;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n border-collapse: separate;\n transition: all 0.3s;\n}\n.ant-tree-checkbox-inner::after {\n position: absolute;\n top: 50%;\n left: 21.5%;\n display: table;\n width: 5.71428571px;\n height: 9.14285714px;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\n content: ' ';\n}\n.ant-tree-checkbox-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after {\n position: absolute;\n display: table;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\n content: ' ';\n}\n.ant-tree-checkbox-checked .ant-tree-checkbox-inner {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.ant-tree-checkbox-disabled {\n cursor: not-allowed;\n}\n.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after {\n border-color: rgba(0, 0, 0, 0.25);\n animation-name: none;\n}\n.ant-tree-checkbox-disabled .ant-tree-checkbox-input {\n cursor: not-allowed;\n pointer-events: none;\n}\n.ant-tree-checkbox-disabled .ant-tree-checkbox-inner {\n background-color: #f5f5f5;\n border-color: #d9d9d9 !important;\n}\n.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after {\n border-color: #f5f5f5;\n border-collapse: separate;\n animation-name: none;\n}\n.ant-tree-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-tree-checkbox-disabled:hover::after,\n.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled::after {\n visibility: hidden;\n}\n.ant-tree-checkbox-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n}\n.ant-tree-checkbox-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-tree-checkbox-wrapper + .ant-tree-checkbox-wrapper {\n margin-left: 8px;\n}\n.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-in-form-item input[type='checkbox'] {\n width: 14px;\n height: 14px;\n}\n.ant-tree-checkbox + span {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-tree-checkbox-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-tree-checkbox-group-item {\n margin-right: 8px;\n}\n.ant-tree-checkbox-group-item:last-child {\n margin-right: 0;\n}\n.ant-tree-checkbox-group-item + .ant-tree-checkbox-group-item {\n margin-left: 0;\n}\n.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner {\n background-color: #fff;\n border-color: #d9d9d9;\n}\n.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner::after {\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n background-color: #1890ff;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n}\n.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after {\n background-color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-tree {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n background: #fff;\n border-radius: 2px;\n transition: background-color 0.3s;\n}\n.ant-tree-focused:not(:hover):not(.ant-tree-active-focused) {\n background: #e6f7ff;\n}\n.ant-tree-list-holder-inner {\n align-items: flex-start;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner {\n align-items: stretch;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-node-content-wrapper {\n flex: auto;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging {\n position: relative;\n}\n.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 4px;\n left: 0;\n border: 1px solid #1890ff;\n opacity: 0;\n animation: ant-tree-node-fx-do-not-use 0.3s;\n animation-play-state: running;\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n.ant-tree .ant-tree-treenode {\n display: flex;\n align-items: flex-start;\n padding: 0 0 4px 0;\n outline: none;\n}\n.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper:hover {\n background: transparent;\n}\n.ant-tree .ant-tree-treenode-active .ant-tree-node-content-wrapper {\n background: #f5f5f5;\n}\n.ant-tree .ant-tree-treenode:not(.ant-tree .ant-tree-treenode-disabled).filter-node .ant-tree-title {\n color: inherit;\n font-weight: 500;\n}\n.ant-tree .ant-tree-treenode-draggable .ant-tree-draggable-icon {\n width: 24px;\n line-height: 24px;\n text-align: center;\n visibility: visible;\n opacity: 0.2;\n transition: opacity 0.3s;\n}\n.ant-tree-treenode:hover .ant-tree .ant-tree-treenode-draggable .ant-tree-draggable-icon {\n opacity: 0.45;\n}\n.ant-tree .ant-tree-treenode-draggable.ant-tree-treenode-disabled .ant-tree-draggable-icon {\n visibility: hidden;\n}\n.ant-tree-indent {\n align-self: stretch;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-tree-indent-unit {\n display: inline-block;\n width: 24px;\n}\n.ant-tree-draggable-icon {\n visibility: hidden;\n}\n.ant-tree-switcher {\n position: relative;\n flex: none;\n align-self: stretch;\n width: 24px;\n margin: 0;\n line-height: 24px;\n text-align: center;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-tree-switcher .ant-tree-switcher-icon,\n.ant-tree-switcher .ant-select-tree-switcher-icon {\n display: inline-block;\n font-size: 10px;\n vertical-align: baseline;\n}\n.ant-tree-switcher .ant-tree-switcher-icon svg,\n.ant-tree-switcher .ant-select-tree-switcher-icon svg {\n transition: transform 0.3s;\n}\n.ant-tree-switcher-noop {\n cursor: default;\n}\n.ant-tree-switcher_close .ant-tree-switcher-icon svg {\n transform: rotate(-90deg);\n}\n.ant-tree-switcher-loading-icon {\n color: #1890ff;\n}\n.ant-tree-switcher-leaf-line {\n position: relative;\n z-index: 1;\n display: inline-block;\n width: 100%;\n height: 100%;\n}\n.ant-tree-switcher-leaf-line::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -4px;\n margin-left: -1px;\n border-right: 1px solid #d9d9d9;\n content: ' ';\n}\n.ant-tree-switcher-leaf-line::after {\n position: absolute;\n width: 10px;\n height: 14px;\n border-bottom: 1px solid #d9d9d9;\n content: ' ';\n}\n.ant-tree-checkbox {\n top: initial;\n margin: 4px 8px 0 0;\n}\n.ant-tree .ant-tree-node-content-wrapper {\n position: relative;\n z-index: auto;\n min-height: 24px;\n margin: 0;\n padding: 0 4px;\n color: inherit;\n line-height: 24px;\n background: transparent;\n border-radius: 2px;\n cursor: pointer;\n transition: all 0.3s, border 0s, line-height 0s, box-shadow 0s;\n}\n.ant-tree .ant-tree-node-content-wrapper:hover {\n background-color: #f5f5f5;\n}\n.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected {\n background-color: #bae7ff;\n}\n.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle {\n display: inline-block;\n width: 24px;\n height: 24px;\n line-height: 24px;\n text-align: center;\n vertical-align: top;\n}\n.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle:empty {\n display: none;\n}\n.ant-tree-unselectable .ant-tree-node-content-wrapper:hover {\n background-color: transparent;\n}\n.ant-tree-node-content-wrapper {\n line-height: 24px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-tree-node-content-wrapper .ant-tree-drop-indicator {\n position: absolute;\n z-index: 1;\n height: 2px;\n background-color: #1890ff;\n border-radius: 1px;\n pointer-events: none;\n}\n.ant-tree-node-content-wrapper .ant-tree-drop-indicator::after {\n position: absolute;\n top: -3px;\n left: -6px;\n width: 8px;\n height: 8px;\n background-color: transparent;\n border: 2px solid #1890ff;\n border-radius: 50%;\n content: '';\n}\n.ant-tree .ant-tree-treenode.drop-container > [draggable] {\n box-shadow: 0 0 0 2px #1890ff;\n}\n.ant-tree-show-line .ant-tree-indent-unit {\n position: relative;\n height: 100%;\n}\n.ant-tree-show-line .ant-tree-indent-unit::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -4px;\n border-right: 1px solid #d9d9d9;\n content: '';\n}\n.ant-tree-show-line .ant-tree-indent-unit-end::before {\n display: none;\n}\n.ant-tree-show-line .ant-tree-switcher {\n background: #fff;\n}\n.ant-tree-show-line .ant-tree-switcher-line-icon {\n vertical-align: -0.15em;\n}\n.ant-tree .ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line::before {\n top: auto !important;\n bottom: auto !important;\n height: 14px !important;\n}\n.ant-tree-rtl {\n direction: rtl;\n}\n.ant-tree-rtl .ant-tree-node-content-wrapper[draggable='true'] .ant-tree-drop-indicator::after {\n right: -6px;\n left: unset;\n}\n.ant-tree .ant-tree-treenode-rtl {\n direction: rtl;\n}\n.ant-tree-rtl .ant-tree-switcher_close .ant-tree-switcher-icon svg {\n transform: rotate(90deg);\n}\n.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit::before {\n right: auto;\n left: -13px;\n border-right: none;\n border-left: 1px solid #d9d9d9;\n}\n.ant-tree-rtl .ant-tree-checkbox {\n margin: 4px 0 0 8px;\n}\n.ant-tree-select-dropdown-rtl .ant-select-tree-checkbox {\n margin: 4px 0 0 8px;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-timeline {\n box-sizing: border-box;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n font-feature-settings: 'tnum';\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-timeline-item {\n position: relative;\n margin: 0;\n padding-bottom: 20px;\n font-size: 14px;\n list-style: none;\n}\n.ant-timeline-item-tail {\n position: absolute;\n top: 10px;\n left: 4px;\n height: calc(100% - 10px);\n border-left: 2px solid #f0f0f0;\n}\n.ant-timeline-item-pending .ant-timeline-item-head {\n font-size: 12px;\n background-color: transparent;\n}\n.ant-timeline-item-pending .ant-timeline-item-tail {\n display: none;\n}\n.ant-timeline-item-head {\n position: absolute;\n width: 10px;\n height: 10px;\n background-color: #fff;\n border: 2px solid transparent;\n border-radius: 100px;\n}\n.ant-timeline-item-head-blue {\n color: #1890ff;\n border-color: #1890ff;\n}\n.ant-timeline-item-head-red {\n color: #ff4d4f;\n border-color: #ff4d4f;\n}\n.ant-timeline-item-head-green {\n color: #52c41a;\n border-color: #52c41a;\n}\n.ant-timeline-item-head-gray {\n color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-timeline-item-head-custom {\n position: absolute;\n top: 5.5px;\n left: 5px;\n width: auto;\n height: auto;\n margin-top: 0;\n padding: 3px 1px;\n line-height: 1;\n text-align: center;\n border: 0;\n border-radius: 0;\n transform: translate(-50%, -50%);\n}\n.ant-timeline-item-content {\n position: relative;\n top: -7.001px;\n margin: 0 0 0 26px;\n word-break: break-word;\n}\n.ant-timeline-item-last > .ant-timeline-item-tail {\n display: none;\n}\n.ant-timeline-item-last > .ant-timeline-item-content {\n min-height: 48px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-right .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-label .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head,\n.ant-timeline.ant-timeline-label .ant-timeline-item-head,\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {\n left: 50%;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head,\n.ant-timeline.ant-timeline-label .ant-timeline-item-head {\n margin-left: -4px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {\n margin-left: 1px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,\n.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content,\n.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content {\n left: calc(50% - 4px);\n width: calc(50% - 14px);\n text-align: left;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content,\n.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content {\n width: calc(50% - 12px);\n margin: 0;\n text-align: right;\n}\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom {\n left: calc(100% - 4px - 2px);\n}\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content {\n width: calc(100% - 18px);\n}\n.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail {\n display: block;\n height: calc(100% - 14px);\n border-left: 2px dotted #f0f0f0;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-last .ant-timeline-item-tail {\n display: none;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail {\n top: 15px;\n display: block;\n height: calc(100% - 15px);\n border-left: 2px dotted #f0f0f0;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-content {\n min-height: 48px;\n}\n.ant-timeline.ant-timeline-label .ant-timeline-item-label {\n position: absolute;\n top: -7.001px;\n width: calc(50% - 12px);\n text-align: right;\n}\n.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label {\n left: calc(50% + 14px);\n width: calc(50% - 14px);\n text-align: left;\n}\n.ant-timeline-rtl {\n direction: rtl;\n}\n.ant-timeline-rtl .ant-timeline-item-tail {\n right: 4px;\n left: auto;\n border-right: 2px solid #f0f0f0;\n border-left: none;\n}\n.ant-timeline-rtl .ant-timeline-item-head-custom {\n right: 5px;\n left: auto;\n transform: translate(50%, -50%);\n}\n.ant-timeline-rtl .ant-timeline-item-content {\n margin: 0 18px 0 0;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-tail,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-tail,\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {\n right: 50%;\n left: auto;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head {\n margin-right: -4px;\n margin-left: 0;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {\n margin-right: 1px;\n margin-left: 0;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content {\n right: calc(50% - 4px);\n left: auto;\n text-align: right;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content,\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content {\n text-align: left;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom {\n right: 0;\n left: auto;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content {\n width: 100%;\n margin-right: 18px;\n text-align: right;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail {\n border-right: 2px dotted #f0f0f0;\n border-left: none;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail {\n border-right: 2px dotted #f0f0f0;\n border-left: none;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-label {\n text-align: left;\n}\n.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label {\n right: calc(50% + 14px);\n text-align: right;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-transfer-customize-list .ant-transfer-list {\n flex: 1 1 50%;\n width: auto;\n height: auto;\n min-height: 200px;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-small {\n border: 0;\n border-radius: 0;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-selection-column {\n width: 40px;\n min-width: 40px;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-small > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th {\n background: #fafafa;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-small > .ant-table-content .ant-table-row:last-child td {\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-body {\n margin: 0;\n}\n.ant-transfer-customize-list .ant-table-wrapper .ant-table-pagination.ant-pagination {\n margin: 16px 0 4px;\n}\n.ant-transfer-customize-list .ant-input[disabled] {\n background-color: transparent;\n}\n.ant-transfer-status-error .ant-transfer-list {\n border-color: #ff4d4f;\n}\n.ant-transfer-status-error .ant-transfer-list-search:not([disabled]) {\n border-color: #d9d9d9;\n}\n.ant-transfer-status-error .ant-transfer-list-search:not([disabled]):hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-transfer-status-error .ant-transfer-list-search:not([disabled]):focus {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-transfer-status-warning .ant-transfer-list {\n border-color: #faad14;\n}\n.ant-transfer-status-warning .ant-transfer-list-search:not([disabled]) {\n border-color: #d9d9d9;\n}\n.ant-transfer-status-warning .ant-transfer-list-search:not([disabled]):hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-transfer-status-warning .ant-transfer-list-search:not([disabled]):focus {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-transfer {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: flex;\n align-items: stretch;\n}\n.ant-transfer-disabled .ant-transfer-list {\n background: #f5f5f5;\n}\n.ant-transfer-list {\n display: flex;\n flex-direction: column;\n width: 180px;\n height: 200px;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n}\n.ant-transfer-list-with-pagination {\n width: 250px;\n height: auto;\n}\n.ant-transfer-list-search .anticon-search {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-transfer-list-header {\n display: flex;\n flex: none;\n align-items: center;\n height: 40px;\n padding: 8px 12px 9px;\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n}\n.ant-transfer-list-header > *:not(:last-child) {\n margin-right: 4px;\n}\n.ant-transfer-list-header > * {\n flex: none;\n}\n.ant-transfer-list-header-title {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-align: right;\n text-overflow: ellipsis;\n}\n.ant-transfer-list-header-dropdown {\n font-size: 10px;\n transform: translateY(10%);\n cursor: pointer;\n}\n.ant-transfer-list-header-dropdown[disabled] {\n cursor: not-allowed;\n}\n.ant-transfer-list-body {\n display: flex;\n flex: auto;\n flex-direction: column;\n overflow: hidden;\n font-size: 14px;\n}\n.ant-transfer-list-body-search-wrapper {\n position: relative;\n flex: none;\n padding: 12px;\n}\n.ant-transfer-list-content {\n flex: auto;\n margin: 0;\n padding: 0;\n overflow: auto;\n list-style: none;\n}\n.ant-transfer-list-content-item {\n display: flex;\n align-items: center;\n min-height: 32px;\n padding: 6px 12px;\n line-height: 20px;\n transition: all 0.3s;\n}\n.ant-transfer-list-content-item > *:not(:last-child) {\n margin-right: 8px;\n}\n.ant-transfer-list-content-item > * {\n flex: none;\n}\n.ant-transfer-list-content-item-text {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-transfer-list-content-item-remove {\n position: relative;\n color: #d9d9d9;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-transfer-list-content-item-remove:hover {\n color: #40a9ff;\n}\n.ant-transfer-list-content-item-remove::after {\n position: absolute;\n top: -6px;\n right: -50%;\n bottom: -6px;\n left: -50%;\n content: '';\n}\n.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover {\n background-color: #f5f5f5;\n cursor: pointer;\n}\n.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled).ant-transfer-list-content-item-checked:hover {\n background-color: #dcf4ff;\n}\n.ant-transfer-list-content-show-remove .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover {\n background: transparent;\n cursor: default;\n}\n.ant-transfer-list-content-item-checked {\n background-color: #e6f7ff;\n}\n.ant-transfer-list-content-item-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-transfer-list-pagination {\n padding: 8px 0;\n text-align: right;\n border-top: 1px solid #f0f0f0;\n}\n.ant-transfer-list-body-not-found {\n flex: none;\n width: 100%;\n margin: auto 0;\n color: rgba(0, 0, 0, 0.25);\n text-align: center;\n}\n.ant-transfer-list-footer {\n border-top: 1px solid #f0f0f0;\n}\n.ant-transfer-operation {\n display: flex;\n flex: none;\n flex-direction: column;\n align-self: center;\n margin: 0 8px;\n vertical-align: middle;\n}\n.ant-transfer-operation .ant-btn {\n display: block;\n}\n.ant-transfer-operation .ant-btn:first-child {\n margin-bottom: 4px;\n}\n.ant-transfer-operation .ant-btn .anticon {\n font-size: 12px;\n}\n.ant-transfer .ant-empty-image {\n max-height: -2px;\n}\n.ant-transfer-rtl {\n direction: rtl;\n}\n.ant-transfer-rtl .ant-transfer-list-search {\n padding-right: 8px;\n padding-left: 24px;\n}\n.ant-transfer-rtl .ant-transfer-list-search-action {\n right: auto;\n left: 12px;\n}\n.ant-transfer-rtl .ant-transfer-list-header > *:not(:last-child) {\n margin-right: 0;\n margin-left: 4px;\n}\n.ant-transfer-rtl .ant-transfer-list-header {\n right: 0;\n left: auto;\n}\n.ant-transfer-rtl .ant-transfer-list-header-title {\n text-align: left;\n}\n.ant-transfer-rtl .ant-transfer-list-content-item > *:not(:last-child) {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-transfer-rtl .ant-transfer-list-pagination {\n text-align: left;\n}\n.ant-transfer-rtl .ant-transfer-list-footer {\n right: 0;\n left: auto;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes ant-tree-node-fx-do-not-use {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-select-tree-checkbox {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,\n.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner,\n.ant-select-tree-checkbox-input:focus + .ant-select-tree-checkbox-inner {\n border-color: #1890ff;\n}\n.ant-select-tree-checkbox-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 2px;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n}\n.ant-select-tree-checkbox:hover::after,\n.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox::after {\n visibility: visible;\n}\n.ant-select-tree-checkbox-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n direction: ltr;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n border-collapse: separate;\n transition: all 0.3s;\n}\n.ant-select-tree-checkbox-inner::after {\n position: absolute;\n top: 50%;\n left: 21.5%;\n display: table;\n width: 5.71428571px;\n height: 9.14285714px;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\n content: ' ';\n}\n.ant-select-tree-checkbox-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after {\n position: absolute;\n display: table;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\n content: ' ';\n}\n.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.ant-select-tree-checkbox-disabled {\n cursor: not-allowed;\n}\n.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after {\n border-color: rgba(0, 0, 0, 0.25);\n animation-name: none;\n}\n.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-input {\n cursor: not-allowed;\n pointer-events: none;\n}\n.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner {\n background-color: #f5f5f5;\n border-color: #d9d9d9 !important;\n}\n.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after {\n border-color: #f5f5f5;\n border-collapse: separate;\n animation-name: none;\n}\n.ant-select-tree-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-select-tree-checkbox-disabled:hover::after,\n.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-disabled::after {\n visibility: hidden;\n}\n.ant-select-tree-checkbox-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n}\n.ant-select-tree-checkbox-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-select-tree-checkbox-wrapper + .ant-select-tree-checkbox-wrapper {\n margin-left: 8px;\n}\n.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-in-form-item input[type='checkbox'] {\n width: 14px;\n height: 14px;\n}\n.ant-select-tree-checkbox + span {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-select-tree-checkbox-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-select-tree-checkbox-group-item {\n margin-right: 8px;\n}\n.ant-select-tree-checkbox-group-item:last-child {\n margin-right: 0;\n}\n.ant-select-tree-checkbox-group-item + .ant-select-tree-checkbox-group-item {\n margin-left: 0;\n}\n.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner {\n background-color: #fff;\n border-color: #d9d9d9;\n}\n.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner::after {\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n background-color: #1890ff;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n}\n.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after {\n background-color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-tree-select-dropdown {\n padding: 8px 4px;\n}\n.ant-tree-select-dropdown-rtl {\n direction: rtl;\n}\n.ant-tree-select-dropdown .ant-select-tree {\n border-radius: 0;\n}\n.ant-tree-select-dropdown .ant-select-tree-list-holder-inner {\n align-items: stretch;\n}\n.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode .ant-select-tree-node-content-wrapper {\n flex: auto;\n}\n.ant-select-tree {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n background: #fff;\n border-radius: 2px;\n transition: background-color 0.3s;\n}\n.ant-select-tree-focused:not(:hover):not(.ant-select-tree-active-focused) {\n background: #e6f7ff;\n}\n.ant-select-tree-list-holder-inner {\n align-items: flex-start;\n}\n.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner {\n align-items: stretch;\n}\n.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-node-content-wrapper {\n flex: auto;\n}\n.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging {\n position: relative;\n}\n.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 4px;\n left: 0;\n border: 1px solid #1890ff;\n opacity: 0;\n animation: ant-tree-node-fx-do-not-use 0.3s;\n animation-play-state: running;\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n.ant-select-tree .ant-select-tree-treenode {\n display: flex;\n align-items: flex-start;\n padding: 0 0 4px 0;\n outline: none;\n}\n.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper:hover {\n background: transparent;\n}\n.ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper {\n background: #f5f5f5;\n}\n.ant-select-tree .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title {\n color: inherit;\n font-weight: 500;\n}\n.ant-select-tree .ant-select-tree-treenode-draggable .ant-select-tree-draggable-icon {\n width: 24px;\n line-height: 24px;\n text-align: center;\n visibility: visible;\n opacity: 0.2;\n transition: opacity 0.3s;\n}\n.ant-select-tree-treenode:hover .ant-select-tree .ant-select-tree-treenode-draggable .ant-select-tree-draggable-icon {\n opacity: 0.45;\n}\n.ant-select-tree .ant-select-tree-treenode-draggable.ant-select-tree-treenode-disabled .ant-select-tree-draggable-icon {\n visibility: hidden;\n}\n.ant-select-tree-indent {\n align-self: stretch;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-select-tree-indent-unit {\n display: inline-block;\n width: 24px;\n}\n.ant-select-tree-draggable-icon {\n visibility: hidden;\n}\n.ant-select-tree-switcher {\n position: relative;\n flex: none;\n align-self: stretch;\n width: 24px;\n margin: 0;\n line-height: 24px;\n text-align: center;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-select-tree-switcher .ant-tree-switcher-icon,\n.ant-select-tree-switcher .ant-select-tree-switcher-icon {\n display: inline-block;\n font-size: 10px;\n vertical-align: baseline;\n}\n.ant-select-tree-switcher .ant-tree-switcher-icon svg,\n.ant-select-tree-switcher .ant-select-tree-switcher-icon svg {\n transition: transform 0.3s;\n}\n.ant-select-tree-switcher-noop {\n cursor: default;\n}\n.ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg {\n transform: rotate(-90deg);\n}\n.ant-select-tree-switcher-loading-icon {\n color: #1890ff;\n}\n.ant-select-tree-switcher-leaf-line {\n position: relative;\n z-index: 1;\n display: inline-block;\n width: 100%;\n height: 100%;\n}\n.ant-select-tree-switcher-leaf-line::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -4px;\n margin-left: -1px;\n border-right: 1px solid #d9d9d9;\n content: ' ';\n}\n.ant-select-tree-switcher-leaf-line::after {\n position: absolute;\n width: 10px;\n height: 14px;\n border-bottom: 1px solid #d9d9d9;\n content: ' ';\n}\n.ant-select-tree-checkbox {\n top: initial;\n margin: 4px 8px 0 0;\n}\n.ant-select-tree .ant-select-tree-node-content-wrapper {\n position: relative;\n z-index: auto;\n min-height: 24px;\n margin: 0;\n padding: 0 4px;\n color: inherit;\n line-height: 24px;\n background: transparent;\n border-radius: 2px;\n cursor: pointer;\n transition: all 0.3s, border 0s, line-height 0s, box-shadow 0s;\n}\n.ant-select-tree .ant-select-tree-node-content-wrapper:hover {\n background-color: #f5f5f5;\n}\n.ant-select-tree .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected {\n background-color: #bae7ff;\n}\n.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle {\n display: inline-block;\n width: 24px;\n height: 24px;\n line-height: 24px;\n text-align: center;\n vertical-align: top;\n}\n.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle:empty {\n display: none;\n}\n.ant-select-tree-unselectable .ant-select-tree-node-content-wrapper:hover {\n background-color: transparent;\n}\n.ant-select-tree-node-content-wrapper {\n line-height: 24px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator {\n position: absolute;\n z-index: 1;\n height: 2px;\n background-color: #1890ff;\n border-radius: 1px;\n pointer-events: none;\n}\n.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator::after {\n position: absolute;\n top: -3px;\n left: -6px;\n width: 8px;\n height: 8px;\n background-color: transparent;\n border: 2px solid #1890ff;\n border-radius: 50%;\n content: '';\n}\n.ant-select-tree .ant-select-tree-treenode.drop-container > [draggable] {\n box-shadow: 0 0 0 2px #1890ff;\n}\n.ant-select-tree-show-line .ant-select-tree-indent-unit {\n position: relative;\n height: 100%;\n}\n.ant-select-tree-show-line .ant-select-tree-indent-unit::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -4px;\n border-right: 1px solid #d9d9d9;\n content: '';\n}\n.ant-select-tree-show-line .ant-select-tree-indent-unit-end::before {\n display: none;\n}\n.ant-select-tree-show-line .ant-select-tree-switcher {\n background: #fff;\n}\n.ant-select-tree-show-line .ant-select-tree-switcher-line-icon {\n vertical-align: -0.15em;\n}\n.ant-select-tree .ant-select-tree-treenode-leaf-last .ant-select-tree-switcher-leaf-line::before {\n top: auto !important;\n bottom: auto !important;\n height: 14px !important;\n}\n.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg {\n transform: rotate(90deg);\n}\n.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher-loading-icon {\n transform: scaleY(-1);\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-typography {\n color: rgba(0, 0, 0, 0.85);\n word-break: break-word;\n}\n.ant-typography.ant-typography-secondary {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-typography.ant-typography-success {\n color: #52c41a;\n}\n.ant-typography.ant-typography-warning {\n color: #faad14;\n}\n.ant-typography.ant-typography-danger {\n color: #ff4d4f;\n}\na.ant-typography.ant-typography-danger:active,\na.ant-typography.ant-typography-danger:focus {\n color: #d9363e;\n}\na.ant-typography.ant-typography-danger:hover {\n color: #ff7875;\n}\n.ant-typography.ant-typography-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\ndiv.ant-typography,\n.ant-typography p {\n margin-bottom: 1em;\n}\nh1.ant-typography,\ndiv.ant-typography-h1,\ndiv.ant-typography-h1 > textarea,\n.ant-typography h1 {\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 38px;\n line-height: 1.23;\n}\nh2.ant-typography,\ndiv.ant-typography-h2,\ndiv.ant-typography-h2 > textarea,\n.ant-typography h2 {\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 30px;\n line-height: 1.35;\n}\nh3.ant-typography,\ndiv.ant-typography-h3,\ndiv.ant-typography-h3 > textarea,\n.ant-typography h3 {\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 24px;\n line-height: 1.35;\n}\nh4.ant-typography,\ndiv.ant-typography-h4,\ndiv.ant-typography-h4 > textarea,\n.ant-typography h4 {\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 20px;\n line-height: 1.4;\n}\nh5.ant-typography,\ndiv.ant-typography-h5,\ndiv.ant-typography-h5 > textarea,\n.ant-typography h5 {\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n font-size: 16px;\n line-height: 1.5;\n}\n.ant-typography + h1.ant-typography,\n.ant-typography + h2.ant-typography,\n.ant-typography + h3.ant-typography,\n.ant-typography + h4.ant-typography,\n.ant-typography + h5.ant-typography {\n margin-top: 1.2em;\n}\n.ant-typography div + h1,\n.ant-typography ul + h1,\n.ant-typography li + h1,\n.ant-typography p + h1,\n.ant-typography h1 + h1,\n.ant-typography h2 + h1,\n.ant-typography h3 + h1,\n.ant-typography h4 + h1,\n.ant-typography h5 + h1,\n.ant-typography div + h2,\n.ant-typography ul + h2,\n.ant-typography li + h2,\n.ant-typography p + h2,\n.ant-typography h1 + h2,\n.ant-typography h2 + h2,\n.ant-typography h3 + h2,\n.ant-typography h4 + h2,\n.ant-typography h5 + h2,\n.ant-typography div + h3,\n.ant-typography ul + h3,\n.ant-typography li + h3,\n.ant-typography p + h3,\n.ant-typography h1 + h3,\n.ant-typography h2 + h3,\n.ant-typography h3 + h3,\n.ant-typography h4 + h3,\n.ant-typography h5 + h3,\n.ant-typography div + h4,\n.ant-typography ul + h4,\n.ant-typography li + h4,\n.ant-typography p + h4,\n.ant-typography h1 + h4,\n.ant-typography h2 + h4,\n.ant-typography h3 + h4,\n.ant-typography h4 + h4,\n.ant-typography h5 + h4,\n.ant-typography div + h5,\n.ant-typography ul + h5,\n.ant-typography li + h5,\n.ant-typography p + h5,\n.ant-typography h1 + h5,\n.ant-typography h2 + h5,\n.ant-typography h3 + h5,\n.ant-typography h4 + h5,\n.ant-typography h5 + h5 {\n margin-top: 1.2em;\n}\na.ant-typography-ellipsis,\nspan.ant-typography-ellipsis {\n display: inline-block;\n max-width: 100%;\n}\na.ant-typography,\n.ant-typography a {\n color: #1890ff;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n text-decoration: none;\n}\na.ant-typography:focus-visible,\n.ant-typography a:focus-visible,\na.ant-typography:hover,\n.ant-typography a:hover {\n color: #40a9ff;\n}\na.ant-typography:active,\n.ant-typography a:active {\n color: #096dd9;\n}\na.ant-typography:active,\n.ant-typography a:active,\na.ant-typography:hover,\n.ant-typography a:hover {\n text-decoration: none;\n}\na.ant-typography[disabled],\n.ant-typography a[disabled],\na.ant-typography.ant-typography-disabled,\n.ant-typography a.ant-typography-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\na.ant-typography[disabled]:active,\n.ant-typography a[disabled]:active,\na.ant-typography.ant-typography-disabled:active,\n.ant-typography a.ant-typography-disabled:active,\na.ant-typography[disabled]:hover,\n.ant-typography a[disabled]:hover,\na.ant-typography.ant-typography-disabled:hover,\n.ant-typography a.ant-typography-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n}\na.ant-typography[disabled]:active,\n.ant-typography a[disabled]:active,\na.ant-typography.ant-typography-disabled:active,\n.ant-typography a.ant-typography-disabled:active {\n pointer-events: none;\n}\n.ant-typography code {\n margin: 0 0.2em;\n padding: 0.2em 0.4em 0.1em;\n font-size: 85%;\n background: rgba(150, 150, 150, 0.1);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-radius: 3px;\n}\n.ant-typography kbd {\n margin: 0 0.2em;\n padding: 0.15em 0.4em 0.1em;\n font-size: 90%;\n background: rgba(150, 150, 150, 0.06);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-bottom-width: 2px;\n border-radius: 3px;\n}\n.ant-typography mark {\n padding: 0;\n background-color: #ffe58f;\n}\n.ant-typography u,\n.ant-typography ins {\n text-decoration: underline;\n -webkit-text-decoration-skip: ink;\n text-decoration-skip-ink: auto;\n}\n.ant-typography s,\n.ant-typography del {\n text-decoration: line-through;\n}\n.ant-typography strong {\n font-weight: 600;\n}\n.ant-typography-expand,\n.ant-typography-edit,\n.ant-typography-copy {\n color: #1890ff;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n margin-left: 4px;\n}\n.ant-typography-expand:focus-visible,\n.ant-typography-edit:focus-visible,\n.ant-typography-copy:focus-visible,\n.ant-typography-expand:hover,\n.ant-typography-edit:hover,\n.ant-typography-copy:hover {\n color: #40a9ff;\n}\n.ant-typography-expand:active,\n.ant-typography-edit:active,\n.ant-typography-copy:active {\n color: #096dd9;\n}\n.ant-typography-copy-success,\n.ant-typography-copy-success:hover,\n.ant-typography-copy-success:focus {\n color: #52c41a;\n}\n.ant-typography-edit-content {\n position: relative;\n}\ndiv.ant-typography-edit-content {\n left: -12px;\n margin-top: -5px;\n margin-bottom: calc(1em - 4px - 1px);\n}\n.ant-typography-edit-content-confirm {\n position: absolute;\n right: 10px;\n bottom: 8px;\n color: rgba(0, 0, 0, 0.45);\n font-weight: normal;\n font-size: 14px;\n font-style: normal;\n pointer-events: none;\n}\n.ant-typography-edit-content textarea {\n height: 1em;\n margin: 0 !important;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -moz-transition: none;\n}\n.ant-typography ul,\n.ant-typography ol {\n margin: 0 0 1em;\n padding: 0;\n}\n.ant-typography ul li,\n.ant-typography ol li {\n margin: 0 0 0 20px;\n padding: 0 0 0 4px;\n}\n.ant-typography ul {\n list-style-type: circle;\n}\n.ant-typography ul ul {\n list-style-type: disc;\n}\n.ant-typography ol {\n list-style-type: decimal;\n}\n.ant-typography pre,\n.ant-typography blockquote {\n margin: 1em 0;\n}\n.ant-typography pre {\n padding: 0.4em 0.6em;\n white-space: pre-wrap;\n word-wrap: break-word;\n background: rgba(150, 150, 150, 0.1);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-radius: 3px;\n}\n.ant-typography pre code {\n display: inline;\n margin: 0;\n padding: 0;\n font-size: inherit;\n font-family: inherit;\n background: transparent;\n border: 0;\n}\n.ant-typography blockquote {\n padding: 0 0 0 0.6em;\n border-left: 4px solid rgba(100, 100, 100, 0.2);\n opacity: 0.85;\n}\n.ant-typography-single-line {\n white-space: nowrap;\n}\n.ant-typography-ellipsis-single-line {\n overflow: hidden;\n text-overflow: ellipsis;\n}\na.ant-typography-ellipsis-single-line,\nspan.ant-typography-ellipsis-single-line {\n vertical-align: bottom;\n}\n.ant-typography-ellipsis-multiple-line {\n /* stylelint-disable-next-line value-no-vendor-prefix */\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 3;\n /*! autoprefixer: ignore next */\n -webkit-box-orient: vertical;\n}\n.ant-typography-rtl {\n direction: rtl;\n}\n.ant-typography-rtl .ant-typography-expand,\n.ant-typography-rtl .ant-typography-edit,\n.ant-typography-rtl .ant-typography-copy {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-typography-rtl .ant-typography-expand {\n float: left;\n}\ndiv.ant-typography-edit-content.ant-typography-rtl {\n right: -12px;\n left: auto;\n}\n.ant-typography-rtl .ant-typography-edit-content-confirm {\n right: auto;\n left: 10px;\n}\n.ant-typography-rtl.ant-typography ul li,\n.ant-typography-rtl.ant-typography ol li {\n margin: 0 20px 0 0;\n padding: 0 4px 0 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-upload {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n outline: 0;\n}\n.ant-upload p {\n margin: 0;\n}\n.ant-upload-btn {\n display: block;\n width: 100%;\n outline: none;\n}\n.ant-upload input[type='file'] {\n cursor: pointer;\n}\n.ant-upload.ant-upload-select {\n display: inline-block;\n}\n.ant-upload.ant-upload-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-upload.ant-upload-select-picture-card {\n width: 104px;\n height: 104px;\n margin-right: 8px;\n margin-bottom: 8px;\n text-align: center;\n vertical-align: top;\n background-color: #fafafa;\n border: 1px dashed #d9d9d9;\n border-radius: 2px;\n cursor: pointer;\n transition: border-color 0.3s;\n}\n.ant-upload.ant-upload-select-picture-card > .ant-upload {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n}\n.ant-upload.ant-upload-select-picture-card:hover {\n border-color: #1890ff;\n}\n.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover {\n border-color: #d9d9d9;\n}\n.ant-upload.ant-upload-drag {\n position: relative;\n width: 100%;\n height: 100%;\n text-align: center;\n background: #fafafa;\n border: 1px dashed #d9d9d9;\n border-radius: 2px;\n cursor: pointer;\n transition: border-color 0.3s;\n}\n.ant-upload.ant-upload-drag .ant-upload {\n padding: 16px 0;\n}\n.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled) {\n border-color: #096dd9;\n}\n.ant-upload.ant-upload-drag.ant-upload-disabled {\n cursor: not-allowed;\n}\n.ant-upload.ant-upload-drag .ant-upload-btn {\n display: table;\n height: 100%;\n}\n.ant-upload.ant-upload-drag .ant-upload-drag-container {\n display: table-cell;\n vertical-align: middle;\n}\n.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover {\n border-color: #40a9ff;\n}\n.ant-upload.ant-upload-drag p.ant-upload-drag-icon {\n margin-bottom: 20px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon {\n color: #40a9ff;\n font-size: 48px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-text {\n margin: 0 0 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-hint {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-upload.ant-upload-drag .anticon-plus {\n color: rgba(0, 0, 0, 0.25);\n font-size: 30px;\n transition: all 0.3s;\n}\n.ant-upload.ant-upload-drag .anticon-plus:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload.ant-upload-drag:hover .anticon-plus {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload-picture-card-wrapper {\n display: inline-block;\n width: 100%;\n}\n.ant-upload-picture-card-wrapper::before {\n display: table;\n content: '';\n}\n.ant-upload-picture-card-wrapper::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-upload-list {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n list-style: none;\n font-feature-settings: 'tnum';\n line-height: 1.5715;\n}\n.ant-upload-list::before {\n display: table;\n content: '';\n}\n.ant-upload-list::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-upload-list-item {\n position: relative;\n height: 22.001px;\n margin-top: 8px;\n font-size: 14px;\n}\n.ant-upload-list-item-name {\n display: inline-block;\n width: 100%;\n padding-left: 22px;\n overflow: hidden;\n line-height: 1.5715;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-upload-list-item-card-actions {\n position: absolute;\n right: 0;\n}\n.ant-upload-list-item-card-actions-btn {\n opacity: 0;\n}\n.ant-upload-list-item-card-actions-btn.ant-btn-sm {\n height: 22.001px;\n line-height: 1;\n vertical-align: top;\n}\n.ant-upload-list-item-card-actions.picture {\n top: 22px;\n line-height: 0;\n}\n.ant-upload-list-item-card-actions-btn:focus,\n.ant-upload-list-item-card-actions.picture .ant-upload-list-item-card-actions-btn {\n opacity: 1;\n}\n.ant-upload-list-item-card-actions .anticon {\n color: rgba(0, 0, 0, 0.45);\n transition: all 0.3s;\n}\n.ant-upload-list-item-card-actions:hover .anticon {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-upload-list-item-info {\n height: 100%;\n transition: background-color 0.3s;\n}\n.ant-upload-list-item-info > span {\n display: block;\n width: 100%;\n height: 100%;\n}\n.ant-upload-list-item-info .anticon-loading .anticon,\n.ant-upload-list-item-info .ant-upload-text-icon .anticon {\n position: absolute;\n top: 5px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-upload-list-item:hover .ant-upload-list-item-info {\n background-color: #f5f5f5;\n}\n.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn {\n opacity: 1;\n}\n.ant-upload-list-item-error,\n.ant-upload-list-item-error .ant-upload-text-icon > .anticon,\n.ant-upload-list-item-error .ant-upload-list-item-name {\n color: #ff4d4f;\n}\n.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon {\n color: #ff4d4f;\n}\n.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn {\n opacity: 1;\n}\n.ant-upload-list-item-progress {\n position: absolute;\n bottom: -12px;\n width: 100%;\n padding-left: 26px;\n font-size: 14px;\n line-height: 0;\n}\n.ant-upload-list-picture .ant-upload-list-item,\n.ant-upload-list-picture-card .ant-upload-list-item {\n position: relative;\n height: 66px;\n padding: 8px;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n}\n.ant-upload-list-picture .ant-upload-list-item:hover,\n.ant-upload-list-picture-card .ant-upload-list-item:hover {\n background: transparent;\n}\n.ant-upload-list-picture .ant-upload-list-item-error,\n.ant-upload-list-picture-card .ant-upload-list-item-error {\n border-color: #ff4d4f;\n}\n.ant-upload-list-picture .ant-upload-list-item-info,\n.ant-upload-list-picture-card .ant-upload-list-item-info {\n padding: 0;\n}\n.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info,\n.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {\n background: transparent;\n}\n.ant-upload-list-picture .ant-upload-list-item-uploading,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading {\n border-style: dashed;\n}\n.ant-upload-list-picture .ant-upload-list-item-thumbnail,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail {\n width: 48px;\n height: 48px;\n line-height: 60px;\n text-align: center;\n opacity: 0.8;\n}\n.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon {\n font-size: 26px;\n}\n.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'],\n.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {\n fill: #fff2f0;\n}\n.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'],\n.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'] {\n fill: #ff4d4f;\n}\n.ant-upload-list-picture .ant-upload-list-item-icon,\n.ant-upload-list-picture-card .ant-upload-list-item-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n font-size: 26px;\n transform: translate(-50%, -50%);\n}\n.ant-upload-list-picture .ant-upload-list-item-icon .anticon,\n.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon {\n font-size: 26px;\n}\n.ant-upload-list-picture .ant-upload-list-item-image,\n.ant-upload-list-picture-card .ant-upload-list-item-image {\n max-width: 100%;\n}\n.ant-upload-list-picture .ant-upload-list-item-thumbnail img,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img {\n display: block;\n width: 48px;\n height: 48px;\n overflow: hidden;\n}\n.ant-upload-list-picture .ant-upload-list-item-name,\n.ant-upload-list-picture-card .ant-upload-list-item-name {\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n margin: 0 0 0 8px;\n padding-right: 8px;\n padding-left: 48px;\n overflow: hidden;\n line-height: 44px;\n white-space: nowrap;\n text-overflow: ellipsis;\n transition: all 0.3s;\n}\n.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name {\n margin-bottom: 12px;\n}\n.ant-upload-list-picture .ant-upload-list-item-progress,\n.ant-upload-list-picture-card .ant-upload-list-item-progress {\n bottom: 14px;\n width: calc(100% - 24px);\n margin-top: 0;\n padding-left: 56px;\n}\n.ant-upload-list-picture-card-container {\n display: inline-block;\n width: 104px;\n height: 104px;\n margin: 0 8px 8px 0;\n vertical-align: top;\n}\n.ant-upload-list-picture-card .ant-upload-list-item {\n height: 100%;\n margin: 0;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info {\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info::before {\n position: absolute;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: all 0.3s;\n content: ' ';\n}\n.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info::before {\n opacity: 1;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions {\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 10;\n white-space: nowrap;\n transform: translate(-50%, -50%);\n opacity: 0;\n transition: all 0.3s;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete {\n z-index: 10;\n width: 16px;\n margin: 0 4px;\n color: rgba(255, 255, 255, 0.85);\n font-size: 16px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover {\n color: #fff;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info:hover + .ant-upload-list-item-actions,\n.ant-upload-list-picture-card .ant-upload-list-item-actions:hover {\n opacity: 1;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img {\n position: static;\n display: block;\n width: 100%;\n height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-name {\n display: none;\n margin: 8px 0 0;\n padding: 0;\n line-height: 1.5715;\n text-align: center;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-file + .ant-upload-list-item-name {\n position: absolute;\n bottom: 10px;\n display: block;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {\n background-color: #fafafa;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info {\n height: auto;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info::before,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete {\n display: none;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-progress {\n bottom: 32px;\n width: calc(100% - 14px);\n padding-left: 0;\n}\n.ant-upload-list-text-container,\n.ant-upload-list-picture-container {\n transition: opacity 0.3s, height 0.3s;\n}\n.ant-upload-list-text-container::before,\n.ant-upload-list-picture-container::before {\n display: table;\n width: 0;\n height: 0;\n content: '';\n}\n.ant-upload-list-text-container .ant-upload-span,\n.ant-upload-list-picture-container .ant-upload-span {\n display: block;\n flex: auto;\n}\n.ant-upload-list-text .ant-upload-span,\n.ant-upload-list-picture .ant-upload-span {\n display: flex;\n align-items: center;\n}\n.ant-upload-list-text .ant-upload-span > *,\n.ant-upload-list-picture .ant-upload-span > * {\n flex: none;\n}\n.ant-upload-list-text .ant-upload-list-item-name,\n.ant-upload-list-picture .ant-upload-list-item-name {\n flex: auto;\n margin: 0;\n padding: 0 8px;\n}\n.ant-upload-list-text .ant-upload-list-item-card-actions,\n.ant-upload-list-picture .ant-upload-list-item-card-actions {\n position: static;\n}\n.ant-upload-list-text .ant-upload-text-icon .anticon {\n position: static;\n}\n.ant-upload-list .ant-upload-animate-inline-appear,\n.ant-upload-list .ant-upload-animate-inline-enter,\n.ant-upload-list .ant-upload-animate-inline-leave {\n animation-duration: 0.3s;\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n animation-fill-mode: forwards;\n}\n.ant-upload-list .ant-upload-animate-inline-appear,\n.ant-upload-list .ant-upload-animate-inline-enter {\n animation-name: uploadAnimateInlineIn;\n}\n.ant-upload-list .ant-upload-animate-inline-leave {\n animation-name: uploadAnimateInlineOut;\n}\n@keyframes uploadAnimateInlineIn {\n from {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n@keyframes uploadAnimateInlineOut {\n to {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n.ant-upload-rtl {\n direction: rtl;\n}\n.ant-upload-rtl.ant-upload.ant-upload-select-picture-card {\n margin-right: auto;\n margin-left: 8px;\n}\n.ant-upload-list-rtl {\n direction: rtl;\n}\n.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1 {\n padding-right: 22px;\n padding-left: 14px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2 {\n padding-right: 22px;\n padding-left: 28px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-name {\n padding-right: 22px;\n padding-left: 0;\n}\n.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1 {\n padding-left: 14px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-card-actions {\n right: auto;\n left: 0;\n}\n.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon {\n padding-right: 0;\n padding-left: 5px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-info {\n padding: 0 4px 0 12px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon {\n padding-right: 0;\n padding-left: 5px;\n}\n.ant-upload-list-rtl .ant-upload-list-item-progress {\n padding-right: 26px;\n padding-left: 0;\n}\n.ant-upload-list-picture .ant-upload-list-item-info,\n.ant-upload-list-picture-card .ant-upload-list-item-info {\n padding: 0;\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail {\n right: 8px;\n left: auto;\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon {\n right: 50%;\n left: auto;\n transform: translate(50%, -50%);\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name {\n margin: 0 8px 0 0;\n padding-right: 48px;\n padding-left: 8px;\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1 {\n padding-right: 48px;\n padding-left: 18px;\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2 {\n padding-right: 48px;\n padding-left: 36px;\n}\n.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress,\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress {\n padding-right: 0;\n padding-left: 0;\n}\n.ant-upload-list-rtl .ant-upload-list-picture-card-container {\n margin: 0 0 8px 8px;\n}\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions {\n right: 50%;\n left: auto;\n transform: translate(50%, -50%);\n}\n.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file + .ant-upload-list-item-name {\n margin: 8px 0 0;\n padding: 0;\n}\n\n\n/*# sourceMappingURL=antd.css.map*/","// Config global less under antd\n[class^=~'@{ant-prefix}-'],\n[class*=~' @{ant-prefix}-'] {\n // remove the clear button of a text input control in IE10+\n &::-ms-clear,\n input::-ms-clear,\n input::-ms-reveal {\n display: none;\n }\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n[class^=ant-]::-ms-clear,\n[class*= ant-]::-ms-clear,\n[class^=ant-] input::-ms-clear,\n[class*= ant-] input::-ms-clear,\n[class^=ant-] input::-ms-reveal,\n[class*= ant-] input::-ms-reveal {\n display: none;\n}\n/* stylelint-disable property-no-vendor-prefix, at-rule-no-vendor-prefix */\nhtml,\nbody {\n width: 100%;\n height: 100%;\n}\ninput::-ms-clear,\ninput::-ms-reveal {\n display: none;\n}\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n@-ms-viewport {\n width: device-width;\n}\nbody {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n font-variant: tabular-nums;\n line-height: 1.5715;\n background-color: #fff;\n font-feature-settings: 'tnum';\n}\n[tabindex='-1']:focus {\n outline: none !important;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n}\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n border-bottom: 0;\n cursor: help;\n}\naddress {\n margin-bottom: 1em;\n font-style: normal;\n line-height: inherit;\n}\ninput[type='text'],\ninput[type='password'],\ninput[type='number'],\ntextarea {\n -webkit-appearance: none;\n}\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1em;\n}\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\ndt {\n font-weight: 500;\n}\ndd {\n margin-bottom: 0.5em;\n margin-left: 0;\n}\nblockquote {\n margin: 0 0 1em;\n}\ndfn {\n font-style: italic;\n}\nb,\nstrong {\n font-weight: bolder;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\na {\n color: #1890ff;\n text-decoration: none;\n background-color: transparent;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n -webkit-text-decoration-skip: objects;\n}\na:hover {\n color: #40a9ff;\n}\na:active {\n color: #096dd9;\n}\na:active,\na:hover {\n text-decoration: none;\n outline: 0;\n}\na:focus {\n text-decoration: none;\n outline: 0;\n}\na[disabled] {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\npre,\ncode,\nkbd,\nsamp {\n font-size: 1em;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;\n}\npre {\n margin-top: 0;\n margin-bottom: 1em;\n overflow: auto;\n}\nfigure {\n margin: 0 0 1em;\n}\nimg {\n vertical-align: middle;\n border-style: none;\n}\na,\narea,\nbutton,\n[role='button'],\ninput:not([type='range']),\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\ntable {\n border-collapse: collapse;\n}\ncaption {\n padding-top: 0.75em;\n padding-bottom: 0.3em;\n color: rgba(0, 0, 0, 0.45);\n text-align: left;\n caption-side: bottom;\n}\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\nbutton,\ninput {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\nbutton::-moz-focus-inner,\n[type='button']::-moz-focus-inner,\n[type='reset']::-moz-focus-inner,\n[type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\ninput[type='radio'],\ninput[type='checkbox'] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type='date'],\ninput[type='time'],\ninput[type='datetime-local'],\ninput[type='month'] {\n -webkit-appearance: listbox;\n}\ntextarea {\n overflow: auto;\n resize: vertical;\n}\nfieldset {\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: 0.5em;\n padding: 0;\n color: inherit;\n font-size: 1.5em;\n line-height: inherit;\n white-space: normal;\n}\nprogress {\n vertical-align: baseline;\n}\n[type='number']::-webkit-inner-spin-button,\n[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n[type='search'] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n[type='search']::-webkit-search-cancel-button,\n[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\noutput {\n display: inline-block;\n}\nsummary {\n display: list-item;\n}\ntemplate {\n display: none;\n}\n[hidden] {\n display: none !important;\n}\nmark {\n padding: 0.2em;\n background-color: #feffe6;\n}\n::selection {\n color: #fff;\n background: #1890ff;\n}\n.clearfix::before {\n display: table;\n content: '';\n}\n.clearfix::after {\n display: table;\n clear: both;\n content: '';\n}\n.anticon {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.anticon > * {\n line-height: 1;\n}\n.anticon svg {\n display: inline-block;\n}\n.anticon::before {\n display: none;\n}\n.anticon .anticon-icon {\n display: block;\n}\n.anticon > .anticon {\n line-height: 0;\n vertical-align: 0;\n}\n.anticon[tabindex] {\n cursor: pointer;\n}\n.anticon-spin,\n.anticon-spin::before {\n display: inline-block;\n animation: loadingCircle 1s infinite linear;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-fade-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-fade-enter.ant-fade-enter-active,\n.ant-fade-appear.ant-fade-appear-active {\n animation-name: antFadeIn;\n animation-play-state: running;\n}\n.ant-fade-leave.ant-fade-leave-active {\n animation-name: antFadeOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n opacity: 0;\n animation-timing-function: linear;\n}\n.ant-fade-leave {\n animation-timing-function: linear;\n}\n@keyframes antFadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes antFadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-up-enter.ant-move-up-enter-active,\n.ant-move-up-appear.ant-move-up-appear-active {\n animation-name: antMoveUpIn;\n animation-play-state: running;\n}\n.ant-move-up-leave.ant-move-up-leave-active {\n animation-name: antMoveUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-up-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-down-enter.ant-move-down-enter-active,\n.ant-move-down-appear.ant-move-down-appear-active {\n animation-name: antMoveDownIn;\n animation-play-state: running;\n}\n.ant-move-down-leave.ant-move-down-leave-active {\n animation-name: antMoveDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-down-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-left-enter.ant-move-left-enter-active,\n.ant-move-left-appear.ant-move-left-appear-active {\n animation-name: antMoveLeftIn;\n animation-play-state: running;\n}\n.ant-move-left-leave.ant-move-left-leave-active {\n animation-name: antMoveLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-left-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-right-enter.ant-move-right-enter-active,\n.ant-move-right-appear.ant-move-right-appear-active {\n animation-name: antMoveRightIn;\n animation-play-state: running;\n}\n.ant-move-right-leave.ant-move-right-leave-active {\n animation-name: antMoveRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-right-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n@keyframes antMoveDownIn {\n 0% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveDownOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveLeftIn {\n 0% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveLeftOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveRightIn {\n 0% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveRightOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveUpIn {\n 0% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveUpOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes loadingCircle {\n 100% {\n transform: rotate(360deg);\n }\n}\n[ant-click-animating='true'],\n[ant-click-animating-without-extra-node='true'] {\n position: relative;\n}\nhtml {\n --antd-wave-shadow-color: #1890ff;\n --scroll-bar: 0;\n}\n[ant-click-animating-without-extra-node='true']::after,\n.ant-click-animating-node {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n border-radius: inherit;\n box-shadow: 0 0 0 0 #1890ff;\n box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);\n opacity: 0.2;\n animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n@keyframes waveEffect {\n 100% {\n box-shadow: 0 0 0 #1890ff;\n box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);\n }\n}\n@keyframes fadeEffect {\n 100% {\n opacity: 0;\n }\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-up-enter.ant-slide-up-enter-active,\n.ant-slide-up-appear.ant-slide-up-appear-active {\n animation-name: antSlideUpIn;\n animation-play-state: running;\n}\n.ant-slide-up-leave.ant-slide-up-leave-active {\n animation-name: antSlideUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-up-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-down-enter.ant-slide-down-enter-active,\n.ant-slide-down-appear.ant-slide-down-appear-active {\n animation-name: antSlideDownIn;\n animation-play-state: running;\n}\n.ant-slide-down-leave.ant-slide-down-leave-active {\n animation-name: antSlideDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-down-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-left-enter.ant-slide-left-enter-active,\n.ant-slide-left-appear.ant-slide-left-appear-active {\n animation-name: antSlideLeftIn;\n animation-play-state: running;\n}\n.ant-slide-left-leave.ant-slide-left-leave-active {\n animation-name: antSlideLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-left-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-right-enter.ant-slide-right-enter-active,\n.ant-slide-right-appear.ant-slide-right-appear-active {\n animation-name: antSlideRightIn;\n animation-play-state: running;\n}\n.ant-slide-right-leave.ant-slide-right-leave-active {\n animation-name: antSlideRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-right-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n@keyframes antSlideUpIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideUpOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideDownIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n}\n@keyframes antSlideDownOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n}\n@keyframes antSlideLeftIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideLeftOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideRightIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideRightOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-enter.ant-zoom-enter-active,\n.ant-zoom-appear.ant-zoom-appear-active {\n animation-name: antZoomIn;\n animation-play-state: running;\n}\n.ant-zoom-leave.ant-zoom-leave-active {\n animation-name: antZoomOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-enter-prepare,\n.ant-zoom-appear-prepare {\n transform: none;\n}\n.ant-zoom-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-enter.ant-zoom-big-enter-active,\n.ant-zoom-big-appear.ant-zoom-big-appear-active {\n animation-name: antZoomBigIn;\n animation-play-state: running;\n}\n.ant-zoom-big-leave.ant-zoom-big-leave-active {\n animation-name: antZoomBigOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-enter-prepare,\n.ant-zoom-big-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n animation-duration: 0.1s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-leave {\n animation-duration: 0.1s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active,\n.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active {\n animation-name: antZoomBigIn;\n animation-play-state: running;\n}\n.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active {\n animation-name: antZoomBigOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-fast-enter-prepare,\n.ant-zoom-big-fast-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-fast-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-up-enter.ant-zoom-up-enter-active,\n.ant-zoom-up-appear.ant-zoom-up-appear-active {\n animation-name: antZoomUpIn;\n animation-play-state: running;\n}\n.ant-zoom-up-leave.ant-zoom-up-leave-active {\n animation-name: antZoomUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-up-enter-prepare,\n.ant-zoom-up-appear-prepare {\n transform: none;\n}\n.ant-zoom-up-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-down-enter.ant-zoom-down-enter-active,\n.ant-zoom-down-appear.ant-zoom-down-appear-active {\n animation-name: antZoomDownIn;\n animation-play-state: running;\n}\n.ant-zoom-down-leave.ant-zoom-down-leave-active {\n animation-name: antZoomDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-down-enter-prepare,\n.ant-zoom-down-appear-prepare {\n transform: none;\n}\n.ant-zoom-down-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-left-enter.ant-zoom-left-enter-active,\n.ant-zoom-left-appear.ant-zoom-left-appear-active {\n animation-name: antZoomLeftIn;\n animation-play-state: running;\n}\n.ant-zoom-left-leave.ant-zoom-left-leave-active {\n animation-name: antZoomLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-left-enter-prepare,\n.ant-zoom-left-appear-prepare {\n transform: none;\n}\n.ant-zoom-left-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-right-enter.ant-zoom-right-enter-active,\n.ant-zoom-right-appear.ant-zoom-right-appear-active {\n animation-name: antZoomRightIn;\n animation-play-state: running;\n}\n.ant-zoom-right-leave.ant-zoom-right-leave-active {\n animation-name: antZoomRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-right-enter-prepare,\n.ant-zoom-right-appear-prepare {\n transform: none;\n}\n.ant-zoom-right-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n@keyframes antZoomIn {\n 0% {\n transform: scale(0.2);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.2);\n opacity: 0;\n }\n}\n@keyframes antZoomBigIn {\n 0% {\n transform: scale(0.8);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomBigOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n@keyframes antZoomUpIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n}\n@keyframes antZoomUpOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n}\n@keyframes antZoomLeftIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n}\n@keyframes antZoomLeftOut {\n 0% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomRightIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n}\n@keyframes antZoomRightOut {\n 0% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomDownIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n}\n@keyframes antZoomDownOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n}\n.ant-motion-collapse-legacy {\n overflow: hidden;\n}\n.ant-motion-collapse-legacy-active {\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n.ant-motion-collapse {\n overflow: hidden;\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n","/* stylelint-disable property-no-vendor-prefix, at-rule-no-vendor-prefix */\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n// HTML & Body reset\n@{html-selector},\nbody {\n .square(100%);\n}\n\n// remove the clear button of a text input control in IE10+\ninput::-ms-clear,\ninput::-ms-reveal {\n display: none;\n}\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\n@{html-selector} {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: fade(@black, 0%); // 6\n}\n\n// IE10+ doesn't honor `` in some cases.\n@-ms-viewport {\n width: device-width;\n}\n\n// Body\n//\n// 1. remove the margin in all browsers.\n// 2. As a best practice, apply a default `body-background`.\n\nbody {\n margin: 0; // 1\n color: @text-color;\n font-size: @font-size-base;\n font-family: @font-family;\n font-variant: @font-variant-base;\n line-height: @line-height-base;\n background-color: @body-background; // 2\n font-feature-settings: @font-feature-settings-base;\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex='-1']:focus {\n outline: none !important;\n}\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n//\n// Typography\n//\n\n// remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 0.5em;\n color: @heading-color;\n font-weight: 500;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `em` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\n// Abbreviations\n//\n// 1. remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] {\n // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n border-bottom: 0; // 1\n cursor: help; // 3\n}\n\naddress {\n margin-bottom: 1em;\n font-style: normal;\n line-height: inherit;\n}\n\ninput[type='text'],\ninput[type='password'],\ninput[type='number'],\ntextarea {\n -webkit-appearance: none;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 500;\n}\n\ndd {\n margin-bottom: 0.5em;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1em;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n//\n// Links\n//\n\na {\n color: @link-color;\n text-decoration: @link-decoration;\n background-color: transparent; // remove the gray background on active links in IE 10.\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n -webkit-text-decoration-skip: objects; // remove gaps in links underline in iOS 8+ and Safari 8+.\n\n &:hover {\n color: @link-hover-color;\n }\n\n &:active {\n color: @link-active-color;\n }\n\n &:active,\n &:hover {\n text-decoration: @link-hover-decoration;\n outline: 0;\n }\n\n // https://github.com/ant-design/ant-design/issues/22503\n &:focus {\n text-decoration: @link-focus-decoration;\n outline: @link-focus-outline;\n }\n\n &[disabled] {\n color: @disabled-color;\n cursor: not-allowed;\n }\n}\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n font-family: @code-family;\n}\n\npre {\n // remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `em`s\n margin-bottom: 1em;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n//\n// Figures\n//\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1em;\n}\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // remove the border on images inside links in IE 10-.\n}\n\n// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.\n//\n// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11\n// DON'T remove the click delay when `` is present.\n// However, they DO support emoving the click delay via `touch-action: manipulation`.\n// See:\n// * https://getbootstrap.com/docs/4.0/content/reboot/#click-delay-optimization-for-touch\n// * http://caniuse.com/#feat=css-touch-action\n// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay\n\na,\narea,\nbutton,\n[role='button'],\ninput:not([type='range']),\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: 0.75em;\n padding-bottom: 0.3em;\n color: @text-color-secondary;\n text-align: left;\n caption-side: bottom;\n}\n\n//\n// Forms\n//\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // remove the margin in Firefox and Safari\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n@{html-selector} [type=\"button\"], /* 1 */\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type='button']::-moz-focus-inner,\n[type='reset']::-moz-focus-inner,\n[type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type='radio'],\ninput[type='checkbox'] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. remove the padding in IE 10-\n}\n\ninput[type='date'],\ninput[type='time'],\ninput[type='datetime-local'],\ninput[type='month'] {\n // remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n margin: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n margin-bottom: 0.5em;\n padding: 0;\n color: inherit; // 2\n font-size: 1.5em;\n line-height: inherit;\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of incement and decement buttons in Chrome.\n[type='number']::-webkit-inner-spin-button,\n[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type='search'] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type='search']::-webkit-search-cancel-button,\n[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n\nmark {\n padding: 0.2em;\n background-color: @yellow-1;\n}\n\n::selection {\n color: @text-color-inverse;\n background: @text-selection-bg;\n}\n\n// Utility classes\n.clearfix {\n .clearfix();\n}\n","// Sizing shortcuts\n\n.size(@width; @height) {\n width: @width;\n height: @height;\n}\n\n.square(@size) {\n .size(@size; @size);\n}\n","// mixins for clearfix\n// ------------------------\n.clearfix() {\n // https://github.com/ant-design/ant-design/issues/21301#issuecomment-583955229\n &::before {\n display: table;\n content: '';\n }\n\n &::after {\n // https://github.com/ant-design/ant-design/issues/21864\n display: table;\n clear: both;\n content: '';\n }\n}\n","@import '../themes/index';\n@import '../mixins/iconfont';\n\n.@{iconfont-css-prefix} {\n .iconfont-mixin();\n\n // https://github.com/ant-design/ant-design/issues/33703\n & > & {\n line-height: 0;\n vertical-align: 0;\n }\n\n &[tabindex] {\n cursor: pointer;\n }\n}\n\n.@{iconfont-css-prefix}-spin,\n.@{iconfont-css-prefix}-spin::before {\n display: inline-block;\n animation: loadingCircle 1s infinite linear;\n}\n",".iconfont-mixin() {\n display: inline-flex;\n align-items: center;\n color: @icon-color;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em; // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n > * {\n line-height: 1;\n }\n\n svg {\n display: inline-block;\n }\n\n &::before {\n display: none; // dont display old icon.\n }\n\n & &-icon {\n display: block;\n }\n}\n",".motion-common(@duration: @animation-duration-base) {\n animation-duration: @duration;\n animation-fill-mode: both;\n}\n\n.motion-common-leave(@duration: @animation-duration-base) {\n animation-duration: @duration;\n animation-fill-mode: both;\n}\n\n.make-motion(@className, @keyframeName, @duration: @animation-duration-base) {\n .@{className}-enter,\n .@{className}-appear {\n .motion-common(@duration);\n\n animation-play-state: paused;\n }\n .@{className}-leave {\n .motion-common-leave(@duration);\n\n animation-play-state: paused;\n }\n .@{className}-enter.@{className}-enter-active,\n .@{className}-appear.@{className}-appear-active {\n animation-name: ~'@{keyframeName}In';\n animation-play-state: running;\n }\n .@{className}-leave.@{className}-leave-active {\n animation-name: ~'@{keyframeName}Out';\n animation-play-state: running;\n pointer-events: none;\n }\n}\n",".fade-motion(@className, @keyframeName) {\n @name: ~'@{ant-prefix}-@{className}';\n .make-motion(@name, @keyframeName);\n .@{name}-enter,\n .@{name}-appear {\n opacity: 0;\n animation-timing-function: linear;\n }\n .@{name}-leave {\n animation-timing-function: linear;\n }\n}\n\n.fade-motion(fade, antFade);\n\n@keyframes antFadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes antFadeOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n",".move-motion(@className, @keyframeName) {\n @name: ~'@{ant-prefix}-@{className}';\n .make-motion(@name, @keyframeName);\n .@{name}-enter,\n .@{name}-appear {\n opacity: 0;\n animation-timing-function: @ease-out-circ;\n }\n .@{name}-leave {\n animation-timing-function: @ease-in-circ;\n }\n}\n\n.move-motion(move-up, antMoveUp);\n.move-motion(move-down, antMoveDown);\n.move-motion(move-left, antMoveLeft);\n.move-motion(move-right, antMoveRight);\n\n@keyframes antMoveDownIn {\n 0% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n\n@keyframes antMoveDownOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n\n 100% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n\n@keyframes antMoveLeftIn {\n 0% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n\n@keyframes antMoveLeftOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n\n 100% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n\n@keyframes antMoveRightIn {\n 0% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n\n@keyframes antMoveRightOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n\n 100% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n\n@keyframes antMoveUpIn {\n 0% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n\n@keyframes antMoveUpOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n\n 100% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n","@keyframes loadingCircle {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@click-animating-true: ~\"[@{ant-prefix}-click-animating='true']\";\n@click-animating-with-extra-node-true: ~\"[@{ant-prefix}-click-animating-without-extra-node='true']\";\n\n@{click-animating-true},\n@{click-animating-with-extra-node-true} {\n position: relative;\n}\n\nhtml {\n --antd-wave-shadow-color: @primary-color;\n --scroll-bar: 0;\n}\n\n@click-animating-with-extra-node-true-after: ~'@{click-animating-with-extra-node-true}::after';\n\n@{click-animating-with-extra-node-true-after},\n.@{ant-prefix}-click-animating-node {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n border-radius: inherit;\n box-shadow: 0 0 0 0 @primary-color;\n box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);\n opacity: 0.2;\n animation: fadeEffect 2s @ease-out-circ, waveEffect 0.4s @ease-out-circ;\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n\n@keyframes waveEffect {\n 100% {\n box-shadow: 0 0 0 @primary-color;\n box-shadow: 0 0 0 @wave-animation-width var(--antd-wave-shadow-color);\n }\n}\n\n@keyframes fadeEffect {\n 100% {\n opacity: 0;\n }\n}\n",".slide-motion(@className, @keyframeName) {\n @name: ~'@{ant-prefix}-@{className}';\n .make-motion(@name, @keyframeName);\n .@{name}-enter,\n .@{name}-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: @ease-out-quint;\n }\n .@{name}-leave {\n animation-timing-function: @ease-in-quint;\n }\n}\n\n.slide-motion(slide-up, antSlideUp);\n.slide-motion(slide-down, antSlideDown);\n.slide-motion(slide-left, antSlideLeft);\n.slide-motion(slide-right, antSlideRight);\n\n@keyframes antSlideUpIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n\n 100% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n\n@keyframes antSlideUpOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n\n 100% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n\n@keyframes antSlideDownIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n\n 100% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n}\n\n@keyframes antSlideDownOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n\n 100% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n}\n\n@keyframes antSlideLeftIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n\n 100% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n\n@keyframes antSlideLeftOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n\n 100% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n\n@keyframes antSlideRightIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n\n 100% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n}\n\n@keyframes antSlideRightOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n\n 100% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n}\n",".zoom-motion(@className, @keyframeName, @duration: @animation-duration-base) {\n @name: ~'@{ant-prefix}-@{className}';\n .make-motion(@name, @keyframeName, @duration);\n .@{name}-enter,\n .@{name}-appear {\n transform: scale(0); // need this by yiminghe\n opacity: 0;\n animation-timing-function: @ease-out-circ;\n\n &-prepare {\n transform: none;\n }\n }\n .@{name}-leave {\n animation-timing-function: @ease-in-out-circ;\n }\n}\n\n// For Modal, Select choosen item\n.zoom-motion(zoom, antZoom);\n// For Popover, Popconfirm, Dropdown\n.zoom-motion(zoom-big, antZoomBig);\n// For Tooltip\n.zoom-motion(zoom-big-fast, antZoomBig, @animation-duration-fast);\n\n.zoom-motion(zoom-up, antZoomUp);\n.zoom-motion(zoom-down, antZoomDown);\n.zoom-motion(zoom-left, antZoomLeft);\n.zoom-motion(zoom-right, antZoomRight);\n\n@keyframes antZoomIn {\n 0% {\n transform: scale(0.2);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes antZoomOut {\n 0% {\n transform: scale(1);\n }\n\n 100% {\n transform: scale(0.2);\n opacity: 0;\n }\n}\n\n@keyframes antZoomBigIn {\n 0% {\n transform: scale(0.8);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes antZoomBigOut {\n 0% {\n transform: scale(1);\n }\n\n 100% {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n\n@keyframes antZoomUpIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n}\n\n@keyframes antZoomUpOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n}\n\n@keyframes antZoomLeftIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n}\n\n@keyframes antZoomLeftOut {\n 0% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n\n 100% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n}\n\n@keyframes antZoomRightIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n}\n\n@keyframes antZoomRightOut {\n 0% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n\n 100% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n}\n\n@keyframes antZoomDownIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n}\n\n@keyframes antZoomDownOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n}\n","// @import '../mixins/motion'; This has moved to theme/xxx inside.\n@import 'motion/fade';\n@import 'motion/move';\n@import 'motion/other';\n@import 'motion/slide';\n@import 'motion/zoom';\n\n// For common/openAnimation\n.ant-motion-collapse-legacy {\n overflow: hidden;\n\n &-active {\n transition: height @animation-duration-base @ease-in-out,\n opacity @animation-duration-base @ease-in-out !important;\n }\n}\n\n.ant-motion-collapse {\n overflow: hidden;\n transition: height @animation-duration-base @ease-in-out,\n opacity @animation-duration-base @ease-in-out !important;\n}\n","@import '../../style/themes/index';\n\n.@{ant-prefix}-affix {\n position: fixed;\n z-index: @zindex-affix;\n}\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@alert-prefix-cls: ~'@{ant-prefix}-alert';\n\n.@{alert-prefix-cls} {\n .reset-component();\n\n position: relative;\n display: flex;\n align-items: center;\n padding: @alert-padding-vertical @alert-padding-horizontal;\n word-wrap: break-word;\n border-radius: @border-radius-base;\n\n &-content {\n flex: 1;\n min-width: 0;\n }\n\n &-icon {\n margin-right: @margin-xs;\n }\n\n &-description {\n display: none;\n font-size: @font-size-base;\n line-height: @font-size-base + 8px;\n }\n\n &-success {\n background-color: @alert-success-bg-color;\n border: @border-width-base @border-style-base @alert-success-border-color;\n .@{alert-prefix-cls}-icon {\n color: @alert-success-icon-color;\n }\n }\n\n &-info {\n background-color: @alert-info-bg-color;\n border: @border-width-base @border-style-base @alert-info-border-color;\n .@{alert-prefix-cls}-icon {\n color: @alert-info-icon-color;\n }\n }\n\n &-warning {\n background-color: @alert-warning-bg-color;\n border: @border-width-base @border-style-base @alert-warning-border-color;\n .@{alert-prefix-cls}-icon {\n color: @alert-warning-icon-color;\n }\n }\n\n &-error {\n background-color: @alert-error-bg-color;\n border: @border-width-base @border-style-base @alert-error-border-color;\n\n .@{alert-prefix-cls}-icon {\n color: @alert-error-icon-color;\n }\n\n .@{alert-prefix-cls}-description > pre {\n margin: 0;\n padding: 0;\n }\n }\n\n &-action {\n margin-left: @margin-xs;\n }\n\n &-close-icon {\n margin-left: @margin-xs;\n padding: 0;\n overflow: hidden;\n font-size: @font-size-sm;\n line-height: @font-size-sm;\n background-color: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n\n .@{iconfont-css-prefix}-close {\n color: @alert-close-color;\n transition: color 0.3s;\n\n &:hover {\n color: @alert-close-hover-color;\n }\n }\n }\n\n &-close-text {\n color: @alert-close-color;\n transition: color 0.3s;\n\n &:hover {\n color: @alert-close-hover-color;\n }\n }\n\n &-with-description {\n align-items: flex-start;\n padding: @alert-with-description-padding;\n }\n\n &-with-description&-no-icon {\n padding: @alert-with-description-no-icon-padding-vertical 15px;\n }\n\n &-with-description &-icon {\n margin-right: @alert-with-description-padding-vertical;\n font-size: @alert-with-description-icon-size;\n }\n\n &-with-description &-message {\n display: block;\n margin-bottom: 4px;\n color: @alert-message-color;\n font-size: @font-size-lg;\n }\n\n &-message {\n color: @alert-message-color;\n }\n\n &-with-description &-description {\n display: block;\n }\n\n &&-motion-leave {\n overflow: hidden;\n opacity: 1;\n transition: max-height 0.3s @ease-in-out-circ, opacity 0.3s @ease-in-out-circ,\n padding-top 0.3s @ease-in-out-circ, padding-bottom 0.3s @ease-in-out-circ,\n margin-bottom 0.3s @ease-in-out-circ;\n }\n\n &&-motion-leave-active {\n max-height: 0;\n margin-bottom: 0 !important;\n padding-top: 0;\n padding-bottom: 0;\n opacity: 0;\n }\n\n &-banner {\n margin-bottom: 0;\n border: 0;\n border-radius: 0;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".reset-component() {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: @text-color;\n font-size: @font-size-base;\n font-variant: @font-variant-base;\n line-height: @line-height-base;\n list-style: none;\n font-feature-settings: @font-feature-settings-base;\n}\n",".@{alert-prefix-cls} {\n &&-rtl {\n direction: rtl;\n }\n\n &-icon {\n .@{alert-prefix-cls}-rtl & {\n margin-right: auto;\n margin-left: @margin-xs;\n }\n }\n\n &-action {\n .@{alert-prefix-cls}-rtl & {\n margin-right: @margin-xs;\n margin-left: auto;\n }\n }\n\n &-close-icon {\n .@{alert-prefix-cls}-rtl & {\n margin-right: @margin-xs;\n margin-left: auto;\n }\n }\n\n &-with-description {\n .@{alert-prefix-cls}-rtl& {\n padding-right: @alert-with-description-icon-size;\n padding-left: @alert-with-description-padding-vertical;\n }\n\n .@{alert-prefix-cls}-icon {\n .@{alert-prefix-cls}-rtl& {\n margin-right: auto;\n margin-left: @alert-with-description-padding-vertical;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@anchor-border-width: 2px;\n\n.@{ant-prefix}-anchor {\n .reset-component();\n\n position: relative;\n padding-left: @anchor-border-width;\n\n &-wrapper {\n margin-left: -4px;\n padding-left: 4px;\n overflow: auto;\n background-color: @anchor-bg;\n }\n\n &-ink {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n\n &::before {\n position: relative;\n display: block;\n width: @anchor-border-width;\n height: 100%;\n margin: 0 auto;\n background-color: @anchor-border-color;\n content: ' ';\n }\n\n &-ball {\n position: absolute;\n left: 50%;\n display: none;\n width: 8px;\n height: 8px;\n background-color: @component-background;\n border: 2px solid @primary-color;\n border-radius: 8px;\n transform: translateX(-50%);\n transition: top 0.3s ease-in-out;\n\n &.@{ant-prefix}-anchor-ink-ball-visible {\n display: inline-block;\n }\n }\n }\n\n &-fixed &-ink &-ink-ball {\n display: none;\n }\n\n &-link {\n padding: @anchor-link-padding;\n\n &-title {\n position: relative;\n display: block;\n margin-bottom: 3px;\n overflow: hidden;\n color: @text-color;\n white-space: nowrap;\n text-overflow: ellipsis;\n transition: all 0.3s;\n\n &:only-child {\n margin-bottom: 0;\n }\n }\n\n &-active > &-title {\n color: @primary-color;\n }\n }\n\n &-link &-link {\n padding-top: 2px;\n padding-bottom: 2px;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{ant-prefix}-anchor {\n &-rtl {\n direction: rtl;\n }\n\n &-wrapper {\n .@{ant-prefix}-anchor-rtl& {\n margin-right: -4px;\n margin-left: 0;\n padding-right: 4px;\n padding-left: 0;\n }\n }\n\n &-ink {\n .@{ant-prefix}-anchor-rtl & {\n right: 0;\n left: auto;\n }\n\n &-ball {\n .@{ant-prefix}-anchor-rtl & {\n right: 50%;\n left: 0;\n transform: translateX(50%);\n }\n }\n }\n\n &-link {\n .@{ant-prefix}-anchor-rtl & {\n padding: @anchor-link-top @anchor-link-left @anchor-link-top 0;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n\n@input-prefix-cls: ~'@{ant-prefix}-input';\n@select-prefix-cls: ~'@{ant-prefix}-select';\n@autocomplete-prefix-cls: ~'@{select-prefix-cls}-auto-complete';\n\n.@{autocomplete-prefix-cls} {\n .reset-component();\n\n // https://github.com/ant-design/ant-design/issues/22302\n .@{select-prefix-cls}-clear {\n right: 13px;\n }\n}\n\n@root-entry-name: default;","@import (reference) '../../style/themes/index';\n@select-prefix-cls: ~'@{ant-prefix}-select';\n\n@selection-item-padding: ceil(@font-size-base * 1.25);\n\n.@{select-prefix-cls}-single {\n // ========================= Selector =========================\n .@{select-prefix-cls}-selector {\n display: flex;\n\n .@{select-prefix-cls}-selection-search {\n position: absolute;\n top: 0;\n right: @input-padding-horizontal-base;\n bottom: 0;\n left: @input-padding-horizontal-base;\n\n &-input {\n width: 100%;\n }\n }\n\n .@{select-prefix-cls}-selection-item,\n .@{select-prefix-cls}-selection-placeholder {\n padding: 0;\n line-height: @select-height-without-border;\n transition: all .3s, visibility 0s;\n }\n\n .@{select-prefix-cls}-selection-item {\n position: relative;\n user-select: none;\n }\n\n .@{select-prefix-cls}-selection-placeholder {\n transition: none;\n pointer-events: none;\n }\n\n // For common baseline align\n &::after,\n /* For '' value baseline align */\n .@{select-prefix-cls}-selection-item::after,\n /* For undefined value baseline align */\n .@{select-prefix-cls}-selection-placeholder::after {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n }\n }\n\n // With arrow should provides `padding-right` to show the arrow\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-search {\n right: @input-padding-horizontal-base + @font-size-base;\n }\n\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-item,\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-placeholder {\n padding-right: @selection-item-padding;\n }\n\n // Opacity selection if open\n &.@{select-prefix-cls}-open .@{select-prefix-cls}-selection-item {\n color: @input-placeholder-color;\n }\n\n // ========================== Input ==========================\n // We only change the style of non-customize input which is only support by `combobox` mode.\n\n // Not customize\n &:not(.@{select-prefix-cls}-customize-input) {\n .@{select-prefix-cls}-selector {\n width: 100%;\n height: @input-height-base;\n padding: 0 @input-padding-horizontal-base;\n\n .@{select-prefix-cls}-selection-search-input {\n height: @select-height-without-border;\n }\n\n &::after {\n line-height: @select-height-without-border;\n }\n }\n }\n\n &.@{select-prefix-cls}-customize-input {\n .@{select-prefix-cls}-selector {\n &::after {\n display: none;\n }\n\n .@{select-prefix-cls}-selection-search {\n position: static;\n width: 100%;\n }\n\n .@{select-prefix-cls}-selection-placeholder {\n position: absolute;\n right: 0;\n left: 0;\n padding: 0 @input-padding-horizontal-base;\n\n &::after {\n display: none;\n }\n }\n }\n }\n\n // ============================================================\n // == Size ==\n // ============================================================\n .select-size(@suffix, @input-height) {\n @merged-cls: ~'@{select-prefix-cls}-@{suffix}';\n\n &.@{merged-cls}:not(.@{select-prefix-cls}-customize-input) {\n .@{select-prefix-cls}-selector {\n height: @input-height;\n\n &::after,\n .@{select-prefix-cls}-selection-item,\n .@{select-prefix-cls}-selection-placeholder {\n line-height: @input-height - 2 * @border-width-base;\n }\n }\n\n // Not customize\n &:not(.@{select-prefix-cls}-customize-input) {\n .@{select-prefix-cls}-selection-search-input {\n height: @input-height - 2 * @border-width-base;\n }\n }\n }\n }\n\n .select-size('lg', @select-single-item-height-lg);\n .select-size('sm', @input-height-sm);\n\n // Size small need additional set padding\n &.@{select-prefix-cls}-sm {\n &:not(.@{select-prefix-cls}-customize-input) {\n .@{select-prefix-cls}-selection-search {\n right: @input-padding-horizontal-sm;\n left: @input-padding-horizontal-sm;\n }\n\n .@{select-prefix-cls}-selector {\n padding: 0 @input-padding-horizontal-sm;\n }\n\n // With arrow should provides `padding-right` to show the arrow\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-search {\n right: @input-padding-horizontal-sm + @font-size-base * 1.5;\n }\n\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-item,\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-placeholder {\n padding-right: @font-size-base * 1.5;\n }\n }\n }\n\n &.@{select-prefix-cls}-lg {\n &:not(.@{select-prefix-cls}-customize-input) {\n .@{select-prefix-cls}-selector {\n padding: 0 @input-padding-horizontal-lg;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import './single';\n@import './multiple';\n@import './status';\n\n@select-prefix-cls: ~'@{ant-prefix}-select';\n@select-height-without-border: @input-height-base - 2 * @border-width-base;\n@select-dropdown-edge-child-vertical-padding: @dropdown-edge-child-vertical-padding;\n\n.select-selector() {\n position: relative;\n background-color: @select-background;\n border: @border-width-base @border-style-base @select-border-color;\n border-radius: @control-border-radius;\n transition: all 0.3s @ease-in-out;\n\n input {\n cursor: pointer;\n }\n\n .@{select-prefix-cls}-show-search& {\n cursor: text;\n\n input {\n cursor: auto;\n }\n }\n\n .@{select-prefix-cls}-focused:not(.@{select-prefix-cls}-disabled)& {\n .active();\n }\n\n .@{select-prefix-cls}-disabled& {\n color: @disabled-color;\n background: @input-disabled-bg;\n cursor: not-allowed;\n\n .@{select-prefix-cls}-multiple& {\n background: @select-multiple-disabled-background;\n }\n\n input {\n cursor: not-allowed;\n }\n }\n}\n\n/* Reset search input style */\n.select-search-input-without-border() {\n .@{select-prefix-cls}-selection-search-input {\n margin: 0;\n padding: 0;\n background: transparent;\n border: none;\n outline: none;\n appearance: none;\n\n &::-webkit-search-cancel-button {\n display: none;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n }\n }\n}\n\n.@{select-prefix-cls} {\n .reset-component();\n position: relative;\n display: inline-block;\n cursor: pointer;\n\n &:not(&-customize-input) &-selector {\n .select-selector();\n .select-search-input-without-border();\n }\n\n &:not(&-disabled):hover &-selector {\n .hover();\n }\n\n // ======================== Selection ========================\n &-selection-item {\n flex: 1;\n overflow: hidden;\n font-weight: normal;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n // IE11 css hack. `*::-ms-backdrop,` is a must have\n @media all and (-ms-high-contrast: none) {\n *::-ms-backdrop,\n & {\n flex: auto;\n }\n }\n }\n\n // ======================= Placeholder =======================\n &-selection-placeholder {\n flex: 1;\n overflow: hidden;\n color: @input-placeholder-color;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n\n // IE11 css hack. `*::-ms-backdrop,` is a must have\n @media all and (-ms-high-contrast: none) {\n *::-ms-backdrop,\n & {\n flex: auto;\n }\n }\n }\n\n // ========================== Arrow ==========================\n &-arrow {\n .iconfont-mixin();\n position: absolute;\n top: 50%;\n right: @control-padding-horizontal - 1px;\n display: flex;\n align-items: center;\n height: @font-size-sm;\n margin-top: (-@font-size-sm / 2);\n color: @disabled-color;\n font-size: @font-size-sm;\n line-height: 1;\n text-align: center;\n pointer-events: none;\n\n .@{iconfont-css-prefix} {\n vertical-align: top;\n transition: transform 0.3s;\n\n > svg {\n vertical-align: top;\n }\n\n &:not(.@{select-prefix-cls}-suffix) {\n pointer-events: auto;\n }\n }\n\n .@{select-prefix-cls}-disabled & {\n cursor: not-allowed;\n }\n\n > *:not(:last-child) {\n margin-inline-end: @padding-xs;\n }\n }\n\n // ========================== Clear ==========================\n &-clear {\n position: absolute;\n top: 50%;\n right: @control-padding-horizontal - 1px;\n z-index: 1;\n display: inline-block;\n width: @font-size-sm;\n height: @font-size-sm;\n margin-top: (-@font-size-sm / 2);\n color: @disabled-color;\n font-size: @font-size-sm;\n font-style: normal;\n line-height: 1;\n text-align: center;\n text-transform: none;\n background: @select-clear-background;\n cursor: pointer;\n opacity: 0;\n transition: color 0.3s ease, opacity 0.15s ease;\n text-rendering: auto;\n\n &::before {\n display: block;\n }\n\n &:hover {\n color: @text-color-secondary;\n }\n\n .@{select-prefix-cls}:hover & {\n opacity: 1;\n }\n }\n\n // ========================== Popup ==========================\n &-dropdown {\n .reset-component();\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: @zindex-dropdown;\n box-sizing: border-box;\n padding: @select-dropdown-edge-child-vertical-padding 0;\n overflow: hidden;\n font-size: @font-size-base;\n // Fix select render lag of long text in chrome\n // https://github.com/ant-design/ant-design/issues/11456\n // https://github.com/ant-design/ant-design/issues/11843\n font-variant: initial;\n background-color: @select-dropdown-bg;\n border-radius: @border-radius-base;\n outline: none;\n box-shadow: @box-shadow-base;\n\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-bottomLeft {\n animation-name: antSlideUpIn;\n }\n\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-topLeft {\n animation-name: antSlideDownIn;\n }\n\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-bottomLeft {\n animation-name: antSlideUpOut;\n }\n\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-topLeft {\n animation-name: antSlideDownOut;\n }\n\n &-hidden {\n display: none;\n }\n\n &-empty {\n color: @disabled-color;\n }\n }\n\n // ========================= Options =========================\n .item() {\n position: relative;\n display: block;\n min-height: @select-dropdown-height;\n padding: @select-dropdown-vertical-padding @control-padding-horizontal;\n color: @text-color;\n font-weight: normal;\n font-size: @select-dropdown-font-size;\n line-height: @select-dropdown-line-height;\n }\n\n &-item-empty {\n .item();\n color: @disabled-color;\n }\n\n &-item {\n .item();\n\n cursor: pointer;\n transition: background 0.3s ease;\n\n // =========== Group ============\n &-group {\n color: @text-color-secondary;\n font-size: @font-size-sm;\n cursor: default;\n }\n\n // =========== Option ===========\n &-option {\n display: flex;\n\n &-content {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-state {\n flex: none;\n }\n\n &-active:not(&-disabled) {\n background-color: @select-item-active-bg;\n }\n\n &-selected:not(&-disabled) {\n color: @select-item-selected-color;\n font-weight: @select-item-selected-font-weight;\n background-color: @select-item-selected-bg;\n\n .@{select-prefix-cls}-item-option-state {\n color: @primary-color;\n }\n }\n\n &-disabled {\n &.@{select-prefix-cls}-item-option-selected {\n background-color: @select-multiple-disabled-background;\n }\n color: @disabled-color;\n cursor: not-allowed;\n }\n\n &-grouped {\n padding-left: @control-padding-horizontal * 2;\n }\n }\n }\n\n // ============================================================\n // == Size ==\n // ============================================================\n &-lg {\n font-size: @font-size-lg;\n }\n\n // no border style\n &-borderless &-selector {\n background-color: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n }\n\n &&-in-form-item {\n width: 100%;\n }\n\n // ===================== Compact Item Styles =====================\n .compact-item(@select-prefix-cls, ~'@{select-prefix-cls}-selector', ~'@{select-prefix-cls}-focused');\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import (reference) '../../style/themes/index';\n@select-prefix-cls: ~'@{ant-prefix}-select';\n\n@select-overflow-prefix-cls: ~'@{select-prefix-cls}-selection-overflow';\n@select-multiple-item-border-width: 1px;\n\n@select-multiple-padding: max(\n @input-padding-vertical-base - @select-multiple-item-border-width -\n @select-multiple-item-spacing-half,\n 0\n);\n\n/**\n * Do not merge `height` & `line-height` under style with `selection` & `search`,\n * since chrome may update to redesign with its align logic.\n */\n\n// =========================== Overflow ===========================\n.@{select-overflow-prefix-cls} {\n position: relative;\n display: flex;\n flex: auto;\n flex-wrap: wrap;\n max-width: 100%;\n\n &-item {\n flex: none;\n align-self: center;\n max-width: 100%;\n }\n}\n\n.@{select-prefix-cls} {\n &-multiple {\n // ========================= Selector =========================\n .@{select-prefix-cls}-selector {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n // Multiple is little different that horizontal is follow the vertical\n padding: @select-multiple-padding @input-padding-vertical-base;\n\n .@{select-prefix-cls}-show-search& {\n cursor: text;\n }\n\n .@{select-prefix-cls}-disabled& {\n background: @select-multiple-disabled-background;\n cursor: not-allowed;\n }\n\n &::after {\n display: inline-block;\n width: 0;\n margin: @select-multiple-item-spacing-half 0;\n line-height: @select-multiple-item-height;\n visibility: hidden;\n content: '\\a0';\n }\n }\n\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selector,\n &.@{select-prefix-cls}-allow-clear .@{select-prefix-cls}-selector {\n padding-right: @font-size-sm + @control-padding-horizontal;\n }\n\n // ======================== Selections ========================\n .@{select-prefix-cls}-selection-item {\n position: relative;\n display: flex;\n flex: none;\n box-sizing: border-box;\n max-width: 100%;\n\n height: @select-multiple-item-height;\n margin-top: @select-multiple-item-spacing-half;\n margin-bottom: @select-multiple-item-spacing-half;\n line-height: @select-multiple-item-height - @select-multiple-item-border-width * 2;\n background: @select-selection-item-bg;\n border: 1px solid @select-selection-item-border-color;\n border-radius: @border-radius-base;\n cursor: default;\n transition: font-size 0.3s, line-height 0.3s, height 0.3s;\n user-select: none;\n margin-inline-end: @input-padding-vertical-base;\n padding-inline-start: @padding-xs;\n padding-inline-end: (@padding-xs / 2);\n\n .@{select-prefix-cls}-disabled& {\n color: @select-multiple-item-disabled-color;\n border-color: @select-multiple-item-disabled-border-color;\n cursor: not-allowed;\n }\n\n // It's ok not to do this, but 24px makes bottom narrow in view should adjust\n &-content {\n display: inline-block;\n margin-right: (@padding-xs / 2);\n overflow: hidden;\n white-space: pre; // fix whitespace wrapping. custom tags display all whitespace within.\n text-overflow: ellipsis;\n }\n\n &-remove {\n .iconfont-mixin();\n display: inline-flex;\n align-items: center;\n color: @text-color-secondary;\n font-weight: bold;\n font-size: 10px;\n line-height: inherit;\n cursor: pointer;\n\n > .@{iconfont-css-prefix} {\n vertical-align: middle;\n }\n\n &:hover {\n color: @icon-color-hover;\n }\n }\n }\n\n // ========================== Input ==========================\n .@{select-overflow-prefix-cls}-item + .@{select-overflow-prefix-cls}-item {\n .@{select-prefix-cls}-selection-search {\n margin-inline-start: 0;\n }\n }\n\n .@{select-prefix-cls}-selection-search {\n position: relative;\n max-width: 100%;\n margin-inline-start: @input-padding-horizontal-base - @input-padding-vertical-base;\n\n &-input,\n &-mirror {\n height: @select-multiple-item-height;\n font-family: @font-family;\n line-height: @select-multiple-item-height;\n transition: all 0.3s;\n }\n\n &-input {\n width: 100%;\n min-width: 4.1px; // fix search cursor missing\n }\n\n &-mirror {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 999;\n white-space: pre; // fix whitespace wrapping caused width calculation bug\n visibility: hidden;\n }\n }\n\n // ======================= Placeholder =======================\n .@{select-prefix-cls}-selection-placeholder {\n position: absolute;\n top: 50%;\n right: @input-padding-horizontal;\n left: @input-padding-horizontal;\n transform: translateY(-50%);\n transition: all 0.3s;\n }\n\n // ============================================================\n // == Size ==\n // ============================================================\n .select-size(@suffix, @input-height) {\n @merged-cls: ~'@{select-prefix-cls}-@{suffix}';\n &.@{merged-cls} {\n @select-selection-height: @input-height - @input-padding-vertical-base * 2;\n @select-height-without-border: @input-height - @border-width-base * 2;\n\n .@{select-prefix-cls}-selector::after {\n line-height: @select-selection-height;\n }\n\n .@{select-prefix-cls}-selection-item {\n height: @select-selection-height;\n line-height: @select-selection-height - @border-width-base * 2;\n }\n\n .@{select-prefix-cls}-selection-search {\n height: @select-selection-height;\n line-height: @select-selection-height;\n\n &-input,\n &-mirror {\n height: @select-selection-height;\n line-height: @select-selection-height - @border-width-base * 2;\n }\n }\n }\n }\n\n .select-size('lg', @input-height-lg);\n .select-size('sm', @input-height-sm);\n\n // Size small need additional set padding\n &.@{select-prefix-cls}-sm {\n .@{select-prefix-cls}-selection-placeholder {\n left: @input-padding-horizontal-sm;\n }\n // https://github.com/ant-design/ant-design/issues/29559\n .@{select-prefix-cls}-selection-search {\n margin-inline-start: 3px;\n }\n }\n }\n\n &-disabled .@{select-prefix-cls}-selection-item-remove {\n display: none;\n }\n}\n","@import '../../input/style/mixin';\n\n@select-prefix-cls: ~'@{ant-prefix}-select';\n@pagination-prefix-cls: ~'@{ant-prefix}-pagination';\n\n.select-status-color(\n @text-color;\n @border-color;\n @background-color;\n @hoverBorderColor;\n @outlineColor;\n) {\n &.@{select-prefix-cls}:not(.@{select-prefix-cls}-disabled):not(.@{select-prefix-cls}-customize-input):not(.@{pagination-prefix-cls}-size-changer) {\n .@{select-prefix-cls}-selector {\n background-color: @background-color;\n border-color: @border-color !important;\n }\n &.@{select-prefix-cls}-open .@{select-prefix-cls}-selector,\n &.@{select-prefix-cls}-focused .@{select-prefix-cls}-selector {\n .active(@border-color, @hoverBorderColor, @outlineColor);\n }\n }\n}\n\n.@{select-prefix-cls} {\n &-status-error {\n .select-status-color(@error-color, @error-color, @select-background, @error-color-hover, @error-color-outline);\n }\n\n &-status-warning {\n .select-status-color(@warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n }\n\n &-status-error,\n &-status-warning,\n &-status-success,\n &-status-validating {\n &.@{select-prefix-cls}-has-feedback {\n //.@{prefix-cls}-arrow,\n .@{select-prefix-cls}-clear {\n right: 32px;\n }\n\n .@{select-prefix-cls}-selection-selected-value {\n padding-right: 42px;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@input-affix-with-clear-btn-width: 38px;\n\n// size mixins for input\n.input-lg() {\n padding: @input-padding-vertical-lg @input-padding-horizontal-lg;\n font-size: @font-size-lg;\n}\n\n.input-sm() {\n padding: @input-padding-vertical-sm @input-padding-horizontal-sm;\n}\n\n// input status\n// == when focus or active\n.active(@borderColor: @primary-color; @hoverBorderColor: @primary-color-hover; @outlineColor: @primary-color-outline) {\n & when (@theme = dark) {\n border-color: @borderColor;\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n border-color: @hoverBorderColor;\n }\n & when not (@theme = variable) {\n box-shadow: @input-outline-offset @outline-blur-size @outline-width\n fade(@borderColor, @outline-fade);\n }\n & when (@theme = variable) {\n border-color: @hoverBorderColor;\n box-shadow: @input-outline-offset @outline-blur-size @outline-width @outlineColor;\n }\n border-right-width: @border-width-base;\n outline: 0;\n}\n\n// == when hover\n.hover(@color: @input-hover-border-color) {\n border-color: @color;\n border-right-width: @border-width-base;\n}\n\n.disabled() {\n color: @input-disabled-color;\n background-color: @input-disabled-bg;\n border-color: @input-border-color;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n\n &:hover {\n .hover(@input-border-color);\n }\n}\n\n// Basic style for input\n.input() {\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: @input-padding-vertical-base @input-padding-horizontal-base;\n color: @input-color;\n font-size: @font-size-base;\n line-height: @line-height-base;\n background-color: @input-bg;\n background-image: none;\n border: @border-width-base @border-style-base @input-border-color;\n border-radius: @control-border-radius;\n transition: all 0.3s;\n .placeholder(); // Reset placeholder\n\n &:hover {\n .hover();\n }\n\n &:focus,\n &-focused {\n .active();\n }\n\n &-disabled {\n .disabled();\n }\n\n &[disabled] {\n .disabled();\n }\n\n &-borderless {\n &,\n &:hover,\n &:focus,\n &-focused,\n &-disabled,\n &[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n }\n }\n\n // Reset height for `textarea`s\n textarea& {\n max-width: 100%; // prevent textearea resize from coming out of its container\n height: auto;\n min-height: @input-height-base;\n line-height: @line-height-base;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n }\n\n // Size\n &-lg {\n .input-lg();\n }\n\n &-sm {\n .input-sm();\n }\n}\n\n// label input\n.input-group(@inputClass) {\n position: relative;\n display: table;\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n\n // Undo padding and float of grid classes\n &[class*='col-'] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n }\n\n > [class*='col-'] {\n padding-right: 8px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n\n &-addon,\n &-wrap,\n > .@{inputClass} {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n }\n\n &-addon,\n &-wrap {\n width: 1px; // To make addon/wrap as small as possible\n white-space: nowrap;\n vertical-align: middle;\n }\n\n &-wrap > * {\n display: block !important;\n }\n\n .@{inputClass} {\n float: left;\n width: 100%;\n margin-bottom: 0;\n text-align: inherit;\n\n &:focus {\n z-index: 1; // Fix https://gw.alipayobjects.com/zos/rmsportal/DHNpoqfMXSfrSnlZvhsJ.png\n border-right-width: 1px;\n }\n\n &:hover {\n z-index: 1;\n border-right-width: 1px;\n .@{ant-prefix}-input-search-with-button & {\n z-index: 0;\n }\n }\n }\n\n &-addon {\n position: relative;\n padding: 0 @input-padding-horizontal-base;\n color: @input-color;\n font-weight: normal;\n font-size: @font-size-base;\n text-align: center;\n background-color: @input-addon-bg;\n border: @border-width-base @border-style-base @input-border-color;\n border-radius: @control-border-radius;\n transition: all 0.3s;\n\n // Reset Select's style in addon\n .@{ant-prefix}-select {\n margin: -(@input-padding-vertical-base + 1px) (-@input-padding-horizontal-base);\n\n &.@{ant-prefix}-select-single:not(.@{ant-prefix}-select-customize-input)\n .@{ant-prefix}-select-selector {\n background-color: inherit;\n border: @border-width-base @border-style-base transparent;\n box-shadow: none;\n }\n\n &-open,\n &-focused {\n .@{ant-prefix}-select-selector {\n color: @primary-color;\n }\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/31333\n .@{ant-prefix}-cascader-picker {\n margin: -9px (-@control-padding-horizontal);\n background-color: transparent;\n .@{ant-prefix}-cascader-input {\n text-align: left;\n border: 0;\n box-shadow: none;\n }\n }\n }\n\n // Reset rounded corners\n > .@{inputClass}:first-child,\n &-addon:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n // Reset Select's style in addon\n .@{ant-prefix}-select .@{ant-prefix}-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n > .@{inputClass}-affix-wrapper {\n &:not(:first-child) .@{inputClass} {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n &:not(:last-child) .@{inputClass} {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n &-addon:first-child {\n border-right: 0;\n }\n\n &-addon:last-child {\n border-left: 0;\n }\n\n > .@{inputClass}:last-child,\n &-addon:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n // Reset Select's style in addon\n .@{ant-prefix}-select .@{ant-prefix}-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n\n // Sizing options\n &-lg .@{inputClass},\n &-lg > &-addon {\n .input-lg();\n }\n\n &-sm .@{inputClass},\n &-sm > &-addon {\n .input-sm();\n }\n\n // Fix https://github.com/ant-design/ant-design/issues/5754\n &-lg .@{ant-prefix}-select-single .@{ant-prefix}-select-selector {\n height: @input-height-lg;\n }\n\n &-sm .@{ant-prefix}-select-single .@{ant-prefix}-select-selector {\n height: @input-height-sm;\n }\n\n .@{inputClass}-affix-wrapper {\n &:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n .@{ant-prefix}-input-search & {\n border-top-left-radius: @control-border-radius;\n border-bottom-left-radius: @control-border-radius;\n }\n }\n\n &:not(:first-child),\n .@{ant-prefix}-input-search &:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n\n &&-compact {\n display: block;\n .clearfix();\n\n &-addon,\n &-wrap,\n > .@{inputClass} {\n &:not(:first-child):not(:last-child) {\n border-right-width: @border-width-base;\n\n &:hover {\n z-index: 1;\n }\n\n &:focus {\n z-index: 1;\n }\n }\n }\n\n & > * {\n display: inline-block;\n float: none;\n vertical-align: top; // https://github.com/ant-design/ant-design-pro/issues/139\n border-radius: 0;\n }\n\n & > .@{inputClass}-affix-wrapper,\n & > .@{inputClass}-number-affix-wrapper,\n & > .@{ant-prefix}-picker-range {\n display: inline-flex;\n }\n\n & > *:not(:last-child) {\n margin-right: -@border-width-base;\n border-right-width: @border-width-base;\n }\n\n // Undo float for .ant-input-group .ant-input\n .@{inputClass} {\n float: none;\n }\n\n // reset border for Select, DatePicker, AutoComplete, Cascader, Mention, TimePicker, Input\n & > .@{ant-prefix}-select > .@{ant-prefix}-select-selector,\n & > .@{ant-prefix}-select-auto-complete .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker .@{ant-prefix}-input,\n & > .@{ant-prefix}-input-group-wrapper .@{ant-prefix}-input {\n border-right-width: @border-width-base;\n border-radius: 0;\n\n &:hover {\n z-index: 1;\n }\n\n &:focus {\n z-index: 1;\n }\n }\n\n & > .@{ant-prefix}-select-focused {\n z-index: 1;\n }\n\n // update z-index for arrow icon\n & > .@{ant-prefix}-select > .@{ant-prefix}-select-arrow {\n z-index: 1; // https://github.com/ant-design/ant-design/issues/20371\n }\n\n & > *:first-child,\n & > .@{ant-prefix}-select:first-child > .@{ant-prefix}-select-selector,\n & > .@{ant-prefix}-select-auto-complete:first-child .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker:first-child .@{ant-prefix}-input {\n border-top-left-radius: @control-border-radius;\n border-bottom-left-radius: @control-border-radius;\n }\n\n & > *:last-child,\n & > .@{ant-prefix}-select:last-child > .@{ant-prefix}-select-selector,\n & > .@{ant-prefix}-cascader-picker:last-child .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker-focused:last-child .@{ant-prefix}-input {\n border-right-width: @border-width-base;\n border-top-right-radius: @control-border-radius;\n border-bottom-right-radius: @control-border-radius;\n }\n\n // https://github.com/ant-design/ant-design/issues/12493\n & > .@{ant-prefix}-select-auto-complete .@{ant-prefix}-input {\n vertical-align: top;\n }\n\n .@{ant-prefix}-input-group-wrapper + .@{ant-prefix}-input-group-wrapper {\n margin-left: -1px;\n .@{ant-prefix}-input-affix-wrapper {\n border-radius: 0;\n }\n }\n\n .@{ant-prefix}-input-group-wrapper:not(:last-child) {\n &.@{ant-prefix}-input-search > .@{ant-prefix}-input-group {\n & > .@{ant-prefix}-input-group-addon > .@{ant-prefix}-input-search-button {\n border-radius: 0;\n }\n\n & > .@{ant-prefix}-input {\n border-radius: @control-border-radius 0 0 @control-border-radius;\n }\n }\n }\n }\n}\n\n.status-color(\n @prefix-cls: @input-prefix-cls;\n @text-color: @input-color;\n @border-color: @input-border-color;\n @background-color: @input-bg;\n @hoverBorderColor: @primary-color-hover;\n @outlineColor: @primary-color-outline;\n) {\n &:not(.@{prefix-cls}-disabled):not(.@{prefix-cls}-borderless).@{prefix-cls} {\n &,\n &:hover {\n background: @background-color;\n border-color: @border-color;\n }\n\n &:focus,\n &-focused {\n .active(@text-color, @hoverBorderColor, @outlineColor);\n }\n }\n}\n\n.status-color-common(\n @prefix-cls: @input-prefix-cls;\n @text-color: @input-color;\n @border-color: @input-border-color;\n @background-color: @input-bg;\n @hoverBorderColor: @primary-color-hover;\n @outlineColor: @primary-color-outline;\n) {\n .@{prefix-cls}-prefix {\n color: @text-color;\n }\n}\n\n.group-status-color(\n @prefix-cls: @input-prefix-cls;\n @text-color: @input-color;\n @border-color: @input-border-color;\n) {\n .@{prefix-cls}-group-addon {\n color: @text-color;\n border-color: @border-color;\n }\n}\n",".compact-item-border-radius(@prefix-cls, @bordered-item-cls: null) {\n & when (@bordered-item-cls = null) {\n // border-radius\n &-item:not(&-first-item):not(&-last-item).@{prefix-cls} {\n border-radius: 0;\n }\n\n &-item.@{prefix-cls}&-first-item:not(&-last-item):not(&-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &-item.@{prefix-cls}&-last-item:not(&-first-item):not(&-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n // ----------rtl for first item----------\n &-item.@{prefix-cls}&-item-rtl&-first-item:not(&-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n // ----------rtl for last item----------\n &-item.@{prefix-cls}&-item-rtl&-last-item:not(&-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n & when (not (@bordered-item-cls = null)) {\n // border-radius\n &-item:not(&-first-item):not(&-last-item).@{prefix-cls} > .@{bordered-item-cls} {\n border-radius: 0;\n }\n\n &-item&-first-item.@{prefix-cls}:not(&-last-item):not(&-item-rtl) > .@{bordered-item-cls} {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &-item&-last-item.@{prefix-cls}:not(&-first-item):not(&-item-rtl) > .@{bordered-item-cls} {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n // ----------rtl for first item----------\n &-item.@{prefix-cls}&-first-item&-item-rtl:not(&-last-item) > .@{bordered-item-cls} {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n // ----------rtl for last item----------\n &-item.@{prefix-cls}&-last-item&-item-rtl:not(&-first-item) > .@{bordered-item-cls} {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n}\n\n.compact-item-border(@prefix-cls, @bordered-item-cls: null, @special-open-cls) {\n & when (@bordered-item-cls = null) {\n // border collapse\n &-item:not(&-last-item):not(&-item-rtl) {\n margin-right: -@border-width-base;\n }\n\n // rtl border collapse\n &-item:not(&-last-item)&-item-rtl {\n margin-left: -@border-width-base;\n }\n\n &-item {\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n\n // Select has an extra focus className\n & when (not (@special-item-cls = null)) {\n &.@{special-item-cls} {\n z-index: 2;\n }\n }\n\n &[disabled] {\n z-index: 0;\n }\n }\n }\n\n & when (not (@bordered-item-cls = null)) {\n // border collapse\n &-item:not(&-last-item) {\n margin-right: -@border-width-base;\n\n &.@{prefix-cls}-compact-item-rtl {\n margin-right: 0;\n margin-left: -@border-width-base;\n }\n }\n\n &-item {\n &:hover,\n &:focus,\n &:active {\n > * {\n z-index: 2;\n }\n }\n\n // Select has an special focus-item\n & when (not (@special-item-cls = null)) {\n &.@{special-item-cls} > * {\n z-index: 2;\n }\n }\n\n &[disabled] > * {\n z-index: 0;\n }\n }\n }\n}\n\n.compact-item(@prefix-cls, @bordered-item-cls: null, @special-item-cls: null) {\n &-compact {\n .compact-item-border(@prefix-cls, @bordered-item-cls, @special-item-cls);\n\n .compact-item-border-radius(@prefix-cls, @bordered-item-cls);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n\n@select-prefix-cls: ~'@{ant-prefix}-select';\n\n.@{select-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n // ========================== Arrow ==========================\n &-arrow {\n .@{select-prefix-cls}-rtl & {\n right: initial;\n left: @control-padding-horizontal - 1px;\n }\n }\n\n // ========================== Clear ==========================\n &-clear {\n .@{select-prefix-cls}-rtl & {\n right: initial;\n left: @control-padding-horizontal - 1px;\n }\n }\n\n // ========================== Popup ==========================\n &-dropdown {\n &-rtl {\n direction: rtl;\n }\n }\n\n // ========================= Options =========================\n &-item {\n &-option {\n &-grouped {\n .@{select-prefix-cls}-dropdown-rtl & {\n padding-right: @control-padding-horizontal * 2;\n padding-left: @control-padding-horizontal;\n }\n }\n }\n }\n}\n\n// multiple\n@select-multiple-item-border-width: 1px;\n@select-multiple-item-spacing-half: ceil((@input-padding-vertical-base / 2));\n@select-multiple-padding: max(\n @input-padding-vertical-base - @select-multiple-item-border-width -\n @select-multiple-item-spacing-half,\n 0\n);\n\n.@{select-prefix-cls}-multiple {\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selector,\n &.@{select-prefix-cls}-allow-clear .@{select-prefix-cls}-selector {\n .@{select-prefix-cls}-rtl& {\n padding-right: @input-padding-vertical-base;\n padding-left: @font-size-sm + @control-padding-horizontal;\n }\n }\n\n // ======================== Selections ========================\n .@{select-prefix-cls}-selection-item {\n .@{select-prefix-cls}-rtl& {\n text-align: right;\n }\n // It's ok not to do this, but 24px makes bottom narrow in view should adjust\n &-content {\n .@{select-prefix-cls}-rtl& {\n margin-right: 0;\n margin-left: (@padding-xs / 2);\n text-align: right;\n }\n }\n }\n\n // ========================== Input ==========================\n .@{select-prefix-cls}-selection-search {\n &-mirror {\n .@{select-prefix-cls}-rtl& {\n right: 0;\n left: auto;\n }\n }\n }\n\n // ======================= Placeholder =======================\n .@{select-prefix-cls}-selection-placeholder {\n .@{select-prefix-cls}-rtl& {\n right: @input-padding-horizontal;\n left: auto;\n }\n }\n\n // ============================================================\n // == Size ==\n // ============================================================\n\n // Size small need additional set padding\n &.@{select-prefix-cls}-sm {\n .@{select-prefix-cls}-selection-placeholder {\n .@{select-prefix-cls}-rtl& {\n right: @input-padding-horizontal-sm;\n }\n }\n }\n}\n\n// single\n@selection-item-padding: ceil(@font-size-base * 1.25);\n\n.@{select-prefix-cls}-single {\n // ========================= Selector =========================\n .@{select-prefix-cls}-selector {\n .@{select-prefix-cls}-selection-item,\n .@{select-prefix-cls}-selection-placeholder {\n .@{select-prefix-cls}-rtl& {\n right: 0;\n left: 9px;\n text-align: right;\n }\n }\n }\n\n // With arrow should provides `padding-right` to show the arrow\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-search {\n .@{select-prefix-cls}-rtl& {\n right: @input-padding-horizontal-base;\n left: @input-padding-horizontal-base + @font-size-base;\n }\n }\n\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-item,\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-placeholder {\n .@{select-prefix-cls}-rtl& {\n padding-right: 0;\n padding-left: @selection-item-padding;\n }\n }\n\n // ============================================================\n // == Size ==\n // ============================================================\n\n // Size small need additional set padding\n &.@{select-prefix-cls}-sm {\n &:not(.@{select-prefix-cls}-customize-input) {\n // With arrow should provides `padding-right` to show the arrow\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-search {\n .@{select-prefix-cls}-rtl& {\n right: @input-padding-horizontal-sm - 1px;\n }\n }\n\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-item,\n &.@{select-prefix-cls}-show-arrow .@{select-prefix-cls}-selection-placeholder {\n .@{select-prefix-cls}-rtl& {\n padding-right: 0;\n padding-left: @font-size-base * 1.5;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@empty-prefix-cls: ~'@{ant-prefix}-empty';\n@empty-img-prefix-cls: ~'@{ant-prefix}-empty-img';\n\n.@{empty-prefix-cls} {\n margin: 0 8px;\n font-size: @empty-font-size;\n line-height: @line-height-base;\n text-align: center;\n\n &-image {\n height: 100px;\n margin-bottom: 8px;\n\n img {\n height: 100%;\n }\n\n svg {\n height: 100%;\n margin: auto;\n }\n }\n\n &-footer {\n margin-top: 16px;\n }\n\n // antd internal empty style\n &-normal {\n margin: 32px 0;\n color: @disabled-color;\n\n .@{empty-prefix-cls}-image {\n height: 40px;\n }\n }\n\n &-small {\n margin: 8px 0;\n color: @disabled-color;\n\n .@{empty-prefix-cls}-image {\n height: 35px;\n }\n }\n}\n\n.@{empty-img-prefix-cls}-default {\n // not support the definition because the less variables have no meaning\n & when (@theme = dark) {\n &-ellipse {\n fill: @white;\n fill-opacity: 0.08;\n }\n\n &-path {\n &-1 {\n fill: #262626;\n }\n\n &-2 {\n fill: url('#linearGradient-1');\n }\n\n &-3 {\n fill: #595959;\n }\n\n &-4 {\n fill: #434343;\n }\n\n &-5 {\n fill: #595959;\n }\n }\n\n &-g {\n fill: #434343;\n }\n }\n & when not (@theme = dark) {\n &-ellipse {\n fill: #f5f5f5;\n fill-opacity: 0.8;\n }\n\n &-path {\n &-1 {\n fill: #aeb8c2;\n }\n\n &-2 {\n fill: url('#linearGradient-1');\n }\n\n &-3 {\n fill: #f5f5f7;\n }\n\n &-4 {\n fill: #dce0e6;\n }\n\n &-5 {\n fill: #dce0e6;\n }\n }\n\n &-g {\n fill: @white;\n }\n }\n}\n\n.@{empty-img-prefix-cls}-simple {\n // not support the definition because the less variables have no meaning\n & when (@theme = dark) {\n &-ellipse {\n fill: @white;\n fill-opacity: 0.08;\n }\n\n &-g {\n stroke: #434343;\n }\n\n &-path {\n fill: #262626;\n stroke: #434343;\n }\n }\n & when not (@theme = dark) {\n &-ellipse {\n fill: #f5f5f5;\n }\n\n &-g {\n stroke: #d9d9d9;\n }\n\n &-path {\n fill: #fafafa;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@empty-prefix-cls: ~'@{ant-prefix}-empty';\n\n.@{empty-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@avatar-prefix-cls: ~'@{ant-prefix}-avatar';\n\n.@{avatar-prefix-cls} {\n .reset-component();\n\n position: relative;\n display: inline-block;\n overflow: hidden;\n color: @avatar-color;\n white-space: nowrap;\n text-align: center;\n vertical-align: middle;\n background: @avatar-bg;\n\n &-image {\n background: transparent;\n }\n\n .@{ant-prefix}-image-img {\n display: block;\n }\n\n .avatar-size(@avatar-size-base, @avatar-font-size-base);\n\n &-lg {\n .avatar-size(@avatar-size-lg, @avatar-font-size-lg);\n }\n\n &-sm {\n .avatar-size(@avatar-size-sm, @avatar-font-size-sm);\n }\n\n &-square {\n border-radius: @avatar-border-radius;\n }\n\n & > img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n}\n\n.avatar-size(@size, @font-size) {\n width: @size;\n height: @size;\n line-height: @size;\n border-radius: 50%;\n\n &-string {\n position: absolute;\n left: 50%;\n transform-origin: 0 center;\n }\n\n &.@{avatar-prefix-cls}-icon {\n font-size: @font-size;\n\n > .@{iconfont-css-prefix} {\n margin: 0;\n }\n }\n}\n\n@import './group';\n@import './rtl';\n\n@root-entry-name: default;",".@{avatar-prefix-cls}-group {\n display: inline-flex;\n\n .@{avatar-prefix-cls} {\n border: 1px solid @avatar-group-border-color;\n\n &:not(:first-child) {\n margin-left: @avatar-group-overlapping;\n }\n }\n\n &-popover {\n .@{ant-prefix}-avatar + .@{ant-prefix}-avatar {\n margin-left: @avatar-group-space;\n }\n }\n}\n",".@{avatar-prefix-cls}-group {\n &-rtl {\n .@{avatar-prefix-cls}:not(:first-child) {\n margin-right: @avatar-group-overlapping;\n margin-left: 0;\n }\n }\n\n &-popover.@{ant-prefix}-popover-rtl {\n .@{ant-prefix}-avatar + .@{ant-prefix}-avatar {\n margin-right: @avatar-group-space;\n margin-left: 0;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@popover-prefix-cls: ~'@{ant-prefix}-popover';\n\n@popover-arrow-rotate-width: sqrt(@popover-arrow-width * @popover-arrow-width * 2) + 6px;\n\n@popover-arrow-offset-vertical: 12px;\n@popover-arrow-offset-horizontal: 16px;\n\n.@{popover-prefix-cls} {\n .reset-component();\n\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n max-width: 100vw;\n font-weight: normal;\n white-space: normal;\n text-align: left;\n cursor: auto;\n user-select: text;\n\n &-content {\n position: relative;\n }\n\n &::after {\n position: absolute;\n background: fade(@white, 1%);\n content: '';\n }\n\n &-hidden {\n display: none;\n }\n\n // Offset the popover to account for the popover arrow\n &-placement-top,\n &-placement-topLeft,\n &-placement-topRight {\n padding-bottom: @popover-distance;\n }\n\n &-placement-right,\n &-placement-rightTop,\n &-placement-rightBottom {\n padding-left: @popover-distance;\n }\n\n &-placement-bottom,\n &-placement-bottomLeft,\n &-placement-bottomRight {\n padding-top: @popover-distance;\n }\n\n &-placement-left,\n &-placement-leftTop,\n &-placement-leftBottom {\n padding-right: @popover-distance;\n }\n\n &-inner {\n background-color: @popover-bg;\n background-clip: padding-box;\n border-radius: @border-radius-base;\n box-shadow: @box-shadow-base;\n }\n\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n /* IE10+ */\n &-inner {\n box-shadow: @box-shadow-base;\n }\n }\n\n &-title {\n min-width: @popover-min-width;\n min-height: @popover-min-height;\n margin: 0; // reset heading margin\n padding: 5px @popover-padding-horizontal 4px;\n color: @heading-color;\n font-weight: 500;\n border-bottom: 1px solid @border-color-split;\n }\n\n &-inner-content {\n width: max-content;\n max-width: 100%;\n padding: @padding-sm @popover-padding-horizontal;\n color: @popover-color;\n }\n\n &-message {\n display: flex;\n padding: 4px 0 12px;\n color: @popover-color;\n font-size: @font-size-base;\n\n &-icon {\n display: inline-block;\n margin-right: 8px;\n color: @warning-color;\n font-size: @font-size-base;\n }\n }\n\n &-buttons {\n margin-bottom: 4px;\n text-align: right;\n\n button:not(:first-child) {\n margin-left: 8px;\n }\n }\n\n // Arrows\n &-arrow {\n position: absolute;\n display: block;\n width: @popover-arrow-rotate-width;\n height: @popover-arrow-rotate-width;\n overflow: hidden;\n background: transparent;\n pointer-events: none;\n\n &-content {\n --antd-arrow-background-color: @popover-bg;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n width: @popover-arrow-width;\n height: @popover-arrow-width;\n margin: auto;\n content: '';\n pointer-events: auto;\n .roundedArrow(@popover-arrow-width, 5px);\n }\n }\n\n &-placement-top &-arrow,\n &-placement-topLeft &-arrow,\n &-placement-topRight &-arrow {\n bottom: 0;\n transform: translateY(100%);\n\n &-content {\n box-shadow: 3px 3px 7px fade(@black, 7%);\n transform: translateY((-@popover-arrow-rotate-width / 2)) rotate(45deg);\n }\n }\n\n &-placement-top &-arrow {\n left: 50%;\n transform: translateY(100%) translateX(-50%);\n }\n\n &-placement-topLeft &-arrow {\n left: @popover-arrow-offset-horizontal;\n }\n\n &-placement-topRight &-arrow {\n right: @popover-arrow-offset-horizontal;\n }\n\n &-placement-right &-arrow,\n &-placement-rightTop &-arrow,\n &-placement-rightBottom &-arrow {\n left: 0;\n transform: translateX(-100%);\n\n &-content {\n box-shadow: 3px 3px 7px fade(@black, 7%);\n transform: translateX((@popover-arrow-rotate-width / 2)) rotate(135deg);\n }\n }\n\n &-placement-right &-arrow {\n top: 50%;\n transform: translateX(-100%) translateY(-50%);\n }\n\n &-placement-rightTop &-arrow {\n top: @popover-arrow-offset-vertical;\n }\n\n &-placement-rightBottom &-arrow {\n bottom: @popover-arrow-offset-vertical;\n }\n\n &-placement-bottom &-arrow,\n &-placement-bottomLeft &-arrow,\n &-placement-bottomRight &-arrow {\n top: 0;\n transform: translateY(-100%);\n\n &-content {\n box-shadow: 2px 2px 5px fade(@black, 6%);\n transform: translateY((@popover-arrow-rotate-width / 2)) rotate(-135deg);\n }\n }\n\n &-placement-bottom &-arrow {\n left: 50%;\n transform: translateY(-100%) translateX(-50%);\n }\n\n &-placement-bottomLeft &-arrow {\n left: @popover-arrow-offset-horizontal;\n }\n\n &-placement-bottomRight &-arrow {\n right: @popover-arrow-offset-horizontal;\n }\n\n &-placement-left &-arrow,\n &-placement-leftTop &-arrow,\n &-placement-leftBottom &-arrow {\n right: 0;\n transform: translateX(100%);\n\n &-content {\n box-shadow: 3px 3px 7px fade(@black, 7%);\n transform: translateX((-@popover-arrow-rotate-width / 2)) rotate(-45deg);\n }\n }\n\n &-placement-left &-arrow {\n top: 50%;\n transform: translateX(100%) translateY(-50%);\n }\n\n &-placement-leftTop &-arrow {\n top: @popover-arrow-offset-vertical;\n }\n\n &-placement-leftBottom &-arrow {\n bottom: @popover-arrow-offset-vertical;\n }\n}\n\n.generator-popover-preset-color(@i: length(@preset-colors)) when (@i > 0) {\n .generator-popover-preset-color(@i - 1);\n @color: extract(@preset-colors, @i);\n @lightColor: '@{color}-6';\n .@{popover-prefix-cls}-@{color} {\n .@{popover-prefix-cls}-inner {\n background-color: @@lightColor;\n }\n .@{popover-prefix-cls}-arrow {\n &-content {\n background-color: @@lightColor;\n }\n }\n }\n}\n.generator-popover-preset-color();\n\n@import './rtl';\n\n@root-entry-name: default;",".roundedArrow(@width, @outer-radius, @bg-color: var(--antd-arrow-background-color)) {\n @corner-height: unit(((@outer-radius) * (1 - 1 / sqrt(2))));\n\n @width-without-unit: unit(@width);\n @outer-radius-without-unit: unit(@outer-radius);\n @inner-radius-without-unit: unit(@arrow-border-radius);\n\n @a-x: @width-without-unit - @corner-height;\n @a-y: 2 * @width-without-unit + @corner-height;\n @b-x: @a-x + @outer-radius-without-unit * (1 / sqrt(2));\n @b-y: 2 * @width-without-unit;\n @c-x: 2 * @width-without-unit - @inner-radius-without-unit;\n @c-y: 2 * @width-without-unit;\n @d-x: 2 * @width-without-unit;\n @d-y: 2 * @width-without-unit - @inner-radius-without-unit;\n @e-x: 2 * @width-without-unit;\n @e-y: @f-y + @outer-radius-without-unit * (1 / sqrt(2));\n @f-x: 2 * @width-without-unit + @corner-height;\n @f-y: @width-without-unit - @corner-height;\n @g-x: @f-x - 1;\n @g-y: @f-y;\n @h-x: @a-x;\n @h-y: @a-y - 1;\n\n border-radius: 0 0 @arrow-border-radius;\n pointer-events: none;\n\n &::before {\n position: absolute;\n top: -@width;\n left: -@width;\n width: @width * 3;\n height: @width * 3;\n background: @bg-color;\n // Hack firefox: https://github.com/ant-design/ant-design/pull/33710#issuecomment-1015287825\n background-repeat: no-repeat;\n background-position: ceil(-@width + 1px) ceil(-@width + 1px);\n content: '';\n clip-path: inset(33% 33%); // For browsers that do not support path()\n clip-path: path(\n 'M @{a-x} @{a-y} A @{outer-radius-without-unit} @{outer-radius-without-unit} 0 0 1 @{b-x} @{b-y} L @{c-x} @{c-y} A @{inner-radius-without-unit} @{inner-radius-without-unit} 0 0 0 @{d-x} @{d-y} L @{e-x} @{e-y} A @{outer-radius-without-unit} @{outer-radius-without-unit} 0 0 1 @{f-x} @{f-y} L @{g-x} @{g-y} L @{h-x} @{h-y} Z'\n );\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@popover-prefix-cls: ~'@{ant-prefix}-popover';\n\n.@{popover-prefix-cls} {\n &-rtl {\n direction: rtl;\n text-align: right;\n }\n\n &-message {\n &-icon {\n .@{popover-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n\n &-title {\n .@{popover-prefix-cls}-rtl & {\n padding-left: @padding-md;\n }\n }\n }\n\n &-buttons {\n .@{popover-prefix-cls}-rtl & {\n text-align: left;\n }\n\n button {\n .@{popover-prefix-cls}-rtl & {\n margin-right: 8px;\n margin-left: 0;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@backtop-prefix-cls: ~'@{ant-prefix}-back-top';\n\n.@{backtop-prefix-cls} {\n .reset-component();\n\n position: fixed;\n right: 100px;\n bottom: 50px;\n z-index: @zindex-back-top;\n width: 40px;\n height: 40px;\n cursor: pointer;\n\n &:empty {\n display: none;\n }\n\n &-rtl {\n right: auto;\n left: 100px;\n direction: rtl;\n }\n\n &-content {\n width: 40px;\n height: 40px;\n overflow: hidden;\n color: @back-top-color;\n text-align: center;\n background-color: @back-top-bg;\n border-radius: 20px;\n transition: all 0.3s;\n\n &:hover {\n background-color: @back-top-hover-bg;\n transition: all 0.3s;\n }\n }\n\n &-icon {\n font-size: 24px;\n line-height: 40px;\n }\n}\n\n@import './responsive';\n\n@root-entry-name: default;","@media screen and (max-width: @screen-md) {\n .@{backtop-prefix-cls} {\n right: 60px;\n\n &-rtl {\n right: auto;\n left: 60px;\n }\n }\n}\n\n@media screen and (max-width: @screen-xs) {\n .@{backtop-prefix-cls} {\n right: 20px;\n\n &-rtl {\n right: auto;\n left: 20px;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@badge-prefix-cls: ~'@{ant-prefix}-badge';\n@number-prefix-cls: ~'@{ant-prefix}-scroll-number';\n\n.@{badge-prefix-cls} {\n .reset-component();\n\n position: relative;\n display: inline-block;\n line-height: 1;\n\n &-count {\n z-index: @zindex-badge;\n min-width: @badge-height;\n height: @badge-height;\n padding: 0 6px;\n color: @badge-text-color;\n font-weight: @badge-font-weight;\n font-size: @badge-font-size;\n line-height: @badge-height;\n white-space: nowrap;\n text-align: center;\n background: @badge-color;\n border-radius: (@badge-height / 2);\n box-shadow: 0 0 0 1px @shadow-color-inverse;\n\n a,\n a:hover {\n color: @badge-text-color;\n }\n }\n\n &-count-sm {\n min-width: @badge-height-sm;\n height: @badge-height-sm;\n padding: 0;\n font-size: @badge-font-size-sm;\n line-height: @badge-height-sm;\n border-radius: (@badge-height-sm / 2);\n }\n\n &-multiple-words {\n padding: 0 8px;\n }\n\n &-dot {\n z-index: @zindex-badge;\n width: @badge-dot-size;\n min-width: @badge-dot-size;\n height: @badge-dot-size;\n background: @highlight-color;\n border-radius: 100%;\n box-shadow: 0 0 0 1px @shadow-color-inverse;\n }\n\n // Tricky way to resolve https://github.com/ant-design/ant-design/issues/30088\n &-dot.@{number-prefix-cls} {\n transition: background 1.5s;\n }\n\n &-count,\n &-dot,\n .@{number-prefix-cls}-custom-component {\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n transform-origin: 100% 0%;\n\n &.@{iconfont-css-prefix}-spin {\n animation: antBadgeLoadingCircle 1s infinite linear;\n }\n }\n\n &-status {\n line-height: inherit;\n vertical-align: baseline;\n\n &-dot {\n position: relative;\n top: -1px;\n display: inline-block;\n width: @badge-status-size;\n height: @badge-status-size;\n vertical-align: middle;\n border-radius: 50%;\n }\n\n &-success {\n background-color: @success-color;\n }\n\n &-processing {\n position: relative;\n background-color: @processing-color;\n\n &::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid @processing-color;\n border-radius: 50%;\n animation: antStatusProcessing 1.2s infinite ease-in-out;\n content: '';\n }\n }\n\n &-default {\n background-color: @normal-color;\n }\n\n &-error {\n background-color: @error-color;\n }\n\n &-warning {\n background-color: @warning-color;\n }\n\n // mixin to iterate over colors and create CSS class for each one\n .make-color-classes(@i: length(@preset-colors)) when (@i > 0) {\n .make-color-classes(@i - 1);\n @color: extract(@preset-colors, @i);\n @darkColor: '@{color}-6';\n &-@{color} {\n background: @@darkColor;\n }\n }\n .make-color-classes();\n\n &-text {\n margin-left: 8px;\n color: @text-color;\n font-size: @font-size-base;\n }\n }\n\n &-zoom-appear,\n &-zoom-enter {\n animation: antZoomBadgeIn @animation-duration-slow @ease-out-back;\n animation-fill-mode: both;\n }\n\n &-zoom-leave {\n animation: antZoomBadgeOut @animation-duration-slow @ease-in-back;\n animation-fill-mode: both;\n }\n\n &-not-a-wrapper {\n .@{badge-prefix-cls}-zoom-appear,\n .@{badge-prefix-cls}-zoom-enter {\n animation: antNoWrapperZoomBadgeIn @animation-duration-slow @ease-out-back;\n }\n\n .@{badge-prefix-cls}-zoom-leave {\n animation: antNoWrapperZoomBadgeOut @animation-duration-slow @ease-in-back;\n }\n\n &:not(.@{badge-prefix-cls}-status) {\n vertical-align: middle;\n }\n\n .@{number-prefix-cls}-custom-component,\n .@{badge-prefix-cls}-count {\n transform: none;\n }\n\n .@{number-prefix-cls}-custom-component,\n .@{number-prefix-cls} {\n position: relative;\n top: auto;\n display: block;\n transform-origin: 50% 50%;\n }\n }\n}\n\n@keyframes antStatusProcessing {\n 0% {\n transform: scale(0.8);\n opacity: 0.5;\n }\n\n 100% {\n transform: scale(2.4);\n opacity: 0;\n }\n}\n\n// Safari will blink with transform when inner element has absolute style.\n.safari-fix-motion() {\n /* stylelint-disable property-no-vendor-prefix */\n -webkit-transform-style: preserve-3d;\n -webkit-backface-visibility: hidden;\n /* stylelint-enable property-no-vendor-prefix */\n}\n\n.@{number-prefix-cls} {\n overflow: hidden;\n direction: ltr;\n\n &-only {\n position: relative;\n display: inline-block;\n height: @badge-height;\n transition: all @animation-duration-slow @ease-in-out;\n .safari-fix-motion;\n\n > p.@{number-prefix-cls}-only-unit {\n height: @badge-height;\n margin: 0;\n .safari-fix-motion;\n }\n }\n\n &-symbol {\n vertical-align: top;\n }\n}\n\n@keyframes antZoomBadgeIn {\n 0% {\n transform: scale(0) translate(50%, -50%);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1) translate(50%, -50%);\n }\n}\n\n@keyframes antZoomBadgeOut {\n 0% {\n transform: scale(1) translate(50%, -50%);\n }\n\n 100% {\n transform: scale(0) translate(50%, -50%);\n opacity: 0;\n }\n}\n\n@keyframes antNoWrapperZoomBadgeIn {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes antNoWrapperZoomBadgeOut {\n 0% {\n transform: scale(1);\n }\n\n 100% {\n transform: scale(0);\n opacity: 0;\n }\n}\n\n@keyframes antBadgeLoadingCircle {\n 0% {\n transform-origin: 50%;\n }\n\n 100% {\n transform: translate(50%, -50%) rotate(360deg);\n transform-origin: 50%;\n }\n}\n\n@import './ribbon';\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@ribbon-prefix-cls: ~'@{ant-prefix}-ribbon';\n@ribbon-wrapper-prefix-cls: ~'@{ant-prefix}-ribbon-wrapper';\n\n.@{ribbon-wrapper-prefix-cls} {\n position: relative;\n}\n\n.@{ribbon-prefix-cls} {\n .reset-component();\n\n position: absolute;\n top: 8px;\n height: 22px;\n padding: 0 8px;\n color: @badge-text-color;\n line-height: 22px;\n white-space: nowrap;\n background-color: @primary-color;\n border-radius: @border-radius-sm;\n\n &-text {\n color: @white;\n }\n\n &-corner {\n position: absolute;\n top: 100%;\n width: 8px;\n height: 8px;\n color: currentcolor;\n border: 4px solid;\n transform: scaleY(0.75);\n transform-origin: top;\n // If not support IE 11, use filter: brightness(75%) instead\n &::after {\n position: absolute;\n top: -4px;\n left: -4px;\n width: inherit;\n height: inherit;\n color: rgba(0, 0, 0, 0.25);\n border: inherit;\n content: '';\n }\n }\n\n // colors\n // mixin to iterate over colors and create CSS class for each one\n .make-color-classes(@i: length(@preset-colors)) when (@i > 0) {\n .make-color-classes(@i - 1);\n @color: extract(@preset-colors, @i);\n @darkColor: '@{color}-6';\n &-color-@{color} {\n color: @@darkColor;\n background: @@darkColor;\n }\n }\n .make-color-classes();\n\n // placement\n &.@{ribbon-prefix-cls}-placement-end {\n right: -8px;\n border-bottom-right-radius: 0;\n .@{ribbon-prefix-cls}-corner {\n right: 0;\n border-color: currentcolor transparent transparent currentcolor;\n }\n }\n\n &.@{ribbon-prefix-cls}-placement-start {\n left: -8px;\n border-bottom-left-radius: 0;\n .@{ribbon-prefix-cls}-corner {\n left: 0;\n border-color: currentcolor currentcolor transparent transparent;\n }\n }\n}\n",".@{badge-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &:not(&-not-a-wrapper) &-count,\n &:not(&-not-a-wrapper) &-dot,\n &:not(&-not-a-wrapper) .@{number-prefix-cls}-custom-component {\n .@{badge-prefix-cls}-rtl& {\n right: auto;\n left: 0;\n direction: ltr;\n transform: translate(-50%, -50%);\n transform-origin: 0% 0%;\n }\n }\n\n &-rtl&:not(&-not-a-wrapper) .@{number-prefix-cls}-custom-component {\n right: auto;\n left: 0;\n transform: translate(-50%, -50%);\n transform-origin: 0% 0%;\n }\n\n &-status {\n &-text {\n .@{badge-prefix-cls}-rtl & {\n margin-right: 8px;\n margin-left: 0;\n }\n }\n }\n\n &:not(&-not-a-wrapper).@{badge-prefix-cls}-rtl {\n .@{badge-prefix-cls}-zoom-appear,\n .@{badge-prefix-cls}-zoom-enter {\n animation-name: antZoomBadgeInRtl;\n }\n\n .@{badge-prefix-cls}-zoom-leave {\n animation-name: antZoomBadgeOutRtl;\n }\n }\n}\n\n.@{ribbon-prefix-cls}-rtl {\n direction: rtl;\n &.@{ribbon-prefix-cls}-placement-end {\n right: unset;\n left: -8px;\n border-bottom-right-radius: @border-radius-sm;\n border-bottom-left-radius: 0;\n .@{ribbon-prefix-cls}-corner {\n right: unset;\n left: 0;\n border-color: currentcolor currentcolor transparent transparent;\n\n &::after {\n border-color: currentcolor currentcolor transparent transparent;\n }\n }\n }\n &.@{ribbon-prefix-cls}-placement-start {\n right: -8px;\n left: unset;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: @border-radius-sm;\n .@{ribbon-prefix-cls}-corner {\n right: 0;\n left: unset;\n border-color: currentcolor transparent transparent currentcolor;\n\n &::after {\n border-color: currentcolor transparent transparent currentcolor;\n }\n }\n }\n}\n\n@keyframes antZoomBadgeInRtl {\n 0% {\n transform: scale(0) translate(-50%, -50%);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1) translate(-50%, -50%);\n }\n}\n\n@keyframes antZoomBadgeOutRtl {\n 0% {\n transform: scale(1) translate(-50%, -50%);\n }\n\n 100% {\n transform: scale(0) translate(-50%, -50%);\n opacity: 0;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@breadcrumb-prefix-cls: ~'@{ant-prefix}-breadcrumb';\n\n.@{breadcrumb-prefix-cls} {\n .reset-component();\n\n color: @breadcrumb-base-color;\n font-size: @breadcrumb-font-size;\n\n .@{iconfont-css-prefix} {\n font-size: @breadcrumb-icon-font-size;\n }\n\n ol {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n a {\n color: @breadcrumb-link-color;\n transition: color 0.3s;\n\n &:hover {\n color: @breadcrumb-link-color-hover;\n }\n }\n\n li:last-child {\n color: @breadcrumb-last-item-color;\n\n a {\n color: @breadcrumb-last-item-color;\n }\n }\n\n li:last-child > &-separator {\n display: none;\n }\n\n &-separator {\n margin: @breadcrumb-separator-margin;\n color: @breadcrumb-separator-color;\n }\n\n &-link {\n > .@{iconfont-css-prefix} + span,\n > .@{iconfont-css-prefix} + a {\n margin-left: 4px;\n }\n }\n\n &-overlay-link {\n > .@{iconfont-css-prefix} {\n margin-left: 4px;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{breadcrumb-prefix-cls} {\n &-rtl {\n .clearfix();\n direction: rtl;\n\n > span {\n float: right;\n }\n }\n\n &-link {\n > .@{iconfont-css-prefix} + span,\n > .@{iconfont-css-prefix} + a {\n .@{breadcrumb-prefix-cls}-rtl & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n }\n\n &-overlay-link {\n > .@{iconfont-css-prefix} {\n .@{breadcrumb-prefix-cls}-rtl & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@dropdown-prefix-cls: ~'@{ant-prefix}-dropdown';\n\n.@{dropdown-prefix-cls}-menu-item {\n &&-danger {\n color: @error-color;\n\n &:hover {\n color: @text-color-inverse;\n background-color: @error-color;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './status';\n\n@dropdown-prefix-cls: ~'@{ant-prefix}-dropdown';\n\n.@{dropdown-prefix-cls} {\n .reset-component();\n\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: @zindex-dropdown;\n display: block;\n\n &::before {\n position: absolute;\n top: -@popover-distance + @popover-arrow-width;\n right: 0;\n bottom: -@popover-distance + @popover-arrow-width;\n left: -7px;\n z-index: -9999;\n opacity: 0.0001;\n content: ' ';\n }\n\n &-wrap {\n position: relative;\n\n .@{ant-prefix}-btn > .@{iconfont-css-prefix}-down {\n font-size: 10px;\n }\n\n .@{iconfont-css-prefix}-down::before {\n transition: transform @animation-duration-base;\n }\n }\n\n &-wrap-open {\n .@{iconfont-css-prefix}-down::before {\n transform: rotate(180deg);\n }\n }\n\n &-hidden,\n &-menu-hidden,\n &-menu-submenu-hidden {\n display: none;\n }\n\n // Offset the popover to account for the dropdown arrow\n &-show-arrow&-placement-topLeft,\n &-show-arrow&-placement-top,\n &-show-arrow&-placement-topRight {\n padding-bottom: @popover-distance;\n }\n\n &-show-arrow&-placement-bottomLeft,\n &-show-arrow&-placement-bottom,\n &-show-arrow&-placement-bottomRight {\n padding-top: @popover-distance;\n }\n\n // Arrows\n // .popover-arrow is outer, .popover-arrow:after is inner\n\n &-arrow {\n position: absolute;\n z-index: 1; // lift it up so the menu wouldn't cask shadow on it\n display: block;\n width: @popover-arrow-width;\n height: @popover-arrow-width;\n .roundedArrow(@popover-arrow-width, 5px, @popover-bg);\n }\n\n &-placement-top > &-arrow,\n &-placement-topLeft > &-arrow,\n &-placement-topRight > &-arrow {\n bottom: @popover-arrow-width * sqrt((1 / 2)) + 2px;\n box-shadow: 3px 3px 7px -3px fade(@black, 10%);\n transform: rotate(45deg);\n }\n\n &-placement-top > &-arrow {\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n }\n\n &-placement-topLeft > &-arrow {\n left: 16px;\n }\n\n &-placement-topRight > &-arrow {\n right: 16px;\n }\n\n &-placement-bottom > &-arrow,\n &-placement-bottomLeft > &-arrow,\n &-placement-bottomRight > &-arrow {\n top: (@popover-arrow-width + 2px) * sqrt((1 / 2));\n box-shadow: 2px 2px 5px -2px fade(@black, 10%);\n transform: rotate(-135deg) translateY(-0.5px);\n }\n\n &-placement-bottom > &-arrow {\n left: 50%;\n transform: translateX(-50%) rotate(-135deg) translateY(-0.5px);\n }\n\n &-placement-bottomLeft > &-arrow {\n left: 16px;\n }\n\n &-placement-bottomRight > &-arrow {\n right: 16px;\n }\n\n &-menu {\n position: relative;\n margin: 0;\n padding: @dropdown-edge-child-vertical-padding 0;\n text-align: left;\n list-style-type: none;\n background-color: @dropdown-menu-bg;\n background-clip: padding-box;\n border-radius: @border-radius-base;\n outline: none;\n box-shadow: @box-shadow-base;\n\n &-item-group-title {\n padding: 5px @control-padding-horizontal;\n color: @text-color-secondary;\n transition: all @animation-duration-slow;\n }\n\n &-submenu-popup {\n position: absolute;\n z-index: @zindex-dropdown;\n background: transparent;\n box-shadow: none;\n transform-origin: 0 0;\n\n ul,\n li {\n list-style: none;\n }\n\n ul {\n margin-right: 0.3em;\n margin-left: 0.3em;\n }\n }\n\n // ======================= Item Content =======================\n &-item {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n &-item-icon {\n min-width: 12px;\n margin-right: 8px;\n font-size: @font-size-sm;\n }\n\n &-title-content {\n flex: auto;\n\n > a {\n color: inherit;\n transition: all @animation-duration-slow;\n\n &:hover {\n color: inherit;\n }\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n content: '';\n }\n }\n }\n\n // =========================== Item ===========================\n &-item,\n &-submenu-title {\n clear: both;\n margin: 0;\n padding: @dropdown-vertical-padding @control-padding-horizontal;\n color: @text-color;\n font-weight: normal;\n font-size: @dropdown-font-size;\n line-height: @dropdown-line-height;\n cursor: pointer;\n transition: all @animation-duration-slow;\n\n &:first-child {\n & when (@dropdown-edge-child-vertical-padding = 0) {\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n }\n\n &:last-child {\n & when (@dropdown-edge-child-vertical-padding = 0) {\n border-radius: 0 0 @border-radius-base @border-radius-base;\n }\n }\n\n &-selected {\n color: @dropdown-selected-color;\n background-color: @dropdown-selected-bg;\n }\n\n &:hover,\n &&-active {\n background-color: @item-hover-bg;\n }\n\n &&-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n\n &:hover {\n color: @disabled-color;\n background-color: @dropdown-menu-submenu-disabled-bg;\n cursor: not-allowed;\n }\n\n a {\n pointer-events: none;\n }\n }\n\n &-divider {\n height: 1px;\n margin: 4px 0;\n overflow: hidden;\n line-height: 0;\n background-color: @border-color-split;\n }\n\n .@{dropdown-prefix-cls}-menu-submenu-expand-icon {\n position: absolute;\n right: @padding-xs;\n\n .@{dropdown-prefix-cls}-menu-submenu-arrow-icon {\n margin-right: 0 !important;\n color: @text-color-secondary;\n font-size: 10px;\n font-style: normal;\n }\n }\n }\n\n &-item-group-list {\n margin: 0 8px;\n padding: 0;\n list-style: none;\n }\n\n &-submenu-title {\n padding-right: @control-padding-horizontal + @font-size-sm;\n }\n\n &-submenu-vertical {\n position: relative;\n }\n\n &-submenu-vertical > & {\n position: absolute;\n top: 0;\n left: 100%;\n min-width: 100%;\n margin-left: 4px;\n transform-origin: 0 0;\n }\n\n &-submenu&-submenu-disabled .@{dropdown-prefix-cls}-menu-submenu-title {\n &,\n .@{dropdown-prefix-cls}-menu-submenu-arrow-icon {\n color: @disabled-color;\n background-color: @dropdown-menu-submenu-disabled-bg;\n cursor: not-allowed;\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/19264\n &-submenu-selected &-submenu-title {\n color: @primary-color;\n }\n }\n\n &.@{ant-prefix}-slide-down-enter.@{ant-prefix}-slide-down-enter-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-down-appear.@{ant-prefix}-slide-down-appear-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-down-enter.@{ant-prefix}-slide-down-enter-active&-placement-bottom,\n &.@{ant-prefix}-slide-down-appear.@{ant-prefix}-slide-down-appear-active&-placement-bottom,\n &.@{ant-prefix}-slide-down-enter.@{ant-prefix}-slide-down-enter-active&-placement-bottomRight,\n &.@{ant-prefix}-slide-down-appear.@{ant-prefix}-slide-down-appear-active&-placement-bottomRight {\n animation-name: antSlideUpIn;\n }\n\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-top,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-top,\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-topRight,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-topRight {\n animation-name: antSlideDownIn;\n }\n\n &.@{ant-prefix}-slide-down-leave.@{ant-prefix}-slide-down-leave-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-down-leave.@{ant-prefix}-slide-down-leave-active&-placement-bottom,\n &.@{ant-prefix}-slide-down-leave.@{ant-prefix}-slide-down-leave-active&-placement-bottomRight {\n animation-name: antSlideUpOut;\n }\n\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-top,\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-topRight {\n animation-name: antSlideDownOut;\n }\n}\n\n.@{dropdown-prefix-cls}-trigger,\n.@{dropdown-prefix-cls}-link,\n.@{dropdown-prefix-cls}-button {\n > .@{iconfont-css-prefix}.@{iconfont-css-prefix}-down {\n font-size: 10px;\n vertical-align: baseline;\n }\n}\n\n.@{dropdown-prefix-cls}-button {\n white-space: nowrap;\n\n &.@{ant-prefix}-btn-group > .@{ant-prefix}-btn {\n &-loading,\n &-loading + .@{ant-prefix}-btn {\n cursor: default;\n pointer-events: none;\n }\n\n &-loading + .@{ant-prefix}-btn::before {\n display: block;\n }\n\n &:last-child:not(:first-child):not(.@{ant-prefix}-btn-icon-only) {\n padding-right: @padding-xs;\n padding-left: @padding-xs;\n }\n }\n}\n\n// https://github.com/ant-design/ant-design/issues/4903\n.@{dropdown-prefix-cls}-menu-dark {\n &,\n .@{dropdown-prefix-cls}-menu {\n background: @menu-dark-bg;\n }\n .@{dropdown-prefix-cls}-menu-item,\n .@{dropdown-prefix-cls}-menu-submenu-title,\n .@{dropdown-prefix-cls}-menu-item > a,\n .@{dropdown-prefix-cls}-menu-item > .@{iconfont-css-prefix} + span > a {\n color: @text-color-secondary-dark;\n .@{dropdown-prefix-cls}-menu-submenu-arrow::after {\n color: @text-color-secondary-dark;\n }\n\n &:hover {\n color: @text-color-inverse;\n background: transparent;\n }\n }\n .@{dropdown-prefix-cls}-menu-item-selected {\n &,\n &:hover,\n > a {\n color: @text-color-inverse;\n background: @primary-color;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@dropdown-prefix-cls: ~'@{ant-prefix}-dropdown';\n\n.@{dropdown-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &::before {\n .@{dropdown-prefix-cls}-rtl& {\n right: -7px;\n left: 0;\n }\n }\n\n &-menu {\n &&-rtl {\n direction: rtl;\n text-align: right;\n }\n\n &-item-group-title {\n .@{dropdown-prefix-cls}-rtl &,\n .@{dropdown-prefix-cls}-menu-submenu-rtl & {\n direction: rtl;\n text-align: right;\n }\n }\n\n &-submenu-popup {\n &.@{dropdown-prefix-cls}-menu-submenu-rtl {\n transform-origin: 100% 0;\n }\n\n ul,\n li {\n .@{dropdown-prefix-cls}-rtl & {\n text-align: right;\n }\n }\n }\n\n &-item,\n &-submenu-title {\n .@{dropdown-prefix-cls}-rtl & {\n text-align: right;\n }\n\n > .@{iconfont-css-prefix}:first-child,\n > span > .@{iconfont-css-prefix}:first-child {\n .@{dropdown-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n\n .@{dropdown-prefix-cls}-menu-submenu-expand-icon {\n .@{dropdown-prefix-cls}-rtl & {\n right: auto;\n left: @padding-xs;\n }\n\n .@{dropdown-prefix-cls}-menu-submenu-arrow-icon {\n .@{dropdown-prefix-cls}-rtl & {\n margin-left: 0 !important;\n transform: scaleX(-1);\n }\n }\n }\n }\n\n &-submenu-title {\n .@{dropdown-prefix-cls}-rtl & {\n padding-right: @control-padding-horizontal;\n padding-left: @control-padding-horizontal + @font-size-sm;\n }\n }\n\n &-submenu-vertical > & {\n .@{dropdown-prefix-cls}-rtl & {\n right: 100%;\n left: 0;\n margin-right: 4px;\n margin-left: 0;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './mixin';\n\n@btn-prefix-cls: ~'@{ant-prefix}-btn';\n\n// for compatible\n@btn-ghost-color: @text-color;\n@btn-ghost-bg: transparent;\n@btn-ghost-border: @border-color-base;\n\n// Button styles\n// -----------------------------\n.@{btn-prefix-cls} {\n // Fixing https://github.com/ant-design/ant-design/issues/12978\n // Fixing https://github.com/ant-design/ant-design/issues/20058\n // Fixing https://github.com/ant-design/ant-design/issues/19972\n // Fixing https://github.com/ant-design/ant-design/issues/18107\n // Fixing https://github.com/ant-design/ant-design/issues/13214\n // It is a render problem of chrome, which is only happened in the codesandbox demo\n // 0.001px solution works and I don't know why\n line-height: @btn-line-height;\n .btn();\n .btn-default();\n\n // Fix loading button animation\n // https://github.com/ant-design/ant-design/issues/24323\n > span {\n display: inline-block;\n }\n\n &-primary {\n .btn-primary();\n\n .@{btn-prefix-cls}-group &:not(:first-child):not(:last-child) {\n border-right-color: @btn-group-border;\n border-left-color: @btn-group-border;\n\n &:disabled {\n border-color: @btn-default-border;\n }\n }\n\n .@{btn-prefix-cls}-group &:first-child {\n &:not(:last-child) {\n border-right-color: @btn-group-border;\n\n &[disabled] {\n border-right-color: @btn-default-border;\n }\n }\n }\n\n .@{btn-prefix-cls}-group &:last-child:not(:first-child),\n .@{btn-prefix-cls}-group & + & {\n border-left-color: @btn-group-border;\n\n &[disabled] {\n border-left-color: @btn-default-border;\n }\n }\n }\n\n &-ghost {\n .btn-ghost();\n }\n\n &-dashed {\n .btn-dashed();\n }\n\n // type=\"danger\" will deprecated\n // use danger instead\n &-danger {\n .btn-danger();\n }\n\n &-link {\n .btn-link();\n }\n\n &-text {\n .btn-text();\n }\n\n &-dangerous {\n .btn-danger-default();\n }\n\n &-dangerous&-primary {\n .btn-danger();\n }\n\n &-dangerous&-link {\n .btn-danger-link();\n }\n\n &-dangerous&-text {\n .btn-danger-text();\n }\n\n &-icon-only {\n .btn-square(@btn-prefix-cls);\n vertical-align: -3px;\n\n > .@{iconfont-css-prefix} {\n display: flex;\n justify-content: center;\n }\n\n .@{iconfont-css-prefix}-loading {\n padding: 0 !important;\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/32365\n a&-icon-only {\n vertical-align: -1px;\n\n > .@{iconfont-css-prefix} {\n display: inline;\n }\n }\n\n &-round {\n .btn-round(@btn-prefix-cls);\n &.@{btn-prefix-cls}-icon-only {\n width: auto;\n }\n }\n\n &-circle {\n .btn-circle(@btn-prefix-cls);\n }\n\n &::before {\n position: absolute;\n top: -@btn-border-width;\n right: -@btn-border-width;\n bottom: -@btn-border-width;\n left: -@btn-border-width;\n z-index: 1;\n display: none;\n background: @component-background;\n border-radius: inherit;\n opacity: 0.35;\n transition: opacity 0.2s;\n content: '';\n pointer-events: none;\n }\n\n .@{iconfont-css-prefix} {\n transition: margin-left 0.3s @ease-in-out;\n\n // Follow icon blur under windows. Change the render.\n // https://github.com/ant-design/ant-design/issues/13924\n &.@{iconfont-css-prefix}-plus,\n &.@{iconfont-css-prefix}-minus {\n > svg {\n shape-rendering: optimizespeed;\n }\n }\n }\n\n &&-loading {\n position: relative;\n cursor: default;\n\n &::before {\n display: block;\n }\n }\n\n & > &-loading-icon {\n transition: width 0.3s @ease-in-out, opacity 0.3s @ease-in-out;\n\n .@{iconfont-css-prefix} {\n padding-right: @padding-xs;\n animation: none;\n // for smooth button padding transition\n svg {\n animation: loadingCircle 1s infinite linear;\n }\n }\n }\n\n &-group {\n .btn-group(@btn-prefix-cls);\n }\n\n // http://stackoverflow.com/a/21281554/3040605\n &:focus > span,\n &:active > span {\n position: relative;\n }\n\n // To ensure that a space will be placed between character and `Icon`.\n > .@{iconfont-css-prefix} + span,\n > span + .@{iconfont-css-prefix} {\n margin-left: @margin-xs;\n }\n\n &&-background-ghost {\n color: @btn-default-ghost-color;\n border-color: @btn-default-ghost-border;\n\n &,\n &:hover,\n &:active,\n &:focus {\n background: @btn-default-ghost-bg;\n }\n\n &:hover,\n &:focus {\n color: @primary-color-hover;\n border-color: @primary-color-hover;\n }\n\n &:active {\n color: @primary-color-active;\n border-color: @primary-color-active;\n }\n\n &[disabled] {\n color: @disabled-color;\n background: @btn-default-ghost-bg;\n border-color: @btn-default-border;\n }\n }\n\n &-background-ghost&-primary {\n .button-variant-ghost(@btn-primary-bg, @btn-primary-bg, @primary-color-hover, @primary-color-active);\n }\n\n &-background-ghost&-danger {\n .button-variant-ghost(@btn-danger-border, @btn-danger-border, @error-color-hover, @error-color-active);\n }\n\n &-background-ghost&-dangerous {\n .button-variant-ghost(@btn-danger-border, @btn-danger-border, @error-color-hover, @error-color-active);\n }\n\n &-background-ghost&-dangerous&-link {\n .button-variant-ghost(@btn-danger-border, transparent, @error-color-hover, @error-color-active);\n }\n\n &-two-chinese-chars::first-letter {\n letter-spacing: 0.34em;\n }\n\n &-two-chinese-chars > *:not(.@{iconfont-css-prefix}) {\n margin-right: -0.34em;\n letter-spacing: 0.34em;\n }\n\n &&-block {\n width: 100%;\n }\n\n // https://github.com/ant-design/ant-design/issues/12681\n // same method as Select\n &:empty {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n }\n}\n\na.@{btn-prefix-cls} {\n // Fixing https://github.com/ant-design/ant-design/issues/12978\n // https://github.com/ant-design/ant-design/issues/29978\n // It is a render problem of chrome, which is only happened in the codesandbox demo\n // 0.1px for padding-top solution works and I don't why\n padding-top: 0.01px !important;\n line-height: @btn-height-base - 2px;\n\n &-disabled {\n .btn-href-disabled();\n }\n\n &-lg {\n line-height: @btn-height-lg - 2px;\n }\n\n &-sm {\n line-height: @btn-height-sm - 2px;\n }\n}\n\n@import './space-compact';\n@import './rtl';\n\n@root-entry-name: default;","// mixins for button\n// ------------------------\n.button-size(@height; @padding-horizontal; @font-size; @border-radius) {\n @padding-vertical: max(\n (round(((@height - @font-size * @line-height-base) / 2) * 10) / 10) - @border-width-base,\n 0\n );\n height: @height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n border-radius: @border-radius;\n}\n\n.button-color(@color; @background; @border) {\n color: @color;\n border-color: @border; // a inside Button which only work in Chrome\n & when not(@background = null) {\n background: @background;\n }\n // http://stackoverflow.com/a/17253457\n > a:only-child {\n color: currentcolor;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n }\n }\n}\n\n.button-disabled(@color: @btn-disable-color; @background: @btn-disable-bg; @border: @btn-disable-border) {\n &[disabled] {\n &,\n &:hover,\n &:focus,\n &:active {\n .button-color(@color; @background; @border);\n\n text-shadow: none;\n box-shadow: none;\n }\n }\n}\n\n.button-variant-primary(@color; @background; @backgroundHover: yellow; @backgroundActive: yellow) {\n .button-color(@color; @background; @background);\n\n text-shadow: @btn-text-shadow;\n box-shadow: @btn-primary-shadow;\n\n &:hover,\n &:focus {\n & when (@theme = dark) {\n .button-color(\n @color; ~`colorPalette('@{background}', 7) `; ~`colorPalette('@{background}', 7) `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n @color; ~`colorPalette('@{background}', 5) `; ~`colorPalette('@{background}', 5) `\n );\n }\n & when (@theme = variable) {\n .button-color(@color; @backgroundHover; @backgroundHover);\n }\n }\n\n &:active {\n & when (@theme = dark) {\n .button-color(\n @color; ~`colorPalette('@{background}', 5) `; ~`colorPalette('@{background}', 5) `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n @color; ~`colorPalette('@{background}', 7) `; ~`colorPalette('@{background}', 7) `\n );\n }\n & when (@theme = variable) {\n .button-color(@color; @backgroundActive; @backgroundActive);\n }\n }\n\n .button-disabled();\n}\n\n.button-variant-other(@color; @background; @border) {\n .button-color(@color; @background; @border);\n\n &:hover,\n &:focus {\n & when (@theme = dark) {\n .button-color(@primary-5; @background; @primary-5);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{btn-primary-bg}', 5) `; @background;\n ~`colorPalette('@{btn-primary-bg}', 5) `\n );\n }\n & when (@theme = variable) {\n .button-color(@primary-color-hover; @background; @primary-color-hover);\n }\n }\n\n &:active {\n & when (@theme = dark) {\n .button-color(@primary-7; @background; @primary-7);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{btn-primary-bg}', 7) `; @background;\n ~`colorPalette('@{btn-primary-bg}', 7) `\n );\n }\n & when (@theme = variable) {\n .button-color(@primary-color-active; @background; @primary-color-active);\n }\n }\n .button-disabled();\n}\n\n.button-variant-ghost(@color; @border; @borderHover: yellow; @borderActive: yellow) {\n .button-color(@color; null; @border);\n text-shadow: none;\n\n &:hover,\n &:focus {\n & when (@border = transparent) {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{color}', 7) `; null; transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{color}', 5) `; null; transparent);\n }\n & when (@theme = variable) {\n .button-color(@borderActive; transparent; transparent);\n }\n }\n & when not (@border = transparent) {\n & when (@theme = dark) {\n .button-color(\n ~`colorPalette('@{color}', 7) `; null; ~`colorPalette('@{color}', 7) `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{color}', 5) `; null; ~`colorPalette('@{color}', 5) `\n );\n }\n & when (@theme = variable) {\n .button-color(@borderHover; transparent; @borderHover);\n }\n }\n }\n\n &:active {\n & when (@border = transparent) {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{color}', 5) `; null; transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{color}', 7) `; null; transparent);\n }\n & when (@theme = variable) {\n .button-color(@borderActive; transparent; transparent);\n }\n }\n & when not (@border = transparent) {\n & when (@theme = dark) {\n .button-color(\n ~`colorPalette('@{color}', 5) `; null; ~`colorPalette('@{color}', 5) `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{color}', 7) `; null; ~`colorPalette('@{color}', 7) `\n );\n }\n & when (@theme = variable) {\n .button-color(@borderActive; transparent; @borderActive);\n }\n }\n }\n .button-disabled();\n}\n\n.button-group-base(@btnClassName) {\n position: relative;\n display: inline-flex;\n > .@{btnClassName},\n > span > .@{btnClassName} {\n position: relative;\n\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n\n &[disabled] {\n z-index: 0;\n }\n }\n .@{btnClassName}-icon-only {\n font-size: @font-size-base;\n }\n}\n// Base styles of buttons\n// --------------------------------------------------\n.btn() {\n position: relative;\n display: inline-block;\n font-weight: @btn-font-weight;\n white-space: nowrap;\n text-align: center;\n background-image: none;\n border: @btn-border-width @btn-border-style transparent;\n box-shadow: @btn-shadow;\n cursor: pointer;\n transition: all 0.3s @ease-in-out;\n user-select: none;\n touch-action: manipulation;\n .button-size(\n @btn-height-base; @btn-padding-horizontal-base; @font-size-base; @btn-border-radius-base\n );\n > .@{iconfont-css-prefix} {\n line-height: 1;\n }\n\n &,\n &:active,\n &:focus {\n outline: 0;\n }\n\n &:not([disabled]):hover {\n text-decoration: none;\n }\n\n &:not([disabled]):active {\n outline: 0;\n box-shadow: none;\n }\n\n &[disabled] {\n cursor: not-allowed;\n\n > * {\n pointer-events: none;\n }\n }\n\n &-lg {\n .button-size(\n @btn-height-lg; @btn-padding-horizontal-lg; @btn-font-size-lg; @btn-border-radius-base\n );\n }\n\n &-sm {\n .button-size(\n @btn-height-sm; @btn-padding-horizontal-sm; @btn-font-size-sm; @btn-border-radius-sm\n );\n }\n}\n// primary button style\n.btn-primary() {\n .button-variant-primary(@btn-primary-color; @btn-primary-bg; @primary-color-hover; @primary-color-active);\n}\n// default button style\n.btn-default() {\n .button-variant-other(@btn-default-color; @btn-default-bg; @btn-default-border; );\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: @btn-default-bg;\n }\n}\n// ghost button style\n.btn-ghost() {\n .button-variant-other(@btn-ghost-color, @btn-ghost-bg, @btn-ghost-border);\n}\n// dashed button style\n.btn-dashed() {\n .button-variant-other(@btn-default-color, @btn-default-bg, @btn-default-border);\n border-style: dashed;\n}\n// danger button style\n.btn-danger() {\n .button-variant-primary(@btn-danger-color, @btn-danger-bg, @error-color-hover, @error-color-active);\n}\n// danger default button style\n.btn-danger-default() {\n .button-color(@error-color, @btn-default-bg, @error-color);\n\n &:hover,\n &:focus {\n & when (@theme = dark) {\n .button-color(\n ~`colorPalette('@{error-color}', 7) `; @btn-default-bg; ~`colorPalette('@{error-color}', 7)\n `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{error-color}', 5) `; @btn-default-bg; ~`colorPalette('@{error-color}', 5)\n `\n );\n }\n & when (@theme = variable) {\n .button-color(@error-color-hover, @btn-default-bg, @error-color-hover);\n }\n }\n\n &:active {\n & when (@theme = dark) {\n .button-color(\n ~`colorPalette('@{error-color}', 5) `; @btn-default-bg; ~`colorPalette('@{error-color}', 5)\n `\n );\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(\n ~`colorPalette('@{error-color}', 7) `; @btn-default-bg; ~`colorPalette('@{error-color}', 7)\n `\n );\n }\n & when (@theme = variable) {\n .button-color(@error-color-active, @btn-default-bg, @error-color-active);\n }\n }\n .button-disabled();\n}\n// danger link button style\n.btn-danger-link() {\n .button-variant-other(@error-color, transparent, transparent);\n box-shadow: none;\n\n &:hover,\n &:focus {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{error-color}', 7) `; transparent; transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{error-color}', 5) `; transparent; transparent);\n }\n & when (@theme = variable) {\n .button-color(@error-color-hover; transparent; transparent);\n }\n }\n\n &:active {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{error-color}', 5) `; transparent; transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{error-color}', 7) `; transparent; transparent);\n }\n & when (@theme = variable) {\n .button-color(@error-color-active; transparent; transparent);\n }\n }\n .button-disabled(@disabled-color; transparent; transparent);\n}\n// link button style\n.btn-link() {\n .button-variant-other(@link-color, transparent, transparent);\n box-shadow: none;\n\n &:hover {\n background: @btn-link-hover-bg;\n }\n\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n .button-disabled(@disabled-color; transparent; transparent);\n}\n// link button disabled style\n.btn-href-disabled() {\n cursor: not-allowed;\n\n > * {\n pointer-events: none;\n }\n\n &,\n &:hover,\n &:focus,\n &:active {\n .button-color(@btn-disable-color,transparent, transparent);\n\n text-shadow: none;\n box-shadow: none;\n }\n}\n// text button style\n.btn-text() {\n .button-variant-other(@text-color, transparent, transparent);\n box-shadow: none;\n\n &:hover,\n &:focus {\n color: @text-color;\n background: @btn-text-hover-bg;\n border-color: transparent;\n }\n\n &:active {\n color: @text-color;\n background: fadein(@btn-text-hover-bg, 1%);\n border-color: transparent;\n }\n\n .button-disabled(@disabled-color; transparent; transparent);\n}\n.btn-danger-text() {\n .button-variant-other(@error-color, transparent, transparent);\n box-shadow: none;\n\n &:hover,\n &:focus {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{error-color}', 7) `; @btn-text-hover-bg; transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{error-color}', 5) `; @btn-text-hover-bg; transparent);\n }\n & when (@theme = variable) {\n .button-color(@error-color-hover; @btn-text-hover-bg; transparent);\n }\n }\n\n &:active {\n & when (@theme = dark) {\n .button-color(~`colorPalette('@{error-color}', 5) `; fadein(@btn-text-hover-bg, 1%); transparent);\n }\n & when (not (@theme = dark) and not (@theme = variable)) {\n .button-color(~`colorPalette('@{error-color}', 7) `; fadein(@btn-text-hover-bg, 1%); transparent);\n }\n & when (@theme = variable) {\n .button-color(@error-color-active; fadein(@btn-text-hover-bg, 1%); transparent);\n }\n }\n .button-disabled(@disabled-color; transparent; transparent);\n}\n// round button\n.btn-round(@btnClassName: btn) {\n .button-size(@btn-circle-size; (@btn-circle-size / 2); @font-size-base; @btn-circle-size);\n &.@{btnClassName}-lg {\n .button-size(\n @btn-circle-size-lg; (@btn-circle-size-lg / 2); @btn-font-size-lg; @btn-circle-size-lg\n );\n }\n &.@{btnClassName}-sm {\n .button-size(\n @btn-circle-size-sm; (@btn-circle-size-sm / 2); @font-size-base; @btn-circle-size-sm\n );\n }\n}\n// square button: the content only contains icon\n.btn-square(@btnClassName: btn) {\n .square(@btn-square-size);\n .button-size(@btn-square-size; 0; @btn-square-only-icon-size; @btn-border-radius-base);\n\n & > * {\n font-size: @btn-square-only-icon-size;\n }\n &.@{btnClassName}-lg {\n .square(@btn-square-size-lg);\n .button-size(@btn-square-size-lg; 0; @btn-square-only-icon-size-lg; @btn-border-radius-base);\n\n & > * {\n font-size: @btn-square-only-icon-size-lg;\n }\n }\n &.@{btnClassName}-sm {\n .square(@btn-square-size-sm);\n .button-size(@btn-square-size-sm; 0; @btn-square-only-icon-size-sm; @btn-border-radius-base);\n\n & > * {\n font-size: @btn-square-only-icon-size-sm;\n }\n }\n}\n// circle button: the content only contains icon\n.btn-circle(@btnClassName: btn) {\n min-width: @btn-height-base;\n padding-right: 0;\n padding-left: 0;\n text-align: center;\n border-radius: 50%;\n &.@{btnClassName}-lg {\n min-width: @btn-height-lg;\n border-radius: 50%;\n }\n &.@{btnClassName}-sm {\n min-width: @btn-height-sm;\n border-radius: 50%;\n }\n}\n// Horizontal button groups style\n// --------------------------------------------------\n.btn-group(@btnClassName: btn) {\n .button-group-base(@btnClassName);\n .@{btnClassName} + .@{btnClassName},\n .@{btnClassName} + &,\n span + .@{btnClassName},\n .@{btnClassName} + span,\n > span + span,\n & + .@{btnClassName},\n & + & {\n margin-left: -1px;\n }\n .@{btnClassName}-primary + .@{btnClassName}:not(.@{btnClassName}-primary):not([disabled]) {\n border-left-color: transparent;\n }\n .@{btnClassName} {\n border-radius: 0;\n }\n > .@{btnClassName}:first-child,\n > span:first-child > .@{btnClassName} {\n margin-left: 0;\n }\n > .@{btnClassName}:only-child {\n border-radius: @btn-border-radius-base;\n }\n > span:only-child > .@{btnClassName} {\n border-radius: @btn-border-radius-base;\n }\n > .@{btnClassName}:first-child:not(:last-child),\n > span:first-child:not(:last-child) > .@{btnClassName} {\n border-top-left-radius: @btn-border-radius-base;\n border-bottom-left-radius: @btn-border-radius-base;\n }\n > .@{btnClassName}:last-child:not(:first-child),\n > span:last-child:not(:first-child) > .@{btnClassName} {\n border-top-right-radius: @btn-border-radius-base;\n border-bottom-right-radius: @btn-border-radius-base;\n }\n\n &-sm {\n > .@{btnClassName}:only-child {\n border-radius: @btn-border-radius-sm;\n }\n > span:only-child > .@{btnClassName} {\n border-radius: @btn-border-radius-sm;\n }\n > .@{btnClassName}:first-child:not(:last-child),\n > span:first-child:not(:last-child) > .@{btnClassName} {\n border-top-left-radius: @btn-border-radius-sm;\n border-bottom-left-radius: @btn-border-radius-sm;\n }\n > .@{btnClassName}:last-child:not(:first-child),\n > span:last-child:not(:first-child) > .@{btnClassName} {\n border-top-right-radius: @btn-border-radius-sm;\n border-bottom-right-radius: @btn-border-radius-sm;\n }\n }\n\n & > & {\n float: left;\n }\n & > &:not(:first-child):not(:last-child) > .@{btnClassName} {\n border-radius: 0;\n }\n\n & > &:first-child:not(:last-child) {\n > .@{btnClassName}:last-child {\n padding-right: 8px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n & > &:last-child:not(:first-child) > .@{btnClassName}:first-child {\n padding-left: 8px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n}\n",".@{btn-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-primary {\n .@{btn-prefix-cls}-group &:last-child:not(:first-child),\n .@{btn-prefix-cls}-group & + & {\n .@{btn-prefix-cls}-group-rtl& {\n border-right-color: @btn-group-border;\n border-left-color: @btn-default-border;\n }\n\n &[disabled] {\n .@{btn-prefix-cls}-group-rtl& {\n border-right-color: @btn-default-border;\n border-left-color: @btn-group-border;\n }\n }\n }\n }\n\n & > &-loading-icon {\n .@{iconfont-css-prefix} {\n .@{btn-prefix-cls}-rtl& {\n padding-right: 0;\n padding-left: @margin-xs;\n }\n }\n }\n\n > .@{iconfont-css-prefix} + span,\n > span + .@{iconfont-css-prefix} {\n .@{btn-prefix-cls}-rtl& {\n margin-right: 8px;\n margin-left: 0;\n }\n }\n}\n\n// mixin\n.btn-group(@btnClassName: btn) {\n .@{btnClassName} + .@{btnClassName},\n .@{btnClassName} + &,\n span + .@{btnClassName},\n .@{btnClassName} + span,\n > span + span,\n & + .@{btnClassName},\n & + & {\n .@{btnClassName}-rtl&,\n .@{btnClassName}-group-rtl& {\n margin-right: -1px;\n margin-left: auto;\n }\n }\n\n &.@{btnClassName}-group-rtl {\n direction: rtl;\n }\n\n > .@{btnClassName}:first-child:not(:last-child),\n > span:first-child:not(:last-child) > .@{btnClassName} {\n .@{btnClassName}-group-rtl& {\n border-radius: 0 @btn-border-radius-base @btn-border-radius-base 0;\n }\n }\n\n > .@{btnClassName}:last-child:not(:first-child),\n > span:last-child:not(:first-child) > .@{btnClassName} {\n .@{btnClassName}-group-rtl& {\n border-radius: @btn-border-radius-base 0 0 @btn-border-radius-base;\n }\n }\n\n &-sm {\n > .@{btnClassName}:first-child:not(:last-child),\n > span:first-child:not(:last-child) > .@{btnClassName} {\n .@{btnClassName}-group-rtl& {\n border-radius: 0 @btn-border-radius-sm @btn-border-radius-sm 0;\n }\n }\n\n > .@{btnClassName}:last-child:not(:first-child),\n > span:last-child:not(:first-child) > .@{btnClassName} {\n .@{btnClassName}-group-rtl& {\n border-radius: @btn-border-radius-sm 0 0 @btn-border-radius-sm;\n }\n }\n }\n}\n","@import '../../style/mixins/index';\n\n@btn-prefix-cls: ~'@{ant-prefix}-btn';\n\n// Button in Space.Compact\n.@{btn-prefix-cls} {\n .compact-item(@btn-prefix-cls);\n\n // make `btn-icon-only` not too narrow\n &-icon-only&-compact-item {\n flex: none;\n }\n\n // Special styles for Primary Button\n &-compact-item.@{btn-prefix-cls}-primary {\n &:not([disabled]) + &:not([disabled]) {\n position: relative;\n\n &::after {\n position: absolute;\n top: -@border-width-base;\n left: -@border-width-base;\n display: inline-block;\n width: @border-width-base;\n height: calc(100% + @border-width-base * 2);\n background-color: @btn-group-border;\n content: ' ';\n }\n }\n }\n\n // ----------RTL----------\n &-compact-item-rtl {\n &.@{btn-prefix-cls}-compact-first-item&:not(.@{btn-prefix-cls}-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n &.@{btn-prefix-cls}-compact-last-item&:not(.@{btn-prefix-cls}-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &.@{btn-prefix-cls}-sm {\n &.@{btn-prefix-cls}-compact-first-item&:not(.@{btn-prefix-cls}-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n &.@{btn-prefix-cls}-compact-last-item&:not(.@{btn-prefix-cls}-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n // ----------RTL Special styles for Primary Button----------\n &.@{btn-prefix-cls}-primary {\n &:not([disabled]) + &:not([disabled]) {\n &::after {\n right: -@border-width-base;\n }\n }\n }\n }\n\n // Button in Space.Compact when direction=vertical\n .compact-item-vertical(@btn-prefix-cls);\n\n // Special styles for Primary Button\n &-compact-vertical-item {\n &.@{btn-prefix-cls}-primary {\n &:not([disabled]) + &:not([disabled]) {\n position: relative;\n\n &::after {\n position: absolute;\n top: -@border-width-base;\n left: -@border-width-base;\n display: inline-block;\n width: calc(100% + @border-width-base * 2);\n height: @border-width-base;\n background-color: @btn-group-border;\n content: ' ';\n }\n }\n }\n }\n}\n",".compact-item-vertical-border-radius(@prefix-cls) {\n &-item:not(&-first-item):not(&-last-item) {\n border-radius: 0;\n }\n\n &-item&-first-item:not(&-last-item) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n &-item&-last-item:not(&-first-item) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n.compact-item-vertical-border(@prefix-cls) {\n // border collapse\n &-item:not(&-last-item) {\n margin-bottom: -@border-width-base;\n }\n\n &-item {\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n\n &[disabled] {\n z-index: 0;\n }\n }\n}\n\n.compact-item-vertical(@prefix-cls) {\n &-compact-vertical {\n .compact-item-vertical-border(@prefix-cls);\n .compact-item-vertical-border-radius(@prefix-cls);\n }\n}\n","@import (reference) '../../style/themes/index';\n@menu-prefix-cls: ~'@{ant-prefix}-menu';\n\n.@{menu-prefix-cls} {\n // Danger\n &-item-danger&-item {\n color: @menu-highlight-danger-color;\n\n &:hover,\n &-active {\n color: @menu-highlight-danger-color;\n }\n\n &:active {\n background: @menu-item-active-danger-bg;\n }\n\n &-selected {\n color: @menu-highlight-danger-color;\n\n > a,\n > a:hover {\n color: @menu-highlight-danger-color;\n }\n }\n\n .@{menu-prefix-cls}:not(.@{menu-prefix-cls}-horizontal) &-selected {\n background-color: @menu-item-active-danger-bg;\n }\n\n .@{menu-prefix-cls}-inline &::after {\n border-right-color: @menu-highlight-danger-color;\n }\n }\n\n // ==================== Dark ====================\n &-dark &-item-danger&-item {\n &,\n &:hover,\n & > a {\n color: @menu-dark-danger-color;\n }\n }\n\n &-dark&-dark:not(&-horizontal) &-item-danger&-item-selected {\n color: @menu-dark-highlight-color;\n background-color: @menu-dark-item-active-danger-bg;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './status';\n\n@menu-prefix-cls: ~'@{ant-prefix}-menu';\n@menu-animation-duration-normal: 0.15s;\n\n.accessibility-focus() {\n box-shadow: 0 0 0 2px @primary-2;\n}\n\n// TODO: Should remove icon style compatible in v5\n\n// default theme\n.@{menu-prefix-cls} {\n .reset-component();\n\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n color: @menu-item-color;\n font-size: @menu-item-font-size;\n line-height: 0; // Fix display inline-block gap\n text-align: left;\n list-style: none;\n background: @menu-bg;\n outline: none;\n box-shadow: @box-shadow-base;\n transition: background @animation-duration-slow,\n width @animation-duration-slow cubic-bezier(0.2, 0, 0, 1) 0s;\n .clearfix();\n\n &&-root:focus-visible {\n .accessibility-focus();\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n // Overflow ellipsis\n &-overflow {\n display: flex;\n\n &-item {\n flex: none;\n }\n }\n\n &-hidden,\n &-submenu-hidden {\n display: none;\n }\n\n &-item-group-title {\n height: @menu-item-group-height;\n padding: 8px 16px;\n color: @menu-item-group-title-color;\n font-size: @menu-item-group-title-font-size;\n line-height: @menu-item-group-height;\n transition: all @animation-duration-slow;\n }\n\n &-horizontal &-submenu {\n transition: border-color @animation-duration-slow @ease-in-out,\n background @animation-duration-slow @ease-in-out;\n }\n\n &-submenu,\n &-submenu-inline {\n transition: border-color @animation-duration-slow @ease-in-out,\n background @animation-duration-slow @ease-in-out,\n padding @menu-animation-duration-normal @ease-in-out;\n }\n\n &-submenu-selected {\n color: @menu-highlight-color;\n }\n\n &-item:active,\n &-submenu-title:active {\n background: @menu-item-active-bg;\n }\n\n &-submenu &-sub {\n cursor: initial;\n transition: background @animation-duration-slow @ease-in-out,\n padding @animation-duration-slow @ease-in-out;\n }\n\n &-title-content {\n transition: color @animation-duration-slow;\n }\n\n &-item a {\n color: @menu-item-color;\n\n &:hover {\n color: @menu-highlight-color;\n }\n\n &::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: transparent;\n content: '';\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/19809\n &-item > .@{ant-prefix}-badge a {\n color: @menu-item-color;\n\n &:hover {\n color: @menu-highlight-color;\n }\n }\n\n &-item-divider {\n overflow: hidden;\n line-height: 0;\n border-color: @border-color-split;\n border-style: solid;\n border-width: 1px 0 0;\n }\n\n &-item-divider-dashed {\n border-style: dashed;\n }\n\n &-horizontal &-item,\n &-horizontal &-submenu {\n margin-top: -1px;\n }\n\n &-horizontal > &-item:hover,\n &-horizontal > &-item-active,\n &-horizontal > &-submenu &-submenu-title:hover {\n background-color: transparent;\n }\n\n &-item-selected {\n color: @menu-highlight-color;\n\n a,\n a:hover {\n color: @menu-highlight-color;\n }\n }\n\n &:not(&-horizontal) &-item-selected {\n background-color: @menu-item-active-bg;\n }\n\n &-inline,\n &-vertical,\n &-vertical-left {\n border-right: @border-width-base @border-style-base @border-color-split;\n }\n\n &-vertical-right {\n border-left: @border-width-base @border-style-base @border-color-split;\n }\n\n &-vertical&-sub,\n &-vertical-left&-sub,\n &-vertical-right&-sub {\n min-width: 160px;\n max-height: calc(100vh - 100px);\n padding: 0;\n overflow: hidden;\n border-right: 0;\n\n // https://github.com/ant-design/ant-design/issues/22244\n // https://github.com/ant-design/ant-design/issues/26812\n &:not([class*='-active']) {\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .@{menu-prefix-cls}-item {\n left: 0;\n margin-left: 0;\n border-right: 0;\n\n &::after {\n border-right: 0;\n }\n }\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-submenu {\n transform-origin: 0 0;\n }\n }\n\n &-horizontal&-sub {\n min-width: 114px; // in case of submenu width is too big: https://codesandbox.io/s/qvpwm6mk66\n }\n\n &-horizontal &-item,\n &-horizontal &-submenu-title {\n transition: border-color @animation-duration-slow, background @animation-duration-slow;\n }\n\n &-item,\n &-submenu-title {\n position: relative;\n display: block;\n margin: 0;\n padding: @menu-item-padding;\n white-space: nowrap;\n cursor: pointer;\n transition: border-color @animation-duration-slow, background @animation-duration-slow,\n padding @animation-duration-slow @ease-in-out;\n\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n min-width: 14px;\n font-size: @menu-icon-size;\n transition: font-size @menu-animation-duration-normal @ease-out,\n margin @animation-duration-slow @ease-in-out, color @animation-duration-slow;\n\n + span {\n margin-left: @menu-icon-margin-right;\n opacity: 1;\n transition: opacity @animation-duration-slow @ease-in-out, margin @animation-duration-slow,\n color @animation-duration-slow;\n }\n }\n\n .@{menu-prefix-cls}-item-icon.svg {\n vertical-align: -0.125em;\n }\n\n &.@{menu-prefix-cls}-item-only-child {\n > .@{iconfont-css-prefix},\n > .@{menu-prefix-cls}-item-icon {\n margin-right: 0;\n }\n }\n\n &:not(.@{menu-prefix-cls}-item-disabled):focus-visible {\n .accessibility-focus();\n }\n }\n\n & > &-item-divider {\n margin: 1px 0;\n padding: 0;\n }\n\n &-submenu {\n &-popup {\n position: absolute;\n z-index: @zindex-dropdown;\n background: transparent;\n border-radius: @border-radius-base;\n box-shadow: none;\n transform-origin: 0 0;\n\n // https://github.com/ant-design/ant-design/issues/13955\n &::before {\n position: absolute;\n top: -7px;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n opacity: 0.0001;\n content: ' ';\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/13955\n &-placement-rightTop::before {\n top: 0;\n left: -7px;\n }\n\n > .@{menu-prefix-cls} {\n background-color: @menu-bg;\n border-radius: @border-radius-base;\n\n &-submenu-title::after {\n transition: transform @animation-duration-slow @ease-in-out;\n }\n }\n\n &-popup > .@{menu-prefix-cls} {\n background-color: @menu-popup-bg;\n }\n\n &-expand-icon,\n &-arrow {\n position: absolute;\n top: 50%;\n right: 16px;\n width: 10px;\n color: @menu-item-color;\n transform: translateY(-50%);\n transition: transform @animation-duration-slow @ease-in-out;\n }\n\n &-arrow {\n // →\n &::before,\n &::after {\n position: absolute;\n width: 6px;\n height: 1.5px;\n background-color: currentcolor;\n border-radius: 2px;\n transition: background @animation-duration-slow @ease-in-out,\n transform @animation-duration-slow @ease-in-out, top @animation-duration-slow @ease-in-out,\n color @animation-duration-slow @ease-in-out;\n content: '';\n }\n\n &::before {\n transform: rotate(45deg) translateY(-2.5px);\n }\n\n &::after {\n transform: rotate(-45deg) translateY(2.5px);\n }\n }\n\n &:hover > &-title > &-expand-icon,\n &:hover > &-title > &-arrow {\n color: @menu-highlight-color;\n }\n\n .@{menu-prefix-cls}-inline-collapsed &-arrow,\n &-inline &-arrow {\n // ↓\n &::before {\n transform: rotate(-45deg) translateX(2.5px);\n }\n\n &::after {\n transform: rotate(45deg) translateX(-2.5px);\n }\n }\n\n &-horizontal &-arrow {\n display: none;\n }\n\n &-open&-inline > &-title > &-arrow {\n // ↑\n transform: translateY(-2px);\n\n &::after {\n transform: rotate(-45deg) translateX(-2.5px);\n }\n\n &::before {\n transform: rotate(45deg) translateX(2.5px);\n }\n }\n }\n\n &-vertical &-submenu-selected,\n &-vertical-left &-submenu-selected,\n &-vertical-right &-submenu-selected {\n color: @menu-highlight-color;\n }\n\n &-horizontal {\n line-height: @menu-horizontal-line-height;\n border: 0;\n border-bottom: @border-width-base @border-style-base @border-color-split;\n box-shadow: none;\n\n &:not(.@{menu-prefix-cls}-dark) {\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-submenu {\n margin-top: -1px;\n margin-bottom: 0;\n padding: @menu-item-padding;\n\n &:hover,\n &-active,\n &-open,\n &-selected {\n color: @menu-highlight-color;\n\n &::after {\n border-bottom: 2px solid @menu-highlight-color;\n }\n }\n }\n }\n\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-submenu {\n position: relative;\n top: 1px;\n display: inline-block;\n vertical-align: bottom;\n\n &::after {\n position: absolute;\n right: @menu-item-padding-horizontal;\n bottom: 0;\n left: @menu-item-padding-horizontal;\n border-bottom: 2px solid transparent;\n transition: border-color @animation-duration-slow @ease-in-out;\n content: '';\n }\n }\n\n > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title {\n padding: 0;\n }\n\n > .@{menu-prefix-cls}-item {\n a {\n color: @menu-item-color;\n\n &:hover {\n color: @menu-highlight-color;\n }\n\n &::before {\n bottom: -2px;\n }\n }\n\n &-selected a {\n color: @menu-highlight-color;\n }\n }\n\n &::after {\n display: block;\n clear: both;\n height: 0;\n content: '\\20';\n }\n }\n\n &-vertical,\n &-vertical-left,\n &-vertical-right,\n &-inline {\n .@{menu-prefix-cls}-item {\n position: relative;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n border-right: @menu-item-active-border-width solid @menu-highlight-color;\n transform: scaleY(0.0001);\n opacity: 0;\n transition: transform @menu-animation-duration-normal @ease-out,\n opacity @menu-animation-duration-normal @ease-out;\n content: '';\n }\n }\n\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n height: @menu-item-height;\n margin-top: @menu-item-vertical-margin;\n margin-bottom: @menu-item-vertical-margin;\n padding: 0 16px;\n overflow: hidden;\n line-height: @menu-item-height;\n text-overflow: ellipsis;\n }\n\n // disable margin collapsed\n .@{menu-prefix-cls}-submenu {\n padding-bottom: 0.02px;\n }\n\n .@{menu-prefix-cls}-item:not(:last-child) {\n margin-bottom: @menu-item-boundary-margin;\n }\n\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title {\n height: @menu-inline-toplevel-item-height;\n line-height: @menu-inline-toplevel-item-height;\n }\n }\n\n &-vertical {\n .@{menu-prefix-cls}-item-group-list .@{menu-prefix-cls}-submenu-title,\n .@{menu-prefix-cls}-submenu-title {\n padding-right: 34px;\n }\n }\n\n &-inline {\n width: 100%;\n .@{menu-prefix-cls}-selected,\n .@{menu-prefix-cls}-item-selected {\n &::after {\n transform: scaleY(1);\n opacity: 1;\n transition: transform @menu-animation-duration-normal @ease-in-out,\n opacity @menu-animation-duration-normal @ease-in-out;\n }\n }\n\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n width: ~'calc(100% + 1px)';\n }\n\n .@{menu-prefix-cls}-item-group-list .@{menu-prefix-cls}-submenu-title,\n .@{menu-prefix-cls}-submenu-title {\n padding-right: 34px;\n }\n\n // Motion enhance for first level\n &.@{menu-prefix-cls}-root {\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n display: flex;\n align-items: center;\n transition: border-color @animation-duration-slow, background @animation-duration-slow,\n padding 0.1s @ease-out;\n\n > .@{menu-prefix-cls}-title-content {\n flex: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n > * {\n flex: none;\n }\n }\n }\n }\n\n &&-inline-collapsed {\n width: @menu-collapsed-width;\n\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-item-group\n > .@{menu-prefix-cls}-item-group-list\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-item-group\n > .@{menu-prefix-cls}-item-group-list\n > .@{menu-prefix-cls}-submenu\n > .@{menu-prefix-cls}-submenu-title,\n > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title {\n left: 0;\n padding: 0 ~'calc(50% - @{menu-icon-size-lg} / 2)';\n text-overflow: clip;\n\n .@{menu-prefix-cls}-submenu-arrow {\n opacity: 0;\n }\n\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n margin: 0;\n font-size: @menu-icon-size-lg;\n line-height: @menu-item-height;\n\n + span {\n display: inline-block;\n opacity: 0;\n }\n }\n }\n\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n display: inline-block;\n }\n\n &-tooltip {\n pointer-events: none;\n\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n display: none;\n }\n\n a {\n color: @text-color-dark;\n }\n }\n\n .@{menu-prefix-cls}-item-group-title {\n padding-right: 4px;\n padding-left: 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n\n &-item-group-list {\n margin: 0;\n padding: 0;\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n padding: 0 16px 0 28px;\n }\n }\n\n &-root&-vertical,\n &-root&-vertical-left,\n &-root&-vertical-right,\n &-root&-inline {\n box-shadow: none;\n }\n\n &-root&-inline-collapsed {\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu .@{menu-prefix-cls}-submenu-title {\n > .@{menu-prefix-cls}-inline-collapsed-noicon {\n font-size: @menu-icon-size-lg;\n text-align: center;\n }\n }\n }\n\n &-sub&-inline {\n padding: 0;\n background: @menu-inline-submenu-bg;\n border: 0;\n border-radius: 0;\n box-shadow: none;\n & > .@{menu-prefix-cls}-item,\n & > .@{menu-prefix-cls}-submenu > .@{menu-prefix-cls}-submenu-title {\n height: @menu-item-height;\n line-height: @menu-item-height;\n list-style-position: inside;\n list-style-type: disc;\n }\n\n & .@{menu-prefix-cls}-item-group-title {\n padding-left: 32px;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &-item-disabled,\n &-submenu-disabled {\n color: @disabled-color !important;\n background: none;\n cursor: not-allowed;\n\n &::after {\n border-color: transparent !important;\n }\n\n a {\n color: @disabled-color !important;\n pointer-events: none;\n }\n\n > .@{menu-prefix-cls}-submenu-title {\n color: @disabled-color !important;\n cursor: not-allowed;\n > .@{menu-prefix-cls}-submenu-arrow {\n &::before,\n &::after {\n background: @disabled-color !important;\n }\n }\n }\n }\n}\n\n// Integration with header element so menu items have the same height\n.@{ant-prefix}-layout-header {\n .@{menu-prefix-cls} {\n line-height: inherit;\n }\n}\n\n// https://github.com/ant-design/ant-design/issues/32950\n.@{ant-prefix}-menu-inline-collapsed-tooltip {\n a,\n a:hover {\n color: @white;\n }\n}\n\n@import './light';\n@import './dark';\n@import './rtl';\n\n@root-entry-name: default;",".@{menu-prefix-cls} {\n // light theme\n &-light {\n .@{menu-prefix-cls}-item:hover,\n .@{menu-prefix-cls}-item-active,\n .@{menu-prefix-cls}:not(.@{menu-prefix-cls}-inline) .@{menu-prefix-cls}-submenu-open,\n .@{menu-prefix-cls}-submenu-active,\n .@{menu-prefix-cls}-submenu-title:hover {\n color: @menu-highlight-color;\n }\n }\n}\n",".accessibility-focus-dark() {\n box-shadow: 0 0 0 2px @primary-7;\n}\n\n.@{menu-prefix-cls} {\n &&-root:focus-visible {\n .accessibility-focus-dark();\n }\n\n &-dark &-item,\n &-dark &-submenu-title {\n &:focus-visible {\n .accessibility-focus-dark();\n }\n }\n\n // dark theme\n &&-dark,\n &-dark &-sub,\n &&-dark &-sub {\n color: @menu-dark-color;\n background: @menu-dark-bg;\n .@{menu-prefix-cls}-submenu-title .@{menu-prefix-cls}-submenu-arrow {\n opacity: 0.45;\n transition: all 0.3s;\n\n &::after,\n &::before {\n background: @menu-dark-arrow-color;\n }\n }\n }\n\n &-dark&-submenu-popup {\n background: transparent;\n }\n\n &-dark &-inline&-sub {\n background: @menu-dark-inline-submenu-bg;\n }\n\n &-dark&-horizontal {\n border-bottom: 0;\n }\n\n &-dark&-horizontal > &-item,\n &-dark&-horizontal > &-submenu {\n top: 0;\n margin-top: 0;\n padding: @menu-item-padding;\n border-color: @menu-dark-bg;\n border-bottom: 0;\n }\n\n &-dark&-horizontal > &-item:hover {\n background-color: @menu-dark-item-active-bg;\n }\n\n &-dark&-horizontal > &-item > a::before {\n bottom: 0;\n }\n\n &-dark &-item,\n &-dark &-item-group-title,\n &-dark &-item > a,\n &-dark &-item > span > a {\n color: @menu-dark-color;\n }\n\n &-dark&-inline,\n &-dark&-vertical,\n &-dark&-vertical-left,\n &-dark&-vertical-right {\n border-right: 0;\n }\n\n &-dark&-inline &-item,\n &-dark&-vertical &-item,\n &-dark&-vertical-left &-item,\n &-dark&-vertical-right &-item {\n left: 0;\n margin-left: 0;\n border-right: 0;\n\n &::after {\n border-right: 0;\n }\n }\n\n &-dark&-inline &-item,\n &-dark&-inline &-submenu-title {\n width: 100%;\n }\n\n &-dark &-item:hover,\n &-dark &-item-active,\n &-dark &-submenu-active,\n &-dark &-submenu-open,\n &-dark &-submenu-selected,\n &-dark &-submenu-title:hover {\n color: @menu-dark-highlight-color;\n background-color: transparent;\n\n > a,\n > span > a {\n color: @menu-dark-highlight-color;\n }\n > .@{menu-prefix-cls}-submenu-title {\n > .@{menu-prefix-cls}-submenu-arrow {\n opacity: 1;\n\n &::after,\n &::before {\n background: @menu-dark-highlight-color;\n }\n }\n }\n }\n\n &-dark &-item:hover {\n background-color: @menu-dark-item-hover-bg;\n }\n\n &-dark&-dark:not(&-horizontal) &-item-selected {\n background-color: @menu-dark-item-active-bg;\n }\n\n &-dark &-item-selected {\n color: @menu-dark-highlight-color;\n border-right: 0;\n\n &::after {\n border-right: 0;\n }\n\n > a,\n > span > a,\n > a:hover,\n > span > a:hover {\n color: @menu-dark-highlight-color;\n }\n\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n color: @menu-dark-selected-item-icon-color;\n\n + span {\n color: @menu-dark-selected-item-text-color;\n }\n }\n }\n\n &&-dark &-item-selected,\n &-submenu-popup&-dark &-item-selected {\n background-color: @menu-dark-item-active-bg;\n }\n\n // Disabled state sets text to dark gray and nukes hover/tab effects\n &-dark &-item-disabled,\n &-dark &-submenu-disabled {\n &,\n > a,\n > span > a {\n color: @disabled-color-dark !important;\n opacity: 0.8;\n }\n > .@{menu-prefix-cls}-submenu-title {\n color: @disabled-color-dark !important;\n > .@{menu-prefix-cls}-submenu-arrow {\n &::before,\n &::after {\n background: @disabled-color-dark !important;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@menu-prefix-cls: ~'@{ant-prefix}-menu';\n\n.@{menu-prefix-cls} {\n &&-rtl {\n direction: rtl;\n text-align: right;\n }\n\n &-item-group-title {\n .@{menu-prefix-cls}-rtl & {\n text-align: right;\n }\n }\n\n &-inline,\n &-vertical {\n .@{menu-prefix-cls}-rtl& {\n border-right: none;\n border-left: @border-width-base @border-style-base @border-color-split;\n }\n }\n\n &-dark&-inline,\n &-dark&-vertical {\n .@{menu-prefix-cls}-rtl& {\n border-left: none;\n }\n }\n\n &-vertical&-sub,\n &-vertical-left&-sub,\n &-vertical-right&-sub {\n > .@{menu-prefix-cls}-item,\n > .@{menu-prefix-cls}-submenu {\n .@{menu-prefix-cls}-rtl& {\n transform-origin: top right;\n }\n }\n }\n\n &-item,\n &-submenu-title {\n .@{menu-prefix-cls}-item-icon,\n .@{iconfont-css-prefix} {\n .@{menu-prefix-cls}-rtl & {\n margin-right: auto;\n margin-left: @menu-icon-margin-right;\n }\n }\n\n &.@{menu-prefix-cls}-item-only-child {\n > .@{menu-prefix-cls}-item-icon,\n > .@{iconfont-css-prefix} {\n .@{menu-prefix-cls}-rtl & {\n margin-left: 0;\n }\n }\n }\n }\n\n &-submenu {\n &-rtl.@{menu-prefix-cls}-submenu-popup {\n transform-origin: 100% 0;\n }\n\n &-vertical,\n &-vertical-left,\n &-vertical-right,\n &-inline {\n > .@{menu-prefix-cls}-submenu-title .@{menu-prefix-cls}-submenu-arrow {\n .@{menu-prefix-cls}-rtl & {\n right: auto;\n left: 16px;\n }\n }\n }\n\n &-vertical,\n &-vertical-left,\n &-vertical-right {\n > .@{menu-prefix-cls}-submenu-title .@{menu-prefix-cls}-submenu-arrow {\n &::before {\n .@{menu-prefix-cls}-rtl & {\n transform: rotate(-45deg) translateY(-2px);\n }\n }\n\n &::after {\n .@{menu-prefix-cls}-rtl & {\n transform: rotate(45deg) translateY(2px);\n }\n }\n }\n }\n }\n\n &-vertical,\n &-vertical-left,\n &-vertical-right,\n &-inline {\n .@{menu-prefix-cls}-item {\n &::after {\n .@{menu-prefix-cls}-rtl& {\n right: auto;\n left: 0;\n }\n }\n }\n\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n .@{menu-prefix-cls}-rtl& {\n text-align: right;\n }\n }\n }\n\n &-inline {\n .@{menu-prefix-cls}-submenu-title {\n .@{menu-prefix-cls}-rtl& {\n padding-right: 0;\n padding-left: 34px;\n }\n }\n }\n\n &-vertical {\n .@{menu-prefix-cls}-submenu-title {\n .@{menu-prefix-cls}-rtl& {\n padding-right: 16px;\n padding-left: 34px;\n }\n }\n }\n\n &-inline-collapsed&-vertical {\n .@{menu-prefix-cls}-submenu-title {\n .@{menu-prefix-cls}-rtl& {\n padding: 0 ~'calc(50% - @{menu-icon-size-lg} / 2)';\n }\n }\n }\n\n &-item-group-list {\n .@{menu-prefix-cls}-item,\n .@{menu-prefix-cls}-submenu-title {\n .@{menu-prefix-cls}-rtl & {\n padding: 0 28px 0 16px;\n }\n }\n }\n\n &-sub&-inline {\n border: 0;\n & .@{menu-prefix-cls}-item-group-title {\n .@{menu-prefix-cls}-rtl& {\n padding-right: 32px;\n padding-left: 0;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tooltip-prefix-cls: ~'@{ant-prefix}-tooltip';\n\n@tooltip-arrow-shadow-width: 3px;\n\n@tooltip-arrow-rotate-width: sqrt(@tooltip-arrow-width * @tooltip-arrow-width * 2) +\n @tooltip-arrow-shadow-width * 2;\n\n@tooltip-arrow-offset-vertical: 5px; // 8 - 3px\n@tooltip-arrow-offset-horizontal: 13px; // 16 - 3px\n\n// Base class\n.@{tooltip-prefix-cls} {\n .reset-component();\n\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n width: max-content;\n width: intrinsic;\n max-width: @tooltip-max-width;\n visibility: visible;\n\n &-content {\n position: relative;\n }\n\n &-hidden {\n display: none;\n }\n\n &-placement-top,\n &-placement-topLeft,\n &-placement-topRight {\n padding-bottom: @tooltip-distance;\n }\n\n &-placement-right,\n &-placement-rightTop,\n &-placement-rightBottom {\n padding-left: @tooltip-distance;\n }\n\n &-placement-bottom,\n &-placement-bottomLeft,\n &-placement-bottomRight {\n padding-top: @tooltip-distance;\n }\n\n &-placement-left,\n &-placement-leftTop,\n &-placement-leftBottom {\n padding-right: @tooltip-distance;\n }\n\n // Wrapper for the tooltip content\n &-inner {\n min-width: 30px;\n min-height: 32px;\n padding: 6px 8px;\n color: @tooltip-color;\n text-align: left;\n text-decoration: none;\n word-wrap: break-word;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n box-shadow: @box-shadow-base;\n }\n\n // Arrows\n &-arrow {\n position: absolute;\n z-index: 2;\n display: block;\n width: @tooltip-arrow-rotate-width;\n height: @tooltip-arrow-rotate-width;\n overflow: hidden;\n background: transparent;\n pointer-events: none;\n\n &-content {\n // Use linear gradient to mix box shadow of tooltip inner\n --antd-arrow-background-color: linear-gradient(\n to right bottom,\n fadeout(@tooltip-bg, 10%),\n @tooltip-bg\n );\n\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n width: @tooltip-arrow-width;\n height: @tooltip-arrow-width;\n margin: auto;\n content: '';\n pointer-events: auto;\n .roundedArrow(@tooltip-arrow-width, 5px);\n }\n }\n\n &-placement-top &-arrow,\n &-placement-topLeft &-arrow,\n &-placement-topRight &-arrow {\n bottom: 0;\n transform: translateY(100%);\n\n &-content {\n box-shadow: @tooltip-arrow-shadow-width @tooltip-arrow-shadow-width 7px fade(@black, 7%);\n transform: translateY((-@tooltip-arrow-rotate-width / 2)) rotate(45deg);\n }\n }\n\n &-placement-top &-arrow {\n left: 50%;\n transform: translateY(100%) translateX(-50%);\n }\n\n &-placement-topLeft &-arrow {\n left: @tooltip-arrow-offset-horizontal;\n }\n\n &-placement-topRight &-arrow {\n right: @tooltip-arrow-offset-horizontal;\n }\n\n &-placement-right &-arrow,\n &-placement-rightTop &-arrow,\n &-placement-rightBottom &-arrow {\n left: 0;\n transform: translateX(-100%);\n\n &-content {\n box-shadow: -@tooltip-arrow-shadow-width @tooltip-arrow-shadow-width 7px fade(@black, 7%);\n transform: translateX((@tooltip-arrow-rotate-width / 2)) rotate(135deg);\n }\n }\n\n &-placement-right &-arrow {\n top: 50%;\n transform: translateX(-100%) translateY(-50%);\n }\n\n &-placement-rightTop &-arrow {\n top: @tooltip-arrow-offset-vertical;\n }\n\n &-placement-rightBottom &-arrow {\n bottom: @tooltip-arrow-offset-vertical;\n }\n\n &-placement-left &-arrow,\n &-placement-leftTop &-arrow,\n &-placement-leftBottom &-arrow {\n right: 0;\n transform: translateX(100%);\n\n &-content {\n box-shadow: @tooltip-arrow-shadow-width -@tooltip-arrow-shadow-width 7px fade(@black, 7%);\n transform: translateX((-@tooltip-arrow-rotate-width / 2)) rotate(315deg);\n }\n }\n\n &-placement-left &-arrow {\n top: 50%;\n transform: translateX(100%) translateY(-50%);\n }\n\n &-placement-leftTop &-arrow {\n top: @tooltip-arrow-offset-vertical;\n }\n\n &-placement-leftBottom &-arrow {\n bottom: @tooltip-arrow-offset-vertical;\n }\n\n &-placement-bottom &-arrow,\n &-placement-bottomLeft &-arrow,\n &-placement-bottomRight &-arrow {\n top: 0;\n transform: translateY(-100%);\n\n &-content {\n box-shadow: -@tooltip-arrow-shadow-width -@tooltip-arrow-shadow-width 7px fade(@black, 7%);\n transform: translateY((@tooltip-arrow-rotate-width / 2)) rotate(225deg);\n }\n }\n\n &-placement-bottom &-arrow {\n left: 50%;\n transform: translateY(-100%) translateX(-50%);\n }\n\n &-placement-bottomLeft &-arrow {\n left: @tooltip-arrow-offset-horizontal;\n }\n\n &-placement-bottomRight &-arrow {\n right: @tooltip-arrow-offset-horizontal;\n }\n}\n\n.generator-tooltip-preset-color(@i: length(@preset-colors)) when (@i > 0) {\n .generator-tooltip-preset-color(@i - 1);\n @color: extract(@preset-colors, @i);\n @lightColor: '@{color}-6';\n .@{tooltip-prefix-cls}-@{color} {\n .@{tooltip-prefix-cls}-inner {\n background-color: @@lightColor;\n }\n .@{tooltip-prefix-cls}-arrow {\n &-content::before {\n background: @@lightColor;\n }\n }\n }\n}\n.generator-tooltip-preset-color();\n\n@import './rtl';\n\n@root-entry-name: default;","@tooltip-prefix-cls: ~'@{ant-prefix}-tooltip';\n\n// Base class\n.@{tooltip-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n // Wrapper for the tooltip content\n &-inner {\n .@{tooltip-prefix-cls}-rtl & {\n text-align: right;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@space-prefix-cls: ~'@{ant-prefix}-space';\n@space-item-prefix-cls: ~'@{ant-prefix}-space-item';\n\n.@{space-prefix-cls} {\n display: inline-flex;\n\n &-vertical {\n flex-direction: column;\n }\n\n &-align {\n &-center {\n align-items: center;\n }\n\n &-start {\n align-items: flex-start;\n }\n\n &-end {\n align-items: flex-end;\n }\n\n &-baseline {\n align-items: baseline;\n }\n }\n}\n\n.@{space-item-prefix-cls} {\n &:empty {\n display: none;\n }\n}\n\n@import './compact';\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@space-compact-prefix-cls: ~'@{ant-prefix}-space-compact';\n\n.@{space-compact-prefix-cls} {\n display: inline-flex;\n\n &-block {\n display: flex;\n width: 100%;\n }\n\n &-vertical {\n flex-direction: column;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@space-prefix-cls: ~'@{ant-prefix}-space';\n\n.@{space-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-compact-rtl {\n direction: rtl;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@calendar-prefix-cls: ~'@{ant-prefix}-picker-calendar';\n@calendar-picker-prefix-cls: ~'@{ant-prefix}-picker';\n\n.@{calendar-prefix-cls} {\n .reset-component();\n background: @calendar-full-bg;\n\n // ========================= Header =========================\n &-header {\n display: flex;\n justify-content: flex-end;\n padding: @padding-sm 0;\n\n .@{calendar-prefix-cls}-year-select {\n min-width: 80px;\n }\n\n .@{calendar-prefix-cls}-month-select {\n min-width: 70px;\n margin-left: @padding-xs;\n }\n\n .@{calendar-prefix-cls}-mode-switch {\n margin-left: @padding-xs;\n }\n }\n\n .@{calendar-picker-prefix-cls}-panel {\n background: @calendar-full-panel-bg;\n border: 0;\n border-top: @border-width-base @border-style-base @border-color-split;\n border-radius: 0;\n\n .@{calendar-picker-prefix-cls}-month-panel,\n .@{calendar-picker-prefix-cls}-date-panel {\n width: auto;\n }\n\n .@{calendar-picker-prefix-cls}-body {\n padding: @padding-xs 0;\n }\n\n .@{calendar-picker-prefix-cls}-content {\n width: 100%;\n }\n }\n\n // ========================== Mini ==========================\n &-mini {\n border-radius: @border-radius-base;\n\n .@{calendar-picker-prefix-cls}-calendar-header {\n padding-right: @padding-xs;\n padding-left: @padding-xs;\n }\n\n .@{calendar-picker-prefix-cls}-panel {\n border-radius: 0 0 @border-radius-base @border-radius-base;\n }\n\n .@{calendar-picker-prefix-cls}-content {\n height: 256px;\n\n th {\n height: auto;\n padding: 0;\n line-height: 18px;\n }\n }\n\n .@{calendar-picker-prefix-cls}-cell::before {\n pointer-events: none;\n }\n }\n\n // ========================== Full ==========================\n &-full {\n .@{calendar-picker-prefix-cls}-panel {\n display: block;\n width: 100%;\n text-align: right;\n background: @calendar-full-bg;\n border: 0;\n\n .@{calendar-picker-prefix-cls}-body {\n th,\n td {\n padding: 0;\n }\n\n th {\n height: auto;\n padding: 0 12px 5px 0;\n line-height: 18px;\n }\n }\n\n // Cell\n .@{calendar-picker-prefix-cls}-cell {\n &::before {\n display: none;\n }\n\n &:hover {\n .@{calendar-prefix-cls}-date {\n background: @item-hover-bg;\n }\n }\n\n .@{calendar-prefix-cls}-date-today::before {\n display: none;\n }\n\n &-selected,\n &-selected:hover {\n .@{calendar-prefix-cls}-date,\n .@{calendar-prefix-cls}-date-today {\n background: @calendar-item-active-bg;\n\n .@{calendar-prefix-cls}-date-value {\n color: @primary-color;\n }\n }\n }\n }\n\n // Cell date\n .@{calendar-prefix-cls}-date {\n display: block;\n width: auto;\n height: auto;\n margin: 0 (@padding-xs / 2);\n padding: (@padding-xs / 2) @padding-xs 0;\n border: 0;\n border-top: 2px solid @border-color-split;\n border-radius: 0;\n transition: background 0.3s;\n\n &-value {\n line-height: 24px;\n transition: color 0.3s;\n }\n\n &-content {\n position: static;\n width: auto;\n height: 86px;\n overflow-y: auto;\n color: @text-color;\n line-height: @line-height-base;\n text-align: left;\n }\n\n &-today {\n border-color: @primary-color;\n\n .@{calendar-prefix-cls}-date-value {\n color: @text-color;\n }\n }\n }\n }\n }\n}\n\n@media only screen and (max-width: @screen-xs) {\n .@{calendar-prefix-cls} {\n &-header {\n display: block;\n\n .@{calendar-prefix-cls}-year-select {\n width: 50%;\n }\n\n .@{calendar-prefix-cls}-month-select {\n width: ~'calc(50% - @{padding-xs})';\n }\n\n .@{calendar-prefix-cls}-mode-switch {\n width: 100%;\n margin-top: @padding-xs;\n margin-left: 0;\n\n > label {\n width: 50%;\n text-align: center;\n }\n }\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{calendar-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-header {\n .@{calendar-prefix-cls}-month-select {\n .@{calendar-prefix-cls}-rtl & {\n margin-right: @padding-xs;\n margin-left: 0;\n }\n }\n\n .@{calendar-prefix-cls}-mode-switch {\n .@{calendar-prefix-cls}-rtl & {\n margin-right: @padding-xs;\n margin-left: 0;\n }\n }\n }\n\n // ========================== Full ==========================\n &-full {\n .@{calendar-picker-prefix-cls}-panel {\n .@{calendar-prefix-cls}-rtl& {\n text-align: left;\n }\n\n .@{calendar-picker-prefix-cls}-body {\n th {\n .@{calendar-prefix-cls}-rtl& {\n padding: 0 0 5px 12px;\n }\n }\n }\n\n .@{calendar-prefix-cls}-date {\n &-content {\n .@{calendar-prefix-cls}-rtl& {\n text-align: right;\n }\n }\n }\n }\n }\n}\n","@import '../../input/style/mixin';\n\n@picker-prefix-cls: ~'@{ant-prefix}-picker';\n\n.picker-status-color(\n @text-color: @input-color;\n @border-color: @input-border-color;\n @background-color: @input-bg;\n @hoverBorderColor: @primary-color-hover;\n @outlineColor: @primary-color-outline;\n) {\n &.@{picker-prefix-cls} {\n &,\n &:not([disabled]):hover {\n background-color: @background-color;\n border-color: @border-color;\n }\n\n &-focused,\n &:focus {\n .active(@text-color, @hoverBorderColor, @outlineColor);\n }\n\n .@{picker-prefix-cls}-active-bar {\n background: @hoverBorderColor;\n }\n }\n}\n\n.@{picker-prefix-cls} {\n &-status-error {\n .picker-status-color(@error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n }\n\n &-status-warning {\n .picker-status-color(@warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import './status';\n\n@picker-prefix-cls: ~'@{ant-prefix}-picker';\n\n.picker-padding(@input-height, @font-size, @padding-horizontal) {\n // font height probably 22.0001, So use floor better\n @font-height: floor(@font-size * @line-height-base) + 2;\n @padding-top: max(((@input-height - @font-height) / 2), 0);\n @padding-bottom: max(@input-height - @font-height - @padding-top, 0);\n padding: @padding-top @padding-horizontal @padding-bottom;\n}\n\n.@{picker-prefix-cls} {\n @arrow-size: @popover-arrow-width;\n\n .reset-component();\n .picker-padding(@input-height-base, @font-size-base, @input-padding-horizontal-base);\n position: relative;\n display: inline-flex;\n align-items: center;\n background: @picker-bg;\n border: @border-width-base @border-style-base @select-border-color;\n border-radius: @control-border-radius;\n transition: border @animation-duration-slow, box-shadow @animation-duration-slow;\n\n &:hover,\n &-focused {\n .hover();\n }\n\n &-focused {\n .active();\n }\n\n &&-disabled {\n background: @input-disabled-bg;\n border-color: @select-border-color;\n cursor: not-allowed;\n }\n\n &&-disabled &-suffix {\n color: @disabled-color;\n }\n\n &&-borderless {\n background-color: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n }\n\n // ======================== Input =========================\n &-input {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 100%;\n\n > input {\n .input();\n flex: auto;\n\n // Fix Firefox flex not correct:\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n min-width: 1px;\n height: auto;\n padding: 0;\n background: transparent;\n\n border: 0;\n\n &:focus {\n box-shadow: none;\n }\n\n &[disabled] {\n background: transparent;\n }\n }\n\n &:hover {\n .@{picker-prefix-cls}-clear {\n opacity: 1;\n }\n }\n\n &-placeholder {\n > input {\n color: @input-placeholder-color;\n }\n }\n }\n\n // Size\n &-large {\n .picker-padding(@input-height-lg, @font-size-lg, @input-padding-horizontal-lg);\n\n .@{picker-prefix-cls}-input > input {\n font-size: @font-size-lg;\n }\n }\n\n &-small {\n .picker-padding(@input-height-sm, @font-size-base, @input-padding-horizontal-sm);\n }\n\n &-suffix {\n display: flex;\n flex: none;\n align-self: center;\n margin-left: (@padding-xs / 2);\n color: @disabled-color;\n line-height: 1;\n pointer-events: none;\n\n > * {\n vertical-align: top;\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n }\n }\n\n &-clear {\n position: absolute;\n top: 50%;\n right: 0;\n color: @disabled-color;\n line-height: 1;\n background: @component-background;\n transform: translateY(-50%);\n cursor: pointer;\n opacity: 0;\n transition: opacity @animation-duration-slow, color @animation-duration-slow;\n\n > * {\n vertical-align: top;\n }\n\n &:hover {\n color: @text-color-secondary;\n }\n }\n\n &-separator {\n position: relative;\n display: inline-block;\n width: 1em;\n height: @font-size-lg;\n color: @disabled-color;\n font-size: @font-size-lg;\n vertical-align: top;\n cursor: default;\n\n .@{picker-prefix-cls}-focused & {\n color: @text-color-secondary;\n }\n\n .@{picker-prefix-cls}-range-separator & {\n .@{picker-prefix-cls}-disabled & {\n cursor: not-allowed;\n }\n }\n }\n\n // ======================== Range =========================\n &-range {\n position: relative;\n display: inline-flex;\n\n // Clear\n .@{picker-prefix-cls}-clear {\n right: @input-padding-horizontal-base;\n }\n\n &:hover {\n .@{picker-prefix-cls}-clear {\n opacity: 1;\n }\n }\n\n // Active bar\n .@{picker-prefix-cls}-active-bar {\n bottom: -@border-width-base;\n height: 2px;\n margin-left: @input-padding-horizontal-base;\n background: @primary-color;\n opacity: 0;\n transition: all @animation-duration-slow ease-out;\n pointer-events: none;\n }\n\n &.@{picker-prefix-cls}-focused {\n .@{picker-prefix-cls}-active-bar {\n opacity: 1;\n }\n }\n\n &-separator {\n align-items: center;\n padding: 0 @padding-xs;\n line-height: 1;\n }\n\n &.@{picker-prefix-cls}-small {\n .@{picker-prefix-cls}-clear {\n right: @input-padding-horizontal-sm;\n }\n\n .@{picker-prefix-cls}-active-bar {\n margin-left: @input-padding-horizontal-sm;\n }\n }\n }\n\n // ======================= Dropdown =======================\n &-dropdown {\n .reset-component();\n position: absolute;\n // Fix incorrect position of picker popup\n // https://github.com/ant-design/ant-design/issues/35590\n top: -9999px;\n left: -9999px;\n z-index: @zindex-picker;\n\n &-hidden {\n display: none;\n }\n\n &-placement-bottomLeft {\n .@{picker-prefix-cls}-range-arrow {\n top: (@arrow-size / 2) - (@arrow-size / 3) + 0.7px;\n display: block;\n transform: rotate(-135deg) translateY(1px);\n }\n }\n\n &-placement-topLeft {\n .@{picker-prefix-cls}-range-arrow {\n bottom: (@arrow-size / 2) - (@arrow-size / 3) + 0.7px;\n display: block;\n transform: rotate(45deg);\n }\n }\n\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-topRight,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-topRight {\n animation-name: antSlideDownIn;\n }\n\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-up-enter.@{ant-prefix}-slide-up-enter-active&-placement-bottomRight,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-up-appear.@{ant-prefix}-slide-up-appear-active&-placement-bottomRight {\n animation-name: antSlideUpIn;\n }\n\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-topLeft,\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-topRight {\n animation-name: antSlideDownOut;\n }\n\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-bottomLeft,\n &.@{ant-prefix}-slide-up-leave.@{ant-prefix}-slide-up-leave-active&-placement-bottomRight {\n animation-name: antSlideUpOut;\n }\n }\n\n &-dropdown-range {\n padding: (@arrow-size * 2 / 3) 0;\n\n &-hidden {\n display: none;\n }\n }\n\n // Time picker with additional style\n &-dropdown &-panel > &-time-panel {\n padding-top: (@padding-xs / 2);\n }\n\n // ======================== Ranges ========================\n &-ranges {\n margin-bottom: 0;\n padding: (@padding-xs / 2) @padding-sm;\n overflow: hidden;\n line-height: @picker-text-height - 2 * @border-width-base - (@padding-xs / 2);\n text-align: left;\n list-style: none;\n\n > li {\n display: inline-block;\n }\n\n // https://github.com/ant-design/ant-design/issues/23687\n .@{picker-prefix-cls}-preset > .@{ant-prefix}-tag-blue {\n color: @primary-color;\n background: @primary-1;\n border-color: @primary-3;\n cursor: pointer;\n }\n\n .@{picker-prefix-cls}-ok {\n float: right;\n margin-left: @padding-xs;\n }\n }\n\n &-range-wrapper {\n display: flex;\n }\n\n &-range-arrow {\n position: absolute;\n z-index: 1;\n width: @arrow-size;\n height: @arrow-size;\n margin-left: @input-padding-horizontal-base * 1.5;\n box-shadow: 2px 2px 6px -2px fade(@black, 10%); // use spread radius to hide shadow over popover\n transition: left @animation-duration-slow ease-out;\n .roundedArrow(@arrow-size, 5px, @calendar-bg);\n }\n\n &-panel-container {\n overflow: hidden;\n vertical-align: top;\n background: @calendar-bg;\n border-radius: @border-radius-base;\n box-shadow: @box-shadow-base;\n transition: margin @animation-duration-slow;\n\n .@{picker-prefix-cls}-panels {\n display: inline-flex;\n flex-wrap: nowrap;\n direction: ltr;\n }\n\n .@{picker-prefix-cls}-panel {\n vertical-align: top;\n background: transparent;\n border-width: 0 0 @border-width-base 0;\n border-radius: 0;\n\n .@{picker-prefix-cls}-content,\n table {\n text-align: center;\n }\n\n &-focused {\n border-color: @border-color-split;\n }\n }\n }\n\n // ===================== Compact Item Styles =====================\n .compact-item(@picker-prefix-cls, null, ~'@{picker-prefix-cls}-focused');\n}\n\n@import './panel';\n@import './rtl';\n\n@root-entry-name: default;","// Compatibility for browsers.\n\n// Placeholder text\n.placeholder(@color: @input-placeholder-color) {\n &::placeholder {\n color: @color;\n user-select: none; // https://github.com/ant-design/ant-design/pull/32639\n }\n\n &:placeholder-shown {\n text-overflow: ellipsis;\n }\n}\n","@picker-cell-inner-cls: ~'@{picker-prefix-cls}-cell-inner';\n\n.@{picker-prefix-cls} {\n @picker-arrow-size: 7px;\n @picker-year-month-cell-width: 60px;\n @picker-panel-width: @picker-panel-cell-width * 7 + @padding-sm * 2 + 4;\n\n &-panel {\n display: inline-flex;\n flex-direction: column;\n text-align: center;\n background: @calendar-bg;\n border: @border-width-base @border-style-base @picker-border-color;\n border-radius: @border-radius-base;\n outline: none;\n\n &-focused {\n border-color: @primary-color;\n }\n }\n\n // ========================================================\n // = Shared Panel =\n // ========================================================\n &-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel,\n &-week-panel,\n &-date-panel,\n &-time-panel {\n display: flex;\n flex-direction: column;\n width: @picker-panel-width;\n }\n\n // ======================= Header =======================\n &-header {\n display: flex;\n padding: 0 @padding-xs;\n color: @heading-color;\n border-bottom: @border-width-base @border-style-base @picker-border-color;\n\n > * {\n flex: none;\n }\n\n button {\n padding: 0;\n color: @disabled-color;\n line-height: @picker-text-height;\n background: transparent;\n border: 0;\n cursor: pointer;\n transition: color @animation-duration-slow;\n }\n\n > button {\n min-width: 1.6em;\n font-size: @font-size-base;\n\n &:hover {\n color: @text-color;\n }\n }\n\n &-view {\n flex: auto;\n font-weight: 500;\n line-height: @picker-text-height;\n\n button {\n color: inherit;\n font-weight: inherit;\n\n &:not(:first-child) {\n margin-left: @padding-xs;\n }\n\n &:hover {\n color: @primary-color;\n }\n }\n }\n }\n\n // Arrow button\n &-prev-icon,\n &-next-icon,\n &-super-prev-icon,\n &-super-next-icon {\n position: relative;\n display: inline-block;\n width: @picker-arrow-size;\n height: @picker-arrow-size;\n\n &::before {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n width: @picker-arrow-size;\n height: @picker-arrow-size;\n border: 0 solid currentcolor;\n border-width: 1.5px 0 0 1.5px;\n content: '';\n }\n }\n\n &-super-prev-icon,\n &-super-next-icon {\n &::after {\n position: absolute;\n top: ceil((@picker-arrow-size / 2));\n left: ceil((@picker-arrow-size / 2));\n display: inline-block;\n width: @picker-arrow-size;\n height: @picker-arrow-size;\n border: 0 solid currentcolor;\n border-width: 1.5px 0 0 1.5px;\n content: '';\n }\n }\n\n &-prev-icon,\n &-super-prev-icon {\n transform: rotate(-45deg);\n }\n\n &-next-icon,\n &-super-next-icon {\n transform: rotate(135deg);\n }\n\n // ======================== Body ========================\n &-content {\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n\n th,\n td {\n position: relative;\n min-width: 24px;\n font-weight: 400;\n }\n\n th {\n height: 30px;\n color: @text-color;\n line-height: 30px;\n }\n }\n\n .picker-cell-inner(@cellClassName) {\n &::before {\n position: absolute;\n top: 50%;\n right: 0;\n left: 0;\n z-index: 1;\n height: @picker-panel-cell-height;\n transform: translateY(-50%);\n transition: all @animation-duration-slow;\n content: '';\n }\n\n // >>> Default\n .@{cellClassName} {\n position: relative;\n z-index: 2;\n display: inline-block;\n min-width: @picker-panel-cell-height;\n height: @picker-panel-cell-height;\n line-height: @picker-panel-cell-height;\n border-radius: @border-radius-base;\n transition: background @animation-duration-slow, border @animation-duration-slow;\n }\n\n // >>> Hover\n &:hover:not(&-in-view),\n &:hover:not(&-selected):not(&-range-start):not(&-range-end):not(&-range-hover-start):not(&-range-hover-end) {\n .@{cellClassName} {\n background: @picker-basic-cell-hover-color;\n }\n }\n\n // >>> Today\n &-in-view&-today .@{cellClassName} {\n &::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n border: @border-width-base @border-style-base @primary-color;\n border-radius: @border-radius-base;\n content: '';\n }\n }\n\n // >>> In Range\n &-in-view&-in-range {\n position: relative;\n\n &::before {\n background: @picker-basic-cell-active-with-range-color;\n }\n }\n\n // >>> Selected\n &-in-view&-selected .@{cellClassName},\n &-in-view&-range-start .@{cellClassName},\n &-in-view&-range-end .@{cellClassName} {\n color: @text-color-inverse;\n background: @primary-color;\n }\n\n &-in-view&-range-start:not(&-range-start-single),\n &-in-view&-range-end:not(&-range-end-single) {\n &::before {\n background: @picker-basic-cell-active-with-range-color;\n }\n }\n\n &-in-view&-range-start::before {\n left: 50%;\n }\n\n &-in-view&-range-end::before {\n right: 50%;\n }\n\n // >>> Range Hover\n &-in-view&-range-hover-start:not(&-in-range):not(&-range-start):not(&-range-end),\n &-in-view&-range-hover-end:not(&-in-range):not(&-range-start):not(&-range-end),\n &-in-view&-range-hover-start&-range-start-single,\n &-in-view&-range-hover-start&-range-start&-range-end&-range-end-near-hover,\n &-in-view&-range-hover-end&-range-start&-range-end&-range-start-near-hover,\n &-in-view&-range-hover-end&-range-end-single,\n &-in-view&-range-hover:not(&-in-range) {\n &::after {\n position: absolute;\n top: 50%;\n z-index: 0;\n height: 24px;\n border-top: @border-width-base dashed @picker-date-hover-range-border-color;\n border-bottom: @border-width-base dashed @picker-date-hover-range-border-color;\n transform: translateY(-50%);\n transition: all @animation-duration-slow;\n content: '';\n }\n }\n\n // Add space for stash\n &-range-hover-start::after,\n &-range-hover-end::after,\n &-range-hover::after {\n right: 0;\n left: 2px;\n }\n\n // Hover with in range\n &-in-view&-in-range&-range-hover::before,\n &-in-view&-range-start&-range-hover::before,\n &-in-view&-range-end&-range-hover::before,\n &-in-view&-range-start:not(&-range-start-single)&-range-hover-start::before,\n &-in-view&-range-end:not(&-range-end-single)&-range-hover-end::before,\n .@{picker-prefix-cls}-panel\n > :not(.@{picker-prefix-cls}-date-panel)\n &-in-view&-in-range&-range-hover-start::before,\n .@{picker-prefix-cls}-panel\n > :not(.@{picker-prefix-cls}-date-panel)\n &-in-view&-in-range&-range-hover-end::before {\n background: @picker-date-hover-range-color;\n }\n\n // range start border-radius\n &-in-view&-range-start:not(&-range-start-single):not(&-range-end) .@{cellClassName} {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n\n // range end border-radius\n &-in-view&-range-end:not(&-range-end-single):not(&-range-start) .@{cellClassName} {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n\n // DatePanel only\n .@{picker-prefix-cls}-date-panel &-in-view&-in-range&-range-hover-start .@{cellClassName},\n .@{picker-prefix-cls}-date-panel &-in-view&-in-range&-range-hover-end .@{cellClassName} {\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: -1;\n background: @picker-date-hover-range-color;\n transition: all @animation-duration-slow;\n content: '';\n }\n }\n\n .@{picker-prefix-cls}-date-panel\n &-in-view&-in-range&-range-hover-start\n .@{cellClassName}::after {\n right: -5px - @border-width-base;\n left: 0;\n }\n\n .@{picker-prefix-cls}-date-panel &-in-view&-in-range&-range-hover-end .@{cellClassName}::after {\n right: 0;\n left: -5px - @border-width-base;\n }\n\n // Hover with range start & end\n &-range-hover&-range-start::after {\n right: 50%;\n }\n\n &-range-hover&-range-end::after {\n left: 50%;\n }\n\n // Edge start\n tr > &-in-view&-range-hover:first-child::after,\n tr > &-in-view&-range-hover-end:first-child::after,\n &-in-view&-start&-range-hover-edge-start&-range-hover-edge-start-near-range::after,\n &-in-view&-range-hover-edge-start:not(&-range-hover-edge-start-near-range)::after,\n &-in-view&-range-hover-start::after {\n left: 6px;\n border-left: @border-width-base dashed @picker-date-hover-range-border-color;\n border-top-left-radius: @border-radius-base;\n border-bottom-left-radius: @border-radius-base;\n }\n\n // Edge end\n tr > &-in-view&-range-hover:last-child::after,\n tr > &-in-view&-range-hover-start:last-child::after,\n &-in-view&-end&-range-hover-edge-end&-range-hover-edge-end-near-range::after,\n &-in-view&-range-hover-edge-end:not(&-range-hover-edge-end-near-range)::after,\n &-in-view&-range-hover-end::after {\n right: 6px;\n border-right: @border-width-base dashed @picker-date-hover-range-border-color;\n border-top-right-radius: @border-radius-base;\n border-bottom-right-radius: @border-radius-base;\n }\n\n // >>> Disabled\n &-disabled {\n color: @disabled-color;\n pointer-events: none;\n\n .@{cellClassName} {\n background: transparent;\n }\n\n &::before {\n background: @picker-basic-cell-disabled-bg;\n }\n }\n &-disabled&-today .@{cellClassName}::before {\n border-color: @disabled-color;\n }\n }\n\n &-cell {\n padding: 3px 0;\n color: @disabled-color;\n cursor: pointer;\n\n // In view\n &-in-view {\n color: @text-color;\n }\n\n .picker-cell-inner(~'@{picker-cell-inner-cls}');\n }\n\n &-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel {\n .@{picker-prefix-cls}-content {\n height: @picker-panel-without-time-cell-height * 4;\n }\n\n .@{picker-cell-inner-cls} {\n padding: 0 @padding-xs;\n }\n }\n\n &-quarter-panel {\n .@{picker-prefix-cls}-content {\n height: 56px;\n }\n }\n\n // ======================== Footer ========================\n &-footer {\n width: min-content;\n min-width: 100%;\n line-height: @picker-text-height - 2 * @border-width-base;\n text-align: center;\n border-bottom: @border-width-base @border-style-base transparent;\n\n .@{picker-prefix-cls}-panel & {\n border-top: @border-width-base @border-style-base @picker-border-color;\n }\n\n &-extra {\n padding: 0 @padding-sm;\n line-height: @picker-text-height - 2 * @border-width-base;\n text-align: left;\n\n &:not(:last-child) {\n border-bottom: @border-width-base @border-style-base @picker-border-color;\n }\n }\n }\n\n &-now {\n text-align: left;\n }\n\n &-today-btn {\n color: @link-color;\n\n &:hover {\n color: @link-hover-color;\n }\n\n &:active {\n color: @link-active-color;\n }\n\n &&-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n }\n }\n\n // ========================================================\n // = Special =\n // ========================================================\n\n // ===================== Decade Panel =====================\n &-decade-panel {\n .@{picker-cell-inner-cls} {\n padding: 0 (@padding-xs / 2);\n }\n\n .@{picker-prefix-cls}-cell::before {\n display: none;\n }\n }\n\n // ============= Year & Quarter & Month Panel =============\n &-year-panel,\n &-quarter-panel,\n &-month-panel {\n @hover-cell-fixed-distance: (\n (((@picker-panel-width - @padding-xs * 2) / 3) - @picker-year-month-cell-width) / 2\n );\n\n .@{picker-prefix-cls}-body {\n padding: 0 @padding-xs;\n }\n\n .@{picker-cell-inner-cls} {\n width: @picker-year-month-cell-width;\n }\n\n .@{picker-prefix-cls}-cell-range-hover-start::after {\n left: @hover-cell-fixed-distance;\n border-left: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n\n .@{picker-prefix-cls}-panel-rtl & {\n right: @hover-cell-fixed-distance;\n border-right: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n .@{picker-prefix-cls}-cell-range-hover-end::after {\n right: @hover-cell-fixed-distance;\n border-right: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n\n .@{picker-prefix-cls}-panel-rtl & {\n left: @hover-cell-fixed-distance;\n border-left: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n }\n\n // ====================== Week Panel ======================\n &-week-panel {\n .@{picker-prefix-cls}-body {\n padding: @padding-xs @padding-sm;\n }\n\n // Clear cell style\n .@{picker-prefix-cls}-cell {\n &:hover .@{picker-cell-inner-cls},\n &-selected .@{picker-cell-inner-cls},\n .@{picker-cell-inner-cls} {\n background: transparent !important;\n }\n }\n\n &-row {\n td {\n transition: background @animation-duration-slow;\n }\n\n &:hover td {\n background: @picker-basic-cell-hover-color;\n }\n\n &-selected td,\n &-selected:hover td {\n background: @primary-color;\n\n &.@{picker-prefix-cls}-cell-week {\n color: fade(@text-color-inverse, 50%);\n }\n\n &.@{picker-prefix-cls}-cell-today .@{picker-cell-inner-cls}::before {\n border-color: @text-color-inverse;\n }\n\n .@{picker-cell-inner-cls} {\n color: @text-color-inverse;\n }\n }\n }\n }\n\n // ====================== Date Panel ======================\n &-date-panel {\n .@{picker-prefix-cls}-body {\n padding: @padding-xs @padding-sm;\n }\n\n .@{picker-prefix-cls}-content {\n width: @picker-panel-cell-width * 7;\n\n th {\n width: @picker-panel-cell-width;\n }\n }\n }\n\n // ==================== Datetime Panel ====================\n &-datetime-panel {\n display: flex;\n\n .@{picker-prefix-cls}-time-panel {\n border-left: @border-width-base @border-style-base @picker-border-color;\n }\n\n .@{picker-prefix-cls}-date-panel,\n .@{picker-prefix-cls}-time-panel {\n transition: opacity @animation-duration-slow;\n }\n\n // Keyboard\n &-active {\n .@{picker-prefix-cls}-date-panel,\n .@{picker-prefix-cls}-time-panel {\n opacity: 0.3;\n\n &-active {\n opacity: 1;\n }\n }\n }\n }\n\n // ====================== Time Panel ======================\n &-time-panel {\n width: auto;\n min-width: auto;\n\n .@{picker-prefix-cls}-content {\n display: flex;\n flex: auto;\n height: @picker-time-panel-column-height;\n }\n\n &-column {\n flex: 1 0 auto;\n width: @picker-time-panel-column-width;\n margin: 0;\n padding: 0;\n overflow-y: hidden;\n text-align: left;\n list-style: none;\n transition: background @animation-duration-slow;\n\n &::after {\n display: block;\n height: @picker-time-panel-column-height - @picker-time-panel-cell-height;\n content: '';\n .@{picker-prefix-cls}-datetime-panel & {\n height: @picker-time-panel-column-height - @picker-time-panel-cell-height + 2 *\n @border-width-base;\n }\n }\n\n &:not(:first-child) {\n border-left: @border-width-base @border-style-base @picker-border-color;\n }\n\n &-active {\n background: @calendar-column-active-bg;\n }\n\n &:hover {\n overflow-y: auto;\n }\n\n > li {\n margin: 0;\n padding: 0;\n\n &.@{picker-prefix-cls}-time-panel-cell {\n .@{picker-prefix-cls}-time-panel-cell-inner {\n display: block;\n width: 100%;\n height: @picker-time-panel-cell-height;\n margin: 0;\n padding: 0 0 0 ((@picker-time-panel-column-width - 28px) / 2);\n color: @text-color;\n line-height: @picker-time-panel-cell-height;\n border-radius: 0;\n cursor: pointer;\n transition: background @animation-duration-slow;\n\n &:hover {\n background: @item-hover-bg;\n }\n }\n\n &-selected {\n .@{picker-prefix-cls}-time-panel-cell-inner {\n background: @calendar-item-active-bg;\n }\n }\n\n &-disabled {\n .@{picker-prefix-cls}-time-panel-cell-inner {\n color: @disabled-color;\n background: transparent;\n cursor: not-allowed;\n }\n }\n }\n }\n }\n }\n}\n\n// Fix IE11 render bug by css hacks\n// https://github.com/ant-design/ant-design/issues/21559\n// https://codepen.io/afc163-1472555193/pen/mdJRaNj?editors=0110\n/* stylelint-disable selector-type-no-unknown,selector-no-vendor-prefix */\n_:-ms-fullscreen,\n:root {\n .@{picker-prefix-cls}-range-wrapper {\n .@{picker-prefix-cls}-month-panel .@{picker-prefix-cls}-cell,\n .@{picker-prefix-cls}-year-panel .@{picker-prefix-cls}-cell {\n padding: 21px 0;\n }\n }\n}\n",".@{picker-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-suffix {\n .@{picker-prefix-cls}-rtl & {\n margin-right: (@padding-xs / 2);\n margin-left: 0;\n }\n }\n\n &-clear {\n .@{picker-prefix-cls}-rtl & {\n right: auto;\n left: 0;\n }\n }\n\n &-separator {\n .@{picker-prefix-cls}-rtl & {\n transform: rotate(180deg);\n }\n }\n\n &-header {\n &-view {\n button {\n &:not(:first-child) {\n .@{picker-prefix-cls}-panel-rtl & {\n margin-right: @padding-xs;\n margin-left: 0;\n }\n }\n }\n }\n }\n\n // ======================== Range =========================\n &-range {\n // Clear\n .@{picker-prefix-cls}-clear {\n .@{picker-prefix-cls}-rtl& {\n right: auto;\n left: @input-padding-horizontal-base;\n }\n }\n\n // Active bar\n .@{picker-prefix-cls}-active-bar {\n .@{picker-prefix-cls}-rtl& {\n margin-right: @input-padding-horizontal-base;\n margin-left: 0;\n }\n }\n\n &.@{picker-prefix-cls}-small {\n .@{picker-prefix-cls}-active-bar {\n .@{picker-prefix-cls}-rtl& {\n margin-right: @input-padding-horizontal-sm;\n }\n }\n }\n }\n\n // ======================== Ranges ========================\n &-ranges {\n .@{picker-prefix-cls}-dropdown-rtl & {\n text-align: right;\n }\n\n .@{picker-prefix-cls}-ok {\n .@{picker-prefix-cls}-dropdown-rtl & {\n float: left;\n margin-right: @padding-xs;\n margin-left: 0;\n }\n }\n }\n\n // ======================== Panel ========================\n &-panel {\n &-rtl {\n direction: rtl;\n }\n }\n\n &-prev-icon,\n &-super-prev-icon {\n .@{picker-prefix-cls}-panel-rtl & {\n transform: rotate(135deg);\n }\n }\n\n &-next-icon,\n &-super-next-icon {\n .@{picker-prefix-cls}-panel-rtl & {\n transform: rotate(-45deg);\n }\n }\n\n &-cell {\n .picker-cell-inner(~'@{picker-cell-inner-cls}');\n }\n\n // ======================== Body ==========================\n .picker-cell-inner(@cellClassName) {\n .@{cellClassName} {\n position: relative;\n z-index: 2;\n display: inline-block;\n min-width: @picker-panel-cell-height;\n height: @picker-panel-cell-height;\n line-height: @picker-panel-cell-height;\n border-radius: @border-radius-base;\n transition: background @animation-duration-slow, border @animation-duration-slow;\n }\n\n &-in-view&-range-start::before {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 50%;\n left: 0;\n }\n }\n\n &-in-view&-range-end::before {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 0;\n left: 50%;\n }\n }\n\n &-in-view&-range-start&-range-end::before {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 50%;\n left: 50%;\n }\n }\n\n .@{picker-prefix-cls}-date-panel\n &-in-view&-in-range&-range-hover-start\n .@{cellClassName}::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 0;\n left: -5px - @border-width-base;\n }\n }\n\n .@{picker-prefix-cls}-date-panel &-in-view&-in-range&-range-hover-end .@{cellClassName}::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: -5px - @border-width-base;\n left: 0;\n }\n }\n\n // Hover with range start & end\n &-range-hover&-range-start::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 0;\n left: 50%;\n }\n }\n\n &-range-hover&-range-end::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 50%;\n left: 0;\n }\n }\n\n // range start border-radius\n &-in-view&-range-start:not(&-range-start-single):not(&-range-end) .@{cellClassName} {\n .@{picker-prefix-cls}-panel-rtl & {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n\n // range end border-radius\n &-in-view&-range-end:not(&-range-end-single):not(&-range-start) .@{cellClassName} {\n .@{picker-prefix-cls}-panel-rtl & {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n // Edge start\n tr > &-in-view&-range-hover:not(&-selected):first-child::after,\n &-in-view&-start&-range-hover-edge-start&-range-hover-edge-start-near-range::after,\n &-in-view&-range-hover-edge-start:not(&-range-hover-edge-start-near-range)::after,\n &-in-view&-range-hover-start::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 6px;\n left: 0;\n border-right: @border-width-base dashed @picker-date-hover-range-border-color;\n border-left: none;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n\n // Edge end\n tr > &-in-view&-range-hover:not(&-selected):last-child::after,\n &-in-view&-end&-range-hover-edge-end&-range-hover-edge-end-near-range::after,\n &-in-view&-range-hover-edge-end:not(&-range-hover-edge-end-near-range)::after,\n &-in-view&-range-hover-end::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 0;\n left: 6px;\n border-right: none;\n border-left: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n tr > &-in-view&-range-hover-start:last-child::after,\n tr > &-in-view&-range-hover-end:first-child::after,\n &-in-view&-start&-range-hover-edge-start:not(&-range-hover)::after,\n &-in-view&-start&-range-hover-end&-range-hover-edge-start:not(&-range-hover)::after,\n &-in-view&-end&-range-hover-start&-range-hover-edge-end:not(&-range-hover)::after,\n tr > &-in-view&-start&-range-hover&-range-hover-edge-start:last-child::after,\n tr > &-in-view&-end&-range-hover&-range-hover-edge-end:first-child::after {\n .@{picker-prefix-cls}-panel-rtl & {\n right: 6px;\n left: 6px;\n border-right: @border-width-base dashed @picker-date-hover-range-border-color;\n border-left: @border-width-base dashed @picker-date-hover-range-border-color;\n border-radius: @border-radius-base;\n }\n }\n }\n\n // ======================== Footer ========================\n &-footer {\n &-extra {\n .@{picker-prefix-cls}-dropdown-rtl & {\n direction: rtl;\n text-align: right;\n }\n }\n }\n\n // ====================== Time Panel ======================\n &-time-panel {\n .@{picker-prefix-cls}-panel-rtl & {\n direction: ltr;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tag-prefix-cls: ~'@{ant-prefix}-tag';\n\n.@{tag-prefix-cls} {\n .reset-component();\n\n display: inline-block;\n height: auto;\n margin-right: 8px;\n padding: 0 7px;\n font-size: @tag-font-size;\n line-height: @tag-line-height;\n white-space: nowrap;\n background: @tag-default-bg;\n border: @border-width-base @border-style-base @border-color-base;\n border-radius: @tag-border-radius;\n opacity: 1;\n transition: all 0.3s;\n\n &,\n a,\n a:hover {\n color: @tag-default-color;\n }\n\n > a:first-child:last-child {\n display: inline-block;\n margin: 0 -8px;\n padding: 0 8px;\n }\n\n &-close-icon {\n margin-left: 3px;\n color: @text-color-secondary;\n font-size: 10px;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n color: @heading-color;\n }\n }\n\n &-has-color {\n border-color: transparent;\n &,\n a,\n a:hover,\n .@{iconfont-css-prefix}-close,\n .@{iconfont-css-prefix}-close:hover {\n color: @text-color-inverse;\n }\n }\n\n &-checkable {\n background-color: transparent;\n border-color: transparent;\n cursor: pointer;\n\n &:not(&-checked):hover {\n color: @primary-color;\n }\n\n &:active,\n &-checked {\n color: @text-color-inverse;\n }\n\n &-checked {\n background-color: @primary-6;\n }\n\n &:active {\n background-color: @primary-7;\n }\n }\n\n &-hidden {\n display: none;\n }\n\n // mixin to iterate over colors and create CSS class for each one\n .make-color-classes(@i: length(@preset-colors)) when (@i > 0) {\n .make-color-classes(@i - 1);\n @color: extract(@preset-colors, @i);\n @lightColor: '@{color}-1';\n @lightBorderColor: '@{color}-3';\n @darkColor: '@{color}-6';\n @textColor: '@{color}-7';\n &-@{color} {\n color: @@textColor;\n background: @@lightColor;\n border-color: @@lightBorderColor;\n }\n &-@{color}-inverse {\n color: @text-color-inverse;\n background: @@darkColor;\n border-color: @@darkColor;\n }\n }\n\n .make-status-color-classes(@status, @cssVariableType) {\n @bgColor: '@{cssVariableType}-color-deprecated-bg';\n @borderColor: '@{cssVariableType}-color-deprecated-border';\n @textColor: '@{cssVariableType}-color';\n &-@{status} {\n color: @@textColor;\n background: @@bgColor;\n border-color: @@borderColor;\n }\n }\n\n .make-color-classes();\n\n .make-status-color-classes(success, success);\n .make-status-color-classes(processing, info);\n .make-status-color-classes(error, error);\n .make-status-color-classes(warning, warning);\n\n // To ensure that a space will be placed between character and `Icon`.\n > .@{iconfont-css-prefix} + span,\n > span + .@{iconfont-css-prefix} {\n margin-left: 7px;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tag-prefix-cls: ~'@{ant-prefix}-tag';\n\n.@{tag-prefix-cls} {\n &&-rtl {\n margin-right: 0;\n margin-left: 8px;\n direction: rtl;\n text-align: right;\n }\n\n &-close-icon {\n .@{tag-prefix-cls}-rtl & {\n margin-right: 3px;\n margin-left: 0;\n }\n }\n\n > .@{iconfont-css-prefix} + span,\n > span + .@{iconfont-css-prefix} {\n .@{tag-prefix-cls}-rtl& {\n margin-right: 7px;\n margin-left: 0;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@radio-prefix-cls: ~'@{ant-prefix}-radio';\n@radio-group-prefix-cls: ~'@{radio-prefix-cls}-group';\n@radio-inner-prefix-cls: ~'@{radio-prefix-cls}-inner';\n@radio-duration: 0.3s;\n@radio-focus-shadow: 0 0 0 3px @slider-handle-color-focus-shadow;\n@radio-button-focus-shadow: @radio-focus-shadow;\n\n.@{radio-group-prefix-cls} {\n .reset-component();\n\n display: inline-block;\n font-size: 0;\n\n .@{ant-prefix}-badge-count {\n z-index: 1;\n }\n\n > .@{ant-prefix}-badge:not(:first-child) > .@{radio-prefix-cls}-button-wrapper {\n border-left: none;\n }\n}\n\n// 一般状态\n.@{radio-prefix-cls}-wrapper {\n .reset-component();\n position: relative;\n display: inline-flex;\n align-items: baseline;\n margin-right: @radio-wrapper-margin-right;\n cursor: pointer;\n\n &-disabled {\n cursor: not-allowed;\n }\n\n &::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n }\n\n &&-in-form-item {\n input[type='radio'] {\n width: 14px;\n height: 14px;\n }\n }\n}\n\n.@{radio-prefix-cls} {\n .reset-component();\n\n position: relative;\n top: @radio-top;\n display: inline-block;\n outline: none;\n cursor: pointer;\n\n .@{radio-prefix-cls}-wrapper:hover &,\n &:hover .@{radio-inner-prefix-cls},\n &-input:focus + .@{radio-inner-prefix-cls} {\n border-color: @radio-dot-color;\n }\n\n &-input:focus + .@{radio-inner-prefix-cls} {\n box-shadow: @radio-focus-shadow;\n }\n\n &-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid @radio-dot-color;\n border-radius: 50%;\n visibility: hidden;\n animation: antRadioEffect 0.36s ease-in-out;\n animation-fill-mode: both;\n content: '';\n }\n\n &:hover::after,\n .@{radio-prefix-cls}-wrapper:hover &::after {\n visibility: visible;\n }\n\n &-inner {\n &::after {\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n width: @radio-size;\n height: @radio-size;\n margin-top: -(@radio-size / 2);\n margin-left: -(@radio-size / 2);\n background-color: @radio-dot-color;\n border-top: 0;\n border-left: 0;\n border-radius: @radio-size;\n transform: scale(0);\n opacity: 0;\n transition: all @radio-duration @ease-in-out-circ;\n content: ' ';\n }\n\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: @radio-size;\n height: @radio-size;\n background-color: @radio-button-bg;\n border-color: @border-color-base;\n border-style: solid;\n border-width: @radio-border-width;\n border-radius: 50%;\n transition: all @radio-duration;\n }\n\n &-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n cursor: pointer;\n opacity: 0;\n }\n\n &&-disabled {\n .@{radio-inner-prefix-cls} {\n border-color: @border-color-base;\n }\n }\n}\n\n// 选中状态\n.@{radio-prefix-cls}-checked {\n .@{radio-inner-prefix-cls} {\n border-color: @radio-dot-color;\n\n &::after {\n transform: scale((unit(@radio-dot-size) / unit(@radio-size)));\n opacity: 1;\n transition: all @radio-duration @ease-in-out-circ;\n }\n }\n}\n\n.@{radio-prefix-cls}-disabled {\n cursor: not-allowed;\n\n .@{radio-inner-prefix-cls} {\n background-color: @input-disabled-bg;\n cursor: not-allowed;\n\n &::after {\n background-color: @radio-dot-disabled-color;\n }\n }\n\n .@{radio-prefix-cls}-input {\n cursor: not-allowed;\n }\n\n & + span {\n color: @disabled-color;\n cursor: not-allowed;\n }\n}\n\nspan.@{radio-prefix-cls} + * {\n padding-right: 8px;\n padding-left: 8px;\n}\n\n.@{radio-prefix-cls}-button-wrapper {\n position: relative;\n display: inline-block;\n height: @btn-height-base;\n margin: 0;\n padding: 0 @radio-button-padding-horizontal;\n color: @radio-button-color;\n font-size: @font-size-base;\n line-height: @btn-height-base - 2px;\n background: @radio-button-bg;\n border: @border-width-base @border-style-base @border-color-base;\n // strange align fix for chrome but works\n // https://gw.alipayobjects.com/zos/rmsportal/VFTfKXJuogBAXcvfAUWJ.gif\n border-top-width: @border-width-base + 0.02px;\n border-left-width: 0;\n cursor: pointer;\n transition: color 0.3s, background 0.3s, border-color 0.3s, box-shadow 0.3s;\n\n a {\n color: @radio-button-color;\n }\n\n > .@{radio-prefix-cls}-button {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n }\n\n .@{radio-group-prefix-cls}-large & {\n height: @input-height-lg;\n font-size: @font-size-lg;\n line-height: @input-height-lg - 2px;\n }\n\n .@{radio-group-prefix-cls}-small & {\n height: @input-height-sm;\n padding: 0 @control-padding-horizontal-sm - 1px;\n line-height: @input-height-sm - 2px;\n }\n\n &:not(:first-child) {\n &::before {\n position: absolute;\n top: @border-width-base * -1;\n left: -1px;\n display: block;\n box-sizing: content-box;\n width: 1px;\n height: 100%;\n padding: @border-width-base 0;\n background-color: @border-color-base;\n transition: background-color 0.3s;\n content: '';\n }\n }\n\n &:first-child {\n border-left: @border-width-base @border-style-base @border-color-base;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n\n &:last-child {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n\n &:first-child:last-child {\n border-radius: @border-radius-base;\n }\n\n &:hover {\n position: relative;\n color: @radio-dot-color;\n }\n\n &:focus-within {\n box-shadow: @radio-button-focus-shadow;\n }\n\n .@{radio-prefix-cls}-inner,\n input[type='checkbox'],\n input[type='radio'] {\n width: 0;\n height: 0;\n opacity: 0;\n pointer-events: none;\n }\n\n &-checked:not(&-disabled) {\n z-index: 1;\n color: @radio-dot-color;\n background: @radio-button-checked-bg;\n border-color: @radio-dot-color;\n\n &::before {\n background-color: @radio-dot-color;\n }\n\n &:first-child {\n border-color: @radio-dot-color;\n }\n\n &:hover {\n color: @radio-button-hover-color;\n border-color: @radio-button-hover-color;\n\n &::before {\n background-color: @radio-button-hover-color;\n }\n }\n\n &:active {\n color: @radio-button-active-color;\n border-color: @radio-button-active-color;\n\n &::before {\n background-color: @radio-button-active-color;\n }\n }\n\n &:focus-within {\n box-shadow: @radio-button-focus-shadow;\n }\n }\n\n .@{radio-group-prefix-cls}-solid &-checked:not(&-disabled) {\n color: @radio-solid-checked-color;\n background: @radio-dot-color;\n border-color: @radio-dot-color;\n\n &:hover {\n color: @radio-solid-checked-color;\n background: @radio-button-hover-color;\n border-color: @radio-button-hover-color;\n }\n\n &:active {\n color: @radio-solid-checked-color;\n background: @radio-button-active-color;\n border-color: @radio-button-active-color;\n }\n\n &:focus-within {\n box-shadow: @radio-button-focus-shadow;\n }\n }\n\n &-disabled {\n color: @disabled-color;\n background-color: @input-disabled-bg;\n border-color: @border-color-base;\n cursor: not-allowed;\n\n &:first-child,\n &:hover {\n color: @disabled-color;\n background-color: @input-disabled-bg;\n border-color: @border-color-base;\n }\n\n &:first-child {\n border-left-color: @border-color-base;\n }\n }\n\n &-disabled&-checked {\n color: @radio-disabled-button-checked-color;\n background-color: @radio-disabled-button-checked-bg;\n border-color: @border-color-base;\n box-shadow: none;\n }\n}\n\n@keyframes antRadioEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@radio-prefix-cls: ~'@{ant-prefix}-radio';\n@radio-group-prefix-cls: ~'@{radio-prefix-cls}-group';\n@radio-prefix-cls-button-wrapper: ~'@{radio-prefix-cls}-button-wrapper';\n\n.@{radio-group-prefix-cls} {\n &&-rtl {\n direction: rtl;\n }\n}\n\n// 一般状态\n.@{radio-prefix-cls}-wrapper {\n &&-rtl {\n margin-right: 0;\n margin-left: @radio-wrapper-margin-right;\n direction: rtl;\n }\n}\n\n.@{radio-prefix-cls-button-wrapper} {\n &&-rtl {\n border-right-width: 0;\n border-left-width: @border-width-base;\n }\n\n &:not(:first-child) {\n &::before {\n .@{radio-prefix-cls-button-wrapper}.@{radio-prefix-cls-button-wrapper}-rtl& {\n right: -1px;\n left: 0;\n }\n }\n }\n\n &:first-child {\n .@{radio-prefix-cls-button-wrapper}.@{radio-prefix-cls-button-wrapper}-rtl& {\n border-right: @border-width-base @border-style-base @border-color-base;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n .@{radio-prefix-cls-button-wrapper}-checked:not([class*=~\"' @{radio-prefix-cls}-button-wrapper-disabled'\"])& {\n border-right-color: @radio-button-hover-color;\n }\n }\n\n &:last-child {\n .@{radio-prefix-cls-button-wrapper}.@{radio-prefix-cls-button-wrapper}-rtl& {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n &-disabled {\n &:first-child {\n .@{radio-prefix-cls-button-wrapper}.@{radio-prefix-cls-button-wrapper}-rtl& {\n border-right-color: @border-color-base;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@card-prefix-cls: ~'@{ant-prefix}-card';\n@card-hoverable-hover-border: transparent;\n@card-action-icon-size: 16px;\n\n@gradient-min: fade(@card-skeleton-bg, 20%);\n@gradient-max: fade(@card-skeleton-bg, 40%);\n\n.@{card-prefix-cls} {\n .reset-component();\n\n position: relative;\n background: @card-background;\n border-radius: @card-radius;\n\n &-rtl {\n direction: rtl;\n }\n\n &-hoverable {\n cursor: pointer;\n transition: box-shadow 0.3s, border-color 0.3s;\n\n &:hover {\n border-color: @card-hoverable-hover-border;\n box-shadow: @card-shadow;\n }\n }\n\n &-bordered {\n border: @border-width-base @border-style-base @border-color-split;\n }\n\n &-head {\n min-height: @card-head-height;\n margin-bottom: -1px; // Fix card grid overflow bug: https://gw.alipayobjects.com/zos/rmsportal/XonYxBikwpgbqIQBeuhk.png\n padding: 0 @card-padding-base;\n color: @card-head-color;\n font-weight: 500;\n font-size: @card-head-font-size;\n background: @card-head-background;\n border-bottom: @border-width-base @border-style-base @border-color-split;\n border-radius: @card-radius @card-radius 0 0;\n .clearfix();\n\n &-wrapper {\n display: flex;\n align-items: center;\n }\n\n &-title {\n display: inline-block;\n flex: 1;\n padding: @card-head-padding 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n > .@{ant-prefix}-typography,\n > .@{ant-prefix}-typography-edit-content {\n left: 0;\n margin-top: 0;\n margin-bottom: 0;\n }\n }\n\n .@{ant-prefix}-tabs-top {\n clear: both;\n margin-bottom: @card-head-tabs-margin-bottom;\n color: @text-color;\n font-weight: normal;\n font-size: @font-size-base;\n\n &-bar {\n border-bottom: @border-width-base @border-style-base @border-color-split;\n }\n }\n }\n\n &-extra {\n // https://stackoverflow.com/a/22429853/3040605\n margin-left: auto;\n padding: @card-head-padding 0;\n color: @card-head-extra-color;\n font-weight: normal;\n font-size: @font-size-base;\n\n .@{card-prefix-cls}-rtl & {\n margin-right: auto;\n margin-left: 0;\n }\n }\n\n &-body {\n padding: @card-padding-base;\n .clearfix();\n }\n\n &-contain-grid &-body {\n display: flex;\n flex-wrap: wrap;\n }\n\n &-contain-grid:not(&-loading) &-body {\n margin: -1px 0 0 -1px;\n padding: 0;\n }\n\n &-grid {\n width: 33.33%;\n padding: @card-padding-base;\n border: 0;\n border-radius: 0;\n box-shadow: 1px 0 0 0 @border-color-split, 0 1px 0 0 @border-color-split,\n 1px 1px 0 0 @border-color-split, 1px 0 0 0 @border-color-split inset,\n 0 1px 0 0 @border-color-split inset;\n transition: all 0.3s;\n\n &-hoverable {\n &:hover {\n position: relative;\n z-index: 1;\n box-shadow: @card-shadow;\n }\n }\n }\n\n &-contain-tabs > &-head &-head-title {\n min-height: @card-head-height - @card-head-padding;\n padding-bottom: 0;\n }\n\n &-contain-tabs > &-head &-extra {\n padding-bottom: 0;\n }\n\n &-bordered &-cover {\n margin-top: -1px;\n margin-right: -1px;\n margin-left: -1px;\n }\n\n &-cover {\n > * {\n display: block;\n width: 100%;\n }\n\n img {\n border-radius: @card-radius @card-radius 0 0;\n }\n }\n\n &-actions {\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n background: @card-actions-background;\n border-top: @border-width-base @border-style-base @border-color-split;\n .clearfix();\n\n & > li {\n margin: @card-actions-li-margin;\n color: @text-color-secondary;\n text-align: center;\n\n > span {\n position: relative;\n display: block;\n min-width: 32px;\n font-size: @font-size-base;\n line-height: @line-height-base;\n cursor: pointer;\n\n &:hover {\n color: @primary-color;\n transition: color 0.3s;\n }\n\n a:not(.@{ant-prefix}-btn),\n > .@{iconfont-css-prefix} {\n display: inline-block;\n width: 100%;\n color: @text-color-secondary;\n line-height: 22px;\n transition: color 0.3s;\n\n &:hover {\n color: @primary-color;\n }\n }\n\n > .@{iconfont-css-prefix} {\n font-size: @card-action-icon-size;\n line-height: 22px;\n }\n }\n\n &:not(:last-child) {\n border-right: @border-width-base @border-style-base @border-color-split;\n\n .@{card-prefix-cls}-rtl & {\n border-right: none;\n border-left: @border-width-base @border-style-base @border-color-split;\n }\n }\n }\n }\n\n &-type-inner &-head {\n padding: 0 @card-padding-base;\n background: @background-color-light;\n\n &-title {\n padding: @card-inner-head-padding 0;\n font-size: @font-size-base;\n }\n }\n\n &-type-inner &-body {\n padding: 16px @card-padding-base;\n }\n\n &-type-inner &-extra {\n padding: @card-inner-head-padding + 1.5px 0;\n }\n\n &-meta {\n display: flex;\n margin: -4px 0;\n .clearfix();\n\n &-avatar {\n padding-right: 16px;\n\n .@{card-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 16px;\n }\n }\n\n &-detail {\n flex: 1;\n overflow: hidden;\n\n > div:not(:last-child) {\n margin-bottom: @margin-xs;\n }\n }\n\n &-title {\n overflow: hidden;\n color: @card-head-color;\n font-weight: 500;\n font-size: @font-size-lg;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-description {\n color: @text-color-secondary;\n }\n }\n\n &-loading {\n overflow: hidden;\n }\n\n &-loading &-body {\n user-select: none;\n }\n}\n\n@import './size';\n\n@root-entry-name: default;",".@{card-prefix-cls}-small {\n > .@{card-prefix-cls}-head {\n min-height: @card-head-height-sm;\n padding: 0 @card-padding-base-sm;\n font-size: @card-head-font-size-sm;\n\n > .@{card-prefix-cls}-head-wrapper {\n > .@{card-prefix-cls}-head-title {\n padding: @card-head-padding-sm 0;\n }\n > .@{card-prefix-cls}-extra {\n padding: @card-head-padding-sm 0;\n font-size: @card-head-font-size-sm;\n }\n }\n }\n > .@{card-prefix-cls}-body {\n padding: @card-padding-base-sm;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@skeleton-prefix-cls: ~'@{ant-prefix}-skeleton';\n@skeleton-avatar-prefix-cls: ~'@{skeleton-prefix-cls}-avatar';\n@skeleton-title-prefix-cls: ~'@{skeleton-prefix-cls}-title';\n@skeleton-paragraph-prefix-cls: ~'@{skeleton-prefix-cls}-paragraph';\n@skeleton-button-prefix-cls: ~'@{skeleton-prefix-cls}-button';\n@skeleton-input-prefix-cls: ~'@{skeleton-prefix-cls}-input';\n@skeleton-image-prefix-cls: ~'@{skeleton-prefix-cls}-image';\n@skeleton-block-radius: @border-radius-base;\n\n.@{skeleton-prefix-cls} {\n display: table;\n width: 100%;\n\n &-header {\n display: table-cell;\n padding-right: @padding-md;\n vertical-align: top;\n\n // Avatar\n .@{skeleton-avatar-prefix-cls} {\n .skeleton-element-avatar();\n }\n }\n\n &-content {\n display: table-cell;\n width: 100%;\n vertical-align: top;\n\n // Title\n .@{skeleton-title-prefix-cls} {\n width: 100%;\n height: @skeleton-title-height;\n background: @skeleton-color;\n border-radius: @skeleton-block-radius;\n\n + .@{skeleton-paragraph-prefix-cls} {\n margin-top: @skeleton-title-paragraph-margin-top;\n }\n }\n\n // paragraph\n .@{skeleton-paragraph-prefix-cls} {\n padding: 0;\n\n > li {\n width: 100%;\n height: @skeleton-paragraph-li-height;\n list-style: none;\n background: @skeleton-color;\n border-radius: @skeleton-block-radius;\n\n &:last-child:not(:first-child):not(:nth-child(2)) {\n width: 61%;\n }\n\n + li {\n margin-top: @skeleton-paragraph-li-margin-top;\n }\n }\n }\n }\n\n &-with-avatar &-content {\n // Title\n .@{skeleton-title-prefix-cls} {\n margin-top: @margin-sm;\n\n + .@{skeleton-paragraph-prefix-cls} {\n margin-top: @skeleton-paragraph-margin-top;\n }\n }\n }\n\n &-round &-content {\n .@{skeleton-title-prefix-cls},\n .@{skeleton-paragraph-prefix-cls} > li {\n border-radius: 100px;\n }\n }\n\n // With active animation\n &-active {\n .@{skeleton-title-prefix-cls},\n .@{skeleton-paragraph-prefix-cls} > li,\n .@{skeleton-avatar-prefix-cls},\n .@{skeleton-button-prefix-cls},\n .@{skeleton-input-prefix-cls},\n .@{skeleton-image-prefix-cls} {\n .skeleton-color();\n }\n }\n\n // Skeleton Block Button, Input\n &.@{skeleton-prefix-cls}-block {\n width: 100%;\n\n .@{skeleton-button-prefix-cls} {\n width: 100%;\n }\n\n .@{skeleton-input-prefix-cls} {\n width: 100%;\n }\n }\n\n // Skeleton element\n &-element {\n display: inline-block;\n width: auto;\n\n .@{skeleton-button-prefix-cls} {\n .skeleton-element-button();\n }\n\n .@{skeleton-avatar-prefix-cls} {\n .skeleton-element-avatar();\n }\n\n .@{skeleton-input-prefix-cls} {\n .skeleton-element-input();\n }\n\n .@{skeleton-image-prefix-cls} {\n .skeleton-element-image();\n }\n }\n}\n// Button\n.skeleton-element-button() {\n display: inline-block;\n vertical-align: top;\n background: @skeleton-color;\n border-radius: @border-radius-base;\n\n .skeleton-element-button-size(@btn-height-base);\n\n &-lg {\n .skeleton-element-button-size(@btn-height-lg);\n }\n\n &-sm {\n .skeleton-element-button-size(@btn-height-sm);\n }\n}\n// Avatar\n.skeleton-element-avatar() {\n display: inline-block;\n vertical-align: top;\n background: @skeleton-color;\n\n .skeleton-element-avatar-size(@avatar-size-base);\n\n &-lg {\n .skeleton-element-avatar-size(@avatar-size-lg);\n }\n\n &-sm {\n .skeleton-element-avatar-size(@avatar-size-sm);\n }\n}\n\n// Input\n.skeleton-element-input() {\n display: inline-block;\n vertical-align: top;\n background: @skeleton-color;\n\n .skeleton-element-input-size(@input-height-base);\n\n &-lg {\n .skeleton-element-input-size(@input-height-lg);\n }\n\n &-sm {\n .skeleton-element-input-size(@input-height-sm);\n }\n}\n\n// Image\n.skeleton-element-image() {\n display: flex;\n align-items: center;\n justify-content: center;\n vertical-align: top;\n background: @skeleton-color;\n\n .skeleton-element-image-size(@image-size-base*2);\n\n &-path {\n fill: #bfbfbf;\n }\n\n &-svg {\n .skeleton-element-image-size(@image-size-base);\n max-width: @image-size-base * 4;\n max-height: @image-size-base * 4;\n }\n}\n\n.skeleton-element-avatar-size(@size) {\n width: @size;\n .skeleton-element-common-size(@size);\n\n &.@{skeleton-avatar-prefix-cls}-circle {\n border-radius: 50%;\n }\n}\n\n.skeleton-element-button-size(@size) {\n width: @size * 2;\n min-width: @size * 2;\n .skeleton-element-common-size(@size);\n\n &.@{skeleton-button-prefix-cls}-square {\n width: @size;\n min-width: @size;\n }\n\n &.@{skeleton-button-prefix-cls}-circle {\n width: @size;\n min-width: @size;\n border-radius: 50%;\n }\n\n &.@{skeleton-button-prefix-cls}-round {\n border-radius: @size;\n }\n}\n\n.skeleton-element-input-size(@size) {\n width: @size * 5;\n min-width: @size * 5;\n .skeleton-element-common-size(@size);\n}\n\n.skeleton-element-image-size(@size) {\n width: @size;\n .skeleton-element-common-size(@size);\n\n &.@{skeleton-image-prefix-cls}-circle {\n border-radius: 50%;\n }\n}\n\n.skeleton-element-common-size(@size) {\n height: @size;\n line-height: @size;\n}\n\n.skeleton-color() {\n position: relative;\n // fix https://github.com/ant-design/ant-design/issues/36444\n // https://monshin.github.io/202109/css/safari-border-radius-overflow-hidden/\n /* stylelint-disable-next-line property-no-vendor-prefix,value-no-vendor-prefix */\n z-index: 0;\n overflow: hidden;\n background: transparent;\n\n &::after {\n position: absolute;\n top: 0;\n right: -150%;\n bottom: 0;\n left: -150%;\n background: linear-gradient(\n 90deg,\n @skeleton-color 25%,\n @skeleton-to-color 37%,\n @skeleton-color 63%\n );\n animation: ~'@{skeleton-prefix-cls}-loading' 1.4s ease infinite;\n content: '';\n }\n}\n\n@keyframes ~\"@{skeleton-prefix-cls}-loading\" {\n 0% {\n transform: translateX(-37.5%);\n }\n\n 100% {\n transform: translateX(37.5%);\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@skeleton-prefix-cls: ~'@{ant-prefix}-skeleton';\n@skeleton-avatar-prefix-cls: ~'@{skeleton-prefix-cls}-avatar';\n@skeleton-title-prefix-cls: ~'@{skeleton-prefix-cls}-title';\n@skeleton-paragraph-prefix-cls: ~'@{skeleton-prefix-cls}-paragraph';\n\n.@{skeleton-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-header {\n .@{skeleton-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 16px;\n }\n }\n\n // With active animation\n &.@{skeleton-prefix-cls}-active {\n & .@{skeleton-prefix-cls}-content {\n .@{skeleton-title-prefix-cls},\n .@{skeleton-paragraph-prefix-cls} > li {\n .@{skeleton-prefix-cls}-rtl& {\n animation-name: ~'@{skeleton-prefix-cls}-loading-rtl';\n }\n }\n }\n\n .@{skeleton-avatar-prefix-cls} {\n .@{skeleton-prefix-cls}-rtl& {\n animation-name: ~'@{skeleton-prefix-cls}-loading-rtl';\n }\n }\n }\n}\n\n@keyframes ~\"@{skeleton-prefix-cls}-loading-rtl\" {\n 0% {\n background-position: 0% 50%;\n }\n\n 100% {\n background-position: 100% 50%;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls} {\n &-small {\n > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n padding: @tabs-horizontal-padding-sm;\n font-size: @tabs-title-font-size-sm;\n }\n }\n }\n\n &-large {\n > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n padding: @tabs-horizontal-padding-lg;\n font-size: @tabs-title-font-size-lg;\n }\n }\n }\n\n &-card {\n &.@{tab-prefix-cls}-small {\n > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n padding: @tabs-card-horizontal-padding-sm;\n }\n }\n }\n\n &.@{tab-prefix-cls}-large {\n > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n padding: @tabs-card-horizontal-padding-lg;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './size';\n@import './rtl';\n@import './position';\n@import './dropdown';\n@import './card';\n\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls} {\n .reset-component();\n\n display: flex;\n\n // ========================== Navigation ==========================\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n position: relative;\n display: flex;\n flex: none;\n align-items: center;\n\n .@{tab-prefix-cls}-nav-wrap {\n position: relative;\n display: inline-block;\n display: flex;\n flex: auto;\n align-self: stretch;\n overflow: hidden;\n white-space: nowrap;\n transform: translate(0); // Fix chrome render bug\n\n // >>>>> Ping shadow\n &::before,\n &::after {\n position: absolute;\n z-index: 1;\n opacity: 0;\n transition: opacity @animation-duration-slow;\n content: '';\n pointer-events: none;\n }\n }\n\n .@{tab-prefix-cls}-nav-list {\n position: relative;\n display: flex;\n transition: transform @animation-duration-slow;\n }\n\n // >>>>>>>> Operations\n .@{tab-prefix-cls}-nav-operations {\n display: flex;\n align-self: stretch;\n\n &-hidden {\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n }\n }\n\n .@{tab-prefix-cls}-nav-more {\n position: relative;\n padding: @tabs-card-horizontal-padding;\n background: transparent;\n border: 0;\n\n &::after {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 5px;\n transform: translateY(100%);\n content: '';\n }\n }\n\n .@{tab-prefix-cls}-nav-add {\n min-width: @tabs-card-height;\n margin-left: @tabs-card-gutter;\n padding: 0 @padding-xs;\n background: @tabs-card-head-background;\n border: @border-width-base @border-style-base @border-color-split;\n border-radius: @border-radius-base @border-radius-base 0 0;\n outline: none;\n cursor: pointer;\n transition: all @animation-duration-slow @ease-in-out;\n\n &:hover {\n color: @tabs-hover-color;\n }\n\n &:active,\n &:focus {\n color: @tabs-active-color;\n }\n }\n }\n\n &-extra-content {\n flex: none;\n }\n\n &-centered {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-nav-wrap {\n &:not([class*='@{tab-prefix-cls}-nav-wrap-ping']) {\n justify-content: center;\n }\n }\n }\n }\n\n // ============================ InkBar ============================\n &-ink-bar {\n position: absolute;\n background: @tabs-ink-bar-color;\n pointer-events: none;\n }\n\n // ============================= Tabs =============================\n &-tab {\n position: relative;\n display: inline-flex;\n align-items: center;\n padding: @tabs-horizontal-padding;\n font-size: @tabs-title-font-size;\n background: transparent;\n border: 0;\n outline: none;\n cursor: pointer;\n\n &-btn,\n &-remove {\n &:focus,\n &:active {\n color: @tabs-active-color;\n }\n }\n\n &-btn {\n outline: none;\n transition: all 0.3s;\n }\n\n &-remove {\n flex: none;\n margin-right: -@margin-xss;\n margin-left: @margin-xs;\n color: @text-color-secondary;\n font-size: @font-size-sm;\n background: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n transition: all @animation-duration-slow;\n\n &:hover {\n color: @heading-color;\n }\n }\n\n &:hover {\n color: @tabs-hover-color;\n }\n\n &&-active &-btn {\n color: @tabs-highlight-color;\n text-shadow: 0 0 0.25px currentcolor;\n }\n\n &&-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n }\n\n &&-disabled &-btn,\n &&-disabled &-remove {\n &:focus,\n &:active {\n color: @disabled-color;\n }\n }\n\n & &-remove .@{iconfont-css-prefix} {\n margin: 0;\n }\n\n .@{iconfont-css-prefix} {\n margin-right: @margin-sm;\n }\n }\n\n &-tab + &-tab {\n margin: @tabs-horizontal-margin;\n }\n\n // =========================== TabPanes ===========================\n &-content {\n &-holder {\n flex: auto;\n min-width: 0;\n min-height: 0;\n }\n\n position: relative;\n width: 100%;\n }\n\n &-tabpane {\n outline: none;\n\n &-hidden {\n display: none;\n }\n }\n\n // Motion\n &-switch {\n &-appear,\n &-enter {\n transition: none;\n\n &-start {\n opacity: 0;\n }\n\n &-active {\n opacity: 1;\n transition: opacity @animation-duration-slow;\n }\n }\n\n &-leave {\n position: absolute;\n transition: none;\n inset: 0;\n\n &-start {\n opacity: 1;\n }\n\n &-active {\n opacity: 0;\n transition: opacity @animation-duration-slow;\n }\n }\n }\n}\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls} {\n &-rtl {\n direction: rtl;\n\n .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n margin: @tabs-horizontal-margin-rtl;\n\n &:last-of-type {\n margin-left: 0;\n }\n\n .@{iconfont-css-prefix} {\n margin-right: 0;\n margin-left: @margin-sm;\n }\n\n .@{tab-prefix-cls}-tab-remove {\n margin-right: @margin-xs;\n margin-left: -@margin-xss;\n\n .@{iconfont-css-prefix} {\n margin: 0;\n }\n }\n }\n }\n\n &.@{tab-prefix-cls}-left {\n > .@{tab-prefix-cls}-nav {\n order: 1;\n }\n > .@{tab-prefix-cls}-content-holder {\n order: 0;\n }\n }\n\n &.@{tab-prefix-cls}-right {\n > .@{tab-prefix-cls}-nav {\n order: 0;\n }\n > .@{tab-prefix-cls}-content-holder {\n order: 1;\n }\n }\n }\n\n // ====================== Card ======================\n &-card {\n &.@{tab-prefix-cls}-top,\n &.@{tab-prefix-cls}-bottom {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab + .@{tab-prefix-cls}-tab {\n .@{tab-prefix-cls}-rtl& {\n margin-right: @tabs-card-gutter;\n margin-left: 0;\n }\n }\n .@{tab-prefix-cls}-nav-add {\n .@{tab-prefix-cls}-rtl& {\n margin-right: @tabs-card-gutter;\n margin-left: 0;\n }\n }\n }\n }\n }\n}\n\n.@{tab-prefix-cls}-dropdown {\n &-rtl {\n direction: rtl;\n }\n\n &-menu-item {\n .@{tab-prefix-cls}-dropdown-rtl & {\n text-align: right;\n }\n }\n}\n","@import '../../style/themes/index';\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls} {\n // ========================== Top & Bottom ==========================\n &-top,\n &-bottom {\n flex-direction: column;\n\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n margin: @tabs-bar-margin;\n\n &::before {\n position: absolute;\n right: 0;\n left: 0;\n border-bottom: @border-width-base @border-style-base @border-color-split;\n content: '';\n }\n\n .@{tab-prefix-cls}-ink-bar {\n height: 2px;\n\n &-animated {\n transition: width @animation-duration-slow, left @animation-duration-slow,\n right @animation-duration-slow;\n }\n }\n\n .@{tab-prefix-cls}-nav-wrap {\n &::before,\n &::after {\n top: 0;\n bottom: 0;\n width: 30px;\n }\n\n &::before {\n left: 0;\n box-shadow: inset 10px 0 8px -8px fade(@shadow-color, 8%);\n }\n\n &::after {\n right: 0;\n box-shadow: inset -10px 0 8px -8px fade(@shadow-color, 8%);\n }\n\n &.@{tab-prefix-cls}-nav-wrap-ping-left::before {\n opacity: 1;\n }\n &.@{tab-prefix-cls}-nav-wrap-ping-right::after {\n opacity: 1;\n }\n }\n }\n }\n\n &-top {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n &::before {\n bottom: 0;\n }\n\n .@{tab-prefix-cls}-ink-bar {\n bottom: 0;\n }\n }\n }\n\n &-bottom {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n order: 1;\n margin-top: @margin-md;\n margin-bottom: 0;\n\n &::before {\n top: 0;\n }\n\n .@{tab-prefix-cls}-ink-bar {\n top: 0;\n }\n }\n\n > .@{tab-prefix-cls}-content-holder,\n > div > .@{tab-prefix-cls}-content-holder {\n order: 0;\n }\n }\n\n // ========================== Left & Right ==========================\n &-left,\n &-right {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n flex-direction: column;\n min-width: 50px;\n\n // >>>>>>>>>>> Tab\n .@{tab-prefix-cls}-tab {\n padding: @tabs-vertical-padding;\n text-align: center;\n }\n\n .@{tab-prefix-cls}-tab + .@{tab-prefix-cls}-tab {\n margin: @tabs-vertical-margin;\n }\n\n // >>>>>>>>>>> Nav\n .@{tab-prefix-cls}-nav-wrap {\n flex-direction: column;\n\n &::before,\n &::after {\n right: 0;\n left: 0;\n height: 30px;\n }\n\n &::before {\n top: 0;\n box-shadow: inset 0 10px 8px -8px fade(@shadow-color, 8%);\n }\n\n &::after {\n bottom: 0;\n box-shadow: inset 0 -10px 8px -8px fade(@shadow-color, 8%);\n }\n\n &.@{tab-prefix-cls}-nav-wrap-ping-top::before {\n opacity: 1;\n }\n &.@{tab-prefix-cls}-nav-wrap-ping-bottom::after {\n opacity: 1;\n }\n }\n\n // >>>>>>>>>>> Ink Bar\n .@{tab-prefix-cls}-ink-bar {\n width: 2px;\n\n &-animated {\n transition: height @animation-duration-slow, top @animation-duration-slow;\n }\n }\n\n .@{tab-prefix-cls}-nav-list,\n .@{tab-prefix-cls}-nav-operations {\n flex: 1 0 auto; // fix safari scroll problem\n flex-direction: column;\n }\n }\n }\n\n &-left {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-ink-bar {\n right: 0;\n }\n }\n\n > .@{tab-prefix-cls}-content-holder,\n > div > .@{tab-prefix-cls}-content-holder {\n margin-left: -@border-width-base;\n border-left: @border-width-base @border-style-base @border-color-split;\n\n > .@{tab-prefix-cls}-content > .@{tab-prefix-cls}-tabpane {\n padding-left: @padding-lg;\n }\n }\n }\n\n &-right {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n order: 1;\n\n .@{tab-prefix-cls}-ink-bar {\n left: 0;\n }\n }\n\n > .@{tab-prefix-cls}-content-holder,\n > div > .@{tab-prefix-cls}-content-holder {\n order: 0;\n margin-right: -@border-width-base;\n border-right: @border-width-base @border-style-base @border-color-split;\n\n > .@{tab-prefix-cls}-content > .@{tab-prefix-cls}-tabpane {\n padding-right: @padding-lg;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls}-dropdown {\n .reset-component();\n\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: @zindex-dropdown;\n display: block;\n\n &-hidden {\n display: none;\n }\n\n &-menu {\n max-height: 200px;\n margin: 0;\n padding: @dropdown-edge-child-vertical-padding 0;\n overflow-x: hidden;\n overflow-y: auto;\n text-align: left;\n list-style-type: none;\n background-color: @dropdown-menu-bg;\n background-clip: padding-box;\n border-radius: @border-radius-base;\n outline: none;\n box-shadow: @box-shadow-base;\n\n &-item {\n display: flex;\n align-items: center;\n min-width: 120px;\n margin: 0;\n padding: @dropdown-vertical-padding @control-padding-horizontal;\n overflow: hidden;\n color: @text-color;\n font-weight: normal;\n font-size: @dropdown-font-size;\n line-height: @dropdown-line-height;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: all 0.3s;\n\n > span {\n flex: 1;\n white-space: nowrap;\n }\n\n &-remove {\n flex: none;\n margin-left: @margin-sm;\n color: @text-color-secondary;\n font-size: @font-size-sm;\n background: transparent;\n border: 0;\n cursor: pointer;\n\n &:hover {\n color: @tabs-hover-color;\n }\n }\n\n &:hover {\n background: @item-hover-bg;\n }\n\n &-disabled {\n &,\n &:hover {\n color: @disabled-color;\n background: transparent;\n cursor: not-allowed;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@tab-prefix-cls: ~'@{ant-prefix}-tabs';\n\n.@{tab-prefix-cls}-card {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n margin: 0;\n padding: @tabs-card-horizontal-padding;\n background: @tabs-card-head-background;\n border: @border-width-base @border-style-base @border-color-split;\n transition: all @animation-duration-slow @ease-in-out;\n\n &-active {\n color: @tabs-card-active-color;\n background: @component-background;\n }\n }\n\n .@{tab-prefix-cls}-ink-bar {\n visibility: hidden;\n }\n }\n\n // ========================== Top & Bottom ==========================\n &.@{tab-prefix-cls}-top,\n &.@{tab-prefix-cls}-bottom {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab + .@{tab-prefix-cls}-tab {\n margin-left: @tabs-card-gutter;\n }\n }\n }\n\n &.@{tab-prefix-cls}-top {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n border-radius: @border-radius-base @border-radius-base 0 0;\n\n &-active {\n border-bottom-color: @component-background;\n }\n }\n }\n }\n &.@{tab-prefix-cls}-bottom {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n border-radius: 0 0 @border-radius-base @border-radius-base;\n\n &-active {\n border-top-color: @component-background;\n }\n }\n }\n }\n\n // ========================== Left & Right ==========================\n &.@{tab-prefix-cls}-left,\n &.@{tab-prefix-cls}-right {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab + .@{tab-prefix-cls}-tab {\n margin-top: @tabs-card-gutter;\n }\n }\n }\n\n &.@{tab-prefix-cls}-left {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n\n &-active {\n border-right-color: @component-background;\n }\n }\n }\n }\n &.@{tab-prefix-cls}-right {\n > .@{tab-prefix-cls}-nav,\n > div > .@{tab-prefix-cls}-nav {\n .@{tab-prefix-cls}-tab {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n\n &-active {\n border-left-color: @component-background;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@carousel-prefix-cls: ~'@{ant-prefix}-carousel';\n@carousel-dot-margin: 4px;\n\n.@{carousel-prefix-cls} {\n .reset-component();\n\n .slick-slider {\n position: relative;\n display: block;\n box-sizing: border-box;\n touch-action: pan-y;\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n display: block;\n margin: 0;\n padding: 0;\n overflow: hidden;\n\n &:focus {\n outline: none;\n }\n\n &.dragging {\n cursor: pointer;\n }\n\n .slick-slide {\n pointer-events: none;\n\n // https://github.com/ant-design/ant-design/issues/23294\n input.@{ant-prefix}-radio-input,\n input.@{ant-prefix}-checkbox-input {\n visibility: hidden;\n }\n\n &.slick-active {\n pointer-events: auto;\n\n input.@{ant-prefix}-radio-input,\n input.@{ant-prefix}-checkbox-input {\n visibility: visible;\n }\n }\n\n // fix Carousel content height not match parent node\n // when children is empty node\n // https://github.com/ant-design/ant-design/issues/25878\n > div > div {\n vertical-align: bottom;\n }\n }\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n transform: translate3d(0, 0, 0);\n touch-action: pan-y;\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n\n &::before,\n &::after {\n display: table;\n content: '';\n }\n\n &::after {\n clear: both;\n }\n\n .slick-loading & {\n visibility: hidden;\n }\n }\n\n .slick-slide {\n display: none;\n float: left;\n height: 100%;\n min-height: 1px;\n\n img {\n display: block;\n }\n\n &.slick-loading img {\n display: none;\n }\n\n &.dragging img {\n pointer-events: none;\n }\n }\n\n .slick-initialized .slick-slide {\n display: block;\n }\n\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n\n .slick-vertical .slick-slide {\n display: block;\n height: auto;\n }\n\n .slick-arrow.slick-hidden {\n display: none;\n }\n\n // Arrows\n .slick-prev,\n .slick-next {\n position: absolute;\n top: 50%;\n display: block;\n width: 20px;\n height: 20px;\n margin-top: -10px;\n padding: 0;\n color: transparent;\n font-size: 0;\n line-height: 0;\n background: transparent;\n border: 0;\n outline: none;\n cursor: pointer;\n\n &:hover,\n &:focus {\n color: transparent;\n background: transparent;\n outline: none;\n\n &::before {\n opacity: 1;\n }\n }\n\n &.slick-disabled::before {\n opacity: 0.25;\n }\n }\n\n .slick-prev {\n left: -25px;\n\n &::before {\n content: '←';\n }\n }\n\n .slick-next {\n right: -25px;\n\n &::before {\n content: '→';\n }\n }\n\n // Dots\n .slick-dots {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex !important;\n justify-content: center;\n margin-right: 15%;\n margin-bottom: 0;\n margin-left: 15%;\n padding-left: 0;\n list-style: none;\n\n &-bottom {\n bottom: 12px;\n }\n\n &-top {\n top: 12px;\n bottom: auto;\n }\n\n li {\n position: relative;\n display: inline-block;\n flex: 0 1 auto;\n box-sizing: content-box;\n width: @carousel-dot-width;\n height: @carousel-dot-height;\n margin: 0 @carousel-dot-margin;\n padding: 0;\n text-align: center;\n text-indent: -999px;\n vertical-align: top;\n transition: all 0.5s;\n\n button {\n position: relative;\n display: block;\n width: 100%;\n height: @carousel-dot-height;\n padding: 0;\n color: transparent;\n font-size: 0;\n background: @component-background;\n border: 0;\n border-radius: 1px;\n outline: none;\n cursor: pointer;\n opacity: 0.3;\n transition: all 0.5s;\n\n &:hover,\n &:focus {\n opacity: 0.75;\n }\n\n &::after {\n position: absolute;\n top: -@carousel-dot-margin;\n right: -@carousel-dot-margin;\n bottom: -@carousel-dot-margin;\n left: -@carousel-dot-margin;\n content: '';\n }\n }\n\n &.slick-active {\n width: @carousel-dot-active-width;\n\n & button {\n background: @component-background;\n opacity: 1;\n }\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n }\n }\n }\n}\n\n.@{ant-prefix}-carousel-vertical {\n .slick-dots {\n top: 50%;\n bottom: auto;\n flex-direction: column;\n width: @carousel-dot-height;\n height: auto;\n margin: 0;\n transform: translateY(-50%);\n\n &-left {\n right: auto;\n left: 12px;\n }\n\n &-right {\n right: 12px;\n left: auto;\n }\n\n li {\n width: @carousel-dot-height;\n height: @carousel-dot-width;\n margin: @carousel-dot-margin 0;\n vertical-align: baseline;\n\n button {\n width: @carousel-dot-height;\n height: @carousel-dot-width;\n }\n\n &.slick-active {\n width: @carousel-dot-height;\n height: @carousel-dot-active-width;\n\n button {\n width: @carousel-dot-height;\n height: @carousel-dot-active-width;\n }\n }\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@carousel-prefix-cls: ~'@{ant-prefix}-carousel';\n\n.@{carousel-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n .slick-track {\n .@{carousel-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n\n .slick-prev {\n .@{carousel-prefix-cls}-rtl & {\n right: -25px;\n left: auto;\n\n &::before {\n content: '→';\n }\n }\n }\n\n .slick-next {\n .@{carousel-prefix-cls}-rtl & {\n right: auto;\n left: -25px;\n\n &::before {\n content: '←';\n }\n }\n }\n\n // Dots\n .slick-dots {\n .@{carousel-prefix-cls}-rtl& {\n flex-direction: row-reverse;\n }\n }\n}\n\n.@{ant-prefix}-carousel-vertical {\n .slick-dots {\n .@{carousel-prefix-cls}-rtl& {\n flex-direction: column;\n }\n }\n}\n","@import '../../style/mixins/index';\n\n.antCheckboxFn(@checkbox-prefix-cls: ~'@{ant-prefix}-checkbox') {\n @checkbox-inner-prefix-cls: ~'@{checkbox-prefix-cls}-inner';\n // 一般状态\n .@{checkbox-prefix-cls} {\n .reset-component();\n\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n\n .@{checkbox-prefix-cls}-wrapper:hover &-inner,\n &:hover &-inner,\n &-input:focus + &-inner {\n border-color: @checkbox-color;\n }\n\n &-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid @checkbox-color;\n border-radius: @checkbox-border-radius;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n }\n\n &:hover::after,\n .@{checkbox-prefix-cls}-wrapper:hover &::after {\n visibility: visible;\n }\n\n &-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: @checkbox-size;\n height: @checkbox-size;\n direction: ltr;\n background-color: @checkbox-check-bg;\n border: @checkbox-border-width @border-style-base @border-color-base;\n border-radius: @checkbox-border-radius;\n // Fix IE checked style\n // https://github.com/ant-design/ant-design/issues/12597\n border-collapse: separate;\n transition: all 0.3s;\n\n &::after {\n @check-width: (@checkbox-size / 14) * 5px;\n @check-height: (@checkbox-size / 14) * 8px;\n\n position: absolute;\n top: 50%;\n // https://github.com/ant-design/ant-design/pull/19452\n // https://github.com/ant-design/ant-design/pull/31726\n left: 21.5%;\n display: table;\n width: @check-width;\n height: @check-height;\n border: 2px solid @checkbox-check-color;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s @ease-in-back, opacity 0.1s;\n content: ' ';\n }\n }\n\n &-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n }\n }\n\n // 选中状态\n .@{checkbox-prefix-cls}-checked .@{checkbox-inner-prefix-cls}::after {\n position: absolute;\n display: table;\n border: 2px solid @checkbox-check-color;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s @ease-out-back 0.1s;\n content: ' ';\n }\n\n .@{checkbox-prefix-cls}-checked {\n .@{checkbox-inner-prefix-cls} {\n background-color: @checkbox-color;\n border-color: @checkbox-color;\n }\n }\n\n .@{checkbox-prefix-cls}-disabled {\n cursor: not-allowed;\n\n &.@{checkbox-prefix-cls}-checked {\n .@{checkbox-inner-prefix-cls}::after {\n border-color: @disabled-color;\n animation-name: none;\n }\n }\n\n .@{checkbox-prefix-cls}-input {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .@{checkbox-inner-prefix-cls} {\n background-color: @input-disabled-bg;\n border-color: @border-color-base !important;\n\n &::after {\n border-color: @input-disabled-bg;\n border-collapse: separate;\n animation-name: none;\n }\n }\n\n & + span {\n color: @disabled-color;\n cursor: not-allowed;\n }\n\n // Not show highlight border of checkbox when disabled\n &:hover::after,\n .@{checkbox-prefix-cls}-wrapper:hover &::after {\n visibility: hidden;\n }\n }\n\n .@{checkbox-prefix-cls}-wrapper {\n .reset-component();\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n\n &::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n }\n\n &.@{checkbox-prefix-cls}-wrapper-disabled {\n cursor: not-allowed;\n }\n\n & + & {\n margin-left: 8px;\n }\n\n &&-in-form-item {\n input[type='checkbox'] {\n width: 14px;\n height: 14px;\n }\n }\n }\n\n .@{checkbox-prefix-cls} + span {\n padding-right: 8px;\n padding-left: 8px;\n }\n\n .@{checkbox-prefix-cls}-group {\n .reset-component();\n display: inline-block;\n\n &-item {\n margin-right: @checkbox-group-item-margin-right;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n &-item + &-item {\n margin-left: 0;\n }\n }\n\n // 半选状态\n .@{checkbox-prefix-cls}-indeterminate {\n .@{checkbox-inner-prefix-cls} {\n background-color: @checkbox-check-bg;\n border-color: @border-color-base;\n }\n .@{checkbox-inner-prefix-cls}::after {\n @indeterminate-width: @checkbox-size - 8px;\n @indeterminate-height: @checkbox-size - 8px;\n\n top: 50%;\n left: 50%;\n width: @indeterminate-width;\n height: @indeterminate-height;\n background-color: @checkbox-color;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n }\n\n &.@{checkbox-prefix-cls}-disabled .@{checkbox-inner-prefix-cls}::after {\n background-color: @disabled-color;\n border-color: @disabled-color;\n }\n }\n}\n\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import '../../checkbox/style/mixin';\n\n@cascader-prefix-cls: ~'@{ant-prefix}-cascader';\n\n.antCheckboxFn(@checkbox-prefix-cls: ~'@{cascader-prefix-cls}-checkbox');\n\n.@{cascader-prefix-cls} {\n width: 184px;\n\n &-checkbox {\n top: 0;\n margin-right: @padding-xs;\n }\n\n &-menus {\n display: flex;\n flex-wrap: nowrap;\n align-items: flex-start;\n\n &.@{cascader-prefix-cls}-menu-empty {\n .@{cascader-prefix-cls}-menu {\n width: 100%;\n height: auto;\n }\n }\n }\n\n &-menu {\n flex-grow: 1;\n min-width: 111px;\n height: 180px;\n margin: 0;\n margin: -@dropdown-edge-child-vertical-padding 0;\n padding: @cascader-dropdown-edge-child-vertical-padding 0;\n overflow: auto;\n vertical-align: top;\n list-style: none;\n border-right: @border-width-base @border-style-base @cascader-menu-border-color-split;\n -ms-overflow-style: -ms-autohiding-scrollbar; // https://github.com/ant-design/ant-design/issues/11857\n\n &-item {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: @cascader-dropdown-vertical-padding @control-padding-horizontal;\n overflow: hidden;\n line-height: @cascader-dropdown-line-height;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n background: @item-hover-bg;\n }\n\n &-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n\n &:hover {\n background: transparent;\n }\n }\n\n .@{cascader-prefix-cls}-menu-empty & {\n color: @disabled-color;\n cursor: default;\n pointer-events: none;\n }\n\n &-active:not(&-disabled) {\n &,\n &:hover {\n font-weight: @select-item-selected-font-weight;\n background-color: @cascader-item-selected-bg;\n }\n }\n\n &-content {\n flex: auto;\n }\n\n &-expand &-expand-icon,\n &-loading-icon {\n margin-left: @padding-xss;\n color: @text-color-secondary;\n font-size: 10px;\n\n .@{cascader-prefix-cls}-menu-item-disabled& {\n color: @disabled-color;\n }\n }\n\n &-keyword {\n color: @highlight-color;\n }\n }\n }\n\n // ===================== Compact Item Styles =====================\n .compact-item(@cascader-prefix-cls);\n}\n\n@import './rtl';\n\n@root-entry-name: default;","// We can not import reference of `./index` directly since it will make dead loop in less\n@import (reference) '../../style/themes/index';\n@cascader-prefix-cls: ~'@{ant-prefix}-cascader';\n\n.@{cascader-prefix-cls}-rtl {\n .@{cascader-prefix-cls}-menu-item {\n &-expand-icon,\n &-loading-icon {\n margin-right: @padding-xss;\n margin-left: 0;\n }\n }\n\n .@{cascader-prefix-cls}-checkbox {\n top: 0;\n margin-right: 0;\n margin-left: @padding-xs;\n }\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n@keyframes antCheckboxEffect {\n 0% {\n transform: scale(1);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n.ant-checkbox {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n top: 0.2em;\n line-height: 1;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ant-checkbox-wrapper:hover .ant-checkbox-inner,\n.ant-checkbox:hover .ant-checkbox-inner,\n.ant-checkbox-input:focus + .ant-checkbox-inner {\n border-color: #1890ff;\n}\n.ant-checkbox-checked::after {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 1px solid #1890ff;\n border-radius: 2px;\n visibility: hidden;\n animation: antCheckboxEffect 0.36s ease-in-out;\n animation-fill-mode: backwards;\n content: '';\n}\n.ant-checkbox:hover::after,\n.ant-checkbox-wrapper:hover .ant-checkbox::after {\n visibility: visible;\n}\n.ant-checkbox-inner {\n position: relative;\n top: 0;\n left: 0;\n display: block;\n width: 16px;\n height: 16px;\n direction: ltr;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n border-collapse: separate;\n transition: all 0.3s;\n}\n.ant-checkbox-inner::after {\n position: absolute;\n top: 50%;\n left: 21.5%;\n display: table;\n width: 5.71428571px;\n height: 9.14285714px;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\n opacity: 0;\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\n content: ' ';\n}\n.ant-checkbox-input {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n.ant-checkbox-checked .ant-checkbox-inner::after {\n position: absolute;\n display: table;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\n content: ' ';\n}\n.ant-checkbox-checked .ant-checkbox-inner {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.ant-checkbox-disabled {\n cursor: not-allowed;\n}\n.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {\n border-color: rgba(0, 0, 0, 0.25);\n animation-name: none;\n}\n.ant-checkbox-disabled .ant-checkbox-input {\n cursor: not-allowed;\n pointer-events: none;\n}\n.ant-checkbox-disabled .ant-checkbox-inner {\n background-color: #f5f5f5;\n border-color: #d9d9d9 !important;\n}\n.ant-checkbox-disabled .ant-checkbox-inner::after {\n border-color: #f5f5f5;\n border-collapse: separate;\n animation-name: none;\n}\n.ant-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-checkbox-disabled:hover::after,\n.ant-checkbox-wrapper:hover .ant-checkbox-disabled::after {\n visibility: hidden;\n}\n.ant-checkbox-wrapper {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-flex;\n align-items: baseline;\n line-height: unset;\n cursor: pointer;\n}\n.ant-checkbox-wrapper::after {\n display: inline-block;\n width: 0;\n overflow: hidden;\n content: '\\a0';\n}\n.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled {\n cursor: not-allowed;\n}\n.ant-checkbox-wrapper + .ant-checkbox-wrapper {\n margin-left: 8px;\n}\n.ant-checkbox-wrapper.ant-checkbox-wrapper-in-form-item input[type='checkbox'] {\n width: 14px;\n height: 14px;\n}\n.ant-checkbox + span {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-checkbox-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n display: inline-block;\n}\n.ant-checkbox-group-item {\n margin-right: 8px;\n}\n.ant-checkbox-group-item:last-child {\n margin-right: 0;\n}\n.ant-checkbox-group-item + .ant-checkbox-group-item {\n margin-left: 0;\n}\n.ant-checkbox-indeterminate .ant-checkbox-inner {\n background-color: #fff;\n border-color: #d9d9d9;\n}\n.ant-checkbox-indeterminate .ant-checkbox-inner::after {\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n background-color: #1890ff;\n border: 0;\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n content: ' ';\n}\n.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after {\n background-color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-checkbox-rtl {\n direction: rtl;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child {\n margin-left: 0 !important;\n}\n.ant-checkbox-group-rtl .ant-checkbox-group-item + .ant-checkbox-group-item {\n margin-left: 8px;\n}\n","@import '../../style/mixins/index';\n\n.antCheckboxFn(@checkbox-prefix-cls: ~'@{ant-prefix}-checkbox') {\n .@{checkbox-prefix-cls}-rtl {\n direction: rtl;\n }\n\n .@{checkbox-prefix-cls}-group {\n &-item {\n .@{checkbox-prefix-cls}-group-rtl & {\n margin-right: 0;\n margin-left: @checkbox-group-item-margin-right;\n }\n\n &:last-child {\n .@{checkbox-prefix-cls}-group-rtl & {\n margin-left: 0 !important;\n }\n }\n }\n\n &-item + &-item {\n .@{checkbox-prefix-cls}-group-rtl & {\n margin-left: @checkbox-group-item-margin-right;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './mixin';\n\n// Grid system\n.@{row-prefix-cls} {\n display: flex;\n flex-flow: row wrap;\n min-width: 0;\n\n &::before,\n &::after {\n display: flex;\n }\n\n // No wrap of flex\n &-no-wrap {\n flex-wrap: nowrap;\n }\n}\n\n// x轴原点\n.@{row-prefix-cls}-start {\n justify-content: flex-start;\n}\n\n// x轴居中\n.@{row-prefix-cls}-center {\n justify-content: center;\n}\n\n// x轴反方向\n.@{row-prefix-cls}-end {\n justify-content: flex-end;\n}\n\n// x轴平分\n.@{row-prefix-cls}-space-between {\n justify-content: space-between;\n}\n\n// x轴有间隔地平分\n.@{row-prefix-cls}-space-around {\n justify-content: space-around;\n}\n\n// x轴有间隔地均分\n.@{row-prefix-cls}-space-evenly {\n justify-content: space-evenly;\n}\n\n// 顶部对齐\n.@{row-prefix-cls}-top {\n align-items: flex-start;\n}\n\n// 居中对齐\n.@{row-prefix-cls}-middle {\n align-items: center;\n}\n\n// 底部对齐\n.@{row-prefix-cls}-bottom {\n align-items: flex-end;\n}\n\n.@{col-prefix-cls} {\n position: relative;\n max-width: 100%;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n}\n\n.make-grid();\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(-xs);\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(-sm);\n}\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(-md);\n}\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(-lg);\n}\n\n// Extra Large grid\n//\n// Columns, offsets, pushes, and pulls for the full hd device range.\n\n@media (min-width: @screen-xl-min) {\n .make-grid(-xl);\n}\n\n// Extra Extra Large grid\n//\n// Columns, offsets, pushes, and pulls for the full hd device range.\n\n@media (min-width: @screen-xxl-min) {\n .make-grid(-xxl);\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/mixins/index';\n\n@row-prefix-cls: ~'@{ant-prefix}-row';\n@col-prefix-cls: ~'@{ant-prefix}-col';\n\n// mixins for grid system\n// ------------------------\n\n.loop-grid-columns(@index, @class) when (@index > 0) {\n .@{col-prefix-cls}@{class}-@{index} {\n display: block;\n flex: 0 0 percentage((@index / @grid-columns));\n max-width: percentage((@index / @grid-columns));\n }\n .@{col-prefix-cls}@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n .@{col-prefix-cls}@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n .@{col-prefix-cls}@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n .@{col-prefix-cls}@{class}-order-@{index} {\n order: @index;\n }\n .loop-grid-columns((@index - 1), @class);\n}\n\n.loop-grid-columns(@index, @class) when (@index = 0) {\n .@{col-prefix-cls}@{class}-@{index} {\n display: none;\n }\n .@{col-prefix-cls}-push-@{index} {\n left: auto;\n }\n .@{col-prefix-cls}-pull-@{index} {\n right: auto;\n }\n .@{col-prefix-cls}@{class}-push-@{index} {\n left: auto;\n }\n .@{col-prefix-cls}@{class}-pull-@{index} {\n right: auto;\n }\n .@{col-prefix-cls}@{class}-offset-@{index} {\n margin-left: 0;\n }\n .@{col-prefix-cls}@{class}-order-@{index} {\n order: 0;\n }\n}\n\n.make-grid(@class: ~'') {\n .loop-grid-columns(@grid-columns, @class);\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './mixin';\n\n.@{row-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n\n// mixin\n.loop-grid-columns(@index, @class) when (@index > 0) {\n .@{col-prefix-cls}@{class}-push-@{index} {\n // reset property in RTL direction\n &.@{col-prefix-cls}-rtl {\n right: percentage((@index / @grid-columns));\n left: auto;\n }\n }\n\n .@{col-prefix-cls}@{class}-pull-@{index} {\n // reset property in RTL direction\n &.@{col-prefix-cls}-rtl {\n right: auto;\n left: percentage((@index / @grid-columns));\n }\n }\n\n .@{col-prefix-cls}@{class}-offset-@{index} {\n // reset property in RTL direction\n &.@{col-prefix-cls}-rtl {\n margin-right: percentage((@index / @grid-columns));\n margin-left: 0;\n }\n }\n}\n\n.loop-grid-columns(@index, @class) when (@index = 0) {\n .@{col-prefix-cls}-push-@{index} {\n // reset property in RTL direction\n &.@{col-prefix-cls}-rtl {\n right: auto;\n }\n }\n\n .@{col-prefix-cls}-pull-@{index} {\n &.@{col-prefix-cls}-rtl {\n left: auto;\n }\n }\n\n .@{col-prefix-cls}@{class}-push-@{index} {\n &.@{col-prefix-cls}-rtl {\n right: auto;\n }\n }\n\n .@{col-prefix-cls}@{class}-pull-@{index} {\n &.@{col-prefix-cls}-rtl {\n left: auto;\n }\n }\n\n .@{col-prefix-cls}@{class}-offset-@{index} {\n &.@{col-prefix-cls}-rtl {\n margin-right: 0;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@collapse-prefix-cls: ~'@{ant-prefix}-collapse';\n\n.@{collapse-prefix-cls} {\n .reset-component();\n\n background-color: @collapse-header-bg;\n border: @border-width-base @border-style-base @border-color-base;\n border-bottom: 0;\n border-radius: @collapse-panel-border-radius;\n\n & > &-item {\n border-bottom: @border-width-base @border-style-base @border-color-base;\n\n &:last-child {\n &,\n & > .@{collapse-prefix-cls}-header {\n border-radius: 0 0 @collapse-panel-border-radius @collapse-panel-border-radius;\n }\n }\n\n > .@{collapse-prefix-cls}-header {\n position: relative; // Compatible with old version of antd, should remove in next version\n display: flex;\n flex-wrap: nowrap;\n align-items: flex-start;\n padding: @collapse-header-padding;\n color: @heading-color;\n line-height: @line-height-base;\n cursor: pointer;\n transition: all 0.3s, visibility 0s;\n\n .@{collapse-prefix-cls}-arrow {\n display: inline-block;\n margin-right: @margin-sm;\n font-size: @font-size-sm;\n vertical-align: -1px;\n\n & svg {\n transition: transform 0.24s;\n }\n }\n\n .@{collapse-prefix-cls}-header-text {\n flex: auto;\n }\n\n .@{collapse-prefix-cls}-extra {\n margin-left: auto;\n }\n\n &:focus {\n outline: none;\n }\n }\n\n .@{collapse-prefix-cls}-header-collapsible-only {\n cursor: default;\n .@{collapse-prefix-cls}-header-text {\n flex: none;\n cursor: pointer;\n }\n }\n\n .@{collapse-prefix-cls}-icon-collapsible-only {\n cursor: default;\n .@{collapse-prefix-cls}-expand-icon {\n cursor: pointer;\n }\n }\n\n &.@{collapse-prefix-cls}-no-arrow {\n > .@{collapse-prefix-cls}-header {\n padding-left: @padding-sm;\n }\n }\n }\n\n // Expand Icon end\n &-icon-position-end {\n & > .@{collapse-prefix-cls}-item {\n > .@{collapse-prefix-cls}-header {\n position: relative;\n padding: @collapse-header-padding;\n padding-right: @collapse-header-padding-extra;\n\n .@{collapse-prefix-cls}-arrow {\n position: absolute;\n top: 50%;\n right: @padding-md;\n left: auto;\n margin: 0;\n transform: translateY(-50%);\n }\n }\n }\n }\n\n &-content {\n color: @text-color;\n background-color: @collapse-content-bg;\n border-top: @border-width-base @border-style-base @border-color-base;\n\n & > &-box {\n padding: @collapse-content-padding;\n }\n\n &-hidden {\n display: none;\n }\n }\n\n &-item:last-child {\n > .@{collapse-prefix-cls}-content {\n border-radius: 0 0 @collapse-panel-border-radius @collapse-panel-border-radius;\n }\n }\n\n &-borderless {\n background-color: @collapse-header-bg;\n border: 0;\n }\n\n &-borderless > &-item {\n border-bottom: 1px solid @border-color-base;\n }\n\n &-borderless > &-item:last-child,\n &-borderless > &-item:last-child &-header {\n border-radius: 0;\n }\n\n // hide the last border-bottom in borderless mode\n &-borderless > &-item:last-child {\n border-bottom: 0;\n }\n\n &-borderless > &-item > &-content {\n background-color: transparent;\n border-top: 0;\n }\n\n &-borderless > &-item > &-content > &-content-box {\n padding-top: 4px;\n }\n\n &-ghost {\n background-color: transparent;\n border: 0;\n > .@{collapse-prefix-cls}-item {\n border-bottom: 0;\n > .@{collapse-prefix-cls}-content {\n background-color: transparent;\n border-top: 0;\n > .@{collapse-prefix-cls}-content-box {\n padding-top: 12px;\n padding-bottom: 12px;\n }\n }\n }\n }\n\n & &-item-disabled > &-header {\n &,\n & > .arrow {\n color: @disabled-color;\n cursor: not-allowed;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@collapse-prefix-cls: ~'@{ant-prefix}-collapse';\n\n.@{collapse-prefix-cls} {\n &-rtl {\n direction: rtl;\n\n // Expand Icon end\n &.@{collapse-prefix-cls}.@{collapse-prefix-cls}-icon-position-end {\n & > .@{collapse-prefix-cls}-item {\n > .@{collapse-prefix-cls}-header {\n position: relative;\n padding: @collapse-header-padding;\n padding-left: @collapse-header-padding-extra;\n\n .@{collapse-prefix-cls}-arrow {\n position: absolute;\n top: 50%;\n right: auto;\n left: @padding-md;\n margin: 0;\n transform: translateY(-50%);\n }\n }\n }\n }\n }\n\n & > &-item {\n > .@{collapse-prefix-cls}-header {\n .@{collapse-prefix-cls}-rtl & {\n padding: @collapse-header-padding;\n padding-right: @collapse-header-padding-extra;\n }\n\n .@{collapse-prefix-cls}-arrow {\n .@{collapse-prefix-cls}-rtl& {\n margin-right: 0;\n margin-left: @margin-sm;\n }\n\n & svg {\n .@{collapse-prefix-cls}-rtl& {\n transform: rotate(180deg);\n }\n }\n }\n\n .@{collapse-prefix-cls}-extra {\n .@{collapse-prefix-cls}-rtl& {\n margin-right: auto;\n margin-left: 0;\n }\n }\n }\n\n &.@{collapse-prefix-cls}-no-arrow {\n > .@{collapse-prefix-cls}-header {\n .@{collapse-prefix-cls}-rtl& {\n padding-right: @padding-sm;\n padding-left: 0;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@comment-prefix-cls: ~'@{ant-prefix}-comment';\n\n.@{comment-prefix-cls} {\n position: relative;\n background-color: @comment-bg;\n\n &-inner {\n display: flex;\n padding: @comment-padding-base;\n }\n\n &-avatar {\n position: relative;\n flex-shrink: 0;\n margin-right: @margin-sm;\n cursor: pointer;\n\n img {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n }\n }\n\n &-content {\n position: relative;\n flex: 1 1 auto;\n min-width: 1px;\n font-size: @comment-font-size-base;\n word-wrap: break-word;\n\n &-author {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin-bottom: @margin-xss;\n font-size: @comment-font-size-base;\n\n & > a,\n & > span {\n padding-right: @padding-xs;\n font-size: @comment-font-size-sm;\n line-height: 18px;\n }\n\n &-name {\n color: @comment-author-name-color;\n font-size: @comment-font-size-base;\n transition: color 0.3s;\n\n > * {\n color: @comment-author-name-color;\n\n &:hover {\n color: @comment-author-name-color;\n }\n }\n }\n\n &-time {\n color: @comment-author-time-color;\n white-space: nowrap;\n cursor: auto;\n }\n }\n\n &-detail p {\n margin-bottom: @comment-content-detail-p-margin-bottom;\n white-space: pre-wrap;\n }\n }\n\n &-actions {\n margin-top: @comment-actions-margin-top;\n margin-bottom: @comment-actions-margin-bottom;\n padding-left: 0;\n\n > li {\n display: inline-block;\n color: @comment-action-color;\n\n > span {\n margin-right: 10px;\n color: @comment-action-color;\n font-size: @comment-font-size-sm;\n cursor: pointer;\n transition: color 0.3s;\n user-select: none;\n\n &:hover {\n color: @comment-action-hover-color;\n }\n }\n }\n }\n\n &-nested {\n margin-left: @comment-nest-indent;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@comment-prefix-cls: ~'@{ant-prefix}-comment';\n\n.@{comment-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-avatar {\n .@{comment-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 12px;\n }\n }\n\n &-content {\n &-author {\n & > a,\n & > span {\n .@{comment-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 8px;\n }\n }\n }\n }\n\n &-actions {\n .@{comment-prefix-cls}-rtl & {\n padding-right: 0;\n }\n\n > li {\n > span {\n .@{comment-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 10px;\n }\n }\n }\n }\n\n &-nested {\n .@{comment-prefix-cls}-rtl & {\n margin-right: @comment-nest-indent;\n margin-left: 0;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@descriptions-prefix-cls: ~'@{ant-prefix}-descriptions';\n\n.@{descriptions-prefix-cls} {\n &-header {\n display: flex;\n align-items: center;\n margin-bottom: @descriptions-title-margin-bottom;\n }\n\n &-title {\n flex: auto;\n overflow: hidden;\n color: @heading-color;\n font-weight: bold;\n font-size: @font-size-lg;\n line-height: @line-height-base;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-extra {\n margin-left: auto;\n color: @descriptions-extra-color;\n font-size: @font-size-base;\n }\n\n &-view {\n width: 100%;\n border-radius: @border-radius-base;\n\n table {\n width: 100%;\n table-layout: fixed;\n }\n }\n\n &-row {\n > th,\n > td {\n padding-bottom: @descriptions-item-padding-bottom;\n }\n\n &:last-child {\n border-bottom: none;\n }\n }\n\n &-item-label {\n color: @heading-color;\n font-weight: normal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n text-align: start;\n\n &::after {\n & when (@descriptions-item-trailing-colon=true) {\n content: ':';\n }\n & when not (@descriptions-item-trailing-colon=true) {\n content: ' ';\n }\n\n position: relative;\n top: -0.5px;\n margin: 0 @descriptions-item-label-colon-margin-right 0\n @descriptions-item-label-colon-margin-left;\n }\n\n &.@{descriptions-prefix-cls}-item-no-colon::after {\n content: ' ';\n }\n }\n\n &-item-no-label {\n &::after {\n margin: 0;\n content: '';\n }\n }\n\n &-item-content {\n display: table-cell;\n flex: 1;\n color: @text-color;\n font-size: @font-size-base;\n line-height: @line-height-base;\n word-break: break-word;\n overflow-wrap: break-word;\n }\n\n &-item {\n padding-bottom: 0;\n vertical-align: top;\n\n &-container {\n display: flex;\n\n .@{descriptions-prefix-cls}-item-label,\n .@{descriptions-prefix-cls}-item-content {\n display: inline-flex;\n align-items: baseline;\n }\n }\n }\n\n &-middle {\n .@{descriptions-prefix-cls}-row {\n > th,\n > td {\n padding-bottom: @padding-sm;\n }\n }\n }\n\n &-small {\n .@{descriptions-prefix-cls}-row {\n > th,\n > td {\n padding-bottom: @padding-xs;\n }\n }\n }\n\n &-bordered {\n .@{descriptions-prefix-cls}-view {\n border: 1px solid @border-color-split;\n\n > table {\n table-layout: auto;\n border-collapse: collapse;\n }\n }\n\n .@{descriptions-prefix-cls}-item-label,\n .@{descriptions-prefix-cls}-item-content {\n padding: @descriptions-default-padding;\n border-right: 1px solid @border-color-split;\n\n &:last-child {\n border-right: none;\n }\n }\n\n .@{descriptions-prefix-cls}-item-label {\n background-color: @descriptions-bg;\n\n &::after {\n display: none;\n }\n }\n\n .@{descriptions-prefix-cls}-row {\n border-bottom: 1px solid @border-color-split;\n\n &:last-child {\n border-bottom: none;\n }\n }\n\n &.@{descriptions-prefix-cls}-middle {\n .@{descriptions-prefix-cls}-item-label,\n .@{descriptions-prefix-cls}-item-content {\n padding: @descriptions-middle-padding;\n }\n }\n\n &.@{descriptions-prefix-cls}-small {\n .@{descriptions-prefix-cls}-item-label,\n .@{descriptions-prefix-cls}-item-content {\n padding: @descriptions-small-padding;\n }\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@descriptions-prefix-cls: ~'@{ant-prefix}-descriptions';\n\n.@{descriptions-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-item-label {\n &::after {\n .@{descriptions-prefix-cls}-rtl & {\n margin: 0 @descriptions-item-label-colon-margin-left 0\n @descriptions-item-label-colon-margin-right;\n }\n }\n }\n\n &-bordered {\n .@{descriptions-prefix-cls}-item-label,\n .@{descriptions-prefix-cls}-item-content {\n .@{descriptions-prefix-cls}-rtl& {\n border-right: none;\n border-left: 1px solid @border-color-split;\n\n &:last-child {\n border-left: none;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@divider-prefix-cls: ~'@{ant-prefix}-divider';\n\n.@{divider-prefix-cls} {\n .reset-component();\n\n border-top: @border-width-base solid @divider-color;\n\n &-vertical {\n position: relative;\n top: -0.06em;\n display: inline-block;\n height: 0.9em;\n margin: 0 @divider-vertical-gutter;\n vertical-align: middle;\n border-top: 0;\n border-left: @border-width-base solid @divider-color;\n }\n\n &-horizontal {\n display: flex;\n clear: both;\n width: 100%;\n min-width: 100%; // Fix https://github.com/ant-design/ant-design/issues/10914\n margin: 24px 0;\n }\n\n &-horizontal&-with-text {\n display: flex;\n align-items: center;\n margin: 16px 0;\n color: @heading-color;\n font-weight: 500;\n font-size: @font-size-lg;\n white-space: nowrap;\n text-align: center;\n border-top: 0;\n border-top-color: @divider-color;\n\n &::before,\n &::after {\n position: relative;\n width: 50%;\n border-top: @border-width-base solid transparent;\n // Chrome not accept `inherit` in `border-top`\n border-top-color: inherit;\n border-bottom: 0;\n transform: translateY(50%);\n content: '';\n }\n }\n\n &-horizontal&-with-text-left {\n &::before {\n width: @divider-orientation-margin;\n }\n\n &::after {\n width: 100% - @divider-orientation-margin;\n }\n }\n\n &-horizontal&-with-text-right {\n &::before {\n width: 100% - @divider-orientation-margin;\n }\n\n &::after {\n width: @divider-orientation-margin;\n }\n }\n\n &-inner-text {\n display: inline-block;\n padding: 0 @divider-text-padding;\n }\n\n &-dashed {\n background: none;\n border-color: @divider-color;\n border-style: dashed;\n border-width: @border-width-base 0 0;\n }\n\n &-horizontal&-with-text&-dashed {\n &::before,\n &::after {\n border-style: dashed none none;\n }\n }\n\n &-vertical&-dashed {\n border-width: 0 0 0 @border-width-base;\n }\n\n &-plain&-with-text {\n color: @text-color;\n font-weight: normal;\n font-size: @font-size-base;\n }\n\n &-horizontal&-with-text-left&-no-default-orientation-margin-left {\n &::before {\n width: 0;\n }\n\n &::after {\n width: 100%;\n }\n\n .@{divider-prefix-cls}-inner-text {\n padding-left: 0;\n }\n }\n\n &-horizontal&-with-text-right&-no-default-orientation-margin-right {\n &::before {\n width: 100%;\n }\n\n &::after {\n width: 0;\n }\n\n .@{divider-prefix-cls}-inner-text {\n padding-right: 0;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@divider-prefix-cls: ~'@{ant-prefix}-divider';\n\n.@{divider-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-horizontal&-with-text-left {\n &::before {\n .@{divider-prefix-cls}-rtl& {\n width: 100% - @divider-orientation-margin;\n }\n }\n\n &::after {\n .@{divider-prefix-cls}-rtl& {\n width: @divider-orientation-margin;\n }\n }\n }\n\n &-horizontal&-with-text-right {\n &::before {\n .@{divider-prefix-cls}-rtl& {\n width: @divider-orientation-margin;\n }\n }\n\n &::after {\n .@{divider-prefix-cls}-rtl& {\n width: 100% - @divider-orientation-margin;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n\n@drawer-prefix-cls: ~'@{ant-prefix}-drawer';\n@picker-prefix-cls: ~'@{ant-prefix}-picker';\n@drawer-animation-ease: @ease-out-quint;\n\n.@{drawer-prefix-cls} {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n pointer-events: none;\n\n &-inline {\n position: absolute;\n }\n\n // ====================== Mask ======================\n &-mask {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n background: @modal-mask-bg;\n pointer-events: auto;\n }\n\n // ==================== Content =====================\n &-content-wrapper {\n position: absolute;\n z-index: @zindex-modal;\n transition: all @animation-duration-slow;\n\n &-hidden {\n display: none;\n }\n\n // Placement\n .@{drawer-prefix-cls}-left > & {\n top: 0;\n bottom: 0;\n left: 0;\n box-shadow: @shadow-1-right;\n }\n\n .@{drawer-prefix-cls}-right > & {\n top: 0;\n right: 0;\n bottom: 0;\n box-shadow: @shadow-1-left;\n }\n\n .@{drawer-prefix-cls}-top > & {\n top: 0;\n right: 0;\n left: 0;\n box-shadow: @shadow-1-down;\n }\n\n .@{drawer-prefix-cls}-bottom > & {\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: @shadow-1-up;\n }\n }\n\n &-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: @drawer-bg;\n pointer-events: auto;\n }\n\n // ===================== Panel ======================\n &-wrapper-body {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n // Header\n &-header {\n display: flex;\n flex: 0;\n align-items: center;\n padding: @drawer-header-padding;\n font-size: @drawer-title-font-size;\n line-height: @drawer-title-line-height;\n border-bottom: @border-width-base @border-style-base @border-color-split;\n\n &-title {\n display: flex;\n flex: 1;\n align-items: center;\n min-width: 0;\n min-height: 0;\n }\n }\n\n &-extra {\n flex: none;\n }\n\n &-close {\n display: inline-block;\n margin-right: 12px;\n color: @modal-close-color;\n font-weight: 700;\n font-size: @font-size-lg;\n font-style: normal;\n line-height: 1;\n text-align: center;\n text-transform: none;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color @animation-duration-slow;\n text-rendering: auto;\n\n &:focus,\n &:hover {\n color: @icon-color-hover;\n text-decoration: none;\n }\n }\n\n &-title {\n flex: 1;\n margin: 0;\n color: @heading-color;\n font-weight: 500;\n font-size: @drawer-title-font-size;\n line-height: @drawer-title-line-height;\n }\n\n // Body\n &-body {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: @drawer-body-padding;\n overflow: auto;\n }\n\n // Footer\n &-footer {\n flex-shrink: 0;\n padding: @drawer-footer-padding-vertical @drawer-footer-padding-horizontal;\n border-top: @border-width-base @border-style-base @border-color-split;\n }\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-drawer {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n pointer-events: none;\n}\n.ant-drawer-inline {\n position: absolute;\n}\n.ant-drawer-mask {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n background: rgba(0, 0, 0, 0.45);\n pointer-events: auto;\n}\n.ant-drawer-content-wrapper {\n position: absolute;\n z-index: 1000;\n transition: all 0.3s;\n}\n.ant-drawer-content-wrapper-hidden {\n display: none;\n}\n.ant-drawer-left > .ant-drawer-content-wrapper {\n top: 0;\n bottom: 0;\n left: 0;\n box-shadow: 6px 0 16px -8px rgba(0, 0, 0, 0.08), 9px 0 28px 0 rgba(0, 0, 0, 0.05), 12px 0 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-right > .ant-drawer-content-wrapper {\n top: 0;\n right: 0;\n bottom: 0;\n box-shadow: -6px 0 16px -8px rgba(0, 0, 0, 0.08), -9px 0 28px 0 rgba(0, 0, 0, 0.05), -12px 0 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-top > .ant-drawer-content-wrapper {\n top: 0;\n right: 0;\n left: 0;\n box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.08), 0 9px 28px 0 rgba(0, 0, 0, 0.05), 0 12px 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-bottom > .ant-drawer-content-wrapper {\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 0 -6px 16px -8px rgba(0, 0, 0, 0.08), 0 -9px 28px 0 rgba(0, 0, 0, 0.05), 0 -12px 48px 16px rgba(0, 0, 0, 0.03);\n}\n.ant-drawer-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n pointer-events: auto;\n}\n.ant-drawer-wrapper-body {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n.ant-drawer-header {\n display: flex;\n flex: 0;\n align-items: center;\n padding: 16px 24px;\n font-size: 16px;\n line-height: 22px;\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-drawer-header-title {\n display: flex;\n flex: 1;\n align-items: center;\n min-width: 0;\n min-height: 0;\n}\n.ant-drawer-extra {\n flex: none;\n}\n.ant-drawer-close {\n display: inline-block;\n margin-right: 12px;\n color: rgba(0, 0, 0, 0.45);\n font-weight: 700;\n font-size: 16px;\n font-style: normal;\n line-height: 1;\n text-align: center;\n text-transform: none;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n text-rendering: auto;\n}\n.ant-drawer-close:focus,\n.ant-drawer-close:hover {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n}\n.ant-drawer-title {\n flex: 1;\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n}\n.ant-drawer-body {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 24px;\n overflow: auto;\n}\n.ant-drawer-footer {\n flex-shrink: 0;\n padding: 10px 16px;\n border-top: 1px solid #f0f0f0;\n}\n.panel-motion-enter-start,\n.panel-motion-appear-start,\n.panel-motion-leave-start {\n transition: none;\n}\n.panel-motion-enter-active,\n.panel-motion-appear-active,\n.panel-motion-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-mask-motion-enter-active,\n.ant-drawer-mask-motion-appear-active,\n.ant-drawer-mask-motion-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-mask-motion-enter,\n.ant-drawer-mask-motion-appear {\n opacity: 0;\n}\n.ant-drawer-mask-motion-enter-active,\n.ant-drawer-mask-motion-appear-active {\n opacity: 1;\n}\n.ant-drawer-mask-motion-leave {\n opacity: 1;\n}\n.ant-drawer-mask-motion-leave-active {\n opacity: 0;\n}\n.ant-drawer-panel-motion-left-enter-start,\n.ant-drawer-panel-motion-left-appear-start,\n.ant-drawer-panel-motion-left-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-left-enter-active,\n.ant-drawer-panel-motion-left-appear-active,\n.ant-drawer-panel-motion-left-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-left-enter-start,\n.ant-drawer-panel-motion-left-appear-start {\n transform: translateX(-100%) !important;\n}\n.ant-drawer-panel-motion-left-enter-active,\n.ant-drawer-panel-motion-left-appear-active {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-left-leave {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-left-leave-active {\n transform: translateX(-100%);\n}\n.ant-drawer-panel-motion-right-enter-start,\n.ant-drawer-panel-motion-right-appear-start,\n.ant-drawer-panel-motion-right-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-right-enter-active,\n.ant-drawer-panel-motion-right-appear-active,\n.ant-drawer-panel-motion-right-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-right-enter-start,\n.ant-drawer-panel-motion-right-appear-start {\n transform: translateX(100%) !important;\n}\n.ant-drawer-panel-motion-right-enter-active,\n.ant-drawer-panel-motion-right-appear-active {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-right-leave {\n transform: translateX(0);\n}\n.ant-drawer-panel-motion-right-leave-active {\n transform: translateX(100%);\n}\n.ant-drawer-panel-motion-top-enter-start,\n.ant-drawer-panel-motion-top-appear-start,\n.ant-drawer-panel-motion-top-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-top-enter-active,\n.ant-drawer-panel-motion-top-appear-active,\n.ant-drawer-panel-motion-top-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-top-enter-start,\n.ant-drawer-panel-motion-top-appear-start {\n transform: translateY(-100%) !important;\n}\n.ant-drawer-panel-motion-top-enter-active,\n.ant-drawer-panel-motion-top-appear-active {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-top-leave {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-top-leave-active {\n transform: translateY(-100%);\n}\n.ant-drawer-panel-motion-bottom-enter-start,\n.ant-drawer-panel-motion-bottom-appear-start,\n.ant-drawer-panel-motion-bottom-leave-start {\n transition: none;\n}\n.ant-drawer-panel-motion-bottom-enter-active,\n.ant-drawer-panel-motion-bottom-appear-active,\n.ant-drawer-panel-motion-bottom-leave-active {\n transition: all 0.3s;\n}\n.ant-drawer-panel-motion-bottom-enter-start,\n.ant-drawer-panel-motion-bottom-appear-start {\n transform: translateY(100%) !important;\n}\n.ant-drawer-panel-motion-bottom-enter-active,\n.ant-drawer-panel-motion-bottom-appear-active {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-bottom-leave {\n transform: translateY(0);\n}\n.ant-drawer-panel-motion-bottom-leave-active {\n transform: translateY(100%);\n}\n.ant-drawer-rtl {\n direction: rtl;\n}\n.ant-drawer-rtl .ant-drawer-close {\n margin-right: 0;\n margin-left: 12px;\n}\n","@import (reference) '../../style/themes/index';\n\n@drawer-prefix-cls: ~'@{ant-prefix}-drawer';\n\n.panel-motion {\n &-enter,\n &-appear,\n &-leave {\n &-start {\n transition: none;\n }\n\n &-active {\n transition: all @animation-duration-slow;\n }\n }\n}\n\n.@{drawer-prefix-cls} {\n // ======================== Mask ========================\n &-mask-motion {\n &-enter,\n &-appear,\n &-leave {\n &-active {\n transition: all @animation-duration-slow;\n }\n }\n\n &-enter,\n &-appear {\n opacity: 0;\n\n &-active {\n opacity: 1;\n }\n }\n\n &-leave {\n opacity: 1;\n\n &-active {\n opacity: 0;\n }\n }\n }\n\n // ======================= Panel ========================\n &-panel-motion {\n // Left\n &-left {\n .panel-motion();\n\n &-enter,\n &-appear {\n &-start {\n transform: translateX(-100%) !important;\n }\n\n &-active {\n transform: translateX(0);\n }\n }\n\n &-leave {\n transform: translateX(0);\n\n &-active {\n transform: translateX(-100%);\n }\n }\n }\n\n // Right\n &-right {\n .panel-motion();\n\n &-enter,\n &-appear {\n &-start {\n transform: translateX(100%) !important;\n }\n\n &-active {\n transform: translateX(0);\n }\n }\n\n &-leave {\n transform: translateX(0);\n\n &-active {\n transform: translateX(100%);\n }\n }\n }\n\n // Top\n &-top {\n .panel-motion();\n\n &-enter,\n &-appear {\n &-start {\n transform: translateY(-100%) !important;\n }\n\n &-active {\n transform: translateY(0);\n }\n }\n\n &-leave {\n transform: translateY(0);\n\n &-active {\n transform: translateY(-100%);\n }\n }\n }\n\n // Bottom\n &-bottom {\n .panel-motion();\n\n &-enter,\n &-appear {\n &-start {\n transform: translateY(100%) !important;\n }\n\n &-active {\n transform: translateY(0);\n }\n }\n\n &-leave {\n transform: translateY(0);\n\n &-active {\n transform: translateY(100%);\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n\n@drawer-prefix-cls: ~'@{ant-prefix}-drawer';\n\n.@{drawer-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-close {\n .@{drawer-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 12px;\n }\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n// ================================================================\n// = Children Component =\n// ================================================================\n// FIXME: useless, remove in v5\n.@{form-item-prefix-cls} {\n .@{ant-prefix}-input-number {\n + .@{form-prefix-cls}-text {\n margin-left: 8px;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import '../../button/style/mixin';\n@import '../../grid/style/mixin';\n@import './components';\n@import './inline';\n@import './horizontal';\n@import './vertical';\n@import './status';\n@import './mixin';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n@form-font-height: ceil(@font-size-base * @line-height-base);\n\n.@{form-prefix-cls} {\n .reset-component();\n .reset-form();\n\n .@{form-prefix-cls}-text {\n display: inline-block;\n padding-right: 8px;\n }\n\n // ================================================================\n // = Size =\n // ================================================================\n .formSize(@input-height) {\n .@{form-item-prefix-cls}-label > label {\n height: @input-height;\n }\n\n .@{form-item-prefix-cls}-control-input {\n min-height: @input-height;\n }\n }\n\n &-small {\n .formSize(@input-height-sm);\n }\n\n &-large {\n .formSize(@input-height-lg);\n }\n}\n\n.explainAndExtraDistance(@num) when (@num >= 0) {\n padding-top: floor(@num);\n}\n\n.explainAndExtraDistance(@num) when (@num < 0) {\n margin-top: ceil(@num);\n margin-bottom: ceil(@num);\n}\n\n// ================================================================\n// = Item =\n// ================================================================\n.@{form-item-prefix-cls} {\n .reset-component();\n\n margin-bottom: @form-item-margin-bottom;\n vertical-align: top;\n\n &-with-help {\n transition: none;\n }\n\n &-hidden,\n &-hidden.@{ant-prefix}-row {\n // https://github.com/ant-design/ant-design/issues/26141\n display: none;\n }\n\n // ==============================================================\n // = Label =\n // ==============================================================\n &-label {\n display: inline-block;\n flex-grow: 0;\n overflow: hidden;\n white-space: nowrap;\n text-align: right;\n vertical-align: middle;\n\n &-left {\n text-align: left;\n }\n\n &-wrap {\n overflow: unset;\n line-height: (@line-height-base - 0.25em);\n white-space: unset;\n }\n\n > label {\n position: relative;\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n height: @form-item-label-height;\n color: @label-color;\n font-size: @form-item-label-font-size;\n\n > .@{iconfont-css-prefix} {\n font-size: @form-item-label-font-size;\n vertical-align: top;\n }\n\n // Required mark\n &.@{form-item-prefix-cls}-required:not(.@{form-item-prefix-cls}-required-mark-optional)::before {\n display: inline-block;\n margin-right: 4px;\n color: @label-required-color;\n font-size: @form-item-label-font-size;\n font-family: SimSun, sans-serif;\n line-height: 1;\n content: '*';\n\n .@{form-prefix-cls}-hide-required-mark & {\n display: none;\n }\n }\n\n // Optional mark\n .@{form-item-prefix-cls}-optional {\n display: inline-block;\n margin-left: @margin-xss;\n color: @text-color-secondary;\n\n .@{form-prefix-cls}-hide-required-mark & {\n display: none;\n }\n }\n\n // Optional mark\n .@{form-item-prefix-cls}-tooltip {\n color: @text-color-secondary;\n cursor: help;\n writing-mode: horizontal-tb;\n margin-inline-start: @margin-xss;\n }\n\n &::after {\n & when (@form-item-trailing-colon=true) {\n content: ':';\n }\n & when not (@form-item-trailing-colon=true) {\n content: ' ';\n }\n\n position: relative;\n top: -0.5px;\n margin: 0 @form-item-label-colon-margin-right 0 @form-item-label-colon-margin-left;\n }\n\n &.@{form-item-prefix-cls}-no-colon::after {\n content: ' ';\n }\n }\n }\n\n // ==============================================================\n // = Input =\n // ==============================================================\n &-control {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n\n &:first-child:not([class^=~\"'@{ant-prefix}-col-'\"]):not([class*=~\"' @{ant-prefix}-col-'\"]) {\n width: 100%;\n }\n }\n\n &-control-input {\n position: relative;\n display: flex;\n align-items: center;\n min-height: @input-height-base;\n\n &-content {\n flex: auto;\n max-width: 100%;\n }\n }\n\n // ==============================================================\n // = Explain =\n // ==============================================================\n &-explain,\n &-extra {\n clear: both;\n color: @text-color-secondary;\n font-size: @font-size-base;\n line-height: @line-height-base;\n transition: color 0.3s @ease-out; // sync input color transition\n .explainAndExtraDistance((@form-item-margin-bottom - @form-font-height) / 2);\n }\n\n &-explain-connected {\n width: 100%;\n }\n\n &-extra {\n min-height: @form-item-margin-bottom;\n }\n\n &-with-help &-explain {\n height: auto;\n // min-height: @form-item-margin-bottom;\n opacity: 1;\n }\n\n // ==============================================================\n // = Feedback Icon =\n // ==============================================================\n &-feedback-icon {\n font-size: @font-size-base;\n text-align: center;\n visibility: visible;\n animation: zoomIn 0.3s @ease-out-back;\n pointer-events: none;\n\n &-success {\n color: @success-color;\n }\n\n &-error {\n color: @error-color;\n }\n\n &-warning {\n color: @warning-color;\n }\n\n &-validating {\n color: @primary-color;\n }\n }\n}\n\n// >>>>>>>>>> Motion <<<<<<<<<<\n// Explain holder\n.@{ant-prefix}-show-help {\n transition: opacity @animation-duration-slow @ease-in-out;\n\n &-appear,\n &-enter {\n opacity: 0;\n\n &-active {\n opacity: 1;\n }\n }\n\n &-leave {\n opacity: 1;\n\n &-active {\n opacity: 0;\n }\n }\n}\n\n// Explain\n.@{ant-prefix}-show-help-item {\n overflow: hidden;\n transition: height @animation-duration-slow @ease-in-out,\n opacity @animation-duration-slow @ease-in-out, transform @animation-duration-slow @ease-in-out !important;\n\n &-appear,\n &-enter {\n transform: translateY(-5px);\n opacity: 0;\n\n &-active {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n &-leave {\n transition: height @animation-duration-base @ease-in-out,\n opacity @animation-duration-base @ease-in-out, transform @animation-duration-base @ease-in-out !important;\n }\n\n &-leave-active {\n transform: translateY(-5px);\n }\n}\n\n// need there different zoom animation\n// otherwise won't trigger anim\n@keyframes diffZoomIn1 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes diffZoomIn2 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes diffZoomIn3 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import (reference) '../../style/themes/index';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n.@{form-prefix-cls}-inline {\n display: flex;\n flex-wrap: wrap;\n\n .@{form-prefix-cls}-item {\n flex: none;\n flex-wrap: nowrap;\n margin-right: 16px;\n margin-bottom: 0;\n\n &-with-help {\n margin-bottom: @form-item-margin-bottom;\n }\n\n > .@{form-item-prefix-cls}-label,\n > .@{form-item-prefix-cls}-control {\n display: inline-block;\n vertical-align: top;\n }\n\n > .@{form-item-prefix-cls}-label {\n flex: none;\n }\n\n .@{form-prefix-cls}-text {\n display: inline-block;\n }\n\n .@{form-item-prefix-cls}-has-feedback {\n display: inline-block;\n }\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n.@{form-prefix-cls}-horizontal {\n .@{form-item-prefix-cls}-label {\n flex-grow: 0;\n }\n .@{form-item-prefix-cls}-control {\n flex: 1 1 0;\n // https://github.com/ant-design/ant-design/issues/32777\n // https://github.com/ant-design/ant-design/issues/33773\n min-width: 0;\n }\n // https://github.com/ant-design/ant-design/issues/32980\n // https://github.com/ant-design/ant-design/issues/34903\n .@{form-item-prefix-cls}-label[class$='-24'] + .@{form-item-prefix-cls}-control,\n .@{form-item-prefix-cls}-label[class*='-24 '] + .@{form-item-prefix-cls}-control {\n min-width: unset;\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n// ================== Label ==================\n.make-vertical-layout-label() {\n & when (@form-vertical-label-margin > 0) {\n margin: @form-vertical-label-margin;\n }\n padding: @form-vertical-label-padding;\n line-height: @line-height-base;\n white-space: initial;\n text-align: left;\n\n > label {\n margin: 0;\n\n &::after {\n display: none;\n }\n }\n}\n\n.make-vertical-layout() {\n .@{form-prefix-cls}-item .@{form-prefix-cls}-item-label {\n .make-vertical-layout-label();\n }\n .@{form-prefix-cls} {\n .@{form-prefix-cls}-item {\n flex-wrap: wrap;\n .@{form-prefix-cls}-item-label,\n .@{form-prefix-cls}-item-control {\n flex: 0 0 100%;\n max-width: 100%;\n }\n }\n }\n}\n\n.@{form-prefix-cls}-vertical {\n .@{form-item-prefix-cls} {\n &-row {\n flex-direction: column;\n }\n\n &-label > label {\n height: auto;\n }\n\n .@{form-prefix-cls}-item-control {\n width: 100%;\n }\n }\n}\n\n.@{form-prefix-cls}-vertical .@{form-item-prefix-cls}-label,\n/* when labelCol is 24, it is a vertical form */\n.@{ant-prefix}-col-24.@{form-item-prefix-cls}-label,\n.@{ant-prefix}-col-xl-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n}\n\n@media (max-width: @screen-xs-max) {\n .make-vertical-layout();\n .@{ant-prefix}-col-xs-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n }\n}\n\n@media (max-width: @screen-sm-max) {\n .@{ant-prefix}-col-sm-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n }\n}\n\n@media (max-width: @screen-md-max) {\n .@{ant-prefix}-col-md-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n }\n}\n\n@media (max-width: @screen-lg-max) {\n .@{ant-prefix}-col-lg-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n }\n}\n\n@media (max-width: @screen-xl-max) {\n .@{ant-prefix}-col-xl-24.@{form-item-prefix-cls}-label {\n .make-vertical-layout-label();\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import '../../button/style/mixin';\n@import '../../grid/style/mixin';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n.@{form-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n\n// ================================================================\n// = Item =\n// ================================================================\n.@{form-item-prefix-cls} {\n // ==============================================================\n // = Label =\n // ==============================================================\n &-label {\n .@{form-prefix-cls}-rtl & {\n text-align: left;\n }\n\n > label {\n &.@{form-item-prefix-cls}-required::before {\n .@{form-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n\n &::after {\n .@{form-prefix-cls}-rtl & {\n margin: 0 @form-item-label-colon-margin-left 0 @form-item-label-colon-margin-right;\n }\n }\n\n .@{form-item-prefix-cls}-optional {\n .@{form-prefix-cls}-rtl & {\n margin-right: @margin-xss;\n margin-left: 0;\n }\n }\n }\n }\n\n // ==============================================================\n // = Input =\n // ==============================================================\n &-control {\n .@{ant-prefix}-col-rtl &:first-child {\n width: 100%;\n }\n }\n\n // status\n &-has-feedback {\n .@{ant-prefix}-input {\n .@{form-prefix-cls}-rtl & {\n padding-right: @input-padding-horizontal-base;\n padding-left: 24px;\n }\n }\n\n .@{ant-prefix}-input-affix-wrapper {\n .@{ant-prefix}-input-suffix {\n .@{form-prefix-cls}-rtl & {\n padding-right: @input-padding-horizontal-base;\n padding-left: 18px;\n }\n }\n .@{ant-prefix}-input {\n .@{form-prefix-cls}-rtl & {\n padding: 0;\n }\n }\n }\n\n .@{ant-prefix}-input-number-affix-wrapper {\n .@{ant-prefix}-input-number {\n .@{form-prefix-cls}-rtl & {\n padding: 0;\n }\n }\n }\n\n .@{ant-prefix}-input-search:not(.@{ant-prefix}-input-search-enter-button) {\n .@{ant-prefix}-input-suffix {\n .@{form-prefix-cls}-rtl & {\n right: auto;\n left: 28px;\n }\n }\n }\n\n .@{ant-prefix}-input-number {\n .@{form-prefix-cls}-rtl & {\n padding-left: 18px;\n }\n }\n\n > .@{ant-prefix}-select .@{ant-prefix}-select-arrow,\n > .@{ant-prefix}-select .@{ant-prefix}-select-clear,\n :not(.@{ant-prefix}-input-group-addon) > .@{ant-prefix}-select .@{ant-prefix}-select-arrow,\n :not(.@{ant-prefix}-input-group-addon) > .@{ant-prefix}-select .@{ant-prefix}-select-clear,\n :not(.@{ant-prefix}-input-number-group-addon)\n > .@{ant-prefix}-select\n .@{ant-prefix}-select-arrow,\n :not(.@{ant-prefix}-input-number-group-addon)\n > .@{ant-prefix}-select\n .@{ant-prefix}-select-clear {\n .@{form-prefix-cls}-rtl & {\n right: auto;\n left: 32px;\n }\n }\n\n > .@{ant-prefix}-select .@{ant-prefix}-select-selection-selected-value,\n :not(.@{ant-prefix}-input-group-addon)\n > .@{ant-prefix}-select\n .@{ant-prefix}-select-selection-selected-value,\n :not(.@{ant-prefix}-input-number-group-addon)\n > .@{ant-prefix}-select\n .@{ant-prefix}-select-selection-selected-value {\n .@{form-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 42px;\n }\n }\n\n .@{ant-prefix}-cascader-picker {\n &-arrow {\n .@{form-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 19px;\n }\n }\n\n &-clear {\n .@{form-prefix-cls}-rtl & {\n right: auto;\n left: 32px;\n }\n }\n }\n\n .@{ant-prefix}-picker {\n .@{form-prefix-cls}-rtl & {\n padding-right: @input-padding-horizontal-base;\n padding-left: @input-padding-horizontal-base + @font-size-base * 1.3;\n }\n\n &-large {\n .@{form-prefix-cls}-rtl & {\n padding-right: @input-padding-horizontal-lg;\n padding-left: @input-padding-horizontal-lg + @font-size-base * 1.3;\n }\n }\n\n &-small {\n .@{form-prefix-cls}-rtl & {\n padding-right: @input-padding-horizontal-sm;\n padding-left: @input-padding-horizontal-sm + @font-size-base * 1.3;\n }\n }\n }\n\n &.@{form-item-prefix-cls} {\n &-has-success,\n &-has-warning,\n &-has-error,\n &-is-validating {\n // ====================== Icon ======================\n .@{form-item-prefix-cls}-children-icon {\n .@{form-prefix-cls}-rtl & {\n right: auto;\n left: 0;\n }\n }\n }\n }\n }\n}\n\n// inline\n.@{form-prefix-cls}-inline {\n .@{form-prefix-cls}-item {\n .@{form-prefix-cls}-rtl& {\n margin-right: 0;\n margin-left: 16px;\n }\n }\n}\n\n// vertical\n.make-vertical-layout-label() {\n .@{form-prefix-cls}-rtl& {\n text-align: right;\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@form-prefix-cls: ~'@{ant-prefix}-form';\n@form-item-prefix-cls: ~'@{form-prefix-cls}-item';\n\n.@{form-item-prefix-cls} {\n // ================================================================\n // = Status =\n // ================================================================\n\n /* Some non-status related component style is in `components.less` */\n\n // ========================= Explain =========================\n\n /* To support leave along ErrorList. We add additional className to handle explain style */\n &-explain {\n &-error {\n color: @error-color;\n }\n\n &-warning {\n color: @warning-color;\n }\n }\n\n &-has-feedback {\n // ======================== Switch =========================\n .@{ant-prefix}-switch {\n margin: 2px 0 4px;\n }\n }\n\n // ======================== Warning ========================\n &-has-warning {\n .form-control-validation(@warning-color; @warning-color; @form-warning-input-bg; @warning-color-hover; @warning-color-outline);\n }\n\n // ========================= Error =========================\n &-has-error {\n .form-control-validation(@error-color; @error-color; @form-error-input-bg; @error-color-hover; @error-color-outline);\n }\n}\n","@import '../../input/style/mixin';\n\n.form-control-validation(\n @text-color: @input-color;\n @border-color: @input-border-color;\n @background-color: @input-bg;\n @hoverBorderColor: @primary-color-hover;\n @outlineColor: @primary-color-outline;\n) {\n .@{ant-prefix}-form-item-split {\n color: @text-color;\n }\n}\n\n// Reset form styles\n// -----------------------------\n// Based on Bootstrap framework\n.reset-form() {\n legend {\n display: block;\n width: 100%;\n margin-bottom: 20px;\n padding: 0;\n color: @text-color-secondary;\n font-size: @font-size-lg;\n line-height: inherit;\n border: 0;\n border-bottom: @border-width-base @border-style-base @border-color-base;\n }\n\n label {\n font-size: @font-size-base;\n }\n\n input[type='search'] {\n box-sizing: border-box;\n }\n\n // Position radios and checkboxes better\n input[type='radio'],\n input[type='checkbox'] {\n line-height: normal;\n }\n\n input[type='file'] {\n display: block;\n }\n\n // Make range inputs behave like textual form controls\n input[type='range'] {\n display: block;\n width: 100%;\n }\n\n // Make multiple select elements height not fixed\n select[multiple],\n select[size] {\n height: auto;\n }\n\n // Focus for file, radio, and checkbox\n input[type='file']:focus,\n input[type='radio']:focus,\n input[type='checkbox']:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n }\n\n // Adjust output element\n output {\n display: block;\n padding-top: 15px;\n color: @input-color;\n font-size: @font-size-base;\n line-height: @line-height-base;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@image-prefix-cls: ~'@{ant-prefix}-image';\n@image-preview-prefix-cls: ~'@{image-prefix-cls}-preview';\n\n.@{image-prefix-cls} {\n position: relative;\n display: inline-block;\n\n &-img {\n width: 100%;\n height: auto;\n vertical-align: middle;\n\n &-placeholder {\n background-color: @image-bg;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=');\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 30%;\n }\n }\n\n &-mask {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: @text-color-inverse;\n background: fade(@black, 50%);\n cursor: pointer;\n opacity: 0;\n transition: opacity @animation-duration-slow;\n\n &-info {\n padding: 0 @padding-xss;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n .@{iconfont-css-prefix} {\n margin-inline-end: @margin-xss;\n }\n }\n\n &:hover {\n opacity: 1;\n }\n }\n\n &-placeholder {\n .box();\n }\n\n &-preview {\n .modal-mask();\n\n height: 100%;\n text-align: center;\n\n &-body {\n .box();\n overflow: hidden;\n }\n\n &-img {\n max-width: 100%;\n max-height: 100%;\n vertical-align: middle;\n transform: scale3d(1, 1, 1);\n cursor: grab;\n transition: transform 0.3s @ease-out 0s;\n user-select: none;\n pointer-events: auto;\n\n &-wrapper {\n .box();\n transition: transform 0.3s @ease-out 0s;\n\n &::before {\n display: inline-block;\n width: 1px;\n height: 50%;\n margin-right: -1px;\n content: '';\n }\n }\n }\n\n &-moving {\n .@{image-prefix-cls}-preview-img {\n cursor: grabbing;\n\n &-wrapper {\n transition-duration: 0s;\n }\n }\n }\n\n &-wrap {\n z-index: @zindex-image;\n }\n\n &-operations-wrapper {\n position: fixed;\n top: 0;\n right: 0;\n z-index: @zindex-image + 1;\n width: 100%;\n }\n\n &-operations {\n .reset-component();\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n color: @image-preview-operation-color;\n list-style: none;\n background: fade(@modal-mask-bg, 10%);\n pointer-events: auto;\n\n &-operation {\n margin-left: @control-padding-horizontal;\n padding: @control-padding-horizontal;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n background: fade(@modal-mask-bg, 20%);\n }\n\n &-disabled {\n color: @image-preview-operation-disabled-color;\n pointer-events: none;\n }\n\n &:last-of-type {\n margin-left: 0;\n }\n }\n\n &-progress {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n\n &-icon {\n font-size: @image-preview-operation-size;\n }\n }\n\n &-switch-left,\n &-switch-right {\n position: fixed;\n top: 50%;\n right: 8px;\n z-index: @zindex-image + 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n color: @image-preview-operation-color;\n background: fade(@modal-mask-bg, 10%);\n border-radius: 50%;\n transform: translateY(-50%);\n cursor: pointer;\n transition: all 0.3s;\n pointer-events: auto;\n\n &:hover {\n background: fade(@modal-mask-bg, 20%);\n }\n\n &-disabled,\n &-disabled:hover {\n color: @image-preview-operation-disabled-color;\n background: fade(@modal-mask-bg, 10%);\n cursor: not-allowed;\n > .@{iconfont-css-prefix} {\n cursor: not-allowed;\n }\n }\n\n > .@{iconfont-css-prefix} {\n font-size: 18px;\n }\n }\n\n &-switch-left {\n left: 8px;\n }\n\n &-switch-right {\n right: 8px;\n }\n }\n}\n\n@root-entry-name: default;",".box(@position: absolute) {\n position: @position;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n","@import 'box';\n\n.modal-mask() {\n pointer-events: none;\n\n &.@{ant-prefix}-zoom-enter,\n &.@{ant-prefix}-zoom-appear {\n transform: none; // reset scale avoid mousePosition bug\n opacity: 0;\n animation-duration: @animation-duration-slow;\n user-select: none; // https://github.com/ant-design/ant-design/issues/11777\n }\n\n &-mask {\n .box(fixed);\n z-index: @zindex-modal-mask;\n height: 100%;\n background-color: @modal-mask-bg;\n\n &-hidden {\n display: none;\n }\n }\n\n &-wrap {\n .box(fixed);\n overflow: auto;\n outline: 0;\n }\n}\n","@import '../../input/style/mixin';\n@import (reference) '../../style/themes/index';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n@input-affix-margin: 4px;\n\n.@{ant-prefix}-input-number {\n &-affix-wrapper {\n .input();\n // or number handler will cover form status\n position: relative;\n display: inline-flex;\n width: 90px;\n padding: 0;\n padding-inline-start: @input-padding-horizontal-base;\n\n &:not(&-disabled):hover {\n .hover();\n z-index: 1;\n }\n\n &-focused,\n &:focus {\n z-index: 1;\n }\n\n &-disabled {\n .@{ant-prefix}-input-number[disabled] {\n background: transparent;\n }\n }\n\n > div.@{ant-prefix}-input-number {\n width: 100%;\n border: none;\n outline: none;\n\n &.@{ant-prefix}-input-number-focused {\n box-shadow: none !important;\n }\n }\n\n input.@{ant-prefix}-input-number-input {\n padding: 0;\n }\n\n &::before {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n }\n\n .@{ant-prefix}-input-number-handler-wrap {\n z-index: 2;\n }\n }\n\n &-prefix,\n &-suffix {\n display: flex;\n flex: none;\n align-items: center;\n pointer-events: none;\n }\n\n &-prefix {\n margin-inline-end: @input-affix-margin;\n }\n\n &-suffix {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 1;\n height: 100%;\n margin-right: @input-padding-horizontal-base;\n margin-left: @input-affix-margin;\n }\n}\n\n.@{ant-prefix}-input-number-group-wrapper .@{ant-prefix}-input-number-affix-wrapper {\n width: 100%;\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import './affix';\n@import './status';\n\n@input-number-prefix-cls: ~'@{ant-prefix}-input-number';\n@form-item-prefix-cls: ~'@{ant-prefix}-form-item';\n\n.@{input-number-prefix-cls} {\n .reset-component();\n .input();\n\n //== Style for input-group: input with label, with button or dropdown...\n &-group {\n .reset-component();\n .input-group(~'@{input-number-prefix-cls}');\n\n &-wrapper {\n display: inline-block;\n text-align: start;\n vertical-align: top; // https://github.com/ant-design/ant-design/issues/6403\n }\n }\n\n display: inline-block;\n width: 90px;\n margin: 0;\n padding: 0;\n border: @border-width-base @border-style-base @input-border-color;\n border-radius: @control-border-radius;\n\n &-handler {\n position: relative;\n display: block;\n width: 100%;\n height: 50%;\n overflow: hidden;\n color: @text-color-secondary;\n font-weight: bold;\n line-height: 0;\n text-align: center;\n border-left: @border-width-base @border-style-base @input-number-handler-border-color;\n transition: all 0.1s linear;\n\n &:active {\n background: @input-number-handler-active-bg;\n }\n\n &:hover &-up-inner,\n &:hover &-down-inner {\n color: @input-number-handler-hover-bg;\n }\n }\n\n &-handler-up-inner,\n &-handler-down-inner {\n .iconfont-mixin();\n\n position: absolute;\n right: 4px;\n width: 12px;\n height: 12px;\n color: @text-color-secondary;\n line-height: 12px;\n transition: all 0.1s linear;\n user-select: none;\n }\n\n &:hover {\n .hover(@input-number-hover-border-color);\n & + .@{form-item-prefix-cls}-children-icon {\n opacity: 0;\n transition: opacity 0.24s linear 0.24s;\n }\n }\n\n &-focused {\n .active();\n }\n\n &-disabled {\n .disabled();\n .@{input-number-prefix-cls}-input {\n cursor: not-allowed;\n }\n .@{input-number-prefix-cls}-handler-wrap {\n display: none;\n }\n }\n\n &-readonly {\n .@{input-number-prefix-cls}-handler-wrap {\n display: none;\n }\n }\n\n &-input {\n width: 100%;\n height: @input-height-base - 2px;\n padding: 0 @control-padding-horizontal - 1px;\n text-align: left;\n background-color: transparent;\n border: 0;\n border-radius: @control-border-radius;\n outline: 0;\n transition: all 0.3s linear;\n appearance: textfield !important;\n .placeholder();\n\n &[type='number']::-webkit-inner-spin-button,\n &[type='number']::-webkit-outer-spin-button {\n margin: 0;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n appearance: none;\n }\n }\n\n &-lg {\n padding: 0;\n font-size: @font-size-lg;\n\n input {\n height: @input-height-lg - 2px;\n }\n }\n\n &-sm {\n padding: 0;\n\n input {\n height: @input-height-sm - 2px;\n padding: 0 @control-padding-horizontal-sm - 1px;\n }\n }\n\n &-handler-wrap {\n position: absolute;\n top: 0;\n right: 0;\n width: 22px;\n height: 100%;\n background: @input-number-handler-bg;\n border-radius: 0 @control-border-radius @control-border-radius 0;\n opacity: 0;\n transition: opacity 0.24s linear 0.1s;\n\n // Fix input number inside Menu makes icon too large\n // We arise the selector priority by nest selector here\n // https://github.com/ant-design/ant-design/issues/14367\n .@{input-number-prefix-cls}-handler {\n .@{input-number-prefix-cls}-handler-up-inner,\n .@{input-number-prefix-cls}-handler-down-inner {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: auto;\n margin-right: 0;\n font-size: 7px;\n }\n }\n\n .@{input-number-prefix-cls}-borderless & {\n border-left-width: 0;\n }\n }\n\n &-handler-wrap:hover &-handler {\n height: 40%;\n }\n\n &:hover &-handler-wrap,\n &-focused &-handler-wrap {\n opacity: 1;\n }\n\n &-handler-up {\n border-top-right-radius: @control-border-radius;\n cursor: pointer;\n\n &-inner {\n top: 50%;\n margin-top: -5px;\n text-align: center;\n }\n\n &:hover {\n height: 60% !important;\n }\n }\n\n &-handler-down {\n top: 0;\n border-top: @border-width-base @border-style-base @input-number-handler-border-color;\n border-bottom-right-radius: @control-border-radius;\n cursor: pointer;\n\n &-inner {\n top: 50%;\n text-align: center;\n transform: translateY(-50%);\n }\n\n &:hover {\n height: 60% !important;\n }\n .@{input-number-prefix-cls}-borderless & {\n border-top-width: 0;\n }\n }\n\n &:hover:not(.@{input-number-prefix-cls}-borderless) &-handler-down,\n &-focused:not(.@{input-number-prefix-cls}-borderless) &-handler-down {\n border-top: @border-width-base @border-style-base @input-number-handler-border-color;\n }\n\n &-handler-up-disabled,\n &-handler-down-disabled {\n cursor: not-allowed;\n }\n\n &-handler-up-disabled:hover &-handler-up-inner,\n &-handler-down-disabled:hover &-handler-down-inner {\n color: @disabled-color;\n }\n\n &-borderless {\n box-shadow: none;\n }\n\n // ===================== Out Of Range =====================\n &-out-of-range {\n input {\n color: @error-color;\n }\n }\n\n // ===================== Compact Item Styles =====================\n .compact-item(@input-number-prefix-cls, null, ~'@{input-number-prefix-cls}-focused');\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../input/style/mixin';\n\n@input-number-prefix-cls: ~'@{ant-prefix}-input-number';\n\n@input-number-wrapper-cls: @input-number-prefix-cls, ~'@{input-number-prefix-cls}-affix-wrapper';\n\neach(@input-number-wrapper-cls, {\n .@{value} {\n &-status-error {\n .status-color(@value, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n .status-color-common(@input-number-prefix-cls, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline)\n }\n\n &-status-warning {\n .status-color(@value, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n .status-color-common(@input-number-prefix-cls, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline)\n }\n }\n});\n\n.@{input-number-prefix-cls}-group-wrapper {\n &-status-error {\n .group-status-color(@input-number-prefix-cls, @error-color, @error-color);\n }\n\n &-status-warning {\n .group-status-color(@input-number-prefix-cls, @warning-color, @warning-color);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n\n@input-number-prefix-cls: ~'@{ant-prefix}-input-number';\n\n.@{input-number-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-handler {\n .@{input-number-prefix-cls}-rtl & {\n border-right: @border-width-base @border-style-base @input-number-handler-border-color;\n border-left: 0;\n }\n\n &-wrap {\n .@{input-number-prefix-cls}-rtl & {\n right: auto;\n left: 0;\n }\n\n .@{input-number-prefix-cls}-rtl.@{input-number-prefix-cls}-borderless & {\n border-right-width: 0;\n }\n }\n\n &-up {\n .@{input-number-prefix-cls}-rtl & {\n border-top-right-radius: 0;\n }\n }\n\n &-down {\n .@{input-number-prefix-cls}-rtl & {\n border-bottom-right-radius: 0;\n }\n }\n }\n\n &-input {\n .@{input-number-prefix-cls}-rtl & {\n direction: ltr;\n text-align: right;\n }\n }\n}\n\n// https://github.com/ant-design/ant-design/issues/35870\n.input-group(@input-number-prefix-cls) {\n > .@{input-number-prefix-cls}-rtl:first-child {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n > .@{input-number-prefix-cls}-rtl:last-child {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n\n &-addon {\n .@{input-number-prefix-cls}-group-rtl &:first-child {\n border-right: @border-width-base @border-style-base @input-border-color;\n border-left: 0;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n .@{input-number-prefix-cls}-group-rtl &:last-child {\n border-right: 0;\n border-left: @border-width-base @border-style-base @input-border-color;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n}\n","@import './mixin';\n@import (reference) '../../style/themes/index';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n@input-affix-margin: 4px;\n\n.@{ant-prefix}-input {\n &-affix-wrapper {\n .input();\n display: inline-flex;\n\n &:not(&-disabled):hover {\n .hover();\n z-index: 1;\n .@{ant-prefix}-input-search-with-button & {\n z-index: 0;\n }\n }\n\n &-focused,\n &:focus {\n z-index: 1;\n }\n\n &-disabled {\n .@{ant-prefix}-input[disabled] {\n background: rgba(255, 255, 255, 0);\n }\n }\n\n > .@{ant-prefix}-input {\n font-size: inherit;\n border: none;\n outline: none;\n\n &:focus {\n box-shadow: none !important;\n }\n\n &:not(textarea) {\n padding: 0;\n }\n }\n\n &::before {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n }\n }\n\n &-prefix,\n &-suffix {\n display: flex;\n flex: none;\n align-items: center;\n\n > *:not(:last-child) {\n margin-right: 8px;\n }\n }\n\n &-show-count-suffix {\n color: @text-color-secondary;\n }\n\n &-show-count-has-suffix {\n margin-right: 2px;\n }\n\n &-prefix {\n margin-right: @input-affix-margin;\n }\n\n &-suffix {\n margin-left: @input-affix-margin;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './mixin';\n@import './affix';\n@import './allow-clear';\n@import './status';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n// Input styles\n.@{input-prefix-cls} {\n .reset-component();\n .input();\n\n //== Style for input-group: input with label, with button or dropdown...\n &-group {\n .reset-component();\n .input-group(~'@{input-prefix-cls}');\n\n &-wrapper {\n display: inline-block;\n width: 100%;\n text-align: start;\n vertical-align: top; // https://github.com/ant-design/ant-design/issues/6403\n }\n }\n\n &-password-icon.@{iconfont-css-prefix} {\n color: @text-color-secondary;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n color: @input-icon-hover-color;\n }\n }\n\n &[type='color'] {\n height: @input-height-base;\n\n &.@{input-prefix-cls}-lg {\n height: @input-height-lg;\n }\n &.@{input-prefix-cls}-sm {\n height: @input-height-sm;\n padding-top: 3px;\n padding-bottom: 3px;\n }\n }\n\n &-textarea-show-count {\n // https://github.com/ant-design/ant-design/issues/33049\n > .@{input-prefix-cls} {\n height: 100%;\n }\n\n &::after {\n float: right;\n color: @text-color-secondary;\n white-space: nowrap;\n content: attr(data-count);\n pointer-events: none;\n }\n\n &.@{input-prefix-cls}-textarea-in-form-item {\n &::after {\n margin-bottom: -22px;\n }\n }\n }\n\n &-textarea-suffix {\n position: absolute;\n top: 0;\n right: @input-padding-horizontal-base;\n bottom: 0;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: auto;\n }\n\n // ===================== Compact Item Styles =====================\n .compact-item(@input-prefix-cls);\n}\n\n@import './search-input';\n@import './rtl';\n@import './IE11';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n//== Style for input-group: input with label, with button or dropdown...\n.@{ant-prefix}-input-group {\n &-wrapper {\n &-rtl {\n direction: rtl;\n }\n }\n\n &-rtl {\n direction: rtl;\n }\n}\n\n// affix\n@input-affix-margin: 4px;\n\n.@{ant-prefix}-input {\n &-affix-wrapper&-affix-wrapper-rtl {\n > input.@{ant-prefix}-input {\n border: none;\n outline: none;\n }\n }\n\n &-affix-wrapper-rtl {\n .@{ant-prefix}-input-prefix {\n margin: 0 0 0 @input-affix-margin;\n }\n\n .@{ant-prefix}-input-suffix {\n margin: 0 @input-affix-margin 0 0;\n }\n }\n\n &-textarea {\n &-rtl {\n direction: rtl;\n }\n\n &-rtl&-show-count::after {\n text-align: left;\n }\n }\n}\n\n// allow-clear\n.@{ant-prefix}-input-clear-icon {\n &-has-suffix {\n .@{ant-prefix}-input-affix-wrapper-rtl & {\n margin-right: 0;\n margin-left: @input-affix-margin;\n }\n }\n\n .@{ant-prefix}-input-affix-wrapper-rtl & {\n right: auto;\n left: 8px;\n }\n}\n\n// mixin\n@input-rtl-cls: ~'@{ant-prefix}-input-rtl';\n\n.active() {\n .@{input-rtl-cls} & {\n border-right-width: 0;\n border-left-width: @border-width-base !important;\n }\n}\n\n.hover() {\n .@{input-rtl-cls} & {\n border-right-width: 0;\n border-left-width: @border-width-base !important;\n }\n}\n\n.input() {\n &-rtl {\n direction: rtl;\n }\n}\n\n// label input\n.input-group(@inputClass) {\n > .@{inputClass}-rtl:first-child,\n &-rtl &-addon:first-child {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n\n &-addon:first-child {\n .@{inputClass}-group-rtl & {\n border-right: @border-width-base @border-style-base @input-border-color;\n border-left: 0;\n }\n }\n\n &-addon:last-child {\n .@{inputClass}-group-rtl & {\n border-right: 0;\n border-left: @border-width-base @border-style-base @input-border-color;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n > .@{inputClass}:last-child,\n &-addon:last-child {\n .@{inputClass}-group-rtl& {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n .@{inputClass}-affix-wrapper {\n &:not(:first-child) {\n .@{inputClass}-group-rtl& {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n &:not(:last-child) {\n .@{inputClass}-group-rtl& {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n }\n\n &&-compact {\n & > *:not(:last-child) {\n .@{inputClass}-group-rtl& {\n margin-right: 0;\n margin-left: -@border-width-base;\n border-left-width: @border-width-base;\n }\n }\n\n & > *:first-child,\n & > .@{ant-prefix}-select:first-child > .@{ant-prefix}-select-selector,\n & > .@{ant-prefix}-select-auto-complete:first-child .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker:first-child .@{ant-prefix}-input {\n .@{inputClass}-group-rtl& {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n\n & > *:last-child,\n & > .@{ant-prefix}-select:last-child > .@{ant-prefix}-select-selector,\n & > .@{ant-prefix}-select-auto-complete:last-child .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker:last-child .@{ant-prefix}-input,\n & > .@{ant-prefix}-cascader-picker-focused:last-child .@{ant-prefix}-input {\n .@{inputClass}-group-rtl& {\n border-left-width: @border-width-base;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n\n .@{ant-prefix}-input-group-wrapper-rtl + .@{ant-prefix}-input-group-wrapper-rtl {\n margin-right: -1px;\n margin-left: 0;\n }\n\n .@{ant-prefix}-input-group-wrapper-rtl:not(:last-child) {\n &.@{ant-prefix}-input-search > .@{ant-prefix}-input-group {\n & > .@{ant-prefix}-input {\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n }\n }\n }\n}\n\n// search-input\n@search-prefix: ~'@{ant-prefix}-input-search';\n@search-rtl-cls: ~'@{search-prefix}-rtl';\n\n.@{search-prefix}-rtl {\n direction: rtl;\n\n .@{ant-prefix}-input {\n &:hover,\n &:focus {\n + .@{ant-prefix}-input-group-addon .@{search-prefix}-button:not(.@{ant-prefix}-btn-primary) {\n border-left-color: @border-color-base;\n\n &:hover {\n border-left-color: @input-hover-border-color;\n }\n }\n }\n }\n\n > .@{ant-prefix}-input-group {\n > .@{ant-prefix}-input-affix-wrapper {\n &:hover,\n &-focused {\n border-right-color: @input-hover-border-color;\n }\n }\n\n > .@{ant-prefix}-input-group-addon:last-child {\n right: -1px;\n left: auto;\n .@{search-prefix}-button {\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n }\n}\n","@import (reference) '../../style/themes/index';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n// ========================= Input =========================\n.@{iconfont-css-prefix}.@{input-prefix-cls}-clear-icon,\n.@{input-prefix-cls}-clear-icon {\n margin: 0;\n color: @disabled-color;\n font-size: @font-size-sm;\n vertical-align: -1px;\n // https://github.com/ant-design/ant-design/pull/18151\n // https://codesandbox.io/s/wizardly-sun-u10br\n cursor: pointer;\n transition: color 0.3s;\n\n &:hover {\n color: @text-color-secondary;\n }\n\n &:active {\n color: @text-color;\n }\n\n &-hidden {\n visibility: hidden;\n }\n\n &-has-suffix {\n margin: 0 @input-affix-margin;\n }\n}\n\n// ======================= TextArea ========================\n.@{input-prefix-cls}-affix-wrapper.@{input-prefix-cls}-affix-wrapper-textarea-with-clear-btn {\n padding: 0;\n\n .@{input-prefix-cls}-clear-icon {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 1;\n }\n}\n","@import './mixin';\n\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n@input-wrapper-cls: @input-prefix-cls, ~'@{input-prefix-cls}-affix-wrapper';\n\neach(@input-wrapper-cls, {\n .@{value} {\n &-status-error {\n .status-color(@value, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n .status-color-common(@input-prefix-cls, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n }\n\n &-status-warning {\n .status-color(@value, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n .status-color-common(@input-prefix-cls, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n }\n }\n});\n\n.@{input-prefix-cls}-textarea {\n &-status-error,\n &-status-warning,\n &-status-success,\n &-status-validating {\n &.@{input-prefix-cls}-textarea-has-feedback {\n .@{input-prefix-cls} {\n padding-right: 24px;\n }\n }\n }\n}\n\n.@{input-prefix-cls}-group-wrapper {\n &-status-error {\n .group-status-color(@input-prefix-cls, @error-color, @error-color);\n }\n\n &-status-warning {\n .group-status-color(@input-prefix-cls, @warning-color, @warning-color);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../button/style/mixin';\n@import './mixin';\n\n@search-prefix: ~'@{ant-prefix}-input-search';\n\n.@{search-prefix} {\n .@{ant-prefix}-input {\n &:hover,\n &:focus {\n border-color: @input-hover-border-color;\n\n + .@{ant-prefix}-input-group-addon .@{search-prefix}-button:not(.@{ant-prefix}-btn-primary) {\n border-left-color: @input-hover-border-color;\n }\n }\n }\n\n .@{ant-prefix}-input-affix-wrapper {\n border-radius: 0;\n }\n\n // fix slight height diff in Firefox:\n // https://ant.design/components/auto-complete-cn/#components-auto-complete-demo-certain-category\n .@{ant-prefix}-input-lg {\n line-height: @line-height-base - 0.0002;\n }\n\n > .@{ant-prefix}-input-group {\n > .@{ant-prefix}-input-group-addon:last-child {\n left: -1px;\n padding: 0;\n border: 0;\n\n .@{search-prefix}-button {\n padding-top: 0;\n padding-bottom: 0;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n }\n\n .@{search-prefix}-button:not(.@{ant-prefix}-btn-primary) {\n color: @text-color-secondary;\n\n &.@{ant-prefix}-btn-loading::before {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n }\n }\n }\n\n &-button {\n height: @input-height-base;\n\n &:hover,\n &:focus {\n z-index: 1;\n }\n }\n\n &-large &-button {\n height: @input-height-lg;\n }\n\n &-small &-button {\n height: @input-height-sm;\n }\n\n // ===================== Compact Item Customized Styles =====================\n &.@{input-prefix-cls}-compact-item {\n &:not(.@{input-prefix-cls}-compact-item-rtl) {\n &:not(.@{input-prefix-cls}-compact-last-item) {\n .@{input-prefix-cls}-group-addon {\n .@{input-prefix-cls}-search-button {\n margin-right: -@border-width-base;\n border-radius: 0;\n }\n }\n }\n }\n\n &:not(.@{input-prefix-cls}-compact-first-item) {\n .@{input-prefix-cls},\n .@{input-prefix-cls}-affix-wrapper {\n border-radius: 0;\n }\n }\n\n > .@{input-prefix-cls}-group-addon .@{input-prefix-cls}-search-button,\n > .@{input-prefix-cls},\n .@{input-prefix-cls}-affix-wrapper {\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n > .@{input-prefix-cls}-affix-wrapper-focused {\n z-index: 2;\n }\n }\n // ===================== For RTL Compact Item Customized Styles =====================\n &.@{input-prefix-cls}-compact-item-rtl {\n &:not(.@{input-prefix-cls}-compact-last-item) {\n .@{input-prefix-cls}-group-addon:last-child {\n .@{input-prefix-cls}-search-button {\n margin-left: -@border-width-base;\n border-radius: 0;\n }\n }\n }\n }\n}\n","// Fix Input component height issue in IE11\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .@{ant-prefix}-input {\n height: @input-height-base;\n\n &-lg {\n height: @input-height-lg;\n }\n\n &-sm {\n height: @input-height-sm;\n }\n\n &-affix-wrapper {\n > input.@{ant-prefix}-input {\n height: auto;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@layout-prefix-cls: ~'@{ant-prefix}-layout';\n@layout-menu-prefix-cls: ~'@{ant-prefix}-menu';\n\n.@{layout-prefix-cls} {\n display: flex;\n flex: auto;\n flex-direction: column;\n\n /* fix firefox can't set height smaller than content on flex item */\n min-height: 0;\n background: @layout-body-background;\n\n &,\n * {\n box-sizing: border-box;\n }\n\n &&-has-sider {\n flex-direction: row;\n\n > .@{layout-prefix-cls},\n > .@{layout-prefix-cls}-content {\n width: 0; // https://segmentfault.com/a/1190000019498300\n }\n }\n\n &-header,\n &-footer {\n flex: 0 0 auto;\n }\n\n &-header {\n height: @layout-header-height;\n padding: @layout-header-padding;\n color: @layout-header-color;\n line-height: @layout-header-height;\n background: @layout-header-background;\n }\n\n &-footer {\n padding: @layout-footer-padding;\n color: @text-color;\n font-size: @font-size-base;\n background: @layout-footer-background;\n }\n\n &-content {\n flex: auto;\n\n /* fix firefox can't set height smaller than content on flex item */\n min-height: 0;\n }\n\n &-sider {\n position: relative;\n\n /* fix firefox can't set width smaller than content on flex item */\n min-width: 0;\n background: @layout-sider-background;\n transition: all 0.2s;\n\n &-children {\n height: 100%;\n margin-top: -0.1px;\n // Hack for fixing margin collaspe bug\n // https://github.com/ant-design/ant-design/issues/7967\n // solution from https://stackoverflow.com/a/33132624/3040605\n padding-top: 0.1px;\n\n .@{layout-menu-prefix-cls}.@{layout-menu-prefix-cls}-inline-collapsed {\n width: auto;\n }\n }\n\n &-has-trigger {\n padding-bottom: @layout-trigger-height;\n }\n\n &-right {\n order: 1;\n }\n\n &-trigger {\n position: fixed;\n bottom: 0;\n z-index: 1;\n height: @layout-trigger-height;\n color: @layout-trigger-color;\n line-height: @layout-trigger-height;\n text-align: center;\n background: @layout-trigger-background;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n &-zero-width {\n > * {\n overflow: hidden;\n }\n\n &-trigger {\n position: absolute;\n top: @layout-header-height;\n right: -@layout-zero-trigger-width;\n z-index: 1;\n width: @layout-zero-trigger-width;\n height: @layout-zero-trigger-height;\n color: @layout-trigger-color;\n font-size: (@layout-zero-trigger-width / 2);\n line-height: @layout-zero-trigger-height;\n text-align: center;\n background: @layout-sider-background;\n border-radius: 0 @border-radius-base @border-radius-base 0;\n cursor: pointer;\n transition: background 0.3s ease;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n transition: all 0.3s;\n content: '';\n }\n\n &:hover::after {\n background: rgba(255, 255, 255, 0.1);\n }\n\n &-right {\n left: -@layout-zero-trigger-width;\n border-radius: @border-radius-base 0 0 @border-radius-base;\n }\n }\n }\n }\n}\n\n@import './light';\n@import './rtl';\n\n@root-entry-name: default;",".@{layout-prefix-cls}-sider-light {\n background: @layout-sider-background-light;\n .@{layout-prefix-cls}-sider-trigger {\n color: @layout-trigger-color-light;\n background: @layout-trigger-background-light;\n }\n .@{layout-prefix-cls}-sider-zero-width-trigger {\n color: @layout-trigger-color-light;\n background: @layout-trigger-background-light;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@layout-prefix-cls: ~'@{ant-prefix}-layout';\n\n.@{layout-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './customize.less';\n\n@list-prefix-cls: ~'@{ant-prefix}-list';\n\n.@{list-prefix-cls} {\n .reset-component();\n\n position: relative;\n\n * {\n outline: none;\n }\n\n &-pagination {\n margin-top: @margin-lg;\n text-align: right;\n\n // https://github.com/ant-design/ant-design/issues/20037\n .@{ant-prefix}-pagination-options {\n text-align: left;\n }\n }\n\n &-more {\n margin-top: @margin-sm;\n text-align: center;\n\n button {\n padding-right: 32px;\n padding-left: 32px;\n }\n }\n\n &-spin {\n min-height: 40px;\n text-align: center;\n }\n\n &-empty-text {\n padding: @list-empty-text-padding;\n color: @disabled-color;\n font-size: @font-size-base;\n text-align: center;\n }\n\n &-items {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n &-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: @list-item-padding;\n color: @text-color;\n\n &-meta {\n display: flex;\n flex: 1;\n align-items: flex-start;\n max-width: 100%;\n\n &-avatar {\n margin-right: @list-item-meta-avatar-margin-right;\n }\n\n &-content {\n flex: 1 0;\n width: 0;\n color: @text-color;\n }\n\n &-title {\n margin-bottom: 4px;\n color: @text-color;\n font-size: @font-size-base;\n line-height: @line-height-base;\n\n > a {\n color: @text-color;\n transition: all 0.3s;\n\n &:hover {\n color: @primary-color;\n }\n }\n }\n\n &-description {\n color: @text-color-secondary;\n font-size: @list-item-meta-description-font-size;\n line-height: @line-height-base;\n }\n }\n\n &-action {\n flex: 0 0 auto;\n margin-left: 48px;\n padding: 0;\n font-size: 0;\n list-style: none;\n\n & > li {\n position: relative;\n display: inline-block;\n padding: 0 @padding-xs;\n color: @text-color-secondary;\n font-size: @font-size-base;\n line-height: @line-height-base;\n text-align: center;\n\n &:first-child {\n padding-left: 0;\n }\n }\n\n &-split {\n position: absolute;\n top: 50%;\n right: 0;\n width: 1px;\n height: 14px;\n margin-top: -7px;\n background-color: @border-color-split;\n }\n }\n }\n\n &-header {\n background: @list-header-background;\n }\n\n &-footer {\n background: @list-footer-background;\n }\n\n &-header,\n &-footer {\n padding-top: @padding-sm;\n padding-bottom: @padding-sm;\n }\n\n &-empty {\n padding: @padding-md 0;\n color: @text-color-secondary;\n font-size: 12px;\n text-align: center;\n }\n\n &-split &-item {\n border-bottom: 1px solid @border-color-split;\n\n &:last-child {\n border-bottom: none;\n }\n }\n\n &-split &-header {\n border-bottom: 1px solid @border-color-split;\n }\n\n &-split&-empty &-footer {\n border-top: 1px solid @border-color-split;\n }\n\n &-loading &-spin-nested-loading {\n min-height: 32px;\n }\n\n &-split&-something-after-last-item .@{ant-prefix}-spin-container > &-items > &-item:last-child {\n border-bottom: 1px solid @border-color-split;\n }\n\n &-lg &-item {\n padding: @list-item-padding-lg;\n }\n\n &-sm &-item {\n padding: @list-item-padding-sm;\n }\n\n &-vertical &-item {\n align-items: initial;\n\n &-main {\n display: block;\n flex: 1;\n }\n\n &-extra {\n margin-left: 40px;\n }\n\n &-meta {\n margin-bottom: @list-item-meta-margin-bottom;\n\n &-title {\n margin-bottom: @list-item-meta-title-margin-bottom;\n color: @heading-color;\n font-size: @font-size-lg;\n line-height: 24px;\n }\n }\n\n &-action {\n margin-top: @padding-md;\n margin-left: auto;\n\n > li {\n padding: 0 @padding-md;\n\n &:first-child {\n padding-left: 0;\n }\n }\n }\n }\n\n &-grid .@{ant-prefix}-col > &-item {\n display: block;\n max-width: 100%;\n margin-bottom: @margin-md;\n padding-top: 0;\n padding-bottom: 0;\n border-bottom: none;\n }\n\n // ============================ without flex ============================\n &-item-no-flex {\n display: block;\n }\n\n // Horizontal\n &:not(.@{list-prefix-cls}-vertical) {\n .@{list-prefix-cls}-item-no-flex {\n .@{list-prefix-cls}-item-action {\n float: right;\n }\n }\n }\n}\n\n@import './bordered';\n@import './responsive';\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n\n.@{list-prefix-cls}-bordered {\n border: 1px solid @border-color-base;\n border-radius: @border-radius-base;\n .@{list-prefix-cls}-header {\n padding-right: @padding-lg;\n padding-left: @padding-lg;\n }\n\n .@{list-prefix-cls}-footer {\n padding-right: @padding-lg;\n padding-left: @padding-lg;\n }\n\n .@{list-prefix-cls}-item {\n padding-right: @padding-lg;\n padding-left: @padding-lg;\n }\n\n .@{list-prefix-cls}-pagination {\n margin: @margin-md @margin-lg;\n }\n\n &.@{list-prefix-cls}-sm {\n .@{list-prefix-cls}-item {\n padding: @list-item-padding-sm;\n }\n .@{list-prefix-cls}-header,\n .@{list-prefix-cls}-footer {\n padding: @list-item-padding-sm;\n }\n }\n\n &.@{list-prefix-cls}-lg {\n .@{list-prefix-cls}-item {\n padding: @list-item-padding-lg;\n }\n .@{list-prefix-cls}-header,\n .@{list-prefix-cls}-footer {\n padding: @list-item-padding-lg;\n }\n }\n}\n","@media screen and (max-width: @screen-md) {\n .@{list-prefix-cls} {\n &-item {\n &-action {\n margin-left: 24px;\n }\n }\n }\n\n .@{list-prefix-cls}-vertical {\n .@{list-prefix-cls}-item {\n &-extra {\n margin-left: 24px;\n }\n }\n }\n}\n\n@media screen and (max-width: @screen-sm) {\n .@{list-prefix-cls} {\n &-item {\n flex-wrap: wrap;\n\n &-action {\n margin-left: 12px;\n }\n }\n }\n\n .@{list-prefix-cls}-vertical {\n .@{list-prefix-cls}-item {\n flex-wrap: wrap-reverse;\n\n &-main {\n min-width: 220px;\n }\n\n &-extra {\n margin: auto auto 16px;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './customize.less';\n\n@list-prefix-cls: ~'@{ant-prefix}-list';\n\n.@{list-prefix-cls} {\n &-rtl {\n direction: rtl;\n text-align: right;\n\n // fix for virtual scroll style attribute > (direction:ltr)\n .ReactVirtualized__List .@{list-prefix-cls}-item {\n direction: rtl;\n }\n }\n\n &-pagination {\n .@{list-prefix-cls}-rtl & {\n text-align: left;\n }\n }\n\n &-item {\n &-meta {\n &-avatar {\n .@{list-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: @list-item-meta-avatar-margin-right;\n }\n }\n }\n\n &-action {\n .@{list-prefix-cls}-rtl & {\n margin-right: 48px;\n margin-left: 0;\n }\n\n & > li:first-child {\n .@{list-prefix-cls}.@{list-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: @padding-md;\n }\n }\n\n &-split {\n .@{list-prefix-cls}-rtl & {\n right: auto;\n left: 0;\n }\n }\n }\n }\n\n &-vertical &-item {\n &-extra {\n .@{list-prefix-cls}-rtl& {\n margin-right: 40px;\n margin-left: 0;\n }\n }\n\n &-action {\n .@{list-prefix-cls}-rtl& {\n margin-right: auto;\n }\n\n > li {\n &:first-child {\n .@{list-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: @padding-md;\n }\n }\n }\n }\n }\n\n // Horizontal\n &:not(.@{list-prefix-cls}-vertical) {\n .@{list-prefix-cls}-item-no-flex {\n .@{list-prefix-cls}-item-action {\n .@{list-prefix-cls}-rtl & {\n float: left;\n }\n }\n }\n }\n}\n\n// responsive\n@media screen and (max-width: @screen-md) {\n .@{list-prefix-cls} {\n &-item {\n &-action {\n .@{list-prefix-cls}-rtl & {\n margin-right: 24px;\n margin-left: 0;\n }\n }\n }\n }\n\n .@{list-prefix-cls}-vertical {\n .@{list-prefix-cls}-item {\n &-extra {\n .@{list-prefix-cls}-rtl & {\n margin-right: 24px;\n margin-left: 0;\n }\n }\n }\n }\n}\n\n@media screen and (max-width: @screen-sm) {\n .@{list-prefix-cls} {\n &-item {\n &-action {\n .@{list-prefix-cls}-rtl & {\n margin-right: 22px;\n margin-left: 0;\n }\n }\n }\n }\n\n .@{list-prefix-cls}-vertical {\n .@{list-prefix-cls}-item {\n &-extra {\n // to override margins on rtl view\n .@{list-prefix-cls}-rtl& {\n margin: auto auto 16px;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n\n@pagination-prefix-cls: ~'@{ant-prefix}-pagination';\n\n.@{pagination-prefix-cls} {\n .reset-component();\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n &::after {\n display: block;\n clear: both;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n content: ' ';\n }\n\n &-total-text {\n display: inline-block;\n height: @pagination-item-size;\n margin-right: 8px;\n line-height: @pagination-item-size - 2px;\n vertical-align: middle;\n }\n\n &-item {\n display: inline-block;\n min-width: @pagination-item-size;\n height: @pagination-item-size;\n margin-right: 8px;\n font-family: @pagination-font-family;\n line-height: @pagination-item-size - 2px;\n text-align: center;\n vertical-align: middle;\n list-style: none;\n background-color: @pagination-item-bg;\n border: @border-width-base @border-style-base @border-color-base;\n border-radius: @border-radius-base;\n outline: 0;\n cursor: pointer;\n user-select: none;\n\n a {\n display: block;\n padding: 0 6px;\n color: @text-color;\n transition: none;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n &:hover {\n border-color: @primary-color;\n transition: all 0.3s;\n\n a {\n color: @primary-color;\n }\n }\n\n // cannot merge with `&:hover`\n // see https://github.com/ant-design/ant-design/pull/34002\n &:focus-visible {\n border-color: @primary-color;\n transition: all 0.3s;\n\n a {\n color: @primary-color;\n }\n }\n\n &-active {\n font-weight: @pagination-font-weight-active;\n background: @pagination-item-bg-active;\n border-color: @primary-color;\n\n a {\n color: @primary-color;\n }\n\n &:hover {\n border-color: @primary-5;\n }\n\n &:focus-visible {\n border-color: @primary-5;\n }\n\n &:hover a {\n color: @primary-5;\n }\n\n &:focus-visible a {\n color: @primary-5;\n }\n }\n }\n\n &-jump-prev,\n &-jump-next {\n outline: 0;\n .@{pagination-prefix-cls}-item-container {\n position: relative;\n\n .@{pagination-prefix-cls}-item-link-icon {\n color: @primary-color;\n font-size: @font-size-sm;\n letter-spacing: -1px;\n opacity: 0;\n transition: all 0.2s;\n\n &-svg {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n }\n }\n\n .@{pagination-prefix-cls}-item-ellipsis {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n margin: auto;\n color: @disabled-color;\n font-family: Arial, Helvetica, sans-serif;\n letter-spacing: 2px;\n text-align: center;\n text-indent: 0.13em;\n opacity: 1;\n transition: all 0.2s;\n }\n }\n\n &:hover {\n .@{pagination-prefix-cls}-item-link-icon {\n opacity: 1;\n }\n .@{pagination-prefix-cls}-item-ellipsis {\n opacity: 0;\n }\n }\n\n &:focus-visible {\n .@{pagination-prefix-cls}-item-link-icon {\n opacity: 1;\n }\n .@{pagination-prefix-cls}-item-ellipsis {\n opacity: 0;\n }\n }\n }\n\n &-prev,\n &-jump-prev,\n &-jump-next {\n margin-right: 8px;\n }\n\n &-prev,\n &-next,\n &-jump-prev,\n &-jump-next {\n display: inline-block;\n min-width: @pagination-item-size;\n height: @pagination-item-size;\n color: @text-color;\n font-family: @pagination-font-family;\n line-height: @pagination-item-size;\n text-align: center;\n vertical-align: middle;\n list-style: none;\n border-radius: @border-radius-base;\n cursor: pointer;\n transition: all 0.3s;\n }\n\n &-prev,\n &-next {\n font-family: Arial, Helvetica, sans-serif;\n outline: 0;\n\n button {\n color: @text-color;\n cursor: pointer;\n user-select: none;\n }\n\n &:hover button {\n border-color: @primary-5;\n }\n\n .@{pagination-prefix-cls}-item-link {\n display: block;\n width: 100%;\n height: 100%;\n padding: 0;\n font-size: 12px;\n text-align: center;\n background-color: @pagination-item-link-bg;\n border: @border-width-base @border-style-base @border-color-base;\n border-radius: @border-radius-base;\n outline: none;\n transition: all 0.3s;\n }\n\n &:focus-visible .@{pagination-prefix-cls}-item-link {\n color: @primary-color;\n border-color: @primary-color;\n }\n\n &:hover .@{pagination-prefix-cls}-item-link {\n color: @primary-color;\n border-color: @primary-color;\n }\n }\n\n &-disabled {\n &,\n &:hover {\n cursor: not-allowed;\n .@{pagination-prefix-cls}-item-link {\n color: @disabled-color;\n border-color: @border-color-base;\n cursor: not-allowed;\n }\n }\n\n &:focus-visible {\n cursor: not-allowed;\n .@{pagination-prefix-cls}-item-link {\n color: @disabled-color;\n border-color: @border-color-base;\n cursor: not-allowed;\n }\n }\n }\n\n &-slash {\n margin: 0 10px 0 5px;\n }\n\n &-options {\n display: inline-block;\n margin-left: 16px;\n vertical-align: middle;\n\n // IE11 css hack. `*::-ms-backdrop,` is a must have\n @media all and (-ms-high-contrast: none) {\n *::-ms-backdrop,\n & {\n vertical-align: top;\n }\n }\n\n &-size-changer.@{ant-prefix}-select {\n display: inline-block;\n width: auto;\n }\n\n &-quick-jumper {\n display: inline-block;\n height: @input-height-base;\n margin-left: @margin-xs;\n line-height: @input-height-base;\n vertical-align: top;\n\n input {\n .input();\n\n width: 50px;\n height: @input-height-base;\n margin: 0 8px;\n }\n }\n }\n\n &-simple &-prev,\n &-simple &-next {\n height: @pagination-item-size-sm;\n line-height: @pagination-item-size-sm;\n vertical-align: top;\n .@{pagination-prefix-cls}-item-link {\n height: @pagination-item-size-sm;\n background-color: transparent;\n border: 0;\n\n &::after {\n height: @pagination-item-size-sm;\n line-height: @pagination-item-size-sm;\n }\n }\n }\n\n &-simple &-simple-pager {\n display: inline-block;\n height: @pagination-item-size-sm;\n margin-right: 8px;\n\n input {\n box-sizing: border-box;\n height: 100%;\n margin-right: 8px;\n padding: 0 6px;\n text-align: center;\n background-color: @pagination-item-input-bg;\n border: @border-width-base @border-style-base @border-color-base;\n border-radius: @border-radius-base;\n outline: none;\n transition: border-color 0.3s;\n\n &:hover {\n border-color: @primary-color;\n }\n\n &:focus {\n border-color: @primary-color-hover;\n box-shadow: @input-outline-offset @outline-blur-size @outline-width @primary-color-outline;\n }\n\n &[disabled] {\n color: @disabled-color;\n background: @disabled-bg;\n border-color: @border-color-base;\n cursor: not-allowed;\n }\n }\n }\n\n &&-mini &-total-text,\n &&-mini &-simple-pager {\n height: @pagination-item-size-sm;\n line-height: @pagination-item-size-sm;\n }\n\n &&-mini &-item {\n min-width: @pagination-item-size-sm;\n height: @pagination-item-size-sm;\n margin: 0;\n line-height: @pagination-item-size-sm - 2px;\n }\n\n &&-mini &-item:not(&-item-active) {\n background: transparent;\n border-color: transparent;\n }\n\n &&-mini &-prev,\n &&-mini &-next {\n min-width: @pagination-item-size-sm;\n height: @pagination-item-size-sm;\n margin: 0;\n line-height: @pagination-item-size-sm;\n }\n\n &&-mini &-prev &-item-link,\n &&-mini &-next &-item-link {\n background: transparent;\n border-color: transparent;\n\n &::after {\n height: @pagination-item-size-sm;\n line-height: @pagination-item-size-sm;\n }\n }\n\n &&-mini &-jump-prev,\n &&-mini &-jump-next {\n height: @pagination-item-size-sm;\n margin-right: 0;\n line-height: @pagination-item-size-sm;\n }\n\n &&-mini &-options {\n margin-left: 2px;\n\n &-size-changer {\n top: @pagination-mini-options-size-changer-top;\n }\n\n &-quick-jumper {\n height: @pagination-item-size-sm;\n line-height: @pagination-item-size-sm;\n\n input {\n .input-sm();\n\n width: 44px;\n height: @input-height-sm;\n }\n }\n }\n\n // ============================ Disabled ============================\n &&-disabled {\n cursor: not-allowed;\n\n .@{pagination-prefix-cls}-item {\n background: @disabled-bg;\n border-color: @border-color-base;\n cursor: not-allowed;\n\n a {\n color: @disabled-color;\n background: transparent;\n border: none;\n cursor: not-allowed;\n }\n\n &-active {\n background: @pagination-item-disabled-bg-active;\n\n a {\n color: @pagination-item-disabled-color-active;\n }\n }\n }\n\n .@{pagination-prefix-cls}-item-link {\n color: @disabled-color;\n background: @disabled-bg;\n border-color: @border-color-base;\n cursor: not-allowed;\n .@{pagination-prefix-cls}-simple& {\n background: transparent;\n }\n }\n\n .@{pagination-prefix-cls}-item-link-icon {\n opacity: 0;\n }\n\n .@{pagination-prefix-cls}-item-ellipsis {\n opacity: 1;\n }\n\n .@{pagination-prefix-cls}-simple-pager {\n color: @disabled-color;\n }\n }\n}\n\n@media only screen and (max-width: @screen-lg) {\n .@{pagination-prefix-cls}-item {\n &-after-jump-prev,\n &-before-jump-next {\n display: none;\n }\n }\n}\n\n@media only screen and (max-width: @screen-sm) {\n .@{pagination-prefix-cls}-options {\n display: none;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n\n@pagination-prefix-cls: ~'@{ant-prefix}-pagination';\n\n.@{pagination-prefix-cls}-rtl {\n .@{pagination-prefix-cls}-total-text {\n margin-right: 0;\n margin-left: 8px;\n }\n\n .@{pagination-prefix-cls}-item,\n .@{pagination-prefix-cls}-prev,\n .@{pagination-prefix-cls}-jump-prev,\n .@{pagination-prefix-cls}-jump-next {\n margin-right: 0;\n margin-left: 8px;\n }\n\n .@{pagination-prefix-cls}-slash {\n margin: 0 5px 0 10px;\n }\n\n .@{pagination-prefix-cls}-options {\n margin-right: 16px;\n margin-left: 0;\n\n .@{pagination-prefix-cls}-options-size-changer.@{ant-prefix}-select {\n margin-right: 0;\n margin-left: 8px;\n }\n\n .@{pagination-prefix-cls}-options-quick-jumper {\n margin-left: 0;\n }\n }\n\n &.@{pagination-prefix-cls}-simple {\n .@{pagination-prefix-cls}-simple-pager {\n margin-right: 0;\n margin-left: 8px;\n\n input {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n }\n\n &.@{pagination-prefix-cls}.mini .@{pagination-prefix-cls}-options {\n margin-right: 2px;\n margin-left: 0;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@spin-prefix-cls: ~'@{ant-prefix}-spin';\n@spin-dot-default: @text-color-secondary;\n\n.@{spin-prefix-cls} {\n .reset-component();\n\n position: absolute;\n display: none;\n color: @primary-color;\n font-size: 0;\n text-align: center;\n vertical-align: middle;\n opacity: 0;\n transition: transform 0.3s @ease-in-out-circ;\n\n &-spinning {\n position: static;\n display: inline-block;\n opacity: 1;\n }\n\n &-nested-loading {\n position: relative;\n > div > .@{spin-prefix-cls} {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 4;\n display: block;\n width: 100%;\n height: 100%;\n max-height: 400px;\n .@{spin-prefix-cls}-dot {\n position: absolute;\n top: 50%;\n left: 50%;\n margin: -(@spin-dot-size / 2);\n }\n .@{spin-prefix-cls}-text {\n position: absolute;\n top: 50%;\n width: 100%;\n padding-top: ((@spin-dot-size - @font-size-base) / 2) + 2px;\n font-size: @font-size-base;\n text-shadow: 0 1px 2px @shadow-color-inverse;\n }\n &.@{spin-prefix-cls}-show-text .@{spin-prefix-cls}-dot {\n margin-top: -(@spin-dot-size / 2) - 10px;\n }\n }\n\n > div > .@{spin-prefix-cls}-sm {\n .@{spin-prefix-cls}-dot {\n margin: -(@spin-dot-size-sm / 2);\n }\n .@{spin-prefix-cls}-text {\n padding-top: ((@spin-dot-size-sm - @font-size-base) / 2) + 2px;\n }\n &.@{spin-prefix-cls}-show-text .@{spin-prefix-cls}-dot {\n margin-top: -(@spin-dot-size-sm / 2) - 10px;\n }\n }\n\n > div > .@{spin-prefix-cls}-lg {\n .@{spin-prefix-cls}-dot {\n margin: -(@spin-dot-size-lg / 2);\n }\n .@{spin-prefix-cls}-text {\n padding-top: ((@spin-dot-size-lg - @font-size-base) / 2) + 2px;\n }\n &.@{spin-prefix-cls}-show-text .@{spin-prefix-cls}-dot {\n margin-top: -(@spin-dot-size-lg / 2) - 10px;\n }\n }\n }\n\n &-container {\n position: relative;\n transition: opacity 0.3s;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n display: ~'none \\9';\n width: 100%;\n height: 100%;\n background: @component-background;\n opacity: 0;\n transition: all 0.3s;\n content: '';\n pointer-events: none;\n }\n }\n\n &-blur {\n clear: both;\n opacity: 0.5;\n user-select: none;\n pointer-events: none;\n\n &::after {\n opacity: 0.4;\n pointer-events: auto;\n }\n }\n\n // tip\n // ------------------------------\n &-tip {\n color: @spin-dot-default;\n }\n\n // dots\n // ------------------------------\n\n &-dot {\n position: relative;\n display: inline-block;\n font-size: @spin-dot-size;\n\n .square(1em);\n\n &-item {\n position: absolute;\n display: block;\n width: 9px;\n height: 9px;\n background-color: @primary-color;\n border-radius: 100%;\n transform: scale(0.75);\n transform-origin: 50% 50%;\n opacity: 0.3;\n animation: antSpinMove 1s infinite linear alternate;\n\n &:nth-child(1) {\n top: 0;\n left: 0;\n }\n\n &:nth-child(2) {\n top: 0;\n right: 0;\n animation-delay: 0.4s;\n }\n\n &:nth-child(3) {\n right: 0;\n bottom: 0;\n animation-delay: 0.8s;\n }\n\n &:nth-child(4) {\n bottom: 0;\n left: 0;\n animation-delay: 1.2s;\n }\n }\n\n &-spin {\n transform: rotate(0deg);\n animation: antRotate 1.2s infinite linear;\n }\n }\n\n // Sizes\n // ------------------------------\n\n // small\n &-sm &-dot {\n font-size: @spin-dot-size-sm;\n\n i {\n width: 6px;\n height: 6px;\n }\n }\n\n // large\n &-lg &-dot {\n font-size: @spin-dot-size-lg;\n\n i {\n width: 14px;\n height: 14px;\n }\n }\n\n &&-show-text &-text {\n display: block;\n }\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n /* IE10+ */\n .@{spin-prefix-cls}-blur {\n background: @component-background;\n opacity: 0.5;\n }\n}\n\n@keyframes antSpinMove {\n to {\n opacity: 1;\n }\n}\n\n@keyframes antRotate {\n to {\n transform: rotate(360deg);\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{spin-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-dot {\n &-spin {\n .@{spin-prefix-cls}-rtl & {\n transform: rotate(-45deg);\n animation-name: antRotateRtl;\n }\n }\n }\n}\n\n@keyframes antRotateRtl {\n to {\n transform: rotate(-405deg);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../input/style/mixin';\n@import './status';\n\n@mention-prefix-cls: ~'@{ant-prefix}-mentions';\n\n.@{mention-prefix-cls} {\n .reset-component();\n .input();\n\n position: relative;\n display: inline-block;\n height: auto;\n padding: 0;\n overflow: hidden;\n line-height: @line-height-base;\n white-space: pre-wrap;\n vertical-align: bottom;\n\n // =================== Status ===================\n &-disabled {\n > textarea {\n .disabled();\n }\n }\n\n &-focused {\n .active();\n }\n\n // ================= Input Area =================\n > textarea,\n &-measure {\n min-height: @input-height-base - 2px;\n margin: 0;\n padding: @input-padding-vertical-base @input-padding-horizontal-base;\n overflow: inherit;\n overflow-x: hidden;\n overflow-y: auto;\n /* stylelint-disable declaration-block-no-redundant-longhand-properties */\n font-weight: inherit;\n font-size: inherit;\n font-family: inherit;\n font-style: inherit;\n font-variant: inherit;\n font-size-adjust: inherit;\n font-stretch: inherit;\n line-height: inherit;\n /* stylelint-enable declaration-block-no-redundant-longhand-properties */\n direction: inherit;\n letter-spacing: inherit;\n white-space: inherit;\n text-align: inherit;\n vertical-align: top;\n word-wrap: break-word;\n word-break: inherit;\n tab-size: inherit;\n }\n\n > textarea {\n width: 100%;\n border: none;\n outline: none;\n resize: none;\n & when (@theme = dark) {\n background-color: transparent;\n }\n .placeholder();\n }\n\n &-measure {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n color: transparent;\n pointer-events: none;\n\n > span {\n display: inline-block;\n min-height: 1em;\n }\n }\n\n // ================== Dropdown ==================\n &-dropdown {\n // Ref select dropdown style\n .reset-component();\n\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: @zindex-dropdown;\n box-sizing: border-box;\n font-size: @font-size-base;\n font-variant: initial;\n background-color: @mentions-dropdown-bg;\n border-radius: @border-radius-base;\n outline: none;\n box-shadow: @box-shadow-base;\n\n &-hidden {\n display: none;\n }\n\n &-menu {\n max-height: 250px;\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n overflow: auto;\n list-style: none;\n outline: none;\n\n &-item {\n position: relative;\n display: block;\n min-width: 100px;\n padding: 5px @control-padding-horizontal;\n overflow: hidden;\n color: @text-color;\n font-weight: normal;\n line-height: @line-height-base;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: background 0.3s ease;\n\n &:hover {\n background-color: @item-hover-bg;\n }\n\n &:first-child {\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n\n &:last-child {\n border-radius: 0 0 @border-radius-base @border-radius-base;\n }\n\n &-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n\n &:hover {\n color: @disabled-color;\n background-color: @mentions-dropdown-menu-item-hover-bg;\n cursor: not-allowed;\n }\n }\n\n &-selected {\n color: @text-color;\n font-weight: @select-item-selected-font-weight;\n background-color: @background-color-light;\n }\n\n &-active {\n background-color: @item-hover-bg;\n }\n }\n }\n }\n\n &-suffix {\n position: absolute;\n top: 0;\n right: @input-padding-horizontal-base;\n bottom: 0;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: auto;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../input/style/mixin';\n\n@mention-prefix-cls: ~'@{ant-prefix}-mentions';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n.@{mention-prefix-cls} {\n &-status-error {\n .status-color(@mention-prefix-cls, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n .status-color-common(@input-prefix-cls, @error-color, @error-color, @input-bg, @error-color-hover, @error-color-outline);\n }\n\n &-status-warning {\n .status-color(@mention-prefix-cls, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n .status-color-common(@input-prefix-cls, @warning-color, @warning-color, @input-bg, @warning-color-hover, @warning-color-outline);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@mention-prefix-cls: ~'@{ant-prefix}-mentions';\n\n.@{mention-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@message-prefix-cls: ~'@{ant-prefix}-message';\n\n.@{message-prefix-cls} {\n .reset-component();\n\n position: fixed;\n top: 8px;\n left: 0;\n z-index: @zindex-message;\n width: 100%;\n pointer-events: none;\n\n &-notice {\n padding: 8px;\n text-align: center;\n }\n\n &-notice-content {\n display: inline-block;\n padding: @message-notice-content-padding;\n background: @message-notice-content-bg;\n border-radius: @border-radius-base;\n box-shadow: @shadow-2;\n pointer-events: all;\n }\n\n &-success .@{iconfont-css-prefix} {\n color: @success-color;\n }\n\n &-error .@{iconfont-css-prefix} {\n color: @error-color;\n }\n\n &-warning .@{iconfont-css-prefix} {\n color: @warning-color;\n }\n\n &-info .@{iconfont-css-prefix},\n &-loading .@{iconfont-css-prefix} {\n color: @info-color;\n }\n\n .@{iconfont-css-prefix} {\n position: relative;\n top: 1px;\n margin-right: 8px;\n font-size: @font-size-lg;\n }\n\n &-notice.@{ant-prefix}-move-up-leave.@{ant-prefix}-move-up-leave-active {\n animation-name: MessageMoveOut;\n animation-duration: 0.3s;\n }\n}\n\n@keyframes MessageMoveOut {\n 0% {\n max-height: 150px;\n padding: 8px;\n opacity: 1;\n }\n\n 100% {\n max-height: 0;\n padding: 0;\n opacity: 0;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@message-prefix-cls: ~'@{ant-prefix}-message';\n\n.@{message-prefix-cls}-rtl {\n direction: rtl;\n\n span {\n direction: rtl;\n }\n\n .@{iconfont-css-prefix} {\n margin-right: 0;\n margin-left: 8px;\n }\n}\n","@dialog-prefix-cls: ~'@{ant-prefix}-modal';\n\n.@{dialog-prefix-cls} {\n .reset-component();\n .modal-mask();\n\n position: relative;\n top: 100px;\n width: auto;\n max-width: calc(100vw - 32px);\n margin: 0 auto;\n padding-bottom: 24px;\n\n &-wrap {\n z-index: @zindex-modal;\n }\n\n &-title {\n margin: 0;\n color: @modal-heading-color;\n font-weight: 500;\n font-size: @modal-header-title-font-size;\n line-height: @modal-header-title-line-height;\n word-wrap: break-word;\n }\n\n &-content {\n position: relative;\n background-color: @modal-content-bg;\n background-clip: padding-box;\n border: 0;\n border-radius: @modal-border-radius;\n box-shadow: @shadow-2;\n pointer-events: auto;\n }\n\n &-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: @zindex-popup-close;\n padding: 0;\n color: @modal-close-color;\n font-weight: 700;\n line-height: 1;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n\n &-x {\n display: block;\n width: @modal-header-close-size;\n height: @modal-header-close-size;\n font-size: @font-size-lg;\n font-style: normal;\n line-height: @modal-header-close-size;\n text-align: center;\n text-transform: none;\n text-rendering: auto;\n }\n\n &:focus,\n &:hover {\n color: @icon-color-hover;\n text-decoration: none;\n }\n }\n\n &-header {\n padding: @modal-header-padding;\n color: @text-color;\n background: @modal-header-bg;\n border-bottom: @modal-header-border-width @modal-header-border-style\n @modal-header-border-color-split;\n border-radius: @modal-border-radius @modal-border-radius 0 0;\n }\n\n &-body {\n padding: @modal-body-padding;\n font-size: @font-size-base;\n line-height: @line-height-base;\n word-wrap: break-word;\n }\n\n &-footer {\n padding: @modal-footer-padding-vertical @modal-footer-padding-horizontal;\n text-align: right;\n background: @modal-footer-bg;\n border-top: @modal-footer-border-width @modal-footer-border-style\n @modal-footer-border-color-split;\n border-radius: 0 0 @modal-border-radius @modal-border-radius;\n\n .@{ant-prefix}-btn + .@{ant-prefix}-btn:not(.@{ant-prefix}-dropdown-trigger) {\n margin-bottom: 0;\n margin-left: 8px;\n }\n }\n\n &-open {\n overflow: hidden;\n }\n}\n\n.@{dialog-prefix-cls}-centered {\n text-align: center;\n\n &::before {\n display: inline-block;\n width: 0;\n height: 100%;\n vertical-align: middle;\n content: '';\n }\n .@{dialog-prefix-cls} {\n top: 0;\n display: inline-block;\n padding-bottom: 0;\n text-align: left;\n vertical-align: middle;\n }\n}\n\n@media (max-width: @screen-sm-max) {\n .@{dialog-prefix-cls} {\n max-width: calc(100vw - 16px);\n margin: 8px auto;\n }\n .@{dialog-prefix-cls}-centered {\n .@{dialog-prefix-cls} {\n flex: 1;\n }\n }\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-modal {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n pointer-events: none;\n position: relative;\n top: 100px;\n width: auto;\n max-width: calc(100vw - 32px);\n margin: 0 auto;\n padding-bottom: 24px;\n}\n.ant-modal.ant-zoom-enter,\n.ant-modal.ant-zoom-appear {\n transform: none;\n opacity: 0;\n animation-duration: 0.3s;\n user-select: none;\n}\n.ant-modal-mask {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.45);\n}\n.ant-modal-mask-hidden {\n display: none;\n}\n.ant-modal-wrap {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: auto;\n outline: 0;\n}\n.ant-modal-wrap {\n z-index: 1000;\n}\n.ant-modal-title {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n word-wrap: break-word;\n}\n.ant-modal-content {\n position: relative;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n pointer-events: auto;\n}\n.ant-modal-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 10;\n padding: 0;\n color: rgba(0, 0, 0, 0.45);\n font-weight: 700;\n line-height: 1;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n}\n.ant-modal-close-x {\n display: block;\n width: 54px;\n height: 54px;\n font-size: 16px;\n font-style: normal;\n line-height: 54px;\n text-align: center;\n text-transform: none;\n text-rendering: auto;\n}\n.ant-modal-close:focus,\n.ant-modal-close:hover {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n}\n.ant-modal-header {\n padding: 16px 24px;\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n}\n.ant-modal-body {\n padding: 24px;\n font-size: 14px;\n line-height: 1.5715;\n word-wrap: break-word;\n}\n.ant-modal-footer {\n padding: 10px 16px;\n text-align: right;\n background: transparent;\n border-top: 1px solid #f0f0f0;\n border-radius: 0 0 2px 2px;\n}\n.ant-modal-footer .ant-btn + .ant-btn:not(.ant-dropdown-trigger) {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-open {\n overflow: hidden;\n}\n.ant-modal-centered {\n text-align: center;\n}\n.ant-modal-centered::before {\n display: inline-block;\n width: 0;\n height: 100%;\n vertical-align: middle;\n content: '';\n}\n.ant-modal-centered .ant-modal {\n top: 0;\n display: inline-block;\n padding-bottom: 0;\n text-align: left;\n vertical-align: middle;\n}\n@media (max-width: 767px) {\n .ant-modal {\n max-width: calc(100vw - 16px);\n margin: 8px auto;\n }\n .ant-modal-centered .ant-modal {\n flex: 1;\n }\n}\n.ant-modal-confirm .ant-modal-header {\n display: none;\n}\n.ant-modal-confirm .ant-modal-body {\n padding: 32px 32px 24px;\n}\n.ant-modal-confirm-body-wrapper::before {\n display: table;\n content: '';\n}\n.ant-modal-confirm-body-wrapper::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-modal-confirm-body .ant-modal-confirm-title {\n display: block;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 1.4;\n}\n.ant-modal-confirm-body .ant-modal-confirm-content {\n margin-top: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-modal-confirm-body > .anticon {\n float: left;\n margin-right: 16px;\n font-size: 22px;\n}\n.ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-left: 38px;\n}\n.ant-modal-confirm .ant-modal-confirm-btns {\n margin-top: 24px;\n text-align: right;\n}\n.ant-modal-confirm .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-confirm-error .ant-modal-confirm-body > .anticon {\n color: #ff4d4f;\n}\n.ant-modal-confirm-warning .ant-modal-confirm-body > .anticon,\n.ant-modal-confirm-confirm .ant-modal-confirm-body > .anticon {\n color: #faad14;\n}\n.ant-modal-confirm-info .ant-modal-confirm-body > .anticon {\n color: #1890ff;\n}\n.ant-modal-confirm-success .ant-modal-confirm-body > .anticon {\n color: #52c41a;\n}\n.ant-modal-confirm .ant-zoom-leave .ant-modal-confirm-btns {\n pointer-events: none;\n}\n.ant-modal-wrap-rtl {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-close {\n right: initial;\n left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-footer {\n text-align: left;\n}\n.ant-modal-wrap-rtl .ant-modal-footer .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-right: 38px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns {\n text-align: left;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl.ant-modal-centered .ant-modal {\n text-align: right;\n}\n","@import '../../style/mixins/index';\n\n@confirm-prefix-cls: ~'@{ant-prefix}-modal-confirm';\n\n.@{confirm-prefix-cls} {\n .@{ant-prefix}-modal-header {\n display: none;\n }\n\n .@{ant-prefix}-modal-body {\n padding: @modal-confirm-body-padding;\n }\n\n &-body-wrapper {\n .clearfix();\n }\n\n &-body {\n .@{confirm-prefix-cls}-title {\n display: block;\n // create BFC to avoid\n // https://user-images.githubusercontent.com/507615/37702510-ba844e06-2d2d-11e8-9b67-8e19be57f445.png\n overflow: hidden;\n color: @heading-color;\n font-weight: 500;\n font-size: @modal-confirm-title-font-size;\n line-height: 1.4;\n }\n\n .@{confirm-prefix-cls}-content {\n margin-top: 8px;\n color: @text-color;\n font-size: @font-size-base;\n }\n\n > .@{iconfont-css-prefix} {\n float: left;\n margin-right: 16px;\n font-size: 22px;\n\n // `content` after `icon` should set marginLeft\n + .@{confirm-prefix-cls}-title + .@{confirm-prefix-cls}-content {\n margin-left: 38px;\n }\n }\n }\n\n .@{confirm-prefix-cls}-btns {\n margin-top: 24px;\n text-align: right;\n\n .@{ant-prefix}-btn + .@{ant-prefix}-btn {\n margin-bottom: 0;\n margin-left: 8px;\n }\n }\n\n &-error &-body > .@{iconfont-css-prefix} {\n color: @error-color;\n }\n\n &-warning &-body > .@{iconfont-css-prefix},\n &-confirm &-body > .@{iconfont-css-prefix} {\n color: @warning-color;\n }\n\n &-info &-body > .@{iconfont-css-prefix} {\n color: @info-color;\n }\n\n &-success &-body > .@{iconfont-css-prefix} {\n color: @success-color;\n }\n\n // https://github.com/ant-design/ant-design/issues/37329\n .@{ant-prefix}-zoom-leave .@{confirm-prefix-cls}-btns {\n pointer-events: none;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@dialog-prefix-cls: ~'@{ant-prefix}-modal';\n@confirm-prefix-cls: ~'@{ant-prefix}-modal-confirm';\n@dialog-wrap-rtl-cls: ~'@{dialog-prefix-cls}-wrap-rtl';\n\n.@{dialog-prefix-cls} {\n &-wrap {\n &-rtl {\n direction: rtl;\n }\n }\n\n &-close {\n .@{dialog-wrap-rtl-cls} & {\n right: initial;\n left: 0;\n }\n }\n\n &-footer {\n .@{dialog-wrap-rtl-cls} & {\n text-align: left;\n }\n .@{ant-prefix}-btn + .@{ant-prefix}-btn {\n .@{dialog-wrap-rtl-cls} & {\n margin-right: 8px;\n margin-left: 0;\n }\n }\n }\n\n &-confirm {\n &-body {\n .@{dialog-wrap-rtl-cls} & {\n direction: rtl;\n }\n > .@{iconfont-css-prefix} {\n .@{dialog-wrap-rtl-cls} & {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n }\n + .@{confirm-prefix-cls}-title + .@{confirm-prefix-cls}-content {\n .@{dialog-wrap-rtl-cls} & {\n margin-right: 38px;\n margin-left: 0;\n }\n }\n }\n }\n\n &-btns {\n .@{dialog-wrap-rtl-cls} & {\n text-align: left;\n }\n .@{ant-prefix}-btn + .@{ant-prefix}-btn {\n .@{dialog-wrap-rtl-cls} & {\n margin-right: 8px;\n margin-left: 0;\n }\n }\n }\n }\n}\n\n.@{dialog-prefix-cls}-centered {\n .@{dialog-prefix-cls} {\n .@{dialog-wrap-rtl-cls}& {\n text-align: right;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n.popover-customize-bg(@notification-prefix-cls, @popover-background);\n\n@notification-prefix-cls: ~'@{ant-prefix}-notification';\n@notification-width: 384px;\n@notification-padding: @notification-padding-vertical @notification-padding-horizontal;\n@notification-margin-bottom: 16px;\n@notification-margin-edge: 24px;\n\n.@{notification-prefix-cls} {\n .reset-component();\n\n position: fixed;\n z-index: @zindex-notification;\n margin-right: @notification-margin-edge;\n\n &-close-icon {\n font-size: @font-size-base;\n cursor: pointer;\n }\n\n &-hook-holder {\n position: relative;\n }\n\n &-notice {\n position: relative;\n width: @notification-width;\n max-width: ~'calc(100vw - @{notification-margin-edge} * 2)';\n margin-bottom: @notification-margin-bottom;\n margin-left: auto;\n padding: @notification-padding;\n overflow: hidden;\n line-height: @line-height-base;\n word-wrap: break-word;\n background: @notification-bg;\n border-radius: @border-radius-base;\n box-shadow: @shadow-2;\n\n .@{notification-prefix-cls}-top &,\n .@{notification-prefix-cls}-bottom & {\n margin-right: auto;\n margin-left: auto;\n }\n\n .@{notification-prefix-cls}-topLeft &,\n .@{notification-prefix-cls}-bottomLeft & {\n margin-right: auto;\n margin-left: 0;\n }\n\n &-message {\n margin-bottom: 8px;\n color: @heading-color;\n font-size: @font-size-lg;\n line-height: 24px;\n\n // https://github.com/ant-design/ant-design/issues/5846#issuecomment-296244140\n &-single-line-auto-margin {\n display: block;\n width: ~'calc(@{notification-width} - @{notification-padding-horizontal} * 2 - 24px - 48px - 100%)';\n max-width: 4px;\n background-color: transparent;\n pointer-events: none;\n\n &::before {\n display: block;\n content: '';\n }\n }\n }\n\n &-description {\n font-size: @font-size-base;\n }\n\n &-closable &-message {\n padding-right: 24px;\n }\n\n &-with-icon &-message {\n margin-bottom: 4px;\n margin-left: 48px;\n font-size: @font-size-lg;\n }\n\n &-with-icon &-description {\n margin-left: 48px;\n font-size: @font-size-base;\n }\n\n // Icon & color style in different selector level\n // https://github.com/ant-design/ant-design/issues/16503\n // https://github.com/ant-design/ant-design/issues/15512\n &-icon {\n position: absolute;\n margin-left: 4px;\n font-size: 24px;\n line-height: 24px;\n }\n\n .@{iconfont-css-prefix}&-icon {\n &-success {\n color: @success-color;\n }\n\n &-info {\n color: @info-color;\n }\n\n &-warning {\n color: @warning-color;\n }\n\n &-error {\n color: @error-color;\n }\n }\n\n &-close {\n position: absolute;\n top: 16px;\n right: 22px;\n color: @text-color-secondary;\n outline: none;\n\n &:hover {\n & when (@theme = dark) {\n color: fade(@white, 85%);\n }\n & when not (@theme = dark) {\n color: shade(@text-color-secondary, 40%);\n }\n }\n }\n\n &-btn {\n float: right;\n margin-top: 16px;\n }\n }\n\n .notification-fade-effect {\n animation-duration: 0.24s;\n animation-timing-function: @ease-in-out;\n animation-fill-mode: both;\n }\n\n &-fade-enter,\n &-fade-appear {\n .notification-fade-effect();\n\n opacity: 0;\n animation-play-state: paused;\n }\n\n &-fade-leave {\n .notification-fade-effect();\n\n animation-duration: 0.2s;\n animation-play-state: paused;\n }\n\n &-fade-enter&-fade-enter-active,\n &-fade-appear&-fade-appear-active {\n animation-name: NotificationFadeIn;\n animation-play-state: running;\n }\n\n &-fade-leave&-fade-leave-active {\n animation-name: NotificationFadeOut;\n animation-play-state: running;\n }\n}\n\n@keyframes NotificationFadeIn {\n 0% {\n left: @notification-width;\n opacity: 0;\n }\n\n 100% {\n left: 0;\n opacity: 1;\n }\n}\n\n@keyframes NotificationFadeOut {\n 0% {\n max-height: 150px;\n margin-bottom: @notification-margin-bottom;\n opacity: 1;\n }\n\n 100% {\n max-height: 0;\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n opacity: 0;\n }\n}\n\n@import './rtl';\n@import './placement';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@notification-prefix-cls: ~'@{ant-prefix}-notification';\n\n.@{notification-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-notice {\n &-closable &-message {\n .@{notification-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 24px;\n }\n }\n\n &-with-icon &-message {\n .@{notification-prefix-cls}-rtl & {\n margin-right: 48px;\n margin-left: 0;\n }\n }\n\n &-with-icon &-description {\n .@{notification-prefix-cls}-rtl & {\n margin-right: 48px;\n margin-left: 0;\n }\n }\n\n &-icon {\n .@{notification-prefix-cls}-rtl & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n\n &-close {\n .@{notification-prefix-cls}-rtl & {\n right: auto;\n left: 22px;\n }\n }\n\n &-btn {\n .@{notification-prefix-cls}-rtl & {\n float: left;\n }\n }\n }\n}\n",".@{notification-prefix-cls} {\n &-top,\n &-bottom {\n margin-right: 0;\n margin-left: 0;\n }\n\n &-top {\n .@{notification-prefix-cls}-fade-enter.@{notification-prefix-cls}-fade-enter-active,\n .@{notification-prefix-cls}-fade-appear.@{notification-prefix-cls}-fade-appear-active {\n animation-name: NotificationTopFadeIn;\n }\n }\n\n &-bottom {\n .@{notification-prefix-cls}-fade-enter.@{notification-prefix-cls}-fade-enter-active,\n .@{notification-prefix-cls}-fade-appear.@{notification-prefix-cls}-fade-appear-active {\n animation-name: NotificationBottomFadeIn;\n }\n }\n\n &-topLeft,\n &-bottomLeft {\n margin-right: 0;\n margin-left: @notification-margin-edge;\n\n .@{notification-prefix-cls}-fade-enter.@{notification-prefix-cls}-fade-enter-active,\n .@{notification-prefix-cls}-fade-appear.@{notification-prefix-cls}-fade-appear-active {\n animation-name: NotificationLeftFadeIn;\n }\n }\n}\n\n@keyframes NotificationTopFadeIn {\n 0% {\n margin-top: -100%;\n opacity: 0;\n }\n\n 100% {\n margin-top: 0;\n opacity: 1;\n }\n}\n\n@keyframes NotificationBottomFadeIn {\n 0% {\n margin-bottom: -100%;\n opacity: 0;\n }\n\n 100% {\n margin-bottom: 0;\n opacity: 1;\n }\n}\n\n@keyframes NotificationLeftFadeIn {\n 0% {\n right: @notification-width;\n opacity: 0;\n }\n\n 100% {\n right: 0;\n opacity: 1;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@pageheader-prefix-cls: ~'@{ant-prefix}-page-header';\n\n.@{pageheader-prefix-cls} {\n .reset-component();\n position: relative;\n padding: @page-header-padding-vertical @page-header-padding;\n background-color: @component-background;\n\n &-ghost {\n background-color: @page-header-ghost-bg;\n }\n\n &.has-breadcrumb {\n padding-top: @page-header-padding-breadcrumb;\n }\n\n &.has-footer {\n padding-bottom: 0;\n }\n\n &-back {\n margin-right: @margin-md;\n font-size: 16px;\n line-height: 1;\n\n &-button {\n .operation-unit();\n color: @page-header-back-color;\n }\n }\n\n .@{ant-prefix}-divider-vertical {\n height: 14px;\n margin: 0 @margin-sm;\n vertical-align: middle;\n }\n\n .@{ant-prefix}-breadcrumb + &-heading {\n margin-top: @margin-xs;\n }\n\n .text-overflow-ellipsis() {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-heading {\n display: flex;\n justify-content: space-between;\n\n &-left {\n display: flex;\n align-items: center;\n margin: (@margin-xs / 2) 0;\n overflow: hidden;\n }\n\n &-title {\n margin-right: @margin-sm;\n margin-bottom: 0;\n color: @heading-color;\n font-weight: 600;\n font-size: @page-header-heading-title;\n line-height: @height-base;\n .text-overflow-ellipsis();\n }\n\n .@{ant-prefix}-avatar {\n margin-right: @margin-sm;\n }\n\n &-sub-title {\n margin-right: @margin-sm;\n color: @text-color-secondary;\n font-size: @page-header-heading-sub-title;\n line-height: @line-height-base;\n .text-overflow-ellipsis();\n }\n\n &-extra {\n margin: (@margin-xs / 2) 0;\n white-space: nowrap;\n\n > * {\n white-space: unset;\n }\n }\n }\n\n &-content {\n padding-top: @page-header-content-padding-vertical;\n }\n\n &-footer {\n margin-top: @margin-md;\n .@{ant-prefix}-tabs {\n > .@{ant-prefix}-tabs-nav {\n margin: 0;\n\n &::before {\n border: none;\n }\n }\n\n .@{ant-prefix}-tabs-tab {\n padding-top: @padding-xs;\n padding-bottom: @padding-xs;\n font-size: @page-header-tabs-tab-font-size;\n }\n }\n }\n\n &-compact &-heading {\n flex-wrap: wrap;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".operation-unit() {\n color: @link-color;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n\n &:focus-visible,\n &:hover {\n color: @link-hover-color;\n }\n\n &:active {\n color: @link-active-color;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@pageheader-prefix-cls: ~'@{ant-prefix}-page-header';\n\n.@{pageheader-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-back {\n .@{pageheader-prefix-cls}-rtl & {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n }\n }\n\n &-heading {\n &-title {\n .@{pageheader-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: @margin-sm;\n }\n }\n\n .@{ant-prefix}-avatar {\n .@{pageheader-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: @margin-sm;\n }\n }\n\n &-sub-title {\n .@{pageheader-prefix-cls}-rtl & {\n float: right;\n margin-right: 0;\n margin-left: 12px;\n }\n }\n\n &-tags {\n .@{pageheader-prefix-cls}-rtl & {\n float: right;\n }\n }\n\n &-extra {\n .@{pageheader-prefix-cls}-rtl & {\n float: left;\n }\n\n > * {\n .@{pageheader-prefix-cls}-rtl & {\n margin-right: @margin-sm;\n margin-left: 0;\n }\n }\n\n > *:first-child {\n .@{pageheader-prefix-cls}-rtl & {\n margin-right: 0;\n }\n }\n }\n }\n\n &-footer {\n .@{ant-prefix}-tabs-bar {\n .@{ant-prefix}-tabs-nav {\n .@{pageheader-prefix-cls}-rtl & {\n float: right;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@popconfirm-prefix-cls: ~'@{ant-prefix}-popconfirm';\n\n.@{popconfirm-prefix-cls} {\n z-index: @zindex-popoconfirm;\n}\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@progress-prefix-cls: ~'@{ant-prefix}-progress';\n\n.@{progress-prefix-cls} {\n .reset-component();\n\n display: inline-block;\n\n &-line {\n position: relative;\n width: 100%;\n font-size: @font-size-base;\n }\n\n &-steps {\n display: inline-block;\n\n &-outer {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n\n &-item {\n flex-shrink: 0;\n min-width: 2px;\n margin-right: 2px;\n background: @progress-steps-item-bg;\n transition: all 0.3s;\n\n &-active {\n background: @progress-default-color;\n }\n }\n }\n\n &-small&-line,\n &-small&-line &-text .@{iconfont-css-prefix} {\n font-size: @font-size-sm;\n }\n\n &-outer {\n display: inline-block;\n width: 100%;\n margin-right: 0;\n padding-right: 0;\n .@{progress-prefix-cls}-show-info & {\n margin-right: ~'calc(-2em - 8px)';\n padding-right: ~'calc(2em + 8px)';\n }\n }\n\n &-inner {\n position: relative;\n display: inline-block;\n width: 100%;\n overflow: hidden;\n vertical-align: middle;\n background-color: @progress-remaining-color;\n border-radius: @progress-radius;\n }\n\n &-circle-trail {\n stroke: @progress-remaining-color;\n }\n\n &-circle-path {\n animation: ~'@{ant-prefix}-progress-appear' 0.3s;\n }\n\n &-inner:not(.@{ant-prefix}-progress-circle-gradient) {\n .@{ant-prefix}-progress-circle-path {\n stroke: @progress-default-color;\n }\n }\n\n &-success-bg,\n &-bg {\n position: relative;\n background-color: @progress-default-color;\n border-radius: @progress-radius;\n transition: all 0.4s @ease-out-circ 0s;\n }\n\n &-success-bg {\n position: absolute;\n top: 0;\n left: 0;\n background-color: @success-color;\n }\n\n &-text {\n display: inline-block;\n width: 2em;\n margin-left: 8px;\n color: @progress-info-text-color;\n font-size: @progress-text-font-size;\n line-height: 1;\n white-space: nowrap;\n text-align: left;\n vertical-align: middle;\n word-break: normal;\n .@{iconfont-css-prefix} {\n font-size: @font-size-base;\n }\n }\n\n &-status-active {\n .@{progress-prefix-cls}-bg::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: @component-background;\n border-radius: 10px;\n opacity: 0;\n animation: ~'@{ant-prefix}-progress-active' 2.4s @ease-out-quint infinite;\n content: '';\n }\n }\n\n &-status-exception {\n .@{progress-prefix-cls}-bg {\n background-color: @error-color;\n }\n .@{progress-prefix-cls}-text {\n color: @error-color;\n }\n }\n\n &-status-exception &-inner:not(.@{progress-prefix-cls}-circle-gradient) {\n .@{progress-prefix-cls}-circle-path {\n stroke: @error-color;\n }\n }\n\n &-status-success {\n .@{progress-prefix-cls}-bg {\n background-color: @success-color;\n }\n .@{progress-prefix-cls}-text {\n color: @success-color;\n }\n }\n\n &-status-success &-inner:not(.@{progress-prefix-cls}-circle-gradient) {\n .@{progress-prefix-cls}-circle-path {\n stroke: @success-color;\n }\n }\n\n &-circle &-inner {\n position: relative;\n line-height: 1;\n background-color: transparent;\n }\n\n &-circle &-text {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n margin: 0;\n padding: 0;\n color: @progress-text-color;\n font-size: @progress-circle-text-font-size;\n line-height: 1;\n white-space: normal;\n text-align: center;\n transform: translate(-50%, -50%);\n\n .@{iconfont-css-prefix} {\n font-size: (14 / 12em);\n }\n }\n\n &-circle&-status-exception {\n .@{progress-prefix-cls}-text {\n color: @error-color;\n }\n }\n\n &-circle&-status-success {\n .@{progress-prefix-cls}-text {\n color: @success-color;\n }\n }\n}\n\n@keyframes ~\"@{ant-prefix}-progress-active\" {\n 0% {\n transform: translateX(-100%) scaleX(0);\n opacity: 0.1;\n }\n\n 20% {\n transform: translateX(-100%) scaleX(0);\n opacity: 0.5;\n }\n\n 100% {\n transform: translateX(0) scaleX(1);\n opacity: 0;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@progress-prefix-cls: ~'@{ant-prefix}-progress';\n\n.@{progress-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-outer {\n .@{progress-prefix-cls}-show-info & {\n .@{progress-prefix-cls}-rtl& {\n margin-right: 0;\n margin-left: ~'calc(-2em - 8px)';\n padding-right: 0;\n padding-left: ~'calc(2em + 8px)';\n }\n }\n }\n\n &-success-bg {\n .@{progress-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n\n &-line &-text,\n &-steps &-text {\n .@{progress-prefix-cls}-rtl& {\n margin-right: 8px;\n margin-left: 0;\n text-align: right;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@rate-prefix-cls: ~'@{ant-prefix}-rate';\n\n.@{rate-prefix-cls} {\n .reset-component();\n\n display: inline-block;\n margin: 0;\n padding: 0;\n color: @rate-star-color;\n font-size: @rate-star-size;\n line-height: unset;\n list-style: none;\n outline: none;\n\n &-disabled &-star {\n cursor: default;\n\n > div:hover {\n transform: scale(1);\n }\n }\n\n &-star {\n position: relative;\n display: inline-block;\n color: inherit;\n cursor: pointer;\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n\n > div {\n transition: all 0.3s, outline 0s;\n\n &:hover {\n transform: @rate-star-hover-scale;\n }\n\n &:focus {\n outline: 0;\n }\n\n &:focus-visible {\n outline: 1px dashed @rate-star-color;\n transform: @rate-star-hover-scale;\n }\n }\n\n &-first,\n &-second {\n color: @rate-star-bg;\n transition: all 0.3s;\n user-select: none;\n .@{iconfont-css-prefix} {\n vertical-align: middle;\n }\n }\n\n &-first {\n position: absolute;\n top: 0;\n left: 0;\n width: 50%;\n height: 100%;\n overflow: hidden;\n opacity: 0;\n }\n\n &-half &-first,\n &-half &-second {\n opacity: 1;\n }\n\n &-half &-first,\n &-full &-second {\n color: inherit;\n }\n }\n\n &-text {\n display: inline-block;\n margin: 0 8px;\n font-size: @font-size-base;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{rate-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-star {\n &:not(:last-child) {\n .@{rate-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n\n &-first {\n .@{rate-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@result-prefix-cls: ~'@{ant-prefix}-result';\n\n.@{result-prefix-cls} {\n padding: 48px 32px;\n // status color\n &-success &-icon > .@{iconfont-css-prefix} {\n color: @success-color;\n }\n\n &-error &-icon > .@{iconfont-css-prefix} {\n color: @error-color;\n }\n\n &-info &-icon > .@{iconfont-css-prefix} {\n color: @info-color;\n }\n\n &-warning &-icon > .@{iconfont-css-prefix} {\n color: @warning-color;\n }\n\n // Exception Status image\n &-image {\n width: 250px;\n height: 295px;\n margin: auto;\n }\n\n &-icon {\n margin-bottom: 24px;\n text-align: center;\n\n > .@{iconfont-css-prefix} {\n font-size: @result-icon-font-size;\n }\n }\n\n &-title {\n color: @heading-color;\n font-size: @result-title-font-size;\n line-height: 1.8;\n text-align: center;\n }\n\n &-subtitle {\n color: @text-color-secondary;\n font-size: @result-subtitle-font-size;\n line-height: 1.6;\n text-align: center;\n }\n\n &-extra {\n margin: @result-extra-margin;\n text-align: center;\n\n > * {\n margin-right: 8px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n &-content {\n margin-top: 24px;\n padding: 24px 40px;\n background-color: @background-color-light;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@result-prefix-cls: ~'@{ant-prefix}-result';\n\n.@{result-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-extra {\n > * {\n .@{result-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n\n &:last-child {\n .@{result-prefix-cls}-rtl & {\n margin-left: 0;\n }\n }\n }\n }\n}\n","// mixins\n.segmented-disabled-item {\n &,\n &:hover,\n &:focus {\n color: @disabled-color;\n cursor: not-allowed;\n }\n}\n\n.segmented-item-selected {\n background-color: @segmented-selected-bg;\n border-radius: @border-radius-base;\n box-shadow: 0 2px 8px -2px fade(@black, 5%), 0 1px 4px -1px fade(@black, 7%),\n 0 0 1px 0 fade(@black, 8%);\n}\n\n.segmented-text-ellipsis {\n overflow: hidden;\n // handle text ellipsis\n white-space: nowrap;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './mixins.less';\n\n@segmented-prefix-cls: ~'@{ant-prefix}-segmented';\n\n@segmented-container-padding: 2px;\n\n.@{segmented-prefix-cls} {\n .reset-component();\n display: inline-block;\n padding: @segmented-container-padding;\n color: @segmented-label-color;\n background-color: @segmented-bg;\n border-radius: @border-radius-base;\n transition: all 0.3s @ease-in-out;\n\n &-group {\n position: relative;\n display: flex;\n align-items: stretch;\n justify-items: flex-start;\n width: 100%;\n }\n\n // block styles\n &&-block {\n display: flex;\n }\n\n &&-block &-item {\n flex: 1;\n min-width: 0;\n }\n\n // hover/focus styles\n &:not(&-disabled) {\n &:hover,\n &:focus {\n background-color: @segmented-hover-bg;\n }\n }\n\n // item styles\n &-item {\n position: relative;\n text-align: center;\n cursor: pointer;\n transition: color 0.3s @ease-in-out;\n\n &-selected {\n .segmented-item-selected();\n color: @segmented-label-hover-color;\n }\n\n &:hover,\n &:focus {\n color: @segmented-label-hover-color;\n }\n\n &-label {\n min-height: @input-height-base - @segmented-container-padding * 2;\n padding: 0 @input-padding-horizontal-base;\n line-height: @input-height-base - @segmented-container-padding * 2;\n .segmented-text-ellipsis();\n }\n\n // syntactic sugar to add `icon` for Segmented Item\n &-icon + * {\n margin-left: (@margin-sm / 2);\n }\n\n &-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n opacity: 0;\n pointer-events: none;\n }\n }\n\n // size styles\n &&-lg &-item-label {\n min-height: @input-height-lg - @segmented-container-padding * 2;\n padding: 0 @input-padding-horizontal-lg;\n font-size: @font-size-lg;\n line-height: @input-height-lg - @segmented-container-padding * 2;\n }\n\n &&-sm &-item-label {\n min-height: @input-height-sm - @segmented-container-padding * 2;\n padding: 0 @input-padding-horizontal-sm;\n line-height: @input-height-sm - @segmented-container-padding * 2;\n }\n\n // disabled styles\n &-item-disabled {\n .segmented-disabled-item();\n }\n\n // thumb styles\n &-thumb {\n .segmented-item-selected();\n\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 100%;\n padding: 4px 0;\n }\n\n // transition effect when `appear-active`\n &-thumb-motion-appear-active {\n transition: transform 0.3s @ease-in-out, width 0.3s @ease-in-out;\n will-change: transform, width;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@segmented-prefix-cls: ~'@{ant-prefix}-segmented';\n\n.@{segmented-prefix-cls} {\n &&-rtl {\n direction: rtl;\n }\n\n &&-rtl &-item-icon {\n margin-right: 0;\n margin-left: 6px;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@slider-prefix-cls: ~'@{ant-prefix}-slider';\n\n.@{slider-prefix-cls} {\n .reset-component();\n\n position: relative;\n height: 12px;\n margin: @slider-margin;\n padding: 4px 0;\n cursor: pointer;\n touch-action: none;\n\n .vertical();\n\n &-with-marks {\n margin-bottom: 28px;\n }\n\n &-rail {\n position: absolute;\n width: 100%;\n height: 4px;\n background-color: @slider-rail-background-color;\n border-radius: @border-radius-base;\n transition: background-color 0.3s;\n }\n\n &-track {\n position: absolute;\n height: 4px;\n background-color: @slider-track-background-color;\n border-radius: @border-radius-base;\n transition: background-color 0.3s;\n }\n\n &-handle {\n position: absolute;\n width: @slider-handle-size;\n height: @slider-handle-size;\n margin-top: @slider-handle-margin-top;\n background-color: @slider-handle-background-color;\n border: solid @slider-handle-border-width @slider-handle-color;\n border-radius: 50%;\n box-shadow: @slider-handle-shadow;\n cursor: pointer;\n transition: border-color 0.3s, box-shadow 0.6s,\n transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);\n\n // &-dragging&-dragging&-dragging {\n // border-color: @slider-handle-color-focus;\n // box-shadow: 0 0 0 5px @slider-handle-color-focus-shadow;\n // }\n &-dragging {\n z-index: 1;\n }\n\n &:focus {\n border-color: @slider-handle-color-focus;\n outline: none;\n box-shadow: 0 0 0 5px @slider-handle-color-focus-shadow;\n }\n\n &.@{ant-prefix}-tooltip-open {\n border-color: @slider-handle-color-tooltip-open;\n }\n\n &::after {\n position: absolute;\n top: -6px;\n right: -6px;\n bottom: -6px;\n left: -6px;\n content: '';\n }\n }\n\n &:hover {\n .@{slider-prefix-cls}-rail {\n background-color: @slider-rail-background-color-hover;\n }\n .@{slider-prefix-cls}-track {\n background-color: @slider-track-background-color-hover;\n }\n .@{slider-prefix-cls}-handle:not(.@{ant-prefix}-tooltip-open) {\n border-color: @slider-handle-color-hover;\n }\n }\n\n &-mark {\n position: absolute;\n top: 14px;\n left: 0;\n width: 100%;\n font-size: @font-size-base;\n }\n\n &-mark-text {\n position: absolute;\n display: inline-block;\n color: @text-color-secondary;\n text-align: center;\n word-break: keep-all;\n cursor: pointer;\n user-select: none;\n\n &-active {\n color: @text-color;\n }\n }\n\n &-step {\n position: absolute;\n width: 100%;\n height: 4px;\n background: transparent;\n pointer-events: none;\n }\n\n &-dot {\n position: absolute;\n top: -2px;\n width: 8px;\n height: 8px;\n background-color: @component-background;\n border: 2px solid @slider-dot-border-color;\n border-radius: 50%;\n cursor: pointer;\n\n &-active {\n border-color: @slider-dot-border-color-active;\n }\n }\n\n &-disabled {\n cursor: not-allowed;\n\n .@{slider-prefix-cls}-rail {\n background-color: @slider-rail-background-color !important;\n }\n\n .@{slider-prefix-cls}-track {\n background-color: @slider-disabled-color !important;\n }\n\n .@{slider-prefix-cls}-handle,\n .@{slider-prefix-cls}-dot {\n background-color: @component-background;\n border-color: @slider-disabled-color !important;\n box-shadow: none;\n cursor: not-allowed;\n }\n\n .@{slider-prefix-cls}-mark-text,\n .@{slider-prefix-cls}-dot {\n cursor: not-allowed !important;\n }\n }\n}\n\n.vertical() {\n &-vertical {\n width: 12px;\n height: 100%;\n margin: 6px 10px;\n padding: 0 4px;\n\n .@{slider-prefix-cls}-rail {\n width: 4px;\n height: 100%;\n }\n\n .@{slider-prefix-cls}-track {\n width: 4px;\n }\n\n .@{slider-prefix-cls}-handle {\n margin-top: -6px; // we chould consider border width as well: (10 + 2 ) / 2\n margin-left: @slider-handle-margin-left;\n }\n\n .@{slider-prefix-cls}-mark {\n top: 0;\n left: 12px;\n width: 18px;\n height: 100%;\n }\n\n .@{slider-prefix-cls}-mark-text {\n left: 4px;\n white-space: nowrap;\n }\n\n .@{slider-prefix-cls}-step {\n width: 4px;\n height: 100%;\n }\n\n .@{slider-prefix-cls}-dot {\n top: auto;\n margin-left: -2px;\n }\n }\n\n &-tooltip {\n // https://github.com/ant-design/ant-design/issues/20014\n .@{ant-prefix}-tooltip-inner {\n min-width: unset;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@slider-prefix-cls: ~'@{ant-prefix}-slider';\n\n.@{slider-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-mark {\n .@{slider-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n}\n\n.vertical() {\n &-vertical {\n .@{slider-prefix-cls}-handle {\n .@{slider-prefix-cls}-rtl& {\n margin-right: -5px;\n margin-left: 0;\n }\n }\n\n .@{slider-prefix-cls}-mark {\n .@{slider-prefix-cls}-rtl& {\n right: 12px;\n left: auto;\n }\n }\n\n .@{slider-prefix-cls}-mark-text {\n .@{slider-prefix-cls}-rtl& {\n right: 4px;\n left: auto;\n }\n }\n\n .@{slider-prefix-cls}-dot {\n .@{slider-prefix-cls}-rtl& {\n right: 2px;\n left: auto;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@statistic-prefix-cls: ~'@{ant-prefix}-statistic';\n\n.@{statistic-prefix-cls} {\n .reset-component();\n\n &-title {\n margin-bottom: @margin-xss;\n color: @text-color-secondary;\n font-size: @statistic-title-font-size;\n }\n\n &-skeleton {\n padding-top: @padding-md;\n }\n\n &-content {\n color: @heading-color;\n font-size: @statistic-content-font-size;\n font-family: @statistic-font-family;\n\n &-value {\n display: inline-block;\n direction: ltr;\n }\n\n &-prefix,\n &-suffix {\n display: inline-block;\n }\n\n &-prefix {\n margin-right: 4px;\n }\n\n &-suffix {\n margin-left: 4px;\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;",".@{statistic-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-content {\n &-prefix {\n .@{statistic-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n\n &-suffix {\n .@{statistic-prefix-cls}-rtl & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@steps-prefix-cls: ~'@{ant-prefix}-steps';\n@process-icon-color: @primary-color;\n@process-title-color: @heading-color;\n@process-description-color: @text-color;\n@process-icon-text-color: @text-color-inverse;\n@wait-icon-color: @disabled-color;\n@wait-title-color: @text-color-secondary;\n@wait-description-color: @wait-title-color;\n@wait-tail-color: @process-tail-color;\n@finish-icon-color: @process-icon-color;\n@finish-title-color: @text-color;\n@finish-description-color: @text-color-secondary;\n@finish-tail-color: @primary-color;\n@error-icon-color: @error-color;\n@error-title-color: @error-color;\n@error-description-color: @error-color;\n@error-tail-color: @wait-tail-color;\n@steps-nav-active-color: @primary-color;\n\n.@{steps-prefix-cls} {\n .reset-component();\n\n display: flex;\n width: 100%;\n font-size: 0;\n text-align: initial;\n}\n\n.@{steps-prefix-cls}-item {\n position: relative;\n display: inline-block;\n flex: 1;\n overflow: hidden;\n vertical-align: top;\n\n &-container {\n outline: none;\n }\n\n &:last-child {\n flex: none;\n }\n\n &:last-child > &-container > &-tail,\n &:last-child > &-container > &-content > &-title::after {\n display: none;\n }\n\n &-icon,\n &-content {\n display: inline-block;\n vertical-align: top;\n }\n\n &-icon {\n width: @steps-icon-size;\n height: @steps-icon-size;\n margin: @steps-icon-margin;\n font-size: @steps-icon-font-size;\n font-family: @font-family;\n line-height: @steps-icon-size;\n text-align: center;\n border: @border-width-base @border-style-base @wait-icon-color;\n border-radius: @steps-icon-size;\n transition: background-color 0.3s, border-color 0.3s;\n\n .@{steps-prefix-cls}-icon {\n position: relative;\n top: @steps-icon-top;\n color: @primary-color;\n line-height: 1;\n }\n }\n\n &-tail {\n position: absolute;\n top: 12px;\n left: 0;\n width: 100%;\n padding: 0 10px;\n\n &::after {\n display: inline-block;\n width: 100%;\n height: 1px;\n background: @border-color-split;\n border-radius: 1px;\n transition: background 0.3s;\n content: '';\n }\n }\n\n &-title {\n position: relative;\n display: inline-block;\n padding-right: 16px;\n color: @text-color;\n font-size: @font-size-lg;\n line-height: @steps-title-line-height;\n\n &::after {\n position: absolute;\n top: (@steps-title-line-height / 2);\n left: 100%;\n display: block;\n width: 9999px;\n height: 1px;\n background: @wait-tail-color;\n content: '';\n }\n }\n\n &-subtitle {\n display: inline;\n margin-left: 8px;\n color: @text-color-secondary;\n font-weight: normal;\n font-size: @font-size-base;\n }\n\n &-description {\n color: @text-color-secondary;\n font-size: @font-size-base;\n }\n .step-item-status(wait);\n .step-item-status(process);\n\n &-process > &-container > &-icon {\n background: @process-icon-color;\n .@{steps-prefix-cls}-icon {\n color: @process-icon-text-color;\n }\n }\n\n &-process > &-container > &-title {\n font-weight: 500;\n }\n .step-item-status(finish);\n .step-item-status(error);\n\n &.@{steps-prefix-cls}-next-error .@{steps-prefix-cls}-item-title::after {\n background: @error-icon-color;\n }\n\n &-disabled {\n cursor: not-allowed;\n }\n}\n\n// ===================== Clickable =====================\n.@{steps-prefix-cls} .@{steps-prefix-cls}-item {\n &:not(.@{steps-prefix-cls}-item-active) {\n & > .@{steps-prefix-cls}-item-container[role='button'] {\n cursor: pointer;\n\n .@{steps-prefix-cls}-item {\n &-title,\n &-subtitle,\n &-description,\n &-icon .@{steps-prefix-cls}-icon {\n transition: color 0.3s;\n }\n }\n\n &:hover {\n .@{steps-prefix-cls}-item {\n &-title,\n &-subtitle,\n &-description {\n color: @primary-color;\n }\n }\n }\n }\n\n &:not(.@{steps-prefix-cls}-item-process) {\n & > .@{steps-prefix-cls}-item-container[role='button']:hover {\n .@{steps-prefix-cls}-item {\n &-icon {\n border-color: @primary-color;\n\n .@{steps-prefix-cls}-icon {\n color: @primary-color;\n }\n }\n }\n }\n }\n }\n}\n\n.@{steps-prefix-cls}-horizontal:not(.@{steps-prefix-cls}-label-vertical) {\n .@{steps-prefix-cls}-item {\n padding-left: 16px;\n white-space: nowrap;\n\n &:first-child {\n padding-left: 0;\n }\n &:last-child .@{steps-prefix-cls}-item-title {\n padding-right: 0;\n }\n\n &-tail {\n display: none;\n }\n\n &-description {\n max-width: @steps-description-max-width;\n white-space: normal;\n }\n }\n}\n\n.step-item-status(@status) {\n @icon-color: '@{status}-icon-color';\n @title-color: '@{status}-title-color';\n @description-color: '@{status}-description-color';\n @tail-color: '@{status}-tail-color';\n &-@{status} &-icon {\n background-color: @steps-background;\n border-color: @@icon-color;\n > .@{steps-prefix-cls}-icon {\n color: @@icon-color;\n .@{steps-prefix-cls}-icon-dot {\n background: @@icon-color;\n }\n }\n }\n &-@{status} > &-container > &-content > &-title {\n color: @@title-color;\n\n &::after {\n background-color: @@tail-color;\n }\n }\n &-@{status} > &-container > &-content > &-description {\n color: @@description-color;\n }\n &-@{status} > &-container > &-tail::after {\n background-color: @@tail-color;\n }\n}\n\n@import './custom-icon';\n@import './small';\n@import './vertical';\n@import './label-placement';\n@import './progress-dot';\n@import './nav';\n@import './rtl';\n@import './progress.less';\n\n@root-entry-name: default;",".@{steps-prefix-cls}-item-custom {\n > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-icon {\n height: auto;\n background: none;\n border: 0;\n > .@{steps-prefix-cls}-icon {\n top: @steps-icon-custom-top;\n left: 0.5px;\n width: @steps-icon-custom-size;\n height: @steps-icon-custom-size;\n font-size: @steps-icon-custom-font-size;\n line-height: @steps-icon-custom-size;\n }\n }\n &.@{steps-prefix-cls}-item-process {\n .@{steps-prefix-cls}-item-icon > .@{steps-prefix-cls}-icon {\n color: @process-icon-color;\n }\n }\n}\n\n// Only adjust horizontal customize icon width\n.@{steps-prefix-cls} {\n &:not(.@{steps-prefix-cls}-vertical) {\n .@{steps-prefix-cls}-item-custom {\n .@{steps-prefix-cls}-item-icon {\n width: auto;\n background: none;\n }\n }\n }\n}\n",".@{steps-prefix-cls}-small {\n &.@{steps-prefix-cls}-horizontal:not(.@{steps-prefix-cls}-label-vertical)\n .@{steps-prefix-cls}-item {\n padding-left: 12px;\n\n &:first-child {\n padding-left: 0;\n }\n }\n .@{steps-prefix-cls}-item-icon {\n width: @steps-small-icon-size;\n height: @steps-small-icon-size;\n margin: @steps-small-icon-margin;\n font-size: @font-size-sm;\n line-height: @steps-small-icon-size;\n text-align: center;\n border-radius: @steps-small-icon-size;\n }\n .@{steps-prefix-cls}-item-title {\n padding-right: 12px;\n font-size: @font-size-base;\n line-height: @steps-small-icon-size;\n\n &::after {\n top: (@steps-small-icon-size / 2);\n }\n }\n .@{steps-prefix-cls}-item-description {\n color: @text-color-secondary;\n font-size: @font-size-base;\n }\n .@{steps-prefix-cls}-item-tail {\n top: 8px;\n }\n .@{steps-prefix-cls}-item-custom .@{steps-prefix-cls}-item-icon {\n width: inherit;\n height: inherit;\n line-height: inherit;\n background: none;\n border: 0;\n border-radius: 0;\n > .@{steps-prefix-cls}-icon {\n font-size: @steps-small-icon-size;\n line-height: @steps-small-icon-size;\n transform: none;\n }\n }\n}\n",".@{steps-prefix-cls}-vertical {\n display: flex;\n flex-direction: column;\n\n > .@{steps-prefix-cls}-item {\n display: block;\n flex: 1 0 auto;\n padding-left: 0;\n overflow: visible;\n\n .@{steps-prefix-cls}-item-icon {\n float: left;\n margin-right: @steps-vertical-icon-width;\n }\n\n .@{steps-prefix-cls}-item-content {\n display: block;\n min-height: 48px;\n overflow: hidden;\n }\n\n .@{steps-prefix-cls}-item-title {\n line-height: @steps-icon-size;\n }\n\n .@{steps-prefix-cls}-item-description {\n padding-bottom: 12px;\n }\n }\n\n > .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n position: absolute;\n top: 0;\n left: @steps-vertical-tail-width - 1; // line width\n width: 1px;\n height: 100%;\n padding: @steps-icon-size + 6px 0 6px;\n\n &::after {\n width: 1px;\n height: 100%;\n }\n }\n\n > .@{steps-prefix-cls}-item:not(:last-child)\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n display: block;\n }\n\n > .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-content\n > .@{steps-prefix-cls}-item-title {\n &::after {\n display: none;\n }\n }\n\n &.@{steps-prefix-cls}-small .@{steps-prefix-cls}-item-container {\n .@{steps-prefix-cls}-item-tail {\n position: absolute;\n top: 0;\n left: @steps-vertical-tail-width-sm - 1; // line width\n padding: @steps-small-icon-size + 6px 0 6px;\n }\n .@{steps-prefix-cls}-item-title {\n line-height: @steps-small-icon-size;\n }\n }\n}\n",".@{steps-prefix-cls}-label-vertical {\n .@{steps-prefix-cls}-item {\n overflow: visible;\n\n &-tail {\n margin-left: 58px;\n padding: 3.5px 24px;\n }\n\n &-content {\n display: block;\n width: ((@steps-icon-size / 2) + 42px) * 2;\n margin-top: 8px;\n text-align: center;\n }\n\n &-icon {\n display: inline-block;\n margin-left: 42px;\n }\n\n &-title {\n padding-right: 0;\n padding-left: 0;\n\n &::after {\n display: none;\n }\n }\n\n &-subtitle {\n display: block;\n margin-bottom: 4px;\n margin-left: 0;\n line-height: @line-height-base;\n }\n }\n &.@{steps-prefix-cls}-small:not(.@{steps-prefix-cls}-dot) {\n .@{steps-prefix-cls}-item {\n &-icon {\n margin-left: 46px;\n }\n }\n }\n}\n",".@{steps-prefix-cls}-dot,\n.@{steps-prefix-cls}-dot.@{steps-prefix-cls}-small {\n .@{steps-prefix-cls}-item {\n &-title {\n line-height: @line-height-base;\n }\n\n &-tail {\n top: @steps-dot-top;\n width: 100%;\n margin: 0 0 0 (@steps-description-max-width / 2);\n padding: 0;\n\n &::after {\n width: ~'calc(100% - 20px)';\n height: 3px;\n margin-left: 12px;\n }\n }\n &:first-child .@{steps-prefix-cls}-icon-dot {\n left: 2px;\n }\n\n &-icon {\n width: @steps-dot-size;\n height: @steps-dot-size;\n margin-left: 67px;\n padding-right: 0;\n line-height: @steps-dot-size;\n background: transparent;\n border: 0;\n\n .@{steps-prefix-cls}-icon-dot {\n position: relative;\n float: left;\n width: 100%;\n height: 100%;\n border-radius: 100px;\n transition: all 0.3s;\n\n /* expand hover area */\n &::after {\n position: absolute;\n top: -12px;\n left: -26px;\n width: 60px;\n height: 32px;\n background: fade(@black, 0.1%);\n content: '';\n }\n }\n }\n\n &-content {\n width: @steps-description-max-width;\n }\n &-process .@{steps-prefix-cls}-item-icon {\n position: relative;\n top: -1px;\n width: @steps-current-dot-size;\n height: @steps-current-dot-size;\n line-height: @steps-current-dot-size;\n background: none;\n }\n &-process .@{steps-prefix-cls}-icon {\n &:first-child .@{steps-prefix-cls}-icon-dot {\n left: 0;\n }\n }\n }\n}\n\n.@{steps-prefix-cls}-vertical.@{steps-prefix-cls}-dot {\n .@{steps-prefix-cls}-item-icon {\n margin-top: 13px;\n margin-left: 0;\n background: none;\n }\n\n // https://github.com/ant-design/ant-design/issues/18354\n .@{steps-prefix-cls}-item > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n top: 6.5px;\n left: -9px;\n margin: 0;\n padding: 22px 0 4px;\n }\n\n &.@{steps-prefix-cls}-small {\n .@{steps-prefix-cls}-item-icon {\n margin-top: 10px;\n }\n\n .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n top: 3.5px;\n }\n }\n\n .@{steps-prefix-cls}-item:first-child .@{steps-prefix-cls}-icon-dot {\n left: 0;\n }\n .@{steps-prefix-cls}-item-content {\n width: inherit;\n }\n .@{steps-prefix-cls}-item-process\n .@{steps-prefix-cls}-item-container\n .@{steps-prefix-cls}-item-icon\n .@{steps-prefix-cls}-icon-dot {\n top: -1px;\n left: -1px;\n }\n}\n",".@{steps-prefix-cls}-navigation {\n padding-top: 12px;\n\n &.@{steps-prefix-cls}-small {\n .@{steps-prefix-cls}-item {\n &-container {\n margin-left: -12px;\n }\n }\n }\n\n .@{steps-prefix-cls}-item {\n overflow: visible;\n text-align: center;\n\n &-container {\n display: inline-block;\n height: 100%;\n margin-left: -16px;\n padding-bottom: 12px;\n text-align: left;\n transition: opacity 0.3s;\n\n .@{steps-prefix-cls}-item-content {\n max-width: @steps-nav-content-max-width;\n }\n\n .@{steps-prefix-cls}-item-title {\n max-width: 100%;\n padding-right: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &::after {\n display: none;\n }\n }\n }\n\n &:not(.@{steps-prefix-cls}-item-active) {\n .@{steps-prefix-cls}-item-container[role='button'] {\n cursor: pointer;\n\n &:hover {\n opacity: 0.85;\n }\n }\n }\n\n &:last-child {\n flex: 1;\n\n &::after {\n display: none;\n }\n }\n\n &::after {\n position: absolute;\n top: 50%;\n left: 100%;\n display: inline-block;\n width: 12px;\n height: 12px;\n margin-top: -14px;\n margin-left: -2px;\n border: 1px solid @steps-nav-arrow-color;\n border-bottom: none;\n border-left: none;\n transform: rotate(45deg);\n content: '';\n }\n\n &::before {\n position: absolute;\n bottom: 0;\n left: 50%;\n display: inline-block;\n width: 0;\n height: 2px;\n background-color: @steps-nav-active-color;\n transition: width 0.3s, left 0.3s;\n transition-timing-function: ease-out;\n content: '';\n }\n }\n\n .@{steps-prefix-cls}-item.@{steps-prefix-cls}-item-active::before {\n left: 0;\n width: 100%;\n }\n}\n\n.@{steps-prefix-cls}-navigation.@{steps-prefix-cls}-vertical {\n > .@{steps-prefix-cls}-item {\n margin-right: 0 !important;\n\n &::before {\n display: none;\n }\n &.@{steps-prefix-cls}-item-active::before {\n top: 0;\n right: 0;\n left: unset;\n display: block;\n width: 3px;\n height: calc(100% - 24px);\n }\n\n &::after {\n position: relative;\n top: -2px;\n left: 50%;\n display: block;\n width: 8px;\n height: 8px;\n margin-bottom: 8px;\n text-align: center;\n transform: rotate(135deg);\n }\n > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n visibility: hidden;\n }\n }\n}\n\n.@{steps-prefix-cls}-navigation.@{steps-prefix-cls}-horizontal {\n > .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n visibility: hidden;\n }\n}\n",".@{steps-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n}\n\n.@{steps-prefix-cls}-item {\n &-icon {\n .@{steps-prefix-cls}.@{steps-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n\n &-tail {\n .@{steps-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n\n &-title {\n .@{steps-prefix-cls}-rtl & {\n padding-right: 0;\n padding-left: 16px;\n }\n\n .@{steps-prefix-cls}-item-subtitle {\n .@{steps-prefix-cls}-rtl & {\n float: left;\n margin-right: 8px;\n margin-left: 0;\n }\n }\n\n &::after {\n .@{steps-prefix-cls}-rtl & {\n right: 100%;\n left: auto;\n }\n }\n }\n}\n\n.@{steps-prefix-cls}-horizontal:not(.@{steps-prefix-cls}-label-vertical) {\n .@{steps-prefix-cls}-item {\n .@{steps-prefix-cls}-rtl& {\n padding-right: 16px;\n padding-left: 0;\n }\n\n &:first-child {\n .@{steps-prefix-cls}-rtl& {\n padding-right: 0;\n }\n }\n\n &:last-child .@{steps-prefix-cls}-item-title {\n .@{steps-prefix-cls}-rtl& {\n padding-left: 0;\n }\n }\n }\n}\n\n// custom-icon\n.@{steps-prefix-cls}-item-custom {\n .@{steps-prefix-cls}-item-icon {\n > .@{steps-prefix-cls}-icon {\n .@{steps-prefix-cls}-rtl & {\n right: 0.5px;\n left: auto;\n }\n }\n }\n}\n\n// nav\n.@{steps-prefix-cls}-navigation {\n &.@{steps-prefix-cls}-small {\n .@{steps-prefix-cls}-item {\n &-container {\n .@{steps-prefix-cls}-rtl& {\n margin-right: -12px;\n margin-left: 0;\n }\n }\n }\n }\n\n .@{steps-prefix-cls}-item {\n &-container {\n .@{steps-prefix-cls}-rtl& {\n margin-right: -16px;\n margin-left: 0;\n text-align: right;\n }\n\n .@{steps-prefix-cls}-item-title {\n .@{steps-prefix-cls}-rtl& {\n padding-left: 0;\n }\n }\n }\n\n &::after {\n .@{steps-prefix-cls}-rtl& {\n right: 100%;\n left: auto;\n margin-right: -2px;\n margin-left: 0;\n transform: rotate(225deg);\n }\n }\n }\n}\n\n// small\n.@{steps-prefix-cls}-small {\n &.@{steps-prefix-cls}-horizontal:not(.@{steps-prefix-cls}-label-vertical)\n .@{steps-prefix-cls}-item {\n .@{steps-prefix-cls}-rtl& {\n padding-right: 12px;\n padding-left: 0;\n }\n\n &:first-child {\n .@{steps-prefix-cls}-rtl& {\n padding-right: 0;\n }\n }\n }\n\n .@{steps-prefix-cls}-item-title {\n .@{steps-prefix-cls}-rtl& {\n padding-right: 0;\n padding-left: 12px;\n }\n }\n}\n\n// vertical\n.@{steps-prefix-cls}-vertical {\n > .@{steps-prefix-cls}-item {\n .@{steps-prefix-cls}-item-icon {\n .@{steps-prefix-cls}-rtl& {\n float: right;\n margin-right: 0;\n margin-left: @steps-vertical-icon-width;\n }\n }\n }\n\n > .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n .@{steps-prefix-cls}-rtl& {\n right: @steps-vertical-tail-width;\n left: auto;\n }\n }\n\n &.@{steps-prefix-cls}-small .@{steps-prefix-cls}-item-container {\n .@{steps-prefix-cls}-item-tail {\n .@{steps-prefix-cls}-rtl& {\n right: @steps-vertical-tail-width-sm;\n left: auto;\n }\n }\n }\n}\n\n// label\n.@{steps-prefix-cls}-label-vertical {\n .@{steps-prefix-cls}-item {\n &-title {\n .@{steps-prefix-cls}-rtl& {\n padding-left: 0;\n }\n }\n }\n}\n\n// progress-dot\n.@{steps-prefix-cls}-dot,\n.@{steps-prefix-cls}-dot.@{steps-prefix-cls}-small {\n .@{steps-prefix-cls}-item {\n &-tail {\n .@{steps-prefix-cls}-rtl& {\n margin: 0 (@steps-description-max-width / 2) 0 0;\n }\n\n &::after {\n .@{steps-prefix-cls}-rtl& {\n margin-right: 12px;\n margin-left: 0;\n }\n }\n }\n\n &:first-child .@{steps-prefix-cls}-icon-dot {\n .@{steps-prefix-cls}-rtl& {\n right: 2px;\n left: auto;\n }\n }\n\n &-icon {\n .@{steps-prefix-cls}-rtl& {\n margin-right: 67px;\n margin-left: 0;\n }\n\n .@{steps-prefix-cls}-icon-dot {\n .@{steps-prefix-cls}-rtl& {\n float: right;\n }\n\n /* expand hover area */\n &::after {\n .@{steps-prefix-cls}-rtl& {\n right: -26px;\n left: auto;\n }\n }\n }\n }\n }\n}\n\n.@{steps-prefix-cls}-vertical.@{steps-prefix-cls}-dot {\n .@{steps-prefix-cls}-item-icon {\n .@{steps-prefix-cls}-rtl& {\n margin-right: 0;\n margin-left: 16px;\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/18354\n .@{steps-prefix-cls}-item > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n .@{steps-prefix-cls}-rtl& {\n right: -9px;\n left: auto;\n }\n }\n\n .@{steps-prefix-cls}-item:first-child .@{steps-prefix-cls}-icon-dot {\n .@{steps-prefix-cls}-rtl& {\n right: 0;\n left: auto;\n }\n }\n\n .@{steps-prefix-cls}-item-process .@{steps-prefix-cls}-icon-dot {\n .@{steps-prefix-cls}-rtl& {\n right: -2px;\n left: auto;\n }\n }\n}\n\n// RTL Steps with progress\n.@{steps-prefix-cls}-rtl.@{steps-prefix-cls}-with-progress {\n &.@{steps-prefix-cls}-vertical > .@{steps-prefix-cls}-item {\n padding-right: 4px;\n > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n right: @steps-vertical-tail-width + 3;\n }\n }\n\n &.@{steps-prefix-cls}-small.@{steps-prefix-cls}-vertical > .@{steps-prefix-cls}-item {\n > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n right: @steps-vertical-tail-width-sm + 3;\n }\n }\n\n &.@{steps-prefix-cls}-horizontal.@{steps-prefix-cls}-label-horizontal {\n .@{steps-prefix-cls}-item:first-child {\n padding-right: 4px;\n padding-left: 0;\n\n &.@{steps-prefix-cls}-item-active {\n padding-right: 4px;\n }\n }\n }\n}\n","@progress-prefix-cls: ~'@{ant-prefix}-progress';\n\n.@{steps-prefix-cls}-with-progress {\n .@{steps-prefix-cls}-item {\n padding-top: 4px;\n\n & > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {\n top: 4px;\n left: @steps-vertical-tail-width + 3;\n }\n }\n\n &,\n &.@{steps-prefix-cls}-small {\n &.@{steps-prefix-cls}-horizontal .@{steps-prefix-cls}-item:first-child {\n padding-bottom: 4px;\n padding-left: 4px;\n }\n }\n\n &.@{steps-prefix-cls}-small\n > .@{steps-prefix-cls}-item\n > .@{steps-prefix-cls}-item-container\n > .@{steps-prefix-cls}-item-tail {\n left: @steps-vertical-tail-width-sm + 3;\n }\n\n &.@{steps-prefix-cls}-vertical .@{steps-prefix-cls}-item {\n padding-left: 4px;\n }\n\n &.@{steps-prefix-cls}-label-vertical {\n .@{steps-prefix-cls}-item .@{steps-prefix-cls}-item-tail {\n top: 14px !important;\n }\n }\n\n .@{steps-prefix-cls}-item-icon {\n position: relative;\n\n .@{progress-prefix-cls} {\n position: absolute;\n top: -5px;\n right: -5px;\n bottom: -5px;\n left: -5px;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@switch-prefix-cls: ~'@{ant-prefix}-switch';\n@switch-duration: 0.2s;\n\n@switch-pin-size: @switch-height - 4px;\n@switch-sm-pin-size: @switch-sm-height - 4px;\n\n.@{switch-prefix-cls} {\n .reset-component();\n\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: @switch-min-width;\n height: @switch-height;\n line-height: @switch-height;\n vertical-align: middle;\n background-color: @disabled-color;\n border: 0;\n border-radius: 100px;\n cursor: pointer;\n transition: all @switch-duration;\n user-select: none;\n\n &:focus {\n outline: 0;\n box-shadow: 0 0 0 2px fade(@disabled-color, 10%);\n }\n\n &-checked:focus {\n box-shadow: 0 0 0 2px @primary-1;\n }\n\n &:focus:hover {\n box-shadow: none;\n }\n\n &-checked {\n background-color: @switch-color;\n }\n\n &-loading,\n &-disabled {\n cursor: not-allowed;\n opacity: @switch-disabled-opacity;\n\n * {\n box-shadow: none;\n cursor: not-allowed;\n }\n }\n\n // ========================= Inner ==========================\n &-inner {\n display: block;\n margin: 0 @switch-inner-margin-min 0 @switch-inner-margin-max;\n color: @text-color-inverse;\n font-size: @font-size-sm;\n transition: margin @switch-duration;\n }\n\n &-checked &-inner {\n margin: 0 @switch-inner-margin-max 0 @switch-inner-margin-min;\n }\n\n // ========================= Handle =========================\n &-handle {\n position: absolute;\n top: @switch-padding;\n left: @switch-padding;\n width: @switch-pin-size;\n height: @switch-pin-size;\n transition: all @switch-duration ease-in-out;\n\n &::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: @switch-bg;\n border-radius: (@switch-pin-size / 2);\n box-shadow: 0 2px 4px 0 @switch-shadow-color;\n transition: all @switch-duration ease-in-out;\n content: '';\n }\n }\n\n &-checked &-handle {\n left: calc(100% - @switch-pin-size - @switch-padding);\n }\n\n &:not(&-disabled):active {\n .@{switch-prefix-cls}-handle::before {\n right: -30%;\n left: 0;\n }\n\n &.@{switch-prefix-cls}-checked {\n .@{switch-prefix-cls}-handle::before {\n right: 0;\n left: -30%;\n }\n }\n }\n\n // ======================== Loading =========================\n &-loading-icon.@{iconfont-css-prefix} {\n position: relative;\n top: ((@switch-pin-size - @font-size-base) / 2);\n color: rgba(0, 0, 0, 0.65);\n vertical-align: top;\n }\n\n &-checked &-loading-icon {\n color: @switch-color;\n }\n\n // ========================== Size ==========================\n &-small {\n min-width: @switch-sm-min-width;\n height: @switch-sm-height;\n line-height: @switch-sm-height;\n\n .@{switch-prefix-cls}-inner {\n margin: 0 @switch-sm-inner-margin-min 0 @switch-sm-inner-margin-max;\n font-size: @font-size-sm;\n }\n\n .@{switch-prefix-cls}-handle {\n width: @switch-sm-pin-size;\n height: @switch-sm-pin-size;\n }\n\n .@{switch-prefix-cls}-loading-icon {\n top: ((@switch-sm-pin-size - 9px) / 2);\n font-size: 9px;\n }\n\n &.@{switch-prefix-cls}-checked {\n .@{switch-prefix-cls}-inner {\n margin: 0 @switch-sm-inner-margin-max 0 @switch-sm-inner-margin-min;\n }\n\n .@{switch-prefix-cls}-handle {\n left: calc(100% - @switch-sm-pin-size - @switch-padding);\n }\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@switch-prefix-cls: ~'@{ant-prefix}-switch';\n\n@switch-pin-size: @switch-height - 4px;\n@switch-sm-pin-size: @switch-sm-height - 4px;\n\n.@{switch-prefix-cls}-rtl {\n direction: rtl;\n\n .@{switch-prefix-cls}-inner {\n margin: 0 @switch-inner-margin-max 0 @switch-inner-margin-min;\n }\n\n .@{switch-prefix-cls}-handle {\n right: @switch-padding;\n left: auto;\n }\n\n &:not(&-disabled):active {\n .@{switch-prefix-cls}-handle::before {\n right: 0;\n left: -30%;\n }\n\n &.@{switch-prefix-cls}-checked {\n .@{switch-prefix-cls}-handle::before {\n right: -30%;\n left: 0;\n }\n }\n }\n\n &.@{switch-prefix-cls}-checked {\n .@{switch-prefix-cls}-inner {\n margin: 0 @switch-inner-margin-min 0 @switch-inner-margin-max;\n }\n\n .@{switch-prefix-cls}-handle {\n right: calc(100% - @switch-pin-size - @switch-padding);\n }\n }\n\n &.@{switch-prefix-cls}-small {\n &.@{switch-prefix-cls}-checked {\n .@{switch-prefix-cls}-handle {\n right: calc(100% - @switch-sm-pin-size - @switch-padding);\n }\n }\n }\n}\n","@import (reference) '../../style/themes/index';\n\n@table-prefix-cls: ~'@{ant-prefix}-table';\n\n.table-size(@size, @padding-vertical, @padding-horizontal, @font-size) {\n .@{table-prefix-cls}.@{table-prefix-cls}-@{size} {\n font-size: @font-size;\n\n .@{table-prefix-cls}-title,\n .@{table-prefix-cls}-footer,\n .@{table-prefix-cls}-thead > tr > th,\n .@{table-prefix-cls}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td {\n padding: @padding-vertical @padding-horizontal;\n }\n\n .@{table-prefix-cls}-filter-trigger {\n margin-right: -(@padding-horizontal / 2);\n }\n\n .@{table-prefix-cls}-expanded-row-fixed {\n margin: -@padding-vertical -@padding-horizontal;\n }\n\n .@{table-prefix-cls}-tbody {\n // ========================= Nest Table ===========================\n .@{table-prefix-cls}-wrapper:only-child {\n .@{table-prefix-cls} {\n margin: -@padding-vertical -@padding-horizontal -@padding-vertical (@table-expand-column-width -\n @padding-horizontal);\n }\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/35167\n .@{table-prefix-cls}-selection-column {\n padding-inline-start: (@padding-horizontal / 4);\n }\n }\n}\n\n// ================================================================\n// = Middle =\n// ================================================================\n.table-size(~'middle', @table-padding-vertical-md, @table-padding-horizontal-md, @table-font-size-md);\n\n// ================================================================\n// = Small =\n// ================================================================\n.table-size(~'small', @table-padding-vertical-sm, @table-padding-horizontal-sm, @table-font-size-sm);\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import './size';\n@import './bordered';\n\n@table-prefix-cls: ~'@{ant-prefix}-table';\n@tree-prefix-cls: ~'@{ant-prefix}-tree';\n@dropdown-prefix-cls: ~'@{ant-prefix}-dropdown';\n@descriptions-prefix-cls: ~'@{ant-prefix}-descriptions';\n@table-header-icon-color: #bfbfbf;\n@table-header-icon-color-hover: darken(@table-header-icon-color, 10%);\n@table-sticky-zindex: calc(@zindex-table-fixed + 1);\n@table-sticky-scroll-bar-active-bg: fade(@table-sticky-scroll-bar-bg, 80%);\n@table-filter-dropdown-max-height: 264px;\n@table-expand-column-width: 48px;\n\n.@{table-prefix-cls}-wrapper {\n clear: both;\n max-width: 100%;\n .clearfix();\n}\n\n.@{table-prefix-cls} {\n .reset-component();\n position: relative;\n font-size: @table-font-size;\n background: @table-bg;\n border-radius: @table-border-radius-base;\n\n // https://github.com/ant-design/ant-design/issues/17611\n table {\n width: 100%;\n text-align: left;\n border-radius: @table-border-radius-base @table-border-radius-base 0 0;\n border-collapse: separate;\n border-spacing: 0;\n }\n\n // ============================= Cell =============================\n &-thead > tr > th,\n &-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td {\n position: relative;\n padding: @table-padding-vertical @table-padding-horizontal;\n overflow-wrap: break-word;\n }\n\n &-cell-ellipsis {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n word-break: keep-all;\n\n // Fixed first or last should special process\n &.@{table-prefix-cls}-cell-fix-left-last,\n &.@{table-prefix-cls}-cell-fix-right-first {\n overflow: visible;\n\n .@{table-prefix-cls}-cell-content {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n .@{table-prefix-cls}-column-title {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n }\n }\n\n // ============================ Title =============================\n &-title {\n padding: @table-padding-vertical @table-padding-horizontal;\n }\n\n // ============================ Footer ============================\n &-footer {\n padding: @table-padding-vertical @table-padding-horizontal;\n color: @table-footer-color;\n background: @table-footer-bg;\n }\n\n // ============================ Header ============================\n &-thead {\n > tr {\n > th {\n position: relative;\n color: @table-header-color;\n font-weight: 500;\n text-align: left;\n background: @table-header-bg;\n border-bottom: @border-width-base @border-style-base @table-border-color;\n transition: background 0.3s ease;\n\n &[colspan]:not([colspan='1']) {\n text-align: center;\n }\n\n &:not(:last-child):not(.@{table-prefix-cls}-selection-column):not(.@{table-prefix-cls}-row-expand-icon-cell):not([colspan])::before {\n position: absolute;\n top: 50%;\n right: 0;\n width: 1px;\n height: 1.6em;\n background-color: @table-header-cell-split-color;\n transform: translateY(-50%);\n transition: background-color 0.3s;\n content: '';\n }\n }\n }\n\n > tr:not(:last-child) > th {\n &[colspan] {\n border-bottom: 0;\n }\n }\n }\n\n // ============================= Body =============================\n &-tbody {\n > tr {\n > td {\n border-bottom: @border-width-base @border-style-base @table-border-color;\n transition: background 0.3s;\n\n // ========================= Nest Table ===========================\n > .@{table-prefix-cls}-wrapper:only-child,\n > .@{table-prefix-cls}-expanded-row-fixed > .@{table-prefix-cls}-wrapper:only-child {\n .@{table-prefix-cls} {\n margin: -@table-padding-vertical -@table-padding-horizontal -@table-padding-vertical (@table-expand-column-width -\n @table-padding-horizontal);\n\n &-tbody > tr:last-child > td {\n border-bottom: 0;\n\n &:first-child,\n &:last-child {\n border-radius: 0;\n }\n }\n }\n }\n }\n\n &.@{table-prefix-cls}-row:hover > td,\n > td.@{table-prefix-cls}-cell-row-hover {\n background: @table-row-hover-bg;\n }\n\n &.@{table-prefix-cls}-row-selected {\n > td {\n background: @table-selected-row-bg;\n border-color: rgba(0, 0, 0, 0.03);\n }\n\n &:hover {\n > td {\n background: @table-selected-row-hover-bg;\n }\n }\n }\n }\n }\n\n // =========================== Summary ============================\n &-summary {\n position: relative;\n z-index: @zindex-table-fixed;\n background: @table-bg;\n\n div& {\n box-shadow: 0 -@border-width-base 0 @table-border-color;\n }\n\n > tr {\n > th,\n > td {\n border-bottom: @border-width-base @border-style-base @table-border-color;\n }\n }\n }\n\n // ========================== Pagination ==========================\n &-pagination.@{ant-prefix}-pagination {\n margin: 16px 0;\n }\n\n &-pagination {\n display: flex;\n flex-wrap: wrap;\n row-gap: @padding-xs;\n\n > * {\n flex: none;\n }\n\n &-left {\n justify-content: flex-start;\n }\n\n &-center {\n justify-content: center;\n }\n\n &-right {\n justify-content: flex-end;\n }\n }\n\n // ================================================================\n // = Function =\n // ================================================================\n\n // ============================ Sorter ============================\n &-thead th.@{table-prefix-cls}-column-has-sorters {\n outline: none;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n background: @table-header-sort-active-bg;\n\n &::before {\n background-color: transparent !important;\n }\n }\n\n &:focus-visible {\n color: @primary-color;\n }\n\n // https://github.com/ant-design/ant-design/issues/30969\n &.@{table-prefix-cls}-cell-fix-left:hover,\n &.@{table-prefix-cls}-cell-fix-right:hover {\n background: @table-fixed-header-sort-active-bg;\n }\n }\n\n &-thead th.@{table-prefix-cls}-column-sort {\n background: @table-header-sort-bg;\n\n &::before {\n background-color: transparent !important;\n }\n }\n\n td&-column-sort {\n background: @table-body-sort-bg;\n }\n\n &-column-title {\n position: relative;\n z-index: 1;\n flex: 1;\n }\n\n &-column-sorters {\n display: flex;\n flex: auto;\n align-items: center;\n justify-content: space-between;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n content: '';\n }\n }\n\n &-column-sorter {\n margin-left: 4px;\n color: @table-header-icon-color;\n font-size: 0;\n transition: color 0.3s;\n\n &-inner {\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n }\n\n &-up,\n &-down {\n font-size: 11px;\n\n &.active {\n color: @primary-color;\n }\n }\n\n &-up + &-down {\n margin-top: -0.3em;\n }\n }\n\n &-column-sorters:hover &-column-sorter {\n color: darken(@table-header-icon-color, 10%);\n }\n\n // ============================ Filter ============================\n &-filter-column {\n display: flex;\n justify-content: space-between;\n }\n\n &-filter-trigger {\n position: relative;\n display: flex;\n align-items: center;\n margin: -4px (-@table-padding-horizontal / 2) -4px 4px;\n padding: 0 4px;\n color: @table-header-icon-color;\n font-size: @font-size-sm;\n border-radius: @border-radius-base;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n color: @text-color-secondary;\n background: @table-header-filter-active-bg;\n }\n\n &.active {\n color: @primary-color;\n }\n }\n\n // Dropdown\n &-filter-dropdown {\n .reset-component();\n\n min-width: 120px;\n background-color: @table-filter-dropdown-bg;\n border-radius: @border-radius-base;\n box-shadow: @box-shadow-base;\n\n // Reset menu\n .@{dropdown-prefix-cls}-menu {\n // https://github.com/ant-design/ant-design/issues/4916\n // https://github.com/ant-design/ant-design/issues/19542\n max-height: @table-filter-dropdown-max-height;\n overflow-x: hidden;\n border: 0;\n box-shadow: none;\n\n &:empty::after {\n display: block;\n padding: 8px 0;\n color: @disabled-color;\n font-size: @font-size-sm;\n text-align: center;\n content: 'Not Found';\n }\n }\n\n &-tree {\n padding: 8px 8px 0;\n\n .@{tree-prefix-cls}-treenode .@{tree-prefix-cls}-node-content-wrapper:hover {\n background-color: @tree-node-hover-bg;\n }\n\n .@{tree-prefix-cls}-treenode-checkbox-checked .@{tree-prefix-cls}-node-content-wrapper {\n &,\n &:hover {\n background-color: @tree-node-selected-bg;\n }\n }\n }\n\n &-search {\n padding: 8px;\n border-bottom: @border-width-base @border-color-split @border-style-base;\n\n &-input {\n input {\n min-width: 140px;\n }\n .@{iconfont-css-prefix} {\n color: @disabled-color;\n }\n }\n }\n\n &-checkall {\n width: 100%;\n margin-bottom: 4px;\n margin-left: 4px;\n }\n\n &-submenu > ul {\n max-height: calc(100vh - 130px);\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n // Checkbox\n &,\n &-submenu {\n .@{ant-prefix}-checkbox-wrapper + span {\n padding-left: 8px;\n }\n }\n\n // Operation\n &-btns {\n display: flex;\n justify-content: space-between;\n padding: 7px 8px;\n overflow: hidden;\n background-color: @table-filter-btns-bg;\n border-top: @border-width-base @border-style-base @table-border-color;\n }\n }\n\n // ========================== Selections ==========================\n &-selection-col {\n width: @table-selection-column-width;\n }\n\n &-bordered &-selection-col {\n width: @table-selection-column-width + 18px;\n }\n\n table tr th&-selection-column,\n table tr td&-selection-column {\n padding-right: @padding-xs;\n padding-left: @padding-xs;\n text-align: center;\n\n .@{ant-prefix}-radio-wrapper {\n margin-right: 0;\n }\n }\n\n table tr th&-selection-column&-cell-fix-left {\n z-index: 3;\n }\n\n table tr th&-selection-column::after {\n background-color: transparent !important;\n }\n\n &-selection {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n\n &-extra {\n position: absolute;\n top: 0;\n z-index: 1;\n cursor: pointer;\n transition: all 0.3s;\n margin-inline-start: 100%;\n padding-inline-start: (@table-padding-horizontal / 4);\n\n .@{iconfont-css-prefix} {\n color: @table-header-icon-color;\n font-size: 10px;\n\n &:hover {\n color: @table-header-icon-color-hover;\n }\n }\n }\n }\n\n // ========================== Expandable ==========================\n &-expand-icon-col {\n width: @table-expand-column-width;\n }\n\n &-row-expand-icon-cell {\n text-align: center;\n\n .@{table-prefix-cls}-row-expand-icon {\n display: inline-flex;\n float: none;\n vertical-align: sub;\n }\n }\n\n &-row-indent {\n float: left;\n height: 1px;\n }\n\n &-row-expand-icon {\n .operation-unit();\n position: relative;\n float: left;\n box-sizing: border-box;\n width: @expand-icon-size;\n height: @expand-icon-size;\n padding: 0;\n color: inherit;\n line-height: ceil(((@font-size-sm * 1.4 - @border-width-base * 3) / 2)) * 2 + @border-width-base *\n 3;\n background: @table-expand-icon-bg;\n border: @border-width-base @border-style-base @table-border-color;\n border-radius: @border-radius-base;\n transform: scale((unit(@checkbox-size) / unit(@expand-icon-size)));\n transition: all 0.3s;\n user-select: none;\n @expand-icon-size: ceil(((@font-size-sm * 1.4 - @border-width-base * 3) / 2)) * 2 +\n @border-width-base * 3;\n\n &:focus,\n &:hover,\n &:active {\n border-color: currentcolor;\n }\n\n &::before,\n &::after {\n position: absolute;\n background: currentcolor;\n transition: transform 0.3s ease-out;\n content: '';\n }\n\n &::before {\n top: ceil(((@font-size-sm * 1.4 - @border-width-base * 3) / 2));\n right: 3px;\n left: 3px;\n height: @border-width-base;\n }\n\n &::after {\n top: 3px;\n bottom: 3px;\n left: ceil(((@font-size-sm * 1.4 - @border-width-base * 3) / 2));\n width: @border-width-base;\n transform: rotate(90deg);\n }\n\n // Motion effect\n &-collapsed::before {\n transform: rotate(-180deg);\n }\n\n &-collapsed::after {\n transform: rotate(0deg);\n }\n\n &-spaced {\n &::before,\n &::after {\n display: none;\n content: none;\n }\n background: transparent;\n border: 0;\n visibility: hidden;\n }\n\n .@{table-prefix-cls}-row-indent + & {\n margin-top: ((@font-size-base * @line-height-base - @border-width-base * 3) / 2) -\n ceil(((@font-size-sm * 1.4 - @border-width-base * 3) / 2));\n margin-right: @padding-xs;\n }\n }\n\n tr&-expanded-row {\n &,\n &:hover {\n > td {\n background: @table-expanded-row-bg;\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/25573\n .@{descriptions-prefix-cls}-view {\n display: flex;\n\n table {\n flex: auto;\n width: auto;\n }\n }\n }\n\n // With fixed\n .@{table-prefix-cls}-expanded-row-fixed {\n position: relative;\n margin: -@table-padding-vertical -@table-padding-horizontal;\n padding: @table-padding-vertical @table-padding-horizontal;\n }\n\n // ========================= Placeholder ==========================\n &-tbody > tr&-placeholder {\n text-align: center;\n .@{table-prefix-cls}-empty & {\n color: @disabled-color;\n }\n\n &:hover {\n > td {\n background: @component-background;\n }\n }\n }\n\n // ============================ Fixed =============================\n &-cell-fix-left,\n &-cell-fix-right {\n position: sticky !important;\n z-index: @zindex-table-fixed;\n background: @table-bg;\n }\n\n &-cell-fix-left-first::after,\n &-cell-fix-left-last::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n width: 30px;\n transform: translateX(100%);\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n }\n\n &-cell-fix-left-all::after {\n display: none;\n }\n\n &-cell-fix-right-first::after,\n &-cell-fix-right-last::after {\n position: absolute;\n top: 0;\n bottom: -1px;\n left: 0;\n width: 30px;\n transform: translateX(-100%);\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n }\n\n .@{table-prefix-cls}-container {\n &::before,\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: calc(@table-sticky-zindex + 1);\n width: 30px;\n transition: box-shadow 0.3s;\n content: '';\n pointer-events: none;\n }\n\n &::before {\n left: 0;\n }\n\n &::after {\n right: 0;\n }\n }\n\n &-ping-left {\n &:not(.@{table-prefix-cls}-has-fix-left) > .@{table-prefix-cls}-container {\n position: relative;\n\n &::before {\n box-shadow: inset 10px 0 8px -8px darken(@shadow-color, 5%);\n }\n }\n\n .@{table-prefix-cls}-cell-fix-left-first::after,\n .@{table-prefix-cls}-cell-fix-left-last::after {\n box-shadow: inset 10px 0 8px -8px darken(@shadow-color, 5%);\n }\n\n .@{table-prefix-cls}-cell-fix-left-last::before {\n background-color: transparent !important;\n }\n }\n\n &-ping-right {\n &:not(.@{table-prefix-cls}-has-fix-right) > .@{table-prefix-cls}-container {\n position: relative;\n\n &::after {\n box-shadow: inset -10px 0 8px -8px darken(@shadow-color, 5%);\n }\n }\n\n .@{table-prefix-cls}-cell-fix-right-first::after,\n .@{table-prefix-cls}-cell-fix-right-last::after {\n box-shadow: inset -10px 0 8px -8px darken(@shadow-color, 5%);\n }\n }\n\n &-sticky {\n &-holder {\n position: sticky;\n z-index: @table-sticky-zindex;\n background: @component-background;\n }\n\n &-scroll {\n position: sticky;\n bottom: 0;\n z-index: @table-sticky-zindex;\n display: flex;\n align-items: center;\n background: lighten(@table-border-color, 80%);\n border-top: 1px solid @table-border-color;\n opacity: 0.6;\n\n &:hover {\n transform-origin: center bottom;\n }\n\n &-bar {\n height: 8px;\n background-color: @table-sticky-scroll-bar-bg;\n border-radius: @table-sticky-scroll-bar-radius;\n\n &:hover {\n background-color: @table-sticky-scroll-bar-active-bg;\n }\n\n &-active {\n background-color: @table-sticky-scroll-bar-active-bg;\n }\n }\n }\n }\n}\n\n@media all and (-ms-high-contrast: none) {\n .@{table-prefix-cls} {\n &-ping-left {\n .@{table-prefix-cls}-cell-fix-left-last::after {\n box-shadow: none !important;\n }\n }\n\n &-ping-right {\n .@{table-prefix-cls}-cell-fix-right-first::after {\n box-shadow: none !important;\n }\n }\n }\n}\n\n@import './radius';\n@import './rtl';\n\n@root-entry-name: default;","@import './size';\n@import (reference) '../../style/themes/index';\n@table-prefix-cls: ~'@{ant-prefix}-table';\n\n@table-border: @border-width-base @border-style-base @table-border-color;\n\n.@{table-prefix-cls}.@{table-prefix-cls}-bordered {\n // ============================ Title =============================\n > .@{table-prefix-cls}-title {\n border: @table-border;\n border-bottom: 0;\n }\n\n > .@{table-prefix-cls}-container {\n // ============================ Content ============================\n border-left: @table-border;\n\n > .@{table-prefix-cls}-content,\n > .@{table-prefix-cls}-header,\n > .@{table-prefix-cls}-body,\n > .@{table-prefix-cls}-summary {\n > table {\n // ============================= Cell =============================\n > thead > tr > th,\n > tbody > tr > td,\n > tfoot > tr > th,\n > tfoot > tr > td {\n border-right: @table-border;\n }\n // ============================ Header ============================\n > thead {\n > tr:not(:last-child) > th {\n border-bottom: @border-width-base @border-style-base @table-border-color;\n }\n\n > tr > th {\n &::before {\n background-color: transparent !important;\n }\n }\n }\n\n // Fixed right should provides additional border\n > thead > tr,\n > tbody > tr,\n > tfoot > tr {\n > .@{table-prefix-cls}-cell-fix-right-first::after {\n border-right: @table-border;\n }\n }\n }\n\n // ========================== Expandable ==========================\n > table > tbody > tr > td {\n > .@{table-prefix-cls}-expanded-row-fixed {\n margin: -@table-padding-vertical (-@table-padding-horizontal - @border-width-base);\n\n &::after {\n position: absolute;\n top: 0;\n right: @border-width-base;\n bottom: 0;\n border-right: @table-border;\n content: '';\n }\n }\n }\n }\n\n > .@{table-prefix-cls}-content,\n > .@{table-prefix-cls}-header {\n > table {\n border-top: @table-border;\n }\n }\n }\n\n &.@{table-prefix-cls}-scroll-horizontal {\n > .@{table-prefix-cls}-container > .@{table-prefix-cls}-body {\n > table > tbody {\n > tr.@{table-prefix-cls}-expanded-row,\n > tr.@{table-prefix-cls}-placeholder {\n > td {\n border-right: 0;\n }\n }\n }\n }\n }\n\n // Size related\n &.@{table-prefix-cls}-middle {\n > .@{table-prefix-cls}-container {\n > .@{table-prefix-cls}-content,\n > .@{table-prefix-cls}-body {\n > table > tbody > tr > td {\n > .@{table-prefix-cls}-expanded-row-fixed {\n margin: -@table-padding-vertical-md (-@table-padding-horizontal-md - @border-width-base);\n }\n }\n }\n }\n }\n\n &.@{table-prefix-cls}-small {\n > .@{table-prefix-cls}-container {\n > .@{table-prefix-cls}-content,\n > .@{table-prefix-cls}-body {\n > table > tbody > tr > td {\n > .@{table-prefix-cls}-expanded-row-fixed {\n margin: -@table-padding-vertical-sm (-@table-padding-horizontal-sm - @border-width-base);\n }\n }\n }\n }\n }\n\n // ============================ Footer ============================\n > .@{table-prefix-cls}-footer {\n border: @table-border;\n border-top: 0;\n }\n}\n\n.@{table-prefix-cls}-cell {\n // ============================ Nested ============================\n .@{table-prefix-cls}-container:first-child {\n // :first-child to avoid the case when bordered and title is set\n border-top: 0;\n }\n\n // https://github.com/ant-design/ant-design/issues/35577\n &-scrollbar:not([rowspan]) {\n box-shadow: 0 @border-width-base 0 @border-width-base @table-header-bg;\n }\n}\n","// ================================================================\n// = Border Radius =\n// ================================================================\n.@{table-prefix-cls} {\n /* title + table */\n &-title {\n border-radius: @table-border-radius-base @table-border-radius-base 0 0;\n }\n\n &-title + &-container {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n\n table {\n border-radius: 0;\n\n > thead > tr:first-child {\n th:first-child {\n border-radius: 0;\n }\n\n th:last-child {\n border-radius: 0;\n }\n }\n }\n }\n\n /* table */\n &-container {\n border-top-left-radius: @table-border-radius-base;\n border-top-right-radius: @table-border-radius-base;\n\n table > thead > tr:first-child {\n th:first-child {\n border-top-left-radius: @table-border-radius-base;\n }\n\n th:last-child {\n border-top-right-radius: @table-border-radius-base;\n }\n }\n }\n\n /* table + footer */\n &-footer {\n border-radius: 0 0 @table-border-radius-base @table-border-radius-base;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@table-prefix-cls: ~'@{ant-prefix}-table';\n@table-wrapepr-cls: ~'@{table-prefix-cls}-wrapper';\n@table-wrapepr-rtl-cls: ~'@{table-prefix-cls}-wrapper-rtl';\n\n.@{table-prefix-cls}-wrapper {\n &-rtl {\n direction: rtl;\n }\n}\n\n.@{table-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n table {\n .@{table-wrapepr-rtl-cls} & {\n text-align: right;\n }\n }\n\n // ============================ Header ============================\n &-thead {\n > tr {\n > th {\n &[colspan]:not([colspan='1']) {\n .@{table-wrapepr-rtl-cls} & {\n text-align: center;\n }\n }\n\n &:not(:last-child):not(.@{table-prefix-cls}-selection-column):not(.@{table-prefix-cls}-row-expand-icon-cell):not([colspan])::before {\n .@{table-wrapepr-rtl-cls} & {\n right: auto;\n left: 0;\n }\n }\n\n .@{table-wrapepr-rtl-cls} & {\n text-align: right;\n }\n }\n }\n }\n\n // ============================= Body =============================\n &-tbody {\n > tr {\n // ========================= Nest Table ===========================\n .@{table-prefix-cls}-wrapper:only-child {\n .@{table-prefix-cls}.@{table-prefix-cls}-rtl {\n margin: -@table-padding-vertical (@table-padding-horizontal + ceil(@font-size-sm * 1.4)) -@table-padding-vertical -@table-padding-horizontal;\n }\n }\n }\n }\n\n // ========================== Pagination ==========================\n &-pagination {\n &-left {\n .@{table-wrapepr-cls}.@{table-wrapepr-rtl-cls} & {\n justify-content: flex-end;\n }\n }\n\n &-right {\n .@{table-wrapepr-cls}.@{table-wrapepr-rtl-cls} & {\n justify-content: flex-start;\n }\n }\n }\n\n // ================================================================\n // = Function =\n // ================================================================\n\n // ============================ Sorter ============================\n &-column-sorter {\n .@{table-wrapepr-rtl-cls} & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n\n // ============================ Filter ============================\n &-filter-column-title {\n .@{table-wrapepr-rtl-cls} & {\n padding: @table-padding-vertical @table-padding-horizontal @table-padding-vertical 2.3em;\n }\n }\n\n &-thead tr th.@{table-prefix-cls}-column-has-sorters {\n .@{table-prefix-cls}-filter-column-title {\n .@{table-prefix-cls}-rtl & {\n padding: 0 0 0 2.3em;\n }\n }\n }\n\n &-filter-trigger {\n .@{table-wrapepr-rtl-cls} & {\n margin: -4px 4px -4px (-@table-padding-horizontal / 2);\n }\n }\n\n // Dropdown\n &-filter-dropdown {\n // Checkbox\n &,\n &-submenu {\n .@{ant-prefix}-checkbox-wrapper + span {\n .@{ant-prefix}-dropdown-rtl &,\n .@{ant-prefix}-dropdown-menu-submenu-rtl& {\n padding-right: 8px;\n padding-left: 0;\n }\n }\n }\n }\n\n // ========================== Selections ==========================\n &-selection {\n .@{table-wrapepr-rtl-cls} & {\n text-align: center;\n }\n }\n\n // ========================== Expandable ==========================\n &-row-indent {\n .@{table-wrapepr-rtl-cls} & {\n float: right;\n }\n }\n\n &-row-expand-icon {\n .@{table-wrapepr-rtl-cls} & {\n float: right;\n }\n\n .@{table-prefix-cls}-row-indent + & {\n .@{table-wrapepr-rtl-cls} & {\n margin-right: 0;\n margin-left: @padding-xs;\n }\n }\n\n &::after {\n .@{table-wrapepr-rtl-cls} & {\n transform: rotate(-90deg);\n }\n }\n\n &-collapsed::before {\n .@{table-wrapepr-rtl-cls} & {\n transform: rotate(180deg);\n }\n }\n\n &-collapsed::after {\n .@{table-wrapepr-rtl-cls} & {\n transform: rotate(0deg);\n }\n }\n }\n}\n","@import '../../style/themes/index';\n\n@tree-prefix-cls: ~'@{ant-prefix}-tree';\n\n.@{tree-prefix-cls}.@{tree-prefix-cls}-directory {\n // ================== TreeNode ==================\n .@{tree-prefix-cls}-treenode {\n position: relative;\n\n // Hover color\n &::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 4px;\n left: 0;\n transition: background-color 0.3s;\n content: '';\n pointer-events: none;\n }\n\n &:hover {\n &::before {\n background: @item-hover-bg;\n }\n }\n\n // Elements\n > * {\n z-index: 1;\n }\n\n // >>> Switcher\n .@{tree-prefix-cls}-switcher {\n transition: color 0.3s;\n }\n\n // >>> Title\n .@{tree-prefix-cls}-node-content-wrapper {\n border-radius: 0;\n user-select: none;\n\n &:hover {\n background: transparent;\n }\n\n &.@{tree-prefix-cls}-node-selected {\n color: @tree-directory-selected-color;\n background: transparent;\n }\n }\n\n // ============= Selected =============\n &-selected {\n &:hover::before,\n &::before {\n background: @tree-directory-selected-bg;\n }\n\n // >>> Switcher\n .@{tree-prefix-cls}-switcher {\n color: @tree-directory-selected-color;\n }\n\n // >>> Title\n .@{tree-prefix-cls}-node-content-wrapper {\n color: @tree-directory-selected-color;\n background: transparent;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../checkbox/style/mixin';\n@import './mixin';\n@import './directory';\n\n@tree-prefix-cls: ~'@{ant-prefix}-tree';\n@tree-node-prefix-cls: ~'@{tree-prefix-cls}-treenode';\n\n.antCheckboxFn(@checkbox-prefix-cls: ~'@{ant-prefix}-tree-checkbox');\n\n.@{tree-prefix-cls} {\n .antTreeFn(@tree-prefix-cls);\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/mixins/index';\n\n@tree-prefix-cls: ~'@{ant-prefix}-tree';\n@select-tree-prefix-cls: ~'@{ant-prefix}-select-tree';\n@tree-motion: ~'@{ant-prefix}-motion-collapse';\n@tree-node-padding: (@padding-xs / 2);\n// @deprecated: kept for customization usages, recommend using @tree-node-highlight-color instead.\n@tree-node-hightlight-color: inherit;\n@tree-node-highlight-color: @tree-node-hightlight-color;\n\n.antTreeSwitcherIcon(@type: 'tree-default-open-icon') {\n .@{tree-prefix-cls}-switcher-icon,\n .@{select-tree-prefix-cls}-switcher-icon {\n display: inline-block;\n font-size: 10px;\n vertical-align: baseline;\n\n svg {\n transition: transform 0.3s;\n }\n }\n}\n\n.drop-indicator() {\n .@{tree-prefix-cls}-drop-indicator {\n position: absolute;\n // it should displayed over the following node\n z-index: 1;\n height: 2px;\n background-color: @primary-color;\n border-radius: 1px;\n pointer-events: none;\n\n &::after {\n position: absolute;\n top: -3px;\n left: -6px;\n width: 8px;\n height: 8px;\n background-color: transparent;\n border: 2px solid @primary-color;\n border-radius: 50%;\n content: '';\n }\n }\n}\n\n.antTreeFn(@custom-tree-prefix-cls) {\n @custom-tree-node-prefix-cls: ~'@{custom-tree-prefix-cls}-treenode';\n .reset-component();\n background: @tree-bg;\n border-radius: @border-radius-base;\n transition: background-color 0.3s;\n\n &-focused:not(:hover):not(&-active-focused) {\n background: @primary-1;\n }\n\n // =================== Virtual List ===================\n &-list-holder-inner {\n align-items: flex-start;\n }\n\n &.@{custom-tree-prefix-cls}-block-node {\n .@{custom-tree-prefix-cls}-list-holder-inner {\n align-items: stretch;\n\n // >>> Title\n .@{custom-tree-prefix-cls}-node-content-wrapper {\n flex: auto;\n }\n\n // >>> Drag\n .@{custom-tree-node-prefix-cls}.dragging {\n position: relative;\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: @tree-node-padding;\n left: 0;\n border: 1px solid @primary-color;\n opacity: 0;\n animation: ant-tree-node-fx-do-not-use 0.3s;\n animation-play-state: running;\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n }\n }\n }\n }\n\n // ===================== TreeNode =====================\n .@{custom-tree-node-prefix-cls} {\n display: flex;\n align-items: flex-start;\n padding: 0 0 @tree-node-padding 0;\n outline: none;\n // Disabled\n &-disabled {\n // >>> Title\n .@{custom-tree-prefix-cls}-node-content-wrapper {\n color: @disabled-color;\n cursor: not-allowed;\n\n &:hover {\n background: transparent;\n }\n }\n }\n\n &-active .@{custom-tree-prefix-cls}-node-content-wrapper {\n background: @tree-node-hover-bg;\n }\n\n &:not(&-disabled).filter-node .@{custom-tree-prefix-cls}-title {\n color: @tree-node-highlight-color;\n font-weight: 500;\n }\n\n &-draggable {\n .@{custom-tree-prefix-cls}-draggable-icon {\n width: @tree-title-height;\n line-height: @tree-title-height;\n text-align: center;\n visibility: visible;\n opacity: 0.2;\n transition: opacity @animation-duration-slow;\n\n .@{custom-tree-node-prefix-cls}:hover & {\n opacity: 0.45;\n }\n }\n\n &.@{custom-tree-node-prefix-cls}-disabled {\n .@{custom-tree-prefix-cls}-draggable-icon {\n visibility: hidden;\n }\n }\n }\n }\n\n // >>> Indent\n &-indent {\n align-self: stretch;\n white-space: nowrap;\n user-select: none;\n\n &-unit {\n display: inline-block;\n width: @tree-title-height;\n }\n }\n\n // >>> Drag Handler\n &-draggable-icon {\n visibility: hidden;\n }\n\n // >>> Switcher\n &-switcher {\n .antTreeSwitcherIcon();\n position: relative;\n flex: none;\n align-self: stretch;\n width: @tree-title-height;\n margin: 0;\n line-height: @tree-title-height;\n text-align: center;\n cursor: pointer;\n user-select: none;\n\n &-noop {\n cursor: default;\n }\n\n &_close {\n .@{custom-tree-prefix-cls}-switcher-icon {\n svg {\n transform: rotate(-90deg);\n }\n }\n }\n\n &-loading-icon {\n color: @primary-color;\n }\n\n &-leaf-line {\n position: relative;\n z-index: 1;\n display: inline-block;\n width: 100%;\n height: 100%;\n // https://github.com/ant-design/ant-design/issues/31884\n &::before {\n position: absolute;\n top: 0;\n right: 12px;\n bottom: -@tree-node-padding;\n margin-left: -1px;\n border-right: 1px solid @normal-color;\n content: ' ';\n }\n\n &::after {\n position: absolute;\n width: @tree-title-height - 14px;\n height: @tree-title-height - 10px;\n border-bottom: 1px solid @normal-color;\n content: ' ';\n }\n }\n }\n\n // >>> Checkbox\n &-checkbox {\n top: initial;\n margin: ((@tree-title-height - @checkbox-size) / 2) 8px 0 0;\n }\n\n // >>> Title\n & &-node-content-wrapper {\n position: relative;\n z-index: auto;\n min-height: @tree-title-height;\n margin: 0;\n padding: 0 4px;\n color: inherit;\n line-height: @tree-title-height;\n background: transparent;\n border-radius: @border-radius-base;\n cursor: pointer;\n transition: all 0.3s, border 0s, line-height 0s, box-shadow 0s;\n\n &:hover {\n background-color: @tree-node-hover-bg;\n }\n\n &.@{custom-tree-prefix-cls}-node-selected {\n background-color: @tree-node-selected-bg;\n }\n\n // Icon\n .@{custom-tree-prefix-cls}-iconEle {\n display: inline-block;\n width: @tree-title-height;\n height: @tree-title-height;\n line-height: @tree-title-height;\n text-align: center;\n vertical-align: top;\n\n &:empty {\n display: none;\n }\n }\n }\n\n // https://github.com/ant-design/ant-design/issues/28217\n &-unselectable &-node-content-wrapper:hover {\n background-color: transparent;\n }\n\n // ==================== Draggable =====================\n &-node-content-wrapper {\n line-height: @tree-title-height;\n user-select: none;\n\n .drop-indicator();\n }\n\n .@{custom-tree-node-prefix-cls}.drop-container {\n > [draggable] {\n box-shadow: 0 0 0 2px @primary-color;\n }\n }\n\n // ==================== Show Line =====================\n &-show-line {\n // ================ Indent lines ================\n .@{custom-tree-prefix-cls}-indent {\n &-unit {\n position: relative;\n height: 100%;\n\n &::before {\n position: absolute;\n top: 0;\n right: (@tree-title-height / 2);\n bottom: -@tree-node-padding;\n border-right: 1px solid @border-color-base;\n content: '';\n }\n\n &-end {\n &::before {\n display: none;\n }\n }\n }\n }\n\n // ============== Cover Background ==============\n .@{custom-tree-prefix-cls}-switcher {\n background: @component-background;\n\n &-line-icon {\n // https://github.com/ant-design/ant-design/issues/32813\n vertical-align: -0.15em;\n }\n }\n }\n\n .@{custom-tree-node-prefix-cls}-leaf-last {\n .@{custom-tree-prefix-cls}-switcher {\n &-leaf-line {\n &::before {\n top: auto !important;\n bottom: auto !important;\n height: @tree-title-height - 10px !important;\n }\n }\n }\n }\n}\n\n@keyframes ant-tree-node-fx-do-not-use {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../checkbox/style/mixin';\n\n@tree-prefix-cls: ~'@{ant-prefix}-tree';\n@select-tree-prefix-cls: ~'@{ant-prefix}-select-tree';\n@tree-node-prefix-cls: ~'@{tree-prefix-cls}-treenode';\n\n.@{tree-prefix-cls} {\n &-rtl {\n direction: rtl;\n .@{tree-prefix-cls}-node-content-wrapper[draggable='true'] {\n .@{tree-prefix-cls}-drop-indicator {\n &::after {\n right: -6px;\n left: unset;\n }\n }\n }\n }\n\n // ===================== TreeNode =====================\n .@{tree-node-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n }\n\n // >>> Switcher\n &-switcher {\n &_close {\n .@{tree-prefix-cls}-switcher-icon {\n svg {\n .@{tree-prefix-cls}-rtl & {\n transform: rotate(90deg);\n }\n }\n }\n }\n }\n // ==================== Show Line =====================\n &-show-line {\n // ================ Indent lines ================\n .@{tree-prefix-cls}-indent {\n &-unit {\n &::before {\n .@{tree-prefix-cls}-rtl& {\n right: auto;\n left: -(@tree-title-height / 2) - 1px;\n border-right: none;\n border-left: 1px solid @border-color-base;\n }\n }\n }\n }\n }\n // >>> Checkbox\n &-checkbox {\n .@{tree-prefix-cls}-rtl & {\n margin: ((@tree-title-height - @checkbox-size) / 2) 0 0 8px;\n }\n }\n}\n\n.@{select-tree-prefix-cls} {\n // >>> Checkbox\n &-checkbox {\n .@{tree-prefix-cls}-select-dropdown-rtl & {\n margin: ((@tree-title-height - @checkbox-size) / 2) 0 0 8px;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@timeline-prefix-cls: ~'@{ant-prefix}-timeline';\n\n.@{timeline-prefix-cls} {\n .reset-component();\n\n margin: 0;\n padding: 0;\n list-style: none;\n\n &-item {\n position: relative;\n margin: 0;\n padding-bottom: @timeline-item-padding-bottom;\n font-size: @font-size-base;\n list-style: none;\n\n &-tail {\n position: absolute;\n top: 10px;\n left: 4px;\n height: calc(100% - 10px);\n border-left: @timeline-width solid @timeline-color;\n }\n\n &-pending &-head {\n font-size: @font-size-sm;\n background-color: transparent;\n }\n\n &-pending &-tail {\n display: none;\n }\n\n &-head {\n position: absolute;\n width: 10px;\n height: 10px;\n background-color: @timeline-dot-bg;\n border: @timeline-dot-border-width solid transparent;\n border-radius: 100px;\n\n &-blue {\n color: @primary-color;\n border-color: @primary-color;\n }\n\n &-red {\n color: @error-color;\n border-color: @error-color;\n }\n\n &-green {\n color: @success-color;\n border-color: @success-color;\n }\n\n &-gray {\n color: @disabled-color;\n border-color: @disabled-color;\n }\n }\n\n &-head-custom {\n position: absolute;\n top: 5.5px;\n left: 5px;\n width: auto;\n height: auto;\n margin-top: 0;\n padding: 3px 1px;\n line-height: 1;\n text-align: center;\n border: 0;\n border-radius: 0;\n transform: translate(-50%, -50%);\n }\n\n &-content {\n position: relative;\n top: -(@font-size-base * @line-height-base - @font-size-base) + 1px;\n margin: 0 0 0 @margin-lg + 2px;\n word-break: break-word;\n }\n\n &-last {\n > .@{timeline-prefix-cls}-item-tail {\n display: none;\n }\n > .@{timeline-prefix-cls}-item-content {\n min-height: 48px;\n }\n }\n }\n\n &.@{timeline-prefix-cls}-alternate,\n &.@{timeline-prefix-cls}-right,\n &.@{timeline-prefix-cls}-label {\n .@{timeline-prefix-cls}-item {\n &-tail,\n &-head,\n &-head-custom {\n left: 50%;\n }\n\n &-head {\n margin-left: -4px;\n\n &-custom {\n margin-left: 1px;\n }\n }\n\n &-left {\n .@{timeline-prefix-cls}-item-content {\n left: calc(50% - 4px);\n width: calc(50% - 14px);\n text-align: left;\n }\n }\n\n &-right {\n .@{timeline-prefix-cls}-item-content {\n width: calc(50% - 12px);\n margin: 0;\n text-align: right;\n }\n }\n }\n }\n\n &.@{timeline-prefix-cls}-right {\n .@{timeline-prefix-cls}-item-right {\n .@{timeline-prefix-cls}-item-tail,\n .@{timeline-prefix-cls}-item-head,\n .@{timeline-prefix-cls}-item-head-custom {\n left: calc(100% - 4px - @timeline-width);\n }\n .@{timeline-prefix-cls}-item-content {\n width: calc(100% - 18px);\n }\n }\n }\n\n &&-pending &-item-last &-item-tail {\n display: block;\n height: calc(100% - 14px);\n border-left: 2px dotted @timeline-color;\n }\n\n &&-reverse &-item-last &-item-tail {\n display: none;\n }\n\n &&-reverse &-item-pending {\n .@{timeline-prefix-cls}-item-tail {\n top: 15px;\n display: block;\n height: calc(100% - 15px);\n border-left: 2px dotted @timeline-color;\n }\n .@{timeline-prefix-cls}-item-content {\n min-height: 48px;\n }\n }\n &.@{timeline-prefix-cls}-label {\n .@{timeline-prefix-cls}-item-label {\n position: absolute;\n top: -(@font-size-base * @line-height-base - @font-size-base) + 1px;\n width: calc(50% - 12px);\n text-align: right;\n }\n .@{timeline-prefix-cls}-item-right {\n .@{timeline-prefix-cls}-item-label {\n left: calc(50% + 14px);\n width: calc(50% - 14px);\n text-align: left;\n }\n }\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@timeline-prefix-cls: ~'@{ant-prefix}-timeline';\n\n.@{timeline-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-item {\n &-tail {\n .@{timeline-prefix-cls}-rtl & {\n right: 4px;\n left: auto;\n border-right: @timeline-width solid @timeline-color;\n border-left: none;\n }\n }\n\n &-head-custom {\n .@{timeline-prefix-cls}-rtl & {\n right: 5px;\n left: auto;\n transform: translate(50%, -50%);\n }\n }\n\n &-content {\n .@{timeline-prefix-cls}-rtl & {\n margin: 0 18px 0 0;\n }\n }\n }\n\n &.@{timeline-prefix-cls}-alternate,\n &.@{timeline-prefix-cls}-right,\n &.@{timeline-prefix-cls}-label {\n .@{timeline-prefix-cls}-item {\n &-tail,\n &-head,\n &-head-custom {\n .@{timeline-prefix-cls}-rtl& {\n right: 50%;\n left: auto;\n }\n }\n\n &-head {\n .@{timeline-prefix-cls}-rtl& {\n margin-right: -4px;\n margin-left: 0;\n }\n\n &-custom {\n .@{timeline-prefix-cls}-rtl& {\n margin-right: 1px;\n margin-left: 0;\n }\n }\n }\n\n &-left {\n .@{timeline-prefix-cls}-item-content {\n .@{timeline-prefix-cls}-rtl& {\n right: calc(50% - 4px);\n left: auto;\n text-align: right;\n }\n }\n }\n\n &-right {\n .@{timeline-prefix-cls}-item-content {\n .@{timeline-prefix-cls}-rtl& {\n text-align: left;\n }\n }\n }\n }\n }\n\n &.@{timeline-prefix-cls}-right {\n .@{timeline-prefix-cls}-item-right {\n .@{timeline-prefix-cls}-item-tail,\n .@{timeline-prefix-cls}-item-head,\n .@{timeline-prefix-cls}-item-head-custom {\n .@{timeline-prefix-cls}-rtl& {\n right: 0;\n left: auto;\n }\n }\n\n .@{timeline-prefix-cls}-item-content {\n .@{timeline-prefix-cls}-rtl& {\n width: 100%;\n margin-right: 18px;\n text-align: right;\n }\n }\n }\n }\n\n &&-pending &-item-last &-item-tail {\n .@{timeline-prefix-cls}-rtl& {\n border-right: 2px dotted @timeline-color;\n border-left: none;\n }\n }\n\n &&-reverse &-item-pending {\n .@{timeline-prefix-cls}-item-tail {\n .@{timeline-prefix-cls}-rtl& {\n border-right: 2px dotted @timeline-color;\n border-left: none;\n }\n }\n }\n\n &.@{timeline-prefix-cls}-label {\n .@{timeline-prefix-cls}-item-label {\n .@{timeline-prefix-cls}-rtl& {\n text-align: left;\n }\n }\n .@{timeline-prefix-cls}-item-right {\n .@{timeline-prefix-cls}-item-label {\n .@{timeline-prefix-cls}-rtl& {\n right: calc(50% + 14px);\n text-align: right;\n }\n }\n }\n }\n}\n","@import '../../style/themes/index';\n\n@transfer-prefix-cls: ~'@{ant-prefix}-transfer';\n\n@table-prefix-cls: ~'@{ant-prefix}-table';\n@input-prefix-cls: ~'@{ant-prefix}-input';\n\n.@{transfer-prefix-cls}-customize-list {\n .@{transfer-prefix-cls}-list {\n flex: 1 1 50%;\n width: auto;\n height: auto;\n min-height: @transfer-list-height;\n }\n\n // =================== Hook Components ===================\n .@{table-prefix-cls}-wrapper {\n .@{table-prefix-cls}-small {\n border: 0;\n border-radius: 0;\n\n .@{table-prefix-cls}-selection-column {\n width: 40px;\n min-width: 40px;\n }\n\n > .@{table-prefix-cls}-content {\n // Header background color\n > .@{table-prefix-cls}-body > table > .@{table-prefix-cls}-thead > tr > th {\n background: @table-header-bg;\n }\n\n .@{table-prefix-cls}-row:last-child td {\n border-bottom: @border-width-base @border-style-base @border-color-split;\n }\n }\n\n .@{table-prefix-cls}-body {\n margin: 0;\n }\n }\n\n .@{table-prefix-cls}-pagination.@{ant-prefix}-pagination {\n margin: 16px 0 4px;\n }\n }\n .@{input-prefix-cls} {\n &[disabled] {\n background-color: transparent;\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../checkbox/style/mixin';\n@import './customize';\n@import './status';\n\n@transfer-prefix-cls: ~'@{ant-prefix}-transfer';\n\n@transfer-header-vertical-padding: ceil(\n ((@transfer-header-height - 1px - @font-size-base * @line-height-base) / 2)\n);\n\n.@{transfer-prefix-cls} {\n .reset-component();\n\n position: relative;\n display: flex;\n align-items: stretch;\n\n &-disabled {\n .@{transfer-prefix-cls}-list {\n background: @transfer-disabled-bg;\n }\n }\n\n &-list {\n display: flex;\n flex-direction: column;\n width: 180px;\n height: @transfer-list-height;\n border: @border-width-base @border-style-base @border-color-base;\n border-radius: @border-radius-base;\n\n &-with-pagination {\n width: 250px;\n height: auto;\n }\n\n &-search {\n .anticon-search {\n color: @disabled-color;\n }\n }\n\n &-header {\n display: flex;\n flex: none;\n align-items: center;\n height: @transfer-header-height;\n // border-top is on the transfer dom. We should minus 1px for this\n padding: (@transfer-header-vertical-padding - 1px) @control-padding-horizontal\n @transfer-header-vertical-padding;\n color: @text-color;\n background: @component-background;\n border-bottom: @border-width-base @border-style-base @border-color-split;\n border-radius: @border-radius-base @border-radius-base 0 0;\n\n > *:not(:last-child) {\n margin-right: 4px;\n }\n\n > * {\n flex: none;\n }\n\n &-title {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-align: right;\n text-overflow: ellipsis;\n }\n\n &-dropdown {\n font-size: 10px;\n transform: translateY(10%);\n cursor: pointer;\n\n &[disabled] {\n cursor: not-allowed;\n }\n }\n }\n\n &-body {\n display: flex;\n flex: auto;\n flex-direction: column;\n overflow: hidden;\n font-size: @font-size-base;\n\n &-search-wrapper {\n position: relative;\n flex: none;\n padding: @padding-sm;\n }\n }\n\n &-content {\n flex: auto;\n margin: 0;\n padding: 0;\n overflow: auto;\n list-style: none;\n\n &-item {\n display: flex;\n align-items: center;\n min-height: @transfer-item-height;\n padding: @transfer-item-padding-vertical @control-padding-horizontal;\n line-height: @transfer-item-height - 2 * @transfer-item-padding-vertical;\n transition: all 0.3s;\n\n > *:not(:last-child) {\n margin-right: 8px;\n }\n\n > * {\n flex: none;\n }\n\n &-text {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-remove {\n position: relative;\n color: @border-color-base;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n color: @link-hover-color;\n }\n\n &::after {\n position: absolute;\n top: -@transfer-item-padding-vertical;\n right: -50%;\n bottom: -@transfer-item-padding-vertical;\n left: -50%;\n content: '';\n }\n }\n }\n\n &-item:not(&-item-disabled) {\n &:hover {\n background-color: @transfer-item-hover-bg;\n cursor: pointer;\n }\n\n &.@{transfer-prefix-cls}-list-content-item-checked:hover {\n background-color: @transfer-item-selected-hover-bg;\n }\n }\n\n // Do not change hover style when `oneWay` mode\n &-show-remove &-item:not(&-item-disabled):hover {\n background: transparent;\n cursor: default;\n }\n\n &-item-checked {\n background-color: @item-active-bg;\n }\n\n &-item-disabled {\n color: @btn-disable-color;\n cursor: not-allowed;\n }\n }\n\n &-pagination {\n padding: @padding-xs 0;\n text-align: right;\n border-top: @border-width-base @border-style-base @border-color-split;\n }\n\n &-body-not-found {\n flex: none;\n width: 100%;\n margin: auto 0;\n color: @disabled-color;\n text-align: center;\n }\n\n &-footer {\n border-top: @border-width-base @border-style-base @border-color-split;\n }\n }\n\n &-operation {\n display: flex;\n flex: none;\n flex-direction: column;\n align-self: center;\n margin: 0 8px;\n vertical-align: middle;\n\n .@{ant-prefix}-btn {\n display: block;\n\n &:first-child {\n margin-bottom: 4px;\n }\n\n .@{iconfont-css-prefix} {\n font-size: 12px;\n }\n }\n }\n\n .@{ant-prefix}-empty-image {\n max-height: (@transfer-header-height / 2) - 22;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../input/style/mixin';\n\n@transfer-prefix-cls: ~'@{ant-prefix}-transfer';\n\n.transfer-status-color(@color) {\n .@{transfer-prefix-cls}-list {\n border-color: @color;\n\n &-search:not([disabled]) {\n border-color: @input-border-color;\n\n &:hover {\n .hover();\n }\n\n &:focus {\n .active();\n }\n }\n }\n}\n\n.@{transfer-prefix-cls} {\n &-status-error {\n .transfer-status-color(@error-color);\n }\n\n &-status-warning {\n .transfer-status-color(@warning-color);\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../checkbox/style/mixin';\n\n@transfer-prefix-cls: ~'@{ant-prefix}-transfer';\n\n.@{transfer-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &-list {\n &-search {\n .@{transfer-prefix-cls}-rtl & {\n padding-right: @control-padding-horizontal-sm;\n padding-left: 24px;\n }\n\n &-action {\n .@{transfer-prefix-cls}-rtl & {\n right: auto;\n left: 12px;\n }\n }\n }\n\n &-header {\n > *:not(:last-child) {\n .@{transfer-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n\n .@{transfer-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n\n &-title {\n .@{transfer-prefix-cls}-rtl & {\n text-align: left;\n }\n }\n }\n\n &-content {\n &-item {\n > *:not(:last-child) {\n .@{transfer-prefix-cls}-rtl & {\n margin-right: 0;\n margin-left: 8px;\n }\n }\n }\n }\n\n &-pagination {\n .@{transfer-prefix-cls}-rtl & {\n text-align: left;\n }\n }\n\n &-footer {\n .@{transfer-prefix-cls}-rtl & {\n right: 0;\n left: auto;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n@import '../../tree/style/mixin';\n@import '../../checkbox/style/mixin';\n\n@tree-select-prefix-cls: ~'@{ant-prefix}-tree-select';\n@select-tree-prefix-cls: ~'@{ant-prefix}-select-tree';\n\n.antCheckboxFn(@checkbox-prefix-cls: ~'@{select-tree-prefix-cls}-checkbox');\n\n.@{tree-select-prefix-cls} {\n // ======================= Dropdown =======================\n &-dropdown {\n padding: @padding-xs (@padding-xs / 2);\n\n &-rtl {\n direction: rtl;\n }\n // ======================== Tree ========================\n .@{select-tree-prefix-cls} {\n border-radius: 0;\n\n &-list-holder-inner {\n align-items: stretch;\n\n .@{select-tree-prefix-cls}-treenode {\n .@{select-tree-prefix-cls}-node-content-wrapper {\n flex: auto;\n }\n }\n }\n }\n }\n}\n\n.@{select-tree-prefix-cls} {\n .antTreeFn(@select-tree-prefix-cls);\n\n // change switcher icon rotation in rtl direction\n & &-switcher {\n &_close {\n .@{select-tree-prefix-cls}-switcher-icon {\n svg {\n .@{tree-select-prefix-cls}-dropdown-rtl & {\n transform: rotate(90deg);\n }\n }\n }\n }\n\n &-loading-icon {\n .@{tree-select-prefix-cls}-dropdown-rtl & {\n transform: scaleY(-1);\n }\n }\n }\n}\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@typography-prefix-cls: ~'@{ant-prefix}-typography';\n\n// =============== Basic ===============\n.@{typography-prefix-cls} {\n color: @text-color;\n word-break: break-word;\n\n &&-secondary {\n color: @text-color-secondary;\n }\n\n &&-success {\n color: @success-color;\n }\n\n &&-warning {\n color: @warning-color;\n }\n\n &&-danger {\n color: @error-color;\n\n a&:active,\n a&:focus {\n color: @error-color-active;\n }\n\n a&:hover {\n color: @error-color-hover;\n }\n }\n\n &&-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n user-select: none;\n }\n\n // Tag\n div&,\n p {\n .typography-paragraph();\n }\n\n h1&,\n div&-h1,\n div&-h1 > textarea,\n h1 {\n .typography-title-1();\n }\n\n h2&,\n div&-h2,\n div&-h2 > textarea,\n h2 {\n .typography-title-2();\n }\n\n h3&,\n div&-h3,\n div&-h3 > textarea,\n h3 {\n .typography-title-3();\n }\n\n h4&,\n div&-h4,\n div&-h4 > textarea,\n h4 {\n .typography-title-4();\n }\n\n h5&,\n div&-h5,\n div&-h5 > textarea,\n h5 {\n .typography-title-5();\n }\n\n h1&,\n h2&,\n h3&,\n h4&,\n h5& {\n .@{typography-prefix-cls} + & {\n margin-top: @typography-title-margin-top;\n }\n }\n\n div,\n ul,\n li,\n p,\n h1,\n h2,\n h3,\n h4,\n h5 {\n + h1,\n + h2,\n + h3,\n + h4,\n + h5 {\n margin-top: @typography-title-margin-top;\n }\n }\n\n a&-ellipsis,\n span&-ellipsis {\n display: inline-block;\n max-width: 100%;\n }\n\n a&,\n a {\n .operation-unit();\n text-decoration: @link-decoration;\n\n &:active,\n &:hover {\n text-decoration: @link-hover-decoration;\n }\n\n &[disabled],\n &.@{typography-prefix-cls}-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n\n &:active,\n &:hover {\n color: @disabled-color;\n }\n\n &:active {\n pointer-events: none;\n }\n }\n }\n\n code {\n margin: 0 0.2em;\n padding: 0.2em 0.4em 0.1em;\n font-size: 85%;\n background: rgba(150, 150, 150, 0.1);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-radius: 3px;\n }\n\n kbd {\n margin: 0 0.2em;\n padding: 0.15em 0.4em 0.1em;\n font-size: 90%;\n background: rgba(150, 150, 150, 0.06);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-bottom-width: 2px;\n border-radius: 3px;\n }\n\n mark {\n padding: 0;\n background-color: @gold-3;\n }\n\n u,\n ins {\n text-decoration: underline;\n text-decoration-skip-ink: auto;\n }\n\n s,\n del {\n text-decoration: line-through;\n }\n\n strong {\n font-weight: 600;\n }\n\n // Operation\n &-expand,\n &-edit,\n &-copy {\n .operation-unit();\n\n margin-left: 4px;\n }\n\n &-copy-success {\n &,\n &:hover,\n &:focus {\n color: @success-color;\n }\n }\n\n // Text input area\n &-edit-content {\n position: relative;\n\n div& {\n left: -@input-padding-horizontal - 1px;\n margin-top: -@input-padding-vertical-base - 1px;\n margin-bottom: calc(1em - @input-padding-vertical-base - 1px);\n }\n\n &-confirm {\n position: absolute;\n right: 10px;\n bottom: 8px;\n color: @text-color-secondary;\n // default style\n font-weight: normal;\n font-size: @font-size-base;\n font-style: normal;\n pointer-events: none;\n }\n\n // Fix Editable Textarea flash in Firefox\n textarea {\n // https://stackoverflow.com/a/7695964/3040605\n height: 1em;\n margin: 0 !important;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -moz-transition: none;\n }\n }\n\n // list\n ul,\n ol {\n margin: 0 0 1em;\n padding: 0;\n\n li {\n margin: 0 0 0 20px;\n padding: 0 0 0 4px;\n }\n }\n\n ul {\n list-style-type: circle;\n\n ul {\n list-style-type: disc;\n }\n }\n\n ol {\n list-style-type: decimal;\n }\n\n // pre & block\n pre,\n blockquote {\n margin: 1em 0;\n }\n\n pre {\n padding: 0.4em 0.6em;\n white-space: pre-wrap;\n word-wrap: break-word;\n background: rgba(150, 150, 150, 0.1);\n border: 1px solid rgba(100, 100, 100, 0.2);\n border-radius: 3px;\n\n // Compatible for marked\n code {\n display: inline;\n margin: 0;\n padding: 0;\n font-size: inherit;\n font-family: inherit;\n background: transparent;\n border: 0;\n }\n }\n\n blockquote {\n padding: 0 0 0 0.6em;\n border-left: 4px solid rgba(100, 100, 100, 0.2);\n opacity: 0.85;\n }\n\n // ============ Ellipsis ============\n &-single-line {\n white-space: nowrap;\n }\n\n &-ellipsis-single-line {\n overflow: hidden;\n text-overflow: ellipsis;\n\n // https://blog.csdn.net/iefreer/article/details/50421025\n a&,\n span& {\n vertical-align: bottom;\n }\n }\n\n &-ellipsis-multiple-line {\n /* stylelint-disable-next-line value-no-vendor-prefix */\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 3;\n\n /*! autoprefixer: ignore next */\n -webkit-box-orient: vertical;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","// =============== Common ===============\n.typography-paragraph() {\n margin-bottom: 1em;\n}\n\n.typography-title(@fontSize; @fontWeight; @lineHeight; @headingColor; @headingMarginBottom;) {\n margin-bottom: @headingMarginBottom;\n color: @headingColor;\n font-weight: @fontWeight;\n font-size: @fontSize;\n line-height: @lineHeight;\n}\n\n.typography-title-1() {\n .typography-title(\n @heading-1-size,\n @typography-title-font-weight,\n 1.23,\n @heading-color,\n @typography-title-margin-bottom\n );\n}\n.typography-title-2() {\n .typography-title(\n @heading-2-size,\n @typography-title-font-weight,\n 1.35,\n @heading-color,\n @typography-title-margin-bottom\n );\n}\n.typography-title-3() {\n .typography-title(\n @heading-3-size,\n @typography-title-font-weight,\n 1.35,\n @heading-color,\n @typography-title-margin-bottom\n );\n}\n.typography-title-4() {\n .typography-title(\n @heading-4-size,\n @typography-title-font-weight,\n 1.4,\n @heading-color,\n @typography-title-margin-bottom\n );\n}\n.typography-title-5() {\n .typography-title(\n @heading-5-size,\n @typography-title-font-weight,\n 1.5,\n @heading-color,\n @typography-title-margin-bottom\n );\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@typography-prefix-cls: ~'@{ant-prefix}-typography';\n\n.@{typography-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n // Operation\n &-expand,\n &-edit,\n &-copy {\n .@{typography-prefix-cls}-rtl & {\n margin-right: 4px;\n margin-left: 0;\n }\n }\n\n &-expand {\n .@{typography-prefix-cls}-rtl & {\n float: left;\n }\n }\n\n // Text input area\n &-edit-content {\n div& {\n &.@{typography-prefix-cls}-rtl {\n right: -@input-padding-horizontal - 1px;\n left: auto;\n }\n }\n\n &-confirm {\n .@{typography-prefix-cls}-rtl & {\n right: auto;\n left: 10px;\n }\n }\n }\n\n // list\n ul,\n ol {\n li {\n .@{typography-prefix-cls}-rtl& {\n margin: 0 20px 0 0;\n padding: 0 4px 0 0;\n }\n }\n }\n}\n","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@upload-prefix-cls: ~'@{ant-prefix}-upload';\n@upload-item: ~'@{ant-prefix}-upload-list-item';\n@upload-picture-card-size: 104px;\n@upload-picture-card-border-style: @border-style-base;\n\n.@{upload-prefix-cls} {\n .reset-component();\n\n outline: 0;\n\n p {\n margin: 0;\n }\n\n &-btn {\n display: block;\n width: 100%;\n outline: none;\n }\n\n input[type='file'] {\n cursor: pointer;\n }\n\n &&-select {\n display: inline-block;\n }\n\n &&-disabled {\n color: @disabled-color;\n cursor: not-allowed;\n }\n\n &&-select-picture-card {\n width: @upload-picture-card-size;\n height: @upload-picture-card-size;\n margin-right: 8px;\n margin-bottom: 8px;\n text-align: center;\n vertical-align: top;\n background-color: @background-color-light;\n border: @border-width-base dashed @border-color-base;\n border-radius: @border-radius-base;\n cursor: pointer;\n transition: border-color 0.3s;\n\n > .@{upload-prefix-cls} {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n }\n\n &:hover {\n border-color: @primary-color;\n .@{upload-prefix-cls}-disabled& {\n border-color: @border-color-base;\n }\n }\n }\n\n &&-drag {\n position: relative;\n width: 100%;\n height: 100%;\n text-align: center;\n background: @background-color-light;\n border: @border-width-base dashed @border-color-base;\n border-radius: @border-radius-base;\n cursor: pointer;\n transition: border-color 0.3s;\n\n .@{upload-prefix-cls} {\n padding: @padding-md 0;\n }\n\n &.@{upload-prefix-cls}-drag-hover:not(.@{upload-prefix-cls}-disabled) {\n border-color: @primary-7;\n }\n\n &.@{upload-prefix-cls}-disabled {\n cursor: not-allowed;\n }\n\n .@{upload-prefix-cls}-btn {\n display: table;\n height: 100%;\n }\n\n .@{upload-prefix-cls}-drag-container {\n display: table-cell;\n vertical-align: middle;\n }\n\n &:not(.@{upload-prefix-cls}-disabled):hover {\n border-color: @primary-5;\n }\n\n p.@{upload-prefix-cls}-drag-icon {\n .@{iconfont-css-prefix} {\n color: @primary-5;\n font-size: 48px;\n }\n\n margin-bottom: 20px;\n }\n p.@{upload-prefix-cls}-text {\n margin: 0 0 4px;\n color: @heading-color;\n font-size: @font-size-lg;\n }\n p.@{upload-prefix-cls}-hint {\n color: @text-color-secondary;\n font-size: @font-size-base;\n }\n\n .@{iconfont-css-prefix}-plus {\n color: @disabled-color;\n font-size: 30px;\n transition: all 0.3s;\n\n &:hover {\n color: @text-color-secondary;\n }\n }\n &:hover .@{iconfont-css-prefix}-plus {\n color: @text-color-secondary;\n }\n }\n\n &-picture-card-wrapper {\n .clearfix();\n\n display: inline-block;\n width: 100%;\n }\n}\n\n.@{upload-prefix-cls}-list {\n .reset-component();\n .clearfix();\n line-height: @line-height-base;\n\n // ============================ Item ============================\n &-item {\n position: relative;\n height: @line-height-base * @font-size-base;\n margin-top: @margin-xs;\n font-size: @font-size-base;\n\n &-name {\n display: inline-block;\n width: 100%;\n padding-left: @font-size-base + 8px;\n overflow: hidden;\n line-height: @line-height-base;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-card-actions {\n position: absolute;\n right: 0;\n\n &-btn {\n opacity: 0;\n }\n\n &-btn.@{ant-prefix}-btn-sm {\n height: @line-height-base * @font-size-base;\n line-height: 1;\n vertical-align: top;\n }\n\n &.picture {\n top: 22px;\n line-height: 0;\n }\n\n &-btn:focus,\n &.picture &-btn {\n opacity: 1;\n }\n\n .@{iconfont-css-prefix} {\n color: @upload-actions-color;\n transition: all 0.3s;\n }\n\n &:hover .@{iconfont-css-prefix} {\n color: @text-color;\n }\n }\n\n &-info {\n height: 100%;\n transition: background-color 0.3s;\n\n > span {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .@{iconfont-css-prefix}-loading,\n .@{upload-prefix-cls}-text-icon {\n .@{iconfont-css-prefix} {\n position: absolute;\n top: (@font-size-base / 2) - 2px;\n color: @text-color-secondary;\n font-size: @font-size-base;\n }\n }\n }\n\n &:hover &-info {\n background-color: @item-hover-bg;\n }\n\n &:hover &-card-actions-btn {\n opacity: 1;\n }\n\n &-error,\n &-error .@{upload-prefix-cls}-text-icon > .@{iconfont-css-prefix},\n &-error &-name {\n color: @error-color;\n }\n\n &-error &-card-actions {\n .@{iconfont-css-prefix} {\n color: @error-color;\n }\n\n &-btn {\n opacity: 1;\n }\n }\n\n &-progress {\n position: absolute;\n bottom: -12px;\n width: 100%;\n padding-left: @font-size-base + 12px;\n font-size: @font-size-base;\n line-height: 0;\n }\n }\n\n // =================== Picture & Picture Card ===================\n &-picture,\n &-picture-card {\n .@{upload-item} {\n position: relative;\n height: 66px;\n padding: @padding-xs;\n border: @border-width-base @upload-picture-card-border-style @border-color-base;\n border-radius: @border-radius-base;\n\n &:hover {\n background: transparent;\n }\n\n &-error {\n border-color: @error-color;\n }\n }\n\n .@{upload-item}-info {\n padding: 0;\n }\n\n .@{upload-item}:hover .@{upload-item}-info {\n background: transparent;\n }\n\n .@{upload-item}-uploading {\n border-style: dashed;\n }\n\n .@{upload-item}-thumbnail {\n width: 48px;\n height: 48px;\n line-height: 60px;\n text-align: center;\n opacity: 0.8;\n\n .@{iconfont-css-prefix} {\n font-size: 26px;\n }\n }\n\n // Adjust the color of the error icon : https://github.com/ant-design/ant-design/pull/24160\n .@{upload-item}-error .@{upload-item}-thumbnail {\n .@{iconfont-css-prefix} {\n svg path {\n &[fill='#e6f7ff'] {\n fill: @error-color-deprecated-bg;\n }\n\n &[fill='#1890ff'] {\n fill: @error-color;\n }\n }\n }\n }\n\n .@{upload-item}-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n font-size: 26px;\n transform: translate(-50%, -50%);\n\n .@{iconfont-css-prefix} {\n font-size: 26px;\n }\n }\n\n .@{upload-item}-image {\n max-width: 100%;\n }\n\n .@{upload-item}-thumbnail img {\n display: block;\n width: 48px;\n height: 48px;\n overflow: hidden;\n }\n\n .@{upload-item}-name {\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n margin: 0 0 0 8px;\n padding-right: 8px;\n padding-left: 48px;\n overflow: hidden;\n line-height: 44px;\n white-space: nowrap;\n text-overflow: ellipsis;\n transition: all 0.3s;\n }\n\n .@{upload-item}-uploading .@{upload-item}-name {\n margin-bottom: 12px;\n }\n\n .@{upload-item}-progress {\n bottom: 14px;\n width: ~'calc(100% - 24px)';\n margin-top: 0;\n padding-left: 56px;\n }\n }\n\n // ======================== Picture Card ========================\n &-picture-card {\n &-container {\n display: inline-block;\n width: @upload-picture-card-size;\n height: @upload-picture-card-size;\n margin: 0 @margin-xs @margin-xs 0;\n vertical-align: top;\n }\n\n .@{upload-item} {\n height: 100%;\n margin: 0;\n }\n\n .@{upload-item}-info {\n position: relative;\n height: 100%;\n overflow: hidden;\n\n &::before {\n position: absolute;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: fade(@black, 50%);\n opacity: 0;\n transition: all 0.3s;\n content: ' ';\n }\n }\n\n .@{upload-item}:hover .@{upload-item}-info::before {\n opacity: 1;\n }\n\n .@{upload-item}-actions {\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 10;\n white-space: nowrap;\n transform: translate(-50%, -50%);\n opacity: 0;\n transition: all 0.3s;\n\n .@{iconfont-css-prefix}-eye,\n .@{iconfont-css-prefix}-download,\n .@{iconfont-css-prefix}-delete {\n z-index: 10;\n width: 16px;\n margin: 0 4px;\n color: @text-color-dark;\n font-size: 16px;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n color: @text-color-inverse;\n }\n }\n }\n\n .@{upload-item}-info:hover + .@{upload-item}-actions,\n .@{upload-item}-actions:hover {\n opacity: 1;\n }\n\n .@{upload-item}-thumbnail,\n .@{upload-item}-thumbnail img {\n position: static;\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n .@{upload-item}-name {\n display: none;\n margin: 8px 0 0;\n padding: 0;\n line-height: @line-height-base;\n text-align: center;\n }\n\n .@{upload-item}-file + .@{upload-item}-name {\n position: absolute;\n bottom: 10px;\n display: block;\n }\n\n .@{upload-item}-uploading {\n &.@{upload-item} {\n background-color: @background-color-light;\n }\n\n .@{upload-item}-info {\n height: auto;\n\n &::before,\n .@{iconfont-css-prefix}-eye,\n .@{iconfont-css-prefix}-delete {\n display: none;\n }\n }\n }\n\n .@{upload-item}-progress {\n bottom: 32px;\n width: calc(100% - 14px);\n padding-left: 0;\n }\n }\n\n // ======================= Picture & Text =======================\n &-text,\n &-picture {\n &-container {\n transition: opacity @animation-duration-slow, height @animation-duration-slow;\n\n &::before {\n display: table;\n width: 0;\n height: 0;\n content: '';\n }\n\n // Don't know why span here, just stretch it\n .@{upload-prefix-cls}-span {\n display: block;\n flex: auto;\n }\n }\n\n // text & picture no need this additional element.\n // But it used for picture-card, let's keep it.\n .@{upload-prefix-cls}-span {\n display: flex;\n align-items: center;\n\n > * {\n flex: none;\n }\n }\n\n .@{upload-item}-name {\n flex: auto;\n margin: 0;\n padding: 0 @padding-xs;\n }\n\n .@{upload-item}-card-actions {\n position: static;\n }\n }\n\n // ============================ Text ============================\n &-text {\n .@{upload-prefix-cls}-text-icon {\n .@{iconfont-css-prefix} {\n position: static;\n }\n }\n }\n\n // =========================== Motion ===========================\n .@{upload-prefix-cls}-animate-inline-appear,\n .@{upload-prefix-cls}-animate-inline-enter,\n .@{upload-prefix-cls}-animate-inline-leave {\n animation-duration: @animation-duration-slow;\n animation-timing-function: @ease-in-out-circ;\n animation-fill-mode: forwards;\n }\n\n .@{upload-prefix-cls}-animate-inline-appear,\n .@{upload-prefix-cls}-animate-inline-enter {\n animation-name: uploadAnimateInlineIn;\n }\n\n .@{upload-prefix-cls}-animate-inline-leave {\n animation-name: uploadAnimateInlineOut;\n }\n}\n\n@keyframes uploadAnimateInlineIn {\n from {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n\n@keyframes uploadAnimateInlineOut {\n to {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n\n@import './rtl';\n\n@root-entry-name: default;","@import '../../style/themes/index';\n@import '../../style/mixins/index';\n\n@upload-prefix-cls: ~'@{ant-prefix}-upload';\n@upload-item: ~'@{ant-prefix}-upload-list-item';\n\n.@{upload-prefix-cls} {\n &-rtl {\n direction: rtl;\n }\n\n &&-select-picture-card {\n .@{upload-prefix-cls}-rtl& {\n margin-right: auto;\n margin-left: 8px;\n }\n }\n}\n\n.@{upload-prefix-cls}-list {\n &-rtl {\n direction: rtl;\n }\n\n &-item-list-type-text {\n &:hover {\n .@{upload-prefix-cls}-list-item-name-icon-count-1 {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: 22px;\n padding-left: 14px;\n }\n }\n .@{upload-prefix-cls}-list-item-name-icon-count-2 {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: 22px;\n padding-left: 28px;\n }\n }\n }\n }\n\n &-item {\n &-name {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: @font-size-base + 8px;\n padding-left: 0;\n }\n }\n\n &-name-icon-count-1 {\n .@{upload-prefix-cls}-list-rtl & {\n padding-left: 14px;\n }\n }\n\n &-card-actions {\n .@{upload-prefix-cls}-list-rtl & {\n right: auto;\n left: 0;\n }\n .@{iconfont-css-prefix} {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: 0;\n padding-left: 5px;\n }\n }\n }\n\n &-info {\n .@{upload-prefix-cls}-list-rtl & {\n padding: 0 4px 0 12px;\n }\n }\n\n &-error &-card-actions {\n .@{iconfont-css-prefix} {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: 0;\n padding-left: 5px;\n }\n }\n }\n\n &-progress {\n .@{upload-prefix-cls}-list-rtl & {\n padding-right: @font-size-base + 12px;\n padding-left: 0;\n }\n }\n }\n\n &-picture,\n &-picture-card {\n .@{upload-item}-info {\n padding: 0;\n }\n\n .@{upload-item}-thumbnail {\n .@{upload-prefix-cls}-list-rtl& {\n right: 8px;\n left: auto;\n }\n }\n\n .@{upload-item}-icon {\n .@{upload-prefix-cls}-list-rtl& {\n right: 50%;\n left: auto;\n transform: translate(50%, -50%);\n }\n }\n\n .@{upload-item}-name {\n .@{upload-prefix-cls}-list-rtl& {\n margin: 0 8px 0 0;\n padding-right: 48px;\n padding-left: 8px;\n }\n }\n\n .@{upload-item}-name-icon-count-1 {\n .@{upload-prefix-cls}-list-rtl& {\n padding-right: 48px;\n padding-left: 18px;\n }\n }\n\n .@{upload-item}-name-icon-count-2 {\n .@{upload-prefix-cls}-list-rtl& {\n padding-right: 48px;\n padding-left: 36px;\n }\n }\n\n .@{upload-item}-progress {\n .@{upload-prefix-cls}-list-rtl& {\n padding-right: 0;\n padding-left: 0;\n }\n }\n }\n\n &-picture-card {\n &-container {\n .@{upload-prefix-cls}-list-rtl & {\n margin: 0 0 @margin-xs @margin-xs;\n }\n }\n\n .@{upload-item}-actions {\n .@{upload-prefix-cls}-list-rtl& {\n right: 50%;\n left: auto;\n transform: translate(50%, -50%);\n }\n }\n\n .@{upload-item}-file + .@{upload-item}-name {\n .@{upload-prefix-cls}-list-rtl& {\n margin: 8px 0 0;\n padding: 0;\n }\n }\n }\n}\n","@import '~antd/dist/antd.css';\n\n.App {\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n",".NavMenu {\n width: 220px;\n transition: ease 0.3s;\n transition-property: width;\n}\n\n.NavMenu.active {\n width: 0;\n}",".code-editor {\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.code-editor .code-box {\n float: left;\n width: 500px;\n position: relative;\n z-index: auto;\n}\n\n.code-editor .code-box .control {\n line-height: 36px;\n background-color: #eee;\n padding-right: 10px;\n height: 40px;\n}\n\n.code-editor .code-box .btn {\n float: right;\n margin-left: 10px;\n border-radius: 3px;\n background: 0 0;\n color: #32d3a6;\n border: 1px solid #32d3a6;\n padding: 0 10px;\n line-height: 24px;\n margin-top: 5px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.code-editor .code-box .editor-box {\n height: 100vh;\n overflow-y: auto;\n}\n\n.code-editor .code-box .editor-box .mask {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background: 0 0;\n z-index: 1000;\n}\n\n.code-editor .code-box .editor-box textarea {\n display: none;\n}\n\n.code-editor .code-box .editor-box #htmlEdit {\n height: 100%;\n}\n\n.code-editor .code-box .editor-box .cm-editor{\n height: 100%;\n}\n\n.code-editor .splitter {\n float: left;\n cursor: col-resize;\n background-color: #fff;\n width: 2px;\n height: 100vh;\n z-index: 99;\n}\n\n.code-editor .view-box {\n overflow: hidden;\n border-left: 0px solid #ccc;\n background-color: #fff;\n height: 100vh;\n}\n\n.code-editor .view-box iframe {\n border: 0;\n height: 100%;\n width: 100%;\n}",".demo {\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.demo .menu {\n position: relative;\n float: left;\n min-height: 100%;\n border-right: 1px solid #e6e6e6;\n}\n\n.demo .content {\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n\n.demo .links {\n position: absolute;\n bottom: 0px;\n left: 0px;\n background-color: #00000050;\n padding: 0 3px;\n text-decoration: none;\n font-size: 12px;\n}\n\n.demo .links a {\n cursor: pointer;\n color: white;\n}\n\n.demo .links a:hover {\n text-decoration: underline;\n}\n",".examples {\n width: 100%;\n height: 100%;\n overflow: hidden;\n background-color: #000000;\n}\n\n.examples .menu {\n position: fixed;\n top: 0;\n left: -500px;\n z-index: 10;\n width: 460px;\n height: 100%;\n padding: 0;\n transition: all 300ms ease-in-out;\n}\n\n.examples .menu.open {\n left: 0;\n opacity: 0.9;\n}\n\n.examples .menu.open:hover {\n left: 0;\n opacity: 1;\n}\n\n.examples .index-button {\n position: absolute;\n font-size: 38px;\n top: 15px;\n left: 20px;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n z-index: 10;\n transition: all 300ms ease-in-out;\n border: 0;\n background: transparent;\n cursor: pointer;\n color: #ccc;\n}\n\n.examples .index-button.open {\n left: 485px;\n /* color: white; */\n}\n\n.examples .content-container {\n position: absolute;\n z-index: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n overflow: hidden;\n opacity: 1.0;\n pointer-events: all;\n transition: all 300ms ease-in-out;\n background: lightblue;\n background: url(./../../../public/demo/images/dwg_background.png) no-repeat center center fixed;\n background-size: cover;\n}\n\n/* .examples .content-container.open {\n opacity: 0.4;\n pointer-events: none;\n} */\n\n.examples .content-container iframe {\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n/* .examples .content-overlay {\n position: absolute;\n z-index: 7;\n padding: 0;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n overflow: hidden;\n opacity: 1.0;\n pointer-events: none;\n transition: all 300ms ease-in-out;\n}\n\n.examples .content-overlay.open {\n pointer-events: all;\n} */\n\n.examples .page-title {\n position: absolute;\n font-size: 1.6rem;\n top: 25px;\n left: 75px;\n text-align: left;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n z-index: 5;\n transition: all 300ms ease-in-out;\n max-width: calc(100% - 450px);\n pointer-events: none;\n color: #ccc;\n}\n\n.examples .page-title.open {\n left: 545px;\n /* color: white; */\n}\n\n.examples .menu #index {\n position: absolute;\n width: 100%;\n height: 100%;\n background: #fdfdfd;\n overflow: auto;\n border-right: 2px solid #212529;\n padding: 20px;\n padding-bottom: 100px;\n user-select: none;\n top: 0;\n left: 0;\n}\n\n#index h1 {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 1.8rem;\n font-weight: normal;\n text-decoration: none !important;\n}\n\n#index h2 {\n font-size: 1.4rem;\n font-weight: normal;\n padding-top: 20px;\n padding-bottom: 10px;\n text-decoration: none;\n}\n\n#index hr {\n display: block;\n unicode-bidi: isolate;\n margin-block-start: 0.5em;\n margin-block-end: 0.5em;\n margin-inline-start: auto;\n margin-inline-end: auto;\n overflow: hidden;\n border-style: inset;\n border-width: 1px;\n}\n\n#index .link {\n margin-left: 0 !important;\n padding-left: 0 !important;\n padding-top: 1px;\n text-decoration: none;\n font-weight: normal;\n background: #fdfdfd;\n cursor: pointer;\n line-height: 1.5em;\n font-size: 1rem;\n}\n\n\nelement.style {\n}\n#index .link:hover {\n text-decoration: underline;\n}\n\n.examples .links {\n position: absolute;\n bottom: 0px;\n left: 0px;\n background-color: #00000050;\n padding: 0 3px;\n text-decoration: none;\n font-size: 12px;\n}\n\n.examples .links a {\n cursor: pointer;\n color: white;\n}\n\n.examples .links a:hover {\n text-decoration: underline;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.abd1e4ad.js b/static/js/main.abd1e4ad.js deleted file mode 100644 index 46f623a..0000000 --- a/static/js/main.abd1e4ad.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(){var e={694:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e=[],t=0;ti?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++r=i?e:r(e,t,n)}},322:function(e,t,n){var r=n(737),i=n(302),o=n(580),a=n(518);e.exports=function(e){return function(t){t=a(t);var n=i(t)?o(t):void 0,s=n?n[0]:t.charAt(0),l=n?r(n,1).join(""):t.slice(1);return s[e]()+l}}},810:function(e,t,n){var r=n(95),i=n(857),o=n(660),a=RegExp("['\u2019]","g");e.exports=function(e){return function(t){return r(o(i(t).replace(a,"")),e,"")}}},868:function(e,t,n){var r=n(632)({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"});e.exports=r},32:function(e,t,n){var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},587:function(e,t,n){var r=n(197),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(l){}var i=a.call(e);return r&&(t?e[s]=n:delete e[s]),i}},302:function(e){var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},137:function(e){var t=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return t.test(e)}},581:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},9:function(e,t,n){var r=n(32),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();e.exports=o},580:function(e,t,n){var r=n(622),i=n(302),o=n(110);e.exports=function(e){return i(e)?o(e):r(e)}},110:function(e){var t="\\ud800-\\udfff",n="["+t+"]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",i="\\ud83c[\\udffb-\\udfff]",o="[^"+t+"]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",l="(?:"+r+"|"+i+")"+"?",u="[\\ufe0e\\ufe0f]?",c=u+l+("(?:\\u200d(?:"+[o,a,s].join("|")+")"+u+l+")*"),f="(?:"+[o+r+"?",r,a,s,n].join("|")+")",h=RegExp(i+"(?="+i+")|"+f+c,"g");e.exports=function(e){return e.match(h)||[]}},29:function(e){var t="\\ud800-\\udfff",n="\\u2700-\\u27bf",r="a-z\\xdf-\\xf6\\xf8-\\xff",i="A-Z\\xc0-\\xd6\\xd8-\\xde",o="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",a="["+o+"]",s="\\d+",l="["+n+"]",u="["+r+"]",c="[^"+t+o+s+n+r+i+"]",f="(?:\\ud83c[\\udde6-\\uddff]){2}",h="[\\ud800-\\udbff][\\udc00-\\udfff]",d="["+i+"]",p="(?:"+u+"|"+c+")",v="(?:"+d+"|"+c+")",m="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",g="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",y="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",O="[\\ufe0e\\ufe0f]?",b=O+y+("(?:\\u200d(?:"+["[^"+t+"]",f,h].join("|")+")"+O+y+")*"),w="(?:"+[l,f,h].join("|")+")"+b,k=RegExp([d+"?"+u+"+"+m+"(?="+[a,d,"$"].join("|")+")",v+"+"+g+"(?="+[a,d+p,"$"].join("|")+")",d+"?"+p+"+"+m,d+"+"+g,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",s,w].join("|"),"g");e.exports=function(e){return e.match(k)||[]}},567:function(e,t,n){var r=n(131),i=n(810)((function(e,t,n){return t=t.toLowerCase(),e+(n?r(t):t)}));e.exports=i},131:function(e,t,n){var r=n(518),i=n(85);e.exports=function(e){return i(r(e).toLowerCase())}},857:function(e,t,n){var r=n(868),i=n(518),o=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,a=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");e.exports=function(e){return(e=i(e))&&e.replace(o,r).replace(a,"")}},629:function(e){var t=Array.isArray;e.exports=t},141:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},152:function(e,t,n){var r=n(66),i=n(141);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==r(e)}},518:function(e,t,n){var r=n(446);e.exports=function(e){return null==e?"":r(e)}},85:function(e,t,n){var r=n(322)("toUpperCase");e.exports=r},660:function(e,t,n){var r=n(240),i=n(137),o=n(518),a=n(29);e.exports=function(e,t,n){return e=o(e),void 0===(t=n?void 0:t)?i(e)?a(e):r(e):e.match(t)||[]}},463:function(e,t,n){"use strict";var r=n(791),i=n(296);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n