{"ast":null,"code":"var _jsxFileName = \"/Users/nili/Documents/trae_projects/client/src/pages/ProjectDetail.js\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect } from 'react';\nimport { Card, Descriptions, Tag, Button, Space, Modal, Form, Input, Select, DatePicker, message, Tabs, List, Timeline, Table, Popconfirm, Row, Col, Upload, Spin, Alert, Collapse } from 'antd';\nimport { ArrowLeftOutlined, EditOutlined, PlusOutlined, CheckOutlined, CloseOutlined, UploadOutlined, FileTextOutlined, DeleteOutlined, DownloadOutlined, FileSearchOutlined } from '@ant-design/icons';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { projectsAPI, usersAPI, investorsAPI, decisionProcessAPI, postInvestmentAPI, projectPermissionsAPI } from '../services/api';\nimport { useAuth } from '../contexts/AuthContext';\nimport dayjs from 'dayjs';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst {\n  Option\n} = Select;\nconst {\n  TextArea\n} = Input;\nconst ProjectDetail = () => {\n  _s();\n  const {\n    id\n  } = useParams();\n  const navigate = useNavigate();\n  const {\n    user,\n    isAdmin,\n    isInvestmentManager\n  } = useAuth();\n  const [project, setProject] = useState(null);\n  const [loading, setLoading] = useState(true);\n  const [users, setUsers] = useState([]);\n  const [investors, setInvestors] = useState([]);\n  const [documents, setDocuments] = useState([]);\n  const [documentsLoading, setDocumentsLoading] = useState(false);\n  const [uploading, setUploading] = useState(false);\n  const [decisionProcess, setDecisionProcess] = useState([]);\n  const [postInvestments, setPostInvestments] = useState([]);\n  const [projectPermissions, setProjectPermissions] = useState([]);\n  const [taskModalVisible, setTaskModalVisible] = useState(false);\n  const [milestoneModalVisible, setMilestoneModalVisible] = useState(false);\n  const [updateModalVisible, setUpdateModalVisible] = useState(false);\n  const [investorModalVisible, setInvestorModalVisible] = useState(false);\n  const [postInvestmentModalVisible, setPostInvestmentModalVisible] = useState(false);\n  const [permissionModalVisible, setPermissionModalVisible] = useState(false);\n  const [taskForm] = Form.useForm();\n  const [milestoneForm] = Form.useForm();\n  const [updateForm] = Form.useForm();\n  const [investorForm] = Form.useForm();\n  const [postInvestmentForm] = Form.useForm();\n  const [permissionForm] = Form.useForm();\n  useEffect(() => {\n    if (id) {\n      fetchProject();\n      fetchUsers();\n      fetchInvestors();\n      fetchDocuments();\n      fetchDecisionProcess();\n      fetchPostInvestments();\n      fetchProjectPermissions();\n    }\n  }, [id]);\n  const fetchProject = async () => {\n    setLoading(true);\n    try {\n      const response = await projectsAPI.getOne(id);\n      const data = response.data || {};\n      setProject({\n        project: data.project || {},\n        investors: data.investors || [],\n        tasks: data.tasks || [],\n        milestones: data.milestones || [],\n        updates: data.updates || [],\n        documents: data.documents || []\n      });\n    } catch (error) {\n      message.error('获取项目详情失败');\n      console.error(error);\n    } finally {\n      setLoading(false);\n    }\n  };\n  const fetchUsers = async () => {\n    try {\n      var _response$data;\n      const response = await usersAPI.getAll({\n        limit: 100\n      });\n      setUsers(((_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.users) || []);\n    } catch (error) {\n      console.error('获取用户列表失败:', error);\n    }\n  };\n  const fetchInvestors = async () => {\n    try {\n      var _response$data2;\n      const response = await investorsAPI.getAll({\n        limit: 100\n      });\n      setInvestors(((_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.investors) || []);\n    } catch (error) {\n      console.error('获取投资者列表失败:', error);\n    }\n  };\n  const fetchDocuments = async () => {\n    setDocumentsLoading(true);\n    try {\n      var _response$data3;\n      const response = await projectsAPI.getDocuments(id);\n      setDocuments(((_response$data3 = response.data) === null || _response$data3 === void 0 ? void 0 : _response$data3.documents) || []);\n    } catch (error) {\n      console.error('获取文档列表失败:', error);\n    } finally {\n      setDocumentsLoading(false);\n    }\n  };\n  const fetchDecisionProcess = async () => {\n    try {\n      var _response$data4;\n      const response = await decisionProcessAPI.getByProject(id);\n      setDecisionProcess(((_response$data4 = response.data) === null || _response$data4 === void 0 ? void 0 : _response$data4.decision_process) || []);\n    } catch (error) {\n      console.error('获取投资决策流程失败:', error);\n    }\n  };\n  const fetchPostInvestments = async () => {\n    try {\n      var _response$data5;\n      const response = await postInvestmentAPI.getByProject(id);\n      setPostInvestments(((_response$data5 = response.data) === null || _response$data5 === void 0 ? void 0 : _response$data5.post_investment) || []);\n    } catch (error) {\n      console.error('获取投后管理记录失败:', error);\n    }\n  };\n  const fetchProjectPermissions = async () => {\n    try {\n      var _response$data6;\n      const response = await projectPermissionsAPI.getByProject(id);\n      setProjectPermissions(((_response$data6 = response.data) === null || _response$data6 === void 0 ? void 0 : _response$data6.project_permissions) || []);\n    } catch (error) {\n      console.error('获取项目权限失败:', error);\n    }\n  };\n  const getStatusColor = status => {\n    if (!status) return 'default';\n    const colors = {\n      draft: 'default',\n      active: 'green',\n      completed: 'blue',\n      pending: 'orange',\n      paused: 'red'\n    };\n    return colors[status] || 'default';\n  };\n  const getStatusText = status => {\n    if (!status) return '-';\n    const texts = {\n      draft: '草稿',\n      active: '进行中',\n      completed: '已完成',\n      pending: '待审批',\n      paused: '已暂停'\n    };\n    return texts[status] || status;\n  };\n  const getPriorityColor = priority => {\n    if (!priority) return 'default';\n    const colors = {\n      high: 'red',\n      medium: 'orange',\n      low: 'blue'\n    };\n    return colors[priority] || 'default';\n  };\n  const getAnalysisStatusTag = status => {\n    const statusMap = {\n      pending: {\n        color: 'default',\n        text: '待分析'\n      },\n      analyzing: {\n        color: 'blue',\n        text: '分析中'\n      },\n      completed: {\n        color: 'green',\n        text: '分析完成'\n      },\n      error: {\n        color: 'red',\n        text: '分析失败'\n      }\n    };\n    const info = statusMap[status] || {\n      color: 'default',\n      text: status || '-'\n    };\n    return /*#__PURE__*/_jsxDEV(Tag, {\n      color: info.color,\n      children: info.text\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 204,\n      columnNumber: 12\n    }, this);\n  };\n  const renderAnalysisResult = document => {\n    if (!(document !== null && document !== void 0 && document.analysis_result)) return null;\n    try {\n      const result = JSON.parse(document.analysis_result);\n      if (result.error) {\n        return /*#__PURE__*/_jsxDEV(Alert, {\n          type: \"error\",\n          message: \"\\u5206\\u6790\\u5931\\u8D25\",\n          description: result.message\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 212,\n          columnNumber: 16\n        }, this);\n      }\n      return /*#__PURE__*/_jsxDEV(Collapse, {\n        ghost: true,\n        children: /*#__PURE__*/_jsxDEV(Collapse.Panel, {\n          header: \"\\u6587\\u4EF6\\u5206\\u6790\\u62A5\\u544A\",\n          children: [/*#__PURE__*/_jsxDEV(Descriptions, {\n            column: 1,\n            size: \"small\",\n            children: [/*#__PURE__*/_jsxDEV(Descriptions.Item, {\n              label: \"\\u6587\\u4EF6\\u7C7B\\u578B\",\n              children: result.fileType\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 218,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n              label: \"\\u6587\\u4EF6\\u5927\\u5C0F\",\n              children: result.fileSizeFormatted\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 219,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n              label: \"\\u5206\\u6790\\u6458\\u8981\",\n              children: result.summary\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 220,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 217,\n            columnNumber: 13\n          }, this), result.keywords && result.keywords.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              marginTop: 12\n            },\n            children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n              children: \"\\u5173\\u952E\\u8BCD\\uFF1A\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 224,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Space, {\n              style: {\n                marginLeft: 8\n              },\n              children: result.keywords.map((kw, i) => /*#__PURE__*/_jsxDEV(Tag, {\n                color: \"blue\",\n                children: kw\n              }, i, false, {\n                fileName: _jsxFileName,\n                lineNumber: 226,\n                columnNumber: 51\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 225,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 223,\n            columnNumber: 15\n          }, this), result.recommendations && result.recommendations.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              marginTop: 12\n            },\n            children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n              children: \"\\u5EFA\\u8BAE\\uFF1A\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 232,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(\"ul\", {\n              style: {\n                marginTop: 8,\n                paddingLeft: 20\n              },\n              children: result.recommendations.map((rec, i) => /*#__PURE__*/_jsxDEV(\"li\", {\n                children: rec\n              }, i, false, {\n                fileName: _jsxFileName,\n                lineNumber: 234,\n                columnNumber: 59\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 233,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 231,\n            columnNumber: 15\n          }, this)]\n        }, \"1\", true, {\n          fileName: _jsxFileName,\n          lineNumber: 216,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 215,\n        columnNumber: 9\n      }, this);\n    } catch (e) {\n      return /*#__PURE__*/_jsxDEV(Alert, {\n        type: \"warning\",\n        message: \"\\u65E0\\u6CD5\\u89E3\\u6790\\u5206\\u6790\\u7ED3\\u679C\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 242,\n        columnNumber: 14\n      }, this);\n    }\n  };\n\n  // Handlers\n  const handleAddTask = async () => {\n    try {\n      const values = await taskForm.validateFields();\n      await projectsAPI.addTask(id, {\n        ...values,\n        dueDate: values.dueDate ? values.dueDate.format('YYYY-MM-DD') : null\n      });\n      message.success('任务创建成功');\n      setTaskModalVisible(false);\n      taskForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建任务失败');\n    }\n  };\n  const handleUpdateTaskStatus = async (taskId, status) => {\n    try {\n      await projectsAPI.updateTask(id, taskId, {\n        status,\n        completedAt: status === 'completed' ? new Date().toISOString() : null\n      });\n      message.success('任务状态更新成功');\n      fetchProject();\n    } catch (error) {\n      message.error('更新任务失败');\n    }\n  };\n  const handleAddMilestone = async () => {\n    try {\n      const values = await milestoneForm.validateFields();\n      await projectsAPI.addMilestone(id, {\n        ...values,\n        plannedDate: values.plannedDate ? values.plannedDate.format('YYYY-MM-DD') : null\n      });\n      message.success('里程碑创建成功');\n      setMilestoneModalVisible(false);\n      milestoneForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建里程碑失败');\n    }\n  };\n  const handleAddUpdate = async () => {\n    try {\n      const values = await updateForm.validateFields();\n      await projectsAPI.addUpdate(id, values);\n      message.success('项目更新创建成功');\n      setUpdateModalVisible(false);\n      updateForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建项目更新失败');\n    }\n  };\n  const handleAddInvestor = async () => {\n    try {\n      const values = await investorForm.validateFields();\n      await projectsAPI.addInvestor(id, {\n        ...values,\n        investmentDate: values.investmentDate ? values.investmentDate.format('YYYY-MM-DD') : null\n      });\n      message.success('投资者添加成功');\n      setInvestorModalVisible(false);\n      investorForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('添加投资者失败');\n    }\n  };\n  const handleRemoveInvestor = async investorId => {\n    try {\n      await projectsAPI.removeInvestor(id, investorId);\n      message.success('投资者已移除');\n      fetchProject();\n    } catch (error) {\n      message.error('移除投资者失败');\n    }\n  };\n  const handleUpload = async file => {\n    setUploading(true);\n    try {\n      await projectsAPI.uploadDocument(id, file);\n      message.success('文件上传成功');\n      fetchDocuments();\n    } catch (error) {\n      var _error$response, _error$response$data;\n      message.error(((_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.message) || '文件上传失败');\n    } finally {\n      setUploading(false);\n    }\n    return false;\n  };\n  const handleDownload = async (docId, fileName) => {\n    try {\n      const response = await projectsAPI.downloadDocument(id, docId);\n      const url = window.URL.createObjectURL(new Blob([response.data]));\n      const link = document.createElement('a');\n      link.href = url;\n      link.setAttribute('download', fileName);\n      document.body.appendChild(link);\n      link.click();\n      link.remove();\n    } catch (error) {\n      message.error('文件下载失败');\n    }\n  };\n  const handleAnalyze = async docId => {\n    try {\n      await projectsAPI.analyzeDocument(id, docId);\n      message.success('文件分析已启动');\n      fetchDocuments();\n    } catch (error) {\n      message.error('文件分析失败');\n    }\n  };\n  const handleDeleteDocument = async docId => {\n    try {\n      await projectsAPI.deleteDocument(id, docId);\n      message.success('文档删除成功');\n      fetchDocuments();\n    } catch (error) {\n      message.error('文档删除失败');\n    }\n  };\n  const handleInitDecisionProcess = async () => {\n    try {\n      await decisionProcessAPI.init(id);\n      message.success('投资决策流程已初始化');\n      fetchDecisionProcess();\n    } catch (error) {\n      message.error('初始化投资决策流程失败');\n    }\n  };\n  const handleUpdateDecisionStage = async (stageId, status, notes = '') => {\n    try {\n      await decisionProcessAPI.update(stageId, {\n        status,\n        notes\n      });\n      message.success('阶段更新成功');\n      fetchDecisionProcess();\n    } catch (error) {\n      message.error('更新阶段失败');\n    }\n  };\n  const handleAddPostInvestment = async () => {\n    try {\n      const values = await postInvestmentForm.validateFields();\n      await postInvestmentAPI.create({\n        ...values,\n        projectId: id,\n        date: values.date ? values.date.format('YYYY-MM-DD') : null\n      });\n      message.success('投后记录创建成功');\n      setPostInvestmentModalVisible(false);\n      postInvestmentForm.resetFields();\n      fetchPostInvestments();\n    } catch (error) {\n      message.error('创建投后记录失败');\n    }\n  };\n  const handleDeletePostInvestment = async recordId => {\n    try {\n      await postInvestmentAPI.delete(recordId);\n      message.success('投后记录删除成功');\n      fetchPostInvestments();\n    } catch (error) {\n      message.error('删除投后记录失败');\n    }\n  };\n  const handleAddPermission = async () => {\n    try {\n      const values = await permissionForm.validateFields();\n      await projectPermissionsAPI.create({\n        projectId: id,\n        ...values,\n        canRead: values.canRead !== false,\n        canEdit: values.canEdit || false,\n        canCreate: values.canCreate || false,\n        canDelete: values.canDelete || false\n      });\n      message.success('权限创建成功');\n      setPermissionModalVisible(false);\n      permissionForm.resetFields();\n      fetchProjectPermissions();\n    } catch (error) {\n      message.error('创建权限失败');\n    }\n  };\n  const handleDeletePermission = async userId => {\n    try {\n      await projectPermissionsAPI.delete(id, userId);\n      message.success('权限删除成功');\n      fetchProjectPermissions();\n    } catch (error) {\n      message.error('删除权限失败');\n    }\n  };\n\n  // Loading state\n  if (loading) {\n    return /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        display: 'flex',\n        justifyContent: 'center',\n        padding: 48\n      },\n      children: /*#__PURE__*/_jsxDEV(Spin, {\n        size: \"large\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 461,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 460,\n      columnNumber: 7\n    }, this);\n  }\n  if (!project || !project.project) {\n    return /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        padding: 24\n      },\n      children: \"\\u9879\\u76EE\\u4E0D\\u5B58\\u5728\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 467,\n      columnNumber: 12\n    }, this);\n  }\n  const projInfo = project.project;\n  const tasksList = project.tasks || [];\n  const milestonesList = project.milestones || [];\n  const updatesList = project.updates || [];\n  const projectInvestors = project.investors || [];\n  const taskColumns = [{\n    title: '任务标题',\n    dataIndex: 'title',\n    key: 'title',\n    render: t => t || '-'\n  }, {\n    title: '描述',\n    dataIndex: 'description',\n    key: 'description',\n    render: d => d || '-'\n  }, {\n    title: '优先级',\n    dataIndex: 'priority',\n    key: 'priority',\n    render: p => /*#__PURE__*/_jsxDEV(Tag, {\n      color: getPriorityColor(p),\n      children: p === 'high' ? '高' : p === 'medium' ? '中' : p === 'low' ? '低' : '-'\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 483,\n      columnNumber: 22\n    }, this)\n  }, {\n    title: '负责人',\n    dataIndex: 'assigned_to_name',\n    key: 'assigned_to_name',\n    render: n => n || '-'\n  }, {\n    title: '截止日期',\n    dataIndex: 'due_date',\n    key: 'due_date',\n    render: d => d ? dayjs(d).format('YYYY-MM-DD') : '-'\n  }, {\n    title: '状态',\n    dataIndex: 'status',\n    key: 'status',\n    render: (status, record) => /*#__PURE__*/_jsxDEV(Space, {\n      children: [/*#__PURE__*/_jsxDEV(Tag, {\n        color: status === 'completed' ? 'green' : status === 'in_progress' ? 'blue' : 'default',\n        children: status === 'completed' ? '已完成' : status === 'in_progress' ? '进行中' : '待处理'\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 498,\n        columnNumber: 11\n      }, this), isInvestmentManager() && status !== 'completed' && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"text\",\n        size: \"small\",\n        icon: /*#__PURE__*/_jsxDEV(CheckOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 502,\n          columnNumber: 52\n        }, this),\n        onClick: () => handleUpdateTaskStatus(record.id, 'completed')\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 502,\n        columnNumber: 13\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 497,\n      columnNumber: 9\n    }, this)\n  }];\n  const investorColumns = [{\n    title: '投资者',\n    dataIndex: 'investor_name',\n    key: 'investor_name',\n    render: n => n || '-'\n  }, {\n    title: '投资金额',\n    dataIndex: 'investment_amount',\n    key: 'investment_amount',\n    render: a => a ? `¥${Number(a).toLocaleString()}` : '-'\n  }, {\n    title: '股权比例',\n    dataIndex: 'equity_ratio',\n    key: 'equity_ratio',\n    render: r => r ? `${r}%` : '-'\n  }, {\n    title: '投资日期',\n    dataIndex: 'investment_date',\n    key: 'investment_date',\n    render: d => d ? dayjs(d).format('YYYY-MM-DD') : '-'\n  }, {\n    title: '操作',\n    key: 'actions',\n    render: (_, record) => isInvestmentManager() && /*#__PURE__*/_jsxDEV(Popconfirm, {\n      title: \"\\u786E\\u5B9A\\u79FB\\u9664\\u8BE5\\u6295\\u8D44\\u8005?\",\n      onConfirm: () => handleRemoveInvestor(record.investor_id),\n      children: /*#__PURE__*/_jsxDEV(Button, {\n        type: \"text\",\n        danger: true,\n        size: \"small\",\n        children: \"\\u79FB\\u9664\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 534,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 533,\n      columnNumber: 9\n    }, this)\n  }];\n  const tabs = [{\n    key: 'overview',\n    label: '概览',\n    children: /*#__PURE__*/_jsxDEV(_Fragment, {\n      children: [/*#__PURE__*/_jsxDEV(Card, {\n        title: \"\\u57FA\\u672C\\u4FE1\\u606F\",\n        style: {\n          marginBottom: 16\n        },\n        children: [/*#__PURE__*/_jsxDEV(Descriptions, {\n          column: 2,\n          children: [/*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u9879\\u76EE\\u540D\\u79F0\",\n            children: projInfo.name || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 548,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u9879\\u76EE\\u4EE3\\u7801\",\n            children: projInfo.code || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 549,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u516C\\u53F8\\u540D\\u79F0\",\n            children: projInfo.company_name || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 550,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u884C\\u4E1A\",\n            children: projInfo.industry ? /*#__PURE__*/_jsxDEV(Tag, {\n              color: \"blue\",\n              children: projInfo.industry\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 551,\n              columnNumber: 66\n            }, this) : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 551,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u9636\\u6BB5\",\n            children: projInfo.stage ? /*#__PURE__*/_jsxDEV(Tag, {\n              color: \"cyan\",\n              children: projInfo.stage\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 552,\n              columnNumber: 63\n            }, this) : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 552,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u72B6\\u6001\",\n            children: /*#__PURE__*/_jsxDEV(Tag, {\n              color: getStatusColor(projInfo.status),\n              children: getStatusText(projInfo.status)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 553,\n              columnNumber: 45\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 553,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u6295\\u8D44\\u989D\",\n            children: projInfo.investment_amount ? `¥${Number(projInfo.investment_amount).toLocaleString()}` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 554,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u4F30\\u503C\",\n            children: projInfo.valuation ? `¥${Number(projInfo.valuation).toLocaleString()}` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 555,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u80A1\\u6743\\u6BD4\\u4F8B\",\n            children: projInfo.equity_ratio ? `${projInfo.equity_ratio}%` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 556,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u8D1F\\u8D23\\u4EBA\",\n            children: projInfo.assigned_to_name || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 557,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u521B\\u5EFA\\u4EBA\",\n            children: projInfo.created_by_name || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 558,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u521B\\u5EFA\\u65F6\\u95F4\",\n            children: projInfo.created_at ? dayjs(projInfo.created_at).format('YYYY-MM-DD HH:mm') : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 559,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 547,\n          columnNumber: 13\n        }, this), projInfo.description && /*#__PURE__*/_jsxDEV(_Fragment, {\n          children: [/*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 563,\n            columnNumber: 17\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            children: /*#__PURE__*/_jsxDEV(\"strong\", {\n              children: \"\\u9879\\u76EE\\u63CF\\u8FF0:\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 564,\n              columnNumber: 22\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 564,\n            columnNumber: 17\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              marginTop: 8,\n              color: '#666'\n            },\n            children: projInfo.description\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 565,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 546,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Row, {\n        gutter: 16,\n        children: [/*#__PURE__*/_jsxDEV(Col, {\n          span: 12,\n          children: /*#__PURE__*/_jsxDEV(Card, {\n            title: \"\\u91CC\\u7A0B\\u7891\",\n            extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              size: \"small\",\n              icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 572,\n                columnNumber: 104\n              }, this),\n              onClick: () => setMilestoneModalVisible(true),\n              children: \"\\u6DFB\\u52A0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 572,\n              columnNumber: 65\n            }, this),\n            children: /*#__PURE__*/_jsxDEV(Timeline, {\n              children: milestonesList.map(ms => /*#__PURE__*/_jsxDEV(Timeline.Item, {\n                color: ms.status === 'completed' ? 'green' : ms.status === 'in_progress' ? 'blue' : 'gray',\n                children: [/*#__PURE__*/_jsxDEV(\"div\", {\n                  style: {\n                    fontWeight: 'bold'\n                  },\n                  children: ms.name || '-'\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 579,\n                  columnNumber: 23\n                }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                  style: {\n                    fontSize: 12,\n                    color: '#666'\n                  },\n                  children: [\"\\u8BA1\\u5212: \", ms.planned_date ? dayjs(ms.planned_date).format('YYYY-MM-DD') : '-', ms.actual_date && ` | 实际: ${dayjs(ms.actual_date).format('YYYY-MM-DD')}`]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 580,\n                  columnNumber: 23\n                }, this), ms.description && /*#__PURE__*/_jsxDEV(\"div\", {\n                  style: {\n                    fontSize: 13,\n                    marginTop: 4\n                  },\n                  children: ms.description\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 584,\n                  columnNumber: 42\n                }, this)]\n              }, ms.id, true, {\n                fileName: _jsxFileName,\n                lineNumber: 575,\n                columnNumber: 21\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 573,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 572,\n            columnNumber: 15\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 571,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(Col, {\n          span: 12,\n          children: /*#__PURE__*/_jsxDEV(Card, {\n            title: \"\\u9879\\u76EE\\u52A8\\u6001\",\n            extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              size: \"small\",\n              icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 591,\n                columnNumber: 105\n              }, this),\n              onClick: () => setUpdateModalVisible(true),\n              children: \"\\u6DFB\\u52A0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 591,\n              columnNumber: 66\n            }, this),\n            children: /*#__PURE__*/_jsxDEV(List, {\n              dataSource: updatesList,\n              renderItem: update => /*#__PURE__*/_jsxDEV(List.Item, {\n                children: /*#__PURE__*/_jsxDEV(List.Item.Meta, {\n                  title: /*#__PURE__*/_jsxDEV(\"span\", {\n                    style: {\n                      fontWeight: 500\n                    },\n                    children: update.title || '-'\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 597,\n                    columnNumber: 32\n                  }, this),\n                  description: /*#__PURE__*/_jsxDEV(\"div\", {\n                    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n                      style: {\n                        fontSize: 12,\n                        color: '#999',\n                        marginBottom: 4\n                      },\n                      children: [update.created_by_name || '未知', \" \\xB7 \", update.created_at ? dayjs(update.created_at).format('YYYY-MM-DD HH:mm') : '-']\n                    }, void 0, true, {\n                      fileName: _jsxFileName,\n                      lineNumber: 600,\n                      columnNumber: 29\n                    }, this), update.content || '']\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 599,\n                    columnNumber: 27\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 596,\n                  columnNumber: 23\n                }, this)\n              }, update.id, false, {\n                fileName: _jsxFileName,\n                lineNumber: 595,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 592,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 591,\n            columnNumber: 15\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 590,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 570,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true)\n  }, {\n    key: 'tasks',\n    label: '任务',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 620,\n          columnNumber: 76\n        }, this),\n        onClick: () => setTaskModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u4EFB\\u52A1\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 620,\n        columnNumber: 47\n      }, this),\n      children: /*#__PURE__*/_jsxDEV(Table, {\n        columns: taskColumns,\n        dataSource: tasksList,\n        rowKey: \"id\",\n        pagination: false\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 621,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 620,\n      columnNumber: 9\n    }, this)\n  }, {\n    key: 'investors',\n    label: '投资者',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 629,\n          columnNumber: 76\n        }, this),\n        onClick: () => setInvestorModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u6295\\u8D44\\u8005\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 629,\n        columnNumber: 47\n      }, this),\n      children: /*#__PURE__*/_jsxDEV(Table, {\n        columns: investorColumns,\n        dataSource: projectInvestors,\n        rowKey: \"id\",\n        pagination: false\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 630,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 629,\n      columnNumber: 9\n    }, this)\n  }, {\n    key: 'documents',\n    label: '文档',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      title: \"\\u9879\\u76EE\\u6587\\u6863\",\n      extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Upload, {\n        beforeUpload: handleUpload,\n        showUploadList: false,\n        accept: \".pdf,.ppt,.pptx,.doc,.docx,.txt\",\n        children: /*#__PURE__*/_jsxDEV(Button, {\n          type: \"primary\",\n          icon: /*#__PURE__*/_jsxDEV(UploadOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 647,\n            columnNumber: 46\n          }, this),\n          loading: uploading,\n          children: \"\\u4E0A\\u4F20\\u6587\\u6863\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 647,\n          columnNumber: 17\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 642,\n        columnNumber: 15\n      }, this),\n      children: /*#__PURE__*/_jsxDEV(Spin, {\n        spinning: documentsLoading,\n        children: documents.length === 0 ? /*#__PURE__*/_jsxDEV(Alert, {\n          type: \"info\",\n          message: \"\\u6682\\u65E0\\u6587\\u6863\",\n          description: \"\\u60A8\\u53EF\\u4EE5\\u4E0A\\u4F20PDF\\u3001PPT\\u3001Word\\u3001TXT\\u7B49\\u683C\\u5F0F\\u7684\\u9879\\u76EE\\u4ECB\\u7ECD\\u6587\\u6863\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 654,\n          columnNumber: 15\n        }, this) : /*#__PURE__*/_jsxDEV(List, {\n          dataSource: documents,\n          renderItem: doc => /*#__PURE__*/_jsxDEV(List.Item, {\n            actions: [/*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              size: \"small\",\n              icon: /*#__PURE__*/_jsxDEV(DownloadOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 662,\n                columnNumber: 77\n              }, this),\n              onClick: () => handleDownload(doc.id, doc.name),\n              children: \"\\u4E0B\\u8F7D\"\n            }, \"download\", false, {\n              fileName: _jsxFileName,\n              lineNumber: 662,\n              columnNumber: 23\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              size: \"small\",\n              icon: /*#__PURE__*/_jsxDEV(FileSearchOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 663,\n                columnNumber: 76\n              }, this),\n              onClick: () => handleAnalyze(doc.id),\n              disabled: doc.analysis_status === 'analyzing',\n              children: doc.analysis_status === 'pending' || !doc.analysis_status ? '分析' : '重新分析'\n            }, \"analyze\", false, {\n              fileName: _jsxFileName,\n              lineNumber: 663,\n              columnNumber: 23\n            }, this), isInvestmentManager() && /*#__PURE__*/_jsxDEV(Popconfirm, {\n              title: \"\\u786E\\u5B9A\\u8981\\u5220\\u9664\\u8FD9\\u4E2A\\u6587\\u6863\\u5417?\",\n              onConfirm: () => handleDeleteDocument(doc.id),\n              children: /*#__PURE__*/_jsxDEV(Button, {\n                type: \"link\",\n                size: \"small\",\n                danger: true,\n                icon: /*#__PURE__*/_jsxDEV(DeleteOutlined, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 668,\n                  columnNumber: 73\n                }, this),\n                children: \"\\u5220\\u9664\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 668,\n                columnNumber: 27\n              }, this)\n            }, \"delete\", false, {\n              fileName: _jsxFileName,\n              lineNumber: 667,\n              columnNumber: 25\n            }, this)].filter(Boolean),\n            children: [/*#__PURE__*/_jsxDEV(List.Item.Meta, {\n              avatar: /*#__PURE__*/_jsxDEV(FileTextOutlined, {\n                style: {\n                  fontSize: 32,\n                  color: '#1890ff'\n                }\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 674,\n                columnNumber: 31\n              }, this),\n              title: /*#__PURE__*/_jsxDEV(Space, {\n                children: [doc.name || '-', getAnalysisStatusTag(doc.analysis_status)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 676,\n                columnNumber: 25\n              }, this),\n              description: /*#__PURE__*/_jsxDEV(\"div\", {\n                children: [/*#__PURE__*/_jsxDEV(\"span\", {\n                  style: {\n                    marginRight: 16\n                  },\n                  children: [\"\\u4E0A\\u4F20\\u8005\\uFF1A\", doc.uploaded_by_name || '未知']\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 683,\n                  columnNumber: 27\n                }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n                  style: {\n                    marginRight: 16\n                  },\n                  children: [\"\\u5927\\u5C0F\\uFF1A\", ((doc.file_size || 0) / 1024 / 1024).toFixed(2), \" MB\"]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 684,\n                  columnNumber: 27\n                }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n                  children: [\"\\u4E0A\\u4F20\\u65F6\\u95F4\\uFF1A\", doc.created_at ? dayjs(doc.created_at).format('YYYY-MM-DD HH:mm') : '-']\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 685,\n                  columnNumber: 27\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 682,\n                columnNumber: 25\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 673,\n              columnNumber: 21\n            }, this), renderAnalysisResult(doc)]\n          }, doc.id, true, {\n            fileName: _jsxFileName,\n            lineNumber: 659,\n            columnNumber: 19\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 656,\n          columnNumber: 15\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 652,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 638,\n      columnNumber: 9\n    }, this)\n  }, {\n    key: 'decision-process',\n    label: '投资决策流程',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      title: \"\\u6295\\u8D44\\u51B3\\u7B56\\u6D41\\u7A0B\",\n      extra: isInvestmentManager() && decisionProcess.length === 0 && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 706,\n          columnNumber: 44\n        }, this),\n        onClick: handleInitDecisionProcess,\n        children: \"\\u521D\\u59CB\\u5316\\u6D41\\u7A0B\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 706,\n        columnNumber: 15\n      }, this),\n      children: decisionProcess.length === 0 ? /*#__PURE__*/_jsxDEV(Alert, {\n        type: \"info\",\n        message: \"\\u6682\\u65E0\\u51B3\\u7B56\\u6D41\\u7A0B\",\n        description: \"\\u70B9\\u51FB\\u4E0A\\u65B9\\u6309\\u94AE\\u521D\\u59CB\\u5316\\u6807\\u51C6\\u6295\\u8D44\\u51B3\\u7B56\\u6D41\\u7A0B\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 711,\n        columnNumber: 13\n      }, this) : /*#__PURE__*/_jsxDEV(Timeline, {\n        children: decisionProcess.map(stage => /*#__PURE__*/_jsxDEV(Timeline.Item, {\n          color: stage.status === 'completed' ? 'green' : stage.status === 'in_progress' ? 'blue' : stage.status === 'rejected' ? 'red' : 'gray',\n          children: [/*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              fontWeight: 'bold',\n              marginBottom: 8\n            },\n            children: stage.stage\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 719,\n            columnNumber: 19\n          }, this), stage.notes && /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              marginBottom: 8,\n              color: '#666'\n            },\n            children: stage.notes\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 720,\n            columnNumber: 35\n          }, this), stage.decided_by_name && /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              fontSize: 12,\n              color: '#999'\n            },\n            children: [stage.decided_by_name, \" \\xB7 \", stage.decided_at ? dayjs(stage.decided_at).format('YYYY-MM-DD HH:mm') : '-']\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 722,\n            columnNumber: 21\n          }, this), isInvestmentManager() && stage.status !== 'completed' && stage.status !== 'rejected' && /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              marginTop: 12\n            },\n            children: /*#__PURE__*/_jsxDEV(Space, {\n              children: [stage.status !== 'in_progress' && /*#__PURE__*/_jsxDEV(Button, {\n                type: \"primary\",\n                size: \"small\",\n                onClick: () => handleUpdateDecisionStage(stage.id, 'in_progress'),\n                children: \"\\u5F00\\u59CB\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 730,\n                columnNumber: 27\n              }, this), stage.status === 'in_progress' && /*#__PURE__*/_jsxDEV(_Fragment, {\n                children: [/*#__PURE__*/_jsxDEV(Button, {\n                  type: \"primary\",\n                  size: \"small\",\n                  onClick: () => handleUpdateDecisionStage(stage.id, 'completed'),\n                  children: \"\\u901A\\u8FC7\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 734,\n                  columnNumber: 29\n                }, this), /*#__PURE__*/_jsxDEV(Button, {\n                  danger: true,\n                  size: \"small\",\n                  onClick: () => handleUpdateDecisionStage(stage.id, 'rejected'),\n                  children: \"\\u62D2\\u7EDD\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 735,\n                  columnNumber: 29\n                }, this)]\n              }, void 0, true)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 728,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 727,\n            columnNumber: 21\n          }, this)]\n        }, stage.id, true, {\n          fileName: _jsxFileName,\n          lineNumber: 715,\n          columnNumber: 17\n        }, this))\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 713,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 702,\n      columnNumber: 9\n    }, this)\n  }, {\n    key: 'post-investment',\n    label: '投后管理',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      title: \"\\u6295\\u540E\\u7BA1\\u7406\\u8BB0\\u5F55\",\n      extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 756,\n          columnNumber: 44\n        }, this),\n        onClick: () => setPostInvestmentModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u8BB0\\u5F55\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 756,\n        columnNumber: 15\n      }, this),\n      children: postInvestments.length === 0 ? /*#__PURE__*/_jsxDEV(Alert, {\n        type: \"info\",\n        message: \"\\u6682\\u65E0\\u6295\\u540E\\u8BB0\\u5F55\",\n        description: \"\\u6DFB\\u52A0\\u6295\\u540E\\u7BA1\\u7406\\u8BB0\\u5F55\\uFF0C\\u8DDF\\u8E2A\\u9879\\u76EE\\u8FDB\\u5C55\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 761,\n        columnNumber: 13\n      }, this) : /*#__PURE__*/_jsxDEV(List, {\n        dataSource: postInvestments,\n        renderItem: record => /*#__PURE__*/_jsxDEV(List.Item, {\n          actions: isInvestmentManager() ? [/*#__PURE__*/_jsxDEV(Popconfirm, {\n            title: \"\\u786E\\u5B9A\\u8981\\u5220\\u9664\\u8FD9\\u6761\\u8BB0\\u5F55\\u5417?\",\n            onConfirm: () => handleDeletePostInvestment(record.id),\n            children: /*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              size: \"small\",\n              danger: true,\n              icon: /*#__PURE__*/_jsxDEV(DeleteOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 771,\n                columnNumber: 71\n              }, this),\n              children: \"\\u5220\\u9664\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 771,\n              columnNumber: 25\n            }, this)\n          }, \"delete\", false, {\n            fileName: _jsxFileName,\n            lineNumber: 770,\n            columnNumber: 23\n          }, this)] : [],\n          children: /*#__PURE__*/_jsxDEV(List.Item.Meta, {\n            title: /*#__PURE__*/_jsxDEV(Space, {\n              children: [/*#__PURE__*/_jsxDEV(Tag, {\n                color: record.type === 'meeting' ? 'blue' : record.type === 'financial' ? 'green' : record.type === 'operation' ? 'orange' : 'default',\n                children: record.type === 'meeting' ? '会议纪要' : record.type === 'financial' ? '财务报告' : record.type === 'operation' ? '运营报告' : record.type || '-'\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 779,\n                columnNumber: 25\n              }, this), record.title || '-']\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 778,\n              columnNumber: 23\n            }, this),\n            description: /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [/*#__PURE__*/_jsxDEV(\"div\", {\n                style: {\n                  fontSize: 12,\n                  color: '#999',\n                  marginBottom: 4\n                },\n                children: [record.created_by_name || '未知', \" \\xB7 \", dayjs(record.date || record.created_at).format('YYYY-MM-DD')]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 787,\n                columnNumber: 25\n              }, this), record.content || '']\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 786,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 776,\n            columnNumber: 19\n          }, this)\n        }, record.id, false, {\n          fileName: _jsxFileName,\n          lineNumber: 766,\n          columnNumber: 17\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 763,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 752,\n      columnNumber: 9\n    }, this)\n  }, {\n    key: 'permissions',\n    label: '权限管理',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      title: \"\\u9879\\u76EE\\u6743\\u9650\",\n      extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 809,\n          columnNumber: 44\n        }, this),\n        onClick: () => setPermissionModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u7528\\u6237\\u6743\\u9650\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 809,\n        columnNumber: 15\n      }, this),\n      children: projectPermissions.length === 0 ? /*#__PURE__*/_jsxDEV(Alert, {\n        type: \"info\",\n        message: \"\\u6682\\u65E0\\u81EA\\u5B9A\\u4E49\\u6743\\u9650\",\n        description: \"\\u6DFB\\u52A0\\u7528\\u6237\\u6743\\u9650\\u4EE5\\u63A7\\u5236\\u9879\\u76EE\\u8BBF\\u95EE\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 814,\n        columnNumber: 13\n      }, this) : /*#__PURE__*/_jsxDEV(Table, {\n        dataSource: projectPermissions,\n        rowKey: \"id\",\n        pagination: false,\n        columns: [{\n          title: '用户',\n          dataIndex: 'full_name',\n          key: 'full_name',\n          render: n => n || '-'\n        }, {\n          title: '用户名',\n          dataIndex: 'username',\n          key: 'username',\n          render: u => u || '-'\n        }, {\n          title: '可读',\n          dataIndex: 'can_read',\n          key: 'can_read',\n          render: v => v ? /*#__PURE__*/_jsxDEV(CheckOutlined, {\n            style: {\n              color: 'green'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 827,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 827,\n            columnNumber: 85\n          }, this)\n        }, {\n          title: '可编辑',\n          dataIndex: 'can_edit',\n          key: 'can_edit',\n          render: v => v ? /*#__PURE__*/_jsxDEV(CheckOutlined, {\n            style: {\n              color: 'green'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 833,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 833,\n            columnNumber: 85\n          }, this)\n        }, {\n          title: '可创建',\n          dataIndex: 'can_create',\n          key: 'can_create',\n          render: v => v ? /*#__PURE__*/_jsxDEV(CheckOutlined, {\n            style: {\n              color: 'green'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 839,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 839,\n            columnNumber: 85\n          }, this)\n        }, {\n          title: '可删除',\n          dataIndex: 'can_delete',\n          key: 'can_delete',\n          render: v => v ? /*#__PURE__*/_jsxDEV(CheckOutlined, {\n            style: {\n              color: 'green'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 845,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 845,\n            columnNumber: 85\n          }, this)\n        }, {\n          title: '操作',\n          key: 'actions',\n          render: (_, record) => isInvestmentManager() && /*#__PURE__*/_jsxDEV(Popconfirm, {\n            title: \"\\u786E\\u5B9A\\u8981\\u5220\\u9664\\u8BE5\\u7528\\u6237\\u7684\\u6743\\u9650\\u5417?\",\n            onConfirm: () => handleDeletePermission(record.user_id),\n            children: /*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              danger: true,\n              size: \"small\",\n              children: \"\\u5220\\u9664\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 852,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 851,\n            columnNumber: 21\n          }, this)\n        }]\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 816,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 805,\n      columnNumber: 9\n    }, this)\n  }];\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        marginBottom: 16\n      },\n      children: /*#__PURE__*/_jsxDEV(Button, {\n        icon: /*#__PURE__*/_jsxDEV(ArrowLeftOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 867,\n          columnNumber: 23\n        }, this),\n        onClick: () => navigate('/projects'),\n        children: \"\\u8FD4\\u56DE\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 867,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 866,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Card, {\n      title: projInfo.name || '项目详情',\n      extra: /*#__PURE__*/_jsxDEV(Space, {\n        children: [/*#__PURE__*/_jsxDEV(Tag, {\n          color: getStatusColor(projInfo.status),\n          children: getStatusText(projInfo.status)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 874,\n          columnNumber: 13\n        }, this), projInfo.industry && /*#__PURE__*/_jsxDEV(Tag, {\n          color: \"blue\",\n          children: projInfo.industry\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 875,\n          columnNumber: 35\n        }, this), isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n          icon: /*#__PURE__*/_jsxDEV(EditOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 876,\n            columnNumber: 53\n          }, this),\n          children: \"\\u7F16\\u8F91\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 876,\n          columnNumber: 39\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 873,\n        columnNumber: 11\n      }, this),\n      children: /*#__PURE__*/_jsxDEV(Tabs, {\n        items: tabs\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 880,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 870,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u4EFB\\u52A1\",\n      open: taskModalVisible,\n      onOk: handleAddTask,\n      onCancel: () => setTaskModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: taskForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"title\",\n          label: \"\\u4EFB\\u52A1\\u6807\\u9898\",\n          rules: [{\n            required: true\n          }],\n          children: /*#__PURE__*/_jsxDEV(Input, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 887,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 886,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"description\",\n          label: \"\\u63CF\\u8FF0\",\n          children: /*#__PURE__*/_jsxDEV(TextArea, {\n            rows: 3\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 890,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 889,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"priority\",\n          label: \"\\u4F18\\u5148\\u7EA7\",\n          initialValue: \"medium\",\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: [/*#__PURE__*/_jsxDEV(Option, {\n              value: \"high\",\n              children: \"\\u9AD8\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 894,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"medium\",\n              children: \"\\u4E2D\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 895,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"low\",\n              children: \"\\u4F4E\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 896,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 893,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 892,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"assignedTo\",\n          label: \"\\u8D1F\\u8D23\\u4EBA\",\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: users.map(u => /*#__PURE__*/_jsxDEV(Option, {\n              value: u.id,\n              children: u.full_name\n            }, u.id, false, {\n              fileName: _jsxFileName,\n              lineNumber: 901,\n              columnNumber: 31\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 900,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 899,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"dueDate\",\n          label: \"\\u622A\\u6B62\\u65E5\\u671F\",\n          children: /*#__PURE__*/_jsxDEV(DatePicker, {\n            style: {\n              width: '100%'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 905,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 904,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 885,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 884,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u91CC\\u7A0B\\u7891\",\n      open: milestoneModalVisible,\n      onOk: handleAddMilestone,\n      onCancel: () => setMilestoneModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: milestoneForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"name\",\n          label: \"\\u91CC\\u7A0B\\u7891\\u540D\\u79F0\",\n          rules: [{\n            required: true\n          }],\n          children: /*#__PURE__*/_jsxDEV(Input, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 914,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 913,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"description\",\n          label: \"\\u63CF\\u8FF0\",\n          children: /*#__PURE__*/_jsxDEV(TextArea, {\n            rows: 3\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 917,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 916,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"plannedDate\",\n          label: \"\\u8BA1\\u5212\\u65E5\\u671F\",\n          children: /*#__PURE__*/_jsxDEV(DatePicker, {\n            style: {\n              width: '100%'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 920,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 919,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 912,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 911,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u9879\\u76EE\\u66F4\\u65B0\",\n      open: updateModalVisible,\n      onOk: handleAddUpdate,\n      onCancel: () => setUpdateModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: updateForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"title\",\n          label: \"\\u6807\\u9898\",\n          rules: [{\n            required: true\n          }],\n          children: /*#__PURE__*/_jsxDEV(Input, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 929,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 928,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"updateType\",\n          label: \"\\u7C7B\\u578B\",\n          initialValue: \"general\",\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: [/*#__PURE__*/_jsxDEV(Option, {\n              value: \"general\",\n              children: \"\\u666E\\u901A\\u66F4\\u65B0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 933,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"progress\",\n              children: \"\\u8FDB\\u5EA6\\u66F4\\u65B0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 934,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"risk\",\n              children: \"\\u98CE\\u9669\\u63D0\\u793A\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 935,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"milestone\",\n              children: \"\\u91CC\\u7A0B\\u7891\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 936,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 932,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 931,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"content\",\n          label: \"\\u5185\\u5BB9\",\n          children: /*#__PURE__*/_jsxDEV(TextArea, {\n            rows: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 940,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 939,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 927,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 926,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u6295\\u8D44\\u8005\",\n      open: investorModalVisible,\n      onOk: handleAddInvestor,\n      onCancel: () => setInvestorModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: investorForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"investorId\",\n          label: \"\\u6295\\u8D44\\u8005\",\n          rules: [{\n            required: true\n          }],\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: investors.map(i => /*#__PURE__*/_jsxDEV(Option, {\n              value: i.id,\n              children: i.name\n            }, i.id, false, {\n              fileName: _jsxFileName,\n              lineNumber: 950,\n              columnNumber: 35\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 949,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 948,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"investmentAmount\",\n          label: \"\\u6295\\u8D44\\u91D1\\u989D\",\n          children: /*#__PURE__*/_jsxDEV(Input, {\n            type: \"number\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 954,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 953,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"equityRatio\",\n          label: \"\\u80A1\\u6743\\u6BD4\\u4F8B(%)\",\n          children: /*#__PURE__*/_jsxDEV(Input, {\n            type: \"number\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 957,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 956,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"investmentDate\",\n          label: \"\\u6295\\u8D44\\u65E5\\u671F\",\n          children: /*#__PURE__*/_jsxDEV(DatePicker, {\n            style: {\n              width: '100%'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 960,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 959,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"notes\",\n          label: \"\\u5907\\u6CE8\",\n          children: /*#__PURE__*/_jsxDEV(TextArea, {\n            rows: 3\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 963,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 962,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 947,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 946,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u6295\\u540E\\u8BB0\\u5F55\",\n      open: postInvestmentModalVisible,\n      onOk: handleAddPostInvestment,\n      onCancel: () => setPostInvestmentModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: postInvestmentForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"type\",\n          label: \"\\u7C7B\\u578B\",\n          rules: [{\n            required: true\n          }],\n          initialValue: \"meeting\",\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: [/*#__PURE__*/_jsxDEV(Option, {\n              value: \"meeting\",\n              children: \"\\u4F1A\\u8BAE\\u7EAA\\u8981\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 973,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"financial\",\n              children: \"\\u8D22\\u52A1\\u62A5\\u544A\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 974,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"operation\",\n              children: \"\\u8FD0\\u8425\\u62A5\\u544A\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 975,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"other\",\n              children: \"\\u5176\\u4ED6\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 976,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 972,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 971,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"title\",\n          label: \"\\u6807\\u9898\",\n          rules: [{\n            required: true\n          }],\n          children: /*#__PURE__*/_jsxDEV(Input, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 980,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 979,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"date\",\n          label: \"\\u65E5\\u671F\",\n          children: /*#__PURE__*/_jsxDEV(DatePicker, {\n            style: {\n              width: '100%'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 983,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 982,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"content\",\n          label: \"\\u5185\\u5BB9\",\n          children: /*#__PURE__*/_jsxDEV(TextArea, {\n            rows: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 986,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 985,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 970,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 969,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u7528\\u6237\\u6743\\u9650\",\n      open: permissionModalVisible,\n      onOk: handleAddPermission,\n      onCancel: () => setPermissionModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: permissionForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"userId\",\n          label: \"\\u7528\\u6237\",\n          rules: [{\n            required: true\n          }],\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: users.filter(u => !projectPermissions.find(p => p.user_id === u.id)).map(u => /*#__PURE__*/_jsxDEV(Option, {\n              value: u.id,\n              children: [u.full_name, \" (\", u.username, \")\"]\n            }, u.id, true, {\n              fileName: _jsxFileName,\n              lineNumber: 997,\n              columnNumber: 17\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 995,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 994,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"canRead\",\n          label: \"\\u53EF\\u8BFB\",\n          initialValue: true,\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: [/*#__PURE__*/_jsxDEV(Option, {\n              value: true,\n              children: \"\\u662F\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1003,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: false,\n              children: \"\\u5426\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1004,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 1002,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1001,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"canEdit\",\n          label: \"\\u53EF\\u7F16\\u8F91\",\n          initialValue: false,\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: [/*#__PURE__*/_jsxDEV(Option, {\n              value: true,\n              children: \"\\u662F\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1009,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: false,\n              children: \"\\u5426\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1010,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 1008,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1007,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"canCreate\",\n          label: \"\\u53EF\\u521B\\u5EFA\",\n          initialValue: false,\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: [/*#__PURE__*/_jsxDEV(Option, {\n              value: true,\n              children: \"\\u662F\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1015,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: false,\n              children: \"\\u5426\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1016,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 1014,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1013,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"canDelete\",\n          label: \"\\u53EF\\u5220\\u9664\",\n          initialValue: false,\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: [/*#__PURE__*/_jsxDEV(Option, {\n              value: true,\n              children: \"\\u662F\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1021,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: false,\n              children: \"\\u5426\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1022,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 1020,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1019,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 993,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 992,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 865,\n    columnNumber: 5\n  }, this);\n};\n_s(ProjectDetail, \"GokKdKhZHC/cTDbYFt8tFXBIspQ=\", false, function () {\n  return [useParams, useNavigate, useAuth, Form.useForm, Form.useForm, Form.useForm, Form.useForm, Form.useForm, Form.useForm];\n});\n_c = ProjectDetail;\nexport default ProjectDetail;\nvar _c;\n$RefreshReg$(_c, \"ProjectDetail\");","map":{"version":3,"names":["React","useState","useEffect","Card","Descriptions","Tag","Button","Space","Modal","Form","Input","Select","DatePicker","message","Tabs","List","Timeline","Table","Popconfirm","Row","Col","Upload","Spin","Alert","Collapse","ArrowLeftOutlined","EditOutlined","PlusOutlined","CheckOutlined","CloseOutlined","UploadOutlined","FileTextOutlined","DeleteOutlined","DownloadOutlined","FileSearchOutlined","useParams","useNavigate","projectsAPI","usersAPI","investorsAPI","decisionProcessAPI","postInvestmentAPI","projectPermissionsAPI","useAuth","dayjs","jsxDEV","_jsxDEV","Fragment","_Fragment","Option","TextArea","ProjectDetail","_s","id","navigate","user","isAdmin","isInvestmentManager","project","setProject","loading","setLoading","users","setUsers","investors","setInvestors","documents","setDocuments","documentsLoading","setDocumentsLoading","uploading","setUploading","decisionProcess","setDecisionProcess","postInvestments","setPostInvestments","projectPermissions","setProjectPermissions","taskModalVisible","setTaskModalVisible","milestoneModalVisible","setMilestoneModalVisible","updateModalVisible","setUpdateModalVisible","investorModalVisible","setInvestorModalVisible","postInvestmentModalVisible","setPostInvestmentModalVisible","permissionModalVisible","setPermissionModalVisible","taskForm","useForm","milestoneForm","updateForm","investorForm","postInvestmentForm","permissionForm","fetchProject","fetchUsers","fetchInvestors","fetchDocuments","fetchDecisionProcess","fetchPostInvestments","fetchProjectPermissions","response","getOne","data","tasks","milestones","updates","error","console","_response$data","getAll","limit","_response$data2","_response$data3","getDocuments","_response$data4","getByProject","decision_process","_response$data5","post_investment","_response$data6","project_permissions","getStatusColor","status","colors","draft","active","completed","pending","paused","getStatusText","texts","getPriorityColor","priority","high","medium","low","getAnalysisStatusTag","statusMap","color","text","analyzing","info","children","fileName","_jsxFileName","lineNumber","columnNumber","renderAnalysisResult","document","analysis_result","result","JSON","parse","type","description","ghost","Panel","header","column","size","Item","label","fileType","fileSizeFormatted","summary","keywords","length","style","marginTop","marginLeft","map","kw","i","recommendations","paddingLeft","rec","e","handleAddTask","values","validateFields","addTask","dueDate","format","success","resetFields","handleUpdateTaskStatus","taskId","updateTask","completedAt","Date","toISOString","handleAddMilestone","addMilestone","plannedDate","handleAddUpdate","addUpdate","handleAddInvestor","addInvestor","investmentDate","handleRemoveInvestor","investorId","removeInvestor","handleUpload","file","uploadDocument","_error$response","_error$response$data","handleDownload","docId","downloadDocument","url","window","URL","createObjectURL","Blob","link","createElement","href","setAttribute","body","appendChild","click","remove","handleAnalyze","analyzeDocument","handleDeleteDocument","deleteDocument","handleInitDecisionProcess","init","handleUpdateDecisionStage","stageId","notes","update","handleAddPostInvestment","create","projectId","date","handleDeletePostInvestment","recordId","delete","handleAddPermission","canRead","canEdit","canCreate","canDelete","handleDeletePermission","userId","display","justifyContent","padding","projInfo","tasksList","milestonesList","updatesList","projectInvestors","taskColumns","title","dataIndex","key","render","t","d","p","n","record","icon","onClick","investorColumns","a","Number","toLocaleString","r","_","onConfirm","investor_id","danger","tabs","marginBottom","name","code","company_name","industry","stage","investment_amount","valuation","equity_ratio","assigned_to_name","created_by_name","created_at","gutter","span","extra","ms","fontWeight","fontSize","planned_date","actual_date","dataSource","renderItem","Meta","content","columns","rowKey","pagination","beforeUpload","showUploadList","accept","spinning","doc","actions","disabled","analysis_status","filter","Boolean","avatar","marginRight","uploaded_by_name","file_size","toFixed","decided_by_name","decided_at","u","v","user_id","items","open","onOk","onCancel","form","layout","rules","required","rows","initialValue","value","full_name","width","find","username","_c","$RefreshReg$"],"sources":["/Users/nili/Documents/trae_projects/client/src/pages/ProjectDetail.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n  Card,\n  Descriptions,\n  Tag,\n  Button,\n  Space,\n  Modal,\n  Form,\n  Input,\n  Select,\n  DatePicker,\n  message,\n  Tabs,\n  List,\n  Timeline,\n  Table,\n  Popconfirm,\n  Row,\n  Col,\n  Upload,\n  Spin,\n  Alert,\n  Collapse\n} from 'antd';\nimport {\n  ArrowLeftOutlined,\n  EditOutlined,\n  PlusOutlined,\n  CheckOutlined,\n  CloseOutlined,\n  UploadOutlined,\n  FileTextOutlined,\n  DeleteOutlined,\n  DownloadOutlined,\n  FileSearchOutlined\n} from '@ant-design/icons';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { projectsAPI, usersAPI, investorsAPI, decisionProcessAPI, postInvestmentAPI, projectPermissionsAPI } from '../services/api';\nimport { useAuth } from '../contexts/AuthContext';\nimport dayjs from 'dayjs';\n\nconst { Option } = Select;\nconst { TextArea } = Input;\n\nconst ProjectDetail = () => {\n  const { id } = useParams();\n  const navigate = useNavigate();\n  const { user, isAdmin, isInvestmentManager } = useAuth();\n  \n  const [project, setProject] = useState(null);\n  const [loading, setLoading] = useState(true);\n  const [users, setUsers] = useState([]);\n  const [investors, setInvestors] = useState([]);\n  const [documents, setDocuments] = useState([]);\n  const [documentsLoading, setDocumentsLoading] = useState(false);\n  const [uploading, setUploading] = useState(false);\n  const [decisionProcess, setDecisionProcess] = useState([]);\n  const [postInvestments, setPostInvestments] = useState([]);\n  const [projectPermissions, setProjectPermissions] = useState([]);\n  \n  const [taskModalVisible, setTaskModalVisible] = useState(false);\n  const [milestoneModalVisible, setMilestoneModalVisible] = useState(false);\n  const [updateModalVisible, setUpdateModalVisible] = useState(false);\n  const [investorModalVisible, setInvestorModalVisible] = useState(false);\n  const [postInvestmentModalVisible, setPostInvestmentModalVisible] = useState(false);\n  const [permissionModalVisible, setPermissionModalVisible] = useState(false);\n  \n  const [taskForm] = Form.useForm();\n  const [milestoneForm] = Form.useForm();\n  const [updateForm] = Form.useForm();\n  const [investorForm] = Form.useForm();\n  const [postInvestmentForm] = Form.useForm();\n  const [permissionForm] = Form.useForm();\n\n  useEffect(() => {\n    if (id) {\n      fetchProject();\n      fetchUsers();\n      fetchInvestors();\n      fetchDocuments();\n      fetchDecisionProcess();\n      fetchPostInvestments();\n      fetchProjectPermissions();\n    }\n  }, [id]);\n\n  const fetchProject = async () => {\n    setLoading(true);\n    try {\n      const response = await projectsAPI.getOne(id);\n      const data = response.data || {};\n      setProject({\n        project: data.project || {},\n        investors: data.investors || [],\n        tasks: data.tasks || [],\n        milestones: data.milestones || [],\n        updates: data.updates || [],\n        documents: data.documents || []\n      });\n    } catch (error) {\n      message.error('获取项目详情失败');\n      console.error(error);\n    } finally {\n      setLoading(false);\n    }\n  };\n\n  const fetchUsers = async () => {\n    try {\n      const response = await usersAPI.getAll({ limit: 100 });\n      setUsers(response.data?.users || []);\n    } catch (error) {\n      console.error('获取用户列表失败:', error);\n    }\n  };\n\n  const fetchInvestors = async () => {\n    try {\n      const response = await investorsAPI.getAll({ limit: 100 });\n      setInvestors(response.data?.investors || []);\n    } catch (error) {\n      console.error('获取投资者列表失败:', error);\n    }\n  };\n\n  const fetchDocuments = async () => {\n    setDocumentsLoading(true);\n    try {\n      const response = await projectsAPI.getDocuments(id);\n      setDocuments(response.data?.documents || []);\n    } catch (error) {\n      console.error('获取文档列表失败:', error);\n    } finally {\n      setDocumentsLoading(false);\n    }\n  };\n\n  const fetchDecisionProcess = async () => {\n    try {\n      const response = await decisionProcessAPI.getByProject(id);\n      setDecisionProcess(response.data?.decision_process || []);\n    } catch (error) {\n      console.error('获取投资决策流程失败:', error);\n    }\n  };\n\n  const fetchPostInvestments = async () => {\n    try {\n      const response = await postInvestmentAPI.getByProject(id);\n      setPostInvestments(response.data?.post_investment || []);\n    } catch (error) {\n      console.error('获取投后管理记录失败:', error);\n    }\n  };\n\n  const fetchProjectPermissions = async () => {\n    try {\n      const response = await projectPermissionsAPI.getByProject(id);\n      setProjectPermissions(response.data?.project_permissions || []);\n    } catch (error) {\n      console.error('获取项目权限失败:', error);\n    }\n  };\n\n  const getStatusColor = (status) => {\n    if (!status) return 'default';\n    const colors = {\n      draft: 'default',\n      active: 'green',\n      completed: 'blue',\n      pending: 'orange',\n      paused: 'red'\n    };\n    return colors[status] || 'default';\n  };\n\n  const getStatusText = (status) => {\n    if (!status) return '-';\n    const texts = {\n      draft: '草稿',\n      active: '进行中',\n      completed: '已完成',\n      pending: '待审批',\n      paused: '已暂停'\n    };\n    return texts[status] || status;\n  };\n\n  const getPriorityColor = (priority) => {\n    if (!priority) return 'default';\n    const colors = { high: 'red', medium: 'orange', low: 'blue' };\n    return colors[priority] || 'default';\n  };\n\n  const getAnalysisStatusTag = (status) => {\n    const statusMap = {\n      pending: { color: 'default', text: '待分析' },\n      analyzing: { color: 'blue', text: '分析中' },\n      completed: { color: 'green', text: '分析完成' },\n      error: { color: 'red', text: '分析失败' }\n    };\n    const info = statusMap[status] || { color: 'default', text: status || '-' };\n    return <Tag color={info.color}>{info.text}</Tag>;\n  };\n\n  const renderAnalysisResult = (document) => {\n    if (!document?.analysis_result) return null;\n    try {\n      const result = JSON.parse(document.analysis_result);\n      if (result.error) {\n        return <Alert type=\"error\" message=\"分析失败\" description={result.message} />;\n      }\n      return (\n        <Collapse ghost>\n          <Collapse.Panel header=\"文件分析报告\" key=\"1\">\n            <Descriptions column={1} size=\"small\">\n              <Descriptions.Item label=\"文件类型\">{result.fileType}</Descriptions.Item>\n              <Descriptions.Item label=\"文件大小\">{result.fileSizeFormatted}</Descriptions.Item>\n              <Descriptions.Item label=\"分析摘要\">{result.summary}</Descriptions.Item>\n            </Descriptions>\n            {result.keywords && result.keywords.length > 0 && (\n              <div style={{ marginTop: 12 }}>\n                <strong>关键词：</strong>\n                <Space style={{ marginLeft: 8 }}>\n                  {result.keywords.map((kw, i) => <Tag key={i} color=\"blue\">{kw}</Tag>)}\n                </Space>\n              </div>\n            )}\n            {result.recommendations && result.recommendations.length > 0 && (\n              <div style={{ marginTop: 12 }}>\n                <strong>建议：</strong>\n                <ul style={{ marginTop: 8, paddingLeft: 20 }}>\n                  {result.recommendations.map((rec, i) => <li key={i}>{rec}</li>)}\n                </ul>\n              </div>\n            )}\n          </Collapse.Panel>\n        </Collapse>\n      );\n    } catch (e) {\n      return <Alert type=\"warning\" message=\"无法解析分析结果\" />;\n    }\n  };\n\n  // Handlers\n  const handleAddTask = async () => {\n    try {\n      const values = await taskForm.validateFields();\n      await projectsAPI.addTask(id, {\n        ...values,\n        dueDate: values.dueDate ? values.dueDate.format('YYYY-MM-DD') : null\n      });\n      message.success('任务创建成功');\n      setTaskModalVisible(false);\n      taskForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建任务失败');\n    }\n  };\n\n  const handleUpdateTaskStatus = async (taskId, status) => {\n    try {\n      await projectsAPI.updateTask(id, taskId, {\n        status,\n        completedAt: status === 'completed' ? new Date().toISOString() : null\n      });\n      message.success('任务状态更新成功');\n      fetchProject();\n    } catch (error) {\n      message.error('更新任务失败');\n    }\n  };\n\n  const handleAddMilestone = async () => {\n    try {\n      const values = await milestoneForm.validateFields();\n      await projectsAPI.addMilestone(id, {\n        ...values,\n        plannedDate: values.plannedDate ? values.plannedDate.format('YYYY-MM-DD') : null\n      });\n      message.success('里程碑创建成功');\n      setMilestoneModalVisible(false);\n      milestoneForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建里程碑失败');\n    }\n  };\n\n  const handleAddUpdate = async () => {\n    try {\n      const values = await updateForm.validateFields();\n      await projectsAPI.addUpdate(id, values);\n      message.success('项目更新创建成功');\n      setUpdateModalVisible(false);\n      updateForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建项目更新失败');\n    }\n  };\n\n  const handleAddInvestor = async () => {\n    try {\n      const values = await investorForm.validateFields();\n      await projectsAPI.addInvestor(id, {\n        ...values,\n        investmentDate: values.investmentDate ? values.investmentDate.format('YYYY-MM-DD') : null\n      });\n      message.success('投资者添加成功');\n      setInvestorModalVisible(false);\n      investorForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('添加投资者失败');\n    }\n  };\n\n  const handleRemoveInvestor = async (investorId) => {\n    try {\n      await projectsAPI.removeInvestor(id, investorId);\n      message.success('投资者已移除');\n      fetchProject();\n    } catch (error) {\n      message.error('移除投资者失败');\n    }\n  };\n\n  const handleUpload = async (file) => {\n    setUploading(true);\n    try {\n      await projectsAPI.uploadDocument(id, file);\n      message.success('文件上传成功');\n      fetchDocuments();\n    } catch (error) {\n      message.error(error.response?.data?.message || '文件上传失败');\n    } finally {\n      setUploading(false);\n    }\n    return false;\n  };\n\n  const handleDownload = async (docId, fileName) => {\n    try {\n      const response = await projectsAPI.downloadDocument(id, docId);\n      const url = window.URL.createObjectURL(new Blob([response.data]));\n      const link = document.createElement('a');\n      link.href = url;\n      link.setAttribute('download', fileName);\n      document.body.appendChild(link);\n      link.click();\n      link.remove();\n    } catch (error) {\n      message.error('文件下载失败');\n    }\n  };\n\n  const handleAnalyze = async (docId) => {\n    try {\n      await projectsAPI.analyzeDocument(id, docId);\n      message.success('文件分析已启动');\n      fetchDocuments();\n    } catch (error) {\n      message.error('文件分析失败');\n    }\n  };\n\n  const handleDeleteDocument = async (docId) => {\n    try {\n      await projectsAPI.deleteDocument(id, docId);\n      message.success('文档删除成功');\n      fetchDocuments();\n    } catch (error) {\n      message.error('文档删除失败');\n    }\n  };\n\n  const handleInitDecisionProcess = async () => {\n    try {\n      await decisionProcessAPI.init(id);\n      message.success('投资决策流程已初始化');\n      fetchDecisionProcess();\n    } catch (error) {\n      message.error('初始化投资决策流程失败');\n    }\n  };\n\n  const handleUpdateDecisionStage = async (stageId, status, notes = '') => {\n    try {\n      await decisionProcessAPI.update(stageId, { status, notes });\n      message.success('阶段更新成功');\n      fetchDecisionProcess();\n    } catch (error) {\n      message.error('更新阶段失败');\n    }\n  };\n\n  const handleAddPostInvestment = async () => {\n    try {\n      const values = await postInvestmentForm.validateFields();\n      await postInvestmentAPI.create({\n        ...values,\n        projectId: id,\n        date: values.date ? values.date.format('YYYY-MM-DD') : null\n      });\n      message.success('投后记录创建成功');\n      setPostInvestmentModalVisible(false);\n      postInvestmentForm.resetFields();\n      fetchPostInvestments();\n    } catch (error) {\n      message.error('创建投后记录失败');\n    }\n  };\n\n  const handleDeletePostInvestment = async (recordId) => {\n    try {\n      await postInvestmentAPI.delete(recordId);\n      message.success('投后记录删除成功');\n      fetchPostInvestments();\n    } catch (error) {\n      message.error('删除投后记录失败');\n    }\n  };\n\n  const handleAddPermission = async () => {\n    try {\n      const values = await permissionForm.validateFields();\n      await projectPermissionsAPI.create({\n        projectId: id,\n        ...values,\n        canRead: values.canRead !== false,\n        canEdit: values.canEdit || false,\n        canCreate: values.canCreate || false,\n        canDelete: values.canDelete || false\n      });\n      message.success('权限创建成功');\n      setPermissionModalVisible(false);\n      permissionForm.resetFields();\n      fetchProjectPermissions();\n    } catch (error) {\n      message.error('创建权限失败');\n    }\n  };\n\n  const handleDeletePermission = async (userId) => {\n    try {\n      await projectPermissionsAPI.delete(id, userId);\n      message.success('权限删除成功');\n      fetchProjectPermissions();\n    } catch (error) {\n      message.error('删除权限失败');\n    }\n  };\n\n  // Loading state\n  if (loading) {\n    return (\n      <div style={{ display: 'flex', justifyContent: 'center', padding: 48 }}>\n        <Spin size=\"large\" />\n      </div>\n    );\n  }\n\n  if (!project || !project.project) {\n    return <div style={{ padding: 24 }}>项目不存在</div>;\n  }\n\n  const projInfo = project.project;\n  const tasksList = project.tasks || [];\n  const milestonesList = project.milestones || [];\n  const updatesList = project.updates || [];\n  const projectInvestors = project.investors || [];\n\n  const taskColumns = [\n    { title: '任务标题', dataIndex: 'title', key: 'title', render: (t) => t || '-' },\n    { title: '描述', dataIndex: 'description', key: 'description', render: (d) => d || '-' },\n    {\n      title: '优先级',\n      dataIndex: 'priority',\n      key: 'priority',\n      render: (p) => <Tag color={getPriorityColor(p)}>{p === 'high' ? '高' : p === 'medium' ? '中' : p === 'low' ? '低' : '-'}</Tag>\n    },\n    { title: '负责人', dataIndex: 'assigned_to_name', key: 'assigned_to_name', render: (n) => n || '-' },\n    {\n      title: '截止日期',\n      dataIndex: 'due_date',\n      key: 'due_date',\n      render: (d) => d ? dayjs(d).format('YYYY-MM-DD') : '-'\n    },\n    {\n      title: '状态',\n      dataIndex: 'status',\n      key: 'status',\n      render: (status, record) => (\n        <Space>\n          <Tag color={status === 'completed' ? 'green' : status === 'in_progress' ? 'blue' : 'default'}>\n            {status === 'completed' ? '已完成' : status === 'in_progress' ? '进行中' : '待处理'}\n          </Tag>\n          {isInvestmentManager() && status !== 'completed' && (\n            <Button type=\"text\" size=\"small\" icon={<CheckOutlined />} onClick={() => handleUpdateTaskStatus(record.id, 'completed')} />\n          )}\n        </Space>\n      )\n    }\n  ];\n\n  const investorColumns = [\n    { title: '投资者', dataIndex: 'investor_name', key: 'investor_name', render: (n) => n || '-' },\n    {\n      title: '投资金额',\n      dataIndex: 'investment_amount',\n      key: 'investment_amount',\n      render: (a) => a ? `¥${(Number(a)).toLocaleString()}` : '-'\n    },\n    {\n      title: '股权比例',\n      dataIndex: 'equity_ratio',\n      key: 'equity_ratio',\n      render: (r) => r ? `${r}%` : '-'\n    },\n    {\n      title: '投资日期',\n      dataIndex: 'investment_date',\n      key: 'investment_date',\n      render: (d) => d ? dayjs(d).format('YYYY-MM-DD') : '-'\n    },\n    {\n      title: '操作',\n      key: 'actions',\n      render: (_, record) => isInvestmentManager() && (\n        <Popconfirm title=\"确定移除该投资者?\" onConfirm={() => handleRemoveInvestor(record.investor_id)}>\n          <Button type=\"text\" danger size=\"small\">移除</Button>\n        </Popconfirm>\n      )\n    }\n  ];\n\n  const tabs = [\n    {\n      key: 'overview',\n      label: '概览',\n      children: (\n        <>\n          <Card title=\"基本信息\" style={{ marginBottom: 16 }}>\n            <Descriptions column={2}>\n              <Descriptions.Item label=\"项目名称\">{projInfo.name || '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"项目代码\">{projInfo.code || '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"公司名称\">{projInfo.company_name || '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"行业\">{projInfo.industry ? <Tag color=\"blue\">{projInfo.industry}</Tag> : '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"阶段\">{projInfo.stage ? <Tag color=\"cyan\">{projInfo.stage}</Tag> : '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"状态\"><Tag color={getStatusColor(projInfo.status)}>{getStatusText(projInfo.status)}</Tag></Descriptions.Item>\n              <Descriptions.Item label=\"投资额\">{projInfo.investment_amount ? `¥${(Number(projInfo.investment_amount)).toLocaleString()}` : '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"估值\">{projInfo.valuation ? `¥${(Number(projInfo.valuation)).toLocaleString()}` : '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"股权比例\">{projInfo.equity_ratio ? `${projInfo.equity_ratio}%` : '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"负责人\">{projInfo.assigned_to_name || '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"创建人\">{projInfo.created_by_name || '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"创建时间\">{projInfo.created_at ? dayjs(projInfo.created_at).format('YYYY-MM-DD HH:mm') : '-'}</Descriptions.Item>\n            </Descriptions>\n            {projInfo.description && (\n              <>\n                <br />\n                <div><strong>项目描述:</strong></div>\n                <div style={{ marginTop: 8, color: '#666' }}>{projInfo.description}</div>\n              </>\n            )}\n          </Card>\n\n          <Row gutter={16}>\n            <Col span={12}>\n              <Card title=\"里程碑\" extra={isInvestmentManager() && <Button type=\"link\" size=\"small\" icon={<PlusOutlined />} onClick={() => setMilestoneModalVisible(true)}>添加</Button>}>\n                <Timeline>\n                  {milestonesList.map((ms) => (\n                    <Timeline.Item\n                      key={ms.id}\n                      color={ms.status === 'completed' ? 'green' : ms.status === 'in_progress' ? 'blue' : 'gray'}\n                    >\n                      <div style={{ fontWeight: 'bold' }}>{ms.name || '-'}</div>\n                      <div style={{ fontSize: 12, color: '#666' }}>\n                        计划: {ms.planned_date ? dayjs(ms.planned_date).format('YYYY-MM-DD') : '-'}\n                        {ms.actual_date && ` | 实际: ${dayjs(ms.actual_date).format('YYYY-MM-DD')}`}\n                      </div>\n                      {ms.description && <div style={{ fontSize: 13, marginTop: 4 }}>{ms.description}</div>}\n                    </Timeline.Item>\n                  ))}\n                </Timeline>\n              </Card>\n            </Col>\n            <Col span={12}>\n              <Card title=\"项目动态\" extra={isInvestmentManager() && <Button type=\"link\" size=\"small\" icon={<PlusOutlined />} onClick={() => setUpdateModalVisible(true)}>添加</Button>}>\n                <List\n                  dataSource={updatesList}\n                  renderItem={(update) => (\n                    <List.Item key={update.id}>\n                      <List.Item.Meta\n                        title={<span style={{ fontWeight: 500 }}>{update.title || '-'}</span>}\n                        description={\n                          <div>\n                            <div style={{ fontSize: 12, color: '#999', marginBottom: 4 }}>\n                              {update.created_by_name || '未知'} · {update.created_at ? dayjs(update.created_at).format('YYYY-MM-DD HH:mm') : '-'}\n                            </div>\n                            {update.content || ''}\n                          </div>\n                        }\n                      />\n                    </List.Item>\n                  )}\n                />\n              </Card>\n            </Col>\n          </Row>\n        </>\n      )\n    },\n    {\n      key: 'tasks',\n      label: '任务',\n      children: (\n        <Card extra={isInvestmentManager() && <Button type=\"primary\" icon={<PlusOutlined />} onClick={() => setTaskModalVisible(true)}>添加任务</Button>}>\n          <Table columns={taskColumns} dataSource={tasksList} rowKey=\"id\" pagination={false} />\n        </Card>\n      )\n    },\n    {\n      key: 'investors',\n      label: '投资者',\n      children: (\n        <Card extra={isInvestmentManager() && <Button type=\"primary\" icon={<PlusOutlined />} onClick={() => setInvestorModalVisible(true)}>添加投资者</Button>}>\n          <Table columns={investorColumns} dataSource={projectInvestors} rowKey=\"id\" pagination={false} />\n        </Card>\n      )\n    },\n    {\n      key: 'documents',\n      label: '文档',\n      children: (\n        <Card\n          title=\"项目文档\"\n          extra={\n            isInvestmentManager() && (\n              <Upload\n                beforeUpload={handleUpload}\n                showUploadList={false}\n                accept=\".pdf,.ppt,.pptx,.doc,.docx,.txt\"\n              >\n                <Button type=\"primary\" icon={<UploadOutlined />} loading={uploading}>上传文档</Button>\n              </Upload>\n            )\n          }\n        >\n          <Spin spinning={documentsLoading}>\n            {documents.length === 0 ? (\n              <Alert type=\"info\" message=\"暂无文档\" description=\"您可以上传PDF、PPT、Word、TXT等格式的项目介绍文档\" />\n            ) : (\n              <List\n                dataSource={documents}\n                renderItem={(doc) => (\n                  <List.Item\n                    key={doc.id}\n                    actions={[\n                      <Button key=\"download\" type=\"link\" size=\"small\" icon={<DownloadOutlined />} onClick={() => handleDownload(doc.id, doc.name)}>下载</Button>,\n                      <Button key=\"analyze\" type=\"link\" size=\"small\" icon={<FileSearchOutlined />} onClick={() => handleAnalyze(doc.id)} disabled={doc.analysis_status === 'analyzing'}>\n                        {doc.analysis_status === 'pending' || !doc.analysis_status ? '分析' : '重新分析'}\n                      </Button>,\n                      isInvestmentManager() && (\n                        <Popconfirm key=\"delete\" title=\"确定要删除这个文档吗?\" onConfirm={() => handleDeleteDocument(doc.id)}>\n                          <Button type=\"link\" size=\"small\" danger icon={<DeleteOutlined />}>删除</Button>\n                        </Popconfirm>\n                      )\n                    ].filter(Boolean)}\n                  >\n                    <List.Item.Meta\n                      avatar={<FileTextOutlined style={{ fontSize: 32, color: '#1890ff' }} />}\n                      title={\n                        <Space>\n                          {doc.name || '-'}\n                          {getAnalysisStatusTag(doc.analysis_status)}\n                        </Space>\n                      }\n                      description={\n                        <div>\n                          <span style={{ marginRight: 16 }}>上传者：{doc.uploaded_by_name || '未知'}</span>\n                          <span style={{ marginRight: 16 }}>大小：{((doc.file_size || 0) / 1024 / 1024).toFixed(2)} MB</span>\n                          <span>上传时间：{doc.created_at ? dayjs(doc.created_at).format('YYYY-MM-DD HH:mm') : '-'}</span>\n                        </div>\n                      }\n                    />\n                    {renderAnalysisResult(doc)}\n                  </List.Item>\n                )}\n              />\n            )}\n          </Spin>\n        </Card>\n      )\n    },\n    {\n      key: 'decision-process',\n      label: '投资决策流程',\n      children: (\n        <Card\n          title=\"投资决策流程\"\n          extra={\n            isInvestmentManager() && decisionProcess.length === 0 && (\n              <Button type=\"primary\" icon={<PlusOutlined />} onClick={handleInitDecisionProcess}>初始化流程</Button>\n            )\n          }\n        >\n          {decisionProcess.length === 0 ? (\n            <Alert type=\"info\" message=\"暂无决策流程\" description=\"点击上方按钮初始化标准投资决策流程\" />\n          ) : (\n            <Timeline>\n              {decisionProcess.map((stage) => (\n                <Timeline.Item\n                  key={stage.id}\n                  color={stage.status === 'completed' ? 'green' : stage.status === 'in_progress' ? 'blue' : stage.status === 'rejected' ? 'red' : 'gray'}\n                >\n                  <div style={{ fontWeight: 'bold', marginBottom: 8 }}>{stage.stage}</div>\n                  {stage.notes && <div style={{ marginBottom: 8, color: '#666' }}>{stage.notes}</div>}\n                  {stage.decided_by_name && (\n                    <div style={{ fontSize: 12, color: '#999' }}>\n                      {stage.decided_by_name} · {stage.decided_at ? dayjs(stage.decided_at).format('YYYY-MM-DD HH:mm') : '-'}\n                    </div>\n                  )}\n                  {isInvestmentManager() && stage.status !== 'completed' && stage.status !== 'rejected' && (\n                    <div style={{ marginTop: 12 }}>\n                      <Space>\n                        {stage.status !== 'in_progress' && (\n                          <Button type=\"primary\" size=\"small\" onClick={() => handleUpdateDecisionStage(stage.id, 'in_progress')}>开始</Button>\n                        )}\n                        {stage.status === 'in_progress' && (\n                          <>\n                            <Button type=\"primary\" size=\"small\" onClick={() => handleUpdateDecisionStage(stage.id, 'completed')}>通过</Button>\n                            <Button danger size=\"small\" onClick={() => handleUpdateDecisionStage(stage.id, 'rejected')}>拒绝</Button>\n                          </>\n                        )}\n                      </Space>\n                    </div>\n                  )}\n                </Timeline.Item>\n              ))}\n            </Timeline>\n          )}\n        </Card>\n      )\n    },\n    {\n      key: 'post-investment',\n      label: '投后管理',\n      children: (\n        <Card\n          title=\"投后管理记录\"\n          extra={\n            isInvestmentManager() && (\n              <Button type=\"primary\" icon={<PlusOutlined />} onClick={() => setPostInvestmentModalVisible(true)}>添加记录</Button>\n            )\n          }\n        >\n          {postInvestments.length === 0 ? (\n            <Alert type=\"info\" message=\"暂无投后记录\" description=\"添加投后管理记录，跟踪项目进展\" />\n          ) : (\n            <List\n              dataSource={postInvestments}\n              renderItem={(record) => (\n                <List.Item\n                  key={record.id}\n                  actions={\n                    isInvestmentManager() ? [\n                      <Popconfirm key=\"delete\" title=\"确定要删除这条记录吗?\" onConfirm={() => handleDeletePostInvestment(record.id)}>\n                        <Button type=\"link\" size=\"small\" danger icon={<DeleteOutlined />}>删除</Button>\n                      </Popconfirm>\n                    ] : []\n                  }\n                >\n                  <List.Item.Meta\n                    title={\n                      <Space>\n                        <Tag color={record.type === 'meeting' ? 'blue' : record.type === 'financial' ? 'green' : record.type === 'operation' ? 'orange' : 'default'}>\n                          {record.type === 'meeting' ? '会议纪要' : record.type === 'financial' ? '财务报告' : record.type === 'operation' ? '运营报告' : record.type || '-'}\n                        </Tag>\n                        {record.title || '-'}\n                      </Space>\n                    }\n                    description={\n                      <div>\n                        <div style={{ fontSize: 12, color: '#999', marginBottom: 4 }}>\n                          {record.created_by_name || '未知'} · {dayjs(record.date || record.created_at).format('YYYY-MM-DD')}\n                        </div>\n                        {record.content || ''}\n                      </div>\n                    }\n                  />\n                </List.Item>\n              )}\n            />\n          )}\n        </Card>\n      )\n    },\n    {\n      key: 'permissions',\n      label: '权限管理',\n      children: (\n        <Card\n          title=\"项目权限\"\n          extra={\n            isInvestmentManager() && (\n              <Button type=\"primary\" icon={<PlusOutlined />} onClick={() => setPermissionModalVisible(true)}>添加用户权限</Button>\n            )\n          }\n        >\n          {projectPermissions.length === 0 ? (\n            <Alert type=\"info\" message=\"暂无自定义权限\" description=\"添加用户权限以控制项目访问\" />\n          ) : (\n            <Table\n              dataSource={projectPermissions}\n              rowKey=\"id\"\n              pagination={false}\n              columns={[\n                { title: '用户', dataIndex: 'full_name', key: 'full_name', render: (n) => n || '-' },\n                { title: '用户名', dataIndex: 'username', key: 'username', render: (u) => u || '-' },\n                {\n                  title: '可读',\n                  dataIndex: 'can_read',\n                  key: 'can_read',\n                  render: (v) => v ? <CheckOutlined style={{ color: 'green' }} /> : <CloseOutlined style={{ color: 'red' }} />\n                },\n                {\n                  title: '可编辑',\n                  dataIndex: 'can_edit',\n                  key: 'can_edit',\n                  render: (v) => v ? <CheckOutlined style={{ color: 'green' }} /> : <CloseOutlined style={{ color: 'red' }} />\n                },\n                {\n                  title: '可创建',\n                  dataIndex: 'can_create',\n                  key: 'can_create',\n                  render: (v) => v ? <CheckOutlined style={{ color: 'green' }} /> : <CloseOutlined style={{ color: 'red' }} />\n                },\n                {\n                  title: '可删除',\n                  dataIndex: 'can_delete',\n                  key: 'can_delete',\n                  render: (v) => v ? <CheckOutlined style={{ color: 'green' }} /> : <CloseOutlined style={{ color: 'red' }} />\n                },\n                {\n                  title: '操作',\n                  key: 'actions',\n                  render: (_, record) => isInvestmentManager() && (\n                    <Popconfirm title=\"确定要删除该用户的权限吗?\" onConfirm={() => handleDeletePermission(record.user_id)}>\n                      <Button type=\"link\" danger size=\"small\">删除</Button>\n                    </Popconfirm>\n                  )\n                }\n              ]}\n            />\n          )}\n        </Card>\n      )\n    }\n  ];\n\n  return (\n    <div>\n      <div style={{ marginBottom: 16 }}>\n        <Button icon={<ArrowLeftOutlined />} onClick={() => navigate('/projects')}>返回</Button>\n      </div>\n\n      <Card\n        title={projInfo.name || '项目详情'}\n        extra={\n          <Space>\n            <Tag color={getStatusColor(projInfo.status)}>{getStatusText(projInfo.status)}</Tag>\n            {projInfo.industry && <Tag color=\"blue\">{projInfo.industry}</Tag>}\n            {isInvestmentManager() && <Button icon={<EditOutlined />}>编辑</Button>}\n          </Space>\n        }\n      >\n        <Tabs items={tabs} />\n      </Card>\n\n      {/* Task Modal */}\n      <Modal title=\"添加任务\" open={taskModalVisible} onOk={handleAddTask} onCancel={() => setTaskModalVisible(false)}>\n        <Form form={taskForm} layout=\"vertical\">\n          <Form.Item name=\"title\" label=\"任务标题\" rules={[{ required: true }]}>\n            <Input />\n          </Form.Item>\n          <Form.Item name=\"description\" label=\"描述\">\n            <TextArea rows={3} />\n          </Form.Item>\n          <Form.Item name=\"priority\" label=\"优先级\" initialValue=\"medium\">\n            <Select>\n              <Option value=\"high\">高</Option>\n              <Option value=\"medium\">中</Option>\n              <Option value=\"low\">低</Option>\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"assignedTo\" label=\"负责人\">\n            <Select>\n              {users.map(u => <Option key={u.id} value={u.id}>{u.full_name}</Option>)}\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"dueDate\" label=\"截止日期\">\n            <DatePicker style={{ width: '100%' }} />\n          </Form.Item>\n        </Form>\n      </Modal>\n\n      {/* Milestone Modal */}\n      <Modal title=\"添加里程碑\" open={milestoneModalVisible} onOk={handleAddMilestone} onCancel={() => setMilestoneModalVisible(false)}>\n        <Form form={milestoneForm} layout=\"vertical\">\n          <Form.Item name=\"name\" label=\"里程碑名称\" rules={[{ required: true }]}>\n            <Input />\n          </Form.Item>\n          <Form.Item name=\"description\" label=\"描述\">\n            <TextArea rows={3} />\n          </Form.Item>\n          <Form.Item name=\"plannedDate\" label=\"计划日期\">\n            <DatePicker style={{ width: '100%' }} />\n          </Form.Item>\n        </Form>\n      </Modal>\n\n      {/* Update Modal */}\n      <Modal title=\"添加项目更新\" open={updateModalVisible} onOk={handleAddUpdate} onCancel={() => setUpdateModalVisible(false)}>\n        <Form form={updateForm} layout=\"vertical\">\n          <Form.Item name=\"title\" label=\"标题\" rules={[{ required: true }]}>\n            <Input />\n          </Form.Item>\n          <Form.Item name=\"updateType\" label=\"类型\" initialValue=\"general\">\n            <Select>\n              <Option value=\"general\">普通更新</Option>\n              <Option value=\"progress\">进度更新</Option>\n              <Option value=\"risk\">风险提示</Option>\n              <Option value=\"milestone\">里程碑</Option>\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"content\" label=\"内容\">\n            <TextArea rows={5} />\n          </Form.Item>\n        </Form>\n      </Modal>\n\n      {/* Investor Modal */}\n      <Modal title=\"添加投资者\" open={investorModalVisible} onOk={handleAddInvestor} onCancel={() => setInvestorModalVisible(false)}>\n        <Form form={investorForm} layout=\"vertical\">\n          <Form.Item name=\"investorId\" label=\"投资者\" rules={[{ required: true }]}>\n            <Select>\n              {investors.map(i => <Option key={i.id} value={i.id}>{i.name}</Option>)}\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"investmentAmount\" label=\"投资金额\">\n            <Input type=\"number\" />\n          </Form.Item>\n          <Form.Item name=\"equityRatio\" label=\"股权比例(%)\">\n            <Input type=\"number\" />\n          </Form.Item>\n          <Form.Item name=\"investmentDate\" label=\"投资日期\">\n            <DatePicker style={{ width: '100%' }} />\n          </Form.Item>\n          <Form.Item name=\"notes\" label=\"备注\">\n            <TextArea rows={3} />\n          </Form.Item>\n        </Form>\n      </Modal>\n\n      {/* Post Investment Modal */}\n      <Modal title=\"添加投后记录\" open={postInvestmentModalVisible} onOk={handleAddPostInvestment} onCancel={() => setPostInvestmentModalVisible(false)}>\n        <Form form={postInvestmentForm} layout=\"vertical\">\n          <Form.Item name=\"type\" label=\"类型\" rules={[{ required: true }]} initialValue=\"meeting\">\n            <Select>\n              <Option value=\"meeting\">会议纪要</Option>\n              <Option value=\"financial\">财务报告</Option>\n              <Option value=\"operation\">运营报告</Option>\n              <Option value=\"other\">其他</Option>\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"title\" label=\"标题\" rules={[{ required: true }]}>\n            <Input />\n          </Form.Item>\n          <Form.Item name=\"date\" label=\"日期\">\n            <DatePicker style={{ width: '100%' }} />\n          </Form.Item>\n          <Form.Item name=\"content\" label=\"内容\">\n            <TextArea rows={5} />\n          </Form.Item>\n        </Form>\n      </Modal>\n\n      {/* Permission Modal */}\n      <Modal title=\"添加用户权限\" open={permissionModalVisible} onOk={handleAddPermission} onCancel={() => setPermissionModalVisible(false)}>\n        <Form form={permissionForm} layout=\"vertical\">\n          <Form.Item name=\"userId\" label=\"用户\" rules={[{ required: true }]}>\n            <Select>\n              {users.filter(u => !projectPermissions.find(p => p.user_id === u.id)).map(u => (\n                <Option key={u.id} value={u.id}>{u.full_name} ({u.username})</Option>\n              ))}\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"canRead\" label=\"可读\" initialValue={true}>\n            <Select>\n              <Option value={true}>是</Option>\n              <Option value={false}>否</Option>\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"canEdit\" label=\"可编辑\" initialValue={false}>\n            <Select>\n              <Option value={true}>是</Option>\n              <Option value={false}>否</Option>\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"canCreate\" label=\"可创建\" initialValue={false}>\n            <Select>\n              <Option value={true}>是</Option>\n              <Option value={false}>否</Option>\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"canDelete\" label=\"可删除\" initialValue={false}>\n            <Select>\n              <Option value={true}>是</Option>\n              <Option value={false}>否</Option>\n            </Select>\n          </Form.Item>\n        </Form>\n      </Modal>\n    </div>\n  );\n};\n\nexport default ProjectDetail;\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,SACEC,IAAI,EACJC,YAAY,EACZC,GAAG,EACHC,MAAM,EACNC,KAAK,EACLC,KAAK,EACLC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,UAAU,EACVC,OAAO,EACPC,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,KAAK,EACLC,UAAU,EACVC,GAAG,EACHC,GAAG,EACHC,MAAM,EACNC,IAAI,EACJC,KAAK,EACLC,QAAQ,QACH,MAAM;AACb,SACEC,iBAAiB,EACjBC,YAAY,EACZC,YAAY,EACZC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,gBAAgB,EAChBC,cAAc,EACdC,gBAAgB,EAChBC,kBAAkB,QACb,mBAAmB;AAC1B,SAASC,SAAS,EAAEC,WAAW,QAAQ,kBAAkB;AACzD,SAASC,WAAW,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,kBAAkB,EAAEC,iBAAiB,EAAEC,qBAAqB,QAAQ,iBAAiB;AACnI,SAASC,OAAO,QAAQ,yBAAyB;AACjD,OAAOC,KAAK,MAAM,OAAO;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAE1B,MAAM;EAAEC;AAAO,CAAC,GAAGtC,MAAM;AACzB,MAAM;EAAEuC;AAAS,CAAC,GAAGxC,KAAK;AAE1B,MAAMyC,aAAa,GAAGA,CAAA,KAAM;EAAAC,EAAA;EAC1B,MAAM;IAAEC;EAAG,CAAC,GAAGlB,SAAS,CAAC,CAAC;EAC1B,MAAMmB,QAAQ,GAAGlB,WAAW,CAAC,CAAC;EAC9B,MAAM;IAAEmB,IAAI;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGd,OAAO,CAAC,CAAC;EAExD,MAAM,CAACe,OAAO,EAAEC,UAAU,CAAC,GAAG1D,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAAC2D,OAAO,EAAEC,UAAU,CAAC,GAAG5D,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAAC6D,KAAK,EAAEC,QAAQ,CAAC,GAAG9D,QAAQ,CAAC,EAAE,CAAC;EACtC,MAAM,CAAC+D,SAAS,EAAEC,YAAY,CAAC,GAAGhE,QAAQ,CAAC,EAAE,CAAC;EAC9C,MAAM,CAACiE,SAAS,EAAEC,YAAY,CAAC,GAAGlE,QAAQ,CAAC,EAAE,CAAC;EAC9C,MAAM,CAACmE,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGpE,QAAQ,CAAC,KAAK,CAAC;EAC/D,MAAM,CAACqE,SAAS,EAAEC,YAAY,CAAC,GAAGtE,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACuE,eAAe,EAAEC,kBAAkB,CAAC,GAAGxE,QAAQ,CAAC,EAAE,CAAC;EAC1D,MAAM,CAACyE,eAAe,EAAEC,kBAAkB,CAAC,GAAG1E,QAAQ,CAAC,EAAE,CAAC;EAC1D,MAAM,CAAC2E,kBAAkB,EAAEC,qBAAqB,CAAC,GAAG5E,QAAQ,CAAC,EAAE,CAAC;EAEhE,MAAM,CAAC6E,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG9E,QAAQ,CAAC,KAAK,CAAC;EAC/D,MAAM,CAAC+E,qBAAqB,EAAEC,wBAAwB,CAAC,GAAGhF,QAAQ,CAAC,KAAK,CAAC;EACzE,MAAM,CAACiF,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGlF,QAAQ,CAAC,KAAK,CAAC;EACnE,MAAM,CAACmF,oBAAoB,EAAEC,uBAAuB,CAAC,GAAGpF,QAAQ,CAAC,KAAK,CAAC;EACvE,MAAM,CAACqF,0BAA0B,EAAEC,6BAA6B,CAAC,GAAGtF,QAAQ,CAAC,KAAK,CAAC;EACnF,MAAM,CAACuF,sBAAsB,EAAEC,yBAAyB,CAAC,GAAGxF,QAAQ,CAAC,KAAK,CAAC;EAE3E,MAAM,CAACyF,QAAQ,CAAC,GAAGjF,IAAI,CAACkF,OAAO,CAAC,CAAC;EACjC,MAAM,CAACC,aAAa,CAAC,GAAGnF,IAAI,CAACkF,OAAO,CAAC,CAAC;EACtC,MAAM,CAACE,UAAU,CAAC,GAAGpF,IAAI,CAACkF,OAAO,CAAC,CAAC;EACnC,MAAM,CAACG,YAAY,CAAC,GAAGrF,IAAI,CAACkF,OAAO,CAAC,CAAC;EACrC,MAAM,CAACI,kBAAkB,CAAC,GAAGtF,IAAI,CAACkF,OAAO,CAAC,CAAC;EAC3C,MAAM,CAACK,cAAc,CAAC,GAAGvF,IAAI,CAACkF,OAAO,CAAC,CAAC;EAEvCzF,SAAS,CAAC,MAAM;IACd,IAAImD,EAAE,EAAE;MACN4C,YAAY,CAAC,CAAC;MACdC,UAAU,CAAC,CAAC;MACZC,cAAc,CAAC,CAAC;MAChBC,cAAc,CAAC,CAAC;MAChBC,oBAAoB,CAAC,CAAC;MACtBC,oBAAoB,CAAC,CAAC;MACtBC,uBAAuB,CAAC,CAAC;IAC3B;EACF,CAAC,EAAE,CAAClD,EAAE,CAAC,CAAC;EAER,MAAM4C,YAAY,GAAG,MAAAA,CAAA,KAAY;IAC/BpC,UAAU,CAAC,IAAI,CAAC;IAChB,IAAI;MACF,MAAM2C,QAAQ,GAAG,MAAMnE,WAAW,CAACoE,MAAM,CAACpD,EAAE,CAAC;MAC7C,MAAMqD,IAAI,GAAGF,QAAQ,CAACE,IAAI,IAAI,CAAC,CAAC;MAChC/C,UAAU,CAAC;QACTD,OAAO,EAAEgD,IAAI,CAAChD,OAAO,IAAI,CAAC,CAAC;QAC3BM,SAAS,EAAE0C,IAAI,CAAC1C,SAAS,IAAI,EAAE;QAC/B2C,KAAK,EAAED,IAAI,CAACC,KAAK,IAAI,EAAE;QACvBC,UAAU,EAAEF,IAAI,CAACE,UAAU,IAAI,EAAE;QACjCC,OAAO,EAAEH,IAAI,CAACG,OAAO,IAAI,EAAE;QAC3B3C,SAAS,EAAEwC,IAAI,CAACxC,SAAS,IAAI;MAC/B,CAAC,CAAC;IACJ,CAAC,CAAC,OAAO4C,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,UAAU,CAAC;MACzBC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;IACtB,CAAC,SAAS;MACRjD,UAAU,CAAC,KAAK,CAAC;IACnB;EACF,CAAC;EAED,MAAMqC,UAAU,GAAG,MAAAA,CAAA,KAAY;IAC7B,IAAI;MAAA,IAAAc,cAAA;MACF,MAAMR,QAAQ,GAAG,MAAMlE,QAAQ,CAAC2E,MAAM,CAAC;QAAEC,KAAK,EAAE;MAAI,CAAC,CAAC;MACtDnD,QAAQ,CAAC,EAAAiD,cAAA,GAAAR,QAAQ,CAACE,IAAI,cAAAM,cAAA,uBAAbA,cAAA,CAAelD,KAAK,KAAI,EAAE,CAAC;IACtC,CAAC,CAAC,OAAOgD,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,WAAW,EAAEA,KAAK,CAAC;IACnC;EACF,CAAC;EAED,MAAMX,cAAc,GAAG,MAAAA,CAAA,KAAY;IACjC,IAAI;MAAA,IAAAgB,eAAA;MACF,MAAMX,QAAQ,GAAG,MAAMjE,YAAY,CAAC0E,MAAM,CAAC;QAAEC,KAAK,EAAE;MAAI,CAAC,CAAC;MAC1DjD,YAAY,CAAC,EAAAkD,eAAA,GAAAX,QAAQ,CAACE,IAAI,cAAAS,eAAA,uBAAbA,eAAA,CAAenD,SAAS,KAAI,EAAE,CAAC;IAC9C,CAAC,CAAC,OAAO8C,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,YAAY,EAAEA,KAAK,CAAC;IACpC;EACF,CAAC;EAED,MAAMV,cAAc,GAAG,MAAAA,CAAA,KAAY;IACjC/B,mBAAmB,CAAC,IAAI,CAAC;IACzB,IAAI;MAAA,IAAA+C,eAAA;MACF,MAAMZ,QAAQ,GAAG,MAAMnE,WAAW,CAACgF,YAAY,CAAChE,EAAE,CAAC;MACnDc,YAAY,CAAC,EAAAiD,eAAA,GAAAZ,QAAQ,CAACE,IAAI,cAAAU,eAAA,uBAAbA,eAAA,CAAelD,SAAS,KAAI,EAAE,CAAC;IAC9C,CAAC,CAAC,OAAO4C,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,WAAW,EAAEA,KAAK,CAAC;IACnC,CAAC,SAAS;MACRzC,mBAAmB,CAAC,KAAK,CAAC;IAC5B;EACF,CAAC;EAED,MAAMgC,oBAAoB,GAAG,MAAAA,CAAA,KAAY;IACvC,IAAI;MAAA,IAAAiB,eAAA;MACF,MAAMd,QAAQ,GAAG,MAAMhE,kBAAkB,CAAC+E,YAAY,CAAClE,EAAE,CAAC;MAC1DoB,kBAAkB,CAAC,EAAA6C,eAAA,GAAAd,QAAQ,CAACE,IAAI,cAAAY,eAAA,uBAAbA,eAAA,CAAeE,gBAAgB,KAAI,EAAE,CAAC;IAC3D,CAAC,CAAC,OAAOV,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,aAAa,EAAEA,KAAK,CAAC;IACrC;EACF,CAAC;EAED,MAAMR,oBAAoB,GAAG,MAAAA,CAAA,KAAY;IACvC,IAAI;MAAA,IAAAmB,eAAA;MACF,MAAMjB,QAAQ,GAAG,MAAM/D,iBAAiB,CAAC8E,YAAY,CAAClE,EAAE,CAAC;MACzDsB,kBAAkB,CAAC,EAAA8C,eAAA,GAAAjB,QAAQ,CAACE,IAAI,cAAAe,eAAA,uBAAbA,eAAA,CAAeC,eAAe,KAAI,EAAE,CAAC;IAC1D,CAAC,CAAC,OAAOZ,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,aAAa,EAAEA,KAAK,CAAC;IACrC;EACF,CAAC;EAED,MAAMP,uBAAuB,GAAG,MAAAA,CAAA,KAAY;IAC1C,IAAI;MAAA,IAAAoB,eAAA;MACF,MAAMnB,QAAQ,GAAG,MAAM9D,qBAAqB,CAAC6E,YAAY,CAAClE,EAAE,CAAC;MAC7DwB,qBAAqB,CAAC,EAAA8C,eAAA,GAAAnB,QAAQ,CAACE,IAAI,cAAAiB,eAAA,uBAAbA,eAAA,CAAeC,mBAAmB,KAAI,EAAE,CAAC;IACjE,CAAC,CAAC,OAAOd,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,WAAW,EAAEA,KAAK,CAAC;IACnC;EACF,CAAC;EAED,MAAMe,cAAc,GAAIC,MAAM,IAAK;IACjC,IAAI,CAACA,MAAM,EAAE,OAAO,SAAS;IAC7B,MAAMC,MAAM,GAAG;MACbC,KAAK,EAAE,SAAS;MAChBC,MAAM,EAAE,OAAO;MACfC,SAAS,EAAE,MAAM;MACjBC,OAAO,EAAE,QAAQ;MACjBC,MAAM,EAAE;IACV,CAAC;IACD,OAAOL,MAAM,CAACD,MAAM,CAAC,IAAI,SAAS;EACpC,CAAC;EAED,MAAMO,aAAa,GAAIP,MAAM,IAAK;IAChC,IAAI,CAACA,MAAM,EAAE,OAAO,GAAG;IACvB,MAAMQ,KAAK,GAAG;MACZN,KAAK,EAAE,IAAI;MACXC,MAAM,EAAE,KAAK;MACbC,SAAS,EAAE,KAAK;MAChBC,OAAO,EAAE,KAAK;MACdC,MAAM,EAAE;IACV,CAAC;IACD,OAAOE,KAAK,CAACR,MAAM,CAAC,IAAIA,MAAM;EAChC,CAAC;EAED,MAAMS,gBAAgB,GAAIC,QAAQ,IAAK;IACrC,IAAI,CAACA,QAAQ,EAAE,OAAO,SAAS;IAC/B,MAAMT,MAAM,GAAG;MAAEU,IAAI,EAAE,KAAK;MAAEC,MAAM,EAAE,QAAQ;MAAEC,GAAG,EAAE;IAAO,CAAC;IAC7D,OAAOZ,MAAM,CAACS,QAAQ,CAAC,IAAI,SAAS;EACtC,CAAC;EAED,MAAMI,oBAAoB,GAAId,MAAM,IAAK;IACvC,MAAMe,SAAS,GAAG;MAChBV,OAAO,EAAE;QAAEW,KAAK,EAAE,SAAS;QAAEC,IAAI,EAAE;MAAM,CAAC;MAC1CC,SAAS,EAAE;QAAEF,KAAK,EAAE,MAAM;QAAEC,IAAI,EAAE;MAAM,CAAC;MACzCb,SAAS,EAAE;QAAEY,KAAK,EAAE,OAAO;QAAEC,IAAI,EAAE;MAAO,CAAC;MAC3CjC,KAAK,EAAE;QAAEgC,KAAK,EAAE,KAAK;QAAEC,IAAI,EAAE;MAAO;IACtC,CAAC;IACD,MAAME,IAAI,GAAGJ,SAAS,CAACf,MAAM,CAAC,IAAI;MAAEgB,KAAK,EAAE,SAAS;MAAEC,IAAI,EAAEjB,MAAM,IAAI;IAAI,CAAC;IAC3E,oBAAOhF,OAAA,CAACzC,GAAG;MAACyI,KAAK,EAAEG,IAAI,CAACH,KAAM;MAAAI,QAAA,EAAED,IAAI,CAACF;IAAI;MAAAI,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAM,CAAC;EAClD,CAAC;EAED,MAAMC,oBAAoB,GAAIC,QAAQ,IAAK;IACzC,IAAI,EAACA,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEC,eAAe,GAAE,OAAO,IAAI;IAC3C,IAAI;MACF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACJ,QAAQ,CAACC,eAAe,CAAC;MACnD,IAAIC,MAAM,CAAC5C,KAAK,EAAE;QAChB,oBAAOhE,OAAA,CAACvB,KAAK;UAACsI,IAAI,EAAC,OAAO;UAAChJ,OAAO,EAAC,0BAAM;UAACiJ,WAAW,EAAEJ,MAAM,CAAC7I;QAAQ;UAAAsI,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAC;MAC3E;MACA,oBACExG,OAAA,CAACtB,QAAQ;QAACuI,KAAK;QAAAb,QAAA,eACbpG,OAAA,CAACtB,QAAQ,CAACwI,KAAK;UAACC,MAAM,EAAC,sCAAQ;UAAAf,QAAA,gBAC7BpG,OAAA,CAAC1C,YAAY;YAAC8J,MAAM,EAAE,CAAE;YAACC,IAAI,EAAC,OAAO;YAAAjB,QAAA,gBACnCpG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;cAACC,KAAK,EAAC,0BAAM;cAAAnB,QAAA,EAAEQ,MAAM,CAACY;YAAQ;cAAAnB,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAoB,CAAC,eACrExG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;cAACC,KAAK,EAAC,0BAAM;cAAAnB,QAAA,EAAEQ,MAAM,CAACa;YAAiB;cAAApB,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAoB,CAAC,eAC9ExG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;cAACC,KAAK,EAAC,0BAAM;cAAAnB,QAAA,EAAEQ,MAAM,CAACc;YAAO;cAAArB,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAoB,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACxD,CAAC,EACdI,MAAM,CAACe,QAAQ,IAAIf,MAAM,CAACe,QAAQ,CAACC,MAAM,GAAG,CAAC,iBAC5C5H,OAAA;YAAK6H,KAAK,EAAE;cAAEC,SAAS,EAAE;YAAG,CAAE;YAAA1B,QAAA,gBAC5BpG,OAAA;cAAAoG,QAAA,EAAQ;YAAI;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eACrBxG,OAAA,CAACvC,KAAK;cAACoK,KAAK,EAAE;gBAAEE,UAAU,EAAE;cAAE,CAAE;cAAA3B,QAAA,EAC7BQ,MAAM,CAACe,QAAQ,CAACK,GAAG,CAAC,CAACC,EAAE,EAAEC,CAAC,kBAAKlI,OAAA,CAACzC,GAAG;gBAASyI,KAAK,EAAC,MAAM;gBAAAI,QAAA,EAAE6B;cAAE,GAAnBC,CAAC;gBAAA7B,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAwB,CAAC;YAAC;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAChE,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACL,CACN,EACAI,MAAM,CAACuB,eAAe,IAAIvB,MAAM,CAACuB,eAAe,CAACP,MAAM,GAAG,CAAC,iBAC1D5H,OAAA;YAAK6H,KAAK,EAAE;cAAEC,SAAS,EAAE;YAAG,CAAE;YAAA1B,QAAA,gBAC5BpG,OAAA;cAAAoG,QAAA,EAAQ;YAAG;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eACpBxG,OAAA;cAAI6H,KAAK,EAAE;gBAAEC,SAAS,EAAE,CAAC;gBAAEM,WAAW,EAAE;cAAG,CAAE;cAAAhC,QAAA,EAC1CQ,MAAM,CAACuB,eAAe,CAACH,GAAG,CAAC,CAACK,GAAG,EAAEH,CAAC,kBAAKlI,OAAA;gBAAAoG,QAAA,EAAaiC;cAAG,GAAPH,CAAC;gBAAA7B,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAW,CAAC;YAAC;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAC7D,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACF,CACN;QAAA,GArBiC,GAAG;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAsBvB;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACT,CAAC;IAEf,CAAC,CAAC,OAAO8B,CAAC,EAAE;MACV,oBAAOtI,OAAA,CAACvB,KAAK;QAACsI,IAAI,EAAC,SAAS;QAAChJ,OAAO,EAAC;MAAU;QAAAsI,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAAC;IACpD;EACF,CAAC;;EAED;EACA,MAAM+B,aAAa,GAAG,MAAAA,CAAA,KAAY;IAChC,IAAI;MACF,MAAMC,MAAM,GAAG,MAAM5F,QAAQ,CAAC6F,cAAc,CAAC,CAAC;MAC9C,MAAMlJ,WAAW,CAACmJ,OAAO,CAACnI,EAAE,EAAE;QAC5B,GAAGiI,MAAM;QACTG,OAAO,EAAEH,MAAM,CAACG,OAAO,GAAGH,MAAM,CAACG,OAAO,CAACC,MAAM,CAAC,YAAY,CAAC,GAAG;MAClE,CAAC,CAAC;MACF7K,OAAO,CAAC8K,OAAO,CAAC,QAAQ,CAAC;MACzB5G,mBAAmB,CAAC,KAAK,CAAC;MAC1BW,QAAQ,CAACkG,WAAW,CAAC,CAAC;MACtB3F,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC,OAAOa,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,QAAQ,CAAC;IACzB;EACF,CAAC;EAED,MAAM+E,sBAAsB,GAAG,MAAAA,CAAOC,MAAM,EAAEhE,MAAM,KAAK;IACvD,IAAI;MACF,MAAMzF,WAAW,CAAC0J,UAAU,CAAC1I,EAAE,EAAEyI,MAAM,EAAE;QACvChE,MAAM;QACNkE,WAAW,EAAElE,MAAM,KAAK,WAAW,GAAG,IAAImE,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAG;MACnE,CAAC,CAAC;MACFrL,OAAO,CAAC8K,OAAO,CAAC,UAAU,CAAC;MAC3B1F,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC,OAAOa,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,QAAQ,CAAC;IACzB;EACF,CAAC;EAED,MAAMqF,kBAAkB,GAAG,MAAAA,CAAA,KAAY;IACrC,IAAI;MACF,MAAMb,MAAM,GAAG,MAAM1F,aAAa,CAAC2F,cAAc,CAAC,CAAC;MACnD,MAAMlJ,WAAW,CAAC+J,YAAY,CAAC/I,EAAE,EAAE;QACjC,GAAGiI,MAAM;QACTe,WAAW,EAAEf,MAAM,CAACe,WAAW,GAAGf,MAAM,CAACe,WAAW,CAACX,MAAM,CAAC,YAAY,CAAC,GAAG;MAC9E,CAAC,CAAC;MACF7K,OAAO,CAAC8K,OAAO,CAAC,SAAS,CAAC;MAC1B1G,wBAAwB,CAAC,KAAK,CAAC;MAC/BW,aAAa,CAACgG,WAAW,CAAC,CAAC;MAC3B3F,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC,OAAOa,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,SAAS,CAAC;IAC1B;EACF,CAAC;EAED,MAAMwF,eAAe,GAAG,MAAAA,CAAA,KAAY;IAClC,IAAI;MACF,MAAMhB,MAAM,GAAG,MAAMzF,UAAU,CAAC0F,cAAc,CAAC,CAAC;MAChD,MAAMlJ,WAAW,CAACkK,SAAS,CAAClJ,EAAE,EAAEiI,MAAM,CAAC;MACvCzK,OAAO,CAAC8K,OAAO,CAAC,UAAU,CAAC;MAC3BxG,qBAAqB,CAAC,KAAK,CAAC;MAC5BU,UAAU,CAAC+F,WAAW,CAAC,CAAC;MACxB3F,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC,OAAOa,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,UAAU,CAAC;IAC3B;EACF,CAAC;EAED,MAAM0F,iBAAiB,GAAG,MAAAA,CAAA,KAAY;IACpC,IAAI;MACF,MAAMlB,MAAM,GAAG,MAAMxF,YAAY,CAACyF,cAAc,CAAC,CAAC;MAClD,MAAMlJ,WAAW,CAACoK,WAAW,CAACpJ,EAAE,EAAE;QAChC,GAAGiI,MAAM;QACToB,cAAc,EAAEpB,MAAM,CAACoB,cAAc,GAAGpB,MAAM,CAACoB,cAAc,CAAChB,MAAM,CAAC,YAAY,CAAC,GAAG;MACvF,CAAC,CAAC;MACF7K,OAAO,CAAC8K,OAAO,CAAC,SAAS,CAAC;MAC1BtG,uBAAuB,CAAC,KAAK,CAAC;MAC9BS,YAAY,CAAC8F,WAAW,CAAC,CAAC;MAC1B3F,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC,OAAOa,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,SAAS,CAAC;IAC1B;EACF,CAAC;EAED,MAAM6F,oBAAoB,GAAG,MAAOC,UAAU,IAAK;IACjD,IAAI;MACF,MAAMvK,WAAW,CAACwK,cAAc,CAACxJ,EAAE,EAAEuJ,UAAU,CAAC;MAChD/L,OAAO,CAAC8K,OAAO,CAAC,QAAQ,CAAC;MACzB1F,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC,OAAOa,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,SAAS,CAAC;IAC1B;EACF,CAAC;EAED,MAAMgG,YAAY,GAAG,MAAOC,IAAI,IAAK;IACnCxI,YAAY,CAAC,IAAI,CAAC;IAClB,IAAI;MACF,MAAMlC,WAAW,CAAC2K,cAAc,CAAC3J,EAAE,EAAE0J,IAAI,CAAC;MAC1ClM,OAAO,CAAC8K,OAAO,CAAC,QAAQ,CAAC;MACzBvF,cAAc,CAAC,CAAC;IAClB,CAAC,CAAC,OAAOU,KAAK,EAAE;MAAA,IAAAmG,eAAA,EAAAC,oBAAA;MACdrM,OAAO,CAACiG,KAAK,CAAC,EAAAmG,eAAA,GAAAnG,KAAK,CAACN,QAAQ,cAAAyG,eAAA,wBAAAC,oBAAA,GAAdD,eAAA,CAAgBvG,IAAI,cAAAwG,oBAAA,uBAApBA,oBAAA,CAAsBrM,OAAO,KAAI,QAAQ,CAAC;IAC1D,CAAC,SAAS;MACR0D,YAAY,CAAC,KAAK,CAAC;IACrB;IACA,OAAO,KAAK;EACd,CAAC;EAED,MAAM4I,cAAc,GAAG,MAAAA,CAAOC,KAAK,EAAEjE,QAAQ,KAAK;IAChD,IAAI;MACF,MAAM3C,QAAQ,GAAG,MAAMnE,WAAW,CAACgL,gBAAgB,CAAChK,EAAE,EAAE+J,KAAK,CAAC;MAC9D,MAAME,GAAG,GAAGC,MAAM,CAACC,GAAG,CAACC,eAAe,CAAC,IAAIC,IAAI,CAAC,CAAClH,QAAQ,CAACE,IAAI,CAAC,CAAC,CAAC;MACjE,MAAMiH,IAAI,GAAGnE,QAAQ,CAACoE,aAAa,CAAC,GAAG,CAAC;MACxCD,IAAI,CAACE,IAAI,GAAGP,GAAG;MACfK,IAAI,CAACG,YAAY,CAAC,UAAU,EAAE3E,QAAQ,CAAC;MACvCK,QAAQ,CAACuE,IAAI,CAACC,WAAW,CAACL,IAAI,CAAC;MAC/BA,IAAI,CAACM,KAAK,CAAC,CAAC;MACZN,IAAI,CAACO,MAAM,CAAC,CAAC;IACf,CAAC,CAAC,OAAOpH,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,QAAQ,CAAC;IACzB;EACF,CAAC;EAED,MAAMqH,aAAa,GAAG,MAAOf,KAAK,IAAK;IACrC,IAAI;MACF,MAAM/K,WAAW,CAAC+L,eAAe,CAAC/K,EAAE,EAAE+J,KAAK,CAAC;MAC5CvM,OAAO,CAAC8K,OAAO,CAAC,SAAS,CAAC;MAC1BvF,cAAc,CAAC,CAAC;IAClB,CAAC,CAAC,OAAOU,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,QAAQ,CAAC;IACzB;EACF,CAAC;EAED,MAAMuH,oBAAoB,GAAG,MAAOjB,KAAK,IAAK;IAC5C,IAAI;MACF,MAAM/K,WAAW,CAACiM,cAAc,CAACjL,EAAE,EAAE+J,KAAK,CAAC;MAC3CvM,OAAO,CAAC8K,OAAO,CAAC,QAAQ,CAAC;MACzBvF,cAAc,CAAC,CAAC;IAClB,CAAC,CAAC,OAAOU,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,QAAQ,CAAC;IACzB;EACF,CAAC;EAED,MAAMyH,yBAAyB,GAAG,MAAAA,CAAA,KAAY;IAC5C,IAAI;MACF,MAAM/L,kBAAkB,CAACgM,IAAI,CAACnL,EAAE,CAAC;MACjCxC,OAAO,CAAC8K,OAAO,CAAC,YAAY,CAAC;MAC7BtF,oBAAoB,CAAC,CAAC;IACxB,CAAC,CAAC,OAAOS,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,aAAa,CAAC;IAC9B;EACF,CAAC;EAED,MAAM2H,yBAAyB,GAAG,MAAAA,CAAOC,OAAO,EAAE5G,MAAM,EAAE6G,KAAK,GAAG,EAAE,KAAK;IACvE,IAAI;MACF,MAAMnM,kBAAkB,CAACoM,MAAM,CAACF,OAAO,EAAE;QAAE5G,MAAM;QAAE6G;MAAM,CAAC,CAAC;MAC3D9N,OAAO,CAAC8K,OAAO,CAAC,QAAQ,CAAC;MACzBtF,oBAAoB,CAAC,CAAC;IACxB,CAAC,CAAC,OAAOS,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,QAAQ,CAAC;IACzB;EACF,CAAC;EAED,MAAM+H,uBAAuB,GAAG,MAAAA,CAAA,KAAY;IAC1C,IAAI;MACF,MAAMvD,MAAM,GAAG,MAAMvF,kBAAkB,CAACwF,cAAc,CAAC,CAAC;MACxD,MAAM9I,iBAAiB,CAACqM,MAAM,CAAC;QAC7B,GAAGxD,MAAM;QACTyD,SAAS,EAAE1L,EAAE;QACb2L,IAAI,EAAE1D,MAAM,CAAC0D,IAAI,GAAG1D,MAAM,CAAC0D,IAAI,CAACtD,MAAM,CAAC,YAAY,CAAC,GAAG;MACzD,CAAC,CAAC;MACF7K,OAAO,CAAC8K,OAAO,CAAC,UAAU,CAAC;MAC3BpG,6BAA6B,CAAC,KAAK,CAAC;MACpCQ,kBAAkB,CAAC6F,WAAW,CAAC,CAAC;MAChCtF,oBAAoB,CAAC,CAAC;IACxB,CAAC,CAAC,OAAOQ,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,UAAU,CAAC;IAC3B;EACF,CAAC;EAED,MAAMmI,0BAA0B,GAAG,MAAOC,QAAQ,IAAK;IACrD,IAAI;MACF,MAAMzM,iBAAiB,CAAC0M,MAAM,CAACD,QAAQ,CAAC;MACxCrO,OAAO,CAAC8K,OAAO,CAAC,UAAU,CAAC;MAC3BrF,oBAAoB,CAAC,CAAC;IACxB,CAAC,CAAC,OAAOQ,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,UAAU,CAAC;IAC3B;EACF,CAAC;EAED,MAAMsI,mBAAmB,GAAG,MAAAA,CAAA,KAAY;IACtC,IAAI;MACF,MAAM9D,MAAM,GAAG,MAAMtF,cAAc,CAACuF,cAAc,CAAC,CAAC;MACpD,MAAM7I,qBAAqB,CAACoM,MAAM,CAAC;QACjCC,SAAS,EAAE1L,EAAE;QACb,GAAGiI,MAAM;QACT+D,OAAO,EAAE/D,MAAM,CAAC+D,OAAO,KAAK,KAAK;QACjCC,OAAO,EAAEhE,MAAM,CAACgE,OAAO,IAAI,KAAK;QAChCC,SAAS,EAAEjE,MAAM,CAACiE,SAAS,IAAI,KAAK;QACpCC,SAAS,EAAElE,MAAM,CAACkE,SAAS,IAAI;MACjC,CAAC,CAAC;MACF3O,OAAO,CAAC8K,OAAO,CAAC,QAAQ,CAAC;MACzBlG,yBAAyB,CAAC,KAAK,CAAC;MAChCO,cAAc,CAAC4F,WAAW,CAAC,CAAC;MAC5BrF,uBAAuB,CAAC,CAAC;IAC3B,CAAC,CAAC,OAAOO,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,QAAQ,CAAC;IACzB;EACF,CAAC;EAED,MAAM2I,sBAAsB,GAAG,MAAOC,MAAM,IAAK;IAC/C,IAAI;MACF,MAAMhN,qBAAqB,CAACyM,MAAM,CAAC9L,EAAE,EAAEqM,MAAM,CAAC;MAC9C7O,OAAO,CAAC8K,OAAO,CAAC,QAAQ,CAAC;MACzBpF,uBAAuB,CAAC,CAAC;IAC3B,CAAC,CAAC,OAAOO,KAAK,EAAE;MACdjG,OAAO,CAACiG,KAAK,CAAC,QAAQ,CAAC;IACzB;EACF,CAAC;;EAED;EACA,IAAIlD,OAAO,EAAE;IACX,oBACEd,OAAA;MAAK6H,KAAK,EAAE;QAAEgF,OAAO,EAAE,MAAM;QAAEC,cAAc,EAAE,QAAQ;QAAEC,OAAO,EAAE;MAAG,CAAE;MAAA3G,QAAA,eACrEpG,OAAA,CAACxB,IAAI;QAAC6I,IAAI,EAAC;MAAO;QAAAhB,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAClB,CAAC;EAEV;EAEA,IAAI,CAAC5F,OAAO,IAAI,CAACA,OAAO,CAACA,OAAO,EAAE;IAChC,oBAAOZ,OAAA;MAAK6H,KAAK,EAAE;QAAEkF,OAAO,EAAE;MAAG,CAAE;MAAA3G,QAAA,EAAC;IAAK;MAAAC,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAK,CAAC;EACjD;EAEA,MAAMwG,QAAQ,GAAGpM,OAAO,CAACA,OAAO;EAChC,MAAMqM,SAAS,GAAGrM,OAAO,CAACiD,KAAK,IAAI,EAAE;EACrC,MAAMqJ,cAAc,GAAGtM,OAAO,CAACkD,UAAU,IAAI,EAAE;EAC/C,MAAMqJ,WAAW,GAAGvM,OAAO,CAACmD,OAAO,IAAI,EAAE;EACzC,MAAMqJ,gBAAgB,GAAGxM,OAAO,CAACM,SAAS,IAAI,EAAE;EAEhD,MAAMmM,WAAW,GAAG,CAClB;IAAEC,KAAK,EAAE,MAAM;IAAEC,SAAS,EAAE,OAAO;IAAEC,GAAG,EAAE,OAAO;IAAEC,MAAM,EAAGC,CAAC,IAAKA,CAAC,IAAI;EAAI,CAAC,EAC5E;IAAEJ,KAAK,EAAE,IAAI;IAAEC,SAAS,EAAE,aAAa;IAAEC,GAAG,EAAE,aAAa;IAAEC,MAAM,EAAGE,CAAC,IAAKA,CAAC,IAAI;EAAI,CAAC,EACtF;IACEL,KAAK,EAAE,KAAK;IACZC,SAAS,EAAE,UAAU;IACrBC,GAAG,EAAE,UAAU;IACfC,MAAM,EAAGG,CAAC,iBAAK5N,OAAA,CAACzC,GAAG;MAACyI,KAAK,EAAEP,gBAAgB,CAACmI,CAAC,CAAE;MAAAxH,QAAA,EAAEwH,CAAC,KAAK,MAAM,GAAG,GAAG,GAAGA,CAAC,KAAK,QAAQ,GAAG,GAAG,GAAGA,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG;IAAG;MAAAvH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAM;EAC5H,CAAC,EACD;IAAE8G,KAAK,EAAE,KAAK;IAAEC,SAAS,EAAE,kBAAkB;IAAEC,GAAG,EAAE,kBAAkB;IAAEC,MAAM,EAAGI,CAAC,IAAKA,CAAC,IAAI;EAAI,CAAC,EACjG;IACEP,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,UAAU;IACrBC,GAAG,EAAE,UAAU;IACfC,MAAM,EAAGE,CAAC,IAAKA,CAAC,GAAG7N,KAAK,CAAC6N,CAAC,CAAC,CAAC/E,MAAM,CAAC,YAAY,CAAC,GAAG;EACrD,CAAC,EACD;IACE0E,KAAK,EAAE,IAAI;IACXC,SAAS,EAAE,QAAQ;IACnBC,GAAG,EAAE,QAAQ;IACbC,MAAM,EAAEA,CAACzI,MAAM,EAAE8I,MAAM,kBACrB9N,OAAA,CAACvC,KAAK;MAAA2I,QAAA,gBACJpG,OAAA,CAACzC,GAAG;QAACyI,KAAK,EAAEhB,MAAM,KAAK,WAAW,GAAG,OAAO,GAAGA,MAAM,KAAK,aAAa,GAAG,MAAM,GAAG,SAAU;QAAAoB,QAAA,EAC1FpB,MAAM,KAAK,WAAW,GAAG,KAAK,GAAGA,MAAM,KAAK,aAAa,GAAG,KAAK,GAAG;MAAK;QAAAqB,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACvE,CAAC,EACL7F,mBAAmB,CAAC,CAAC,IAAIqE,MAAM,KAAK,WAAW,iBAC9ChF,OAAA,CAACxC,MAAM;QAACuJ,IAAI,EAAC,MAAM;QAACM,IAAI,EAAC,OAAO;QAAC0G,IAAI,eAAE/N,OAAA,CAAClB,aAAa;UAAAuH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAE;QAACwH,OAAO,EAAEA,CAAA,KAAMjF,sBAAsB,CAAC+E,MAAM,CAACvN,EAAE,EAAE,WAAW;MAAE;QAAA8F,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAC3H;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACI;EAEX,CAAC,CACF;EAED,MAAMyH,eAAe,GAAG,CACtB;IAAEX,KAAK,EAAE,KAAK;IAAEC,SAAS,EAAE,eAAe;IAAEC,GAAG,EAAE,eAAe;IAAEC,MAAM,EAAGI,CAAC,IAAKA,CAAC,IAAI;EAAI,CAAC,EAC3F;IACEP,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,mBAAmB;IAC9BC,GAAG,EAAE,mBAAmB;IACxBC,MAAM,EAAGS,CAAC,IAAKA,CAAC,GAAG,IAAKC,MAAM,CAACD,CAAC,CAAC,CAAEE,cAAc,CAAC,CAAC,EAAE,GAAG;EAC1D,CAAC,EACD;IACEd,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,cAAc;IACzBC,GAAG,EAAE,cAAc;IACnBC,MAAM,EAAGY,CAAC,IAAKA,CAAC,GAAG,GAAGA,CAAC,GAAG,GAAG;EAC/B,CAAC,EACD;IACEf,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,iBAAiB;IAC5BC,GAAG,EAAE,iBAAiB;IACtBC,MAAM,EAAGE,CAAC,IAAKA,CAAC,GAAG7N,KAAK,CAAC6N,CAAC,CAAC,CAAC/E,MAAM,CAAC,YAAY,CAAC,GAAG;EACrD,CAAC,EACD;IACE0E,KAAK,EAAE,IAAI;IACXE,GAAG,EAAE,SAAS;IACdC,MAAM,EAAEA,CAACa,CAAC,EAAER,MAAM,KAAKnN,mBAAmB,CAAC,CAAC,iBAC1CX,OAAA,CAAC5B,UAAU;MAACkP,KAAK,EAAC,mDAAW;MAACiB,SAAS,EAAEA,CAAA,KAAM1E,oBAAoB,CAACiE,MAAM,CAACU,WAAW,CAAE;MAAApI,QAAA,eACtFpG,OAAA,CAACxC,MAAM;QAACuJ,IAAI,EAAC,MAAM;QAAC0H,MAAM;QAACpH,IAAI,EAAC,OAAO;QAAAjB,QAAA,EAAC;MAAE;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACzC;EAEhB,CAAC,CACF;EAED,MAAMkI,IAAI,GAAG,CACX;IACElB,GAAG,EAAE,UAAU;IACfjG,KAAK,EAAE,IAAI;IACXnB,QAAQ,eACNpG,OAAA,CAAAE,SAAA;MAAAkG,QAAA,gBACEpG,OAAA,CAAC3C,IAAI;QAACiQ,KAAK,EAAC,0BAAM;QAACzF,KAAK,EAAE;UAAE8G,YAAY,EAAE;QAAG,CAAE;QAAAvI,QAAA,gBAC7CpG,OAAA,CAAC1C,YAAY;UAAC8J,MAAM,EAAE,CAAE;UAAAhB,QAAA,gBACtBpG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,0BAAM;YAAAnB,QAAA,EAAE4G,QAAQ,CAAC4B,IAAI,IAAI;UAAG;YAAAvI,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAoB,CAAC,eAC1ExG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,0BAAM;YAAAnB,QAAA,EAAE4G,QAAQ,CAAC6B,IAAI,IAAI;UAAG;YAAAxI,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAoB,CAAC,eAC1ExG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,0BAAM;YAAAnB,QAAA,EAAE4G,QAAQ,CAAC8B,YAAY,IAAI;UAAG;YAAAzI,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAoB,CAAC,eAClFxG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,cAAI;YAAAnB,QAAA,EAAE4G,QAAQ,CAAC+B,QAAQ,gBAAG/O,OAAA,CAACzC,GAAG;cAACyI,KAAK,EAAC,MAAM;cAAAI,QAAA,EAAE4G,QAAQ,CAAC+B;YAAQ;cAAA1I,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAM,CAAC,GAAG;UAAG;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAoB,CAAC,eACzHxG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,cAAI;YAAAnB,QAAA,EAAE4G,QAAQ,CAACgC,KAAK,gBAAGhP,OAAA,CAACzC,GAAG;cAACyI,KAAK,EAAC,MAAM;cAAAI,QAAA,EAAE4G,QAAQ,CAACgC;YAAK;cAAA3I,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAM,CAAC,GAAG;UAAG;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAoB,CAAC,eACnHxG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,cAAI;YAAAnB,QAAA,eAACpG,OAAA,CAACzC,GAAG;cAACyI,KAAK,EAAEjB,cAAc,CAACiI,QAAQ,CAAChI,MAAM,CAAE;cAAAoB,QAAA,EAAEb,aAAa,CAACyH,QAAQ,CAAChI,MAAM;YAAC;cAAAqB,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAM;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAmB,CAAC,eACrIxG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,oBAAK;YAAAnB,QAAA,EAAE4G,QAAQ,CAACiC,iBAAiB,GAAG,IAAKd,MAAM,CAACnB,QAAQ,CAACiC,iBAAiB,CAAC,CAAEb,cAAc,CAAC,CAAC,EAAE,GAAG;UAAG;YAAA/H,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAoB,CAAC,eACnJxG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,cAAI;YAAAnB,QAAA,EAAE4G,QAAQ,CAACkC,SAAS,GAAG,IAAKf,MAAM,CAACnB,QAAQ,CAACkC,SAAS,CAAC,CAAEd,cAAc,CAAC,CAAC,EAAE,GAAG;UAAG;YAAA/H,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAoB,CAAC,eAClIxG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,0BAAM;YAAAnB,QAAA,EAAE4G,QAAQ,CAACmC,YAAY,GAAG,GAAGnC,QAAQ,CAACmC,YAAY,GAAG,GAAG;UAAG;YAAA9I,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAoB,CAAC,eAC/GxG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,oBAAK;YAAAnB,QAAA,EAAE4G,QAAQ,CAACoC,gBAAgB,IAAI;UAAG;YAAA/I,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAoB,CAAC,eACrFxG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,oBAAK;YAAAnB,QAAA,EAAE4G,QAAQ,CAACqC,eAAe,IAAI;UAAG;YAAAhJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAoB,CAAC,eACpFxG,OAAA,CAAC1C,YAAY,CAACgK,IAAI;YAACC,KAAK,EAAC,0BAAM;YAAAnB,QAAA,EAAE4G,QAAQ,CAACsC,UAAU,GAAGxP,KAAK,CAACkN,QAAQ,CAACsC,UAAU,CAAC,CAAC1G,MAAM,CAAC,kBAAkB,CAAC,GAAG;UAAG;YAAAvC,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAoB,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC3H,CAAC,EACdwG,QAAQ,CAAChG,WAAW,iBACnBhH,OAAA,CAAAE,SAAA;UAAAkG,QAAA,gBACEpG,OAAA;YAAAqG,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAK,CAAC,eACNxG,OAAA;YAAAoG,QAAA,eAAKpG,OAAA;cAAAoG,QAAA,EAAQ;YAAK;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAK,CAAC,eACjCxG,OAAA;YAAK6H,KAAK,EAAE;cAAEC,SAAS,EAAE,CAAC;cAAE9B,KAAK,EAAE;YAAO,CAAE;YAAAI,QAAA,EAAE4G,QAAQ,CAAChG;UAAW;YAAAX,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAM,CAAC;QAAA,eACzE,CACH;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACG,CAAC,eAEPxG,OAAA,CAAC3B,GAAG;QAACkR,MAAM,EAAE,EAAG;QAAAnJ,QAAA,gBACdpG,OAAA,CAAC1B,GAAG;UAACkR,IAAI,EAAE,EAAG;UAAApJ,QAAA,eACZpG,OAAA,CAAC3C,IAAI;YAACiQ,KAAK,EAAC,oBAAK;YAACmC,KAAK,EAAE9O,mBAAmB,CAAC,CAAC,iBAAIX,OAAA,CAACxC,MAAM;cAACuJ,IAAI,EAAC,MAAM;cAACM,IAAI,EAAC,OAAO;cAAC0G,IAAI,eAAE/N,OAAA,CAACnB,YAAY;gBAAAwH,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAE,CAAE;cAACwH,OAAO,EAAEA,CAAA,KAAM7L,wBAAwB,CAAC,IAAI,CAAE;cAAAiE,QAAA,EAAC;YAAE;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAE;YAAAJ,QAAA,eACpKpG,OAAA,CAAC9B,QAAQ;cAAAkI,QAAA,EACN8G,cAAc,CAAClF,GAAG,CAAE0H,EAAE,iBACrB1P,OAAA,CAAC9B,QAAQ,CAACoJ,IAAI;gBAEZtB,KAAK,EAAE0J,EAAE,CAAC1K,MAAM,KAAK,WAAW,GAAG,OAAO,GAAG0K,EAAE,CAAC1K,MAAM,KAAK,aAAa,GAAG,MAAM,GAAG,MAAO;gBAAAoB,QAAA,gBAE3FpG,OAAA;kBAAK6H,KAAK,EAAE;oBAAE8H,UAAU,EAAE;kBAAO,CAAE;kBAAAvJ,QAAA,EAAEsJ,EAAE,CAACd,IAAI,IAAI;gBAAG;kBAAAvI,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OAAM,CAAC,eAC1DxG,OAAA;kBAAK6H,KAAK,EAAE;oBAAE+H,QAAQ,EAAE,EAAE;oBAAE5J,KAAK,EAAE;kBAAO,CAAE;kBAAAI,QAAA,GAAC,gBACvC,EAACsJ,EAAE,CAACG,YAAY,GAAG/P,KAAK,CAAC4P,EAAE,CAACG,YAAY,CAAC,CAACjH,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,EACvE8G,EAAE,CAACI,WAAW,IAAI,UAAUhQ,KAAK,CAAC4P,EAAE,CAACI,WAAW,CAAC,CAAClH,MAAM,CAAC,YAAY,CAAC,EAAE;gBAAA;kBAAAvC,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OACtE,CAAC,EACLkJ,EAAE,CAAC1I,WAAW,iBAAIhH,OAAA;kBAAK6H,KAAK,EAAE;oBAAE+H,QAAQ,EAAE,EAAE;oBAAE9H,SAAS,EAAE;kBAAE,CAAE;kBAAA1B,QAAA,EAAEsJ,EAAE,CAAC1I;gBAAW;kBAAAX,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OAAM,CAAC;cAAA,GARhFkJ,EAAE,CAACnP,EAAE;gBAAA8F,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OASG,CAChB;YAAC;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACM;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACP;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACJ,CAAC,eACNxG,OAAA,CAAC1B,GAAG;UAACkR,IAAI,EAAE,EAAG;UAAApJ,QAAA,eACZpG,OAAA,CAAC3C,IAAI;YAACiQ,KAAK,EAAC,0BAAM;YAACmC,KAAK,EAAE9O,mBAAmB,CAAC,CAAC,iBAAIX,OAAA,CAACxC,MAAM;cAACuJ,IAAI,EAAC,MAAM;cAACM,IAAI,EAAC,OAAO;cAAC0G,IAAI,eAAE/N,OAAA,CAACnB,YAAY;gBAAAwH,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAE,CAAE;cAACwH,OAAO,EAAEA,CAAA,KAAM3L,qBAAqB,CAAC,IAAI,CAAE;cAAA+D,QAAA,EAAC;YAAE;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAE;YAAAJ,QAAA,eAClKpG,OAAA,CAAC/B,IAAI;cACH8R,UAAU,EAAE5C,WAAY;cACxB6C,UAAU,EAAGlE,MAAM,iBACjB9L,OAAA,CAAC/B,IAAI,CAACqJ,IAAI;gBAAAlB,QAAA,eACRpG,OAAA,CAAC/B,IAAI,CAACqJ,IAAI,CAAC2I,IAAI;kBACb3C,KAAK,eAAEtN,OAAA;oBAAM6H,KAAK,EAAE;sBAAE8H,UAAU,EAAE;oBAAI,CAAE;oBAAAvJ,QAAA,EAAE0F,MAAM,CAACwB,KAAK,IAAI;kBAAG;oBAAAjH,QAAA,EAAAC,YAAA;oBAAAC,UAAA;oBAAAC,YAAA;kBAAA,OAAO,CAAE;kBACtEQ,WAAW,eACThH,OAAA;oBAAAoG,QAAA,gBACEpG,OAAA;sBAAK6H,KAAK,EAAE;wBAAE+H,QAAQ,EAAE,EAAE;wBAAE5J,KAAK,EAAE,MAAM;wBAAE2I,YAAY,EAAE;sBAAE,CAAE;sBAAAvI,QAAA,GAC1D0F,MAAM,CAACuD,eAAe,IAAI,IAAI,EAAC,QAAG,EAACvD,MAAM,CAACwD,UAAU,GAAGxP,KAAK,CAACgM,MAAM,CAACwD,UAAU,CAAC,CAAC1G,MAAM,CAAC,kBAAkB,CAAC,GAAG,GAAG;oBAAA;sBAAAvC,QAAA,EAAAC,YAAA;sBAAAC,UAAA;sBAAAC,YAAA;oBAAA,OAC9G,CAAC,EACLsF,MAAM,CAACoE,OAAO,IAAI,EAAE;kBAAA;oBAAA7J,QAAA,EAAAC,YAAA;oBAAAC,UAAA;oBAAAC,YAAA;kBAAA,OAClB;gBACN;kBAAAH,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OACF;cAAC,GAXYsF,MAAM,CAACvL,EAAE;gBAAA8F,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAYd;YACX;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACH;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACJ,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH,CAAC;IAAA,eACN;EAEN,CAAC,EACD;IACEgH,GAAG,EAAE,OAAO;IACZjG,KAAK,EAAE,IAAI;IACXnB,QAAQ,eACNpG,OAAA,CAAC3C,IAAI;MAACoS,KAAK,EAAE9O,mBAAmB,CAAC,CAAC,iBAAIX,OAAA,CAACxC,MAAM;QAACuJ,IAAI,EAAC,SAAS;QAACgH,IAAI,eAAE/N,OAAA,CAACnB,YAAY;UAAAwH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAE;QAACwH,OAAO,EAAEA,CAAA,KAAM/L,mBAAmB,CAAC,IAAI,CAAE;QAAAmE,QAAA,EAAC;MAAI;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAE;MAAAJ,QAAA,eAC3IpG,OAAA,CAAC7B,KAAK;QAACgS,OAAO,EAAE9C,WAAY;QAAC0C,UAAU,EAAE9C,SAAU;QAACmD,MAAM,EAAC,IAAI;QAACC,UAAU,EAAE;MAAM;QAAAhK,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACjF;EAEV,CAAC,EACD;IACEgH,GAAG,EAAE,WAAW;IAChBjG,KAAK,EAAE,KAAK;IACZnB,QAAQ,eACNpG,OAAA,CAAC3C,IAAI;MAACoS,KAAK,EAAE9O,mBAAmB,CAAC,CAAC,iBAAIX,OAAA,CAACxC,MAAM;QAACuJ,IAAI,EAAC,SAAS;QAACgH,IAAI,eAAE/N,OAAA,CAACnB,YAAY;UAAAwH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAE;QAACwH,OAAO,EAAEA,CAAA,KAAMzL,uBAAuB,CAAC,IAAI,CAAE;QAAA6D,QAAA,EAAC;MAAK;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAE;MAAAJ,QAAA,eAChJpG,OAAA,CAAC7B,KAAK;QAACgS,OAAO,EAAElC,eAAgB;QAAC8B,UAAU,EAAE3C,gBAAiB;QAACgD,MAAM,EAAC,IAAI;QAACC,UAAU,EAAE;MAAM;QAAAhK,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAC5F;EAEV,CAAC,EACD;IACEgH,GAAG,EAAE,WAAW;IAChBjG,KAAK,EAAE,IAAI;IACXnB,QAAQ,eACNpG,OAAA,CAAC3C,IAAI;MACHiQ,KAAK,EAAC,0BAAM;MACZmC,KAAK,EACH9O,mBAAmB,CAAC,CAAC,iBACnBX,OAAA,CAACzB,MAAM;QACL+R,YAAY,EAAEtG,YAAa;QAC3BuG,cAAc,EAAE,KAAM;QACtBC,MAAM,EAAC,iCAAiC;QAAApK,QAAA,eAExCpG,OAAA,CAACxC,MAAM;UAACuJ,IAAI,EAAC,SAAS;UAACgH,IAAI,eAAE/N,OAAA,CAAChB,cAAc;YAAAqH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE,CAAE;UAAC1F,OAAO,EAAEU,SAAU;UAAA4E,QAAA,EAAC;QAAI;UAAAC,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAQ;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAC5E,CAEX;MAAAJ,QAAA,eAEDpG,OAAA,CAACxB,IAAI;QAACiS,QAAQ,EAAEnP,gBAAiB;QAAA8E,QAAA,EAC9BhF,SAAS,CAACwG,MAAM,KAAK,CAAC,gBACrB5H,OAAA,CAACvB,KAAK;UAACsI,IAAI,EAAC,MAAM;UAAChJ,OAAO,EAAC,0BAAM;UAACiJ,WAAW,EAAC;QAAiC;UAAAX,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAC,gBAElFxG,OAAA,CAAC/B,IAAI;UACH8R,UAAU,EAAE3O,SAAU;UACtB4O,UAAU,EAAGU,GAAG,iBACd1Q,OAAA,CAAC/B,IAAI,CAACqJ,IAAI;YAERqJ,OAAO,EAAE,cACP3Q,OAAA,CAACxC,MAAM;cAAgBuJ,IAAI,EAAC,MAAM;cAACM,IAAI,EAAC,OAAO;cAAC0G,IAAI,eAAE/N,OAAA,CAACb,gBAAgB;gBAAAkH,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAE,CAAE;cAACwH,OAAO,EAAEA,CAAA,KAAM3D,cAAc,CAACqG,GAAG,CAACnQ,EAAE,EAAEmQ,GAAG,CAAC9B,IAAI,CAAE;cAAAxI,QAAA,EAAC;YAAE,GAAnH,UAAU;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAiH,CAAC,eACxIxG,OAAA,CAACxC,MAAM;cAAeuJ,IAAI,EAAC,MAAM;cAACM,IAAI,EAAC,OAAO;cAAC0G,IAAI,eAAE/N,OAAA,CAACZ,kBAAkB;gBAAAiH,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAE,CAAE;cAACwH,OAAO,EAAEA,CAAA,KAAM3C,aAAa,CAACqF,GAAG,CAACnQ,EAAE,CAAE;cAACqQ,QAAQ,EAAEF,GAAG,CAACG,eAAe,KAAK,WAAY;cAAAzK,QAAA,EAC9JsK,GAAG,CAACG,eAAe,KAAK,SAAS,IAAI,CAACH,GAAG,CAACG,eAAe,GAAG,IAAI,GAAG;YAAM,GADhE,SAAS;cAAAxK,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAEb,CAAC,EACT7F,mBAAmB,CAAC,CAAC,iBACnBX,OAAA,CAAC5B,UAAU;cAAckP,KAAK,EAAC,+DAAa;cAACiB,SAAS,EAAEA,CAAA,KAAMhD,oBAAoB,CAACmF,GAAG,CAACnQ,EAAE,CAAE;cAAA6F,QAAA,eACzFpG,OAAA,CAACxC,MAAM;gBAACuJ,IAAI,EAAC,MAAM;gBAACM,IAAI,EAAC,OAAO;gBAACoH,MAAM;gBAACV,IAAI,eAAE/N,OAAA,CAACd,cAAc;kBAAAmH,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OAAE,CAAE;gBAAAJ,QAAA,EAAC;cAAE;gBAAAC,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAQ;YAAC,GAD/D,QAAQ;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAEZ,CACb,CACF,CAACsK,MAAM,CAACC,OAAO,CAAE;YAAA3K,QAAA,gBAElBpG,OAAA,CAAC/B,IAAI,CAACqJ,IAAI,CAAC2I,IAAI;cACbe,MAAM,eAAEhR,OAAA,CAACf,gBAAgB;gBAAC4I,KAAK,EAAE;kBAAE+H,QAAQ,EAAE,EAAE;kBAAE5J,KAAK,EAAE;gBAAU;cAAE;gBAAAK,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAE,CAAE;cACxE8G,KAAK,eACHtN,OAAA,CAACvC,KAAK;gBAAA2I,QAAA,GACHsK,GAAG,CAAC9B,IAAI,IAAI,GAAG,EACf9I,oBAAoB,CAAC4K,GAAG,CAACG,eAAe,CAAC;cAAA;gBAAAxK,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OACrC,CACR;cACDQ,WAAW,eACThH,OAAA;gBAAAoG,QAAA,gBACEpG,OAAA;kBAAM6H,KAAK,EAAE;oBAAEoJ,WAAW,EAAE;kBAAG,CAAE;kBAAA7K,QAAA,GAAC,0BAAI,EAACsK,GAAG,CAACQ,gBAAgB,IAAI,IAAI;gBAAA;kBAAA7K,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OAAO,CAAC,eAC3ExG,OAAA;kBAAM6H,KAAK,EAAE;oBAAEoJ,WAAW,EAAE;kBAAG,CAAE;kBAAA7K,QAAA,GAAC,oBAAG,EAAC,CAAC,CAACsK,GAAG,CAACS,SAAS,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI,EAAEC,OAAO,CAAC,CAAC,CAAC,EAAC,KAAG;gBAAA;kBAAA/K,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OAAM,CAAC,eAChGxG,OAAA;kBAAAoG,QAAA,GAAM,gCAAK,EAACsK,GAAG,CAACpB,UAAU,GAAGxP,KAAK,CAAC4Q,GAAG,CAACpB,UAAU,CAAC,CAAC1G,MAAM,CAAC,kBAAkB,CAAC,GAAG,GAAG;gBAAA;kBAAAvC,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OAAO,CAAC;cAAA;gBAAAH,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OACxF;YACN;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACF,CAAC,EACDC,oBAAoB,CAACiK,GAAG,CAAC;UAAA,GA7BrBA,GAAG,CAACnQ,EAAE;YAAA8F,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OA8BF;QACX;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACH;MACF;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACG;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH;EAEV,CAAC,EACD;IACEgH,GAAG,EAAE,kBAAkB;IACvBjG,KAAK,EAAE,QAAQ;IACfnB,QAAQ,eACNpG,OAAA,CAAC3C,IAAI;MACHiQ,KAAK,EAAC,sCAAQ;MACdmC,KAAK,EACH9O,mBAAmB,CAAC,CAAC,IAAIe,eAAe,CAACkG,MAAM,KAAK,CAAC,iBACnD5H,OAAA,CAACxC,MAAM;QAACuJ,IAAI,EAAC,SAAS;QAACgH,IAAI,eAAE/N,OAAA,CAACnB,YAAY;UAAAwH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAE;QAACwH,OAAO,EAAEvC,yBAA0B;QAAArF,QAAA,EAAC;MAAK;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAEnG;MAAAJ,QAAA,EAEA1E,eAAe,CAACkG,MAAM,KAAK,CAAC,gBAC3B5H,OAAA,CAACvB,KAAK;QAACsI,IAAI,EAAC,MAAM;QAAChJ,OAAO,EAAC,sCAAQ;QAACiJ,WAAW,EAAC;MAAmB;QAAAX,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAAC,gBAEtExG,OAAA,CAAC9B,QAAQ;QAAAkI,QAAA,EACN1E,eAAe,CAACsG,GAAG,CAAEgH,KAAK,iBACzBhP,OAAA,CAAC9B,QAAQ,CAACoJ,IAAI;UAEZtB,KAAK,EAAEgJ,KAAK,CAAChK,MAAM,KAAK,WAAW,GAAG,OAAO,GAAGgK,KAAK,CAAChK,MAAM,KAAK,aAAa,GAAG,MAAM,GAAGgK,KAAK,CAAChK,MAAM,KAAK,UAAU,GAAG,KAAK,GAAG,MAAO;UAAAoB,QAAA,gBAEvIpG,OAAA;YAAK6H,KAAK,EAAE;cAAE8H,UAAU,EAAE,MAAM;cAAEhB,YAAY,EAAE;YAAE,CAAE;YAAAvI,QAAA,EAAE4I,KAAK,CAACA;UAAK;YAAA3I,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAM,CAAC,EACvEwI,KAAK,CAACnD,KAAK,iBAAI7L,OAAA;YAAK6H,KAAK,EAAE;cAAE8G,YAAY,EAAE,CAAC;cAAE3I,KAAK,EAAE;YAAO,CAAE;YAAAI,QAAA,EAAE4I,KAAK,CAACnD;UAAK;YAAAxF,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAM,CAAC,EAClFwI,KAAK,CAACqC,eAAe,iBACpBrR,OAAA;YAAK6H,KAAK,EAAE;cAAE+H,QAAQ,EAAE,EAAE;cAAE5J,KAAK,EAAE;YAAO,CAAE;YAAAI,QAAA,GACzC4I,KAAK,CAACqC,eAAe,EAAC,QAAG,EAACrC,KAAK,CAACsC,UAAU,GAAGxR,KAAK,CAACkP,KAAK,CAACsC,UAAU,CAAC,CAAC1I,MAAM,CAAC,kBAAkB,CAAC,GAAG,GAAG;UAAA;YAAAvC,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACnG,CACN,EACA7F,mBAAmB,CAAC,CAAC,IAAIqO,KAAK,CAAChK,MAAM,KAAK,WAAW,IAAIgK,KAAK,CAAChK,MAAM,KAAK,UAAU,iBACnFhF,OAAA;YAAK6H,KAAK,EAAE;cAAEC,SAAS,EAAE;YAAG,CAAE;YAAA1B,QAAA,eAC5BpG,OAAA,CAACvC,KAAK;cAAA2I,QAAA,GACH4I,KAAK,CAAChK,MAAM,KAAK,aAAa,iBAC7BhF,OAAA,CAACxC,MAAM;gBAACuJ,IAAI,EAAC,SAAS;gBAACM,IAAI,EAAC,OAAO;gBAAC2G,OAAO,EAAEA,CAAA,KAAMrC,yBAAyB,CAACqD,KAAK,CAACzO,EAAE,EAAE,aAAa,CAAE;gBAAA6F,QAAA,EAAC;cAAE;gBAAAC,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAQ,CAClH,EACAwI,KAAK,CAAChK,MAAM,KAAK,aAAa,iBAC7BhF,OAAA,CAAAE,SAAA;gBAAAkG,QAAA,gBACEpG,OAAA,CAACxC,MAAM;kBAACuJ,IAAI,EAAC,SAAS;kBAACM,IAAI,EAAC,OAAO;kBAAC2G,OAAO,EAAEA,CAAA,KAAMrC,yBAAyB,CAACqD,KAAK,CAACzO,EAAE,EAAE,WAAW,CAAE;kBAAA6F,QAAA,EAAC;gBAAE;kBAAAC,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OAAQ,CAAC,eAChHxG,OAAA,CAACxC,MAAM;kBAACiR,MAAM;kBAACpH,IAAI,EAAC,OAAO;kBAAC2G,OAAO,EAAEA,CAAA,KAAMrC,yBAAyB,CAACqD,KAAK,CAACzO,EAAE,EAAE,UAAU,CAAE;kBAAA6F,QAAA,EAAC;gBAAE;kBAAAC,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OAAQ,CAAC;cAAA,eACvG,CACH;YAAA;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACL,CACN;QAAA,GAxBIwI,KAAK,CAACzO,EAAE;UAAA8F,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAyBA,CAChB;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACM;IACX;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACG;EAEV,CAAC,EACD;IACEgH,GAAG,EAAE,iBAAiB;IACtBjG,KAAK,EAAE,MAAM;IACbnB,QAAQ,eACNpG,OAAA,CAAC3C,IAAI;MACHiQ,KAAK,EAAC,sCAAQ;MACdmC,KAAK,EACH9O,mBAAmB,CAAC,CAAC,iBACnBX,OAAA,CAACxC,MAAM;QAACuJ,IAAI,EAAC,SAAS;QAACgH,IAAI,eAAE/N,OAAA,CAACnB,YAAY;UAAAwH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAE;QAACwH,OAAO,EAAEA,CAAA,KAAMvL,6BAA6B,CAAC,IAAI,CAAE;QAAA2D,QAAA,EAAC;MAAI;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAElH;MAAAJ,QAAA,EAEAxE,eAAe,CAACgG,MAAM,KAAK,CAAC,gBAC3B5H,OAAA,CAACvB,KAAK;QAACsI,IAAI,EAAC,MAAM;QAAChJ,OAAO,EAAC,sCAAQ;QAACiJ,WAAW,EAAC;MAAiB;QAAAX,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAAC,gBAEpExG,OAAA,CAAC/B,IAAI;QACH8R,UAAU,EAAEnO,eAAgB;QAC5BoO,UAAU,EAAGlC,MAAM,iBACjB9N,OAAA,CAAC/B,IAAI,CAACqJ,IAAI;UAERqJ,OAAO,EACLhQ,mBAAmB,CAAC,CAAC,GAAG,cACtBX,OAAA,CAAC5B,UAAU;YAAckP,KAAK,EAAC,+DAAa;YAACiB,SAAS,EAAEA,CAAA,KAAMpC,0BAA0B,CAAC2B,MAAM,CAACvN,EAAE,CAAE;YAAA6F,QAAA,eAClGpG,OAAA,CAACxC,MAAM;cAACuJ,IAAI,EAAC,MAAM;cAACM,IAAI,EAAC,OAAO;cAACoH,MAAM;cAACV,IAAI,eAAE/N,OAAA,CAACd,cAAc;gBAAAmH,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAE,CAAE;cAAAJ,QAAA,EAAC;YAAE;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ;UAAC,GAD/D,QAAQ;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAEZ,CAAC,CACd,GAAG,EACL;UAAAJ,QAAA,eAEDpG,OAAA,CAAC/B,IAAI,CAACqJ,IAAI,CAAC2I,IAAI;YACb3C,KAAK,eACHtN,OAAA,CAACvC,KAAK;cAAA2I,QAAA,gBACJpG,OAAA,CAACzC,GAAG;gBAACyI,KAAK,EAAE8H,MAAM,CAAC/G,IAAI,KAAK,SAAS,GAAG,MAAM,GAAG+G,MAAM,CAAC/G,IAAI,KAAK,WAAW,GAAG,OAAO,GAAG+G,MAAM,CAAC/G,IAAI,KAAK,WAAW,GAAG,QAAQ,GAAG,SAAU;gBAAAX,QAAA,EACzI0H,MAAM,CAAC/G,IAAI,KAAK,SAAS,GAAG,MAAM,GAAG+G,MAAM,CAAC/G,IAAI,KAAK,WAAW,GAAG,MAAM,GAAG+G,MAAM,CAAC/G,IAAI,KAAK,WAAW,GAAG,MAAM,GAAG+G,MAAM,CAAC/G,IAAI,IAAI;cAAG;gBAAAV,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OACnI,CAAC,EACLsH,MAAM,CAACR,KAAK,IAAI,GAAG;YAAA;cAAAjH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACf,CACR;YACDQ,WAAW,eACThH,OAAA;cAAAoG,QAAA,gBACEpG,OAAA;gBAAK6H,KAAK,EAAE;kBAAE+H,QAAQ,EAAE,EAAE;kBAAE5J,KAAK,EAAE,MAAM;kBAAE2I,YAAY,EAAE;gBAAE,CAAE;gBAAAvI,QAAA,GAC1D0H,MAAM,CAACuB,eAAe,IAAI,IAAI,EAAC,QAAG,EAACvP,KAAK,CAACgO,MAAM,CAAC5B,IAAI,IAAI4B,MAAM,CAACwB,UAAU,CAAC,CAAC1G,MAAM,CAAC,YAAY,CAAC;cAAA;gBAAAvC,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAC7F,CAAC,EACLsH,MAAM,CAACoC,OAAO,IAAI,EAAE;YAAA;cAAA7J,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAClB;UACN;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACF;QAAC,GA1BGsH,MAAM,CAACvN,EAAE;UAAA8F,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OA2BL;MACX;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH;IACF;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACG;EAEV,CAAC,EACD;IACEgH,GAAG,EAAE,aAAa;IAClBjG,KAAK,EAAE,MAAM;IACbnB,QAAQ,eACNpG,OAAA,CAAC3C,IAAI;MACHiQ,KAAK,EAAC,0BAAM;MACZmC,KAAK,EACH9O,mBAAmB,CAAC,CAAC,iBACnBX,OAAA,CAACxC,MAAM;QAACuJ,IAAI,EAAC,SAAS;QAACgH,IAAI,eAAE/N,OAAA,CAACnB,YAAY;UAAAwH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAE;QAACwH,OAAO,EAAEA,CAAA,KAAMrL,yBAAyB,CAAC,IAAI,CAAE;QAAAyD,QAAA,EAAC;MAAM;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAEhH;MAAAJ,QAAA,EAEAtE,kBAAkB,CAAC8F,MAAM,KAAK,CAAC,gBAC9B5H,OAAA,CAACvB,KAAK;QAACsI,IAAI,EAAC,MAAM;QAAChJ,OAAO,EAAC,4CAAS;QAACiJ,WAAW,EAAC;MAAe;QAAAX,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAAC,gBAEnExG,OAAA,CAAC7B,KAAK;QACJ4R,UAAU,EAAEjO,kBAAmB;QAC/BsO,MAAM,EAAC,IAAI;QACXC,UAAU,EAAE,KAAM;QAClBF,OAAO,EAAE,CACP;UAAE7C,KAAK,EAAE,IAAI;UAAEC,SAAS,EAAE,WAAW;UAAEC,GAAG,EAAE,WAAW;UAAEC,MAAM,EAAGI,CAAC,IAAKA,CAAC,IAAI;QAAI,CAAC,EAClF;UAAEP,KAAK,EAAE,KAAK;UAAEC,SAAS,EAAE,UAAU;UAAEC,GAAG,EAAE,UAAU;UAAEC,MAAM,EAAG8D,CAAC,IAAKA,CAAC,IAAI;QAAI,CAAC,EACjF;UACEjE,KAAK,EAAE,IAAI;UACXC,SAAS,EAAE,UAAU;UACrBC,GAAG,EAAE,UAAU;UACfC,MAAM,EAAG+D,CAAC,IAAKA,CAAC,gBAAGxR,OAAA,CAAClB,aAAa;YAAC+I,KAAK,EAAE;cAAE7B,KAAK,EAAE;YAAQ;UAAE;YAAAK,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE,CAAC,gBAAGxG,OAAA,CAACjB,aAAa;YAAC8I,KAAK,EAAE;cAAE7B,KAAK,EAAE;YAAM;UAAE;YAAAK,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAC7G,CAAC,EACD;UACE8G,KAAK,EAAE,KAAK;UACZC,SAAS,EAAE,UAAU;UACrBC,GAAG,EAAE,UAAU;UACfC,MAAM,EAAG+D,CAAC,IAAKA,CAAC,gBAAGxR,OAAA,CAAClB,aAAa;YAAC+I,KAAK,EAAE;cAAE7B,KAAK,EAAE;YAAQ;UAAE;YAAAK,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE,CAAC,gBAAGxG,OAAA,CAACjB,aAAa;YAAC8I,KAAK,EAAE;cAAE7B,KAAK,EAAE;YAAM;UAAE;YAAAK,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAC7G,CAAC,EACD;UACE8G,KAAK,EAAE,KAAK;UACZC,SAAS,EAAE,YAAY;UACvBC,GAAG,EAAE,YAAY;UACjBC,MAAM,EAAG+D,CAAC,IAAKA,CAAC,gBAAGxR,OAAA,CAAClB,aAAa;YAAC+I,KAAK,EAAE;cAAE7B,KAAK,EAAE;YAAQ;UAAE;YAAAK,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE,CAAC,gBAAGxG,OAAA,CAACjB,aAAa;YAAC8I,KAAK,EAAE;cAAE7B,KAAK,EAAE;YAAM;UAAE;YAAAK,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAC7G,CAAC,EACD;UACE8G,KAAK,EAAE,KAAK;UACZC,SAAS,EAAE,YAAY;UACvBC,GAAG,EAAE,YAAY;UACjBC,MAAM,EAAG+D,CAAC,IAAKA,CAAC,gBAAGxR,OAAA,CAAClB,aAAa;YAAC+I,KAAK,EAAE;cAAE7B,KAAK,EAAE;YAAQ;UAAE;YAAAK,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE,CAAC,gBAAGxG,OAAA,CAACjB,aAAa;YAAC8I,KAAK,EAAE;cAAE7B,KAAK,EAAE;YAAM;UAAE;YAAAK,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAC7G,CAAC,EACD;UACE8G,KAAK,EAAE,IAAI;UACXE,GAAG,EAAE,SAAS;UACdC,MAAM,EAAEA,CAACa,CAAC,EAAER,MAAM,KAAKnN,mBAAmB,CAAC,CAAC,iBAC1CX,OAAA,CAAC5B,UAAU;YAACkP,KAAK,EAAC,2EAAe;YAACiB,SAAS,EAAEA,CAAA,KAAM5B,sBAAsB,CAACmB,MAAM,CAAC2D,OAAO,CAAE;YAAArL,QAAA,eACxFpG,OAAA,CAACxC,MAAM;cAACuJ,IAAI,EAAC,MAAM;cAAC0H,MAAM;cAACpH,IAAI,EAAC,OAAO;cAAAjB,QAAA,EAAC;YAAE;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACzC;QAEhB,CAAC;MACD;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH;IACF;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACG;EAEV,CAAC,CACF;EAED,oBACExG,OAAA;IAAAoG,QAAA,gBACEpG,OAAA;MAAK6H,KAAK,EAAE;QAAE8G,YAAY,EAAE;MAAG,CAAE;MAAAvI,QAAA,eAC/BpG,OAAA,CAACxC,MAAM;QAACuQ,IAAI,eAAE/N,OAAA,CAACrB,iBAAiB;UAAA0H,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAE;QAACwH,OAAO,EAAEA,CAAA,KAAMxN,QAAQ,CAAC,WAAW,CAAE;QAAA4F,QAAA,EAAC;MAAE;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACnF,CAAC,eAENxG,OAAA,CAAC3C,IAAI;MACHiQ,KAAK,EAAEN,QAAQ,CAAC4B,IAAI,IAAI,MAAO;MAC/Ba,KAAK,eACHzP,OAAA,CAACvC,KAAK;QAAA2I,QAAA,gBACJpG,OAAA,CAACzC,GAAG;UAACyI,KAAK,EAAEjB,cAAc,CAACiI,QAAQ,CAAChI,MAAM,CAAE;UAAAoB,QAAA,EAAEb,aAAa,CAACyH,QAAQ,CAAChI,MAAM;QAAC;UAAAqB,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAM,CAAC,EAClFwG,QAAQ,CAAC+B,QAAQ,iBAAI/O,OAAA,CAACzC,GAAG;UAACyI,KAAK,EAAC,MAAM;UAAAI,QAAA,EAAE4G,QAAQ,CAAC+B;QAAQ;UAAA1I,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAM,CAAC,EAChE7F,mBAAmB,CAAC,CAAC,iBAAIX,OAAA,CAACxC,MAAM;UAACuQ,IAAI,eAAE/N,OAAA,CAACpB,YAAY;YAAAyH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE,CAAE;UAAAJ,QAAA,EAAC;QAAE;UAAAC,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAQ,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAChE,CACR;MAAAJ,QAAA,eAEDpG,OAAA,CAAChC,IAAI;QAAC0T,KAAK,EAAEhD;MAAK;QAAArI,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACjB,CAAC,eAGPxG,OAAA,CAACtC,KAAK;MAAC4P,KAAK,EAAC,0BAAM;MAACqE,IAAI,EAAE3P,gBAAiB;MAAC4P,IAAI,EAAErJ,aAAc;MAACsJ,QAAQ,EAAEA,CAAA,KAAM5P,mBAAmB,CAAC,KAAK,CAAE;MAAAmE,QAAA,eAC1GpG,OAAA,CAACrC,IAAI;QAACmU,IAAI,EAAElP,QAAS;QAACmP,MAAM,EAAC,UAAU;QAAA3L,QAAA,gBACrCpG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,OAAO;UAACrH,KAAK,EAAC,0BAAM;UAACyK,KAAK,EAAE,CAAC;YAAEC,QAAQ,EAAE;UAAK,CAAC,CAAE;UAAA7L,QAAA,eAC/DpG,OAAA,CAACpC,KAAK;YAAAyI,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,aAAa;UAACrH,KAAK,EAAC,cAAI;UAAAnB,QAAA,eACtCpG,OAAA,CAACI,QAAQ;YAAC8R,IAAI,EAAE;UAAE;YAAA7L,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACZ,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,UAAU;UAACrH,KAAK,EAAC,oBAAK;UAAC4K,YAAY,EAAC,QAAQ;UAAA/L,QAAA,eAC1DpG,OAAA,CAACnC,MAAM;YAAAuI,QAAA,gBACLpG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAC,MAAM;cAAAhM,QAAA,EAAC;YAAC;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eAC/BxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAC,QAAQ;cAAAhM,QAAA,EAAC;YAAC;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eACjCxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAC,KAAK;cAAAhM,QAAA,EAAC;YAAC;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACxB;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,YAAY;UAACrH,KAAK,EAAC,oBAAK;UAAAnB,QAAA,eACtCpG,OAAA,CAACnC,MAAM;YAAAuI,QAAA,EACJpF,KAAK,CAACgH,GAAG,CAACuJ,CAAC,iBAAIvR,OAAA,CAACG,MAAM;cAAYiS,KAAK,EAAEb,CAAC,CAAChR,EAAG;cAAA6F,QAAA,EAAEmL,CAAC,CAACc;YAAS,GAA/Bd,CAAC,CAAChR,EAAE;cAAA8F,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAoC,CAAC;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACjE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,SAAS;UAACrH,KAAK,EAAC,0BAAM;UAAAnB,QAAA,eACpCpG,OAAA,CAAClC,UAAU;YAAC+J,KAAK,EAAE;cAAEyK,KAAK,EAAE;YAAO;UAAE;YAAAjM,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC/B,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACR;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACF,CAAC,eAGRxG,OAAA,CAACtC,KAAK;MAAC4P,KAAK,EAAC,gCAAO;MAACqE,IAAI,EAAEzP,qBAAsB;MAAC0P,IAAI,EAAEvI,kBAAmB;MAACwI,QAAQ,EAAEA,CAAA,KAAM1P,wBAAwB,CAAC,KAAK,CAAE;MAAAiE,QAAA,eAC1HpG,OAAA,CAACrC,IAAI;QAACmU,IAAI,EAAEhP,aAAc;QAACiP,MAAM,EAAC,UAAU;QAAA3L,QAAA,gBAC1CpG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,MAAM;UAACrH,KAAK,EAAC,gCAAO;UAACyK,KAAK,EAAE,CAAC;YAAEC,QAAQ,EAAE;UAAK,CAAC,CAAE;UAAA7L,QAAA,eAC/DpG,OAAA,CAACpC,KAAK;YAAAyI,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,aAAa;UAACrH,KAAK,EAAC,cAAI;UAAAnB,QAAA,eACtCpG,OAAA,CAACI,QAAQ;YAAC8R,IAAI,EAAE;UAAE;YAAA7L,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACZ,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,aAAa;UAACrH,KAAK,EAAC,0BAAM;UAAAnB,QAAA,eACxCpG,OAAA,CAAClC,UAAU;YAAC+J,KAAK,EAAE;cAAEyK,KAAK,EAAE;YAAO;UAAE;YAAAjM,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC/B,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACR;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACF,CAAC,eAGRxG,OAAA,CAACtC,KAAK;MAAC4P,KAAK,EAAC,sCAAQ;MAACqE,IAAI,EAAEvP,kBAAmB;MAACwP,IAAI,EAAEpI,eAAgB;MAACqI,QAAQ,EAAEA,CAAA,KAAMxP,qBAAqB,CAAC,KAAK,CAAE;MAAA+D,QAAA,eAClHpG,OAAA,CAACrC,IAAI;QAACmU,IAAI,EAAE/O,UAAW;QAACgP,MAAM,EAAC,UAAU;QAAA3L,QAAA,gBACvCpG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,OAAO;UAACrH,KAAK,EAAC,cAAI;UAACyK,KAAK,EAAE,CAAC;YAAEC,QAAQ,EAAE;UAAK,CAAC,CAAE;UAAA7L,QAAA,eAC7DpG,OAAA,CAACpC,KAAK;YAAAyI,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,YAAY;UAACrH,KAAK,EAAC,cAAI;UAAC4K,YAAY,EAAC,SAAS;UAAA/L,QAAA,eAC5DpG,OAAA,CAACnC,MAAM;YAAAuI,QAAA,gBACLpG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAC,SAAS;cAAAhM,QAAA,EAAC;YAAI;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eACrCxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAC,UAAU;cAAAhM,QAAA,EAAC;YAAI;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eACtCxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAC,MAAM;cAAAhM,QAAA,EAAC;YAAI;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eAClCxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAC,WAAW;cAAAhM,QAAA,EAAC;YAAG;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAChC;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,SAAS;UAACrH,KAAK,EAAC,cAAI;UAAAnB,QAAA,eAClCpG,OAAA,CAACI,QAAQ;YAAC8R,IAAI,EAAE;UAAE;YAAA7L,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACZ,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACR;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACF,CAAC,eAGRxG,OAAA,CAACtC,KAAK;MAAC4P,KAAK,EAAC,gCAAO;MAACqE,IAAI,EAAErP,oBAAqB;MAACsP,IAAI,EAAElI,iBAAkB;MAACmI,QAAQ,EAAEA,CAAA,KAAMtP,uBAAuB,CAAC,KAAK,CAAE;MAAA6D,QAAA,eACvHpG,OAAA,CAACrC,IAAI;QAACmU,IAAI,EAAE9O,YAAa;QAAC+O,MAAM,EAAC,UAAU;QAAA3L,QAAA,gBACzCpG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,YAAY;UAACrH,KAAK,EAAC,oBAAK;UAACyK,KAAK,EAAE,CAAC;YAAEC,QAAQ,EAAE;UAAK,CAAC,CAAE;UAAA7L,QAAA,eACnEpG,OAAA,CAACnC,MAAM;YAAAuI,QAAA,EACJlF,SAAS,CAAC8G,GAAG,CAACE,CAAC,iBAAIlI,OAAA,CAACG,MAAM;cAAYiS,KAAK,EAAElK,CAAC,CAAC3H,EAAG;cAAA6F,QAAA,EAAE8B,CAAC,CAAC0G;YAAI,GAA1B1G,CAAC,CAAC3H,EAAE;cAAA8F,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAA+B,CAAC;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAChE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,kBAAkB;UAACrH,KAAK,EAAC,0BAAM;UAAAnB,QAAA,eAC7CpG,OAAA,CAACpC,KAAK;YAACmJ,IAAI,EAAC;UAAQ;YAAAV,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACd,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,aAAa;UAACrH,KAAK,EAAC,6BAAS;UAAAnB,QAAA,eAC3CpG,OAAA,CAACpC,KAAK;YAACmJ,IAAI,EAAC;UAAQ;YAAAV,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACd,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,gBAAgB;UAACrH,KAAK,EAAC,0BAAM;UAAAnB,QAAA,eAC3CpG,OAAA,CAAClC,UAAU;YAAC+J,KAAK,EAAE;cAAEyK,KAAK,EAAE;YAAO;UAAE;YAAAjM,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC/B,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,OAAO;UAACrH,KAAK,EAAC,cAAI;UAAAnB,QAAA,eAChCpG,OAAA,CAACI,QAAQ;YAAC8R,IAAI,EAAE;UAAE;YAAA7L,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACZ,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACR;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACF,CAAC,eAGRxG,OAAA,CAACtC,KAAK;MAAC4P,KAAK,EAAC,sCAAQ;MAACqE,IAAI,EAAEnP,0BAA2B;MAACoP,IAAI,EAAE7F,uBAAwB;MAAC8F,QAAQ,EAAEA,CAAA,KAAMpP,6BAA6B,CAAC,KAAK,CAAE;MAAA2D,QAAA,eAC1IpG,OAAA,CAACrC,IAAI;QAACmU,IAAI,EAAE7O,kBAAmB;QAAC8O,MAAM,EAAC,UAAU;QAAA3L,QAAA,gBAC/CpG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,MAAM;UAACrH,KAAK,EAAC,cAAI;UAACyK,KAAK,EAAE,CAAC;YAAEC,QAAQ,EAAE;UAAK,CAAC,CAAE;UAACE,YAAY,EAAC,SAAS;UAAA/L,QAAA,eACnFpG,OAAA,CAACnC,MAAM;YAAAuI,QAAA,gBACLpG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAC,SAAS;cAAAhM,QAAA,EAAC;YAAI;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eACrCxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAC,WAAW;cAAAhM,QAAA,EAAC;YAAI;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eACvCxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAC,WAAW;cAAAhM,QAAA,EAAC;YAAI;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eACvCxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAC,OAAO;cAAAhM,QAAA,EAAC;YAAE;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAC3B;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,OAAO;UAACrH,KAAK,EAAC,cAAI;UAACyK,KAAK,EAAE,CAAC;YAAEC,QAAQ,EAAE;UAAK,CAAC,CAAE;UAAA7L,QAAA,eAC7DpG,OAAA,CAACpC,KAAK;YAAAyI,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,MAAM;UAACrH,KAAK,EAAC,cAAI;UAAAnB,QAAA,eAC/BpG,OAAA,CAAClC,UAAU;YAAC+J,KAAK,EAAE;cAAEyK,KAAK,EAAE;YAAO;UAAE;YAAAjM,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC/B,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,SAAS;UAACrH,KAAK,EAAC,cAAI;UAAAnB,QAAA,eAClCpG,OAAA,CAACI,QAAQ;YAAC8R,IAAI,EAAE;UAAE;YAAA7L,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACZ,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACR;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACF,CAAC,eAGRxG,OAAA,CAACtC,KAAK;MAAC4P,KAAK,EAAC,sCAAQ;MAACqE,IAAI,EAAEjP,sBAAuB;MAACkP,IAAI,EAAEtF,mBAAoB;MAACuF,QAAQ,EAAEA,CAAA,KAAMlP,yBAAyB,CAAC,KAAK,CAAE;MAAAyD,QAAA,eAC9HpG,OAAA,CAACrC,IAAI;QAACmU,IAAI,EAAE5O,cAAe;QAAC6O,MAAM,EAAC,UAAU;QAAA3L,QAAA,gBAC3CpG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,QAAQ;UAACrH,KAAK,EAAC,cAAI;UAACyK,KAAK,EAAE,CAAC;YAAEC,QAAQ,EAAE;UAAK,CAAC,CAAE;UAAA7L,QAAA,eAC9DpG,OAAA,CAACnC,MAAM;YAAAuI,QAAA,EACJpF,KAAK,CAAC8P,MAAM,CAACS,CAAC,IAAI,CAACzP,kBAAkB,CAACyQ,IAAI,CAAC3E,CAAC,IAAIA,CAAC,CAAC6D,OAAO,KAAKF,CAAC,CAAChR,EAAE,CAAC,CAAC,CAACyH,GAAG,CAACuJ,CAAC,iBACzEvR,OAAA,CAACG,MAAM;cAAYiS,KAAK,EAAEb,CAAC,CAAChR,EAAG;cAAA6F,QAAA,GAAEmL,CAAC,CAACc,SAAS,EAAC,IAAE,EAACd,CAAC,CAACiB,QAAQ,EAAC,GAAC;YAAA,GAA/CjB,CAAC,CAAChR,EAAE;cAAA8F,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAmD,CACrE;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACI;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,SAAS;UAACrH,KAAK,EAAC,cAAI;UAAC4K,YAAY,EAAE,IAAK;UAAA/L,QAAA,eACtDpG,OAAA,CAACnC,MAAM;YAAAuI,QAAA,gBACLpG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAE,IAAK;cAAAhM,QAAA,EAAC;YAAC;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eAC/BxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAE,KAAM;cAAAhM,QAAA,EAAC;YAAC;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAC1B;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,SAAS;UAACrH,KAAK,EAAC,oBAAK;UAAC4K,YAAY,EAAE,KAAM;UAAA/L,QAAA,eACxDpG,OAAA,CAACnC,MAAM;YAAAuI,QAAA,gBACLpG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAE,IAAK;cAAAhM,QAAA,EAAC;YAAC;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eAC/BxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAE,KAAM;cAAAhM,QAAA,EAAC;YAAC;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAC1B;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,WAAW;UAACrH,KAAK,EAAC,oBAAK;UAAC4K,YAAY,EAAE,KAAM;UAAA/L,QAAA,eAC1DpG,OAAA,CAACnC,MAAM;YAAAuI,QAAA,gBACLpG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAE,IAAK;cAAAhM,QAAA,EAAC;YAAC;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eAC/BxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAE,KAAM;cAAAhM,QAAA,EAAC;YAAC;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAC1B;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC,eACZxG,OAAA,CAACrC,IAAI,CAAC2J,IAAI;UAACsH,IAAI,EAAC,WAAW;UAACrH,KAAK,EAAC,oBAAK;UAAC4K,YAAY,EAAE,KAAM;UAAA/L,QAAA,eAC1DpG,OAAA,CAACnC,MAAM;YAAAuI,QAAA,gBACLpG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAE,IAAK;cAAAhM,QAAA,EAAC;YAAC;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eAC/BxG,OAAA,CAACG,MAAM;cAACiS,KAAK,EAAE,KAAM;cAAAhM,QAAA,EAAC;YAAC;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAC1B;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACA,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACR;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACF,CAAC;EAAA;IAAAH,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACL,CAAC;AAEV,CAAC;AAAClG,EAAA,CAv9BID,aAAa;EAAA,QACFhB,SAAS,EACPC,WAAW,EACmBO,OAAO,EAoBnClC,IAAI,CAACkF,OAAO,EACPlF,IAAI,CAACkF,OAAO,EACflF,IAAI,CAACkF,OAAO,EACVlF,IAAI,CAACkF,OAAO,EACNlF,IAAI,CAACkF,OAAO,EAChBlF,IAAI,CAACkF,OAAO;AAAA;AAAA4P,EAAA,GA5BjCpS,aAAa;AAy9BnB,eAAeA,aAAa;AAAC,IAAAoS,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}